文章由两部分构成,第一部分为西门子博图软件中pid工艺块的组态步骤,第二部分为pid参数整定方法。文末附常用pid参数。
一、博图中PID组态步骤
①使用 PID 功能,必须先添加循环中断,需要在循环中断中添加 PID_Compact 指令。在循环中断的属性中,可以修改其循环时间。

图1.添加循环中断后在属性界面修改其循环时间
因为程序执行的扫描周期不相同,一定要在循环中断里调用 PID 指令。
注意:为保证以恒定的采样时间间隔执行 PID 指令,必须在循环 OB 中调用。
②再“指令 > 工艺 > PID 控制 > Compact PID(注意版本选择) > PID_Compact”下,将 PID_Compact 指令添加至循环中断。

图2.在循环中断中添加 PID_Compact 指令
③当添加完 PID_Compact 指令后,在项目树 > 工艺对象文件夹中,会自动关联出 PID_Compact_x[DBx],包含其组态界面和调试功能。

图3.工艺对象中关联生成 PID_Compact
④使用 PID 控制器前,需要对其进行组态设置,分为基本设置、过程值设置、高级设置等部分。

图4.PID_Compact 组态界面
1、基本设置--控制器类型 a. 为设定值、过程值和扰动变量选择物理量和测量单位。 b. 正作用:随着 PID 控制器的偏差增大,输出值增大。反作用:随着PID控制器的偏差增大,输出值减小。PID_Compact 反作用时,可以勾选“反转控制逻辑”;或者用负比例增益。 c. 要在 CPU 重启后切换到“模式”(Mode) 参数中保存的工作模式,请勾选“在 CPU 重启后激活模式”。

图5. PID_Compact > 基本设置 > 控制器类型
2、基本设置--定义 Input/Output 参数
定义 PID 过程值和输出值的内容,选择 PID_Compact 输入、输出变量的引脚和数据类型。

图6. PID_Compact > 基本设置 > 定义 Input/Output
1、过程值设置--过程值限值
必须满足过程值下限<过程值上限。如果过程值超出限值,就会出现错误 (ErrorBits = 0001h)。

图7. 设置过程值限值
2、过程值设置--过程值标定 a.当且仅当在 Input/Output 中输入选择为 “Input_PER” 时,才可组态过程值标定。b. 如果过程值与模拟量输入值成正比,则将使用上下限值对来标定 Input_PER。c. 必须满足范围的下限<上限。


图8. 进行过程值标定
3、高级设置--过程值监视 a.过程值的监视限值范围需要在过程值限值范围之内。b. 过程值超过监视限值,会输出警告。过程值超过过程值限值,PID输出报错,切换工作模式。

图9.设置过程监控值设置,与过程值限对比
4、高级设置-- PWM 限制
输出参数 Output 中的值被转换为一个脉冲序列,该序列通过脉宽调制在输出参数 Output_PWM 中输出。在 PID 算法采样时间内计算 Output,在采样时间 PID_Compact 内输出 Output_PWM。

图10.PID_Compact 的 PWM 输出原理
a.为最大程度地减小工作频率并节省执行器,可延长最短开/关时间。b. 如果要使用 “Output” 或 “Output_PER”,则必须分别为最短开关时间组态值 0.0。c. 脉冲或中断时间永远不会小于最短开关时间。例如,在当前 PID 算法采样周期中,如果输出小于最短接通时间将不输出脉冲,如果输出大于(PID 算法采样时间-最短关闭时间) 则整个周期输出高电平。d. 在当前 PID 算法采样周期中,因小于最短接通时间未能输出脉冲的,会在下一个 PID 算法采样周期中累加和补偿由此引起的误差。
最短开/关时间只影响输出参数 Output_PWM,不用于 CPU 中集成的任何脉冲发生器。
示例:PID_Compact 采样时间=100ms;PID 算法采样时间=1000ms;最短开启时间=200 ms(即已组态的最小接通脉冲为 PID_Compact 的 20%),若此时 PID 输出恒定为 15%。则在第一个周期内不输出脉冲,在第二个周期内将第一个周期内未输出的脉冲累加到第二个周期的脉冲,依次输出。如图 11 所示。

图11.PWM 最小开/关时间影响示例图
5、高级设置--输出值限值 a.在“输出值的限值”窗口中,以百分比形式组态输出值的限值。无论是在手动模式还是自动模式下,都不要超过输出值的限值。b. 手动模式下的设定值 ManualValue,必须介于输出值的下限 (Config.OutputLowerLimit) 与输出值的上限 ( Config.OutputUpperLimit )之间的值。c. 如果在手动模式下指定了一个超出限值范围的输出值,则 CPU 会将有效值限制为组态的限值。d. PID_compact 可以通过组态界面中输出值的上限和下限修改限值。最广范围为 -100.0 到 100.0,如果采用 Output_PWM 输出时限制为 0.0 到 100.0 。

