GPS 故障安全和故障保护¶
本文介绍用于触发 GPS 故障安全的故障保护机制。
概述¶
GPS 系统偶尔会丢失信号或提供严重不准确的位置信息(又称 "闪烁")。虽然在 GPS 信号到达接收器之前会经过多条路径反弹(多路径)的情况下更容易出现误差,但即使在晴朗的天空下,偶尔也会出现误差。
A GPS 故障保护 当飞行器处于需要 GPS 的模式(RTL、Auto、Loiter、Circle、Position、Guided 或 Drift)时,如果 GPS 3D 锁定或位置 "闪烁 "至少 5 秒钟,则会发生事件。可以将 GPS 故障安全响应设置为降落或切换到 AltHold 模式,以便重新获得手动控制。
在没有 GPS 更新的情况下,惯性传感器可以提供大约 10 秒钟的准确位置信息,但在这之后,水平位置漂移会变得非常大,以至于根本无法保持水平位置。此时,如果您仍在使用遥控无线电控制,建议您尽快使用 "稳定"、"Acro "或 "AltHold "功能收回控制权。
故障保护 - 默认¶
GPS 故障保护功能可在 GPS 位置不佳时向飞行员发出警报,触发故障保护装置,并减少失控事件的发生。通过比较从全球定位系统接收到的每次新的位置更新和根据上次更新的位置和速度推算出的位置,可以检测到故障。
在以下情况下,新职位被视为 "良好":
这两个位置在
gpsglitch_radius
(默认为 5 米)。新位置的半径为 10m/s/s(
gpsglitch_accel
)* dt * dt。其中,"dt "是两个样本之间的时间差。
出现故障时,地面站的 HUD 上将显示 "位置不佳 "字样
故障保护 - EKF¶
ArduPilot 扩展卡尔曼滤波器(EKF))提供故障保护。
使用 EKF 的故障保护工作原理如下:
当接收到新的 GPS 位置测量值时,会将其与使用 IMU 测量值预测的位置进行比较。
如果差值超过了由
EKF_POS_GATE
则不会使用该测量值。在不使用 GPS 测量的情况下,一个由不确定性半径定义的圆圈会在预测位置周围扩大。该半径的增长速度受以下因素控制
ekf_glitch_accel
.这与gpsglitch_accel
不同的是,它是以 IMU 预测的轨迹为中心,而不是以前的 GPS 测量值。因为这样可以考虑到机动造成的轨迹偏差,所以默认值为ekf_gltch_accel
米/秒/秒时较小。当载具加速或转弯时,圆的加速度增长也会增加,以考虑到机动过程中 IMU 误差的增加。如果随后的 GPS 测量结果落在圈内,这些测量结果将被接受,圈将被重置为由以下参数控制的最小半径
EKF_POS_GATE
.如果 GPS 故障足够大且持续时间足够长,GPS 测量将继续被拒绝,直到圆半径超过由
EKF_GLITCH_RAD
.当出现这种情况时,会对 GPS 位置进行偏移,使其与估计的载具位置相匹配,然后再次使用 GPS 位置。GPS 偏移量会以 1 米/秒的速度减小为零。这意味着长时间的大故障会导致载具以每秒 1 米的速度漂移。这个速度足够慢,操作员有足够的时间做出反应。