王宇红 张娜娜
(中国石油大学(华东)信息与控制工程学院,山东 东营 257061)
Matlab具有强大的工具包,在Matlab中可以编写各种复杂的先进控制算法并进行验证,但这种验证多基于仿真。为此,本文利用A3000过程实验装置和Profibus构建了一个实验平台,将Matlab中的控制算法在实验装置上进行了验证。
Profibus是一种国际化的、开放的、不依赖于设备生产商的现场总线标准,广泛应用于工业自动化。根据其应用特点,Profibus分为Profibus-FMS、Profibus-DP和Profibus-PA三个兼容版本。Profibus-DP专为自动控制系统和设备级分散I/O之间的通信而设计,可取代24 V或0~20 mA并行信号线,也可用于分布式控制系统的高速数据传输,其传输速率可达12 Mbit/s,一般构成单主站系统[1]。
本文运用Profibus的先进性,利用西门子Simatic PCS7和Step7软件对变频器、ET200S输入输出模块进行了设备硬件组态,实现了对A3000过程控制实验装置的数据采集与控制,构建起了复杂算法验证的实验平台。同时,结合OPC(OLE for process control)技术,利用Step7软件,实现了OPC Server,最终完成了Matlab与Profibus的结合。
ISO/OSI模型结构分为7层,从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表达层和应用层,其中前4层面向网络,后3层面向用户。Profibus协议采用了ISO/OSI模型的第1层和第2层,必要时还采用了第7层。第1层和第2层的导线和传输协议基于美国标准EIA RS-485、国际标准IEC 870-5-1和欧洲标准EN 60870-5-1。总线存取程序、数据传输和管理服务基于DIN 19241标准的第1至第3部分和IEC 955标准[1]。
OPC技术在硬件供应商和软件开发商之间划了一条明确的界限,为数据源的产生规定了一种机制,并为这些数据与任何客户程序之间的通信提供了一种标准方式[2]。从用户的角度来看,Profibus提供了3种通信协议类型,即DP、FMS和PA。系统通过运用OPC技术,保证了软件对客户的透明性,使得用户完全从低层开发中脱离出来。应用程序与OPC服务器之间必须有OPC接口。OPC规范提供了2套标准接口,即Custom标准接口和OLE自动化标准接口。本系统采用OLE自动化标准接口[2]。Profibus的协议结构如图1所示。
图1 Profibus协议结构Fig.1 Protocol structure of Profibus
图2 A3000装置实验系统结构图Fig.2 Structure of A3000 experimental system
本设计系统对象是采用Profibus-DP现场总线的A3000过程控制装置,A3000过程控制装置的结构图如图2所示。A3000高级过程控制实验系统是一套包含被控对象和检测仪表、执行仪表的现场实验系统,可以实现液位、流量、温度控制实验。该现场系统有被控对象单元(包括3个水箱、1个锅炉和1个换热器)、检测仪表(2个流量仪表和3个压力仪表)、执行仪表(1个电动调节阀、1个变频泵和1个调压器,调压器位于锅炉内部),此外,还安装有变频器和ET200S模块。系统可以接收和提供标准的4~20 mA电流信号,组成一个完整、独立的现场环境。
A3000装置中的变频器采用西门子MM420变频器,带有 Profibus-DP接口。变送器信号通过符合Profibus-DP协议的信号远传模块ET200S接入Profibus-DP总线,控制站采用安装CP5611通信卡的PC机。系统采用Profibus-DP总线的单主站结构,将PC机组态为Profibus-DP主站,同时将其设置为OPC服务器,将MM420和ET200S设置为Profibus-DP从站。A3000装置Profibus-DP网络连接结构如图3所示。
图3 Profibus-DP网络连接结构Fig.3 Profibus-DP network connection structure
图3中,PC机和Profibus-DP总线通过CP5611通信卡连接,在本系统中,CP5611通信卡作为DP主站。作为从站的变频器MM420和I/O远传模块ET200S通过DP电缆与CP5611卡连接。DP电缆是带有9针DP接头、采用RS-485传输技术的通信电缆[3]。
Profibus-DP系统组态过程如下。首先,配置PC Station硬件机架,成功安装软件SOFTNET和硬件通信卡并正确安装向导以后,在“Station Configuration Editor”中可以看到OPC server和CP5611卡均在槽中。接着,在Step7中的组态文件PC Station中,打开Simatic Manager,新建一个项目,通过“Insert”插入一个Simatic PC Station,点击Configuration,进入配置画面进行参数配置,Profibus-DP主站配置完毕后,CP5611已搭建出Profibus-DP总线。此时,即可以在硬件目录下添加从站设备MM420和ET200S。最后,系统组态完成后与A3000装置通过DP电缆连接并下载配置文件,点击“Download the Selected Station”即可完成下载。至此,Profibus-DP系统组态配置完成,PC机可以提供OPC Server。
基于OPC的Matlab与Step7通信原理如图4所示[6]。
图4 通信原理图Fig.4 Communication principle
采用Matlab实现A3000的控制的设计思想是:使用Matlab的OPC功能函数,编写M文件,建立与Step7 OPC Server的连接,进行数据通信,实现A3000装置的预测控制,为以后实现复杂控制算法打下基础。
OPC Server将用于动态交换的数据做成一个封装的结构面向访问它的客户端,需进行操作的数据以数据项(Item)的形式提供,但是数据项对客户端是不可见的,OPC Server只有以组对象(Group)的方式访问数据项。图4中,Matlab客户端对 Step7 OPC Server的访问通过COM/DCOM接口和网络实现连接,Client通过操作Server中Item实现对设备寄存器的读写[4-5]。
实现Matlab OPC Client与Step7 Server的数据通信,首先要构建访问OPC Server的客户端对象,这通过Opcda()函数实现,并需要指定OPC Server所在PC机的位置(本系统是在本地主机“localhost”上)和OPC Server标示。完成客户端对象添加后通过Connect()函数和服务器端建立连接。在客户端对象下使用Addgroup()函数添加组对象,然后再使用Additem()函数添加需要采集的各个数据项,并利用Set()函数设置数据通信的相关参数。此时,OPC客户端就可以通过Read()函数和Write()函数对服务器进行数据读写操作。基于OPC技术的Matlab与Step7的通信程序示例如下。
本实验被控对象的模型采用阶跃响应来描述,即对象的动态特性用其阶跃响应在采样时刻 t=T、2T、…、NT的值 a1、a2、…、aN来描述,其中,T=2 s,N=133,N为模型时域长度,NT为阶跃响应的截断点。N的选择应使ai(i>N)的值与阶跃响应的静态终值之差具有与测量误差和计算误差相同的数量级,以忽略N以后的动态系数值。
由于被控对象的阶跃响应参数是比较容易测得的,因此,这种被控对象的建模特别适用于较复杂且难以用数学表达式进行描述的对象。将a1、a2、…、aN这N个参数进行组合,形成向量a=[a1a2… aN]T,产生被控对象的阶跃响应向量,这里的被控对象是指除计算机控制器以外回路中的全部环节,可以认为是一种广义被控对象[6]。本实验中给调节阀一定的开度(60%),取液位稳定时的一个数值,然后增大调节阀的开度(10%),在此期间,通过计算机每隔2 s采集一个液位的数值。本次实验中所取数值的个数N为133,从而得出需要的阶跃模型。
本实验采用动态矩阵控制(dynamic matrix control,DMC)算法,被控对象的模型用上面获得的阶跃响应的离散采样数据来描述[7]。
预测控制有多种控制算法形式,每种形式都建立在3项基本原理之上。这3项基本原理称为预测控制的3要素,即预测模型、反馈校正和滚动优化[7]。
根据线性系统的比例和叠加原理,利用上述模型和给定的输入控制增量,可以预测系统未来的时刻的输出值,如在k时刻加一个控制量Δu(k),则在未来N个时刻的模型输出值为:
式中:y0(k+i)(i=1、2、…、N)是在 k时刻不施加控制作用Δu(k)情况下,由k时刻起未来的N个时刻的输出预测的初始值。
由于模型误差和干扰等的影响,系统的输出预测值需要在预测模型输出的基础上用实际输出误差进行反馈校正,以实现闭环预测,即:
式中:Ym(k+1)为模型的预测输出;Yp(k+1)为反馈校正后的预测输出;A、A0为动态矩阵;H=[h1,h2,…,hp]T,hj为对应与第 j步输出的反馈矫正系数,本文中全部取为1;e(k)为实测输出y(k)与预测值ym(k)之差,即 e(k)=y(k)-ym(k)。
由DMC算法可知,当此算法在线实施时,只涉及到模型参数和控制参数。模型参数取决于对象阶跃响应特性和采样周期的选择,控制参数取决于模型参数和优化性能指标[8]。它们都是设计的结果而不是可直接调用的参数,在设计中真正要确定的原始参数应该是采样周期T、优化时域P、控制时域M、误差权矩阵Q和控制权矩阵R。
动态矩阵控制算法以被控对象的阶跃响应直接作为模型,采用动态预测和滚动优化的策略,具有易于建模和鲁棒性强的优点。在环境变化时,控制系统能够保持稳定和良好的控制性能,十分适合复杂工业过程控制的特点和要求。单容水箱液位动态矩阵控制曲线如图5所示。图5中,u、y、yc分别表示输入量控制增量的变化、水箱液位随控制增量变化而变化的实际输出和预测输出值。
图5 控制曲线Fig.5 Control curves
基于现场总线的自动化系统采用总线方式代替一对一的I/O连线,对大规模I/O系统来说,减少了接线点造成的不可靠因素,符合工控系统向分散化、网络化、智能化发展的方向。
本文为了解决复杂控制算法实验验证问题,在构建了基于Profibus-DP现场总线的A3000过程控制实验系统后,利用Matlab提供的先进控制算法实现了对该系统的先进控制,并结合OPC技术,建立了Matlab与Step7的数据通信连接。同时,将实时数据采集到Matlab中进行处理,实现了预测控制和系统辨识等分析研究。这使得控制效果得到优化,在实验系统上取得了满意的控制效果。该系统为其他复杂先进控制算法的实现提供了完善的验证平台。
[1]任波,乔莉,李环.现场总线技术及应用[M].北京:航空工业出版社,2008:4-25.
[2]谢富珍,王春平.OPC数据采集技术的应用[J].科技广场,2006(10):127-128.
[3]OPC国际基金会.OPC data access automation interface standard version[EB/OL].[2009 -04 -05].http://www.opc foundation.org.2002.
[4]史江梅,冯丽辉,钟伟红,等.基于模型的预测控制算法研究[J].昆明理工大学学报:理工版,2002,27(6):72 -75.
[5]胡剑杭,陈冲.基于OPC技术的MATLAB实时过程控制系统[J].福州大学学报:自然科学版,2008,36(S1):105 -107.
[6]王树清.工业过程控制工程[M].北京:化学工业出版社,2003:7-8.
[7]夏扬.计算机控制技术[M].北京:机械工业出版社,2003:65-73.
[8]徐利新,欧阳咸泰,胡中功,等.模型预测控制在工业控制领域中的发展与应用[J].武汉化工学院学报,2001,23(1):78-81.