PID控制的基本原理(PLC实现)

关于PID控制

一、PID控制的结构

在工程实际中,应用最为广泛的调节器控制规律为比例积分微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近60年的历史了,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制主要和可靠的技术工具。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它设计技术难以使用,系统的控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象﹐或不能通过有效的测量手段来获得系统的参数的时候,便最适合用PID控制技术。

PID控制包含比例、积分、微分三部分,实际中也有PI和PD控制器。PID控制器就是根据系统的误差利用比例积分微分计算出控制量,图1.1中给出了一个PID控制的结构图:

图 1.1 PID控制的结构图

控制器输出和控制器输入(误差)之间的关系在时域中可用公式(1.1)表示如下:

u(t)Kp[e(t)Tdde(t)1e(t)dt] (1.1) dtTi

公式中,e(t)表示误差,也是控制器的输入,u(t)是控制器的输出, Kp、Td与Ti分别为比例系数、 积分时间常数及微分时间常数。(1.1)式又可表示为:

U(s)(KpKdsKi)E(s) (1.2) s

公式中,U(s)和E(s)分别为u(t)和e(t)的拉氏变换,Kp、KdKpTd、Ki为控制器的比例、积分、微分系数。 KpTi分别

1.1 比例(P)控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

1.2 积分(I)控制

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。

对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取关于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。 因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

1.3 微分(D)控制

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性的组件(环节)和(或)有滞后(delay)的组件,使力图克服误差的作用,其变化总是落后于误差的变化。解决的办法是使克服误差的作用的变化要有些“超前”,即在误差接近零时,克服误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使克服误差的控制作用等于零,甚至为负值,从而避免了被控量的严重地冲过头。

所以对有较大惯性和(或)滞后的被控对象,比例+微分(PD)的控制器能改善系统在调节过程中的动态特性。

二、如何实现PID控制

在一些系统中,需要进行PID控制,如一些板卡采集系统,甚至在一些DCS和PLC的系统中有时要扩充系统的PID控制回路,而由于系统硬件和回路的限制需要在计算机上增加PID控制回路。在e尔系统中,实时数据库提供了PID控制点可以满足PID控制的需要。进入到实时数据库组态,新建点时选择PID控制点。e尔提供的PID控制可以提供理想微分、微分先行、实际微分等多种控制方式。

进行PID控制时,可以把PID的PV连接在实际的测量值上,OP连接在PID实际的输出值上。这样,在实时数据库运行时,就可以自动对其进行PID控制。

2.1 PID参数的调整

在PID参数进行整定时如果能够有理论的方法确定PID参数当然是最理想的方法,但是在实际的应用中,更多的是通过凑试法来确定PID的参数。

增大比例系数P一般将加快系统的响应,在有静差的情况下有利于减小静差,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。

增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长。

增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。

在凑试时,可参考以上参数对系统控制过程的影响趋势,对参数调整实行先比例、后积分,再微分的整定步骤。

首先整定比例部分。将比例参数由小变大,并观察相应的系统响应,直至得到反应快、超调小的响应曲线。如果系统没有静差或静差已经小到允许范围内,并且对响应曲线已经满意,则只需要比例调节器即可。

如果在比例调节的基础上系统的静差不能满足设计要求,则必须加入积分环节。在整定时先将积分时间设定到一个比较大的值,然后将已经调节好的比例系数略为缩小(一般缩小为原值的0.8),然后减小积分时间,使得系统在保持良好动态性能的情况下,静差得到消除。在此过程中,可根据系统的响应曲线的好坏反复改变比例系数和积分时间,以期得到满意的控制过程和整定参数。

如果在上述调整过程中对系统的动态过程反复调整还不能得到满意的结果,则可以加入微分环节。首先把微分时间D设置为0,在上述基础上逐渐增加微分时间,同时相应的改变比例系数和积分时间,逐步凑试,直至得到满意的调节效果。

2.2 PID控制回路的运行

在PID控制回路投入运行时,首先可以把它设置在手动状态下,这时设定值会自动跟踪测量值,当系统达到一个相对稳定的状态后,再把它切换到自动状态下,这样可以避免系统频繁动作而导致系统不稳定。

2.3 复杂回路的控制

2.3.1 前馈控制系统

通常的反馈控制系统中,对干扰造成一定后果,才能反馈过来产生抑制干扰的控制作用,因而产生滞后控制的不良后果。为了克服这种滞后的不良控制,用计算机接受干扰信号后,在还没有产生后果之前插入一个前馈控制作用,使其刚好在干扰点上完全抵消干扰对控制变量的影响,因而又得名为扰动补偿控制。

在e尔的控制系统中,可以把前馈控制计算的结果作为PID控制的输出补偿量OCV,并采用加补偿,这样就形成了一个前馈控制系统了。

2.3.2 纯延迟补偿控制

在实际的控制过程中,由于执行机构和测量装置的延迟,系统有可能是一个纯滞后过程,如对于温度的控制其延迟时间可能多达10多分钟。这种滞后性质常引起被控对象产生超调或振荡,造成系统不容易达到稳定过程。因此,可以在控制过程中并联一个补偿环节,用来补偿被控制对象中的滞后部分,这样可以使系统快速达到稳定过程。

纯滞后控制系统是把滞后补偿的结果作为PID控制器的输入补偿量ICV,并作为输入补偿的减补偿。这样就构成了一个纯滞后的SMITH预测控制回路。

三、PID 指令

在运用PLC对系统进行PID控制时,需要运用PID指令完成PID控制功能。下面的内容介绍了S7–200系列PLC的指令系统及其实现控制算法的实例。

3.1 PID 回路指令

