
兩串電芯一串電壓4.05V一串4.18V在備用電源系統(tǒng)里跑了兩個星期之后直接觸發(fā)過壓告警停機——這是我在某備用電源項目里遇到的第一個實際問題。后來我把均衡方案改成了 MP2642GR-Z 加 dsPIC33EP512MU810 的組合前者負責電芯之間的能量搬運后者負責電壓采樣、均衡判據(jù)和啟??刂茖iT針對儲能系統(tǒng)和備用電源里最常見的兩節(jié)串聯(lián)電池單元。這套方案不復雜但它解決的問題一點也不小。如果你也在做48V以下的小型儲能、后備電池、或者兩輪車/小功率設備的BMS這篇文章基本就是給你寫的。1. 為什么在儲能與備用電源里兩節(jié)串聯(lián)電芯的均衡不是配角很多人覺得兩串電池“簡單”串聯(lián)只有兩節(jié)電芯哪個電壓高就限制哪個放電完事。真做系統(tǒng)集成的時候你會發(fā)現(xiàn)問題恰恰卡在這個“簡單”上兩串電芯互為唯一搭檔容量稍有差異整組容量立刻變成最差那節(jié)電芯的容量。儲能和備用電源又不像消費電子產(chǎn)品那樣用幾個月就換一掛就是好幾年的工況失配被時間慢慢放大最后就變成過壓告警、欠壓掉線、容量跳水。1.1 失配的四個來源容量、內(nèi)阻、自放電、溫度先說容量差。出廠環(huán)節(jié)再嚴格的篩選同一批電芯靜置容量也會有百分之幾的偏差。對兩串系統(tǒng)來說充電時低容量電芯先充滿放電時低容量電芯先放空這節(jié)電芯就是整組的短板。它決定了你能充進去多少、放出來多少而另外那節(jié)正?;蚱蟮碾娦居肋h吃不滿、放不凈。然后是內(nèi)阻差。內(nèi)阻差直接影響的是動態(tài)電壓同樣10A電流內(nèi)阻偏高那節(jié)電芯會比另一節(jié)多掉幾十毫伏放電末端尤其明顯。備用電源通常不常放電但一旦掉電切換電池要瞬間頂上大電流內(nèi)阻差異造成的壓降會直接觸發(fā)欠壓保護哪怕整組SOC還有六成。自放電率差異是最陰的一個。電芯負極材料、電解液配方、存放溫度不同自放電率會差出不少。兩串電芯充電回路一樣但自放電大的那節(jié)每天多漏掉一點浮充只能補回一部分長期擱置后壓差就這么靜悄悄拉開了。備用電源恰恰是“長時間擱置偶爾滿充”的使用方式等于天天給自放電差異提供表演舞臺。溫度梯度也不能忽略。機柜里上下層溫差往往有3到5攝氏度溫度高的電芯內(nèi)阻低、充放電流更“積極”于是被分配了更多的化學反應量老化自然更快。老化之后內(nèi)阻進一步升高溫度又繼續(xù)升高形成正反饋回路。在兩串系統(tǒng)里這種溫差導致的失配會直接體現(xiàn)在浮充末期的電壓曲線上。1.2 備用電源“浮充 長擱置”對壓差的放大效應消費電子里的兩串電池比如筆記本電池使用頻繁充放電循環(huán)多均衡機會也多。備用電源不一樣電池大部分時間掛在浮充電壓上充放電次數(shù)可能一年都不到二十次。浮充狀態(tài)下充電電流趨近于零電芯端電壓主要由自放電和化學態(tài)決定自放電率差半個百分點浮充一直開著也拉不齊。更麻煩的是備用電源的放電特性平時不動出動就是大電流短時放電。最弱那節(jié)電芯在大電流下瞬間被拉到低壓區(qū)間系統(tǒng)以為整組沒電直接切到保護狀態(tài)之后又重新浮充。這種“平時不壞、關鍵時候掉鏈子”的場景作為系統(tǒng)開發(fā)人員最頭疼。與其等到壓差到300mV再靠維護人員上門換電芯不如在BMS里就做均衡把壓差長期壓在20mV以內(nèi)讓兩節(jié)電芯始終步調(diào)一致?;谶@個前提我最終定的方案就是MP2642GR-Z 做能量轉(zhuǎn)移通道dsPIC33EP512MU810 做采樣和策略控制。下面把兩個器件的分工拆開講。2. MP2642GR-Z 與 dsPIC33EP512MU810 的分工誰搬電荷、誰定策略這套系統(tǒng)里兩個芯片的定位是截然不同的。MP2642GR-Z 是一臺“執(zhí)行機構”負責在兩節(jié)電芯之間搬電荷dsPIC33EP512MU810 是“大腦”負責判斷什么時候搬、搬多久、搬完怎么確認。把這兩層分開之后均衡邏輯的調(diào)試難度會明顯下降。2.1 MP2642GR-Z電芯之間的能量搬運工MP2642GR-Z 這類均衡控制芯片的核心工作是在兩個串聯(lián)電芯之間建立一條可控的能量通道。使能之后它通過開關管和外部電感、電容組成非隔離的功率變換路徑讓電壓高的那節(jié)電芯釋放能量經(jīng)過儲能元件再注入電壓低的那節(jié)電芯。方向是“從高到低”不是把高壓電芯的能量當成熱量白白放掉。放在我們的具體設計里MP2642GR-Z 的輸入側接“電芯1正極與負極”輸出側接“電芯2正極與負極”節(jié)點就是兩節(jié)電芯的串聯(lián)中點。使能腳由 DSC 的 GPIO 控制狀態(tài)腳反饋回 DSC。它自己不做復雜的系統(tǒng)判斷均衡電流的大小、持續(xù)時長、什么時候停止都由 DSC 決定。這種“執(zhí)行機構”式的分工有一個好處均衡策略可以用軟件隨時改不用改硬件。需要提醒的是MP2642GR-Z 的具體外圍電路一定要按官方數(shù)據(jù)手冊的典型應用來接不同版本的片子可能在使能邏輯、故障輸出極性上有差異。代碼里不要寫死“高電平開啟”或“低電平開啟”要把這個定義做成配置項硬件調(diào)試時先確認極性再跑均衡邏輯。2.2 dsPIC33EP512MU810采樣、控制與上報的大腦dsPIC33EP512MU810 是一顆16位DSC帶多路ADC和比較豐富的通信外設。在均衡系統(tǒng)里它并沒有被當作傳統(tǒng)意義上的DSP去跑復雜算法而是當成一顆高可靠性的“采集策略通信”主控來用。它在系統(tǒng)里承擔三件事。第一單體電壓采集兩節(jié)電芯的電壓通過分壓網(wǎng)絡進入ADC軟件做滑動平均和濾波得到穩(wěn)定的電壓讀數(shù)和壓差。第二均衡決策根據(jù)壓差、溫度、母線電壓、充放電狀態(tài)決定當前是否允許開啟MP2642GR-Z以及開啟多長時間。第三狀態(tài)上報把均衡電流、均衡時長、啟動次數(shù)、故障碼通過UART或CAN發(fā)給上層監(jiān)控方便后臺知道這組電池的健康情況。這顆DSC的外設數(shù)量對兩串均衡來說綽綽有余。為了后續(xù)擴展我建議把額外的ADC通道留給NTC溫度采樣和母線電流采樣別只盯著單體電壓。備用電源系統(tǒng)里溫度對均衡允許窗口的影響非常大沒有溫度采樣的均衡策略等于盲人摸象。2.3 為什么沒選純被動均衡或一片專用AFE被動均衡是最常見的方案高電壓電芯通過一個電阻放電把多余能量變成熱。成本確實低但問題很明顯。壓差越大需要放的時間越長電阻上持續(xù)發(fā)熱小體積產(chǎn)品根本壓不住而且備用電源長期浮充均衡電阻一掛就是幾小時熱量積累后會影響旁邊電芯的溫升反而加劇失配。我在早期方案里其實試過被動均衡后來發(fā)現(xiàn)浮充結束后散熱要很長時間板子局部溫度能比環(huán)境高出十幾度實在不能接受就放棄了。專用AFE是另一條路片上集成了采樣、均衡開關和部分保護邏輯開發(fā)快一致性也好。但對這個項目來說專用AFE把均衡策略固化在芯片固件里閾值、遲滯、最大均衡時間這些參數(shù)不透明想加溫度聯(lián)鎖或者“均衡一段時間再復測”這種自定義邏輯會很別扭采購成本和供貨周期也壓不下來。使用 MP2642GR-Z dsPIC33EP512MU810 組合的好處是把“策略靈活性”和“硬件可靠性”分開功率路徑交給專門芯片管邏輯路徑交給可編程控制器管。調(diào)試時我甚至可以在不改動功率板的前提下連續(xù)換幾版均衡策略固件這在現(xiàn)場聯(lián)調(diào)階段非常省事。方案能量處理策略可編程性熱管理難度適合場景純被動均衡高電芯電阻放電低高低成本、小電流、不常浮充專用AFE視型號而定低中標準化大批量產(chǎn)品MP2642 DSC高電芯向低電芯轉(zhuǎn)移高低儲能/備用電源等長期浮充場景3. 采樣、驅(qū)動與功率級兩串均衡系統(tǒng)的硬件設計要點確定芯片組合之后真正的硬骨頭在硬件設計上。均衡系統(tǒng)要穩(wěn)定工作采樣精度和功率路徑的取舍都很關鍵任何一個環(huán)節(jié)偷懶后面調(diào)試都會加倍還回來。3.1 電壓采樣鏈路共模電壓與電阻精度問題兩串電池的總線電壓最高約8.4VDSC的ADC輸入范圍一般在0到3.6V所以不能直接采樣必須用電阻分壓或差分運放把電壓降到ADC可用區(qū)間。這里最需要注意的是頂部電芯的采樣它的負極不是系統(tǒng)地而是串聯(lián)中點電位大約在3到4.2V屬于浮動共模電壓。直接簡單分壓后接ADC問題不大但分壓電阻的精度會直接影響壓差判斷。我用了兩個分壓網(wǎng)絡分別測“電芯1正極到地”和“電芯2正極到地”軟件里做差值得到頂部電芯電壓。這要求分壓電阻的比值一致性足夠好。早期用過1%精度的電阻結果兩路分壓比在4.2V輸入下能差出15到20mV比15mV的均衡閾值還大均衡根本沒法正常判斷。后來換成0.1%精度電阻并在分壓點并聯(lián)100nF電容做低通濾波壓差讀數(shù)才穩(wěn)定下來。如果你的BOM里0.1%電阻成本敏感另一個做法是出廠校準在電芯開路且已知壓差很小的狀態(tài)下先記錄ADC兩路讀數(shù)的偏差做成offset存到數(shù)據(jù)區(qū)。這個方法能用1%電阻做到不錯的實際精度但要注意校準系數(shù)會隨溫度漂移最好配合NTC做溫度補償不能一勞永逸。3.2 功率開關與電感選擇均衡電流怎么定均衡電流的設定要結合電芯容量和均衡時間。被動均衡通常只有幾十毫安主動均衡一般希望做到幾百毫安甚至更高。均衡電流的峰值受開關周期、導通時間和電感值約束基礎公式是[ \Delta I \frac{V \times t_{on}}{L} ]以我用的參考設計為例電芯電壓按4.2V算開關導通時間1微秒電感10微亨單次電流上升大約是0.42A。如果期望的平均均衡電流在0.2到0.3A這個配置基本合適。想要更快均衡可以把電感換成3.3微亨但峰值電流會到1.27A電感和開關管的飽和電流、峰值電流規(guī)格都要跟著提高否則電感飽和后電流失控MP2642的故障腳就會頻繁拉低。開關管的選擇上優(yōu)先關注導通電阻和柵極電荷。導通電阻過高會在均衡回路里產(chǎn)生額外壓降降低轉(zhuǎn)移效率柵極電荷過高則會讓開關損耗變大。我們用的均衡電流不超過1A導通電阻在幾十毫歐級別的管子就夠用封裝盡量選帶散熱焊盤的方便均衡長時間開啟時把熱量導到銅皮上。散熱設計不要只看總功率。均衡電流0.3A壓差0.2V功率才0.06W聽起來微不足道但這是“平均功率”。開關管開關瞬間的損耗、電感的銅損、采樣電阻的功耗都要算進去尤其當均衡持續(xù)幾十分鐘時板上局部溫升可能比預期高不少。我習慣在功率路徑周圍鋪大面積接地銅皮并留好過孔陣列防止均衡時間一長溫度飄高。3.3 使能/故障信號與時序設計MP2642GR-Z 的使能和故障信號是均衡系統(tǒng)與DSC之間的關鍵接口。這里最容易出的問題就是上電時序。DSC復位或正在下載程序時GPIO處于高阻態(tài)如果MP2642的使能腳設計成內(nèi)部上拉或默認有效就會出現(xiàn)“主控還沒起來均衡已經(jīng)開始亂跑”的情況。解決方法是把使能腳的外部下拉電阻做實保證DSC未初始化時MP2642處于禁止狀態(tài)。同時驅(qū)動線串聯(lián)一個100到220歐姆的電阻避免DSC IO口在電平切換瞬間被功率回路的干擾拉出毛刺。故障腳建議接到DSC的中斷引腳而不是輪詢讀取。均衡開啟過程中如果電感飽和、過流或者過熱故障信號能立刻觸發(fā)中斷DSC馬上關閉充電回路和均衡路徑這比靠軟件慢慢查狀態(tài)快得多。4. 均衡控制狀態(tài)機從15mV壓差到自動停止的完整邏輯硬件只能保證“有能力均衡”真正決定均衡靠不靠譜的是軟件狀態(tài)機。這部分我花的時間比硬件還多因為均衡策略寫不好輕則頻繁啟停重則在錯誤時機均衡反而把電芯搞壞。4.1 均衡判據(jù)、遲滯與濾波均衡的啟動閾值不是拍腦袋定的。閾值太低采樣噪聲都會被當成壓差均衡頻繁啟停閾值太高又起不到提前預防失配的作用。我最后把啟動閾值定在15mV停止閾值定在5mV中間留了10mV的遲滯區(qū)間避免電芯電壓在臨界點附近抖動導致繼電器式的來回開斷。數(shù)字濾波同樣重要。每次開機初始化時連續(xù)采集20次電壓每次間隔10毫秒去掉最大最小值后取平均。壓差判斷也做了連續(xù)確認連續(xù)3個濾波周期都超過15mV才真正進入均衡狀態(tài)寧可慢一點也不要被瞬態(tài)噪聲騙了。這里有一個容易被忽略的點均衡進行時不要直接用電芯動態(tài)電壓做結束判據(jù)。均衡電流導致的內(nèi)阻壓降會體現(xiàn)在端電壓上高壓電芯在均衡期間電壓讀數(shù)被拉低低壓電芯被抬高看起來“壓差已經(jīng)消失”實際上關掉均衡后又會彈回來。所以每次需要復測壓差時我都先關掉MP2642等50到100毫秒讓電壓穩(wěn)定后再采樣測完再決定下一步。4.2 狀態(tài)機IDLE → FILTER → BALANCE → RE-CHECK我把均衡邏輯拆成四個狀態(tài)用狀態(tài)機實現(xiàn)邏輯清晰也容易排查。首先是IDLE態(tài)。壓差在5mV以內(nèi)系統(tǒng)什么都不做所有均衡輸出關閉。其次是FILTER態(tài)持續(xù)檢測壓差是否穩(wěn)定超過15mV同時檢查前置條件母線電壓要在預設工作范圍、系統(tǒng)不在放電、溫度在允許區(qū)間。這些條件通過后進入BALANCE態(tài)。BALANCE態(tài)開啟MP2642GR-Z同時啟動一個均衡定時器每輪均衡時間設為10秒。這個定時器不是隨便選的太短則每次開門關門都消耗開關次數(shù)太長則可能單方向均衡過頭。均衡期間DSC仍然周期性采樣溫度和母線電壓發(fā)現(xiàn)溫度超過45度或者母線電壓異常立刻中止。一輪10秒結束后進入RE-CHECK態(tài)關閉使能等待電壓恢復重新采樣。如果壓差仍然大于15mV繼續(xù)下一輪BALANCE如果壓差已經(jīng)小于5mV并且連續(xù)確認兩次回到IDLE。為了防止電芯嚴重老化導致永遠拉不齊我還加了一個最大累計均衡時間比如2小時超過之后強制退出并上報“均衡超時”告警讓維護人員知道這組電芯可能需要更換。4.3 與充電器和放電回路的聯(lián)鎖邏輯均衡不能在任何狀態(tài)下都開啟。充電過程中充電器持續(xù)向電池注入電流如果均衡也在搬運電荷相當于兩個源在對抗均衡效率極低還可能讓充電器誤判電流異常。放電過程中更不建議均衡大電流負載下的電壓值包含了大量歐姆壓降和極化效應拿這些數(shù)據(jù)做均衡判斷結果不可靠。我設計的聯(lián)鎖邏輯是這樣的只有當系統(tǒng)處于靜置或浮充狀態(tài)時才允許均衡啟動。具體實現(xiàn)上BMS要讀充電器狀態(tài)和放電負載狀態(tài)充電狀態(tài)通過通信或電平信號送進DSC放電狀態(tài)用母線電流來判斷連續(xù)30秒電流低于某個小值才認定為靜置。均衡運行期間如果檢測到負載啟動立即暫停均衡等負載消失后再恢復或重新判斷。單體過壓保護也要和均衡聯(lián)動。均衡的目標是把高壓電芯降到正常范圍但如果高壓電芯已經(jīng)接近充電截止電壓均衡期間充電器一旦繼續(xù)充電可能導致電芯過充。所以均衡啟動前必須判斷高壓電芯電壓低于截止電壓至少50mV否則只上報告警不啟動均衡。5. 實測中的翻車現(xiàn)場與長期浮充驗證軟件和硬件都做完了真正調(diào)試過程中踩的坑比預想的多。這里把最典型的三個問題寫出來給后面做類似方案的朋友省點時間。5.1 ADC噪聲與“假壓差”的排查第一版固件里均衡啟動閾值設成10mV拿萬用表實測兩節(jié)電芯壓差只有2mV但系統(tǒng)一直顯示25mV均衡頻繁啟動然后立刻停止整個BMS都在發(fā)抖。查了很久最后定位到ADC采樣時序和分壓網(wǎng)絡布局上。采樣點離均衡功率回路太近功率開關切換瞬間產(chǎn)生的磁場耦合進了高阻分壓網(wǎng)絡ADC恰好在這個時間窗口采樣把開關噪聲當成了真實電壓。解決方式分兩路一是分壓網(wǎng)絡加大了100nF濾波電容降低采樣源的交流阻抗二是錯開采樣時間均衡開關動作之后延遲200微秒再進行ADC采集避開瞬態(tài)噪聲。兩個措施一起做壓差讀數(shù)才算干凈。在這個問題上我的經(jīng)驗是均衡系統(tǒng)的采樣時序必須和功率開關動作強相關不能靠運氣。DSC里最好用定時器觸發(fā)ADC采樣并預留采樣窗口偏移寄存器現(xiàn)場一旦發(fā)現(xiàn)噪聲耦合可以快速調(diào)整采樣相位不用重新改板。5.2 采樣線與功率線的敷設第二個問題出現(xiàn)在功能樣機階段。均衡開啟后系統(tǒng)檢測到的壓差不但沒變小反而變大高壓電芯讀數(shù)被額外抬高低壓電芯讀數(shù)被壓低看起來“越均衡越差”。一開始我懷疑MP2642方向搞反了換了兩版板子查功率路徑也沒發(fā)現(xiàn)異常。后來把示波器夾在采樣點上才明白這不是方向問題是采樣點和功率路徑共用了一段導線。均衡電流從電芯端子流過連接線連接線自身電阻產(chǎn)生壓降采樣電路又把這段壓降當成電芯電壓的一部分。均衡電流越大誤判越嚴重形成了閉環(huán)振蕩。解決方案就是把采樣線和功率線在電芯端子處分開采用開爾文接法功率電流走粗線電壓采樣用細線單獨連到電芯極柱兩者只在極柱處匯合。改完布局之后均衡開啟時的壓差讀數(shù)才變得真實可信。5.3 長期浮充后的實測結果方案定型后我做了一組對比實測。一組采用這套MP2642GR-Z加dsPIC均衡方案另一組保持純被動均衡兩套電池都掛在同一批備用電源設備里長期浮充。三個月后再看數(shù)據(jù)對比組的壓差已經(jīng)拉開到60到80mV個別電芯接近100mV而這套主動均衡方案的電芯壓差始終穩(wěn)定在5到10mV范圍內(nèi)均衡每日啟動時間也從最初的十幾分鐘降到幾分鐘。我自己的體會是均衡的價值不只是把那點壓差抹平而是把電芯老化的正反饋鏈條打斷。電芯一旦開始失配落后那節(jié)會越來越落后主動均衡雖然沒有能力修復老化但能阻止失配擴大把整組可用容量維持住。后續(xù)如果有余力我建議在這個系統(tǒng)上再增加電芯內(nèi)阻在線估算和自放電率記錄把均衡策略從“電壓對齊”升級到“健康度對齊”那又是另一個級別的BMS水平了。