自抗扰控制器的结构化文本设计与应用
2014-05-25姜萍孙凌燕刘腾娇李留根
姜萍孙凌燕刘腾娇李留根
(河北大学电子信息工程学院1,河北 保定 071002;河北大学罗克韦尔自动化实验室2,河北 保定 071002)
自抗扰控制器的结构化文本设计与应用
姜萍1,2孙凌燕1刘腾娇1李留根1
(河北大学电子信息工程学院1,河北 保定 071002;河北大学罗克韦尔自动化实验室2,河北 保定 071002)
双容水箱液位控制因其动态特性惯性大、非线性且存在多种不确定扰动,导致控制过程比较复杂。针对液位控制,运用RSLogix5000软件,使用结构化文本语言编写自抗扰控制器的各个组成部分,并采用模块化和功能图相结合的编程方式实现了自抗扰控制器模块。仿真试验证明,自抗扰控制器能够实现快速无超调的控制,具有很强的抗干扰特性,说明结构化文本编程的方法符合IEC 61131国际标准,方便可行,适用性强,对相关算法的工程化应用具有参考价值。
过程控制 双容水箱 自抗扰控制器(ADRC) PLC IEC 61131 结构化文本
0 引言
自抗扰控制技术是分析经典PID不足的新型数字控制技术,相继提出了安排过渡过程、跟踪微分器、扩张状态观测器[1-2]和开发利用特殊非线性效应等思想发展理论。双容水箱是典型的非线性时延对象,目前的控制方法有基于解耦算法,给出双容水箱的解耦模型再进行控制的方法。由于实际系统的复杂度不同和对象数学模型难以建立,很多实际系统的解耦矩阵无法实现。另一种系统辨识建模的方法也不能取得良好的拟合精度,不能保证模型的有效性。此外,采用串级控制方式、运用PID控制器进行液位控制的方法,因PID控制器的局限性,很难取得良好的控制效果。因此,采用自抗扰控制器(active disturbance rejection control,ADRC),利用其非线性特性和估计补偿作用对双容水箱液位进行控制,可取得比经典PID控制器更好的效果。目前,在此方面的研究普遍只是采用Matlab软件进行仿真试验,或采用A3000控制系统、MCGS工业组态监控软件、PCT-11型过程控制系统实验装置[3-4]来进行试验。本文采用罗克韦尔PLC平台RSLogix5000软件[6-7]实现对双容水箱液位的实时控制,采用结构化文本编程和功能图相结合的方式,简单易行,具有更强的适用性和通用性,可移植性强,对其他工业领域也具有参考价值。
1 双容水箱液位控制系统
过程控制装置包含被控对象、执行器、变送设备和控制台四部分。将连续性工业生产过程中常见的水箱、管路、泵、阀门等设备微缩、集中,配合自动测量、控制装置,可以对液位进行测量、显示和自动控制,所有设备均可视、可操作。
系统采用罗克韦尔CompactLogix系列PLC作为控制器,执行机构为西门子MXG461电磁调节阀,PLC与PC之间通过以太网进行通信。控制平台主要由CompactLogix控制系统和过程控制实验装置两部分组成,其中CompactLogix控制系统为整个平台的核心,实现自抗扰控制算法以及数据的采集、分析、处理、发送等关键工作。自抗扰控制系统框图如图1所示。
图1 自抗扰控制系统框图Fig.1 Block diagram of ADRC system
本文采用测试法,由阶跃响应曲线确定被控过程传递函数G(s)=13.7/[(445s+1)(11s+1)]。
双容水箱具有惯性大、时延的特点,采用传统的PID控制器很难使其稳定。在实际过程中,水箱的对象、过程和阀门具有很强的非线性特性,且同时存在不确定扰动,这更使双容水箱的调节过程难度加大。因此,本文采用自抗扰控制器对双容水箱液位进行控制。
自抗扰控制器的最突出特征就是把作用于被控对象的、所有不确定因素的作用,都归结为“未知扰动”,用对象输入输出数据对其进行估计并给予补偿。自抗扰控制器由三部分组成:①跟踪微分器(tracking differentiator,TD),其作用是安排过渡过程并给出过程的微分信号;②扩张状态观测器(extended state observer,ESO),其作用是给出对象状态变量估计值及系统模型和外扰实时总和作用的估计值,这个实时估计值的补偿作用使被控对象化为“积分器串联型”;③利用非线性状态误差反馈(nonlinear state error feedback law,NLSEF)对被化成“积分器串联型”的对象进行控制。
2 ADRC在RSLogix5000上的模块封装
2.1 ADRC在软件上的实现方法
本文运用RSLogix5000软件实现自抗扰控制器对双容水箱液位的控制。由于工程中并不存在可以调用的模块,需进行编译开发,因此,按照自定义模块的封装方法,将常用函数和动态结构都设计成模块形式,然后将各个部分组合起来,采用结构化文本与功能块图相结合的编程方式。这种编程方式可以使程序的结构以及程序内部数据传递过程更加清晰,适用于由多个不同功能的函数模块构成的控制算法。模块化与功能图相结合的方法符合IEC 61131可编程逻辑控制器标准。
IEC 61131标准将现代软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合,又对当代种类繁多的工业控制器中的编程概念及语言进行了标准化。该标准对可编程控制器软件技术的发展,乃至整个工业控制软件技术的发展起着举足轻重的推动作用。
自抗扰算法ADRC涉及到多个模块,每个模块都是由一些基本的函数和变量按照一定的运算法则组合而成。因此,设计ADRC控制器时就遵从先封装几个基本的非线性函数,然后再调用这些已封装的函数来构成ADRC的各个模块,最后把各个模块组合起来,成为一个完整的自抗扰控制器(ADRC)。下面介绍一下函数和模块的封装。
2.2 特殊非线性函数
首先封装几个基本的非线性函数。自抗扰控制技术中常用的4个非线性函数为:sign(x,a,)、fsg(x, a,b)、fal(x,a,b)和fhan(v1,v2,r,h)。以sign(x,a)模块的封装为例,模块封装过程包括定义参数,结构化文本编程,编译、校验。
根据封装流程,sign(x,a)模块完成封装后即可调用。RSLogix5000对函数调用的规则如下:模块名称(实例名,输入参数1,…,输入参数n,输出参数1,…,输出参数n)。
2.3 ADRC功能模块设计
完成对自抗扰控制器算法中几个非线性函数的定义封装后,对自抗扰控制器各个组成部分进行定义封装。方法如上面的非线性函数封装方法。以二阶跟踪微分器为例,其算法如下。
定义好参数后,编写结构化文本。至此,自抗扰控制器的各个组成部分已经分别封装成独立的函数模块,且具有独立的参数设置对话框,可任意更改各部分的参数,达到良好的控制效果。
本文中主程序采用功能块图编程,插入封装的模块,待所有需要模块插入完成后,按照图1所示的关系将各个模块连接起来,即构成二阶自抗扰控制器。同时,编写一阶、二阶、三阶自抗扰控制器的各个不同阶次模块,组合后可实现对各个阶次自抗扰控制器的调用。此种模块化方法简单易行,可结合不同控制对象实现多种控制系统,有利于自抗扰技术的研究。该方法在其他平台上也有参考价值,便于工程推广。
3 试验研究
本文采用已得到的系统模型对系统进行阶跃响应及扰动试验,传递函数为G(s)=13.7/[(445s+1)(11s+ 1)]。从二阶对象传递函数G(s)=K/[(T1s+1)(T2s+ 1)]中可以看出,T2相对T1较小,可近似于一阶时滞系统。由于一阶自抗扰控制器能够对时滞系统进行很好的控制,因此采用一阶自抗扰控制器对二阶系统进行仿真控制。这样可以减少参数的数量,使参数整定更加容易,从而使ADRC更具有实际应用价值。取自抗扰控制器的参数:r0=0.1、h0=3.5、h=0.1、bt1=0.03、h1=0.01、bt02=250、bt01=55。当液位处于100 mm稳态时,加大小为50 mm的阶跃信号,系统控制效果如图2所示。由图2可知,加入阶跃信号后,系统很快无超调进入稳态。
图2 二阶系统阶跃响应曲线Fig.2 Step response curves of the second order system
参数不变,在100 mm稳态时施加+20 mm的扰动信号,系统控制效果如图3所示。
图3 二阶系统抗干扰响应曲线Fig.3 Anti-interference response curves of the second-order system
双容水箱液位控制系统具有明显的非线性特征,时延远大于一阶系统。双容水箱的液位控制是具有纯滞后的非线性耦合系统,是过程控制中的一种典型的控制对象,上水箱的液位对下水箱的液位有明显的影响,具有很大的惯性。在实际应用中,由于双容水箱的非线性,使系统难以调节,所以加一个比例环节,构成一个串级系统,可更有效快速地实现对水箱液位的调节和控制。
经过以上试验可知,一阶自抗扰控制器对二阶控制系统有很好的控制作用。现将自抗扰控制器应用到实际双容水箱液位控制装置中,自抗扰控制器的参数设置为:r0=25、h0=10、h=0.01、bt1=0.01、h1=0.01、 bt02=400、bt01=200。系统液位到达50 mm的系统控制效果如图4所示。由图4可知,自抗扰控制器对双容水箱这种具有惯性时滞的系统有较好的控制效果。
图4 双容水箱阶跃响应曲线Fig.4 Step response curves of double tank
4 结束语
本文采用结构化文本和功能图编程相结合的方式建立的自抗扰控制器系统,可按阶次和线性、非线性封装各阶控制器模块,可根据对象的不同随意调用,易于实行,调试简单,具有较强的实用性,符合IEC 61131国际标准,有利于自抗扰控制器的工程化实现,对其他工业领域也具有参考价值。本文通过对自抗扰控制器的研究,在罗克韦尔PLC平台上实现了对实际的水箱液位系统的控制,说明了自抗扰控制器具有良好的抗干扰性与较强的鲁棒性,超调量小,更适用于复杂的控制系统,在工业控制领域有广阔的应用前景。
[1] 韩京清.自抗扰控制技术[J].前沿科学,2007(1):24-31.
[2] 韩京清.从PID技术到“自抗扰控制”技术[J].控制工程,2002, 9(3):13-18.
[3] 郑伟建.基于自抗扰算法的液位控制系统[D].扬州:扬州大学,2009.
[4] 李晓理,里骥,石陇辉.水箱液位系统的建模与仿真[J].系统仿真学报,2010(4):829-832.
[5] 廖晓文,陈政石,田志波,等.半导体温控系统的自抗扰控制器设计[J].自动化仪表,2012(8):45-50.
[6] 钱晓龙.Control Logix系统电力行业自动化应用培训教程[M].北京:机械工业出版社,2009.
[7] Dan W,Tong Z,Ken C,et al.Application of active disturbance rejection control to variable spindle speed noncircular turning process[J].International Journal of Machine Tools&Manufacture, 2009,3(21):419-423.
[8] 孙亮,吴根忠.自抗扰控制器优化设计及其应用[J].控制与应用技术,2010,37(3):26-31.
[9] 贺庆.四容水箱的自抗扰控制器设计[D].北京:北方工业大学,2013.
[10] 王辰昱.自抗扰控制器的参数整定及应用[D].保定:华北电力大学,2009.
Design and Application of Active Disturbance Rejection Controller Based on Structured Text
The water level control process for double tank system is complicated because of its characteristics of large inertia,non-linearity and many uncertain disturbances.For such level control,by using RSLogix5000 software,and structured text language,various components of active disturbance rejection control(ADRC)are compiled,and with the programming method of combining modularization and functional graphics,the ADRC module is implemented.The simulation test verifies that the active disturbance rejection controller is able to realize fast speed control without overshoot,and features strong anti interference capability;the structured test programming method conforms IEC61131 international standard,it is convenient,feasible,with strong applicability,and is valuable to be referenced in engineering applications of relevant algorithm.
Process control Double-water tank Active disturbance rejection control(ADRC) PLC IEC 61131 Structured text
TP273
A
国家自然科学基金资助项目(编号:11271106);
河北大学应用研究基金资助项目(编号:33312);
河北大学研究生教育改革重点基金资助项目(编号:YJ11-08)。
修改稿收到日期:2014-05-26。
姜萍(1971-),女,2011年毕业于华北电力大学热能工程专业,获博士学位,副教授;主要从事自抗扰控制技术及应用、过程控制等方面的研究。