基于PMC模型的自适应顺序故障诊断方法与流程

文档序号:11250760阅读:721来源:国知局
基于PMC模型的自适应顺序故障诊断方法与流程

本发明涉及多处理器系统的故障诊断技术领域,特别是涉及基于pmc模型的自适应顺序故障诊断方法。



背景技术:

短短几十年的时间,从计算机网络的诞生,到现在的大数据时代的高速发展,多处理器系统已经在社会生活中已经扮演着重要的角色,尤其在航天航空、军事、电子商务等领域以及社会各行各业中都发挥着巨大作用。多处理器系统中的处理机倘若发生故障,就会引起系统崩溃不能正常运行,造成灾难性的后果和巨大的经济损失。因此系统的稳定性和可靠性已经成为了人们日益关心的问题。

多处理器系统是指由两台或多台功能相似的处理器组成,能够完成大型任务的互联网系统。由于各处理机之间可以相互交换数据,多处理器系统中的每个节点处理器是组成系统的基本部件,若其中的一些节点发生故障,极有可能导致整个系统崩溃,显见其可靠性至关重。有效定位或规避系统中的故障单元,并及时用正常节点替换以保证系统的正常运行尤为重要,因此故障诊断方法成了解决这个问题的关键措施。考虑到控制系统成本和维护开销的具体实现方面,一般通过节点间的互相测试来诊断系统中的故障处理器。

prepara、metze和chien三位学者于1967年提出了最早的一种系统级故障诊断模型,后人称其为pmc故障诊断模型,简称pmc模型。他们首次将图论中的方法与理论应用于多处理机系统的故障诊断领域,从而创建了系统级故障诊断理论体系。在后来的研究过程中,研究者们对这一系统级故障诊断理论体系进行了补充与完善,其主要思想是充分利用系统中的处理器节点的通信处理能力,节点间通过互相发送测试信息并给予回复,收集并分析诊断结果确定每个处理器的处理机的状态。

按照测试关系的确定程度,可以将系统级故障诊断分为自适应诊断和非自适应诊断。自适应诊断指的是将系统的测试分成若干步骤来完成,之后的测试步骤根据前面所得的测试结果进行调整选定。非自适应诊断则是指全部的测试步骤是预先确定的,显然前者比后者的诊断测试量小。若按要求确定的故障机处理器数目划分,系统级故障诊断又可分为一步诊断和顺序诊断。一步诊断需要算法能够全部诊断出故障单元,而顺序诊断仅要求确定系统中的一个故障单元,即可自适应顺序诊断算法相较于其他类故障诊断算法,它的主要特征体现在,它能够根据测试过程中的诊断结果对测试步骤进行调整,整个测试过程是分批次完成。一般都是先安排一个轮回的测试,诊断出了部分节点的故障状态,然后在前面诊断结果的基础上安排下一次轮回的测试,直至将所有的节点状态能够被确定。

在文献anewadaptivesequentialdiagnosisalgorithminthepmcmodel中,作者提出了一种可以直接诊断出绝对故障机的自适应顺序诊断算法,该算法突破了之前需要先寻找一个正常处理机,再通过正常处理机诊断故障处理机的局限。但是该算法仅能直接找出系统中的一个故障节点,不能完全诊断出系统中的所有故障节点。在文献five-roundadaptivediagnosisinhamiltoniannetworks中,作者首先基于循环分割分类原则求出环的故障界限,这种故障界限值是高于总节点数的一半;其次对环进行序列划分,求出序列中节点的故障状态;最终提出了提出了五环自适应诊断算法。虽然这种算法通过仿真实验发现其具有良好的诊断效果,但它仅适应于哈密顿网络这种特殊拓扑结构,不具有一般性。在文献noveladaptedalgorithmforinterconnectionnetwork中,作者对哈密顿网络进行01序列划分,利用回环诊断的结果对非01序列节点进行诊断,得到系统中的故障节点。这种自适应诊断算法只适用于t-可诊断系统,并且诊断度小,因此突破这一限制条件是值得研究的方向。



技术实现要素:

本发明实施例提供了基于pmc模型的自适应顺序故障诊断方法,可以解决现有技术中存在的问题。

一种基于pmc模型的自适应顺序故障诊断方法,包括以下步骤:

将系统中每两个相邻的节点设为一组进行互测,将诊断结果为(0,1)节点组中的故障节点存入故障集f;

将诊断结果为(0,0)的节点组用其中一个节点代替,并记录剩余的所有未知节点为x1,x2,……,xp,p<n,n为节点总数;

针对上述的p个未知节点进行01序列划分,采用回环诊断的算法进行故障节点确定;

以检测出的每个故障节点为中心,令中心节点检测区内的未知节点去测试该故障节点十次,若十次检测结果都是1,则此未知节点是正常的,存入正常集t;若十次检测结果不全是1,则此未知节点是故障的,存入故障集f;直至故障节点的检测区域内的节点状态都得以判断;

用正常集t中的节点检测剩余未判断的节点,若测试结果为1,表示故障,存入故障集f,若测试结果为0,表示正常,存入正常集t;

