純電動(dòng)汽車(chē)建模(EvReferenceApplication)探究與說(shuō)明

最近參與了一個(gè)動(dòng)力電池健康狀態(tài)估計(jì)的項(xiàng)目,由于實(shí)驗(yàn)前期需要對(duì)電動(dòng)汽車(chē)行駛過(guò)程中電池充放電情況進(jìn)行建模仿真,團(tuán)隊(duì)最終決定使用matlab中的現(xiàn)有模型加以魔改,優(yōu)點(diǎn)是有現(xiàn)成的方案作為參考,不用從頭開(kāi)始對(duì)整車(chē)模型建模,對(duì)于我們不了解也不關(guān)心的參數(shù),可以直接采用模型中的默認(rèn)值,免去了許多不必要的工作量,但仍無(wú)法避免需要對(duì)模型的整體架構(gòu)、子模塊用途以及參數(shù)有足夠的了解。以下即為本團(tuán)隊(duì)對(duì)于該模型的探究與說(shuō)明。
模型為MathWorks? Simulink示例模型,使用版本為matlab2021b。該模型基于Powertrain Blockset、Simscape搭建。官網(wǎng)地址https://ww2.mathworks.cn/help/autoblks/ug/electric-vehicle-reference-application.html。
模型的總體概述如下:
本模型是純電動(dòng)汽車(chē)縱向動(dòng)力學(xué)模型,即不包含轉(zhuǎn)向信息;車(chē)體部分采用三自由度縱向動(dòng)力學(xué)模型,單電機(jī)且無(wú)專(zhuān)門(mén)的動(dòng)態(tài)相應(yīng)模塊。
通過(guò)輸入預(yù)先規(guī)定的工況數(shù)據(jù)(Drive Cycle),駕駛員模型(Longitudinal Driver)將其轉(zhuǎn)換為油門(mén)、剎車(chē)踏板信息,送入整車(chē)控制器(Controllers)轉(zhuǎn)換為電機(jī)扭矩需求、電池充放電情況等,結(jié)合車(chē)輛物理結(jié)構(gòu)建模(Passenger Car)最終輸出為所需的電機(jī)、電池行駛仿真數(shù)據(jù),從而評(píng)估車(chē)輛的能量利用效率、結(jié)構(gòu)合理性等。
以下為各個(gè)部分的簡(jiǎn)單說(shuō)明介紹。
一、 駕駛工況(駕駛循環(huán)資源Drive Cycle Source)
即車(chē)速與時(shí)間的對(duì)應(yīng)關(guān)系,一般可以直接采用標(biāo)準(zhǔn)工況數(shù)據(jù)或MathWorks提供的公開(kāi)數(shù)據(jù),如電動(dòng)汽車(chē)的標(biāo)準(zhǔn)續(xù)航里程測(cè)試NEDC(新歐洲駕駛周期)、CLTC(中國(guó)輕型汽車(chē)行駛工況)等。
“NEDC測(cè)試分別由城市駕駛工況和市郊駕駛工況所組成,單次測(cè)試時(shí)長(zhǎng)為1180秒,包括4個(gè)市區(qū)循環(huán)(780秒)和1個(gè)市郊循環(huán)(400秒)。其中測(cè)試的市區(qū)循環(huán)最大車(chē)速50km/h、平均車(chē)速19km/h;市郊循環(huán)最大車(chē)速120km/h,平均車(chē)速62km/h。但該測(cè)試標(biāo)準(zhǔn)年代比較久遠(yuǎn),為測(cè)試出更貼近用戶實(shí)際的可續(xù)航里程,考慮到細(xì)節(jié)工況,我國(guó)工信部下達(dá)制定新的工況續(xù)航標(biāo)準(zhǔn)的需求,2019年10月25日,專(zhuān)門(mén)為中國(guó)國(guó)情研發(fā)的《中國(guó)汽車(chē)行駛工況》正式發(fā)布,這一工況標(biāo)準(zhǔn)簡(jiǎn)稱(chēng)CATC,而CLTC是其中的一部分?;趪?guó)內(nèi)41座城市、3832輛車(chē)型樣本,累計(jì)實(shí)驗(yàn)里程3278萬(wàn)公里,以及20億條GIS交通低頻大數(shù)據(jù),得出的更加貼合國(guó)內(nèi)道路法規(guī)及駕駛習(xí)慣的標(biāo)準(zhǔn)工況。
CLTC測(cè)試?yán)锍虨?4.48km,包括低速、中速和高速3種工況,分別對(duì)應(yīng)消費(fèi)者日常駕車(chē)時(shí)的城市、郊區(qū)和高速路段的工況。CLTC測(cè)試時(shí)長(zhǎng)1800秒,其中低速工況674秒、中速工況693秒、高速工況433秒。速度上高速工況最高時(shí)速為114km/h,平均車(chē)度28.96km/h。
CLTC的頻繁加減速,符合國(guó)內(nèi)實(shí)際走走停停的情況。而更加頻繁加減速的工況,對(duì)于具有動(dòng)能回收且效率更高的電動(dòng)汽車(chē)來(lái)說(shuō),非常有利于提升續(xù)航。對(duì)于純電動(dòng)汽車(chē)而言,采用CLTC后,將比NEDC的續(xù)航里程更高?!?/p>

