Сообщение от
Никитин
Хотел бы внести своё предложение в дискуссию: добавить задержку включения для того, чтобы "пролетая" уставку переменная не "цеплялась" за границы "мертвой зоны", и ввести "мертвую зону" в установившемся режиме.
Например:
ton1(IN := ABS(SP - PV) < DB, PT := <время выхода на уставку>);
В варианте SBeaR меня тоже смущает, то что идеальный регулятор на уставку выходить не будет, будет либо SP+DB, либо SP-DB.
Наверное как-то так нужно сделать.
Код:
ton1(IN := ABS(SP - PV) < DB, PT := <время выхода на уставку>);
IF ton1.Q AND PV>(SP+DB) THEN
PID.SP:=(SP+DB);
ELSIF ton1.Q AND PV<(SP-DB) THEN
PID.SP:=(SP-DB);
ELSE
PID.SP:=PV;
END_IF;