4、飞控模型建模:六自由度刚体模型、气动参数、电机与螺旋桨模型

飞控仿真系统的核心价值在于以数学模型替代真实飞行器,在硬件在环(HIL)或纯数字仿真环境中验证飞控算法、故障注入逻辑与失效保护策略。本章聚焦于构建一个可用于故障注入测试的飞控被控对象模型,涵盖六自由度(6-DOF)刚体动力学、气动参数建模、以及电机与螺旋桨的推力/力矩响应模型。我们将从理论推导出发,结合工程实践中的参数辨识与模型简化方法,最终形成一个可在MATLAB/Simulink或C++环境中运行的模块化仿真模型。

飞控仿真被控对象模型架构与故障注入接口 控制输入 油门指令 δ_th (0~1) 舵面指令 δ_a, δ_e, δ_r (或电机转速指令 Ω_cmd) 故障注入点 A 执行器卡死/失效 (增益突变、延迟) 电机+螺旋桨模型 一阶惯性环节 T_mot = 0.02~0.05s 推力 T = k_T · Ω² 力矩 M = k_M · Ω² 故障注入点 B 螺旋桨效率下降/断裂 六自由度刚体模型 力方程: m·V̇ + ω×mV = F 力矩方程: I·ω̇ + ω×Iω = M 运动学: 欧拉角/四元数 导航方程: Ṗ = R·V 状态: [u,v,w,p,q,r,φ,θ,ψ,x,y,z] 故障注入点 C 气动参数突变/质量变化 气动参数 C_L, C_D, C_m C_l, C_n, C_y 随 α, β, δ 变化 查表/多项式拟合 故障注入点 D 传感器偏差/噪声 模型输出 飞行状态 (位置/速度/姿态) 机体角速度/加速度 传感器模型 IMU/GPS/气压计 含噪声/延迟/量化 状态反馈 (用于控制律) 图例: 信号流 故障注入点 反馈回路 控制输入 执行器 刚体动力学

上图展示了飞控仿真被控对象模型的整体架构。在故障注入测试中,我们不仅需要构建一个高保真的标称模型,更需要在模型内部预留多个故障注入接口(图中红色虚线框标注的A、B、C、D点)。这些接口允许测试工程师在不修改模型核心代码的前提下,模拟执行器卡死、螺旋桨失效、气动参数突变以及传感器故障等典型失效模式。下面我们将逐一拆解各子模型的建模要点与工程实现方法。

4.1 六自由度刚体动力学模型

六自由度刚体模型是飞控仿真的核心,它描述了飞行器在三维空间中的线运动与角运动。该模型基于牛顿-欧拉方程,在机体坐标系(Body Frame)下建立力与力矩的平衡关系。

核心原理:刚体运动可分解为质心的平动和绕质心的转动。在机体坐标系下,力方程和力矩方程分别表示为:

力方程:   m * (dV/dt + ω × V) = F_aero + F_gravity + F_prop
力矩方程: I * (dω/dt) + ω × (I * ω) = M_aero + M_prop

其中,V = [u, v, w]^T 为机体坐标系下的线速度,ω = [p, q, r]^T 为角速度,m 为质量,I 为惯性张量矩阵。方程中的叉乘项 ω × V 和 ω × (Iω) 代表了由于机体旋转引起的耦合效应,在高速机动或大角速度情况下不可忽略。

为了将运动状态转换到地面坐标系(NED系),还需要引入姿态运动学方程。工程中推荐使用四元数(Quaternion)表示姿态,以避免欧拉角在俯仰角接近±90°时出现的奇异性问题。四元数更新方程为:

q_dot = 0.5 * q ⊗ [0, p, q, r]

其中 ⊗ 表示四元数乘法。使用四元数后,姿态解算的数值稳定性显著提升,且便于后续与惯性导航模块对接。

工程实现要点:在Simulink中,建议使用积分器模块(Integrator)构建状态方程,并采用固定步长求解器(如ode4,步长1ms)以保证实时性。惯性张量矩阵 I 通常假设为对角阵(忽略惯性积),但对于高速旋转的螺旋桨,需考虑陀螺力矩效应,即螺旋桨旋转对机体角速度的耦合影响。

4.2 气动参数建模与辨识

气动参数决定了飞行器在空气中的受力情况,是模型保真度的关键。对于固定翼或复合翼飞行器,气动力与力矩通常表示为迎角(α)、侧滑角(β)、舵面偏度(δ)以及角速度(p, q, r)的函数。

建模方法:工程中常用的气动模型分为三类:

  • 线性气动模型:适用于小迎角、小侧滑角的巡航状态。例如升力系数 C_L = C_L0 + C_Lα * α + C_Lδe * δe。优点是计算量小,便于线性化分析;缺点是机动飞行时误差大。
  • 查表模型(Look-up Table):通过风洞实验或CFD仿真获取不同α、β、δ组合下的气动系数,形成多维表格。仿真时通过线性插值获取当前状态的气动系数。这是工业级仿真器的主流选择。
  • 半经验公式模型:结合理论推导与实验数据拟合,如采用多项式拟合 C_D = C_D0 + k * C_L²(极曲线)。适用于快速原型验证。

对于多旋翼飞行器,气动模型相对简单,主要考虑桨叶的阻力与反扭矩,但需注意“地面效应”和“涡环状态”等非线性现象。下表对比了三种建模方法的适用场景:

