2. HIL性能指标体系构建
在航空航天HIL(硬件在环)系统中,性能评估的第一步不是“跑一个测试”,而是建立一套能反映系统真实行为、可量化、可复现的指标体系。HIL平台同时包含实时仿真机、I/O板卡、总线接口、被测件(飞控计算机、导航计算机、发动机控制器等)以及信号调理与故障注入单元,任何一个环节的时序偏差都可能被误判为控制律问题。因此,指标必须从“时间”和“数据”两个维度同时刻画。
一、核心指标的定义与物理含义
实时性描述的是仿真模型在一个步长内完成计算、I/O刷新和通信的绝对能力。常用“模型解算时间占步长比例”来衡量,例如步长1 ms,模型解算加I/O耗时0.35 ms,则实时余量为65%。实时性不足会直接导致超时(overrun),表现为仿真时间与墙钟时间脱节。
确定性强调“每次执行的时间可预测且一致”。它不追求单次最快,而要求最坏执行时间(WCET)稳定。确定性差的系统,即使平均延迟很低,也可能在特定工况下出现毫秒级抖动,使飞控计算机收到非周期性的传感器数据。
延迟是从输入信号到达HIL接口,到被测件输出响应被采集并回注仿真模型的端到端时间。它包含采集延迟、总线传输延迟、模型计算延迟和输出刷新延迟。延迟是绝对值,通常用“均值+最大值”描述。
抖动是延迟或周期的时间波动量,定义为同一信号多次传输延迟的标准差或峰峰值。对于1553B、ARINC 429、CAN等航空总线,抖动过大会破坏消息的周期调度假设。
带宽指单位时间内可传输的数据量,单位Mbps或MB/s;吞吐量则是实际有效载荷的传输速率,受协议开销、握手和重传影响。带宽是“管道粗细”,吞吐量是“实际流量”。
同步精度用于多设备或多速率仿真场景,描述不同节点时钟或不同步长任务之间的时间对齐误差。例如飞控以2 ms运行、发动机以10 ms运行,同步精度决定了两者数据交换时的时间戳偏差。
二、面向对象的指标选取原则
不同被测对象对指标的敏感度差异很大,不能一套指标打天下。飞行控制律通常以2 ms或4 ms为周期,对延迟和抖动最敏感:延迟会降低相位裕度,抖动会引入非周期扰动。导航制导系统涉及惯性测量单元、卫星导航和大气数据,数据量大且更新率不一,应重点关注带宽、吞吐量和时间戳一致性。发动机控制中,燃油执行机构和转速传感器通过CAN或ARINC 429交互,控制周期可能为10 ms,但确定性要求极高,因为喷油和点火时序不允许随机波动。
选取指标时建议遵循三条原则:第一,指标必须能追溯到被测件的真实接口和信号;第二,指标必须可测量、可复现,避免“感觉卡顿”这类主观描述;第三,指标阈值应来自控制律设计余量或适航条款,而不是拍脑袋决定。例如飞控计算机的输入输出延迟若超过步长的20%,就需要在HIL报告中标记为风险项。
三、量化方法与教学示例
延迟的量化通常采用“打标法”:在仿真模型输出端注入一个阶跃或脉冲信号,同时记录该信号进入I/O板卡的时刻t1,以及被测件响应被采集回模型的时刻t2,延迟 = t2 − t1。为了分离各环节,可以在总线接口处增加硬件时间戳。抖动则对同一信号连续采集N次(例如1000次),计算延迟的标准差σ和峰峰值。
带宽与吞吐量的量化更直接:在HIL网络中发送已知长度的数据帧,统计单位时间成功接收的有效字节数。注意区分“线路速率”和“有效吞吐量”,例如1553B命令字和状态字占用开销,实际有效载荷会低于理论带宽。
同步精度量化需要多节点时钟对齐。一种可操作的方法是:仿真机在每个步长边界输出一个同步脉冲,被测件和采集设备同时记录该脉冲的本地时间戳,比较各节点时间戳的偏差。若飞控节点与发动机节点偏差超过50 μs,则多速率数据交换可能引入额外相位误差。
四、指标之间的耦合关系
这些指标并非独立。提高带宽可能增加协议处理时间,从而抬高延迟;追求极低抖动可能要求更严格的调度,反而降低吞吐量。实时性余量不足时,系统会通过丢帧或降频来维持运行,表现为吞吐量下降和同步精度恶化。因此,HIL性能评估不能只看单一指标,而应建立“指标—工况—阈值”的关联表,在典型飞行剖面、发动机加减速、导航切换等场景下分别记录。
实际工程中,建议先确定被测对象的关键控制周期和最坏工况,再反推各环节允许的延迟和抖动预算。例如飞控2 ms步长,若控制律允许的总延迟不超过0.4 ms,则I/O和总线延迟必须压缩在0.2 ms以内,模型计算不超过0.15 ms,剩余0.05 ms留给同步和采集。这种“预算分配”方法比事后测量更容易定位瓶颈。
五、指标记录与判断依据
每次HIL测试应记录以下字段:测试对象、步长、模型解算时间、I/O刷新时间、端到端延迟均值/最大值/标准差、总线吞吐量、同步偏差、超时次数。判断依据可以简化为三条:实时余量是否大于30%;延迟最大值是否小于步长的20%;抖动峰峰值是否小于控制律允许的相位误差对应的时间。若任一条件不满足,应优先排查I/O调度、总线仲裁和模型计算热点,而不是直接修改控制参数。