4. 刚体动力学:牛顿-欧拉方程、平动动力学、转动动力学、惯性张量
好,咱们进入正题。前面聊完了运动学,说白了就是「怎么动」的问题。现在要聊动力学,也就是「为什么动」——力和力矩是怎么让四旋翼飞起来的。
我个人习惯把四旋翼看作一个刚体。虽然它确实有振动、有柔性,但在建模初期,刚体假设是最实用的。你想想看,如果一开始就把所有弹性变形都考虑进去,那模型复杂到根本没法用。
4.1 牛顿-欧拉方程:飞行的底层逻辑
牛顿-欧拉方程,说白了就是两个核心公式的合体:
- 牛顿第二定律:描述平动,F = ma
- 欧拉方程:描述转动,τ = I·α + ω × (I·ω)
这两个公式,就是四旋翼动力学建模的基石。我当年刚入行时,总觉得这太简单了,不就是高中物理吗?结果第一次做仿真,飞机直接翻了个跟头——因为我忘了把惯性张量搞对。
核心要点:牛顿-欧拉方程把飞行器的运动拆成了两部分——质心的平动和绕质心的转动。这两部分通过力和力矩耦合在一起,但方程本身是独立的。
4.2 平动动力学:力怎么让飞机移动
平动动力学,关注的是飞行器质心的运动。在惯性坐标系下,牛顿第二定律可以写成:
m · dV/dt = F_gravity + F_thrust + F_aero
其中:
- m 是飞行器总质量
- V 是质心速度向量
- F_gravity 是重力,方向向下
- F_thrust 是四个旋翼产生的总推力,方向沿机体z轴
- F_aero 是空气阻力,通常与速度平方成正比
这里有个坑,我踩过。推力方向是在机体坐标系下的,但重力是在惯性坐标系下的。所以做仿真时,必须把推力通过旋转矩阵转换到惯性系。我曾经偷懒没做这个转换,结果仿真出来的飞机是横着飞的……
我的经验:平动动力学方程里,最容易被忽略的是空气阻力项。低速飞行时确实可以忽略,但如果你要做高速机动或者抗风控制,这一项必须加进去。我做过一个项目,不加阻力项时控制器参数调得挺好,一上真机就抖得不行——就是因为仿真里没考虑阻力。
4.3 转动动力学:力矩怎么让飞机旋转
转动动力学比平动复杂一些。欧拉方程在机体坐标系下写成:
I · dω/dt + ω × (I · ω) = τ_thrust + τ_gyro
其中:
- I 是惯性张量(3×3矩阵)
- ω 是角速度向量 [p, q, r]ᵀ
- τ_thrust 是旋翼产生的控制力矩
- τ_gyro 是旋翼陀螺效应产生的力矩
为什么要加那个 ω × (I·ω) 项?因为飞行器在旋转时,角动量方向会变化,产生一个「额外」的力矩。说白了,就是旋转的物体不愿意改变旋转方向——这就是陀螺效应。
注意:陀螺效应项在低速旋转时可以忽略,但在高速旋转时(比如快速横滚),这一项会产生明显的耦合。我见过有人做仿真时把这一项去掉了,结果实际飞行时飞机在横滚时莫名其妙地偏航——这就是陀螺效应在作怪。
4.4 惯性张量:飞机的「旋转惯性」
惯性张量,说白了就是描述物体「抗拒旋转」的度量。对于四旋翼,它是一个3×3的对称矩阵:
I = | Ixx -Ixy -Ixz |
| -Ixy Iyy -Iyz |
| -Ixz -Iyz Izz |
对角线元素 Ixx、Iyy、Izz 是绕各轴的转动惯量。非对角线元素是惯性积,表示质量分布的不对称性。
对于四旋翼,如果结构对称,惯性积通常很小,可以近似为零。但注意,这只是近似。我做过一个项目,飞机上挂了一个偏载的摄像头,结果惯性积变得不可忽略,导致横滚和偏航耦合严重。后来我花了三天时间重新辨识惯性张量才搞定。
| 参数 | 物理意义 | 典型值(小四旋翼) |
|---|---|---|
| Ixx | 绕x轴(横滚)的转动惯量 | 0.005 - 0.02 kg·m² |
| Iyy | 绕y轴(俯仰)的转动惯量 | 0.005 - 0.02 kg·m² |
| Izz | 绕z轴(偏航)的转动惯量 | 0.01 - 0.03 kg·m² |
| Ixy, Ixz, Iyz | 惯性积(对称结构≈0) | 0 或很小 |
如何获取惯性张量? 三种方法:
- CAD模型计算:用SolidWorks等软件,给每个零件赋材质,直接算出来。最准,但需要详细模型。
- 实验辨识:用扭摆法或三线摆法实测。我常用这个方法,因为实际装配后的质量分布和CAD总有偏差。
- 经验估算:把飞机简化为几个质量点(电机、电池、飞控板),用平行轴定理估算。精度一般,但快速。
4.5 知识体系总览
下面这张图,是我自己梳理的本章知识结构。你看一眼,就能明白各个概念之间的关系。
嗯,这张图把本章的核心逻辑串起来了。牛顿-欧拉方程是总纲,往下分平动和转动两条线,而惯性张量是转动部分的核心参数。你写代码做仿真时,就按这个结构来组织代码,不会乱。
最后说一句:动力学建模是飞控算法的基础。模型不准,控制器设计得再好也是空中楼阁。我见过太多人花大量时间调PID参数,却不愿意花一天时间把惯性张量测准——结果就是飞机怎么调都飞不稳。所以,别偷懒,把动力学模型搞扎实了,后面会省很多事。