陳經(jīng)緯, 李 霞, 孫慶樂
(1.中車唐山機(jī)車車輛有限公司,唐山 060040;2.北京理工大學(xué) 機(jī)械與車輛學(xué)院,北京 100081)
隨著節(jié)能環(huán)保理念受到越來越廣泛的重視,電動汽車由于噪聲小、零排放等優(yōu)點得到了快速的發(fā)展[1-2].電動汽車產(chǎn)業(yè)的快速發(fā)展對電控系統(tǒng)提出了更高的要求,整車控制器(VCU)作為電控系統(tǒng)的核心,負(fù)責(zé)根據(jù)駕駛員操作指令及車輛實時狀態(tài),完成車輛的運動控制、能量管理及故障處理等功能[3-5].然而,傳統(tǒng)手寫代碼的控制系統(tǒng)開發(fā)方式由于研發(fā)周期長、調(diào)試難度大、可靠性差及成本高等缺點已無法滿足現(xiàn)代電控系統(tǒng)的開發(fā)需求[6-7].
文中針對傳統(tǒng)開發(fā)方式存在的缺點,采用英飛凌XC2267M單片機(jī)研發(fā)了一種基于模型的軟件開發(fā)方式,完成了整車控制器系統(tǒng)的硬件設(shè)計,基于Simulink軟件及整車控制策略搭建了整車控制模型,實現(xiàn)了代碼的自動生成.最后,將生成的代碼下載至整車控制器并進(jìn)行了實車測試,測試結(jié)果驗證了代碼的有效性.
電動汽車整車控制系統(tǒng)框圖如圖1所示.在車輛運行過程中,VCU實時采集駕駛員操作指令及車輛狀態(tài),根據(jù)既定的控制程序?qū)斎胄畔⑦M(jìn)行判斷處理,并利用I/O及CAN通訊輸出相應(yīng)指令實現(xiàn)對電池管理系統(tǒng)BMS、電機(jī)控制系統(tǒng)MCU及電附件的控制管理,從而完成對車輛的運動控制、能量管理及故障處理等功能.
圖1 整車控制系統(tǒng)
整車控制器硬件基于英飛凌XC2267M處理器,該處理器時鐘頻率可達(dá)80 MHz,具有豐富的可復(fù)用管腳.處理器芯片已集成GPIO、CAN、I2C、ADC及PWM等功能,可通過靈活的軟件管腳配置及外圍電路設(shè)計實現(xiàn)豐富的I/O及通訊功能.
外圍電路的設(shè)計是由VCU功能需求決定的.由圖1可知,VCU以駕駛員油門、剎車、檔位及空調(diào)等附件的信號為輸入,以MCU、BMS及DCDC等附件的繼電器開關(guān)信號為輸出,同時需要通過CAN通訊實現(xiàn)與各設(shè)備的控制傳輸與信息交互.基于此,文中完成了對VCU的硬件設(shè)計,所設(shè)計的硬件資源為:16路高有效數(shù)字量輸入DI、15路低有效DI、6路ADC、5路捕獲/比較CAPCOM、10路低邊驅(qū)動LD、4路高邊驅(qū)動HD、3路CAN通訊,同時,控制器具備EEPROM、睡眠喚醒及BootLoader功能.其硬件平臺如圖2所示.
圖2 整車控制器硬件平臺
傳統(tǒng)的整車控制策略軟件開發(fā)流程分為需求、設(shè)計、實現(xiàn)、測試4個階段.采用傳統(tǒng)的開發(fā)流程,各個環(huán)節(jié)之間相互孤立,后期設(shè)計與前期需求容易存在偏差,并且采用手工編程的方法,對設(shè)計人員的編程能力要求較高,編程難度大.同時,只能完成原型樣機(jī)之后才能對軟件進(jìn)行測試,開發(fā)流程效率低下.
采用基于Simulink的VCU軟件開發(fā),可以實現(xiàn)控制策略C代碼的自動生成,降低對研發(fā)工程師編程能力的要求,可以使工程師將主要精力集中在算法上.借助Simulink仿真工具箱,可以在軟件開發(fā)階段基于試驗工況設(shè)計仿真測試用例,實現(xiàn)控制策略和測試工況的無縫連接,實時進(jìn)行控制策略測試驗證,從而減少后續(xù)實車測試過程中的軟件缺陷,提高樣車實驗的安全性,減少試驗測試成本.
基于Simulink的VCU軟件開發(fā)流程如圖3所示.在開發(fā)過程中,研發(fā)工程師可以將主要精力集中在Simulink整車控制模型及算法方面,并且可以通過靈活的MIL,初步驗證模型及算法的正確性.整車控制模型開發(fā)完成后,可以利用Simulink中的實時工作站RTW并結(jié)合目標(biāo)文件,通過目標(biāo)語言編譯器TLC生成所需的C代碼文件,從而完成了C代碼的自動生成.隨后,研發(fā)工程師可以對所生成的C代碼進(jìn)行SIL測試或下載至VCU進(jìn)行進(jìn)一步測試.
圖3 基于模型的VCU軟件開發(fā)流程
由以上分析可知,實現(xiàn)C代碼的自動生成關(guān)鍵在于針對相應(yīng)的處理器進(jìn)行底層驅(qū)動模塊的設(shè)計.Matlab提供了設(shè)計開發(fā)Simulink模塊的方法,可以通過編寫C-Mex S函數(shù)自定義Simulink模塊,并可以通過masking定制用戶界面.在完成Simulink模塊的設(shè)計之后,為實現(xiàn)底層驅(qū)動軟件代碼的生成,還需要針對底層驅(qū)動設(shè)計相應(yīng)的TLC文件.TLC文件分為系統(tǒng)TLC文件和模塊TLC文件.模塊TCL文件可以將Simulink模塊轉(zhuǎn)變成相應(yīng)的C代碼語句,系統(tǒng)TLC文件可以根據(jù)Simulink的軟件架構(gòu),將各個模塊生成的代碼合理有效的集成在工程文件中.
文中針對XC2267M處理器,利用DAvE軟件開發(fā)了該處理器各功能下的底層驅(qū)動軟件代碼,在此基礎(chǔ)上設(shè)計開發(fā)了相應(yīng)的C-MEX S函數(shù)及系統(tǒng)TLC文件與模塊TLC文件.所開發(fā)的Simulink圖形化交互模塊如圖4所示.
圖4 Simulink圖形化模塊
整車控制模型作為研發(fā)的核心,其通常以整車控制策略為指導(dǎo),控制模型主要包括整車模式管理、上下電控制、運動控制、電附件管理及故障處理等子模型.
整車模式分為充電模式、行車模式和故障模式3種,如圖5所示.行車模式與充電模式在軟件上實現(xiàn)互鎖,行車模式下,插入充電槍會自動退出行車模式,充電槍未拔出前車輛不能進(jìn)入行車模式.
圖5 整車模式管理
整車上下電控制根據(jù)駕駛員鑰匙開關(guān)動作及車輛的故障狀態(tài),按照既定的上下電控制邏輯,實時控制車輛BMS、MCU及電附件高低壓電源的通斷,整車上下電控制邏輯分別如圖6和圖7所示.
圖6 整車上電控制邏輯
圖7 整車下電控制邏輯
車輛運動控制主要包括車輛擋位的判斷、車速的計算及相應(yīng)擋位電機(jī)控制指令的輸出.
4.3.1 車輛擋位判斷
擋位的判斷主要是對D擋、R擋及N擋之間的切換進(jìn)行判斷,換擋邏輯及Stateflow程序框圖分別如圖8和圖9所示.
圖8 換擋邏輯
圖9 Stateflow換擋流程圖
4.3.2 車速計算
由于車輛ABS系統(tǒng)未向VCU發(fā)送車輛車速信息,因此,VCU采用如下近似公式來計算車速:
式中:n為電機(jī)轉(zhuǎn)速;r為輪胎滾動半徑;i為電機(jī)至車輪的傳動比.
4.3.3 電機(jī)控制指令計算
電機(jī)采用轉(zhuǎn)矩控制模式,VCU根據(jù)駕駛員油門踏板、制動踏板及當(dāng)前車速與擋位信息實時計算電機(jī)需求轉(zhuǎn)矩,如圖10所示.同時,需求轉(zhuǎn)矩還受到電池最大充放電功率等的制約,如圖11所示.
圖10 需求轉(zhuǎn)矩計算
圖11 轉(zhuǎn)矩制約計算
故障模式分為3種,一級故障限制電機(jī)峰值功率50%輸出;二級故障處理限制電機(jī)峰值功率50%輸出,最高車速減半;三級故障最嚴(yán)重,VCU停止MCU及BMS的使能并立即進(jìn)入下電流程,其中,車輛三級故障如表1所示.
表1 車輛故障
為驗證代碼的有效性,利用開發(fā)工具軟件Tasking,將Simulink自動生成的C代碼下載至VCU,并在實車上進(jìn)行了試驗驗證.試驗車輛為改裝后的北汽ev160純電動汽車,在原車基礎(chǔ)上,將集中電機(jī)驅(qū)動改為了四輪輪轂電機(jī)驅(qū)動,提高了車輛的控制精度.
試驗條件設(shè)置如下:首先將車輛連續(xù)加速至60 km/h,隨后車輛進(jìn)行滑行減速,如此重復(fù)兩次;而后同樣將車輛連續(xù)加速至60 km/h,但對車輛進(jìn)行剎車制動減速,亦重復(fù)兩次.所得到的車速及母線電流曲線如圖12和圖13所示.
圖12 車速曲線
圖13 母線電流曲線
由圖12可知,車輛能夠按照駕駛員意圖在一定的時間內(nèi)加速至給定的車速(60 km/h),并且車輛可以通過滑行實現(xiàn)車速的緩慢下降或通過剎車制動實現(xiàn)車速的迅速下降.
由圖13可知,在加速工況下母線電流能夠迅速增加,以滿足車輛的加速需求.在減速工況下,當(dāng)車速大于20 km/h時,母線電流為負(fù)值,這說明車輛能夠?qū)崿F(xiàn)滑行或制動能量回收.
文中針對傳統(tǒng)電控系統(tǒng)開發(fā)方式存在的周期長、成本高、難度大等問題,采用英飛凌XC2267M單片機(jī)研發(fā)了一種基于模型的軟件開發(fā)方式,完成了整車控制器的硬件系統(tǒng)設(shè)計,基于Simulink軟件及整車控制策略搭建了整車控制模型,實現(xiàn)了代碼的自動生成.最后,將生成的代碼下載至整車控制器并進(jìn)行了實車測試,測試結(jié)果驗證了代碼的有效性.