PID 回路指令运用以回路表中的输入和组态信息进行 PID 运算。使 ENO = 0 的错误条件是:SM1.1 (溢出),SM4.3 (运行时间) ,0006 (间接寻址)。该指令影响下列特殊存储器标志位:SM1.1 (溢出)

输入输出 操 作 数 数据类型

TBL VB BYTE

LOOP BYTE 常数 (0 到 7)

PID 回路指令 (包含比例积分微分回路) 是用来进行 PID 运算。但是,可以进行这种 PID 运算的前提条件是逻辑堆栈栈顶 (TOS) 值必须为1。该指令有两个操作数:TABLE 和 LOOP。 其中,TABLE 是回路表的起始地址;LOOP 是回路号可以是 0 到 7 的整数。在程序中最多可以用8条PID指令。如果两个或两个以上的 PID 指令用了同一个回路号,那么即使这些指令的回路表不同,这些 PID 运算之间也会相互干涉,产生不可预料的结果。

回路表包含 9 个参数,用来控制和监视 PID 运算。这些参数分别是过程变量当前值 (PVn) ,过程变量前值 (PVn-1), 给定值 (SPn), 输出值 (Mn), 增益 (Kc), 采样时间 (Ts), 积分时间 (TI), 微分时间 (TD) 和积分项前值 (MX)。

为了让 PID 运算以预想的采样频率工作,PID 指令必须用在定时发生的中断程序中,或者用在主程序中被定时器所控制以一定频率执行。采样时间必须通过回路表输入到 PID 运算中。

3.2 使用 STEP 7-Micro/WIN 32 中的 PID 向导

STEP 7–Micro/WIN 32 提供了 PID 向导指导你定义一个闭环控制过程的 PID 算法。选择菜单命令Tools>Instruction Wizard ,然后从指令向导窗口中选择 PID 指令。

3.3 PID 算法

PID 控制器调节输出,保证偏差 (e) 为零,使系统达到稳定状态,偏差 (e) 是给定值 (SP) 和过程变量 (PV) 的差。PID 控制的原理基于下面的算式:输出 M (t) 是比例项积分项和微分项的函数。其中

M(t)KceKcedtKc0tde dt

M(t) PID 回路的输出是时间的函数

Kc PID 回路的增益

e PID 回路的偏差 (给定值与过程变量之差)

Minitial PID 回路输出的初始值

为了能让数字计算机处理这个控制算式,连续算式必须离散化为周期采样偏差算式,才能用来计算输出值数字。计算机处理的算式如下:

其中

Mn 在第 n 采样时刻PID 回路输出的计算值

Kc PID 回路增益

en 在第 n 采样时刻的偏差值

en – 1 在第 n-1 采样时刻的偏差值 (偏差前项)

KI 积分项的比例常数

Minitial PID 回路输出的初值

KD 微分项的比例常数

从这个公式可以看出,积分项是从第 1 个采样周期到当前采样周期所有误差项的函数,微分项是当前采样和前一次采样的函数,比例项仅是当前采样的函数。在数字计算机中,不保存所有的误差项,其实也不必要。

由于计算机从第一次采样开始,每有一个偏差采样值必须计算一次输出值,只需要保存偏差前值和积分项前值。利用计算机处理的重复性,可以化简以上算式为:

其中

Mn 在第 n 采样时刻PID 回路输出的计算值

Kc PID 回_____路增益

en 在第 n 采样时刻的偏差值

en – 1 在第 n-1 采样时刻的偏差值 (偏差前项)

KI 积分项的比例常数

MX 积分项前值

KD 微分项的比例常数

CPU实际使用以上简化算式的改进形式计算 PID 输出。这个改进型算式是:

其中

Mn 第 n 采样时刻的计算值

Min 第 n 采样时刻的积分项值

MDn 第 n 采样时刻的微分项值

3.4 比例项

比例项 MP 是增益 (Kc) 和偏差 (e) 的乘积。其中 Kc 决定输出对偏差的灵敏度,偏差 (e) 是给定值(SP) 与过程变量值 (PV) 之差。CPU 执行的求比例项算式是:

MPn = Kc * (SPn - PVn)

其中

MPn 第 n 采样时刻比例项的值

Kc 增益

SPn 第 n 采样时刻的给定值

PVn 第 n 采样时刻的过程变量值

积分项

积分项值 MI 与偏差和成正比CPU 执行的求积分项算式是

MIn =Kc * TS / TI * (SPn - PVn) + MX

其中:

Min 第 n 采样时刻的积分项值

Kc 增益

TS 采样时间间隔

TI 积分时间

SPn 第 n 采样时刻的给定值

PVn 第 n 采样时刻的过程变量值

MX 第 n-1 采样时刻的积分项 (积分项前值) (也称积分和或偏置)

积分和 (MX) 是所有积分项前值之和。在每次计算出 MIn 之后,都要用 MIn 去更新 mx 。其中 MIn可以被调整或限定。 MX 的初值通常在第一次计算输出以前被设置为Minitial (初值)。 积分项还包括其他几个常数:增益 (Kc), 采样时间间隔 (TS) 和积分时间 (TI)。 其中采样时间是重新计算输出的时间间隔,而积分时间控制积分项在整个输出结果中影响的大小。

3.5 微分项

微分项值 MD 与偏差的变化成正比。其计算等式为:

MDn = KC * TD / TS * ((SPn - PVn) - (SPn - 1 - PVn - 1))

为了避免给定值变化的微分作用而引起的跳变, 假定给定值不变(SPn=SPn-1)。 这样,可以用过程变量的变化替代偏差的变化,计算算式可改进为:

MDn = KC * TD / TS * (SPn - PVn - SPn + PVn - 1)

MDn = KC * TD / TS * (PVn - 1 - PVn)

其中:

MDn 第 n 采样时刻的微分项值

Kc 回路增益

Ts 回路采样时间

