PDA

Просмотр полной версии : ПИД регулятор для задвижки (дискретные выходы больше/меньше)



d-view
28.03.2015, 18:09
Приветствую всех.

Нарисовал ПИД регулятор для задвижки.
Хотел попросить всех, кому интересно посмотреть (потестить), покритиковать мое "творчество".
Рисовал в Codesys 3.5 SP5.

17406

17407

Если ход моих мыслей будет не понятен - спрашивайте.

Монтёр
29.03.2015, 00:58
Попробовал на стенде. При Set_point=Actual (с точностью до сотых) щелкает без останова в одну из сторон, кроме того, при этом, период и длительность импульсов почему-то зависит от времени дифференцирования, чего при статичном значении входа быть не должно по определению. Глубже не полез...

Кстати уже имеется подобная тема http://www.owen.ru/forum/showthread.php?t=17728

d-view
31.03.2015, 07:38
Спасибо за ответ и за тестдрайв. :) Будем разбираться где накосячил.


Попробовал на стенде. При Set_point=Actual (с точностью до сотых) щелкает без останова в одну из сторон, кроме того, при этом, период и длительность импульсов почему-то зависит от времени дифференцирования, чего при статичном значении входа быть не должно по определению. Глубже не полез...

Кстати уже имеется подобная тема http://www.owen.ru/forum/showthread.php?t=17728

Малышев Олег
07.04.2015, 10:41
Вы вообще зря использовали состояния.

Работа ПД - регулятора для задвижки очень проста.

Выходы - это по сути ШИМ (или ЧИМ - по вашему выбору). Т.е. скорость движения задвижки.

Скорость определяется суммой пропорц и дифф. составляющих.

E=Sp-PV (невязка)
Ed=(SP-D/dT) - дифф составляющая

ШИМ (больше) = Если скорость >0 - ШИМ( kP*E + kD*Ed)
ШИМ (меньше) = Если скорость <0 - ШИМ (-( kP*E +kD*Ed))

kP - можно заменить на обратную величину - XP =1/kP


Привет Луганску ))))))

Малышев Олег
07.04.2015, 10:43
Вы вообще зря использовали состояния.


Работа ПД - регулятора для задвижки очень проста.

Выходы - это по сути ШИМ (или ЧИМ - по вашему выбору). Т.е. скорость движения задвижки.

Скорость определяется суммой пропорц и дифф. составляющих.

E=Sp-PV (невязка)
Ed=(SP-PV)/dT - дифф составляющая

ШИМ (больше) = Если скорость >0 - ШИМ( kP*E + kD*Ed)
ШИМ (меньше) = Если скорость <0 - ШИМ (-( kP*E +kD*Ed))

kP - можно заменить на обратную величину - XP =1/kP


Привет Луганску ))))))

P.S. для задвижки ВСЕГДА следует всегда использовать зону НЧ - если ABS ( Ey ) < DB = > Ey:=0
P.P.S. Злой яндекс тычет меня в классическую ТАУ http://www.bookasutp.ru/Chapter5_2.aspx
P.P.P.S Рекомендую сделать имитатор - задвижки и погонять. В качестве имитатора пойдет линия задержки с 2-3 звеньями сглаживания

d-view
16.04.2015, 10:13
Спасибо, что заинтересовались моим вопросом. А почему вы так про состояния?
По поводу ШИМ: в моем понимании ПИД для задвижки - это расчет времени включения задвижки откр/закр * на коэффициент. Время вычисляется в зависимости от скорости изменения измеряемой величины и величины рассогласования (в принципе, как вы и говорили - ПД). Нагородил так много из-за того, что добавил одно условие:
если Sp-PV<>0, и:
1. (SP-PV)/dT=0;
2. (SP-PV)/dT>0;
3. (SP-PV)/dT<0.
Вот из этого условия добавил 3 варианта расчета времени включения откр/закр.


Вы вообще зря использовали состояния.


Работа ПД - регулятора для задвижки очень проста.

Выходы - это по сути ШИМ (или ЧИМ - по вашему выбору). Т.е. скорость движения задвижки.

Скорость определяется суммой пропорц и дифф. составляющих.

E=Sp-PV (невязка)
Ed=(SP-PV)/dT - дифф составляющая

ШИМ (больше) = Если скорость >0 - ШИМ( kP*E + kD*Ed)
ШИМ (меньше) = Если скорость <0 - ШИМ (-( kP*E +kD*Ed))

kP - можно заменить на обратную величину - XP =1/kP


Привет Луганску ))))))

P.S. для задвижки ВСЕГДА следует всегда использовать зону НЧ - если ABS ( Ey ) < DB = > Ey:=0
P.P.S. Злой яндекс тычет меня в классическую ТАУ http://www.bookasutp.ru/Chapter5_2.aspx
P.P.P.S Рекомендую сделать имитатор - задвижки и погонять. В качестве имитатора пойдет линия задержки с 2-3 звеньями сглаживания