陶 军,聂 飞,邹俊逸
(武汉科技大学 汽车与交通工程学院,湖北 武汉 430065)
随着现代科技的迅速发展和工程系统日益复杂化,系统可靠性和安全性的要求越来越严格。确保系统的稳定运行并预防潜在故障事件的发生,成为工程领域至关重要的任务。故障树分析(Fault Tree Analysis,FTA)[1-2]是一种被广泛应用于安全可靠性评估的方法,能够帮助识别和分析系统中的潜在故障和事件,以评估系统的可靠性并采取相应的预防措施[3]。然而,传统手工构建故障树的方法存在诸多缺点[4]。例如,手工建树过程容易出现主观偏差,且对复杂系统而言耗时较长。此外,传统方法在大规模系统中往往难以处理大量故障事件的组合爆炸问题[5],限制了分析的全面性和准确性。特别是对于具有复杂结构的系统,如大型工业装置或汽车电子控制系统,手工构建故障树的困难性进一步增加。即使是拥有可靠性知识的专业人员,也难免出现遗漏或错误,并且建树的结果可能因人而异,导致“百人千树”的局面出现。
为了解决上述问题,近年来国内外出现了一些关于故障树自动建树方法的研究。胡杰鑫等人通过探索FMECA[6]与FTA[7]之间信息的关联性,结合了这两种分析方法,建立了一套基于FMECA自动绘制故障树的方法[8],并开发了相关的计算机辅助软件,但其研究对象只是具体的机械结构,且只考虑了“或门”,所开发的软件也只能以简单图表的方法显示故障树。宛伟健等人提出了一种基于系统GO图[9]自动生成故障树的方法[10],但只适用于简单的串并联系统,对于具有反馈控制或其他复杂结构的大型复杂系统,故障树生成会陷入死循环,无法实现故障树的自动生成。展万里等人利用故障树分析(FTA)方法来分析系统中不希望出现的状态,并在此基础上设计了一种自动构造系统故障树的算法。该算法以AltaRica[11-12]语言为基础,采用Guarded Transition Systems(GTS)作为语义模型[13],并通过断言传播算法生成完整的系统故障树,但最终是以表格的形式显示建树结果,建树结果可视化效果不佳,且无法实现具有复杂结构系统故障树的自动建造。
针对传统手工构造故障树的困难,该文提出一种系统规范化的描述方法,并以此为基础,实现对元部件模型的封装,开发一种新型的故障树自动建树及分析软件,实现故障树自动建树到分析的全自动一体化。
为了实现故障树的自动建造,需要对系统及其各个元部件的正常工作模式和非正常工作模式进行规范化的描述。这种描述可以简化计算机的识别与处理过程,并确保故障树自动化构建的准确性和可靠性。
元部件模型是描述元部件自身局部的输入、输出变量间的关系,包括处于正常状态及非正常状态(失效模式)时的关系。在传统的可靠性理论中,部件的状态一般被简化为只有正常和故障两种状态。这种简化虽然方便了建树流程但丢掉了部件失效过程中大量的物理属性,导致所建立的故障树不够准确,进而影响后续的可靠性分析评估与实际结果相差较大。
因此,不考虑部件具体的故障事件,用输出变量偏离正常值的程度表示系统的故障,来实现系统元部件的规范化描述。考虑到元部件具有多态性,可将输出变量可能发生的所有偏差W与正常值相比划分为5个不同的等级。具体划分如表1所示。
表1 输出变量偏差等级划分
系统结构模型是用于描述系统的形态和构造的一种规范化表示方法。它利用系统中各部件的输入和输出变量之间的连接关系,清晰地展示了系统的组成部件以及它们与环境变量之间的相互联系[14]。这种连接关系清楚地反映出信号在系统中传播的路径。用户可以通过系统的工作原理图来确定各元部件之间的连接方式。它们从元部件模型库中拖拽相应的元部件,并通过元部件之间的输入输出关系将它们连接起来,从而构建出系统结构模型。如果所搭建的系统具有复杂结构,只需将相应的复杂标识符拖放到适当的位置即可。通过这种拖拽现有元部件库模型的方法,用户能够快速、准确地建立系统结构模型。简而言之,系统结构模型的搭建过程直观且便捷,使用户能够以准确的方式构建出系统的结构模型,即使是缺乏可靠性专业知识的人员也能够轻松应用这种方法。
每个元部件模型在数据库中都有一个对应的描述文件。该描述文件的内容由元部件模型的基本信息、正常模式属性、失效模式属性组成。以一个制动总泵元部件模型为例,其所对应的描述文件如图1(左)所示,文件包含了该部件名称、编号、输入输出变量等基本属性以及各失效模式状态下输入输出变量的偏差等属性信息。当用户从元部件模型库中选择一个元部件模型并将它拖拽出,根据该模型所对应的描述文本文件提取出部件模型的全部信息,并创建出一个元部件模型实例对象。用户可以通过该实例对象的属性窗口,以图形化的方式查看该元部件的所有属性。该属性窗口如图1(右)所示,提供了直观的界面,使用户能够方便地浏览和了解元部件的各种属性。为了确保考虑到元部件所有的故障类型,元部件模型库可由部件厂商来构建,可靠性工程人员辅助构建。同时,对于新的元部件模型,只需要导入相应的描述文件,即可在元部件模型库中增加对应的元部件模型。最终构建的模型库如图2所示。
图1 描述文件(左)与实例对象(右)
图2 元部件模型库
在故障树建造的过程中,简单的串并联系统自动建树十分简单,只需从顶事件搜索,直到没有中间事件就完成该系统的故障树自动构建。但大多数系统存在负反馈、前馈等复杂结构,为了避免建造过程陷入死循环从而构建出正确规范的故障树,需要对系统中的复杂结构进行识别与处理[15]。
为了能够识别系统中的复杂结构,引入一种复杂标识符的概念。每一种复杂结构都构建一个与之对应的复杂结构标识符模块,从而形成复杂标识符库。当所搭建的系统结构模型中具有复杂结构时,只需将与复杂结构相对应的标识符模块拖拽到系统中相应的位置连接起来即可。系统通过识别复杂标识符模块识别故障树中的复杂结构,再根据该复杂结构所对应的算法进行相应的处理,可生成最终的故障树。复杂标识符模块在系统中实际是不存在的,故用虚框表示。系统的复杂标识符库如图3所示。
图3 复杂标识符库
基于Python和Qt设计的故障树自动建树及分析软件,具有搭建系统结构模型、自动构建故障树、复杂结构识别与处理和故障树分析等功能,实现了自动建树到分析的一体化。其操作基本流程如图4所示,主要分为以下六个基本步骤:
图4 故障树自动建树及分析流程
步骤1:搭建系统结构模型。用户根据所要搭建的系统工作原理图,从元部件模型库、复杂标识符库中拖拽相应的元部件模型及复杂标识符模块,再根据各部件间输入、输出变量关系连接各元部件即可搭建出完整的系统结构模型;
步骤2:导出系统结构模型信息。为了后续系统模型规范化文件的自动生成,需要通过mxGraph的API接口以xml文件格式导出系统结构模型的全部信息;
步骤3:自动生成规范化文件。根据软件内部设计好的文件转换算法将xml文件自动转换成规范化的系统结构模型关系表和元部件模型表,并生成相应的excel表格文件,以方便软件在自动建树过程中的识别与调用;
步骤4:指定顶事件。当用户指定顶事件后,该软件会根据内部已封装好的自动建树算法,通过遍历系统结构模型关系表、元部件模型表,找到导致顶事件发生的下一级事件,自动构建出故障树。若系统存在复杂结构,则根据内部的复杂结构识别与处理算法进行相应的处理后,再自动生成最终正确的故障树;
步骤5:故障树文本格式输出。为了后续的故障树分析,需要将故障树的结构以文本格式输出;
步骤6:故障树定性、定量分析。导入故障树文本结构后,软件可以自动求解故障树的最小割集。同时可采用Monte Carlo法对所构建的故障树进行可靠性分析,通过设定相应的仿真参数,求解系统的可靠度及各部件重要度等可靠性指标。
本节将以汽车上的ABS系统为例,对软件整个自动建树及分析流程进行详细的说明。
步骤1:在软件的搭建模型界面,用户可根据ABS系统的功能框图,从模型库中拖拽出ABS系统的各元部件,将各部件对应的输入、输出连接起来,进而构建出ABS系统结构模型(见图5)。因为该系统中存在负反馈,故需要从复杂标识符库中拖拽NFBL(负反馈)标识符模块到系统相应的位置。
图5 搭建ABS系统结构模型
步骤2:将搭建好的ABS系统结构模型以xml文件(见图6)格式输出。同时,导入相应的结构模型(xml文件),软件会自动生成结构模型,方便系统模型的二次修改。
图6 ABS系统结构模型xml文件
步骤3:在模型文件导入界面,将系统结构模型xml文件导入后,软件会根据内部封装好的规范化文件自动生成算法将该xml文件自动转换成规范化的系统结构模型关系表和部件模型表,如图7所示。
图7 模型文件导入软件界面
步骤4:用户在自动建树软件的生成中间树、故障树界面,输入顶事件V1(车轮速度过高)后,会自动构建出以车轮速度过高为顶事件的故障树。因为该系统中存在负反馈复杂结构,故所建立的故障树为一中间树,需要对其负反馈复杂结构进行识别与处理,即根据软件内部的NFBL所对应的负反馈回路处理算法对中间树中的NFBL回路处理后,再自动构建出最终正确的故障树,并将建树结果在窗口界面可视化,方便用户直观地了解建树结果,如图8所示。
图8 自动建树界面
步骤5:用户导出故障树的文本结构,求解最小割集。并可运用Monte Carlo法对所建造的故障树进行可靠性仿真分析,通过设置相应的仿真参数,求解该系统的可靠度以及相应的可靠性指标。通过仿真,得到了1 000次抽样仿真的系统故障时间、各区间故障次数、可靠度,以及各元部件的重要度,如图9所示。
图9 故障树分析界面
由整个实例应用流程可知,该软件具备搭建系统模型、导入结构模型、自动生成规范化关系表和部件模型表、自动建树及分析等功能,能够实现从搭建系统模型到自动建树及可靠性分析过程的全自动化,大大简化了系统建树过程,节省了大量手动操作的时间,提高了工作效率。同时,软件内部的复杂结构识别与处理算法有效地解决了复杂结构下的建树问题,避免了繁琐的手动处理,进一步提升了工作效率,为系统可靠性分析与评估工作提供了便利。
该文介绍了一种故障树自动建树及分析软件的实现方法。通过规范化描述元部件及系统结构模型,并针对复杂系统中复杂结构的识别与处理,提出一种复杂标识符的概念,建立了元部件模型库和复杂标识符库,成功实现了故障树自动建树及分析软件的开发与应用。通过对汽车ABS系统实例的详细说明,验证了该软件能够实现系统结构模型搭建、故障树自动构建及可靠性分析的一体化。相较于传统的手工构建故障树方法,该软件减轻了工程师的负担,提高了建树效率。此外,该软件能够处理复杂结构的故障树,对于已建成具有成千上万元件的复杂系统该软件可以实现其复杂系统的可靠性分析,便于系统可靠性设计、故障分析等,具有广泛的应用前景,对系统可靠性分析的推广亦具有重要意义。