能電池主動(dòng)均衡方案:MP2642GR-Z與TM4C129XNCZAD硬件設(shè)計(jì)與軟件實(shí)現(xiàn))
1. 儲(chǔ)能電池均衡的工程背景與核心需求1.1 為什么串聯(lián)電池組必須做均衡做儲(chǔ)能和備用電源的兄弟都清楚單節(jié)鋰電池的標(biāo)稱(chēng)電壓一般在3.6V到3.8V之間磷酸鐵鋰大概在3.2V左右。但實(shí)際系統(tǒng)里母線(xiàn)電壓動(dòng)輒12V、24V、48V甚至更高單節(jié)電池根本撐不起來(lái)所以必須串聯(lián)。問(wèn)題就出在這個(gè)“串聯(lián)”上——串聯(lián)回路里電流處處相等但每節(jié)電池的容量、內(nèi)阻、自放電率、老化程度不可能完全一致。充電時(shí)容量小的那節(jié)先到截止電壓如果繼續(xù)充它就會(huì)過(guò)充放電時(shí)容量小的那節(jié)先到欠壓保護(hù)點(diǎn)如果繼續(xù)放它就會(huì)過(guò)放。過(guò)充過(guò)放對(duì)鋰電池來(lái)說(shuō)都是折壽甚至要命的事。我見(jiàn)過(guò)太多備用電源項(xiàng)目前期為了省成本不做均衡結(jié)果跑了半年整組電池的有效容量直接掉到初始值的60%都不到。拆開(kāi)一測(cè)兩節(jié)電池的壓差能到300mV以上一節(jié)已經(jīng)鼓包另一節(jié)還跟新的差不多。這就是典型的“木桶效應(yīng)”——整組電池的可用容量由最弱的那節(jié)決定而均衡電路的作用就是把這個(gè)短板盡量補(bǔ)上來(lái)讓每節(jié)電池都工作在相近的荷電狀態(tài)。1.2 被動(dòng)均衡與主動(dòng)均衡的取舍邏輯均衡方案分兩大流派被動(dòng)均衡和主動(dòng)均衡。被動(dòng)均衡說(shuō)白了就是給每節(jié)電池并一個(gè)耗散電阻誰(shuí)電壓高就讓誰(shuí)多放一點(diǎn)電把能量以熱的形式浪費(fèi)掉。優(yōu)點(diǎn)是電路簡(jiǎn)單、成本低、可靠性高缺點(diǎn)是效率低、發(fā)熱大、均衡電流一般只能做到幾十到幾百毫安。主動(dòng)均衡則是把高電壓電池的能量搬到低電壓電池去效率高、均衡電流可以做到安培級(jí)但拓?fù)鋸?fù)雜、成本高、故障點(diǎn)也多。在儲(chǔ)能和備用電源場(chǎng)景里我個(gè)人的經(jīng)驗(yàn)是如果電池組容量不大比如10Ah以?xún)?nèi)且對(duì)成本敏感被動(dòng)均衡完全夠用如果是大容量?jī)?chǔ)能柜或者對(duì)循環(huán)壽命要求極高的備用電源主動(dòng)均衡更合適。這次項(xiàng)目標(biāo)題里用的是MP2642GR-Z加TM4C129XNCZAD的組合從器件選型來(lái)看MP2642GR-Z是一顆雙向同步升降壓充電管理芯片支持I2C編程本身就具備雙向能量流動(dòng)的能力所以這套方案更偏向主動(dòng)均衡的思路——通過(guò)控制芯片在相鄰電池之間轉(zhuǎn)移能量而不是單純耗散。1.3 兩節(jié)串聯(lián)電池均衡的特殊性?xún)晒?jié)串聯(lián)是最基礎(chǔ)的串聯(lián)結(jié)構(gòu)但恰恰因?yàn)橹挥袃晒?jié)均衡策略反而有講究。如果是三節(jié)以上通常需要從最高電壓電池向最低電壓電池轉(zhuǎn)移能量路徑可能跨越多節(jié)。但兩節(jié)的話(huà)能量轉(zhuǎn)移路徑只有一條從高電壓那節(jié)到低電壓那節(jié)或者反過(guò)來(lái)。這意味著均衡電路可以做得非常簡(jiǎn)潔不需要復(fù)雜的多路開(kāi)關(guān)矩陣。但兩節(jié)也有兩節(jié)的坑。第一兩節(jié)電池的電壓差如果太大均衡電流會(huì)很大這時(shí)候要限制最大均衡電流否則發(fā)熱和EMI都是問(wèn)題。第二兩節(jié)電池的公共節(jié)點(diǎn)電壓是浮動(dòng)的采樣和驅(qū)動(dòng)電路需要處理好共模電壓范圍。第三如果兩節(jié)電池容量差異很大均衡只能緩解壓差不能從根本上解決容量不匹配的問(wèn)題該換電池還是得換。2. 核心器件選型與硬件設(shè)計(jì)要點(diǎn)2.1 MP2642GR-Z的關(guān)鍵特性與工作模式MP2642GR-Z是一顆面向雙節(jié)串聯(lián)電池管理的升降壓充電控制器支持雙向工作。所謂雙向就是它既能從輸入電源給電池充電也能從電池向負(fù)載放電而且在這兩個(gè)方向上都能做電壓和電流的調(diào)節(jié)。對(duì)于均衡應(yīng)用來(lái)說(shuō)這個(gè)雙向能力非常關(guān)鍵——當(dāng)檢測(cè)到兩節(jié)電池壓差超過(guò)閾值時(shí)可以讓電壓高的那節(jié)通過(guò)芯片向電壓低的那節(jié)轉(zhuǎn)移能量而不是簡(jiǎn)單地把高電壓那節(jié)的能量耗散掉。這顆芯片的開(kāi)關(guān)頻率可以通過(guò)外部電阻編程典型值在300kHz到1MHz之間。頻率越高電感可以越小但開(kāi)關(guān)損耗會(huì)增大頻率越低電感越大但效率會(huì)好一些。我在實(shí)際項(xiàng)目里一般選500kHz左右兼顧體積和效率。芯片還集成了I2C接口可以實(shí)時(shí)讀取每節(jié)電池的電壓、電流、溫度等參數(shù)這給MCU做均衡決策提供了數(shù)據(jù)基礎(chǔ)。2.2 TM4C129XNCZAD作為主控的優(yōu)勢(shì)TM4C129XNCZAD是TI的ARM Cortex-M4F內(nèi)核MCU主頻120MHz帶浮點(diǎn)單元Flash 1MBRAM 256KB。選它做電池均衡主控主要看中三點(diǎn)第一它有多路12位ADC可以同時(shí)采樣兩節(jié)電池的電壓和均衡電流采樣率足夠做實(shí)時(shí)控制第二它有多路PWM輸出可以獨(dú)立控制兩路升降壓的開(kāi)關(guān)管第三它帶CAN和以太網(wǎng)接口方便接入儲(chǔ)能系統(tǒng)的通信總線(xiàn)。不過(guò)要注意TM4C129XNCZAD的ADC參考電壓需要外部提供高精度基準(zhǔn)否則采樣精度不夠。我一般用一顆2.5V或3.0V的基準(zhǔn)芯片比如REF5025溫漂控制在10ppm/°C以?xún)?nèi)。另外ADC輸入端的RC濾波要設(shè)計(jì)好截止頻率建議在1kHz左右既能濾掉開(kāi)關(guān)噪聲又不會(huì)引入太大延遲。2.3 功率級(jí)拓?fù)渑c關(guān)鍵參數(shù)計(jì)算兩節(jié)串聯(lián)電池的主動(dòng)均衡功率級(jí)本質(zhì)上是一個(gè)雙向Buck-Boost電路。假設(shè)兩節(jié)電池分別為BAT1和BAT2BAT1的正極接系統(tǒng)正極BAT2的負(fù)極接系統(tǒng)負(fù)極BAT1的負(fù)極和BAT2的正極相連形成中間節(jié)點(diǎn)。均衡電路連接在BAT1正極和BAT2正極之間或者連接在中間節(jié)點(diǎn)和某一端之間。以連接在BAT1正極和BAT2正極之間的方案為例當(dāng)BAT1電壓高于BAT2時(shí)電路工作在Buck模式把BAT1的能量降到BAT2的電壓等級(jí)當(dāng)BAT2電壓高于BAT1時(shí)電路工作在Boost模式把BAT2的能量升到BAT1的電壓等級(jí)。電感的選擇很關(guān)鍵假設(shè)最大均衡電流為2A開(kāi)關(guān)頻率500kHz輸入輸出電壓差最大為1V那么電感紋波電流取額定電流的30%即0.6A根據(jù)公式L(Vin-Vout)×D/(f×ΔI)其中DVout/Vin代入計(jì)算可得電感值大約在1.5μH到2.2μH之間。我一般選2.2μH的一體成型電感飽和電流至少3A直流電阻小于20mΩ。MOSFET的選擇也要注意。上管和下管都要選低導(dǎo)通電阻的N溝道MOS耐壓至少30V導(dǎo)通電阻在10mΩ以下。柵極驅(qū)動(dòng)電壓要足夠TM4C129XNCZAD的PWM輸出是3.3V邏輯需要加一級(jí)柵極驅(qū)動(dòng)芯片比如UCC27524把驅(qū)動(dòng)電壓提到10V左右才能讓MOS完全導(dǎo)通降低導(dǎo)通損耗。3. 均衡控制策略與軟件實(shí)現(xiàn)3.1 電壓采樣與濾波算法均衡控制的第一步是準(zhǔn)確采樣兩節(jié)電池的電壓。TM4C129XNCZAD的ADC是12位的參考電壓3.0V時(shí)最小分辨率為3.0V/4096≈0.73mV。但實(shí)際電路中會(huì)有噪聲所以需要做濾波。我一般用滑動(dòng)平均濾波加一階低通濾波的組合先連續(xù)采樣16次去掉最大最小值后取平均再經(jīng)過(guò)一個(gè)截止頻率10Hz的一階低通濾波器。這樣既能抑制開(kāi)關(guān)噪聲又能保證動(dòng)態(tài)響應(yīng)速度。采樣時(shí)機(jī)也很重要。要在PWM開(kāi)關(guān)管的死區(qū)時(shí)間內(nèi)采樣避開(kāi)開(kāi)關(guān)瞬間的尖峰。具體來(lái)說(shuō)可以在PWM周期計(jì)數(shù)器達(dá)到峰值時(shí)觸發(fā)ADC采樣這時(shí)候電感電流紋波最小電壓最穩(wěn)定。TM4C129XNCZAD的ADC支持PWM觸發(fā)配置起來(lái)很方便。3.2 均衡閾值與滯回策略均衡不是一有壓差就啟動(dòng)那樣會(huì)導(dǎo)致頻繁切換增加損耗。我一般設(shè)置一個(gè)啟動(dòng)閾值和一個(gè)停止閾值形成滯回。比如壓差超過(guò)30mV時(shí)啟動(dòng)均衡壓差降到10mV以下時(shí)停止。這樣既能保證均衡效果又能避免震蕩。均衡電流的大小也要根據(jù)壓差動(dòng)態(tài)調(diào)整。壓差大時(shí)可以適當(dāng)增大均衡電流加快均衡速度壓差小時(shí)減小均衡電流避免過(guò)沖。具體實(shí)現(xiàn)上可以用一個(gè)比例系數(shù)把壓差乘以系數(shù)后作為電流參考值再通過(guò)PI調(diào)節(jié)器控制PWM占空比。PI參數(shù)需要根據(jù)實(shí)際電路調(diào)試我一般先設(shè)Kp0.1Ki0.01然后根據(jù)階躍響應(yīng)微調(diào)。3.3 狀態(tài)機(jī)設(shè)計(jì)與故障保護(hù)均衡控制的狀態(tài)機(jī)一般包括待機(jī)、采樣、判斷、均衡、故障、恢復(fù)這幾個(gè)狀態(tài)。待機(jī)狀態(tài)下MCU定期喚醒采樣電壓如果壓差超過(guò)閾值進(jìn)入判斷狀態(tài)確認(rèn)不是采樣噪聲后進(jìn)入均衡狀態(tài)均衡過(guò)程中持續(xù)監(jiān)測(cè)電壓和電流如果出現(xiàn)異常比如過(guò)流、過(guò)溫、電壓突變立即進(jìn)入故障狀態(tài)關(guān)閉PWM輸出并記錄故障碼。故障保護(hù)要做得全面。過(guò)流保護(hù)可以通過(guò)比較器硬件實(shí)現(xiàn)響應(yīng)時(shí)間在微秒級(jí)過(guò)溫保護(hù)可以用NTC熱敏電阻貼在MOSFET和電感附近MCU的ADC讀取溫度值超過(guò)85°C就降額超過(guò)100°C就關(guān)斷。另外還要監(jiān)測(cè)兩節(jié)電池的總電壓如果總電壓超過(guò)安全上限也要停止均衡。4. 實(shí)操調(diào)試與常見(jiàn)問(wèn)題排查4.1 上電調(diào)試步驟與關(guān)鍵波形觀測(cè)第一次上電千萬(wàn)別直接接電池先用直流電源模擬兩節(jié)電池電壓分別設(shè)為3.7V和3.6V限流設(shè)小一點(diǎn)比如100mA。然后按以下步驟調(diào)試檢查MCU供電和基準(zhǔn)電壓是否正常用萬(wàn)用表測(cè)ADC參考端應(yīng)該是精確的3.0V。用示波器看PWM輸出確認(rèn)頻率和死區(qū)時(shí)間符合設(shè)計(jì)。死區(qū)時(shí)間一般設(shè)100ns到200ns太小會(huì)直通太大會(huì)降低效率。慢慢增大直流電源的限流值觀察電感電流波形。正常的電感電流應(yīng)該是三角波如果出現(xiàn)尖刺或者振蕩說(shuō)明環(huán)路不穩(wěn)定需要調(diào)整PI參數(shù)或者增加RC吸收電路。用電子負(fù)載在電池端拉載測(cè)試雙向切換是否平滑。切換瞬間電壓跌落應(yīng)該在100mV以?xún)?nèi)。我踩過(guò)的一個(gè)坑是一開(kāi)始沒(méi)注意ADC采樣時(shí)機(jī)采到的電壓總是偏高導(dǎo)致均衡誤啟動(dòng)。后來(lái)用示波器同時(shí)看PWM和ADC觸發(fā)信號(hào)發(fā)現(xiàn)采樣點(diǎn)正好落在開(kāi)關(guān)管關(guān)斷的振鈴上。把采樣點(diǎn)往后移了1μs問(wèn)題就解決了。4.2 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因排查方法解決方案均衡電流上不去電感飽和電流不夠用電流探頭看電感電流波形換更大飽和電流的電感壓差反復(fù)震蕩滯回閾值太小觀察電壓波形增大滯回窗口加長(zhǎng)判斷時(shí)間芯片發(fā)熱嚴(yán)重開(kāi)關(guān)損耗大測(cè)開(kāi)關(guān)管漏源電壓和電流降低開(kāi)關(guān)頻率換低Qg的MOSADC采樣跳動(dòng)大參考電壓不穩(wěn)測(cè)基準(zhǔn)芯片輸出加濾波電容換低溫漂基準(zhǔn)通信中斷I2C上拉電阻不對(duì)測(cè)SCL/SDA波形調(diào)整上拉電阻縮短走線(xiàn)4.3 獨(dú)家避坑經(jīng)驗(yàn)分享第一個(gè)坑MP2642GR-Z的I2C地址是固定的如果系統(tǒng)里有多顆芯片需要加I2C多路復(fù)用器否則地址沖突。我一般用TCA9548A8通道夠用了。第二個(gè)坑均衡電感的布局很關(guān)鍵。電感要盡量靠近芯片的SW引腳走線(xiàn)要短而粗否則寄生電感會(huì)導(dǎo)致電壓尖峰容易打穿MOS。我一般把電感放在芯片背面用大面積鋪銅連接。第三個(gè)坑電池連接器的接觸電阻要小。如果接觸電阻大了采樣電壓會(huì)偏低導(dǎo)致均衡判斷錯(cuò)誤。我一般用鍍金端子插拔力要足夠而且定期檢查。第四個(gè)坑軟件上一定要做電壓校準(zhǔn)。每塊板子的ADC增益和偏移都有差異出廠前要用高精度電源校準(zhǔn)把校準(zhǔn)系數(shù)存在Flash里。我一般取3個(gè)點(diǎn)校準(zhǔn)3.0V、3.6V、4.2V用最小二乘法擬合直線(xiàn)。5. 系統(tǒng)集成與性能評(píng)估5.1 與儲(chǔ)能系統(tǒng)的通信接口設(shè)計(jì)均衡模塊不是孤立的它要跟儲(chǔ)能系統(tǒng)的BMS主控通信。TM4C129XNCZAD帶CAN控制器可以直接掛到CAN總線(xiàn)上波特率設(shè)250kbps或者500kbps。通信協(xié)議我一般自定義一套簡(jiǎn)單的幀格式幀ID表示均衡模塊地址數(shù)據(jù)區(qū)放兩節(jié)電池電壓、均衡電流、溫度、狀態(tài)字。主控每隔100ms輪詢(xún)一次如果發(fā)現(xiàn)某節(jié)電池電壓異??梢韵掳l(fā)指令強(qiáng)制均衡或者關(guān)閉均衡。如果系統(tǒng)要求更高的實(shí)時(shí)性可以用以太網(wǎng)接口TM4C129XNCZAD內(nèi)置MACPHY跑Modbus TCP或者自定義UDP協(xié)議。不過(guò)以太網(wǎng)功耗大備用電源場(chǎng)景里一般還是用CAN。5.2 效率測(cè)試與熱設(shè)計(jì)驗(yàn)證均衡效率是衡量方案好壞的重要指標(biāo)。我一般用功率分析儀測(cè)輸入功率和輸出功率算出效率。在2A均衡電流下如果效率低于90%就要檢查開(kāi)關(guān)損耗和導(dǎo)通損耗。開(kāi)關(guān)損耗跟頻率成正比導(dǎo)通損耗跟電流平方成正比。如果效率不達(dá)標(biāo)可以先降頻試試如果還不行就換更低導(dǎo)通電阻的MOS。熱設(shè)計(jì)方面MOSFET和電感的溫升要控制在40°C以?xún)?nèi)。我一般用紅外熱像儀看溫度分布熱點(diǎn)通常在MOSFET和電感上。如果溫升過(guò)高可以加散熱片或者導(dǎo)熱墊把熱量導(dǎo)到外殼上。備用電源的機(jī)箱一般是密封的所以外殼散熱面積要足夠。5.3 長(zhǎng)期可靠性測(cè)試方案均衡模塊的長(zhǎng)期可靠性我一般做三項(xiàng)測(cè)試高溫老化、溫度循環(huán)、振動(dòng)測(cè)試。高溫老化是在85°C環(huán)境下連續(xù)跑72小時(shí)監(jiān)測(cè)電壓和電流是否漂移溫度循環(huán)是-40°C到85°C每個(gè)溫度點(diǎn)保持30分鐘循環(huán)100次看焊點(diǎn)和器件有沒(méi)有開(kāi)裂振動(dòng)測(cè)試是按GB/T 2423標(biāo)準(zhǔn)掃頻10Hz到500Hz每個(gè)軸向振動(dòng)2小時(shí)看連接器有沒(méi)有松動(dòng)。這三項(xiàng)測(cè)試下來(lái)如果都沒(méi)問(wèn)題基本可以放心出貨了。我做過(guò)一個(gè)項(xiàng)目高溫老化到第48小時(shí)的時(shí)候發(fā)現(xiàn)均衡電流開(kāi)始下降拆開(kāi)一看電感磁芯有裂紋換了更高溫度等級(jí)的電感就沒(méi)事了。所以器件的溫度等級(jí)一定要留余量別卡著規(guī)格書(shū)的上限用。6. 方案擴(kuò)展與個(gè)人實(shí)操體會(huì)6.1 從兩節(jié)擴(kuò)展到多節(jié)的思路兩節(jié)均衡做通了擴(kuò)展到多節(jié)其實(shí)不難。硬件上每?jī)晒?jié)之間放一個(gè)均衡模塊形成菊花鏈結(jié)構(gòu)軟件上主控輪詢(xún)每個(gè)模塊優(yōu)先均衡壓差最大的那一對(duì)。不過(guò)多節(jié)系統(tǒng)里能量轉(zhuǎn)移路徑變長(zhǎng)效率會(huì)下降所以一般只在相鄰電池之間做均衡跨節(jié)的能量轉(zhuǎn)移通過(guò)多次相鄰均衡來(lái)實(shí)現(xiàn)。另外多節(jié)系統(tǒng)里共模電壓范圍更寬采樣電路要用差分放大器比如INA240共模抑制比至少80dB。通信上菊花鏈可以用隔離CAN或者隔離SPI防止地環(huán)路干擾。6.2 個(gè)人在實(shí)際操作中的幾點(diǎn)體會(huì)第一均衡電流不是越大越好。我試過(guò)把均衡電流做到5A結(jié)果電感體積大了三倍發(fā)熱也嚴(yán)重實(shí)際均衡時(shí)間只縮短了20%得不償失。后來(lái)我把均衡電流定在1A到2A之間綜合性?xún)r(jià)比最高。第二軟件濾波比硬件濾波更靈活。一開(kāi)始我在ADC前端加了復(fù)雜的RC濾波結(jié)果動(dòng)態(tài)響應(yīng)變慢壓差突變時(shí)均衡跟不上。后來(lái)改成軟件滑動(dòng)平均參數(shù)隨時(shí)可調(diào)效果更好。第三測(cè)試工裝很重要。批量生產(chǎn)時(shí)每塊板子都要校準(zhǔn)和測(cè)試我設(shè)計(jì)了一個(gè)工裝用繼電器切換模擬電池電壓MCU自動(dòng)跑校準(zhǔn)和功能測(cè)試一塊板子30秒測(cè)完效率很高。第四別忽視連接器的可靠性。我遇到過(guò)現(xiàn)場(chǎng)返回的模塊均衡功能失效拆開(kāi)發(fā)現(xiàn)電池連接器氧化了接觸電阻變大。后來(lái)?yè)Q了鍍金連接器并在軟件里加了接觸電阻檢測(cè)——如果采樣電壓在均衡電流開(kāi)啟和關(guān)閉時(shí)差異過(guò)大就報(bào)連接器故障。這個(gè)方案后續(xù)還可以這樣擴(kuò)展把均衡模塊和BMS主控集成到一塊板子上減少連接器和線(xiàn)束提高可靠性或者加入無(wú)線(xiàn)通信模塊把均衡數(shù)據(jù)傳到云端做遠(yuǎn)程監(jiān)控和預(yù)警。不過(guò)那是另一個(gè)話(huà)題了有機(jī)會(huì)再聊。