首页 百科知识 闭环控制系统与控制器设计

闭环控制系统与控制器设计

时间:2024-10-26 百科知识 版权反馈
【摘要】:模拟量控制系统是指被控变量为连续变化模拟量的控制系统。闭环控制是根据设定值与反馈值的偏差进行控制,以求得设定值与反馈值的偏差最小的控制方式,因而闭环控制也称为偏差控制。在闭环控制系统中,PID控制算法一直都是被广泛应用的一种基本控制算法。PID控制器就是依据系统的偏差进行控制的。本章以西门子S7-200PLC为例,说明PLC的PID功能指令的使用及控制功能的实现。

9.1 闭环控制系统与PID控制器设计

模拟量控制系统是指被控变量为连续变化模拟量的控制系统。控制系统在控制方式上可分为开环控制和闭环控制等两类。开环控制是根据设定值直接向控制对象输出控制信号的控制方式,这种控制容易受外界干扰而偏离控制目标。对于控制质量要求比较高的场合,一般都采用闭环控制方式。闭环控制是根据设定值与反馈值的偏差进行控制,以求得设定值与反馈值的偏差最小的控制方式,因而闭环控制也称为偏差控制。闭环控制根据其设定值的不同,又可以分为调节(或定值)系统和随动系统两种。调节系统的设定值是由控制系统的控制器给出的,控制器的作用就是使反馈值向给定值靠近,以反馈值对设定值的偏差最小为目的。随动系统的设定值是由被控对象给出的,控制器的作用就是使控制目标不断地向被控对象靠近。各种跟踪系统都是随动系统。

在闭环控制系统中,PID控制算法一直都是被广泛应用的一种基本控制算法。PID即比例(proportional)、积分(integral)和微分(differential)三作用调节器,具有结构简单,参数整定方便,结构改变灵活(有P、PI、PD和PID等几种结构),控制效果佳,可靠性高等优点,目前是控制系统中一种最基本和最常用的控制方法。

9.1.1 PID控制原理

PID控制器就是依据系统的偏差进行控制的。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,系统控制器的结构和参数必须依据经验和现场调试来确定,这时应用PID控制技术最为方便。

实际中也有PI和PD控制,在理论上可以证明,对于过程控制的典型对象“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制是一种有效的方法,它的参数整定方式简便,结构改变灵活。

在连续系统中,典型的PID闭环控制系统如图9-1所示。图9-1中SP(t)是给定值,PV(t)是反馈量(测量值),c(t)是系统的输出量(被控量),PID控制的输入与输出的关系式为:

img331

式中:M(t)为控制器的输出量;e(t)为控制器输入的误差信号;Kp为比例系数(也称增益);Ti和Td分别为积分时间常数和微分时间常数。

img332

图9-1 连续闭环控制系统方框图

假设采样周期为Ts,系统开始运行的时刻为t=0,用矩形积分来近似精确积分,用差分近似精确微分,将公式(9-1)离散化后,第n次采样时控制器的输出为:

img333

式中:Mn为M(t)第n次采样的数字量;en、en-1分别为第n、n-1次采样时的误差值;Ki、Kd分别为积分系数和微分系数。

从公式(9-1)和(9-2)可知,Ki=KpTs/Ti和Kd=KpTs/Td,从中可以看出,积分系数与积分时间成反比,而微分系数与微分时间成正比。

PLC的PID控制器的设计是以连续系统的PID控制规律为基础,将其数字化写成离散形式的PID控制方程,再依据方程进行控制程序设计的过程。

9.1.2 PID控制器的设计

1.PLC实现PID控制的方法

(1)PID过程控制模块。

这种模块的PID控制程序是PLC生产厂家设计的,并存放在模块中,用户使用时只需要设置一些参数,使用起来非常方便,一块模块可以控制几路甚至几十路闭环回路。但是这种模块的价格昂贵,一般在大型控制系统中使用。

(2)PID功能指令。

现在很多中小型PLC都提供PID控制功能指令,如S7-200PLC的PID指令。它们实际上是用于PID控制的子程序,与A/D转换器、D/A转换器模块一起使用,可以得到类似于使用PID过程控制模块的效果,价格却便宜得多。

