飞控算法从入门到精通 | 050 电机混控矩阵:六旋翼与八旋翼一、从一次炸机说起去年夏天调试一台X型六旋翼,PID参数调得差不多了,悬停稳得像块石头。客户催得紧,我图省事,直接把四旋翼的混控矩阵改了改塞进去——心想无非是多两个电机,把系数按比例缩放一下就行。结果上电解锁,推油门,飞机原地转圈,然后侧翻,桨叶打地,三根桨报废。当时我盯着日志里的电机输出数据,发现四个电机转速正常,另外两个电机输出值完全不对。问题出在哪?混控矩阵错了。六旋翼不是四旋翼加两个电机那么简单,力矩分配的逻辑完全不同。从那以后,我每次写混控矩阵都会先在仿真里跑一遍,再上真机。二、混控矩阵到底在干什么飞控的核心任务之一,是把期望的“滚转力矩、俯仰力矩、偏航力矩、总推力”这四个控制量,映射到每个电机的转速指令上。这个映射关系,就是混控矩阵。从数学上看,假设我们有N个电机,每个电机产生的推力与转速平方成正比(忽略桨效损失),那么:总推力 = 所有电机推力之和滚转力矩 = 各电机推力 × 力臂在滚转轴上的投影俯仰力矩 = 各电机推力 × 力臂在俯仰轴上的投影偏航力矩 = 各电机反扭矩的代数和(正反转决定符号)写成矩阵形式就是:[Thrust] [1, 1, 1, ..., 1] [M1^2] [Roll ] = [r1x, r2x, ..., rNx] × [M2^2] [Pitch ]