Цитата(vvs157 @ Jun 24 2006, 00:16)

Например так
--------------------
/*
Перед запуском
Acc_out_prev = 0;
Acc_Ti = 0;
Acc_Tds = 0;
При переходе с ручного режима управления на автоматический установить
Acc_Ti = Kp*output-Setpoint+Sysout;
*/
Acc_Ti=Acc_Ti+1/Ti*(Setpoint-Sysout)-1/Tw*Sat_out;
Acc_Tds=Acc_Tds+1/Tds*(Td*(Acc_out_prev-Sysout)-Acc_Tds);
Kp_val=Setpoint-Sysout;
output=1/Kp*(Kp_val+Acc_Ti+Acc_Tds);
Sat_out=0;
if (output>Maxout) {
Sat_out=output-Maxout;
output=Maxout;
};
if (output<0) {
Sat_out=output;
output=0;
};
----------------------
Еще раз а то вы меня несовсем поняли.
Setpoint - 300
Sysout - Значение наростает если нагреваем 0 ---> 300 я хочу расчитать для одного шага поэтому возьму равным 200
Acc_out_prev - значение меняется но возьмем к примеру 196
Acc_Ti - накопитель для интегрального канала
Acc_Tds - накопитель для фильтра диф. канала
output - выходное значение регулятора
Maxout - у меня шим поэтому max=100
Может я несовсем понял прочтя ПДФ от AVR221 но берем равным
Ti - 0,5
Tw = (0.1 - 0.5) Ti
Td - 0,12
Tds = (0.2 - 1) Td
Кр - 0,65
Попробую расчетать из того что имею. Расчет в экселе.
и еще что такое - Sat_out ?
Эскизы прикрепленных изображений