TD 微分时间

SPn 第 n 采样时刻的给定值

SPn – 1 第 n-1 采样时刻的给定值

PVn – 1 第 n-1 采样时刻的过程变量值

为了下一次计算微分项值, 必须保存过程变量,而不是偏差在第一采样时刻,初始化为 PVn -1=PVn

3.6 回路控制类型的选择

在许多控制系统中, 只需要一种或二种回路控制类型。例如只需要比例回路或者比例积分回路。通过设置常量参数,可先选中想要的回路控制类型。

如果不想要积分回路,可以把积分时间设为无穷大。即使没有积分作用,积分项还是不为零,因为有初值MX。

如果不想要微分回路, 可以把微分时间置为零。

如果不想要比例回路, 但需要积分或积分微分回路,可以把增益设为 0.0, 系统会在计算积分项和微分项时,把增益当作 1.0 看待。

3.7 回路输入的转换和标准化

每个 PID 回路有两个输入量,给定值 (SP) 和过程变量 (PV)。给定值通常是一个固定的值,比如是设定的汽车速度。过程变量是与 PID 回路输出有关,可以衡量输出对控制系统作用的大小。在汽车速度控制系统中,过程变量可以是测速仪的输入 (衡量车轮转速高低)。

给定值和过程变量都可能是现实世界的值, 它们的大小、范围和工程单位都可能不一样。PID 指令在对这些量进行运算以前,必须把他们转换成标准的浮点型实数。

转换的第一步是把 16 位整数值转成浮点型实数值。下面的指令序列提供了实现这种转换的方法:

XORD AC0, AC0 //清空累加器

MOVW AIW0, AC0 //把待变换的模拟量存入累加器

LDW>= AC0, 0 //如果模拟量为正

JMP 0 //则直接转成实数

NOT //否则

ORD 16#FFFF0000, AC0 //先对 AC0 中值进行符号扩展

LBL 0

DTR AC0, AC0 //把 32 位整数转成实数

转换的下一步是把实数值进一步标准化为 0.0~1.0 之间的实数。下面的算式可以用来标准化给定值或过程变量:

RNorm = (RRaw / Span) + Offset)

其中:

RNorm 标准化的实数值

Rraw 没有标准化的实数值或原值

Offset 单极性为 0.0 双极性为 0.5

Span 值域大小, 可能最大值减去可能最小值

单极性为 32,000 (典型值)

双极性为 64,000 (典型值)

下面的指令把双极性实数标准化为 0.0~1.0 之间的实数。通常用在第一步转换之后: /R 64000.0, AC0 //累加器中的标准化值

+R 0.5, AC0 //加上偏置使其落在 0.0 1.0 之间

MOVR AC0, VD100 //标准化的值存入回路表

3.8 回路输出值转换成刻度整数值

回路输出值一般是控制变量, 比如, 在汽车速度控制中,可以是油阀开度的设置。同时,输出是0.0~1.0 之间的标准化了的实数值,在回路输出驱动模拟输出之前,必须把回路输出转换成相应的16 位整数。这一过程,是给定值或过程变量的标准化转换的反过程。该过程的第一步把回路输出转换成相应的实数值,公式如下:

RScal = (M n - Offset) * Span

其中:

Rscal 回路输出的刻度实数值

Mn 回路输出的标准化实数值

Offset 单极性为 0.0 双极性为 0.5

Span 值域大小可能最大值减去可能最小值

单极性为 32,000 (典型值)

双极性为 64,000 (典型值)

这一过程可以用下面的指令序列完成:

MOVR VD108,AC0 //把回路输出值移入累加器

–R 0.5,AC0 //仅双极性有此句

*R 64000.0,AC0 //在累加器中得到刻度值

下一步是把回路输出的刻度转换成 16 位整数,可通过下面的指令序列来完成: ROUND AC0 AC0 //把实数转换为 32 位整数

MOVW AC0, AQW0 //把16 位整数写入模拟输出寄存器

3.9 正作用或反作用回路

如果增益为正, 那么该回路为正作用回路。如果增益为负,那么是反作用回路。对于增益为零的积分或微分控制来说,如果指定积分时间、微分时间为正,就是正作用回路;指定为负值,则是反作用回路。

3.10 变量和范围

过程变量和给定值是 PID 运算的输入值,因此在回路表中,这些值只能被回路指令读而不能改写。输出变量是由 PID 运算产生的,所以在每一次 PID 运算完成之后,需更新回路表中的输出值,输出值被限定在 0.0~1.0 之间。当 PID 指令从手动方式转变到自动方式时,回路表中的输出值可以用来初始化输出值。

如果使用积分控制, 积分项前值要根据 PID 运算结果更新。这个更新了的值用作下一次 PID 运算的输入,当输出值超过范围 (大于 1.0 或小于 0.0), 那么积分项前值必须根据下列公式进行调整:

MX = 1.0 - (MPn + MDn) 当计算输出 Mn > 1.0

MX = - (MPn + MDn) 当计算输出 Mn

其中

MX 经过调整了的积分和 (积分项前值)

MPn 第 n 采样时刻的比例项值

MDn 第n 采样时刻的微分项值

Mn 第 n 采样时刻的输出值

这样调整积分前值, 一旦输出回到范围后,可以提高系统的响应性能。而且积分项前值也要限制在0.0~1.0 之间,然后在每次 PID 运算结束之后,把积分项前值写入回路表,

以备在下次 PID 运算中使用。

用户可以在执行 PID 指令以前修改回路表中积分项前值。在实际运用中,这样做的目的是找到由于积分项前值引起的问题。手工调整积分项前值时,必须小心谨慎,还应保证写入的值在 0.0~1.0 之间。

