4. 校准工具与环境搭建

各位,前面两讲我们把加速度计的六面校准和温度补偿聊透了。但有个问题一直悬着——你的飞机真的在「干净」的环境里校准的吗?

说实话,我见过太多飞友在水泥地上做校准,旁边还开着大功率风扇。结果呢?飞起来悬停都抖,日志里加速度计数据全是毛刺。这其实就是振动污染了校准结果。

这一讲,我们就专门解决这个问题。我会把振动环境下的校准策略、共振频率的识别方法,以及怎么在 ArduPilot 里把这些频率「绕过去」,一次性讲清楚。

4.1 振动对加速度计校准的影响到底有多大?

先看一个我踩过的坑。几年前调一台四轴,机架是碳管加 3D 打印件,刚性一般。我在室内无风环境做完六面校准,参数看起来都正常。结果一飞,高度保持不住,油门稍微一动就来回晃。

查日志才发现,加速度计 Z 轴的噪声标准差达到了 0.8m/s²。这意味着什么?你想想看,飞控以为飞机在加速下降,实际上只是机架在抖。它拼命推油门,飞机就上蹿下跳。

振动对校准的影响,主要体现在三个层面:

影响层面 具体表现 后果
偏置估计偏移 振动导致加速度计输出均值偏离真实值 悬停时飞控认为飞机倾斜,持续修正
比例因子失真 高频振动叠加在校准信号上 姿态解算出现周期性误差
噪声基底抬高 加速度计输出信噪比下降 EKF 滤波器收敛变慢,甚至发散

核心结论:振动环境下的校准,本质上是在「信号」和「噪声」的混合体里提取真实的重力分量。如果噪声能量过大,校准算法会把噪声当成信号的一部分,结果就是「校准了个寂寞」。

4.2 机架共振频率识别——先找到「雷区」

要规避振动,首先得知道你的机架在哪些频率上「容易兴奋」。共振频率,说白了就是机架本身的固有频率。当电机转速产生的振动频率接近这个值时,振幅会被放大好几倍。

我个人习惯用两种方法来找共振点:

4.2.1 方法一:手动扫频(最可靠)

这个方法有点笨,但最准。把飞机固定好(注意安全),通过 Mission Planner 的电机测试功能,从最低油门逐步推到最高,同时记录加速度计数据。

具体步骤:

  1. 进入 Mission Planner 的「初始设置」→「可选硬件」→「电机测试」
  2. 设置步进为 5% 油门,每步停留 2 秒
  3. 从 0% 推到 100%,再拉回 0%
  4. 下载日志,用 FFT 工具分析加速度计 Z 轴数据

看 FFT 结果时,重点关注那些能量突然飙升的频点。比如我上次测一台 550mm 轴距的机架,在 45Hz 和 78Hz 处有两个明显的尖峰。这就是共振点。

4.2.2 方法二:飞行日志 FFT 分析(更实用)

手动扫频需要固定飞机,有点麻烦。更常用的办法是直接飞一次,然后分析日志。ArduPilot 的日志里自带 IMU 数据,我们可以用工具做 FFT。

小技巧:在 Mission Planner 里打开日志,选择「FFT」标签页,勾选 AccX、AccY、AccZ。然后找一个悬停平稳的段落,看频谱图。如果某个频率的幅值明显高于周围,那就是共振点。

我一般会看三个轴的频谱。有时候 Z 轴共振不明显,但 X 或 Y 轴有。别只看一个轴。

4.3 共振频率规避策略——怎么绕过去

找到共振频率后,我们有两条路:一是物理减振,二是软件滤波。我建议两条路都走。

4.3.1 物理减振:从源头降低振动

这是最根本的办法。振动小了,校准自然就准了。

  • 桨叶平衡:新桨叶一定要做静平衡。我见过一副桨差了 0.3g,飞起来整个机架都在抖。
  • 电机动平衡:电机轴弯了或者轴承有间隙,换!别犹豫。
  • 减振垫:飞控和机架之间用减振泡沫或硅胶垫。厚度 3-5mm,硬度适中。太软了低频共振,太硬了没效果。
  • 机架刚性:碳管机架注意连接件的紧固。松动的螺丝就是振动放大器。

