☰
多余度飞控中监督机制与表决机制的差异及适航审查要点
2026/10/14 20:06:00 网站建设 项目流程

1. 多余度飞控里那对“双胞胎”:监督机制与表决机制到底哪里不一样

但凡接触过多余度飞控系统的人,大概率都听过两个词——监督和表决。很多人第一次看架构图的时候,会觉得这俩东西长得差不多:都是拿多路信号做比较,都是判断谁对谁错,都是输出一个“行”或“不行”的结论。甚至有些文档里把两者混着用,一会儿说“表决器完成监督功能”,一会儿说“监督模块执行表决逻辑”,看得人一头雾水。

我最早接触这套东西的时候也踩过这个坑。当时在做一个三余度飞控的桌面仿真验证,代码里把监督和表决写成了一个函数,输入是三路信号,输出是选出来的那一路。跑起来倒也没报错,但后来做故障注入测试的时候发现,某些故障模式下系统的响应跟预期对不上——该报故障的时候没报,不该切换的时候切了。回头查了半天,才发现根子在于我把两个不同层次、不同目的、不同时间尺度的机制揉在了一起。

所以这篇东西,我想把多余度飞控里监督机制和表决机制的异同彻底掰开揉碎讲清楚,顺带聊聊它们在适航符合性审查里各自承担什么角色、审查方会盯哪些点。内容会涉及架构设计层面的思路、具体实现的参数选择、故障注入测试的实操方法,以及我在实际项目中踩过的坑。适合做飞控系统设计、安全性评估、适航取证的朋友参考,也适合刚入行想搞清楚基本概念的同学。

先给一个最粗的区分:监督机制关心的是“这个信号能不能信”,表决机制关心的是“这么多信号里该信哪个”。一个是准入判断,一个是选择判断。这个区别听起来简单,但往下延伸出来的设计逻辑、实现方式、验证方法、适航审查要点,差别非常大。

2. 从架构层面拆解:两种机制的设计初衷与核心逻辑

2.1 监督机制到底在“监督”什么

监督机制的本质是一个信号可信度评估器。它的输入通常是一路信号的多个属性——数值范围、变化率、与其他信号的偏差、信号自身的完整性校验结果等等——输出是一个二值或者多值的判断:这个信号是可信的、可疑的、还是确认故障的。

你可以把它理解成机场的安检通道。每个旅客(信号)要登机(进入表决环节),先得过安检。安检不负责决定你坐哪个座位,它只负责判断你能不能进候机厅。安检的判断依据是多维度的:身份证对不对、行李里有没有违禁品、人身扫描有没有异常。任何一个维度出问题,你就进不去。

在飞控系统里,监督机制的典型实现包括以下几个层次:

  • 信号有效性检查:比如范围检查(空速信号是否在合理区间内)、变化率检查(俯仰角速度是否超过物理极限)、解析度检查(ARINC 429标签的SSM位是否正常)。
  • 交叉通道比较:把本通道的信号与其他通道的同类信号做差,如果偏差超过阈值,标记为可疑。
  • 时间一致性检查:检查信号更新周期是否正常,有没有超时、丢帧、抖动。
  • 模型一致性检查:用解析余度(比如用其他传感器组合推算出来的估计值)与实际信号做比较。

这些检查的结果汇总起来,形成一个信号健康状态,供后续的表决逻辑使用。注意,监督机制本身通常不直接决定“用哪一路”,它只是给每一路信号打上“可用/不可用”的标签。

2.2 表决机制的核心任务是什么

表决机制是在监督机制筛选完之后,从剩余的可信信号中选出一个最终用于控制的数值。它的输入是经过监督筛选的多路信号,输出是一路确定的指令或状态。

继续用机场的类比:安检完了,旅客进了候机厅,现在要决定谁上飞机。表决机制就是登机口的工作人员,他根据座位分配规则(比如优先级、多数原则)来决定最终谁登机。如果有多个人都符合条件,他得选一个;如果没人符合条件,他得启动备用方案。

飞控里的表决机制常见的有以下几种:

  • 多数表决:三余度取两路相近的,四余度取两路最接近的取平均,等等。
  • 中值表决:取所有可信信号的中位数,天然抗单路大偏差。
  • 加权平均表决:根据信号的历史可信度或精度分配权重,加权求和。
  • 主备切换表决:指定一路为主,故障时切到备用。

表决机制的关键设计参数包括:表决阈值(多大偏差算“不一致”)、表决窗口(在什么时间范围内比较)、表决算法(多数、中值、加权)、以及表决失败后的降级策略(是切备份、降级控制律、还是直接进入安全模式)。

2.3 为什么要把两者分开设计

