跳转至

第 10 章:优化空中防撞(Optimized Airborne Collision Avoidance)

10.1 Airborne Collision Avoidance Systems

本章开头交代空中防撞系统(airborne collision avoidance system)兴起的现实背景。航空业早期因天空广大、飞机稀少,空中相撞事件并不常见;进入 1950 年代后航空旅行变得普遍,空域日趋拥挤,1956 年大峡谷上空发生的一次相撞事故造成 128 人罹难,是当时史上最严重的商用航空灾难。这一事件引发媒体关注与国会听证,最终促成 1958 年美国联邦航空管理局(FAA)的设立。

FAA 的成立推动了空域设计与空中交通管制两方面的重大改进:空域设计通过让东向与西向飞机使用不同高度巡航保持飞机之间的纵向间隔;空中交通管制员则依靠地基雷达把交通态势通报给飞行员,或通过矢量引导飞机疏散。空域设计与管制能力的提升显著改善了空域安全,但空中相撞仍未根除。1978 年加州圣迭戈上空一架商用客机参与的相撞造成 144 人死亡,1986 年加州 Cerritos 上空另一起商用客机相撞造成 82 人罹难,这两起事故令美国国会确信:必须在飞机上加装一套独立于地面与飞行员的安全网,作为对人为失误的额外保护层。这一共识直接催生了机载防撞系统,本章随后将围绕这一主题展开讨论:机载防撞系统如何在已有机载传感器与可执行机动的前提下提供对空中相撞的额外保护。

10.1.1 Traffic Alert and Collision Avoidance System

机载防撞能力的开发在大峡谷相撞事故后不久便开始。早期方案依赖主雷达监视——即发射能量脉冲并通过回波时延推算距离——但该方案效果不佳,主要原因之一是无法准确估计入侵机的高度。研发重心随后转向基于信标的系统,利用大多数飞机已装备的应答机。机载设备通过无线电数据链发出询问信号,测量目标机回应的时延;同时高度信息与预期机动也可以通过这条数据链交互。基于这一思路的早期系统称为 Beacon Collision Avoidance System(BCAS),被设计用于低密度空域。圣迭戈相撞事件刺激了在 BCAS 基础上扩展、能够服务于高密度空域的 Traffic Alert and Collision Avoidance System(TCAS)的开发,研发跨度长达几十年。Cerritos 事故最终促使美国国会以立法形式强制要求安装 TCAS,而今全球大型客机与货机都必须装备该系统。

TCAS 的工作流程可概括为:执行空中监视、利用安全逻辑计算咨询结果、并通过语音与显示两种通道把咨询呈现给飞行员。当另一架飞机构成潜在威胁时,TCAS 首先发布 traffic advisory(TA),以"Traffic, Traffic"的语音告警配合显示器上的目标高亮提示;TA 的目的是帮助飞行员目视识别对方并为可能的避让机动做准备。当机动不可避免时,系统发布 resolution advisory(RA),指引飞行员执行爬升或下降以维持安全距离。所需垂直机动的音频播报配合垂直速度指示器上显示的可接受垂直速率范围给出;部分机型还会向飞行员提供额外的俯仰指引。

TCAS 可发布的纵向咨询种类包括:禁止爬升或禁止下降;将爬升或下降速率限制在 500、1000 或 2000 ft/min;改平;以 1500 ft/min 速率爬升或下降;把爬升或下降速率提升到 2500 ft/min;保持当前垂直速率。咨询的强度、方向可在遭遇过程中被加强、削弱或反转,RA 仅提供纵向引导——TCAS 不发布航向改变或转弯等水平机动指令;遭遇解除后 TCAS 发出"Clear of Conflict"。

咨询触发时机与具体内容由一套庞大的规则集合定义。TCAS 通过直线外推估计到达最近点的时间与投影的脱靶距离,当两者均较小时判定需要告警;若需告警,逻辑会建模标准爬升与下降机动,假设飞行员响应延迟 5 秒、随后以 0.25 g 加速,并选择能让本机与入侵机分离最大的方向,再针对该方向枚举多组候选垂直速率,从中选出满足所需分离裕度的最低速率。尽管整体流程相当直接,逻辑细节却极其复杂——TCAS 规范中嵌入了大量为补偿传感器噪声、误差以及飞行员响应差异而设计的启发式规则与参数,也包含关于何时加强/削弱/反转咨询、如何处理多入侵机并行遭遇的具体规则。逻辑规范是一份庞大的规则集合而非数值表,这既为系统集成商提供了可解释的决策流程,也使 TCAS 升级只能通过人工调整规则实现,难以系统化地针对空域变化做整定。整套 TCAS 系统的成熟花了数十年时间——从最早的 BCAS 雏形,到 TCAS 在美国被立法强制装备,再到全球范围成为大型客机的标配——这一过程本身就说明"规则系统 + 适航认证 + 飞行员训练"三者之间的耦合远比单纯设计算法困难。

10.1.2 Limitations of Existing System

多年来 TCAS 在防止空中相撞方面是成功的,但其设计方式限制了鲁棒性。TCAS 设计的一个根本局限是它建立在确定性模型之上,而雷达记录数据表明飞行员的反应并不总是符合逻辑假设。2002 年德国 Überlingen 上空两机相撞事故中,TCAS 分别指令其中一架爬升、另一架下降;但收到爬升指令的飞行员未按 TCAS 行事,反而按管制员指令下降,结果与正在按 TCAS 指令下降的第二架相撞。如果 TCAS 能识别第一架飞机的不响应并把对第二架的指令由下降反转为爬升,这起事故本可避免。后续 TCAS 针对该具体场景开发了相应补丁,但要从根本上提升逻辑鲁棒性仍需设计层面的重大变革。

1950 年代以来的空域还会继续演进:基于卫星导航的下一代空管系统将带来更精细的监视能力,使飞机能够以更小间隔飞行以支持流量增长;通用航空与无人机等新用户类别也对机载防撞能力有强烈需求。然而现有 TCAS 在硬件功耗、目标垂直速率要求上仅适合大型飞机,无法支持小型飞机或无人平台,也难以满足新空域的运行要求;间距缩窄后 TCAS 还会因告警过频而失去实用价值。文中把这一现实总结为:硬件与性能门槛决定了 TCAS 是一套只能服务于大型飞机的"重型"方案,而未来空域要求的是能跨越多个用户类别、能够被快速整定的统一防撞能力。

