2. 实时仿真系统架构与核心指标
实时仿真不是“算得快”这么简单,它要求仿真模型在每一个采样周期内,必须在规定的时间窗口里完成一次完整的计算与输入输出更新。只要这个时间窗口被突破,仿真结果就可能失去物理意义,甚至导致被测控制器误动作。因此,理解实时系统的组成、硬实时与软实时的区别,以及采样率、抖动、延迟、超限这些核心指标,是后续做 HIL 部署的基础。
一、实时仿真系统的组成
一个典型的实时仿真系统由四部分构成:实时计算平台、I/O 接口层、被测设备(DUT)和监控与上位机。实时计算平台通常是一台带实时内核的工控机或嵌入式目标机,负责以固定步长求解模型;I/O 接口层完成模拟量、数字量、PWM、CAN 等信号的采集与输出;被测设备就是真实的控制器,例如 ECU、电机控制器或飞控板;上位机负责模型下载、参数标定、数据记录和在线观测。
这四部分之间形成闭环:实时平台输出执行器信号给 DUT,DUT 根据控制策略产生新的控制信号,再通过 I/O 回采到实时平台,驱动模型进入下一个仿真步。这个闭环的时序正确性,直接决定了 HIL 测试是否可信。
二、硬实时与软实时的区别
软实时系统允许偶尔错过截止时间,只要平均性能可接受即可,例如普通操作系统上的视频播放、桌面仿真。硬实时系统则要求每一次任务都必须在截止时间前完成,一次超限就视为系统失败。HIL 仿真属于典型的硬实时场景:如果模型在某个步长内没有算完,输出就会延迟一个周期,被测控制器看到的信号时序就错了,测试结论不再有效。
判断一个系统是否硬实时,关键看“最坏情况执行时间”(WCET)是否小于采样周期,而不是看平均执行时间。工程上常用实时操作系统(如 QNX、VxWorks、RT-Linux 的 PREEMPT_RT 补丁)来保证任务调度确定性。
三、采样率、抖动、延迟与超限
采样率是仿真步长的倒数。例如步长 1 ms 对应 1 kHz 采样率。步长越小,模型对高频动态的复现能力越强,但计算负担也越大。选择步长时,一般要求它至少比模型中最快时间常数的 1/10 还小。
抖动指实际任务触发时刻与理想周期时刻之间的偏差。理想情况下每个步长都精确在 0 ms、1 ms、2 ms 触发,但实际会存在微秒级波动。抖动过大会让离散化误差累积,影响控制环路稳定性。
延迟是从输入信号被采集,到对应输出信号被更新之间的时间。它包含 I/O 转换延迟、计算延迟和通信延迟。HIL 中通常要求总延迟小于一个步长,否则闭环相位裕度会明显下降。
超限(overrun)指某个步长的计算没有在周期内完成。超限会触发实时系统的保护机制,常见处理是记录超限次数、跳过该步输出或降级运行。工程上必须监控超限率,一般要求长时间运行下超限次数为 0。
四、HIL 系统的基本闭环结构
HIL 的核心思想是“用实时模型替代真实被控对象”。以电机控制 HIL 为例:实时平台运行电机与负载模型,通过 AO 输出三相电流对应的模拟信号给真实电机控制器;控制器计算出 PWM 占空比,通过 DI/PWM 采集回实时平台;模型根据占空比更新电流和转速,再输出下一拍信号。整个环路必须在每个 PWM 周期内闭合一次。
这个闭环里,实时平台是“虚拟世界”,DUT 是“真实大脑”,I/O 是两者之间的神经。任何一环的时序偏差都会破坏闭环真实性。因此 HIL 调试的第一步往往不是看控制效果,而是用示波器或实时平台自带的时序监控工具,确认步长触发是否稳定、超限计数是否为零、输入输出延迟是否在允许范围内。
五、工程上如何判断实时性是否达标
实际项目中,可以用下面这组检查项快速评估:
| 检查项 | 典型要求 | 观察方式 |
|---|---|---|
| 步长 Ts | ≤ 最快时间常数的 1/10 | 模型频响分析 |
| WCET | < 0.7 × Ts | 实时平台执行时间统计 |
| 抖动 | < 5% × Ts | 周期触发时间戳记录 |
| 总延迟 | < 1 × Ts | 输入输出打点测量 |
| 超限次数 | 长时间运行下为 0 | 实时系统 overrun 计数器 |
理解这些指标之后,后续选择实时目标机、配置求解器步长、划分任务优先级时,就有了明确的量化依据,而不是凭感觉调参。