PID算法在西门子PLC模拟量闭环控制中的实现论文_张建云

福建省龙岩金叶复烤有限责任公司 福建龙岩 364102

摘要:本文主要针对PID算法在西门子PLC模拟量闭环控制中的实现展开分析,明确了如何在PLC模拟量闭环控制中更好的应用PID算法,提出了实现的思路和具体的实现方法,可供今后参考。

关键词:PID算法,西门子,PLC,模拟量,闭环控制

前言

PID算法在西门子PLC模拟量闭环控制中的实现是十分关键的技术工作,一定要采取更好的实现技术和方法,才能提高其实现的质量和效率,对于其中的关键环节和技术必须要更加重视。

1、PID控制概述

PID控制是连续系统控制中广泛应用的一种控制方法,由于它结构改变灵活,可根据系统的要求,在常规PID调节的基础上进行多种PID变型控制,如PI、PD控制,比例PID控制,不完全微分控制,带死区的PID控制等。而且不需要建立精确的控制系统数学模型,有较强的适应性和灵活性。

我们都知道模拟量是指一些连续变化的物理量。而PLC是由继电器控制电路引进微处理器技术后发展而来,可以方便、可靠地进行开关量的控制。PLC进行模拟量控制,需要将模拟量转换成数字量,数字量的本质也就是开关量。经转换后的模拟量,对有较强信息处理的PLC并不难。

2、PID算法的实现

在模拟量闭环过程控制领域内,扩展模拟量处理模块,如EM231、EM232、EM235,根据PLC提供的PID编程功能模块,只需设定好PID参数,运行PID控制指令,就能求得输出控制值,实现模拟量闭环控制。

2.1PID算法

