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

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

2008-12-01
作者:陳金干,,魏學(xué)哲

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

?

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

?


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

?


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

?


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

?


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

?


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

?


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


參考文獻(xiàn)
[1] 戴海峰,,魏學(xué)哲,孫澤昌.V-模式及其在現(xiàn)代汽車(chē)電子系統(tǒng)開(kāi)發(fā)中的應(yīng)用[J].機(jī)電一體化,,2006,,(6):20-24.
[2] 齊星剛,趙剛,,李原.在MATLAB/Simulink平臺(tái)上DSP代碼的自動(dòng)生成[J].中國(guó)測(cè)試技術(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] 魏學(xué)哲,,鄒廣楠,孫澤昌.燃料電池汽車(chē)中電池建模及其參數(shù)估計(jì)[J].電源技術(shù),2004,,28(10):605-608.

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