基于FF现场总线实现双容液位对象的动态矩阵控制摘要_第1页
基于FF现场总线实现双容液位对象的动态矩阵控制摘要_第2页
基于FF现场总线实现双容液位对象的动态矩阵控制摘要_第3页
基于FF现场总线实现双容液位对象的动态矩阵控制摘要_第4页
基于FF现场总线实现双容液位对象的动态矩阵控制摘要_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 FF现场总线实现双容液位 对象的动态矩阵控制 摘要 : 针对 FF现场总线中监控软件实现 DMC算法的困难 ,提出利用 M atlab7. 0 OPC工具包实现与 OPC服务器间通讯并实现 DMC控制的方案。仿真结果表明 ,该方案能在很大程度上缩短监控程序的开发周期 ,并达到了预期的控制效果。1该FF现场总线系统的特点FF现场总线系统是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络 ,与现行控制系统相比 ,具有如下一些优势: 现场总线用数字信号代替传统的模拟信号 ,测量精度高 ,抗干扰能力强; 基于总线的现场仪表可以对量程和零点进行远程设定 ,具有仪表工作状态自诊断

2、功能 ,能进行多参数测量和对环境影响的自动补偿;现场设备集检测、转换、运算和控制功能于一体 ,既降低了成本 ,又增加了安全性和可靠性。上位机主要对其进行总体监控、协调、优化和下载控制调度与管理等; 所有现场设备直接通过一对传输线即现场总线连接 , 减少了连线的数量 , 易于安装和维护 ,节省施工费用、电缆费用、调试和维修成本。本实验测控系统采用 JBS2GK03 系统的双容水箱液位对象作为实验装置 ,并采用中科院沈阳自动化研究所开发的 FF H1 OPC 服务器 M icroCyber. FFServer. 1作为 OPC 服务器 , 其符合 OPC 基金会制订的 OPCDA 2. 0 规范标

3、准 1 ,提供了访问现场数据的标准接口。OPC客户端与服务器之间的通讯符合 OPC 的自动化接口规范 1, 2 要求 ,利用 Matlab 7. 0 支持 OPC规范的新功能 ,实现用户端与服务器端的通讯。动态矩阵控制算法在客户端通过 Matlab 的 M 语言实现 ,充分发挥了矩阵计算语言简洁、高效的优势。2实验系统与控制原理本实验系统包括两个部分: FF现场总线部分和现场控制模型部分。FF 现场总线包括低速现场总线 H1 和高速现场总线 HSE。低速现场总线 H1 的速率为 31. 25 kbp s,可用于温度、液位及流量等控制场合 ,信号类型为电压信号; 高速现场总线 HSE 的速率为

4、100 Mbp s,一般用于高级控制、远程输入 /输出和高速工厂自动化等场合。该测控系统的实验过程为自衡非振荡 ,具有相互影响的双容过程 ,其数学模型可用如下传递函数描述:G ( s) =KpTp s + 1 exp ( - s)式中: Kp , Tp ,过程的增益、时间常数和时滞。由工控机中的 OPC服务器实时获取 FF现场总线采集的过程数据并动态显示 , 用 M icroCyber. FFServer. 1 做 OPC服务器 3 ,每秒钟刷新一次 ,实现设备的实时数据和历史数据共享以及报警等功能。动2态矩阵控制算法在工控机中监控端实现 ,通过 Matlab的 M 语言实现 , 利用了其强大

5、的计算与动态显示能力对水箱系统进行动态矩阵控制 4 。并将 OPC服务器的历史数据保存在 Matlab 的数组中 ,可以实现对历史数据曲线的实时绘制。采用的被控变量为Device1. Flow, 组名为 Device1。通过 Matlab 编写的客户端与 SQL SERVER 2000 数据库服务器的 ODBC连接 ,实时与数据库交互。从 OPC 服务器读取选项的值 (包括选项的值、品质、时间戳、服务器名、设备名 ) 。可以实时将选项的值插入到数据库服务器中 ,保存为历史数据 ,需要时 ,可以通过选项随时将历史数据进行回调 ,进行查询、更新、删除等操作或者用于算法控制和绘制历史曲线图 ,从而实

6、现 OPC 服务器和历时数据服务器的分布式管理。其原理图如图 1所示。图 1 中 , Q i , Qo 分别表示输入流量和输出流量 ,在该现场总线控制系统中 ,液位变送器将检测到的液位的高度转化为 0 10 mA 的电流输出 , NCS2IF105 现场总线变送器再将液位 2 的模拟量信号 ( 010 mA )转换为符合 FF现场总线协议的数字量信号 ,然后通过 OPC客户程序实时获取 OPC服务器中的数据 ,实现动态矩阵预测控制算法 ,得到数字控制 信号 ,经 NCS2F I105 变送器则将现场总线数字量控制信号转换为 0 10 V 的电压信号 , 送到变频器控制端 ,使变频器输出相应的电

