Прошу сильно не пинать, только начинаю знакомиться ПИД. Для того, чтобы понять суть, решил написать маленький ФБ где попытался этот самый ПИД реализовть. Всего лишь вычисление трех выходных составляющих, ничего сверхъестественного типа ручного режима и т.д. Данный ФБ вызываю в PLC_PRG с интервалом 1 секунда (переменная t_cycle в коде.
Хочу спросить, является ли это хоть чем-то похожим на ПИД-регулятор? Правильно ли я понимаю его суть? Надеюсь, что в тему.
Код:err:=SetPoint-ActValue; PY:=Kp*err; IY:=IY+(Kp/Ti)*err/TIME_TO_WORD(t_cycle)/1000.0; DY:=Kp*Td*(err-prev_err)/TIME_TO_WORD(t_cycle)/1000.0; IF IY<-100.00 THEN IY:=-100.0; END_IF IF IY>100.0 THEN IY:=100; END_IF prev_err:=err; Y_out:= PY+IY+DY; IF Y_out<-100.00 THEN Y_out:=-100.0; END_IF IF Y_out>100.0 THEN Y_out:=100; END_IF




Ответить с цитированием