摘要: 网络控制系统中的延迟不仅具有随机性,而且很大程度上与控制网络所采用的MAC层通信协议是相关的,传统的数学建模方法很难如实反映实际网络控制系统中的延迟特性。本文基于OPC技术和MATLAB7.0软件,介绍了在实际网络中通过两台通用计算机,搭建网络控制系统仿真平台的方法。该方法通过OPC技术实现了对象模型和控制器在两台计算机的分离实现,可为网络控制系统的理论研究提供有效的检验平台。
关键词:网络控制系统;仿真平台;OPC技术;MATLAB
中图分类号:TP393 文献标识码: A
一、引言
随着工业控制系统对智能化、分散化、网络化以及标准化要求的不断提高,现场总线技术和工业以太网技术的应用范围正在不断扩展。现场总线和工业以太网都属于串行网络,其通信带宽由多个控制回路分享,这些控制回路相互竞争通信带宽,其结果会在各自的闭环回路中引入随机延迟。研究表明网络控制系统中的随机延迟会恶化控制品质,甚至使控制系统变得不稳定[1, 2],因此有必要研究新的控制算法来改善网络控制系统的品质。在设计新的网络控制系统算法时,需要一个能代表实际网络控制系统的研究平台,它应该能够如实反映控制回路中的通信延迟特性。搭建实际的网络控制系统试验平台需要较多的资金投入,同时也需要投入较多的人力为硬件设备开发软件系统,因而很多学者通过搭建软件仿真平台来减少所需的投资。
采用软件方法搭建的网络控制系统仿真平台是否合理和有效,关键看其能否准确地模拟传感器到控制器和控制器到执行器的通信延迟。不少学者利用随机函数模型来近似产生网络中的通信延迟,也出现了TrueTime这样根据网络MAC协议对通信延迟进行机理建模的方法[3]。由于实际网络控制系统的随机延迟模型很难准确获得,采用随机函数模型产生的网络延迟与实际情况往往存在较大误差。TrueTime实现的机理建模方法也具有局限性,它只适用于单级的网络拓扑,而且当网络中的通信节点较多时仿真系统运行效率很低。因此本文考虑从实际网络中取得控制延迟,这对基于工业以太网的网络控制系统尤为合适,因为普通的办公网络即可用来近似地模拟工业以太网的工作环境。
如果控制延迟从实际网络中取得,模型和控制器需要实现在网络中两台不同的计算机上,其中一台作模型,另一台作控制器。在控制器和模型间传递数据时需要选择合适的通信机制,为此引入工控行业的软件接口标准OPC(OLE for Process Control)技术。OPC技术试图按照标准的方法解决软硬件之间数据交换问题,它采用服务器/客户端模式,只要硬件设备提供了具有统一OPC接口的服务器,控制和组态软件等即可按照一致的OPC客户端接口访问服务器,实现与硬件设备的数据交换。针对工业通信中不同的数据传输要求,OPC技术又分成若干个子类。其中针对实时通信,OPC基金会定义了OPC DA规范[4]。
本文巧妙借用OPC DA技术和MATLAB7.0软件来实现网络控制系统仿真平台的开发。 OPC DA技术在这里主要用来简化模型和控制器间的通信设计,同时提供标准的数据访问接口,便于模型的扩展升级。模型和控制器都采用通用计算机运行MATLAB/Simulink仿真模块来实现。在条件允许时,也可将模型和控制器部分或全部替换为实际对象,如控制器可以采用DCS系统来实现,而模型信号可以取样于实际系统。
二、实现方案
网络控制系统仿真平台的开发主要包括三部分:模型、控制器和网络(图1)。因为传感器和执行器可以作为广义对象的一部分来考虑,为了简化分析,本文将它们作为模型的一部分。这里采用OPC DA技术把模型实现为一个OPC DA服务器,控制器则作为一个OPC DA客户端与模型服务器进行数据交换,然后通过网络可以把模型和控制器实现在两台不同的计算机上。
1、模型模型服务器的主要功能是实现标准的OPC DA服务器接口,提供对象输出标签和控制变量标签,同时它负责与受控对象进行交互,刷新控制变量,并从受控对象得到更新的对象输出响应。根据对仿真平台的实际要求,模型服务器可以有多种实现方案。
(1) 采用MATLAB提供的OPC工具箱和Matrikon提供的OPC服务器来来实现。其中 Matrikon OPC服务器提供了可供OPC DA客户端读写的内存空间。它们其中一部分可以用来存储于控制变量,另一部分可用于存储对象输出。在MATLAB/Simulink环境中构建受控对象模型,通过OPC工具箱提供的函数与Matrikon OPC服务器建立连接,从OPC服务器读取控制变量,并计算出相应的对象输出,最后将其存储到OPC服务器中。这种实现方案无需MATLAB之外的编程,可以快速搭建。但也有一定的限制,Matrikon OPC服务器提供的公共内存空间有限,不适于构建复杂的多输入多输出系统,同时这种结构也不便于将来对仿真平台进行扩展升级。
(2) 购买物理受控对象、传感器和执行器,采用通用开发工具实现OPC DA服务器。如果传感器和执行器发送和接收的是数字信号,需购买支持相应数字通信协议的板卡;如果传感器和执行器只支持模拟信号,则需购买模数和数模转换板卡对信号进行转换。OPC DA服务器通过板卡驱动读取传感器数据, 送出执行器数据。它的缺点是投资较大,软硬件开发需要较长的周期;但它采用了实际物理模型,不存在模型失配问题。
(3) 受控对象采用MATLAB/Simulink模块来实现,它从MATLAB工作区间读入控制变量,更新对象输出并将其存入MATLAB工作空间。OPC DA服务器采用通用开发工具实现,它通过MATLAB 引擎可以更新MATLAB工作区间的控制变量,同时也可以从工作区间读取最新的对象输出。MATLAB工作区间提供OPC DA服务器与受控模型间的数据交换。这种实现方案即可利用MATLAB强大的功能来构建受控对象,同时不受对象复杂程度限制, 也便于将来对模型进行扩展升级,因而具有很大的灵活性。
把受控对象实现为OPC DA模型服务器后,控制器的实现就变得相对简单,它作为一个OPC DA客户端,根据OPC DA接口标准读取模型服务器的对象输出(标签),然后与对象设定值比较得到控制误差,再根据设定的控制算法更新控制变量,将其写人模型服务器的控制变量(标签)即可。控制器也有多种实现方案。
(1) 采用通用编程软件实现实时控制算法,按照OPC DA规范编写程序与模型服务器交换数据。
(2) 目前基于DCS或PC-Based的商业实时控制器大多都可以直接连接OPC DA 服务器。如果有现成的控制设备,只需在控制器中利用软件供应商提供的组态软件,实现所需的控制算法即可。
(3) 利用MATLAB 7.0提供的OPC工具箱,连接OPC DA服务器实现对服务器数据的读写。MATLAB/Simulink环境具有强大的数字运算能力、加上丰富的图形环境和大量成熟的控制工具箱,在研究和开发新的网络控制系统算法时,无疑是首选方案。
3、网络由于采用不同MAC协议的通信网络具有不同的延迟特性,因此在搭建网络控制系统仿真平台时,应有针对性地选择相应网络类型。网络中的一台计算机提供对象模型,而另一台计算机实现控制器功能。所有的传感器数据和送往执行器的控制变量都要通过实际网络进行传输,因此闭环控制回路中的网络延迟完全取自实际网络。
三、平台开发
考虑到仿真平台的易于实现性、灵活性和可扩展性,本文在开发模型和控制器时都采用了第3种结构, 即模型和控制器都采用MATLAB/Simulink模块来构建。在构建好这两个模块后,只要把模型服务器和控制器放置到网络中两台不同的计算机,通过配置OPC DA接口实现控制器和模型服务器的连接即可(图2)。
1、模型服务器开发模型服务器开发的主要难点集中在OPC DA接口的实现上,它需要开发人员了解COM通信机制以及OPC DA服务器的接口细节。为了降低开发难度,缩短开发周期,可以借助于市场上众多的OPC DA服务器快速开发工具箱[5], 它们大多数都提供了测试开发版,基本上可以满足模型服务器的开发任务。
本文采用华富惠通技术有限公司提供的Opctkit快速OPC DA服务器开发工具来实现模型服务器[6],调用工具包接口的流程图如图3所示:
(1) 首先调用INItOPCSvr对服务器进行初始化。
(2) 初始化成功之后,注册回调函数。
(3) 通过CreateTag向OPC地址空间添加控制变量标签和对象输出变量标签。
(4) 通过SetTagProperties函数设置标签属性。
(5) 调用RunSvr函数,运行服务器,这时服务器开始向客户端提供服务。
6) 调用UpdateTag等函数刷新OPC地址空间中的标签数据。
(7) 在服务服务器退出时,调用UninitOPCSvr。
OPC DA服务器需提供读对象输出和写控制变量功能,它们在第(2)步注册的回调函数里实现。通过MATLAB提供的编程接口,OPC DA服务器可以启动MATLAB引擎,通过它在写回调函数里向MATLAB工作区间更新控制变量(engPutVariable),在读回调函数里从工作区间读取对象的更新输出(engGetVariable)。此外,服务器内部也按一定的时钟周期地从MATLAB工作空间读取最新的标签数据,并刷新标签显示。
采用Simulink构建的对象模型如图4所示,在模型的首部和尾端分别放置一个S函数,首部的S函数不断地从工作区间的读入新的控制变量(evalin),计算出对象输出后,通过尾端的S函数把对象输出更新到工作区间(assignin)。Simulink提供的仿真环境是非实时的,为此需要引入RTBlock[7],把非实时仿真转换为实时仿真。如果与为硬件设备开发OPC DA服务器作一对比,由Simulink构建的受控对象等同于硬件设备部分,首部的S函数相当于执行器,尾部的S函数相当于传感器。而 MATLAB引擎则相当于硬件设备的驱动程序。
控制器的实现利用了MATLAB的OPC工具箱。控制器作为OPC客户端,首先建立与模型服务器的连接。按固定周期从模型服务器中读取对象输出(标签),根据设定的控制算法更新控制器输出,写入模型服务器的控制变量(标签)。而控制算法即可采用M函数来实现,也可以通过Simulink模块来搭建。在采用后者时,与OPC DA服务器的通信可以在首尾放置两个S函数来实现,其中首部的S函数负责仿真开始时建立与OPC DA服务器的连接,在仿真过程中负责读取对象输出;而尾部的S数在仿真过程中负责向OPC DA服务器更新控制变量,在仿真结束时负责断开与服务器的连接。控制器模块也需引入RTBlock模块将非实时仿真变为实时仿真。
由于OPC DA服务器在提供数据访问时可以携带时戳信息,这使得我们可以方便地测量由网络引入的延迟。首先对运行模型和控制器的两台计算机进行时钟同步。OPC DA服务器获取对象输出后,将其加入相应的时间信息。控制器在读取到输出变量后,也得到了其携带的时间信息,通过对比当前时间,即可得到由网络引入的传感器到控制器延迟。
四、平台测试
直流电机在工业控制领域有着广泛的应用,它即可作为发电机使用,也可作为电动机使用。用作发电机可以得到直流电源,用作电动机时,由于其良好的调速性能,可以应用在许多有较高调速性能要求的场合。因此本文以直流电机为例,搭建基于以太网的网络控制系统仿真平台,考察网络延迟对控制系统品质的影响。
直流电机的传递函数模型为[8]:
控制系统的设计要求满足以下性能指标:
(1) 上升时间小于0.5s;
(2) 稳态误差小于5%;
(3) 超调量小于20%。
通过传统的频域方法设计控制器,得到单位反馈控制结构中的补偿器为:
(19)
选择采样周期h为0.04s,将其采用双线性变换离散化。
作为对比,首先在同一个计算机上实现对直流电机的闭环控制,受控变量对方波的跟踪曲线如图5虚线所示,系统具有较好的控制品质。将OPC模型服务器和控制器放在网络中的两台计算机上,重复以上试验,受控变量对方波的跟踪曲线也画在图5上,如实线所示。通过对比,可以看到网络对闭环控制系统控制品质的影响:网络引入的随机延迟使系统阶跃响应的超调量增大,并且增加了稳定时间,已经不再满足闭环系统的设计要求。
五、结论
本文提出了一种利用OPC技术和通用计算机构建网络控制系统仿真平台的方法。该平台的控制器和模型均基于MATLAB/Simulink环境,可以利用MATLAB环境丰富的功能研究新的控制算法。仿真平台的网络延迟取自实际网络,能够对实际系统的延迟特性进行很好的模拟。OPC技术的应用简化了通信部分的编程,而且由于采用了标准的工业接口,该网络控制系统仿真平台具有很好的扩展性。另一方面,本文的方法也为传统控制平台的向网络控制系统仿真平台的改造也提出了一种新的思路。通过为传统的仿真平台其编写OPC DA服务器,可以将它们中的大部分改造成适用于网络控制系统的仿真平台。
参考文献:
[1] Zhang W, Branicky M S, Phillips S M. Stability of networked control systems [J]. IEEE Control Systems Magazine, 2001, 21(1):84-99.
[2] Nilsson J, Bernhardsson B, Wittenmark B. Stochastic analysis and control of real-time systems with random time delays [J]. Automatica, 1998, 34(1):57-64.
[3] Henriksson D, Cervin A, Årzén K-E. TrueTime: real-time control system simulation with MATLAB/Simulink [A]. Proceedings of the Nordic MATLAB Conference [C]. Copenhagen, Denmark, 2003.
[4] OPC Foundation. OPC data access custom interface specification version 2.04 [S].
[5] OPC programmers’ connection. OPC toolkits and free source CODe [EB/OL]. https://www.opcconnect.com/source.php, 2005-05-04.
[6] 华富惠通技术有限公司. Huafu OPC ToolKit开发手册 [EB/OL]. https://www.controx2000.com/opc/index.asp, 2003-01-09.
[7] Daga L. Real-time block-set for Simulink [EB/OL]. https://digilander.libero.it/LeoDaga/Simulink/RTBlockset.htm, 2004-03-21.
[8] The MathWorks. Getting started with the control system toolbox [EB/OL]. https://www.mathworks.com/access/helpdesk /help/pdf_doc/control/get_start.pdf, 2005-03 -11




