一、引言

在电池管理系统(BMS)的硬件在环(HIL)仿真测试中,负载模型 是连接虚拟控制器与真实电池行为的桥梁。一个高保真的负载模型能够模拟锂离子电池在不同工况下的电压响应、温度演变和老化趋势,从而验证 BMS 算法的 SOC 估算、均衡策略、故障诊断等核心功能。

本文从工程实践角度,系统阐述 BMS 负载模型的制作方案,涵盖电化学建模、热建模、老化建模、参数辨识与校准流程。全文注重数学原理与设计方法,不涉及具体代码实现,供从事 HIL 仿真、电池建模的工程师参考。


二、负载模型整体架构

负载模型通常作为 HIL 仿真中的一个独立模块,与车辆模型(提供充放电指令)、BMS 算法模型(提供 SOC/SOH 及控制信号)以及 VAD(车辆应用数据总线)交互。其核心任务是:根据电流激励和当前状态,实时计算电池端电压、单体电压分布、温度分布及绝缘电阻

整体数据流如下:

外部激励(电流 I) + 环境温度 T_amb + 当前 SOC/SOH
          ↓
    ┌─────────────────────────────────┐
    │        负载模型核心引擎          │
    ├─────────────────────────────────┤
    │ 1. OCV-SOC 查表或函数计算       │
    │ 2. 内阻模型(SOC、T 相关)       │
    │ 3. 端电压 = OCV - I·R           │
    │ 4. 单体电压分布模拟(不一致性)  │
    │ 5. 热模型(I²R 损耗 + 热交换)  │
    │ 6. 绝缘电阻退化模型              │
    │ 7. 累计容量更新(用于 SOH)      │
    └─────────────────────────────────┘
          ↓
    输出:总电压、单体电压阵列、温度阵列、绝缘阻值

本文后续章节将逐一拆解上述每个模块的数学原理与工程实现方法。


三、电化学基础模型

3.1 OCV-SOC 特性曲线

开路电压(OCV)与荷电状态(SOC)之间的关系是电池建模的基石。对于三元锂离子电池(NCM),OCV-SOC 曲线呈现出 “两端陡峭、中间平坦” 的特征。

数学模型采用分段线性插值或多项式拟合。一个典型的 5 段线性模型可表示为:

SOC 区间          OCV 公式(V)
────────────────────────────────────────
0% ~ 10%        OCV = 2.80 + 0.07 × SOC
10% ~ 20%       OCV = 3.50 + 0.01 × (SOC - 10)
20% ~ 90%       OCV = 3.60 + 0.00714 × (SOC - 20)
90% ~ 100%      OCV = 4.10 + 0.01 × (SOC - 90)
100%            OCV = 4.20

其中 SOC 单位为百分数。该曲线可以通过实验室小电流充放电测试获得,并利用最小二乘法拟合参数。

温度修正:OCV 随温度变化极小(~0.1mV/°C),但精确建模时可加入线性修正项:

OCV_corrected = OCV_25°C + α·(T - 25)

α 通常取 -0.0003 ~ -0.0005 V/°C。

3.2 内阻模型

电池内阻包括欧姆内阻(R0)和极化内阻(Rp),但工程上常简化为总等效内阻 R,其大小受 SOC 和温度显著影响。

内阻随 SOC 的变化规律:在 SOC 20%~90% 区间内阻较小且平稳;在低 SOC(<10%)和高 SOC(>95%)区域内阻急剧增大。可用以下经验公式描述:

R(SOC) = R_mid × [1 + k_low·(10 - SOC)² + k_high·(SOC - 95)²]

其中 R_mid 为 50% SOC 时的内阻(典型值 30~50 mΩ),k_low、k_high 为拟合系数(通常取 0.02~0.05)。

温度对内阻的影响:低温条件下内阻显著增大,高温略有减小。常用 Arrhenius 型方程:

R(T) = R_25°C × exp[ β·(1/T - 1/298) ]

