当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]针对高科技产品专业性强、系统结构复杂、故障分析困难等问题,本设计以故障诊断的理论和方法为基础,提出了一种基于专家系统的故障诊断设计方案。设计构造了故障诊断专家系统的整体框架,探讨了专家系统中知识库的建立、推理机制以及人机界面设计等问题。

当各种设备应用与管理系统发生故障时,准确而快速地进行故障诊断定位,对于系统的恢复,具有十分重要意义。然而,由于系统结构复杂,导致设备故障的原因很多,在现场分析、判断和处理故障时,往往依赖于维修人员对设备机理的把握程度和经验,导致故障定位不准,维修时间较长。故采用故障树分析法建立检测引导系统,以此来引导维修人员以专家的思维模式对设备进行检测修理,提高经济性和可靠性。这种检测引导系统即为专家系统。本文以串口通信故障检测为例,设计了一种嵌入式专家系统,结合嵌入式WinCE以及SQLite,达到引导检测的目的。

1 系统架构

1.1 专家系统简介

专家系统(ES)是人工智能领域最活跃和最广泛的领域之一[1]。自从1965 年第一个专家系统Dendral 在美国斯坦福大学问世以来,经过40年的开发,各种专家系统已遍布各个专业领域。目前,专家系统得到了更广泛的应用,并在应用开发中得到进一步发展。所谓专家系统就是使用人类专家推理的计算机模型来处理现实世界中需要专家作出解释的复杂问题,在没有专家参与的情况下得出与专家相同的结论。简言之,专家系统可视作“知识库”和“推理机”的结合,知识库是专家的知识在计算机中的映射,推理机是利用知识进行推理的能力在计算机中的映射,构造专家系统的难点也在于这两个方面。

1.2 系统组成

本文设计的智能专家系统包括用户界面、数据库以及模块化的程序。应用嵌入式数据库SQLite来实现知识的存储以及人机交互实现推理解释。故障树节点的所有信息均存储在SQLite中,并在数据库中实现故障节点的逻辑关系以此取代推理机,达到引导检测的目的[2]。

1.3 系统工作机制

专家系统的组织控制机构(即推理机)根据当前输入数据来运行知识库中的相应知识,按一定策略进行推理,以达到要求的目标。本文专家系统中,推理机根据用户参与选择后的故障信息,在知识库内寻找能与之匹配的故障树结点事件,每步推理都以用户反馈信息为依据,沿故障树脉络进行正向推理,逐步缩小故障范围,直至完成故障源定位。专家系统工作流程如图1所示。


2 专家库设计

故障树分析FTA(Fault Tree Analysis)是一种演绎推理方法, 将系统可能发生的故障和故障原因由总体到部分按树状逐渐细化的图形演绎方法, 通过对故障树的定性和定量分析, 判明故障原因并可得出引发故障的相关因素的相关重要度[3]。故障树是用于系统可靠性分析和故障诊断的一种图形化故障模型,而基于规则的诊断专家系统的目标是当系统发生故障时综合利用各种诊断信息,根据知识库中的规则,通过推理确定系统的故障模式,推断出故障部位和故障原因,最后提出排除故障的方法和维修建议。故障树建立时,将最不希望发生的故障作为顶事件; 位于故障树底部, 导致其他事件的、不可再分的原因事件为底事件,其他事件都是中间事件。各事件间相互关系通过“与”门、“或”门、“非”门等逻辑门表示。

2.1 SQLite移植

从SQLite官方网站下载最新版本的SQLite,解压获得sqlite3.c、sqlite3.h、sqlite3ext.h三个源文件,还要下载一个基于Windows平台的edll压缩文档,解压获取sqlite3.def,最后下载一个支持命令行的版本文件,解压获得sqlite3.exe。然后生成工程:用VS2005新建DLL工程,选择智能设备在定制WinCE生成的SDK(如mini2440-CE6-SDK),把解压出来的源文件加入工程中。最后设置工程属性后编译:编译后便可生成适合设备平台的数据库使用文件sqlite3.lib、sqlite3.dll。以后只要把sqlite3.dll放到与工程相同的目录下,在工程链接的额外依赖中加入sqlite3.lib,然后在需要使用数据库的源文件中加入include“sqlite3.h”,SQLite数据库就可以使用了。

