3. 原型开发环境搭建

MicroAutoBox 的原型开发不是“装一个软件就能跑”的单工具任务,而是一条由建模、实时接口生成、硬件配置、上位机监控四个环节组成的工具链。理解这条链上每个软件的角色与依赖关系,是避免后续“编译报错、板卡识别不到、变量无法观测”等问题的前提。本节先厘清工具链分工,再给出可复现的安装配置与工程创建流程。

一、四个软件在工具链中的位置

MATLAB/Simulink 是模型开发与代码生成的宿主环境,负责算法建模、仿真验证,并通过 Simulink Coder 生成 C 代码。RTI(Real-Time Interface)是 dSPACE 提供的实时接口库,它把 Simulink 模型中的 I/O 模块映射到 MicroAutoBox 的实际硬件通道,并生成可在实时系统上运行的代码框架。ConfigurationDesk 负责硬件层面的配置:定义板卡类型、I/O 通道、任务周期、RTI 与硬件的绑定关系,输出配置文件供 RTI 使用。ControlDesk 是上位机实验软件,负责在线观测变量、标定参数、记录数据、管理实验。四者的数据流关系如下:

MATLAB / Simulink 算法建模 · 仿真验证 Simulink Coder 生成 C 代码 RTI 实时接口 I/O 模块映射硬件通道 生成实时可执行代码 ConfigurationDesk 板卡 / 通道 / 任务周期 输出硬件配置文件 ControlDesk 在线观测 · 标定 · 记录 实验管理 MicroAutoBox 实时运行目标硬件 DS1401 / DS1511 等 模型 + 代码 硬件配置请求 配置文件回传 下载 / 观测 可执行文件 工具链数据流:建模 → 硬件配置 → 实时接口生成 → 目标运行 → 上位机监控

二、安装顺序与版本匹配

dSPACE 工具链对 MATLAB 版本有严格的兼容矩阵。以 MicroAutoBox II(DS1401)为例,若使用 dSPACE Release 2023-A,通常要求 MATLAB R2021b 至 R2023a 之间的版本。安装顺序建议为:先装 MATLAB/Simulink(含 Simulink Coder、MATLAB Coder、Embedded Coder),再装 dSPACE 软件包(RTI、ConfigurationDesk、ControlDesk),最后安装硬件驱动与 RTI 的 MATLAB 集成组件。若顺序颠倒,RTI 安装程序可能找不到 MATLAB 路径,导致 Simulink 库中不出现 dSPACE 模块组。

安装完成后,在 MATLAB 命令窗口执行 rti 或 rti_version 可检查 RTI 是否注册成功;执行 ver 可查看已安装工具箱列表,确认 Simulink Coder 与 dSPACE RTI 均在其中。若 RTI 未出现在 Simulink Library Browser 中,通常需要在 dSPACE 安装目录下运行 rti_setup 脚本重新注册路径。

三、ConfigurationDesk 硬件配置

ConfigurationDesk 的核心任务是建立“硬件描述文件”。新建工程时选择目标硬件平台(如 DS1401),软件会自动加载该平台可用的板卡列表。以 DS1401 搭配 DS1511 I/O 板为例,典型配置步骤为:

  1. 在 Hardware 视图中添加 DS1511 板卡,设置其插槽位置。
  2. 在 I/O 通道视图中启用所需通道,例如 ADC 通道 1~4 设为 ±10 V 输入,DAC 通道 1~2 设为 0~5 V 输出。
  3. 在 Task 视图中定义任务周期,例如 1 ms 基础任务、0.1 ms 快速任务,并分配各通道所属任务。
  4. 保存配置,生成 .cdx 或 .sdf 配置文件,供 RTI 在 Simulink 中引用。

这里的关键参数是任务周期与通道采样率。若模型中有 0.1 ms 任务,则对应 ADC 通道的采样必须在该任务中读取,否则会出现数据陈旧或任务超时。ConfigurationDesk 中每个通道的“Task assignment”必须与 Simulink 模型中 RTI 模块的采样时间一致,这是后续实时运行稳定的基础。

四、Simulink 工程创建与 RTI 配置

在 MATLAB 中新建 Simulink 模型后,需要完成三件事:配置求解器、加入 RTI 模块、设置代码生成目标。求解器应设为固定步长(Fixed-step),步长与 ConfigurationDesk 中定义的基础任务周期一致,例如 1e-3 s。求解器类型选择 ode4(Runge-Kutta)或 ode1(Euler),实时仿真通常用 ode4 以获得更好的数值稳定性。

从 Simulink Library Browser 的 dSPACE RTI 库中拖入对应模块,例如 DS1511_ADC 和 DS1511_DAC。双击模块,在参数对话框中指定通道号、电压范围、采样时间。这些参数必须与 ConfigurationDesk 中的配置逐项对应。随后在模型配置参数(Configuration Parameters)中,将 System target file 设为 rti1401.tlc(对应 DS1401),语言选 C,并确认“Generate code only”未被勾选,以便直接编译下载。

% 示例:检查 RTI 目标是否可用
rti_version
% 输出示例(假设):
% dSPACE RTI for MicroAutoBox II, Release 2023-A
% Target: rti1401.tlc

% 示例:设置模型固定步长
set_param('myController','Solver','FixedStepDiscrete');
set_param('myController','FixedStep','1e-3');
set_param('myController','SystemTargetFile','rti1401.tlc');

完成配置后,点击 Build Model。Simulink Coder 会调用 RTI 的编译流程,生成目标代码并自动下载到 MicroAutoBox。若编译成功,MATLAB 命令窗口会显示类似“Download successful”的提示;若失败,常见原因包括:目标文件路径含中文或空格、MATLAB 与 dSPACE 版本不匹配、ConfigurationDesk 配置文件未正确引用。

五、ControlDesk 实验创建与变量观测

ControlDesk 工程创建的第一步是新建实验(Experiment),然后添加平台(Platform),选择与硬件对应的 MicroAutoBox 设备。连接成功后,ControlDesk 会自动读取目标中运行的变量列表。此时可以创建仪表板(Layout),从变量浏览器中拖入需要观测的信号,例如电机转速、电流给定、PWM 占空比。

一个实用的做法是:在 Simulink 模型中用 DSRTI 或 RTI Data 模块将关键信号标记为可观测变量,这样它们才会出现在 ControlDesk 的变量列表中。对于标定量,使用 RTI Parameter 模块定义,并在 ControlDesk 中通过标定控件在线修改。记录数据时,建议设置触发条件而非全程记录,例如“当转速超过 1000 rpm 时触发”,以节省存储空间并聚焦关键工况。

安装与配置的检查顺序建议:先确认 MATLAB 与 dSPACE 版本兼容,再确认 RTI 已注册到 Simulink,然后确认 ConfigurationDesk 配置文件与 Simulink 中 RTI 模块参数一致,最后确认 ControlDesk 能识别目标并读取变量。任何一步不一致,都会在后续环节以“编译失败”或“变量不可见”的形式暴露出来。

六、常见配置错误与排查方向

现象可能原因排查方向
Simulink 库中无 dSPACE 模块RTI 未注册或 MATLAB 路径未更新运行 rti_setup,检查 MATLAB 版本兼容性
编译报错“target not found”System target file 设置错误确认选择 rti1401.tlc 而非 grt.tlc
下载后无输出ConfigurationDesk 通道未启用或任务未分配检查通道 Task assignment 与采样时间
ControlDesk 变量列表为空模型未标记可观测变量在 Simulink 中加入 RTI Data 模块并重新编译