☰
多余度飞控系统共因分析与故障树分析:从架构到落地
2026/10/14 1:20:01 网站建设 项目流程

1. 多余度飞控系统共因分析与故障树分析:从架构到落地的完整拆解

飞控系统这东西,平时不出事的时候谁都不在意,一旦出问题就是大事。我接触过几个无人机和通航飞机的飞控项目,但凡涉及到安全关键(Safety-Critical)的场景,多余度架构几乎是绕不开的设计选择。但问题来了——你堆了三套、四套冗余,真的就安全了吗?答案显然没那么简单。多余度飞控系统共因分析与故障树分析,说白了就是回答两个问题:第一,你的冗余通道之间会不会因为某个共同的原因同时挂掉?第二,从顶层的“飞机失控”这个不希望发生的后果往下推,到底是哪些底层事件的组合会导致它发生?

这两个问题分别对应共因分析(Common Cause Analysis, CCA)和故障树分析(Fault Tree Analysis, FTA)。前者关注的是“独立冗余假设”是否成立,后者关注的是一整条失效路径的定量与定性刻画。我写这篇东西,是想把这两个分析方法在多余度飞控场景下的实操逻辑、参数选取、常见坑点都摊开讲清楚。适合谁看?如果你正在做飞控系统的安全性评估、适航取证、或者单纯想把冗余架构设计得更靠谱,那这篇内容应该能帮你省下不少翻文档的时间。

2. 为什么多余度架构离不开共因分析

2.1 冗余设计的底层假设与它的脆弱性

多余度飞控的核心思想很朴素:一个通道坏了,还有备用的顶上。比如三余度架构,三个飞控计算机同时运行,通过表决机制决定输出。理论上,只要不是三个同时坏,系统就能继续工作。这个“同时坏”的概率,在独立假设下是单通道失效概率的三次方——如果单通道失效概率是10的负五次方,那三通道同时失效就是10的负十五次方,看起来非常安全。

但这里有个致命的前提:三个通道的失效必须是统计独立的。现实中呢?它们可能共用同一个电源、同一条总线、同一个时钟源、甚至同一批次的元器件。一旦某个共因事件发生——比如电源瞬断、总线短路、或者某个批次芯片的固有缺陷——三个通道可能同时失效。这时候,你堆再多的冗余也没用。我见过一个项目,飞控计算机做了四余度,结果四个通道的电源模块来自同一家供应商的同一批次,后来发现该批次在低温下启动电流异常,四个通道一起挂。这就是典型的共因失效。

所以共因分析的目的,就是识别出那些会“一锅端”的因素,然后要么消除它,要么把它隔离掉,要么证明它的发生概率足够低。

2.2 共因分析的三种主流方法及其适用场景

在飞控领域,共因分析通常不是单一方法,而是一组方法的组合。我常用的有三种:

  • Zonal Safety Analysis(ZSA,区域安全性分析):把飞机或系统按物理区域划分,检查同一区域内不同冗余通道的部件是否存在相互影响。比如三个飞控计算机如果都装在同一个设备舱里,那这个舱内的火灾、振动、温度异常就是共因。ZSA的重点是物理隔离和环境影响。
  • Particular Risks Analysis(PRA,特定风险分析):针对特定的外部或内部风险源,比如鸟撞、转子爆破、电磁干扰、软件缺陷等,分析其对所有冗余通道的影响。PRA的关键是穷举风险源并评估其影响范围。
  • Common Mode Analysis(CMA,共模分析):这是最贴近“共因”本义的方法,重点检查冗余通道之间是否存在共同的设计、制造、维护、人员操作等因素。比如三个通道的软件是否由同一团队用同一工具链开发?是否共用同一个校准数据?CMA通常以检查单的形式进行。

这三种方法各有侧重,实际项目中往往需要组合使用。ZSA管物理层面,PRA管风险源层面,CMA管设计和流程层面。三者合起来,才能比较完整地覆盖共因失效的各个维度。

2.3 共因分析在适航体系中的位置

