葱拌豆腐 发表于 2013-2-25 15:05:53

最简单的PID代码和趋势图

增量式PID算法,每次输出控制量的增量,公式是:Δu(k)=P*e(k)+I*e(k-1)+D*e(k-2),推导过程可以翻翻论坛里的帖子。
本文对控制量进行了累加,所以输出的是总的控制量(和位置式的PID输出是一样的),对控制量输出一定要进行限幅处理。
(*Algorithm of incremental PID is u(k)=P*e(k)+I*e(k-1)+D*e(k-2)*)
ek2:=ek1;
ek1:=ek;
(*get current e*)
ek:=rSetValue-rProcessValue;
(*get incremental control value*)
uk:=rPGain*ek+rIGain*ek1+rDGain*ek2;
(*save last control value*)
rControlValue:=rControlValue+uk;
(*limit the control value*)
if rControlValue<rControlValueMin then
        rControlValue:=rControlValueMin;
end_if;

if rControlValue>rControlValueMax then
        rControlValue:=rControlValueMax;
end_if;
仿真曲线是在Logix5000的仿真器+matlab上获取的

Damn_intuition 发表于 2013-2-26 10:58:57

不错的文章,很适合新人学习。

追风的少年 发表于 2013-8-7 08:15:22

好好学习,天天向上~

lmb312 发表于 2013-9-7 01:04:55

Δu(k)=A*e(k)+B*e(k-1)+C*e(k-2)
式中A=(1+T/T1+TD/T)*KP
      B=(1+2TD/T)*KP
      C=KP*TP/T
该怎么改啊?
页: [1]
查看完整版本: 最简单的PID代码和趋势图