回路表中的给定值与过程变量的差值 ( ) 是用于 PID 运算中的差分运算,用户最好不要去修改此值。

3.11 控制方式

S7–200 的 PID 回路没有设置控制方式,只要 PID 块有效,就可以执行 PID 运算。在这种意义上说,PID 运算存在一种“自动”运行方式。当 PID 运算不被执行时,我们称之为“手动”方式。

同计数器指令相似, PID 指令有一个使能位。当该使能位检测到一个信号的正跳变 (从0到 1), PID指令执行一系列的动作,使 PID 指令从手动方式无扰动地切换到自动方式。为了达到无扰动切换,在转变到自动控制前,必须用手动方式把当前输出值填入回路表中的 Mn 栏。PID 指令对回路表中的值进行下列动作,以保证当使能位正跳变出现时,从手动方式无扰动切换到自动方式:

置给定值 (SPn) 过程变量 (PVn)

置过量变量前值 (PVn-1) 过程变量现值 (PVn)

置积分项前值 (MX) 输出值 (Mn)

PID 使能位的默认值是1, 在 CPU 启动或从 STOP 方式转到 RUN 方式时建立。CPU 进入 RUN 方式后首次使 PID 块有效,没有检测到使能位的正跳变,那么就没有无扰动切换的动作。

3.12 报警与特殊操作

PID 指令是执行 PID 运算的简单而功能强大的指令。如果其他过程需要对回路变量进行报警等特殊操作,那么可以用 CPU 支持的基本指令实现这些特殊操作功能。

3.13 出错条件

如果指令指定的回路表起始地址以及回路号操作数超出范围, 那么在编译期间,CPU 令产生编译错误 (范围错误), 从而编译失败。PID 指令不检查回路表中的值是否在范围之内,所以必须小心操作以保证过程变量和设定值不超界。

PID 指令不检查回路表中的值是否超界,你必须保证过程变量和设定值 (以及偏置和前一次过程变量) 必须在 0.0 到 1.0 之间。

如果 PID 计算的算术运算发生错误,那么特殊存储器标志位 SM1.1 (溢出或非法值) 会被置 1, 并且中止 PID 指令的执行。 (要想消除这种错误,单靠改变回路表中的输出值是不够的,正确的方法是在下一次执行 PID 运算之前,改变引起算术运算错误的输入值,而不是更新输出值)。

3.14 回路表

36 个字节的回路表的格式如表 9-19 所示

表 9-19 回路表格式

3.15 PID 指令编程举例

在本例中, 有一水箱需要维持一定的水位,该水箱里的水以变化的速度流出。这就需要有一个水泵以不同的速度给水箱供水,以维持水位不变,这样才能使水箱不断水。

本系统的给定值是水箱满水位的 75% 时的水位,过程变量由漂浮在水面的水位测量仪给出。输出值是进水泵的速度,可以从允许最大值的 0% 变到 100%。

给定值可以预先设定后直接输入到回路表中, 过程变量值是来自水位表的单极性模拟量,回路输出

值也是一个单极性模拟量,用来控制进水泵速度。这两个模拟量的范围是 0.0~1.0, 分辨率为1/32000 (标准化)。

在本系统中, 只使用比例和积分控制,其回路增益和时间常数可以通过工程计算初步确定。但还需要进一步调整以达到最优控制效果。初步确定的增益和时间常数为:

KC是 0.25

TS 是 0.1 秒

TI 是 30 分钟

系统启动时, 关闭出水口,用手动控制进水泵速度,使水位达到满水位的 75% ,然后打开出水口,同时水泵控制从手动方式切换到自动方式。这种切换由一个输入的数字量控制,描述如下:

I0.0 位控制手动到自动的切换, 0 代表手动;1 代表自动。

当工作在手动控制方式下, 可以把水泵速度 (0.0~1.0 之间的实数) 写到 VD108 (VD108 是回路表中保存输出的寄存器)。

图 9-28 是本控制实例的程序

图9-28 PID 回路控制实例

图 9-28 PID 回路控制实例 (续)

图9-28 PID回路控制实例 (续)

关于PID控制

一、PID控制的结构

在工程实际中,应用最为广泛的调节器控制规律为比例积分微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近60年的历史了,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制主要和可靠的技术工具。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它设计技术难以使用,系统的控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象﹐或不能通过有效的测量手段来获得系统的参数的时候,便最适合用PID控制技术。

PID控制包含比例、积分、微分三部分,实际中也有PI和PD控制器。PID控制器就是根据系统的误差利用比例积分微分计算出控制量,图1.1中给出了一个PID控制的结构图:

图 1.1 PID控制的结构图

控制器输出和控制器输入(误差)之间的关系在时域中可用公式(1.1)表示如下:

u(t)Kp[e(t)Tdde(t)1e(t)dt] (1.1) dtTi

公式中,e(t)表示误差,也是控制器的输入,u(t)是控制器的输出, Kp、Td与Ti分别为比例系数、 积分时间常数及微分时间常数。(1.1)式又可表示为:

U(s)(KpKdsKi)E(s) (1.2) s

公式中,U(s)和E(s)分别为u(t)和e(t)的拉氏变换,Kp、KdKpTd、Ki为控制器的比例、积分、微分系数。 KpTi分别

1.1 比例(P)控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。

1.2 积分(I)控制

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。

对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取关于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。 因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

1.3 微分(D)控制

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性的组件(环节)和(或)有滞后(delay)的组件,使力图克服误差的作用,其变化总是落后于误差的变化。解决的办法是使克服误差的作用的变化要有些“超前”,即在误差接近零时,克服误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使克服误差的控制作用等于零,甚至为负值,从而避免了被控量的严重地冲过头。

所以对有较大惯性和(或)滞后的被控对象,比例+微分(PD)的控制器能改善系统在调节过程中的动态特性。

