CN102156772A - 基于逻辑相容性的数字电路故障诊断方法及*** - Google Patents
基于逻辑相容性的数字电路故障诊断方法及*** Download PDFInfo
- Publication number
- CN102156772A CN102156772A CN 201110041818 CN201110041818A CN102156772A CN 102156772 A CN102156772 A CN 102156772A CN 201110041818 CN201110041818 CN 201110041818 CN 201110041818 A CN201110041818 A CN 201110041818A CN 102156772 A CN102156772 A CN 102156772A
- Authority
- CN
- China
- Prior art keywords
- diagnosis
- unit
- circuit
- user
- digital circuit
- 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.)
- Pending
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种基于逻辑相容性的数字电路故障诊断方法及***,用户通过数字电路图形化建模单元搭建一个被诊断的数字电路***,然后使用描述配置单元设定该电路的参数并用AD2L语言表示数字电路图形以文件的形式存储;用户通过AD2L语言解析单元读取描述配置单元存储的数字电路描述文件,定理证明单元应用用户提供的参数进行前后传播,记录该冲突;利用诊断算法单元利进行诊断求解;再利用故障定位单元在图形化的数字电路上突出显示可疑组件,并生成诊断测试报告。该***具有从冲突识别到候选产生和探测,整个操作过程简单、用时短,***对故障点的判别定位不依赖于操作人员或专家的经验。
Description
技术领域
本发明涉及一种基于逻辑相容性的数字电路故障诊断方法及***。
背景技术
近年来,基于模型诊断的研究与应用是诊断测试领域所关注的热点,发展很快,出现了多种解决方案。相比于传统的诊断方法,近年来发展起来的基于模型的诊断具有明显的优势,即不依赖于经验、独立于设备、模型可以重用。
传统诊断都是基于经验的诊断(也称为基于“浅知识”的诊断),这种诊断主要依靠领域专家对诊断对象的经验知识,这种方法对应用领域有极强依赖性,即对一个对象适用的诊断不能用在另外一个诊断对象上。采用这种方法的计算机诊断***主要有两类:一类是基于规则的诊断***,另一类是使用判别树的诊断***。这种诊断***的难题是知识获取:一方面领域专家需要长时间积累才能获得诊断对象知识(事实上这些知识总是不完备的);另一方面,从领域专家那里获得知识并转化成计算机***可用的产生式规则也是一大问题。因此开发这种计算机辅助的诊断***所需研制周期较长,跟不上设备更新换代的步伐(往往知识积累还不充分时,产品已更新,一些旧知识对新产品已没有价值),满足不了应用的需要,对于不断采用新技术新设计的电子电路产品更是如此。
基于模型诊断是使用***的结构与行为知识作为背景理论的,是一种全新的诊断,被一些人工智能专家誉为诊断理论和技术上的革命。相容性诊断是一种典型的基于模型诊断,其主要思想是:根据***组成元件与元件之间的连接关系建立待诊断***的模型(如结构,功能,行为),这种模型通常用一阶逻辑语句来描述,根据***的逻辑模型以及***的输入,我们能通过逻辑的推理理论推导出***在正常情况下预期行为,如果观测到的***实际行为与***预期行为有差异,就说明***在逻辑上是不相容的,即存在故障组件,利用逻辑的推理理论,我们能够确定引发故障的元件集合。
在实际应用中举例来说明传统诊断和基于模型诊断的区别:基于经验的诊断类似于中医的诊断,基于模型的诊断类似于西医的诊断。在中医的诊断中,医生的诊断全凭经验。医生不考虑人的身体结构,不考虑人体各器官的功能和它们之间的连接,因此也就无法像西医那样对病人做手术治疗,例如换心、换肾等手术。对于基于经验的诊断的一个重要目的是为诊断的对象(病人)开出药方,病人在服用了开出的药方之后,改善了生理的运行机理,恢复了健康。
经过二十多年的发展,基于模型诊断在理论和应用上已逐步走向成熟。基于模型诊断主要包括***建模、诊断求解两部分。开创性的工作是de Kleer的INTER***和Brown的WATSON***。九十年代,人工智能领域出现了比较著名的故障诊断***GDE,软件工程领域出现了把基于模型诊断应用于程序错误诊断的基于模型的软件调试方法(参考文献[1,2]),其中使用了一种针对基于模型诊断的模型化需求而提出的一阶模型描述语言AD2L语言(参考文献[3])。目前一些开发的基于模型诊断***已应用到实际中,例如:在工程领域,Mostermen和Biswas成功地把Lackinger和Nejdl提出的动态***的监视与诊断相结合的方法应用到增殖反应堆辅助冷却循环***的故障诊断上;在医学领域,有帮助医生诊断与修复外伤治疗的TrauAID***;在经济领域,有Hamscher的应用于财会审计的决策***CROSBY。
诊断求解方面,经典的有R.Reiter的HS-树(参考文献[4])。国内在这方面的研究工作比较多地集中在计算碰集的算法上,例如姜云飞、林笠提出的布尔代数方法(参考文献[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.Wotawa.An Object Store Model for Diagnosing JavaPrograms,LNCS 3809,865-870,2005.
[3]Thomas Havelka,Markus Stumptner,and Franz Wotawa.Ad2l-aprogramming language for model-based systems.2000.
[4]Raymond Reiter.A theory of diagnosis from first principles [j].Artificial Intelligence,32(l):57-95,1987.
[5]陈荣,姜云飞.含约束的基于模型的诊断***,计算机学报,24(2):127-13b,2001。
[6]姜云飞,林笠.用布尔代数方法计算最小碰集.计算机学报,26(8):919--924,2003。
[7]姜云飞,林笠.用对分HS树计算最小碰集.计算机学报,13(22):2267--2274,2002。
发明内容
本发明是为了克服现有技术中的不足之处,旨在摆脱传统诊断方法的局限性,实现一种基于数字电路组件模型的诊断测试***。从冲突识别到候选产生和探测,整个操作过程简单、用时短,***对故障点的判别定位不依赖于操作人员或专家的经验。本发明采用的技术手段如下:
一种基于逻辑相容性的数字电路故障诊断***,其特征在于包括:
数字电路图形化建模单元,用于图形化的组件拖放方式搭建一个被诊断的数字电路***;
描述配置单元,使用AD2L语言表示数字电路图形化建模单元所建立的数字电路***并以文件的形式存储,同时用户输入诊断***输入端的输入值、输出端的实际观测值、诊断个数上限以及诊断算法选择;
AD2L语言解析单元,用于读取描述配置单元存储的数字电路描述文件,经过单词扫描和语法解析,将该描述文件在计算机内部表示为约束网络这样的数据结构,其中结点就是组件,边就是电路上的连线;
定理证明器单元,用于对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)=in1(DCAdd)+in2(DCAdd),而默认的故障模式是输出固定值。描述配置单元102使用AD2L语言表示数字电路图形化建模单元所建立的数字电路***并以文件的形式存储,同时用户输入诊断***输入端的输入值、输出端的实际观测值、诊断个数上限以及诊断算法选择,由FileAccessor和Configurator类组成。AD2L语言解析单元103用于读取描述配置单元存储的数字电路描述文件,经过单词扫描和语法解析,将该描述文件在计算机内部表示为约束网络这样的数据结构,其中结点就是组件,边就是电路上的连线,它包含扫描器和解析器两部分,其中扫描器由GenericScanner、LogicScanner、GenericToken、KeywordToken、EOIToken、ErrorToken、IdToken类组成,解析器由LObject、LTruePredicate、LFalsePredicate、LVariable、LFunctor、LPredicate、LSentence、LSentences类组成。定理证明单元104用于对AD2L语言解析单元创建的约束网络进行冲突识别,即在描述文件的约束网络上进行前向式的推导算法和后向式的推导算法,由TPObject、MBDTheoremProver、TPProposition、TPAssumption、TPRule类组成。诊断算法单元105采用用户选择的算法:HS-树、BHS-树或布尔代数方法对定理证明器单元的冲突识别进行诊断,以产生诊断候选,由TPDiagnosor、HSTreeDiagnosor、BHSTreeDiagnosor、BADiagnosor、GADiagnosor、GenericNode、HSNode、BNSNode、GACoder、BADCoder类组成。故障定位单元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搭建一个如上图所示的全加器数字电路。这里用户选用门级标准组件与门And1和And2、或门Or1、异或门Xor1和Xor2。用户将它们拖放到心目中的位置,再连接组件的输入和输出端口-以Xor1为例,它的两个输入端分别与a、b相连,输出端连接到Xor2和And2。这样搭建完成一个完整的全加器电路。
3)用户使用描述配置单元102设定该电路输入端a、b、c的值和输出端q、z的实际观测值,再设定诊断个数上限,选择诊断算法。使用AD2L语言表示用户搭建完的全加器电路并以文件的形式存储。对于这个全加器而言,就是***使用AD2L语言描述图中所示的全加器电路,最终存储为文本文件的形式。如前所述,AD2L语言是一种针对基于模型诊断的模型化需求而提出的一阶模型描述语言[1],它通过定义组件和相关的端口来指定可能包含存在和全称量词相应行为的规则。以全加器图中的与门And1为例,它的AD2L描述文件如下,其中AD2L称其为andGate类型的部件(component),它有in1和in2两个输入端口(port),一个out输出端口。5~8行描述了与门的功能行为,即输入端都为true时输出true(第6行),输入端有一个为false时输出false(第7行),而第5行的nab的含义是缺省假设该与门工作正常(not abnormal)。类似地可以给出全加器图中其它或门Or1、异或门Xor1和Xor2的AD2L描述,即分别定义为orGate类型部件和xorGate类型部件。篇幅所限不详细写出,不同之处在于部件的功能。
AD2L把部件划分为单一部件和复杂部件两种。单一部件只定义了部件端口和它实现的功能,不能在进一步划分;复杂部件定义了部件的端口和它内部子部件之间的连接(每一个子部件都被分别描述,可以是一个单一部件也可以是一个复杂部件)。AD2L语言描述***观测是由部件端口和端口的赋值构成,最终一个观测值被指派到观测的部件上,例如全加器图中的观测值为{a=true,b=false,c=true,q=false,z=false},其中a、b、c为全加器的输入端,q、z为其输出端。最终给出全加器部件的电路描述文件如下:
4)AD2L语言解析单元103读取全加器部件的电路描述文件,发现连接错误时重复第2)步和第3)步,直到全加器部件的电路描述没有连接错误为止。这时***正确解析全加器部件的电路描述文件,在计算机内部将其表示为一张图,结点就是组件,边就是电路上连线。这样的数据结构称为约束网络。
5)定理证明单元104假设与门And1和And2、或门Or1、异或门Xor1和Xor2都正常工作,应用用户提供的a、b、c的输入值,观测点q、z上的实际观测值,启动这个约束网络上的与门、或门、异或门正常工作:一是由输入端向输出端传播值(称为前向式推导),可在与门And1和And2、或门Or1、异或门Xor1和Xor2的输出端得到可能的输出值;二是由输出端向输入端传播值(称为后向式推导),可在与门And1和And2、或门Or1、异或门Xor1和Xor2的输入端得到可能的输入值。这里前向式推导就是把输入端a、b、c值向前传播,即电路图中自左向右经过部件And1、Xor1、And2、Or1、Xor2向输出端q、z传播输出值;而后向式推导反过来,就是假设部件正常工作,再根据部件功能和输出端的观测值推断部件的输入值,自右向左经过所有部件向输入端传播推断的值。以orGate类型的部件Or1为例,已知观测值{z=false},假设Or1工作正常,根据或门的功能推断它的两个输入端的值肯定为false,于是可以把这个推断值反向传播给And1,同理And1可以推断自己的两个输入值为false,这导致与已知的观测{c=true}矛盾。这样***可以搜索发现哪些点上出现了多个值(即逻辑上的不一致,称为冲突点),记录该冲突是在假设哪些组件正常工作而引起的(这些组件称为引起该冲突的假说)。如此***发现更多的冲突点,记录所有的矛盾假说,汇总形成诊断算法所使用的全体冲突(称为冲突集合)。
6)针对得到的冲突集合,诊断算法单元105利用用户选择的诊断算法(如HS-树、BHS-树、布尔代数方法)进行诊断求解,计算出可能的诊断。本发明改进后的诊断计算过程如下(假定观测值为:{a=true,b=false,c=true,q=false,z=false}):
(1)首先检查整个***所有部件{And1,Xor1,And2,Xor2,Or1}与当前观测值是否一致。若一致则***不存在故障,不需要计算冲突;若不一致则需要计算诊断。从And1出发,根据And1的输入值And1(in1)=true,And1(in2)=false得到输出值And1(out)=true。接下来是Xor1根据输入值Xor1(in1)=true,Xor1(in2)=false得到输出值Xor1(out)=false。然后检查And2,根据输入值And2(in1)=true,And2(in2)=false得到And2(out)=false。再到Xor2,根据两个输入值Xor2(in1)=true,Xor2(in2)=false应该得到输出值Xor2(out)=true而实际观测到的输出值为q=false。根据与门的功能当一个输入为真的时候,结果为真,证明***在当前观测值的情况下存在故障,接下来开始计算引发故障的冲突集合。
(2)引发不一致的集合{And1,And2,Xor1,Xor2,Or1}按顺序一次去掉一个部件后,能否使得***恢复一致,若一致则该部件就是冲突集合的一部分(不同的判断顺序形成的冲突集合可能会不同)。每一次的判断过程类似步骤(1),经过计算后得到冲突集合{Xor1,And2,Or1}。
(3)把冲突集合{Xor1,And2,Or1}作为根节点开始构建HS-dag图,根节点作为父节点生成三个孩子结点,分别标记每条指向其孩子结点的边为Xor1,And2,Or1。
(4)计算标记边为Xor1指向的新节点的内容(与从根结点到该节点所有标记边的集合,没有交集的一个冲突集合)。判断除去Xor1的集合{And1,And2,Xor2,Or1}是否一致,若一致就不存在这样冲突,不一致的话就求解一个新的冲突集合作为由Xor1指向的结点的内容。经计算没有冲突,也就是说Xor1与所有的冲突集合都有交集。该节点到根结点所有标记边的集合就是一个碰集,即{Xor1}。采用类似的步骤递归计算。
(5)由根结点出发通过And2标记边,生成了一个新的结点{Xor1,Xor2},再由{Xor1,Xor2}结点生成标记边分别为Xor1,Xor2的两个新节点。由这两条边出发都没有新的结点生成,即得到两个碰集{And2,Xor1},{And2,Xor2}其中{And2,Xor1}是以求得的碰集{Xor1}的超集,所以该节点被标记为关闭结点;由根结点出发通过Or1标记边可以生成一个新的结点{Xor1,Xor2},再由{Xor1,Xor2}结点生成两条新的标记边Xor1,Xor2,由这两条边出发都没有新的结点生成,即得到两个碰集{Or1,Xor1},{Or1,Xor2}其中{Or1,Xor1}是以求得的碰集{Xor1}的超集,所以被标记为关闭结点。
(6)诊断结束后我们得到三个碰集{Or1,Xor1},{Xor1},{And2,Xor2}。
(7)故障定位单元106把诊断结果{Or1,Xor1},{Xor1},{And2,Xor2}对应到电路中相关组件,突出显示已示可疑。例如诊断{Or1,Xor1}表明组件Or1和Xor1可疑,故障定位单元106就在图形化的数字电路上突出显示这两个组件。
[第二实施方式]
如图4所示的电路来说明本测试方法的实施应用。在这个电路中,组件有加法器DCAdd、乘法器DCMul、与门DCAnd、或门DCOr、非门DCOr。我们为电路中的所有组件都编了一个序号,如编号为1的组件是一个加法器DCAdd。为方便接下来的叙述中我们会用组件的序号代指该组件。
***可以随机选择一个组件,让其以故障方式工作,如输出端的输出值不正确。实验中我们选择组件13(一个乘法器DCMul),并令其以某种故障方式工作,例如令其输出值为out(13)=8*in2(13),即固定输出其输入端口2的输入值的8倍。使用本发明所提供的方法,诊断步骤如下:
1)程序启动后,使用数字电路图形化建模单元101的工程管理模块在用户指定的位置上新建一个工程。
2)用户通过数字电路图形化建模单元101搭建如图3所示一个被诊断的数字电路***,这里需要用户选用加法器DCAdd、乘法器DCMul、与门DCAnd、或门DCOr、非门DCNot等标准组件,拖放到适当位置,连接组件的输入和输出端口形成完整的电路***。
3)用户使用描述配置单元102设定该电路输入端的输入值和输出端的实际观测值,默认诊断个数为20个,诊断算法选择HS-树算法。这里用户给出输入值{in1(1)=1,in2(1)=2,in1(2)=2,in2(2)=1,in1(3)=1,in2(3)=0,in1(4)=0,in2(4)=0},其中组件1为一个加法器DCAdd,组件2为一个乘法器DCMul,组件3为一个与门DCAnd,组件4为一个或门DCOr;期望输出端的输出值为{out(12)=21,out(13)=18,out(14)=2},其中组件12为一个加法器DCAdd,组件13和14都是乘法器DCMul。用户保存工程属性、观测值、运行参数以及被测数字电路的描述文件(简称电路描述文件)。
4)用户使用AD2L语言解析单元103以文件的形式保存被测数字电路的描述,并创建电路所对应的约束网络。
5)定理证明单元104应用用户提供的输入值、实际输出值,***首先假设所有组件都正常工作,启动定理证明,在组件13的输出端发现,实际输出值为out(13)=16,但期望是out(13)=18,于是这里发现一个矛盾。定理证明器搜索引起该矛盾的假说,即找到假设哪些组件正常工作而导致该矛盾。本例中发现假设组件{1,2,3,4,5,6,7,8,10,13}正常工作会导致该矛盾,假设组件{1,2,3,4,5,6,7,9,10,12,13}正常工作也会导致该矛盾。因此每个假设都暗含冲突,把它们称为冲突集合。
6)诊断算法单元105输入冲突集合,使用用户选择的诊断算法HS-树进行诊断求解,可能的诊断为{1},{2},{3},{4},{5},{6},{7},{8,9},{8,12},{10},{13}。
7)这里需要进一步对候选诊断鉴别。***为这些诊断候选排序,结果是组件13的输入端为进一步的观测点。用户提供该点上的实际观测值{in1(13)=9,in2(13)=2}。
8)定理证明单元104应用用户提供的输入值、观测点上的实际观测值,以及期望输出值。***假设除了组件13之外的所有其它组件都正常工作,启动定理证明,没有发现矛盾。
9)至此组件13故障得到证实,并由故障定位单元106***汇总所有的诊断结果及其相关说明,按格式生成一份完成的诊断测试报告。
[第三实施方式]
本发明的第三实施例通过ISCAS 89 benchmark中的S344来说明本测试方法的实施应用。
S344由101个门组成,包括44个与门、18个与非门、9个或门和30个或非门。S344有9个输入端,11个输出端。实验中随机选择一两个与门,让其以某种业界公认的stuck-at-0或stuck-at-1等故障模式工作。使用本发明所提供的方法,诊断步骤如下:
1)程序启动后,在用户指定的位置上新建一个工程,诊断个数上限以及诊断算法选择等运行参数设为默认值;
2)***读取ISCAS 89 benchmark中的S344.bench文件,并在画布上自动绘制S344的电路图;
3)用户设定该电路的输入值和输出端的实际观测值;
4)用户保存与工程相关的S344电路描述文件(简称S344描述文件)、工程属性文件、一些运行参数等。
5)***扫描解析S344描述文件。这时***会扫描文件中关键词,再解析AD2L语言所认可的语法单位,创建电路描述文件所对应的约束网络。可选地,发现语法错误时,会报告给数字电路图形化建模单元。
6)应用用户提供的观测值,包括输入值、实际输出值和观测点上的实际观测值。启动定理证明,搜索引起矛盾的假说,汇总形成诊断算法所使用的冲突集合。没发现矛盾时,提醒用户没有发现***运行差异。
7)对得到的冲突集合使用用户选择的诊断算法进行求解,计算可能的诊断候选。
8)根据诊断定位电路中的可疑组件,在图形化的数字电路上突出显示可疑组件。
9)汇总所有的诊断结果及其相关说明,并按格式生成一份完成的诊断测试报告。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (3)
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语言所认可的语法单位,创建电路描述文件所对应的约束网络;如发现文件中有语法错误,***会向用户报错,直到用户修改完所有的语法错误为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110041818 CN102156772A (zh) | 2011-02-21 | 2011-02-21 | 基于逻辑相容性的数字电路故障诊断方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110041818 CN102156772A (zh) | 2011-02-21 | 2011-02-21 | 基于逻辑相容性的数字电路故障诊断方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102156772A true CN102156772A (zh) | 2011-08-17 |
Family
ID=44438269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110041818 Pending CN102156772A (zh) | 2011-02-21 | 2011-02-21 | 基于逻辑相容性的数字电路故障诊断方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102156772A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102435938A (zh) * | 2011-10-28 | 2012-05-02 | 中国电子科技集团公司第三十八研究所 | 一种基于功能的数字电路故障检测定位***和方法 |
CN103018592A (zh) * | 2012-11-28 | 2013-04-03 | 西南交通大学 | 基于模型诊断的牵引变压器故障诊断方法 |
CN104535917A (zh) * | 2014-12-23 | 2015-04-22 | 宁波大学 | 一种数字电路故障的快速检测方法 |
CN104765282A (zh) * | 2015-04-10 | 2015-07-08 | 三峡大学 | 一种电站全数字综合仿真平台 |
CN109033930A (zh) * | 2018-05-07 | 2018-12-18 | 北京化工大学 | 一种基于故障机理和统计模型在线学习的机械设备故障诊断方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101865705A (zh) * | 2010-06-03 | 2010-10-20 | 长春奥普光电技术股份有限公司 | 编码器故障的自动诊断装置及其诊断求解方法 |
-
2011
- 2011-02-21 CN CN 201110041818 patent/CN102156772A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101865705A (zh) * | 2010-06-03 | 2010-10-20 | 长春奥普光电技术股份有限公司 | 编码器故障的自动诊断装置及其诊断求解方法 |
Non-Patent Citations (1)
Title |
---|
《中国优秀硕士学位论文全文数据库》 20100915 徐俊洁 一种基于模型的故障诊断***研究与实现 1-3 , * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102435938A (zh) * | 2011-10-28 | 2012-05-02 | 中国电子科技集团公司第三十八研究所 | 一种基于功能的数字电路故障检测定位***和方法 |
CN103018592A (zh) * | 2012-11-28 | 2013-04-03 | 西南交通大学 | 基于模型诊断的牵引变压器故障诊断方法 |
CN103018592B (zh) * | 2012-11-28 | 2016-04-06 | 西南交通大学 | 基于模型诊断的牵引变压器故障诊断方法 |
CN104535917A (zh) * | 2014-12-23 | 2015-04-22 | 宁波大学 | 一种数字电路故障的快速检测方法 |
CN104535917B (zh) * | 2014-12-23 | 2017-02-22 | 宁波大学 | 一种数字电路故障的快速检测方法 |
CN104765282A (zh) * | 2015-04-10 | 2015-07-08 | 三峡大学 | 一种电站全数字综合仿真平台 |
CN104765282B (zh) * | 2015-04-10 | 2018-03-27 | 三峡大学 | 一种电站全数字综合仿真平台 |
CN109033930A (zh) * | 2018-05-07 | 2018-12-18 | 北京化工大学 | 一种基于故障机理和统计模型在线学习的机械设备故障诊断方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844194B (zh) | 一种多层次软件故障诊断专家***的构建方法 | |
CN107704392A (zh) | 一种测试用例的处理方法及服务器 | |
Menzies et al. | Verification and validation and artificial intelligence | |
Feldmann et al. | A comparison of inconsistency management approaches using a mechatronic manufacturing system design case study | |
Gregoriades et al. | Scenario-based assessment of nonfunctional requirements | |
CN102156772A (zh) | 基于逻辑相容性的数字电路故障诊断方法及*** | |
CN110296124A (zh) | 基于专家***的远程故障诊断***及方法 | |
Zheng et al. | On the state of the art in verification and validation in cyber physical systems | |
Maier | Identification of timed behavior models for diagnosis in production systems. | |
Jannach et al. | Toward an Integrated Framework for Declarative and Interactive Spreadsheet Debugging. | |
Khalil et al. | Supporting the evolution of UML models in model driven software development: a survey | |
CN103412224B (zh) | 基于定性模型的电气***建模方法以及故障诊断*** | |
Van Den Berg et al. | Designing cyber-physical systems with aDSL: A domain-specific language and tool support | |
Baumeister | Advanced empirical testing | |
Alhumaidan et al. | Possible improvements in UML behavior diagrams | |
Garro et al. | Modeling of system properties: Research challenges and promising solutions | |
US7739213B1 (en) | Method for developing complex probabilistic models | |
Ashley et al. | Qualitative diagnosis of condition systems | |
Shekar et al. | Fault diagnostics in industrial application domains using data mining and artificial intelligence technologies and frameworks | |
Reynoso et al. | Measuring OCL expressions: An approach based on cognitive techniques | |
Leitch et al. | Task dependent tools for intelligent automation | |
Li et al. | Automatically generating functional scenarios from SOFL CDFD for specification inspection | |
Saeed et al. | ADISTES ontology for active diagnosis of sensors and actuators in distributed embedded systems | |
Padmanabhan | Test case generation for Arduino programming instructions using functional block diagrams | |
Menzies et al. | Expert system maintenance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110817 |
|
RJ01 | Rejection of invention patent application after publication |