如果你做的项目需要适航取证,那共因分析不是可选项,而是必须项。以民用航空的适航要求为例,对于A级(灾难性)失效条件,不仅要求定量概率低于10的负九次方,还要求必须进行共因分析,证明冗余通道之间不存在未识别的共因失效路径。换句话说,你算出再小的概率,如果共因分析没做或者没做透,审查方也不会认可。

我个人的经验是,共因分析最好在架构设计阶段就介入,而不是等设计定型了再补。因为很多共因问题——比如电源分配、总线拓扑、软件分区——一旦架构定了,后期改起来成本极高。早期介入,哪怕只是画几张区域划分图、列一份共因检查单,都能帮你在后期省下大量的返工时间。

3. 故障树分析在飞控场景下的完整实操

3.1 从顶事件到底事件:故障树的构建逻辑

故障树分析的核心是从一个不希望发生的顶事件出发,逐层向下分解,直到找到底事件(基本事件)。在多余度飞控场景下,顶事件通常是“飞控系统丧失全部控制能力”或“飞控系统输出错误指令导致灾难性后果”。然后你需要问:什么情况下会发生这件事?答案可能是“所有冗余通道同时失效”或者“表决机制失效导致错误输出”。

继续往下拆:“所有冗余通道同时失效”可以分解为“共因失效导致所有通道同时挂”或“独立失效累积导致所有通道先后挂”。再往下,“共因失效”又可以分解为“共用电源失效”“共用总线失效”“共因软件缺陷”等等。每一层都用逻辑门(与门、或门)连接,最终形成一棵倒立的树。

这里的关键是逻辑门的选取。与门表示所有输入同时发生才导致输出,或门表示任一输入发生就导致输出。在冗余系统中,独立失效通常用与门(因为需要多个通道同时坏),而共因失效往往用或门(因为一个共因事件就能影响所有通道)。逻辑门选错了,整个定量分析就全错了。

3.2 定量分析中的参数选取与计算过程

故障树的定量分析需要每个底事件的失效概率。这些数据从哪来?通常有几个来源:元器件手册(如MIL-HDBK-217)、现场失效数据、供应商提供的FMEDA(失效模式、影响及诊断分析)报告、以及工程判断。对于飞控系统,我一般会优先采用供应商的FMEDA数据,因为它是针对具体器件的,比通用手册更准确。

拿到底事件概率后,按照逻辑门逐层计算。与门的概率是各输入概率的乘积(独立假设下),或门的概率是1减去各输入不发生的概率之积。举个例子:假设三个独立通道的失效概率都是10的负五次方,那它们同时失效的概率是10的负十五次方。但如果存在一个共因事件,其发生概率是10的负六次方,且一旦发生就导致三个通道同时失效,那系统总失效概率就是10的负六次方加上10的负十五次方,约等于10的负六次方。看到了吗?共因事件的概率直接主导了结果。

这里有个实操细节:共因事件的概率不能简单用独立假设去算。比如电源失效,你不能说三个通道各自电源失效概率相乘,因为它们可能是同一个电源。正确的做法是把共因事件作为一个单独的底事件,赋予它一个基于历史数据或工程评估的概率值。

3.3 定性分析:最小割集与共因路径识别

定量分析之外,故障树的定性分析同样重要。最核心的概念是最小割集(Minimal Cut Set)——导致顶事件发生的最少底事件组合。如果一个最小割集只有一个底事件,那意味着这个底事件单独发生就能导致顶事件,这是最危险的情况。在多余度系统中,理想情况下所有最小割集都应该至少包含两个或更多底事件(对应冗余设计)。

但共因失效往往会制造出“单点”最小割集。比如“共用电源失效”如果是一个底事件,且它单独发生就能导致所有通道失效,那它就是一个一阶最小割集。这时候你就需要重新设计,要么增加电源隔离,要么增加备用电源,把这个一阶割集变成二阶或更高阶。

