CN106342308B - 一种基于双启发函数的诊断树构造方法 - Google Patents
一种基于双启发函数的诊断树构造方法Info
- Publication number
- CN106342308B CN106342308B CN201010047186.8A CN201010047186A CN106342308B CN 106342308 B CN106342308 B CN 106342308B CN 201010047186 A CN201010047186 A CN 201010047186A CN 106342308 B CN106342308 B CN 106342308B
- Authority
- CN
- China
- Prior art keywords
- prime
- formula
- test
- node
- fault
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于双启发函数的诊断树构造方法,目的是提供一种构造过程简单的诊断树构造方法,使得所获诊断树的最优性较好,且能适应实际中存在的各种情况。技术方案是首先采集测试结果可靠度、错误诊断代价、隔离精度等数据,将这些新增数据应用于启发函数-I和启发函数-II中,先用启发函数-I构造出以各候选测试为顶点的临时诊断树,再用启发函数-II计算和比较这些临时诊断树,得到最佳诊断树。采用本发明构建的诊断树可满足不同的诊断精度要求,且准确度较高,可以满足工程上对最优性和简单性方面的要求。
Description
技术领域
本发明涉及自动测试和诊断维修领域的测试方法,尤其是一种诊断树构造方法。
背景技术
高新技术在武器装备中的广泛应用,一方面极大地改善了装备的性能,使装备功能越来越先进;另一方面显著增加了装备的技术和结构复杂性,对装备的测试和诊断提出了严峻挑战。其中一个重要表现是:测试诊断能力差、准确性低,测试诊断时间长、效率低,增加了装备全寿命周期费用,延长了战备转换时间。经过大量研究实践,人们认识到:要从根本上解决这一问题,必须对装备开展测试性设计。测试性是指“产品能及时准确地确定其状态(可工作、不可工作或性能下降)并有效地隔离其内部故障的一种设计特性”。
诊断策略优化设计是装备测试性设计中的一项重要内容,该项设计通过优化测试选择和排序,使装备在满足故障检测率和隔离率要求的基础上,尽量减少测试数目/费用、缩短平均故障检测和隔离时间,从而提高可用度、降低全寿命周期费用。例如,黑鹰直升机的火控系统经过诊断策略优化设计,平均故障隔离时间由8-12小时降为1.5小时,隔离所有故障的平均测试数从78减为24。F-22经过诊断策略优化设计,大大减少了维修和测试设备以及每次部署的费用,据估计,在20年的寿命周期内,F-22的使用和保障费用将比F-15低30%。
诊断策略优化设计方法可以概括为三个主要步骤:
第一步,采集相关数据。包括装备的功能模块、各功能模块的故障模式、故障概率、修复故障或更换故障模块的代价、测试资源、测试代价、各测试可检测的故障模式等。
数据采集是整个设计过程的基础,以上信息可由装备设计和测试维修专家给出,或者采用历史数据。数据越完备越准确,所构造出的诊断树性能越好,实用价值越高。
第二步,利用所采集的数据信息,对装备构造最优诊断树,该步骤是诊断策略优化设计中的核心步骤。
诊断树是诊断策略的直观表示,其基本构成如图1所示。其中,圆圈是诊断树的结点,表示模糊集(即由可疑故障构成的集合),圈中字符表示可疑故障(即此时根据已执行测试推断装备可能发生的故障模式)。根据所在诊断树中位置的不同,模糊集分为三类:位于最顶端的称为根节点,为最初待诊断的模糊集;最底端的称为叶节点,为已满足故障隔离精度要求或者无法进一步隔离的模糊集;其余模糊集称为枝节点,为诊断中产生的待诊断模糊集。方框表示测试,框中字符为测试编号;标注字符的连接线表示测试输出结果。例如,O11表示测试t1的第一个输出。从根节点下面第一个测试,到达某个叶节点所历经的一系列测试称为一个测试序列。实际中一次诊断过程只会历经一个测试序列,而诊断树是由一系列测试序列构成的集合,因此诊断树可指导各种实际诊断过程。
第三步,开发自动测试程序集。将诊断树编写成软件程序,集成到自动测试系统或便携式维修辅助系统中。在实际诊断过程中,该程序依据诊断树自动产生每一步测试指令及相关激励信号,收集测试数据并处理,最后给出诊断结论,维修人员据此做出相应的维修操作。
以上三步中,第二步构造最优诊断树是核心。选择不同的测试或者采取不同的测试顺序,将构造出各种不同的诊断树。Simpson等人经过研究指出,若给定m个测试,每个测试有n个输出,则由这些测试最多可构成f(m,n)=nmm!个测试序列,且最多可构成g(m,n)=nm-2m!种诊断树。这些诊断树性能各异,给出衡量最优的标准是选优的前提。
最优诊断树有三个条件:一是达到故障隔离精度要求,即在测试资源足够的前提下能满足维修人员对故障隔离精度的要求,或者当测试资源不足时可将所有故障隔离到最小的模糊组;二是准确度高,目前很多方法均假设所有测试都是可靠的,因此认为所构造的诊断树必然是准确的,而实际上该假设是不成立的,如何在测试不可靠时构造出高准确度的诊断树一直是本领域亟需解决的热点问题;三是在满足故障隔离精度和准确度的要求的前提下,诊断树的平均测试代价(测试时间或测试费用)最少,即:
上式中,Gopt表示最优诊断树;P(fi)表示故障fi的概率,该被诊断装备共有m个故障,P(f0)表示装备无故障的概率;G(i)表示诊断树G中从根节点到达故障fi所在的叶节点所历经的测试序列,||G(i)||表示该序列的长度;表示序列G(i)中第k个测试的代价。
这是一个典型的NP-Complete问题,国内外学者对此进行了不懈的努力,发明了各种求解方法。这些方法可以归纳为两类:一类是直接搜索最佳诊断树。常见方法有遗传算法、蚁群算法等,这两种方法都是仿生学方法,搜索结果具有一定的随机性,若搜索参数设置不当会导致陷入局优解,而且计算量较大,因此这类方法工程中应用较少。另一类是间接构造最佳诊断树。常见方法是贪婪搜索方法(Simpson,1994)和AO*搜索方法(Pattipati,1990),这两种方法都是根据某个启发函数,通过逐步地确定每一步要执行的测试,间接地构造出一棵完整的诊断树,因此又被称为启发式方法。目前这两种方法在工程中应用较多,下面做简要介绍。
(1)贪婪搜索方法
该方法采用信息启发函数或分辨力启发函数。信息启发函数是利用信息熵理论来计算每个测试在单位代价下所获得的系统状态信息,分辨力启发函数是通过概率计算测试分辨不同故障的能力。具体步骤如下:首先针对根节点,通过计算和比较每个候选测试的启发函数值,得到第一步最佳测试,并由该测试得到一系列枝节点;然后按照从左至右、从上至下的顺序依次针对每一个枝节点,利用启发函数得到后续各步测试,直到仅剩下叶节点。上述启发函数只考虑测试一步所获取的信息,没有考虑该测试对后续测试的影响,且每选择出一个最佳测试就确定下来不再更改。因此,该方法构造诊断树的过程简单,但所获得诊断树的最优性较差。
(2)AO*搜索方法
AO*搜索方法是一种将与或图搜索法和基于霍夫曼编码的启发函数相结合的方法。具体方法如下:首先针对根节点,依次对每个测试计算由其产生的枝节点,应用霍夫曼编码计算出隔离这些枝节点所需的最小隔离代价,再将计算所得代价加权求和,作为该测试的启发函数值,比较所有测试的启发函数值,暂时选定数值最小的那个测试作为第一步测试;然后针对该测试下隔离代价最小的枝节点,按照前述初选第一步测试的方法选定第二步测试;再将该测试的启发函数值向上逐步反馈,即先对该测试节点上面枝节点的隔离代价进行修正,再用该枝节点的修正值对第一个测试的启发函数值进行修正;修正完毕后,对根节点下面的全部候选测试按照启发函数值重新排序,并暂时选定数值最小的那个测试作为第一步测试,然后套用前述初选第一步测试的方法选择第二步测试。AO*搜索方法中的修正和重选操作确保了它可以获得最优诊断树,但是构造过程较复杂。
综合上述两种启发式方法,不难发现它们的不足之处。首先,这些方法在最优性和复杂度方面无法得到较好的权衡。贪婪搜索方法虽然过程非常简单,但是所得到诊断树的最优性较差;AO*搜索方法可以得到最优诊断树,但是搜索过程太复杂。其次,上述方法采用的启发函数比较简单,没有考虑实际中普遍存在的情况。例如,没有考虑实际中测试结果不准确的情况(由于受到环境干扰或测试人员操作不当,有些测试可能输出错误结果,这将导致最终错误的诊断结果);仅考虑二值输出(通过或不通过)测试;仅能构造满足一种故障隔离精度(隔离到单个故障模式)要求的诊断树,不能自适应构造出适应不同隔离精度(例如隔离到故障模式或者可更换单元)要求的诊断树。因此实用中具有一定的局限性。
如何能使诊断树构造过程简单,所获诊断树的最优性较好,且能适应实际中普遍存在的情况是诊断和维修人员一直关注的技术问题。
发明内容
本发明要解决的技术问题是:提供一种诊断树构造方法,使得诊断树构造过程简单,所获诊断树的最优性较好,且能适应实际中存在的各种情况。
为了解决上述技术问题,本发明主要采取以下措施:(1)采集测试结果可靠度、错误诊断代价、隔离精度等数据,将这些新增数据应用于新设计的双启发函数(即启发函数-I和启发函数-II)中,使所构建的诊断树满足不同的诊断精度要求,且准确度较高;(2)将贪婪搜索方法的一步(即采用一个启发函数)确定一个测试改进为两步(即采用双启发函数)确定一个测试,即先用启发函数-I构造出以各候选测试为顶点的临时诊断树,再用启发函数-II计算和比较这些临时诊断树,得到最佳诊断树。
具体技术方案如下:
第一步,针对被测装备采集以下数据:
1.1从被测装备故障模式、影响及危害性分析报告即FMECA(FailureMode Effect Critical Analysis)报告中获得被测装备故障集F={f0,f1,…,fm}。其中,f0表示被测装备无故障,f1,…,fm依次表示被测装备第1至第m个故障,m表示被测装备的故障数目。
1.2从被测装备FMECA报告中获得被测装备的功能模块集A={a1,a2…,ag},a1,a2,…,ag依次表示第1至第g个功能模块,g是被测装备所有功能模块的数目。
1.3从被测装备FMECA报告中获得被测装备各故障f1,…,fm隶属被测装备功能模块编号的矢量V=[v1,v2,…,vm],v1,…,vm分别表示故障f1,…,fm所隶属的功能模块的编号;再由矢量V获得各模块a1,…,ag包含的故障集M1,…,Mg,集合Mξ由下式计算:
Mξ={fρ|vρ=ξ,0≤ρ≤m},1≤ξ≤g (1)
1.4通过计算获得故障概率集P={P(f0),…,P(fm)}。其中,P(f0)表示被测装备无故障的概率,由(2)式计算;P(fθ)表示故障fθ发生的概率,由(3)式计算得到。
第(2)和第(3)式中,λθ和λθ′分别为故障fθ和fθ′的故障率,由被测装备的可靠性预计报告获得。
1.5从被测装备测试性设计方案报告中获得可用测试集T={t1,t2,…,tn},t1,…,tn分别表示第1至第n个测试,n为测试总数目。
1.6从被测装备测试性设计方案报告中获得测试的代价集C={c1,…,cn},c1,…,cn分别表示测试t1至tn的耗时(以分钟为单位)。
1.7从被测装备测试性设计方案报告中获得测试输出数目集W={w1,w2,…,wn},w1,…,wn分别表示测试t1至tn的输出数目。
1.8通过采用田仲在《系统测试性设计分析与验证》一书中给出的相关性矩阵分析方法(田仲,石君友,《系统测试性设计分析与验证》,2003,Page178-180),得到被测装备故障-测试相关性矩阵B=[bαα′α″]。其元素bαα′α″∈{0,1}表示第α个故障模式fα′与第α′个测试tα′的第α″个输出的相关性,下标0≤α≤m,1≤α′≤n,1≤α″≤wα′。若fα′发生时tα′为第α″个输出,则bαα′α″=1,否则bαα′α″=0。
1.9通过以下方法获得测试可靠度矩阵D=[dββ′β″]。其元素dββ′β″∈[0,1],表示故障fβ发生时tβ′为第β″个输出的概率,下标0≤β≤m,1≤β′≤n,1≤β″≤wβ′。D满足获取该矩阵的方法是:从被测装备测试性设计方案报告得到tβ′第β″个输出的取值区间根据中心极限定理和被测装备测试随机误差的性质,当被测装备处于状态fβ时,tβ′的测量值χβ′服从正态分布正态分布参数μββ′,采用小子样理论(王国玉,申绪涧等,《电子系统小子样试验理论方法》,2003,Page104-157,156-157)得到,套用(4)式得到元素dββ′β″:
(4)式中,函数Ф(·)通过查阅正态分布表得到。然后,在除fβ以外的其它故障状态下计算tβ′的测量值的分布函数,再套用(4)式得到相应的矩阵元素,进而得到整个矩阵D。
1.10确定隔离精度参数l∈{0,1,…,L}。当l=0时表示要求隔离到单个故障模式,当1≤l≤L时表示要求隔离到l个功能模块,方法是:在面向基层级或中继级维修时,将隔离精度参数l设定为1-3个外场可更换单元(LRU,Line Replaceable Unit)或者内场可更换单元(SRU,Shop Replaceable Unit),这里一个LRU或者SRU相当于一个功能模块;在面向基地级维修时,将隔离精度参数l设定为0,即隔离到单个故障模式。
1.11计算修复被测装备的故障或更换发生故障的功能模块所需代价集R={r1,…,rm,R1,…,Rg}。其中,r1,…,rm分别表示修复第1至第m个故障所需的时间(以分钟为单位);R1,…,Rg分别表示更换第1至第g个功能模块所需的更换时间(以分钟为单位)。
1.12计算未正确修复故障或未正确更换发生故障的功能模块所造成的损失集E={e1,…,em,E1,…,Eg}。其中,e1,…,em分别表示第1至第m个故障发生而未对相应的故障进行维修所造成的损失;E1,…,Eg分别表示第1至第g个功能模块发生故障而未对相应功能模块进行维修所造成的损失。未正确修复故障的损失采用(5)式进行计算;未正确更换故障模块的损失采用(6)式进行计算。
eρ=hρrρ,1≤ρ≤m (5)
(5)和(6)式中,hη和hη′分别为故障fρ和fρ′的严酷度(取值范围1-4,越严酷数值越大),由被测装备FMECA报告获取,表示功能模块Mξ所含故障中最大的严酷度值。
上述数据中,1.1-1.8是目前方法中所采用的数据;1.9-1.12是本发明需要额外收集的数据。
第二步,应用启发函数-I(详见第(10)式和第(14)式)和启发函数-II(详见第(17)式和第(23)式),采用自顶向下伸展的方式构造诊断树(即从根节点开始,每伸展一次产生若干新节点,再针对其中一个节点继续向下伸展,直到得到一棵完整的树),具体步骤如下:
2.1输入第一步中所采集的数据。
2.2创建集合G和U并初始化。具体方法是:先创建集合G,用于存放逐步伸展的诊断树,存入根节点,即令G={F}={{f0,f1,…,fm}};再创建集合U,用于存放诊断树每次伸展后最底层的节点(即未向下伸展出分枝的节点),先存入根节点,即令U={F}={{f0,f1,…,fm}}。
2.3从U中选出下一步待伸展的节点。方法是:先依次计算U中各节点的概率(即该节点中所含故障的概率之和),例如根节点F的概率P(F)用下式计算:
其他新伸展的节点也按(7)式计算。然后比较各节点概率大小,选择其中概率最大的节点作为下一步准备伸展的对象,将该节点记为X″。
2.4执行2.4.1步至2.4.10步,计算出集合T中所有测试的启发函数-II值。
2.4.1创建循环控制变量j,令j=1。
2.4.2计算节点X″通过测试tj向下伸展出的新节点方法是:先读取相关性矩阵B中tj的第1至第wj个输出对应的列矢量,再利用这些列矢量计算由tj向下伸展出的节点,例如,由tj第δ个输出向下伸展出的节点X″jδ为:
2.4.3创建集合Gj,用于存放第2.4.2-2.4.8步构建的诊断树(该诊断树构造完成后用于计算tj的启发函数-II值,计算后保存tj的启发函数-II值,并删除该诊断树),先在Gj中存入节点X″、测试tj及由tj伸展出的节点,即今再创建集合Uj,用于存放诊断树Gj每步伸展后的最底层节点,先存入Gj当前点最底层节点,即令
2.4.4采用第2.3步中的方法从Uj中选出下一步待伸展的节点,记为X′。
2.4.5执行第2.4.5.1-2.4.5.4步,计算集合T中所有测试的启发函数-I值。
2.4.5.1创建循环控制变量k,令k=1。
2.4.5.2计算节点X′由tk向下伸展出的节点具体方法是:先读取相关性矩阵B中tk的第1至第wk个输出对应的列矢量,再利用这些列矢量依次计算由tk伸展出的节点。例如,由tk第个输出向下伸展出的节点为:
2.4.5.3计算测试tk的启发函数-I值,方法是:先获取故障隔离精度参数l,若l=0(即要求隔离到故障模式),则执行A.1-A.2步;若l≥1(即要求隔离到l个功能模块),则执行B.1-B.2步。
A.1依次计算节点的模糊度(模糊度即节点(模糊集)中故障的个数,可直接统计得到);然后将分别同||X′||进行比较,只要有一个相等,则令tk的启发函数-I值为0,即令Ik=0,再转第2.4.5.4步,若均不相等,则执行A.2步。
A.2根据(10)式计算tk的启发函数-I值:
(10)式中,J(X′;tk)表示tk对节点X′诊断后所获得的信息;ck为tk的执行代价,从测试代价集合C中获得;N(X′,tk)表示由于tk结果不准确造成的误诊代价。J(X′;tk)和N(X′,tk)分别由(11)式和(12)式计算。
(11)式中,“1b”表示取以2为底的对数;P(X′)和分别表示节点X′和的概率,根据(7)式计算。
(12)式中,表示发生时tk为第个输出的概率,从测试可靠度矩阵D中获得;表示发生却未能维修造成的损失,从损失集合E中获取;表示修复故障的代价,从维修代价集合R中获取。转第2.4.5.4步。
B.1由节点分别得到由疑似发生故障的功能模块构成的集合例如,Y′和由下式计算得到:
再依次计算节点的模糊度然后将分别同||Y′||进行比较,只要有一个相等,则令tk的启发函数-I值为0,即令Ik=0,再转第2.4.5.4步,若均不相等,则执行B.2步。
B.2根据下式计算tk的启发函数-I值Ik:
(14)式中,Jl(X′;tk)表示测试tk将X′中的故障隔离到l个功能模块所获得的诊断信息,根据(15)式计算得到。具体方法是:先将分别与故障隔离精度参数l比较,若先令再代入(15)式计算;否则,直接将代入(15)式计算。
(14)式中,Nl(X′,tk)表示由于tk不准确造成的误诊代价,由(16)式计算。
(16)式中,表示故障所的属功能模块;表示功能模块发生故障而未进行更换所造成的损失,从损失集合E中获取;Rφ表示更换功能模块aφ的代价,从维修代价集合R中获取。
2.4.5.4判断k=n是否成立(n为全部候选测试数目),若成立,则转第2.4.6步;否则,令k=k+1,转第2.4.5.2步。
2.4.6比较集合T中所有测试的启发函数-I值I1,…,In,选出启发函数-I值最大的那个测试tΩ。
2.4.7更新集合Uj和Gj。方法是:根据(9)式计算节点X′由tΩ向下伸展出的新节点然后根据故障隔离精度参数选择下一步骤,若l=0,则执行A.3-A.4步;若l≥1,则执行B.3-B.4步。
A.3更新集合Uj:先将已经向下伸展出分枝的节点X′从Uj中删除;然后计算节点的模糊度将中大于1的节点存入Uj中。
A.4更新集合Gj:先将tΩ存入Gj中,置于节点X′的后面;然后将中大于或等于1的节点存入Gj中,并按照tΩ的输出编号从小到大的顺序依次置于tΩ的后面,再将中等于1的节点标记为叶节点。转第2.4.8步。
B.3更新集合Uj:先将X′从Uj中删除;再根据(13)式由得到计算模糊度将中大于l(即未达到隔离精度要求)的节点存入Uj,例如||Y′Ω1||>l,则将节点X′Ω1存入Uj。
B.4更新集合Gj:先将tΩ存入Gj中,置于节点X′的后面;然后将中大于或等于1的节点存入Gj中,并按照tΩ的输出编号从小到大的顺序依次置于tΩ的后面;最后将中小于或等于l(即达到隔离精度要求)的节点标记为叶节点,例如||Y′Ω2||=l,则将X′Ω2标记为叶节点。
2.4.8判断Uj是否为空,若为空,则转第2.4.9步;否则,转第2.4.4步。
2.4.9利用第2.4.2-2.4.8步得到的诊断树Gj,计算测试tj的启发函数-II值。根据故障隔离精度参数选择下一步骤:若l=0,则执行A.5步;若l≥1,则执行B.5步。
A.5根据(17)式计算tj的启发函数-II值。
(17)式中,K(X″;Dj)表示诊断树Gj对节点X″诊断后所获得的诊断信息;H(X″,Gj)表示Gj的平均测试代价;S(X″,Gj)表示由于Gj中的测试结果不准确可能造成的平均误诊代价。K(X″;Gj)、H(X″,Gj)和S(X″,Gj)分别由(18)、(20)、(21)式计算得到。
(18)式中,Zj为诊断树Gj所有叶节点的数目;x″jγ表示Gj的第γ个叶节点,P(x″jγ)表示其概率,由(19)式计算:
H(X″,Gj)由下式计算:
(20)式中,Gj(γ)表示从诊断树Gj的第一个测试tj到第γ个叶节点x″jγ的测试序列;||Gj(γ)||表示该序列的测试数目;表示该序列中第π个测试的代价。
S(X″,Gj)由下式计算:
(21)式中,P(x″jγ|fψ)表示当真实故障是fψ而诊断结论为x″jγ的概率,由(22)式计算:
(22)式中,表示序列Gj(γ)中第π个测试的输出;表示fψ发生时,测试Gj(γ)[π]为第个输出的概率,由测试可靠度矩阵得到。转2.4.10步。
B.5根据式(23)计算tj的启发函数-II值。
(23)式中,Kl(X″;Gj)表示诊断树Gj将节点X″隔离到l个功能模块所获得的诊断信息;Hl(X″,Gj)为Gj的平均测试代价;Sl(X″,Gj)表示由于Gj中的测试结果不准确可能造成的平均误诊代价。
Kl(X″;Gj)计算方法如下:首先,由诊断树Gj的根节点X″得到集合Y″(即由可能发生故障的功能模块构成的集合),计算式如下:
然后,由Gj的叶节点得到相应的疑似发生故障的功能模块集合。例如,由叶节点得到集合的计算式如下:
再计算模糊度将同故障隔离精度参数l比较,当时,令再代入第(26)式中计算;当时,直接代入(26)式计算。
Hl(X″,Gj)由(27)式计算得到:
(27)式中,表示由诊断树Gj的第一个测试tj到叶节点的测试序列;表示该序列的测试数目;表示该序列中第个被执行的测试的费用。
Sl(X″,Gj)由(28)式计算得到:
(28)式中,表示当真实故障是fρ而诊断为的概率,根据(22)式计算。
2.4.10判断j=n是否成立(n为全部候选测试数目),若成立,则得到所有测试的启发函数-II值,转第2.5步;否则,令j=j+1,转第2.4.2步。
2.5比较所有测试的启发函数-II值II1,…,IIn,选出启发函数-II值最大的那个测试。
2.6更新集合U和G,方法是:先根据(8)式计算节点X″由向下伸展得到新节点再根据故障隔离精度参数选择下一步骤,若l=0,执行A.6-A.7步;若l≥1,执行B.6-B.7步。
A.6更新集合U:先将节点X″从U中删除;然后计算新节点的模糊度将中大于1的节点存入U中。
A.7更新集合G:先将存入G中,置于节点X″的后面;然后将中大于或等于1的节点存入G中,并按照的输出编号从小到大的顺序依次置于的后面。转第2.7步。
B.6更新集合U:先将节点X″从U中删除;然后根据(24)式由得到计算将中大于l的节点存入U,例如则将节点存入U。
B.7更新集合G:先将存入G中,置于节点X″的后面;然后将中大于或等于1的节点存入G中,并按照的输出编号从小到大的顺序依次置于的后面。
2.7判断U是否为空,若为空,则输出诊断树G;否则,转第2.3步。
采用本发明可达到以下技术效果:
(1)由于采集测试结果可靠度、错误诊断代价、隔离精度等数据,并将这些新增数据应用于新设计的双启发函数(即启发函数-I和启发函数-II)中,因此所构建的诊断树可满足不同的诊断精度要求,且准确度较高。
(2)本发明采用两步(即采用双启发函数)确定一个测试,即第一步,先用启发函数-I构造出以各候选测试为顶点的临时诊断树;第二步,再用启发函数-II计算和比较这些临时诊断树,得到最佳诊断树,将该诊断树的第一个测试作为当前最佳测试。本发明不像贪婪搜索方法一步(即采用一个启发函数)确定一个测试,仅考虑当前的诊断效率,因此最优性要比贪婪搜索方法好;且本发明没有AO*搜索方法中的反复修正和重选操作,因此搜索速度要比AO*搜索方法快。因此本发明在最优性和简单性方面获得了较好的权衡,可以满足工程上对最优性和简单性方面的要求。
附图说明
图1是诊断树示意图。
图2是本发明第二步的流程图。
图3是图2中第2.4步(计算出所有测试的启发函数-II值)的流程图。
图4是图3中第2.4.5步中计算测试tk的启发函数-I值的流程图。
图5是图3中第2.4.9步(利用Gj并计算tj的启发函数-II值)的流程图。
具体实施方案
图1描述的是一棵诊断树。圆圈表示模糊集(即由可疑故障构成的集合),圈中字符表示可疑故障(即此时根据已执行测试推断被测装备可能发生的故障模式)。根据位置不同,模糊集分为三类:位于最顶端的称为根节点,为最初待诊断的模糊集;最底端的称为叶节点,为已满足故障隔离精度要求或者无法进一步隔离的模糊集;其余模糊集称为枝节点,为诊断中产生的待诊断模糊集。方框表示测试,框中字符为测试编号;标注字符的连接线表示测试输出结果。
图2是本发明第二步应用启发函数-I和启发函数-II构造诊断树的流程图,步骤如下:
2.1输入第一步中所采集的数据。
2.2创建集合G和U并初始化。
2.3从U中选出下一步待伸展的节点,记为X″。
2.4计算集合T中所有测试对X″诊断时的启发函数-II值。其具体步骤结合图3介绍。
2.5比较所有测试的启发函数-II值,选出具有最大启发函数-II值的那个测试。
2.6更新集合U和G。
2.7判断U是否为空,若不为空,转第2.3步;若为空,则输出诊断树G。
图3是图2中第2.4步计算所有测试的启发函数-II值的流程图,步骤如下:
2.4.1创建循环控制变量j,令j=1。
2.4.2根据(8)式计算得到节点X″由tj向下伸展得到的新节点
2.4.3创建集合Gj和Uj并初始化。
2.4.4从Uj中选出下一步待扩展的节点,记为X′。
2.4.5计算出集合T中所有测试的启发函数-I值。其中测试tk的启发函数-I值的计算步骤结合图4介绍,其他测试的启发函数-I值的计算步骤同此。
2.4.6比较所有测试的启发函数-I值,选出启发函数-I值最大的那个测试tΩ。
2.4.7更新集合Uj和Gj。
2.4.8判断Uj是否为空,若为空,转第2.4.9步;若不为空,转第2.4.4步。
2.4.9利用Gj计算tj的启发函数-II值,具体步骤结合图5介绍。
2.4.10判断是否所有测试均已通过计算得到启发函数-II值,若是,则返回所有测试的启发函数-II值;否则,令j=j+1,转第2.4.2步。
图4是图3中第2.4.5步中计算tk的启发函数-I值的流程图,步骤如下:
2.4.5.2计算节点X′由tk向下伸展出的新节点
2.4.5.3判断故障隔离精度参数l是否为0,若l=0,则执行A.1-A.2步;否则,执行B.1-B.2步。
A.1-A.2根据(10)式计算tk的启发函数-I值。
B.1-B.2根据(14)式计算tk的启发函数-I值。
图5是图3中第2.4.9步利用Gj计算tj的启发函数-II值的流程图,步骤如下:
2.4.9判断故障隔离精度参数l是否为0,若l=0,则执行A.5步;否则,执行B.5步。
A.5根据式(17)计算测试tj的启发函数-II值。
B.5根据式(23)计算测试tj的启发函数-II值。
Claims (4)
1.一种基于双启发函数的诊断树构造方法,其特征在于包括以下步骤:
第一步,针对被测装备采集以下数据:
1.1从被测装备故障模式、影响及危害性分析报告即FMECA报告中获得被测装备故障集F={f0,f1,…,fm},其中,f0表示被测装备无故障,f1,…,fm依次表示被测装备第1至第m个故障,m表示被测装备的故障数目;
1.2从被测装备FMECA报告中获得被测装备的功能模块集A={a1,a2…,ag},a1,a2,…,ag依次表示第1至第g个功能模块,g是被测装备所有功能模块的数目;
1.3从被测装备FMECA报告中获得被测装备各故障f1,…,fm隶属被测装备功能模块编号的矢量V=[v1,v2,…,vm],v1,…,vm分别表示故障f1,…,fm所隶属的功能模块的编号;再由矢量V获得各模块a1,…,ag包含的故障集M1,…,Mg,集合Mξ由下式计算:
Mξ={fρ|vρ=ξ,0≤ρ≤m},1≤ξ≤g (1)
1.4通过计算获得故障概率集P={P(f0),…,P(fm)},其中,P(f0)表示被测装备无故障的概率,由(2)式计算;P(fθ)表示故障fθ发生的概率,由(3)式计算得到:
1.5从被测装备测试性设计方案报告中获得可用测试集T={t1,t2,…,tn},t1,…,tn分别表示第1至第n个测试,n为测试总数目;
1.6从被测装备测试性设计方案报告中获得测试的代价集C={c1,…,cn},c1,…,cn分别表示测试t1至tn的耗时;
1.7从被测装备测试性设计方案报告中获得测试输出数目集W={w1,w2,…,wn},w1,…,wn分别表示测试t1至tn的输出数目;
1.8采用相关性矩阵分析方法得到被测装备故障-测试相关性矩阵B=[bαα′α″],其元素bαα′α″∈{0,1}表示第α个故障模式fα′与第α′个测试tα′的第α″个输出的相关性,下标0≤α≤m,1≤α′≤n,1≤α″≤wα′,若fα′发生时tα′为第α″个输出,则bαα′α″=1,否则bαα′α″=0;
1.9通过以下方法获得测试可靠度矩阵D=[dββ′β″],其元素dββ′β″∈[0,1],表示故障fβ发生时tβ′为第β″个输出的概率,下标0≤β≤m,1≤β′≤n,1≤β″≤wβ′,D满足获取该矩阵的方法是:从被测装备测试性设计方案报告得到tβ′第β″个输出的取值区间根据中心极限定理和被测装备测试随机误差的性质,当被测装备处于状态fβ时,tβ′的测量值χβ′服从正态分布正态分布参数采用小子样理论得到,套用(4)式得到元素dββ′β″:
(4)式中,函数Φ(·)通过查阅正态分布表得到;然后,在除fβ以外的其它故障状态下计算tβ′的测量值的分布函数,再套用(4)式得到相应的矩阵元素,进而得到整个矩阵D;
1.10确定隔离精度参数l∈{0,1,…,L},其中,l=0时表示要求隔离到单个故障模式,当1≤l≤L时表示要求隔离到l个功能模块;
1.11计算修复被测装备的故障或更换发生故障的功能模块所需代价集R={r1,…,rm,R1,…,Rg},其中,r1,…,rm分别表示修复第1至第m个故障所需的时间;R1,…,Rg分别表示更换第1至第g个功能模块所需的更换时间;
1.12计算未正确修复故障或未正确更换发生故障的功能模块所造成的损失集E={e1,…,em,E1,…,Eg},其中,e1,…,em分别表示第1至第m个故障发生而未对相应的故障进行维修所造成的损失;E1,…,Eg分别表示第1至第g个功能模块发生故障而未对相应功能模块进行维修所造成的损失;未正确修复故障的损失采用(5)式进行计算;未正确更换故障模块的损失采用(6)式进行计算:
(5)和(6)式中,hη和hη′分别为故障fρ和fρ′的严酷度,由被测装备FMECA报告获取,表示功能模块Mξ所含故障中最大的严酷度值;
第二步,应用启发函数-I和启发函数-II采用自顶向下伸展的方式构造诊断树,方法是:
2.1输入第一步中所采集的数据;
2.2创建集合G和U并初始化,方法是:创建集合G,令G={F}={{f0,f1,…,fm}};再创建集合U,令U={F}={{f0,f1,…,fm}};
2.3从U中选出下一步待伸展的节点,方法是:先依次计算U中各节点的概率即该节点中所含故障的概率之和,然后比较各节点概率大小,选择其中概率最大的节点作为下一步准备伸展的对象,将该节点记为X″;
2.4执行2.4.1至2.4.10步,计算集合T中所有测试的启发函数-II值,方法是:
2.4.1创建循环控制变量j,令j=1;
2.4.2计算节点X″通过测试tj向下伸展出的新节点具体方法是:先读取相关性矩阵B中tj第1至第wj个输出对应的列矢量,再利用这些列矢量计算由tj向下伸展出的节点,由tj第δ个输出向下伸展出的节点X″jδ为:
2.4.3创建集合Gj,先令再创建集合Uj,令
2.4.4采用第2.3步中的方法从Uj中选出下一步待伸展的节点,记为X′;
2.4.5执行第2.4.5.1~2.4.5.4步,计算集合T中所有测试的启发函数-I值:
2.4.5.1创建循环控制变量k,令k=1;
2.4.5.2计算节点X′由tk向下伸展出的节点具体方法是:先读取相关性矩阵B中tk第1至第wk个输出对应的列矢量,再利用这些列矢量依次计算由tk伸展出的节点,由tk第个输出向下伸展出的节点为:
2.4.5.3计算测试tk的启发函数-I值,方法是:先获取故障隔离精度参数l,若l=0,则执行A.1-A.2步;若l≥1,则执行B.1-B.2步:
A.1依次计算节点的模糊度模糊度即节点中故障的个数;然后将分别同‖X′‖进行比较,只要有一个相等,则令tk的启发函数-I值为0,即令Ik=0,若均不相等,则执行A.2步;
A.2根据(10)式计算tk的启发函数-I值:
(10)式中,J(X′;tk)表示tk对节点X′诊断后所获得的信息;ck为tk的执行代价,从测试代价集合C中获得;N(X′,tk)表示由于tk结果不准确造成的误诊代价;J(X′;tk)和N(X′,tk)分别由(11)式和(12)式计算,
(11)式中,“lb”表示取以2为底的对数;P(X′)和分别表示节点X′和的概率,根据(7)式计算,
(12)式中,表示发生时tk为第个输出的概率,从测试可靠度矩阵D中获得;表示发生却未能维修造成的损失,从损失集合E中获取;表示修复故障的代价,从维修代价集合R中获取;
B.1由节点分别得到由疑似发生故障的功能模块构成的集合Y′和由下式计算得到:
再依次计算节点的模糊度然后将分别同‖Y′‖进行比较,只要有一个相等,则令tk的启发函数-I值为0,即令Ik=0,若均不相等,则执行B.2步;
B.2根据下式计算tk的启发函数-I值Ik:
(14)式中,Jl(X′;tk)表示测试tk将X′中的故障隔离到l个功能模块所获得的诊断信息,根据(15)式计算得到;具体方法是:先将分别与故障隔离精度参数l比较,若先令再代入(15)式计算;否则,直接将代入(15)式计算;
Nl(X′,tk)表示由于tk不准确造成的误诊代价,由(16)式计算,
(16)式中,表示故障所的属功能模块;表示功能模块发生故障而未进行更换所造成的损失,从损失集合E中获取;Rφ表示更换功能模块aφ的代价,从维修代价集合R中获取;
2.4.5.4判断k=n是否成立,n为全部候选测试数目,若成立,则转第2.4.6步;否则,令k=k+1,转第2.4.5.2步;
2.4.6比较集合T中所有测试的启发函数-I值I1,…,In,选出启发函数-I值最大的那个测试tΩ;
2.4.7更新集合Uj和Gj,方法是根据(9)式计算节点X′由tΩ向下伸展出的新节点然后根据故障隔离精度参数选择下一步骤,若l=0,则执行A.3-A.4步;若l≥1,则执行B.3-B.4步:
A.3更新集合Uj:先将已经向下伸展出分枝的节点X′从Uj中删除;然后计算节点的模糊度将中大于1的节点存入Uj中;
A.4更新集合Gj:先将tΩ存入Gj中,置于节点X′的后面;然后将中大于或等于1的节点存入Gj中,并按照tΩ的输出编号从小到大的顺序依次置于tΩ的后面,再将中等于1的节点标记为叶节点,转第2.4.8步;
B.3更新集合Uj:先将X′从Uj中删除;再根据(13)式由得到计算模糊度将中大于l的节点存入Uj;
B.4更新集合Gj:先将tΩ存入Gj中,置于节点X′的后面;然后将中大于或等于1的节点存入Gj中,并按照tΩ的输出编号从小到大的顺序依次置于tΩ的后面;最后将中小于或等于l的节点标记为叶节点;
2.4.8判断Uj是否为空,若为空,则转第2.4.9步;否则,转第2.4.4步;
2.4.9利用第2.4.2~2.4.8步得到的诊断树Gj,计算测试tj的启发函数-II值,根据故障隔离精度参数选择下一步骤,若l=0,执行A.5步;若l≥1,执行B.5步:
A.5根据(17)式计算tj的启发函数-II值:
(17)式中,K(X″;Dj)表示诊断树Gj对节点X″诊断后所获得的诊断信息,H(X″,Gj)表示Gj的平均测试代价,S(X″,Gj)表示由于Gj中的测试结果不准确可能造成的平均误诊代价,K(X″;Gj)、H(X″,Gj)和S(X″,Gj)分别由(18)、(20)、(21)式计算得到:
(18)式中,Zj为诊断树Gj所有叶节点的数目;x″jγ表示Gj的第γ个叶节点,P(x″jγ)表示其概率,由(19)式计算:
(20)式中,Gj(γ)表示从诊断树Gj的第一个测试tj到第γ个叶节点x″jγ的测试序列;‖Gj(γ)‖表示该序列的测试数目;表示该序列中第π个测试的代价,
(21)式中,P(x″jγ|fψ)表示当真实故障是fψ而诊断结论为x″jγ的概率,由(22)式计算:
(22)式中,表示序列Gj(γ)中第π个测试的输出;表示fψ发生时,测试为第个输出的概率,由测试可靠度矩阵得到,转第2.4.10步;
B.5根据式(23)计算tj的启发函数-II值:
(23)式中,Kl(X″;Gj)表示诊断树Gj将节点X″隔离到l个功能模块所获得的诊断信息,Hl(X″,Gj)为Gj的平均测试代价,Sl(X″,Gj)表示由于Gj中的测试结果不准确可能造成的平均误诊代价;
2.4.10判断j=n是否成立,若成立,转第2.5步;否则,令j=j+1,转第2.4.2步;
2.5比较所有测试的启发函数-II值II1,…,IIn,选出启发函数-II值最大的那个测试
2.6更新集合U和G,方法是:先根据(8)式计算节点X″由向下伸展得到新节点再根据故障隔离精度参数选择下一步骤,若l=0,执行A.6-A.7步;若l≥1,执行B.6-B.7步:
A.6更新集合U:先将已经向下伸展出分枝的节点X″从U中删除;然后计算由X″伸展出的新节点的模糊度将中大于1的节点存入U中;
A.7更新集合G:先将存入G中,置于节点X″的后面;然后将中大于或等于1的节点存入G中,并按照的输出编号从小到大的顺序依次置于的后面,转第2.7步;
B.6更新集合U:先将节点X″从U中删除;然后根据(24)式由得到计算将中大于l的节点存入U;
B.7更新集合G:先将存入G中,置于节点X″的后面;然后将中大于或等于1的节点存入G中,并按照的输出编号从小到大的顺序依次置于的后面;
2.7判断U是否为空,若为空,则输出诊断树G;否则,转第2.3步。
2.如权利要求1所述的一种基于双启发函数的诊断树构造方法,其特征在于确定隔离精度l的方法是:在面向基层级或中继级维修时,将隔离精度l设定为1~3个外场可更换单元LRU或者内场可更换单元SRU;在面向基地级维修时,将隔离精度l设定为0,即隔离到单个故障模式。
3.如权利要求1所述的一种基于双启发函数的诊断树构造方法,其特征在于hη和hη′取值范围为1~4,越严酷数值越大。
4.如权利要求1所述的一种基于双启发函数的诊断树构造方法,其特征在于式(23)中Kl(X″;Gj)计算方法是:
首先,根据(24)式由诊断树Gj的根节点X″得到集合Y″,Y″是由可能发生故障的功能模块构成的集合,
然后,由Gj中的叶节点得到相应的疑似发生故障的功能模块集合,根据(25)式由叶节点得到集合
计算模糊度再将同故障隔离精度参数l比较,当时,令再代入第(26)式中计算;当时,直接代入(26)式计算,
Hl(X″,Gj)由(27)式计算得到:
(27)式中,表示由诊断树Gj的第一个测试tj到叶节点的测试序列;表示该序列的测试数目;表示该序列中第个被执行的测试的费用;
所述Sl(X″,Gj)由(28)式计算得到:
(28)式中,表示当真实故障是fρ而诊断为的概率,根据(22)式计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010047186.8A CN106342308B (zh) | 2010-01-08 | 2010-01-08 | 一种基于双启发函数的诊断树构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010047186.8A CN106342308B (zh) | 2010-01-08 | 2010-01-08 | 一种基于双启发函数的诊断树构造方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106342308B true CN106342308B (zh) | 2013-10-16 |
Family
ID=58358239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010047186.8A Active CN106342308B (zh) | 2010-01-08 | 2010-01-08 | 一种基于双启发函数的诊断树构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106342308B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110050241A (zh) * | 2016-12-15 | 2019-07-23 | 罗伯特·博世有限公司 | 用于确定一个或者多个部件的可能的故障的精确定位-能力的装置和方法 |
-
2010
- 2010-01-08 CN CN201010047186.8A patent/CN106342308B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110050241A (zh) * | 2016-12-15 | 2019-07-23 | 罗伯特·博世有限公司 | 用于确定一个或者多个部件的可能的故障的精确定位-能力的装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106872657B (zh) | 一种多变量水质参数时序数据异常事件检测方法 | |
CN101251579B (zh) | 一种基于支持向量机的模拟电路故障诊断方法 | |
CN105955069B (zh) | 一种基于在线仿真的核电站系统级状态监测方法 | |
CN103713628B (zh) | 基于符号有向图和数据重构的故障诊断方法 | |
CN103983453A (zh) | 一种航空发动机的执行机构和传感器故障诊断的区分方法 | |
CN107301884A (zh) | 一种混合式核电站故障诊断方法 | |
CN106408687B (zh) | 一种基于机器学习方法的汽车发动机故障预警方法 | |
CN106444701A (zh) | 领导‑跟随型多智能体系统的有限时间鲁棒故障诊断设计方法 | |
CN108732528A (zh) | 一种基于深度置信网络的数字化电能表故障诊断方法 | |
CN109657789A (zh) | 基于小波神经网络的风机齿轮箱故障趋势预测方法 | |
CN104899327A (zh) | 一种无类别标签的时间序列异常检测方法 | |
CN108761377A (zh) | 一种基于长短时记忆模型的电能计量装置异常检测方法 | |
CN109543743B (zh) | 一种基于重建预测残差的制冷机组多传感器故障诊断方法 | |
CN113204921B (zh) | 飞机涡扇发动机的剩余使用寿命预测方法及系统 | |
CN105629958A (zh) | 一种基于子时段mpca-svm的间歇过程故障诊断方法 | |
CN110046409A (zh) | 一种基于ResNet的汽轮机部件健康状态评估方法 | |
CN108090606A (zh) | 设备故障发现方法及系统 | |
CN106940678A (zh) | 一种系统实时健康度评估分析方法及装置 | |
CN109635933A (zh) | 基于bp神经网络广域信息管理系统可生存性评估模型方法 | |
CN106951359A (zh) | 一种系统健康度检测分析方法及装置 | |
CN105629109A (zh) | 基于art1神经网络的油浸式变压器故障诊断方法 | |
CN106342308B (zh) | 一种基于双启发函数的诊断树构造方法 | |
CN107918381A (zh) | 一种基于组合核函数的类均值核主元故障诊断方法 | |
CN106802599A (zh) | 一种基于专家数据库的电力变压器故障诊断系统 | |
CN110412417B (zh) | 基于智能电力监测仪表的微电网数据故障诊断方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR03 | Grant of secret patent right | ||
GRSP | Grant of secret patent right | ||
DC01 | Secret patent status has been lifted | ||
DCSP | Declassification of secret patent |