(3)自编程序实现PID闭环控制。

有的PLC没有PID过程控制模块和PID控制指令,有时虽然有PID控制指令,但用户希望采用变型的PID控制算法。在这些情况下,都需要由用户自己编制PID控制程序。

2.PID指令

本章以西门子S7-200PLC为例,说明PLC的PID功能指令的使用及控制功能的实现。PID指令的功能是从模拟量输入通道获取指定的二进制数据的输入范围,按照设定的参数进行PID运算,并将运算结果存放到输出通道中。S7-200 PLC的PID指令的梯形图如图9-2所示。

img334

图9-2 PID指令

PID指令语句表格式为:

PID TBL,LOOP

指令中,TBL是回路表的起始地址,数据类型为字节,操作数是VB;LOOP是回路的编号,数据类型为字节,操作数是常数0~7。

PID指令对回路表中的某些输入值不进行范围检查,因此要保证过程变量、给定值等不超限。PID指令的回路表如表9-1所示。

表9-1 PID指令的回路表

img335

注:下标n为第n次采样的数字量。

回路表包含9个参数,用来控制和监视PID运算。如果PID指令中的算术运算发生错误,特殊标志寄存器SM1.1(溢出或非法数值)被置1,并将终止PID指令的执行。要想消除错误,在下次执行PID运算之前,应改变引起运算错误的输入值,而不是更新输出值。

3.输入/输出变量的转换

PID控制有两个输入量:给定值(SP)和过程变量(PV),多数工艺要求给定值是固定的值,如加热炉温度的给定值。过程变量是经A/D转换器转换和计算后得到的被控量的实测值,如加热炉温度的测量值。给定值与过程变量都是与被控对象有关的值,对于不同的系统,它们的大小、范围与工程单位有很大的区别。在应用PLC的PID指令对这些量进行运算之前,必须将其转换成标准化的浮点数(实数)。

同样,对于PID指令的输出,在将其送给D/A转换器之前,也需进行转换。

1)回路输入的转换

转换的第一步是,将给定值或A/D转换器转换后得到的整数值由16位整数转换成浮点数。转换的第二步是,将实数进一步转换成0.0~1.0之间的标准化实数。可通过下式对给定值及过程变量进行标准化的转换:

img336

式中:RNorm、RRaw分别为标准化实数值和标准化前的值;Offset为偏移量,单极性变量为0.0,双极性变量为0.5;Span为取值范围,等于变量的最大值减去最小值,单极性变量的典型值为32000,双极性变量的典型值为64000。

2)回路输出的转换

回路输出即PID控制器输出,它是标准化的0.0~1.0之间的实数。将回路输出送给D/A转换器之前,必须转换成16位二进制整数。这一过程是SP与PV转换成标准化数值的逆过程。可用下式将回路输出转换成实数:

img337

式中:RScal是回路输出对应的实数值;Mn是回路输出标准化的实数值。

最后,再通过转换指令把回路输出的标准化实数值转换成16位整数后送D/A转换器。

4.PID向导配置方法

为减小PID控制程序的编写难度,编程软件STEP 7-Micro/WIN V4.0提供了PID指令向导,可以帮助用户方便地生成一个闭环控制过程的PID算法。此向导可以完成绝大多数PID运算的自动编程,用户只需在主程序中调用PID向导生成的子程序,就可以完成PID控制任务。其基本步骤如下。

1)进入PID配置向导

选择“工具”→“指令向导”命令,生成如图9-3所示界面,然后在指令向导窗口中选择“PID”指令。或者在指令树中单击“向导”→“PID”图标,进入PID配置向导。

img338

图9-3 选择进入PID配置向导窗口

2)选择要配置的PID回路

程序中最多有8个PID回路,编号为0~7。如果你的项目中已经配置了一个PID回路,则向导会指出已经存在的PID回路,并让你选择是配置修改已有的回路,还是配置一个新的回路。如图9-4所示,首先选择要配置的PID回路,完成后单击“下一步”按钮。

img339

图9-4 配置PID回路对话框

3)设置PID参数

