3、动力学方程:牛顿-欧拉方程、平动动力学、转动动力学、惯性张量计算、力矩分析
好,咱们进入正题。多旋翼的动力学,说白了就是回答两个问题:它怎么飞起来?它怎么转起来?
第一个问题归牛顿管,第二个问题归欧拉管。合在一起,就是经典的牛顿-欧拉方程。我个人习惯把这两部分拆开看,先搞平移,再搞旋转,这样脑子不容易乱。
3.1 牛顿-欧拉方程:飞控的“宪法”
你想想看,多旋翼在空中运动,无非就是两种:位置变化和姿态变化。位置变化看质心,姿态变化看绕质心的转动。
牛顿第二定律告诉我们:
m * a = F (合外力 = 质量 × 加速度)
欧拉方程告诉我们:
I * α + ω × (I * ω) = M (合外力矩 = 惯性张量 × 角加速度 + 陀螺效应项)
嗯,这里要注意,欧拉方程里那个 ω × (I * ω) 可不是闹着玩的。我在项目中遇到过,有人把这一项漏了,结果仿真出来的姿态在高转速下直接发散。说白了,这就是陀螺力矩,你旋翼转得越快,它越明显。
3.2 平动动力学:力从哪来?
多旋翼在空中的受力,其实挺单纯的。我列一下:
- 重力:mg,方向竖直向下,这个跑不掉。
- 总拉力:四个(或更多)旋翼产生的升力之和,方向沿机体Z轴向上。
- 空气阻力:这个比较烦,一般简化成与速度平方成正比,方向与速度相反。
所以平动动力学方程写出来就是:
m * dV/dt = R * [0, 0, T]^T - [0, 0, mg]^T - D
其中 R 是机体坐标系到惯性系的旋转矩阵,T 是总拉力,D 是阻力向量。
我曾经在调试一个六轴的时候,发现飞机总是往一边偏。查了半天,原来是阻力模型没建对。你想想看,风大的时候,阻力项的影响甚至比拉力还大。
3.3 转动动力学:谁让它转?
转动比平动复杂一些。多旋翼的力矩来源主要有三个:
- 旋翼升力差产生的力矩:比如前后旋翼转速不同,产生俯仰力矩。
- 反扭矩:每个旋翼转动时,会给机身一个反向的扭矩。这就是偏航控制的来源。
- 陀螺力矩:旋翼高速旋转,当机体转动时,会产生陀螺效应。这个在欧拉方程里已经包含了。
转动动力学方程(在机体坐标系下)为:
I * dω/dt + ω × (I * ω) = M
这里 ω = [p, q, r]^T 是机体角速度,M 是合外力矩。
我记得有一次做高机动性飞行测试,飞机突然剧烈抖动。排查下来,是陀螺力矩项在高速滚转时被忽略了。说白了,你飞得越猛,这一项越不能省。
3.4 惯性张量计算:别小看这个矩阵
惯性张量 I 是一个 3×3 的矩阵,它描述了质量分布对转动的影响。对于多旋翼,我们通常假设机体关于 XZ 和 YZ 平面对称,所以非对角线元素为 0。
简化后的惯性张量:
I = [Ixx, 0, 0
0, Iyy, 0
0, 0, Izz]
怎么算?我一般用两种方法:
- CAD 软件测量:在 SolidWorks 或 Fusion 360 里建好模型,直接读取惯性张量。这是最准的。
- 实验法:用三线摆或扭摆测量。我早期做原型机时,就用过这个方法,虽然麻烦,但数据很可靠。
3.5 力矩分析:控制分配的基础
力矩分析,说白了就是搞清楚每个旋翼产生的力矩怎么合成。以四旋翼为例:
| 旋翼编号 | 位置(前/后/左/右) | 旋转方向 | 对滚转的贡献 | 对俯仰的贡献 | 对偏航的贡献 |
|---|---|---|---|---|---|
| 1 | 右前 | 顺时针 | +L * F1 | +L * F1 | -k * F1 |
| 2 | 左前 | 逆时针 | -L * F2 | +L * F2 | +k * F2 |
| 3 | 右后 | 逆时针 | +L * F3 | -L * F3 | +k * F3 |
| 4 | 左后 | 顺时针 | -L * F4 | -L * F4 | -k * F4 |
其中 L 是旋翼到质心的距离,k 是反扭矩系数。这个表就是控制分配矩阵的物理基础。
我建议你把这个表背下来。每次做控制分配时,心里默念一遍,不容易出错。