公司动态
163、飞控中的随机控制:随机微分方程
飞控中的随机控制:随机微分方程从一次炸机说起去年夏天,我在测试一款自研的四旋翼飞控。GPS信号良好,IMU校准通过,气压计读数稳定——一切看起来都很完美。飞机悬停到第三分钟,突然毫无征兆地向右翻滚,然后一头栽进草丛。事后分析日志,发现一个诡异的现象:在炸机前0.5秒,陀螺仪的Z轴角速度出现了约30ms的异常抖动,幅度只有正常噪声的2倍,但恰好触发了姿态解算中的某个保护阈值。更让我头疼的是,同样的代码在仿真里跑了上千次都没复现这个问题。这就是典型的“随机性陷阱”——你以为系统是确定性的,但真实世界充满了各种随机扰动:气流突变、传感器热噪声、振动耦合、甚至电磁干扰。传统的PID控制在这种场景下就像在暴风雨中走钢丝,而随机微分方程(SDE)就是给这根钢丝装上减震器。为什么飞控需要随机微分方程先别急着翻书。我们日常用的飞控模型,本质上是这样的:dx/dt = f(x, u) + w(t)其中w(t)是噪声项。大多数教材会告诉你“噪声均值为零,可以忽略”,但实际调试中你会发现——噪声的方差会随时间变化,而且不同轴向的噪声是相关的。比如电机PWM频率附近的振动噪声,会同时污染加速度计和陀螺仪。随机微分方程的核心思想是:把不确定性当作系统的一部分来建模,而不是事后处理。它把上面的确定性微分方程改写成:dX(t) = f(X(t), u(t))dt + g(X(t), u(t))dW(t)