用STEP7玩控制—模糊自适应pid控制

标签:
s7-300/400plcstep7模糊自适应pid控制大纯滞后系统杂谈 |
模糊自适应pid控制其原理如图1所示,从图中可以看出,偏差和偏差变化率输入模糊推理器,然后在模糊推理器中作模糊推理,由此得到PID的增量值,这个增量值乘上一个比例因子qp、qi、qd,再与初始PID值相加,就是实际PID值,具体算式如图2所示,在实时获得PID值后,后面的控制过程与常规pid控制没有区别了,那为了作模糊推理,首先得确定ΔKp、ΔKi、ΔKd的模糊规则,在PLC上实现模糊自适应pid控制自然是选通用的模糊规则,如图3就是见得比较多的ΔKp、ΔKi、ΔKd模糊规则,其次是确定各语言变量的隶属度函数,我们这里用三角形函数,如图4所示,第三步是计算模糊PID(ΔKp、ΔKi、ΔKd)查询表,一般是用MATLAB编程求取,通常是利用MATLAB函数实现,当然也可自编实现,详细可以看前面有关博文,我们计算得到查询表如图5所示,ΔKp、ΔKi、ΔKd的变化曲面参看图4。模糊自适应pid控制,在S7-300/400PLC中实现的关键点,是利用STEP7中寄存器间接寻址,这一点与在S7-300/400PLC中实现模糊控制是一样的,我们在FB24功能块中,实现模糊自适应pid控制功能,见图6,编程是否正确、控制效果究竟怎样最终要落实在实验上,一如往常,我们将WINCC、S7-PLCSIM、MATLAB通过OPC连接在一起,在SIMULINK中搭建一个大纯滞后系统,被控对象是Gp(s)=1.4*exp(-120s)/(120*s+1),模糊自适应pid控制控制效果如图7所示,从图中可以看出,控制效果相当好,而用单单常规PID是非常难控制的。