2.2 故障树的构建

基于故障树的推理是指利用故障现象信息和故障树节点间的逻辑关系进行推理,利用异常节点作为推理的起始点,利用辅助信息进行假设排除,最终确定故障原因。在进行故障诊断之前,系统要构造故障树,故障树的作用主要用于诊断过程的剪枝,即缩小状态空间的搜索范围,以提高系统工作效率。将数据库中的所有规则组织成若干棵树,每棵树的叶子节点对应一个故障现象或辅助信息,非叶子节点对应一个故障结论,父节点与子节点的关系构成规则,在数据库中记录故障树的根节点、节点层次、节点关系、叶子节点等信息。设置系统变量,用于判断系统是否进行过规则更新操作,在启动系统、退出规则维护界面和调用故障诊断功能时都进行判断,及时提示用户进行故障树的更新处理[4]。

串口无法通信或者通信过程中出现异常,就要对整体或者串口通信过程中的某个细节进行故障诊断。串口通信的实现需要如下几个模块:数据发送模块、数据接收模块、物理链路、中央处理单元、串口扩展板以及电源。故障主要有数据发送模块故障、接收模块故障以及串口扩展板故障三部分。在工作中,无论哪部分模块发生故障都将影响到整个通信过程。根据故障关系以及检测经验设计图2所示的串口通信故障树。


2.3 故障二叉树的建立

关系数据库管理系统的优势在于存储以二维数据表为模型的数据结构。本文将故障树压缩存储来降低检索算法的时空复杂度。

一般的树形dp都有这样的模型:f[x,y]=min{f[x1][y1],f[x2][y2],……f[xm][ym]}给每个儿子分配多少就需要枚举了,这种做法比较慢。但是如果转化为为二叉树之后,dp模型一般都是这样:f[x,y]=min{f[left[x],y1],f[right[x],y]},则变为给一个儿子进行分配就可以了,而且转化之后还有一个很有用的性质,即原树和二叉树的前序遍历相同,可以利用这个性质进行一些优化。而且在某些情况下,通过前序可以把树形dp转化为在线性表(如数组中的dp),这样许多转移方程就可以继续优化,所以在树的算法中把树转化为某种线性序可以大大优化模型,使其算法变得更简单高效。本着这种原则,本专家系统设计的SQLite表如表1所示。建立表之前,根据树转二叉树的算法对每个故障现象进行编号,表1中,NODE代表节点号;TEXT表示节点的故障现象;YESTO、NOTO表示判断后将要跳转的节点;NRANK表示节点等级,根节点等级为0,过度节点等级为1,当节点等级为2(即叶子节点)时,表示测试结束并给出是否保存结果的提示。

WinCE下读取数据库信息对系统进行专家诊断的核心代码如下:
if(atoi(sqlite->GetTableData(1,5))!=2)//保证在非叶子节
//点之间进行跳转
{
node = atoi(sqlite->GetTableData(node,3));//选择YESTO
//跳转到的节点
node = atoi(sqlite->GetTableData(node,4));//选择NOTO
//跳转到的节点
wsprintf(buff1, L"SELECT * from ‘%s‘ where NODE = %d ;",
table_name,node);//查询数据库
m_cap = sqlite->GetTableData(node,2);//读取node节点的
//故障现象
GetDlgItem(IDC_TITLE)->SetWindowText(m_cap);
//把故障现象显示出来
}

检测过程中,通过人机交互遍历故障二叉树如图3所示。图中二叉树的每一个叶子节点都是一次检测的结果,也就是故障的最终原因,它们的等级即NRANK都是2。通过等级的判断来确定是否是最终结果并提示保存。

3 系统的实现

本文以嵌入式操作系统Windows CE 和S3C2440A为开发环境,应用EVC++ 语言编写、应用程序和嵌入式数据库SQLite,开发了故障诊断专家系统,以串口通信故障检测为例,介绍了基于故障树分析法和专家规则的故障诊断专家系统的建立以及诊断过程。当串口通信故障检测开始时,测试人员只需要根据故障现象的提示进行是非判断,然后专家引导系统就会给出下一步的工作。系统工作流程图如图4所示。

