鉅大LARGE | 點(diǎn)擊量:1495次 | 2019年12月31日
基于DSP的汽車電池管理系統(tǒng)設(shè)計
汽車市場的激烈競爭要求設(shè)計者必須縮短產(chǎn)品開發(fā)周期。在傳統(tǒng)的汽車電子控制器的設(shè)計開發(fā)中,控制器的總體設(shè)計、整體性能分析以及控制策略的優(yōu)化通常需要大量的時間、人力和物力,投資大、效率低。此外,這種開發(fā)方法還容易出錯,直到最終定標(biāo)時才進(jìn)入實(shí)時在線測試。如果在最初設(shè)計時出錯而沒有及時發(fā)現(xiàn),則會導(dǎo)致大部分工作必須重新進(jìn)行,開發(fā)周期變長??梢妭鹘y(tǒng)的研發(fā)方法無法滿足市場的需要,必需有一種新的設(shè)計理念來適應(yīng)市場的需求。
1V模式的設(shè)計方法及自動代碼生成
1.1V模式的設(shè)計方法
如圖1,與傳統(tǒng)的設(shè)計方法相比,V模式的設(shè)計方法將系統(tǒng)工程學(xué)的原理應(yīng)用于現(xiàn)代汽車電子系統(tǒng)開發(fā)中,它是一種循環(huán)的設(shè)計模式。其特點(diǎn)是無論進(jìn)行開發(fā)、編程或者測試,總是在同一環(huán)境下工作,開發(fā)過程的每一步都可以得到驗(yàn)證[1]。它以功能強(qiáng)大的計算仿真工具為前提,整個設(shè)計過程都是在同一個平臺下完成,實(shí)現(xiàn)從設(shè)計理念的提出,到快速原型設(shè)計(Prototype),再到ECU產(chǎn)品的無縫連接。采用該方法的最直接效果就是加速和簡化了開發(fā)流程,及時消除錯誤,大大減輕了工程師的工作量。
1.2運(yùn)用Simulink實(shí)現(xiàn)自動代碼生成
自動代碼生成處于V模式的最底層,是整個開發(fā)過程中最為關(guān)鍵的一步,其目的是實(shí)現(xiàn)開發(fā)過程中的快速迭代以提高開發(fā)效率。代碼生成的質(zhì)量直接影響系統(tǒng)的可靠性和穩(wěn)定性。
圖2為基于MATLAB/Simulink的DSP自動代碼生成流程[2]。Simulink是一種對于動態(tài)系統(tǒng)進(jìn)行多域仿真和基于模型設(shè)計的平臺,它提供了一個交互式的圖形環(huán)境和豐富的模塊庫。根據(jù)系統(tǒng)的功能要求,首先在MATLAB/Simulink環(huán)境下搭建系統(tǒng)模型,并且進(jìn)行仿真分析。使用Simulink調(diào)試器檢查仿真結(jié)果以及定位和診斷模型中的意外行為。一旦結(jié)果得到了驗(yàn)證,便可以通過RTW(Real-timeworkshop)自動生成面向TI編譯器的C語言工程文件,并進(jìn)一步完成編譯、連接和下載,最終在硬件平臺上運(yùn)行。
RTW是和MATLAB、Simulink一起使用的一個工具,運(yùn)用它直接從Simulink模型生成代碼并且自動建立可以實(shí)時運(yùn)行的程序。在默認(rèn)情況下,RTW生成的是高度優(yōu)化和完全注釋的C代碼。除了MATLABfunction模塊和調(diào)用M文件S函數(shù)的模塊以外,任何Simulink模型都可以生成代碼,包括線性、非線性、連續(xù)、離散以及混合模型[3]。
從整個過程來看,工程師只需在Simulink中搭建模型和驗(yàn)證模型的正確性,不需要書寫任何代碼,即可得到可靠、準(zhǔn)確的代碼。
2嵌入式TargetforTIC2000工具箱
TargetforTIC2000將TI公司的eXpressDSP工具集成到Simulink中,它是MATLAB與TICCS的連接工具,可以使MATLAB、MATLAB工具箱、TICodeComposerStudio集成開發(fā)環(huán)境(CCSIDE)以及RTDX(Real-TimeDataExchange)協(xié)同工作。
TargetforTIC2000工具箱由三部分組成[3]:常用工具、芯片外圍設(shè)備模塊庫、優(yōu)化庫。常用工具包括實(shí)時數(shù)據(jù)交換通道模塊、目標(biāo)控制器基本參數(shù)設(shè)置模塊和CAN通訊設(shè)置模塊。該工具箱支持C281x系列、C280x系列以及C2400系列的DSP。優(yōu)化庫包含定點(diǎn)運(yùn)算庫和數(shù)字電機(jī)控制庫。
Simulink可支持四類C280xDSP外圍設(shè)備模塊庫:存儲器的讀寫模塊、中斷管理模塊、控制模塊以及通訊模塊。除了不支持IIC通訊模塊以外,該模塊庫對C280xDSP板上所有的模塊都提供了很好的支持。用戶在調(diào)用DSP的這些模塊時,只需對相應(yīng)的模塊進(jìn)行參數(shù)設(shè)置和選擇,不需要關(guān)心底層是如何實(shí)現(xiàn),整個模型的搭建過程就像堆積木一樣簡單。
3自動生成代碼在電池管理系統(tǒng)中的應(yīng)用
3.1電池管理系統(tǒng)的功能描述
BMS燃料電池車用鋰離子電池管理系統(tǒng)BMS(BatteryManagementSystem)是一個嵌入式實(shí)時監(jiān)控系統(tǒng),應(yīng)具備以下功能[4]:電池狀態(tài)監(jiān)控,包括電池工作電壓、工作電流和工作溫度的測量和信號處理;特定狀態(tài)下的最大充、放電功率計算;特定工況下電池組荷電狀態(tài)SoC(StateofCharge)、壽命狀態(tài)SoH(StateofHealth)的估算;高壓預(yù)充電、過充和過放保護(hù)、絕緣檢測和漏電保護(hù);電池的均衡和熱管理;故障診斷以及與整車控制器通訊。圖3為BMS系統(tǒng)框圖。
由于汽車在處于停車狀態(tài)時,BMS仍需每隔一定的時間對電池進(jìn)行監(jiān)控,所以在長時間停車時,BMS不可將蓄電池存儲的電量耗完,否則汽車將無法啟動。因此在停車時,BMS必須進(jìn)入低功耗模式。當(dāng)汽車開動時,從KL15傳來的點(diǎn)火信號將控制器從低功耗模式喚醒,進(jìn)入正常工作模式。
3.2控制器的選擇
從BMS的功能可以看出,控制器起控制作用的功能只占BMS的小部分,在實(shí)時參數(shù)估計、SoC估算中,算法復(fù)雜且運(yùn)算量大,控制器需要在較短的時間間隔內(nèi)完成復(fù)雜的遞推運(yùn)算,這對控制器的計算能力和計算速度要求更高。傳統(tǒng)的電池管理系統(tǒng)采用單片機(jī)作為控制器,由于單片機(jī)側(cè)重于控制而實(shí)時數(shù)據(jù)運(yùn)算能力有限,所以無法很好地滿足BMS的要求。TI公司的TMS320C2000系列DSP集微控制器和高性能DSP的特點(diǎn)于一身,具有強(qiáng)大的控制和信號處理能力,能夠?qū)崿F(xiàn)復(fù)雜的控制算法。該系列DSP上整合了Flash存儲器、快速高精度的A/D轉(zhuǎn)換器、兩路增強(qiáng)的CAN模塊、事件管理器、正交編碼電路接口、多通道緩沖串口等外設(shè)。32位定點(diǎn)運(yùn)算的C2808DSP能夠在一個周期內(nèi)完成3232位的乘法累加運(yùn)算,或兩個1616位乘法累加運(yùn)算。此外,可以在一個周期內(nèi)對任何內(nèi)存地址完成讀取、修改、寫入操作,使得效率和程序代碼達(dá)到最佳,完全滿足實(shí)時控制的要求[5]。
3.3電池參數(shù)辨識和SoC估計算法
電池監(jiān)控必需先進(jìn)行建模,實(shí)時檢測電池的電壓、電流以及溫度,根據(jù)這些數(shù)據(jù)對模型的參數(shù)進(jìn)行辨識,從而間接地估計電池內(nèi)部的情況。圖4為鋰離子動力電池模型[6],模型中利用C0描述電池的容量,R0描述電池的等效歐姆內(nèi)阻,用時間常數(shù)較小的R1、C1環(huán)節(jié)描述鋰離子在電極間傳輸時受到的阻抗,時間常數(shù)較大的R2、C2環(huán)節(jié)描述鋰離子在電極材料中擴(kuò)散時受到的阻抗。該模型中的參數(shù)都可以通過參數(shù)辨識的方法得到。
為了實(shí)現(xiàn)自適應(yīng)控制和跟蹤隨時間變化的參數(shù),在辨識過程中采用遞推的最小二乘法。電池內(nèi)部參數(shù)根據(jù)電壓、電流信號每次的采樣值進(jìn)行更新,其基本思想是本次的估計值等于上一次的估計值加上一個修正項(xiàng),修正項(xiàng)的大小取決于模型的輸出與實(shí)際輸出的差項(xiàng)。該方法要求在下次采樣之前必須完成一步遞推運(yùn)算。
在裝車運(yùn)行時,整車控制器需要BMS提供高精度的SoC,一般估計精度要小于5%。電池的SoC是不能直接得到的,只能通過對電池電壓、電流、溫度、內(nèi)阻等參數(shù)進(jìn)行測量間接估算得到。而且這些參數(shù)又與電池老化程度、電池單體不均勻性等有關(guān)。目前常見的方法有開路電壓法、電流積分法等。