4. 固定翼六自由度模型与实时解算

HIL(Hardware-in-the-Loop)测试的核心价值,在于让真实飞控硬件面对一个"足够像真机"的虚拟世界。这个虚拟世界由三部分拼成:六自由度刚体动力学、气动力与力矩模型、发动机与大气环境模型。飞控输出的舵面偏度、油门指令进入模型,模型解算出机体角速度、加速度、位置与姿态,再通过传感器仿真接口回灌给飞控。理解这条闭环链路,是判断 HIL 测试结果是否可信的前提。

坐标系与状态量约定

本节统一采用机体坐标系(前-右-下,FRD)与 NED 地面坐标系。状态量共 12 个:位置 (pn, pe, pd)、速度 (u, v, w)、姿态角 (φ, θ, ψ)、角速度 (p, q, r)。气动力与力矩在机体轴下计算,重力在 NED 下计算,两者通过方向余弦矩阵统一到同一参考系。约定必须全文一致,否则符号错误会直接表现为"飞机反向滚转"这类难以定位的故障。

气动模型:从系数到力与力矩

固定翼气动模型通常采用线性系数加非线性修正的形式。以升力、阻力、侧力为例:

CL = CL0 + CL_alpha*alpha + CL_q*(q*c/(2*V)) + CL_de*de
CD = CD0 + k*CL^2 + CD_de*de
CY = CY_beta*beta + CY_dr*dr

L = qbar*S*CL      D = qbar*S*CD      Y = qbar*S*CY
qbar = 0.5*rho*V^2

其中 alpha 为迎角,beta 为侧滑角,de、dr 为升降舵与方向舵偏度,c 为平均气动弦长,S 为机翼参考面积。力矩部分需要给出滚转、俯仰、偏航三轴系数 Cl、Cm、Cn,其中俯仰力矩系数 Cm 对迎角的导数 Cm_alpha 决定纵向静稳定性,必须为负值,否则模型会表现为"越拉越抬头"的发散特性。

一个典型的小型固定翼教学示例参数如下(示例值,非实测):S=0.55 m²,c=0.25 m,b=1.5 m,m=2.5 kg,CL0=0.12,CL_alpha=4.8 /rad,CD0=0.03,k=0.045,Cm_alpha=-0.6 /rad,Cm_q=-8.0,Cm_de=-1.1 /rad。这些系数直接决定配平迎角与升降舵配平量,是 HIL 中"飞机能否稳定平飞"的第一道门槛。

发动机模型:推力与转速动态

电动固定翼常用一阶推力模型:油门指令 δt ∈ [0,1] 经一阶惯性环节得到实际推力,时间常数 τ ≈ 0.15~0.3 s。油动或涡喷模型还需引入转速状态与推力-空速耦合项。推力沿机体 x 轴正向,同时产生绕 y 轴的螺旋桨反扭矩,在 HIL 中若忽略该反扭矩,横航向配平会出现系统性偏差。

T_cmd = T_max * delta_t
T_dot = (T_cmd - T) / tau
Fx_body += T

大气环境模型:密度、风与湍流

大气模型提供三样东西:密度 rho、风速矢量、湍流扰动。密度随高度按 ISA 标准递减,直接影响 qbar,进而影响所有气动力。风模型通常分解为常值风加 Dryden 或 Von Karman 湍流。HIL 中必须把风速从 NED 转到机体轴,得到相对气流速度 V_rel = V_body - V_wind_body,再用 V_rel 计算 alpha、beta 与 qbar。若直接用地面速度计算迎角,在有风条件下配平点会漂移,飞控会持续修正,表现为"定高不稳"。

实时性约束:HIL 的硬门槛

六自由度模型必须在固定步长下实时解算。常用步长为 1 ms 或 2 ms,对应 1000 Hz 或 500 Hz。步长选择需满足:模型最快时间常数(如舵机一阶环节 τ=0.02 s)至少被采样 10 次以上。积分方法推荐四阶龙格-库塔(RK4),在 1 ms 步长下对刚体动力学足够稳定;若用欧拉法,需把步长压到 0.2 ms 以下,否则高频姿态振荡会发散。

实时性还要求解算时间抖动可控。单步解算耗时若超过步长的 60%,就应优化气动插值表或降低湍流模型阶数。HIL 中常见的"模型跑飞"往往不是模型错误,而是解算超时导致步长被拉长,积分失稳。

固定翼六自由度 HIL 解算闭环 飞控硬件 舵面/油门指令 舵机一阶模型 τ=0.02s 限幅 气动模型 CL/CD/CY → L/D/Y Cl/Cm/Cn → L/M/N 发动机模型 T = T_max·δt 一阶惯性 τ=0.2s 大气环境模型 ISA 密度 ρ(h) 常值风 + Dryden 湍流 六自由度动力学 F=ma M=Iω̇ RK4 积分 步长 1 ms 传感器仿真 IMU / 气压 / 磁罗盘 加噪声与延迟 实时性约束:单步解算 ≤ 0.6 ms(步长 1 ms 的 60%),超时会导致积分失稳与模型发散

配平与验证:模型是否可用的判断依据

模型搭好后,第一步不是直接跑 HIL,而是做配平计算。给定巡航速度 V=15 m/s、高度 h=100 m,求解满足 L=W、T=D、M=0 的迎角、升降舵偏度与油门量。若配平迎角落在 2°~6°、升降舵偏度在 -3°~0°,说明气动系数与质量参数基本自洽。若配平迎角超过失速迎角,或升降舵偏度顶到限幅,则模型参数需要重新核对。

配平通过后,在 HIL 中注入小扰动:给升降舵一个 +2° 的短脉冲,观察俯仰角响应。正常模型应表现为衰减振荡,短周期频率约 1.5~3 rad/s,阻尼比 0.3~0.7。若振荡不衰减,检查 Cm_q 是否过小;若频率过高,检查 Iy 是否偏小。这些判断依据比"看曲线是否好看"更可靠。

HIL 中模型步长与飞控任务周期不必相同。常见做法是模型跑 1 ms,飞控主循环跑 5 ms,传感器仿真按飞控实际采样率输出。三者通过共享内存或 UDP 交换数据,需注意时间戳对齐,否则会出现"传感器数据比模型状态晚一拍"的相位滞后。
若 HIL 中出现姿态缓慢漂移而非振荡,优先排查大气模型的风速坐标系转换,而不是调飞控 PID。有风条件下用地面速度算迎角,是 HIL 中最常见的隐性错误。

把气动、发动机、大气三块模型与六自由度动力学串起来,并守住 1 ms 步长与解算耗时上限,HIL 才具备"可信虚拟世界"的基础。后续所有自动化测试用例——无论是定高、航点跟踪还是失速改出——都建立在这个模型闭环之上。