基于逻辑相容性的数字电路故障诊断方法及系统的制作方法

文档序号:6354702阅读:269来源:国知局
专利名称:基于逻辑相容性的数字电路故障诊断方法及系统的制作方法
技术领域
本发明涉及一种基于逻辑相容性的数字电路故障诊断方法及系统。
背景技术
近年来,基于模型诊断的研究与应用是诊断测试领域所关注的热点,发展很快,出现了多种解决方案。相比于传统的诊断方法,近年来发展起来的基于模型的诊断具有明显的优势,即不依赖于经验、独立于设备、模型可以重用。

传统诊断都是基于经验的诊断(也称为基于“浅知识”的诊断),这种诊断主要依靠领域专家对诊断对象的经验知识,这种方法对应用领域有极强依赖性,即对一个对象适用的诊断不能用在另外一个诊断对象上。采用这种方法的计算机诊断系统主要有两类一类是基于规则的诊断系统,另一类是使用判别树的诊断系统。这种诊断系统的难题是知识获取一方面领域专家需要长时间积累才能获得诊断对象知识(事实上这些知识总是不完备的);另一方面,从领域专家那里获得知识并转化成计算机系统可用的产生式规则也是一大问题。因此开发这种计算机辅助的诊断系统所需研制周期较长,跟不上设备更新换代的步伐(往往知识积累还不充分时,产品已更新,一些旧知识对新产品已没有价值),满足不了应用的需要,对于不断采用新技术新设计的电子电路产品更是如此。基于模型诊断是使用系统的结构与行为知识作为背景理论的,是一种全新的诊断,被一些人工智能专家誉为诊断理论和技术上的革命。相容性诊断是一种典型的基于模型诊断,其主要思想是根据系统组成元件与元件之间的连接关系建立待诊断系统的模型 (如结构,功能,行为),这种模型通常用一阶逻辑语句来描述,根据系统的逻辑模型以及系统的输入,我们能通过逻辑的推理理论推导出系统在正常情况下预期行为,如果观测到的系统实际行为与系统预期行为有差异,就说明系统在逻辑上是不相容的,即存在故障组件, 利用逻辑的推理理论,我们能够确定引发故障的元件集合。在实际应用中举例来说明传统诊断和基于模型诊断的区别基于经验的诊断类似于中医的诊断,基于模型的诊断类似于西医的诊断。在中医的诊断中,医生的诊断全凭经验。医生不考虑人的身体结构,不考虑人体各器官的功能和它们之间的连接,因此也就无法像西医那样对病人做手术治疗,例如换心、换肾等手术。对于基于经验的诊断的一个重要目的是为诊断的对象(病人)开出药方,病人在服用了开出的药方之后,改善了生理的运行机理,恢复了健康。经过二十多年的发展,基于模型诊断在理论和应用上已逐步走向成熟。基于模型诊断主要包括系统建模、诊断求解两部分。开创性的工作是de Kleer的INTER系统和Brown 的WATSON系统。九十年代,人工智能领域出现了比较著名的故障诊断系统GDE,软件工程领域出现了把基于模型诊断应用于程序错误诊断的基于模型的软件调试方法(参考文献[1, 2]),其中使用了一种针对基于模型诊断的模型化需求而提出的一阶模型描述语言AD2L语言(参考文献[3])。目前一些开发的基于模型诊断系统已应用到实际中,例如在工程领域,Mostermen和Biswas成功地把Lackinger和Nejdl提出的动态系统的监视与诊断相结合的方法应用到增殖反应堆辅助冷却循环系统的故障诊断上;在医学领域,有帮助医生诊断与修复外伤治疗的TrauAID系统;在经济领域,有Hamscher的应用于财会审计的决策系统 CROSBY。诊断求解方面,经典的有R. Reiter的HS-树(参考文献W])。国内在这方面的研究工作比较多地集中在计算碰集的算法上,例如姜云飞、林笠提出的布尔代数方法(参考文献[6])、BHS-树计算碰集(参考文献[7]),以及欧阳丹彤提出的CSSE-tree方法计算碰集。国内对模型化、冲突识别、候选产生的系统研究较少,本发明是在借鉴前人研究成果的基础上,根据发明人的研究成果(参考文献[1,2,5,6,7]),设计并实现一种解决数字电路诊断问题的诊断系统及方法。本发明所使用的背景技术包含在以下参考文献中[1]R. Chen, F. Wotawa. Diagnosing Program Errors with Light-weightedSpecifications, LNAI 4031,639-649,2006,Springer.[2]R. Chen, F. ffotawa. An Object Store Model for Diagnosing JavaPrograms, LNCS 3809,865-870,2005.[3]Thomas Havelka, Markus Stumptner, and Franz ffotawa. Ad21-aprogramming language for model-based systems. 2000.[4]Raymond Reiter. A theory of diagnosis from first principles [j]. Artificial Intelligence,32(1) :57-95,1987.[5]陈荣,姜云飞.含约束的基于模型的诊断系统,计算机学报,24(2) :127-13b, 2001。[6]姜云飞,林笠.用布尔代数方法计算最小碰集.计算机学报,26(8) 919—924,2003。[7]姜云飞,林笠.用对分HS树计算最小碰集.计算机学报,13(22) :2267-2274, 2002。