4.3.2 软件滤波:在 ArduPilot 里设置陷波器

物理减振做不到完美,剩下的就靠软件。ArduPilot 的 INS_HNTCH_ 参数组就是干这个的。

核心参数:

参数名 作用 我的推荐值
INS_HNTCH_ENABLE 启用陷波滤波器 1(启用)
INS_HNTCH_FREQ 陷波中心频率(Hz) 设为共振频率,比如 45
INS_HNTCH_BW 陷波带宽(Hz) 一般设为频率的 10%,比如 4.5
INS_HNTCH_ATTEN 衰减深度(dB) 默认 20dB,够用

注意:陷波器不是万能的。带宽设太宽会滤掉有用的姿态信号,设太窄又盖不住共振。我一般先设 10% 带宽,飞一圈看日志,如果共振峰还在,再慢慢加宽。每次加 2%,直到共振消失。

4.4 振动环境下的校准操作流程

好了,现在我们知道共振频率在哪,也知道怎么滤波了。那具体怎么做校准?我总结了一套流程:

  1. 先做物理减振:检查桨、电机、减振垫。确保机械部分没问题。
  2. 识别共振频率:用飞行日志 FFT 或手动扫频,找到所有共振点。
  3. 设置陷波器:在参数列表里,为每个共振频率设置一个陷波器。ArduPilot 支持多个陷波器串联。
  4. 验证滤波效果:再飞一次,看日志里加速度计噪声是否降低。目标是把 Z 轴噪声标准差压到 0.3m/s² 以下。
  5. 执行六面校准:在确认振动环境「干净」后,做标准的六面加速度计校准。
  6. 飞行验证:校准后飞一次悬停和航线,看姿态是否稳定。

我曾经在一个项目里,客户说飞机怎么都调不稳。我过去一看,机架共振在 55Hz,但陷波器设在了 50Hz。差了 5Hz,效果天差地别。调准后,飞机稳得像钉子一样。

4.5 知识体系总览

下面这张图,把振动校准的整个逻辑串起来了。从问题识别到解决方案,再到验证闭环,一目了然。

振动环境校准策略知识体系 振动环境校准策略知识体系 问题:振动污染校准 步骤1:共振频率识别 手动扫频(固定测试) 飞行日志 FFT 分析 步骤2:共振频率规避 物理减振(源头治理) 软件陷波器(INS_HNTCH_) 步骤3:执行六面校准 关键:校准前确认加速度计噪声标准差 < 0.3m/s²,否则返回步骤2 校准后必须飞行验证,检查姿态稳定性

4.6 避坑指南

最后,分享几个我踩过的坑,希望能帮你省点时间。

  • 别在水泥地上校准:地面反射的振动会通过起落架传到飞控。我习惯在泡沫垫或草地上做校准。
  • 电机怠速时别校准:有些飞友习惯不拆桨,电机怠速时做校准。这等于在振动台上校准,结果能准吗?
  • 陷波器别设太多:ArduPilot 支持多个陷波器,但每加一个都会引入相位延迟。我一般不超过 3 个。如果共振点太多,先检查物理减振。
  • 校准后记得重新检查参数:我曾经校准完忘了保存参数,断电后全丢了。第二天飞,飞机直接翻了个跟头。

我的个人习惯:每次校准前,我都会在日志里加一个 EV 事件标记。这样回头查日志时,能清楚知道哪段数据是校准前、哪段是校准后。对比起来一目了然。

嗯,振动环境下的校准策略就讲到这里。核心就三件事:找到共振点、用物理和软件手段绕过去、在干净的环境里做校准。把这三点做到位,你的加速度计数据会干净很多,飞控的表现也会上一个台阶。