DCS与MATLAB的车辆传动系统仿真数据通信

2010-01-27 13:50:41来源: 测控技术

  1引言

  目前,分散控制系统(DCS)已广泛用于石油、化工、电力、冶金等工业控制领域。在DCS的实际工程应用中,通常需要根据不同的控制对象设计出具体的控制方案,然后在DCS上通过控制组态的方式进行实现。但是由于实际工程的限制,新设计出的控制策略与算法很难有机会在现场进行测试。因此,有必要设计出被控对象的仿真模型供DCS测试时使用。

  近年来,出现了MATLAB这种功能强大并在控制领域被广泛应用的软件,使用它可以很方便地为各种被控对象建立仿真模型。如能将DCS和MATLAB两者相连,由DCS完成控制运算功能,MATLAB提供被控对象的仿真模型。将充分发挥两者的优势,同时也能为科研人员开发新的控制策略和算法给予极大的帮助。

  本文以履带车辆传动系统为例,基于国电智深的EDPF-NT系统和MATLAB建立车辆传动系统仿真平台。在此平台上,在EDPF-NT系统中开发车辆传动系统电控模拟器,控制传动系统的运行。使用MATLAB构建传动系统模型,模拟传动系统的运行。该平台可以方便的模拟传动系统的换档过程,为优化换挡策略,提高传动系统的整体性能提供较好的仿真环境。仿真平台的总体结构如图1所示。

仿真平台的总体结构