駕駛循環(huán)資源數(shù)據(jù)也可以自定義導(dǎo)入,格式可以為.mat,.xls,.xlsx,.txt。
二、 駕駛員模型(Longitudinal Driver)
駕駛員模型可以根據(jù)反饋的實(shí)際車(chē)速信息跟隨目標(biāo)車(chē)速(即工況中的實(shí)時(shí)車(chē)速信息),給出剎車(chē)/油門(mén)信號(hào),可采用不同控制類(lèi)型。
本模型中包含了兩個(gè)可選的駕駛員模型,分別為開(kāi)環(huán)模型和閉環(huán)模型,默認(rèn)使用閉環(huán)模型。
“控制類(lèi)型選擇:Control type, cntrlType:Predictive/Scheduled PI/PI。默認(rèn)為Predictive”
開(kāi)環(huán)模型可以自定義油門(mén)踏板、制動(dòng)踏板信息。
三、 整車(chē)控制器(Controllers)
包含兩個(gè)核心模塊:Powertrain Control Module (PCM)、Battery Management System (BMS),即動(dòng)力總程模塊以及電池管理系統(tǒng)模塊。動(dòng)力總程模塊即電機(jī)控制器及各算法模塊,如將輸入信號(hào)如踏板信息轉(zhuǎn)化為電機(jī)扭矩需求、電池充放電管理、能量回收管理等。
Powertrain Control Module (PCM)
PCM包括:將油門(mén)信號(hào)轉(zhuǎn)化為扭矩需求模塊(Accel Pedal to Traction Wheel Torque Request)、制動(dòng)踏板轉(zhuǎn)成制動(dòng)扭矩模塊(Brake Pedal to Total Braking Pressure Request)、能量管理模塊(Series Regen Braking)、電池充放電管理模塊(Motor Torque Arbitration and Power Management)等。
油門(mén)信號(hào)轉(zhuǎn)化為扭矩需求模塊:將所有電機(jī)最大扭矩(查表MaxMotTrqVsSpd)乘以加速踏板數(shù)值(百分比數(shù)值)。
制動(dòng)踏板轉(zhuǎn)成制動(dòng)扭矩模塊:將最大制動(dòng)扭矩乘踏板數(shù)值。
能量管理模塊:能量回收、電池充放電功率/電流限制以保證實(shí)際扭矩需求最大值。
具體解釋為:制動(dòng)扭矩BrkPrsReq與電機(jī)提供最大扭矩MotSpd作比較(min)。超出部分由制動(dòng)盤(pán)BrkCmd提供扭矩,未超出部分傳遞給電機(jī)MotTrqCmdRegen用于發(fā)電。
電池充放電管理模塊:電機(jī)輸出功率Mech to Elec Power Estimate,電池充放電功率限制BattPwrDischrgLmt,如果不滿足上下限,根據(jù)上下限反算電機(jī)提供的最大扭矩MotSpd;Torque Limit根據(jù)電機(jī)外特性曲線MaxMotTrqVsSpd決定當(dāng)前電機(jī)轉(zhuǎn)速下能提供的最大扭矩。
*該模塊使用reference model,使相對(duì)獨(dú)立;由于控制器模型需要生成代碼寫(xiě)入電動(dòng)汽車(chē)eco中,故需要使用定步長(zhǎng)fixed-step;
Battery Management System (BMS)
BMS是電池管理系統(tǒng)的一部分,主要用于監(jiān)控、保護(hù)、限制和報(bào)告電池包的測(cè)量結(jié)果。保護(hù)及限制部分并非我們研究的重點(diǎn),如有需要可以參考這個(gè)視頻https://www.bilibili.com/video/BV1aB4y1w7nj。
State_Machine子模塊定義了BMS的主要運(yùn)行狀態(tài),使用stateflow工具箱創(chuàng)建。
SOC_Estimation子模塊主要用于精準(zhǔn)估算電池的SOC,是我們研究的重點(diǎn)。需要特別說(shuō)明的是,除此之外在車(chē)輛物理模型(Passenger Car)中的電池包模型(Lithium Ion Battery Pack)同樣具備計(jì)算SOC的功能,但并未被使用,故如果需要調(diào)整模型SOC相關(guān)參數(shù),需要在BMS模塊中修改。你可以在后面的參數(shù)說(shuō)明部分看到我們團(tuán)隊(duì)在處理該問(wèn)題時(shí)的方案。模塊中包含三種不同的計(jì)算方法用于計(jì)算電池SOC,分別為:庫(kù)侖計(jì)數(shù)、無(wú)跡和拓展卡爾曼濾波器,可以根據(jù)需要自行選擇。
Balancing_Logic子模塊主要用于平衡電池包中各電池的充放電狀態(tài),否則具有最高/最低SOC的電芯將限制可充入/放出電池組的電荷量,從而導(dǎo)致系統(tǒng)利用率不足。
四、 車(chē)輛模型(Passenger Car)
車(chē)輛物理模型,包括Electric Plant以及Drivetrain。
Electric Plant中的電池模塊Lithium Ion Battery Pack,即根據(jù)查表法建立的簡(jiǎn)單電池包模型,根據(jù)廠商提供的不同溫度放電曲線(ocv-soc曲線、電池內(nèi)阻曲線),對(duì)電流對(duì)時(shí)間積分得出soc狀態(tài)(沒(méi)有被使用);恒流放電,不考慮動(dòng)態(tài)響應(yīng)(阻抗 伴隨 電荷轉(zhuǎn)移/擴(kuò)散 快速/慢速相應(yīng)混合)。
Electric Plant中的電機(jī)模塊Motor由數(shù)據(jù)驅(qū)動(dòng)的map圖模型MotGenEvMapped基于電機(jī)外特性扭矩功率查表曲線,數(shù)據(jù)來(lái)自穩(wěn)定工況,沒(méi)有體現(xiàn)動(dòng)態(tài)相應(yīng)(震蕩);更精確的模型MotGenEvDynamic對(duì)電池電機(jī)容量選型整車(chē)能量分配進(jìn)行測(cè)驗(yàn)開(kāi)發(fā),基于物理原理(詳細(xì)解釋?zhuān)?;扭矩輸入MotTrqCmd轉(zhuǎn)速輸入MotSpd,扭矩輸出MotTrq。
Drivetrain即機(jī)械模塊,電機(jī)扭矩輸出依次連接到旋轉(zhuǎn)軸,轉(zhuǎn)動(dòng)慣量阻尼模塊,再傳到主減速器Differential and Compliance,可改前、后、全輪驅(qū)動(dòng)模式,主減速器模塊Differential使用blockset中自帶的主減速器(參數(shù)需要設(shè)計(jì));車(chē)輪和剎車(chē)部分Wheels and Brakes;車(chē)體部分Vehicle縱向動(dòng)力學(xué)車(chē)體模型Vehicle Body 3 DOF Longitudinal。
參數(shù)修改說(shuō)明:
由于團(tuán)隊(duì)后續(xù)實(shí)驗(yàn)要求輸出步長(zhǎng)固定且盡可能大的仿真數(shù)據(jù),故需要將模型由原本的變步長(zhǎng)求解改為定步長(zhǎng)求解,并根據(jù)需要修改部分關(guān)鍵參數(shù),可供參考。
首先需要修改模型電池包參數(shù),在EvReferenceApplication/Passenger Car/Electric Plant/Powertrain Blockset/Battery (BattEv)/ Lithium Ion Battery Pack中修改電池單元的額定容量、并聯(lián)串聯(lián)電池單元數(shù)。其中BattChargeMax即為電池單元額定容量,而B(niǎo)attCapInit則為仿真開(kāi)始時(shí)的初始電池單元容量,但令人費(fèi)解的是,修改這兩個(gè)參數(shù)并不能改變電池的初始SOC,若需要修改,需要在BMS中調(diào)整BattSocInit參數(shù)。另外串聯(lián)電池單元數(shù)Ns同樣不能簡(jiǎn)單的在此處更改,需要同時(shí)修改BMS以及模型其他位置的參數(shù)。Em、 RInt即為ocv-soc曲線和電池內(nèi)阻曲線,需要修改為自己電池對(duì)應(yīng)的數(shù)據(jù)以便求解過(guò)程中查表模擬,否則仿真出的結(jié)果將無(wú)效。BMS中對(duì)應(yīng)需要調(diào)整的參數(shù)包括Np_Module、Ns_Module、NumModules,另外本模型仿真過(guò)程中溫度恒定,如需修改,則需要調(diào)整BattTempInit及環(huán)境(Environment)中的參數(shù)。需要說(shuō)明的是,這些參數(shù)主要影響仿真結(jié)果中的電池SOC情況,對(duì)電機(jī)輸出功率(即電池充放電功率)幾乎不造成影響。
我們采用的工況數(shù)據(jù)為CLTC-P標(biāo)準(zhǔn)工況,修改時(shí)注意單位km/h或m/s。
為實(shí)現(xiàn)定步長(zhǎng)求解,需要對(duì)模型及各子模塊進(jìn)行調(diào)整,具體解決方案如下:
直接將模型求解器修改為定步長(zhǎng),編譯出錯(cuò),報(bào)錯(cuò)原因可能為子模型不是定步長(zhǎng)。嘗試將子模型修改為定步長(zhǎng)。
EvReferenceApplication/Passenger Car/Drivetrain (DrivetrainEv)單獨(dú)設(shè)置為定步長(zhǎng)。EV36 – 副本\VDD\Plant\DrivetrainEv.slx
EvReferenceApplication/Passenger Car/Electric Plant/Powertrain Blockset/Battery (BattEv) 單獨(dú)設(shè)置為定步長(zhǎng)。EV36 – 副本\EV\Plant\BattEv.slx
EvReferenceApplication/Passenger Car/Electric Plant/Powertrain Blockset/Motor/MotGenEvMapped (MotGenEvMapped) 單獨(dú)設(shè)置為定步長(zhǎng)。EV36 – 副本\EV\Plant\ MotGenEvMapped.slx
編譯出錯(cuò),報(bào)錯(cuò)原因?yàn)椴介L(zhǎng)設(shè)定值無(wú)效,不是子模型設(shè)定步長(zhǎng)的整倍數(shù)。減小步長(zhǎng)。
編譯出錯(cuò),報(bào)錯(cuò)原因可能為子模型未勾選“將每個(gè)離散速率視為單獨(dú)任務(wù)”。嘗試勾選。
EvReferenceApplication/Controllers/Powertrain Control Module (PCM)/Battery Management System (BMS) (BMS_Software)勾選 將每個(gè)離散速率視為單獨(dú)任務(wù)。
EvReferenceApplication/Controllers/Powertrain Control Module (PCM)/Battery Management System (BMS) (BMS_Software)/BMS_Out (BMS_Out) 勾選 將每個(gè)離散速率視為單獨(dú)任務(wù)。
編譯通過(guò)。
運(yùn)行出錯(cuò),報(bào)錯(cuò)原因?yàn)檩喬ゼ皠x車(chē)模型中內(nèi)部積分器Integrator在某時(shí)刻輸入值不是一個(gè)有限值(at time 0.1 is not finite)。出現(xiàn)此問(wèn)題說(shuō)明該步長(zhǎng)下,模型已出現(xiàn)不穩(wěn)定的情況(即模型震蕩發(fā)散,步長(zhǎng)過(guò)大導(dǎo)致模型趨于離散,在高增益的子系統(tǒng)部分模型不穩(wěn)定),嘗試減小步長(zhǎng)。
運(yùn)行通過(guò)。
繼續(xù)降低步長(zhǎng)至0.001,需要同步修改以下子模型的步長(zhǎng)。
EvReferenceApplication/Passenger Car/Electric Plant/Powertrain Blockset/Motor/MotGenEvMapped
EvReferenceApplication/Passenger Car/Electric Plant/Powertrain Blockset/Battery
EvReferenceApplication/Controllers/Powertrain Control Module (PCM)
修改以上子模型,運(yùn)行通過(guò)。
另外,若將步長(zhǎng)調(diào)整為大于等于0.001s,需要使用隱式求解器,且逐漸降低外插階數(shù)以避免模型發(fā)散問(wèn)題。若將步長(zhǎng)調(diào)整為大于0.1s,需要額外調(diào)整BMS中的參數(shù)采樣時(shí)間間隔,較為麻煩,且由于駕駛員模型中規(guī)定工況采樣時(shí)間最低為0.5s,為保證不報(bào)錯(cuò)需要使模型總步長(zhǎng)能將0.5整除,如0.1、0.125、0.25。
最后,為確保仿真結(jié)果精度,我們嘗試以變步長(zhǎng)得到的數(shù)據(jù)為基準(zhǔn),將電池充放電功率積分以得到電池能量變化曲線,對(duì)比后發(fā)現(xiàn)定步長(zhǎng)求解時(shí)步長(zhǎng)不大于0.05s求解精度較高,誤差低于1%;0.1s時(shí)誤差達(dá)到6.56%;0.125s時(shí)誤差高達(dá)184.72%,已不可用。解決方案為對(duì)0.001s的仿真結(jié)果數(shù)據(jù)重采樣,但該方法并不嚴(yán)謹(jǐn),僅供參考。
由于B站專(zhuān)欄格式限制,部分內(nèi)容或代碼可能存在格式異常。原文內(nèi)容請(qǐng)前往leosisland.top/article1