蔡莉莎 曾维鹏 韩宝如
摘 要: 为了使电路故障诊断系统更加智能化、高效化,将基于模型诊断的故障诊断技术应用在智能消防小车电路中。根据小车的系统行为信息对小车进行建模,利用串口模块将描述文件在线输入到计算机中,再根据IsDS算法以及带有终止节点的CSSE?tree算法调用MiniSAT求解器求解诊断结果。实验表明,该系统能够迅速指示故障元件,诊断效率较高,具有较好的应用前景。
关键词: 基于模型诊断; MiniSAT求解器; 电路故障诊断系统; 串口模块
中图分类号: TN710?34; TP301.5 文献标识码: A 文章编号: 1004?373X(2016)08?0108?03
Design and implementation of circuit fault diagnosis system based on model
CAI Lisha1, 2, ZENG Weipeng1,2, HAN Baoru3
(1. Sun Yat?sen University, Guangzhou 510275, China; 2. Hainan College of Software Technology, Qionghai 571400, China;
3. Hainan University, Haikou 570102, China)
Abstract: In order to make the circuit fault diagnosis system more intelligent and efficient, the fault diagnosis technology based on model is applied to the circuit of intelligent fire truck. The fire truck was modeled according to the system behavior information. The serial module is used to import the description file into the computer online, and then the MiniSAT solver based on IsDS algorithm and CSSE?tree algorithm with termination node is called to solve the diagnosis results. The experimental results show that the system can quickly indicate the fault component, and has high diagnostic efficiency and good application prospect.
Keywords: model?based diagnosis; MinSAT solver; circuit fault diagnosis system; serial module
常见的电路故障诊断方法是技术人员利用仪表结合自身所学的知识及积累的诊断经验对电路进行一路一路的测试,最终确定故障元件。该方法诊断效率低下,而且要求对电路的工作原理有一定的了解。基于模型诊断技术利用电路元件之间的连接关系建立系统模型,如果观测到的行为与假设系统正常工作时所预期的行为不一致时说明系统存在故障,利用诊断推理算法诊断故障并确定故障元件[1]。该方法诊断效率高,设备独立性强,重复利用率高,维护更新简单便捷。智能消防小车的实现减少了火灾现场不必要的人员伤亡,人们利用传感器感知火灾现场并利用路径规划算法自动寻找最优路径迅速找到事发地点进行灭火行动。智能消防小车的系统能否正常运行直接影响其工作效果,基于模型的智能消防小车故障诊断系统能够自动诊断电路的故障源,并显示故障元件方便人们及时更换元件保证小车的正常运行。
1 基于模型诊断相关算法的研究
1.1 可满足性算法
可满足性算法的基本思想为:将任何一个逻辑命题转化为一个子句集,通过各种可满足性方法判定该子句集是否可满足从而决定该命题是否成立[2]。为了判定一个部件是否为故障元件,其实就是判定该组件的正常行为描述与相关的系统描述及观测描述是否逻辑一致,只需将该部件相关的系统描述与观测描述代入MiniSAT求解器,将判断部件是否存在故障转换为SAT求解问题[3]。如果可满足,MiniSAT求解器得到结果判定命题公式是真的;如果不可满足,说明该部件是个故障元件。
1.2 判定算法IsDS的研究
以与门部件为例,使用IsDS算法判定与门部件是否出现故障。判定部件为故障元件的IsDS算法为:
Function IsDS(SubCOMP[ ])
输入:待判定的系统组件子集SubCOMP。
输出:BOOL值,若为冲突集则返回“真”,否则返回“假”。
以与门为例说明如何使用IsDS判定算法判定故障集。设1,2分别表示与门的两个输入节点变量,3表示输出节点变量,输入输出正值表示高电平,负值表示低电平,4表示组件变量,当组件变量取正值表示部件正常工作,取负值表示部件不正常工作。当与门部件正常工作时,输入1,2时,输出为3,其逻辑描述为:OK(4)∧1∧2→3,将其转换为范式的形式(将蕴含符号→去掉)变成-OK(4)∨-1∨-2∨3。考虑与门不同输入所产生的不同逻辑描述,则与门的合取范式(CNF)表达如下:(-OK(4) ∨ -1∨ -2 ∨3)∧(-OK(4) ∨2 ∨-3)∧(-OK(4) ∨1∨-3)。与门的系统描述、组件正常行为描述的CNF文件如下:
-1 -2 -4 3 0
2 -4 -3 0
1 -4 -3 0
类似的,可以给出观测的CNF文件描述,当1,2输入节点变量为低电平时,观测到的输出节点变量如果为高电平,则观测的CNF文件如下:
-1 0
-2 0
3 0
组件为正常组件的CNF文件如下:
4 0
基于IIsCS判定算法使用SAT求解器求解过程如下:
Step1:首先新建一个文本文档,根据当前组件子集SubCOMP的系统描述、组件的正常行为描述以及观测描述,该组件为正常组件描述CNF文件追加到文档中;
Step2:调用SAT求解器,求解CNF文件,求解结果为UNSAT;
Step3:判定上述CNF是否可满足,若不满足说明该组件为不正常的组件,若满足说明该组合满足逻辑表达式,该组件为正常组件;
Step4:结果分析,观测值为-1,-2,3,对于一个无故障的与门输入为-1,-2,输出为3,该器件应该是存在故障,使用IsDS算法,SAT求解器求解的结果为不可满足,说明该组件存在故障为故障点。此算法通过SAT求解器返回的结果即可判定是否是故障组件。
1.3 产生所有的极小诊断算法
使用IsDS算法能判定某一个部件是否存在故障,但是在智能消防小车中由很多个门电路构成组合逻辑电路,如何快速找出该电路系统中存在故障的部件,本文利用CSSE?tree方法[4]结合IsDS判定算法搜索出智能消防小车中的故障元件。IsDS判定算法使用SAT求解器,将集合内所有部件是否正常转换成是否可满足,若部件正常则SAT求解器求解结果为SAT,若出现故障求解结果为USAT,那么与之相关的其他电路元件构成的CNF文件(SD,COMPS,OBS)求解的结果必定为USAT,因而无需对其进行扩展即能判定为故障部件。某一个部件CNF文件(SD,COMPS,OBS)求解结果是SAT,即不是故障元件,那么需引入其他元件的CNF文件,对其进一步扩展,直至求解结果为USAT或遍历完所有元件。
2 系统设计
2.1 系统方案论述
本文所设计的智能消防小车故障诊断系统是基于模型诊断算法的电路故障诊断系统。该系统包括智能消防小车电路系统,诊断系统及电路系统与诊断系统之间通信的通信系统,如图1所示。该系统的具体功能为:将小车在人为设计的地图中行驶,在探测火源的过程中自主寻找路径行驶,遇到障碍物能够绕开障碍物行驶,找到火源后能够迅速灭火。在小车执行任务的过程中,将小车的系统描述、组件的正常行为描述以及观测描述、该组件为正常组件的描述的(SD,COMPS,OBS)三元组CNF文件发送到PC机中,利用IsDS判定算法结合CSSE?tree算法使用MiniSAT求解器判定是否存在故障,如有硬件电路故障则能显示故障元件。
2.2 智能消防小车电路系统
智能消防小车由处理器、寻迹传感器、避障传感器、直流电机、火焰传感器、灭火风扇、电源及串口通信模块八大部分构成[5]。小车由3节4.5 V的电池供电,使用宏晶公司研发的STC89C52单片机作为处理器处理接收红外火焰传感器、红外光电开关避障传感器及光电寻迹传感器的信号结合程序要求控制直流电机驱动及风扇的运行,智能消防小车硬件电路图如图2所示。根据智能消防小车系统的每个部件之间的电路连接关系建立系统模型,同时建立合取范式的描述文件,文件里包含系统描述子句、正常行为描述子句、观测描述子句。
2.3 通信系统
MiniSAT求解器是一款运行在Linux操作系统下的求解器,接收DIMACS CNF简单文本格式的文件。IsDS判定算法需要将(SD,COMPS,OBS)三元组信息输入求解器,通过求解器判定其可满足性。三元组信息与智能消防小车的运行状态有关,因此通信系统主要任务是将小车所构建的三元组信息上传给PC机,同时将求解器求解的结果下传到小车,实现上、下位机之间的通信。
本系统下位机利用printf()函数将小车构建CNF形式的三元组描述文件转变成C语言,将初始化函数uartInit(),发送函数send(),接收函数receive()通过单片机的RS 232与上位机进行通信。由于Python语言能与其他语言进行无缝连接,其次该语言的运行环境与MiniSAT求解器相同等优点,因此上位机的开发语言选择Python,利用发送接收函数readUart()与下位机进行数据交换,利用minisat_execute()函数调用MiniSAT求解器。
2.4 诊断系统
诊断系统利用IsDS诊断算法根据智能消防小车电路系统建立的三元组(SD,COMPS,OBS)即电路系统描述,电路系统组件,观测描述输入MiniSAT求解器中求解。将智能消防小车每一个功能模块生成一组三元组CNF描述文件,诊断模块根据求解器求解的结果结合CSSE?tree算法以及其修剪规则决定是否需要发送下一组三元组数据直至遍历完所有的组件。如果求解结果为“U”则表示该模块为故障源,如果求解结果为“S”则需要发送下一组三元组数据。
3 系统测试
通过两个阶段对该系统进行测试:第一阶段测试小车在地图中是否能够实现寻迹,避障,灭火功能;第二阶段测试系统能否诊断人为设置L298为故障元件并指示故障元件。经测试,小车在正常状态下能够自主寻找火源,在运行过程中始终保持在地图黑线中央,遇到障碍物能够调整行驶方向顺利避开障碍物,最终顺利到达火灾现场执行灭火任务。在第二阶段测试过程中,小车元件L298一直报障,经过测试表明当小车左轮压白线时无法调整行驶方向,其他小车右轮压白线,小车直行及小车停止三个过程正常,经过检查是L298OUT2口存在故障。
4 结 论
本文设计的基于智能消防小车的故障诊断系统,包括智能消防小车电路系统,通信系统以及诊断系统。本系统利用IsDS判定算法借助MiniSAT求解器对根据小车电路结构连接信息及观测信息构建的三元组进行判定故障元件,结合CSSE?tree算法遍历小车电路中的所有元件。该系统使用方便,诊断效率较高,独立性强,电路系统与系统推理内核相互独立。系统完成后,使用者只需要启动运行开关,有故障时电路系统自动报障指出故障元件,使用者及时更换元件即可。
注:本文通讯作者为曾维鹏。
参考文献
[1] 李占山,姜云飞.基于模型诊断推理的回顾与展望[J].计算机科学,1998,25(6):54?57.
[2] ZHAO Xiangfu, OUYANG Dantong. Deriving all minimal conflict sets using satisfiability alg orithms [J]. Chinese journal of electronics, 2009, 37(4): 804?810.
[3] 曾维鹏,蔡莉莎,吴恒玉,等.MiniSAT求解器在电路故障诊断中的应用[J].电气电子教学学报,2013,35(6):60?62.
[4] 赵相福,欧阳丹彤.基于模型的诊断中产生所有极小冲突集的新方法[J].吉林大学学报(工学版),2007,37(2):413?418.
[5] 韩超,邹金慧.智能消防小车的设计[J].云南大学学报(自然科学版),2009,31(z2):236?240.
[6] 苏培培,陈海荣,王绪利.基于MPC8280的智能串口模块设计[J].现代电子技术,2010,33(2):102?103.