Skip to content

2.2 四旋翼模型线性化 ​

0. 前言 ​

​ 在 2.1 四旋翼物理模型 中,我们建立了四旋翼的完整非线性模型 x˙=f(x,u)。但如果你试着把那个 13 维的非线性方程直接塞给 LQR 求解器,会立刻碰壁:LQR 只能处理线性的 x˙=Ax+Bu。

​ 打个比方:2.1 建立的是一张 1:1 的高精度地图,标注了所有地形细节,但在实际导航时,如果你只是在小区周边开车,一张简化过的街道地图反而更方便、更高效。线性化就是"在悬停点附近画一张简化地图":牺牲远处的精度,换取近处的计算便利和数学上的优雅。

​ 本文的任务是:在悬停平衡点附近对非线性模型进行一阶泰勒展开,得到线性时不变(LTI)状态空间模型,再通过精确离散化方法将其转换为离散时间模型,供数字控制器直接使用。

读完本文后,你将能够:

  • 理解一阶泰勒展开在线性化中的数学原理
  • 解释为什么线性化时需要从四元数切换到欧拉角,以及两种姿态表示在小角度下的等价性
  • 独立推导纯姿态模型(6 维)和全状态模型(12 维)的 Ac、Bc 矩阵
  • 使用矩阵指数法完成 ZOH 精确离散化,得到 Ad、Bd
  • 了解线性模型的有效范围(小角度 < 30°、小角速度、小推力偏差),知道何时必须转向非线性方法

目录 ​

  1. 线性化数学基础
  2. 从四元数到欧拉角:线性化的必要转换
  3. 纯姿态控制模型线性化与离散化
  4. 全状态模型线性化与离散化
  5. 线性化有效范围与小结

1. 线性化数学基础 ​

对于一般的连续时间非线性系统:

x˙=f(x,u)

在平衡点 (x0,u0) 处满足 f(x0,u0)=0。对其进行一阶泰勒展开:

f(x,u)≈f(x0,u0)⏟=0+∂f∂x|x0,u0(x−x0)+∂f∂u|x0,u0(u−u0)

令偏差变量 Δx=x−x0,Δu=u−u0,得到线性偏差模型:

Δx˙=AΔx+BΔu

其中系统矩阵 A 和控制矩阵 B 为雅可比矩阵在平衡点处的取值:

A=∂f∂x|x0,u0,B=∂f∂u|x0,u0

后续为书写简洁,将 Δx 和 Δu 直接记为 x 和 u,理解为相对于平衡点的偏差量。


2. 从四元数到欧拉角:线性化的必要转换 ​

2.1 为什么需要切换姿态表示 ​

之前我们使用四元数来表示姿态,原因如下:

  • 全局无奇异性(不存在万向节锁问题)
  • 适合大规模角度机动的数值仿真
  • 旋转组合运算高效

但在平衡点线性化的场景下,四元数存在明显的不便:

  • 四元数的四个分量受单位长度约束 ∥q∥=1,在计算雅可比矩阵时需要处理约束条件
  • 四元数各分量在平衡点附近的偏差没有十分清晰直观的几何意义

欧拉角在悬停平衡点附近则具有天然优势:

  • 三个角度 ϕ,θ,ψ 对应 roll、pitch、yaw 三个直观的旋转自由度
  • 小角度假设下,欧拉角运动学简化为 ϕ˙≈ωx,θ˙≈ωy,ψ˙≈ωz
  • 雅可比矩阵的解析形式简洁

2.2 两种表示在小角度下的等价性 ​

在悬停平衡点 (ϕ=θ=ψ=0) 附近,四元数与欧拉角的对应关系为:

q≈[1ϕ/2θ/2ψ/2],[ϕθψ]≈2[q1q2q3]

两者的运动学在小角度下一阶近似等价。因此,从四元数切换到欧拉角进行线性化,不会损失悬停附近的动态精度。

本文约定: 后续所有推导均采用欧拉角 [ϕ,θ,ψ]T 作为姿态状态量,分别对应滚转角(roll)、俯仰角(pitch)和偏航角(yaw)。


3. 纯姿态控制模型线性化与离散化 ​

本节针对纯姿态模型,在悬停平衡点附近进行线性化。

3.1 状态空间与平衡点 ​

状态向量(6 维):

x=[ϕ,θ,ψ,ωx,ωy,ωz]T

控制向量(4 维):

u=[t1,t2,t3,t4]T

悬停平衡点:

状态变量平衡点值说明
ϕ,θ,ψ0水平姿态
ωx,ωy,ωz0无旋转

悬停时每个电机需提供 1/4 的总重力补偿推力。总推力 Ftotal=mg,因此:

th=mg4

3.2 非线性模型回顾 ​