二、如何实现PID控制

在一些系统中,需要进行PID控制,如一些板卡采集系统,甚至在一些DCS和PLC的系统中有时要扩充系统的PID控制回路,而由于系统硬件和回路的限制需要在计算机上增加PID控制回路。在e尔系统中,实时数据库提供了PID控制点可以满足PID控制的需要。进入到实时数据库组态,新建点时选择PID控制点。e尔提供的PID控制可以提供理想微分、微分先行、实际微分等多种控制方式。

进行PID控制时,可以把PID的PV连接在实际的测量值上,OP连接在PID实际的输出值上。这样,在实时数据库运行时,就可以自动对其进行PID控制。

2.1 PID参数的调整

在PID参数进行整定时如果能够有理论的方法确定PID参数当然是最理想的方法,但是在实际的应用中,更多的是通过凑试法来确定PID的参数。

增大比例系数P一般将加快系统的响应,在有静差的情况下有利于减小静差,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。

增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长。

增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。

在凑试时,可参考以上参数对系统控制过程的影响趋势,对参数调整实行先比例、后积分,再微分的整定步骤。

首先整定比例部分。将比例参数由小变大,并观察相应的系统响应,直至得到反应快、超调小的响应曲线。如果系统没有静差或静差已经小到允许范围内,并且对响应曲线已经满意,则只需要比例调节器即可。

如果在比例调节的基础上系统的静差不能满足设计要求,则必须加入积分环节。在整定时先将积分时间设定到一个比较大的值,然后将已经调节好的比例系数略为缩小(一般缩小为原值的0.8),然后减小积分时间,使得系统在保持良好动态性能的情况下,静差得到消除。在此过程中,可根据系统的响应曲线的好坏反复改变比例系数和积分时间,以期得到满意的控制过程和整定参数。

如果在上述调整过程中对系统的动态过程反复调整还不能得到满意的结果,则可以加入微分环节。首先把微分时间D设置为0,在上述基础上逐渐增加微分时间,同时相应的改变比例系数和积分时间,逐步凑试,直至得到满意的调节效果。

2.2 PID控制回路的运行

在PID控制回路投入运行时,首先可以把它设置在手动状态下,这时设定值会自动跟踪测量值,当系统达到一个相对稳定的状态后,再把它切换到自动状态下,这样可以避免系统频繁动作而导致系统不稳定。

2.3 复杂回路的控制

2.3.1 前馈控制系统

通常的反馈控制系统中,对干扰造成一定后果,才能反馈过来产生抑制干扰的控制作用,因而产生滞后控制的不良后果。为了克服这种滞后的不良控制,用计算机接受干扰信号后,在还没有产生后果之前插入一个前馈控制作用,使其刚好在干扰点上完全抵消干扰对控制变量的影响,因而又得名为扰动补偿控制。

在e尔的控制系统中,可以把前馈控制计算的结果作为PID控制的输出补偿量OCV,并采用加补偿,这样就形成了一个前馈控制系统了。

2.3.2 纯延迟补偿控制

在实际的控制过程中,由于执行机构和测量装置的延迟,系统有可能是一个纯滞后过程,如对于温度的控制其延迟时间可能多达10多分钟。这种滞后性质常引起被控对象产生超调或振荡,造成系统不容易达到稳定过程。因此,可以在控制过程中并联一个补偿环节,用来补偿被控制对象中的滞后部分,这样可以使系统快速达到稳定过程。

纯滞后控制系统是把滞后补偿的结果作为PID控制器的输入补偿量ICV,并作为输入补偿的减补偿。这样就构成了一个纯滞后的SMITH预测控制回路。

三、PID 指令

在运用PLC对系统进行PID控制时,需要运用PID指令完成PID控制功能。下面的内容介绍了S7–200系列PLC的指令系统及其实现控制算法的实例。

3.1 PID 回路指令

PID 回路指令运用以回路表中的输入和组态信息进行 PID 运算。使 ENO = 0 的错误条件是:SM1.1 (溢出),SM4.3 (运行时间) ,0006 (间接寻址)。该指令影响下列特殊存储器标志位:SM1.1 (溢出)

输入输出 操 作 数 数据类型

TBL VB BYTE

LOOP BYTE 常数 (0 到 7)

PID 回路指令 (包含比例积分微分回路) 是用来进行 PID 运算。但是,可以进行这种 PID 运算的前提条件是逻辑堆栈栈顶 (TOS) 值必须为1。该指令有两个操作数:TABLE 和 LOOP。 其中,TABLE 是回路表的起始地址;LOOP 是回路号可以是 0 到 7 的整数。在程序中最多可以用8条PID指令。如果两个或两个以上的 PID 指令用了同一个回路号,那么即使这些指令的回路表不同,这些 PID 运算之间也会相互干涉,产生不可预料的结果。

回路表包含 9 个参数,用来控制和监视 PID 运算。这些参数分别是过程变量当前值 (PVn) ,过程变量前值 (PVn-1), 给定值 (SPn), 输出值 (Mn), 增益 (Kc), 采样时间 (Ts), 积分时间 (TI), 微分时间 (TD) 和积分项前值 (MX)。

为了让 PID 运算以预想的采样频率工作,PID 指令必须用在定时发生的中断程序中,或者用在主程序中被定时器所控制以一定频率执行。采样时间必须通过回路表输入到 PID 运算中。

3.2 使用 STEP 7-Micro/WIN 32 中的 PID 向导

STEP 7–Micro/WIN 32 提供了 PID 向导指导你定义一个闭环控制过程的 PID 算法。选择菜单命令Tools>Instruction Wizard ,然后从指令向导窗口中选择 PID 指令。

3.3 PID 算法

