3. 被控对象模型与实时仿真
在 dSPACE HIL 平台中,被控对象模型(Plant Model)是运行在实时处理器上的“虚拟实物”。它必须在一个固定步长内完成全部计算,否则会破坏闭环时序,导致测试结果失真。因此,把 Simulink/Simscape 等离线模型转化为可实时执行的模型,是 HIL 工程中最关键的一步。本节围绕模型分割、实时化方法、求解器选择、接口定义与闭环验证五个环节展开,并给出可操作的参数与判断依据。
一、模型分割:按实时性与耦合强度切分
模型分割的目标是让每个计算单元都能在步长内完成,同时不破坏物理耦合。常用依据有三条:刚性程度(快动态与慢动态分离)、耦合强度(强耦合必须同核)、采样率需求(高频部分单独成核)。例如整车模型中,发动机扭矩动态(时间常数约 10 ms)与车身运动(约 1 s)可分离;而电机与逆变器电流环(约 100 μs)必须与 PWM 模型同核。
分割后通常形成“主模型 + 子模型”结构:主模型运行在实时核 0,负责整车动力学与接口调度;子模型运行在核 1~3,负责高频电气或液压部分。核间通过共享内存或反射内存交换数据,交换周期必须与最慢子模型步长一致。若某子模型计算时间超过步长的 70%,应继续拆分或降低其内部状态数。
二、实时化方法:从离线到定步长
离线模型常含变步长求解器、代数环、查表外推和连续状态。实时化时需做四类处理:
- 定步长离散化:将连续积分器替换为前向欧拉或 Tustin 离散模块,步长取 1 ms 或 0.1 ms。
- 代数环消除:在反馈路径插入单位延迟(z-1),把代数环变为因果链。延迟会引入一步相位滞后,需在验证时确认不影响稳定性。
- 查表与插值:把外推改为线性插值并限制输入范围,避免实时运行时越界。
- 计算量优化:合并重复子系统、用定点或单精度替代双精度、把矩阵运算展开为标量运算。
以某 1 ms 步长的电池模型为例,原始双精度版本单步耗时 0.82 ms,接近上限;改为单精度并展开 3×3 矩阵后降至 0.31 ms,留出足够余量。这类优化应在模型分割之后、求解器选择之前完成。
三、求解器选择:定步长下的取舍
dSPACE 实时系统只支持定步长求解器。常用选项及适用场景如下:
| 求解器 | 特点 | 适用场景 |
|---|---|---|
| Euler(前向欧拉) | 计算量最小,一阶精度,稳定性一般 | 步长足够小、动态不刚性的模型 |
| Heun / RK2 | 二阶精度,计算量约为 Euler 的 2 倍 | 中等刚性、对精度有要求的动力学 |
| RK4 | 四阶精度,计算量大 | 步长较大且动态平滑的模型 |
| Tustin(双线性) | 频域保角,适合滤波器与控制器 | 离散控制器、信号调理环节 |
选择原则:先看刚性比(最大与最小时间常数之比)。刚性比大于 100 时,Euler 需要极小步长才能稳定,此时应改用 Tustin 或对快动态单独分割;刚性比小于 10 时,Euler 在 1 ms 下通常足够。另一个判据是相位裕度损失:Euler 在步长 T 下引入约 ωT/2 的相位滞后,若闭环截止频率为 100 rad/s、T=1 ms,滞后约 0.05 rad(约 2.9°),可接受;若 T=5 ms,滞后约 14.3°,需重新评估。
四、模型接口定义:让虚拟对象与真实 ECU 对齐
接口定义决定 HIL 能否正确闭环。需要明确四类信号:
- 输入信号:来自真实 ECU 的执行器驱动(如喷油脉宽、PWM 占空比),需定义量程、极性、采样率和故障默认值。
- 输出信号:送往 ECU 的传感器仿真值(如曲轴位置、氧传感器电压),需定义更新率和分辨率。
- 总线信号:CAN/CAN FD 报文,需定义报文 ID、周期、信号起始位与字节序。
- 故障注入信号:开路、短路、漂移,需定义注入点与恢复条件。
接口定义应形成一张 I/O 映射表,至少包含:信号名、方向、物理量、量程、单位、更新率、对应 dSPACE 通道、故障默认值。例如“节气门位置反馈”方向为输出,量程 0~5 V,更新率 1 ms,通道 DS2102 DAC0,故障默认 0.5 V。映射表完成后,用 dSPACE ConfigurationDesk 生成接口代码,避免手工连线错误。
五、闭环验证:从波形到指标
闭环验证分三步。第一步开环检查:断开 ECU,手动给定执行器信号,观察模型输出是否符合物理预期,例如给定 50% 占空比,电机转速应稳定在对应值附近。第二步闭环接入:连接真实 ECU,运行典型工况(怠速、加速、急减速),用 ControlDesk 记录关键波形。第三步指标判定:
- 实时性:CPU 负载低于 70%,超时计数为 0,步长抖动小于 5%。
- 一致性:与离线仿真同工况对比,关键量(转速、扭矩、温度)偏差小于 5%。
- 稳定性:闭环无持续振荡,相位裕度不低于 30°。
若偏差超标,优先检查代数环延迟是否过大、求解器是否与刚性不匹配、接口量程是否接反。例如某次验证中转速偏差达 12%,排查发现曲轴信号更新率被误设为 10 ms,改为 1 ms 后偏差降至 3%。这说明接口更新率与模型步长必须一致,否则会引入额外滞后。
综上,模型分割决定计算能否并行,实时化决定能否在步长内完成,求解器决定精度与稳定性的平衡,接口定义决定闭环能否正确建立,闭环验证则给出可量化的通过判据。五者顺序推进、迭代优化,才能让被控对象模型在 dSPACE HIL 平台上真实可信地运行。