3. 实时仿真基础

在控制器HIL(硬件在环)实时仿真系统中,“实时”并不是指“算得快”,而是指系统必须在确定的时间界限内完成计算并输出结果。理解硬实时与软实时的区别、采样周期与抖动的关系,以及超限如何影响仿真可信度,是搭建可靠HIL平台的基础。

一、硬实时与软实时:约束的性质不同

硬实时(Hard Real-Time)要求任务必须在截止时间(Deadline)前完成,一旦超时,结果即视为无效,甚至可能造成安全风险。在HIL中,被控对象模型(如电机、液压执行器、电池模型)的求解、I/O采集与PWM输出通常属于硬实时任务。例如,一个10 kHz的电流环仿真步长要求每100 μs完成一次模型计算与DAC更新,若某一步超过100 μs,输出波形就会出现时间错位,控制器可能误判为真实故障。

软实时(Soft Real-Time)则允许偶尔超时,超时只导致性能下降或数据质量降低,不会立即造成系统失效。HIL中的上位机监控界面刷新、数据记录、曲线绘制、非关键状态上报等通常按软实时处理。例如,监控界面每50 ms刷新一次,偶尔延迟到80 ms,操作员几乎无感知,不影响闭环控制。

两者的核心区别在于:硬实时关注“确定性”,软实时关注“平均性能”。在HIL工程中,必须明确划分哪些任务属于硬实时域,哪些可以放入软实时域,避免监控、日志等非关键任务抢占实时CPU资源。

二、采样周期:实时仿真的时间基准

采样周期(Sample Time,记为 Ts)是实时仿真中最基本的时间参数,决定了模型求解、信号采集和输出的节拍。它通常由被控对象的最快动态决定。工程上常用经验规则:采样频率应至少为系统带宽的10~20倍。例如,某伺服系统电流环带宽约1 kHz,则采样周期常取50~100 μs,对应10~20 kHz。

在HIL中,采样周期不是单一值,而是分层设置的。典型结构如下:

  • 快速环(电流环/内环):Ts = 50 μs(20 kHz),用于电机电流、电力电子开关模型;
  • 中速环(速度环/位置环):Ts = 500 μs(2 kHz),用于机械传动、执行器模型;
  • 慢速环(监控/记录):Ts = 10 ms(100 Hz),用于温度、状态监测。

多速率任务需要统一的时间基准,通常由实时系统的硬件定时器或FPGA时钟提供,确保各周期任务在确定时刻触发。

三、抖动:实时性的隐形杀手

抖动(Jitter)是指任务实际执行时刻与理想周期时刻之间的偏差。即使平均周期正确,抖动过大也会破坏仿真可信度。抖动主要来源于:操作系统调度延迟、中断响应延迟、CPU缓存与总线竞争、非实时任务干扰等。

在HIL中,抖动通常用最大抖动和均方根抖动衡量。例如,某实时目标机设定周期为100 μs,实测最大抖动为8 μs,则实际步长在92~108 μs之间波动。对于高动态模型,这种波动会引入相位误差和数值噪声。工程上一般要求硬实时任务的抖动小于采样周期的5%~10%。若Ts=100 μs,则抖动应控制在5~10 μs以内。

降低抖动的常用手段包括:使用实时操作系统(如RT-Linux、VxWorks、QNX)并配置CPU隔离、关闭非必要中断、将关键任务绑定到独立CPU核、使用FPGA处理高速I/O等。

四、超限与实时性指标

超限(Overrun)是指任务未能在截止时间前完成,导致下一个周期被延迟或丢失。在HIL中,超限可能表现为:模型输出滞后、I/O更新错位、控制器接收到错误时序信号。严重时,闭环系统会失稳。

实时性指标通常包括以下几类:

指标 含义 典型要求(示例)
周期精度 实际周期与设定周期的偏差 ≤ ±1%
最大抖动 执行时刻的最大偏差 ≤ 5% Ts
超限率 超限步数占总步数比例 0(硬实时)
CPU余量 最坏情况下剩余CPU时间 ≥ 20%~30%
中断延迟 从中断触发到ISR执行的时间 ≤ 2~5 μs

这些指标需要在HIL系统集成后通过实时性能测试验证。常用方法是在模型中插入计数器或GPIO翻转,用示波器测量实际周期与抖动;也可通过实时系统的跟踪工具记录任务执行时间。

工程提示:在HIL项目初期就应明确硬实时任务清单和对应指标,并在CPU负载测试中留出足够余量。不要等到闭环联调时才发现超限,那时排查成本会成倍增加。

五、从参数到判断:一个简化的实时性检查示例

假设某HIL平台设定电流环采样周期 Ts = 100 μs,模型计算耗时实测为 62 μs,I/O读写耗时 18 μs,则单步总耗时约 80 μs,剩余余量 20 μs。若最大抖动为 6 μs,则最坏情况下耗时 86 μs,仍小于 100 μs,满足硬实时要求。若模型计算耗时增加到 85 μs,加上抖动后达到 91 μs,余量仅 9 μs,此时应优化模型或提高CPU性能,否则一旦出现中断风暴或缓存失效,极易超限。

判断是否满足实时性,不能只看平均值,必须看最坏情况执行时间(WCET)与最大抖动之和是否小于采样周期。这是硬实时系统设计的基本准则。

HIL实时任务时间轴与超限判断 时间 0 T_s 2T_s 3T_s 模型计算 + I/O 模型计算 + I/O 模型计算 + I/O 抖动 超限! 截止时间已过,输出无效 实时性判断准则 WCET 最坏执行时间 + Jitter_max 最大抖动 < T_s 采样周期 示例:T_s = 100 μs,WCET = 80 μs,Jitter_max = 6 μs → 86 μs < 100 μs,满足硬实时 若 WCET = 95 μs,Jitter_max = 8 μs → 103 μs > 100 μs,超限,需优化

总结来说,硬实时与软实时的划分决定了任务优先级和资源分配;采样周期是仿真节拍的核心参数;抖动反映时间确定性;超限则是实时性失效的直接表现。只有把WCET、抖动和采样周期放在一起评估,才能判断HIL系统是否真正满足控制器测试的实时性要求。