第1章:姿态控制模型——从数学到工程的桥梁

各位同学好,我是老张。做飞控这些年,我最大的体会是:姿态控制模型是整定PID参数的根基。模型搞不清楚,参数调得再好也是空中楼阁。今天咱们就来聊聊这个基础中的基础。

1.1 四元数与欧拉角:两种姿态描述方式

先说个我踩过的坑。刚入行那会儿,我用欧拉角做姿态解算,结果在90度俯仰角附近直接炸了机——这就是著名的“万向锁”问题。从那以后,我对四元数就格外上心。

欧拉角直观,但有限制。它用三个角度描述旋转:横滚(φ)、俯仰(θ)、偏航(ψ)。旋转顺序通常是ZYX(偏航→俯仰→横滚)。

欧拉角的核心问题:

  • 当俯仰角θ = ±90°时,横滚和偏航的旋转轴重合,丢失一个自由度
  • 存在奇异性,不适合全姿态飞行
  • 插值不自然,两个姿态间的过渡可能走“冤枉路”

四元数就不一样了。它用四个数表示旋转:q = [q₀, q₁, q₂, q₃]ᵀ,其中q₀是标量部分,q₁,q₂,q₃是矢量部分。约束条件是q₀² + q₁² + q₂² + q₃² = 1。

我个人习惯用四元数做状态估计,用欧拉角做可视化。为什么?因为四元数没有奇异性,计算效率高,而且适合做插值(球面线性插值SLERP)。

小技巧:四元数转欧拉角的公式我经常用,这里给出来:

φ = atan2(2(q₀q₁ + q₂q₃), 1 - 2(q₁² + q₂²))
θ = asin(2(q₀q₂ - q₃q₁))
ψ = atan2(2(q₀q₃ + q₁q₂), 1 - 2(q₂² + q₃²))

注意asin的范围是[-π/2, π/2],这就是万向锁的数学根源。

1.2 刚体动力学方程简化

四旋翼的动力学方程,说白了就是牛顿-欧拉方程。完整形式很复杂,但做PID整定时,我们通常做以下简化:

假设条件:

  1. 飞行器是刚体,忽略弹性变形
  2. 质量分布对称,惯性积为零
  3. 小角度假设:sinθ ≈ θ, cosθ ≈ 1
  4. 忽略空气阻力(低速飞行时)

在这些假设下,姿态动力学方程简化为:

J · ω̇ = τ - ω × (J · ω)

其中:
J = diag(Jₓ, Jᵧ, J₂)  — 惯性矩阵
ω = [p, q, r]ᵀ          — 角速度
τ = [τₓ, τᵧ, τ₂]ᵀ      — 控制力矩

展开成标量形式:

Jₓ · ṗ = τₓ + (Jᵧ - J₂) · q · r
Jᵧ · q̇ = τᵧ + (J₂ - Jₓ) · p · r
J₂ · ṙ = τ₂ + (Jₓ - Jᵧ) · p · q

嗯,这里要注意:耦合项(Jᵧ - J₂)·q·r 是导致横滚和俯仰相互影响的原因。我在做参数整定时,如果发现横滚和俯仰的响应互相干扰,第一反应就是检查这个耦合项有没有被补偿掉。

避坑指南:我曾经在某个项目中忽略了耦合项,结果PID参数怎么调都不对。后来加上前馈补偿,效果立竿见影。所以,千万别小看这些“小项”

1.3 飞控系统传递函数推导

有了简化模型,我们就可以推导传递函数了。以横滚通道为例:

假设小角度,忽略耦合项,横滚通道近似为:

Jₓ · φ̈ = τₓ

拉普拉斯变换后:
Jₓ · s² · Φ(s) = Τₓ(s)

传递函数:
G(s) = Φ(s) / Τₓ(s) = 1 / (Jₓ · s²)

说白了,姿态通道本质上是一个二阶积分环节。这就是为什么PID控制器中需要微分项——没有D项,系统就是无阻尼的。

加上电机和执行机构的响应,实际传递函数为:

G(s) = K / (s² · (τ·s + 1))

其中:
K = 1/Jₓ  — 增益
τ        — 电机时间常数(通常5-20ms)

关键结论:

  • 姿态控制对象是二阶系统,需要PD控制就能稳定
  • 积分项I用于消除稳态误差(如重心偏移、风扰)
  • 电机响应延迟限制了控制带宽,一般不超过50Hz

1.4 知识体系总览

下面这张图是我自己整理的,把本章的核心逻辑串起来了:

姿态控制模型知识体系 姿态描述方式 四元数 vs 欧拉角 无奇异性 | 直观但有限制 刚体动力学 牛顿-欧拉方程 小角度假设 + 解耦 传递函数 G(s) = K/(s²(τs+1)) 二阶积分 + 一阶延迟 PID参数自整定 基于模型 → 确定初始参数 → 在线优化 核心逻辑: 姿态描述 → 动力学模型 → 传递函数 → PID整定 每一步的简化都影响最终控制效果

你看,从姿态描述到传递函数,每一步的简化都直接影响PID整定的效果。模型越精确,整定出来的参数就越可靠。但也要注意,过度复杂的模型反而会让整定变得困难——这是个平衡的艺术。

1.5 本章小结

总结一下今天的内容:

知识点 核心要点 工程建议
四元数 无奇异性,适合计算 状态估计用四元数
欧拉角 直观,有万向锁 可视化用欧拉角
动力学简化 小角度、解耦、忽略耦合项 注意耦合补偿
传递函数 G(s)=K/(s²(τs+1)) PD控制为主,I用于消除静差

个人经验:我建议初学者先从单通道PD控制入手,把横滚或俯仰调稳了,再考虑耦合和积分项。一口吃不成胖子,飞控调试更是如此。

好了,这一章就到这里。模型是基础,下一章咱们就基于这个模型,聊聊具体的PID参数整定方法。


专注资料整理