PID 控制器调节输出,保证偏差 (e) 为零,使系统达到稳定状态,偏差 (e) 是给定值 (SP) 和过程变量 (PV) 的差。PID 控制的原理基于下面的算式:输出 M (t) 是比例项积分项和微分项的函数。其中

M(t)KceKcedtKc0tde dt

M(t) PID 回路的输出是时间的函数

Kc PID 回路的增益

e PID 回路的偏差 (给定值与过程变量之差)

Minitial PID 回路输出的初始值

为了能让数字计算机处理这个控制算式,连续算式必须离散化为周期采样偏差算式,才能用来计算输出值数字。计算机处理的算式如下:

其中

Mn 在第 n 采样时刻PID 回路输出的计算值

Kc PID 回路增益

en 在第 n 采样时刻的偏差值

en – 1 在第 n-1 采样时刻的偏差值 (偏差前项)

KI 积分项的比例常数

Minitial PID 回路输出的初值

KD 微分项的比例常数

从这个公式可以看出,积分项是从第 1 个采样周期到当前采样周期所有误差项的函数,微分项是当前采样和前一次采样的函数,比例项仅是当前采样的函数。在数字计算机中,不保存所有的误差项,其实也不必要。

由于计算机从第一次采样开始,每有一个偏差采样值必须计算一次输出值,只需要保存偏差前值和积分项前值。利用计算机处理的重复性,可以化简以上算式为:

其中

Mn 在第 n 采样时刻PID 回路输出的计算值

Kc PID 回_____路增益

en 在第 n 采样时刻的偏差值

en – 1 在第 n-1 采样时刻的偏差值 (偏差前项)

KI 积分项的比例常数

MX 积分项前值

KD 微分项的比例常数

CPU实际使用以上简化算式的改进形式计算 PID 输出。这个改进型算式是:

其中

Mn 第 n 采样时刻的计算值

Min 第 n 采样时刻的积分项值

MDn 第 n 采样时刻的微分项值

3.4 比例项

比例项 MP 是增益 (Kc) 和偏差 (e) 的乘积。其中 Kc 决定输出对偏差的灵敏度,偏差 (e) 是给定值(SP) 与过程变量值 (PV) 之差。CPU 执行的求比例项算式是:

MPn = Kc * (SPn - PVn)

其中

MPn 第 n 采样时刻比例项的值

Kc 增益

SPn 第 n 采样时刻的给定值

PVn 第 n 采样时刻的过程变量值

积分项

积分项值 MI 与偏差和成正比CPU 执行的求积分项算式是

MIn =Kc * TS / TI * (SPn - PVn) + MX

其中:

Min 第 n 采样时刻的积分项值

Kc 增益

TS 采样时间间隔

TI 积分时间

SPn 第 n 采样时刻的给定值

PVn 第 n 采样时刻的过程变量值

MX 第 n-1 采样时刻的积分项 (积分项前值) (也称积分和或偏置)

积分和 (MX) 是所有积分项前值之和。在每次计算出 MIn 之后,都要用 MIn 去更新 mx 。其中 MIn可以被调整或限定。 MX 的初值通常在第一次计算输出以前被设置为Minitial (初值)。 积分项还包括其他几个常数:增益 (Kc), 采样时间间隔 (TS) 和积分时间 (TI)。 其中采样时间是重新计算输出的时间间隔,而积分时间控制积分项在整个输出结果中影响的大小。

3.5 微分项

微分项值 MD 与偏差的变化成正比。其计算等式为:

MDn = KC * TD / TS * ((SPn - PVn) - (SPn - 1 - PVn - 1))

为了避免给定值变化的微分作用而引起的跳变, 假定给定值不变(SPn=SPn-1)。 这样,可以用过程变量的变化替代偏差的变化,计算算式可改进为:

MDn = KC * TD / TS * (SPn - PVn - SPn + PVn - 1)

MDn = KC * TD / TS * (PVn - 1 - PVn)

其中:

MDn 第 n 采样时刻的微分项值

Kc 回路增益

Ts 回路采样时间

TD 微分时间

SPn 第 n 采样时刻的给定值

SPn – 1 第 n-1 采样时刻的给定值

PVn – 1 第 n-1 采样时刻的过程变量值

为了下一次计算微分项值, 必须保存过程变量,而不是偏差在第一采样时刻,初始化为 PVn -1=PVn

3.6 回路控制类型的选择

在许多控制系统中, 只需要一种或二种回路控制类型。例如只需要比例回路或者比例积分回路。通过设置常量参数,可先选中想要的回路控制类型。

如果不想要积分回路,可以把积分时间设为无穷大。即使没有积分作用,积分项还是不为零,因为有初值MX。

如果不想要微分回路, 可以把微分时间置为零。

如果不想要比例回路, 但需要积分或积分微分回路,可以把增益设为 0.0, 系统会在计算积分项和微分项时,把增益当作 1.0 看待。

3.7 回路输入的转换和标准化

每个 PID 回路有两个输入量,给定值 (SP) 和过程变量 (PV)。给定值通常是一个固定的值,比如是设定的汽车速度。过程变量是与 PID 回路输出有关,可以衡量输出对控制系统作用的大小。在汽车速度控制系统中,过程变量可以是测速仪的输入 (衡量车轮转速高低)。

给定值和过程变量都可能是现实世界的值, 它们的大小、范围和工程单位都可能不一样。PID 指令在对这些量进行运算以前,必须把他们转换成标准的浮点型实数。

转换的第一步是把 16 位整数值转成浮点型实数值。下面的指令序列提供了实现这种转换的方法:

XORD AC0, AC0 //清空累加器

MOVW AIW0, AC0 //把待变换的模拟量存入累加器

LDW>= AC0, 0 //如果模拟量为正

JMP 0 //则直接转成实数

NOT //否则