图12.过程监控值设置和过程值限对比
6、高级设置--对错误的响应 a.在 PID Compact V1 时,如果 PID 控制器出现错误,PID 会自动切换到“未激活”模式。在 PID_Compact V2 时,可以预先设置错误响应时 PID 的输出状态,如图 13 所示。以便在发生错误时,控制器在大多数情况下均可保持激活状态。b. 如果控制器频繁发生错误,建议检查 Errorbits 参数并消除错误原因。

图13.PID 组态高级设置_对错误的响应
7、高级设置--手动输入 PID 参数 a. 在 PID Compact 组态界面可以修改 PID 参数,通过此处修改的参数对应工艺对象背景数据块 > Static > Retain > PID 参数。 b. 通过组态界面修改参数需要重新*载下**组态并重启 PLC。建议直接对工艺对象背景数据块进行操作。

图14.PID 组态高级设置_手动输入 PID 参数
⑤PID Compact 指令的背景数据块属于工艺对象数据块,打开方式:选择项目树 > 工艺对象 > PID_Compact_x[DBy],操作步骤如图所示:

图15.打开 PID Compact 工艺对象数据块
工艺对象数据块主要分10 部分:1-Input,2-Output,3-Inout,4-Static,5-Config,6-CycleTime,7-CtrlParamsBackUp,8-PIDSelfTune,9-PIDCtrl,10-Retain.其中1,2,3 这部分参数在 PID_Compact 指令中有参数引脚。工艺对象数据块的属性为优化的块访问,即以符号进行寻址。
常用的 PID 参数:比例增益、积分时间、微分时间,见工艺对象数据块 > Static > Retain 中,如图所示:

图16.PIC Compact 工艺对象数据块中的 PID 参数
二、PID参数的整定方法
PID是比例积分微分的简称, PID控制的难点不是编程,而是控制器的参数整定参数整定的关键理解与各参数的物理意义。PID控制的原理可以用人对炉温的手动控制来理解,阅读本文不需要高深的数学知识。
1.比例控制
有经验的操作人员,手动控制电加热炉的炉温,可以获得非常良好的控制品质。PID控制与人工控制的控制策略有很多相似的地方。下面介绍操作人员,怎样用比例控制的思想来手动控制电加热炉的炉温。假设用热电偶检测炉温,用数字仪表显示温度值,在控制过程中操作人员用眼睛读取炉温,并与炉温给定值比较得到温度的误差值,然后用手操作电位器,调节加热的电流使炉温保持在给定值附近。
操作人员知道炉温稳定在给定值时电位器的大致位置,我们将它称为位置L,并根据当时的温度误差值调节控制加热电流的电位器的转角。炉温小于给定值时误差为正,在位置L的基础上顺时针增大电位器的转角,以增大加热的电流。炉温大于给定值时,误差为负,在位置L的基础上反时针减小电位器的转角,并令转角与位置L的差值与误差成正比。
闭环中存在着各种各样的延迟作用,例如调节电位器转角后到温度上升到新的转角对应的稳态值时有较大的时间延迟。由于延迟因素的存在,调节电位器转角后不能马上看到调节的效果。因此闭环控制系统调节困难的主要原因是系统中的延迟作用 。
比例控制的比例系数大小,即调节后的电位器,转角与位置l的差值大小,调节的力度不够,使系统输出量变化缓慢,调节所需的总时长过长;比例系数过大即调节后电位器,转角与位置L的差值过大,调节力度太强,将造成调节过头,甚至使温度忽高忽低,来回震荡。
增大比例系数使系统反应灵敏,调节速度加快,并且可以减小稳态误差。但是比例系数过大会使超调量增大,震荡次数增加,调节时间加长,动态性能变坏,比例系数太大,甚至会使闭环系统不稳定。
单纯的比例控制很难保证调节得恰到好处,完全消除误差。
2.积分控制
PID控制器中的积分对应于图1中误差曲线与坐标轴包围的面积(图中的灰色部分)。PID控制程序是周期性执行的,执行的周期称为采样周期。计算机的程序用图1中各矩形面积之和来近似精确的积分,图中的Ti就是采样周期。

图1 积分运算示意图
每次PID运算时,在原来的积分值的基础上增加一个与当前的误差值ev(n)成正比的微小部分误差为负值时,积分的增量为负。
手动调节温度时,积分控制相当于根据当时的误差值周期性的微调,电位器的角度,每次调节的角度,增量值与当时的误差值成正比,温度低于设定值时,误差为正,积分项增大,使加热电流逐渐增大,反之积分项减小。因此只要误差不为零,控制器的输出就会因为积分的作用而不断变化,积分调节的方向是正确的,积分项有减小误差的作用。一直要到系统处于稳定状态,这是误差恒为0比例部分和微分部分均为零,积分部分才不会发生变化,并且等于稳态时需要的控制器的输出,对对于上述温度控制系统中电位器转角的位置L,因此积分部分的作用是消除稳态误差,提高控制精度,积分作用一般是必须的。
PID控制器输出中的积分部分与误差的积分成正比,因为积分时间Ti在积分项的分母中Ti越小,积分项变化的速度越快,积分作用越强。
3.PI控制
控制器输出中的积分项与当前的误差值和过去历次误差值的累加值成正比,因此积分作用本身具有严重的滞后性,对系统的稳定性不利。如果积分项的系数设置的不好,起负面作用很难通过积分作用本身迅速的修正,而比例项没有延迟,只要误差一出现比例部分就会立即起作用。因此积分作用很少单独使用,它一般与比例和微分联合使用组成PI或PID控制器。
4.微分作用
误差的微分就是误差的变化,速率误差变化越快,其微分绝对值越大,误差增大时其微分为正;误差减小时,其微分为负,输出量的微分部分与误差的微分成正比,反映了被控量变化的趋势。
有经验的操作人员在温度上升过快,但是尚未达到设定值时,根据温度变化的趋势,预感到温度将会超过设定值,出现超调。于是调节电位器的转角提前减小加热的电流,这相当于士兵接近射击远方运动目标时考虑到*弹子**运动的时间,需要一定的提前量一样。

图2 阶跃响应曲线
图2中的c(∞)为被控量c(t)的稳态值或被控量的期望值,误差e(t)=c(∞)-c(t)。在图2中启动过程的上升阶段,当被控量尚未超过其稳态值。但因为误差e(t)不断减小,误差的微分和控制器输出的微分部分为负值,减小了控制器的输出量,相当于提前给了制动作用,以阻碍被控量的上升,所以可以减少超调量,因此微分控制具有超前和预测的特性,在超调尚未出现之前就能提前给出控制作用。
闭环控制系统的震荡,甚至不稳定的根本原因在于有较大的滞后因素,因为微分项能预测误差变化的趋势,这种"超前"的作用可以抵消滞后因素的影响,适当的微分控制作用可以使超调量减小,增加系统的稳定性。
对于有较大的滞后特性的被控对象,如果PI控制的效果不理想,可以考虑增加微分控制,以改善系统在调节过程中的动态特性,如果将微分时间设置为0,微分部分将不起作用。
微分时间与微分作用的强弱成正比,微分时间越大,微分作用越强,如果微分时间太大,在误差快速变化时,响应曲线上可能会 出现毛刺 。
微分控制的缺点是对干扰噪声敏感使系统抑制干扰的能力降低,为此可在微分部分增加惯性滤波环节。
5.采样周期
PID控制程序是周期性执行的,执行的周期称为采样周期,采样周期越小,采样值越能反映模拟量的变化情况,但是太小会增加CPU的运算工作量,相邻两次采样的差值几乎没有什么变化,将使PID控制器输出的微分部分接近为0,所以也不宜将采样周期取得过小。
应保证在被控量迅速变化时,例如启动过程中的上升阶段,能有足够多的采样点数不至因采样点数过少而丢失被采集的模拟量中的重要信息。
6.PID参数的整定方法
整定PID控制器的参数是可以根据控制器的参数与动态性能和稳态性能之间的定性关系,用实验的方法来调节控制器的参数,有经验的调试人员,一般可以较快的得到较为满意的调试参数。
为了减少需要整定的参数,首先可以采用PI控制器,为了保证系统的安全,在调试开始时应设置比较保守的参数,例如 比例系数不宜过大,积分时间不要太小 ,以避免出现系统不稳定或超调量过大的异常情况。给出一个阶跃给定信号,根据被控量的输出波形,可以获得系统性能的信息,例如超调量和调节时间。应根据PID参数与系统性能的关系,反复调节PID参数。
如果消除误差的速度较慢,可以适当减小积分时间,增强积分作用。 如果超调量仍然较大,可以加入微分控制微分时间从从0逐渐增大,反复调节控制器的比例、积分和微分部分的参数。
总之PID参数的调试是一个综合的各参数互相影响的过程,实际调试过程中的多次尝试是非常重要的,也是必须的。
7.经验参数与口诀
温度控制系统:P=20-60% I=180-600s D=30-150s
流量控制系统:P=40-100% I=6-60s
压力控制系统:P=20-60% I=24-180s
液位控制系统:P=20-60% I=60-300s
参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢,微分时间应加长
理想曲线两个波,前高后低4比1