當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]針對(duì)高科技產(chǎn)品專業(yè)性強(qiáng)、系統(tǒng)結(jié)構(gòu)復(fù)雜、故障分析困難等問(wèn)題,本設(shè)計(jì)以故障診斷的理論和方法為基礎(chǔ),提出了一種基于專家系統(tǒng)的故障診斷設(shè)計(jì)方案。設(shè)計(jì)構(gòu)造了故障診斷專家系統(tǒng)的整體框架,探討了專家系統(tǒng)中知識(shí)庫(kù)的建立、推理機(jī)制以及人機(jī)界面設(shè)計(jì)等問(wèn)題。

當(dāng)各種設(shè)備應(yīng)用與管理系統(tǒng)發(fā)生故障時(shí),準(zhǔn)確而快速地進(jìn)行故障診斷定位,對(duì)于系統(tǒng)的恢復(fù),具有十分重要意義。然而,由于系統(tǒng)結(jié)構(gòu)復(fù)雜,導(dǎo)致設(shè)備故障的原因很多,在現(xiàn)場(chǎng)分析、判斷和處理故障時(shí),往往依賴于維修人員對(duì)設(shè)備機(jī)理的把握程度和經(jīng)驗(yàn),導(dǎo)致故障定位不準(zhǔn),維修時(shí)間較長(zhǎng)。故采用故障樹(shù)分析法建立檢測(cè)引導(dǎo)系統(tǒng),以此來(lái)引導(dǎo)維修人員以專家的思維模式對(duì)設(shè)備進(jìn)行檢測(cè)修理,提高經(jīng)濟(jì)性和可靠性。這種檢測(cè)引導(dǎo)系統(tǒng)即為專家系統(tǒng)。本文以串口通信故障檢測(cè)為例,設(shè)計(jì)了一種嵌入式專家系統(tǒng),結(jié)合嵌入式WinCE以及SQLite,達(dá)到引導(dǎo)檢測(cè)的目的。

1 系統(tǒng)架構(gòu)

1.1 專家系統(tǒng)簡(jiǎn)介

專家系統(tǒng)(ES)是人工智能領(lǐng)域最活躍和最廣泛的領(lǐng)域之一[1]。自從1965 年第一個(gè)專家系統(tǒng)Dendral 在美國(guó)斯坦福大學(xué)問(wèn)世以來(lái),經(jīng)過(guò)40年的開(kāi)發(fā),各種專家系統(tǒng)已遍布各個(gè)專業(yè)領(lǐng)域。目前,專家系統(tǒng)得到了更廣泛的應(yīng)用,并在應(yīng)用開(kāi)發(fā)中得到進(jìn)一步發(fā)展。所謂專家系統(tǒng)就是使用人類專家推理的計(jì)算機(jī)模型來(lái)處理現(xiàn)實(shí)世界中需要專家作出解釋的復(fù)雜問(wèn)題,在沒(méi)有專家參與的情況下得出與專家相同的結(jié)論。簡(jiǎn)言之,專家系統(tǒng)可視作“知識(shí)庫(kù)”和“推理機(jī)”的結(jié)合,知識(shí)庫(kù)是專家的知識(shí)在計(jì)算機(jī)中的映射,推理機(jī)是利用知識(shí)進(jìn)行推理的能力在計(jì)算機(jī)中的映射,構(gòu)造專家系統(tǒng)的難點(diǎn)也在于這兩個(gè)方面。

1.2 系統(tǒng)組成

本文設(shè)計(jì)的智能專家系統(tǒng)包括用戶界面、數(shù)據(jù)庫(kù)以及模塊化的程序。應(yīng)用嵌入式數(shù)據(jù)庫(kù)SQLite來(lái)實(shí)現(xiàn)知識(shí)的存儲(chǔ)以及人機(jī)交互實(shí)現(xiàn)推理解釋。故障樹(shù)節(jié)點(diǎn)的所有信息均存儲(chǔ)在SQLite中,并在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)故障節(jié)點(diǎn)的邏輯關(guān)系以此取代推理機(jī),達(dá)到引導(dǎo)檢測(cè)的目的[2]。

1.3 系統(tǒng)工作機(jī)制

