[an error occurred while processing this directive]
ПИ регулятор для ДПТ на AT90S2313
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 888 08 апреля 2006 г. 12:09

Задача такая:есть двиг. пост. тока,для измерения скорости вращ. использую оптический датчик(1000 рисок на оборот).Так вот нужно сделать ПИ регулятор скорости для этого ДПТ.Для управления
взял МК AT90S2313.Для расчета использую след. кусок,взятый из форума:

объявления:
signed int mem_UPR, mem_DAT;измеренный и заданный период между рисками
float R_E1[2], U_E2[2];
#define C0 1.5 //допустим такие
#define C1 32.5
формулы:
R_E1[0] = (float) (mem_UPR - mem_DAT);
U_E2[0] = C0 * R_E1[0] - C1 * R_E1[1] + U_E2[1];
U_E2[1] = U_E2[0];
R_E1[1] = R_E1[0];

R_E1 - разность между измеренным и заданным периодом между рисками
U_E2 - управляющее воздействие
C1, C2 коэффициенты ПИ считаются так.

C0 := Kp + ((Ki * T) / 2 ) + Kd /T;C1 := Kp + (2 * Kd) / T;C2 := Kd / T;

Здесь Т - время квантования, Кр - пропорциональный коэффициент, Кi - итегральный коэффициент

Может кто знает лучшую формулу(для ускорения расчета)?
Допустим я рассчитал это управляющее воздействие U_E2,но теперь мне надо его выдать на ЦАП(10 разряд),для управления двигателем.Можно ли преобразовать U_E2(float) в целый тип просто выражением long(U_E2) и что делать если результат U_E2 выходит за границы ЦАПа(10 разряд)?Где-то читал,что нужно в этом случае обнулять Интегр. составляющую и не вычислять ее до тех пор пока регулятор не выйдет из "насыщения".
Что Вы об этом думаете?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru