一种电子设备故障库的设计
扫描二维码
随时随地手机看文章
故障诊断专家系统是诊断领域引人注目的发展方向之一, 也是研究最多、应用最广的一类智能诊断技术,主要用于那些没有精确数学模型或很难建立数学模型的复杂系统。大致经历了两个发展阶段, 即基于浅知识的第一代故障诊断专家系统和基于深知识的第二代故障诊断专家系统。基于浅知识( 人类专家的经验知识)的故障诊断系统是以领域专家和操作者的启发性经验知识为核心, 通过演绎推理或产生式推理来获取诊断结果。基于深知识( 诊断对象的模型知识) 的故障诊断系统要求诊断对象的每一个环节具有明确的输入输出表达关系, 诊断时首先通过诊断对象的实际输出与期望输出之间的不一致, 生成引起这种不一致的原因*, 然后根据诊断对象领域中的第一定律知识( 具有明确科学依据的知识) 及其内部特定的约束关系, 采用一定的算法, 找出可能的故障源。在故障诊断专家系统中, 故障库是专家系统的核心, 体现着专家系统水平的高低, 但故障库的建造或故障知识的获取也成为建立专家系统的瓶颈问题。
1 故障库建造步骤
故障库的设计是建立专家系统最重要和最艰巨的任务。初始知识库的设计包括问题知识化、知识概念化、概念形式化、形式规则化和规则合法化。问题知识化, 即辨别所研究问题的实质; 知识概念化, 即概括知识表示所需要的关键概念及其关系; 概念形式化, 即确定用来组织知识的数据结构形式; 形式规则化, 即编制规则, 把形式化了的知识变换为由编程语言表示的可供计算机执行的语句和程序; 规则合法化, 即确认规则化了的知识的合理性, 检验规则的有效性。
故障库的建立首先是通过知识工程师从测试设备领域专家那里获得或者通过在诊断过程中从用户那里获得知识, 然后通过知识获取模块把知识送到知识库。
知识获取的主要困难在于如何恰当地把握领域专家所使用的概念、关系和问题的求解方法。根据专家提供的经验知识和测试设备的特点, 通过直接获取方式、交互获取方式获取有价值的诊断信息。
故障库的建立是一个相当复杂的过程, 所以必须要按照一定的方法和步骤。通常情况下按照如图1 所示的步骤从现有的设计资料中提取有关原理的定性知识,并将这些知识归纳成规则形式。下面对图1 所示的各步骤分别加以说明:
图1 故障库的建立步骤
( 1) 功能, 结构层次分解。由于现代的产品设计的模块化设计思想, 所以电子产品在功能和结构上具有明显的层次性, 因此要提取电子设备的故障诊断知识, 对系统进行分解是必要的。
( 2) 建立部件正常功能描述。对于每一个上面划分的部件, 有必要对其正常工作逻辑进行定性说明。
( 3) 确定各部件的测试点集。测点分为部件输入测点和部件输出测点, 在对某个部件P 进行诊断时, 只有其全部输入信号都正常, 才可以根据输出来判断该部件是否故障。
( 4) 确定部件可能故障集。对以上划分的单元分别进行故障分析, 对于部件, 首先要确定其有可能出现的故障类型, 部件P 的可能故障集的确定可以根据经验、FMEA 分析结果以及器件资料等多方面搜集。
( 5) 建立定性影响关系网络。对于部件P , 先确定每一故障e 所带来的输出表征, 即输出测点数据的一种组合。然后, 对部件P 的所有测点数据进行分类, 一类表示部件自身故障所测试的数据, 记为PSO; 非自身故障引起( 由输入异常引起) 的故障归到另一类, 记为PU O。当测试数据W ∈ PSO 时, 故障诊断结果可以确定就是部件P; 当测试数据W ∈ PUO 时, 需要对部件P的输入进行测试, 由于部件P 的输入又是其他部件的输出, 因此, 可以逐级推理, 直至将故障定位在某一个或几个部件上。
( 6) 将故障影响关系网络归纳成规则形式。将上面因果分析得到的结果转化成两种规则形式:
IF W∈PSO T HEN P 故障;
IF W∈PUO TH EN 对P 的输入进行测试;
( 7) 将规则写入故障库, 通过一般知识库编辑系统可以很容易将上面的规则写入到故障知识库中。
2 故障库的设计
2. 1 数据采集与知识的获取
数据采集在故障诊断系统中占据重要角色。对于诊断系统而言, 采集的信息越多, 越容易对故障进行定位和判断, 为此系统将增加必要的硬件设计, 同时为减小伺服系统硬件设计的复杂程度, 根据伺服系统的特点和专家的经验总结, 利用伺服系统自身必需的硬件连接, 增加少量硬件设计, 可以组成诊断系统的数据采集。
系统知识采用产生式( Pro duct iON Rules) *,又称为规则*。产生式通常用于表示具有因果关系的知识, 其基本形式是P→Q, 或者IF P T HEN Q。其中, P 代表条件, 如前提、状态、原因等; Q 代表结果,如结论、动作、后果等。其含义是: 如果P 前提被满足,则可推出Q 结论或执行所规定的动作。把一组产生式放在一起, 让它们互相配合, 协同作用, 一个产生式生成的结论可以供另一个产生式作为前提使用, 以这种方式求得问题的解决, 这样的系统就称为产生式系统, 也称之为基于规则的系统。
对于多因素故障, 采用故障树来表示, 故障树模型体现了故障传播的层次和子、父节点间关系的因果性,故障树上某一子节点是父节点的故障源, 因此利用故障树的节点关系, 根据故障现象来确定故障原因。
2. 2 数据表的设计
为了使知识在计算机中发挥作用, 以产生问题求解的能力, 必须把经形式化后的各种知识实体表示成计算机的内部形式, 还要建立必要的解释机制和良好的用户界面。该系统采用Access 2003 数据库来创建知识库,利用A ccess 2003 构建系统知识库, 能使知识库搜索更加高效, 管理更加方便。
知识库包括四个表, 它们分别是主故障模式表、事实表、测试点表和规则表。
主故障模式表用来存放测试设备中主要的故障类型。表的结构为Module ( FaultN AME, Child) , 其中,FaultName 为故障类型的名称, Child 为此故障类型对应的征兆表的名称。如表1 所示。
表1 主故障模式表
事实表包括征兆表和结论表, 两表的结构相同。表的结构为Fact ( name, ID) , 其中, Name 为故障征兆( 结论) 的名称, ID 为故障征兆( 结论) 的编码。如表2所示。
表2 事实表
测试点表用来存放测试通道中的测试点。表的结构为T eST _ Point ( Po intName, PCBName, X , Y, ID,ToneName, Solution) , 其中, PointName 为测试点的名称, PCBName 为测试通道的PCB 图文件, X 为测试点的横坐标, Y 为测试点的纵坐标, ID 为测试点的编码,ToneName 为测试通道的名称, Solut io n 为对故障采取的解决措施。如表3 所示。
表3 测试点表
规则表包括浅知识规则表和深知识规则表, 两表的结构相同。规则表用来存放规则前件和后件的编码。
推理机的内部工作过程是利用事实编码进行前件的匹配, 利用综合数据库对推理过程中的前件和后件进行记录。在推理过程中的事实编码和最终结果的编码都可以在事实表中找到与之对应的名称。表的结构为( ID,Co ndition_number, Conclut ion_number, sig1, sig2, !,sig10, con1, co n2, !, con10) , 其中, ID 为规则的编号,Co ndition_number 为规则前提条件的个数, Co nclut ion_number 为规则结论的个数, sig 1, sig2, !, sig10 用来存储规则的前提, co n1, con2, !, co n10 用来存储规则的结论。如表4 所示。
表4 规则表
3 推理机的实现
在测试设备故障诊断中最重要的是推理机, 对于确定性的知识, 采用专家系统中正向推理的方式进行推理。对于具有不确定的、模糊的信息, 利用模糊神经网络进行推理。推理机通过建立类EsReaso n 实现, 以下是在该类中定义的主要指针、数组、变量及函数, 此类结构如下:
Class EsReason
{
pr otected:
Majo rTable * M ajor ;
SigalTable * Sig al;
Co nclut ionTable * Conclutio n;
Po int Table * point;
RuleTable * Rule ;
BOOL Connectio nDb( ) ;
BOOL LoadT able ( CStr ing name) ;
CStr ing Var iantToCStr ing ( co nst _ var iant_t & var) ;
CStr ing Curr entConditio ns [ 100] ;
CStr ing Curr entConclusio ns[ 100] ;
CStr ing pr og ram;
unsig ned int To tal_Cur rentCo nditions;
unsig ned int To tal_Cur rentCo nclusio ns;
BOOL Reasoning( ) ;
BOOL NEWff( ) ;
}
其中, * Majo r, * Sigal, * Co nclut ion, * point 以及* Rule 定义指向主故障模式表、征兆表、结论表、测试点表及规则表的结构指针, 便于对数据库中各表数据的记录及访问。通过建立BOOL 型成员函数Connect io nDb 和Lo adTable 来实现数据库的连接及加载。在加载数据库时, 通过设置SQL 语言为打开各个数据表做准备, 然后调用记录集指针的成员函数Open 打开各个表中的各条记录。通过记录集指针的移动记录各个表中记录集的数目, 然后根据记录集指针的移动把各表中的记录存到申请的动态内存中。
综合数据库通过数组Cur rent Condit io ns[ 100] 和Cur rent Conclusio ns[ 100] 实现, 综合数据库用来记录推理过程中的初始条件、中间结果及最终结论的编码,方便推理机通过综合数据库里的内容进行正向推理, 通过CStr ing 类型的变量prog ram 记录推理过程中用到的规则, 以实现推理过程中的解释功能。
在类EsReason 中核心的函数是Reasoning 和NEWf f, Reasoning 函数的工作过程为: 把综合数据库中的事实作为初始条件, 与规则库中的规则前件进行匹配; 当规则被激活, 通过这些激活的规则, 推理函数把结论放到综合数据库中继续推理, 直到再没有其他规则的前件能与综合数据库内的事实相匹配为止。在推理过程中用到一个很重要的BOOL 型的成员变量Rule _Used 记录用过的规则, 这样可以避免在推理过程中出现死循环。NEWf f 函数的工作过程可选取合适的推理决策逻辑进行推理来实现故障的自动化诊断。
4 结 语
由于现代电子设备的自身特性和环境因素等复杂条件的限制, 传统的故障诊断方法难以满足诊断要求。基于故障库的智能故障诊断方法依靠对设备原理的定性分析, 充分利用现有的各种设计技术资料, 无需为了量化处理的需要而将实际问题过分简化, 比依赖于基础数据的定量分析方法更接近于工程实际情况。针对电子设备提出了一种电子设备故障库的故障实现方案, 可以有效地进行故障定位并提出维修指导意见, 有效地提高了普通维修人员的故障诊断能力和维修效率。