2. dSPACE工具链与回归测试基础

在基于dSPACE的自动化回归测试平台中,工具链并不是若干软件的简单堆叠,而是一条从“模型定义”到“被控对象运行”再到“测试执行与结果观测”的完整数据与信号通路。理解ControlDesk、AutomationDesk、ConfigurationDesk、ModelDesk各自负责什么、彼此通过什么文件或接口交接,是后续搭建回归测试框架的前提。本节先建立这条链路的整体认识,再逐层展开关键交接点。

一、四个核心组件在回归测试中的定位

可以把整条链路理解为“三层一入口”:

  • ModelDesk——负责车辆、道路、驾驶员、交通环境等被控对象与场景的参数化建模。它输出的是模型参数集与场景描述,决定“被测对象在什么条件下运行”。
  • ConfigurationDesk——负责实时硬件(如SCALEXIO、MicroAutoBox)的I/O配置、模型集成与实时应用构建。它把Simulink模型、I/O通道、总线(CAN/LIN/FlexRay/Ethernet)绑定成可下载到实时硬件的应用,决定“模型如何真实地跑起来”。
  • ControlDesk——负责实验管理、变量观测、参数在线标定与测量数据记录。它是回归测试中的观测与激励入口,决定“我们如何看到信号、如何手动干预”。
  • AutomationDesk——负责测试序列编写、自动执行、结果判定与报告生成。它是回归测试的执行引擎,决定“测试如何被自动跑完并给出结论”。

四者并非并列关系,而是存在明确的依赖方向:ModelDesk与ConfigurationDesk先完成“可运行的实时系统”搭建,ControlDesk与AutomationDesk才能在此基础上进行观测与自动化测试。AutomationDesk本身并不直接操作硬件,它通过ControlDesk的接口(如ControlDesk NG API、XIL API)访问实时变量、读取测量数据、触发激励。

二、协作关系与数据流

下图给出四个组件在回归测试中的典型协作关系。注意图中区分了“配置阶段”与“测试执行阶段”:配置阶段产出实时应用与参数集,测试执行阶段则围绕实时变量进行读写与判定。

配置阶段(离线) 测试执行阶段(在线) ModelDesk 车辆/道路/驾驶员 参数化建模 ConfigurationDesk I/O配置 · 模型集成 实时应用构建 实时硬件 SCALEXIO / MicroAutoBox ControlDesk 变量观测 · 在线标定 测量记录 AutomationDesk 测试序列 · 自动执行 判定 · 报告 参数集 下载实时应用 变量读写/测量 API 测试激励与信号采集 关键交接点 ① ModelDesk → ConfigurationDesk:模型参数集(.par / 场景文件)被实时应用引用,决定被控对象行为。 ② ConfigurationDesk → 实时硬件:生成并下载实时应用,绑定I/O与总线,形成可运行的被控对象。 ③ ControlDesk ↔ 实时硬件:通过变量描述文件(.sdf / .a2l)建立变量映射,实现观测与标定。 ④ AutomationDesk → ControlDesk/实时硬件:通过XIL API或ControlDesk接口读写变量,驱动测试序列并采集结果。

三、回归测试中的实际交接过程

以一个典型的“车速跟随控制”回归测试为例,说明四个组件如何依次介入。

第一步:ModelDesk建立场景与车辆参数。在ModelDesk中定义车辆质量、轮胎刚度、传动比等参数,并设置一条目标车速曲线(例如0→60 km/h,加速度2 m/s²)。这些参数以参数集文件形式保存,供实时模型引用。此时还没有任何实时运行,只是“定义条件”。

第二步:ConfigurationDesk构建实时应用。将Simulink中的控制器模型与被控对象模型集成,分配I/O通道(如CAN通道用于接收目标车速、模拟输出用于采集实际车速),设置任务步长(例如1 ms),然后编译并下载到SCALEXIO。下载完成后,实时硬件上运行的就是一个与参数集绑定的可执行应用。

第三步:ControlDesk建立观测与标定界面。ControlDesk通过读取实时应用生成的变量描述文件,获得所有可观测变量的列表。测试工程师将目标车速、实际车速、节气门开度等变量拖入测量面板,并配置数据记录(例如采样周期1 ms,记录到MDF文件)。此时可以手动修改目标车速,观察实际车速响应,验证基本功能。

第四步:AutomationDesk编写并执行回归测试序列。AutomationDesk通过XIL API连接到实时硬件,按测试用例逐步执行:设置目标车速为60 km/h,等待5 s,读取实际车速,判断是否在58~62 km/h范围内;再设置目标车速为0,判断减速过程是否满足减速度限制。每个用例的结果自动写入报告,并标记通过/失败。

四、回归测试对工具链协作的特定要求

与单次功能测试不同,回归测试强调“可重复、可批量、可追溯”。这对工具链协作提出三点要求:

  • 参数与模型版本一致:ModelDesk中的参数集必须与ConfigurationDesk构建的实时应用版本对应。若参数集更新而实时应用未重新构建,回归结果将不可信。实践中通常用版本号或哈希值绑定两者。
  • 变量接口稳定:AutomationDesk依赖变量名和数据类型进行读写。若ConfigurationDesk重新分配I/O或修改变量名,测试序列必须同步更新。因此变量命名规范应在项目初期确定,并纳入配置管理。
  • 测量数据可追溯:ControlDesk记录的数据文件应包含测试用例标识、时间戳和参数集版本,便于失败时回溯。AutomationDesk报告应引用对应的测量文件路径。
在实际项目中,建议将ModelDesk参数集、ConfigurationDesk工程、ControlDesk布局文件和AutomationDesk测试序列统一纳入版本控制(如Git或SVN),并在每次回归测试前执行一次“构建-下载-自检”流程,确认实时应用与参数集匹配后再启动自动化测试。

五、常见误区与判断依据

初学者容易把AutomationDesk当作“直接控制硬件的工具”,实际上它必须通过ControlDesk或XIL API间接访问实时变量。如果AutomationDesk无法读取某个变量,首先应检查该变量是否在ConfigurationDesk中被标记为可观测,以及ControlDesk是否已正确加载变量描述文件。另一个常见问题是参数集未生效:在ModelDesk中修改了车辆质量,但实时运行结果不变,通常是因为实时应用没有重新构建或参数集没有正确关联。判断依据是:在ControlDesk中观察被控对象的关键变量,若其数值与ModelDesk设定值不符,则说明参数集未正确加载。

理解这四个组件的分工与交接,是后续搭建自动化回归测试框架的基础。下一阶段将进入具体操作,从ConfigurationDesk的I/O配置开始,逐步建立可运行的实时测试环境。