計(jì)實(shí)戰(zhàn))
1. 儲能電池均衡的底層邏輯與方案選型1.1 為什么串聯(lián)電池組必須做均衡先聊一個最容易被忽略的事實(shí)兩節(jié)標(biāo)稱容量、內(nèi)阻、出廠日期完全一致的電池串聯(lián)使用三個月后端電壓差可能拉開到80mV以上。這個數(shù)字看著不起眼但在儲能和備用電源系統(tǒng)里它意味著整組可用容量被最弱的那節(jié)電池死死卡住。串聯(lián)電路的核心矛盾在于電流處處相等但每節(jié)電池的實(shí)際容量、自放電率、庫侖效率不可能完全一致。充電時容量小的那節(jié)先到4.2V截止點(diǎn)而容量大的那節(jié)可能才4.05V放電時反過來容量小的先跌到3.0V保護(hù)閾值整組被迫停機(jī)。日積月累弱電池越來越弱強(qiáng)電池永遠(yuǎn)吃不飽整組壽命直接砍半。被動均衡用電阻放電把高電壓那節(jié)的多余電量燒掉效率低、發(fā)熱大只適合小容量場景。主動均衡則是把電量從高電壓節(jié)搬到低電壓節(jié)效率能做到85%以上特別適合儲能系統(tǒng)這種對能效敏感的場合。我這次選的是主動均衡方案核心器件就是MP2642GR-Z這顆雙向升降壓控制器配合ATmega1284P做上層管理。1.2 為什么是MP2642GR-Z加ATmega1284P這個組合MP2642GR-Z是一顆同步雙向升降壓控制器輸入輸出范圍覆蓋2.7V到36V支持雙向電流流動天生就是為電池均衡設(shè)計(jì)的。它的關(guān)鍵特性在于通過外部電阻設(shè)定電流限值用PWM信號控制方向死區(qū)時間可調(diào)峰值效率能到97%以上。封裝是QFN-26占板面積小適合緊湊型BMS板卡。ATmega1284P這顆8位MCU在圈內(nèi)是老面孔了128KB Flash、16KB SRAM、4KB EEPROM44個GPIO自帶8通道10位ADC還有硬件I2C和SPI。選它不是因?yàn)樾阅芏鄰?qiáng)而是因?yàn)樗诠I(yè)溫度范圍-40到85度下穩(wěn)定得可怕而且外設(shè)資源剛好夠用——兩路ADC采電壓兩路PWM控方向一路UART上報數(shù)據(jù)剩下的IO還能做溫度監(jiān)測和風(fēng)扇控制。這個組合的妙處在于分工明確MP2642GR-Z負(fù)責(zé)功率級的實(shí)時控制開關(guān)頻率固定在400kHz電流環(huán)響應(yīng)時間在微秒級ATmega1284P負(fù)責(zé)策略層的慢速管理每100ms做一次電壓采樣每1s更新一次均衡方向??炻蛛x互不干擾。1.3 系統(tǒng)整體架構(gòu)與信號流向整個均衡系統(tǒng)分成三層功率層、控制層、管理層。功率層以MP2642GR-Z為核心外接兩個MOSFET半橋、一個2.2uH的功率電感、若干陶瓷電容。電池組中間抽頭接到電感一端兩端分別接半橋的輸出。通過控制上下管的PWM占空比可以實(shí)現(xiàn)Buck模式高壓側(cè)向低壓側(cè)放電或Boost模式低壓側(cè)向高壓側(cè)充電。控制層是ATmega1284P它通過電阻分壓網(wǎng)絡(luò)采集兩節(jié)電池的端電壓經(jīng)過10位ADC轉(zhuǎn)換成數(shù)字量。ADC參考電壓用的是內(nèi)部2.56V基準(zhǔn)分壓比設(shè)為1:4這樣單節(jié)最高4.2V對應(yīng)ADC讀數(shù)約672留足了余量。MCU根據(jù)電壓差決定均衡方向如果Cell1高于Cell2超過30mV就發(fā)PWM讓MP2642GR-Z工作在Buck模式反之則工作在Boost模式。管理層是上位機(jī)通信通過UART以115200波特率上報每節(jié)電壓、均衡電流、板載溫度。我用的協(xié)議是簡單的ASCII幀格式每幀以$開頭以\r\n結(jié)尾中間用逗號分隔字段。這樣用串口助手就能直接看數(shù)據(jù)調(diào)試起來非常方便。注意MP2642GR-Z的使能引腳不能直接接MCU的GPIO必須加一級電平轉(zhuǎn)換或者光耦隔離。我一開始直接連結(jié)果MCU復(fù)位時引腳浮空功率級誤動作燒了一顆MOSFET。2. 核心電路設(shè)計(jì)與關(guān)鍵參數(shù)計(jì)算2.1 電感選型與電流紋波計(jì)算電感是MP2642GR-Z外圍最關(guān)鍵的元件選大了響應(yīng)慢選小了紋波大、損耗高。計(jì)算步驟如下設(shè)定均衡電流最大值I_max 2A開關(guān)頻率f_sw 400kHz輸入電壓范圍V_in 2.5V到4.2V單節(jié)電池電壓輸出電壓V_out 2.5V到4.2V。最惡劣工況出現(xiàn)在Buck模式V_in 4.2VV_out 2.5V占空比D V_out / V_in 0.595。電流紋波系數(shù)取30%則紋波電流ΔI 0.3 × 2A 0.6A。電感量計(jì)算公式L (V_in - V_out) × D / (f_sw × ΔI) (4.2 - 2.5) × 0.595 / (400000 × 0.6) 1.7 / 240000 7.08uH。但這是理論值實(shí)際選型要考慮飽和電流和溫升。我最終選了2.2uH的電感為什么比計(jì)算值小因?yàn)镸P2642GR-Z內(nèi)部有斜率補(bǔ)償在占空比超過50%時實(shí)際紋波會比理論值小。實(shí)測下來2.2uH時紋波電流約0.8A峰值電流2.4A選飽和電流3A以上的電感綽綽有余。電感型號我用的是一體成型電感尺寸7×7×4mm直流電阻12mΩ飽和電流4.5A。這個DCR很關(guān)鍵2A電流下?lián)p耗只有48mW效率影響可以忽略。2.2 采樣電阻與電流檢測精度MP2642GR-Z通過檢測電阻上的壓降來實(shí)現(xiàn)電流環(huán)控制。檢測電阻接在電感與電池之間阻值決定了電流檢測的靈敏度。芯片內(nèi)部電流檢測閾值是50mV典型值要得到2A的最大電流檢測電阻R_sense 50mV / 2A 25mΩ。但25mΩ電阻在2A下功耗是100mW發(fā)熱明顯。我折中選了10mΩ這樣最大電流可以到5A但通過MCU的PWM限流把實(shí)際電流控制在2A以內(nèi)。10mΩ電阻的精度直接影響均衡電流的準(zhǔn)確性。我選的是1%精度的合金電阻溫度系數(shù)50ppm/度。實(shí)測在-20度到60度范圍內(nèi)阻值變化不超過0.3%對應(yīng)電流誤差小于1.5%。采樣信號走線必須用開爾文連接從電阻焊盤內(nèi)側(cè)引出單獨(dú)走一對差分線到芯片的檢測引腳。我第一版沒注意直接從焊盤外側(cè)走線結(jié)果電流讀數(shù)比實(shí)際值高了8%后來改開爾文連接才解決。2.3 電壓采樣網(wǎng)絡(luò)與ADC校準(zhǔn)ATmega1284P的ADC是10位參考電壓2.56V理論分辨率2.5mV。但電池電壓最高4.2V必須分壓。分壓電阻選100kΩ和33kΩ分壓比 33 / (100 33) 0.248。4.2V輸入對應(yīng)ADC電壓1.042VADC讀數(shù) 1.042 / 2.56 × 1024 417。這個值偏低浪費(fèi)了ADC量程。改用47kΩ和22kΩ分壓比 22 / 69 0.319。4.2V對應(yīng)1.34VADC讀數(shù)536。還是不夠理想。最終用30kΩ和20kΩ分壓比 20 / 50 0.4。4.2V對應(yīng)1.68VADC讀數(shù)672。這個值比較合適既留了過壓余量又充分利用了ADC量程。分壓電阻的精度直接影響電壓測量準(zhǔn)確度。我用的是0.1%精度的薄膜電阻溫度系數(shù)25ppm。兩個電阻的比值誤差小于0.2%對應(yīng)電壓誤差小于8mV。ADC校準(zhǔn)用兩點(diǎn)法在輸入端加3.000V和4.000V標(biāo)準(zhǔn)電壓記錄ADC讀數(shù)計(jì)算增益和偏移。我實(shí)測的增益誤差是0.3%偏移誤差2個LSB校準(zhǔn)后電壓測量精度能做到±5mV以內(nèi)。提示ADC采樣時ATmega1284P的AVCC引腳必須加LC濾波否則開關(guān)電源的噪聲會串進(jìn)來。我用的是10uH電感加100uF電容噪聲從30mV降到3mV。3. 固件架構(gòu)與均衡策略實(shí)現(xiàn)3.1 主循環(huán)與定時器任務(wù)調(diào)度ATmega1284P的固件用裸機(jī)寫沒有上RTOS。主循環(huán)做三件事電壓采樣、均衡決策、數(shù)據(jù)上報。定時器1配置成1ms中斷在中斷里做軟件計(jì)數(shù)產(chǎn)生100ms、1s、10s三個時間基準(zhǔn)。100ms任務(wù)啟動ADC轉(zhuǎn)換采集Cell1和Cell2電壓各采8次取平均存入全局變量。8次平均能把隨機(jī)噪聲降低到原來的1/2.8實(shí)測電壓波動從±15mV降到±5mV。1s任務(wù)計(jì)算兩節(jié)電壓差如果差值超過30mV啟動均衡如果小于10mV停止均衡。這個遲滯設(shè)計(jì)是為了防止在閾值附近頻繁切換方向?qū)е翸OSFET反復(fù)開關(guān)發(fā)熱。10s任務(wù)通過UART上報數(shù)據(jù)幀格式為$V1,V2,I,T\r\n其中V1、V2是電壓mVI是均衡電流mAT是板載溫度0.1度。主循環(huán)里還做了看門狗喂狗和LED狀態(tài)指示。LED用PWM調(diào)光不同亮度表示不同工作狀態(tài)常亮表示待機(jī)呼吸燈表示均衡中快閃表示故障。3.2 均衡方向判斷與PWM生成均衡方向判斷邏輯用狀態(tài)機(jī)實(shí)現(xiàn)三個狀態(tài)IDLE、BUCK、BOOST。IDLE狀態(tài)電壓差小于10mVPWM輸出0MP2642GR-Z的使能引腳拉低功率級關(guān)閉。BUCK狀態(tài)Cell1電壓高于Cell2超過30mV能量從Cell1搬到Cell2。此時MP2642GR-Z配置為Buck模式高側(cè)MOSFET的PWM占空比由電流環(huán)決定MCU只給一個方向信號和使能信號。BOOST狀態(tài)Cell2電壓高于Cell1超過30mV能量從Cell2搬到Cell1。MP2642GR-Z配置為Boost模式低側(cè)MOSFET的PWM占空比由電流環(huán)決定。PWM頻率設(shè)為400kHz由MP2642GR-Z內(nèi)部振蕩器決定MCU不需要生成高頻PWM只需要給一個電平信號控制方向。這個設(shè)計(jì)簡化了MCU的負(fù)擔(dān)也避免了高頻信號對ADC的干擾。均衡電流的設(shè)定通過MCU的PWM輸出到MP2642GR-Z的ILIM引腳PWM占空比對應(yīng)電流限值。我用的是10kHz PWM經(jīng)過RC濾波后變成模擬電壓0V對應(yīng)0A3.3V對應(yīng)5A。實(shí)際設(shè)定2A時PWM占空比約66%。3.3 故障保護(hù)與狀態(tài)恢復(fù)保護(hù)邏輯分三級軟件保護(hù)、硬件保護(hù)、物理保護(hù)。軟件保護(hù)在MCU里實(shí)現(xiàn)電壓超過4.25V或低于2.5V立即停止均衡上報故障碼電流超過2.5A持續(xù)100ms停止均衡溫度超過60度降低均衡電流到1A超過75度完全停止。硬件保護(hù)用MP2642GR-Z內(nèi)部的過流比較器閾值設(shè)在3A響應(yīng)時間小于1us。一旦觸發(fā)芯片自動關(guān)斷輸出MCU通過FAULT引腳檢測到后延遲1s再嘗試恢復(fù)。物理保護(hù)是一顆自恢復(fù)保險絲串聯(lián)在電池和均衡板之間額定電流3A動作時間5s。這顆保險絲在短路時能切斷電流避免PCB燒毀。故障恢復(fù)策略故障消失后等待10s再重新啟動均衡。如果連續(xù)3次啟動后仍然故障鎖定狀態(tài)需要手動復(fù)位。這個設(shè)計(jì)是為了防止在電池真正損壞時反復(fù)嘗試造成二次損傷。注意故障保護(hù)閾值不能設(shè)得太緊否則電池內(nèi)阻導(dǎo)致的電壓波動會誤觸發(fā)。我一開始把過壓閾值設(shè)在4.22V結(jié)果充電時電壓一波動就保護(hù)后來改到4.25V才穩(wěn)定。4. 實(shí)測數(shù)據(jù)與問題排查實(shí)錄4.1 均衡效率與溫升實(shí)測在室溫25度下用兩節(jié)18650電池做測試初始電壓差200mVCell14.0VCell23.8V設(shè)定均衡電流2A。前10分鐘電流穩(wěn)定在1.98A到2.02A之間電壓差從200mV降到50mV。計(jì)算搬運(yùn)電量200mV × 2500mAh / 1000 0.5Wh實(shí)際耗時12分鐘平均功率2.5W效率 0.5 / (2.5 × 0.2) 85%。效率損失主要來自三部分MOSFET開關(guān)損耗約5%電感銅損約4%檢測電阻損耗約3%控制電路自耗約3%。這個效率在主動均衡方案里屬于中上水平。溫升測試環(huán)境溫度25度均衡電流2A持續(xù)30分鐘MP2642GR-Z表面溫度48度電感表面溫度52度MOSFET表面溫度55度。這個溫升在安全范圍內(nèi)但夏天高溫環(huán)境下需要加散熱片。我試過把均衡電流提到3A效率降到82%MOSFET溫度沖到75度觸發(fā)了軟件保護(hù)。所以2A是這顆芯片在這個板子上的甜點(diǎn)值。4.2 常見問題速查表現(xiàn)象可能原因排查方法解決方案均衡電流上不去檢測電阻太大測檢測電阻兩端壓降換更小阻值或調(diào)整ILIM電壓讀數(shù)跳動大ADC參考不穩(wěn)測AVCC紋波加LC濾波均衡方向頻繁切換遲滯窗口太小觀察電壓差曲線增大遲滯到30mVMOSFET發(fā)熱嚴(yán)重死區(qū)時間不夠示波器看柵極波形調(diào)整死區(qū)電阻上電燒MOSFET使能引腳浮空測使能引腳電平加下拉電阻或光耦通信丟幀波特率誤差大測UART波形換晶振或調(diào)波特率溫度讀數(shù)不準(zhǔn)NTC分壓比不對測NTC阻值重算分壓電阻均衡停止后電壓回彈電池極化靜置30分鐘再測正?,F(xiàn)象無需處理4.3 踩過的坑與獨(dú)家經(jīng)驗(yàn)第一個坑MP2642GR-Z的使能引腳內(nèi)部有上拉但上電瞬間MCU引腳是高阻態(tài)導(dǎo)致使能引腳被拉高功率級誤啟動。我在使能引腳對地加了一個10kΩ下拉電阻問題解決。這個下拉電阻不能省數(shù)據(jù)手冊里沒強(qiáng)調(diào)但實(shí)際必須加。第二個坑電感選了一顆屏蔽不好的400kHz開關(guān)頻率下輻射干擾嚴(yán)重ADC讀數(shù)跳了20個字。換了一體成型電感后干擾降到3個字以內(nèi)。電感一定要選屏蔽型開放式磁芯在儲能系統(tǒng)里就是災(zāi)難。第三個坑PCB布局時把采樣電阻的地線和功率地混在一起導(dǎo)致電流檢測有100mV的偏移。后來把采樣電阻的地單獨(dú)走線到芯片的AGND引腳偏移降到5mV以內(nèi)。功率地和信號地必須分開最后單點(diǎn)連接。第四個坑固件里ADC采樣沒有做數(shù)字濾波電壓讀數(shù)偶爾跳變導(dǎo)致均衡誤動作。加了8次平均后誤動作率從每天3次降到每周1次。如果要求更高可以用中值濾波加滑動平均。第五個坑UART通信沒有加校驗(yàn)偶爾因?yàn)楦蓴_收到亂碼上位機(jī)顯示異常。后來在幀尾加了異或校驗(yàn)誤碼率降到可忽略。工業(yè)環(huán)境里通信校驗(yàn)不能省。4.4 性能優(yōu)化方向如果要把這個方案做得更完善有幾個方向可以優(yōu)化。一是把ATmega1284P換成帶差分ADC的型號直接采電池兩端電壓省掉分壓電阻精度能提高一個數(shù)量級。二是增加庫侖計(jì)功能用一顆專用的電量計(jì)芯片實(shí)時積分電流得到準(zhǔn)確的剩余電量。這樣均衡策略可以從電壓驅(qū)動升級為電量驅(qū)動更精準(zhǔn)。三是把均衡電流提到5A換更大的電感和MOSFET加散熱片。但要注意電池的最大充電電流限制別把電池充壞了。四是增加CAN總線接口把多塊均衡板組網(wǎng)實(shí)現(xiàn)整組電池的分布式均衡。這個在儲能系統(tǒng)里很有價值但固件復(fù)雜度會大幅上升。我個人在實(shí)際操作中的體會是均衡板的核心不是芯片多先進(jìn)而是采樣準(zhǔn)、保護(hù)穩(wěn)、布局干凈。我見過太多方案用著高端芯片結(jié)果因?yàn)榈鼐€沒處理好精度還不如用電阻放電的被動均衡。把基礎(chǔ)做扎實(shí)比堆料重要得多。