首页 理论教育 故障树分析的特点及困难

故障树分析的特点及困难

时间:2022-02-14 理论教育 版权反馈
【摘要】:由于故障树分析法是一种图形演绎法,是故障事件在一定条件下的逻辑推理方法。但是故障树分析法也有一些缺点,主要是建树烦琐,工作量大,因此易导致错漏。简单系统的故障树分析可以由人工来完成。此外,模块中应没有与故障树的其他部分相重复的事件。反映在原故障树中的则是相同的准底事件。因为在按原故障树进行计算时,相同的底事件的影响有可能相互抵消。该方法能够在重复事件较多时较为有效地缓解故障树分析时的NP困难。

6.7.1 故障树分析的特点

故障树分析法具有直观性强、灵活性大、通用性好等特点。

1)直观性强

由于故障树分析法是一种图形演绎法,是故障事件在一定条件下的逻辑推理方法。因此能把系统的故障与导致该故障的诸因素(直接的、间接的、硬件的、环境的和人为的)形象地表现为故障树。从上往下看,可以看出:系统故障与哪些单元有关系,有怎样的关系,有多大关系;从下往上看,可以看出:单元故障对系统故障的影响,有什么影响,影响的途径是怎样的,影响程度有多大。故障树分析法清晰地用图说明系统是怎样失效的,它也是系统某一个特定故障状态的快速照相。

2)灵活性大

故障树分析法不仅可以反映系统内的故障关系,而且能反映出系统外部的因素(环境因素和人为决策错误)对系统故障的影响。

3)通用性好

由于上述优点,因此,在设计阶段,可以使设计者弄清系统的故障模式、成功模式,发现单元故障的危害性、重要度,及时发现系统的薄弱环节,因此能及时修改设计,避免严重的返工,避免研制阶段的不安全,争取首次设计成功。从而缩短了研制周期和节省资源。对军工产品和复杂系统来说缩短研制周期尤其重要。因此对设计者来说,故障树分析法是一个好方法。对贮存和使用者来说,即使是未参加设计和建树过程,故障树可以当作形象管理树,是一种直观的教学和维修指南,从而可缩短培训周期。

故障树分析法还适用于分析国民经济大系统的运行,对社会问题、军事行动决策等方面也很有帮助。

但是故障树分析法也有一些缺点,主要是建树烦琐,工作量大,因此易导致错漏。现在虽然有了一些计算机程序,但尚无通用程序;大型复杂系统的故障树占用计算机内存单元和机时很多,需进一步研究简化的问题。

6.7.2 故障树分析的NP困难

简单系统的故障树分析可以由人工来完成。当遇到比较复杂的系统时,人工计算不仅费时而且很难保证其准确性,必须依靠计算机来计算。

用计算机解数学问题时,首先必须把初始数据和必要的说明用二进制数表示并输入计算机。这样输入到计算机所需的内存单元的数目就称问题的规模,常用L表示。而解题所要进行的加、减、乘、除和比例等基本操作的总数就称计算量,常用T(L)来表示。当计算量随计算规模以幂函数形式增长,即

T(L)=0(Lk) (k为正整数)

时,称为多项式算法,是一种比较“好”的或是比较“快”的算法。在计算复杂性理论中,人们把在确定性计算机(现实计算机)上时法具有多项式算法的问题称作P问题(polyno-mial problem)。解决这类问题用现实计算机是可以应付的。当计算量随计算规模以指数函数形式增长,即

T(L)=0(2kl) (k为正整数)

时,计算量随计算规模增长的速度远大于P问题的增长速度。这对现实计算机的容量和运算速度都是一个挑战。在研究这一类问题时,人们提出了一种假想的具有推测和判断能力的计算机——非确定性计算机,如果某问题在非确定性计算机上具有多项式算法,则称这些问题为NP问题(nondeterministic polynomial problem)。

为了形象地说明NP问题,可以观察如图6-41所示的探索树。