其中 T 为开尔文温度,β 为活化能相关常数(~1500~3000 K)。或者采用更简单的分段线性模型:

  • T < 0°C : R = R_25°C × (1.5 ~ 2.5)

  • 0°C ≤ T < 25°C : R = R_25°C × [1 + 0.03×(25-T)]

  • 25°C ≤ T < 45°C : R = R_25°C × [1 - 0.005×(T-25)]

  • T ≥ 45°C : R = R_25°C × (0.9 ~ 0.95)

最终内阻为:

R_total = R(SOC) × f(T)

3.3 端电压计算

端电压由开路电压减去内阻压降得到:

V_term = OCV(SOC, T) - I × R_total(SOC, T)

符号约定:放电 I < 0,充电 I > 0。对于串联电池包(如 96 串),包总电压为:

V_pack = Σ V_cell_i ≈ 96 × V_cell_avg

在实际仿真中,为了体现单体不一致性,需要对每个单体单独计算电压。


四、单体不一致性模拟

真实的电池包中,各单体由于制造工艺、温度梯度、老化差异,电压并不完全相同。负载模型需要模拟这种不一致性,以验证 BMS 的均衡策略和故障诊断。

方法一:高斯分布随机偏差
假设所有单体的平均电压为 V_avg,则第 i 节单体的电压为:

V_i = V_avg + ε_i,   ε_i ~ N(0, σ²)

σ 典型值为 5~15 mV。注意需对生成的电压进行限幅(例如 2.5V ~ 4.35V)。

方法二:基于物理位置的温度差异映射
电池包内部不同位置的温度不同,导致内阻和端电压差异。可预先定义温度场分布矩阵(例如 6×6 个测温点),然后根据每个单体所在位置的内阻计算电压。

方法三:老化差异模型
各单体的 SOH 不同,导致容量衰减和内阻增加。可用容量衰减因子 δC_i 和内阻增长因子 δR_i 对每个单体独立修正。

为了模拟均衡效果,负载模型还需支持:当 BMS 发出均衡指令时,对电压最高的单体施加一个微小的放电电流(被动均衡),从而缓慢降低其电压。


五、热模型

电池在充放电过程中因内阻产生焦耳热,同时与外界进行热交换。热模型的目标是计算电池包内各测温点的温度随时间的变化。

5.1 生热功率

总生热功率来源于欧姆热和极化热:

P_gen = I² × R_total

对于电池包,P_gen 为所有单体生热之和。其中 I 为包总电流,R_total 是等效总内阻(可简化为单体平均内阻 × 串联数)。

5.2 热平衡方程

对于简化的集中参数热模型,电池包的平均温度满足:

C_th × dT_avg/dt = P_gen - h·A·(T_avg - T_amb)

其中:

  • C_th:热容(J/K),可由电池质量与比热容乘积估算(典型值 500~2000 J/K)。

  • h:等效换热系数(W/(m²·K)),与冷却方式有关(自然冷却约 10~20,强制风冷 30~50,液冷 100~200)。

  • A:散热面积(m²)。

对于更精确的分布参数模型,可将电池包划分为多个热区(例如 6×6 网格),每个热区有自己的温度 T_ij,并与相邻热区以及环境进行热交换。离散化后的热传导方程:

C_ij × dT_ij/dt = P_gen_ij + Σ (T_neighbor - T_ij)/R_th_adj + (T_amb - T_ij)/R_th_amb

其中 R_th_adj 为相邻热区间的热阻,R_th_amb 为与环境的等效热阻。

5.3 温度对模型的反作用

计算得到的温度会实时反馈到内阻模型和 OCV 修正中,形成一个闭环耦合系统。


六、绝缘电阻退化模型

绝缘电阻是高压安全的重要指标。在负载模型中,可以模拟绝缘性能随温度、电流应力及时间的缓慢衰减。

基础退化模型

R_ins = R_ins0 - k_temp·max(0, T-45) - k_cur·max(0, |I|-100) - k_time·t

其中:

  • R_ins0:初始绝缘电阻(如 5000 kΩ)。

  • k_temp:温度退化系数(kΩ/°C)。

  • k_cur:大电流加速退化系数(kΩ/A)。

  • k_time:时间累积退化系数(kΩ/h)。