建模方法精度计算开销适用阶段故障注入适配性
线性模型低(小角度)极低控制律初步设计易修改参数,适合增益突变故障
查表模型高中HIL仿真、详细性能评估可通过切换表格模拟气动面损伤
半经验公式中低快速原型、实时仿真适合连续参数退化故障
故障注入视角:气动参数故障通常表现为升力系数下降(如机翼结冰)、阻力系数增加(如蒙皮破损)或操纵导数失效(如舵面卡死)。在查表模型中,可通过在插值输出端乘以一个时变增益 K_fault(t) 来模拟参数突变,例如 C_L_fault = C_L * (1 - 0.3 * step(t-5)) 表示5秒时升力突然下降30%。

4.3 电机与螺旋桨模型

电机与螺旋桨模型将控制指令(油门或转速)转换为推力和力矩。对于电动飞行器,该模型通常包含两个环节:电机动态响应和螺旋桨空气动力学。

电机动态响应:无刷直流电机(BLDC)的电气时间常数远小于机械时间常数,在飞控频带内(通常<50Hz)可简化为一阶惯性环节:

Ω_dot = (1/τ_mot) * (Ω_cmd - Ω)

其中 τ_mot 为电机时间常数(典型值0.02~0.05s),Ω_cmd 为期望转速,Ω 为实际转速。在故障注入中,电机卡死可建模为 Ω ≡ 0,而电机增益下降可建模为 τ_mot 增大或 Ω_cmd 乘以一个小于1的系数。

螺旋桨推力/力矩模型:基于动量理论,推力和反扭矩与转速的平方成正比:

T = k_T * ρ * D^4 * Ω²
M = k_M * ρ * D^5 * Ω²

其中 k_T 和 k_M 为推力系数和扭矩系数,ρ 为空气密度,D 为桨径。在仿真中,通常将 k_T * ρ * D^4 合并为一个常数 K_T,通过静拉力测试台标定获得。

关键风险:螺旋桨模型在转速接近零时,推力计算应设置死区或采用平滑过渡,避免数值奇异。此外,当飞行器高速前飞时,来流速度会改变桨叶的有效迎角,导致推力下降,此时需引入前进比(Advance Ratio)修正。若忽略此效应,在高速前飞状态下仿真结果将过于乐观。

4.4 案例拆解:四旋翼执行器部分失效的故障注入仿真

下面通过一个完整的案例,演示如何利用上述模型进行故障注入测试。该案例旨在验证飞控系统在单个电机推力下降30%时的姿态保持能力。

背景与约束:某四旋翼验证平台,质量1.5kg,轴距450mm,悬停转速6000 RPM。飞控算法采用串级PID(内环角速度,外环角度)。要求在仿真中注入电机2(右前)推力下降故障,并观察姿态响应。

初始现象与目标:在t=5s时注入故障,期望观察滚转角和俯仰角的瞬态偏差及稳态误差。若飞控补偿有效,稳态误差应小于2°。

关键输入数据:

  • 电机时间常数:τ_mot = 0.03s
  • 推力系数:K_T = 1.2e-5 N/RPM²
  • 扭矩系数:K_M = 2.5e-7 N·m/RPM²
  • 惯性张量:I_xx = I_yy = 0.015 kg·m², I_zz = 0.025 kg·m²

分析判断过程:电机2推力下降30%后,产生的滚转力矩约为 ΔM_x = T * L * 0.3(L为机臂长度0.32m)。悬停时单电机推力约3.7N,则故障产生的额外滚转力矩约0.35 N·m。该力矩将导致滚转角加速度约23 rad/s²,若不补偿,0.5秒内滚转角将偏转约3°。

实际操作步骤:

  1. 在Simulink模型中,定位到电机2的推力输出端口,插入一个“Step”模块作为故障注入信号。
  2. 设置Step模块:Step time = 5,Initial value = 1,Final value = 0.7。将Step输出与推力信号相乘,模拟推力下降。
  3. 运行仿真,记录滚转角(φ)和俯仰角(θ)响应曲线。
  4. 对比无故障与有故障的响应,分析PID控制器的补偿效果。

结果对比:仿真结果显示,故障注入后滚转角最大偏差约4.5°,在PID作用下约1.2s后恢复到2°以内。俯仰角也出现约1°的耦合偏差。通过调整内环角速度PID参数(增大Kp),可将最大偏差降至3°以内,但会引入轻微振荡。

风险与代价:该故障注入方式仅模拟了推力下降,未考虑电机响应延迟变化。实际电机故障可能伴随温度升高导致时间常数增大,需同时修改 τ_mot 参数。此外,若故障导致反扭矩变化,还需在力矩方程中同步注入。

复盘经验:故障注入测试不应仅关注稳态结果,更要关注瞬态过程中的超调量与恢复时间。建议在故障注入点增加信号记录(To Workspace模块),便于后续离线分析。同时,建议将故障注入逻辑封装为独立的子系统,通过外部输入(如Simulink的Signal Editor)控制故障类型与时刻,提高测试复用性。

总结复盘:构建飞控仿真被控对象模型时,应遵循“模块化、参数化、可注入”三大原则。模块化指将刚体模型、气动模型、执行器模型分离;参数化指所有物理参数(质量、惯量、气动系数)均通过模型工作区(Model Workspace)或结构体参数加载,便于批量修改;可注入指在关键信号路径上预留乘法器或加法器接口,方便叠加故障信号。本章介绍的六自由度模型、气动参数建模方法及电机螺旋桨模型,构成了故障注入测试的坚实基础。在实际工程中,还需根据飞行器的具体类型(固定翼/多旋翼/复合翼)调整模型复杂度,并在模型验证阶段使用实际飞行数据对模型参数进行辨识与校准。