010、多旋翼飞行器结构与受力分析
飞控算法从入门到精通 · 010 · 多旋翼飞行器结构与受力分析
从一次炸机说起
去年夏天,我在调试一架六轴机架时遇到一个诡异现象:悬停时电机温度正常,但一旦切到航线模式,四个外圈电机温度飙升,内圈两个反而冰凉。拆下来检查,桨叶没装反,电调校准过,飞控参数也按手册填的。最后发现是机臂长度不一致——出厂时有一根机臂比另外五根短了3毫米。这个3毫米的差异,在悬停时靠PID硬扛过去了,但航线飞行时外圈电机需要额外出力补偿不对称的力矩,直接导致过热。
这个案例说明一个核心问题:多旋翼的受力分析不是纸上谈兵,它直接决定你写的控制算法能不能飞起来。下面我从结构拆解开始,把每个受力环节掰开揉碎讲清楚。
机架坐标系与力的分解
多旋翼的受力分析,第一步是建立坐标系。别小看这一步,我见过太多人把机体坐标系和地面坐标系搞混,导致姿态解算结果反号,飞控直接翻车。
通常我们定义机体坐标系(Body Frame)为:原点在飞行器质心,X轴指向机头方向,Y轴指向右侧(右手定则),Z轴垂直向下。注意这里Z轴向下是航空惯例,和很多教材的“向上为正”不同。如果你用Z轴向上,后面所有力矩计算都要加负号,别这样写,容易乱。
地面坐标系(Earth Frame)用NED(北东地)或者ENU(东北天)都行,但建议统一用NED,因为PX4和ArduPilot默认都是NED。如果你在代码里混用,调试时看日志会疯掉——这里踩过坑。
力的分解核心就三个:重力、升力、阻力。重力永远沿地面坐标系Z轴向下,升力沿机体坐