7、压和频率 ( 0 50 Hz) ,从而改变水泵转速 ,达到控制液位的目的。图 1 控制系统结构3 O PC 客户程序的开发3. 1客户端与 O PC 服务器通讯首先 ,Matlab客户端应先生成 OPC 服务器支持的 OPC对象 , OPC 数据访问对象由分层结构构成。即一个 OPC 服务器对象具有一个作为子对象的OPC组集合对象。在这个 OPC 组集合对象里可以添加多个 OPC 组对象。各个 OPC 组对象都具有一个作为子对象的 OPC 标签集合对象。在这个标签集合对象里可以添加多个 OPC标签对象。用 Matlab M 文件编写 OPC 客户端程序包含以下步骤:( 1)添加服务器的引用 ,

8、创建 OPC 服务器对象 ,并将客户程序与服务器相连。( 2)连接创建的 OPC服务器对象。( 3)可以浏览整个服务器中所有的项 , 添加组对象。( 4)添加 OPC项 ,选择需要的项 ,将其添加到规定的组中 ,并显示其值和状态。( 5)启动 OPC服务器。具体程序和解释如下:hostInfo = opcserverinfo ( 远 程 /本地服务器名 ); %连接远程 /本地服务器allServers = hostInfo. ServerID;da = opcda ( 服务器名 ,OPC服务器名 );connect ( da) ;sawtooth Item s = serveritem s

9、( da, 3 受控设备名3 );itm ID s = 控设备名 ;grp = addgroup ( da, DemGroup ); %增加组 itm = additem ( grp , itm ID s) ; %增加项目 start ( grp ) ; %启动 OPC服务器3. 2客户端与 SQL 数据库服务器通讯首先 , 在 SQL 数据库中建立名为 yuan 的数据库 ,并建立一个名为 history的表。表中的字段包括选项的值、品质、时间戳、服务器名、设备名。设置ODBC数据源 ,建立一个名为 yuan的数据源 ,该数据源指向 SQL 数据库中的 yuan 数据库。测试连接成功后 ,即

10、可在 Matlab中通过编写 M 文件实现与数据库的连接 ,并建立一个工作空间数组 ,用于存储来自 数据库的数据 ,通过执行命令的方式实现 select, in2sert数据等操作。关键程序及解释如下:首先 ,实现建立连接对象 ,实现与数据库服务器的连接。conn = database ( 数据源名 ,用户名 ,用户密 码 ); %连接数据库p ing ( conn) ; %检查连接状态curs = exec ( conn, select country from 表名 ); %打开游标执行 SQL 语句setdbp refs ( DataReturnFormat,cellarray); %说

11、明检索数据的格式curs = fetch ( curs, 10 ) ; %将数据导入到 Matlabcolumnnames ( curs) ; %获取列名A = curs. Data; %显示游标对象里的所有数据元素 , data ( ,3)为获取某一字段的元素值insert ( conn, 表名 ,字段名 ,数组名 ) ; %将数组的值插入到表的某一字段中close ( curs) ; %关闭游标close ( conn) ; %关闭连接对象通过以上步骤 , 实现了 Matlab 客户端程序与OPC 服务器以及与 SQLServer 2000 数据库的连接 ,从而可以实现数据的实时通讯和存储

12、 ,并为动态矩阵控制算法提供了必要的历史数据和实时数据。4动态矩阵控制原理4. 1动态矩阵控制 ( DM C)算法 4 动态矩阵控制是一种利用被控对象的单位阶跃响应采样数据作为预测模型的预测控制算法。设被控对象的单位阶跃采样数据为 a1, a2, , 对于渐近稳定的系统 ,其阶跃响应在若干个采样周期后就趋于稳态值 ,即 aN a ( ) , 因此可以用单位阶跃响应采样数据的前有限项描述系统的动态特性 a1 , a2 , aN 。由线性系统的叠加原理 , 可以得到系统输出的预测模型为:Ym ( k + 1) = A U ( k) + A0 U ( k - 1)( 1)式中: Ym ( k + 1

13、) k时刻预测有u ( k) 作用时未来 N 个时刻的预测模型输出矢量 , Ym ( k + 1) = ym ( k + 1 / k) , ym ( k + 2 / k) , , ym ( k + P / k) T ;U ( k) 待求控制增量矢量 , U ( k) = u ( k) ,u ( k + 1 ) , u ( k +M - 1) T ; U ( k - 1 ) 已知控制矢量 , U ( k - 1) = u ( k - N + 1) , u ( k - N + 2) , u ( k -1) T ; A、A0 系统的动态矩阵 , A =a000a2a10,apap - 1ap - m

14、 +1 P ×MaN - aN - 1aN - 1 - aN - 2a2A0=0aN - aN - 1a3;00ap +1 P ×(N - 1)A0 U ( k - 1) k时刻预测无u ( k) 作用时未来N 个时刻的输出初始矢量, 它是由 k时刻以前加在系 统输入端的控制增量产生的。假定从 ( k - N ) 到 ( k - 1 ) 时刻加入的控制增量分别为 u ( k -N ) , u ( k - N + 1 ) , u ( k - 1) , 而在 ( k - N - 1)u ( k - N - 2)= 0 , 则式 ( 1 )是用过去施加于系统 的控制量表示初值的预