回顾 2.1 四旋翼物理模型 §2 中的纯姿态非线性模型,本节将其修改为以欧拉角形式表述运动学部分。

姿态运动学(欧拉角形式):

[ϕ˙θ˙ψ˙]=[1sin⁡ϕtan⁡θcos⁡ϕtan⁡θ0cos⁡ϕ−sin⁡ϕ0sin⁡ϕ/cos⁡θcos⁡ϕ/cos⁡θ][ωxωyωz]

角速度动力学:

[ω˙xω˙yω˙z]=[τx+(Iyy−Izz)ωyωzIxxτy+(Izz−Ixx)ωxωzIyyτz+(Ixx−Iyy)ωxωyIzz]τx=d(t1−t2−t3+t4)τy=d(−t1−t2+t3+t4)τz=k(−t1+t2−t3+t4)

3.3 线性化过程 ​

3.3.1 运动学线性化(小角度近似) ​

在悬停平衡点 (ϕ,θ,ψ)≈(0,0,0) 处:

sin⁡ϕ≈ϕ,cos⁡ϕ≈1sin⁡θ≈θ,cos⁡θ≈1tan⁡θ≈θ

运动学矩阵简化为:

[ϕ˙θ˙ψ˙]≈[1ϕθθ01−ϕ0ϕ1][ωxωyωz]≈[ωxωyωz]+O(ϕω,θω)

忽略高阶项,得到十分直观的线性化姿态运动学:

ϕ˙≈ωx,θ˙≈ωy,ψ˙≈ωz

3.3.2 动力学线性化 ​

在平衡点 (ωx,ωy,ωz)=(0,0,0) 处,陀螺耦合项 ωiωj 为二阶小量可以忽略,因此角加速度可简化如下:

ω˙x≈τxIxxω˙y≈τyIyyω˙z≈τzIzz

3.3.3 控制矩阵 ​

力矩与推力的映射本身即为线性关系,无需近似:

[τxτyτz]=[d−d−dd−d−ddd−kk−kk]⏟Mτ[t1t2t3t4]

3.4 连续时间状态空间模型 ​

综合以上线性化结果,得到纯姿态线性模型 x˙=Acx+Bcu:

Ac=[03×3I3×303×303×3]6×6Bc=[03×4Mmix]6×4

其中力矩混合矩阵 Mmix 将推力直接映射到角加速度:

Mmix=[d/Ixx−d/Ixx−d/Ixxd/Ixx−d/Iyy−d/Iyyd/Iyyd/Iyy−k/Izzk/Izz−k/Izzk/Izz]

3.5 精确离散化 ​

对于连续系统 x˙=Acx+Bcu,采用矩阵指数精确离散化方法,得到离散时间模型:

xk+1=Adxk+Bduk

步骤:

  1. 构造增广矩阵:
M=[AcBc04×604×4]∈R10×10
  1. 计算矩阵指数:
Md=eM⋅Ts

​ 其中 Ts 为采样周期。

  1. 提取离散系统矩阵:
Ad=Md[0:6, 0:6]∈R6×6Bd=Md[0:6, 6:10]∈R6×4

矩阵指数离散化在采样周期内对连续动力学进行精确积分,不引入额外的离散化近似误差,对应零阶保持(ZOH)假设下的精确解。


4. 全状态模型线性化与离散化 ​

4.1 状态空间与平衡点 ​

状态向量(12 维):

x=[ϕ,θ,ψ,ωx,ωy,ωz,x,y,z,vx,vy,vz]T
状态符号含义单位
欧拉角ϕ,θ,ψ滚转、俯仰、偏航角rad
角速度ωx,ωy,ωz机体坐标系角速度rad/s
位置x,y,z世界坐标系位置m
线速度vx,vy,vz世界坐标系速度m/s

控制向量(4 维):

u=[t1,t2,t3,t4]T

采用增量控制形式,以悬停推力 th=mg/4 为基准:

Δti=ti−th

在悬停平衡点处 Δti=0。

悬停平衡条件:

变量平衡点值说明
ϕ,θ,ψ0水平姿态
ωx,ωy,ωz0无旋转
x,y,z任意位置无约束
vx,vy,vz0静止悬停
Δt1,…,Δt40悬停推力

4.2 非线性模型回顾 ​

回顾 2.1 四旋翼物理模型 §3 中建立的全状态非线性模型,此处以欧拉角形式表述平动动力学部分。

姿态运动学(欧拉角形式):

[ϕ˙θ˙ψ˙]=[1sin⁡ϕtan⁡θcos⁡ϕtan⁡θ0cos⁡ϕ−sin⁡ϕ0sin⁡ϕ/cos⁡θcos⁡ϕ/cos⁡θ][ωxωyωz]

姿态动力学(同 §3.2):

