《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 業(yè)界動態(tài) > 基于DSP的自動代碼生成及其在電池管理系統(tǒng)中的應(yīng)用

基于DSP的自動代碼生成及其在電池管理系統(tǒng)中的應(yīng)用

2008-12-01
作者:陳金干,,魏學哲

  摘 要: 按照V模式的開發(fā)方法對燃料電池車用動力蓄電池管理系統(tǒng)" title="電池管理系統(tǒng)">電池管理系統(tǒng)BMS進行了開發(fā)。根據(jù)BMS的功能和相應(yīng)的算法在Simulink平臺上對BMS進行了建模仿真,。模型驗證無誤后,,運用embedded target for TI C2000實現(xiàn)控制器的自動代碼生成" title="自動代碼生成">自動代碼生成,,并在硬件平臺上對自動生成的代碼進行了驗證。
  關(guān)鍵詞: V-模式,;DSP,;自動代碼生成;電池管理系統(tǒng)

?

  汽車市場的激烈競爭要求設(shè)計者必須縮短產(chǎn)品開發(fā)周期,。在傳統(tǒng)的汽車電子控制器的設(shè)計開發(fā)中,,控制器的總體設(shè)計、整體性能分析以及控制策略的優(yōu)化通常需要大量的時間,、人力和物力,,投資大、效率低,。此外,,這種開發(fā)方法還容易出錯,直到最終定標時才進入實時在線測試,。如果在最初設(shè)計時出錯而沒有及時發(fā)現(xiàn),,則會導致大部分工作必須重新進行,開發(fā)周期變長,??梢妭鹘y(tǒng)的研發(fā)方法無法滿足市場的需要,必需有一種新的設(shè)計理念來適應(yīng)市場的需求,。
1 V模式的設(shè)計方法" title="設(shè)計方法">設(shè)計方法及自動代碼生成
1.1 V模式的設(shè)計方法
  如圖1,,與傳統(tǒng)的設(shè)計方法相比,V模式的設(shè)計方法將系統(tǒng)工程學的原理應(yīng)用于現(xiàn)代汽車電子系統(tǒng)開發(fā)中,,它是一種循環(huán)的設(shè)計模式,。其特點是無論進行開發(fā)、編程或者測試,,總是在同一環(huán)境下工作,,開發(fā)過程的每一步都可以得到驗證[1]。它以功能強大的計算仿真工具為前提,,整個設(shè)計過程都是在同一個平臺下完成,,實現(xiàn)從設(shè)計理念的提出,到快速原型設(shè)計(Prototype),再到ECU產(chǎn)品的無縫連接,。采用該方法的最直接效果就是加速和簡化了開發(fā)流程,,及時消除錯誤,大大減輕了工程師的工作量,。

?


1.2 運用Simulink實現(xiàn)自動代碼生成
  自動代碼生成處于V模式的最底層,,是整個開發(fā)過程中最為關(guān)鍵的一步,其目的是實現(xiàn)開發(fā)過程中的快速迭代以提高開發(fā)效率,。代碼生成的質(zhì)量直接影響系統(tǒng)的可靠性和穩(wěn)定性,。
  圖2為基于MATLAB/Simulink" title="MATLAB/Simulink">MATLAB/Simulink的DSP自動代碼生成流程[2]。Simulink是一種對于動態(tài)系統(tǒng)進行多域仿真和基于模型設(shè)計的平臺,,它提供了一個交互式的圖形環(huán)境和豐富的模塊庫" title="模塊庫">模塊庫,。根據(jù)系統(tǒng)的功能要求,首先在MATLAB/Simulink環(huán)境下搭建系統(tǒng)模型,,并且進行仿真分析,。使用Simulink調(diào)試器檢查仿真結(jié)果以及定位和診斷模型中的意外行為。一旦結(jié)果得到了驗證,,便可以通過RTW(Real-time workshop)自動生成面向TI編譯器的C語言工程文件,,并進一步完成編譯、連接和下載,,最終在硬件平臺上運行,。