我通常会把最小割集按阶数排序,重点关注一阶和二阶割集。一阶割集必须消除或证明其概率极低,二阶割集需要评估其组合概率是否满足要求。三阶及以上的割集通常可以暂时放一放,除非数量特别多。

4. 共因分析与故障树分析的联合工作流

4.1 数据流与接口:两种分析如何互相喂养

共因分析和故障树分析不是孤立的,它们之间有一条清晰的数据流。共因分析识别出的共因事件,会作为底事件输入到故障树中;而故障树定性分析发现的一阶割集,又会反过来提示共因分析需要重点检查哪些区域或风险源。这是一个迭代的过程。

具体来说,工作流大致是这样的:先做共因分析(ZSA、PRA、CMA),产出一份共因事件清单;然后把这份清单映射到故障树的底事件中,赋予相应的概率值;接着做故障树的定量和定性分析;如果发现某些割集阶数太低或概率太高,就回到共因分析,看看能否通过设计更改来消除或隔离这些共因;修改后再重新计算,直到满足安全目标。

这个迭代过程可能需要重复多轮,尤其是当架构有较大改动时。我建议把每一轮的共因清单和故障树模型都版本化管理,方便追溯和审查。

4.2 工具链选型:从手工表格到专业软件

早期做共因分析,很多人就是用Excel表格加检查单。故障树分析则用Relex、FaultTree+、或者Isograph这类专业软件。现在也有一些开源工具,比如OpenFTA,但功能和易用性参差不齐。

我的建议是:共因分析用结构化表格就够了,关键是检查项要全、记录要清晰。故障树分析如果规模不大(底事件少于100个),Excel也能凑合,但一旦超过这个规模,强烈建议上专业软件。因为手工计算最小割集和概率很容易出错,而且改一个参数就要重算一遍,效率太低。

另外,如果你需要做蒙特卡洛仿真来验证共因事件的概率分布,那就需要更复杂的工具了。不过对于大多数飞控项目,解析法(基于逻辑门计算)已经足够,蒙特卡洛更多是用在验证阶段。

4.3 迭代优化:从分析结果反推架构改进

分析的目的不是出一份报告,而是改进设计。我经历过一个项目,故障树分析发现“共用时钟源失效”是一个一阶割集,概率虽然低但不可忽略。后来架构改成了每个通道独立时钟,虽然增加了成本和重量,但消除了一阶割集,审查方也认可了。

另一个常见的问题是软件共因。如果三个通道运行的是同一份软件,那软件缺陷就是共因。解决办法通常是软件多样性——不同通道用不同团队、不同语言、不同算法实现相同功能。但这会大幅增加开发成本和验证难度。所以很多时候,项目会选择“单软件加严格验证”的路线,通过DO-178C等标准的高等级验证来降低软件缺陷概率,而不是做多样性。这个取舍需要根据项目具体的安全目标和成本约束来定。

5. 实操中的常见问题与排查技巧

5.1 共因事件遗漏:为什么你的检查单总是不够全

共因分析最容易犯的错误就是遗漏。我见过不少项目,检查单只覆盖了电源、总线、时钟这些显而易见的共因,却忽略了维护操作、环境应力、甚至标签错误这类“软”因素。比如维修人员把三个通道的校准数据搞混了,或者某个连接器插错位置,这些都可能造成共因失效。

我的经验是,共因检查单至少要覆盖以下几个维度:物理区域(ZSA)、外部风险源(PRA)、设计共性(CMA)、制造共性、维护共性、人员操作共性。每个维度下再细分具体检查项。而且检查单不是一次性的,每次设计更改或流程更改后都要重新过一遍。

5.2 故障树中的逻辑门误用与概率计算陷阱

逻辑门误用是故障树分析中的高频错误。最常见的是把本该用与门的地方用了或门,或者反过来。比如“两个独立通道同时失效”应该用与门,但有人会习惯性地用或门,导致概率被高估。另一个陷阱是共因事件重复计算——同一个共因事件在故障树的不同分支中被多次计入,导致总概率被高估或低估。

