一、 PID回路控制概述
PID控制器是应用最广泛的闭环控制器,它根据给定值与被控实测值之间的偏差;按照PID算法计算出控制器的输出量,控制执行机构进行调节,使被控量跟随给定量变化,并使系统达到稳定;自动消除各种干扰对控制过程的影响。其中PID分别表示比例、积分和微分
S7-200 SMART中PID功能实现方式有以下三种:
PID指令块:通过一个PID回路表交换数据,只接受0.0 - 1.0之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效数值。
PID向导:方便地完成输入/输出信号转换/标准化处理。PID指令同时会被自动调用。
根据PID算法自己编程
S7-200 SMART CPU最多可以支持8个PID控制回路(8个PID指令功能块),根据PID算法自己编程没有具体数目的限制,但是我们需要考虑PLC的存储空间以及扫描周期等影响。
PID控制是负反馈闭环控制,能够抑制系统闭环内的各种因素所引起的扰动,使反馈跟随给定变化。
PID控制算法有几个关键的参数Kc(Gain,增益)Ti(积分时间常数),Td(微分时间常数)Ts(采样时间) 在S7-200 SMART中PID功能是通过PID指令功能块实现。通过定时(按照采样时间)执行PID功能块,按照PID运算规律,根据当时的给定、反馈、比例-积分-微分数据,计算出控制量。
由于PID可以控制温度、压力等等许多对象,它们各自都是由工程量表示,因此有一种通用的数据表示方法才能被PID功能块识别。
S7-200 SMART中的PID功能使用占调节范围的百分比的方法抽象地表示被控对象的数值大小。在实际工程中,这个调节范围往往被认为与被控对象(反馈)的测量范围(量程)一致。
PID功能块只接受0.0 - 1.0之间的实数(实际上是0%--100%)作为反馈、给定与控制输出的有效数值,如果是直接使用PID功能块编程,必须保证数据在这个范围之内,否则会出错。其他如增益、采样时间、积分时间、微分时间都是实数。因此,必须把外围实际的物理量与PID功能块需要的(或者输出的)数据之间进行转换。这就是所谓输入/输出的转换与标准化处理
二、PID主要参数
采样时间:CPU必须按照一定的时间间隔对反馈进行采样,才能进行PID控制的计算。采样时间就是对反馈进行采样的间隔。短于采样时间间隔的信号变化是不能测量到的。过短的采样时间没有必要,过长的采样间隔显然不能满足扰动变化比较快、或者速度响应要求高的场合。
增益(Gain,放大系数,比例常数) 增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。提高响应速度,减少误差,但不能消除稳态误差,当比例作用过大时,系统的稳定性下降。 积分时间:偏差值恒定时,积分时间决定了控制器输出的变化速率。积分时间越短,偏差得到的修正越快。过短的积分时间有可能造成不稳定。 积分时间的长度相当于在阶跃给定下,增益为“1”的时候,输出的变化量与偏差值相等所需要的时间,也就是输出变化到二倍于初始阶跃偏差的时间。 如果将积分时间设为最大值,则相当于没有积分作用。
微分时间:偏差值发生改变时,微分作用将增加一个尖峰到输出中,随着时间流逝减小。微分时间越长,输出的变化越大。微分使控制对扰动的敏感度增加,也就是偏差的变化率越大,微分控制作用越强。微分相当于对反馈变化趋势的预测性调整。 如果将微分时间设置为0就不起作用,控制器将作为PI调节器工作。
比例调节 :提高响应速度,减少误差,但不能消除稳态误差,当比例作用过大时,系统的稳定性下降。(由小到大单独调节)
积分调节:消除稳态误差,使系统的动态响应变慢,积分时间越小,积分作用越大 ,偏差得到的修正越快,过短的积分时间有可能造成不稳定。(将调好的比例增益调整到50%~80%后,由大到小减小积分时间)
微分调节:超前调节,能预测误差变化的趋势,提前抑制误差的控制作用,从而避免了被控量的严重超调。可以改善系统的响应速度和稳定性,对噪声干扰有放大作用,对具有滞后性质的被控对象,应加入微分环节。 三、PID向导
1、在Micro/WIN SMART中的工具菜单中选择PID向导 3、S7-200 SMART CPU最多可以支持8个PID控制回路(8个PID指令功能块) 6、增益:即比例常数 积分时间:如果不想要积分作用可以将该值设置很大(比如10000.0) 微分时间:如果不想要微分回路,可以把微分时间设为0 采样时间:是PID控制回路对反馈采样和重新计算输出值的时间间隔
8、单极性:0-27648 双极性-27648到27648 温度x10°是PT100的热电阻或热电偶 的温度值 °C表示摄氏度 °F表示华氏度 选用20%偏移:如果输入为4-20mA则选此项,4mA是0-20mA信号的20%,所以选20% 偏移,即4mA对应5530,20mA对应27648 11、输出类型:可以选择模拟量输出或数字量输出。 模拟量输出用来控制一些需要模拟量给定的设备,如比例阀、变频器等 数字量输出实际上是控制输出点的通、断状态按照一定的占空比变化,可以控制固态继电器(加热棒等)
12、范围: 为单极时,缺省值为 0 到 27648 为双极时,取值-27648 到27648 为20%偏移量时,取值5530 - 27648 ,不可改变 14、反馈值下限的10%时报警 15、反馈值高于上限的90%时报警 16、模拟量模块错误报警 。“EM0”就是第一个扩展模块的位置
18、可以选择添加PID 手动控制模式 20、PID功能块使用了一个120个字节的V区地址来进行控制回路的运算工作;并且PID向导生成的输入/输出量的标准化程序也需要运算数据存储区。要保证该地址起始的若干字节在程序的其它地方没有被重复使用。 24、向导完成生成的子程序 25、向导生成的数据块
数据块的地址需要组态断电保持 四、PID指令
五、程序编写
利用PID向导编写程序、使温度保持在给定值,并对PID参数进行整定
六、下载并调试
下载操作在这不做阐述
1、调试说明:
(1) 比例增益:提高调节速度,减小误差,但不能消除稳态误差;
参考方法可由小到大单独调节
(2)积分作用:消除稳态误差,使系统的动态相应的变慢,积分过大会影响系统的稳定性。调节参考方法:将调节好的比例系数调整到50%--80%;由大到小,增加积分影响
(3)微分作用:超前控制,减少调节时间,对干扰有放大作用
调节方法参考:由小到大单独调节,并相应调整比例和积分,追求调节偏差的变化率
(4)PID调节方法:先将积分和微分关闭,先调比例,在比例差不多时加上积分,一般情况,比例值越大输出结果越快;积分越大,输出结果越慢;微分在调节温控时使用,一般情况可不用
2、可通过状态图表监控并修改给定值、手自动状态、PWM输出设置等。
但也可通过PID控制面板进行调试,如下图所示:
1、给定值和过程值共用图形左侧的纵轴,输出使用图形右侧的纵轴
2、采样时间是PID控制回路对反馈采样和重新计算输出值的时间间隔(在PID向导配置中更改)
3、速率:设置图形显示区所有显示值的采样更新速率时间
4、调节参数:增益、积分和微分的当前值
5、如果选择启用手动调节,可在计算值中修改PID参数
6、在自动模式下,单击“启动”按钮,启动自整定,自整定完成后,单击“更新”按钮,可把参数写进CPU中
7、单击“选项”可进入自整定参数设置(如下图)
七、PID常见问题
1、 PID向导生成的程序为何不执行?
确保用SM0.0无条件调用PID0_CTRL库
在程序的其它部分不要再使用SMB34定时中断,也不要对SMB34赋值
确认当前工作状态:手动还是自动
2、如何实现PID反作用调节?
在有些控制中需要PID反作用调节。例如:在夏天控制空调制冷时,若反馈温度(过程值)低于设定温度,需要关阀,减小输出控制(减少冷水流量等)这就是PID反作用调节(在PID正作用中若过程值小于设定值,则需要增大输出控制)
若想实现PID反作用调节,需要把PID回路的增益设为负数。对于增益为0的积分或微分控制来说,如果指定积分时间、微分时间为负值,则是反作用回路。
3、 如何根据工艺要求有选择地投入PID功能?
可使用"手动/自动"切换的功能。PID向导生成的PID功能块需要保证每个扫描周期都调用,所以在主程序内使用SM0.0调用。
4、 PID控制不稳定怎么办?如何调试PID?
闭环系统的调试,首先应当做开环测试。所谓开环,就是在PID调节器不投入工作的时候,观察:(1)反馈通道的信号是否稳定(2)输出通道是否动作正常
可以试着给出一些比较保守的PID参数,比如放大倍数(增益)不要太大,可以小于1,积分时间不要太短,以免引起振荡。在这个基础上,可以直接投入运行观察反馈的波形变化。给出一个阶跃给定,观察系统的响应是最好的方法。
如果反馈达到给定值之后,历经多次振荡才能稳定或者根本不稳定,应该考虑是否增益过大、积分时间过短;如果反馈迟迟不能跟随给定,上升速度很慢,应该考虑是否增益过小、积分时间过长……PID参数的调试是一个综合的、互相影响的过程,实际调试过程中的多次尝试是非常重要的步骤。
5、没有采用积分控制时,为何反馈达不到给定?
因为积分控制的作用在于消除纯比例调节系统固有的“静差”。没有积分控制的比例控制系统中,没有偏差就没有输出量,没有输出就不能维持反馈值与给定值相等。所以永远不能做到没有偏差。
6、S7-200 SMART控制变频器,在变频器也有PID控制功能时,应当使用谁的PID功能?
可以根据具体情况使用。一般来说,如果需要控制的变量直接与变频器直接有关,比如变频水泵控制水压等,可以优先考虑使用变频器的PID功能。
7、指令块与向导使用的PID回路号是否可以重复?
不可以重复,使用PID向导时,对应回路的指令块也会调用,所以指令块与向导使用的PID回路号不能重复,否则会产生预想不到的结果。
8、同一个程序里既使用PID指令块又使用向导,PID数目怎样计算?
使用PID向导时,对应回路的指令块也会调用,所以PID指令块与向导一共支持8个。
9、PID指令块可以在主程序/子程序里调用吗?
可以,但是不推荐,主程序/子程序的循环时间每个周期都可能不同,不能保证精确的采样,建议用定时中断,例如SMB34/SMB35。
10、SMB34定时最大255ms,如果采样时间是1S怎样实现?
采样时间是1S,要求PID指令块每隔1S调用一次。可以先做一个250ms的定时中断,然后编程累加判断每4次中断执行一次PID指令即可。
11、 PID指令块怎样实现手动调节?
可以简单地使用"调用/不调用"指令的方式控制自动/手动模式。不调用PID指令时,可以手动给输出地址0.0-1.0之间的实数。