3. GPS与地速测量:GPS定位原理、地速计算、GPS误差源、多普勒测速
各位同学,今天我们聊聊GPS。说实话,GPS在飞控里太常见了,常见到很多人反而忽略了它的原理。你想想看,一个巴掌大的模块,凭什么告诉你飞机现在飞多快、在哪儿?
我个人习惯,搞飞控不能只当“调参侠”。你得知道GPS给你的数据是怎么来的,哪些能用,哪些是坑。今天我就把GPS定位、地速计算、误差源和多普勒测速这几个点,掰开了讲清楚。
3.1 GPS定位原理
GPS定位,说白了就是“三边定位法”。卫星告诉你它的位置,再告诉你信号飞了多久。光速乘以时间,就是距离。三颗卫星画三个球,交点就是你的位置。
但这里有个坑——时间同步。卫星上有原子钟,你的GPS接收机可没有。所以实际上需要四颗卫星,多出来的一颗用来解算接收机钟差。嗯,这就是为什么GPS最少要搜到4颗星才能定位。
核心公式(伪距观测方程):
ρ = r + c·Δt + ε
其中:ρ = 伪距测量值,r = 真实几何距离,c = 光速,Δt = 钟差,ε = 其他误差
我在项目中遇到过一个问题:飞机在树荫下飞,GPS突然从12颗星掉到6颗,定位精度直接从米级掉到十几米。后来发现是天线安装位置被碳纤维机身遮挡了。所以啊,天线布局不是小事。
3.2 地速计算
地速怎么算?最直接的方法就是位置差分。
// 位置差分法计算地速(简单示例)
float v_north = (lat - lat_prev) * EARTH_RADIUS / dt;
float v_east = (lon - lon_prev) * EARTH_RADIUS * cos(lat) / dt;
float ground_speed = sqrt(v_north*v_north + v_east*v_east);
但这个方法有个问题——位置本身就有噪声,差分之后噪声更大。你想想看,位置抖动1米,如果更新率是10Hz,算出来的速度抖动就是10m/s。这谁受得了?
所以我个人习惯,不用纯位置差分。要么用多普勒测速,要么用卡尔曼滤波把位置和速度一起估计。
我的经验:在PX4和ArduPilot里,地速都不是直接差分算的。它们用的是卡尔曼滤波器,把GPS的位置、速度、甚至加速度计的数据融合在一起。这样出来的地速平滑得多,延迟也小。
3.3 GPS误差源
GPS的误差,我把它分成三类:
| 误差类型 | 典型量级 | 影响 |
|---|---|---|
| 电离层延迟 | 2-10米 | 白天大,夜晚小;低仰角卫星更严重 |
| 对流层延迟 | 0.5-2米 | 与湿度、气压有关 |
| 多径效应 | 1-5米(严重时可达几十米) | 城市峡谷、机库附近最明显 |
| 卫星钟差/星历误差 | 0.5-2米 | SA政策取消后已大幅改善 |
| 接收机噪声 | 0.1-0.5米 | 与接收机质量相关 |
我曾经在飞控调试时遇到一个怪现象:飞机在跑道头悬停,GPS显示地速在0.5m/s到1.5m/s之间来回跳。查了半天,发现跑道旁边有个金属机库,反射信号造成了多径。后来换了带抗多径天线的模块,问题才解决。
避坑指南:千万不要在金属屋顶、高压线附近、或者大型建筑物旁边做GPS精度测试。我曾经吃过这个亏,测出来的数据全是假的,浪费了一整天。
3.4 多普勒测速
多普勒测速,这才是地速测量的“正解”。
原理很简单:卫星发射的载波频率是固定的(L1=1575.42MHz)。你朝卫星飞,接收到的频率会变高;你远离卫星,频率变低。这个频率偏移量,直接正比于你的径向速度。
为什么多普勒测速比位置差分好?
- 精度高:载波频率测量精度极高,速度精度可以做到0.05-0.1m/s
- 实时性好:每个历元都能输出速度,不需要等位置变化
- 抗干扰:不受位置跳变影响,即使定位偶尔丢星,速度还能保持
我记得有一次做固定翼的自动降落,飞机在最后进近阶段GPS定位突然跳了2米。如果用位置差分算地速,空速和地速的差值会瞬间跳变,导致风速估计错误,油门和舵面都会跟着乱抖。但因为我们用的是多普勒测速,地速完全没受影响,飞机稳稳落地。
多普勒测速公式(简化版):
f_r = f_t * (1 + v_r / c)
其中:
f_r = 接收频率
f_t = 发射频率(已知)
v_r = 径向速度(待求)
c = 光速
实际应用中,接收机同时跟踪多颗卫星,每颗卫星提供一个径向速度。把这些速度投影到东北天坐标系,就能解算出三维速度矢量。嗯,这里要注意,至少需要4颗卫星才能解算三维速度加钟漂。
实用技巧:在飞控代码里,我建议把GPS的多普勒速度作为观测量输入到卡尔曼滤波器,而不是直接用位置差分。这样即使GPS短暂丢失,滤波器还能靠IMU预测速度,等GPS恢复后自动修正。我在好几个项目里都这么干,效果很好。
好了,关于GPS和地速测量,核心就是这些。记住:定位靠伪距,测速靠多普勒。别把位置差分当宝贝,那玩意儿噪声太大。多普勒测速才是固定翼飞控里地速测量的主力。