10.1.3 Unmanned Aircraft Sense and Avoid

无人驾驶航空器在科研、执法与商业领域潜力巨大,但在获得专门许可前无法进入民用空域。灵活的民用空域准入要求系统具备自主感知与规避其他飞机的能力——一套能符合民航当局严格安全要求的自动机载防撞系统将极大拓展无人机的应用空间。文中明确:unmanned aircraft 之所以不能简单沿用现有机载防撞方案,是因为无人机运行的三个核心约束——有限的机动能力、监视方式的本质差异、平台与传感器配置的高度异质性——在 TCAS 的设计假设中均未得到体现。

TCAS 不能直接用作无人机的感知与规避系统,原因有以下几点。TCAS 假设装备该系统的飞机至少能以 1500 ft/min 速率响应初始爬升/下降咨询、加强时需要 2500 ft/min,而许多无人机平台仅能达到 500–1000 ft/min 区间,垂直机动能力受限使得水平机动(如改向或调速)反而可能更合适,但 TCAS 并不提供航向改变或空速指引。TCAS 逻辑假设基于信标的监视系统可靠,而无人机不能仅依赖这类监视:机舱内没有可目视识别并规避其他飞机的飞行员,监视系统必须覆盖所有类别的飞机——包括未装备信标应答机的目标。能探测无应答机目标的传感器包括雷达、光电与红外,但这些传感器的误差特性以及尺寸、重量、功耗约束各异。考虑到 TCAS 历经多年才完成开发与适航,针对不同传感器-平台组合分别开发与认证防撞系统预计将极其困难;目前无人机行业的工作多集中于针对特定平台与传感器的专有方案,能适配不同传感器配置与飞行特性的通用系统将显著降低开发与认证成本。

10.1.4 Airborne Collision Avoidance System X

近年来的研究将防撞问题建模为部分可观测马尔可夫决策过程(POMDP),并利用动态规划求解最优防撞系统。仿真研究(使用雷达记录数据)证实这种方法能带来安全与运行性能两方面的显著提升。FAA 已组织多家机构共同推进技术成熟,目标系统称为 Airborne Collision Avoidance System X(ACAS X),定位为载人机与无人机共用的下一代国际防撞标准。

ACAS X 将对监视与咨询逻辑同时进行重大改造:监视上从 TCAS 的纯信标监视转向支持 GPS 数据并能容纳新传感器模态的即插即用架构;新监视能力也将使新型用户类别——例如当前未装备 TCAS 的小型通用航空飞机——获得防撞保护。咨询逻辑方面,ACAS X 抛弃了基于规则的临时拼凑,转而以针对空域模型优化的数值表来表达大部分逻辑,新方法提升了鲁棒性、兼容了新需求并减少了不必要的告警。ACAS X 走过的开发流程大幅简化了工程复杂度,预计也将显著降低实现与维护成本。文中把这一方法论上的转变与"新一代 air traffic management system 即将到来"这一空域变革放到一起描述:ACAS X 的价值不只是单点性能提升,而是与下一代空管系统的整体演进方向相吻合。

10.2 Collision Avoidance Problem Formulation

防撞问题可以多种方式建模为部分可观测马尔可夫决策过程(POMDP)[参考文献 1–4]。本节所描述的公式是 ACAS X 早期原型中针对大型运输与货机所采用的形式。原文明确指出本节公式对应"early prototype of ACAS X designated for large transport and cargo aircraft"——这意味着后续小飞机、无人机的版本将采用略有不同的状态空间与动作集,但 POMDP 框架本身保持不变。

10.2.1 Resolution Advisories

TCAS 通过语音播报(例如"Climb, Climb")与视觉显示向飞行员发布咨询。视觉显示通常实现为垂直速度指示器、垂直速度带或主飞行显示器上的俯仰提示。TCAS 所发布的咨询集合可以理解为目标垂直速率区间:若当前垂直速率落在目标区间之外,飞行员应当操作使飞机回到该区间;若已在区间内,则不需要修正性机动,但要避免飞出指定区间。

ACAS X 与 TCAS 共用同一组咨询,汇总在表 10.1 中。表 10.1 列出 16 项咨询(包含 COC/DNC2000/DND2000/DNC1000/DND1000/DNC500/DND500/DNC/DND/MDES/MCL/DES1500/CL1500/SDES1500/SCL1500/SDES2500/SCL2500),每一项给出垂直速率范围、语音播报内容。在 POMDP 公式中离散动作对应各种咨询,但 MCL 与 MDES 被合并为单一的"maintain"动作以缩减动作空间;执行时根据当前垂直速率决定该 maintain 动作具体对应 MCL 还是 MDES。

当发布某项咨询时,若当前垂直速率处于该咨询规定的区间内,则该咨询称为 preventive(预防性);否则称为 corrective(修正性)。表 10.1 中 DES1500、CL1500、SDES1500、SCL1500、SDES2500、SCL2500 始终是修正性的;DNC 与 DND 既可以是修正性也可以是预防性——当作为修正性发布时其语音为"Level-off, Level-off"(LOLO),否则为"Monitor Vertical Speed"(MVS)。其余 MVS 咨询均为预防性。

这 16 个离散动作的可用性受当前咨询的约束,例如 SDES2500 只能在 MDES 或 DES1500 之后发布。咨询之间的转移约束沿用自 TCAS 的原始设计,目的是减少新增的飞行员训练负担。咨询的 sense 分为 up、down 两种(COC 既不向上也不向下);up 指令飞行员爬升或不下降,down 指令下降或不爬升。从一个 sense 转到另一个 sense 称为 reversal;同一 sense 内从一个咨询转到另一个称为 strengthening 或 weakening,区分依据是新咨询是否要求更快的垂直速率。这些转移类型在建模飞行员响应时具有不同含义——例如 reversal 与 strengthening/weakening 在响应延迟的统计上不同,这一区分是后续 10.2.2 节中飞行员响应模型的基础。

