2. 电驱系统基础

好,咱们正式开始动手搭环境。说实话,MIL测试这件事,工具链顺不顺直接影响后面所有工作的心情。我见过不少团队,模型写得漂亮,结果卡在测试环境上折腾了两周——说白了就是Test Manager没玩透。今天咱们就把这块啃下来。

2.1 为什么非得用Test Manager?

你可能用过Simulink自带的信号编辑器、Scope这些工具做点临时验证。但到了项目级MIL测试,你会发现几个痛点:

  • 用例散落:今天改个参数,明天换个工况,回头自己都找不到原始数据
  • 结果不可复现:同样的模型,换台电脑跑出来的曲线不一样
  • 评审没依据:测试通过还是失败,全靠截图说话

Test Manager就是来解决这些问题的。它把测试用例、执行环境、判定标准、报告生成全部串在一起。我参与的第一个量产项目,客户审核时直接要求看Test Manager的测试报告——从那以后我再也不敢手动测了。

核心价值一句话:Test Manager = 用例管理 + 自动化执行 + 通过/失败判定 + 可追溯报告

2.2 Test Manager界面速览

打开方式很简单:在MATLAB命令窗口输入 sltestmgr,或者从Simulink菜单栏选 Apps → Simulink Test。

界面分三大区域,我习惯叫它「左-中-右」结构:

区域 名称 作用
左侧 测试浏览器 树形结构,管理测试文件、测试套件、测试用例
中间 编辑器/详情面板 显示选中对象的详细配置
右侧 结果与工件面板 运行日志、覆盖率、通过/失败状态

嗯,这里要注意:左侧的树结构是可以嵌套的。我见过有人把所有用例平铺在一层,结果项目后期找用例找到崩溃。建议按功能模块建文件夹,比如 速度控制、扭矩管理、故障诊断。

2.3 创建你的第一个测试工程

咱们一步步来。假设你手里已经有一个Simulink模型,叫 CruiseControl.slx(定速巡航控制器)。

  1. 新建测试文件:在Test Manager界面,点击 New → Test File,保存为 CruiseControl_Test.mldatx。
  2. 创建测试套件:右键测试文件根节点,选 Add → Test Suite,命名为 基础功能测试。
  3. 添加测试用例:右键测试套件,选 Add → Test Case,命名为 TC001_定速激活。

这时候你会看到测试用例的配置面板。别被那么多选项卡吓到,核心就三个:

  • System Under Test:指定被测模型
  • Inputs:定义输入信号
  • Baseline / Equivalence Test Criteria:定义期望输出

我的习惯:每个测试用例的名字都带编号,比如 TC001、TC002。这样生成报告时排序清晰,评审时也好定位。我曾经吃过亏,用例叫「test1」、「test_final」、「test_final2」……后来自己都分不清哪个是哪个。

2.4 测试环境配置——别踩这些坑

配置环境是新手最容易翻车的地方。我列几个关键项:

2.4.1 系统被测试对象配置

在 System Under Test 选项卡里:

  • Model:选择你的 CruiseControl.slx
  • Simulation Mode:MIL测试选 Normal 或 Accelerator。我个人建议用 Normal,调试方便;如果模型太大跑不动,再切 Accelerator
  • Signal Editor:这里可以加载外部输入文件(.mat或.xlsx)

2.4.2 输入信号配置

在 Inputs 选项卡里:

  • 可以直接用 Signal Editor 块在模型里定义,也可以在Test Manager里直接创建 Input Data
  • 支持的数据源:工作区变量、MAT文件、Excel、CSV
  • 时间范围:我一般设成比仿真时长多10%,防止边界截断

我曾经踩过的坑:输入信号的采样时间跟模型步长不匹配,导致仿真结果出现锯齿。后来我养成了一个习惯——在配置输入后,先跑一次看看信号曲线是否平滑,再开始正式测试。

2.4.3 基线判定配置

在 Baseline Criteria 选项卡里:

  • 导入期望输出数据(通常来自上一轮仿真或需求文档)
  • 设置容差:Absolute Tolerance 和 Relative Tolerance
  • 容差怎么设?我一般先设 1e-3,如果因为数值误差导致误判,再放宽到 1e-2

2.5 跑一次完整的MIL测试

配置完成后,点击 Run 按钮。Test Manager会依次执行所有测试用例,并在右侧面板显示结果:

  • 绿色勾:通过
  • 红色叉:失败(点进去能看到具体哪个时间点超差)
  • 黄色感叹号:警告(比如仿真报错但没崩溃)

跑完之后,记得点 Export → Report 生成PDF或HTML报告。这个报告可以直接发给客户或用于内部评审。

2.6 知识结构总览

下面这张图帮你理清Test Manager的配置逻辑:

Simulink Test Manager 配置逻辑 测试工程 (.mldatx) 测试套件 (Test Suite) 测试用例 (Test Case) System Under Test Inputs Baseline Criteria • 选择模型文件 • 仿真模式 (Normal/Accel) • 信号编辑器 / 外部文件 • 时间范围 / 采样步长 • 期望输出数据 • 绝对/相对容差 运行 → 生成报告

2.7 几个实用技巧

  • 批量导入用例:如果已经有Excel测试用例表,可以用 sltest.testmanager.import 函数批量导入,省去手动创建的时间
  • 复用配置:右键测试用例选 Copy,然后修改输入信号即可快速生成相似用例
  • 回调函数:在测试用例的 Callbacks 选项卡里,可以写MATLAB脚本做预处理或后处理。比如我经常在 setup 回调里加载全局参数

避坑指南:测试文件路径不要带中文和空格。MATLAB在某些版本下对中文路径支持不好,我曾经因为这个折腾了一下午,最后发现是路径里有个「测试」两个字。