×

实例分析嵌入式专家系统引导检测

消耗积分:1 | 格式:rar | 大小:0.5 MB | 2017-10-27

分享资料个

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"//m.obk20.com/www/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'实例分析嵌入式专家系统引导检测',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"https://www.elecfans.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);