ORD 16#FFFF0000, AC0 //先对 AC0 中值进行符号扩展

LBL 0

DTR AC0, AC0 //把 32 位整数转成实数

转换的下一步是把实数值进一步标准化为 0.0~1.0 之间的实数。下面的算式可以用来标准化给定值或过程变量:

RNorm = (RRaw / Span) + Offset)

其中:

RNorm 标准化的实数值

Rraw 没有标准化的实数值或原值

Offset 单极性为 0.0 双极性为 0.5

Span 值域大小, 可能最大值减去可能最小值

单极性为 32,000 (典型值)

双极性为 64,000 (典型值)

下面的指令把双极性实数标准化为 0.0~1.0 之间的实数。通常用在第一步转换之后: /R 64000.0, AC0 //累加器中的标准化值

+R 0.5, AC0 //加上偏置使其落在 0.0 1.0 之间

MOVR AC0, VD100 //标准化的值存入回路表

3.8 回路输出值转换成刻度整数值

回路输出值一般是控制变量, 比如, 在汽车速度控制中,可以是油阀开度的设置。同时,输出是0.0~1.0 之间的标准化了的实数值,在回路输出驱动模拟输出之前,必须把回路输出转换成相应的16 位整数。这一过程,是给定值或过程变量的标准化转换的反过程。该过程的第一步把回路输出转换成相应的实数值,公式如下:

RScal = (M n - Offset) * Span

其中:

Rscal 回路输出的刻度实数值

Mn 回路输出的标准化实数值

Offset 单极性为 0.0 双极性为 0.5

Span 值域大小可能最大值减去可能最小值

单极性为 32,000 (典型值)

双极性为 64,000 (典型值)

这一过程可以用下面的指令序列完成:

MOVR VD108,AC0 //把回路输出值移入累加器

–R 0.5,AC0 //仅双极性有此句

*R 64000.0,AC0 //在累加器中得到刻度值

下一步是把回路输出的刻度转换成 16 位整数,可通过下面的指令序列来完成: ROUND AC0 AC0 //把实数转换为 32 位整数

MOVW AC0, AQW0 //把16 位整数写入模拟输出寄存器

3.9 正作用或反作用回路

如果增益为正, 那么该回路为正作用回路。如果增益为负,那么是反作用回路。对于增益为零的积分或微分控制来说,如果指定积分时间、微分时间为正,就是正作用回路;指定为负值,则是反作用回路。

3.10 变量和范围

过程变量和给定值是 PID 运算的输入值,因此在回路表中,这些值只能被回路指令读而不能改写。输出变量是由 PID 运算产生的,所以在每一次 PID 运算完成之后,需更新回路表中的输出值,输出值被限定在 0.0~1.0 之间。当 PID 指令从手动方式转变到自动方式时,回路表中的输出值可以用来初始化输出值。

如果使用积分控制, 积分项前值要根据 PID 运算结果更新。这个更新了的值用作下一次 PID 运算的输入,当输出值超过范围 (大于 1.0 或小于 0.0), 那么积分项前值必须根据下列公式进行调整:

MX = 1.0 - (MPn + MDn) 当计算输出 Mn > 1.0

MX = - (MPn + MDn) 当计算输出 Mn

其中

MX 经过调整了的积分和 (积分项前值)

MPn 第 n 采样时刻的比例项值

MDn 第n 采样时刻的微分项值

Mn 第 n 采样时刻的输出值

这样调整积分前值, 一旦输出回到范围后,可以提高系统的响应性能。而且积分项前值也要限制在0.0~1.0 之间,然后在每次 PID 运算结束之后,把积分项前值写入回路表,

以备在下次 PID 运算中使用。

用户可以在执行 PID 指令以前修改回路表中积分项前值。在实际运用中,这样做的目的是找到由于积分项前值引起的问题。手工调整积分项前值时,必须小心谨慎,还应保证写入的值在 0.0~1.0 之间。

回路表中的给定值与过程变量的差值 ( ) 是用于 PID 运算中的差分运算,用户最好不要去修改此值。

3.11 控制方式

S7–200 的 PID 回路没有设置控制方式,只要 PID 块有效,就可以执行 PID 运算。在这种意义上说,PID 运算存在一种“自动”运行方式。当 PID 运算不被执行时,我们称之为“手动”方式。

同计数器指令相似, PID 指令有一个使能位。当该使能位检测到一个信号的正跳变 (从0到 1), PID指令执行一系列的动作,使 PID 指令从手动方式无扰动地切换到自动方式。为了达到无扰动切换,在转变到自动控制前,必须用手动方式把当前输出值填入回路表中的 Mn 栏。PID 指令对回路表中的值进行下列动作,以保证当使能位正跳变出现时,从手动方式无扰动切换到自动方式:

置给定值 (SPn) 过程变量 (PVn)

置过量变量前值 (PVn-1) 过程变量现值 (PVn)

置积分项前值 (MX) 输出值 (Mn)

PID 使能位的默认值是1, 在 CPU 启动或从 STOP 方式转到 RUN 方式时建立。CPU 进入 RUN 方式后首次使 PID 块有效,没有检测到使能位的正跳变,那么就没有无扰动切换的动作。

3.12 报警与特殊操作

PID 指令是执行 PID 运算的简单而功能强大的指令。如果其他过程需要对回路变量进行报警等特殊操作,那么可以用 CPU 支持的基本指令实现这些特殊操作功能。

3.13 出错条件

如果指令指定的回路表起始地址以及回路号操作数超出范围, 那么在编译期间,CPU 令产生编译错误 (范围错误), 从而编译失败。PID 指令不检查回路表中的值是否在范围之内,所以必须小心操作以保证过程变量和设定值不超界。