在如图6-41所示的各条路中,D0→D2→D5为成功的路径。对于假想计算机来说它能猜到这条路,因而只要计算D0、D2和D5即可。但对现实计算机来说,似乎只有通过探索所有可能的路径才能保证成功。因此,计算量呈指数增长,这就是NP问题的特征。NP问题究竟在现实计算机上是否存在多项式算法,理论上既未证明,又未否定。但大量直觉使得许多科学家做出这种猜测:NP问题在现实计算机上不存在多项式算法。因而,在现实中,这一类问题就形成了一种特殊的计算困难——NP困难。


图6-41 探索树

6.7.3 NP困难的缓解方法

1)模块分解法

在故障树分析中,如果用故障树的基本事件和逻辑门的数目来表示故障树的规模,则故障树分析的计算量随故障树规模的加大而呈指数增长。这就是故障树分析的NP困难。NP困难带来的直接困难是对于较复杂的故障树来说,借助于一般计算机无法对其进行分析。在现有的技术水平下,严格地说没有什么方法能解决NP困难,但有很多方法能缓解NP困难。模块分解法就是在一定范围内缓解NP困难的一种有效方法。

故障树的模块是至少有两个基本事件的集合。这些事件向上可到达同一个逻辑门,并且必须通过此门才能到达顶事件。这一必须通过的逻辑门称模块的输出或顶点。此外,模块中应没有与故障树的其他部分相重复的事件。否则在进行逻辑处理时不易考虑其相关特征。

故障树的模块可以从整个故障树中分割出来,像一棵小故障树一样单独地枚举最小割集,单独地计算顶点的发生概率。而在原故障树中,可以用一个“准底事件”来代替这个分解出来的模块,“准底事件”的发生概率即是这个模块顶点的发生概率。

这样,经过模块分解后,故障树的有效规模等于剩余基本事件的个数和“准底事件”个数之和。它显然小于原故障树的规模,因此,计算量也将按指数函数形式下降,至于那些分解出来的模块,由于规模小,计算量不大,必要时这些模块还可以进一步分解以简化计算。

经过这样的模块化分解后,总的计算量是不是比原来小呢?

设某故障树具有m+n个基本事件,其计算量为2m+n。现分解出一个含有n个基本事件的模块,则总的计算量变为2m+1+2n。求比例k:

当n≥2,m≥4时,k≥16/9。且随着n和m增大,比值k还将增大。当n≥11,m≥10时, k=29。这说明进行模块化分解后,总的计算量比分解前的总的计算量要小得多。

像一棵故障树中允许有相同的底事件一样,一棵故障树中也允许有相同的模块。反映在原故障树中的则是相同的准底事件。但一个模块中不允许有和原故障树中相同的事件。因为在按原故障树进行计算时,相同的底事件的影响有可能相互抵消。而化为模块以后,这样的相互影响就显示不出来了。因而,在有和别的地方相同的底事件的地方,原则上不能进行模块化。如果把此处的故障树改造一下,使之不含重复事件,则模块化照样可以进行。

在图6-42(a)中,若选择门V作为模块的顶点,则在模块中含有和原故障树中相同的事件x3。原则上此处不宜进行模块化。但如果按照图6-42(b)的方式将原故障树改造一下,将门V分解成为门V′和门V″,V″下不含和原故障树中相同的事件,因而可以在V″以下进行模块化。这种改造方法称为割顶点法。

图6-42 割顶点法

若仅仅遇到一二处重复事件,则对故障树实施“割顶点”法还是比较方便的。但当故障树有多处重复事件时,一个一个地去割顶点未免还是太繁。1982年,廖炯生发明了故障树分析的新途径——早期不交化方法。该方法能够在重复事件较多时较为有效地缓解故障树分析时的NP困难。

2)早期不交化方法

早期不交化的基本思路在于早去复枝。为了达到这个目的,廖烔生建立了各种逻辑门的不交布尔代数运算规则,从而提出了故障树分析的新途径。早期不交化的依据是下述的引理和定理。