还有一个容易被忽略的点是失效概率的时间依赖性。很多底事件的失效概率不是常数,而是随时间变化的(比如磨损、老化)。如果故障树分析假设的是恒定失效率,那对于长期运行的系统,结果可能偏乐观。这时候需要用可靠性框图或者马尔可夫模型来补充。

5.3 数据来源不一致时的处理策略

不同来源的失效数据往往不一致。供应商说10的负六次方,现场数据算出来是10的负五次方,手册上又是10的负七次方。怎么办?我的做法是:优先采用现场数据,因为它是实际运行环境下的表现;如果没有现场数据,用供应商的FMEDA;如果两者都没有,才用通用手册。同时,我会做一个敏感性分析,看看概率值在合理范围内变化时,顶事件概率是否仍然满足要求。如果敏感性很高,那就需要更精确的数据或者更保守的设计。

5.4 审查方最常追问的几个问题

根据我的经验,审查方在共因分析和故障树分析上最常追问的问题包括:共因事件的概率依据是什么?最小割集的完整性如何保证?软件共因是如何处理的?维护操作共因有没有考虑?这些问题如果提前准备好答案,审查会顺利很多。我一般会准备一份“共因分析追溯表”,把每个共因事件对应的检查项、数据来源、处理措施都列清楚,审查时直接拿出来,效率很高。

6. 一个简化案例的完整推演

6.1 案例背景与架构描述

假设有一个三余度飞控系统,三个飞控计算机(FCC1、FCC2、FCC3)通过表决机制输出控制指令。每个FCC有独立的电源模块,但三个电源模块共用同一个供电总线。三个FCC之间通过交叉通道数据链(CCDL)通信。顶事件定义为“飞控系统输出错误指令且无有效通道纠正”。

6.2 共因分析识别出的关键共因事件

通过ZSA发现,三个FCC安装在同一个设备舱内,舱内温度控制失效会影响所有FCC。通过PRA发现,供电总线短路会导致三个电源模块同时失效。通过CMA发现,三个FCC的软件由同一团队开发,存在共因软件缺陷的可能。这三个共因事件被列入清单。

6.3 故障树建模与定量计算

故障树中,顶事件下分为“所有通道同时失效”和“表决机制失效导致错误输出”两个分支。“所有通道同时失效”下,共因事件(供电总线短路、设备舱温度失控、共因软件缺陷)用或门连接,独立失效用与门连接。假设共因事件概率分别为10的负六次方、10的负七次方、10的负六次方,独立失效概率为10的负五次方。计算后,共因导致的失效概率约为2.1乘以10的负六次方,远大于独立失效的10的负十五次方。结论是共因主导,需要优先处理。

6.4 改进措施与分析结果对比

针对供电总线短路,增加独立备用电池;针对温度失控,增加设备舱独立冷却;针对软件共因,引入软件多样性(两个通道用不同算法)。改进后重新计算,共因事件概率降至10的负八次方量级,顶事件总概率满足安全目标。这个案例说明,共因分析不是走形式,而是能实实在在指导架构改进的。

7. 我个人的几条实操心得

做这类分析,工具和方法固然重要,但更关键的是早期介入和迭代思维。我见过太多项目把共因分析当成取证前的一道手续,结果发现架构上存在根本性的共因问题,改起来伤筋动骨。如果能在概念设计阶段就做一轮粗略的共因识别,哪怕只是画几张区域图、列一份检查单,都能帮你在后期省下大量的返工时间。

另外,数据管理比想象中重要。共因事件清单、故障树模型、概率数据来源、版本变更记录,这些如果管理混乱,审查时就会非常被动。我习惯用一个简单的版本控制表来跟踪每次变更,谁改了什么、为什么改、影响是什么,一目了然。

最后,不要追求一次完美。共因分析和故障树分析都是迭代过程,第一轮肯定有遗漏、有错误。重要的是建立一个可持续的迭代机制,每次设计更改或数据更新后都能快速重新评估。这样,你的分析才不是一份死报告,而是真正支撑设计决策的活工具。

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

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

立即咨询