ω˙x=τx+(Iyy−Izz)ωyωzIxxω˙y=τy+(Izz−Ixx)ωxωzIyyω˙z=τz+(Ixx−Iyy)ωxωyIzz

位置运动学:

x˙=vx,y˙=vy,z˙=vz

平动动力学(完整非线性形式):

[v˙xv˙yv˙z]=Rbw(ϕ,θ,ψ)[00Ftotalm]−[00g]

其中旋转矩阵 Rbw(欧拉角参数化)为:

Rbw=[cθcψsϕsθcψ−cϕsψcϕsθcψ+sϕsψcθsψsϕsθsψ+cϕcψcϕsθsψ−sϕcψ−sθsϕcθcϕcθ]

此旋转矩阵与之前的四元数旋转矩阵描述同一几何变换,仅参数化方式不同。

4.3 线性化过程 ​

4.3.1 小角度近似 ​

在悬停平衡点 (ϕ,θ,ψ)≈(0,0,0) 处:

sin⁡α≈α,cos⁡α≈1(α=ϕ,θ,ψ)

旋转矩阵简化为:

Rbw≈[1−ψθψ1−ϕ−θϕ1]

4.3.2 平动动力学线性化 ​

总推力以悬停推力为基准展开:

Ftotal=t1+t2+t3+t4=mg+∑i=14Δti

世界坐标系下的加速度:

[v˙xv˙yv˙z]=Ftotalm[θ−ϕ1]−[00g]+高阶项

代入 Ftotal=mg+∑Δti 并忽略二阶小量(θ∑Δti 等项):

v˙x≈gθv˙y≈−gϕv˙z≈1m∑i=14Δti

补充说明:

  • 水平加速度通过姿态倾斜(ϕ,θ)产生,这是四旋翼作为一个欠驱动系统能够实现水平位置速度控制的唯一方式。
  • 垂直加速度通过总推力变化直接控制,因此高度与姿态控制可部分解耦。

4.3.3 姿态运动学与动力学线性化 ​

与纯姿态情况(§3.3.1–§3.3.2)完全一致:

ϕ˙≈ωx,θ˙≈ωy,ψ˙≈ωzω˙x≈τxIxx,ω˙y≈τyIyy,ω˙z≈τzIzz

4.4 连续时间线性模型 ​

全状态线性模型 x˙=Acx+Bcu:

系统矩阵 Ac(12×12) ​

Ac=[03×3I3×303×303×303×303×303×303×303×303×303×3I3×3A4103×303×303×3]

其中 A41 为姿态-加速度耦合矩阵,体现了 v˙x=gθ 和 v˙y=−gϕ 的耦合关系:

A41=[0g0−g00000]

控制矩阵 Bc(12×4) ​

Bc=[03×4Mtorque03×4Bthrust]

力矩混合矩阵 Mtorque(与 §3.4 中 Mmix 相同,仅名称区分以强调全状态语境):

Mtorque=[d/Ixx−d/Ixx−d/Ixxd/Ixx−d/Iyy−d/Iyyd/Iyyd/Iyy−k/Izzk/Izz−k/Izzk/Izz]

推力混合矩阵(注意此处使用增量控制 Δti,悬停推力 th 已在平衡点中抵消):

Bthrust=[000000001/m1/m1/m1/m]

Bthrust 仅第三行非零,对应 v˙z=1m∑Δti。水平速度通道(第一、二行)通过 A41 中的 g 耦合项间接由姿态控制。

4.5 零阶保持离散化 ​

对于需要离散预测模型的控制方法,对连续模型进行零阶保持(ZOH)离散化。

离散化方法与 §3.5 的矩阵指数法原理相同,区别在于此处系统矩阵维度为 16×16(12 维状态 + 4 维控制):

M=[AcBc04×1204×4]∈R16×16Md=eM⋅Ts,Ad=Md[0:12, 0:12],Bd=Md[0:12, 12:16]

5. 线性化有效范围与小结 ​

5.1 线性模型的有效条件 ​

线性化模型的精度依赖于以下假设的成立程度:

假设条件推荐范围超出影响
小角度假设|ϕ|,|θ|,|ψ|<30∘姿态角 > 30° 时运动学线性化误差 > 15%
小角速度假设|ωx,y,z| 较小角速度 > 1 rad/s 时陀螺耦合不可忽略
推力偏差小|Δti|≪th大推力变化导致平动非线性误差增大

对于超出上述范围的大机动飞行,需要使用非线性控制方法如NMPC等。

线性化模型建立后,可应用于以下控制方法:

  • LQR 最优控制:基于 Ad,Bd 求解离散代数 Riccati 方程
  • MPC 模型预测控制:将线性模型作为预测模型,构建 QP 优化问题
  • 卡尔曼滤波:线性模型作为状态估计的预测模型

本章参考资料与引申阅读已汇总至 参考资料。