BMS中SOH与SOP估算:从电池模型到特征量约束 简介《电动汽车BMS中SOH和SOP估算策略总结》面向动力电池管理、整车电控与电池算法学习者聚焦健康状态SOH和功率状态SOP的在线估算难点提供策略分类、模型思路与工程选型参考。内容先以IEEE容量衰减定义切入梳理SOH的开环耐久性模型、基于电池模型的闭环辨识以及开路电压法比较固定OCV与变化OCV思路并说明内阻增加与容量损失之间的对应关系。随后归纳SOP的复合脉冲法、HPPC测试与内阻模型讨论SOH/SOP多时间尺度联合估算、SOC与SOH双卡尔曼滤波以及加速老化实验、内阻测试和参数识别流程。资源包共1个docx文档约787KB内容涵盖定义、方法分类、优缺点比较、公式与测试示例结构集中便于检索复盘已有3674人学习适合BMS算法入门、方案对比与工程选型参考。1. 知识地图SOH、SOP与SOC在BMS里各管哪一段电动汽车BMS里SOHState of Health回答“电池还能装多少电”SOPState of Power回答“此刻能放多大功率”SOC回答“当前还剩多少电”。不管资料里叫BMS还是模块化的MBMS这三个状态量总是被放在一起考。很多人复习时把SOH和SOP当成两个孤立公式背真正做题或看实车数据时才发现SOH的容量衰减会改变SOP的内阻和功率边界SOP的峰值功率又受SOC和温度约束。梳理下来这个方向可以画成一张三层地图底层是容量、内阻、OCV-SOC曲线这些特征量中层是SOH与SOP的估计算法上层是SOC-SOH-SOP联合估计与时间尺度管理。适合已经学过电池模型、正在做系统复习的人。2. SOH估算三条路线开环耐久模型、闭环电池模型与特征量法2.1 SOH定义与80%阈值的口径SOH的工程定义先看标准口径。IEEE标准1188-1996规定动力电池容量能力下降到80%时就应该更换电池。对纯电动汽车来说一般只需考虑容量衰减因此SOH可以表述为电池当前容量与初始容量的比值。原文给出的公式是SOH(C_standard-C_fade)/C_standard×100%式中C_fade为电池已损失容量C_standard为标称容量。这个公式看着简单但口径很容易混C_fade是“已经损失掉的那部分容量”不是当前剩余容量。把C_fade代成当前容量SOH的趋势会整个反过来。它等价于SOHC_current/C_standard其中C_currentC_standard-C_fade。复习时最好把这两个形式并排写一遍确认自己能解释每个量的物理含义。80%这个数字也要放对位置。它是更换阈值不是报警阈值更不是SOH估算算法的精度指标。实车上SOH降到80%附近时BMS可能早就开始做功率限制和均衡策略调整但SOH定义本身只回答容量健康度不回答“现在能不能大功率放电”。SOH和SOC也不是一回事SOC是剩余电量百分比SOH是容量能力百分比。把这两个百分比混着用是后面很多估算错误的起点。2.2 开环耐久性模型从机理到外特性基于耐久性模型的开环方法走的是“从机理或外特性直接预测衰减”的路子。它描述固体电解质膜电阻和电池端子电压的增加对电池内部物理化学反应特性进行分析了解电化学反应特性和电池容量衰退的本质从而直接预测容量衰减和内阻变化。换句话说这类方法不太依赖实时电流电压反馈而是靠老化实验数据、机理模型或外特性曲线把“用了多久、经历了什么工况”映射到“容量掉了多少”。开环方法的优点是物理意义清楚、计算量小适合离线寿命预测、实验分析和早期设计验证。它的局限也很明显没有闭环校正预测结果对工况、温度、充放电倍率很敏感。同一套模型在实验室恒温恒流下拟合得很好换到实车频繁加减速、温度起伏的场景误差可能很快放大。复习时可以把开环方法理解成“查表加外推”表格来自耐久性实验外推靠机理或经验公式中间没有观测器把偏差拉回来。这类方法在SOH估计里常被放在第一类不是因为它最准而是因为它最接近“电池为什么会老化”的底层解释。做系统复习时要能说清它和闭环方法的差别开环是预测闭环是估计加校正开环依赖老化数据覆盖闭环依赖模型和实时测量。两者不是替代关系很多BMS会把开环模型作为长期衰减趋势的先验再用闭环方法做在线修正。2.3 闭环电池模型RLS与KF的分工基于电池模型的闭环方法常见做法是搭一个等效电路模型用递推最小二乘法RLS或卡尔曼滤波KF这类算法做在线参数辨识和状态估计。RLS主要用来识别模型参数比如欧姆内阻、极化电阻、极化电容KF或扩展卡尔曼滤波更多用来估计状态量或者把模型参数的变化映射到SOH。SOH本身变化慢不会像SOC那样每个采样点都明显动所以闭环SOH估计通常要配合容量映射或内阻映射。下面这段代码是一个一阶RC模型参数在线辨识的RLS骨架用来复习“参数怎么被递推更新”的过程# 一阶RC模型参数在线辨识的RLS骨架 import numpy as np theta np.array([0.02, 0.01, 2000.0]) # 初值示意R0(Ω)、R1(Ω)、C1(F) P np.eye(3) * 1e3 # 协方差矩阵初值 lam 0.98 # 遗忘因子越小越看重近期数据 for k in range(1, len(current)): # 回归向量要按离散化模型构造这里用电流和上一时刻端电压示意 phi np.array([current[k], current[k-1], voltage[k-1]]) y voltage[k] K P phi / (lam phi.T P phi) theta theta K * (y - phi.T theta) P (P - K phi.T P) / lam这段代码的逻辑是每一步用当前测量值减去模型预测值得到新息再用增益K把新息分配到参数上P是参数不确定度随着迭代更新。参数上要注意theta初值要按实际电池的数量级给给得太离谱会让前几百步震荡遗忘因子lam常取0.95到0.99越小越能跟踪参数变化但也更容易被噪声带偏回归向量phi必须和离散模型形式一致不能只照抄示意。RLS输出的是模型参数不是SOH本身后面还要通过容量或内阻与SOH的映射关系换算。闭环方法的优势是抗噪、可在线、能跟着电池老化修正模型难点在模型阶数选择、初值、噪声协方差和参数可辨识性。复习时最容易忽略的是“参数辨识出来之后怎么变成SOH”。如果只写RLS和KF的公式不写容量映射或内阻映射SOH估计链就是断的。2.4 三条路线的对比与选型把SOH估计方法放在一张表里对比复习时更不容易混。开环耐久性模型、闭环电池模型、特征量法OCV法和内阻法各有自己的输入输出和适用边界。方法核心输入输出优点局限适用场景开环耐久性模型老化实验数据、机理或外特性容量衰减趋势、内阻变化趋势物理意义清楚、计算量小依赖工况覆盖、无反馈校正离线寿命预测、实验分析闭环电池模型电流、电压、温度、等效电路模型模型参数到SOH的映射可在线、抗噪、能跟踪老化模型失配、初值和噪声敏感实车BMS在线估计基于OCV的特征量法OCV-SOC曲线、安时积分当前容量、SOH理论清晰、实现直接温度敏感、依赖老化假设实验室、慢充静置场景基于内阻的特征量法脉冲电压电流、温度内阻到SOH的映射测试方法简单、参数识别快温度与SOC影响大、需归一化台架测试、在线内阻辨识选型时先问三个问题有没有实时电流电压数据模型参数能不能在线辨识SOH变化的时间尺度能不能接受离线更新。开环方法适合“先知道大概趋势”闭环方法适合“实车长期跟踪”OCV和内阻方法适合“有测试条件时做特征量标定”。三条路线不是互斥的系统复习时要把它们串成一条链特征量提供观测量闭环模型提供在线更新开环模型提供长期先验。3. 特征量落地OCV-SOC曲线与内阻测试的复习要点3.1 基于OCV的SOH估计固定OCV与变化OCV基于开路电压的SOH估计大致可以分为基于固定OCV的SOH估计和基于变化OCV的SOH估计两类。实验发现电池在不同老化程度下的OCV曲线形式对比分析后电池容量衰减对被测电池OCV曲线形状的影响并不明显也就是说电池OCV与SOC之间的对应关系在整个老化过程会保持一个相对稳定的状态。基于这个结论可以通过在不同老化程度下计算相同OCV区间内电池电量的变化情况实现对电池当前容量及SOH的估计。固定OCV的思路是盯住某个或某几个OCV点看对应SOC区间的电量变化变化OCV的思路是把一段OCV曲线上的多个点用起来通过区间积分或曲线拟合反推容量。两种思路的共同点是都要用安时积分把电流变成电量再和SOC变化量做比值。OCV-SOC受温度影响明显这一点在复习时不能漏同一块电池在25℃和低温下的OCV曲线不重合直接把低温数据套到常温标定表上容量估计会偏。下面这段代码示意“用一段OCV区间内的安时积分估计当前容量”# 用一段OCV区间内的安时积分估计当前容量 import numpy as np def capacity_from_ocv_segment(ocv, soc, current, dt, ocv_low, ocv_high): mask (ocv ocv_low) (ocv ocv_high) if mask.sum() 2: return None ah np.trapz(current[mask], dxdt) / 3600.0 # 安时积分放电为正 delta_soc soc[mask][-1] - soc[mask][0] if abs(delta_soc) 1e-4: return None return abs(ah / delta_soc)这段代码的逻辑是先按OCV区间截取数据再对电流做积分得到安时数最后除以区间内的SOC变化量得到当前容量估计。参数上要注意ocv_low和ocv_high要选在OCV曲线斜率较大、SOC与OCV近似线性的区间dt是采样周期单位秒current的方向要统一放电为正或充电为正都可以但整段数据必须一致温度要尽量在同一区间跨温度数据要先补偿。算出来的容量和标称容量一比就得到SOH。3.2 OCV曲线“老化不变”假设的适用边界“OCV曲线形状老化影响不明显”这个结论有适用边界。理论研究指出对锂离子电池而言OCV曲线在老化过程中并非完全一成不变只有当电池OCV曲线的斜率较大且SOC与OCV之间呈现明显的线性关系时才能够忽略老化对OCV曲线所造成的影响并近似地将其认为是恒定的。原文特别提到SOC高端部分这一点很关键。换句话说不是整个SOC区间都能拿固定OCV-SOC表来用。低SOC段曲线可能更平斜率小老化引起的微小偏移会被放大成较大的SOC误差SOC高端部分斜率大、线性关系明显才更适合做固定OCV估计。复习时要把“选段”当成方法的一部分而不是随便截一段数据。判断选段是否合适可以看dOCV/dSOC斜率太小的区间不要用。还有两个容易忽略的点静置时间和滞回。OCV测量要求电池静置到电压稳定静置不够端电压还带着极化读出来的不是真正的开路电压充放电方向不同OCV曲线可能有滞回固定OCV表要说明是充电侧还是放电侧。温度影响也要单独处理OCV-SOC受温度影响明显低温下尤其不能直接套常温表。把这些边界写进复习笔记比只背“OCV法精度高”有用得多。3.3 内阻与SOH的关系模型及测试步骤在电池容量衰减的过程中一般也会同时伴随电池内阻的增加。针对锂离子电池在车用阶段的具体容量损失过程结合电池工作温度与内阻机理模型再结合内阻在线辨识技术可以实现宽温度范围下的SOH估计。原文给了一个具体例子从电池能量损耗角度出发提出新的SOH模型对同一批次不同单体电池之间的测试数据进行归一化处理得到线性度很高的内阻值与SOH的一次线性函数验证了模型的适应性。这个模型的特点是测试方法简单、参数识别快捷。内阻测试的步骤要能复述。原文把锂离子电池放入温度设置为25℃的某型高低温交变湿热试验箱中用电池测试系统以恒流充电、静置、恒流放电为一个测试循环周期对电池进行加速老化实验并在每循环5次后进行一次内阻测试。具体步骤可以整理成表步骤操作关键参数复习提示Step1恒流放电至截止电压1C、2.7V截止电压按厂家规定Step2静置1h让极化恢复Step3恒流充电至截止电压再恒压充电1C、4.2V、0.05C截止记录当前最大可充电量Step4静置1h电压稳定后再测Step5恒流放电调整SOC1C、0.1h、SOC到90%注意SOC调整点Step6静置30min不要省Step7恒流充电并记录电压0.2C、10min、每1s记录用于充放电能量计算Step8恒流放电并记录电压0.2C、10min、每1s记录与Step7对称Step9恒流放电调整SOC1C、0.1h、SOC到80%重复Step1到Step9直到SOC为10%对Step7和Step8的数据分别按充电、放电能量公式计算充电能量和放电能量再由内阻公式计算内阻值此时电池当前状态的最大可充电量可由Step3得到由SOH公式得出当前SOH值从而建立内阻值R与SOH的对应关系。原文没有展开式(1)和式(2)的具体形式复习时要把能量积分口径、电流符号和SOC调整点统一否则同一组数据算出来的R会对不上。得到R和SOH的配对数据后可以做一次线性拟合。下面是一个归一化后拟合的骨架import numpy as np # R_list与soh_list来自同一批次、同一温度区间的单体测试 R np.array(R_list) SOH np.array(soh_list) # 先归一化再拟合一次线性模型 R_norm (R - R.mean()) / R.std() a, b np.polyfit(R_norm, SOH, 1) print(fSOH ≈ {a:.4f} * R_norm {b:.4f})这段代码的逻辑是先用均值和标准差把内阻归一化消除单体之间的量级差异再拟合SOH与内阻的一次线性关系。参数上要注意R的单位要统一SOH用0到1还是百分数要全表一致拟合前要确认数据来自同一批次、同一温度区间跨温度数据要先做温度归一化线性模型只在测试覆盖范围内可信外推到极端老化状态要谨慎。原文说线性度很高但复习时不能把“高线性度”当成所有批次的通用结论。3.4 温度对特征量的影响与补偿温度对OCV和内阻都有影响而且对内阻的影响通常更明显。OCV-SOC受温度影响明显内阻值也会随温度变化所以宽温度范围下的SOH估计不能只用25℃标定出来的一条曲线。原文在SOP部分提到温度影响电池峰值功率的推算公式可以写成以电池SOC、内阻Radj及温度T为输入、峰值功率Padj为输出的形式这说明温度必须作为模型输入而不是事后修正。复习时可以把温度处理分成两层测试层和算法层。测试层要记录每个内阻测试点的温度尽量在恒温箱里做避免温度漂移算法层要建立温度-内阻查表或温度修正项把不同温度下的内阻归一到同一基准温度再做R-SOH拟合。如果直接拿低温内阻去套常温线性模型SOH会被算偏而且偏的方向取决于内阻温度系数不能靠“感觉”修。最容易忽略的是温度传感器位置和电芯内部温度差异。测试箱温度是环境温度电芯在大倍率脉冲下内部会发热表面温度不等于内部温度。复习笔记里可以写一句内阻测试的“温度”要明确是环境温度、表面温度还是估算的内部温度三者不能混用。把这个口径写清楚后面做温度补偿才不会翻车。4. SOP估算HPPC复合脉冲、黑箱模型与多参数约束4.1 SOP定义与10s峰值功率的时间尺度电池SOP描述的是电池功率状态通常用短时峰值功率值来表示。锂离子电池多工作于车辆起步、加速或刹车状态为车辆提供或吸收瞬时的大功率。电池输出输入的峰值功率直接影响车辆的快速启动、加速和紧急制动能力进而关系到整车运行的安全性和可靠性。因此BMS必须具备对锂离子电池峰值功率即SOP的在线估计能力。准确的SOP估计结果可以为整车系统的功率分配以及能量控制提供参考不仅能够保证车辆的运行性能同时也保证车辆的燃油经济性。电池SOP是隐性状态量需要通过对SOP建模来实现在线估计。SOP的时间尺度要单独记。原文给出了一组统计数据急加速持续时间在城市工况和高速工况下分别为10s和25s紧急制动持续时间在上述两种路况中分别为5到10s和33s。考虑实际应用情况选取t等于10s测得10s的放电峰值功率作为电池的功率状态SOP。这里要理解“10s”是一个约定时间尺度不是所有工况都用10s。城市急加速和高速急加速的持续时间不同紧急制动的时间尺度也不同复习时要能说出为什么选10s以及换一个时间尺度后峰值功率会怎么变。SOP不是持续功率也不是额定功率。它描述的是短时峰值能力背后受电压下限、电流上限、本文还有配套的精品资源点击获取