10.2.2 Dynamic Model

ACAS X 原型使用相对简单的飞机动态模型。模型越简单,设计者越容易验证、越不容易过度拟合到特定空域的怪异性;同时由于状态变量更少,动态规划求解也越可行。POMDP 公式中共有六个状态变量:\(h\)(入侵机相对本机的高度)、\(\dot h_0\)(本机垂直速率)、\(\dot h_1\)(入侵机垂直速率)、\(\tau\)(到潜在碰撞的时间)、\(s_\text{adv}\)(当前咨询)、\(s_\text{res}\)(飞行员是否正在响应咨询)。过去一些文献把 \(s_\text{adv}\)\(s_\text{res}\) 合并成一个名为 \(s_\text{RA}\) 的离散变量;将二者分开可以简化后续说明——一个刻画"系统已经决定要做什么",另一个刻画"飞行员是否在按系统说的做"。

离散时间动态模型取步长 \(\Delta t = 1\) 秒,与 TCAS 的决策频率一致。下一时刻的咨询响应 \(s_\text{res}'\) 由当前咨询 \(s_\text{adv}\)、响应 \(s_\text{res}\) 与新咨询 \(a\) 依概率确定:

\[ P(s_\text{res}' = \text{true} \mid s_\text{adv}, s_\text{res}, a) = \begin{cases} 1 & \text{if } a = \text{COC} \\ 1 & \text{if } s_\text{res} = \text{true 且 } s_\text{adv} = a \\ 1/(1+5) & \text{if } s_\text{adv} = \text{COC 且 } a \neq \text{COC} \\ 1/(1+5) & \text{if } s_\text{adv} 与 a 方向相反} \\ 1/(1+3) & \text{if } s_\text{adv} 与 a 方向相同} \end{cases} \]

由于响应是伯努利过程,响应延迟服从几何分布:若每步响应概率为 \(1/(1+k)\),则平均响应时间为 \(k\) 秒。由此得到:飞行员对 COC 立即响应;一旦响应就持续到该咨询结束;初始咨询的平均响应延迟为 5 秒;反转(reversal)的平均响应延迟为 5 秒;加强或削弱的平均响应延迟为 3 秒。文中指出,研究过更复杂的飞行员响应模型但收益甚微且显著扩大状态空间[5]。

本机加速度 \(\ddot h_0\)\(s_\text{res}'\)\(a\) 依概率确定。若飞行员没有响应咨询,\(\ddot h_0\) 从零均值、标准差 3 ft/s² 的高斯分布中采样;若飞行员正在响应,则 \(\ddot h_0\) 的目标是让垂直速率落入咨询所要求的区间内,加速度大小服从标准差 1 ft/s² 的高斯分布,均值通常为 8.33 ft/s²,但当咨询被反转或加强为爬升/下降时使用更大的 10.7 ft/s²。这些加速度数值的选择是为了与 TCAS 保持一致——TCAS 的"reverse"和"strengthen"语义在 ACAS X 中被映射到 10.7 ft/s² 这一更强的加速度,体现了"急迫情况需要更猛烈的修正"这一工程常识。入侵机模型则更简单:每秒钟独立从零均值、标准差 3 ft/s² 的高斯分布采样 \(\ddot h_1\),代表入侵机以随机加速度运动。文中还提到,过去研究过刻画入侵机自身防撞系统影响的更精细模型,但分析显示收益相对有限[6]。

给定 \(a\)\(s_\text{res}'\)\(\ddot h_0\)\(\ddot h_1\),状态更新为:

\[ \begin{bmatrix} h \\ \dot h_0 \\ \dot h_1 \\ \tau \\ s_\text{adv} \\ s_\text{res} \end{bmatrix} \leftarrow \begin{bmatrix} h + \dot h_1 \Delta t + \tfrac{1}{2} \ddot h_1 (\Delta t)^2 - \dot h_0 \Delta t - \tfrac{1}{2} \ddot h_0 (\Delta t)^2 \\ \dot h_0 + \ddot h_0 \Delta t \\ \dot h_1 + \ddot h_1 \Delta t \\ \tau - 1 \\ a \\ s_\text{res}' \end{bmatrix} \]

第一行把相对高度表示为本机与入侵机各自的位移之差,物理含义与运动学一致;最后两行让 \(s_\text{adv}\) 同步为新发布咨询 \(a\),把 \(s_\text{res}'\) 留作下一时刻进一步更新。

10.2.3 Reward Function

奖励函数旨在同时反映安全与运行两方面的考量。为了便于应用动态规划,奖励函数只允许依赖上述六个状态变量与当前动作。在系统早期,奖励函数仅对"接近碰撞"、"发出初始咨询"、"加强"、"反转"赋代价;仿真中的性能分析表明需要引入多种额外代价项才能让咨询在运行层面更合用[7]。

表 10.2 列出各类事件奖励。奖励条目要生效需满足表中所列的纵向间隔、闭合率与事件类型。给定状态与动作后,所有在表中适用的事件均累加到立即奖励。表中除 COC 外其余奖励均为负;部分奖励依赖于纵向间隔 \(|h|\) 与纵向闭合率 \(|\dot h_1 - \dot h_0|\),另一些则依赖咨询是否为 crossing——crossing 被定义为:(1) 对位于本机下方的入侵机发出 down sense,或 (2) 对位于本机上方的入侵机发出 up sense。crossing 咨询会要求双方在高度上相互穿越,TCAS 尽量避免发布此类咨询。表中两行依赖变量 \(\Delta\dot h\),定义为满足咨询所需垂直速率区间的最小变化量绝对值:若咨询要求区间为 \([\dot h_\text{min}, \dot h_\text{max}]\),则 \(\Delta\dot h = \min(|\dot h_\text{min} - \dot h_0|, |\dot h_\text{max} - \dot h_0|)\)

这些奖励参数的具体取值是 ACAS X 开发中的重要调节对象。降低 corrective 咨询的代价能提高 corrective 咨询的发布频率,从而换取更高的安全性;减小 crossing 的代价则会让系统在某些情况下更愿意发布穿越类咨询;调整 strengthening / weakening / reversal 的相对权重则能控制咨询的"风格"——是更倾向于一次性发出强指令还是倾向于渐进式调整。文中把这一调节空间留给后续 10.5.3 节的 parameter tuning 阶段,并通过 utility function 形式在大量仿真上自动搜索。

10.2.4 Dynamic Programming

本章使用第 4.2 节的动态规划方法在全可观测假设下计算价值函数 \(U^*\)。10.2.2 节给出的动力学中 \(\ddot h_0\)\(\ddot h_1\) 的分布为连续概率密度,相应地下一状态的转移 \(T\) 也是密度,因此 Bellman 方程为积分形式:

\[ U^*(s) = \max_a \left[ R(s, a) + \gamma \int T(s' \mid s, a) U^*(s') \, ds' \right] \]

解析求积分不可行,需要使用标准数值积分方法。ACAS X 原型使用 sigma-point 采样[8]为 \(\ddot h_0\)\(\ddot h_1\) 生成一组加权采样值;于是给定 \(s\)\(a\) 的下一状态集为有限集合,Bellman 方程化为:

\[ U^*(s) = \max_a \left[ R(s, a) + \gamma \sum_{s'} T(s' \mid s, a) U^*(s') \right] \]

由于状态空间是连续的,原型使用第 4.5.1 节的局部近似值迭代算法计算 \(U^*\),具体做法是在网格化离散的状态空间上做多线性插值:高度变量 \(h\)\(\pm 4000\) ft 范围内取 33 个离散点,在 0 ft 附近分辨率更细;本机与入侵机垂直速率变量 \(\dot h_0\)\(\dot h_1\) 各在 \(\pm 10{,}000\) ft/min 范围内取 25 个点,0 ft/min 附近更细;潜在碰撞时间 \(\tau\) 以 1 秒为间隔从 0 到 40 秒离散化。

由于状态 \(\tau = k\) 仅依赖 \(\tau = k - 1\) 的状态,按 \(\tau\) 升序做 Gauss-Seidel 值迭代的单次扫描即可得到最优价值函数——这是非常关键的结构性观察:尽管状态空间是连续的,问题的"时间向单调"特性使得求解只需按 \(\tau\) 的一次扫描,而无需在 \(\tau\) 维度上做多轮 sweep。文中指出,虽然格点总数超过 2600 万,整个过程在现代工作站上仅需数分钟。动态规划得到的 \(Q^*(s, a)\) 被保存为查找表;近期研究探索了在机载存储有限条件下压缩表规模的方法[9]。

10.3 State Estimation

上一节说明如何在全可观测假设下计算查找表。实际飞行中,状态变量存在不确定性,需要实时处理。系统在飞行中估计信念分布 \(b\),并据此选择最优动作:

\[ \pi^*(b) = \arg\max_a \int b(s) Q^*(s, a) \, ds \]

其中 \(Q^*(s, a)\) 通过对离线计算出的查找表做多线性插值得到。该方法即第 6.4.1 节介绍的 QMDP 方法——其要点是把"信念状态上的决策"近似为"对信念中各状态单独取最优 Q 值后求期望"。为提高式 (10.5) 的计算效率,系统不把信念 \(b\) 表示为概率密度函数,而是用一组带权重的样本 \(s^{(1)}, \ldots, s^{(n)}\)\(w^{(1)}, \ldots, w^{(n)}\) 表示,因此:

\[ \pi^*(b) = \arg\max_a \sum_i w^{(i)} Q^*(s^{(i)}, a) \]

信念状态 \(b\) 可按如下方式分解:

\[ b(h, \dot h_0, \dot h_1, \tau, s_\text{adv}, s_\text{res}) = b(h, \dot h_0, \dot h_1) \, b(\tau) \, b(s_\text{adv}, s_\text{res}) \]

其中三个分量分别由各自的自变量参数化——一个刻画垂直动力学不确定性的连续部分、一个刻画碰撞时间的不确定性、一个刻画咨询与响应状态的离散部分。本节说明这三个分量分布的估计方法,并解释如何通过在线成本引入运行层面的额外考量。

10.3.1 Sensor Error

飞机使用气压高度表估计高度,估计误差源于气压梯度与校准差异。当飞机通过无线电数据链把高度信息发给另一架飞机时,高度被量化为 25 ft 或 100 ft(取决于应答机类型)。TCAS 在 25 ft 量化下使用简单的 alpha-beta 滤波器估计垂直速率[10];在 100 ft 量化下则使用更复杂的非线性滤波器[11]。TCAS 的滤波器只给出高度与垂直速率的单一估计值,而 ACAS X 进一步利用该估计的不确定性。

ACAS X 早期开发中发现,显式考虑 \(h\)\(\dot h_0\)\(\dot h_1\) 估计的不确定性可改善性能[12];后续工作形成了一个基于卡尔曼滤波(第 6.2.2 节)并修改以更好适应量化误差的灵活滤波器[13],该滤波器输出一组带权重的状态样本。也开发了类似的滤波器以处理角位置测量中的噪声[14]。这一思路的核心收益是:传统 TCAS 把高度与垂直速率视为"几乎确定的"量并基于其做出咨询决定,而 ACAS X 在决策时显式利用估计的不确定性结构,对置信度低的状态赋予更保守的咨询。

10.3.2 Pilot Response

飞行员是否正在响应上一条咨询的分布随时间按贝叶斯规则更新[5]。该更新是本机垂直速率 \(\dot h_0\) 分布、所发布咨询与式 (10.1) 中飞行员响应模型的函数。原文中此节非常简短——意图是把飞行员响应建模嵌入到状态估计中,使 \(s_\text{res}\) 的信念分布随时间被本机垂直速率观测与响应模型共同更新。

10.3.3 Time to Potential Collision

潜在碰撞时间 \(\tau\) 无法被精确知道,因为它依赖于飞机未来的轨迹。飞机侧向位置演化有多种模型[15],其中最简单的一种是白噪声加速度模型。ACAS X 利用该模型估计另一架飞机进入固定侧向距离内的时间分布。

估计 \(\tau\) 分布有多种方法,例如蒙特卡洛采样:给定两机的初始位置与速度,对加速度采样并前向模拟轨迹;用足够多的轨迹样本即可建立碰撞时间直方图。采样方法的缺点之一是实时计算代价过大;此外,对依赖随机数生成的安全关键系统进行适航认证可能比较困难。

ACAS X 的实际做法是离线计算分布并存入查找表。计算过程使用迭代法:设 \(D_k(s)\) 表示在 \(k\) 秒内另一架飞机进入某固定侧向距离内的概率;\(D_0(s)\) 的计算是平凡的——若状态 \(s\) 对应另一架飞机已经在固定侧向距离内则为 1,否则为 0。\(D_k(s)\)\(D_{k-1}\) 递推得到:

\[ D_k(s) = \sum_{s'} T(s, s') D_{k-1}(s') \]

其中 \(T(s, s')\) 是从一个水平状态 \(s\) 转移到 \(s'\) 的概率。递推过程可以一直执行到所需时间范围。ACAS X 早期原型取 40 秒作为时间范围,以保证在潜在碰撞前有足够的告警提前量;给定状态 \(s\)\(\tau \geq 40\) 的概率为 \(1 - \sum_{k=0}^{39} D_k(s)\)

通过利用对称性,水平状态空间可由三个变量表示(见[16]);为把分布存入表格需要离散化这三个变量,由于变量数少,可以做得比较细;对于不在离散格点上的任意水平状态,ACAS X 使用多线性插值估计。当然水平状态也不能被精确知道,但可以根据传感器测量推断其分布。文中指出针对不同监视系统开发了基于 unscented 卡尔曼滤波[8]的专门状态估计算法,输出带权重的水平状态样本,再将这些分布进行融合。

在两机水平方向接近时,把 \(b(\tau)\) 同时建立在 \(h\)\(\dot h_0\)\(\dot h_1\) 上是有益的——因为此时水平方向的"逃生"空间变小,垂直方向的相遇概率开始主导。垂直分布表可以使用与式 (10.8) 相同的过程计算;垂直动态模型同样假设白噪声加速度,并可用三个状态变量(即 \(h\)\(\dot h_0\)\(\dot h_1\))表示。

10.4 Real-Time Execution

ACAS X 实时执行的核心工作是估计信念状态,并通过插值查找表计算相应的状态-动作值。但在某些情况下,状态-动作值会在执行过程中被在线修改——这是"离线优化无法穷尽所有运行约束"这一现实问题的工程化折中。本节概述这些在线成本并讨论多威胁与交通告警的处理。

10.4.1 Online Costs

如 10.2.2 节所述,查找表只依赖于六个变量。然而执行过程中需要考虑一些其他变量(例如离地高度),这些变量并未纳入离线优化。当然可以把它们加入优化,但会显著扩大查找表规模——而 ACAS X 早期原型受表大小约束,研究探索了不增加状态变量而改在动作值上叠加在线成本的替代方案。实验表明,在线加入成本是有效的。最早探索的在线成本之一是 altitude inhibit:TCAS 有按高度抑制咨询的规则,目的是避免在着陆过程中受到干扰;ACAS X 希望保留这些规则,因此在飞行中当某项规则触发抑制时,对相应动作在线加上无穷大成本。

另一个在线成本的例子与从 TCAS 沿用下来的协调机制有关。当一架飞机对入侵机发布咨询时,会通过无线电数据链把自己的咨询 sense 告知入侵机;入侵机会调整自己的咨询(若有)以保持兼容(即方向相反)。同时选择 sense 的情况下,按应答机唯一识别号决定优先级。如果表大小不是问题,入侵机 sense 可以被纳入离线优化[17]:离线优化能考虑入侵机会基于 sense 信息机动这一事实,并考虑本系统未来不能再选择不兼容 sense 这一约束。虽然在线成本方法在总体上是次优的,但实验显示该方法在实践中效果良好[17]。

ACAS X 原型中包含的在线成本集合包括:Altitude inhibit 阻止在低于特定高度时发布咨询;Advisory switch or restart 对短时间内的咨询切换或重启施加惩罚;Initialization 在系统启动后的最初几秒内阻止发布咨询;Multiple reversals 阻止多次反转(除非协调所必需);Bad transitions 阻止 TCAS 不允许的咨询序列;No-response vertical chase 在飞行员不响应且本机处于纵向追越场景时惩罚继续原咨询;Compatibility 阻止发出与其它飞机已发出咨询不兼容的咨询;Crossing 在入侵机发出的咨询要求本机穿越其高度时强制发出某种咨询。这些成本中部分实际是无穷大(例如 altitude inhibit),另一些则相对较小(例如 advisory switch and restart);这些在线成本规则以代码实现,规则复杂度可以任意高而不会影响内存需求——这一"逻辑在表外、规则在代码中"的分层设计是 ACAS X 在适航与可维护性上的一个关键工程选择。

10.4.2 Multiple Threats

10.2 节中的 MDP 仅假设单架入侵机。直接为每架入侵机增加状态变量在原理上可行,但表格规模会随入侵机数量指数增长。TCAS 的做法是分别独立地为每架入侵机决定最佳咨询,再依赖一套相对复杂的规则把各机咨询合成一个统一的咨询反馈给飞行员——这种"先独立再融合"的方法在多机场景下常常导致不合理合并。

ACAS X 与 TCAS 不同,它对不同入侵机的状态-动作成本进行融合[18]。实验结果表明该方法有效且可扩展到大量入侵机[17]。在某些情况下系统会发布 multi-threat level off(MTLO)咨询——MTLO 不属于 MDP 的动作集。MTLO 可在两架入侵机分别要求不同 sense 时发布;由于 MTLO 既非 up sense 也非 down sense,可以与两架入侵机同时兼容。MTLO 在"夹击"遭遇(即本机必须在另外两架飞机之间飞行)中尤为有用。

与 TCAS 不同,ACAS X 具备对不同飞机施加不同保护模式的能力。该能力在紧密平行进近[19]等场景下尤为有用:系统可以对一架已知在做同步进近的飞机采用更不保守的告警行为,同时对所有其他飞机保持标准的告警行为。ACAS X 早期原型通过对不同保护模式使用不同查找表与状态估计参数、再把各模式的状态-动作值进行融合的方式实现这一功能。

10.4.3 Traffic Alerts

ACAS X 的开发工作主要集中于 RA 的生成,但 TA 在帮助飞行员目视识别以及为响应 RA 做准备上同样重要。可以采取多种途径以产生针对以下目标的优化 TA:在 RA 之前给出适当提前量——理想提前量约为 10 至 15 秒;少于 6 秒的提前量称为 surprise RA,通常不够;避免 nuisance alert(不伴随 RA 的 TA)——由于飞行员响应存在变异性,未来是否会发布 RA 不可能完全预测,因此必须容忍少量"只 TA 不 RA"的情况,但限制 nuisance TA 与限制 surprise RA 之间需要平衡;避免 split alert——即同一次遭遇中应避免出现多段 TA。

ACAS X 的方法不需要扩大或修改现有查找表。TA 由"无告警"动作的价值决定;该价值主要受碰撞成本影响,提供了对威胁的度量。碰撞越可能发生,无告警的价值越低。仅用一个阈值与该价值比较会导致 chatter——即 TA 在开关之间频繁切换。TCAS 最初设计中为防止 chatter 要求 TA 持续至少 8 秒;ACAS X 沿用了这一要求。为进一步防止 chatter 并改善运行性能,ACAS X 使用以下三个阈值:on threshold 为常值阈值,当无告警价值下降到该阈值以下时即认为威胁程度足以发布 TA;squeeze threshold 是相对无告警价值的常值偏移,当某项咨询价值比无告警价值加上该偏移还便宜、且 on threshold 也满足时即发布 TA,目的是抑制过长的提前量或不必要的 TA;off threshold 是与 on threshold 相似的常值阈值,若某 TA 已持续至少 8 秒且无告警价值低于 off threshold,则停止该 TA。这些阈值通过在雷达数据上运行仿真选定[20]。

图 10.1 用一次遭遇示意 TA 行为:先是无告警价值越过 on threshold,但最高价值咨询高于 squeeze threshold,因此暂不发布 TA;稍后最高价值咨询降到 squeeze threshold 以下,TA 被发布;当最高价值咨询价值超过无告警价值时发布 RA[20]。这一基于"无告警价值"曲线和三个阈值的 TA 生成机制实质上是一种轻量级的"基于价值的告警开关",把 chatter 控制、提前量控制与 nuisance 控制统一到同一组可调阈值上。

10.5 Evaluation

ACAS X 必须在满足既有安全要求的同时容纳众多运行目标与约束。系统需要提供有效防撞保护而不应过度打扰飞行员和空管系统:除尽量少发告警外,所发布的咨询要以飞行员与运行社区认为合用且可接受的方式解除冲突。本节讨论 ACAS X 原型在安全与运行性能分析、逻辑参数整定与飞行测试方面的过程。文中强调:评估不是单一指标优化,而需要在 risk ratio、alert rate、reversal rate 等多个目标之间做权衡——这一权衡的具体方法落在 10.5.3 节的 parameter tuning 阶段。

10.5.1 Safety Analysis

碰撞风险通过 encounter model 估计——它能够生成代表实际空域的遭遇样本。仿真时把大量从 encounter model 采样的情境分别在有/无防撞系统条件下运行,可以得到碰撞风险之差。风险估计强烈依赖模型所代表的遭遇分布,因此模型的遭遇几何与飞机行为必须尽可能贴近实际空域,否则防撞系统相关的风险可能被显著高估或低估。为了得到代表性模型,通常使用大量记录的监视数据来提取各遭遇变量上的状态概率。文中把这一思路概括为"encounter model 代表实际空域的能力直接决定 risk ratio 估计的可信度",这也是 ACAS X 评估在数据规模上如此大投入的原因。

ACAS X 评估所用的 encounter model 基于美国 130 部短程与远程雷达的数据流(更新周期分别为 4.5 秒与 12 秒),数据量约为每天 10 GB。原始报告提供距离、方位、高度与应答机码;这些报告被转换成经纬度坐标,航迹则由多传感器融合得到[21]。从 2007 年 12 月至 2008 年 8 月的航迹数据库中筛出满足一定距离与时间标准的遭遇,所用标准比 TCAS 告警标准更宽松,共识别出 393,077 次遭遇。每条遭遇记录附带一组静态特征(水平脱靶距离、初始垂直速率等)和一组动态特征(转弯率、空速加速度等)[22]。第 2.4 节的贝叶斯网络结构学习给出初始与转移网络的拓扑(图 10.2),参数由 2.3.2 节的方法从数据中学习得到。

从模型中采样将得到具有代表性的遭遇,防撞系统可以在仿真中运行以估计碰撞风险。安全研究通常把飞机作为质点仿真,再估计发生 near midair collision(NMAC,即两机水平距离 500 ft、垂直距离 100 ft 内相遇)的概率。安全分析中最重要的指标是 risk ratio——有防撞系统时的 NMAC 概率与无防撞系统时的 NMAC 概率之比。若要估计实际空中相撞率,则需要仿真飞机线框模型并按机型估计分布[23]。

直接对模型采样并计算平均 NMAC 数将给出每次遭遇导致 NMAC 概率的无偏估计;然而由于 NMAC 在空域中极为稀有,直接采样产生的 NMAC 数量很少。仿真不太可能发生 NMAC 的遭遇是低效的。更有效的方式是生成在最近点处大多数具有较小垂直与水平间隔的遭遇,并对这些遭遇做适当加权[22],即 importance sampling,是估计中常见的方差缩减方法。第 4 章介绍的 cross entropy 方法已被用于寻找合适的 importance sampling 分布[25]。即便使用 importance sampling,通常也需要数十万次遭遇仿真才能给出置信区间较窄的 risk ratio 估计。

在标准气压高度偏差、主动监视与飞行员响应模型假设下,当前 ACAS X 原型的 risk ratio 小于 TCAS 的 40%。虽然总体 risk ratio 令人鼓舞,持续工作仍在识别并归类 ACAS X 可进一步改进的领域。研究方向之一是分析系统在欧域空域下的安全性(其遭遇分布因管制程序差异而与美国不同);除对面向实际空域的遭遇模型进行失效案例分析外,开发团队也通过 stress testing 模型测试系统极限——后者在某些类别遭遇的穷举变型上探测系统边界[26]。文中还提到 ACAS X 分析使用了概率模型检验[27]和混合系统定理证明器[28]等多种独立验证手段。从评估方法论的角度看,ACAS X 的 safety analysis 并不依赖单一估计:encounter model 的代表性、importance sampling 的有效性、stress test 的覆盖度、以及概率模型检验与定理证明的形式化保证,构成一组互补的证据,使得 safety 结论同时具有统计可信度与逻辑严谨性。

10.5.2 Operational Suitability and Acceptability

ACAS X 的运行性能在仿真中评估,使用 FAA TCAS 监测项目下由 TCAS Resolution Advisory Monitoring System(TRAMS)收集的真实 TCAS 遭遇数据。该数据集包含 21 个高密度终端区正常运营期间发生的 100,000 余次遭遇[29],覆盖各类空域、高度、本国与外籍航司及公务机运行、航路与终端区交通间隔与程序、机场进离场航线、以及多种入侵机类型与遭遇几何。

除 TRAMS 数据外,还使用针对特定程序的迷你模型对未来程序进行综合评估,覆盖多种遭遇动态[7]。这些迷你模型包括 500 ft 与 1000 ft 垂直间隔遭遇、紧密平行进近、3 海里航路间隔程序等。随着未来空管程序的成熟,将建立更多迷你模型以评估 ACAS X 的安全与运行兼容性。

运行适用性的关键指标之一是总体告警率。根据 TRAMS 数据集估计,ACAS X 的总体告警率比 TCAS 低 30%。图 10.3 显示其原因:在两机平飞、正面接近的几何下,ACAS X 的告警区域明显小于 TCAS;除"加强"为增加爬升或下降这一过渡外,所有告警都出现得比 TCAS 晚。

确保飞行员愿意信任 ACAS X 告警是逻辑整定的重要目标。在 TCAS 初期开发中飞行员指出反转与高度穿越类告警对机组影响较大,需要特别关注;ACAS X 在这些方面专门做了评估以确保不弱于 TCAS。ACAS X 的反转性能由 TRAMS 数据评估,并人工审查大量遭遇以保证其可接受性;总体上当前 ACAS X 原型把反转次数降低了 22%。文中同时指出反转与高度穿越类告警之所以在 TCAS 初期开发中就被飞行员标记,是因为它们对机组的影响尤为突出,因此降低反转频率与减少穿越类告警被作为运行性能评估的硬指标单独追踪。

由于 TRAMS 数据集规模巨大,无法人工逐条审查,但九轮逻辑迭代过程中审查了数百条遭遇。逐条评估是验证逻辑整定在引导期望行为方面是否有效的必要步骤。图 10.4 给出一个改平遭遇示例:水平几何(未示出)为常见的 90 度交叉。装备防撞系统的本机初始下降,威胁机先爬升再改平。TCAS 发出初始穿越下降告警,然后反转为爬升;爬升告警后,TCAS 发出"削弱"型改平,目的是在垂直间隔已充足时最小化高度变化;最后在水平最近点之后较远处才发出"Clear of Conflict"。相比之下,ACAS X 比 TCAS 稍晚一些发出改平指令,"Clear of Conflict" 紧接最近点之后。该示例中 ACAS X 在不出现穿越或反转告警的情况下解除了冲突;单次改平告警不偏离飞行员原本的改平意图,结果是合用的解决方式,同时仍提供安全的垂直引导。

10.5.3 Parameter Tuning

ACAS X 中存在多种可由设计者调节的设计参数。例子包括:离线的告警成本、在线的咨询重启成本、以及 MDP 中白噪声加速度参数。调节这些参数能在不同指标之间进行权衡——例如提高告警成本能减少告警数量,代价是安全性下降。

设计参数应当与系统参数相区分。系统参数是控制系统行为的参数,但不一定由设计者直接调节。ACAS X 中许多设计参数也是系统参数,但系统参数还包括查找表中存储的数百万个数值;因此系统参数远多于设计参数。大量系统参数的存在使告警行为(图 10.3 中所示)能被更精细地调整以获得更好的性能。文中强调"设计参数 vs 系统参数"这一区分是理解 ACAS X 可调性的关键:日常整定通常只动设计参数,查找表(即系统参数主体)的数值则是在更大规模优化中产生。

ACAS X 设计方法的一个优势在于:相对于系统参数数量,设计参数数量很少。设计过程的复杂度通常随设计参数数量指数增长——单个设计点的评估需要使用多种不同模型进行数百万次仿真;即使使用含 64 个节点的高性能计算集群,评估单个设计点也需一小时。此外,给定单次评估结果后预测下一个值得尝试的设计点也颇具挑战。因此在 ACAS X 早期开发中,对自动化整定设计参数的过程有强烈需求。

要自动化整定过程,需要在设计空间上定义某个标量效用函数 \(u\)。若有两个设计点 \(\theta_1\)\(\theta_2\)\(u(\theta_1) > u(\theta_2)\),则 \(\theta_1\) 优于 \(\theta_2\)。对 ACAS X 而言,\(u\) 基于多种模型生成的大量仿真的结果。由于 \(u\) 是标量函数,必须对各指标做适当加权。文中指出未来工作将探索使用第 3.1.4 节中的形式化效用引导技术确定权重,但最近一次整定中的权重由临时专家委员会按共识决定。

整定过程如图 10.5 所示。第一步是 design parameter screening:通过让每个参数相对其标称值单独变化来估计 elementary effects;剔除对性能影响不显著的参数以缩小搜索空间[19]。识别出重要设计参数后,使用 surrogate model optimization 在设计空间中搜索最大化效用的点。surrogate model optimization 利用已评估设计点的历史构建效用函数的代理模型;优化过程的每一步在代理模型上搜索最大 expected improvement 的点,对该点进行仿真评估后用贝叶斯规则更新代理模型。该过程重复进行直到找到一组高性能设计点。文中提到类似的 surrogate optimization 过程也已用于翼型设计等其他应用[30]。

10.5.4 Flight Test

ACAS X 的开发充分利用了建模与仿真,但飞行测试仍然不可或缺。飞行测试用于验证仿真结果并更新模型,把系统暴露在真实环境的挑战下,并收集飞行员对可接受性的反馈。ACAS X 的首次飞行测试于 2013 年 8 月在新泽西州大西洋城 FAA William J. Hughes 技术中心进行。MIT 林肯实验室提供算法规范与查找表;约翰·霍普金斯大学应用物理实验室在 Honeywell 公司提供的改造型老式硬件上实现了算法。ACAS X 设备被装载在 Convair 580 飞机上,使用 TCAS 信标监视;遭遇由装备 Mode S 应答机的 Beechcraft King Air 与另一架装备 TCAS 的 Convair 580 协同完成。

原型机在 11 次飞行中累计工作超过 21 小时,未出现任何硬件或软件故障,飞行中也未发生设备重置。受老式硬件内存限制,查找表通过不影响实时查找时序的算法压缩[9]。为保证在每个监视周期内完成处理,逻辑仅处理最近的 4 架入侵机;研究正在进行中以探索每个处理周期内处理更多入侵机的方法。

逻辑在多种不同遭遇场景下测试,包括 10.5.2 节讨论的若干场景。共飞行 127 张测试卡。遭遇既包含交通告警也覆盖 TCAS 提供的各类解决咨询,并测试了与老版 TCAS 的协调机制;同时在飞行员有/无响应两种情况下飞行。ACAS X 在大多数测试场景中表现符合预期,但在少数方面仍有改进空间:在 500 ft 间隔的某些改平遭遇中发布了不希望出现的告警;后续整定将力求在保持 blunder 场景安全性的同时去除这些告警;非 blunder 平行进近中也观察到告警,最终 ACAS X 系统所预期的监视能力改进将有助于去除这些告警。飞行测试中暴露了测试所用旧版逻辑的已知问题,例如某些情形下未按预期发出反转。飞行测试与仿真之间观察到的若干差异已反映到下一轮分析与优化中——这一反馈环路正是 10.5 节反复强调的"评估→整定→再评估"闭环在实物层面的具体落地。

10.6 Summary

本章展示了如何把飞机防撞问题建模为部分可观测马尔可夫决策过程并用动态规划求解。建模与仿真表明这种方法既可以降低对飞行员的干扰,又能改善 TCAS 提供的安全水平。这项研究促成了 ACAS X 的建立,目标是成为下一代国际防撞标准。和 TCAS 一样,ACAS X 在美国与全球范围内获得监管接受需要密集的标准化工作。飞行测试之后,标准化过程在联邦咨询委员会 RTCA(Radio Technical Commission for Aeronautics)启动。ACAS X 将在下一代商用航空中扮演重要角色,并支持无人机安全进入民用空域。

本章个人批注

读完本章最强烈的感受是:把一个现实世界的高安全级别系统问题(飞行防撞)从工程师直觉驱动的规则系统(TCAS)重铸为带概率模型与优化的决策理论问题(ACAS X),是一次典型的方法论范式跃迁。TCAS 的成功不可否认,但其逻辑"细节极其复杂、嵌入大量启发式"这一点,本质上是把"先有规则、再补参数"这一传统工程做法的代价明确写出来了——而 ACAS X 把逻辑的主体(查找表)变成可由统计模型与目标函数驱动的产出,逻辑的可维护性、可比较性、跨平台移植性都直接受益。

但本章在展示这一跃迁的同时,也诚实交代了若干工程层面的现实约束。10.2.2 节中六个状态变量的选择、10.2.3 节奖励表从"四项"扩张为"十几项"的过程、10.4.1 节把 8 类在线成本叠加到动作值上的策略,都让我看到"POMDP 是漂亮的,离线能解"和"实时可运行、可认证、可维护"之间还有相当距离。把一部分约束推到"在线成本"的做法是务实的妥协——表大小可控、规则实现独立于内存——但本质上是承认全观测离线优化无法把"所有变量都装进表"。这一点和我自己在工程上对优化方法的认识是一致的:当问题真的很大时,把"硬约束"和"软代价"分层处理、把"高频决策"和"低频上下文调节"分开,往往比一味扩大统一模型更稳健。

10.5 节展示的评估流程尤其值得停下来想:从雷达数据挖掘遭遇模型(用 BN 结构学习出图 10.2 那种依赖结构),到用 cross-entropy importance sampling 把 risk ratio 估计做到统计可信,再到 surrogate model optimization 自动化设计参数搜索,最后在真实飞行测试中"找出仿真和实际不一致"的地方并反馈到下一轮优化——这是一个完整的"数据→模型→优化→实测→反馈"闭环。对我而言这是更通用的"机器学习 + 决策"系统范式的一个具体例子:把数据与机理融合、用仿真做大规模评估、用代理模型压低评估代价、用真实部署做最终验证。

唯一稍感遗憾是 10.3.3 节中虽然提到了"水平状态对称性"和 unscented Kalman filter 等细节,但"实时且可认证"是 ACAS X 选择离线建表的核心原因——这一权衡在文中只是隐含地说"certifying a safety-critical system that relies on random-number generation can be difficult",对蒙特卡洛方法在安全关键实时系统中的可认证性问题没有更深入展开。如果未来有相关章节专门谈适航,我会期待看到更多细节。

与上下章的衔接(一段话)

从全书的结构看,本章是 Kochenderfer 把前面几章建立的决策理论工具——POMDP 公式、动态规划求解、状态估计中的卡尔曼滤波族、风险评估中的重要性采样、参数搜索中的代理模型——应用到航空领域最具代表性的安全关键问题的一次"集中展示"。如果说第 6–9 章主要讨论决策理论方法在机器人感知、SLAM、视频搜索等场景下的扩展,那么第 10 章则是这些方法在工业级、政府监管级、跨机兼容级问题上端到端跑通的一次完整实战。下一章(第 11 章)将继续把同样的工具应用于另一个具高安全级别的领域——多飞机机队调度与冲突解脱,将问题从"两两防撞"扩展到"整个空域的多机协同",从而构成"决策理论在航空决策中"的对偶两章。