均衡方案:從硬件到固件的完整設(shè)計(jì))
鋰電池儲(chǔ)能和備用電源里最容易被低估的就是串聯(lián)電池組的均衡問題。很多人覺得只有 4 串、8 串以上才需要認(rèn)真做均衡實(shí)際上哪怕只是 2 串電池在備用電源這種長(zhǎng)期浮充、間歇放電的場(chǎng)景下也照樣會(huì)因?yàn)橐恢滦云贫崆巴艘?。最近我完成了一?2 串磷酸鐵鋰備用電源樣機(jī)核心方案是 MP2642GR-Z 負(fù)責(zé)電池間的電荷搬移PIC18LF45K50 做主控做電壓采集、均衡算法和通信管理。這篇文章把選型邏輯、硬件細(xì)節(jié)、固件狀態(tài)機(jī)以及整機(jī)調(diào)試中踩過的坑完整梳理一遍給同樣在折騰小型 BMS 的人一個(gè)可以直接參考的樣本。1. 為什么兩節(jié)串聯(lián)電池也需要認(rèn)真做均衡1.1 兩節(jié)電池的一致性不是出廠定死的先說個(gè)很多人理解偏差的地方電池組出廠做過配組不代表后續(xù)一直保持一致。所謂“一致性”是一個(gè)隨時(shí)間衰減的變量。兩節(jié)電池串聯(lián)流過它們的電流完全相同但每節(jié)電池的內(nèi)部狀態(tài)卻可以越走越偏。主要來源有三類。第一是制造公差即便同一批次極片厚度、電解液浸潤(rùn)程度、隔膜透氣性都會(huì)有微小差異表現(xiàn)出來的就是容量、內(nèi)阻、自放電率不完全一樣。第二是溫度分布備用電源機(jī)箱內(nèi)部不是等溫場(chǎng)兩節(jié)電池如果有一節(jié)靠近功率器件或者散熱孔溫度差上幾攝氏度非常正常而溫度直接影響自放電速度和內(nèi)阻時(shí)間一長(zhǎng)就把初始差異放大了。第三是同一個(gè)電池組內(nèi)部的 SOC 校準(zhǔn)問題充電曲線和放電曲線都不是完全可逆的反復(fù)充放電后兩節(jié)電池的可用容量會(huì)發(fā)生錯(cuò)位。在 2 串拓?fù)淅镆驗(yàn)閮晒?jié)電池沒有并聯(lián)關(guān)系容量小或者自放電快的那一節(jié)會(huì)先被充滿、先被放空。如果系統(tǒng)沒有均衡機(jī)制每次充電都會(huì)讓高壓那節(jié)更容易出現(xiàn)過壓保護(hù)低壓那節(jié)永遠(yuǎn)充不滿每次放電則反過來低壓那節(jié)先觸發(fā)欠壓保護(hù)高壓那節(jié)還有電但已經(jīng)無法輸出。日積月累短板越來越短。1.2 被動(dòng)均衡為什么在備用電源里不夠用低成本 BMS 上最常見的均衡方式是電阻耗散式被動(dòng)均衡?;驹硎菣z測(cè)到某節(jié)電池電壓偏高時(shí)把并聯(lián)在該電池兩端的 MOS 管打開讓多余的能量通過大功率電阻放掉直到電壓和其他電池接近。這個(gè)方案的優(yōu)勢(shì)很直接電路簡(jiǎn)單、器件便宜、控制邏輯不復(fù)雜一顆普通 IO 加兩顆 MOS 和兩顆電阻就能實(shí)現(xiàn)。但它的短板也恰好卡在備用電源最在意的幾個(gè)點(diǎn)上。首先是熱問題。被動(dòng)均衡的均衡電流一般只有 50~200mA高于這個(gè)范圍就會(huì)在電阻和 MOS 上產(chǎn)生非??捎^的功耗。100mA、兩只電池壓差 50mV 時(shí)看似功率不大可均衡通常不是幾分鐘而是要持續(xù)幾十分鐘甚至幾小時(shí)。密閉機(jī)箱里發(fā)熱會(huì)導(dǎo)致電池溫度升高溫度又拉大自放電差異得不償失。其次是效率問題。被動(dòng)均衡本質(zhì)是“把多余能量變成熱量扔掉”不是“把能量從高的一節(jié)搬到低的一節(jié)”。在儲(chǔ)能和備用電源系統(tǒng)里能效是硬指標(biāo)尤其當(dāng)系統(tǒng)長(zhǎng)期待機(jī)、只有少量浮充電流時(shí)拿電阻把幾瓦能量燒掉邏輯上就很虧。所以我的結(jié)論是被動(dòng)均衡只能作為低成本的底線方案用在無明顯熱約束、對(duì)壽命要求不高的產(chǎn)品里。一旦把“長(zhǎng)期浮充、溫度有限、壽命三年以上”作為設(shè)計(jì)目標(biāo)主動(dòng)均衡才是正路。1.3 方案選型為什么用均衡 IC 加 MCU 而不是專用 BMS AFE做 2 串電池管理市面上有很多集成的 BMS 模擬前端芯片采樣通道、保護(hù)邏輯、均衡驅(qū)動(dòng)基本都做好了理論上最省事。但實(shí)際評(píng)估后我放棄了這條路原因有三個(gè)。一個(gè)是通道浪費(fèi)。大部分模擬前端最少支持 3~4 節(jié)電池為 2 節(jié)電池買單顯然不劃算而且芯片體積、引腳數(shù)、外圍電路對(duì)小系統(tǒng)來說都偏重。另一個(gè)是均衡能力。多數(shù) AFE 自帶的均衡是“以被動(dòng)方式為主”少數(shù)支持主動(dòng)均衡的則需要外掛電感、變壓器和獨(dú)立的控制時(shí)序芯片本身并不直接解決功率級(jí)問題。換句話說選 AFE 省的是采樣和保護(hù)均衡功率還得另外設(shè)計(jì)。第三個(gè)原因是場(chǎng)景定制不夠靈活。備用電源、家用儲(chǔ)能柜、小型 UPS 這類系統(tǒng)均衡策略跟充電策略、負(fù)載調(diào)度、通信協(xié)議強(qiáng)相關(guān)。比如備用電源長(zhǎng)期浮充時(shí)可能希望每天只在固定時(shí)間段做一次小電流均衡其余時(shí)間主控休眠也希望能通過通信接口看到兩節(jié)電池的壓差變化趨勢(shì)。專用 AFE 雖然也可以調(diào)參數(shù)但繞彎路的次數(shù)比直接寫 MCU 邏輯多得多。所以最終定了兩層架構(gòu)MP2642GR-Z 承擔(dān)功率級(jí)均衡的開關(guān)、電流控制和保護(hù)PIC18LF45K50 負(fù)責(zé)采樣、算法、狀態(tài)機(jī)、通信和低功耗調(diào)度。均衡能力由專用芯片保證策略靈活性由 MCU 保證。這相當(dāng)于把“硬件上的搬移”和“軟件上的決策”解耦開后面調(diào)試時(shí)優(yōu)勢(shì)非常明顯。2. 硬件搭法從電池到 MCU 的完整通路2.1 功率級(jí)外圍少踩電感布局的坑MP2642GR-Z 這類的均衡控制芯片內(nèi)部實(shí)際上把驅(qū)動(dòng)、邏輯控制、電流檢測(cè)和功率開關(guān)集成得比較完整外部真正需要搭的只是儲(chǔ)能電感、輸入輸出電容和采樣電阻。這也是我選它的重要原因功率部分不用自己畫半橋驅(qū)動(dòng)、不需要自舉電容外圍清爽很多。拓?fù)渖蟽晒?jié)串聯(lián)電池之間的主動(dòng)均衡常用“電感儲(chǔ)能 交替搬運(yùn)”的方式。簡(jiǎn)單說就是當(dāng)?shù)谝还?jié)電壓高于第二節(jié)芯片把第一節(jié)的能量先灌入電感然后再讓電感對(duì)第二節(jié)放電反過來也一樣。整個(gè)過程中電能不是被消耗掉而是從一節(jié)電池搬到了另一節(jié)所以效率和均衡能力都優(yōu)于電阻方案。具體器件選擇上電感我建議按最大均衡電流去選不要只按平均電流。比如目標(biāo)均衡電流 0.8A峰值可能達(dá)到 1.2A 甚至更高電感額定飽和電流至少要達(dá)到峰值的 1.5 倍以上否則電流紋波一大電感叫聲和發(fā)熱會(huì)非常明顯。感值方面我們最終用了 22μH。感值越大開關(guān)紋波越小但動(dòng)態(tài)響應(yīng)和效率會(huì)受影響感值太小峰值電流容易超過限流點(diǎn)。最終還是以芯片數(shù)據(jù)手冊(cè)里的推薦區(qū)間為主再根據(jù)實(shí)際溫升微調(diào)。容量上每個(gè)電池單元旁邊要放低 ESR 的陶瓷電容我習(xí)慣是 10μF 配 0.1μF而且盡量靠近芯片的功率引腳。很多人在布局時(shí)圖方便把濾波電容放到背面很遠(yuǎn)的地方結(jié)果開關(guān)噪聲一大片ADC 采樣全被污染。主動(dòng)均衡的開關(guān)頻率一般都在幾百 kHz 量級(jí)功率回路的幾何面積直接決定環(huán)路電感環(huán)路電感越大電壓尖峰越難看。還有一點(diǎn)電感的擺放方向最好不要靠近采樣電阻否則磁場(chǎng)會(huì)在采樣回路上感應(yīng)出噪聲直接影響均衡電流的穩(wěn)定性。實(shí)測(cè)中把電感旋轉(zhuǎn) 90 度后示波器上看到的采樣電阻紋波幅度能下降一半以上這個(gè)細(xì)節(jié)很值得注意。2.2 電壓采樣鏈路精度靠校準(zhǔn)抗擾靠濾波主動(dòng)均衡的效果好不好根本上取決于主控能不能準(zhǔn)確判斷“哪一節(jié)電壓高、高了多少”。PIC18LF45K50 內(nèi)部有 ADC但電池電壓不能直接接進(jìn)去需要經(jīng)過電阻分壓。這里有個(gè)容易犯的錯(cuò)誤為了降低靜態(tài)功耗有些人喜歡用兆歐級(jí)的大電阻分壓結(jié)果 ADC 采樣時(shí)因?yàn)檩斎胱杩共粔虿蓸又得黠@偏低。解決辦法是在 ADC 引腳前加一個(gè)小阻值的 RC 濾波以及把 ADC 采樣時(shí)間設(shè)置得足夠長(zhǎng)。我們實(shí)際用的分壓電阻總值在 200kΩ 左右ADC 前加 1kΩ 串阻和 0.1μF 電容效果比較均衡既不會(huì)明顯增加電池靜態(tài)功耗也不會(huì)拉低采樣精度。但分壓電阻本身有精度問題。常用 1% 電阻會(huì)帶來約百分之幾的原始誤差放在 3.6V 量程上看就是幾十毫伏的偏差這遠(yuǎn)遠(yuǎn)大于均衡需要的精度。所以不能只靠硬件精度必須做軟件校準(zhǔn)。我的做法是樣機(jī)貼片前先用高精度數(shù)字萬用表標(biāo)定每一組分壓電阻的實(shí)際比例再把校準(zhǔn)系數(shù)寫進(jìn)設(shè)備配置區(qū)之后每次上電采樣都按比例修正。這樣實(shí)測(cè)電壓誤差可以壓到 5mV 左右對(duì) 20mV 級(jí)的均衡閾值來說已經(jīng)夠用。采樣濾波也不能敷衍。均衡芯片工作時(shí)會(huì)在電池端產(chǎn)生周期性的電流變化電壓有紋波是正常的。如果直接拿原始 ADC 值比較算法會(huì)不停抖動(dòng)均衡開關(guān)頻繁切換。我在固件里用了“去掉最大最小值的移動(dòng)平均”每次采集 10 個(gè)點(diǎn)去掉一個(gè)最大值和一個(gè)最小值剩下的 8 個(gè)取平均。這樣既不丟失真實(shí)電壓變化也能濾掉開關(guān)毛刺。2.3 電源、使能與保護(hù)不讓主控比電池先倒下PIC18LF45K50 是低壓 MCU而電池組電壓在 5V 到 8.4V 之間需要 LDO 降壓供電。這里有個(gè)很實(shí)際的問題均衡器工作時(shí)電池電壓會(huì)因?yàn)樨?fù)載而出現(xiàn)快速波動(dòng)如果 LDO 前端走線太長(zhǎng)MCU 可能在均衡啟動(dòng)瞬間復(fù)位。我的建議是LDO 輸入電容要足夠大至少 22μF并且放在電池端子和 LDO 之間而不是放在主控板遠(yuǎn)端。如果系統(tǒng)里還有其他負(fù)載最好讓主控供電單獨(dú)走一條線從電池端子處直接拉避免經(jīng)過功率輸出的大電流路徑。均衡使能信號(hào)必須由 MCU 控制但不能只靠軟件慢悠悠地關(guān)斷。板上要有一個(gè) RC 延時(shí)電路配合硬件邏輯讓 MCU 一旦檢測(cè)到異??梢粤⒓窗咽鼓苣_拉低同時(shí)硬件路徑上不允許在沒有 MCU 控制的情況下自動(dòng)恢復(fù)。備用電源系統(tǒng)最忌諱的是故障后悄悄恢復(fù)然后再次故障所以故障鎖定是必須的。保護(hù)方面除了保險(xiǎn)絲和反接保護(hù)一定要加電池溫度采樣。MP2642GR-Z 這類芯片能處理電氣故障但熱故障是它控制不了的NTC 熱敏電阻放在兩節(jié)電池之間通過分壓直接接 MCU 的 ADC固件里做一二級(jí)溫度保護(hù)超過 45℃ 把均衡電流降一半超過 60℃ 直接禁止均衡。3. 均衡控制邏輯與 PIC18LF45K50 固件實(shí)現(xiàn)3.1 先搞清楚均衡電流和電壓測(cè)量之間的矛盾這可能是整個(gè)項(xiàng)目里最容易想歪的地方。均衡本身就是一種對(duì)電池的擾動(dòng)主動(dòng)均衡在工作時(shí)會(huì)有數(shù)百毫安電流流進(jìn)或流出某一節(jié)電池電池內(nèi)阻會(huì)因此產(chǎn)生電壓降。也就是說均衡開啟的瞬間采樣到的電壓并不是真實(shí)的開路電壓而是帶負(fù)載后的端電壓。如果固件不做處理就會(huì)出現(xiàn)一個(gè)很滑稽的現(xiàn)象第一節(jié)電壓高開始向第二節(jié)搬電結(jié)果第一節(jié)電壓因?yàn)樨?fù)載而跌下來了第二節(jié)電壓因?yàn)楸怀潆姸鴿q上去了算法以為方向反了于是又往反向搬。來回切換電池沒均衡好空耗能量還可能引起振蕩。解決思路有兩個(gè)層次。第一層是在均衡停止的間隙采樣。比如每秒鐘關(guān)斷均衡 10ms等電池端電壓穩(wěn)定后再采一組值用這個(gè)值去判斷是否繼續(xù)均衡。第二層是根據(jù)電流方向做端電壓補(bǔ)償需要知道電池內(nèi)阻和當(dāng)前均衡電流公式是 V_ocv V_terminal - I_discharge × R_internal但這個(gè)對(duì)參數(shù)準(zhǔn)確性要求高一般用在更復(fù)雜的 BMS 上。對(duì) 2 串系統(tǒng)來說我最終采用的是“停均衡再采樣”策略簡(jiǎn)單可靠代價(jià)是均衡占空比會(huì)低一點(diǎn)實(shí)際測(cè)試下來整體效率依然可以接受。3.2 三段式狀態(tài)機(jī)比 PID 更好用之前有個(gè)項(xiàng)目里我試過用 PID 去連續(xù)調(diào)節(jié)均衡電流想要讓壓差平滑收斂到零。想法很理想實(shí)踐很痛苦PID 參數(shù)對(duì)電池內(nèi)阻、SOC、溫度都太敏感了同一個(gè)系統(tǒng)在冷機(jī)與熱機(jī)狀態(tài)下性能差很多很難調(diào)出一個(gè)穩(wěn)定參數(shù)。后來把策略改成三段式狀態(tài)機(jī)簡(jiǎn)單粗暴但非常穩(wěn)。第一段是“判斷待命”主控周期性采集兩節(jié)電池電壓計(jì)算壓差。只有壓差超過 20mV 時(shí)才進(jìn)入均衡低于 10mV 且持續(xù) 10 秒以上才退出中間的區(qū)間全是滯回區(qū)防止頻繁切換。第二段是“方向執(zhí)行”根據(jù)壓差方向確定搬移方向第一節(jié)高就往二節(jié)搬第二節(jié)高就往一節(jié)搬。這個(gè)方向要保持足夠長(zhǎng)的時(shí)間至少幾十秒不允許像 PID 那樣連續(xù)反轉(zhuǎn)。電池均衡本來就是個(gè)緩慢過程剛從充滿電的電池往虧電電池搬了幾秒不可能立刻見效方向頻繁變化是浪費(fèi)。第三段是“停止檢查”。均衡不是一直開到底的要周期性停止重新測(cè)量真實(shí)壓差。如果還沒到目標(biāo)就繼續(xù)如果到了就直接關(guān)閉。整套邏輯用狀態(tài)機(jī)寫很清晰也方便把故障狀態(tài)插進(jìn)去。偽代碼大致是這樣typedef enum { IDLE, BALANCE_A_TO_B, BALANCE_B_TO_A, STOP_CHECK, FAULT } bal_state_t; volatile bal_state_t bal_state IDLE; void balance_task(void) { uint16_t v1 get_batt_mv(1); uint16_t v2 get_batt_mv(2); int32_t delta (int32_t)v1 - v2; switch (bal_state) { case IDLE: if (delta 20) bal_state BALANCE_A_TO_B; else if (delta -20) bal_state BALANCE_B_TO_A; break; case BALANCE_A_TO_B: set_balance_direction(CELL1_TO_CELL2); enable_balancer(true); if (delta 10 || battery_temp 60) { enable_balancer(false); bal_state STOP_CHECK; } break; case BALANCE_B_TO_A: set_balance_direction(CELL2_TO_CELL1); enable_balancer(true); if (delta -10 || battery_temp 60) { enable_balancer(false); bal_state STOP_CHECK; } break; case STOP_CHECK: // 等待端電壓穩(wěn)定后再判斷 if (abs(delta) 10) bal_state IDLE; else bal_state (delta 0) ? BALANCE_A_TO_B : BALANCE_B_TO_A; break; case FAULT: enable_balancer(false); break; } }這套邏輯跑起來后整個(gè)系統(tǒng)給人一種“不慌不忙”的穩(wěn)定感沒有明顯來回切換的噪聲和熱波動(dòng)。3.3 浮充、放電和待機(jī)要區(qū)別對(duì)待備用電源的使用場(chǎng)景不是只有一個(gè)工況我分了幾種典型狀態(tài)來調(diào)均衡策略。浮充狀態(tài)兩節(jié)電池都接近滿充關(guān)鍵是防止過壓。這時(shí)候均衡的重點(diǎn)是讓電壓高的那節(jié)稍微少充一點(diǎn)把多余能量搬到低的那節(jié)。但要注意均衡電流會(huì)疊加到充電電流上如果均衡導(dǎo)致整體電流超過充電器極限反而會(huì)讓電池處于持續(xù)過充狀態(tài)。所以浮充時(shí)我把均衡電流限制在較小的擋位比如 0.4A優(yōu)先保證安全。放電狀態(tài)系統(tǒng)帶載運(yùn)行電池電壓會(huì)持續(xù)下降。這時(shí)候均衡的價(jià)值在于盡量把兩節(jié)電池的剩余電量拉齊防止其中一節(jié)先到欠壓點(diǎn)從而拖垮整個(gè)系統(tǒng)。但由于放電電流本身很大端電壓波動(dòng)明顯不能頻繁依據(jù)瞬時(shí)壓差做判斷我建議只在小電流間歇期啟動(dòng)均衡大電流放電時(shí)干脆關(guān)閉均衡等到負(fù)載結(jié)束再恢復(fù)。長(zhǎng)期待機(jī)狀態(tài)這是備用電源最典型的工況。電池滿電掛在那里充電器在浮充偶爾有負(fù)載短時(shí)啟動(dòng)。這種狀態(tài)下兩節(jié)電池的差異主要來自自放電率差異壓差增速很慢但會(huì)一點(diǎn)一點(diǎn)擴(kuò)大。我用定時(shí)喚醒策略主控平時(shí)睡在低功耗模式每 30 分鐘醒一次采樣兩節(jié)電池電壓如果壓差超過閾值就打開均衡均衡 10 分鐘后再次進(jìn)入睡眠。這樣整機(jī)平均功耗非常低又能長(zhǎng)期壓住壓差漂移。降載處理也必須有如果系統(tǒng)檢測(cè)到放電電流超過設(shè)定值說明進(jìn)入了高負(fù)載工況均衡立即暫停。因?yàn)榇藭r(shí)均衡模塊的電流會(huì)干擾電池對(duì)負(fù)載的輸出能力尤其是備用電源給小容量負(fù)載供電時(shí)額外的均衡電流可能觸發(fā)電池過流保護(hù)。4. 儲(chǔ)能場(chǎng)景下的系統(tǒng)聯(lián)調(diào)與故障排查4.1 實(shí)測(cè)波形與關(guān)鍵指標(biāo)聯(lián)調(diào)階段我把示波器探頭接在均衡電感的開關(guān)節(jié)點(diǎn)和采樣電阻兩端觀察電流波形。正常工況下開關(guān)節(jié)點(diǎn)是穩(wěn)定的方波頻率約 300kHz采樣電阻上看到的是連續(xù)的三角波電流峰值約 1.2A平均電流約 0.6A。最開始發(fā)現(xiàn)一個(gè)問題均衡電流波形不是干凈的三角波而是疊加了明顯的高頻振蕩。后來排查確定問題出在電感和芯片引腳之間的走線太長(zhǎng)形成了寄生振蕩。把走線縮短、加寬同時(shí)在芯片功率腳附近增加了一顆 0.1μF 的高頻電容后波形立刻干凈了。這個(gè)現(xiàn)象說明主動(dòng)均衡電路對(duì)功率回路幾何非常敏感布局優(yōu)先級(jí)高于一切。均衡效果的測(cè)試過程也很重要。為了快速驗(yàn)證我把兩節(jié)電池人為充到 3.55V 和 3.50V壓差 50mV然后啟動(dòng)均衡。實(shí)測(cè)經(jīng)過約 25 分鐘壓差降到 10mV 以內(nèi)均衡過程中電池表面溫度升高不到 3℃。如果不做均衡同樣兩節(jié)電池在備用電源里浮充一個(gè)月后壓差可以擴(kuò)大到 120mV 以上而且趨勢(shì)還會(huì)繼續(xù)惡化。還有個(gè)值得記錄的指標(biāo)是均衡效率。我通過比較均衡前后兩節(jié)電池各自放出的容量差來衡量整個(gè)過程中的能量損耗主要來自電感銅損、芯片開關(guān)損耗和導(dǎo)通損耗總體能量轉(zhuǎn)移效率約 85%。相對(duì)被動(dòng)均衡的 0% 效率這個(gè)提升是數(shù)量級(jí)的。4.2 常見問題速查表調(diào)試過程中遇到的問題我整理了一張速查表很多問題現(xiàn)象相同、原因卻完全不同提前對(duì)照能省很多時(shí)間。現(xiàn)象可能原因排查方向均衡電流很小或沒有電感飽和電流不夠電流保護(hù)誤觸發(fā)換更大飽和電流的電感檢查電流采樣電阻規(guī)格均衡啟動(dòng)時(shí) MCU 復(fù)位主控供電 LDO 輸入被均衡電流拉低增大 LDO 輸入電容獨(dú)立供電走線電池電壓讀數(shù)跳變ADC 引腳被開關(guān)噪聲干擾增加 RC 濾波采樣時(shí)暫停均衡芯片表面溫度偏高功率回路走線過長(zhǎng)或電感品質(zhì)差縮短功率回路換低 DCR 電感均衡方向反復(fù)切換采樣時(shí)機(jī)不對(duì)讀到了帶負(fù)載端電壓改成停止均衡后再采樣兩節(jié)電池壓差始終壓不住均衡閾值太寬或均衡時(shí)間太短收緊閾值延長(zhǎng)最長(zhǎng)均衡時(shí)間、提高均衡電流外殼靠近電感處有嘯叫電感磁芯松動(dòng)或開關(guān)頻率進(jìn)入可聽區(qū)換一體成型電感調(diào)整開關(guān)頻率4.3 長(zhǎng)期浮充測(cè)試中的特殊發(fā)現(xiàn)備用電源是要一年到頭掛在系統(tǒng)里的跟普通測(cè)試瞬間出結(jié)果不一樣我專門做了一輪連續(xù) 30 天的浮充老化測(cè)試。 過程中發(fā)現(xiàn)一個(gè)有意思的現(xiàn)象均衡并不是完全消除壓差而是把壓差壓在一個(gè)動(dòng)態(tài)穩(wěn)定的區(qū)間內(nèi)。每天白天由于環(huán)境溫度高自放電差異大壓差會(huì)稍微漲上去凌晨溫度降下來均衡又會(huì)把它慢慢拉回來。這種小幅波動(dòng)其實(shí)是正常的不用一看到壓差超過閾值就緊張。但有個(gè)坑必須提醒均衡閾值不能設(shè)得太激進(jìn)。我開始時(shí)把閾值設(shè)成 10mV結(jié)果均衡模塊每隔幾分鐘就啟動(dòng)一次雖然每次工作時(shí)間不長(zhǎng)但頻繁的大電流脈沖對(duì)電池循環(huán)壽命的影響可能比緩慢的小壓差更糟糕。后來把閾值放寬到 20mV、停止閾值 10mV系統(tǒng)反而更安靜電池溫度更穩(wěn)定整體效果更好。另外一個(gè)容易忽視的是主控看門狗。PIC18LF45K50 的軟件跑狀態(tài)機(jī)、通信、均衡控制任何一個(gè)環(huán)節(jié)卡死都可能讓均衡使能一直保持打開這在備電場(chǎng)景里是安全隱患。我的做法是看門狗周期設(shè)為 1 秒主循環(huán)任務(wù)必須按順序喂狗并且均衡使能引腳在每個(gè)主循環(huán)周期內(nèi)都要被重新寫一次一旦主控跑飛看門狗復(fù)位后引腳就會(huì)回到默認(rèn)關(guān)斷狀態(tài)。最終這套 2 串主動(dòng)均衡方案在儲(chǔ)能樣機(jī)和備用電源負(fù)載測(cè)試中穩(wěn)定運(yùn)行了幾個(gè)月最明顯的變化是兩節(jié)電池在長(zhǎng)期浮充后的容量差明顯縮小系統(tǒng)從滿載到低電量報(bào)警的可用時(shí)間也比未均衡時(shí)更長(zhǎng)。均衡這件事重點(diǎn)不在于把兩個(gè)電池做到絕對(duì)一樣而是讓它們不至于因?yàn)橐稽c(diǎn)點(diǎn)差異就被迫提早退休。電路和算法都不復(fù)雜真正復(fù)雜的是把每個(gè)細(xì)節(jié)都想清楚后再動(dòng)手這也是我一直主張的做法。