输出故障集f,正常集t。

优选地,步骤针对上述的p个未知节点进行01序列划分,采用回环诊断的算法进行故障节点确定具体包括:

1)对于任意一个01序列l=x1,x2,...,xq,不计最后一个节点xq,选出l中步长最大的回测边σji,当σji=1时,将x1到xi的所有节点存入故障集f,转到步骤2);当σji=0时,转到步骤3);

2)令节点xj测试节点xi+k,0<k<j-i,当σj(i+k)=1时,将xi+k存入故障集f,重复此步,直到i+k=j-1,当σj(i+k)=0时,转到步骤3);

3)测试节点xj-h,0≤h<j-i到节点xi+k,判断是否存在值为1的测试边,若存在则将xi到xj的所有节点存入故障集f,若不存在值为1的测试边则将xi到xj的所有节点存入未知集u;

4)输出节点xi到xj的节点状态,重新选择未诊断过的新的最大步长回测边,重复上述步骤直到01序列l中所有故障节点被诊断出来。

本发明实施例中的基于pmc模型的自适应顺序故障诊断方法,通过四轮诊断过程完成系统的整个诊断目标。首先,第一轮测试是以两两节点分组互相测试,诊断出部分故障节点。然后,第二轮测试是建立在剩余的节点之上,对其进行01序列划分,并采用回环诊断算法对01序列进行诊断再确定部分故障节点。其次,第三轮的测试以前两轮测试出的故障节点为中心,每个故障节点的检测区域内的节点重复测试故障节点,据结果判断出测试节点的状态。最后,用已确定的正常节点就近测试剩余的节点,完成系统级故障诊断。仿真结果表明该算法检测效果良好,适应性更强。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为几种01序列的节点状态以及01序列回测示意图;

图2为本发明实施例中基于pmc模型的自适应顺序故障诊断方法的流程图;

图3为本发明中第一轮测试诊断过程中的节点分组示意图;

图4为本发明中仿真实验的检测精度图;

图5为本发明中仿真实验的误判率图;

图6为本发明中仿真实验的漏判率图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在介绍本发明的技术方案前,需要对一些相关理论进行介绍。

总节点集记为v={x1,x2,...,xn},其中xi表示系统的第i个节点,不同的xi取值表示着节点不同的状态:xi=0表示节点是正常的,xi=1表示节点是故障的。同理,xij表示节点xi测试xj的结果,xij=0表示测试结果显示正常,xij=1表示测试结果显示故障,pmc模型下节点间测试规则如表1所示:

表1pmc模型下节点间测试规则

定义1将一串节点按顺序进行测试,则这样的一串节点称为序列。特殊地,一串测试结果为0的节点序列指向最后一个节点,测试结果为1时,这样的序列称为01序列。按照测试方向,将01序列可表示为l=(a1,a2,...,at-1,at)。

引理1对于系统测试图中的任意两个相邻节点u,v:

如果节点u测试v的结果是1,且节点v是正常的,则节点u是故障的;

如果节点u测试v的结果是1,节点v测试u结果为0,则节点v是故障的;

如果节点u测试v的结果是0,且节点v是故障的,则节点u也是故障的。

引理201序列中的节点状态只可能属于图1中a、b和c的几种情况之一,其中,白色的代表正常节点,黑色的代表故障节点。t指的是序列长度,即序列中节点的总数,0<p<t。

定理1在01序列中,令节点xj回测其前面的节点xi,若测试结果是1,则节点x1,x2,...,xi是故障的;若测试结果是0,则节点xi,...,xj是属于同种故障状态的(灰色代表节点状态未知),如图1中d所示。

参照图2,本发明实施例中提供了基于pmc模型的自适应顺序故障诊断方法,该方法包括以下步骤:

步骤100,将系统中每两个相邻的节点设为一组进行互测,将诊断结果为(0,1)的故障节点存入故障集f。

系统中的每个节点都寻找其测试区域内距离最近的节点,进行互测。在整个两两节点互测过程中,每个节点最多只能测试一次另外的节点以及被这个节点测试一次。在最理想的状态下,当节点总数为偶数时,系统所有节点两两组合都进行了互测;当节点总数为奇数时,会有一个节点被剩余出来没有参与测试,无论哪种状况,整个系统都会做n/2次测试,n为节点数量,如图3所示。根据pmc故障模型下节点测试规则可知,两个节点之间互测的诊断结果仅有(0,0),(0,1)与(1,1)这三种情况。当节点xi测试xj是0,而节点xj反测xi的结果是1时,可判断节点xi是故障的。反之亦然也可以得出节点xj是故障的。所以当出现(0,1)测试结果时,可以判断这组节点中的故障节点。

步骤110,将诊断结果为(0,0)的节点组用其中一个节点代替,并记录剩余的所有未知节点为x1,x2,……,xp,p<n。

