1、9.3 PID 控制设计方法控制设计方法 一、一、 PID 的控制原理和特点 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID 控制,又称 PID 调节。PID 控制器问世至今已有近 70 年历史,它以其结构简单、稳定性好、工作可靠、调整方便而 成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时, 控制理论的其它技术难以采用时, 系统控制器的结构和参数必须依靠经验和现场调试来确定, 这时应用 PID 控制技术最为方便。 即当我们不完全了解一个系统和被控对象或不能通过有效的测量手段来获得 系统参数时,最适合用 PID 控制技术。
2、PID 控制,实际中也有 PI 和 PD 控制。PID 控制器就是根据系统 的误差,利用比例、积分、微分计算出控制量进行控制的。 PID 控制器由比例单元(P) 、积分单元(I)和微分单元(D)组成。 比例(P)调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作 用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚 至造成系统的不稳定。 积分(I)调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至 无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数 Ti,Ti 越小,积分 作用就越强
3、。反之 Ti 大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用 常与另两种调节规律结合,组成 PI 调节器或 PID 调节器。 微分(D)调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势, 因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的 动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作 用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时, 微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成 PD 或
4、 PID 控制器。 模拟 PID 控制系统原理框图如下图 9-56 所示,系统由模拟 PID 控制器和受控对象组成。 其输入 e (t)与输出 u (t)的关系为 t dip dt tde KdtteKteKtu 0 )( )()()( 因此它的传递函数为: sK s K K sE sU sG d i p )( )( )( 0 二、PID 控制器的参数整定 对于一个采用数字 PID 控制的系统来说,其控制效果的好坏与数字控制器的参数紧密相关,正确 选择数字 PID 的有关参数是提高控制效果的一项重要技术措施。 确定控制器结构 数字 PID 控制器控制参数的选择,可按连续时间 PID 参数整定方
5、法进行。 在选择数字 PID 参数之前,首先应该确定控制器结构。对允许有静差(或稳态误差)的系统,可 以适当选择 P 或 PD 控制器,使稳态误差在允许的范围内。对必须消除稳态误差的系统,应选择包含积 分控制的 PI 或 PID 控制器。一般来说,PI、PID 和 P 控制器应用较多。对于有滞后的对象,往往都加 入微分控制。 选择参数 控制器结构确定后,即可以开始选择参数。参数的选择,要根据受控对象的具体特性和对控制系 统的性能要求进行。 工程上, 一般要求整个闭环系统是稳定的, 对给定量的变化能迅速响应并平滑跟踪, 超调量小; 在不同干扰作用下, 能保证被控量在给定值; 当环境参数发生变化时
6、, 整个系统能保持稳定, 等等。这些要求,对控制系统自身性能来说,有些是矛盾的。我们必须满足主要的方面的要求,兼顾其 他方面,适当地折中处理。 采样周期的选择 数字 PID 控制是建立在用计算机对连续 PID 控制进行数字模拟基础上的,它是一种准连续控制。 显然,采样周期越小,数字模拟越精确,控制效果越接近连续控制。采样周期的选择应该考虑以下一些 因素:给定值的变化频率、被控对象的特性、使用的算式和执行机构的类型、控制的回路数。 调节 PID 的参数 PID 控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定 PID 控制器的 比例系数、积分时间和微分时间的大小。如何选择控制
7、算法的参数,要根据具体过程的要求来考虑。一 般来说,要求被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调量小,在不同干扰下系统输 出应能保持在给定值,操作变量不宜过大,在系统与环境阐述发生变化时控制应保持稳定。显然,要同 时满足上述各项要求是困难的,必须根据具体过程的要求,满足主要方面,并兼顾其它方面。 PID 控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统 的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过 工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行, 且方法简单、易
8、于掌握,在工程实际中被广泛采用。PID 控制器参数的工程整定方法,主要有扩充临界 比例法、扩充响应曲线法和归一依参数整定法。三种方法各有其特点,其共同点都是通过试验,然后按 照工程经验公式对控制器参数进行整定。 但无论采用哪一种方法所得到的控制器参数, 都需要在实际运 行中进行最后调整与完善。现在一般采用的是扩充临界比例法。利用该方法进行 PID 控制器参数的整 定步骤如下: 1首先预选择一个足够短的采样周期让系统工作,具体的说就是选择采样周期为被控对象纯滞后 时间的十分之一以下。 2曲调积分作用和微分作用,仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡, 记下这时的比例放大系数和临
9、界振荡周期。 3 在一定的控制度下通过公式计算得到 PID 控制器的参数。 所谓控制度就是以模拟调节器为基准, 将 DDC 的控制效果与模拟调节器的控制效果相比较。 三、PID 调节口诀 1. PID 常用口诀: 参数整定找最佳,从小到大顺序查,先是比例后积分,最后再把微分加,曲线 振荡很频繁,比例度盘要放大, 曲线漂浮绕大湾,比例度盘往小扳, 曲线偏离回复慢,积分时间往下降, 曲线波动周期长,积分时间再加长,曲线振荡频率快,先把微分降下来,动差大来波动慢,微分时间应 加长,理想曲线两个波,前高后低 4 比 1。 2. 一看二调多分析,调节质量不会低 PID 控制器参数的工程整定,各种调节系统
10、中 P.I.D 参数经验数据以下可参照: 温度 T: P=2060%,T=180600s,D=3180s 压力 P: P=3070%,T=24180s, 液位 L: P=2080%,T=60300s, 流量 L: P=40100%,T=660s。 a、比例控制(P) : 比例控制是最常用的控制手段之一,比方说我们控制一个加热器的恒温 100 度,当开始加热时, 离目标温度相差比较远,这时我们通常会加大加热,使温度快速上升,当温度超过 100 度时,我们则关 闭输出,通常我们会使用这样一个函数 e(t) = SP y(t)- u(t) = e(t)*P SP设定值 e(t)误差值 y(t)反馈值
11、 u(t)输出值 P比例系数 滞后性不是很大的控制对象使用比例控制方式就可以满足控制要求,但很多被控对象中因为有滞 后性。 也就是如果设定温度是 200 度,当采用比例方式控制时,如果 P 选择比较大,则会出现当温度达 到 200 度输出为 0 后,温度仍然会止不住的向上爬升,比方说升至 230 度,当温度超过 200 度太多后又 开始回落,尽管这时输出开始出力加热,但温度仍然会向下跌落一定的温度才会止跌回升,比方说降至 170 度,最后整个系统会稳定在一定的范围内进行振荡。如果这个振荡的幅度是允许的比方说家用电器 的控制,那则可以选用比例控制。 b、比例积分控制(PI) : 积分的存在是针对
12、比例控制要不就是有差值要不就是振荡的这种特点提出的改进, 它常与比例一块 进行控制,也就是 PI 控制。 其公式有很多种,但大多差别不大,标准公式如下: u(t) = Kp*e(t) + Kie(t) +u0 u(t)输出 Kp比例放大系数 Ki积分放大系数 e(t)误差 u0控制量基准值(基础偏差) 大家可以看到积分项是一个历史误差的累积值, 如果光用比例控制时, 我们知道要不就是达不到设 定值要不就是振荡, 在使用了积分项后就可以解决达不到设定值的静态误差问题, 比方说一个控制中使 用了 PI 控制后,如果存在静态误差,输出始终达不到设定值,这时积分项的误差累积值会越来越大, 这个累积值乘
13、上 Ki 后会在输出的比重中越占越多,使输出 u(t)越来越大,最终达到消除静态误差的目 的 PI 两个结合使用的情况下,我们的调整方式如下: 1、先将 I 值设为 0,将 P 值放至比较大,当出现稳定振荡时,我们再减小 P 值直到 P 值不振荡或 者振荡很小为止 (术语叫临界振荡状态) , 在有些情况下, 我们还可以在些 P 值的基础上再加大一点。 2、加大 I 值,直到输出达到设定值为止。 3、等系统冷却后,再重上电,看看系统的超调是否过大,加热速度是否太慢。 通过上面的这个调试过程,我们可以看到 P 值主要可以用来调整系统的响应速度,但太大会增大 超调量和稳定时间;而 I 值主要用来减小
14、静态误差。 因为 PI 系统中的 I 的存在会使整个控制系统的响应速度受到影响,为了解决这个问题,我们在控 制中增加了 D 微分项,微分项主要用来解决系统的响应速度问题,其完整的公式如下: u(t) = Kp*e(t) + Kie(t) + Kde(t) e(t-1)+u0 在 PID 的调试过程中,我们应注意以下步骤: 1、 关闭 I 和 D,也就是设为 0.加大 P,使其产生振荡; 2、 减小 P,找到临界振荡点; 3、 加大 I,使其达到目标值; 4、重新上电看超调、振荡和稳定时间是否吻合要求; 5、 针对超调和振荡的情况适当的增加一些微分项; 6、 注意所有调试均应在最大争载的情况下调
15、试,这样才能保证调试完的结果可以在全工作范围 内均有效。 四、西门子 PLC 1 S7-200 PID 指令格式 其梯形图格式为(图 9-57) 这里,TBL 为 PID 控制参数存储区的开始字节地址,这参数区共 36 个字节, 存 9 个参数,包括过程值、设定值、输出值、增益、采样时间、积分时间、微分 时间以及积分前项和过程前值,LOOP 为 PID 回路编号,可在 07 间取值,在 一个程序不能用相同编号,这意味着在一个 S7-200 的程序中,PID 指令最多只 能用 8 次,但此指令也可在子程序、中断程序中执行;EN、ENO 为西门子 PLC 指令调用输入、输出机制。输入端 EN 逻辑
16、条件 ON,则执行本指令,OFF 不执 行;本指令正确执行,则输出 ENO ON,否则 OFF。 指令中 TBL 是回路表的起始地址,LOOP 是回路编号。编译时如果指令指定的回路表起始地址或 回路号超出范围,CPU 将生成编译错误(范围错误),引起编译失败。PID 指令对回路表中的某些输入值 不进行范围检查,应保证过程变量、给定值等不超限。回路表见表 8-l。 过程变量与给定值址 PID 运算的输入值,在回路表中它们只能被 PID 指令读取而不能改写。每次完成 PID 运算后,都要更新回路表内的输出值 Mn,它被限制在 0.01.0。 如果 PID 指令中的算术运算发生错误, 特殊存储器位
17、SM1.1(溢出或非法数值)被置 1, 并将终止 PID 指令的执行。要想消除这种错误,在 F 一次执行 PID 运算之前,应改变引起运算错误的输入值,而不 是更新输出值。 西门子给出的 PID 计算公式为 Mn=MPn+MIn+MDn 输出;比例项+积分项+微分项 式中 Mn-第 n 采样时刻的计算值; MPn-第 n 采样时刻的比例项值; MIn-第 n 采样时刻的积分项值; MDn-第 n 采样时刻的微分项值。 而 MPn=Kc(SPn 一 PVn) 式中 Kc-增益; SPn-第 n 采样时刻的设定值; PVn-第 n 采样时刻的过程值。 而 MIn= Kc TsTI (SPn 一 P
18、Vn)+MX 式中 Kc-增益; Ts-采样时间间隔; TI -积分时问; SPn -第 n 采样时捌的给定值; PVn-第 n 采样时刻的过程值; MX-第 n 一 1 采样时刻的积分前值,也称积分或偏置。 积分和 MX 是所有积分前值之和。在每次计算出 MIn 之后,都要用 MIn 去更新 MX。其中 MIn 可 以被调整或限定。MX 的初值通常在第一次计算输出以前被设置为 Minitial。(初值)。积分项还包括其它 几个常数;增益 Kc,采样时间间隔 Ts 和积分时间 TI,其中采样时间是重新计算输出的时间间隔,而积 分时间控制积分项在整个输出结果中影响的大小。 MDn=Kc TDTs
19、 (SPn 一 PVn)一(SPn-1PVn-1) 为了避免给定值变化的微分作用而引起的跳变,假定给定值不变(SPn=SPn-1),这样,可以用过程 值的变化替代偏差的变化,计算算式可改进为: MDn =Kc TDTs (PVn-1 PVn) 式中 Kc-回路增益; Ts-回路采样时间; TD-微分时问 SPn- 第 n 采样时刻的给定值; SPn-1-第 n 一 1 采样时刻的给定值; PVn-第 n 采样时刻的过程变量值; PVn-1-第 n 一 1 采样时刻的过程变置值。 为了下一次计算微分项值,必须保存过程值,而不是偏差。在第一采样时刻。初始化为: PVn-1= PVn 2 S7-20
20、0 PID 指令要点 使用 PID 指令要注意如下几个要点: (1)回路控制类型的选择在许多控制系统中,只需要一种或两种回路控制类型。例如只需要比例回 路或者比例积分回路。通过设置常量参数,可先选中想要的回路控制类型。 如果不想要积分回路,可以把积分时间设为无穷大。即使没有积分作用,积分项还是不为零,因为 有初值 MX。 如果不想要微分回路,可以把微分时问置为零。 如果不想要比例回路,但需要积分或积分微分回路,可以把增益设为 0.0,系统会在计算积分项和微 分项时,把增益当作 1. 0 看待。 (2)采样时间间隔 为了让 PID 运算以预想的采样频率工作。PID 指令必须用在定时发生的中断程
21、序中或者用在主程序中被定时器所控制以一定频率执行。采样时间必须通过回路表输入到 PID 运算中。 (3)回路输入的转换和标准化 每个 PID 同路有两个输入星, 设定值(SP)和过程值(PV)。 设定值通常 是一个固定的值,比如是设定的汽车速度。过程值是与 PID 回路输出有关,可以衡量输出对控制系统 作用的大小。在汽车速度控制系统中,过程值可以是测速仪的输入(衡量车轮转速高低)。 设定值和过程值都可能是现实世界的值,它们的大小、范围和工程单位都可能不一样。PID 指令在 对这些量进行运算以前,必须把它们转换成标准的浮点型实数。 转换的第一步是把 16 位整数值转成浮点型实数值。下面的指令序列
22、提供了实现这种转换的方法。 XORD AC0,AC0 清空累加器 M0VW AIW0,AC0 把待变换的模拟量存入累加器 LDW= AC0,0 如果模拟量为正 JMP 0 则直接转成实数 NOT 否则 ORD 16#FFFF0000,AC0 先对 AC0 中值进行符号扩展 LBL 0 DTR AC0,AC0 把 32 位整数转成实数 转换的下一步是把实数值进一步标准化为 0.01.0 之间的实数, 下面的算式可以用来标准化给定值 或过程变量; Rnorm=(RRawSpan)+Offset 式中 Rnorm-标准化的实数值; RRaw-没有标准化的实数值或原值; Offset-单极性 0.0,
23、双极性为 0.5; Span-值域大小,可能最大值减去可能最小使,单极性为 32000(典型值);双极性为 64000(典型值)。 下面的指令把双极性实数标准化为 0.01.0 之间的实数。通常用在第一步转换之后: R 64000.0,AC0 累加器中的标准化值 +R 0. 5,AC0 加上偏置,使其落在 0.0l.0 之间 MOVR AC0,VDl00 标准化的值存人回路表 (4)回路输出值转换成刻度整数值 同路输出值般是控制变量,比如,在汽车速度控制中,可以是油 阀开度的设置。同时,输出是 0.0l .0 之间标准化了的实数值,在回路输出驱动模拟输出之前,必须把 回路输出转换成相应的 16
24、 位整数。这一过程,是给定值或过程变量的标准化转换的反过程。该过程的 第一步把回路输出转换成相应的实数值,公式如下: Rscal=(Mn 一 Offset)Span 式中 Rscal-回路输出的刻度实数值; Mn-回路输出的标准化实数值; Offset-单极性为 0.0,双极性为 0.5; Span-值域大小,可能最大值减去可能最小值,单极性为 32000(典型值);双极性为 64000(典型值)。 这一过程可以用下面的指令序列完成: MOVR VDl08 ,AC0 把回路输出值移人累加器 R 0.5,AC0 仅双极性有此句 *R 64000.0,AC0 在累加器中得到刻度值 下一步是把回路输
25、出的刻度转换成 16 位整数,可通过下面的指令序列来完成: ROUND AC0,AC0 把实数转换为 32 位整数 MOVW AC0,AQW0 把 16 位整数写人模拟输出寄存器 (5)正作用或反作用回路如果增益为正,那么该回路为正作用回路。如果增益为负,那么是反作用 回路。对于增益为零的积分或微分控制来说,如果指定积分时间、微分时间为正,就是正作用回路;指 定为负值,则是反作用回路。 (6)变量范围控制过程变量和给定值是 PID 运算的输入值,因此在同路表中,这些值只能被回路指 令读而不能改写。 输出变量是由 PID 运算产生的,所以在每一次 PID 运算完成之后,需更新回路表中的输出值,输
26、 出值被限定在 0.01.0 之间。当 PID 指令从手动方式转变到自动方式时,同路表中的输出值可以用来 初始化输出值。 如果使用积分控制,积分项前值要根据 PID 运算结果更新。这个更新了的值用作下一次 PID 运算 的输入,当输出值超过范围(大于 1.0 或小于 0.0),那么积分项前值必须根据下列公式进行调整: MX=1.0 (MPn+MDn) 当计算输出 Mn1.0 或 MX=(MPn+MDn) 当计算输出 Mn0.0 式中 MX-经过调整了的积分和(积分项前值); MPn-第 n 采样时刻的比例项值; MDn-第 n 采样时刻的微分项值; Mn-第 n 采样时刻的输出值。 这样调整积
27、分前值,一旦输出回到范围后,可以提高系统的响应性能。而且积分项前值也要限制在 0.01.0 之间, 然后在每次 PID 运算结束之后, 把积分项前值写入回路表, 以备在下次 PID 运算中使用。 用户可以在执行 PID 指令以前修改回路表中积分项前值。在实际运用中,这样做的目的是找到由 于积分项前值引起的问题。 手工调整积分项前值时, 必须小心谨慎, 还应保证写入的值在 0.01.0 之间。 回路表中的给定值与过程变量的差值 e 是用于 PID 运算中的差分运算,用户最好不要去修改此值。 (7)自动、手动切换 S7-200 的 PID 回路没有设置控制方式,只要 PID 块有效,就可以执行 P
28、ID 运 算。在这种意义上说,PID 运算存在一种“自动”运行方式,当 PID 运算不被执行时,称之为“手动” 方式。 从手动方式无扰动地切换到自动方式,为了达到无扰动切换,在转变到自动控制前,必须用手动方 式把当前输出值填人回路表中的 Mn 栏。 (8)使用 PID 向导 STEP7-MicroWIN 32 提供 PID 向导, 为模拟量控制程序定义 PTD 算法子程序。 选择菜单命令工具的指令向导,并从指令向导窗口选择 PID,即可一步步按提示操作。 具体操作步骤是 1)指定回路编号:只能在 07 间选择,且不能重复。 2)设定回路参数:指定表的首地址、回路参数及输入设定值地址。参数有采样
29、时间、增益、积分时间、 微分时问。 3)设定回路输入、输出:指定输入和输出地址、极性(单向还是双向)及高、低限。 单极(可编辑默认范围 032000) 双极(可编辑默认范围 -32000+32000) 4)设定报警: 指定回路警报选项, 有过程值(PV)低报警、 过程值(PV)高报警及模拟输入模块出错报警, 以及这些报警的输出位。同时,要指明该输入模块安放在 PLC 的位置。 5)为计算指定内存区: 使用 PID 指令, 除了要用 V 内存中的一个 36 个字节的参数表, 还要求一个 “暂 存区” ,用于存储临时计算结果。在此需指定该计算区开始的 V 内存字节地址。还可以选择增加 PID 的
30、手动控制。如选用也可手动控制,则还要指定使用的控制输入点。 6)指定初始化子程序和中断例行程序名称。 以上选项全部作完,回答完成,即开始生成代码。当生成代码完成,将在子程序中增加所名命的 初始化子程序项及中断子程序项。要使用它,在主程序中调用此初始化子程序就可以了。 4 PID 指令编程举例 某一水箱坐的水以变化的速度流出, 一台变频器驱动的水泵给水箱供水, 以保证水箱水位维持在满水 位的 75。过程变量由浮在水面上的水位测量仪提供,PID 控制器的输出置作为变频器的速度给定值。 过程变量与回路输出均为单极性模拟量,取值范围为 0.01.0。本例采用 PI 控制器,给定值为 0.75, 选取控
31、制器参数的初值为 Kc=0.25,Ts=0.1s Ti=30min。控制程序如下: 主程序(OB1) LD SM0.1 前次扫描时 CALL 0 调片初始化子程序 子程序 0 LD SM0.0 MOVR 0.75 VDl04 装入给定值 75 MOVR 0.25 VD112 装入回路增益 0.25 MOVR 0.10 VDll6 装人采样时间 0.1 s MOVR 30.0 VDl20 装入积分时间 30min MOVR 0.0 VDl24 关闭微分作用 MOVB 100 ,SMB34 设置定时中断 0 的时间间隔为 100ms ATCH 0,10 设置定时中断以执行 PID 指令 ENI 允
32、计中断,子程序 0 结束 中断程序 0 LD SM0.0 LTD AIW0, AC0 单极性模拟量经 AD 转换后存入累加器 DTR AC0 ,AC0 32 位整数转换为实数 R 32000.0, AC0 标准化累加器中的实数 MOVR AC0,VD100 存入回路表 LD I0.0 在自动方式下,执行 PID 指令 PID VB100.0 回路表的起始地址为 VB100,回路号为 0 LD SM0.0 MOVR VD108,AC0 PID 控制器的输出值送入累加器 *R 32000.0 ,AC0 将累加器中的数标准化 ROUND AC0,AC0 实数转换为 32 位整数 DTI AC0, A
33、OW0 将 16 位整数写入模拟量输出(DA)寄存器 由于 PID 具有诸多优点,所以它在工业控制中得到了极为广泛的应用。现在,大多数 PLC 都有专 门用于控制的指令。PLC 实现 PID 控制的方法有多种,直接应用 PID 指令来实现基于 PLC 的 PID 控制 器,是一种易于实现且经济实用的方法。 本例针对 PLC 闭环控制系统中 PID 控制器的实现,介绍了 PID 数字控制器的原理、实现方法和编 程实现。需要指出的是,PID 控制算法具有很强的灵活性,根据被控对象特点的不同,可以使用 PI 控 制、PD 控制、PID 控制等多种方式,从而达到更好的控制效果,在 PLC PID 数字
34、控制器的程序设计中, 也应充分考虑到这一点,保持 PID 控制算法的灵活性。 随着智能控制技术的发展,PID 控制与模糊控制、神经网络控制等现代控制方法相结合,可以实现 PID 控制器的参数自整定,使 PID 控制器具有经久不衰的生命力。 3 S7-200 PID 指令使用 1使用要点 如同使用向导所介绍的那样,使用 PID 指令关键有 4 点: (1)参数设定要指定回路编号(LOOP)及参数表(TBL)首地址。并设定好采样时间、增益、积分时间、微 分时间。 (2)预处理 编写程序把模拟量输入转换为 PID 计算对应格式(处于 0.1 之间的实数)的过程值(PV)及设 定值转换为 PID 计算
35、对应格式(处于 01 之间的实数)的设定值(SV)。并专送到参数表的相应地址中, 为 PID 运算做好前处理。 (3)指令调用 为 PID 指令执行指定输入条件,调用 PID 指令。最好编写定时中断程序,在中断程序 中调用 PID 指令。 (4)后处理 编写程序把 PID 计算的控制输出 Mn,处于 01 之间的实数)转换为对应格#(十六进制 宇,并选择好有效位),并传送到指定的模拟量输出模块的相应地址中,为 PID 运行结果执行提供条件。 2使用实例 以下用一个实例,进行 PID 指令使用说明。 图 9-58a 为主程序,当程序运行第一扫描周期,它调用子程序 SBR-0,即初始化程序。图 9
36、-58b 为 SBR-0 子程序,用以定时 PID 参数表设定及中断初始化。图 9-58c 为中断子程序。执行 PID 指令的前 处理、调用及后处理程序全在其中。该图加有注解,可对照阅读。 PID 指令向导的应用 PID 指令(见图 8 7)中的 TBL 是回路表的起始地址,LOOP 是回路的编号(07)。不同的 PID 指令 不能使用相同的回路编号。 s7-200 的 PID 指令没有设置控制方式,执行 PID 指令时为自动方式;不执行 PID 指令时为手动方 式。 s7-200 的 PID 指令与回路表配合使用,新版 CPU 的回路表(见表 8-1)有 23 个变量。编写 PID 控制 程
37、序时首先要把过程变量(pv)转换为 0.001.00 的标准化实数。PID 运算结束后,需要将回路输出 (0.001.00 的标准化实数)转换为可以送给模拟量输出模块的整数。为了让 PID 指令以稳定的采样周期 工作,应在定时中断程序中使用 PID 指令。综上所述,如果直接使用 PID 指令,编程的工作量和难度 都较大。 为了喊小编写 PID 控制程序的难度,s7-200 的编程软件设置了 PID 指令向导。单击编程软件指令 树中的 “向导PID” 图标, 或者执行菜单命令 “工具” “指令向导” , 在出现的对话框中选择 “PID” , 单击“下一步”按钮。然后存依次出现的对活框中设置以下内
38、容。 1)PID 同路的编号(07)。 2)PID 回路给定位的范围(默认范围为 0.0100.0,可修改)。 3)比例增益、采样时间(s)、积分时间(min)和微分时间(min)。如果设置微分时间为 0,则为 PI 控制 器。如果不需要积分作用,可将积分时间设为无穷大(“INF”)。因为有积分的初值 MX,即使没有积 分运算,积分项的数值也可能不为零。 4)回路输入量(反馈值 pv)的极性与范围:根据变送器的量程范围,可以选择单极性(默认范围为 0 32 000, 可修改)、 双极性(默认范围-32 000, +32 000, 可修改)或 20偏移量(默认范围为 6 40032 000, 不
39、可修改)。后者适用于输出为 420mA 的变送器。应为 s7-200 的模拟量输入模块只有 020mA 的量 程。 5)回路输出量的类型:如果选择模拟量输出,需要设置输出量的极性和范围,设置的方法与设置回 路输入量相同。如果选择数字量输出,需要设置以秒为单位的“占空比周期” 。 6)确定是否启用过程变量(pv)低限报警、高限报警功能,是否启用模拟量输入模块错误报警功能。 如果启用,需要设置相应的参数 7)PID 指令的参数表占用的 V 存储区起始地址。 完成了向导中的设置工作后,将会自动生成笫 x 号回路的初始化子程序 PIDx-INIT(x=07)、中断 程序 PID-EXE、 符号表 PI
40、Dx-SYM 和数据块 PIDx-DATA。 应在主程序中用 SM0. 0 调用 PIDx-INIT(见图 8-8),初始化 PID 控制中使用的变量,启动 PID 中断程序。以后 CPU 根据在向导中设置的 PID 采样时 间,周期件地调用中断程序 PID-EXE,在 PID-EXE 中执行 PID 运算。 PIDx-INIT 指令中的 PV-I 是模拟量输入模块提供的反馈值的地址, Set point-R 是以百分比为单位的 实数给定值(sp),假设 AIW0 对应的是 0400 C 的温度值,如果在向导中设置给定范围为 0.0 200.0(400对应于 200.0),则给定值 80.0(
41、)相当于 160 C。 BOOL变量Auto-Manual为1时, 该回路为自动模式(PID闭环控制), 反之为手动模式。 Manual Output 是手动模式时标准化的实数输入值(0.001.00)。 Output 是 PID 控制器的 INT 型输出值的地址, High Alarm 和 Low Alarm 分别是 pv 超过上限和下限 的报警信号输出,ModuleErr 是模拟量模块的故障输出信号。 PIDx-INIT 中的输入、输出参数的个数与向导中的选项设置有关。例如没有选择上限报警,则没有 输出变量 High Alarm。 8 1 5 PID 参数的整定方法 PID 控制器有 4
42、个主要的参数 Ts、Kc、Ti 和 TD需要整定,如果使用 PI 控制器,也有 3 个主要的 参数 Ts、Kc、Ti。需要整定。参数如果整定得不好,系统的动态、静态性能达不到要求,甚至会使系 统不能稳定运行。PID 的参数与系统动态、静态性能之间的关系是参数整定的基础。 8 2 3 PID 调节控制面板 s7-200 的 V4.0 版编程软件 STEP7-Micre/WIN 中的 PID 调节控制面板用图形方式监视 PID 回路。 该 面板还用来启动或停止自整定过程, 设置自整定的参数, 并将推荐的整定值或用户设置的整定值应用到 实际控制中。图 8-10 给出了在自整定过程中 PID 控制器的
43、给定值 SP、输出 MV 和过程变量 PV 的变化 情况。 使用控制面板时,首先应将至少有一个 PID 回路的用户程序下载到 CPU。为了显示 PID 回路的操 作, STEP7-MictoWIN 应与 s7-200 建立起通信连接, PLC 必须处于运行(RUN)模式。 执行菜单命令 “工 具”“PID 调节控制面板” ,打开控制面板后,可以观察到过程变量 PV、控制器输出 MV 和设定值 SP 的变化曲线和当前的数值。 控制面板屏幕左上角显示连接的 PLC 的站地址(远程地址),右上角显示 PLC 的型号和版本号。远 程地址下面是过程变量的条形图,条形图下面是过程变量的实际值和用百分数表示
44、的相对值。 条形图右侧的“当前值”区显示了设定值、采样时间、增益、积分时间、微分时间的数值。控制器 的输出值用带数字值的水平条形图来表示。 “当前值”区右边的图形显示区用不同的颜色显示过程变量 PV、给定值 SP 和 PID 输出量 MV 相对 于时间的曲线。左侧纵轴的刻度是用百分数表示的各变量的相对值,右侧纵轴的刻度是 PID 输出和过 程变量的实际值。 屏幕的左下方是“调节参数”区,在这一区域显示和修改增益、积分时间和微分时间。用单选框选 择显示参数当前值、建议值或手动值三者之一。如果要修改整定参数,应选择“手动” 。 单击“更新 PLC”按钮,将显示的增益、积分时间和微分时间传送入 PL
45、C 被监视的 PID 回路中。可以用“开始自动调节”按钮来启动自整定序列。 图形显示下方的“当前 PID”下拉列表框用下拉式菜单选择希望在控制面板中监视的 PID 回路,在 “采样率”区,可以选择图形显示的采样时间间隔(1480 s),用“设置时标”按钮来使修改后的采样 速率生效。可以用“恢复”按钮冻结和恢复曲线图的显示。在图形区单击鼠标右键,然后执行“clear” (清除)命令,可以清除图形。 图形区的右下侧是图例,标出了过程量、给定值和输出值曲线的颜色。 单击“调节参数”区内的“高级”按钮,在弹出的对话框中可以选择是否自动计算滞后值和偏移值 (见图 8-11)。 为了尽量减少自整定过程对控
46、制系统的干扰, 用户也可以自己设置滞后值和偏移值。 在 “其 他选项”区可以指定起始输出步长和看门狗时间。 PID 参数的推荐值与用“动态响应选项”区中的单选框选择的响应速度有关(见图 8-11)。 “快速” 响应可能产生超调,对应于欠阻尼整定状态; “中速”响应可能处于超调的边沿,对应于临界阻尼整定 状态; “慢速”响应和“很慢”响应可能没有超调,分别对应于过阻尼和严重过阻尼整定状态。 设置好参数后,单击“确定”按钮,返回图 8-10 中的 PID 调爷控制面板的主窗口。 在完成自整定序列且已将建议的整定参数传输至 PLC 后,可以用控制面板来监视回路对阶跃变化 的给定值的响应。 8 2 4
47、 PID 参数自整定实例 为了观察自整定的效果,将自整定用于一个微型温度控制系统,温度变送器将 060的温度转换 为 DC 010V 的电压, CPU224 的模拟量输入通道 A(AIW0)将它转换为 032 000 的数字量。 加热用的 电阻丝用 Q0.0 输出的 DC 24V PWM 脉冲来控制。 1 第一次实验 单击编程软件指令树中的“向导PID”图标,在出现的对话框中,设置 PID 回路 0 的设定值范 围为 0. 0100.0,增益为 l .0,采样周期为 l .0 s,积分时间为 l 0min,微分时间为 0 5min。设置 PID 控制器的输入、 输出量均为单极性, 变化范围均为
48、 032 000, 回路不使用报警功能, 占用 VB0VB119。 完成了向导中的设置工作后,将会自动生成子程序 PID0_INIT 和中断程序 PID- EXE。在编程时, 将指令树的 “指令调用子程序” 文件夹中的 PID0_INIT 图标 “拖放” 到主程序的梯形图编辑区中(见 图 8-12),设置 PID0-INIT 的输入过程变量 PV_I 的地址为 AIW0,实数没定值 SetPotm-R(即波形图 8-13 中的 SP)为 80 .0,PID 控制器的输出变量 OutPut(即波形图中的 MV)的地址为 VW200。 主程序中使用的V区地址不能与同路0占用的VB0V119冲突。
49、每个扫描周期都应执行PID0_INIT, 因此,用一直闭合的 SM0. 0 的常开触点来控制它的使能输入端(EN)。 双击指令树中的“向导PTOPWM”图标,在出现的向导对话框中,设置 Q0. 0 输出的 PWM 脉冲以s 为单位,设置完成后将会生成子程序 PWM0-RUN。在主程序中,它的 EN 输入端和 RUN 输 入端均用 SM0. 0 的常开触点控制(见图 8-12)。设置 PWM 脉冲的周期 Cycle 为 32 000s,用 VW200 中的 PID 的输出值作为 PWM 脉冲的宽度,VW200 为 032000 时,对应的 PWM 的脉冲占空比为 0 1。 将程序块和数据块下载到
50、 CPU 后,将 CPU 切换到 RUN 模式,执行菜单命令“工具”“PID 调节 控制面板” ,用 PID 调节控制面板监视 PID 同路的运行情况,回路的阶跃响应曲线如图 8-13 所示。可 以看出过渡过程过于缓慢,需要对回路参数进行自整定。 在 PID 调制空制面板中单击“高级”按钮,在打开的对话框中使用系统预置的参数(见图 8-11)。滞 后值和偏差值分别为 0. 02 和 0. 08,动态响应的类型为快速。 单击图 8-l0 中的“开始自动调节”按钮,启动自整定过程。自整定过程的曲线如图 8-14 所示,回路 的设定值 SP 为纵坐标 80.00 处的水平线,PV 是过程变量(温度值