3. HIL测试系统组成

硬件在环(Hardware-in-the-Loop,HIL)测试的本质,是把真实飞控硬件放进一个由计算机实时模拟出来的“虚拟世界”里飞行。飞控以为自己连接着真实的电机、舵机、传感器和机体,实际上它收到的传感器数据来自仿真计算机中的被控对象模型,它输出的控制信号则被接口板卡采集后送回模型,形成闭环。理解 HIL 系统,关键是理解这条闭环链路上每一环的角色、接口和时序约束。

一、系统由五类实体构成

一套典型的 PX4/ArduPilot HIL 系统可以拆成五个部分:

  • 飞控硬件(Flight Controller):运行真实固件的 Pixhawk 系列、Cube 或自研板卡。它执行姿态估计、位置控制、混控输出,是测试的“被测对象”。
  • 仿真计算机(Simulation Host):一台运行 Ubuntu 的 PC,承载飞行力学模型、传感器模型和环境模型,通常以固定步长实时推进。
  • 被控对象模型(Plant Model):多旋翼/固定翼的六自由度动力学、电机与螺旋桨模型、气动与风扰模型,以及 IMU、磁力计、气压计、GPS 的传感器模型。
  • 接口板卡(Interface Board):负责电平转换、协议转换与信号路由,把仿真机的数据送到飞控的传感器接口,把飞控的 PWM/CAN 输出采集回来。
  • 地面站与网络(GCS & Network):QGroundControl 或 Mission Planner,通过以太网/串口与飞控和仿真机通信,用于加载任务、监视状态、注入故障。

这五者不是简单堆叠,而是通过明确的信号方向与协议耦合在一起。下图给出本节的核心拓扑:

仿真计算机(Ubuntu PC) 被控对象模型 6-DOF 动力学 / 电机 / 气动 传感器模型 IMU / 磁 / 气压 / GPS 接口板卡 电平转换 / 协议转换 UART · SPI · I2C · CAN PWM 采集 / 信号路由 时序对齐与缓冲 飞控硬件(被测对象) PX4 / ArduPilot 固件 EKF 状态估计 · 位置控制 混控输出 PWM / DShot / CAN 地面站 GCS QGC / Mission Planner 任务加载 · 状态监视 故障注入 · 日志回放 网络拓扑 以太网 UDP 14550/14540 MAVLink 遥测 / 指令 串口 TELEM2 备用链路 传感器数据 HIL 传感器帧 执行器指令 PWM 占空比 MAVLink 遥测 UDP 链路 闭环:模型 → 接口 → 飞控 → 接口 → 模型

二、飞控硬件:被测对象与它的“真实约束”

HIL 的价值在于飞控运行的是未经修改的真实固件,因此它的约束必须被尊重。以 Pixhawk 6C 为例,其 STM32H743 主频 480 MHz,IMU 采样率可达 8 kHz,但 HIL 模式下传感器数据由外部注入,实际更新率取决于仿真步长与链路带宽。常见做法是把仿真步长设为 1 ms(1 kHz),与飞控的 EKF 预测步长匹配;若步长过大,姿态估计会出现明显滞后,导致控制器相位裕度下降。

飞控的传感器接口决定了接口板卡的设计。PX4 的 HIL 模式通常通过 SYS_HITL=1 或 SYS_HIL_EN 参数启用,此时飞控不再读取板载 IMU,而是等待外部 HIL 传感器消息。ArduPilot 则通过 SIM_* 参数与 HIL_MODE 配合。理解这一点,才能明白为什么接口板卡不是“可选配件”,而是信号链上的必要环节。

三、仿真计算机与被控对象模型

仿真计算机的核心任务是实时求解被控对象模型。以多旋翼为例,模型至少包含:

  • 刚体六自由度运动方程:位置、速度、姿态、角速度;
  • 电机一阶响应模型:输入 PWM 到转速的延迟与饱和;
  • 螺旋桨推力与反扭矩模型:推力系数 kf、扭矩系数 km;
  • 气动阻力与风扰模型:可注入常值风、阵风、湍流;
  • 传感器模型:IMU 噪声与偏置、磁力计干扰、气压高度噪声、GPS 延迟与多路径。

这些模型不是越复杂越好。教学示例中,一架 1.5 kg 四旋翼的悬停油门约 50%,若模型推力系数设置偏差 10%,飞控在 HIL 中会表现出持续的高度振荡,而在实机上可能只是缓慢漂移。因此 HIL 的第一项判据是:模型参数与实机标定值一致,否则测试结论不可迁移。

四、接口板卡:协议、电平与时序

接口板卡要解决三个问题。第一是协议转换:仿真机通常通过 UDP 或串口发送 HIL 传感器数据,而飞控期望的是 UART/SPI/I2C 上的特定帧格式。第二是电平匹配:飞控 IO 多为 3.3 V,而部分采集电路为 5 V,需要电平转换。第三是时序对齐:传感器数据必须带时间戳,且与飞控内部时钟对齐,否则 EKF 会把延迟误判为运动。

一个常见的实操配置如下:

# PX4 HIL 典型链路(示例参数)
仿真机 → UDP 14560 → 接口板卡 → UART 921600 → 飞控 TELEM1
飞控 PWM 输出 → 接口板卡采集 → UDP 14561 → 仿真机
仿真步长:1 ms
传感器帧率:IMU 1000 Hz,磁 100 Hz,气压 50 Hz,GPS 5 Hz

注意 IMU 帧率与仿真步长一致,而 GPS 帧率低得多,这是符合真实传感器特性的。若把 GPS 也设为 1 kHz,反而会掩盖飞控在低更新率下的融合问题。

五、地面站与网络拓扑

地面站通过 MAVLink 与飞控通信,默认 UDP 端口 14550(QGC)或 14540(机载)。在 HIL 中,地面站同时连接仿真机,用于启动/停止仿真、注入故障、记录日志。网络拓扑建议采用独立网段或 VLAN,避免与办公网络争抢带宽;若使用 Wi-Fi,需关注丢包对遥测的影响,关键测试应改用有线以太网。

一个实用的检查顺序是:先确认仿真机能收到飞控的 PWM 输出,再确认飞控能收到传感器帧,最后确认地面站能同时看到两者。任何一环断开,闭环就不成立。

HIL 系统不是“飞控 + 电脑”的简单相加,而是由飞控硬件、仿真计算机、被控对象模型、接口板卡、地面站与网络共同构成的实时闭环。每一环的接口、时序和参数都必须明确,测试结果才有意义。