发明内容
本发明是为了克服现有技术中的不足之处,旨在摆脱传统诊断方法的局限性,实现一种基于数字电路组件模型的诊断测试系统。从冲突识别到候选产生和探测,整个操作过程简单、用时短,系统对故障点的判别定位不依赖于操作人员或专家的经验。本发明采用的技术手段如下一种基于逻辑相容性的数字电路故障诊断系统,其特征在于包括数字电路图形化建模单元,用于图形化的组件拖放方式搭建一个被诊断的数字电路系统;描述配置单元,使用AD2L语言表示数字电路图形化建模单元所建立的数字电路系统并以文件的形式存储,同时用户输入诊断系统输入端的输入值、输出端的实际观测值、 诊断个数上限以及诊断算法选择;AD2L语言解析单元,用于读取描述配置单元存储的数字电路描述文件,经过单词扫描和语法解析,将该描述文件在计算机内部表示为约束网络这样的数据结构,其中结点
5就是组件,边就是电路上的连线;定理证明器单元,用于对AD2L语言解析单元创建的约束网络进行冲突识别,即在描述文件的约束网络上进行前向式的推导算法和后向式的推导算法;诊断算法单元,采用用户选择的算法HS_树、BHS-树或布尔代数方法对定理证明器单元的冲突识别进行诊断,以产生诊断候选;故障定位单元,把诊断算法单元产生的诊断结果对应到电路中的组件,并在图形化的数字电路上突出显示该组件以示可疑。(还可对于诊断进行进一步的鉴别)一种基于逻辑相容性的数字电路故障诊断方法,其特征在于包括如下步骤1)程序启动后,用户使用对话框指定位置打开一个工程;2)用户通过数字电路图形化建模单元搭建一个被诊断的数字电路系统,这里需要用户选用数字电路门级标准组件(如与门、或门、非门),拖放到目标位置,连接组件的输入和输出端口形成完整的电路系统;3)用户使用描述配置单元设定该电路输入端的输入值、输出端的实际观测值、诊断个数上限以及诊断算法选择,使用AD2L语言表示数字电路图形化建模单元所建立的数字电路系统并以文件的形式存储;4)用户通过AD2L语言解析单元读取描述配置单元存储的数字电路描述文件,系统正确解析该电路描述文件,在计算机内部将其表示为一张称为约束网络的数据结构,其中结点就是组件,边就是电路上的连线;5)假设所有组件都正常工作,定理证明单元应用用户提供的输入值、实际输出值和观测点上的实际观测值,启动这个约束网络上的正常组件进行工作,由输入端向输出端传播值,或者是由输出端向输入端传播值,搜索哪些点上出现了多个值,即逻辑上的不一致记为冲突点,记录该冲突是在假设哪些组件正常工作而引起的记为矛盾假设,如此发现更多的冲突点,记录所有的矛盾假说,汇总形成诊断算法所使用的全体冲突;6)针对得到的冲突集合,诊断算法单元利用诊断算法HS-树、BHS-树或布尔代数方法进行诊断求解,计算出诊断候选;7)故障定位单元把第6步的诊断结果对应到电路中的可疑组件,在图形化的数字电路上突出显示可疑组件;8)需要进一步对候选诊断鉴别时,为用户指定进一步的观测点,用户提供这些观测点的实际观测值,返回步骤5 ;否则执行第9步;9)汇总所有的诊断结果及其相关说明,并生成一份完成的诊断测试报告。所述步骤4还包括AD2L语言解析单元扫描文件中关键词,再解析AD2L语言所认可的语法单位,创建电路描述文件所对应的约束网络;如发现文件中有语法错误,系统会向用户报错,直到用户修改完所有的语法错误为止。本发明中,对如何产生候选的诊断,用户可以有多种选择,既可以选择经典的 R. Reiter诊断算法HS-树[2]及其改进算法,也可以选择本发明所提出的BHS-树和布尔代数方法等。本发明中的BHS-树算法是利用二叉树来计算碰集,比HS-树要简单、易于实现, 效率也高于HS-树,且不需要剪枝,不会丢失正确解。本发明中的布尔代数方法是在BHS-树基础上,进一步对算法进行改进,使得不必要建立树的数据结构,且该算法只需要一趟计算即可得到碰集,(HS-树、BHS-树需要建立树和回溯计算碰集两个步骤)效率比BHS-树又有一定的提高。本发明是一种基于模型的诊断方法,它不像专家系统那样需要领域专家的经验知识,而是以被诊断系统的结构与行为知识(如物理原理、定律、公式)为背景理论。在某些领域传统的基于经验的诊断方法不适用。例如对于电子、电器产品来说。诊断的目的是找出有毛病的元件,然后更换这些元件,使系统恢复正常工作。这类诊断需要大量的关于系统结构的知识,而模型就是对系统结构性知识的描述,而且当前电子、电器、软件等产品的更新换代步伐非常迅速使得这类产品的生命周期一般都很短。而基于经验的诊断主要依赖于专家知识。专家知识的形成、总结和积累需要一个较长的过程,等到专家知识积累起来,再依据这些知识研制出新的诊断系统,它所要诊断的产品可能已经淘汰了,或者已经过时了。 本发明的优点是模型可以从产品设计或制造时,利用知识开始构造,避免从领域专家获取知识的困难;只要模型抽象的正确,就能诊断所有可能的故障,不但能处理新故障(传统诊断往往无能为力),而且还能给出令人信服的解释。并且由于它把系统的推理内核与系统模型分开,只要更新系统模型就可用于诊断另外一种设备,因而具有设备独立性,可推广性好。


