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 实时闭环结构与关键时序指标 实时计算平台 实时内核 + 模型求解器 固定步长 Ts WCET < Ts 判定 I/O 接口层 AI / AO / DI / DO PWM / CAN / 编码器 信号调理与隔离 被测设备 DUT 真实控制器 / ECU 控制策略运行 产生控制输出 执行器信号 物理量 控制信号回采 反馈量 时序指标示意(步长 Ts = 1 ms) t 0 ms 1 ms 2 ms 3 ms 抖动 计算占用 超限 overrun 计算占用 输入→输出延迟 正常计算 超限 实际触发(含抖动)

四、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 计数器
提示:步长不是越小越好。步长减半,计算量通常翻倍,I/O 刷新压力也增大。工程上先满足动态精度,再留出 30% 以上的 CPU 余量,避免后期加观测或保护逻辑时出现超限。
注意:软实时平台上跑 HIL 模型,即使平均执行时间很短,也可能因为操作系统调度、中断或垃圾回收产生毫秒级抖动。这类抖动在慢速过程中不明显,但在高频闭环中会直接导致测试失败。

理解这些指标之后,后续选择实时目标机、配置求解器步长、划分任务优先级时,就有了明确的量化依据,而不是凭感觉调参。