092、编队飞行:一致性理论
092、编队飞行:一致性理论
从一次炸机说起
去年夏天,我在测试三架四旋翼的编队飞行。地面站上看着三架飞机的状态曲线,位置误差都在5cm以内,姿态角偏差不到1度,理论上应该稳如老狗。结果一推油门,2号机突然像喝醉了一样往右飘,3号机为了避让直接撞树。事后回传日志发现,2号机的IMU数据在那一瞬间跳了0.3度,但编队控制器没有做任何平滑处理,直接把这个跳变当作“真实偏差”传给了邻居飞机——整个编队瞬间失稳。
这个案例让我意识到:编队飞行的核心不是单机飞得有多稳,而是多机之间如何共享状态、达成共识。这就是一致性理论要解决的问题。
一致性理论到底在说什么
别被“一致性”这个高大上的名字唬住。说白了就是:一群无人机,各自有自己的传感器读数,怎么让它们对“当前编队应该是什么形状”这件事达成共识。
数学上,一致性理论描述的是多智能体系统中,每个节点通过局部信息交换,最终使所有节点的某个状态变量趋于相同。对于编队飞行,这个状态变量可以是位置、速度、航向角,甚至是期望的编队偏移量。
核心公式长这样:
x_i_dot = -sum_{j in N_i} a_ij * (x_i - x_j)别急着关页面。这个公式的意思是:每个无人机i,根据它邻居j的状态,调整自己的状态。如果自己比邻居高,就往下降一点;比邻居低,就往上升一点。最终大家趋于一致。
这里的a_ij是通信权重,决定了邻居之间的信任程度。权重越大,调整力度越猛。