根据前面的定理1可知,诊断结果为(0,0)的节点组中的两个节点属于同种状态,因此只需判断其中一个节点,另一个节点的状态也随之确定。针对诊断结果为(0,0)的节点组,选其中的一个节点记为xi(0<i<n),剔除诊断结果为(0,1)节点组中的故障节点,剩余的另一个节点记为xj(0<j<n)。因此系统中剩余的节点进行重新编号可记为{x1,x2,...,xp},p<n。

步骤120,针对上述的p个未知节点进行01序列划分,采用回环诊断的算法进行故障节点确定。具体地,回环诊断算法主要包括以下四个步骤:

1)对于任意一个01序列l=x1,x2,...,xq,不计最后一个节点xq,选出l中步长最大的回测边σji。当σji=1时,将x1到xi的所有节点存入故障集,转到步骤2);当σji=0时,转到步骤3);

2)令节点xj测试节点xi+k,0<k<j-i,当σj(i+k)=1时,将xi+k存入故障集f,重复此步,直到i+k=j-1。当σj(i+k)=0时,转到步骤3);

3)测试节点xj-h,0≤h<j-i到节点xi+k,判断是否存在值为1的测试边,若存在将xi到xj的所有节点存入故障集f,若不存在值为1的测试边,将xi到xj的所有节点存入未知集u;

4)输出节点xi到xj的节点状态,重新选择未诊断过的新的最大步长回测边,重复上述四步直到01序列l中所有故障节点被诊断出来。

步骤130,以检测出的每个故障节点为中心,令中心节点检测区内的未知节点去测试该故障节点十次。若十次检测结果都是1,则此未知节点是正常的,存入正常集t;若十次检测结果不全是1,则此未知节点是故障的,存入故障集f;直至故障节点的检测区域内的节点状态都得以判断。

不难发现,在前两轮的测试过程中都只确定出了故障节点,并没有找出系统中的正常节点。因此,在第三轮的测试诊断过程中,我们提出了如何判断一个节点是否是正常节点。由于在pmc故障诊断模型中,一个错误节点测试其他节点的结果是随机产生的。假设错误节点测试一个错误节点为正常与故障的概率都是0.5,则一个错误节点对这个错误节点重复测试n次结果都为故障的概率仅为0.5n,0.510≈0.001,从此可以看出,一个错误节点重复检测一个错误节点10次结果都显示故障的概率仅有1‰,微乎其微。而正常节点重复测试故障节点的结果必为1,根据这一思想,以诊断出的故障节点为中心,令中心区域内的未知状态节点去重复测试这个故障节点十次,若十次结果都为1,说明测试的节点是正常的;若十次结果既出现1又出现0时,说明测试的节点是故障的。

步骤140,用正常集t中的节点检测剩余未判断的节点,若测试结果为1,表示故障,存入故障集f,若测试结果为0,表示正常,存入正常集t。

只需对未确定的节点进行判断。对系统中未能判断状态的节点,采用就近原则,采用测试范围内的正常节点去测试未知节点,确定未知节点状态;若测试区域内无正常节点,则这些未知节点重复测试已知的故障节点去判断自身的节点状态,进而完成系统的所有节点状态判断。

步骤150,输出故障集f,正常集t。

本发明方法的效果可以通过如下仿真来进一步说明:

仿真内容

仿真实验是在一台4g内存,赛扬双核2.6ghz,32位win7操作系统下,使用matlab2014a进行的。实验中令多处理器系统中的节点是均匀随机分布,单元总节点数为100,故障节点数从20至90随机变化,当节点测试的半径分别为20,25,30的时候,针对每种故障情况算法程序循环执行100次。为了更准确的诠释该算法的诊断效果,我们通过检测精度、误检率以及漏检率分析了该算法的有效性,它们的定义如下:

检测精度=检测出的正常故障节点数/总故障节点数

误检率=被测成故障节点的正常节点数/总正常节点数

漏检率=未确定状态的节点数/总的节点数

图4、图5和图6分别给出了自适应顺序新的诊断算法的检测精度、误判率和漏检率不同节点测试半径的变化曲线,当检测半径是20,25,30时,对比算法的诊断效果。

从图4中可以发现,该算法的诊断精度随着测试半径的增大而升高,并接近于1。当系统中的故障节点数大于总节点的一半时,随着测试半径的减小,诊断精度会有所下降。但是较于之前的自适应顺序诊断算法,它的最大优点是其诊断精度依旧很高,诊断效果依旧可观;由图5可以看出该算法的误检率为零,也就是没有节点被错误诊断;此外,由于节点检测半径的范围不同,系统中可能会有个别独立节点没有参与整个算法的诊断,导致节点状态没有被判断,会出现节点的漏判,因此图6表示了该算法的漏判率。当节点检测半径变小,系统中的故障节点数剧增时,漏检率才会增加,一般情况下,该算法的漏检率都在可承受范围之内,漏检的节点对整体的系统级故障诊断影响微乎其微。总的来说,提出的这种自适应顺序新的诊断算法不仅可以有效地诊断出系统中的所有故障节点,而且它不局限于一般的t-可诊断系统,适用于更多的多处理器系统故障诊断。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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