综合以上几种改进的PID控制算法,根据温度控制的实际情况,编写以下程序可根据实际情况,改变L、H、K的值,实现简单PID算法、积分分离的PID 算法和带死区的PID算法。
也可以根据实际情况结合三种算法,实现最优控制。
程序框图如图6.18
在组态王大纲下,点击“命令语言”—“应用程序命令语言”在其窗口下编写如下程序。
应用程序命令语言如图7.19。
图7.19
源程序为:
if(\\本站点\自动开关==0)
{
\\本站点\ek0=\\本站点\sv-\\本站点\温度1;
if(abs(\\本站点\ek0)<\\本站点\L||\\本站点\ek0<0)
{
\\本站点\I=1/\\本站点\TI;
}
else {
\\本站点\I=0;
}
\\本站点\A=\\本站点\Pk*(1+\\本站点\I+\\本站点\TD);
\\本站点\B=\\本站点\Pk*(1+2*\\本站点\TD);
\\本站点\C=\\本站点\Pk*\\本站点\TD;
\\本站点\uk=\\本站点\A*\\本站点\ek0-\\本站点\B*\\本站点\ek01+\\本站点\C*\\本站点\ek02+\\本站点\uk01;
\\本站点\uk01=\\本站点\uk;
\\本站点\ek02=\\本站点\ek01;
\\本站点\ek01=\\本站点\ek0;
if(\\本站点\uk<1000)
{
if(\\本站点\uk>0)
{
if(abs(\\本站点\ek0)<\\本站点\H)
{\\本站点\uk1=\\本站点\K*\\本站点\uk;}
else {\\本站点\uk1=\\本站点\uk;}
}
else {\\本站点\uk1=0;}
}
else {\\本站点\uk1=1000;}
}。