一种故障树数据的存储方法及读取方法与流程

文档序号:11590574阅读:291来源:国知局

本发明涉及数据存储技术领域,更为具体来说,本发明为一种故障树数据的存储方法及读取方法。



背景技术:

故障诊断对大型装备与系统的保障与维护起着重要作用。故障诊断的基本原理是:利用对象领域的人工或专家知识,快速定位、排查对象故障原因,所以,如何有效地提炼、描述、检索不同对象领域的人工专家知识是故障诊断里的关键技术之一。鉴于此,故障树是目前应用最广泛的故障诊断专家知识表述形式,其对专家知识的描述具有简洁明了、形象直观等特点。

故障诊断系统需要将故障树数据存储到计算机系统中,但是故障树是对知识的描述,所以其本身存在着一个不断积累和完善的演化过程,随着数据存储数量不断增加,传统的故障树存储方法难以兼顾可扩展性、数据冗余度、数据检索速度等多方面,往往是顾此失彼。

因此,如何优化故障树数据的存储成为了本领域技术人员亟待解决的技术问题和始终研究的重点。



技术实现要素:

为解决现有故障树数据的存储方法存在的可扩展性差、数据冗余度高、数据检索速度慢等问题,本发明提出了一种采用面向对象设计思想的新数据存储结构来实现故障树的存储,该方法能够在存储层实现良好的可扩展性、具有较小的数据冗余度,并且能够实现数据的快速检索。

为实现上述技术目的,本发明公开了一种故障树数据的存储方法,该存储方法包括如下步骤,

步骤1,分解故障树结构:将故障树抽象为五类对象,所述五类对象分别为顶事件、中间事件、底事件、逻辑与、逻辑或;其中,所述顶事件、中间事件、底事件统称为事件,且故障树结构中的上层事件为与该上层事件有直接逻辑关联的下层事件的父节点,所述中间事件、底事件分别具有父节点,所述顶事件没有父节点;

步骤2,为故障树中的每个事件赋予一个事件编码,且每个事件编码具有唯一性;

步骤3,根据所述事件编码、各事件之间的逻辑关系,将故障树数据映射为四个关系表,所述四个关系表分别为故障树关系表、底事件关系表、中间事件关系表、顶事件关系表;

步骤4,通过存储上述四个关系表的方式存储故障树数据。

本发明通过上述的对故障树的抽象、对逻辑关系描述、对每个事件赋予事件编码的方式将故障树数据映射为四个关系表,然后通过存储关系表的方式存储故障树数据;这种相互之间存在逻辑关系的关系表存储方式使本发明的故障树数据存储具有易扩展、冗余度低、方便后期的遍历检索等优点,完美实现了对故障树的结构分解,优化了对故障树层次关系描述,同时创建了检索故障树数据的接口。

进一步地,步骤3中,所述关系表包括表名信息、属性信息、类型信息及描述信息,所述类型信息表征所述属性信息的类型,所述描述信息表征所述属性信息的含义。

本发明通过表名、属性、类型及描述四个方面的信息表征出关系表内容,这种表征方式既能满足将故障树数据完整抽象的要求,又能兼顾存储层扩展性、冗余性及检索速度等多种要求,为大批量的故障树数据存储提供了一种较佳的解决方案。

进一步地,步骤3中,所述故障树关系表的属性信息包括故障树id和故障树名称。

故障树id用于区分数据库中存储的不同故障树,提高数据库系统的识别速度,而故障树名称便于技术人员对故障树信息的识别和读取,因此,故障树id和故障树名称能够完整、清楚、有效地表征出故障树关系表的基本信息。

进一步地,步骤3中,所述顶事件关系表的属性信息包括事件编码、顶事件id、顶事件名称、该顶事件所属的故障树id、该顶事件与其下层事件的逻辑关系。

通过上述对顶事件关系表的属性信息表征,能够准确、完整地表达出顶事件本身的含义、顶事件与其他事件的逻辑关系、顶事件与故障树的逻辑关系等。

进一步地,步骤3中,所述中间事件关系表的属性信息包括事件编码、中间事件id、中间事件名称、该中间事件所属的故障树id、该中间事件与其下层事件的逻辑关系、该中间事件的父节点id、该中间事件的父节点类型。

通过上述对中间事件关系表的属性信息表征,能够准确、完整地表达中间事件本身的含义、中间事件与其他事件的逻辑关系、中间事件与故障树的逻辑关系等。

进一步地,步骤3中,所述底事件关系表的属性信息包括事件编码、底事件id、底事件名称、该底事件所属的故障树id、该底事件的父节点id、该底事件的父节点类型。

