电动车 BMS 中锂电池 SOC 算法探究

电动车电池bms电池管理系统 锂电池算法SOC代码 获取锂电池SOC采用的是电流积分法,电化学阻抗法 电流积分法又称为安时积分法或库伦计数,通过将电池电流对时间进行积分来计算电池的荷电状态。 这种方法对于计算电池放出的电量有一定的准确度,但缺乏参照点,不能计算电池的初始SOC,也无法预测电池因为自放电而产生的容量衰减。 除此之外,电流积分法的误差具有累积性,会随着时间的增加而逐渐增大。 而且电池充放电效率的确定也需要有大量的实验数据建立起经验公式,对SOC的可靠性也有一定的影响。 因此,采用这种方法时常常需要定期对电池荷电状态进行重新标定。 电化学阻抗法有交流内阻和直流内阻之分,它们都与电池荷电状态有密切关系。 电池交流阻抗是电池电压与电流之间的传递函数,是一个复数变量,表示电池对交流电的反抗能力,要用交流阻抗仪来测量。 电池交流阻抗受温度影响大,是在电池处于静置后的开路状态还是在电池充放电过程中进行交流阻抗测量,存在争议。 直流内阻表示电池对直流电的反抗能力,在实际测量中,将电池从开路状态开始恒流充电或放电,相同时间内负载电压和开路电压的差值除以电流值就是直流内阻。 对于铅蓄电池在放电后期,直流内阻明显增大,可用来估计电池荷电状态;镍氢电池和锂离子电池直流内阻变化规律与铅蓄电池不同,应用较少。

在电动车的电池管理系统(BMS)里,锂电池荷电状态(SOC)的精准计算至关重要,它直接关乎电池性能评估与电动车的安全高效运行。今天咱就唠唠获取锂电池 SOC 常用的电流积分法和电化学阻抗法,还会穿插点代码示例帮助理解。

电流积分法(安时积分法/库伦计数)

电流积分法原理简单直接,就是把电池电流对时间做积分来算出电池的荷电状态。打个比方,就好像你记录水龙头流出的水量,把水流速度(类似电流)乘以时间,就能知道总共流出多少水(类似电池放出多少电量)。

下面是简单模拟电流积分法计算 SOC 的代码(以 Python 为例):

python 复制代码
# 假设初始电量为100Ah
initial_soc = 100
# 电流值,单位A,假设放电电流为5A
current = -5
# 时间间隔,单位h,假设时间间隔为1h
time_interval = 1
# 计算SOC变化量
soc_change = current * time_interval
# 新的SOC
new_soc = initial_soc + soc_change
print(f"新的SOC为: {new_soc}%")

在这段代码里,initialsoc**设定了初始电量,current 是当前电流,这里负值代表放电。time interval 是时间间隔,通过 current * time_interval 算出这段时间电量的变化,从而得到新的 SOC

但这方法有不少毛病。首先它没个参照点,算不出电池初始 SOC,要是一开始电量不知道,后面算的再准也白搭。而且它没法预测电池自放电导致的容量衰减,电池放着不用也会跑电呀,这部分就预测不了。还有,这方法误差会累积,时间越长,误差越大,就像你每次量东西都有点小偏差,量的次数多了,偏差加起来就大了。并且确定电池充放电效率得靠大量实验数据建立经验公式,这对 SOC 的可靠性也有影响。所以用这方法得定期重新标定电池荷电状态。

电化学阻抗法

电化学阻抗法分交流内阻和直流内阻两种,它们和电池荷电状态关系紧密。

交流内阻

电池交流阻抗是电池电压与电流之间的传递函数,是个复数变量,反映电池对交流电的反抗能力,得用交流阻抗仪测量。这就好比电池对交流电的"阻力",不同的电池状态,这个"阻力"不一样。但它受温度影响大,而且在哪种状态下测量(静置后的开路状态还是充放电过程中)还存在争议。

直流内阻

直流内阻表示电池对直流电的反抗能力。实际测量时,把电池从开路状态开始恒流充电或放电,相同时间内负载电压和开路电压的差值除以电流值就是直流内阻。比如对于铅蓄电池,放电后期直流内阻明显增大,就能用来估计电池荷电状态。但镍氢电池和锂离子电池直流内阻变化规律和铅蓄电池不同,应用就少些。

总的来说,这两种计算锂电池 SOC 的方法各有优劣。在实际的电动车 BMS 开发中,往往会综合多种方法,取长补短,力求更精准地获取电池的 SOC,保障电动车的良好性能和安全运行。

相关推荐
其实防守也摸鱼2 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
GJGCY2 小时前
财务智能体落地实践:RPA、大模型与规则引擎如何构建业财自动化闭环?
经验分享·ai·自动化·财务·智能体
博观而约取厚积而薄发8 小时前
Pytest 从入门到精通,一篇就够(超详细实战教程)
python·测试工具·单元测试·自动化·pytest
imzed8 小时前
使用 Playwright + Pytest 构建 Web UI 自动化测试框架
python·自动化·pytest
交友如交9 小时前
对于Prompt的思考:从“手写”到提示词采样、A/B Test 与自动化评测
人工智能·自动化·prompt
Amy187021118239 小时前
告别“爬楼抄表”时代:电梯计量自动化改造,让每一度电都“开口说话”
运维·自动化
曦尧9 小时前
开源后台编程 Agent 系统 background-agents:架构拆解与落地判断
ai·自动化
keke.shengfengpolang10 小时前
自动化考什么证书对就业有帮助?
运维·自动化
乐橙开放平台11 小时前
巡店系统笔记:乐橙 listDeviceDetailsByPage 台账 + bindDeviceLive 辅码流最小闭环
网络·笔记·物联网·自动化·音视频·智能家居
程序员吕洞宾11 小时前
开源多维表格SmartTable V1.6.1:工作流画布,让自动化工作流配置更直观、更方便
java·开源·自动化