图1为本发明用于基于逻辑一致性的数字电路诊断系统的结构示意图;图2为本发明用于基于逻辑一致性的数字电路诊断系统的工作流程图;图3为本发明实施例1中测试电路的结构示意图;图4为本发明实施例2中测试电路的结构示意图。
具体实施例方式本发明所述的基于逻辑一致性的数字电路诊断系统实现了基于模型诊断的全部过程,即模型表示、冲突识别、候选产生、故障定位等内容,此外本发明还给出了改进的诊断算法,包括HS树、BHS树和布尔代数方法等。图1给出了本发明的结构示意图,包括数字电路图形化建模单元101,用于图形化的组件拖放方式搭建一个被诊断的数字电路系统,并设定该电路的输入和输出端的观测值,由 DComponent、DCSubcomponent、DCOr> DCNor> DCAnd> DCNand> DCNot> DCXor> DCXnor, DCAdd、DCMul, DCPort类组成,其中每个类下都实现了标准组件的功能,即正常工作模式下和故障模式下的行为,例如考虑DCAdd组件,正常工作模式下其输入和输出必须满足out(DCAdd) = inl(DCAdd)+in2(DCAdd),而默认的故障模式是输出固定值。描述配置单元102使用AD2L语言表示数字电路图形化建模单元所建立的数字电路系统并以文件的形式存储,同时用户输入诊断系统输入端的输入值、输出端的实际观测值、诊断个数上限以及诊断算法选择,由FileAccessor和Configurator类组成。AD2L语言解析单元 103用于读取描述配置单元存储的数字电路描述文件,经过单词扫描和语法解析,将该描述文件在计算机内部表示为约束网络这样的数据结构,其中结点就是组件,边就是电路上的连线,它包含扫描器和解析器两部分,其中扫描器由Generickarmer、LogicScanner, GenericToken>KeywordToken>E0IToken>ErrorToken> IdToken 类组成,角军析器由 LObject、 LTruePredicate> LFalsePredicate> LVariabIe> LFunctor> LPredicate、LSentence、LSentences类组成。定理证明单元104用于对AD2L语言解析单元创建的约束网络进行冲突识别,即在描述文件的约束网络上进行前向式的推导算法和后向式的推导算法,由 TPObject、MBDTheoremProver > TPPropos it ion、 TPAssumption、TPRule g^Sj^。 单元105采用用户选择的算法HS-树、BHS-树或布尔代数方法对定理证明器单元的冲突识别进行诊断,以产生诊断候选,由 TPDiagnosor、HSTreeDiagnosor, BHSTreeDiagnosor, BADiagriosor、GADiagnosor> GenericNode、HSNode> BNSNode> GACoder> BADCoder M 成。故障定位单元106主要用于定位电路中的可疑组件,由Diagnoses、ValueHolder, DiagnosisPlacer类组成;把诊断算法单元产生的诊断结果对应到电路中的组件,并在图形化的数字电路上突出显示该组件以示可疑,还可对于诊断进行进一步的鉴别。结合图2说明本发明基于逻辑一致性的数字电路诊断系统的工作流程。1)程序启动后,用户使用对话框指定位置打开一个工程;2)用户通过数字电路图形化建模单元搭建一个被诊断的数字电路系统,这里需要用户选用数字电路门级标准组件(如与门、或门、非门),拖放到目标位置,连接组件的输入和输出端口形成完整的电路系统;3)用户使用描述配置单元设定该电路输入端的输入值、输出端的实际观测值、诊断个数上限以及诊断算法选择,使用AD2L语言表示数字电路图形化建模单元所建立的数字电路系统并以文件的形式存储;4)用户通过AD2L语言解析单元读取描述配置单元存储的数字电路描述文件,系统正确解析该电路描述文件,在计算机内部将其表示为一张称为约束网络的数据结构,其中结点就是组件,边就是电路上的连线;5)假设所有组件都正常工作,定理证明单元应用用户提供的输入值、实际输出值和观测点上的实际观测值,启动这个约束网络上的正常组件进行工作,由输入端向输出端传播值,或者是由输出端向输入端传播值,搜索哪些点上出现了多个值,即逻辑上的不一致记为冲突点,记录该冲突是在假设哪些组件正常工作而引起的记为矛盾假设,如此发现更多的冲突点,记录所有的矛盾假说,汇总形成诊断算法所使用的全体冲突;6)针对得到的冲突集合,诊断算法单元利用诊断算法HS-树、BHS-树或布尔代数方法进行诊断求解,计算出诊断候选;7)故障定位单元把第6步的诊断结果对应到电路中的可疑组件,在图形化的数字电路上突出显示可疑组件;8)需要进一步对候选诊断鉴别时,为用户指定进一步的观测点,用户提供这些观测点的实际观测值,返回步骤5 ;否则执行第9步;9)汇总所有的诊断结果及其相关说明,并生成一份完成的诊断测试报告。其中步骤4还包括AD2L语言解析单元扫描文件中关键词,再解析AD2L语言所认可的语法单位,创建电路描述文件所对应的约束网络;如发现文件中有语法错误,系统会向用户报错,直到用户修改完所有的语法错误为止,全部修改完才能诊断。步骤2还包括若该位置上不存在一个合法的工程,就在指定位置上为用户新建一个工程;否则,执行步骤3。[第一实施方式]下面以图3所示的全加器为例,对以上基本步骤解释说明。
1)程序启动后,用户使用对话框指定位置打开一个工程。2)用户通过数字电路图形化建模单元101搭建一个如上图所示的全加器数字电路。这里用户选用门级标准组件与门Andl和And2、或门Orl、异或门Xorl和Xor2。用户将它们拖放到心目中的位置,再连接组件的输入和输出端口 -以Xorl为例,它的两个输入端分别与a、b相连,输出端连接到Xor2和And2。这样搭建完成一个完整的全加器电路。3)用户使用描述配置单元102设定该电路输入端a、b、c的值和输出端q、ζ的实际观测值,再设定诊断个数上限,选择诊断算法。使用AD2L语言表示用户搭建完的全加器电路并以文件的形式存储。对于这个全加器而言,就是系统使用AD2L语言描述图中所示的全加器电路,最终存储为文本文件的形式。如前所述,AD2L语言是一种针对基于模型诊断的模型化需求而提出的一阶模型描述语言[1],它通过定义组件和相关的端口来指定可能包含存在和全称量词相应行为的规则。以全加器图中的与门Andl为例,它的AD2L描述文件如下,其中AD2L称其为andGate类型的部件(component),它有inl和in2两个输入端口 (port),一个out输出端口。5 8行描述了与门的功能行为,即输入端都为true时输出 true (第6行),输入端有一个为false时输出false (第7行),而第5行的nab的含义是缺省假设该与门工作正常(not abnormal)。类似地可以给出全加器图中其它或门Orl、异或门Xorl和Xor2的AD2L描述,即分别定义为orfeite类型部件和xorGate类型部件。篇幅所限不详细写出,不同之处在于部件的功能。
权利要求
1.一种基于逻辑相容性的数字电路故障诊断系统,其特征在于包括数字电路图形化建模单元,用于图形化的组件拖放方式搭建一个被诊断的数字电路系统;描述配置单元,使用AD2L语言表示数字电路图形化建模单元所建立的数字电路系统并以文件的形式存储,同时用户输入诊断系统输入端的输入值、输出端的实际观测值、诊断个数上限以及诊断算法选择;AD2L语言解析单元,用于读取描述配置单元存储的数字电路描述文件,经过单词扫描和语法解析,将该描述文件在计算机内部表示为约束网络这样的数据结构,其中结点就是组件,边就是电路上的连线;定理证明器单元,用于对AD2L语言解析单元创建的约束网络进行冲突识别,即在描述文件的约束网络上进行前向式的推导算法和后向式的推导算法;诊断算法单元,采用用户选择的算法HS-树、BHS-树或布尔代数方法对定理证明器单元的冲突识别进行诊断,以产生诊断候选;故障定位单元,把诊断算法单元产生的诊断结果对应到电路中的组件,并在图形化的数字电路上突出显示该组件以示可疑。
2.一种基于逻辑相容性的数字电路故障诊断方法,其特征在于包括如下步骤1)程序启动后,用户使用对话框指定位置打开一个工程;2)用户通过数字电路图形化建模单元搭建一个被诊断的数字电路系统,这里需要用户选用数字电路门级标准组件,拖放到目标位置,连接组件的输入和输出端口形成完整的电路系统;3)用户使用描述配置单元设定该电路输入端的输入值、输出端的实际观测值、诊断个数上限以及诊断算法选择,使用AD2L语言表示数字电路图形化建模单元所建立的数字电路系统并以文件的形式存储;4)用户通过AD2L语言解析单元读取描述配置单元存储的数字电路描述文件,系统正确解析该电路描述文件,在计算机内部将其表示为一张称为约束网络的数据结构,其中结点就是组件,边就是电路上的连线;5)假设所有组件都正常工作,定理证明单元应用用户提供的输入值、实际输出值和观测点上的实际观测值,启动这个约束网络上的正常组件进行工作,由输入端向输出端传播值,或者是由输出端向输入端传播值,搜索哪些点上出现了多个值,即逻辑上的不一致记为冲突点,记录该冲突是在假设哪些组件正常工作而引起的记为矛盾假设,如此发现更多的冲突点,记录所有的矛盾假说,汇总形成诊断算法所使用的全体冲突;6)针对得到的冲突集合,诊断算法单元利用诊断算法HS-树、BHS-树或布尔代数方法进行诊断求解,计算出诊断候选;7)故障定位单元把第6步的诊断结果对应到电路中的可疑组件,在图形化的数字电路上突出显示可疑组件;8)需要进一步对候选诊断鉴别时,为用户指定进一步的观测点,用户提供这些观测点的实际观测值,返回步骤5 ;否则执行第9步;9)汇总所有的诊断结果及其相关说明,并生成诊断测试报告。
3.根据权利要求2所述的一种基于逻辑相容性的数字电路故障诊断方法,其特征在于所述步骤4还包括AD2L语言解析单元扫描文件中关键词,再解析AD2L语言所认可的语法单位,创建电路描述文件所对应的约束网络;如发现文件中有语法错误,系统会向用户报错,直到用户修改完所有的语法错误为止。
全文摘要
本发明公开了一种基于逻辑相容性的数字电路故障诊断方法及系统,用户通过数字电路图形化建模单元搭建一个被诊断的数字电路系统,然后使用描述配置单元设定该电路的参数并用AD2L语言表示数字电路图形以文件的形式存储;用户通过AD2L语言解析单元读取描述配置单元存储的数字电路描述文件,定理证明单元应用用户提供的参数进行前后传播,记录该冲突;利用诊断算法单元利进行诊断求解;再利用故障定位单元在图形化的数字电路上突出显示可疑组件,并生成诊断测试报告。该系统具有从冲突识别到候选产生和探测,整个操作过程简单、用时短,系统对故障点的判别定位不依赖于操作人员或专家的经验。
文档编号G06F17/50GK102156772SQ201110041818
公开日2011年8月17日 申请日期2011年2月21日 优先权日2011年2月21日
发明者刘洪波, 姜云飞, 张维石, 徐俊洁, 林笠, 邓武, 陈时非, 陈荣, 高健 申请人:大连海事大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1