?


  RTW是和MATLAB、Simulink一起使用的一個工具,,運用它直接從Simulink模型生成代碼并且自動建立可以實時運行的程序,。在默認情況下,RTW生成的是高度優(yōu)化和完全注釋的C代碼,。除了MATLAB function模塊和調(diào)用M文件S函數(shù)的模塊以外,,任何Simulink模型都可以生成代碼,包括線性,、非線性,、連續(xù)、離散以及混合模型[3],。
  從整個過程來看,,工程師只需在Simulink中搭建模型和驗證模型的正確性,不需要書寫任何代碼,,即可得到可靠,、準確的代碼。
2 嵌入式Target for TI C2000工具箱
  Target for TI C2000將TI公司的eXpressDSP工具集成到Simulink中,,它是MATLAB與TI CCS的連接工具,,可以使MATLAB,、MATLAB工具箱、TI Code Composer Studio集成開發(fā)環(huán)境(CCS IDE)以及RTDX(Real-Time Data Exchange)協(xié)同工作,。
  Target for TI C2000工具箱由三部分組成[3]:常用工具,、芯片外圍設(shè)備模塊庫、優(yōu)化庫,。常用工具包括實時數(shù)據(jù)交換通道模塊,、目標控制器基本參數(shù)設(shè)置模塊和CAN通訊設(shè)置模塊。該工具箱支持C281x系列,、C280x系列以及C2400系列的DSP,。優(yōu)化庫包含定點運算庫和數(shù)字電機控制庫。
  Simulink可支持四類C280x DSP外圍設(shè)備模塊庫:存儲器的讀寫模塊,、中斷管理模塊、控制模塊以及通訊模塊,。除了不支持IIC通訊模塊以外,,該模塊庫對C280x DSP板上所有的模塊都提供了很好的支持。用戶在調(diào)用DSP的這些模塊時,,只需對相應(yīng)的模塊進行參數(shù)設(shè)置和選擇,,不需要關(guān)心底層是如何實現(xiàn),整個模型的搭建過程就像堆積木一樣簡單,。
3 自動生成代碼在電池管理系統(tǒng)中的應(yīng)用
3.1 電池管理系統(tǒng)的功能描述
  BMS燃料電池車用鋰離子電池管理系統(tǒng)BMS(Battery Management System)是一個嵌入式實時監(jiān)控系統(tǒng),,應(yīng)具備以下功能[4]:電池狀態(tài)監(jiān)控,包括電池工作電壓,、工作電流和工作溫度的測量和信號處理,;特定狀態(tài)下的最大充、放電功率計算,;特定工況下電池組荷電狀態(tài)SoC(State of Charge),、壽命狀態(tài)SoH(State of Health)的估算;高壓預(yù)充電,、過充和過放保護,、絕緣檢測和漏電保護;電池的均衡和熱管理,;故障診斷以及與整車控制器通訊,。圖3為BMS系統(tǒng)框圖。

?


  由于汽車在處于停車狀態(tài)時,,BMS仍需每隔一定的時間對電池進行監(jiān)控,,所以在長時間停車時,BMS不可將蓄電池存儲的電量耗完,,否則汽車將無法啟動,。因此在停車時,,BMS必須進入低功耗模式。當汽車開動時,,從KL15傳來的點火信號將控制器從低功耗模式喚醒,,進入正常工作模式。
3.2 控制器的選擇
  從BMS的功能可以看出,,控制器起控制作用的功能只占BMS的小部分,,在實時參數(shù)估計、SoC估算中,,算法復雜且運算量大,,控制器需要在較短的時間間隔內(nèi)完成復雜的遞推運算,這對控制器的計算能力和計算速度要求更高,。傳統(tǒng)的電池管理系統(tǒng)采用單片機作為控制器,,由于單片機側(cè)重于控制而實時數(shù)據(jù)運算能力有限,所以無法很好地滿足BMS的要求,。TI公司的TMS320C2000系列DSP集微控制器和高性能DSP的特點于一身,,具有強大的控制和信號處理能力,能夠?qū)崿F(xiàn)復雜的控制算法,。該系列DSP上整合了Flash存儲器,、快速高精度的A/D轉(zhuǎn)換器、兩路增強的CAN模塊,、事件管理器,、正交編碼電路接口、多通道緩沖串口等外設(shè),。32位定點運算的C2808 DSP能夠在一個周期內(nèi)完成32×32位的乘法累加運算,,或兩個16×16位乘法累加運算。此外,,可以在一個周期內(nèi)對任何內(nèi)存地址完成讀取,、修改、寫入操作,,使得效率和程序代碼達到最佳,,完全滿足實時控制的要求[5]
