4、风速估计方法:三角法风速估计、卡尔曼滤波风速估计、惯性导航辅助

风速估计,说白了就是搞清楚「空气相对于地面的运动」。你想想看,飞机在空中飞,地速是GPS测出来的,空速是皮托管测出来的,那风速不就是它俩的矢量差吗?道理很简单,但实际做起来坑不少。

我个人习惯把风速估计方法分成三类:三角法、卡尔曼滤波、惯性导航辅助。每种方法都有自己的脾气,咱们一个一个聊。

4.1 三角法风速估计

三角法是最直观的方法。它的核心思想就一句话:风速 = 地速 - 空速。注意,这是矢量运算,不是标量减法。

具体做法是这样的:

  • 从GPS拿到地速矢量 Vg(大小+方向)
  • 从空速管拿到空速大小 Va,从姿态航向系统拿到航向角 ψ,合成空速矢量 Va_vec
  • 风速矢量 Vw = Vg - Va_vec

听起来简单吧?但我曾经在项目里吃过亏。有一次试飞,三角法算出来的风速忽大忽小,甚至出现逆风变顺风的荒唐结果。排查了半天,发现是GPS更新频率只有5Hz,而空速更新频率是50Hz,两个数据不同步导致的。

避坑指南:三角法对数据同步要求极高。我曾经因为没做时间戳对齐,导致风速估计误差超过10m/s。建议用插值法把GPS数据对齐到空速时间戳上。

三角法的优点是简单、计算量小,适合在低端飞控上跑。缺点也很明显:GPS信号差的时候(比如城市峡谷、树荫下),地速不准,风速估计直接崩掉。

4.2 卡尔曼滤波风速估计

卡尔曼滤波是解决「传感器都有噪声」这个问题的标准方案。它把风速当成一个状态量,用动力学模型预测,再用测量值修正。

我常用的状态向量是:

X = [Vn, Ve, Vd, Wn, We, Wd]^T

其中 Vn, Ve, Vd 是北东地坐标系下的空速分量,Wn, We, Wd 是风速分量。测量量是GPS地速和空速大小。

状态方程长这样:

V(k+1) = V(k) + (T/m) * (F_thrust + F_aero) + w1
W(k+1) = W(k) + w2

这里 w1 和 w2 是过程噪声。注意,我把风速建模为随机游走——说白了就是假设风速变化很慢,用白噪声驱动。

测量方程:

Vg_gps = V + W + v1
Va_pitot = ||V|| + v2

v1 和 v2 是测量噪声。嗯,这里要注意:空速测量是标量,地速测量是矢量,所以测量方程是非线性的,得用扩展卡尔曼滤波(EKF)。

个人经验:卡尔曼滤波的调参是个玄学。我习惯先离线跑一遍数据,用试错法调 Q 和 R 矩阵。Q 矩阵里的风速过程噪声我一般设得比空速过程噪声大一个数量级——因为风速变化比空速变化快。

卡尔曼滤波的好处是能融合多传感器信息,抗干扰能力强。坏处是计算量大,而且对模型误差敏感。模型建得不好,滤波会发散。

4.3 惯性导航辅助

惯性导航辅助,说白了就是用IMU的数据来「填补」GPS失效时的空白。这个方法我在做城市低空物流无人机时用过,效果还不错。

核心思路是这样的:

  • 正常工作时,用卡尔曼滤波估计风速
  • GPS失效时,用IMU积分推算地速变化
  • 用推算的地速和空速,继续估计风速

具体实现上,我用了松耦合的INS/GPS组合导航架构。IMU提供加速度和角速度,积分得到位置和速度,GPS定期修正积分漂移。

风速估计的公式变成:

Vw_est = V_ins - Va_vec

其中 V_ins 是惯导推算的地速矢量。注意,惯导的漂移会直接影响风速估计精度,所以需要定期用GPS校准。

关键点:惯性导航辅助不是替代GPS,而是「撑过」GPS失效的那段时间。我一般设定一个时间阈值——如果GPS失效超过30秒,就切换到纯空速模式,不再依赖风速估计。

三种方法的对比,我整理了一张表:

方法 优点 缺点 适用场景
三角法 简单、计算量小 对数据同步敏感、依赖GPS 低成本飞控、GPS信号好
卡尔曼滤波 融合多传感器、抗干扰 调参复杂、计算量大 中高端飞控、需要高精度
惯导辅助 GPS失效时仍可用 惯导漂移、需要定期校准 城市峡谷、树荫等GPS差的环境

下面这张图展示了三种方法的核心逻辑关系:

风速估计方法体系 GPS地速 空速管 IMU/航向 三角法 Vw = Vg - Va_vec 卡尔曼滤波 EKF融合多传感器 惯导辅助 GPS失效时推算 风速估计值 Vw = [Vwn, Vwe, Vwd] 三种方法可切换使用,卡尔曼滤波为默认推荐方案

最后说一句:实际项目中,我一般把三种方法都实现,然后根据GPS信号质量自动切换。GPS信号好时用三角法或卡尔曼滤波,信号差时切到惯导辅助。这样既保证了精度,又兼顾了鲁棒性。

总结:风速估计没有银弹。三角法简单但脆弱,卡尔曼滤波稳健但复杂,惯导辅助能应急但有漂移。我的建议是——根据你的飞行环境和硬件资源,选一个主方案,再备一个降级方案。

公众号:蓝海资料掘金营,微信deep3321