🌐 四旋翼无人机动力学建模方式全解析:完整刚体模型 vs 简化阻尼模型
无人机建模是飞控设计、控制算法开发、仿真测试的重要基础。本文对比分析了两种典型的四旋翼无人机动力学建模方式:完整刚体模型与简化阻尼模型,并讨论了它们之间的转换关系与适用场景。
🧩 一、完整刚体动力学模型(Full Rigid-Body Model)
✅ 1. 模型结构
该模型基于六自由度刚体动力学原理,建模包括位置、速度、姿态角、角速度,并显式考虑了质量、惯性矩、力矩输入等:
{p˙=vv˙=1muRe3−ge3+dpη˙=ωω˙=−J−1(ω×Jω)+J−1τ+d \begin{cases} \dot{\mathbf{p}} = \mathbf{v} \\ \dot{\mathbf{v}} = \frac{1}{m} u \mathbf{R} \mathbf{e}_3 - g \mathbf{e}_3 + \mathbf{d}_p \\ \dot{\boldsymbol{\eta}} = \boldsymbol{\omega} \\ \dot{\boldsymbol{\omega}} = -\mathbf{J}^{-1} (\boldsymbol{\omega} \times \mathbf{J}\boldsymbol{\omega}) + \mathbf{J}^{-1} \boldsymbol{\tau} + \mathbf{d} \end{cases} ⎩⎨⎧p˙=vv˙=m1uRe3−ge3+dpη˙=ωω˙=−J−1(ω×Jω)+J−1τ+d
- p=[x,y,z]⊤\mathbf{p} = [x, y, z]^\topp=[x,y,z]⊤:位置
- v=[vx,vy,vz]⊤\mathbf{v} = [v_x, v_y, v_z]^\topv=[vx,vy,vz]⊤:线速度
- η=[ϕ,θ,ψ]⊤\boldsymbol{\eta} = [\phi, \theta, \psi]^\topη=[ϕ,θ,ψ]⊤:欧拉角(滚转、俯仰、偏航)
- ω=[ωϕ,ωθ,ωψ]⊤\boldsymbol{\omega} = [\omega_\phi, \omega_\theta, \omega_\psi]^\topω=[ωϕ,ωθ,ωψ]⊤:角速度
- uuu:总推力,τ=[τ1,τ2,τ3]⊤\boldsymbol{\tau} = [\tau_1, \tau_2, \tau_3]^\topτ=[τ1,τ2,τ3]⊤:控制力矩
- J=diag(Jxx,Jyy,Jzz)\mathbf{J} = \text{diag}(J_{xx}, J_{yy}, J_{zz})J=diag(Jxx,Jyy,Jzz):转动惯量
- R\mathbf{R}R:旋转矩阵
- dp,d\mathbf{d}_p, \mathbf{d}dp,d:扰动项(例如风场、建模误差)
🎯 旋转矩阵 R\mathbf{R}R 的作用
旋转矩阵 R∈SO(3)\mathbf{R} \in SO(3)R∈SO(3) 用于描述机体系与惯性系之间的姿态变换关系,常用于:
- 将机体坐标系下的力(如推力)转换到惯性系;
- 在控制中处理姿态相关控制律(如姿态误差、姿态映射);
- 构建飞行器的非线性模型或线性化控制模型。
完整刚体模型中使用的是三轴欧拉角 (ϕ,θ,ψ)(\phi, \theta, \psi)(ϕ,θ,ψ) 对应的旋转矩阵:
R(ϕ,θ,ψ)=[cosθcosψcosθsinψ−sinθsinϕsinθcosψ−cosϕsinψsinϕsinθsinψ+cosϕcosψsinϕcosθcosϕsinθcosψ+sinϕsinψcosϕsinθsinψ−sinϕcosψcosϕcosθ] \mathbf{R}(\phi, \theta, \psi) = \begin{bmatrix} \cos\theta\cos\psi & \cos\theta\sin\psi & -\sin\theta \\ \sin\phi\sin\theta\cos\psi - \cos\phi\sin\psi & \sin\phi\sin\theta\sin\psi + \cos\phi\cos\psi & \sin\phi\cos\theta \\ \cos\phi\sin\theta\cos\psi + \sin\phi\sin\psi & \cos\phi\sin\theta\sin\psi - \sin\phi\cos\psi & \cos\phi\cos\theta \end{bmatrix} R(ϕ,θ,ψ)=cosθcosψsinϕsinθcosψ−cosϕsinψcosϕsinθcosψ+sinϕsinψcosθsinψsinϕsinθsinψ+cosϕcosψcosϕsinθsinψ−sinϕcosψ−sinθsinϕcosθcosϕcosθ
- 由Z-Y-X 欧拉角顺序构造(偏航-俯仰-滚转);
- 描述从机体系到世界坐标系的转换;
- 适用于高精度六自由度建模;
- 与角速度、惯量耦合,可推导雅可比矩阵和角加速度关系;
- 对应
tf.transformations.euler_matrix()或scipy.spatial.transform.Rotation.from_euler()。
✅ 2. 特点
- 精确描述无人机在三维空间的刚体运动;
- 能反映姿态动力学与角动量耦合特性;
- 适合用于强化学习策略训练、高保真仿真、复杂轨迹控制设计(如MPC);
- 控制输入通常是推力+力矩,物理意义明确。
⚙️ 二、简化阻尼建模模型(Low-Level Approximate Model)
✅ 1. 模型结构
该模型省略角速度与惯量建模,仅使用一阶滞后描述姿态变化,并加入阻尼项简化空气阻力:
{p˙=vv˙=R(ϕ,θ)[00T]+[00−g]−Avϕ˙=1τϕ(Kϕϕref−ϕ)θ˙=1τθ(Kθθref−θ) \begin{cases} \dot{\mathbf{p}} = \mathbf{v} \\ \dot{\mathbf{v}} = \mathbf{R}(\phi, \theta) \begin{bmatrix} 0 \\ 0 \\ T \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ -g \end{bmatrix} - \mathbf{A} \mathbf{v} \\ \dot{\phi} = \frac{1}{\tau_\phi}(K_\phi \phi_{\text{ref}} - \phi) \\ \dot{\theta} = \frac{1}{\tau_\theta}(K_\theta \theta_{\text{ref}} - \theta) \end{cases} ⎩⎨⎧p˙=vv˙=R(ϕ,θ)00T+00−g−Avϕ˙=τϕ1(Kϕϕref−ϕ)θ˙=τθ1(Kθθref−θ)
其中:
- 控制输入为:TTT(总推力),ϕref,θref\phi_{\text{ref}}, \theta_{\text{ref}}ϕref,θref(参考姿态角);
- A=diag(Ax,Ay,Az)\mathbf{A} = \text{diag}(A_x, A_y, A_z)A=diag(Ax,Ay,Az):线性阻尼系数矩阵;
- 姿态控制器为一阶闭环系统,模拟飞控板控制逻辑;
- R(ϕ,θ)\mathbf{R}(\phi,\theta)R(ϕ,θ):忽略偏航角的旋转矩阵近似。
简化模型常用于姿态反馈控制或仿真中,通常忽略偏航角 ψ\psiψ,只考虑俯仰 θ\thetaθ 和滚转 ϕ\phiϕ:
R(ϕ,θ)=[cosθ0sinθsinϕsinθcosϕ−sinϕcosθ−cosϕsinθsinϕcosϕcosθ] \mathbf{R}(\phi, \theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ \sin\phi\sin\theta & \cos\phi & -\sin\phi\cos\theta \\ -\cos\phi\sin\theta & \sin\phi & \cos\phi\cos\theta \end{bmatrix} R(ϕ,θ)=cosθsinϕsinθ−cosϕsinθ0cosϕsinϕsinθ−sinϕcosθcosϕcosθ
- 用于描述推力方向随姿态变化的投影
- 适合在不关心偏航影响的控制场景(如位置控制、悬停);
- 数学结构更简单,便于解析控制;
✅ 2. 特点
- 忽略角动量耦合与力矩控制;
- 结构简洁,适合低级控制器建模或部署;
- 更贴近工业飞控接口(如 PX4 / ArduPilot 的期望姿态接口);
- 常用于教学、快速验证、嵌入式部署等轻量级场景。
🔁 三、两种模型之间的转换关系
| 转换方向 | 可行性 | 方法 | 注意事项 |
|---|---|---|---|
| ✅ 完整 → 简化 | 可行 | 省略角速度、惯量,近似为一阶姿态滞后;风阻项线性化为 −Av-A \mathbf{v}−Av | 会损失精度与耦合性 |
| ❌ 简化 → 完整 | 不可逆 | 需重新建模补充角速度、惯性矩、非线性阻力项 | 简化模型信息缺失,无法恢复 |
🌬️ 四、风阻力建模对比
简化模型阻尼项:
Fdamping=−A⋅v \mathbf{F}_{\text{damping}} = -\mathbf{A} \cdot \mathbf{v} Fdamping=−A⋅v
真实空气阻力模型(含风):
Fwind=−12ρACd∥v−vwind∥(v−vwind) \mathbf{F}_{\text{wind}} = -\frac{1}{2} \rho A C_d \|\mathbf{v} - \mathbf{v}_{\text{wind}}\|(\mathbf{v} - \mathbf{v}_{\text{wind}}) Fwind=−21ρACd∥v−vwind∥(v−vwind)
| 对比维度 | 简化阻尼项 | 风阻模型 |
|---|---|---|
| 是否线性 | ✅ 是 | ❌ 否,二阶 |
| 是否含风 | ❌ 否 | ✅ 包含风速向量 |
| 易用性 | 高,适合控制设计 | 低,需数值计算 |
| 物理精度 | 中(局部线性近似) | 高(真实气动特性) |
✅ 五、建模选型建议
| 应用场景 | 推荐模型 |
|---|---|
| 强化学习策略训练、高精度控制仿真 | 完整模型 |
| 级联控制器设计、嵌入式飞控接口仿真 | 简化模型 |
| 飞行数据拟合风阻建模 | 使用风阻模型或将其线性化为阻尼系数 |
| 学术研究/论文推导 | 推荐使用完整模型配合简化建模分析 |
1124

被折叠的 条评论
为什么被折叠?