图1仿真平台的总体结构

  2仿真平台硬件组成

  在构建传动系统仿真平台时,首先要解决硬件的设计问题。它主要由EDPF-NT系统的工程师站、DPU卡、COM卡、I/O卡和上位机组成。工程师站的功能是进行组态及设计控制方案,而上位机主要是运行传动系统MATLAB模型和数据通信程序。

  3仿真平台数据通信的实现

  在进行传动系统仿真平台构建过程中,实现平台内数据快速准确的通信是重点研究的内容,主要解决EDPF-NT系统与MATLAB的数据通信。出于安全性的考虑,EDPF-NT系统的数据库只允许读取而不允许写入,所以EDPF-NT系统与MATLAB模型的数据通信要分三部分实现,首先是在工程师站读取EDPF-NT系统实时数据并发送给上位机,其次是MATLAB模型读取送至上位机的EDPF-NT系统数据,最后是在上位机中将MATLAB模型运行后的数据通过COM卡送入EDPF-NT系统。

  3.1EDPF-NT系统数据读取

  EDPF-NT系统的数据以特定的格式存储于数据库中,不能直接读写。国电智深为了方便用户对于数据的使用,提供了可以被VC、VB等软件调用的NTClient.dll文件,用户可以通过NTClient.dll提供的函数来读取EDPF-NT系统的实时数据。本文采用VB开发了读取EDPF-NT系统数据,同时利用Winsock控件将读取的数据发送到上位机的程序。此程序分为三部分:

  1)声明NTClient.dll提供的函数;

  2)读取EDPF-NT系统的数据;

  3)发送数据到上位机。

  3.2MATLAB对EDPF-NT数据的调用

  作为当前最流行的仿真软件,MATLAB在控制系统分析与设计中起着重要作用。但是MATLAB本身不提供底层通信接口,必须使用其它方法实现网络上的数据通信。所以由EDPF-NT系统工程师站送至上位机的数据首先使用VB编写的程序接收,接下来通过OPC技术实现对这些数据的调用。

  在不同的程序间传递数据时需要选择合适的通信接口,为此引入工控行业的软件接口标准OPC(OLEforProcessContro1)技术。OPC技术试图按照标准的方法解决不同程序、设备之间的数据交换问题,它采用服务器/客户端模式,只要提供了具有统一OPC接口的服务器,即可按照一致的OPC客户端接口访问服务器,实现数据交换。

  MATLAB可以作为ActiveX自动化控制器,通过ActiveX自动化控制器技术,用户可以在MATLAB中,通过编写M文件对ActiveX自动化服务器进行各种控制。利用VB开发使用OPC自动化接口的OPCAxtiveX控件,在OPCAxtiveX控件中添加通信模块,接收EDPF-NT系统的数据,并将这些数据赋给OPCAxtiveX控件的属性值,通过MATLAB获取OPCAxtiveX控件中对应的属性值,就可以实现在OPC技术下MATLAB对EDPF-NT系统数据的调用。

  首先是建立OPCAxtiveX控件,并在内部工作变量的初始化中设置网络。其次在OPCAxtiveX程序中添加网络通信代码,完成对EDPF-NT系统工程师站送到上位机的数据进行接收。最后将接收到的数据赋给ActiveX控件属性值,生成OPCAxtiveX控件,并注册。用于数据接收的OPCAxtiveX控件就可以被MATLAB来使用了。

   在MATLAB使用一个ActiveX组件前,必须要找到对象的名字,即ProglD,另外还要了解对象用到的方法、属性和事件。利用这些信息,通过ActiveX客户支持就可以在MATLAB中应用这个对象。

  利用actxcontrol函数来生成一个ActiveX组件,实现MATLAB和OPC之间的通信。

  在图形窗口中生成一个ActiveX组件语法为:

  h=actxcontro1(progid[,position[,handle···[,callback{event1eventhander1;···event2eventhandler2;}]]])

  用get、set、invoke、propedit、release和delete等函数可以操作OPCAxtiveX控件,最终实现MATLAB对EDPF-NT数据的调用。

  3.3EDPF-NT系统数据输入实现

  在前文提到,出于安全性的考虑,EDPF-NT系统数据库的数据只允许读取,不能直接写入。所以必须使用Modbus协议通过COM卡将MATLAB模型运行后的数据送到EDPF-NT系统。在VB中使用ModbusMaster通信控件,可以方便的作为Master向Modbus的Slave(COM卡)发送数据。

  在向EDPF-NT系统传输数据时,需要设置好相应的通信参数,包括端口、波特率、响应超时时间、数据位格式(RTU/ASCII)、校验方式、停止位以及和COM卡相关的从站地址和发送数据时COM的物理起始地址。

  MATLAB模型每次运行结束后,就会自动将数据通过Modbus网络送到EDPF-NT系统的COM卡,EDPF-NT系统将读取送至COM卡的数据。

  4数据通信测试

  在软硬件调试完成后,以手动换档为例来测试平台的数据通信是否准确可靠。首先使平台处于运转状态,在EDPF-NT系统开发的传动电控模拟器上进行控制。电控模拟器操作界面如图3所示。

电控模拟器操作界面

图3电控模拟器操作界面

  EDPF-NT系统的控制信号可以迅速地发送给上位机中的传动系统模型,控制模型的运行,同时上位机又将模型运行后得到的数据发回EDPF-NT系统,并在电控模拟器的界面上显示。

  测试时,在电控模拟器上进行操作,从一档逐次换到四档。位于上位机中的传动系统模型接收换档控制信号后,按照所给的档位运行,运行后得到的传动系统变速箱输出转速曲线如图4所示。

传动系统变速箱输出转速曲线

  通过测试可以看到,仿真平台内的数据通信迅速、准确、可靠,能够满足仿真实验的要求。

  5结论

  本文针对基于国电智深EDPF-NT系统和MATLAB的车辆传动系统仿真平台中不同设备、软件间数据不能共享的问题,提供了比较完善的解决方法,实现了整个平台内的数据通信,运行表明整个仿真平台运行良好,数据通信准确迅速,为车辆传动系统的研究提供了的帮助。

关键字:仿真平台  微控制系统  MATLAB  数据通信

编辑:冀凯 引用地址:http://www.eeworld.com.cn/gykz/2010/0127/article_2655.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
仿真平台
微控制系统
MATLAB
数据通信

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved