1、摘要:针对FF现场总线中监控软件实现DMC算法的困难,提出利用Matlab7.0 OPC工具包实现与OPC服务器间通讯并实现DMC控制的方案,充分发挥了矩阵计算语言简洁、高效的优势;动态矩阵控制算法是一种高效的优化预测控制算法,与PID算法相比对于纯滞后系统具有很有的控制精确度和鲁棒性。仿真结果表明,该方案能在很大程度上缩短监控程序的开发周期,并达到了预期的控制效果。关键字:FF现场总线;动态矩阵算法,Matlab, OPC服务器,数据库中图分类号:TP216 文献标志码:A Dynamic matrix control for Water Tank based on FF Field-bus
2、 Zhou Yilin Zhang Wenxia Yuan Jian(College of automation and electronic engineering, Qingdao University of Science &Technology, Qingdao, Shandong 266042, China)Abstract: One method is proposed in this paper to overcome the difficulty of carrying out Dynamic matrix control algorithm in the monitoring
3、 and controlling software of FF field-bus, with an OPC package in Matlab 7.0.And the method exerts the merits of Matrix language, which is terse and effective. Dynamic matrix control algorithm is one effective control algorithm, compared with PID, it is of accurate and robust characters for the dela
4、y system. As a result, the scheme can greatly cut the exploitation period of M/C software and carry out the excellent effect.Keywords: Field foundation field bus; Dynamic matrix control algorithm; Matrix Lab; OPC server;Database 0引言FF现场总线系统是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络,与现行控制系统相比,具有如下一些固有的技术优势:
5、 现场总线用数字信号代替传统的模拟信号,测量精度高,抗干扰能力强; 基于总线的现场仪表可以对量程和零点进行远方设定,具有仪表工作状态自诊断功能,能进行多参数测量和对环境影响的自动补偿; 现场设备集检测、转换、运算和控制功能于一体,既降低了成本,又增加了安全性和可靠性。上位机主要对其进行总体监控、协调、优化和下载控制调度与管理等; 所有现场设备直接通过一对传输线即现场总线连接,减少了连线的数量,易于安装和维护,节省施工费用、电缆费用、调试和维修成本。本实验测控系统采用JBS2GK03 过程控制实验装置,并采用中科院沈阳自动化研究所开发的FF H1 OPC服务器MicroCyber.FFServe
6、r.1作为OPC服务器, 其符合OPC基金会制订的OPC DA 2.0规范标准1,提供了访问现场数据的标准接口。OPC客户端与服务器之间的通讯符合OPC的自动化接口规范1,2要求,利用Matlab 7.0支持OPC规范的新功能,实现用户端与服务器段的通讯。动态矩阵控制算法在客户端通过Matlab的m语言实现,充分发挥了矩阵计算语言简洁、高效的优势。1控制原理本实验测控系统采用的JBS2GK03过程控制实验装置,其被控参数变量为液位、流量、温度和压力。该过程为自衡非振荡, 具有相互影响的双容过程, 其数学模型可用如下传递函数描述: G( s) =式中, Kp , Tp ,为过程的增益、时间常数和
7、时滞。由上位机的OPC服务器实时获取FF现场总线采集现场设备数据并动态显示。用MicroCyber .FFServer.1 做OPC服务器3,其符合OPC基金会制订的OPC DA 2.0规范标准,每秒钟刷新一次,实现设备的实时数据和历史数据共享以及报警等功能。OPC客户端与服务器之间的通讯符合OPC的自动化接口规范要求,利用Matlab 7.0支持OPC规范的新功能,实现用户端与服务器段的通讯。动态矩阵控制算法在监控端实现,通过Matlab的m语言实现,利用了其强大的计算与动态显示能力对水箱系统进行动态矩阵控制4。并将OPC服务器的历史数据保存在Matlab的数组中,可以实现对历史数据曲线的实
8、时绘制。本文采用的受控对象为Device1.Flow,组名为Device1。通过Matlab编写的客户端与sql2000服务器的ODBC连接,实时与数据库交互。从OPC服务器读取选项的值(包括选项的值(value),品质(quality),时间戳(timestamp),服务器名(servername),设备名(device)。同时可以实时将选项的值插入到数据库服务器中保存为历史数据,需要时可以通过选项随时将历史数据进行回调,进行查询,更新,删除等操作或者用于算法控制和绘制历史曲线图,从而可以实现OPC服务器和历时数据服务器的分布式管理 。其原理图如图一所示。采用的NCS-IF105设备将传统模
9、拟量转换到FF现场总线的智能设备4,并可以接收四个通道020mA模拟信号,转换成现场总线信号。NCS-LD105现场总线网关可用于各种采用FF H1现场总线设备的控制系统当中,可将FF H1总线设备无缝集成到以太网网络中,还可扩展FF H1应用4,5。图1:控制系统结构Figure 1 structure of control system2程序实现2.1客户端与OPC服务器通讯首先,Matlab客户端应先生成OPC服务器支持的OPC对象,OPC数据访问对象由分层结构构成。即一个OPC服务器对象具有一个作为子对象的 OPC组集合对象。在这个OPC组集合对象里可以添加多个的OPC组对象。各个OP
10、C组对象都具有一个作为子对象OPC标签集合对象。在这个标签集合对象里可以添加多个OPC标签对象。用Matlab M文件编写OPC客户端程序包含以下步骤:(1)添加服务器的引用,创建OPC服务器对象,并将客户程序与服务器相连;(2)连接创建的OPC服务器对象;(3)可以浏览整个服务器中所有的项,添加组对象;(4)添加OPC项,选择需要的项,将其添加到规定的组中,并显示其值和状态;(5)启动OPC服务器。程序和解释如下:hostInfo = opcserverinfo(远程/本地服务器名);%连接远程/本地服务器allServers = hostInfo.ServerID;da = opcda(服
11、务器名, OPC服务器名);connect(da);sawtoothItems = serveritems(da, *受控设备名*);itmIDs = 控设备名;grp = addgroup(da, DemGroup);%增加组itm = additem(grp, itmIDs); %增加项目start(grp); %启动OPC服务器2.2 客户端与SQL数据库服务器通讯首先,在sql数据库中建立名为yuan的数据库,并建立一个名为history的表。表中的字段包括选项的值(value),品质(quality),时间戳(timestamp),服务器名(servername),设备名(devic
12、e)。设置ODBC数据源,建立一个名为 yuan的数据源,该数据源指向sql数据库中的yuan的数据库。测试连接成功后,即可在Matlab中通过编写M文件实现与数据库的连接,并建立一个工作空间数组,来存储来自数据库的数据,通过执行命令的方式实现select,insert数据等操作。图2:Matlab中查询(存储在数组A中)Figure 2 Query in Matlab (stored in the array A)关键程序及解释如下所示:首先,实现建立连接对象,实现与数据库服务器的连接。conn = database(数据源名, 用户名, 用户密码);%连接数据库ping(conn);%检查
13、连接状态curs = exec(conn, select country from 表名)%打开游标执行sql语句setdbprefs(DataReturnFormat,cellarray)%说明检索数据的格式curs = fetch(curs, 10)%将数据倒入到Matalbcolumnnames(curs)%获取列名A = curs.Data%显示游标对象里的所有数据元素,data(:,3)为获取某一字段的元素值insert(conn, 表名, 字段名, 数组名);%将数组的值插入到表的某一字段中close(curs)%关闭游标close(conn)%关闭连接对象3.基于OPC的动态矩阵
14、控制原理3.1 改进的动态矩阵控制算法动态矩阵控制4是一种利用被控对象的单位阶跃响应采样数据作为预测模型的预测控制算法。设被控对象的单位阶跃采样数据为 a1 , a2 , ,对于渐近稳定的系统,其阶跃响应在若干个采样周期后就趋于稳态值,即aN a () , 因此可以用单位阶跃响应采样数据的前有限项描述系统的动态特性 a1 , a2 , , aN由线性系统的叠加原理,可以得到系统输出的预测模型为Ym ( k + 1) = AU( k) + A0 U( k - 1) (1) 其中Ym ( k + 1) k时刻求得的未来P步模型输出;Ym ( k + 1) = ym ( k + 1/ k) , ym
15、 ( k + 2/ k) , , ym ( k + P/k) TA和A0 分别为PM和P(N-1)阶矩阵,均由阶跃响应系数构成,A =A0 =U( k) = u ( k) ,u ( k + 1) , ,u ( k + M - 1) T U( k - 1) = u ( k - N + 1) , u ( k - N + 2) , , u ( k - 1) T引入反馈校正作用,便有如下多步输出预测YP ( k + 1) = Ym ( k + 1) + h y ( k) - ym ( k) =AU( k) + A0 U( k - 1) + he ( k) (2)式中YP ( k + 1) = yP (
16、 k + 1) , yP ( k + 2) , , yP ( k + P) T e ( k) = y ( k) - ym ( k),如果把e( k)赋予一个小的常值(0.001),则会加快收敛的速度。h = h1 , h2 , , hP T给定参考轨迹:Yr ( k + 1) = yr ( k + 1) , yr ( k + 2) , , yr ( k + P) T优化下列性能指标Jp = yp ( k + 1) - yr ( k + 1) TQ Yp ( k + 1) - Yr ( k + 1) + UT ( k)U( k) (3)式中Q = diag ( q1 , q2 , , qp) ,
17、 P 是预测时域; qi 的值取为不同的权值,从而保证不同的观测更新起到不同的作用。= diag (1 ,2 , ,M) , M 是控制时域;得到U( k) = ( ATQA +) - 1 ATQ Yr ( k + 1) - A0 U ( k - 1) -he ( k) (4) 即时控制增量取为u ( k) = dT Yr ( k + 1) - A0 U( k - 1) - he ( k) dT = (1 ,0 , ,0) ( ATQA +) - 1ATQ 为取首行运算。根据q和的不同比重进行适当的选取,以使性能函数J 快速达到最小。3.2产生受控系统的阶跃响应输出受控系统数学模型可用如下传递
18、函数描述: G( s) =式中, Kp , Tp ,为过程的增益、时间常数和时滞。将阶跃信号作为控制信号作用于受控系统,通过FF现场总线,实时获取一段时间内系统某一受控对象(流量)的阶跃响应输出,可以通过Matlab程序读取对应时刻的阶跃响应值,并将时间和对应值存在一个数组中。通过建立受控对象的数学模型,来辨识受控系统的参数。并得到辨识后系统的输出。使用Matlab 7.0 的OPC工具包,实现客户端程序与OPC服务器的通讯6,7,使用get(itm1,value)函数来获取服务器中流量的实时值(其中itm1=Device1.Flow),然后进行动态矩阵控制。得到控制量后,通过使用write(
19、itm2, setvalue)(其中itm1=Device2.Valve)函数将控制量写入OPC服务器,从而控制受控系统。4DMC控制程序仿真设置模型的时域长度为N=10,优化时域长度为P=3,误差校正向量为h,其长度为N,控制向量为d,其长度为P,预测向量存储在数组y1中。不同的模型时域长度和优化长度对系统性能的影响是不同的,仿真曲线见图47所示,r和P不同选择的不同长度对预测向量的影响。r过大时,预测向量会明显偏离真实的系统响应,对预测不利。当r=20和P=3时预测与实际响应值相一致。可见,在DMC控制算法中,应该合理选择模型时域长度和优化长度才能达到理想的控制效果。 图3 r=20,P=
20、3 系统响应曲线 图4 r=60,P=3 系统响应曲线 Figure 3 response curve when r=20, P=3 Figure 4 response curve when r=60, P=3 图5 r=20,P=10 系统响应曲线 图6 r=60,P=10 系统响应曲线 Figure 5 response curve when r=20, P=10 Figure 6 response curve when r=60, P=105.结束语FF 现场总线技术与传统DCS 相比,系统布线投资明显减少,而网络功能则大大加强。而且该系统可以充分利用各种软件的优势,大大提高软件编程的效
21、率和灵活性,实际运行结果表明,基于Matlab和OPC技术的FF现场总线的实验测控系统运行稳定,控制效果良好。参考文献1 OPC programmers connection. OPC toolkits and free source code EB/OL. 2欧阳三泰,欧阳希,欧阳琳.基于组态方式的自动化监控系统在线配置设计J.化工自动化及仪表,2004,31(6):39-40.3刘丹,于海斌,王宏,等.自主开发的FF现场总线控制系统典型应用J.自动化仪表,2005,26(3):46-48.4李玉红,刘红军.一种新型的动态矩阵控制算法及仿真研究J.计算机仿真,2005,22(2):103-105,109.5陈娜,戚淑芬.基于FF 现场总线的实验测控系统J.青岛科技大学学报,2004,25(1):80-82.6张奇智,曹永灿.基于OPC 技术网络控制系统仿真平台J.传感器世界,2005(8): 25-29.7赵明生.基于OPC技术的预测控制J.计算机工程与应用,2005(9):224-228.