張炳力 吳德新
(合肥工業(yè)大學(xué))
CANoe/MATLAB聯(lián)合仿真在純電動汽車整車控制開發(fā)中的應(yīng)用*
張炳力 吳德新
(合肥工業(yè)大學(xué))
為搭建純電動汽車整車控制器的總線仿真環(huán)境,利用CANoe/MATLAB接口模塊將CANoe完善的總線仿真功能和MATLAB/Simulink的建模仿真功能結(jié)合起來,實(shí)現(xiàn)了整車控制單元模型、電機(jī)控制單元模型和電源管理控制單元模型在CANoe環(huán)境下的聯(lián)合仿真。仿真結(jié)果表明,采用CANoe/MATLAB聯(lián)合仿真可以對整車總線應(yīng)用層協(xié)議和整車控制策略進(jìn)行驗(yàn)證。
CANoe是由德國Vector公司開發(fā)的系統(tǒng)級總線開發(fā)工具,具有網(wǎng)絡(luò)監(jiān)測與分析功能以及強(qiáng)大的系統(tǒng)仿真功能[1]。通常情況下,網(wǎng)絡(luò)中各節(jié)點(diǎn)的控制算法和控制功能可以通過CANoe軟件中提供的CAPL(CAN Area Program Language)語言實(shí)現(xiàn),但由于CAPL語言描述能力有限,很難單獨(dú)使用該語言對網(wǎng)絡(luò)中控制算法和控制功能較為復(fù)雜的節(jié)點(diǎn)進(jìn)行準(zhǔn)確有效地描述。而MAT?LAB/Simulink具有很強(qiáng)的圖形化建模能力,將MATLAB/ Simulink建模仿真環(huán)境嵌入到CANoe網(wǎng)絡(luò)系統(tǒng)開發(fā)環(huán)境中,并結(jié)合CANoe的總線仿真功能,可為車用CAN網(wǎng)絡(luò)應(yīng)用層協(xié)議及各種電控單元節(jié)點(diǎn)的通信功能開發(fā)提供一個快速有效的平臺[2]。
本文基于CANoe/MATLAB聯(lián)合仿真工具,將在MATLAB/Simulink中建立的純電動汽車整車控制單元、電機(jī)控制單元和電源管理系統(tǒng)等3個網(wǎng)絡(luò)節(jié)點(diǎn)模型嵌入到CANoe中,測試整車網(wǎng)絡(luò)系統(tǒng),驗(yàn)證純電動汽車整車控制單元的各項(xiàng)功能。
通過將CANoe/MATLAB接口模塊導(dǎo)入MATLAB中,實(shí)現(xiàn)CANoe與MATLAB/Simulink的關(guān)聯(lián)。在MAT?LAB/Simulink中,分別建立整車控制單元模型、電機(jī)控制單元模型和電源管理控制單元模型,作為CAN網(wǎng)絡(luò)中的3個節(jié)點(diǎn)。將CANoe/MATLAB接口模塊庫中的Signal Input和Signal Output等模塊替換原有Simulink中的輸入和輸出模塊,并添加Simulation Step Offline模塊。在這種離線模式下,在Simulink中進(jìn)行仿真,利用CANoe-interface模塊來讀取和寫入CANoe中的環(huán)境變量或信號,從而形成系統(tǒng)的輸入和輸出。
2.1 整車控制單元
整車控制單元模型分為車輛動力學(xué)模型和整車控制策略模型2部分。整車控制單元需要的輸入信號包括開關(guān)量信號(如鑰匙開關(guān)和擋位信號)、模擬量信號(如駕駛員加速踏板信號和制動踏板信號)和CAN信號(包括與電機(jī)控制器、電源管理系統(tǒng)通信的狀態(tài)/控制指令信號)。經(jīng)過車輛動力學(xué)模型和整車控制策略模型計(jì)算,得出電機(jī)控制和電源能量分配的輸出量,通過CAN網(wǎng)絡(luò)實(shí)現(xiàn)與電機(jī)控制單元和電源管理控制單元的信息傳遞。整車控制單元模型如圖1所示。
整車控制單元CANoe/MATLAB聯(lián)合仿真模型如圖2所示,其中環(huán)境變量事件模塊Environment Event用于接收總線上的車輛起動信號,該事件一旦觸發(fā),車輛隨時進(jìn)入到起步控制狀態(tài)。Enviroment input模塊用于實(shí)現(xiàn)駕駛員加速踏板信號、制動踏板信號及擋位信號的輸入。Signal input模塊和Signal output模塊用于接收總線上相應(yīng)的信號以及傳輸控制指令。
2.2 電機(jī)控制單元
電機(jī)控制單元接收來自總線上整車控制單元發(fā)出的轉(zhuǎn)矩指令、轉(zhuǎn)速指令及電機(jī)停止、正轉(zhuǎn)和反轉(zhuǎn)控制指令,根據(jù)車輛不同的行駛狀態(tài),采取不同的控制策略確定當(dāng)前電機(jī)的實(shí)際工作狀態(tài),并以CAN報文的形式發(fā)送到總線上。電機(jī)控制單元CANoe/MAT?LAB聯(lián)合仿真模型如圖3所示。
2.3 電源管理控制單元
電源管理控制單元包括蓄電池、超級電容和雙向DC/DC,其根據(jù)來自于總線上電機(jī)需求功率、蓄電池需求功率、超級電容需求功率以及電池最大充/放電限制的電流,計(jì)算出電源輸出的電流、電壓及荷電狀態(tài)SOC,并將復(fù)合電源的蓄電池SOC和超級電容的SOC作為CAN信號發(fā)送到整車控制單元模型。電源管理控制單元聯(lián)合仿真模型如圖4所示。
純電動汽車整車控制單元VCU、電機(jī)控制單元MCU和電源管理控制單元BMS構(gòu)成完整系統(tǒng)進(jìn)行CA?Noe/MATLAB聯(lián)合仿真,其集成后的模型如圖5所示。
3.1 構(gòu)建CAN總線系統(tǒng)的仿真環(huán)境
利用CANoe構(gòu)建總線系統(tǒng)仿真環(huán)境的步驟[3]如下。
a.利用CANdb++建立CAN總線系統(tǒng)的數(shù)據(jù)庫。CANdb++是集成在CANoe中用于編輯總線系統(tǒng)數(shù)據(jù)庫文件的工具,描述仿真對象總線的屬性,包括節(jié)點(diǎn)、報文、信號和環(huán)境變量等,這些參數(shù)都是根據(jù)CAN總線通訊協(xié)議配置的。總線節(jié)點(diǎn)的報文和信號均是在傳輸層中定義,模型的傳感器(如駕駛員加速踏板/制動踏板、擋位信號、鑰匙信號)是在環(huán)境變量中定義。通過通訊矩陣可檢測出概念定義的錯誤并及時改正,同時可幫助對網(wǎng)絡(luò)進(jìn)行優(yōu)化。
b.建立總線系統(tǒng)仿真模型。將定義好的數(shù)據(jù)庫文件導(dǎo)入CANoe的Simulink Step模塊中,同時選擇仿真節(jié)點(diǎn),生成所需的系統(tǒng)仿真模型,實(shí)現(xiàn)數(shù)據(jù)庫文件中各節(jié)點(diǎn)的屬性與仿真模型的關(guān)聯(lián)。在總線配置文件中設(shè)置Graphics窗口可以監(jiān)視總線上信號的波形變化,設(shè)置Trace窗口監(jiān)視各報文的發(fā)送、接收時間、報文值等,設(shè)置Data模塊測試總線屬性值。
c.利用面板編輯器(Panel Editor)創(chuàng)建仿真控制面板。建立的仿真控制面板如圖6所示,仿真時通過控制面板可以完成仿真功能并通過虛擬儀表顯示結(jié)果,實(shí)現(xiàn)人機(jī)交互功能。
d.利用CAPL語言對節(jié)點(diǎn)編程。CAPL語言類似于C語言的語法,利用它可對總線虛擬節(jié)點(diǎn)進(jìn)行編程,實(shí)現(xiàn)節(jié)點(diǎn)的控制算法與控制功能。編寫的程序是事件觸發(fā)程序,包括事件觸發(fā)、鍵盤觸發(fā)、定時器觸發(fā)和環(huán)境變量觸發(fā)等。本文中各節(jié)點(diǎn)間的控制算法都是通過MATLAB/Simulink建模實(shí)現(xiàn)的,對于一些必要的底層觸發(fā)還需要通過CAPL語言編寫來實(shí)現(xiàn)。
3.2 構(gòu)建基于CANoe/MATLAB聯(lián)合仿真環(huán)境
構(gòu)建基于CANoe/MATLAB的聯(lián)合仿真環(huán)境操作[4]過程如下。
a.仿真模型模板的選擇??紤]到目前多數(shù)純電動汽車的通訊協(xié)議采用基于CAN2.0B的SAE J1939協(xié)議,因此在CAN系統(tǒng)配置中選取J1939 Template.tcn模板。在數(shù)據(jù)庫的創(chuàng)建過程中,由于涉及到交互層(Interaction Layer)的數(shù)據(jù)傳輸,應(yīng)選擇Vector_IL_basic template.dbc模板。
b.仿真模式的選擇。CANoe-MATLAB接口有2種使用模式[5],一種是離線模式,另一種是硬件在環(huán)回路模式。在離線模式下,仿真在simulink中進(jìn)行,利用CA?Noe接口模塊讀、寫CANoe中的環(huán)境變量或信號,從而形成系統(tǒng)的輸入和輸出。本文選擇具有非實(shí)時性的離線仿真模式,在此模式下CANoe作為MATLAB/Simulink的附屬模式啟動。當(dāng)開始運(yùn)行Simulink模型時,CANoe自動打開總線監(jiān)測,顯示總線上各報文及信號值,仿真時間以MATLAB/Simulink為基準(zhǔn)。
c.仿真節(jié)點(diǎn)的設(shè)置。在離線仿真模式下,將3個節(jié)點(diǎn)的MATLAB/Simulink仿真模型進(jìn)行編譯,將生成的.dll文件、.ini描述文件和.mdl模型文件加載到CANoe仿真環(huán)境中。為了執(zhí)行涉及交互層的網(wǎng)絡(luò)節(jié)點(diǎn)間的通信功能,在CANoe節(jié)點(diǎn)配置中需要將CANoeILNLVector.dll文件和相應(yīng)的模型.dll文件加載到網(wǎng)絡(luò)節(jié)點(diǎn)中,執(zhí)行網(wǎng)絡(luò)節(jié)點(diǎn)交互層的通訊功能,也可負(fù)責(zé)發(fā)送和接收節(jié)點(diǎn)的各項(xiàng)報文。
通過上述操作完成了聯(lián)合仿真所需要的設(shè)置后,即可實(shí)現(xiàn)對MATLAB/Simulink仿真模型的各項(xiàng)參數(shù)及控制策略的驗(yàn)證,也可調(diào)試MATLAB/Simulink與CANoe間的通訊,包括共享節(jié)點(diǎn)之間的報文信號。
CANoe/MATLAB聯(lián)合仿真需實(shí)現(xiàn)的目標(biāo)如下:
a.由CANoe的控制面板輸入駕駛員控制信號,通過仿真結(jié)果觀察整車控制策略是否符合要求。
b.驗(yàn)證CANoe與MATLAB/simulink之間信息傳輸?shù)臏?zhǔn)確性,即觀察CANoe中的Graphics與simulink對應(yīng)Scope圖形的一致性。
c.觀察CANoe中報文是否按設(shè)定周期完整發(fā)送和接收,以及設(shè)計(jì)的總線協(xié)議是否滿足通訊要求。
4.1 基于MATLAB/Simulink仿真和分析
在MATLAB/Simulink模型中加入信號發(fā)生模型并設(shè)置模型參數(shù),模擬加速踏板信號和制定踏板信號的輸入,設(shè)置仿真時間為1 000 s,如圖7所示。
MATLAB/simulink模型以加速踏板和制動踏板為輸入,整車控制單元模型、電機(jī)控制單元模型和電源管理控制單元模型中的試驗(yàn)數(shù)據(jù)如圖8所示。
由圖8可看出,電-電混合純電動汽車在起步加速時以大轉(zhuǎn)矩起步,加速后轉(zhuǎn)矩減小,轉(zhuǎn)速不斷增加,在這個階段中蓄電池提供平均功率,蓄電池SOC平穩(wěn)降低,超級電容提供峰值功率,因此超級電容SOC下降較快。當(dāng)超級電容SOC小于0.5時,蓄電池給超級電容充電。在制動過程中,由于存在再生制動能量回收,此時需求轉(zhuǎn)矩減小為負(fù)值,電機(jī)優(yōu)先選擇給超級電容充電,超級電容SOC迅速增加,當(dāng)超級電容SOC達(dá)到0.95時,電機(jī)轉(zhuǎn)向給蓄電池充電,由蓄電池回收制動能量。
4.2 基于CANoe/MATLAB仿真和分析
在CANoe的操作面板中,輸入與Simulink中相同的加速踏板信號、制動踏板信號及擋位信號作為CANoe/ MATLAB聯(lián)合仿真的輸入信號。信號經(jīng)過整車網(wǎng)絡(luò)模型實(shí)現(xiàn)控制,通過Graphics窗口圖形化顯示總線上各報文幀數(shù)據(jù)的變化趨勢,如圖9所示??偩€統(tǒng)計(jì)窗口Bus Sta?tistics顯示總線負(fù)載率、峰值負(fù)載率、總線速率、數(shù)據(jù)幀數(shù)量、錯誤幀數(shù)量、CAN控制器狀態(tài)等內(nèi)容,如圖10所示。
對比圖8與圖9可知,在MATLAB/Simulink的仿真環(huán)境下與在CANoe/MATLAB的聯(lián)合仿真環(huán)境下得出的試驗(yàn)結(jié)果基本一致。
從圖10可看出,總線負(fù)載率為20.83%,峰值負(fù)載率為20.83%,錯誤幀為0,均符合總線設(shè)計(jì)要求,表明所設(shè)計(jì)的總線協(xié)議能夠完成各控制單元之間通訊的功能,達(dá)到純電動汽車通訊系統(tǒng)數(shù)據(jù)傳輸?shù)囊蟆?/p>
本文利用CANoe/MATLAB接口模塊將CANoe完善的總線仿真功能和MATLAB/Simulink的建模仿真功能結(jié)合起來,實(shí)現(xiàn)了整車控制單元模型、電機(jī)控制單元模型和電源管理控制單元模型在CANoe環(huán)境下的聯(lián)合仿真。仿真結(jié)果表明,采用CANoe/MATLAB聯(lián)合仿真可以對整車總線應(yīng)用層協(xié)議和整車控制策略進(jìn)行驗(yàn)證,且聯(lián)合仿真結(jié)果與MATLAB/Simulink仿真結(jié)果基本一致,總線運(yùn)行狀態(tài)良好,符合總線設(shè)計(jì)要求。
1 張建國,雷雨龍,劉洪波,等.CANoe-Matlab聯(lián)合仿真在DCT總線控制中的應(yīng)用.汽車技術(shù),2010(9):7~10.
2 孫運(yùn)璽.基于CAN總線純電動車主控制器節(jié)點(diǎn)設(shè)計(jì)及協(xié)議實(shí)現(xiàn):[碩士論文].長春:吉林大學(xué),2010.
3 CANoe快速入門教程.北京:北京恒潤科技.
4 侯清亮.電-電混合純電動汽車整車控制器的研究:[學(xué)位論文].合肥:合肥工業(yè)大學(xué).2012.
5 VECTOR Informatik.CANoe add on MATLAB Interface,Us?er Guide.Germany:Vector Informatik GmbH,2008.
(責(zé)任編輯文 楫)
修改稿收到日期為2014年12月20日。
Application of CANoe/MATLAB Co-simulation in Electric Vehicle Control Development
Zhang Bingli,Wu Dexin
(Hefei University of Technology)
To build the bus simulation environment for electric vehicles(EVs)controller,this paper presents a method which makes use of CANoe/MATLAB interface module to combine the well-established bus simulation function of CANoe with the modeling simulation function of MATLAB/Simulink to realize the co-simulation of vehicle control unit (VCU),motor control unit(MCU),and battery manage system(BMS)in CANoe environment.The research result indicates that CANoe/MATLAB co-simulation can verify the application layer protocol of vehicle bus and the vehicle control strategy.
Electric vehicle,Vehicle control,Co-simulation
純電動汽車 整車控制 聯(lián)合仿真
U469.72
A
1000-3703(2015)03-0052-04
安徽省科技攻關(guān)資助項(xiàng)目(12010202039);廣東省教育部產(chǎn)學(xué)研結(jié)合資助項(xiàng)目(2012B091100310)。