故障树分析

故障树分析（英语：Fault tree analysis，简称 FTA）是由上往下的演绎式失效分析法，利用布林逻辑组合低阶事件，分析系统中不希望出现的状态。故障树分析主要用在安全工程以及可靠度工程的领域，用来了解系统失效的原因，并且找到最好的方式降低风险，或是确认某一安全事故或是特定系统失效的发生率。故障树分析也用在航空航天、核动力、化工制程、制药、石化业及其他高风险产业，也会用在其他领域的风险识别，例如社会服务系统的失效。故障树分析也用在软件工程，在侦错时使用，和消除错误原因的技术很有关系。

在航空航天领域中，更广泛的词语“系统失效状态”用在描述从底层不希望出现的状态到最顶层失效事件之间的故障树。这些状态会依其结果的严重性来分类。结果最严重的状态需要最广泛的故障树分析来处理。这类的“系统失效状态”及其分类以往会由机能性的危害分析来处理。

## 用途

故障树分析可以用于：

- 了解最上方事件和下方不希望出现状态之间的关系。
- 显示系统对于系统安全/可靠度规范的符合程度。
- 针对造成最上方事件的各原因列出优先次序：针对不同重要性的量测方式建立关键设备/零件/事件的列表。
- 监控及控制复杂系统的安全性能（例如：特定某飞机在油料阀x异常动作时是否可以安全飞行？此情形下飞机可以飞行多久？）
- 最小化及最佳化资源需求。
- 协助设计系统。故障树分析可以作为设计工具，创建输出或较低层模组的需求。
- 诊断工具，可以用来识别及修正会造成最上方事件的原因，有助于创建诊断手册或是诊断程序。

## 方法论

许多工业及政府的技术标准中都有提到故障树分析的方法论，包括核能产业的NRC NUREG–0492、美国国家航空航天局针对航天修改的NUREG–0492版本、汽车工程师协会（SAE）针对民用航空器的ARP4761、军用的MIL–HDBK–338、IEC标会IEC 61025，故障树分析已用成许多产业中，也被采纳为欧盟标准EN 61025。

系统复杂到一个程度，就可能会因为一个或是多个子系统失效而让整个系统失效。不过整体失效的可能性可以透过系统设计的提升来降低。故障树分析利用建置整个系统的逻辑图示，来找到失效、子系统以及冗余安全设计元件之间的关系。

不想出现的结果会放在失效树的根（最上方事件），例如金属冲压程序中不想要出现的结果是工人的肢体受到冲压。在最上方事件进行分析后，可以确认有上述事件可能会以二种不同的方式出现：正常操作时以及维修时。这二个在逻辑上的关系是OR。在正常操作的分析可能也可能确认出二种不同的情形：冲压行程中，伤害到操作员，另一个是冲压行程中，伤害到其他人。这二个在逻辑上的关系也是OR。可以在设计上改善此一情形，例如修改程式，让操作员需要用双手同时按二个按钮才能启动冲压程序，这二个在逻辑上的关系是AND。按钮本身也有其固有的失效率，这个变成一个可以分析的失效来源。若故障树上标示了每个失效的实际几率值，可以用计算机程序计算故障树的失效可能率。

若有某个特定事件有出现在结果事件中，也就会它会影响多个子事统，这个称为共因（common cause）或共同模式（common mode）。若用图的角度来说，就是一个事件会在故障树中多次出现。共因会带来事件之间的相依关系，这种故障树的几率计算会比所有事件都独立时的故障树几率计算要复杂。市面也不是所有故障树分析的软件都能进行这类的计算。

故障树一般会用传统的逻辑闸符号表示，故障树中从初始事件（initiator）到事件之间的路径称为分割集合（cut set）。从初始事件到事件之间的最短可能路径称为最小分割集合（Minimal Cut Set）。

有些产业会同时用故障树及事件树（参考概率风险评估及事件树分析）。事件树从不希望出现的初始事件（initiator）（例如停电、元件失效等）开始，根据可能的系统事件而到一系列的最终结果。每多考虑一个新事件，就要在树上增加一个节点，再列出各分枝的几率。“最上方事件”的几率就会由各初始事件的几率计算而得。

标准的故障树分析程式包括电力研究所（EPRI）的CAFTA软件，美国有许多核电厂使用，美国政府评估核反应堆、航天飞机及国际空间站的安全性及可靠则是利用爱达荷国家实验室的SAPHIRE软件。美国以外的地区，RiskSpectrum是常用的故障树及事件树分析工具，世界上几乎有半数核电厂为了概率安全评估的需求而注册此软件使用。

## 符号

故障树分析的符号可以分为事件、闸以及转移符号。不同的故障树分析可能会有一些差异。

### 事件符号

事件符号用来表示主要事件（primary events）以及中间事件（intermediate events）。主要事件在故障树上不会继续展开，中间事件会在闸的输出端出现。其符号如下：

