标签:
杂谈 |
PID控制广泛应用在过程控制中,估计有90%左右自动控制回路采用PID控制,真正用APC控制的并不多,所以PID控制是玩控制人的必修课,标准的PID算式如下图1中的式1,
pid算式
由于微积分运算无法直接计算,通常进行微积分的近似数值计算,数值计算公式如图1中的式2,但真正采用的通常是pid增量数值计算式,如图1中的3式,从算式中可以看出,pid算法有几个要素,分别是:比例增益Kc或Kp,积分时间Ti,微分时间Td,采样时间Tp和偏差e,在控制理论中e=sp—pv,在仪表中通常是e=pv—sp,也有相反的,这是需要注意的,上式中pv是过程值,sp是设定值,但由于标准的pid算法有缺陷,主要是在阶跃输入时,由于物理限制,无法输出无穷大,在采样系统的情况下,只在第一个周期有微分作用,后面的采样周期就不再有微分作用,这也不合理,所以工程上通常采用不完全微分pid算式,不完全微分pid算法有很多种,S7-300/400PLC中的pid调节器的传递函数如图1中的4式,如果对不完全pid算法进行仿真研究,可以发现,无论是人工整定pid参数,还是用最优化算法进行pid参数寻优,效果通常都比标准pid算法来得好。图1中,4式的不完全微分部份的数值计算,有很多种方法,常用的有,1将微分方程转换为差分方程,然后再作数值计算,2用离散相似法进行数值计算,还可以作z变换,然后进行数值计算,甚至可以用龙格—库塔法进行数值计算,但在step7中,我们不需要自己编pid算法,FB41功能块就是一个pid算法函数,你只要会调用就可以了,我们掌握了pid算法原理,通常来说调用FB41并非难事,但有两点须注意,1是输入FB41的过程量pv必须作量程化处理,设定值sp也同理,否则,pid值的意义将变得不明确,因pid值的大小意义与量程有关,如果过程值末经量程化处理,那么pid值的意义将变得难以捉摸,step7中有一个FC105用来处理量程,只要调用就可,当然也可以自编,这并不难,2是采样时间不能设置错误,因为在采样系统中,积分时间Ti和微分时间Td与采样时间有关联,错误的设置,可能导致调节器输出变化极慢或极快——在0%和100%输出之间振荡,由于需要设置的参数相当多,不可能一一解绍,具体设置见图2至图5,在正确设置FB41后,将程序下载至s7-plcsim中,就可进行仿真,如同前面讲的,我们将wincc、matlab、s7-plcsim用OPC互联起来,这样就构成了一个闭环系统,运行闭环系统,我们可以知道FB41设置是否合理,这里,整个虚拟系统的仿真效果如图6所示,从图中可以看出控制效果相当好。在wincc界面中,蓝色字显示的是pid值,红色pid值是模糊pid控制显示用,这里没用。上面讲的pid调节器调用,只是基本的,一个真正的pid调节器还要有手动输出功能,以及手动/自动无扰动输出功能,为实现这些功能,需要在step7和组态软件两侧编程(脚本),私下以为,在Intouch组态软件中实现这些功能更方便些,或者说VB脚本比wincc中C语言更方便,具体这里不再展开,有机会再说。
FB41设置与仿真
http://s1/large/001Agcsvzy7hjSUpQKH57FB41设置与仿真
http://s1/large/001Agcsvzy7hjSUsOLA6eFB41设置与仿真
http://s1/large/001Agcsvzy7hjSUx16m86FB41设置与仿真
http://s1/large/001Agcsvzy7hjSUBKXheb虚拟控制系统仿真