基于dcs与matlab的车辆传动系统仿真平台数据通信的实现
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的车辆传动系统仿真平台中不同设备、软件间数据不能共享的问题,提供了比较完善的解决方法,实现了整个平台内的数据通信,运行表明整个仿真平台运行良好,数据通信准确迅速,为车辆传动系统的研究提供了的帮助。
200多个matlab经典教程和matlab论文请查看:matlab教程
电动汽车充电标准接口有哪几种
CDMA无线网络资源增效的思路与具体实施研究
倍捷连接器市场布局、发展战略
工控主板启动时没有显示的原因是什么
全网通是什么意思?全网通手机怎么识别?
基于DCS与MATLAB的车辆传动系统仿真平台数据通信的实现
仓库消防安全检测
国产传感器龙头高华科技科创板IPO注册通过!拟募资超6亿元!
据俄报道:中国造出高技术新型无人机,隐身效果出色
美国一公司推出列新型射频及微波功率放大器配件
避免SMT印刷故障的措施有哪些?
速科德Kasite主轴丨飞机零部件碳纤维复合材料曲面钻孔
如何正确使用助听器电池?
科微智能总监邓卓明:无人船市场需求和开发挑战
任正非表示即使将来我们领先世界 也不能欺负别人
运算放大器常见的指标及特点
业界有哪些创新的5G工业CPE产品和解决方案?
如何借助RFID的力量来监管旅游大巴
致力打造新型智慧家庭无线方案,腾达惊艳亮相2017天翼智能生态博览会
智能空调语音ic,家电声控离线语音识别芯片