第四章:大气数据系统——空速、高度、攻角、侧滑角的测量原理与传感器融合
各位同学,欢迎来到第四章。
这一章,我们聊聊飞机的“感觉器官”——大气数据系统。说白了,就是飞机怎么知道自己飞多快、飞多高、姿态怎么样。
我刚开始做飞控那会儿,总觉得传感器数据嘛,读出来直接用就行了。直到有一次试飞,空速管堵了个小虫子,飞机在天上乱跳……嗯,从那以后,我对大气数据系统就再也不敢马虎了。
4.1 空速测量:皮托管与静压孔
空速,就是飞机相对于空气的速度。不是地速,是空速。这个区别很重要,你想想看,逆风飞行时地速可能很小,但空速必须够大才能产生升力。
测量空速,核心器件是皮托管(总压管)和静压孔。
- 皮托管:开口朝前,感受气流冲击,测得总压(Pt)。
- 静压孔:开在机身侧面,感受大气静压,测得静压(Ps)。
动压 q = Pt - Ps。然后根据伯努利方程:
V = sqrt(2 * q / ρ)
其中 ρ 是空气密度。这里有个坑——ρ 会随高度变化。所以真正的空速计算,需要结合高度信息做修正。
关键点:我们通常说的“指示空速”(IAS)就是直接用海平面标准密度算出来的。而“真空速”(TAS)才是飞机相对空气的真实速度。两者差别在高空时能到20%以上。
我的经验:在低空低速无人机上,我习惯直接用IAS做控制,因为升力直接跟动压相关。但做导航融合时,一定要转成TAS,不然风速估计会偏得离谱。
4.2 高度测量:气压高度与无线电高度
高度测量,主要有两套路子。
气压高度:利用大气压力随高度递减的规律。标准大气模型下,高度 h 与静压 Ps 的关系:
h = (T0 / L) * [ (P_s / P0)^(-R*L/g) - 1 ]
看着复杂?其实代码里就是个查表加插值。我一般用ISO 2533标准大气表,精度够用。
无线电高度:发射电磁波,测反射时间。这个精度高,但只能测离地高度,而且地形起伏时会跳变。
| 类型 | 优点 | 缺点 |
|---|---|---|
| 气压高度 | 连续、无地形依赖 | 受气温、气压影响,误差可达几十米 |
| 无线电高度 | 精度高(±0.5m) | 只能测离地高度,地形复杂时不可靠 |
注意:我曾经遇到过气压高度在冷锋过境时,半小时内漂了40米。所以做自动着陆时,千万别只用气压高度。无线电高度在最后50米必须介入。
4.3 攻角与侧滑角:直接测量与间接估计
攻角(AoA)是机翼弦线与来流的夹角。侧滑角(Beta)是机身轴线与来流的夹角。这两个角,直接决定了飞机的升力系数和阻力系数。
直接测量:用风标传感器或压差式攻角传感器。
- 风标:一个小叶片,随风向转动。简单可靠,但响应慢,容易结冰。
- 压差式:在机头两侧开孔,测压差。响应快,但需要校准。
间接估计:用IMU和GPS数据反推。
// 攻角估计(简化版)
alpha = atan2(w, V) - pitch_angle;
// 侧滑角估计
beta = asin(v / V);
这里的 v、w 是机体坐标系下的速度分量,V 是真空速。说实话,这个方法在动态飞行时误差很大,我一般只用来做故障备份。
我的建议:如果你做的是高机动无人机,攻角传感器是必须的。失速保护全靠它。我见过太多因为攻角超限而螺旋坠毁的案例了。
4.4 传感器融合:卡尔曼滤波的应用
单个传感器总有毛病。皮托管会堵,静压孔会结冰,攻角风标会卡滞。所以,我们需要融合。
我个人最常用的方法是扩展卡尔曼滤波(EKF)。状态量包括:空速、高度、攻角、侧滑角,以及它们的偏差项。
观测方程:
- 总压 - 静压 → 空速
- 静压 → 高度
- 攻角传感器 → 攻角
- IMU + GPS → 侧滑角(间接)
核心思想:用IMU的高频数据做预测,用大气传感器的低频数据做修正。这样既保证了实时性,又抑制了漂移。
// 简化的EKF预测步
x_pred = F * x_est + B * u;
P_pred = F * P_est * F' + Q;
// 更新步
K = P_pred * H' * inv(H * P_pred * H' + R);
x_est = x_pred + K * (z - H * x_pred);
P_est = (I - K * H) * P_pred;
核心逻辑:传感器融合不是简单的平均,而是根据每个传感器的置信度(协方差矩阵R)动态调整权重。噪声大的传感器,权重自动降低。
4.5 知识体系总览
下面这张图,是我自己梳理的大气数据系统知识框架。你可以把它当作本章的思维导图。
最后提醒一句:大气数据系统是飞控的命根子。我见过太多因为传感器故障导致的坠机。所以,一定要做冗余设计——至少两套独立的空速/高度源,并且要有故障检测逻辑。
嗯,这一章就到这里。下一章我们聊惯性导航系统,那个更刺激。