通过上述对底事件关系表的属性信息表征,能够准确、完整地表达底事件本身的含义、底事件与其他事件的逻辑关系、底事件与故障树的逻辑关系等。

进一步地,步骤4中,所述关系表存储于关系数据库中,在遍历故障树的过程中完成对故障树数据的存储。

本发明可事先根据分析故障树的结构而生成存储于数据库中四种关系表,该四种关系表可为空表或填充有初始化信息的关系表,而在对新的故障树数据存储时,在此四种关系表的基础上增加数据即可。

进一步地,为全面、准确地表征故障树中的所有数据,步骤1中,针对故障树中的每个事件,采用面向对象分析的方式分解故障树结构。

进一步地,步骤2中,所述事件编码为数字或字母。当然,在本发明的技术启示下,可采用其他形式的事件编码,比如数字和字母组合。

本发明的另一个发明目的在于提供一种故障树数据的读取方法,通过如下步骤对上述的存储方法存储的故障树数据进行读取,

步骤a,获取待读取的故障树id,在故障树表中检索与所述故障树id匹配的记录,获取所述故障树id对应的故障树的基本信息;

步骤b,在顶事件关系表中检索出该故障树的顶事件;

步骤c,在中间事件关系表中检索出该故障树的所有中间事件;

步骤d,在底事件关系表中检索出该故障树的所有底事件。

基于上述的故障树数据的存储方法,对存储于关系数据库的故障树数据的读取变得简单和容易,技术人员只需向故障诊断系统中输入待读取的目标故障树id,即可自动、快速地获取整个故障树结构数据。

本发明的有益效果为:通过引入事件编码机制、父节点属性、逻辑类型属性,本发明能够清晰简明地将故障树的结构映射为关系数据库存储表的形式,本发明创新提出了一种新的故障树数据的存储方法及读取方法,基于面向对象的原则,该存储方法能够在存储层具有良好的可扩展性、具有较小的数据冗余度,并且在故障树数据读取时能够实现快捷的检索。

附图说明

图1为故障树数据的存储方法的流程示意图。

图2为抽象后的故障树结构示意图。

图3为故障树数据的读取方法的流程示意图。

具体实施方式

下面结合说明书附图对本发明的故障树数据的存储方法及读取方法进行详细的解释和说明。

如图1、2所示,一种故障树数据的存储方法,该存储方法具体包括如下步骤。

步骤1,针对故障树中的每个事件,本发明采用面向对象分析的方式分解故障树结构;分解故障树结构具体包括如下的步骤:将故障树抽象为五类对象,五类对象分别为顶事件、中间事件、底事件、逻辑与、逻辑或,为方便说明,本发明中“顶事件”、“中间事件”、“底事件”、“逻辑与”、“逻辑或”分别用于表示“顶事件对象”、“中间事件对象”、“底事件对象”、“逻辑与对象”、“逻辑或对象”。如图2所示,本发明中涉及的顶事件、中间事件、底事件统称为事件,依据故障树的结构,事件还可根据逻辑关系表述为上层事件和下层事件,上层事件和下层事件的逻辑关系由逻辑单元表示,本发明也是依据逻辑单元分解故障树结构的,逻辑单元在本发明中可理解为逻辑与、逻辑或,如图1所示,顶事件对应的逻辑单元为逻辑或,中间事件1对应的逻辑单元为逻辑与,所有底事件没有逻辑单元,而且故障树结构中的上层事件为与该上层事件有直接逻辑关联的下层事件的父节点,中间事件、底事件分别具有父节点,且中间事件、底事件引入父节点属性,表明父节点与其子节点具有逻辑关系。更为具体地,本步骤可按照如下方式实施。首先,确定故障树的顶事件,而每个故障树只有一个顶事件;其次,以顶事件为起点,基于逻辑与、逻辑或的关系模式,由上至下,抽象出各层的中间事件和底事件,从而建立出故障树的层次结构。

步骤2,基于故障树的结构,或者说基于故障树的某种遍历方式,为故障树中的每个事件赋予一个事件编码,且每个事件编码具有唯一性,这种唯一性的约束是针对故障树而言的,表明了不同的事件编码代表不同的事件;事件编码可以为数字、字母、数字和字母的组合等多种表现形式,本实施例中,如图2所示,事件编码的形式为“(n)”,其中“n”为1、2、3……。比如,父节点可以用事件编码表征,如图2所示,中间事件1的父节点的事件编码为(1)的顶事件,中间事件4的父节点为事件编码为(2)的中间事件1,顶事件没有父节点。