如图9-5所示,首先设置给定值(SP)的最小值和最大值,在低限和高限的输入域中输入实数,默认值为0.0和100.0,表示给定值的取值范围占过程反馈量程的百分比。然后设置PID控制参数和采样时间,这些参数都应当是实数,完成后单击“下一步”按钮。

img340

图9-5 设置PID参数对话框

4)设置回路的输入/输出选项

如图9-6所示,首先指定回路的过程变量(PV)输入类型及其标定范围,其输入类型分为单极性和双极性等两种,单极性表示输入的信号为正值的信号,默认的取值为0~32000,如信号范围为0~10V或0~20mA等;双极性表示输入信号是从负到正的范围内变化的,默认的取值为-32000~+32000,如输入信号为±10V、±5V等。然后设置回路输出类型,可以选择模拟量输出或数字量输出。模拟量输出用来控制一些需要模拟量给定的设备,如比例阀、变频器等;数字量输出实际上用于控制输出点的通、断状态按照一定的占空比变化,可以控制固态继电器(加热棒等)。如果选择模拟量,则需设定回路输出变量值的范围,如果选择数字量输出,则需要设置以秒为单位的占空比周期。完成后单击“下一步”按钮。

5)设置回路的报警选项

向导提供了三个输出来反映过程值(PV)的低值报警、高值报警及过程值模拟量模块错误状态。当报警条件满足时,输出置位为1。这些功能在选中了相应的选择框之后起作用。如图9-7所示的为无设定,可直接单击“下一步”按钮。如果启用报警选项,则需要设置相应的参数,如标准化后的报警低限默认值为0.1,高限值为0.9。

6)配置分配存储区

PID指令使用了一个120个字节的V区参数表来进行控制回路的运算工作;除此之外,PID向导生成的输入/输出量的标准化程序也用到了运算数据存储区。因此,需要为它们定义一个起始地址,但必须保证该地址起始的若干字节在程序的其他地方没有被重复使用。如图9-8所示,首先选择一个未使用的V存储区来存放模块的配置信息,也可以单击“建议地址”按钮,让系统来选定一个存储区(VB0~VB119),然后单击“下一步”按钮。

img341

图9-6 设置回路的输入/输出选项对话框

img342

图9-7 设置回路的报警选项对话框

7)指定子程序、中断服务程序名和选择手动控制

如图9-9所示,完成向导中的设置工作后,将会自动生成第x号回路的初始化子程序PIDx_INIT(x=0~7)、中断程序PID_EXE、符号表PIDx_SYM和数据块PIDx_DATA。还可选择是否手动控制,此功能提供了PID控制的手动和自动之间的无扰切换功能。完成后单击“下一步”按钮。

img343

图9-8 设置回路的分配存储区对话框

img344

图9-9 指定子程序、中断服务程序名和选择手动控制对话框

8)生成PID代码完成配置

如图9-10所示,单击“完成”按钮,生成PID代码完成配置,将在项目中生成上述PID子程序、中断程序及符号表等。

img345

图9-10 生成PID代码完成配置对话框

应在主程序中用SM0.0调用PIDx_INIT子程序(见图9-11),初始化PID控制中使用的变量,启动PID中断程序。此后CPU根据在向导中设置的PID采样时间,周期性地调用中断程序PID_EXE,在PID_EXE中执行PID运算。

img346

图9-11 PID初始化指令的界面

PIDx_INIT指令中的PV_I是模拟量输入模块提供的反馈值(测量值)地址,Setpoint_R是以百分比为单位的实数给定值(SP),假设AIW0对应的是0~800℃的温度值,如果在向导中设置给定范围0.0~100.0(800℃对应于100%),则设定值90%相当于720℃。

BOOL变量Auto_Manual为1时,该回路为自动模式,即PID闭环控制,为0时,是手动模式。ManualOutput是手动模式时标准化的实数输入值(0.00~1.00)。

Output是PID控制器的整型输出值的地址,HighAlarm和LowAlarm分别是PV超出上限和下限时的报警信号输出,ModulErr是模拟量模块的故障输出信号。

PIDx_INIT子程序模块中的输入、输出参数的个数与向导中的设置有关,如果没选择上限和下限报警信号输出,则没有HighAlarm和LowAlarm输出变量。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