基于DCS与MATLAB的车辆传动系统仿真平台数据通信的设计

时间:2011-06-20

  1 引言

  DCS系统也称分布式控制系统,其实质是计算机技术对生产过程进行集中监视、操作、管理和分散控制的一捉新型控制技术。其功能特点是:通用性强、系统组态灵活、控制功能完善、数据处理方便、显示操作集中、人机界面友好、安装简单规范化、调试方便、运行安全可靠等。分散控制系统的构成作为一种纵向分层和横向分散的大型综合控制系统,它以多层计算机网络为依托,将分布在全厂范围内的各种控制设备的数据处理设备连接在一起,实现各部分信息的共享的协调工作,共同完成控制、管理及决策功能。

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

  如能将DCS和MATLAB这种功能强大软件相连,由DCS完成控制运算功能,MATLAB提供被控对象的仿真模型。将充分发挥两者的优势,为科研人员开发新的控制策略和算法给予极大的帮助。

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

  图1 仿真平台的总体结构

  2仿真平台硬件组成

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

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

  在进行传动系统仿真平台构建过程中,实现平台内数据快速准确的通信是重点研究的内容,主要解决EDPF-NT系统与MATLAB的数据通信。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是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

  MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行就可以用。

  作为当前的仿真软件,MATLAB在控制系统分析与设计中起着重要作用。但是MATLAB本身不提供底层通信接口,需要使用其它方法实现网络上的数据通信。因此由EDPF-NT系统工程师站送至上位机的数据首先使用VB编写的程序接收,然后通过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系统开发的传动电控模拟器上进行控制。电控模拟器操作界面如图2所示。

  图2 电控模拟器操作界面

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

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

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

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

  5结论

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


  

参考文献:

[1]. COM datasheet https://www.dzsc.com/datasheet/COM_1118194.html.


上一篇:英特尔至强处理器 C5500/C3500系列的平台介绍
下一篇:汽车轮胎压力传感器芯片应用研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料