PID控制最通俗的解释与PID参数的整定方法及S7200PID应用.docx
《PID控制最通俗的解释与PID参数的整定方法及S7200PID应用.docx》由会员分享,可在线阅读,更多相关《PID控制最通俗的解释与PID参数的整定方法及S7200PID应用.docx(32页珍藏版)》请在冰豆网上搜索。
PID控制最通俗的解释与PID参数的整定方法及S7200PID应用
PID控制最通俗的解释与PID参数的整定方法
[2010/6/1815:
15:
45|Author:
廖老师]
PID是比例、积分、微分的简称,PID控制的难点不是编程,而是控制器的参数整定。
参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解。
阅读本文不需要高深的数学知识。
1.比例控制
有经验的操作人员手动控制电加热炉的炉温,可以获得非常好的控制品质,PID控制与人工控制的控制策略有很多相似的地方。
下面介绍操作人员怎样用比例控制的思想来手动控制电加热炉的炉温。
假设用热电偶检测炉温,用数字仪表显示温度值。
在控制过程中,操作人员用眼睛读取炉温,并与炉温给定值比较,得到温度的误差值。
然后用手操作电位器,调节加热的电流,使炉温保持在给定值附近。
操作人员知道炉温稳定在给定值时电位器的大致位置(我们将它称为位置L),并根据当时的温度误差值调整控制加热电流的电位器的转角。
炉温小于给定值时,误差为正,在位置L的基础上顺时针增大电位器的转角,以增大加热的电流。
炉温大于给定值时,误差为负,在位置L的基础上反时针减小电位器的转角,并令转角与位置L的差值与误差成正比。
上述控制策略就是比例控制,即PID控制器输出中的比例部分与误差成正比。
闭环中存在着各种各样的延迟作用。
例如调节电位器转角后,到温度上升到新的转角对应的稳态值时有较大的时间延迟。
由于延迟因素的存在,调节电位器转角后不能马上看到调节的效果,因此闭环控制系统调节困难的主要原因是系统中的延迟作用。
比例控制的比例系数如果太小,即调节后的电位器转角与位置L的差值太小,调节的力度不够,使系统输出量变化缓慢,调节所需的总时间过长。
比例系数如果过大,即调节后电位器转角与位置L的差值过大,调节力度太强,将造成调节过头,甚至使温度忽高忽低,来回震荡。
增大比例系数使系统反应灵敏,调节速度加快,并且可以减小稳态误差。
但是比例系数过大会使超调量增大,振荡次数增加,调节时间加长,动态性能变坏,比例系数太大甚至会使闭环系统不稳定。
单纯的比例控制很难保证调节得恰到好处,完全消除误差。
2.积分控制
PID控制器中的积分对应于图1中误差曲线与坐标轴包围的面积(图中的灰色部分)。
PID控制程序是周期性执行的,执行的周期称为采样周期。
计算机的程序用图1中各矩形面积之和来近似精确的积分,图中的TS就是采样周期。
图1 积分运算示意图
每次PID运算时,在原来的积分值的基础上,增加一个与当前的误差值ev(n)成正比的微小部分。
误差为负值时,积分的增量为负。
手动调节温度时,积分控制相当于根据当时的误差值,周期性地微调电位器的角度,每次调节的角度增量值与当时的误差值成正比。
温度低于设定值时误差为正,积分项增大,使加热电流逐渐增大,反之积分项减小。
因此只要误差不为零,控制器的输出就会因为积分作用而不断变化。
积分调节的“大方向”是正确的,积分项有减小误差的作用。
一直要到系统处于稳定状态,这时误差恒为零,比例部分和微分部分均为零,积分部分才不再变化,并且刚好等于稳态时需要的控制器的输出值,对应于上述温度控制系统中电位器转角的位置L。
因此积分部分的作用是消除稳态误差,提高控制精度,积分作用一般是必须的。
PID控制器输出中的积分部分与误差的积分成正比。
因为积分时间TI在积分项的分母中,TI越小,积分项变化的速度越快,积分作用越强。
3.PI控制
控制器输出中的积分项与当前的误差值和过去历次误差值的累加值成正比,因此积分作用本身具有严重的滞后特性,对系统的稳定性不利。
如果积分项的系数设置得不好,其负面作用很难通过积分作用本身迅速地修正。
而比例项没有延迟,只要误差一出现,比例部分就会立即起作用。
因此积分作用很少单独使用,它一般与比例和微分联合使用,组成PI或PID控制器。
PI和PID控制器既克服了单纯的比例调节有稳态误差的缺点,又避免了单纯的积分调节响应慢、动态性能不好的缺点,因此被广泛使用。
如果控制器有积分作用(例如采用PI或PID控制),积分能消除阶跃输入的稳态误差,这时可以将比例系数调得小一些。
如果积分作用太强(即积分时间太小),相当于每次微调电位器的角度值过大,其累积的作用会使系统输出的动态性能变差,超调量增大,甚至使系统不稳定。
积分作用太弱(即积分时间太大),则消除稳态误差的速度太慢,积分时间的值应取得适中。
4.微分作用
误差的微分就是误差的变化速率,误差变化越快,其微分绝对值越大。
误差增大时,其微分为正;误差减小时,其微分为负。
控制器输出量的微分部分与误差的微分成正比,反映了被控量变化的趋势。
有经验的操作人员在温度上升过快,但是尚未达到设定值时,根据温度变化的趋势,预感到温度将会超过设定值,出现超调。
于是调节电位器的转角,提前减小加热的电流。
这相当于士兵射击远方的移动目标时,考虑到子弹运动的时间,需要一定的提前量一样。
图2 阶跃响应曲线
图2中的c(∞)为被控量c(t)的稳态值或被控量的期望值,误差e(t)=c(∞)-c(t)。
在图2中启动过程的上升阶段,当时,被控量尚未超过其稳态值。
但是因为误差e(t)不断减小,误差的微分和控制器输出的微分部分为负值,减小了控制器的输出量,相当于提前给出了制动作用,以阻碍被控量的上升,所以可以减少超调量。
因此微分控制具有超前和预测的特性,在超调尚未出现之前,就能提前给出控制作用。
闭环控制系统的振荡甚至不稳定的根本原因在于有较大的滞后因素。
因为微分项能预测误差变化的趋势,这种“超前”的作用可以抵消滞后因素的影响。
适当的微分控制作用可以使超调量减小,增加系统的稳定性。
对于有较大的滞后特性的被控对象,如果PI控制的效果不理想,可以考虑增加微分控制,以改善系统在调节过程中的动态特性。
如果将微分时间设置为0,微分部分将不起作用。
微分时间与微分作用的强弱成正比,微分时间越大,微分作用越强。
如果微分时间太大,在误差快速变化时,响应曲线上可能会出现“毛刺”。
微分控制的缺点是对干扰噪声敏感,使系统抑制干扰的能力降低。
为此可在微分部分增加惯性滤波环节。
5.采样周期
PID控制程序是周期性执行的,执行的周期称为采样周期。
采样周期越小,采样值越能反映模拟量的变化情况。
但是太小会增加CPU的运算工作量,相邻两次采样的差值几乎没有什么变化,将使PID控制器输出的微分部分接近为零,所以也不宜将采样周期取得过小。
应保证在被控量迅速变化时(例如启动过程中的上升阶段),能有足够多的采样点数,不致因为采样点数过少而丢失被采集的模拟量中的重要信息。
6.PID参数的调整方法
在整定PID控制器参数时,可以根据控制器的参数与系统动态性能和稳态性能之间的定性关系,用实验的方法来调节控制器的参数。
有经验的调试人员一般可以较快地得到较为满意的调试结果。
在调试中最重要的问题是在系统性能不能令人满意时,知道应该调节哪一个参数,该参数应该增大还是减小。
为了减少需要整定的参数,首先可以采用PI控制器。
为了保证系统的安全,在调试开始时应设置比较保守的参数,例如比例系数不要太大,积分时间不要太小,以避免出现系统不稳定或超调量过大的异常情况。
给出一个阶跃给定信号,根据被控量的输出波形可以获得系统性能的信息,例如超调量和调节时间。
应根据PID参数与系统性能的关系,反复调节PID的参数。
如果阶跃响应的超调量太大,经过多次振荡才能稳定或者根本不稳定,应减小比例系数、增大积分时间。
如果阶跃响应没有超调量,但是被控量上升过于缓慢,过渡过程时间太长,应按相反的方向调整参数。
如果消除误差的速度较慢,可以适当减小积分时间,增强积分作用。
反复调节比例系数和积分时间,如果超调量仍然较大,可以加入微分控制,微分时间从0逐渐增大,反复调节控制器的比例、积分和微分部分的参数。
总之,PID参数的调试是一个综合的、各参数互相影响的过程,实际调试过程中的多次尝试是非常重要的,也是必须的。
7.实验验证
实验使用S7-300PLC的PID控制功能块FB41,被控对象由两个串联的惯性环节组成,其时间常数分别为2s和5s,比例系数为3.0。
用人机界面的趋势图显示给定曲线和闭环输出量的响应曲线。
本日志的内容摘自作者在《自动化应用》杂志2010年第5期发表的《PID参数的意义与整定方法》(见附件),该论文给出的实验结果验证了本文提出的PID控制器参数的整定方法。
作者将在适当的时候发布用纯软件仿真学习PID参数整定方法的STEP7项目。
如何使用S7-200CPU的PID控制
如何使用S7-200CPU的PID控制
第一部分、PID控制
S7-200能够进行PID控制。
S7-200CPU最多可以支持8个PID控制回路(8个PID指
令功能块)。
PID是闭环控制系统的比例-积分-微分控制算法。
PID控制器根据设定值(给定)与被控对象的实际值(反馈)的差值,按照PID算法
计算出控制器的输出量,控制执行机构去影响被控对象的变化。
PID控制是负反馈闭环控制,能够抑制系统闭环内的各种因素所引起的扰动,使反馈
跟随给定变化。
根据具体项目的控制要求,在实际应用中有可能用到其中的一部分,比如常用的是PI
(比例-积分)控制,这时没有微分控制部分。
PID算法在S7-200中的实现
PID控制最初在模拟量控制系统中实现,随着离散控制理论的发展,PID也在计算机化
控制系统中实现。
为便于实现,S7-200中的PID控制采用了迭代算法。
详细的计算方法请参考《S7-200
系统手册》中PID指令部分的相关内容。
计算机化的PID控制算法有几个关键的参数Kc(Gain,增益),Ti(积分时间常
数),Td(微分时间常数),Ts(采样时间)。
在S7-200中PID功能是通过PID指令功能块实现。
通过定时(按照采样时间)执行
PID功能块,按照PID运算规律,根据当时的给定、反馈、比例-积分-微分数据,
计算出控制量。
PID功能块通过一个PID回路表交换数据,这个表是在V数据存储区中的开辟,长度
为36字节。
因此每个PID功能块在调用时需要指定两个要素:
PID控制回路号,以及
控制回路表的起始地址(以VB表示)。
由于PID可以控制温度、压力等等许多对象,它们各自都是由工程量表示,因此有一
种通用的数据表示方法才能被PID功能块识别。
S7-200中的PID功能使用占调节范围
的百分比的方法抽象地表示被控对象的数值大小。
在实际工程中,这个调节范围往往
被认为与被控对象(反馈)的测量范围(量程)一致。
PID功能块只接受0.0-1.0之间的实数(实际上就是百分比)作为反馈、给定与控
制输出的有效数值,如果是直接使用PID功能块编程,必须保证数据在这个范围之
内,否则会出错。
其他如增益、采样时间、积分时间、微分时间都是实数。
因此,必须把外围实际的物理量与PID功能块需要的(或者输出的)数据之间进行转
换。
这就是所谓输入/输出的转换与标准化处理。
《S7-200系统手册》上有详细的介
绍。
S7-200的编程软件Micro/WIN提供了PID指令向导,以方便地完成这些转换/
标准化处理。
除此之外,PID指令也同时会被自动调用。
调试PID控制器
PID控制的效果就是看反馈(也就是控制对象)是否跟随设定值(给定),是否响应
快速、稳定,是否能够抑制闭环中的各种扰动而回复稳定。
要衡量PID参数是否合适,必须能够连续观察反馈对于给定变化的响应曲线;而实际
上PID的参数也是通过观察反馈波形而调试的。
因此,没有能够观察反馈的连续变化
波形曲线的有效手段,就谈不上调试PID参数。
观察反馈量的连续波形,可以使用带慢扫描记忆功能的示波器(如数字示波器),波
形记录仪,或者在PC机上做的趋势曲线监控画面等。
新版编程软件STEP7-Micro/WINV4.0内置了一个PID调试控制面板工具,具有
图形化的给定、反馈、调节器输出波形显示,可以用于手动调试PID参数。
对于没有
“自整定PID”功能的老版CPU,也能实现PID手动调节。
PID参数的取值,以及它们之间的配合,对PID控制是否稳定具有重要的意义。
这些
主要参数是:
?
采样时间:
计算机必须按照一定的时间间隔对反馈进行采样,才能进行PID控制的计算。
采样时
间就是对反馈进行采样的间隔。
短于采样时间间隔的信号变化是不能测量到的。
过短
的采样时间没有必要,过长的采样间隔显然不能满足扰动变化比较快、或者速度响应
要求高的场合。
编程时指定的PID控制器采样时间必须与实际的采样时间一致。
S7-200中PID的采
样时间精度用定时中断来保证。
?
增益(Gain,放大系数,比例常数)
增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。
过大的增益
会造成反馈的振荡。
?
积分时间(IntegralTime)
偏差值恒定时,积分时间决定了控制器输出的变化速率。
积分时间越短,偏差得到的
修正越快。
过短的积分时间有可能造成不稳定。
积分时间的长度相当于在阶跃给定下,增益为“1”的时候,输出的变化量与偏差值相
等所需要的时间,也就是输出变化到二倍于初始阶跃偏差的时间。
如果将积分时间设为最大值,则相当于没有积分作用。
?
微分时间(DerivativeTime)
偏差值发生改变时,微分作用将增加一个尖峰到输出中,随着时间流逝减小。
微分时
间越长,输出的变化越大。
微分使控制对扰动的敏感度增加,也就是偏差的变化率越
大,微分控制作用越强。
微分相当于对反馈变化趋势的预测性调整。
如果将微分时间设置为0就不起作用,控制器将作为PI调节器工作。
常问问题
1、对于某个具体的PID控制项目,是否可能事先得知比较合适的参数?
有没有相关
的经验数据?
虽然有理论上计算PID参数的方法,但由于闭环调节的影响因素很多而不能全部在数
学上精确地描述,计算出的数值往往没有什么实际意义。
因此,除了实际调试获得参
数外,没有什么可用的经验参数值存在。
甚至对于两套看似一样的系统,都可能通过
实际调试得到完全不同的参数值。
2、PID控制不稳定怎么办?
如何调试PID?
闭环系统的调试,首先应当做开环测试。
所谓开环,就是在PID调节器不投入工作的
时候,观察:
?
反馈通道的信号是否稳定
?
输出通道是否动作正常
可以试着给出一些比较保守的PID参数,比如放大倍数(增益)不要太大,可以小于
1,积分时间不要太短,以免引起振荡。
在这个基础上,可以直接投入运行观察反馈的
波形变化。
给出一个阶跃给定,观察系统的响应是最好的方法。
如果反馈达到给定值之后,历经多次振荡才能稳定或者根本不稳定,应该考虑是否增
益过大、积分时间过短;如果反馈迟迟不能跟随给定,上升速度很慢,应该考虑是否
增益过小、积分时间过长……
总之,PID参数的调试是一个综合的、互相影响的过程,实际调试过程中的多次尝试
是非常重要的步骤,也是必须的。
S7-200的新一代产品提供了自整定的PID细调功能。
3、没有采用积分控制时,为何反馈达不到给定?
这是必然的。
因为积分控制的作用在于消除纯比例调节系统固有的“静差”。
没有积
分控制的比例控制系统中,没有偏差就没有输出量,没有输出就不能维持反馈值与给
定值相等。
所以永远不能做到没有偏差。
4、如何实现PID反作用调节?
参见PID向导中的常问问题。
5、S7-200控制变频器,在变频器也有PID控制功能时,应当使用谁的PID功能?
可以根据具体情况使用。
一般来说,如果需要控制的变量直接与变频器直接有关,比
如变频水泵控制水压等,可以优先考虑使用变频器的PID功能。
6、《S7-200系统手册》上的附录H.14“用S7-200实现PID控制”的例子,是否可
以直接使用?
《S7-200系统手册》中的附录H在英文原版中并不存在。
H.14的PID例子是在第一代产品还不支持PID运算指令时的产物。
现在用户可以使用
PID指令块,或者PIDWizard(PID向导)编辑PID控制程序。
PIDWizard-PID向导
Micro/WIN提供了PIDWizard(PID指令向导),可以帮助用户方便地生成一个闭环
控制过程的PID算法。
此向导可以完成绝大多数PID运算的自动编程,用户只需在主
程序中调用PID向导生成的子程序,就可以完成PID控制任务。
PID向导既可以生成模拟量输出PID控制算法,也支持开关量输出;既支持连续自动
调节,也支持手动参与控制。
建议用户使用此向导对PID编程,以避免不必要的错
误。
如果用户不能确定中文编程界面的语义,我们建议用户使用英文版本的
Micro/WIN,以免对向导中相关概念发生误解。
建议用户使用较新的编程软件版本。
在新版本中的PID向导获得了改善。
PID向导编程步骤
在Micro/WIN中的命令菜单中选择Tools>InstructionWizard,然后在指令向导窗
口中选择PID指令:
图1.选择PID向导
在使用向导时必须先对项目进行编译,在随后弹出的对话框中选择“Yes”,确认编
译。
如果已有的程序中存在错误,或者有没有编完的指令,编译不能通过。
如果你的项目中已经配置了一个PID回路,则向导会指出已经存在的PID回路,并让
你选择是配置修改已有的回路,还是配置一个新的回路:
图2.选择需要配置的回路
第一步:
定义需要配置的PID回路号
图3.选择PID回路号
第二步:
设定PID回路参数
图4.设置PID参数
图4中:
a.定义回路设定值(SP,即给定)的范围:
在低限(LowRange)和高限(HighRange)输入域中输入实数,缺省值为0.0和
100.0,表示给定值的取值范围占过程反馈量程的百分比。
这个范围是给定值的取值范围。
它也可以用实际的工程单位数值表示。
参见:
设置
给定-反馈的量程范围。
以下定义PID回路参数,这些参数都应当是实数:
b.Gain(增益):
即比例常数。
c.IntegralTime(积分时间):
如果不想要积分作用,可以把积分时间设为无
穷大:
9999.99
d.DerivativeTime(微分时间):
如果不想要微分回路,可以把微分时间设为
0。
e.SampleTime(采样时间):
是PID控制回路对反馈采样和重新计算输出值的时
间间隔。
在向导完成后,若想要修改此数,则必须返回向导中修改,不可在程序中或
状态表中修改。
注意:
关于具体的PID参数值,每一个项目都不一样,需要现场调试来定,没有所
谓经验参数。
第三步:
设定回路输入输出值
图5.设定PID输入输出参数
在图5中,首先设定过程变量的范围:
a.指定输入类型
oUnipolar:
单极性,即输入的信号为正,如0-10V或0-20mA等
oBipolar:
双极性,输入信号在从负到正的范围内变化。
如输入信号为±10V、
±5V等时选用
o20%Offset:
选用20%偏移。
如果输入为4-20mA则选单极性及此项,4mA是0
-20mA信号的20%,所以选20%偏移,即4mA对应6400,20mA对应32000
b.反馈输入取值范围
o在a.设置为Unipolar时,缺省值为0-32000,对应输入量程范围0-10V或
0-20mA等,输入信号为正
o在a.设置为Bipolar时,缺省的取值为-32000-+32000,对应的输入范围根
据量程不同可以是±10V、±5V等
o在a.选中20%Offset时,取值范围为6400-32000,不可改变
此反馈输入也可以是工程单位数值,参见:
设置给定-反馈的量程范围。
然后定义输出类型
c.OutputType(输出类型)
可以选择模拟量输出或数字量输出。
模拟量输出用来控制一些需要模拟量给定的设
备,如比例阀、变频器等;数字量输出实际上是控制输出点的通、断状态按照一定的
占空比变化,可以控制固态继电器(加热棒等)
d.选择模拟量则需设定回路输出变量值的范围,可以选择:
oUnipolar:
单极性输出,可为0-10V或0-20mA等
oBipolar:
双极性输出,可为正负10V或正负5V等
o20%Offset:
如果选中20%偏移,使输出为4-20mA
e.取值范围:
od为Unipolar时,缺省值为0到32000
od为Bipolar时,取值-32000到32000
od为20%Offset时,取值6400-32000,不可改变
如果选择了开关量输出,需要设定此占空比的周期。
第四步:
设定回路报警选项
图6.设定回路报警限幅值
向导提供了三个输出来反映过程值(PV)的低值报警、高值报警及过程值模拟量模块错
误状态。
当报警条件满足时,输出置位为1。
这些功能在选中了相应的选择框之后起
作用。
a.使能低值报警并设定过程值(PV)报警的低值,此值为过程值的百分数,缺省值为
0.10,即报警的低值为过程值的10%。
此值最低可设为0.01,即满量程的1%
b.使能高值报警并设定过程值(PV)报警的高值,此值为过程值的百分数,缺省值为
0.90,即报警的高值为过程值的90%。
此值最高可设为1.00,即满量程的100%
c.使能过程值(PV)模拟量模块错误报警并设定模块于CPU连接时所处的模块位
置。
“0”就是第一个扩展模块的位置
第五步:
指定PID运算数据存储区
图7.分配运算数据存储区
PID指令(功能块)使用了一个120个字节的V区参数表来进行控制回路的运算工
作;除此之外,PID向导生成的输入/输出量的标准化程序也需要运算数据存储区。
需
要为它们定义一个起始地址,要保证该地址起始的若干字节在程序的其它地方没有被
重复使用。
如果点击“SuggestAddress”,则向导将自动为你设定当前程序中没有用
过的V区地址。
自动分配的地址只是在执行PID向导时编译检测到空闲地址。
向导将自动为该参数
表分配符号名,用户不要再自己为这些参数分配符号名,否则将导致PID控制不执
行。
第六步:
定义向导所生成的PID初使化子程序和中断程序名及手/自动模式
图8.指定子程序、中断服务程序名和选择手动控制
向导已经为初使化子程序和中断子程序定义了缺省名,你也可以修改成自己起的名
字。
a.指定PID初使化子程序的名字。
b.指定PID中断子程序的名字
注意:
1.如果你的项目中已经存在一个PID配置,则中断程序名为只读,不可更改。
因
为一个项目中所有PID共用一个中断程序,它的名字不会被任何新的PID所更改。
2.PID向导中断用的是SMB34定时中断,在用户使用了PI