PID 指令不检查回路表中的值是否超界,你必须保证过程变量和设定值 (以及偏置和前一次过程变量) 必须在 0.0 到 1.0 之间。

如果 PID 计算的算术运算发生错误,那么特殊存储器标志位 SM1.1 (溢出或非法值) 会被置 1, 并且中止 PID 指令的执行。 (要想消除这种错误,单靠改变回路表中的输出值是不够的,正确的方法是在下一次执行 PID 运算之前,改变引起算术运算错误的输入值,而不是更新输出值)。

3.14 回路表

36 个字节的回路表的格式如表 9-19 所示

表 9-19 回路表格式

3.15 PID 指令编程举例

在本例中, 有一水箱需要维持一定的水位,该水箱里的水以变化的速度流出。这就需要有一个水泵以不同的速度给水箱供水,以维持水位不变,这样才能使水箱不断水。

本系统的给定值是水箱满水位的 75% 时的水位,过程变量由漂浮在水面的水位测量仪给出。输出值是进水泵的速度,可以从允许最大值的 0% 变到 100%。

给定值可以预先设定后直接输入到回路表中, 过程变量值是来自水位表的单极性模拟量,回路输出

值也是一个单极性模拟量,用来控制进水泵速度。这两个模拟量的范围是 0.0~1.0, 分辨率为1/32000 (标准化)。

在本系统中, 只使用比例和积分控制,其回路增益和时间常数可以通过工程计算初步确定。但还需要进一步调整以达到最优控制效果。初步确定的增益和时间常数为:

KC是 0.25

TS 是 0.1 秒

TI 是 30 分钟

系统启动时, 关闭出水口,用手动控制进水泵速度,使水位达到满水位的 75% ,然后打开出水口,同时水泵控制从手动方式切换到自动方式。这种切换由一个输入的数字量控制,描述如下:

I0.0 位控制手动到自动的切换, 0 代表手动;1 代表自动。

当工作在手动控制方式下, 可以把水泵速度 (0.0~1.0 之间的实数) 写到 VD108 (VD108 是回路表中保存输出的寄存器)。

图 9-28 是本控制实例的程序

图9-28 PID 回路控制实例

图 9-28 PID 回路控制实例 (续)

图9-28 PID回路控制实例 (续)


相关文章

  • 变频恒压供水控制系统
  • 变频恒压供水控制系统 (自动化与电气工程学院 指导教师:蒋 惠 忠) 张 春 健 摘 要:论文讨论了变频恒压供水控制原理,设计了变频恒压供水控制系统.采用了松下PLC (FP0-C32CT )和模拟量输入/输出模块(FP0-A21).Pro ...查看


  • 2pid调节器和变频器接线图--可编程控制器和变频器的恒压供水系统
  • 1 引言 随着变频器技术的日益成熟,变频调速技术在各个领域得到了广泛的应用.变频调速恒压供水设备以其节能.安全.高品质的供水质量等优点,在小区供水和工厂供水控制中发挥了很大的作用. 根据某洗衣机进水电磁阀生产厂家的需要,为了给该厂电磁阀性能 ...查看


  • 空调恒温恒湿
  • 空调恒温恒湿 引言 冷媒水是工厂公用工程的基本系统.基于plc和变频器的冷媒水压力控制系统具有自动化程度高.高效节能.安全卫生.维护方便等优点:采用frofibus总线技术,扩展性高:上位计算机控制系统具有过程画面动态显示.流程管理及打印等 ...查看


  • 第三章过程控制仪表与装置
  • 第三章过程控制仪表与装置 教学要求:掌握基本控制规律的数学表示形式 掌握基本控制规律对过渡过程的影响 掌握气动.电动执行器的组成和特点 了解 DDZ-Ⅲ控制器的组成及特性 掌握工作流量特性和理想流量特性 掌握执行器的选型.气开气闭方式的选择 ...查看


  • 水箱水位控制系统PLC设计
  • 摘 要 本设计针对目前水箱水位控制系统存在的集成自动化程度低.可靠性差和运行效率低下的不足,结合目前工业领域的应用技术,设计了一种技术较先进.性能可靠.自动化的程度较高的水塔水位控制系统.本文针对水箱水位控制系统中存在的问题,把PLC 可编 ...查看


  • 浅析干式变压器温度测控系统
  • 摘要:本文分析了110kV干式变压器温度测控系统需要解决的问题,并采用红外温度传感器代替传统的铂电阻进行非接触式温度测量,从红外温度传感器的测温原理.测温特点等方面进行了详细的阐述.同时该系统采用PLC对各种采样信号进行处理,提高了整个系统 ...查看


  • 交流异步电动机转速闭环控制系统设计论文
  • 2016届毕业设计说明书(论文) 交流异步电动机转速闭环控制系统设计 院 . 部:电气与信息工程学院 学生姓名: 刘泰波 指导教师:邓宝燕职称工程师 专 业:电气工程及其自动化 班 级:电气1205班 完成时间:2016年5月 摘 要 交流 ...查看


  • 变频恒压供水系统技术方案
  • 变频恒压供水系统技术方案 2009-7-10 8:28:00 来源:深圳柏强工业控制设备有限公司 一.系统介绍 本系统变频恒压供水系统技术方案,此系统由单台变频控制 2 台 3KW 水泵,全自动 无人值守工作,实现对整个供水设备的自动控制, ...查看


  • 关于ABB变频器的恒压供水PID控制详细讲解
  • 关于ABB 变频器的恒压供水PID 控制详细讲解 本人在造纸行业工作多年, 对造纸行业的控制有一定的了解, 平时苦恼于手下的员工对于造纸行业的电控了解不够. 后来将造纸行业常用的控制汇编成一本培训资料, 发给部门的所有工人熟读. 收到一定的 ...查看


热门内容