把监督和表决分开,最核心的理由是职责单一化。监督负责“过滤”,表决负责“选择”。如果混在一起,会出现几个问题:

第一,故障定位会变得模糊。当系统报出一个故障时,你分不清是信号本身坏了(监督该管的事),还是表决逻辑选错了(表决该管的事)。这在适航审查里是致命的——审查方要求你能明确解释每一个故障告警的来源和依据。

第二,时间尺度不一样。监督通常需要持续运行,对每一帧信号都做检查,响应要快(毫秒级)。表决则往往在监督结果更新后才执行,或者以稍低的频率运行。混在一起会导致时序上的耦合,增加验证复杂度。

第三,适航符合性验证的要求不同。监督机制的正确性主要通过故障注入和覆盖率分析来验证,表决机制的正确性则更多通过形式化方法、穷举测试和蒙特卡洛仿真来验证。分开设计,验证计划可以各司其职,审查方也更容易接受。

实操心得:在架构设计阶段,建议把监督和表决画成两个独立的模块,接口定义清晰——监督输出“信号健康状态向量”,表决输入这个向量并输出“选定值+表决状态”。这样在后续的DO-178C和DO-254审查中,每个模块的验证目标和覆盖要求可以分别制定,不会互相干扰。

3. 核心细节对比:从输入输出到故障响应的全维度拆解

3.1 输入信号的差异

监督机制的输入通常是单路信号的完整属性集。比如对于一个大气的攻角传感器,监督模块会拿到:原始数值、有效性位、时间戳、本通道的校验和、以及来自其他通道的同类信号(用于交叉比较)。它关注的是这一路信号“自身是否正常”以及“与其他路是否一致”。

表决机制的输入则是经过监督筛选后的多路信号集合。它不关心某一路信号为什么被标记为不可信,只关心哪些信号当前是可用的,然后从可用集合中选出最终值。换句话说,监督的输出是表决的输入的一部分。

这个差异导致了一个重要的设计约束:监督必须在表决之前完成。如果顺序反了,表决可能会选到一个已经被监督判定为故障的信号,后果不堪设想。

3.2 输出结果的差异

监督的输出是一个状态向量,通常包含每一路信号的健康状态(正常/可疑/故障)、故障类型(范围故障/比较故障/超时故障等)、以及故障的置信度。这个向量是给表决模块和故障管理模块共同使用的。

表决的输出是一个标量或小向量,即最终选定的信号值,外加一个表决状态(表决成功/表决失败/降级表决)。表决状态会送给控制律计算模块和告警系统。

用一个表格来对比更清楚:

维度监督机制表决机制
输入单路信号属性+交叉比较数据监督筛选后的多路信号
输出信号健康状态向量选定值+表决状态
运行频率每帧信号都执行监督完成后执行
主要算法阈值检查、交叉比较、模型比较多数表决、中值、加权平均
故障响应标记信号不可用切换信号源或降级
验证方法故障注入+覆盖率分析形式化+穷举+蒙特卡洛
适航关注点故障检测覆盖率、误报率表决正确性、降级逻辑

3.3 故障响应路径的差异

监督机制发现故障后,典型的响应是:标记该路信号为不可用,并通知故障管理模块记录故障。它不直接改变控制律,也不直接切换信号源。它只是“拉黑”了一路信号。

表决机制发现表决失败(比如可用信号数量不足、或者信号间偏差过大无法达成一致)后,响应就激烈得多:可能触发信号源切换(从主传感器切到备份传感器)、控制律降级(从正常法则降到备用法则或直接法则)、甚至进入安全模式(比如自动驾驶断开、提示飞行员手动接管)。

这个差异意味着:监督机制的误报会导致可用信号减少,但不一定直接影响飞行;表决机制的误判则可能直接导致控制指令异常。所以适航审查对表决机制的验证要求通常更严苛。

3.4 时间尺度与执行顺序的差异

监督机制通常以信号帧率运行,比如每20毫秒执行一次。它需要在信号被使用之前完成检查,所以对实时性要求很高。表决机制可以在监督完成后立即执行,也可以以稍低的频率运行,但必须保证在控制律计算之前完成。

在实际实现中,常见的做法是:监督和表决在同一个计算周期内串行执行,监督先跑,表决后跑。但在某些架构里,监督是分布式的(每个通道自己监督自己的信号),表决是集中式的(所有通道的信号汇总到一个表决器)。这种分布式监督+集中式表决的架构,对时间同步的要求非常高。

注意事项:如果监督和表决在不同的计算节点上执行,必须确保监督结果的传输延迟不会导致表决使用过期的健康状态。我见过一个案例,监督结果通过总线传输到表决节点,总线延迟在极端情况下达到了50毫秒,导致表决用了一个已经恢复正常的信号的旧故障标记,错误地减少了可用信号数量。后来通过增加时间戳校验和超时丢弃机制解决了这个问题。

