詹軍王啟配何云廷鮑闞魯蔣立
(1.吉林大學(xué) 汽車仿真與控制國家重點實驗室;2.一汽大眾汽車有限公司)
基于dSPACE的嵌入式車輛動力學(xué)仿真平臺開發(fā)*
詹軍1王啟配1何云廷1鮑闞1魯蔣立2
(1.吉林大學(xué) 汽車仿真與控制國家重點實驗室;2.一汽大眾汽車有限公司)
針對嵌入式車輛動力學(xué)仿真平臺開發(fā)需求,基于吉林大學(xué)汽車仿真與控制國家重點實驗室的車輛動力學(xué)模型,研究了基于dSPACE環(huán)境的車輛動力學(xué)模型編譯、運行控制、參數(shù)賦值等關(guān)鍵方法?;赿SPACE嵌入式仿真平臺與離線仿真平臺驗證了車輛動力學(xué)模型側(cè)向加速度和橫擺角速度的一致性,以及仿真控制策略的可行性和正確性。
國際上,嵌入式車輛動力學(xué)仿真平臺主要有CarSim、veDYNA和ASM。CarSim是美國MSC公司開發(fā)的車輛動力學(xué)仿真平臺,CarSim模型在計算機(jī)上運行的速度比實時快3~6倍,可以仿真車輛對駕駛員、路面及空氣動力學(xué)輸入的響應(yīng),主要用來預(yù)測和仿真汽車整車的操縱穩(wěn)定性、制動性、平順性、動力性和經(jīng)濟(jì)性,其中的CarSim RT模塊是CarSim模型專用于嵌入式實時仿真的模塊,可嵌入多種實時仿真系統(tǒng),如NI、dSPACE、ETAS、opal-RT等實時仿真系統(tǒng),提供與一些實時硬件系統(tǒng)的接口,滿足軟硬件在環(huán)仿真平臺的要求[3]。veDYNA是德國Te? sis公司開發(fā)的車輛動力學(xué)仿真平臺,以Matlab/ Simulink為開發(fā)環(huán)境,整個模型或模型組件通過C代碼編寫,并以s-function形式嵌入到Matlab/Simu?link程序環(huán)境中,主要用于汽車性能分析,車輛動力學(xué)、部件控制單元測試,控制算法開發(fā)與測試[4],可嵌入各種實時仿真系統(tǒng)(ADI、ETAS、NI、Opal-RT和xPC)。ASM是dSPACE公司基于Simuik開發(fā)的車輛動力學(xué)仿真平臺,主要應(yīng)用于發(fā)動機(jī)控制系統(tǒng)、汽車控制系統(tǒng)、車載電子設(shè)備和駕駛輔助系統(tǒng)的測試和研發(fā),ASM能夠很好地運行在dSPACE實時仿真系統(tǒng)[5]。
國外已經(jīng)實現(xiàn)了車輛動力學(xué)模型嵌入到實時硬件系統(tǒng)中,目前國內(nèi)文獻(xiàn)對此還沒有論述。吉林大學(xué)汽車仿真與控制國家重點實驗室經(jīng)過10多年的研究,研發(fā)了基于總成特性的實時車輛動力學(xué)模型(State Key Laboratory of Automotive Simulation and Con?trol,簡稱ASCL),模型在PC機(jī)上(主頻3.0G)運行速度是仿真時間的5倍左右,滿足了實時仿真要求。經(jīng)仿真驗證,精度到90%以上,并且可實現(xiàn)制動到0、大滑移等極限工況的仿真,可用于電子系統(tǒng)的仿真驗證[6]。
針對上述問題,本文研究了基于ASCL車輛動力學(xué)模型嵌入到dSPACE環(huán)境時的一些關(guān)鍵技術(shù);研究了dSPACE環(huán)境下模型的運行控制方法,闡述了在嵌入式平臺模型上的參數(shù)賦值方法,再次開發(fā)了便于應(yīng)用的操作界面;通過典型工況檢驗了動力學(xué)模型側(cè)向加速度和橫擺角速度的一致性,實現(xiàn)了車輛動力學(xué)嵌入式仿真平臺的開發(fā)。
2.1 目標(biāo)代碼的生成方法
ASCL基于ANSI C語言開發(fā),其仿真精度達(dá)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機(jī)環(huán)境下,需要在編譯批處理文件時使用帶有dSPACE標(biāo)識的指令x86-gcc,然后調(diào)用指令x86-ar生成目標(biāo)庫文件。為了提高ASCL代碼的運行效率,在編譯中使用-O2命令進(jìn)行代碼優(yōu)化。
2.2 仿真控制方法
ASCL仿真過程的控制主要分為初始化和運行控制。本文利用DS1006 RTLib提供的函數(shù)編寫控制程序(ControlFunction.c)以驅(qū)動dSPACE實時硬件對ASCL進(jìn)行仿真控制[7],利用基于時鐘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)對各功能模塊進(jì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中斷,不斷進(jìn)行仿真控制。
時鐘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?;跁r鐘D中斷的模型初始化流程如圖1所示。
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計算仿真運行時間,若未達(dá)到仿真結(jié)束時間,則周期執(zhí)行動力學(xué)模型函數(shù)Simulate,實現(xiàn)模型迭代仿真運算;若仿真狀態(tài)到達(dá)設(shè)定的仿真時間,則執(zhí)行模型中止函數(shù)Terminate,關(guān)閉時鐘A中斷?;跁r鐘A中斷的動力學(xué)模型仿真控制框圖如圖2所示。
在進(jìn)行中斷控制設(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)運行時,需要從上位機(jī)下載到實時仿真系統(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ā)。
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機(jī)內(nèi)存中的參數(shù)文件復(fù)制到dSPACE內(nèi)存中,然后將參數(shù)文件在dSPACE內(nèi)存的首地址傳遞給preset函數(shù)中的ParFile變量,完成動力學(xué)模型的參數(shù)賦值。
CLIB是實時硬件dSPACE提供的一套PC機(jī)與dSPACE實時處理器通訊的接口函數(shù)集,CLIB建立了PC機(jī)與dSPACE處理器內(nèi)存之間的通信[8]。本次采用CLIB提供的函數(shù)對dSPACE內(nèi)存進(jìn)行訪問,其中參數(shù)文件處理流程如圖3所示。
dS1006板 卡 處 理 包 括 利 用 函 數(shù) DS_regis?ter_host_app注冊應(yīng)用程序、DS_board_index獲得板卡號,從而將參數(shù)文件傳遞到該板內(nèi)存;參數(shù)文件在PC機(jī)上的處理包括獲取參數(shù)大小、在PC機(jī)上分配內(nèi)存、將參數(shù)文件傳遞到分配的內(nèi)存上;參數(shù)文件在dSPACE上的處理包括利用函數(shù)DS_alloc_mem在dSPACE上開辟內(nèi)存、DS_write_8函數(shù)將PC機(jī)內(nèi)存上的參數(shù)文件寫入到dSPACE的內(nèi)存上、DS_get_var_addr獲取模型中存儲參數(shù)文件首地址的指針變量、把dSPACE內(nèi)存中參數(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)用界面。
為了驗證模型的運行情況,分別對模型的仿真運行時間和車輛雙移線工況進(jìn)行了仿真驗證。設(shè)置ASCL的仿真步長為1 ms,當(dāng)動力學(xué)模型下載到dSPACE的DS1006中運行時,其每步平均仿真實測時間為0.18ms左右,模型運行時間占設(shè)定時間的18%,滿足實時仿真要求。
定義了雙移線仿真工況,通過Controldesk監(jiān)測模型側(cè)向加速度和橫擺角速度的運算結(jié)果,并將該仿真結(jié)果與離線仿真結(jié)果對比,如圖4和圖5所示,驗證了車輛動力學(xué)模型在兩種仿真平臺下側(cè)向加速度和橫擺角速度的一致性,以及仿真控制策略的可行性和正確性。
開發(fā)了基于dSPACE的嵌入式車輛動力學(xué)仿真平臺,主要完成以下方面的工作:
a. 利用dSPACE的GCC編譯器在PC機(jī)下完成了目標(biāo)代碼的生成;
b.利用dSPACE自帶的RTLib函數(shù),基于時鐘A和D中斷實現(xiàn)了動力學(xué)模型的初始化和仿真控制;
c. 利用dSPACE自帶的Clib函數(shù)完成了動力學(xué)模型的參數(shù)賦值;
d. 驗證了ASCL在dSPACE嵌入式仿真平臺和離線仿真平臺下側(cè)向加速度和橫擺角速度的一致性,以及仿真控制策略的可行性和正確性。
1 李茗.汽車電子產(chǎn)品的開發(fā).汽車工程,2004(26):367~372.
2 魏學(xué)哲.戴海峰.孫澤昌.汽車嵌入式系統(tǒng)開發(fā)方法、體系架構(gòu)和流程.同濟(jì)大學(xué)學(xué)報(自然科學(xué)版),2012(40)7:1055~1070.
3 吳海東.郭孔輝.蘆蕩.基于LabVIEW RT的硬件在環(huán)仿真.汽車技術(shù),2010(9):1~4.
4 北京九州恒潤技術(shù)有限公司.TesisDYNAware-基于Matlab/Simulik的車輛動力學(xué)實時仿真模型.CAD/CAM與制造業(yè)信息化,2004:72~74.
5 dSPACE.ASM Vehicle Dynamics.
6 魯蔣立.車輛動力學(xué)模型嵌入式仿真平臺開發(fā):[學(xué)位論文].長春:吉林大學(xué),2014.
7 Embedded Success dSPACE.DS1006 Processor Board RTLib Reference.2012-11.
8 Embedded Success dSPACE.CLIB C Interface Library. 2011-5.
(責(zé)任編輯簾 青)
修改稿收到日期為2015年3月1日。
Development of Embedded Vehicle Dynamics Simulation Platform Based on dSPACE
Zhan Jun1,Wang Qipei1,He Yunting1,Bao Kan1,Lu Jiangli2
(1.State Key Laboratory of Automotive Simulation and Control,Jilin University;2.FAW VW Co.,Ltd)
To satisfy the development demand of embedded vehicle dynamics simulation platform,we study the key methods of the vehicle dynamics model compilation,operation control,parameter assignment,based on dSPACE environment and the vehicle dynamics model of State Key Laboratory of Automotive Simulation and Control of Jilin University.The embedded simulation platform,which is based on dSPACE,and offline simulation platform verifies consistency of lateral acceleration and yaw rate,as well as the feasibility and correctness of this simulation control strategy.
Vehicle dynamics model,dSPACE,Embedded type,Simulation platform
車輛動力學(xué)模型 dSPACE 嵌入式 仿真平臺
U462.3
A
1000-3703(2015)04-0018-04
國家高科技研究發(fā)展計劃(863)(2006AA110101,2006AA110102)資助。