# 罗盘功率补偿
罗盘(磁力计)的安装应尽可能远离携带大电流的电缆,因为这些电缆会产生磁场,可能会破坏罗盘的读数。
本主题介绍在移动罗盘不现实的情况下如何补偿感应磁场。
TIP
要解决这个问题,最简单有效的方法就是将指南针远离供电电缆,因为磁场强度会随着与电缆距离的增加而呈二次方递减。
备注
演示的是多旋翼飞行器,但同样适用于其他类型的飞行器。
# 电力补偿何时适用?
只有当以下所有说法都成立时,才建议进行功率补偿:
指南针不能远离供电电缆。
罗盘读数与推力设定点和/或电池电流之间有很强的相关性。
无人机电缆全部固定到位/不移动(如果载流电缆可以移动,则计算的补偿参数无效)。
# 如何补偿指南针
确保无人机运行的固件版本支持功率补偿(当前的主版本或 v.1.11.0 以来的版本)。
执行 标准指南针校准.
设置参数 SDLOG_MODE 调至 2 以启用开机数据记录。
设置参数 SDLOG_PROFILE 的复选框 传感器比较 (第 6 位)以获取更多数据点。
固定无人机,使其无法移动,并安装螺旋桨(这样电机就能获得与飞行时相同的电流)。本示例使用绑带固定飞行器。
接通载具电源并切换到 ACRO 飞行模式 (使用该模式可确保载具不会试图补偿绑带造成的移动)。
- 启动载具,慢慢将油门升至最大值。
- 慢慢将油门降至零
- 解除载具上膛
备注
小心进行测试并密切监测振动。
读取 ulog 并使用 python 脚本 mag_compensation.py (打开新窗口) 以确定补偿参数。
python mag_compensation.py ~/path/to/log/logfile.ulg
备注
如果日志中不包含电池电流测量值,则需要注释掉 Python 脚本中的相应行,使其只计算推力。
脚本将返回推力和电流的参数标识,并打印到控制台。脚本弹出的数字显示了每个罗盘实例的拟合优度,以及使用建议值进行补偿后的数据结果。如果有电流测量值,使用电流补偿通常会得到更好的结果。下面是一个日志示例,其中电流拟合效果很好,但推力参数由于不是线性关系而无法使用。
确定参数后,必须通过设置 cal_mag_comp_typ 为 1(使用推力参数时)或 2(使用电流参数时)。此外,还必须为每个罗盘的每个轴设置补偿参数。