4. 适航符合性审查:审查方到底在盯什么

4.1 监督机制的适航审查要点

适航审查对监督机制的核心关注点是故障检测覆盖率和误报率。审查方会要求你提供:

  • 故障模式清单:你考虑了哪些故障模式?范围故障、漂移、卡滞、振荡、超时、数据损坏等,是否都覆盖了?
  • 检测覆盖率分析:对于每一种故障模式,你的监督机制能在多长时间内检测到?检测概率是多少?
  • 误报率分析:在正常信号波动范围内,监督机制会不会误报?误报率是否在可接受范围内?
  • 故障注入测试结果:你做了哪些故障注入测试?覆盖了哪些工况?结果如何?

这里有一个常见的坑:阈值设置的两难。阈值设得太紧,正常信号的噪声和瞬态波动会导致误报;阈值设得太松,真正的故障可能漏报。适航审查方通常要求你提供阈值选择的依据——要么来自传感器规格书,要么来自飞行试验数据,要么来自仿真分析。拍脑袋定的阈值是过不了审查的。

4.2 表决机制的适航审查要点

表决机制的审查重点则是表决正确性和降级逻辑的完整性。审查方会关注:

  • 表决算法的数学正确性:多数表决、中值表决的边界条件是否处理正确?当可用信号数量为偶数时怎么处理?当所有信号都不一致时怎么处理?
  • 降级逻辑的完备性:表决失败后,系统是否进入了预定义的安全状态?降级路径是否经过验证?
  • 瞬态响应:当一路信号突然故障时,表决机制能否在可接受的时间内完成切换?切换过程中控制指令会不会出现跳变?
  • 形式化验证结果:对于高安全等级的系统,审查方可能要求提供形式化验证的证据,证明表决逻辑在所有可能的输入组合下都满足安全属性。

4.3 两者的共同审查要求

虽然监督和表决的审查重点不同,但有一些要求是共同的:

  • 独立性:监督和表决的实现必须是独立的,不能共用可能导致共因故障的代码或硬件资源。
  • 可测试性:必须提供足够的测试接口,让审查方能够注入故障、观察响应、验证逻辑。
  • 可追溯性:从需求到设计到代码到测试,每一条安全需求都必须有完整的追溯链。
  • 配置管理:监督和表决的阈值、参数、算法版本都必须纳入配置管理,任何变更都需要重新验证。

实操心得:在准备适航审查材料时,建议把监督和表决的验证证据分开整理成两个独立的文档包。监督的文档包重点放在故障注入覆盖率和误报率分析上,表决的文档包重点放在形式化验证和降级逻辑测试上。这样审查方可以分别审查,不会因为一个模块的问题拖累另一个模块的审查进度。

5. 实操过程:从设计到验证的完整流程

5.1 需求定义阶段的拆分方法

在需求定义阶段,就要把监督需求和表决需求分开写。监督需求通常以“系统应能检测到XX故障,检测时间不超过XX毫秒”的形式表述。表决需求则以“系统应在XX路信号可用时,采用XX表决算法输出指令”的形式表述。

我通常会用一张需求追溯表来管理这两类需求:

需求编号需求类型需求描述验证方法验证状态
MON-001监督检测攻角信号范围故障故障注入已通过
MON-002监督检测攻角信号交叉比较故障故障注入已通过
VOT-001表决三余度中值表决形式化验证已通过
VOT-002表决表决失败降级仿真测试已通过

这张表在适航审查时非常有用,审查方可以一目了然地看到每个需求的验证状态。

5.2 算法实现阶段的关键参数计算

监督机制中,交叉比较的阈值计算是一个关键环节。假设我们有两个攻角传感器,它们的精度规格都是±0.5度,那么交叉比较的阈值应该设为多少?

一个常用的方法是:阈值 = 2 × sqrt(σ1² + σ2²),其中σ1和σ2是两个传感器的标准差。如果每个传感器的标准差是0.25度(对应±0.5度的精度),那么阈值 = 2 × sqrt(0.25² + 0.25²) ≈ 0.71度。这意味着如果两个传感器的读数偏差超过0.71度,就有95%的置信度认为其中至少有一个出了问题。

当然,实际工程中还要考虑信号的动态特性、安装误差、温度漂移等因素,阈值通常会在此基础上适当放宽。但关键是:阈值的计算过程必须文档化,审查方会看。

