回忆悠长
云南是个好地方,好地方也要修缮盲降。昆明维护校验盲降期间,主用RNP进近方式,于是各公司QAR警告激增,主要是下降率大、速度大,疑似不稳定进近增多。
(5)将 FOQA 事件作为飞行机组转机型或技术等级调整的依据等。
前面讨论过很多次低温的问题,这次主要是高温问题。可是25°C算高温嘛?当然算,在昆明,标高6900英尺,ISA=15-6.9*2≈1°C,超过1°C就算高温,昆明几乎全年都是高温运行。
这是从天气网(https://www.tianqi.com/qiwen/city_kunming/)获取的昆明市四季气温变化数据,除了历史极值外,气温均在3°C以上。
为方便理解,将数据做成图,灰区表示未曾出现的温度,红线表示日均最高气温,蓝线表示日均最低气温,黄区表示盛行温度区间,粉红粉蓝表示接近极值区间。
我们对比一下平原机场济南:
济南是个四季分明的城市,标高23米,ISA温度15°C,所以对BaroVNAV程序来说,夏季算高温,冬季算低温。而根据PAPI灯安装角度,2.84°~3.16°之间,飞行员看到的是两红两白,济南的VPA(垂直航径角度)是3°,可以推算出在温度0~30°区间,在济南飞RNP程序,飞行员看到的就是两红两白,再低就是三红一白,再高就是三白一红。我们姑且把2.84°~3.16°VPA对应的温度区间称为舒适区,画成图如下:
绿区就是舒适区,覆盖了大部分盛行温度区间。
昆明呢?由于标高2103米,VPA也是3°,推算出舒适区温度在-11~16°C之间,如图:
可以看到,舒适区覆盖了大量的灰区,以及少部分冬季盛行温度区间,却错过了大部分季节的盛行温度区间。这就是为什么大部分时候我们看到的是三白一红,总是下降率大的根本原因。
AC-97-5上是这么介绍VPA的:VPA分公布VPA和实效VPA,公布VPA就是标在航图上的下降角,实效VPA英文为 the effective VPA,其解释为 实际飞出来的角度,与温度和机场标高相关,它与公布的 VPA 会有所不同。AC明确规定,“公布的 VPA 应该在给定机场标高和盛行温度情况下,整个一年中的实效 VPA 能尽可能地接近 3° ”。换句话说,就是舒适区尽可能覆盖盛行温度区间,本文中的绿区尽可能覆盖黄区。
所以说,昆明机场的RNP程序,并没按规章要求设计。根据AC提供的表格:
查表后,看下公布2.8°的VPA会如何:
可以看到,舒适区覆盖了大部分盛行温度区间,低温极值区也没有低于2.5°的下限。因此,按照规章,昆明的VPA应该公布2.8°而不是3°。
我们再对比一下兰州:
3°VPA
2.8°VPA
兰州标高也很高,四季温差大,3°和2.8°分别舒适冬季和夏季,都不能四季舒适,所以2.9°VPA最合适兰州。
至于为什么程序设计单位会违规设计飞行程序,这和体制有些关系,大部分设计单位没有飞行员、管制员参与,套个模板就赚钱;而对比西南地区很多高原RNP AR程序,多数公布的是2.8°VPA,AR团队多来自国外团队,飞行人员是团队中坚力量。
程序的问题说完了,其他人有没有注意事项呢?有的。
首先:飞行员,RNP不是盲降,跟指引并不能严格保持3°下滑,高温则高,低温则低,目视跑道后尽快转为目视飞行,越早建立两红两白越好,抛弃FD、AP。
其次:机场,修缮校验盲降要瞅准时机,尽量在舒适区月份实施;组建包含飞行、管制人员的程序设计部门,设计合规、高效程序,避免资金浪费。
最后:遥遥领先我的国。欧美日韩甚至印度都不怎么讨论温度修正了,因为都进入了或正在进入LPV时代,RNP不再用BaroVNAV。什么是LPV呢?就是使用SBAS的卫星导航,基本原理是把遍布各地的GNSS差分信号发送给飞机,提高导航精度。我国很多年前就开展了大规模SBAS服务,千寻、中国移动都是大的服务商,包括无人机在内的很多行业都在用,确实遥遥领先。但是他们的差分信号传送靠移动基站,飞机则需要GNSS同频卫星来传送差分信号,一是因为飞得远飞得快,二是因为无须改装飞机,当前MMR直接能用。和LPV的距离,咱就差一颗卫星,谁认识北斗办的科学家,麻烦转发呼吁下。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # Windows字体设置
plt.rcParams['axes.unicode_minus'] = False
city='兰州'
# 读取Excel文件
df = pd.read_excel('data/高温RNP.xlsx', sheet_name=city)
# 提取四列温度数据
temperature1 = df['日均最高气温']
temperature2 = df['日均最低气温']
temperature3 = df['历史最高气温']
temperature4 = df['历史最低气温']
# 绘制曲线图
plt.figure(figsize=(10, 6))
plt.plot(range(1, 13), temperature1, label='日均最高气温', color='red')
plt.plot(range(1, 13), temperature2, label='日均最低气温', color='blue')
plt.plot(range(1, 13), temperature3, label='历史最高气温', color='pink')
plt.plot(range(1, 13), temperature4, label='历史最低气温', color='lightblue')
plt.fill_between(range(1, 13),50,temperature3,facecolor='grey', alpha=1) # 最高极值以上灰区
plt.fill_between(range(1, 13),temperature1,temperature3,facecolor='pink', alpha=0.3) # 高温区
plt.fill_between(range(1, 13),temperature1,temperature2,facecolor='yellow', alpha=0.3) # 盛行温区
plt.fill_between(range(1, 13),temperature2,temperature4,facecolor='lightblue', alpha=0.3) # 低温区
plt.fill_between(range(1, 13),-25,temperature4,facecolor='grey', alpha=1) # 最低极值以下灰区
plt.fill_between(range(1, 13),13,38,facecolor='green', alpha=0.3) # 舒适区
# 添加标题和标签
plt.title(city+'全年温度区间')
a = [1,2,3,4,5,6,7,8,9,10,11,12]
labels = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
plt.xticks(a,labels,rotation = 0)
plt.ylabel('温度°C')
# 显示图形
plt.show()
月份 | 日均最高气温 | 日均最低气温 | 历史最高气温 | 历史最低气温 |
一月 | 5 | -4 | 13 | -16 |
二月 | 8 | -1 | 18 | -10 |
三月 | 16 | 6 | 29 | -4 |
四月 | 23 | 12 | 32 | 1 |
五月 | 29 | 19 | 39 | 9 |
六月 | 32 | 23 | 37 | 14 |
七月 | 34 | 25 | 38 | 18 |
八月 | 32 | 23 | 37 | 15 |
九月 | 28 | 19 | 32 | 10 |
十月 | 22 | 12 | 31 | 0 |
十一月 | 13 | 5 | 22 | -8 |
十二月 | 6 | -2 | 14 | -11 |