步骤3,基于以上的面向故障树的面向对象抽象,根据事件编码、各事件之间的逻辑关系,通过基于e-r模型的关系数据分析,将故障树数据映射为四个关系表,四个关系表分别为故障树关系表、底事件关系表、中间事件关系表、顶事件关系表,如下表所示。

通过上表可以看出,关系表可包括表名信息、属性信息、类型信息及描述信息,类型信息用于表征属性信息的类型,而描述信息用于表征属性信息的含义。故障树关系表的属性信息可包括故障树id和故障树名称,从而表达出故障树的基本信息。顶事件关系表的属性信息包括事件编码、顶事件id、顶事件名称、该顶事件的故障树id、该顶事件与其下层事件的逻辑关系,从而表达出故障树顶事件的组成信息及其与其他事件间的逻辑信息。中间事件关系表的属性信息包括事件编码、中间事件id、中间事件名称、该中间事件的故障树id、该中间事件与其下层事件的逻辑关系、该中间事件的父节点id、该中间事件的父节点类型,从而表达出故障树中间事件的组成信息及其与其他事件之间的逻辑关系,比如,中间事件与顶事件之间的逻辑关系、中间事件与底事件之间的逻辑关系。底事件关系表的属性信息包括事件编码、底事件id、底事件名称、该底事件的故障树id、该底事件的父节点id、该底事件的父节点类型,从而表达出故障树底事件的组成信息及其与其他事件之间的逻辑关系,比如,底事件与中间事件之间的逻辑关系。

应当理解,本发明上述给出的关系表、故障树及各种事件的表达形式是基于本发明的构思而给出具体实施结果,在本发明的基本构思的启示下,本发明可不限于上述的表达形式或语言描述,适当地增加表达形式或该表表述方式也在本发明的保护范围之内。

需要说明的是,本发明中涉及的“id”应理解为相应故障树或父节点或事件的“身份信息”或“编号信息”,用于区分同种类的故障树或同种类的父节点或同种类的事件。而“事件名称”对应具体的事件的名字,比如产生故障的原因或产生故障的进一步原因。

步骤4,通过存储上述四个关系表的方式存储故障树数据。具体来说,如上述的各关系表所示,为便于区分和说明,初始化关系表对应的的故障树id为ft_id1,当然,初始化关系表可以为空表,待存储的故障树id为ft_id2;根据故障树信息,初始化顶事件名称(tp_name),逻辑单元(lg_type)、故障树id(ft_id2)属性,向顶事件topevent中插入新的顶事件,其中ft_id2用ft_id1初始化,并且获取新顶事件的top_id,完成对顶事件相关数据的存储,然后按从上到下的顺序将故障树各层的中间事件与底事件分别插入midevent表和botevent表。根据故障树信息,初始化中间事件与底事件的各属性,其中,par_id与par_type属性初始化过程如下:a)根据事件在故障树结构图中的父节点事件编号,获取父节点的类型(mid或top),以该类型初始化par_type;b)如果父节点类型为mid,则在对应的midevent表中检索该事件编号的中间事件记录,并将该记录的mid_id初始化par_id;如果父节点类型为top,则在对应的topevent表中检索该事件编号的顶事件记录,并将该记录的top_id初始化par_id,从而完成对中间事件和底事件相关数据的存储。

通过上述步骤,在数据库中已将建立关系表的前提下,完成了对故障树结构的遍历即完成了故障树的存储过程。需要说明的是,本实施例中关系表存储于关系数据库中,在实施存储故障树之前,已经在关系数据库中建立用于保存故障树数据的数据库,并在该数据库中建立各存储表,存储表可理解为四中关系表的统称,当然,在遍历故障树之前,存储表为空表,然后在遍历故障树的过程中执行步骤1至4,完成对故障树数据的存储。

如图3所示,与本发明上述对故障树数据的存储结构相匹配,本发明还公开了一种故障树数据的读取方法,通过如下步骤对上述的故障树数据的存储方法存储的故障树数据进行读取。

步骤a,获取待读取的目标故障树id,在故障树表faulttree中检索与故障树id匹配的记录,获取该故障树的基本信息;

步骤b,在顶事件关系表topevent中检索出匹配该故障树id的记录,从而获取属于该故障树的顶事件;

步骤c,在中间事件关系表midevent中检索出匹配该故障树id的记录,并返回结果集,获取属于该故障树的所有中间事件;

步骤d,在底事件关系表botevent中检索出匹配该故障树id的记录,并返回结果集,获取属于该故障树的所有底事件。

在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1