專家系統(tǒng)的組織控制機(jī)構(gòu)(即推理機(jī))根據(jù)當(dāng)前輸入數(shù)據(jù)來(lái)運(yùn)行知識(shí)庫(kù)中的相應(yīng)知識(shí),按一定策略進(jìn)行推理,以達(dá)到要求的目標(biāo)。本文專家系統(tǒng)中,推理機(jī)根據(jù)用戶參與選擇后的故障信息,在知識(shí)庫(kù)內(nèi)尋找能與之匹配的故障樹(shù)結(jié)點(diǎn)事件,每步推理都以用戶反饋信息為依據(jù),沿故障樹(shù)脈絡(luò)進(jìn)行正向推理,逐步縮小故障范圍,直至完成故障源定位。專家系統(tǒng)工作流程如圖1所示。


2 專家?guī)煸O(shè)計(jì)

故障樹(shù)分析FTA(Fault Tree Analysis)是一種演繹推理方法, 將系統(tǒng)可能發(fā)生的故障和故障原因由總體到部分按樹(shù)狀逐漸細(xì)化的圖形演繹方法, 通過(guò)對(duì)故障樹(shù)的定性和定量分析, 判明故障原因并可得出引發(fā)故障的相關(guān)因素的相關(guān)重要度[3]。故障樹(shù)是用于系統(tǒng)可靠性分析和故障診斷的一種圖形化故障模型,而基于規(guī)則的診斷專家系統(tǒng)的目標(biāo)是當(dāng)系統(tǒng)發(fā)生故障時(shí)綜合利用各種診斷信息,根據(jù)知識(shí)庫(kù)中的規(guī)則,通過(guò)推理確定系統(tǒng)的故障模式,推斷出故障部位和故障原因,最后提出排除故障的方法和維修建議。故障樹(shù)建立時(shí),將最不希望發(fā)生的故障作為頂事件; 位于故障樹(shù)底部, 導(dǎo)致其他事件的、不可再分的原因事件為底事件,其他事件都是中間事件。各事件間相互關(guān)系通過(guò)“與”門(mén)、“或”門(mén)、“非”門(mén)等邏輯門(mén)表示。

2.1 SQLite移植

從SQLite官方網(wǎng)站下載最新版本的SQLite,解壓獲得sqlite3.c、sqlite3.h、sqlite3ext.h三個(gè)源文件,還要下載一個(gè)基于Windows平臺(tái)的edll壓縮文檔,解壓獲取sqlite3.def,最后下載一個(gè)支持命令行的版本文件,解壓獲得sqlite3.exe。然后生成工程:用VS2005新建DLL工程,選擇智能設(shè)備在定制WinCE生成的SDK(如mini2440-CE6-SDK),把解壓出來(lái)的源文件加入工程中。最后設(shè)置工程屬性后編譯:編譯后便可生成適合設(shè)備平臺(tái)的數(shù)據(jù)庫(kù)使用文件sqlite3.lib、sqlite3.dll。以后只要把sqlite3.dll放到與工程相同的目錄下,在工程鏈接的額外依賴中加入sqlite3.lib,然后在需要使用數(shù)據(jù)庫(kù)的源文件中加入include“sqlite3.h”,SQLite數(shù)據(jù)庫(kù)就可以使用了。

2.2 故障樹(shù)的構(gòu)建