在模拟量的控制中,经常用到PID运算来执行PID回路的功能,PID回路指令使这一任务的编程和实现变得非常容易[。

如果一个PID回路的输出M(t)是时间的函数,则可以看作是比例项、积分项和微分项三部分之和。即:

M(t)=Kc*e+Kc∫t00tedt+M0+Kc*de/dt

以上各量都是连续量,第一项为比例项,最后一项为微分项,中间两项为积分项。其中e是给定值与被控制变量之差,即回路偏差。Kc为回路的增益。用数字计算机处理这样的控制算式,连续的算式必须周期采样进行离散化,同时各信号也要离散化,公式如下:

MPn=Kc*(SPn-PVn)+Kc*Ts/Ti*(SPn-PVn)+MX+Kc*Td/Ts•(PVn-1-PVn)

公式中包含9个用来控制和监视PID运算的参数,在PID指令使用时构成回路表,。

2.2PID指令

使能输入有效时,该指令利用回路表中的输入信息和组态信息,进行PID运算。梯形图的指令盒中有2个数据输入端:TBL,回路表的起始地址,是由VB指定的字节型数据;指令LOOP,回路号,是0~7的常数。

指令格式:PIDTBL,LOOP

2.2.1PID回路号

用户程序中最多可有8条PID回路,不同的PID回路指令不能使用相同的回路号,否则会产生意外的后果。

2.2.2数值转换及标准化

用可编程序控制器控制PID回路时,要把实际测量输入量、设定值和回路表中的其他输入参数进行标准化处理,即用程序转化为PLC能够识别和处理的数据的标准,例如把从AIW采集来的16位整数转化为0.0~1.0之间的标准化实数。标准化实数又分为双极性(围绕0.5上下变化)和单极性(以0.0为起点在0.0和1.0之间的范围内变化)两种。

程序执行时把各个标准化实数量用离散化PID算式进行处理,产生一个标准化的实数运算结果,这一结果同样也要用程序将其转化为相应的16位整数,然后周期性将其传送到指定的AQW,用以驱动模拟量的输出负载,实现控制。

转换方法如下:应用实例中断程序中的程序片断。

2.2.3选择PID回路类型

在大部分模拟量的控制中,使用的回路控制类型并不是比例、积分和微分三者俱全。例如只需要比例回路或只需要比例积分回路,通过对常量参数的设置,可以关闭不需要的控制类型。

关闭积分回路:把积分时间TI设置为无穷大,此时虽然由于有初值MX使积分项不为零,但积分作用可以忽略。

关闭微分回路:把微分时间TD设置为0,微分作用即可关闭。

关闭比例回路:把比例增益Kc设置为0,则可以只保留积分和微分项。

2.3PID参数

S7-200CPU提供PID回路指令,进行PID计算。PID回路的操作取决于存储在36字节回路表内的9个参数。PID回路表见表1。

2.4PID的编程步骤

2.4.1设定回路输入及输出选项。

2.4.2设定回路参数在PID指令中,必须指定内存区内的36个字节参数表的首地址。其中要选定过程变量、设定值、回路增益、采样时间、积分时间和微分时间,并转换成标准值存入回路表中。

2.4.3设定循环警报选项。

2.4.4为计算指定内存区域,PID计算需要一定的存储空间,存储暂时结果。需要指定此计算区域的起始V内存字节地址。

2.4.5指定初始化子程序及中断程序。

2.4.6生成PID程序。

图1

3、应用实例

有一水箱有一条进水管和一条出水管,进水管的水流量随时间不断变化,要求控制出水管阀门的开度,使水箱内的液位始终保持在水满时液位的一半。系统使用比例积分微分控制,假设采用下列控制参数值:Kc为0.25,Ts为0.1秒,Ti为30分钟。

本供水系统的设定值是水箱满水位的75%时的水位,过程变量是由漂浮在水面的水位测量仪给出。输出值是进水泵的速度,可以从允许最大值的0%变到100%。设定值可以预先设定后直接输入回路表中,过程变量是来自水位表的单极性模拟量,回路输出值也是一个单极性模拟量,用来控制水泵速度。这个模拟量的范围是0.0~1.0,分辨率为1/32000(标准化)。

本工程的特点是在系统中,水泵的机械惯性比较大,故系统仅采用比例和积分控制。其增益和时间常数可以通过工程计算初步确定。实际上还需要进一步调整,以达到最优控制效果。

系统启动时,关闭出水口,用手动控制进水泵速度,使水位达到满水位的75%,然后打开出水口,同时水泵控制由手动方式切换到自动方式。这种切换由一个输入的开关量控制,具体描述如下:I0.0位控制手动到自动方式的切换,0代表手动,1代表自动。当工作在手动方式下,可以把水泵的速度(0.0~1.0之间的实数)直接写入回路表中的输出寄存器(VD108)。

应用PID指令控制系统时,要注意积分作用引起的超调问题。为了避免这一现象,可以加一些保护。比如当过程变量达到甚至超过设定值时,可以限制输出值在某一定范围之内。本例中的程序仅有自动控制方式的设计。其中主程序OB1的功能是PLC首次运行时利用SM0.1调用初始化程序SBR0。子程序SBR0的功能是形成PID的回路表,建立100ms的定时中断,并且开中断。程序如图1所示。

中断程序INT0的功能是输入水箱的水面高度AIW0的值,并送入回路表。

I0.1=1时进行PID“自动”控制,把PID运算的输出值送到AQW0中,从而控制进水泵的速度,以保持水箱的水面高度。

总之,近年来,PLC的结构和性能不断改进,随着PLC的性能价格比不断提高,许多小型PLC具备了过去大型机才具有的运算速度和高级功能,西门子PLC扩展模拟量处理模块,应用PID运算指令,可以方便的实现对模拟量的控制。

4、结束语

综上所述,PID算法在西门子PLC模拟量闭环控制中的实现是十分重要的工作,本文总结了PID算法在西门子PLC模拟量闭环控制中的实现的方法和措施,可供今后参考和借鉴。

参考文献

[1]台方主编可编程控制器应用教程[M].北京:中国水利出版社,2017. 186-187.

[2]钟肇新,王灏编可编程控制器入门教程(SIMATICS7-200)[M].广州:华南理工大学出版社,2016.43-44.

论文作者:张建云

论文发表刊物:《基层建设》2019年第4期

论文发表时间:2019/5/14

标签:;  ;  ;  ;  ;  ;  ;  ;  

PID算法在西门子PLC模拟量闭环控制中的实现论文_张建云
下载Doc文档

猜你喜欢