3.3 電池參數(shù)辨識和SoC估計算法
  電池監(jiān)控必需先進行建模,,實時檢測電池的電壓,、電流以及溫度,根據(jù)這些數(shù)據(jù)對模型的參數(shù)進行辨識,,從而間接地估計電池內(nèi)部的情況,。圖4為鋰離子動力電池模型[6],模型中利用C0描述電池的容量,,R0描述電池的等效歐姆內(nèi)阻,,用時間常數(shù)較小的R1,、C1環(huán)節(jié)描述鋰離子在電極間傳輸時受到的阻抗,時間常數(shù)較大的R2,、C2環(huán)節(jié)描述鋰離子在電極材料中擴散時受到的阻抗,。該模型中的參數(shù)都可以通過參數(shù)辨識的方法得到。

?


  為了實現(xiàn)自適應(yīng)控制和跟蹤隨時間變化的參數(shù),,在辨識過程中采用遞推的最小二乘法,。電池內(nèi)部參數(shù)根據(jù)電壓、電流信號每次的采樣值進行更新,,其基本思想是本次的估計值等于上一次的估計值加上一個修正項,,修正項的大小取決于模型的輸出與實際輸出的差項。該方法要求在下次采樣之前必須完成一步遞推運算,。
  在裝車運行時,,整車控制器需要BMS提供高精度的SoC,一般估計精度要小于5%,。電池的SoC是不能直接得到的,,只能通過對電池電壓、電流,、溫度、內(nèi)阻等參數(shù)進行測量間接估算得到,。而且這些參數(shù)又與電池老化程度,、電池單體不均勻性等有關(guān)。目前常見的方法有開路電壓法,、電流積分法等,。
3.4 基于CAN總線的標定模塊
  由于汽車上網(wǎng)絡(luò)系統(tǒng)的廣泛應(yīng)用,基于網(wǎng)絡(luò)連接的控制單元標定和傳統(tǒng)的匹配標定方法有很大的不同,?;贑AN的電子控制單元的標定是電池管理系統(tǒng)控制器開發(fā)的一個重要環(huán)節(jié)。CCP(CAN Cali-bration Protocol)是CAN總線的標定協(xié)議,,目前已經(jīng)得到汽車廠商的廣泛應(yīng)用,。利用該協(xié)議可以快速有效地對控制器進行標定。在電池管理系統(tǒng)中,,可以利用CCP實現(xiàn)實時在線測試,、傳感器的監(jiān)測和標定、報警或出錯閾值的調(diào)整以及通過CAN下載程序,。
  在傳統(tǒng)的手寫代碼的控制器設(shè)計過程中,,基于CCP協(xié)議的標定需要支持CCP協(xié)議的驅(qū)動程序。由于ECU底層程序和CCP協(xié)議的驅(qū)動程序各不相同,,將CCP驅(qū)動程序結(jié)合到ECU中需要耗費大量時間,。MATLAB 2007b中新增了基于CAN總線的標定模塊,。將該模塊放入Simulink模型中,并設(shè)置好相關(guān)參數(shù),,便可以自動生成能夠?qū)崿F(xiàn)CCP標定的代碼了,。