引理 没有重复事件的故障树用下行法或上行法求得的全部布尔视在割集即是系统的全部最小割集。

证:设所求得的布尔视在割集中有一个不是最小割集。为不失一般性,可将该割集记作MA={xi,xj,xk}。则根据最小割集的定义可以断言,在所求得的全部布尔视在割集中一定有另一个最小割集存在,其中元素必是xi、xj和xj中的某一个或两个,如MB={xi}。则根据上行法和下行法的法则可知,这个xi显然是重复出现在不同的逻辑输入端的。这样,与题设的“没有重复输入事件”的前提相矛盾。因而,没有重复事件的故障树的布尔视在割集就是最小割集。另一方面,布尔视在割集是用上行法或下行法处理故障树的全部逻辑门和全部基本事件的结果。所以,不存在布尔视在割集之外的最小割集。因而,引理成立。

定理1 没有重复事件的故障树经过不交型规则处理后所求得的全部布尔视在割集即是全部不交型最小割集。其逻辑和即是不交型故障树的结构函数。

证:根据引理,没有重复事件的故障树的全部布尔视在割集即是全部最小割集。考虑到已经不交化,这些最小割集都是互不相交的,用这些不交型最小割集表示的结构函数应是不交型故障树的结构函数。而系统全部最小割集的逻辑和即是故障树的结构函数,因而,不相交的全部最小割集的逻辑和即是不交型故障树的结构函数。定理1成立。

定理2 有重复事件的故障树,运用不交型运算法则求得的全部布尔视在割集经过等幂(xx=x)和相补(xx′=0)运算后,即得到全部最小割集的不交形式,其逻辑和即为不交型故障树的结构函数。

有兴趣的读者可自己证明。

根据引理、定理1和定理2,我们可以知道,若有了不交型故障树就可以按照一般故障树的处理方法求得全部不交型最小割集以及不交型故障树结构函数,进而方便地求出系统的不可靠度和可靠度。这样,问题的焦点就转移到如何构造不交型故障树上面来了。

故障树是通过一个个逻辑门来表示各事件之间的逻辑关系的。因而,不交型故障树的构造是通过对原故障树的逻辑门及输入事件的改造来实现的。当遇到原故障树中的逻辑“与”门时,其代表的运算是逻辑“积”运算[见图6-43(a)],不属于不交化的范围,此逻辑门及其输入输出均不变。当遇到原故障树中的逻辑“或”门时,其代表的运算是逻辑“和”运算[见图6-43(b)],属于不交化范围,其不交化算式为

x1∪x2=x1+x′1x2

图6-43 逻辑“积”与逻辑“和”运算

设这个“或”门为Gi,Gi之下有n个输入,其中k个底事件,n-k个为逻辑门,对Gi进行不交化后,其输入仍为n个,但除第一个输入xi1保持不变外,其余n-1个输入均变为了新增加的“与”门。这些“与”门的输入为

(x′i1,xi2

(x′i1,x′i2,xi3)……

(x′i1,…,x′ik-1,x′ik,G′i1,…,G′in-k-1,G′in-k

这样,逻辑门Gi的数学表达式可写成

Gi=xi1∪x′i1xi2∪…∪x′i1x′i2…x′ikG′i1…Gin-k

这就是逻辑门Gi的不变型数学表达式,这表明用上述法则对故障树进行不交化改造和对原故障树求出的结构函数再进行不交化是等价的。这样的处理方法就是早期不交化方法。

是不是早期不交化算法对所有故障树的计算都能起到节省时间以缓解NP困难的效果呢? 做出肯定回答可能为时尚早。大量计算表明,在重复事件较多且“或”门较多时,可以收到比较好的效果。反之则效果不佳。有时甚至比普通计算用时还多。因为在“或”门较少时,普通方法求出的最小割集基本上就是不交化最小割集,进行不交化的工作量并不大,若用早期不交化方法来计算,计算机要一个一个门去查,这样反而会用掉更多的时间。因此,虽然有早期不交化法,但不可到处滥用,否则可能是自找麻烦。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