专家系统运行的过程中,系统首次查询数据库,把故障树的根节点内容显示到提示信息。检测人员将提示故障现象正确与否的判断反馈给专家系统进行下一次数据库查询得到下一步的提示信息。检测人员参与之后的所有数据库查询工作都按照节点设计的逻辑进行跳转,然后重复人机交互操作,最后由专家系统给出确切答案,并提示检测人员对测试结果进行保存。

本文提出了一种基于二叉树遍历的检测专家系统并给出了多叉树转化为二叉树的方法,在嵌入式WinCE平台下将这种系统实现并在初步的实践检验中取得良好效果。以串口通信故障检测为例,详细地介绍了专家系统的建立过程以及工作原理,采用体积较小的嵌入式数据库SQLite以及WinCE友好的嵌入式人机交互界面和模块化程序设计方式,复用性好,可移植性高[5]。此系统模型广泛适用于交通、通信以及电力等设备的故障检测,在故障树的引导下进行专家级检测。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

电源适配器是电子设备中常见的配件,但有时候也会出现故障。本文将介绍电源适配器常见的故障类型,以及针对这些故障的解决方法,帮助读者更好地了解和应对电源适配器故障。

关键字: 电源适配器 故障诊断 电源

摘要:考虑到绝缘故障的存在会影响电气系统运行的稳定性,为提高电气系统绝缘故障诊断的性能,对电气系统绝缘故障诊断技术进行了研究:引入小波包分解技术,划分电气系统绝缘故障信号的频带,通过重构电气系统绝缘故障信号的特征矩阵,得...

关键字: 电气系统 小波分解 故障诊断

摘要:电梯异常振动由于故障原因复杂难以快速诊断排除,现通过构建贝叶斯网络基础结构,并用实际设备测量和实验数据进行贝叶斯网络学习,最终利用电梯振动贝叶斯网络进行故障模拟、故障诊断和维修方案决策,进一步提出了电梯异常振动故障...

关键字: 振动 贝叶斯 故障诊断

北京2022年8月29日 /美通社/ -- 近日,由同方自主研发的基于AIOT的设备监测诊断预警技术,被授予第五届全国设备管理与技术创新成果奖技术类二等奖。国家体育场"鸟巢"通过使用这种"基...

关键字: AIOT 智能建筑 大数据 故障诊断

摘要:空调制冷系统是城轨车辆的一个重要组成部分,列车环境的舒适度主要通过空调制冷系统来保障,如其频繁发生机组制冷量下降或不制冷等故障,将会严重影响车辆的服务质量与安全。现对城轨车辆空调制冷系统的故障诊断进行了研究,论述了...

关键字: 空调制冷系统 原因分析 故障诊断

摘要:首先分析了旋转机械振动诊断理论基础,为下一步专家系统故障诊断做了铺垫,随后详细介绍了旋转机械振动管理专家系统的设计说明,包括专家系统结构设计以及平台应用。该专家系统的开发对未来智能电厂的建设有着良好的借鉴意义。

关键字: 旋转机械 振动 专家系统

摘要:从分析变压器油中溶解气体的主要来源入手,介绍了变压器故障诊断中的油色谱分析法,在此基础上通过两则实例,对变压器油中溶解气体含量突增故障诊断进行了探讨,期望能对提升变压器运行的稳定性有所帮助。

关键字: 溶解气体 故障诊断 油色谱分析法

摘要:对智能电网中电力电缆出现故障的主要原因进行了分析,提出了几种先进的电力电缆故障诊断技术,对其原理和应用情况进行了研究,以提高智能电网的故障诊断效率,保障电网的运行可靠性。

关键字: 电力电缆 智能电网 故障诊断

摘要:传统DGA技术用于变压器故障诊断时,针对不同类型的潜伏性故障往往使用相同的诊断指标。考虑到在不同故障情形下,对应的油中溶解气体在种类和含量方面均存在差异,故提出使用变异系数建立故障类型与对应产物之间的联系,并使用S...

关键字: 气体指标 变异系数 故障诊断

摘要:我国风能资源丰富,陆地风能储量约2.53亿kw。近年来国家大力发展风力发电,国内风电装机容量累计逐年增长。风力发电机组在长时间运转过程中出现了各种类型的故障,需要运用状态检测与故障诊断技术保障机组的正常运转。据此,...

关键字: 风力发电机组 状态监测 故障诊断
关闭
关闭