15、测模型输出 , 由此可知预测 模型输出由两部分组成: 待求的未知控制增量和过 去控制量产生的系统已知输出初值。由于模型误差 和干扰等的影响 ,系统的输出预测值需要在预测模 型输出的基础上用实际输出误差修正 ,即:YP ( k + 1) = Ym ( k + 1) + h y ( k) -ym ( k) = A U ( k) + A0 U ( k - 1) + he ( k)( 2)式中: YP ( k + 1 ) 系统输出预测矢量, YP ( k + 1 ) = yP ( k + 1) , yP ( k + 2 ) , , yP ( k + P) T ;e ( k) k时刻预测模型输出误差,

16、e ( k) = y ( k) -ym ( k) ; h误差修正系数, h = h1 , h2 , hP T 。优化下列性能指标:Jp= yp ( k + 1) - yr ( k + 1) T Q Yp ( k + 1) - Yr ( k + 1) + UT ( k)U ( k)( 3)式中: Yr( k + 1 ) 参考轨迹, Yr ( k + 1) = yr ( k +1 ) , yr( k+ 2 ) , yr ( k+ P) T ; Q = diag ( q1 , q2 , ,qp ) , P为预测时域; =d iag (1 ,2 , ,M ) , M 为控制时域 ,得到:U ( k)

17、= (AT QA +) - 1 AT Q 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) (AT QA +) - 1 AT Q 为取首行运算 )4. 2产生受控系统的阶跃响应输出受控系统数学模型可用如下传递函数描述:KpG ( s) = Tp s + 1 exp ( - s) ,将阶跃信号作为控制信段时间内系统某一受控对象 (流量 ) 的阶跃响应输出 ,可以通过 Matlab程序读取对应时刻的阶跃响应值

18、 ,并将时间和对应值存在一个数组中。通过建立受控对象的数学模型 ,来辨识受控系统的参数 ,并得到辨识后系统的输出。使用 Matlab 7. 0 的 OPC工具 包 ,实现客户端程序与 OPC 服务器的通讯 5, 6 ,使用get ( itm1, value)函数来获取服务器中流量的实时值 (其中 itm1 = Device1. Flow ) , 然后进行动态矩阵 控制。得到控制量后 , 通过使用 write ( itm2, setval2ue) (其中 itm1 = Device2. Value) 函数将控制量写入OPC服务器 ,从而控制受控系统。 5 DM C 控制程序仿真设置模型的时域长度

19、为 N , 优化时域长度为 P,误差校正向量为 h, 控制向量为 d, yr 为参考轨迹, 其长度为 P, 预测向量存储在数组 y1 中。根据 3. 1 小节介绍的步骤 , DMC控制程序如下: a = ydata; %获取的受控对象的数据N = size ( ydata) ; %数据长度 , N 的值根据阶跃响应采样 点数进行设定h = ones ( size ( ydata) ) ; %误差校正向量r = 20; P = 3; % r为期望输出 , P的值自行选定Ts = 5; % Ts为采样间隔Tr = 3; % Tr =为时间滞后A rfaR = exp ( - Ts/ Tr) ; f

20、or i = 1Ny1 ( i) = 0; %预测向量初始化 u1 = 0; %控制向量初始化 endfor j = 191; %控制次数y ( i) = get ( itm1, value); %监测设备流量值并读取 e = ( y ( i) 3 80. 0 4095 - 40) - y1 ( 1) ;for i = 1Ny1 ( i) = y1 ( i) + e3 h ( i) ; %误差校正 endfor i = 1N - 1y1 ( i) = y1 ( i + 1 ) ; %预测向量位移 ,得到当前 的初始响应ends = 0;for i = 1Ps = s + a ( i) 2;en

21、dfor i = 1P - 1d ( i) = a ( i) / s; %计算控制向量 enddu = 0;for i = 1P - 1yr ( i) = A rfaR i3 y ( i) + ( 1 - A rfaR i) 3 r; % yr为参考轨迹du = du + d ( i) 3 ( r - y1 ( i) ) ; %计算控制增量endu1 = u1 + du; %计算控制位置量u = u13 4095 /100000 +. 5; %控制量变换setvalue = u - 1;write ( itm2, setvalue ) ; %使用 w rite 函数来进行控制量的输出value1 ( j) = get ( itm1, value);for i = 1Ny1 ( i) = y1 ( i) + du3 a ( i) ; %计算在 du 作用时的控制向量endend不同的 N 和 P 对系统性能的影响是不同的 ,仿真曲线见图 2、图 3。当 r, P和 N 选择不当时, 预测向量会明显偏离真实的系统响应, 对预测不利。当 r =20、P = 3 和 N = 20 时预测与实际响应值相一致。可见 ,在 DMC控制算法中 ,应该合理选择模型时域长度和优化长度才能达到理想的控制效果。图 2 r = 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论