基于dSPACE 的嵌入式車輛動力學(xué)仿真平臺開發(fā)的探究論文
1 嵌入式車輛動力學(xué)仿真平臺介紹
國際上,嵌入式車輛動力學(xué)仿真平臺主要有CarSim、veDYNA 和ASM。CarSim 是美國MSC 公司開發(fā)的車輛動力學(xué)仿真平臺,CarSim 模型在計算機上運行的速度比實時快3~6 倍,可以仿真車輛對駕駛員、路面及空氣動力學(xué)輸入的響應(yīng),主要用來預(yù)測和仿真汽車整車的操縱穩(wěn)定性、制動性、平順性、動力性和經(jīng)濟性,其中的CarSim RT 模塊是CarSim模型專用于嵌入式實時仿真的模塊,可嵌入多種實時仿真系統(tǒng),如NI、dSPACE、ETAS、opal-RT 等實時仿真系統(tǒng),提供與一些實時硬件系統(tǒng)的接口,滿足軟硬件在環(huán)仿真平臺的要求。veDYNA 是德國Te?sis 公司開發(fā)的車輛動力學(xué)仿真平臺,以Matlab/Simulink 為開發(fā)環(huán)境,整個模型或模型組件通過C代碼編寫,并以s-function 形式嵌入到Matlab/Simu?link 程序環(huán)境中,主要用于汽車性能分析,車輛動力學(xué)、部件控制單元測試,控制算法開發(fā)與測試,可嵌入各種實時仿真系統(tǒng)(ADI、ETAS、NI、Opal-RT和xPC)。ASM 是dSPACE 公司基于Simuik 開發(fā)的車輛動力學(xué)仿真平臺,主要應(yīng)用于發(fā)動機控制系統(tǒng)、汽車控制系統(tǒng)、車載電子設(shè)備和駕駛輔助系統(tǒng)的測試和研發(fā),ASM 能夠很好地運行在dSPACE 實時仿真系統(tǒng)。
國外已經(jīng)實現(xiàn)了車輛動力學(xué)模型嵌入到實時硬件系統(tǒng)中,目前國內(nèi)文獻對此還沒有論述。吉林大學(xué)汽車仿真與控制國家重點實驗室經(jīng)過10多年的研究,研發(fā)了基于總成特性的實時車輛動力學(xué)模型(State Key Laboratory of Automotive Simulation and Con?trol,簡稱ASCL),模型在PC 機上(主頻3.0G)運行速度是仿真時間的5 倍左右,滿足了實時仿真要求。經(jīng)仿真驗證,精度到90 %以上,并且可實現(xiàn)制動到0、大滑移等極限工況的仿真,可用于電子系統(tǒng)的仿真驗證。
針對上述問題,本文研究了基于ASCL 車輛動力學(xué)模型嵌入到dSPACE 環(huán)境時的一些關(guān)鍵技術(shù);研究了dSPACE 環(huán)境下模型的運行控制方法,闡述了在嵌入式平臺模型上的參數(shù)賦值方法,再次開發(fā)了便于應(yīng)用的操作界面;通過典型工況檢驗了動力學(xué)模型側(cè)向加速度和橫擺角速度的一致性,實現(xiàn)了車輛動力學(xué)嵌入式仿真平臺的'開發(fā)。
2 dSPACE 環(huán)境下ASCL 運行控制方法研究
2.1 目標(biāo)代碼的生成方法
ASCL 基于ANSI C 語言開發(fā),其仿真精度達90 %,由簧載質(zhì)量系統(tǒng)、非簧載質(zhì)量系統(tǒng)、轉(zhuǎn)向系統(tǒng)、懸架系統(tǒng)、車輪系統(tǒng)、動力傳動系統(tǒng)和制動系統(tǒng)7 大系統(tǒng)構(gòu)成,在開發(fā)過程中將其劃分為7個大的功能模塊,每個大的功能模塊下又劃分為很多小的功能模塊,各模塊都獨立開發(fā)。
dSPACE 實時硬件仿真系統(tǒng)采用了GCC 編譯器,同時又區(qū)別于普通的GCC 編譯器,在PC 機環(huán)境下,需要在編譯批處理文件時使用帶有dSPACE 標(biāo)識的指令x86-gcc,然后調(diào)用指令x86-ar 生成目標(biāo)庫文件。為了提高ASCL 代碼的運行效率,在編譯中使用-O2命令進行代碼優(yōu)化。
2.2 仿真控制方法
ASCL 仿真過程的控制主要分為初始化和運行控制。本文利用DS1006 RTLib 提供的函數(shù)編寫控制程序(ControlFunction.c)以驅(qū)動dSPACE 實時硬件對ASCL進行仿真控制,利用基于時鐘D 中斷的初始化控制和基于時鐘A中斷的仿真運行控制。
2.2.1 基于時鐘D中斷的初始化
ASCL 為用戶提供了Preset、Initialize、Simulate、Terminate 等4 個函數(shù),其中Preset 函數(shù)主要讀取模型參數(shù)文件,將參數(shù)值賦給模型各大系統(tǒng);Initialize函數(shù)主要實現(xiàn)車輛初始狀態(tài)的確定即給變量賦初值,實現(xiàn)初始狀態(tài)的平衡;Simulate 函數(shù)實現(xiàn)對各功能模塊進行迭代仿真運算,計算模型的輸出;Ter?minate 函數(shù)主要是釋放在仿真過程中Preset 函數(shù)開辟的內(nèi)存。
為了實現(xiàn)ASCL 的正確運行,本文采用時鐘D 中斷來實現(xiàn)模型的初始化。首先,利用dSPACE 提供的函數(shù)ds1006_init()完成對DS1006 板的初始化,用以啟動dSPACE;利用函數(shù)ds1006_start_isr_timerD(DTD,timerD_interrupt)開啟時鐘D中斷,其中該函數(shù)含有時鐘D 中斷的周期(DTD)與中斷服務(wù)程序(timerD_in?terrupt)兩個參數(shù),在觸發(fā)時鐘D 中斷時,在中斷服務(wù)程序中完成ASCL 的初始化和參數(shù)賦值;利用函數(shù)RTLIB_BACKGROUND_SERVICE() 開啟后臺服務(wù)程序,后臺服務(wù)程序必須在實時硬件上循環(huán)執(zhí)行,這樣才能以一定的周期執(zhí)行時鐘D 中斷,不斷進行仿真控制。
時鐘D中斷服務(wù)程序以設(shè)定的中斷周期運行,當(dāng)參數(shù)文件準(zhǔn)備好時,通過自定義的函數(shù)ncode 和Pre?setState 來判斷,只有當(dāng)函數(shù)ncode=NULL 且Preset?State=0 兩個條件同時滿足時,才能利用Preset 函數(shù)將準(zhǔn)備好的參數(shù)文件中的參數(shù)傳遞給車輛動力學(xué)模型,然后通過Initialize 函數(shù)使其初始化,初始化成功后關(guān)閉時鐘D。
2.2.2 基于時鐘A中斷的仿真控制
當(dāng)模型完成初始化后,啟動時鐘A中斷服務(wù)程序來完成車輛動力學(xué)模型的實時運算。時鐘A 中斷服務(wù)程序以設(shè)定的周期運行,通過控制一個時鐘周期推動車輛動力學(xué)模型運算一個仿真步長來控制動力學(xué)模型的仿真。首先開啟時鐘A 過載檢測,用于判斷仿真計算時長是否超過中斷周期,當(dāng)中斷服務(wù)程序的執(zhí)行時間超過中斷周期時,則中斷服務(wù)程序結(jié)束。通過自定義函數(shù)SimState 的值判斷模型仿真狀態(tài),其中,當(dāng)SimState=0 時,表明是停止?fàn)顟B(tài),執(zhí)行動力學(xué)模型的中止函數(shù)Terminate;當(dāng)SimState=1 時,表明是暫停狀態(tài),動力學(xué)模型暫停;當(dāng)SimState=2 時,表明是運行狀態(tài)。同時,通過自定義函數(shù)time_simulate 計算仿真運行時間,若未達到仿真結(jié)束時間,則周期執(zhí)行動力學(xué)模型函數(shù)Simulate,實現(xiàn)模型迭代仿真運算;若仿真狀態(tài)到達設(shè)定的仿真時間,則執(zhí)行模型中止函數(shù)Terminate,關(guān)閉時鐘A 中斷。
在進行中斷控制設(shè)置時,應(yīng)避免時鐘A 和時鐘D同時處于運行狀態(tài),因為兩者優(yōu)先級相同,所以在時鐘D 運行之前需要先關(guān)閉時鐘A,同理,在時鐘A 運行之前需要先關(guān)閉時鐘D,否則只能等待一個時鐘周期運行完才能執(zhí)行下一個中斷服務(wù),不利于提高運行效率。
2.3 動力學(xué)模型下載方法
動力學(xué)模型在實時仿真系統(tǒng)運行時,需要從上位機下載到實時仿真系統(tǒng)。本文利用dSPACE 提供的makefile 文件將開發(fā)的控制程序ControlFunction.c、動力學(xué)模型*.a庫文件以及相應(yīng)的頭文件組成一個統(tǒng)一的整體,其中makefile 文件中需要設(shè)置添加控制程序ControlFunction.c,同時添加.a 庫文件,庫文件中開放了控制程序ControlFunction.c 調(diào)用的4個函數(shù),然后在批處理文件中使用dSPACE 提供的“down1006”指令將makefile 文件下載到dSPACE 中,完成動力學(xué)模型控制平臺的開發(fā)。
3 動力學(xué)模型的參數(shù)賦值
ASCL 中的preset 函數(shù)可以通過解析一個參數(shù)文件來給模型參數(shù)賦值,在dSPCE 實時仿真系統(tǒng)環(huán)境下,需要將參數(shù)文件下載到dSPCE,并將參數(shù)文件的存儲首地址傳遞給解析函數(shù)。本文CLIB 函數(shù)實現(xiàn)參數(shù)的傳遞過程,定義了指針變量ParFile 來傳遞地址,當(dāng)ASCL 在dSPACE 環(huán)境下運行時,首先將在PC 機內(nèi)存中的參數(shù)文件復(fù)制到dSPACE 內(nèi)存中,然后將參數(shù)文件在dSPACE 內(nèi)存的首地址傳遞給preset 函數(shù)中的ParFile 變量,完成動力學(xué)模型的參數(shù)賦值。
CLIB 是實時硬件dSPACE 提供的一套PC 機與dSPACE 實時處理器通訊的接口函數(shù)集,CLIB 建立了PC機與dSPACE處理器內(nèi)存之間的通信。本次采用CLIB 提供的函數(shù)對dSPACE 內(nèi)存進行訪問。
dS1006 板卡處理包括利用函數(shù)DS_regis?ter_host_app 注冊應(yīng)用程序、DS_board_index 獲得板卡號,從而將參數(shù)文件傳遞到該板內(nèi)存;參數(shù)文件在PC 機上的處理包括獲取參數(shù)大小、在PC 機上分配內(nèi)存、將參數(shù)文件傳遞到分配的內(nèi)存上;參數(shù)文件在dSPACE 上的處理包括利用函數(shù)DS_alloc_mem 在dSPACE 上開辟內(nèi)存、DS_write_8 函數(shù)將PC 機內(nèi)存上的參數(shù)文件寫入到dSPACE 的內(nèi)存上、DS_get_var_addr 獲取模型中存儲參數(shù)文件首地址的指針變量、把dSPACE 內(nèi)存中參數(shù)文件首地址賦值給指針變量。
4 仿真控制平臺界面設(shè)計
為了方便測試和工程應(yīng)用,開發(fā)了仿真平臺界面控制模型的下載、監(jiān)控和仿真控制,界面編寫采用了LabWindows 語言。LabWindows/CVI 軟件是在C 語言環(huán)境下開發(fā)的軟件界面,可以通過LabWindows 對CLIB庫函數(shù)的調(diào)用,完成仿真平臺界面開發(fā)。
仿真平臺界面主要包括輸入、輸出設(shè)置和運行狀態(tài)控制3 部分,其中,模型輸入設(shè)置主要完成動力學(xué)模型的下載和參數(shù)賦值控制,該部分中首先通過路徑瀏覽完成mkfile 文件的選擇,下載mkfile 文件,然后通過路徑瀏覽完成參數(shù)文件的選擇和下載;模型輸出設(shè)置顯示當(dāng)前時刻的仿真運行車速,以監(jiān)控模型運行;模型運行狀態(tài)控制實現(xiàn)模型的運行、暫停、停止功能,另外,StopRTP 將dSPACE 內(nèi)存中的動力學(xué)模型清除,Quit 實現(xiàn)退出ControlDesk應(yīng)用界面。
5 仿真驗證
為了驗證模型的運行情況,分別對模型的仿真運行時間和車輛雙移線工況進行了仿真驗證。設(shè)置ASCL 的仿真步長為1 ms,當(dāng)動力學(xué)模型下載到dSPACE 的DS1006中運行時,其每步平均仿真實測時間為0.18ms 左右,模型運行時間占設(shè)定時間的18 %,滿足實時仿真要求。
定義了雙移線仿真工況,通過Controldesk 監(jiān)測模型側(cè)向加速度和橫擺角速度的運算結(jié)果,并將該仿真結(jié)果與離線仿真結(jié)果對比,驗證了車輛動力學(xué)模型在兩種仿真平臺下側(cè)向加速度和橫擺角速度的一致性,以及仿真控制策略的可行性和正確性。
6 結(jié)束語
開發(fā)了基于dSPACE 的嵌入式車輛動力學(xué)仿真平臺,主要完成以下方面的工作:
a. 利用dSPACE 的GCC 編譯器在PC 機下完成了目標(biāo)代碼的生成;
b. 利用dSPACE 自帶的RTLib 函數(shù),基于時鐘A和D中斷實現(xiàn)了動力學(xué)模型的初始化和仿真控制;
c. 利用dSPACE 自帶的Clib 函數(shù)完成了動力學(xué)模型的參數(shù)賦值;
d. 驗證了ASCL 在dSPACE 嵌入式仿真平臺和離線仿真平臺下側(cè)向加速度和橫擺角速度的一致性,以及仿真控制策略的可行性和正確性。
【基于dSPACE 的嵌入式車輛動力學(xué)仿真平臺開發(fā)的探究論文】相關(guān)文章:
《路史》的寫作特征探究論文07-29
基于學(xué)情的中職計算機基礎(chǔ)分層教學(xué)探究12-18
嵌入式軟件開發(fā)個人簡歷模板05-23
高中英語寫作教學(xué)探究的論文06-19
基于核心素養(yǎng)的英語寫作教學(xué)策略論文09-29