SOC(State of Charge,荷電狀態)是電池管理系統(BMS)裡最基本、也最難做準的一個數字。它無法被直接量測,只能靠其他可測得的物理量去估算。這篇整理三種常見做法。

方法一:開路電壓法(OCV)

利用電池「靜置足夠時間後,端電壓與 SOC 大致成一對一關係」的特性,事先量測出 OCV-SOC 對照曲線,之後查表反推 SOC。

  • 優點:實作簡單,不需要複雜運算
  • 缺點:電池必須靜置(不能有電流),且曲線在中段(20%–80%)通常很平坦,誤差會被放大;溫度與老化也會讓曲線飄移

適合用在裝置開機瞬間、電流接近零時做一次校正。

方法二:Coulomb Counting(安培小時積分)

直接對電流做時間積分:

SOC(t) = SOC(0) - (1 / Capacity) × ∫ I dt
  • 優點:動態響應好,電池在使用中也能持續更新
  • 缺點:誤差會隨時間累積(漂移),電流感測器的偏移量、量測雜訊都會被無限累加;長時間運行後若沒有校正機制,數字會越走越偏

實務上通常會搭配 OCV 法:開機靜置時用 OCV 校正一次初始值,之後用 Coulomb Counting 追蹤動態變化。

方法三:Kalman Filter(含 Extended KF)

把電池等效電路模型(通常是 Thevenin 模型:一個電壓源 + 內阻 + RC 並聯網路)當作系統模型,用 Kalman Filter 融合「模型預測」與「量測值(電壓、電流)」,遞迴估算 SOC。

  • 優點:能同時處理量測雜訊與模型誤差,精度通常明顯優於前兩者,且會隨著運行持續收斂、不太需要人工校正
  • 缺點:需要精確的電池等效電路參數(內阻、RC 參數會隨 SOC、溫度、老化變化),實作與調參複雜度高出一截

三種方法比較

方法 精度 運算量 是否需要靜置 長期穩定性
OCV 需要 好(但曲線平坦區誤差大)
Coulomb Counting 中高(短期) 不需要 差(會漂移)
Kalman Filter 不需要

小結

沒有一種方法是萬能的:正式產品的 BMS 幾乎都是「OCV 做初始校正、Coulomb Counting 做即時追蹤、必要時疊上 Kalman Filter 做誤差收斂」的組合拳,而不是單押一種方法。