基于故障樹(shù)的推理是指利用故障現(xiàn)象信息和故障樹(shù)節(jié)點(diǎn)間的邏輯關(guān)系進(jìn)行推理,利用異常節(jié)點(diǎn)作為推理的起始點(diǎn),利用輔助信息進(jìn)行假設(shè)排除,最終確定故障原因。在進(jìn)行故障診斷之前,系統(tǒng)要構(gòu)造故障樹(shù),故障樹(shù)的作用主要用于診斷過(guò)程的剪枝,即縮小狀態(tài)空間的搜索范圍,以提高系統(tǒng)工作效率。將數(shù)據(jù)庫(kù)中的所有規(guī)則組織成若干棵樹(shù),每棵樹(shù)的葉子節(jié)點(diǎn)對(duì)應(yīng)一個(gè)故障現(xiàn)象或輔助信息,非葉子節(jié)點(diǎn)對(duì)應(yīng)一個(gè)故障結(jié)論,父節(jié)點(diǎn)與子節(jié)點(diǎn)的關(guān)系構(gòu)成規(guī)則,在數(shù)據(jù)庫(kù)中記錄故障樹(shù)的根節(jié)點(diǎn)、節(jié)點(diǎn)層次、節(jié)點(diǎn)關(guān)系、葉子節(jié)點(diǎn)等信息。設(shè)置系統(tǒng)變量,用于判斷系統(tǒng)是否進(jìn)行過(guò)規(guī)則更新操作,在啟動(dòng)系統(tǒng)、退出規(guī)則維護(hù)界面和調(diào)用故障診斷功能時(shí)都進(jìn)行判斷,及時(shí)提示用戶進(jìn)行故障樹(shù)的更新處理[4]。

串口無(wú)法通信或者通信過(guò)程中出現(xiàn)異常,就要對(duì)整體或者串口通信過(guò)程中的某個(gè)細(xì)節(jié)進(jìn)行故障診斷。串口通信的實(shí)現(xiàn)需要如下幾個(gè)模塊:數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊、物理鏈路、中央處理單元、串口擴(kuò)展板以及電源。故障主要有數(shù)據(jù)發(fā)送模塊故障、接收模塊故障以及串口擴(kuò)展板故障三部分。在工作中,無(wú)論哪部分模塊發(fā)生故障都將影響到整個(gè)通信過(guò)程。根據(jù)故障關(guān)系以及檢測(cè)經(jīng)驗(yàn)設(shè)計(jì)圖2所示的串口通信故障樹(shù)。


2.3 故障二叉樹(shù)的建立

關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的優(yōu)勢(shì)在于存儲(chǔ)以二維數(shù)據(jù)表為模型的數(shù)據(jù)結(jié)構(gòu)。本文將故障樹(shù)壓縮存儲(chǔ)來(lái)降低檢索算法的時(shí)空復(fù)雜度。

一般的樹(shù)形dp都有這樣的模型:f[x,y]=min{f[x1][y1],f[x2][y2],……f[xm][ym]}給每個(gè)兒子分配多少就需要枚舉了,這種做法比較慢。但是如果轉(zhuǎn)化為為二叉樹(shù)之后,dp模型一般都是這樣:f[x,y]=min{f[left[x],y1],f[right[x],y]},則變?yōu)榻o一個(gè)兒子進(jìn)行分配就可以了,而且轉(zhuǎn)化之后還有一個(gè)很有用的性質(zhì),即原樹(shù)和二叉樹(shù)的前序遍歷相同,可以利用這個(gè)性質(zhì)進(jìn)行一些優(yōu)化。而且在某些情況下,通過(guò)前序可以把樹(shù)形dp轉(zhuǎn)化為在線性表(如數(shù)組中的dp),這樣許多轉(zhuǎn)移方程就可以繼續(xù)優(yōu)化,所以在樹(shù)的算法中把樹(shù)轉(zhuǎn)化為某種線性序可以大大優(yōu)化模型,使其算法變得更簡(jiǎn)單高效。本著這種原則,本專家系統(tǒng)設(shè)計(jì)的SQLite表如表1所示。建立表之前,根據(jù)樹(shù)轉(zhuǎn)二叉樹(shù)的算法對(duì)每個(gè)故障現(xiàn)象進(jìn)行編號(hào),表1中,NODE代表節(jié)點(diǎn)號(hào);TEXT表示節(jié)點(diǎn)的故障現(xiàn)象;YESTO、NOTO表示判斷后將要跳轉(zhuǎn)的節(jié)點(diǎn);NRANK表示節(jié)點(diǎn)等級(jí),根節(jié)點(diǎn)等級(jí)為0,過(guò)度節(jié)點(diǎn)等級(jí)為1,當(dāng)節(jié)點(diǎn)等級(jí)為2(即葉子節(jié)點(diǎn))時(shí),表示測(cè)試結(jié)束并給出是否保存結(jié)果的提示。

