3、横侧向状态空间模型:小扰动线性化方法、状态矩阵A与输入矩阵B的建立

好,咱们进入正题。横侧向稳定性调优,说白了就是让飞机在滚转和偏航方向上能乖乖听话。但飞机本身是个非线性系统,直接分析太复杂了。怎么办?

我个人的习惯是——先把它线性化。用一个小扰动模型,把复杂的非线性方程简化成我们熟悉的状态空间形式。这样,矩阵A和矩阵B就出来了,后续的控制器设计才有落脚点。

3.1 为什么需要小扰动线性化?

你想想看,真实的飞行动力学方程里全是三角函数、速度平方项、耦合项……看着就头大。直接拿来做控制设计?不现实。

小扰动线性化的核心思想很简单:假设飞机在某个平衡点(比如平飞)附近,所有状态量的变化都很小。这样一来,高阶项可以忽略,三角函数可以近似成线性项。

核心假设:

  • 侧滑角 β 很小(sinβ ≈ β, cosβ ≈ 1)
  • 滚转角速度 p、偏航角速度 r 很小
  • 空速 V 变化忽略(假设速度恒定)

嗯,这里要注意:这个假设在大多数常规飞行条件下是成立的。但如果你在做大迎角机动或者特技飞行,那这套方法就不太灵了。我在项目中遇到过,有人直接把小扰动模型用在大侧滑角工况下,结果控制器发散得一塌糊涂……

3.2 横侧向状态变量的选择

横侧向运动,我们关心四个核心状态量:

符号 物理量 单位 说明
β 侧滑角 rad 飞机纵轴与来流方向的夹角
p 滚转角速度 rad/s 绕机体X轴的角速度
r 偏航角速度 rad/s 绕机体Z轴的角速度
φ 滚转角 rad 机翼与水平面的夹角

为什么选这四个?因为它们直接决定了飞机的横侧向动态。你想想看,副翼打下去,首先改变的是滚转力矩,然后p变化,接着φ变化,同时还会耦合出侧滑β和偏航r。这四个量刚好能完整描述这个链条。

3.3 状态矩阵A的建立

状态矩阵A,描述的是系统自身的动态特性。说白了,就是没有外部输入时,飞机自己怎么动。

从飞行动力学方程出发,经过小扰动线性化后,横侧向状态空间模型的标准形式是:

| β̇ |   | Yβ/V   g*cosθ₀/V   -1    α₀ |   | β |
| ṗ  | = | Lβ      Lp           Lr    0  | * | p |
| ṙ  |   | Nβ      Np           Nr    0  |   | r |
| φ̇ |   | 0       1            tanθ₀ 0  |   | φ |

这里每个元素都有明确的物理意义。我挑几个重点说说:

  • :侧力导数。β变化时产生的侧力,决定了飞机的航向静稳定性。正值表示不稳定。
  • :滚转静稳定性导数。也叫“上反效应”,是飞机滚转恢复能力的关键。我调参时最常看的就是它。
  • :航向静稳定性导数。也叫“风标效应”,决定了飞机是否会自动指向来流方向。
  • Lp:滚转阻尼导数。p越大,阻尼力矩越大,防止滚转发散。
  • Nr:偏航阻尼导数。同样,防止荷兰滚模态发散。

个人经验: 我曾经调试一架飞翼布局的无人机,发现Lβ太小,导致滚转响应迟钝。后来通过增加翼尖上反角,硬是把Lβ提上去了。所以你看,矩阵A里的参数,其实直接对应着飞机的气动设计。

3.4 输入矩阵B的建立

输入矩阵B,描述的是控制输入如何影响状态变化。横侧向的控制输入通常有两个:

  • δa:副翼偏转角(正偏左副翼上偏,产生右滚转力矩)
  • δr:方向舵偏转角(正偏左舵,产生右偏航力矩)

对应的输入矩阵B为:

| β̇ |   | 0           Yδr/V |   | δa |
| ṗ  | = | Lδa        Lδr    | * | δr |
| ṙ  |   | Nδa        Nr     |
| φ̇ |   | 0           0      |

这里:

  • Lδa:副翼效率。副翼偏转产生的滚转力矩系数。这个值越大,滚转响应越快。
  • Nδr:方向舵效率。方向舵偏转产生的偏航力矩系数。
  • Yδr:方向舵产生的侧力,通常较小,但不可忽略。

避坑指南: 我曾经在建模时忽略了Lδr(副翼对偏航的交叉耦合),结果仿真里看着挺好,一飞上天发现转弯时飞机总带侧滑。后来补上这个耦合项,模型才准了。所以,交叉导数千万别省!

3.5 完整的状态空间模型

把A和B拼起来,我们就得到了完整的横侧向状态空间模型:

ẋ = A·x + B·u

其中:
x = [β, p, r, φ]ᵀ
u = [δa, δr]ᵀ

A = [ Yβ/V   g*cosθ₀/V   -1    α₀
      Lβ      Lp           Lr    0
      Nβ      Np           Nr    0
      0       1            tanθ₀ 0 ]

B = [ 0           Yδr/V
      Lδa        Lδr
      Nδa        Nδr
      0           0      ]

有了这个模型,我们就可以用线性系统理论来分析稳定性、设计控制器了。比如计算特征值判断模态,或者用LQR设计最优控制律。

3.6 知识体系结构图

下面这张图,是我自己总结的横侧向建模核心逻辑,你一看就明白:

横侧向状态空间模型构建流程 非线性动力学方程 含三角函数、耦合项 小扰动假设 线性化方程 忽略高阶项,近似三角函数 提取系数 状态空间模型 ẋ = Ax + Bu 状态矩阵 A 描述系统自身动态 Yβ, Lβ, Nβ → 静稳定性 Lp, Nr → 阻尼特性 Lr, Np → 交叉耦合 输入矩阵 B 描述控制输入影响 Lδa, Nδr → 控制效率 Lδr, Nδa → 交叉耦合 Yδr → 侧力效应 应用:稳定性分析 → 特征值计算 → 控制器设计 荷兰滚模态、滚转收敛模态、螺旋模态

3.7 实际调参中的注意事项

模型建好了,但实际用的时候有几个坑,我帮你列出来:

  1. 气动导数要准:矩阵A和B里的所有参数,都来自气动数据。如果风洞数据或者CFD数据不准,模型就是空中楼阁。我建议至少用飞行数据做一次参数辨识来验证。
  2. 注意单位一致性:角度用弧度,角速度用rad/s,速度用m/s。混用单位会导致矩阵元素量级差好几个数量级,数值计算容易出问题。
  3. 不要忽略重力项:A矩阵里的g*cosθ₀/V这一项,很多人觉得小就忽略了。但它在低速飞行时影响很大,尤其是着陆阶段。
  4. 交叉耦合是常态:副翼打下去不光产生滚转,还会因为左右翼阻力差产生偏航力矩。方向舵也一样。这些交叉项在B矩阵里一定要体现。

一个小技巧: 拿到气动数据后,我习惯先把A矩阵的特征值算出来。看看有没有右半平面的极点,如果有,说明开环就不稳定。这时候再去看是哪个导数导致的,针对性调整气动布局或者加增稳系统。

好了,横侧向状态空间模型的建立就讲到这里。有了这个基础,下一节我们就可以用它来分析荷兰滚、滚转收敛和螺旋这三个经典模态了。


专注资料整理