表决机制中,中值表决的实现相对简单,但边界条件需要仔细处理。比如三余度中值表决,当三路信号分别为A、B、C时,输出是中间那个值。但如果A和B非常接近,C偏离很远,那么中值表决的输出就是A和B的平均值(如果A和B相等)或者中间值。这个逻辑在代码里通常用排序或者比较来实现。

5.3 故障注入测试的实操方法

故障注入测试是验证监督和表决机制的最直接手段。我通常会把测试分为几个层次:

第一层是单元测试,针对监督模块的每一个检查项,单独注入对应的故障,验证检测逻辑是否正确。比如注入一个超范围的攻角值,看监督模块是否在预期时间内报出范围故障。

第二层是集成测试,把监督和表决放在一起,注入多路故障,验证表决机制是否正确使用了监督结果。比如同时注入两路攻角故障,看表决机制是否正确地降级到单路可用状态。

第三层是系统测试,在完整的飞控仿真环境中,注入故障并观察飞机的响应。这一层测试最接近真实飞行,但成本也最高。

在故障注入测试中,有一个容易被忽视的点:故障注入的时序。同样的故障,在不同的飞行阶段注入,系统的响应可能完全不同。比如在起飞阶段注入空速故障,和在巡航阶段注入,监督和表决的可用信号数量、控制律的工作模式都不一样。所以测试用例必须覆盖所有关键飞行阶段。

注意事项:故障注入测试的通过标准要提前定义清楚。我见过一个项目,测试做了很多,但因为没有提前定义“什么算通过”,导致审查时无法证明测试的有效性。建议在测试计划中明确:检测时间上限、误报率上限、降级后的控制精度要求等量化指标。

6. 常见问题与排查技巧实录

6.1 监督机制误报导致可用信号减少

这是最常见的问题之一。表现是:系统频繁报出某路信号故障,但实际上该信号是正常的。排查思路如下:

首先,检查阈值设置是否过紧。把故障发生时的原始数据调出来,看看信号的实际偏差是多少,与阈值比较。如果偏差只是略微超过阈值,很可能是阈值设置问题。

其次,检查信号的瞬态特性。有些传感器在特定工况下(比如大机动飞行、温度剧烈变化)会出现短暂的输出跳变,如果监督机制没有设置合理的瞬态抑制窗口,就会误报。

最后,检查交叉比较的时间同步。如果两路信号的采样时间不同步,在信号快速变化时会出现较大的瞬时偏差,导致误报。解决方法是在比较之前做时间对齐,或者使用变化率补偿。

6.2 表决机制在信号切换时产生指令跳变

当一路信号被监督标记为故障,表决机制从三余度切换到双余度时,如果两路剩余信号的数值有差异,表决输出的指令可能会出现跳变。这个跳变如果太大,会影响飞行品质,甚至触发控制律的瞬态保护。

解决方法通常有两种:一是渐变切换,在切换过程中对输出做速率限制或低通滤波,让指令平滑过渡;二是预选切换,在监督阶段就预测可能的切换,提前计算好切换后的输出值,减少切换时的突变。

我个人的经验是,渐变切换更稳妥,但会引入一定的延迟;预选切换响应更快,但实现复杂度更高。具体选哪种,取决于系统的安全等级和实时性要求。

6.3 适航审查中常见的质疑与应对

审查方最常问的几个问题:

  • “你的监督阈值是怎么定的?”——必须能拿出计算依据或试验数据。
  • “如果监督和表决同时失效怎么办?”——需要说明共因故障的分析和缓解措施。
  • “表决失败后的降级路径验证了吗?”——需要提供降级路径的测试报告。
  • “你的故障注入测试覆盖了哪些故障模式?”——需要提供故障模式清单和覆盖率矩阵。

应对这些质疑的最好方法,是在设计阶段就把这些问题的答案准备好,而不是等到审查时才临时补材料。

6.4 常见问题速查表

问题现象可能原因排查方法解决措施
监督频繁误报阈值过紧对比实际偏差与阈值放宽阈值或增加瞬态抑制
表决输出跳变信号切换不同步检查切换时序增加渐变切换或速率限制
故障检测延迟大检查周期过长测量检测时间提高监督执行频率
表决失败不降级降级逻辑未覆盖注入表决失败故障补充降级逻辑和测试
审查方质疑阈值缺少计算依据整理阈值计算文档补充计算过程和试验数据

最后再分享一个小技巧:在监督和表决的代码中,加入一个“调试模式”,可以在不影响正常运行的情况下,输出每一帧的监督结果和表决过程。这个功能在排查现场问题时非常有用,但要注意调试模式的输出不能影响实时性,也不能在适航审查时被认定为“未经验证的代码路径”。通常的做法是把调试输出放在独立的、经过验证的监控通道中。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询