WinCE下讀取數(shù)據(jù)庫(kù)信息對(duì)系統(tǒng)進(jìn)行專家診斷的核心代碼如下:
if(atoi(sqlite->GetTableData(1,5))!=2)//保證在非葉子節(jié)
//點(diǎn)之間進(jìn)行跳轉(zhuǎn)
{
node = atoi(sqlite->GetTableData(node,3));//選擇YESTO
//跳轉(zhuǎn)到的節(jié)點(diǎn)
node = atoi(sqlite->GetTableData(node,4));//選擇NOTO
//跳轉(zhuǎn)到的節(jié)點(diǎn)
wsprintf(buff1, L"SELECT * from ‘%s‘ where NODE = %d ;",
table_name,node);//查詢數(shù)據(jù)庫(kù)
m_cap = sqlite->GetTableData(node,2);//讀取node節(jié)點(diǎn)的
//故障現(xiàn)象
GetDlgItem(IDC_TITLE)->SetWindowText(m_cap);
//把故障現(xiàn)象顯示出來(lái)
}

檢測(cè)過(guò)程中,通過(guò)人機(jī)交互遍歷故障二叉樹(shù)如圖3所示。圖中二叉樹(shù)的每一個(gè)葉子節(jié)點(diǎn)都是一次檢測(cè)的結(jié)果,也就是故障的最終原因,它們的等級(jí)即NRANK都是2。通過(guò)等級(jí)的判斷來(lái)確定是否是最終結(jié)果并提示保存。

3 系統(tǒng)的實(shí)現(xiàn)

本文以嵌入式操作系統(tǒng)Windows CE 和S3C2440A為開(kāi)發(fā)環(huán)境,應(yīng)用EVC++ 語(yǔ)言編寫(xiě)、應(yīng)用程序和嵌入式數(shù)據(jù)庫(kù)SQLite,開(kāi)發(fā)了故障診斷專家系統(tǒng),以串口通信故障檢測(cè)為例,介紹了基于故障樹(shù)分析法和專家規(guī)則的故障診斷專家系統(tǒng)的建立以及診斷過(guò)程。當(dāng)串口通信故障檢測(cè)開(kāi)始時(shí),測(cè)試人員只需要根據(jù)故障現(xiàn)象的提示進(jìn)行是非判斷,然后專家引導(dǎo)系統(tǒng)就會(huì)給出下一步的工作。系統(tǒng)工作流程圖如圖4所示。

專家系統(tǒng)運(yùn)行的過(guò)程中,系統(tǒng)首次查詢數(shù)據(jù)庫(kù),把故障樹(shù)的根節(jié)點(diǎn)內(nèi)容顯示到提示信息。檢測(cè)人員將提示故障現(xiàn)象正確與否的判斷反饋給專家系統(tǒng)進(jìn)行下一次數(shù)據(jù)庫(kù)查詢得到下一步的提示信息。檢測(cè)人員參與之后的所有數(shù)據(jù)庫(kù)查詢工作都按照節(jié)點(diǎn)設(shè)計(jì)的邏輯進(jìn)行跳轉(zhuǎn),然后重復(fù)人機(jī)交互操作,最后由專家系統(tǒng)給出確切答案,并提示檢測(cè)人員對(duì)測(cè)試結(jié)果進(jìn)行保存。

本文提出了一種基于二叉樹(shù)遍歷的檢測(cè)專家系統(tǒng)并給出了多叉樹(shù)轉(zhuǎn)化為二叉樹(shù)的方法,在嵌入式WinCE平臺(tái)下將這種系統(tǒng)實(shí)現(xiàn)并在初步的實(shí)踐檢驗(yàn)中取得良好效果。以串口通信故障檢測(cè)為例,詳細(xì)地介紹了專家系統(tǒng)的建立過(guò)程以及工作原理,采用體積較小的嵌入式數(shù)據(jù)庫(kù)SQLite以及WinCE友好的嵌入式人機(jī)交互界面和模塊化程序設(shè)計(jì)方式,復(fù)用性好,可移植性高[5]。此系統(tǒng)模型廣泛適用于交通、通信以及電力等設(shè)備的故障檢測(cè),在故障樹(shù)的引導(dǎo)下進(jìn)行專家級(jí)檢測(cè)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