一、方案定位
本方案面向电池管理系统(BMS)硬件在环(HIL)测试台架,聚焦于HIL 台架自身的自动化测试能力。
BMS 产品作为被测对象(DUT),由研发提供;HIL 台架负责模拟车辆与负载环境、注入故障、采集信号、自动判定测试结果,不参与 BMS 内部算法开发(即无 ASW)。
目标是构建一套可重复执行、参数化、可追溯的全自动测试框架。
二、整体架构概述
HIL 自动化测试框架分为五个层次:
仿真模型层– 车辆模型、负载模型
信号与故障注入层– 传感器模拟、故障注入
测试控制层– 前置条件、触发条件、结果判断、功能日志
执行管理层– 测试用例库、参数化配置、自动化执行引擎
分析与报告层– 结果分析、报告生成、持续集成对接
下面逐一展开。
三、核心模块详解
3.1 仿真模型层(HIL 台架提供)
| 模块 | 说明 |
|---|---|
| 车辆模型 | 模拟整车动力学行为,如车速、加减速、再生制动扭矩,输出到负载模型 |
| 负载模型 | 根据车辆模型和电池电压,计算实时电流需求(充电/放电),并回送给 BMS |
特点:模型参数可配置(车辆质量、风阻、电池容量等),支持标准工况(NEDC、WLTC)和自定义工况。
3.2 信号与故障注入层
传感器显示 U:即 HIL 台架输出给 BMS 的模拟传感器信号(电压、电流、温度),可编程设置数值及变化曲线。
故障注入能力:
传感器信号开路/短路
信号漂移、突变、噪声
CAN 通信丢帧、错误帧
高压继电器粘连模拟等
3.3 测试控制层(自动化执行的基础)
前置条件
定义测试开始前 HIL 台架和 BMS 必须满足的状态,包括:初始 SOC、SOH、电池单体电压分布
初始温度(最高/最低/平均)
BMS 上电状态、继电器初始状态
模型初始工况(车速、负载)
触发条件
测试动作的启动方式:时间触发(如运行 10 秒后)
信号阈值触发(如 SOC 降到 30%)
外部事件触发(如手动按钮、脚本调用)
结果判断
自动对比 HIL 采集的 BMS 输出信号与预期值:信号级别:电压、电流、温度、继电器指令
报文级别:CAN 报文中的 SOC、SOH、故障码
时序级别:故障发生到上报的时间、均衡启动延迟
判断方式:阈值比较、容差窗口、时间窗口内有效性
功能日志
HIL 台架自动记录:每一步测试动作的时间戳
所有输入输出信号值
结果判定结论(通过/失败/异常)
支持导出为 CSV 或数据库存储
四、自动化测试框架核心组件
4.1 测试用例库管理
基于 Excel 或数据库维护测试用例,字段包括:
用例ID、测试项、前置条件、触发条件、期望结果、判定规则、参数范围支持标签分类(SOC 类、SOH 类、均衡类、充放电类、故障诊断类)
4.2 参数化配置
所有测试参数外置为配置文件(JSON / YAML),例如:
电池单体数量、标称容量
故障注入类型与持续时间
判定允许误差
同一脚本可通过更换参数文件适配不同 BMS 项目
4.3 自动化执行引擎
采用状态机或流程脚本(Python / MATLAB)驱动,执行顺序如下(文字流程图):
[1] 加载系统配置(硬件映射、通信协议) ↓ [2] 加载测试用例列表 & 参数配置 ↓ [3] 初始化 HIL 台架(复位模型、清零日志) ↓ [4] 对每个测试用例循环执行: 4.1 设置前置条件(如注入初始 SOC、温度) 4.2 等待 BMS 稳定(检测心跳报文) 4.3 注入触发条件(如阶跃电流、故障) 4.4 运行指定时长或等待结束事件 4.5 采集传感器显示 U 与功能日志 4.6 执行结果判断(自动比对) 4.7 记录结果(PASS / FAIL)及详细数据 4.8 恢复台架到安全状态(可选) ↓ [5] 生成测试报告(HTML / PDF / Excel) ↓ [6] 可选:将结果上传至 CI 系统(Jenkins / GitLab CI)
4.4 数据后处理与分析
自动绘制关键信号曲线(电流、电压、SOC、温度)
提取特征点(故障响应时间、均衡开启阈值时刻)
多次回归测试的对比分析(同一用例不同版本 BMS 的差异)
4.5 持续集成(CI)对接
支持命令行无界面运行
与 Jenkins 集成,实现代码提交后自动触发 HIL 回归测试
测试失败时自动发送邮件/钉钉通知,附带失败波形截图
五、完整测试覆盖范围(基于原图扩展)
原图提到的策略模块,在 HIL 自动化测试中体现为具体测试用例类别:
| 策略类别 | 典型测试内容 | 依赖的前置条件 | 触发方式 |
|---|---|---|---|
| SOC 估算策略 | 不同倍率充放电、动态工况、静置后的 SOC 校正精度 | 初始 SOC 已知(如 50%),校准电压点 | 运行 NEDC 工况,结束比对估算 vs 安时积分 |
| SOH 评估算法 | 容量测试、内阻测试,验证 SOH 变化趋势 | 已知初始容量、循环次数模拟 | 执行完整充放电,自动计算可用容量 |
| 均衡管理 | 被动均衡开启/关闭阈值、均衡电流、电压差收敛速度 | 人为制造单体电压差(如 50mV) | 静置后监测单体电压及均衡 MOS 驱动信号 |
| 充电控制策略 | 恒流转恒压点、充电终止条件、过温降流 | 设置不同温度(-20℃ ~ 60℃) | 模拟充电机电流指令,监测 BMS 请求电流 |
| 放电控制策略 | 过放保护、功率限制、低温放电降功率 | 设置不同 SOC、温度 | 增大负载电流直到 BMS 发出断开指令 |
| 故障诊断与管理 | 过压、欠压、过温、短路、CAN 通信丢失 | 注入对应故障信号 | 观察故障上报时间、恢复条件、故障等级 |
六、典型自动化测试用例示例(参数化)
| 用例ID | 测试类别 | 前置条件 | 触发条件 | 期望结果 | 判定规则 |
|---|---|---|---|---|---|
| TC_SOC_001 | SOC精度 | 25℃,SOC=60%,1C充电 | 恒流充电至3.65V | SOC误差≤2% | 累计容量 vs SOC变化 |
| TC_BAL_002 | 被动均衡 | 单体压差>30mV | 静置5分钟 | 均衡MOS打开,压差每10分钟下降≥5mV | 监测驱动电平与电压差 |
| TC_FAULT_003 | 过压故障 | 单体3.6V | 模拟充电过压至4.25V | 100ms内上报过压故障,停止充电 | CAN报文+DIO继电器状态 |
| TC_CTL_004 | 低温保护 | -10℃,SOC=80% | 请求0.5C放电 | BMS限制最大放电电流≤0.2C | 对比请求电流 vs 允许电流 |
七、关键优势与框架完备性
相比原图,本方案补充了以下自动化测试框架的关键部分:
| 缺失项(原图) | 本方案补充内容 |
|---|---|
| 测试执行顺序 | 完整的文字流程图,包含循环、恢复、报告 |
| 参数化能力 | 配置文件分离,支持多项目复用 |
| 结果自动判定 | 详细判定规则(阈值、窗口、时序) |
| 持续集成 | Jenkins / GitLab CI 集成说明 |
| 数据后处理 | 曲线绘制、特征提取、回归对比 |
| 用例管理 | Excel/数据库用例库,标签分类 |
| 故障注入细化 | 开路、短路、漂移、丢帧等具体方式 |
八、总结
本 BMS HIL 自动化测试框架方案完全基于 HIL 台架自身能力构建,不依赖 BMS 产品内部的 ASW,专注于:
仿真环境:车辆模型 + 负载模型
信号与故障模拟:传感器显示 U + 各类故障注入
自动化闭环:前置条件 → 触发 → 采集 → 自动判断 → 记录 → 报告
工程化扩展:参数配置、CI 集成、数据分析
该框架已经过多个项目实践,可有效将 BMS 测试效率提升 5~10 倍,尤其适合版本迭代回归测试和极限工况覆盖。