<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于DCS與MATLAB的車輛傳動系統(tǒng)仿真平臺數(shù)據(jù)通信的

          基于DCS與MATLAB的車輛傳動系統(tǒng)仿真平臺數(shù)據(jù)通信的

          作者: 時間:2010-01-27 來源:網(wǎng)絡(luò) 收藏

          1引言

          本文引用地址:http://www.ex-cimer.com/article/197734.htm

            目前,分散控制()已廣泛用于石油、化工、電力、冶金等工業(yè)控制領(lǐng)域。在的實際工程應(yīng)用中,通常需要根據(jù)不同的控制對象設(shè)計出具體的控制方案,然后在上通過控制組態(tài)的方式進行實現(xiàn)。但是由于實際工程的限制,新設(shè)計出的控制策略與算法很難有機會在現(xiàn)場進行測試。因此,有必要設(shè)計出被控對象的仿真模型供DCS測試時使用。

            近年來,出現(xiàn)了這種功能強大并在控制領(lǐng)域被廣泛應(yīng)用的軟件,使用它可以很方便地為各種被控對象建立仿真模型。如能將DCS和兩者相連,由DCS完成控制運算功能,提供被控對象的仿真模型。將充分發(fā)揮兩者的優(yōu)勢,同時也能為科研人員開發(fā)新的控制策略和算法給予極大的幫助。

            本文以履帶為例,基于國電智深的EDPF-NT和MATLAB建立系統(tǒng)仿真平臺。在此平臺上,在EDPF-NT系統(tǒng)中開發(fā)系統(tǒng)電控模擬器,控制傳動系統(tǒng)的運行。使用MATLAB構(gòu)建傳動系統(tǒng)模型,模擬傳動系統(tǒng)的運行。該平臺可以方便的模擬傳動系統(tǒng)的換檔過程,為優(yōu)化換擋策略,提高傳動系統(tǒng)的整體性能提供較好的仿真環(huán)境。仿真平臺的總體結(jié)構(gòu)如圖1所示。

          仿真平臺的總體結(jié)構(gòu)

          圖1仿真平臺的總體結(jié)構(gòu)

            2仿真平臺硬件組成

            在構(gòu)建傳動系統(tǒng)仿真平臺時,首先要解決硬件的設(shè)計問題。它主要由EDPF-NT系統(tǒng)的工程師站、DPU卡、COM卡、I/O卡和上位機組成。工程師站的功能是進行組態(tài)及設(shè)計控制方案,而上位機主要是運行傳動系統(tǒng)MATLAB模型和數(shù)據(jù)通信程序。

            3仿真平臺數(shù)據(jù)通信的實現(xiàn)

            在進行傳動系統(tǒng)仿真平臺構(gòu)建過程中,實現(xiàn)平臺內(nèi)數(shù)據(jù)快速準確的通信是重點研究的內(nèi)容,主要解決EDPF-NT系統(tǒng)與MATLAB的數(shù)據(jù)通信。出于安全性的考慮,EDPF-NT系統(tǒng)的數(shù)據(jù)庫只允許讀取而不允許寫入,所以EDPF-NT系統(tǒng)與MATLAB模型的數(shù)據(jù)通信要分三部分實現(xiàn),首先是在工程師站讀取EDPF-NT系統(tǒng)實時數(shù)據(jù)并發(fā)送給上位機,其次是MATLAB模型讀取送至上位機的EDPF-NT系統(tǒng)數(shù)據(jù),最后是在上位機中將MATLAB模型運行后的數(shù)據(jù)通過COM卡送入EDPF-NT系統(tǒng)。

            3.1EDPF-NT系統(tǒng)數(shù)據(jù)讀取

            EDPF-NT系統(tǒng)的數(shù)據(jù)以特定的格式存儲于數(shù)據(jù)庫中,不能直接讀寫。國電智深為了方便用戶對于數(shù)據(jù)的使用,提供了可以被VC、VB等軟件調(diào)用的NTClient.dll文件,用戶可以通過NTClient.dll提供的函數(shù)來讀取EDPF-NT系統(tǒng)的實時數(shù)據(jù)。本文采用VB開發(fā)了讀取EDPF-NT系統(tǒng)數(shù)據(jù),同時利用Winsock控件將讀取的數(shù)據(jù)發(fā)送到上位機的程序。此程序分為三部分:

            1)聲明NTClient.dll提供的函數(shù);

            2)讀取EDPF-NT系統(tǒng)的數(shù)據(jù);

            3)發(fā)送數(shù)據(jù)到上位機。

            3.2MATLAB對EDPF-NT數(shù)據(jù)的調(diào)用

            作為當(dāng)前最流行的仿真軟件,MATLAB在控制系統(tǒng)分析與設(shè)計中起著重要作用。但是MATLAB本身不提供底層通信接口,必須使用其它方法實現(xiàn)網(wǎng)絡(luò)上的數(shù)據(jù)通信。所以由EDPF-NT系統(tǒng)工程師站送至上位機的數(shù)據(jù)首先使用VB編寫的程序接收,接下來通過OPC技術(shù)實現(xiàn)對這些數(shù)據(jù)的調(diào)用。

            在不同的程序間傳遞數(shù)據(jù)時需要選擇合適的通信接口,為此引入工控行業(yè)的軟件接口標準OPC(OLEforProcessContro1)技術(shù)。OPC技術(shù)試圖按照標準的方法解決不同程序、設(shè)備之間的數(shù)據(jù)交換問題,它采用服務(wù)器/客戶端模式,只要提供了具有統(tǒng)一OPC接口的服務(wù)器,即可按照一致的OPC客戶端接口訪問服務(wù)器,實現(xiàn)數(shù)據(jù)交換。

            MATLAB可以作為ActiveX自動化控制器,通過ActiveX自動化控制器技術(shù),用戶可以在MATLAB中,通過編寫M文件對ActiveX自動化服務(wù)器進行各種控制。利用VB開發(fā)使用OPC自動化接口的OPCAxtiveX控件,在OPCAxtiveX控件中添加通信模塊,接收EDPF-NT系統(tǒng)的數(shù)據(jù),并將這些數(shù)據(jù)賦給OPCAxtiveX控件的屬性值,通過MATLAB獲取OPCAxtiveX控件中對應(yīng)的屬性值,就可以實現(xiàn)在OPC技術(shù)下MATLAB對EDPF-NT系統(tǒng)數(shù)據(jù)的調(diào)用。

            首先是建立OPCAxtiveX控件,并在內(nèi)部工作變量的初始化中設(shè)置網(wǎng)絡(luò)。其次在OPCAxtiveX程序中添加網(wǎng)絡(luò)通信代碼,完成對EDPF-NT系統(tǒng)工程師站送到上位機的數(shù)據(jù)進行接收。最后將接收到的數(shù)據(jù)賦給ActiveX控件屬性值,生成OPCAxtiveX控件,并注冊。用于數(shù)據(jù)接收的OPCAxtiveX控件就可以被MATLAB來使用了。

           在MATLAB使用一個ActiveX組件前,必須要找到對象的名字,即ProglD,另外還要了解對象用到的方法、屬性和事件。利用這些信息,通過ActiveX客戶支持就可以在MATLAB中應(yīng)用這個對象。

            利用actxcontrol函數(shù)來生成一個ActiveX組件,實現(xiàn)MATLAB和OPC之間的通信。

            在圖形窗口中生成一個ActiveX組件語法為:

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

            用get、set、invoke、propedit、release和delete等函數(shù)可以操作OPCAxtiveX控件,最終實現(xiàn)MATLAB對EDPF-NT數(shù)據(jù)的調(diào)用。


          上一頁 1 2 下一頁

          關(guān)鍵詞: MATLAB DCS 車輛傳動 系統(tǒng)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();