限幅处理:当 R_ins 低于安全阈值(如 100 kΩ)时触发三级故障。


七、SOH 与累计容量模型

SOH(健康状态)表征电池的老化程度,负载模型需要基于累计充放电容量、循环次数、内阻增长等信息进行动态更新。

容量衰减模型

SOH_cap = SOH_initial - ΔSOH_cycle

循环次数导致的容量衰减可采用经验公式:

ΔSOH_cycle = a·N^b

其中 N 为等效循环次数(以满充-满放一次计),a、b 为拟合系数(例如 a=0.02, b=0.5)。

内阻增长模型

R_internal(SOH) = R_fresh × (1 + c·(1 - SOH))

c 通常取 0.5~1.0,表示 SOH 下降 10% 内阻增加 5~10%。

实际仿真中,可通过外部注入“SOH 强制值”来模拟不同老化程度的电池包,而累计容量变量则用于 SOH 的自学习更新。


八、仿真步进与离散化

负载模型通常以固定的时间步长 Δt(如 100 ms)运行,需要采用合适的离散化方法保持数值稳定性。

8.1 离散化热方程

对于集中参数热模型,前向欧拉法离散:

T_avg(k+1) = T_avg(k) + (P_gen - h·A·(T_avg - T_amb))·Δt / C_th

对于分布参数模型,可采用交替方向隐式法(ADI)或直接显式法(需满足稳定性条件)。

8.2 累计容量积分

累计充放电容量通过梯形积分更新:

Q_charged(k+1) = Q_charged(k) + |I(k+1)+I(k)|/2 × Δt / 3600   (Ah)

8.3 状态重置

在测试用例执行前,需将负载模型恢复到基准状态(如 SOC=80%、温度=25°C、绝缘电阻=5000kΩ)。重置时同时清除累计容量等历史累积量。


九、参数校准与验证流程

制作高精度负载模型离不开参数校准。推荐以下流程:

  1. OCV-SOC 曲线标定:对单体电池进行 0.05C 倍率充放电,记录静置 2 小时后的 OCV 与 SOC,绘制曲线并拟合多项式/分段线性参数。

  2. 内阻辨识:在恒温箱中控制不同温度(-20°C、0°C、25°C、45°C、60°C),对电池施加不同倍率的脉冲充放电(如 0.5C、1C、2C),记录电压响应,利用 ΔV/ΔI 计算内阻。绘制 SOC-R、T-R 图谱。

  3. 热参数辨识:将电池置于绝热或已知换热环境中,以恒定电流放电,记录温升曲线,通过曲线拟合反推热容 C_th 和换热系数 h。

  4. 模型验证:在动态工况下(如 NEDC、WLTC 电流曲线),对比仿真端电压与实测端电压的误差(要求 < 1%)。同时验证 SOC 估算误差(< 3%)。

  5. 老化模型校准:对电池进行加速循环老化试验(如 1000 次 1C 充放),每隔 100 次测量容量和内阻,拟合 SOH 衰减曲线。


十、模型接口设计与集成

在 HIL 仿真框架中,负载模型需要实现以下标准接口:

  • 输入接口:读取 VAD 中的电池总电流、环境温度、SOC/SOH 覆盖值、强制控制信号(均衡、冷却、加热、充电握手等)。

  • 输出接口:将计算得到的单体电压阵列、温度阵列、总电压、绝缘电阻、累计容量等写回 VAD。

  • 控制接口:支持外部命令(如重置模型、切换故障模式、注入传感器偏差)。

采用单例模式确保整个仿真中只有一个负载模型实例,并与其他模块(Vehicle、ASW)保持解耦。


十一、总结与展望

本文系统阐述了 BMS 负载模型的设计与实现方案,从电化学基础模型到热管理,再到老化模拟和参数校准,覆盖了高保真仿真所需的全部要素。负载模型作为 HIL 测试的核心组件,其精度直接决定了 BMS 算法验证的可信度。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