3.5 在Simulink中建立模型
  在建模的最開始必需把C2000 DSP chip support 中的F2808 eZdsp 模塊放到模型中。該模塊是對DSP的基本信息進行設(shè)置,,包括芯片的選擇,、鎖相環(huán)時鐘頻率的選擇、存儲器地址分配,,以及外圍設(shè)備的一些基本設(shè)置,。
  傳感器輸出模擬信號和數(shù)字信號,對于模擬信號可以用A/D轉(zhuǎn)換模塊進行轉(zhuǎn)換,,對于數(shù)字信號可以用GPIO或者CAP捕獲模塊處理,。經(jīng)硬件濾波后的模擬采樣信號還不夠理想,在該模型中可以對采樣信號進行快速傅立葉變換,,分析出噪聲信號的頻率特性,,并設(shè)計出相應(yīng)的數(shù)字濾波器,對采樣信號進行進一步濾波,。執(zhí)行器的控制可以用GPIO或者PWM模塊進行控制,。
  由于SoC和SoH以及控制算法較為復雜,可以用S-function模塊實現(xiàn),。S-function是一個動態(tài)系統(tǒng)的計算機語言描述,,是擴展Simulink模塊庫的有力工具,它采用一種特定的調(diào)用語法,,實現(xiàn)函數(shù)和Simulink解法器之間的交互,。Simulink中的電池管理系統(tǒng)模型如圖5所示。

?


3.6 自動代碼生成,、編譯以及運行
  在Simulink中仿真運行無誤后,,便可以從模型直接生成控制算法代碼了。Simulink在內(nèi)部調(diào)用real-time workshop build 并且自動打開TI的集成開發(fā)環(huán)境CCS,,生成的代碼經(jīng)過編譯自動生成可執(zhí)行的最終控制程序,。通過USB接口仿真器和14pin標準JTAG調(diào)試連接線將程序燒入目標系統(tǒng)中。
  C2808 DSP有兩種運行模式,,一種是通過仿真器將程序下載到RAM中運行,,這種運行模式中可以通過仿真器在CCS中設(shè)置斷點、單步運行,、查看存儲器等,,對程序的運行情況進行實時監(jiān)控和調(diào)試。另外一種模式是將程序下載到Flash中單獨運行,,這種運行模式不需要CCS 的介入,。一般在實驗調(diào)試階段采用RAM模式,,調(diào)試成功以后再采用Flash模式單獨運行。
  利用設(shè)計出的控制器進行電流和電壓采樣,,電壓采樣精度為1/1000, 電流采樣精度小于5/1000,。設(shè)計的SoC算法能夠在DSP上在30ms內(nèi)完成一步遞推運算,滿足電池管理系統(tǒng)實時操作的要求,。運行自動生成的代碼并結(jié)合Vector公司的CANape工具成功實現(xiàn)CCP協(xié)議對RAM和Flash存儲器中參數(shù)的在線標定,。圖6是測量電壓和模型輸出電壓的比較。從圖中可以看出,,測量電壓與模型輸出電壓相當吻合,,證實了代碼的正確性。

?


  實踐表明,,應(yīng)用DSP取代傳統(tǒng)單片機作為BMS的控制器,,其強大的控制能力和信號運算處理能力更能夠滿足電池管理系統(tǒng)的要求。在Matlab/Smulink平臺下用嵌入式的Target for TI C2000實現(xiàn)控制器自動代碼生成,,極大地加快了電動汽車BMS系統(tǒng)的開發(fā)進程,,縮短了開發(fā)周期。運行測試表明:自動生成的代碼效率高而且可靠,,控制器對電池系統(tǒng)的控制作用實時準確,,可靠性高,對電池模型的參數(shù)估計滿足精度要求,。


參考文獻
[1] 戴海峰,,魏學哲,孫澤昌.V-模式及其在現(xiàn)代汽車電子系統(tǒng)開發(fā)中的應(yīng)用[J].機電一體化,,2006,(6):20-24.
[2] 齊星剛,,趙剛,,李原.在MATLAB/Simulink平臺上DSP代碼的自動生成[J].中國測試技術(shù),2005,,31(1):87-88.
[3] MATLAB R2007b Users Guide.The MathWorks Corp.,,2007.
[4] PLETT G L,KLEIN M J.Advances in HEV Battery Management Systems.SAE,,2006-21-0060.
[5] Texas Instruments TMS320F2808 User Manual.Texas Instruments Corp.,,2005.
[6] 魏學哲,鄒廣楠,,孫澤昌.燃料電池汽車中電池建模及其參數(shù)估計[J].電源技術(shù),,2004,28(10):605-608.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。