Просмотр полной версии : ПИД регулятор для задвижки (дискретные выходы больше/меньше)
Приветствую всех.
Нарисовал ПИД регулятор для задвижки.
Хотел попросить всех, кому интересно посмотреть (потестить), покритиковать мое "творчество".
Рисовал в Codesys 3.5 SP5.
17406
17407
Если ход моих мыслей будет не понятен - спрашивайте.
Попробовал на стенде. При Set_point=Actual (с точностью до сотых) щелкает без останова в одну из сторон, кроме того, при этом, период и длительность импульсов почему-то зависит от времени дифференцирования, чего при статичном значении входа быть не должно по определению. Глубже не полез...
Кстати уже имеется подобная тема http://www.owen.ru/forum/showthread.php?t=17728
Спасибо за ответ и за тестдрайв. :) Будем разбираться где накосячил.
Попробовал на стенде. При 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 звеньями сглаживания
Спасибо, что заинтересовались моим вопросом. А почему вы так про состояния?
По поводу ШИМ: в моем понимании ПИД для задвижки - это расчет времени включения задвижки откр/закр * на коэффициент. Время вычисляется в зависимости от скорости изменения измеряемой величины и величины рассогласования (в принципе, как вы и говорили - ПД). Нагородил так много из-за того, что добавил одно условие:
если 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 звеньями сглаживания
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot