賈秀娟 王鵬
摘? 要:該文以Mathwork公司設(shè)計的MATLAB/Simulink Real-Time軟件為實時仿真環(huán)境,以xPC雙機仿真系統(tǒng)作為實時仿真硬件開發(fā)平臺,提供了一種可以用于硬件在環(huán)仿真研究的平臺方案,該方案使用目標機實時內(nèi)核運行仿真模型,從而對外部控制系統(tǒng)中控制策略進行測試。同時,利用北京華??萍脊狙兄频腞apid-ECU作為外部控制系統(tǒng),對試驗平臺的實時數(shù)據(jù)交換功能進行了驗證,驗證結(jié)果表明,外部控制系統(tǒng)可以與目標機之間完成實時通信,且無數(shù)據(jù)丟失與延遲。該硬件在環(huán)仿真平臺為半實物仿真研究提供了思路。
關(guān)鍵詞:硬件在環(huán)仿真? 控制策略? xPC雙機系統(tǒng)
中圖分類號:TP273 ? ?文獻標識碼:A 文章編號:1672-3791(2019)08(b)-0017-02
硬件在環(huán)仿真是一種實時仿真方式,相對于計算機仿真而言,其保證了仿真過程實時性,更加符合實際試驗效果,同時易于實現(xiàn),價格成本低,多用于企業(yè)控制系統(tǒng)產(chǎn)品V型開發(fā),對此,該文提供了一種硬件在環(huán)仿真平臺方案。
1? xPC雙機系統(tǒng)
xPC實時仿真試驗平臺主要包括宿主機、目標機、通信連接設(shè)備以及外部控制系統(tǒng)4個部分。該文中的xPCTarget實時仿真系統(tǒng)中配備有兩臺普通PC機,分別作為宿主機與目標機。其中,宿主機內(nèi)部安裝MATLAB R2015b版本軟件,C語言編譯器為Visual Studio 2010;目標機使用Windows XP/DOS7.1雙系統(tǒng),配置有空閑串口和型號為RTL8168以太網(wǎng)絡(luò)適配卡。目標機與宿主機通信方式選用網(wǎng)絡(luò)通信(TCP/IP)[1],分別將目標機、宿主機IP地址設(shè)置為同一網(wǎng)段,通過交叉線型以太網(wǎng)電纜直接連接即可實現(xiàn)通信。
目標機需建立啟動盤調(diào)用目標機實時內(nèi)核。在XP系統(tǒng)中安裝DOS7.1版本系統(tǒng),并將部分硬盤以FAT格式重新分區(qū)后直接作為啟動盤硬件。在MATLAB命令窗口輸入“xpcexplr”命令,啟動Real-Time窗口,并對目標機IP地址、子網(wǎng)掩碼等信息進行設(shè)置,設(shè)置完成后點擊“Creat boot disk”按鈕生成目標機啟動文件,將啟動文件復制至目標機啟動盤。開機后進入DOS系統(tǒng),輸入“C:”命令切換至C盤符,并輸入“autoexec”目標機即可進入實時仿真運行界面。
2? 硬件在環(huán)仿真試驗平臺
設(shè)計硬件在環(huán)仿真試驗平臺如圖1所示[2]。測試時,將被測控制策略下載至外部控制系統(tǒng)硬件中,作為外部控制系統(tǒng),通過xPC硬件在環(huán)試驗平臺完成仿真模型的實時運行、控制系統(tǒng)與仿真模型的實時數(shù)據(jù)通信以及控制系統(tǒng)控制結(jié)果驗證。
根據(jù)圖1所示原理,硬件在環(huán)仿真試驗平臺方案中,將Rapid-ECU作為外部控制系統(tǒng),通過CAN-A總線與協(xié)議轉(zhuǎn)換器CAN端口相連,同時,將目標機主板串口與協(xié)議轉(zhuǎn)換器RS232端口連接,從而實現(xiàn)了目標機與Rapid-ECU之間的實時通信硬件連接;將控制系統(tǒng)CAN-C總線經(jīng)USB-CAN與宿主機連接,通過宿主機中Meca軟件可以對Rapid-ECU中實時狀態(tài)參量進行監(jiān)控與數(shù)據(jù)存儲。
3? 硬件在環(huán)仿真試驗平臺通信驗證
進行硬件在環(huán)試驗之前,需要對目標機及控制系統(tǒng)實時通信功能進行測試。由于Rapid-ECU硬件電路中未配置RS232串口通訊功能,所以試驗中通過宇泰UT-2506-RS232-CANBUS智能協(xié)議轉(zhuǎn)換器將控制系統(tǒng)使用的CAN總線通信協(xié)議與PC主板串口的RS232通信協(xié)議相互轉(zhuǎn)換,從而使目標機與外部控制器完成數(shù)據(jù)通信。試驗中將協(xié)議轉(zhuǎn)換器控制系統(tǒng)側(cè)CAN總線波特率設(shè)置為500kbps,RS232串口波特率設(shè)置為115200bps,轉(zhuǎn)換時CAN報文時自動添加ID“00 00 00 01”,設(shè)置過濾驗收碼,只轉(zhuǎn)換ID為“00 00 00 02”的CAN報文。
協(xié)議轉(zhuǎn)換器設(shè)置完成后,外部控制系統(tǒng)使用CAN總線協(xié)議進行通信,利用Rapid-ECU模型庫中的CAN Receive模塊與CAN Transimit模塊完成數(shù)據(jù)的接收與發(fā)送,設(shè)置CAN A總線的0、8Buffer接收和發(fā)送報文ID為“00 00 00 01”及“00 00 00 02”、數(shù)據(jù)長度為8的標準幀。
目標機應用模型中,通信模型使用Simulink Real-Time/RS232/Mainboard模型庫中RS-232 Send/Receive FIFO模塊,該模塊使用主板串行端口完成字符和二進制數(shù)據(jù)流發(fā)送和接收,由于其接收到的數(shù)據(jù)以FIFO數(shù)據(jù)塊形式傳播,無法直接被模型使用,需要配合FIFO Read BINARY模塊完成二進制數(shù)據(jù)的讀取,通過查找標記數(shù)據(jù)的唯一字節(jié)序列(Header)來標識和分離FIFO的數(shù)據(jù)塊,輸出十進制數(shù)據(jù),搭建目標機RS232串口通信模型。
測試前,對RS-232 Send/Receive FIFO模塊進行設(shè)置,目標機上串口為COM1口,修改模塊內(nèi)基地址為0x3F8;FIFO Read BINARY設(shè)置模塊內(nèi)Header為“{(30,01)}”,每幀讀取數(shù)據(jù)長度為7位,1終止位,采樣時間為50ms。將串口通信模型中Solver設(shè)置為定步長50ms,在代碼生成一欄中選擇slrt.tlc文件,并將模型仿真模式選擇外部仿真模式。設(shè)置完成后,在SimulinkReal-Time窗口中點擊連接鈕與宿主機連接,在模型運行窗口點擊代碼生成,Simulink通過VS2010編譯器對模型進行C代碼轉(zhuǎn)換,同時將應用程序自動下載至目標機中。
硬件在環(huán)仿真試驗平臺中控制系統(tǒng)以及目標機通信功能建立完成后,利用CAN總線及RS232串口通信模型對硬件在環(huán)試驗平臺通信功能進行測試??刂葡到y(tǒng)與目標機均能正確接收對方發(fā)送的數(shù)據(jù)幀,并且接收過程中無丟幀、延時現(xiàn)象。綜上所述,控制系統(tǒng)和目標機能夠進行實時的數(shù)據(jù)交換,形成完整的閉環(huán)通信,從而實現(xiàn)硬件在環(huán)仿真試驗。
參考文獻
[1] 楊滌.系統(tǒng)實時仿真開發(fā)環(huán)境與應用[M].北京:清華大學出版社,2002:97-103.
[2] 張良.基于xPC Target的汽車ESP硬件在環(huán)仿真試驗臺的開發(fā)[D].吉林大學,2009.
[3] Bi YL,Yang D.Development of Interface Card Drivers Based on Matlab/xPC Target[J].Key Engineering Materials,2014(620):563-568.