3. HIL测试基本原理与系统组成

硬件在环(Hardware-in-the-Loop,HIL)测试的核心思想,是把真实飞控硬件放进一个由实时仿真机构造的“虚拟飞行世界”里:仿真机以固定步长实时解算多旋翼的六自由度动力学、电机与螺旋桨模型、传感器模型以及风扰等环境模型,并通过 I/O 板卡与信号调理电路,把这些物理量转换成飞控能“感知”的电压、电流、PWM、串口或 CAN 报文;飞控照常运行自己的姿态解算、控制律与混控逻辑,输出电机指令;这些指令又被采集回仿真机,驱动模型进入下一个仿真步。飞控并不知道自己面对的是真实传感器还是仿真信号,因此 HIL 能在不炸机、不依赖外场的前提下,复现真实飞行中的控制闭环。

理解 HIL,关键是理解“闭环”和“实时”两个词。闭环意味着飞控的输出会立刻影响它下一步的输入:如果姿态控制增益偏大,仿真中的角速率会振荡,飞控采集到的陀螺信号随之振荡,进而继续放大指令,形成真实系统中同样会出现的发散过程。实时意味着仿真步长必须严格小于一个控制周期,通常飞控主控周期为 1 kHz(1 ms),仿真步长常取 0.5 ms 或 0.25 ms,保证在一个控制周期内模型至少推进两次,避免因采样与解算错拍引入虚假相位滞后。

系统组成与协同关系

一套典型的 HIL 系统由五类角色构成,它们之间的信号流与协同关系如下图所示。

实时仿真机 六自由度动力学 / 电机模型 传感器模型 / 风扰模型 步长 0.5 ms,硬实时调度 输出:姿态、角速率、加速度、气压 I/O 板卡 D/A 模拟输出 A/D 采集 · PWM 输入捕获 串口 / CAN / 以太网 时钟同步,抖动 < 10 μs 信号调理 电平匹配 3.3V/5V 分压 / 放大 / 偏置 RC 滤波 · 隔离保护 把模型量变成飞控可读信号 被测飞控 IMU 采集 · 姿态解算 位置/速度/姿态控制律 混控 → 电机 PWM 输出 真实硬件,固件不变 上位机监控与自动化 测试用例脚本 / 激励注入 实时曲线 · 数据记录 判据比对 · 报告生成 通过以太网与仿真机通信 模型量 电压/数字量 传感器信号 电机 PWM 回采 激励/状态 遥控/任务指令注入(可选) 闭环本质:飞控输出 → 模型响应 → 传感器信号 → 飞控输入 任一环节延迟或标定错误,都会在闭环中表现为相位滞后或增益偏差

从图中可以看出,实时仿真机与上位机之间是“状态上行、激励下行”的双向数据流;仿真机与飞控之间则通过 I/O 板卡和信号调理构成一条完整的物理信号链。上位机通常不直接接触飞控的传感器接口,而是通过仿真机间接注入故障或扰动,例如在某一时刻叠加一个 5° 的滚转角速率偏置,模拟陀螺零偏故障。

各环节的关键参数与常见问题

实时仿真机是整个系统的“心脏”。它的核心指标是实时性与确定性:模型解算必须在步长内完成,且每次解算的抖动要小。以 0.5 ms 步长为例,若某一步因操作系统调度延迟了 0.3 ms,飞控就会在那一周期读到“迟到”的传感器值,闭环中相当于额外插入了一个随机延迟,可能让原本稳定的控制律出现高频抖动。因此仿真机通常运行在实时操作系统上,并关闭非必要中断与节能策略。

I/O 板卡负责“翻译”模型量与电信号。模拟输出通道把姿态角、角速率等模型量转换成飞控 IMU 能接受的模拟电压;PWM 输入捕获通道则测量飞控输出的电机脉宽,典型范围为 1000~2000 μs,对应油门 0~100%。这里有一个容易忽略的细节:PWM 捕获的分辨率与更新率必须高于飞控输出频率。若飞控以 400 Hz 输出 PWM,而捕获通道每 5 ms 才刷新一次,就会丢失部分脉宽变化,导致模型收到的电机指令“阶梯化”,进而影响闭环真实性。

信号调理电路常被当作“接线”而轻视,但它直接决定信号链的精度。以 3.3 V 飞控与 5 V 仿真机 I/O 为例,若不做电平匹配,轻则读数偏移,重则损坏飞控输入引脚。再如陀螺模拟输出,飞控内部通常有 1.65 V 左右的零偏参考,仿真机输出的零角速率必须精确对应这个电压,否则飞控会认为飞机在缓慢旋转,积分后姿态发散。实际调试中,常用“零输入检查”来验证:让模型输出零角速率、零加速度,观察飞控姿态解算是否保持静止,若缓慢漂移,说明零偏或增益标定有误。

被测飞控是 HIL 中的“真实对象”,其固件、参数、传感器配置都应与真实飞行一致。HIL 的价值在于,它允许我们在飞控固件不变的前提下,反复注入极端工况:传感器饱和、信号丢失、电源跌落、GPS 跳变等。例如,把气压计信号在 10 s 处突然拉高 50 m,观察飞控高度控制是否触发保护逻辑,还是盲目下压油门。这类测试在真实飞行中风险极高,在 HIL 中却可以安全复现。

上位机监控与自动化测试软件是“指挥中心”。它负责三件事:一是编排测试用例,按时间轴注入激励;二是实时采集并显示关键变量,如姿态角、角速率、电机指令、模型状态;三是按预设判据自动判定通过或失败。一个实用的判据例子是:在阶跃滚转指令下,滚转角超调量应小于 15%,调节时间应小于 0.8 s,且稳态误差小于 1°。若超调量达到 30%,则判定该组控制参数不满足要求,测试报告自动标记失败并记录波形。

协同关系中的时间基准

五类角色要协同工作,必须共享统一的时间基准。通常由仿真机提供全局时钟,I/O 板卡与仿真机同步采样,上位机通过时间戳对齐记录数据。若上位机与仿真机时钟不同步,注入的激励与采集的响应之间就会出现时间偏移,导致判据误判。例如,实际在 2.000 s 注入的阶跃,上位机记录为 2.050 s,那么计算出的调节时间就会偏大 50 ms,可能把合格结果误判为不合格。

在实际搭建中,建议先做“信号链静态检查”:断开飞控,用万用表或示波器逐点测量仿真机输出、调理后输出、飞控输入端的电压,确认零偏与满量程对应关系正确;再接入飞控,做“零输入静止检查”;最后才运行闭环测试用例。这三步能排除大部分因接线、电平、标定引起的假故障。