4、被控对象建模:充电桩电气模型、电池模型、电网模型、故障模型

做硬件在环测试,说白了就是跟虚拟世界打交道。你得把真实设备的行为,用数学模型搬到仿真器里。这个环节我称之为「搭积木」——积木搭得不像,后面所有测试都是白搭。

我个人习惯,先把被控对象拆成四大块:充电桩本身、电池、电网,还有故障。每一块都有它的脾气。咱们一个一个说。

4.1 充电桩电气模型

充电桩的电气模型,核心就是功率变换那一套。我见过不少新手,上来就搞复杂的开关管模型,其实没必要。在HIL测试里,我们更关注外特性。

说白了,你要模拟的是:

  • 输入侧:整流、PFC(功率因数校正)
  • 输出侧:DC-DC变换、电压电流控制
  • 通信接口:CP(控制导引)、CC(连接确认)信号

嗯,这里要注意。充电桩的CP信号波形,是判断充电枪是否插好、是否允许充电的关键。我曾在项目里遇到一个问题:仿真器输出的CP占空比总是偏了2%。结果BMS死活不握手。查了两天,最后发现是模型里PWM的定时器精度设错了。

一个典型的充电桩输出模型,用数学公式表达就是:

V_out = V_in * D - I_out * R_loss
其中:
  D 为占空比(0~1)
  R_loss 为等效内阻(含线路、开关损耗)

你想想看,这个公式虽然简单,但加上动态响应时间常数,就能模拟出充电桩的「软特性」。比如恒流阶段电流纹波多大,恒压阶段电压过冲多少。

我的经验: 充电桩模型里,最容易被忽略的是「死区时间」。实际IGBT开关有死区,模型里如果不加,仿真出来的电压波形会过于理想。建议在模型中插入一个一阶惯性环节,时间常数设为2~5μs。

4.2 电池模型

电池模型是HIL测试里最头疼的部分。为什么?因为电池的化学特性太复杂了。温度、SOC、SOH,甚至充放电历史都会影响它的表现。

我一般把电池模型分成三个层次:

  1. 开路电压模型:OCV与SOC的关系曲线。这个必须实测,别想当然。
  2. 内阻模型:包含欧姆内阻和极化内阻。欧姆内阻影响瞬间压降,极化内阻影响动态响应。
  3. RC网络模型:一阶或二阶RC,模拟电池的极化效应。

举个例子,一个二阶RC电池模型:

V_t = OCV(SOC) - I * R0 - V1 - V2
其中:
  dV1/dt = I/C1 - V1/(R1*C1)
  dV2/dt = I/C2 - V2/(R2*C2)

我曾经踩过一个坑。当时做国标GB/T 27930的协议测试,电池模型里SOC计算用的是安时积分法。结果跑了两个小时,SOC误差累积到了5%。BMS直接报SOC不一致故障,测试中断。后来我加了卡尔曼滤波修正,才把误差控制在1%以内。

避坑指南: 电池模型的初始SOC一定要和真实BMS对齐。我曾经遇到过,模型SOC设成50%,但BMS实际是48%,结果一上电就触发SOC跳变保护。建议在模型初始化时,先读取BMS的SOC值作为输入。

4.3 电网模型

电网模型,很多人觉得不就是个交流源嘛。其实不然。在HIL测试里,电网模型要能模拟:

  • 电压波动:比如±10%的电压偏差
  • 频率波动:49.5Hz~50.5Hz
  • 谐波干扰:3次、5次、7次谐波
  • 三相不平衡:特别是单相充电桩接入时

我个人的习惯,电网模型用理想电压源加阻抗网络来实现。阻抗网络包括线路阻抗和变压器漏感。这样当充电桩启动时,电网电压会有跌落,更贴近真实情况。

一个简单的电网模型公式:

V_grid(t) = V_m * sin(2πft + φ) + Σ V_h * sin(2πhft + φ_h)
其中:
  V_m 为基波幅值
  f 为基波频率
  h 为谐波次数
  V_h 为h次谐波幅值

你想想看,如果电网模型里不加谐波,充电桩的PFC控制算法在真实电网下可能根本稳不住。我见过一个案例,充电桩在实验室测试全通过,到了现场频繁报电网异常。最后发现是现场电网的5次谐波含量高达8%,而实验室的电网源是纯净的。

注意: 电网模型的动态响应速度要足够快。HIL测试中,充电桩的PFC控制周期通常在100μs级别。如果电网模型更新太慢,会导致控制环路不稳定。建议模型计算步长不超过10μs。

4.4 故障模型

故障模型,这才是HIL测试的精髓。没有故障注入,你测的都是理想情况。故障模型要覆盖:

故障类型 典型场景 注入方式
电气故障 短路、断路、接地 继电器切换、电阻串入
通信故障 CAN总线断线、报文丢失 信号中断、CRC错误注入
传感器故障 电压/电流采样偏差 模拟量偏置、增益误差
环境故障 温度过高、湿度异常 模拟信号替换

嗯,这里我要多说一句。故障注入不是乱来的。你得有故障树分析(FTA)作为依据。我曾经见过一个测试团队,把所有故障类型都注入一遍,结果报告写了200页,但真正有用的只有20页。

我个人建议,故障模型要遵循「二八原则」:80%的测试资源,集中在20%的高风险故障上。比如:

  • 充电枪CC信号短路到PE
  • CP信号PWM丢失
  • BMS的CAN报文超时
  • 绝缘检测电阻异常

这些故障一旦在真实场景发生,轻则充电中断,重则设备损坏甚至人身安全。

我的经验: 故障注入的时序很重要。比如在充电过程中突然断开CC信号,和充电前断开,控制器的反应完全不同。建议在测试用例中明确标注「故障注入时刻」,比如「恒流阶段第30秒注入CC断路」。

最后总结一句。被控对象建模,不是越复杂越好。关键是抓住影响测试目标的核心特性。充电桩模型要准,电池模型要稳,电网模型要真,故障模型要狠。四者配合好了,你的HIL测试才能发现真问题。