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建立场景与车辆参数。在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报告应引用对应的测量文件路径。
五、常见误区与判断依据
初学者容易把AutomationDesk当作“直接控制硬件的工具”,实际上它必须通过ControlDesk或XIL API间接访问实时变量。如果AutomationDesk无法读取某个变量,首先应检查该变量是否在ConfigurationDesk中被标记为可观测,以及ControlDesk是否已正确加载变量描述文件。另一个常见问题是参数集未生效:在ModelDesk中修改了车辆质量,但实时运行结果不变,通常是因为实时应用没有重新构建或参数集没有正确关联。判断依据是:在ControlDesk中观察被控对象的关键变量,若其数值与ModelDesk设定值不符,则说明参数集未正确加载。
理解这四个组件的分工与交接,是后续搭建自动化回归测试框架的基础。下一阶段将进入具体操作,从ConfigurationDesk的I/O配置开始,逐步建立可运行的实时测试环境。