第26卷 第2期2006年3月
长安大学学报(自然科学版)
ournalofChan'anUniversitNaturalScienceEdition) Jgy(Vol.26 No.2
Mar.2006
文章编号:()1671-8879200602-0099-04
基于Web的汽车故障检测专家系统的设计
张白一,崔尚森
(长安大学信息工程学院,陕西西安7)100
摘 要:在分析汽车故障检测系统需求的基础上,提出了适用于Internet环境的规则式汽车故障检测专家系统的设计方案。给出实现这一方案的三项关键技术:产生式规则的表示方法;推理机技术;面向对象程序设计语言Java与人工智能语言Prolog的接口技术。应用这一方案设计和开发了一个简单的诊断汽车传动系统故障的专家系统。结果表明,该方案不仅切实可行,而且快捷高效,它为开发基于Web的规则式专家系统提供了一条方便快捷和高效的途径。
关键词:汽车工程;故障检测;专家系统;规则;接口;Web中图分类号:U472.42 文献标识码:A
ExertSstemofDianosinutomobileMalfunctionBasedonWebpyggA
,ZHANGBai-iCUIShan-senyg
(,’,’,)SchoolofInformationEnineerinChananUniversitXian7100,ShaanxiChinagggy
:AbstractOnthebasisofsstemanalsisofinsectinheautomobilemalfunction,thispaeryypgtpbrinsforwardaproectforudinheautomobilemalfunction,whichisbasedonrulesanda-gjjggtp,licabletotheInternetenvironment.Threekeechniuestoimlementtheproectarestudiedpytqpj
;;theretheexressmethodofroductionrulethetechniueofreasoninachinetheinterfaceyappqgmimlementtechniuebetweentheoriented-obectproramminlanuaeJavaandartificialintelli-pqjggggencelanuaeProlo.Usinhisproectcandeveloimlesstemtodianoseautomobilegggggtjpaspygdriversstemmalfunction.Theresultindicatesthatitisfeasible.Thisproectcanprovideanef-yj
,convenientandfastaroachfordevelointheexertsstemwhichisbasedonrulesandficientpppgpy,alicabletotheWeb.2fis6refs.ppg
:a;m;e;;Keordsutomotiveenineerinalfunctiondianosinxertsstem;ruleInterfaceggggpyywWeb
语言-----Am!PJava和人工智能语言-zirolog两者相结合的方式,实现了两种不同语言的接口,并通过一个简单的汽车传动故障专家系统的具体设计和实践,表明这一方案是切实可行的。
0 引 言
对汽车生产厂家或汽车维修商来说,将汽车故障检测和维护等方面的服务进入I,不仅可nternet以为用户提供超值服务,而且还可以大大降低有关费用和成本。为此,本文提出了一个基于Web的汽
车故障检测系统的设计方案,使用面向对象的编程
收稿日期:2005-02-01
作者简介:张白一(),女,辽宁沈阳人,副教授.1955-
1 系统需求分析
第一,汽车故障检测系统是一个专家系统,用户
100
长安大学学报(自然科学版)006年 2
用面向对象的编程语言---Java和人工智能语言---Am!P实现基于zirolog两者相结合的方式,Web的汽车故障检测专家系统的开发。这是因为
而Am!Java语言是目前最流行的网络编程语言,ziProlog语言是几种常用的逻辑推理类人工智能语
言中的一个版本,它提供了Am!PzirolooicgLg
(Am!逻辑服务器),可通过编写JServerziavaBean
[]
接口程序来实现Proloava的动态链接45。g与J
对观察到的故障向系统提出咨询,系统按信息库中的规则进行智能评判,给出汽车故障的原因。第二,专家系统在处理问题的方法上不是以算法来解决问题,而是靠知识和推理解决问题,所以它是基于知识的智能求解系统。第三,从系统所具有的专家知识的表示形式来看,此类知识属于产生式规则表示形式。第四,由于汽车故障检测涉及到世界各地的用户,该系统应能适用于I,因此该系统的结构nternet属于分布式网络型。第五,由于汽车性能会不断提高,故该系统需要有很好的灵活性和可扩充性。
2.3 故障检测专家系统服务器
基于规则的专家系统主要由4部分组成。利用人工智能语言本身所具备的搜索、匹配、冲突解决等功能,可以快速地开发专家系统。然而,由于目前使用的人工智能语言(如Prolog等)不能直接嵌入Web页面,需要解决专家系统与Web页面
的整合问题,即编写接口程序[
13]
。 基于Web的专家系统体系结构
基于Web的专家系统体系结构如图1所示。
整个系统采用3层结构的B/S模式,即表示层的浏览器;事务处理层的Web服务器;数据处理层的推理机、解释系统、知识库和综合数据库。
图1 基于Web的专家系统体系结构
.1 浏览器
浏览器是用户与系统间交互的窗口,以Web页面的形式将询问或结果信息呈现给用户。该系统的浏览器可直接采用目前常用的IE浏览器等。
用户页面的类型可根据用户需求及推理系统的需求而定。常用的用户页面主要有询问式页面、菜单驱动式页面、图形接口式页面等。由于本系统是以询问和回答为特点的,故该系统的用户界面以询问式界面为佳。
.2 Web服务器及其与专家系统的接口Web服务器结构是一种面向动态内容的实现,结合了Servlet和JSP技术。它的优点在于采用SP来表现页面,采用Servlet来完成大量的处理。
ervlet作为控制者负责响应客户请求,创建JSP需要的JavaBean和对象,再将动态内容插入预定的模板,根据用户行为将JSP页面发送给用户。本文使
(1
)知识库描述汽车故障的知识和启发式规则,它是专家知识、领域知识、元知识的集合。(2)推理机也称为控制器,是机器实现推理的程序,应用产生式规则与综合数据库中的数据通过匹配、冲突解决和操作策略来求解实际问题。(3)综合数据库存放初始事实数据、推理结果及控制信息。
(4
)解释系统负责向用户解释专家的判断结果。3 系统实现的几个关键技术
3.1 产生式规则的知识表示
为说明产生式规则的知识表示方法,作为示例,给出一组判断故障的规则。
规则1:如果发动机在供油并且能旋转,则火花塞有故障。
规则2:如果发动机不旋转并且灯不亮,则蓄电池或电缆有故障。
规则3:如果发动机不旋转但灯亮,则启动电机有故障。
规则4:如果汽车油箱有油并且发动机化油器中有油,则发动机在供油。
…
按照Amzi!Prolog语言产生式规则的知识表示格式,将系统需求分析中的专家知识写成Prolog语言产生式规则,其表示形式为:
failure_is(“火花塞故障”):-it_is(“发动机能旋转”),it_is(“发动机在供油”)。failure_is(“蓄电池或电缆故障”):-it_is(“发动机不旋转”),positive(“灯不亮”)。failure_is(“启动电机故障”):-it_is(“发动机不旋转”),p
ositive(“灯亮”)。…
it_is(“发动机在供油”):-positive(“油箱中有油”),p
ositive(“化油器中有油”)。222JS第2期 张白一,等:基于Web的汽车故障检测专家系统的设计_(“发动机能旋转”):(“发动机能itis-positive旋转”)!_(“发动机不旋转”):(“发动机不itis-positive旋转”)!
…
3.2 推理机技术
推理机是开发专家系统的关键技术之一,它主要包括推理方法和控制策略两部分。本文在开发汽车传动故障检测系统中选用逆向推理的控制策略和精确推理的推理方法。
101
而Am!P!PzirolozirolooicServ-g提供了AmgLg,可实现P!erroloava的动态链接。在Amzig与J
ProlooicServer中有2个动态链接库文件:gLg
**
、包。包amzi.dllamzini.dll和一个amzi.ls.amzi.ls.j
中的LoicServer类提供了许多支持JNI的成员方g
法,引用这些J!NI成员方法就可以调用AmziLo-g,从icServer的动态链接库amzi.dll和amzini.dllj而在Am!ziProlooicServerAPIg引擎上建立起Lg与Java的外部连接。
实现基于Web的汽车故障检测专家系统的接逆向推理的基本原理是首先选定一个假设目标,然后寻找支持该假设的证据。若所需的证据都能找到,则说明原假设成立;若无论如何都找不到所需要的证据,说明原假设不成立,此时需要另作新的假设。逆向推理使用深度优先搜索算法,其推理过程可描述为:
(1)提出要求证的假设目标。(2
)检查该假设目标是否已在数据库中,若不在则转入(3);否则,该假设目标成立,转入(6)。(3)判断该假设目标是否是证据,若不是,则转入(4);否则,询问用户是否有此证据,用户回答无此证据时则转入(6),否则,将此证据存入数据库,然后转入(6
)。(4
)在知识库中找出所有能导出该假设目标的规则,形成适用知识集KS,然后转入(5)。(5)从KS中选出一条知识,
并将该知识的运用条件作为新的假设目标,然后转入(2)。(6)判断是否还有假设目标,若有则转入(2)对下一个假设进行验证;否则成功地退出推理。
按照上述推理过程,则汽车传动系统故障的逆向推理与或图如图2所示。
图2 汽车传动系统故障逆向推理与或图
.3 Java与Prolog的接口实现
Java语言是目前最流行的网络编程语言,但是ava所提供的JNI技术只能与C或C++程序接口,而不能与逻辑推理类语言(如Prolog语言)
接口。口程序主要语句为:
mportamzi.ls*
.;/Amzi!Java包,
/该语句是将用于异常处理的LSException类和提供JNI方法的LogicServer类引入Java程序中 …
publicstaticvoidmyInterface(…)throwsLSEx-eption {…
longterm;Stringresult;Log
icServerls=newLogicServer();//创建逻辑服务器的对象
ls.Init(\"\");//初始化逻辑服务器 ls.Load(\"文件名.xpl\");//加载Prolog语言的运行文件到逻辑服务器中
term=ls.ExecStr(用字符串方式写出Prolog
语言进行提问);//提问题,获得文件名.xpl的结果参数
if(term0)System.out.p
rintln(\"Failed\"
); else{result=ls.GetStrArg(term);//取得运行后得出的推理结果
System.out.p
rintln(result);} ls.Close();//关闭逻辑服务器 …
}
结 语
(1)提出了一个基于Web的汽车故障检测专家系统的设计方案,指出这样的专家系统应该是基于
规则的专家系统,由于规则式的知识表示具有很好的灵活性和扩充性,而规则式推理能够以非常直接的方式从专家那里获取经验知识,对于那些高度依赖启发来管理复杂度或残缺信息的领域更是如此。
(2
)探讨了该类专家系统的开发方法,指出使用i//c43J102
长安大学学报(自然科学版)006年 2
,():lications2002,3833032.p
[]苏 建,林慧英.汽车车轮侧滑检测与诊断专3 潘洪达,
]长安大学学报:自然科学版,:家系统[J.2003,23(5)7173.
,,PANHon-daSUJianLINHui-in.DetectionandgygDianosisExertSstemforSide-slifAutomobilegpypo[:NWheelJ].JournalofChananUniversitaturalg’y,():ScienceEdition2003,2357173.
[]崔尚森.应用J4NI实现Java与Prolo 张白一,g的优势
互补[]():J.交通与计算机,2004,226119121.,ZHANGBai-iCUIShan-sen.AlicationofJNItoygpp[]J.ComuterRealizinecirocitfJavaandProlopgRpyog,():andCommunications2004,226119121.[]周书武,亓 琳,等.508-32捣固车电子系统在 应立军,
交通运输工程学报,线监测与故障诊断系统[J].():2004,443436.
,,Q,YINGLi-unZHOUShu-wuILinetal.On-linejMonitorinndFaultDianosisSstemforElectricgagySstemof08-32Tamer[J].JournalofTrafficandyp,():TransortationEnineerin2004,443436.pgg[]苏 建,潘洪达,等.虚拟仪器技术在汽车性6 刘玉梅,
能测试中的应用[]中国公路学报,:J.2005,18(2)112115.
,,,LIUYu-meiSUJianPANHon-daetal.Alica-gpptionofVirtualInstrumentTechnolonAutomobilegyi[]PerformanceTestJ.ChinaJournalofHihwandgya,():Transort2005,182112115.p
面向对象的网络编程语言---Java和人工智能语言---Am!Pzirolog两者相结合的方式具有事半功倍的效率。
()针对使用这两种语言开发专家系统时存在3
实现了两种不同语言的接口。的具体问题,
()给出了实现基于W4eb的汽车故障检测专家
系统的关键技术,并通过一个简单的汽车传动系统故障的具体设计和实践,说明这一方法是切实可行的,它为开发基于Web的专家系统提供了一条方便快捷的途径。参考文献::References
[]张博锋,吴耿锋,等.逻辑型语言和过程型语1 王黎阳,
言中的C]OM技术[J.小型微型计算机系统,2003,():24712101212.
,Z,WUG,WANGLi-anHANGBo-fenen-fenyggggetal.COMTechnoloinLoicalLanuaeandPro-gyggg[],ceduralLanuaeJ.Mini-MicroSstems2003,24ggy():712101212.
[]孙延明,郑时雄.结合C++与P2rolo 赖朝安,g语言快速
]:开发专家系统[J.计算机工程与应用,2002;38(3)3032.
,S,ZLAIChao-anUNYan-minHENGShi-xion.ggRaidDevelomentofESbheCombineofC++andppyt]Proloanuae[J.ComuterEnineerinndA-gLggpggap
0000000000000000000000000000000000000000000000000(上接68页)参考文献::References
[],1HANGZiXUJian-min.ADnamicRouteGuidanceA- Zy
rithmeticBasedonReinforcementLearninR].Washing[gtonProceedinf2005InternationalConferenceongDC:go,MachineLearninndCbernetics2005.gay
[2] 李英姿,张飞舟,林耀海.智能交通系统中地理信息
系统的研究[]():J.中国公路学报,2000,13397100.,,LIYin-ziZHANGFei-zhouLINYao-hai.ResearchgonGeorahicInformationSsteminIntellientTrans-gpyg[]ortationSstemsJ.ChinaJournalofHihwandgyapy,():Transort2000,13397100.p
[,E3]hoiunwoo.AnalsisofGPSStaticPositionin Cyg
Problems[J].AliedMathematicsandComuta-ppp,():tion2003,14013751.
[]4 钟慧玲,徐建闽,屠 宇.基于专用短程通信的停车
引导和信息系统[]自然科学版,J.长安大学学报:():2004,2426669.
,XUJ,TUYZHONGHui-linian-minu.ParkinggPGIS)BasedonGuidanceandInformationSstem(yDedicatedShortRaneCommucation(DSRC)[J].g:NJournalofChananUniversitaturalScienceEdi-g’y,():tion2004,2426669.
[]5 张红武,谢 忠,吴 亮.万维网地理信息系统的设
计与实现[]计算机工程,():J.2003,293152154.,,WULZHANGHon-wuXIEZhonian.TheDe-ggg[]sinandImlementationofWebGISJ.ComuterEn-gpp,():ineerin2003,293152154.gg
[]6IS的公交网络配 葛 亮,王 炜,杨 明,等.基于G
流新方法[]():J.交通运输工程学报,2004,435458.,WANGW,YANGM,eGELianeiintal.NewggMethodofPublicTransitNetworkAssinmentBasedg[]onGISJ.JournalofTrafficandTransortationEni-pg,():neerin2004,435458.g