計與實現(xiàn))
1. 儲能電池均衡的底層邏輯與方案選型1.1 為什么串聯(lián)電池組必須做均衡先聊一個很多人踩過的坑兩節(jié)標稱容量、內(nèi)阻、出廠日期都一樣的電芯串聯(lián)使用半年后容量差能拉到8%以上。這不是電芯質(zhì)量問題而是串聯(lián)結(jié)構(gòu)的物理宿命——同一股電流流過兩節(jié)電池充電時容量小的那節(jié)先到4.2V放電時它又先跌到3.0V。BMS如果只盯著整組電壓做保護容量小的那節(jié)長期處于過充過放狀態(tài)衰減速度是指數(shù)級的。儲能和備用電源系統(tǒng)對這件事尤其敏感。這類場景的特點是長期浮充、偶爾深度放電、循環(huán)次數(shù)要求高動輒3000次以上、維護窗口極短。一旦某節(jié)電池提前失效整組就得停機更換運維成本直接翻倍。所以均衡電路不是錦上添花而是決定系統(tǒng)壽命的核心模塊。均衡方案分兩大類被動均衡靠電阻放電把高電壓那節(jié)的多余電量燒掉成本低但發(fā)熱大、效率差主動均衡把電量從高電壓節(jié)搬到低電壓節(jié)效率高但電路復(fù)雜。這次項目選的是主動均衡路線核心器件是MP2642GR-Z這顆雙向升降壓充電控制器配合PIC18F86J16做系統(tǒng)管理和算法調(diào)度。1.2 為什么選MP2642GR-Z而不是分立方案MP2642GR-Z是一顆面向雙向儲能應(yīng)用的同步升降壓控制器支持雙向電流流動內(nèi)置四路柵極驅(qū)動外圍只需要搭配MOSFET和電感就能搭出一個完整的雙向DC-DC變換器。選它的理由有三條第一雙向能力天然適配均衡場景。均衡的本質(zhì)就是從高電壓節(jié)取電、往低電壓節(jié)送電傳統(tǒng)單向Buck-Boost需要兩套電路背靠背MP2642GR-Z一顆芯片就能完成雙向能量調(diào)度PCB面積省了將近40%。第二寬輸入電壓范圍覆蓋電池工作區(qū)間。兩節(jié)串聯(lián)的鋰電或磷酸鐵鋰工作電壓區(qū)間大概在4.0V到8.4V之間鋰電或4.0V到7.3V之間磷酸鐵鋰。MP2642GR-Z的輸入范圍足夠?qū)挷恍枰~外的預(yù)穩(wěn)壓級。第三電流采樣和環(huán)路補償集成度高。它內(nèi)置了電流檢測放大器和誤差放大器外部MCU只需要給一個模擬電壓或者PWM濾波后的參考信號就能設(shè)定均衡電流的大小和方向。這對PIC18F86J16這種資源有限的8位MCU來說負擔小了很多。1.3 PIC18F86J16在系統(tǒng)里的角色定位PIC18F86J16是一顆8位MCU64引腳自帶12位ADC、多路PWM、UART、SPI、I2CFlash 96KB。放在這個項目里它干三件事采樣通過ADC讀取兩節(jié)電池的電壓、均衡電流、芯片溫度決策判斷哪節(jié)電壓高、差值是否超過閾值、是否需要啟動均衡調(diào)度輸出PWM或DAC信號給MP2642GR-Z控制均衡電流方向和大小有人會問為什么不用32位MCU答案是均衡算法的計算量很小核心邏輯就是比較PI調(diào)節(jié)8位MCU完全夠用。而且PIC18F86J16的寬溫版本-40到125℃在儲能柜這種惡劣環(huán)境下可靠性有保障成本也比32位方案低一大截。注意選MCU時不要只看主頻要看外設(shè)匹配度。這個項目里ADC的采樣精度和PWM的分辨率比CPU速度重要得多。2. 硬件電路核心細節(jié)與參數(shù)計算2.1 雙向Buck-Boost功率級設(shè)計MP2642GR-Z的外圍功率級是標準的四開關(guān)Buck-Boost拓撲兩個上管、兩個下管、一個電感。當能量從電池A流向電池B時電路工作在Buck模式如果A電壓高于B或Boost模式如果A電壓低于B反向同理。芯片內(nèi)部會自動判斷工作模式MCU只需要給出電流方向和幅值指令。電感選型是這一步的關(guān)鍵。假設(shè)均衡電流設(shè)定為2A開關(guān)頻率設(shè)為400kHz電感紋波電流取額定電流的30%即0.6A那么電感值計算如下L (Vout × (1 - D)) / (fsw × ΔIL)以最惡劣工況Vout4.2V、D0.5、fsw400kHz、ΔIL0.6A代入L (4.2 × 0.5) / (400000 × 0.6) 8.75μH實際選型取10μH飽和電流至少3A以上。電感選一體成型屏蔽電感DCR要低否則2A電流下的銅損會讓效率掉好幾個點。MOSFET選型看兩點導(dǎo)通電阻Rds(on)和柵極電荷Qg。Rds(on)越小導(dǎo)通損耗越低但Qg越大開關(guān)損耗越高。在400kHz頻率下開關(guān)損耗往往占主導(dǎo)。實測下來Rds(on)在10mΩ左右、Qg在10nC以內(nèi)的N溝道MOSFET是比較平衡的選擇。2.2 電流采樣與信號調(diào)理MP2642GR-Z內(nèi)置電流檢測放大器但采樣電阻的選型和布局直接決定均衡精度。采樣電阻放在電感回路里阻值計算Rsense Vsense_fullscale / I_max假設(shè)芯片電流檢測滿量程為50mV最大均衡電流2A則Rsense 25mΩ。這個阻值下的功耗是 I2R 4 × 0.025 0.1W選0805封裝、1%精度的合金電阻即可。布局上有個大坑采樣電阻的Kelvin連接必須做到芯片引腳根部任何共享走線都會引入誤差。我見過一個案例采樣走線多繞了5mm均衡電流偏差直接到了15%兩節(jié)電池來回振蕩怎么也穩(wěn)不下來。2.3 電池電壓采樣與濾波PIC18F86J16的ADC參考電壓用的是內(nèi)部4.096V基準VREF兩節(jié)電池最高8.4V必須分壓。分壓電阻選1%精度的金屬膜電阻分壓比設(shè)為1:3即上電阻20kΩ、下電阻10kΩ這樣8.4V輸入對應(yīng)ADC端2.8V留有余量。分壓節(jié)點必須加RC濾波串聯(lián)1kΩ電阻、對地并0.1μF電容截止頻率約1.6kHz能有效濾掉開關(guān)噪聲。但濾波電容不能太大否則電壓變化響應(yīng)變慢均衡切換時會滯后。實操心得ADC采樣一定要做多次平均我一般取16次采樣去掉最大最小值再平均這樣能把開關(guān)噪聲引起的波動壓到5mV以內(nèi)。單次采樣在400kHz開關(guān)頻率下根本沒法用。2.4 關(guān)鍵參數(shù)匯總表參數(shù)項設(shè)計值選型依據(jù)均衡電流2A兼顧均衡速度與發(fā)熱開關(guān)頻率400kHz電感體積與損耗折中電感值10μH紋波電流30%額定值采樣電阻25mΩ滿量程50mV對應(yīng)2A分壓比1:38.4V映射到2.8VADC平均次數(shù)16次抑制開關(guān)噪聲均衡啟動閾值30mV低于此值不動作防振蕩均衡停止閾值10mV滯回設(shè)計避免頻繁切換3. 均衡控制算法與固件實現(xiàn)3.1 狀態(tài)機設(shè)計思路均衡控制最怕的就是來回振蕩——A比B高均衡啟動能量從A搬到B搬過頭了B比A高又反向搬。這種振蕩不僅浪費能量還會加速電池老化。解決辦法是設(shè)計一個帶滯回的狀態(tài)機IDLE電壓差 10mV不動作BALANCING_A2BA電壓 - B電壓 30mV能量從A搬到BBALANCING_B2AB電壓 - A電壓 30mV能量從B搬到ACOOLDOWN均衡結(jié)束后強制等待30秒再重新評估滯回窗口30mV/10mV是實測調(diào)出來的。窗口太小會振蕩太大則均衡效果差。30mV對應(yīng)鋰電大概3%的SOC差異對儲能系統(tǒng)來說是可以接受的精度。3.2 PI調(diào)節(jié)器參數(shù)整定均衡電流不是固定值而是根據(jù)電壓差動態(tài)調(diào)整。電壓差大時用大電流快速拉近電壓差小時用小電流精細調(diào)節(jié)。用PI調(diào)節(jié)器實現(xiàn)// PI調(diào)節(jié)器偽代碼 float Kp 0.5; // 比例系數(shù) float Ki 0.02; // 積分系數(shù) float error voltage_diff - target_diff; integral error * dt; float output Kp * error Ki * integral; // 限幅 if (output MAX_CURRENT) output MAX_CURRENT; if (output MIN_CURRENT) output MIN_CURRENT;Kp和Ki的整定靠試湊法先把Ki設(shè)為0逐漸增大Kp直到系統(tǒng)出現(xiàn)輕微振蕩然后回退到振蕩值的60%再逐漸增大Ki消除穩(wěn)態(tài)誤差直到響應(yīng)時間滿足要求。這個項目里Kp0.5、Ki0.02是反復(fù)試出來的響應(yīng)時間約2秒超調(diào)小于5%。3.3 PWM輸出與MP2642GR-Z接口PIC18F86J16的PWM模塊輸出給MP2642GR-Z的電流參考引腳。芯片的參考輸入范圍是0.5V到2.5V對應(yīng)0到2A均衡電流。PWM頻率設(shè)為20kHz經(jīng)過兩級RC濾波10kΩ0.1μF再10kΩ0.1μF變成模擬電壓。這里有個細節(jié)PWM占空比和輸出電壓的關(guān)系是線性的但RC濾波會引入紋波。實測兩級RC濾波后紋波約8mV對應(yīng)電流誤差約8mA完全可以接受。如果只用一級RC紋波會到40mV均衡電流就會有明顯抖動。// PWM設(shè)置示例PIC18F86J16 void set_balance_current(float current) { // current范圍0-2A映射到PWM占空比 float duty (current / 2.0) * 0.8 0.1; // 10%-90%占空比 uint16_t pwm_val (uint16_t)(duty * 1023); CCPR1L pwm_val 2; CCP1CONbits.DC1B pwm_val 0x03; }3.4 溫度保護與故障處理儲能系統(tǒng)的安全底線是溫度保護。MP2642GR-Z芯片本身有熱關(guān)斷但那是最后一道防線。固件層面要在芯片溫度超過85℃時主動降低均衡電流超過105℃時完全停止均衡。溫度采樣用NTC熱敏電阻貼在MOSFET和電感附近PIC18F86J16的ADC讀取分壓值后查表換算溫度。查表法比公式法快適合8位MCU。表格每5℃一個點線性插值精度能到±1℃。故障處理邏輯過流采樣電流超過2.5A持續(xù)10ms關(guān)閉PWM進入FAULT狀態(tài)過溫芯片溫度105℃關(guān)閉PWM等待降溫到80℃以下恢復(fù)電壓異常任何一節(jié)電池電壓2.5V或4.3V關(guān)閉均衡并上報通信超時如果上位機心跳丟失超過60秒進入安全模式停止均衡4. 實測調(diào)試與常見問題排查4.1 上電調(diào)試步驟第一次上電千萬別直接接電池。我的標準流程是裸板檢查不焊電池用可調(diào)電源給VIN供電從4V慢慢升到8.4V測各路電壓是否正常PWM驗證不接功率級只測PIC18F86J16的PWM輸出用示波器看頻率和占空比是否正確功率級空載測試接上電感和MOSFET但不接電池用電子負載模擬電池測雙向電流是否可控單節(jié)電池測試只接一節(jié)電池驗證采樣精度和均衡邏輯雙節(jié)電池測試接兩節(jié)電池人為制造電壓差觀察均衡過程每一步都要記錄數(shù)據(jù)特別是第三步能提前發(fā)現(xiàn)90%的硬件問題。4.2 常見問題速查表現(xiàn)象可能原因排查方法解決方案均衡電流上不去電感飽和測電感電流波形換更大飽和電流的電感電流方向反了采樣電阻接反檢查Kelvin連接調(diào)換采樣電阻兩端電壓采樣跳動大濾波不足示波器看ADC輸入加大RC濾波或增加平均次數(shù)均衡振蕩滯回窗口太小觀察電壓差波形增大滯回窗口到30mV芯片發(fā)熱嚴重開關(guān)損耗大測MOSFET柵極波形換低Qg的MOSFET或降頻效率低于85%電感DCR大測電感兩端壓降換低DCR電感ADC讀數(shù)偏差基準電壓不穩(wěn)測VREF引腳加0.1μF去耦電容通信丟包地環(huán)路干擾檢查地線布局單點接地加磁珠4.3 獨家避坑經(jīng)驗坑一電感嘯叫。400kHz開關(guān)頻率下如果電感繞制松散會聽到尖銳嘯叫。解決辦法是選一體成型電感或者用環(huán)氧樹脂灌封。我試過用普通繞線電感均衡啟動時嘯叫明顯換成一體成型后完全安靜??佣﨧OSFET誤導(dǎo)通。半橋結(jié)構(gòu)里上下管的死區(qū)時間設(shè)置不當會導(dǎo)致直通。MP2642GR-Z內(nèi)部有死區(qū)控制但外部MOSFET的柵極電阻不能太大否則開關(guān)速度慢死區(qū)期間體二極管導(dǎo)通損耗大。實測柵極電阻取4.7Ω比較合適太小會振鈴太大損耗高??尤鼳DC參考電壓被拉低。PIC18F86J16的VREF引腳如果去耦不足ADC采樣瞬間會拉低參考電壓導(dǎo)致讀數(shù)偏大。加一個0.1μF陶瓷電容緊貼引腳問題解決??铀木怆娏鞑蓸友舆t。MP2642GR-Z的電流檢測放大器帶寬有限階躍響應(yīng)約10μs。如果PI調(diào)節(jié)器周期設(shè)得太短比如1μs會引入相位滯后導(dǎo)致振蕩。實測調(diào)節(jié)周期取100μs比較穩(wěn)??游咫姵剡B接線電阻。兩節(jié)電池之間的連接線如果太長太細線阻會疊加到采樣回路里導(dǎo)致電壓采樣偏差。連接線盡量短粗采樣點直接打在電池極耳上不要打在PCB焊盤上。4.4 實測數(shù)據(jù)記錄用兩節(jié)2000mAh磷酸鐵鋰電池做測試初始電壓差80mV時間A電壓B電壓電壓差均衡電流0s3.32V3.24V80mV1.8A30s3.30V3.26V40mV1.2A60s3.29V3.27V20mV0.6A90s3.285V3.275V10mV0.2A120s3.28V3.28V0mV0A從80mV拉到0mV用了約2分鐘均衡效率實測約91%。這個效率在主動均衡方案里屬于中上水平主要損耗在MOSFET開關(guān)和電感銅損上。5. 系統(tǒng)集成與擴展思考5.1 多節(jié)串聯(lián)的擴展方案兩節(jié)均衡是最小單元實際儲能系統(tǒng)往往是16節(jié)甚至更多。擴展方式有兩種分布式方案每兩節(jié)配一套MP2642GR-ZPIC18F86J16節(jié)與節(jié)之間通過隔離CAN通信。優(yōu)點是模塊化、故障隔離好缺點是成本高、體積大。集中式方案用一顆主控MCU管理多顆MP2642GR-Z通過模擬開關(guān)切換采樣通道。優(yōu)點是成本低缺點是采樣速度慢均衡通道不能同時工作。我傾向于分布式方案因為儲能系統(tǒng)對可靠性要求極高單點故障不能影響整組。而且分布式方案的均衡電流可以做得更大因為每個模塊只負責兩節(jié)電池散熱壓力小。5.2 與BMS主控的通信接口PIC18F86J16通過UART或CAN與BMS主控通信上報的數(shù)據(jù)包括兩節(jié)電池電壓、均衡電流、芯片溫度、故障狀態(tài)。通信協(xié)議建議用Modbus RTU簡單可靠工業(yè)現(xiàn)場兼容性好。數(shù)據(jù)上報周期建議1秒一次故障事件立即上報。主控可以根據(jù)上報數(shù)據(jù)決定是否調(diào)整整組充放電策略。比如某節(jié)電池頻繁觸發(fā)均衡說明該節(jié)容量衰減嚴重主控可以降低整組充電截止電壓延長使用壽命。5.3 低功耗設(shè)計考量備用電源系統(tǒng)有時候會長期待機均衡電路的靜態(tài)功耗必須控制。MP2642GR-Z的關(guān)斷電流約10μAPIC18F86J16的休眠電流約1μA加上外圍電路整板靜態(tài)功耗可以做到50μA以下。固件層面待機時MCU進入Sleep模式每10秒喚醒一次做電壓采樣。如果電壓差小于閾值立即回到Sleep如果大于閾值啟動均衡。這樣平均功耗可以控制在100μA以內(nèi)對備用電源的待機時間影響極小。提示低功耗設(shè)計的關(guān)鍵是能睡就睡。我見過很多方案MCU一直跑功耗幾百μA備用電源本來能撐一年結(jié)果三個月就沒電了。5.4 成本與性能的平衡這套方案BOM成本大概在15-20元人民幣批量其中MP2642GR-Z占大頭PIC18F86J16次之功率級和外圍元件加起來不到5元。相比進口品牌的主動均衡方案成本低了60%以上性能卻能滿足大部分儲能和備用電源的需求。如果對成本更敏感可以把PIC18F86J16換成更小的PIC16系列但ADC精度和PWM分辨率會下降均衡精度會受影響。我的建議是均衡精度要求高的場景不要省MCU的錢不然后期調(diào)試的時間成本遠超省下的物料成本。5.5 后續(xù)優(yōu)化方向這套方案還有幾個可以打磨的點一是把PI調(diào)節(jié)器換成模糊控制對非線性工況適應(yīng)性更好二是增加電池內(nèi)阻在線估算提前預(yù)警老化三是把均衡數(shù)據(jù)上傳到云端做趨勢分析實現(xiàn)預(yù)測性維護。不過話說回來做產(chǎn)品最重要的是穩(wěn)定可靠花哨的功能不如扎實的基本功。我見過太多方案堆了一堆算法結(jié)果連最基本的電壓采樣都做不準。先把采樣精度、均衡效率、溫度保護這三件事做到位再考慮錦上添花的東西。最后分享一個調(diào)試時的小技巧如果均衡過程中電壓差始終降不下來先別懷疑算法用萬用表直接量電池極耳電壓對比ADC讀數(shù)。十有八九是采樣回路有問題而不是控制邏輯的問題。硬件永遠比軟件先出問題這是我這十幾年踩坑踩出來的經(jīng)驗。