<image>

- 基本事件

<image>

- 外部事件

<image>

- 未发展事件

<image>

- 条件性事件

<image>

- 中间事件

主要事件的符号的规则如下：

- 基本事件：系统元件或是单元的失效或是错误（例如：开关卡在打开的位置）
- 外部事件：一般预期事件会发生（本身不是一个失效）
- 未发展事件：事件的相关资讯不明，或是没有后续影响
- 条件式事件：一些会影响或是限制逻辑闸的条件（例如：目前运作的模式）

中间事件的闸可以直接接在主要事件的上面，可以保留更多空间作事件的描述。

### 闸符号

闸符号描述输入及输出事件的关系，这些符号是衍生自布林逻辑符号。

<image>

- 或（OR）闸

<image>

- 及（AND）闸

<image>

- 互斥或（Exclusive OR）闸

<image>

- 优先及（Priority AND）闸

<image>

- 禁止闸

闸运作的方式如下：

- 或闸：若发生任何一个输入事件，输出事件也会发生
- 及闸：若发生所有的输入事件，输出事件才会发生
- 互斥或闸：若输入事件中恰好有一个发生，输出事件就会发生
- 优先及闸：若输入依照条件式事件指定的顺序出现，输出事件就会发生
- 禁止闸：若在某条件式事件指示有效时，发生输入事件，输出事件就会发生

### 转移符号

转移符号用来连接相关故障树的输入及输出，像是子系统的故障树及系统的故障树。

<image>

- 转移进入

<image>

- 转移出去

## 基本数学基础

故障树分析中的事件和统计学的概率论有关。例如元件失效一般会有固定的失效率 λ（危害函数为定值）。在这个最简单的例子中，失效几率跟失效率λ 和持续时间t有关：

P = 1 - exp(-λt)

P ≈ λt, λt < 0.1

故障树分析会根据特定的时间区间来正规化，例如飞行时数或是平均发射时间。事件几率和这段时间内的危害函数有关。

传统的逻辑闸，其输入及输出都是二进制，不是真（1）就是伪（0），但故障树中的闸输出几率和逻辑代数中的集合代数有关，闸输出事件的几率和闸输入事件的几率有关。

及闸表示是独立事件的组合。及闸中任何一个输入事件的几率不受其他输入事件的影响。在集合论的术语中，这等效于输入事件集合的交集，及闸输出的几率是：

P (A and B) = P (A ∩ B) = P(A) P(B)

相反的，或闸表示是两个输入事件集合的联集：

P (A or B) = P (A ∪ B) = P(A) + P(B) - P (A ∩ B)

因为故障树分析中的失效几率一般都很小（小于0.01），P (A ∩ B)多半会变成非常小的项次，而或闸一般会假设两个输入可以近似为互斥事件，因此输出几率会比较简单：

P (A or B) ≈ P(A) + P(B), P (A ∩ B) ≈ 0

二个输入的互斥或闸表示其中只有一个成立的几率：

P (A xor B) = P(A) + P(B) - 2P (A ∩ B)

因为P (A ∩ B)数值多半很小，互斥或闸近似于或闸，在故障树分析中不常用到。

## 分析方式

故障树分析有许多不同进行的方式，不过最常见也最多人使用的方式可以整理成几个步骤。一个故障树可以分析一个不想要的事件（或是最上方事件），也只能分析一个。其结果可以连接到其他的故障树去，成为基本事件。虽然不想要事件的本质可能有很大的差异，事件可能是发电系统晚了0.25ms发电，未检测到的货舱失火，或是洲际导弹随机的意外发射等，但其故障树分析的程序都相同。因为人力成本的考量，一般只会对不想要事件中最严重的进行故障树分析。

故障树分析可以分为五个步骤：

- 定义要探讨的不想要事件
- 不想要事件的定义可能非常困难，不过也有些事件很容易分析及进行观察。充分了解系统设计的工程师或是有工程背景的系统分析师最适合定义及列举不想要的事件。不想要的事件可以用来进行故障树分析，一个故障树分析只能对应一个不想要的事件。
- 获得系统的相关资讯
- 若选择了不想要的事件，所有影响不想要事件的原因及其发生几率都要研究并且分析。要得知确切的几率需要很高的成本及时间，多半是不可能的。电脑软件可以用来研究相关几率，可以进行成本较低的系统分析。系统分析师可以了解整个系统。系统设计者知道有关系统的所有知识，这些知识相当重要，可以避免遗漏任何一个会造成不想要事件的原因。最后要将所有事件及几率列出，以便绘制故障树。
- 绘制故障树
- 在选择了不想要的事件，并且分析系统，知道所有会造成此事件的原因（可能也包括发生几率），就可以绘制故障树了。故障树是以或闸及及闸构成，定义故障树的主要特性。
- 评估故障树
- 在针对不想要的事件绘制故障树后，需评估及分析所有可能的改善方式，换一个方式来说，是进行风险管理，并且设法改善系统。这个步骤会导入下一个步骤，也就是控制所识别的风险。简单来说，此一步骤会设法找出降低不想要的事件发生几率的方式。
- 控制所识别的风险
- 此步骤会随系统而不同，但主要重点是在识别所有风险后，确认有使用所有可行的方来降低事件的发生率。

