基于DCS與MATLAB的車(chē)輛傳動(dòng)系統仿真平臺數據通信的實(shí)現
1引言
目前,分散控制系統(DCS)已廣泛用于石油、化工、電力、冶金等工業(yè)控制領(lǐng)域。在DCS的實(shí)際工程應用中,通常需要根據不同的控制對象設計出具體的控制方案,然后在DCS上通過(guò)控制組態(tài)的方式進(jìn)行實(shí)現。但是由于實(shí)際工程的限制,新設計出的控制策略與算法很難有機會(huì )在現場(chǎng)進(jìn)行測試。因此,有必要設計出被控對象的仿真模型供DCS測試時(shí)使用。
近年來(lái),出現了MATLAB這種功能強大并在控制領(lǐng)域被廣泛應用的軟件,使用它可以很方便地為各種被控對象建立仿真模型。如能將DCS和MATLAB兩者相連,由DCS完成控制運算功能,MATLAB提供被控對象的仿真模型。將充分發(fā)揮兩者的優(yōu)勢,同時(shí)也能為科研人員開(kāi)發(fā)新的控制策略和算法給予極大的幫助。
本文以履帶車(chē)輛傳動(dòng)系統為例,基于國電智深的EDPF-NT系統和MATLAB建立車(chē)輛傳動(dòng)系統仿真平臺。在此平臺上,在EDPF-NT系統中開(kāi)發(fā)車(chē)輛傳動(dòng)系統電控模擬器,控制傳動(dòng)系統的運行。使用MATLAB構建傳動(dòng)系統模型,模擬傳動(dòng)系統的運行。該平臺可以方便的模擬傳動(dòng)系統的換檔過(guò)程,為優(yōu)化換擋策略,提高傳動(dòng)系統的整體性能提供較好的仿真環(huán)境。仿真平臺的總體結構如圖1所示。

圖1仿真平臺的總體結構
2仿真平臺硬件組成
在構建傳動(dòng)系統仿真平臺時(shí),首先要解決硬件的設計問(wèn)題。它主要由EDPF-NT系統的工程師站、DPU卡、COM卡、I/O卡和上位機組成。工程師站的功能是進(jìn)行組態(tài)及設計控制方案,而上位機主要是運行傳動(dòng)系統MATLAB模型和數據通信程序。
3仿真平臺數據通信的實(shí)現
在進(jìn)行傳動(dòng)系統仿真平臺構建過(guò)程中,實(shí)現平臺內數據快速準確的通信是重點(diǎn)研究的內容,主要解決EDPF-NT系統與MATLAB的數據通信。出于安全性的考慮,EDPF-NT系統的數據庫只允許讀取而不允許寫(xiě)入,所以EDPF-NT系統與MATLAB模型的數據通信要分三部分實(shí)現,首先是在工程師站讀取EDPF-NT系統實(shí)時(shí)數據并發(fā)送給上位機,其次是MATLAB模型讀取送至上位機的EDPF-NT系統數據,最后是在上位機中將MATLAB模型運行后的數據通過(guò)COM卡送入EDPF-NT系統。
3.1EDPF-NT系統數據讀取
EDPF-NT系統的數據以特定的格式存儲于數據庫中,不能直接讀寫(xiě)。國電智深為了方便用戶(hù)對于數據的使用,提供了可以被VC、VB等軟件調用的NTClient.dll文件,用戶(hù)可以通過(guò)NTClient.dll提供的函數來(lái)讀取EDPF-NT系統的實(shí)時(shí)數據。本文采用VB開(kāi)發(fā)了讀取EDPF-NT系統數據,同時(shí)利用Winsock控件將讀取的數據發(fā)送到上位機的程序。此程序分為三部分:
1)聲明NTClient.dll提供的函數;
2)讀取EDPF-NT系統的數據;
3)發(fā)送數據到上位機。
3.2MATLAB對EDPF-NT數據的調用
作為當前最流行的仿真軟件,MATLAB在控制系統分析與設計中起著(zhù)重要作用。但是MATLAB本身不提供底層通信接口,必須使用其它方法實(shí)現網(wǎng)絡(luò )上的數據通信。所以由EDPF-NT系統工程師站送至上位機的數據首先使用VB編寫(xiě)的程序接收,接下來(lái)通過(guò)OPC技術(shù)實(shí)現對這些數據的調用。
在不同的程序間傳遞數據時(shí)需要選擇合適的通信接口,為此引入工控行業(yè)的軟件接口標準OPC(OLEforProcessContro1)技術(shù)。OPC技術(shù)試圖按照標準的方法解決不同程序、設備之間的數據交換問(wèn)題,它采用服務(wù)器/客戶(hù)端模式,只要提供了具有統一OPC接口的服務(wù)器,即可按照一致的OPC客戶(hù)端接口訪(fǎng)問(wèn)服務(wù)器,實(shí)現數據交換。
MATLAB可以作為ActiveX自動(dòng)化控制器,通過(guò)ActiveX自動(dòng)化控制器技術(shù),用戶(hù)可以在MATLAB中,通過(guò)編寫(xiě)M文件對ActiveX自動(dòng)化服務(wù)器進(jìn)行各種控制。利用VB開(kāi)發(fā)使用OPC自動(dòng)化接口的OPCAxtiveX控件,在OPCAxtiveX控件中添加通信模塊,接收EDPF-NT系統的數據,并將這些數據賦給OPCAxtiveX控件的屬性值,通過(guò)MATLAB獲取OPCAxtiveX控件中對應的屬性值,就可以實(shí)現在OPC技術(shù)下MATLAB對EDPF-NT系統數據的調用。
首先是建立OPCAxtiveX控件,并在內部工作變量的初始化中設置網(wǎng)絡(luò )。其次在OPCAxtiveX程序中添加網(wǎng)絡(luò )通信代碼,完成對EDPF-NT系統工程師站送到上位機的數據進(jìn)行接收。最后將接收到的數據賦給ActiveX控件屬性值,生成OPCAxtiveX控件,并注冊。用于數據接收的OPCAxtiveX控件就可以被MATLAB來(lái)使用了。
在MATLAB使用一個(gè)ActiveX組件前,必須要找到對象的名字,即ProglD,另外還要了解對象用到的方法、屬性和事件。利用這些信息,通過(guò)ActiveX客戶(hù)支持就可以在MATLAB中應用這個(gè)對象。
利用actxcontrol函數來(lái)生成一個(gè)ActiveX組件,實(shí)現MATLAB和OPC之間的通信。
在圖形窗口中生成一個(gè)ActiveX組件語(yǔ)法為:
h=actxcontro1(progid[,position[,handle···[,callback{event1eventhander1;···event2eventhandler2;}]]])
用get、set、invoke、propedit、release和delete等函數可以操作OPCAxtiveX控件,最終實(shí)現MATLAB對EDPF-NT數據的調用。
評論