## 和其他分析方式的比较

故障树分析是演绎推理，是从上到下的方式，分析复杂系统初始失效及事件的影响。故障树分析恰好和失效模式与影响分析（FMEA）相反，FMEA是归纳推理，是从下到上的方式，分析设备或是子系统的单一元件失效或是机能失效的影响。故障树分析若用来分析系统如何避免单一般（或是多重）初始故障发生，是很好的工具，但无法用故障树分析找到所有可能的初始故障。FMEA可以用穷举的方式列出所有的初始故障，并识别其局部的影响，不适合用来检验多重失效，或是他们对系统层级的影响。故障树分析会考虑外部事件，而FMEA不会在民航机产业常会同时使用故障树分析及失效模式与影响分析，并且用故障模式效应概述（failure mode effects summary, FMES）作为两者的界面。

其他可以取代故障树分析的分析方式有可靠度方块图（RBD，也称为相依图dependence diagram，简称DD）及马尔可夫链。可靠度方块图等效于成功树分析（STA），在逻辑上恰好和故障树分析相反，而且用路径来代替闸。相依图和成功树分析成功（避免不想要事件）的几率，而不是不想要事件发生的几率。

## 历史

故障树分析（FTA）一开始是由贝尔实验室的H.A. Watson所发展的，一开始是因为美国空军第526 ICBM系统群的委托，要评估义勇兵一型洲际弹道导弹（ICBM）的发射控制系统。之后故障树分析开始成为可靠度分析者进行失效分析的工具。1962年义勇兵一型洲际弹道导弹的发射控制安全研究，第一次公布使用故障树分析技术，之后波音及Avco在1963年至1964年开始将故障树分析用在义勇兵二型的完全系统上。在1965年由波音及华盛顿大学赞助，在西雅图进行系统安全研讨会中，广泛的报导了故障树分析的相关技术。波音公司在1966年开始将故障树分析用在民航机的设计上。

之后，美国军方的皮卡汀尼·阿森纳在1960及1970年代开始将故障树分析用在引线的应用上。美国陆军装备司令部在1976年代开始将故障树分析整合到可靠度设计工程设计手册（Engineering Design Handbook on Design for Reliability）中。罗马实验室的可靠度分析中心以及后续在美国国防技术资讯中心下的组织自1960年代起出版了故障树分析及可靠度方块图的文件。MIL-HDBK-338B中有更近期的参考资料。

美国联邦航空管理局（FAA）在1970年在联邦公报35 FR 5665（1970-04-08）中发布了14 CFR 25.1309的修订，是针对运输类航空器适航性的规定。这项修订采用了飞机系统及设备的失效几率准则，因此民航机业者开始普遍使用故障树分析。FAA在1998年发行了Order 8040.4，建了包括危害分析在内的风险管理政策，包括了在飞机通过认证之后的许多关键活动，包括航空交通管制及美国国家空域系统的现代化，后来美国联邦航空管理局也出版了FAA系统安全手册（FAA System Safety Handbook），其中描述了许多正式危害分析的方式，其中也包括了FTA的使用。

在美国的阿波罗计划初期，就已经针对将太空人送到月球，并且平安返回地球的可能几率进行分析。根据一些风险（或可靠度）计算的结果，任务成功的几率低到无法让人接受。因此NASA就不进行后续的定量分析或是可靠度分析，只依靠失效模式与影响分析及其他定性的系统安全评估工具，一直到发生挑战者号事件为止。之后NASA体验到故障树分析及概率风险评估（PRA）在系统安全及可靠度分析上的重要性，开始广为使用，后来故障树分析变成最重要的系统可靠度及安全分析技术之一。

在核能产业中，美国核能管理委员会在1975年开始使用包括故障树分析在内的概率风险评估（PRA），在1979年的三哩岛核泄漏事故后，大幅扩展了概率风险评估的相关研究。最后美国核能管理委员会在1981年出版了NRC Fault Tree Handbook NUREG–0492，也在核能管理委员会管辖的范围内强制使用概率风险评估技术。

在1984年博帕尔事件及1988年阿尔法钻井平台爆炸等工安事件后，美国劳工部职业安全与健康管理局 (OSHA) 在1992年在发布了联邦公报57 FR 6356（1992-02-24），其中提到19 CFR 1910.119中的流程安全管理（PSM）标准职业安全与健康管理局的程序安全管理系统将故障树分析视为是流程危害分析（PHA）的一种可行作法。

目前在系统安全及可靠度分析中广为使用故障树分析，故障树分析也应用在所有主要的工程领域中。