《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Win CE平臺下嵌入式故障診斷專家的設計
Win CE平臺下嵌入式故障診斷專家的設計
來源:電子技術應用2011年第8期
姜 濤,周西峰,郭前崗
(南京郵電大學 自動化學院,江蘇 南京210003)
摘要: 針對高科技產品專業性強、系統結構復雜、故障分析困難等問題,本設計以故障診斷的理論和方法為基礎,提出了一種基于專家系統的故障診斷設計方案。設計構造了故障診斷專家系統的整體框架,探討了專家系統中知識庫的建立、推理機制以及人機界面設計等問題。
中圖分類號: TP391.5
文獻標識碼: A
文章編號: 0258-7998(2011)08-0036-03
An embedded fault diagnosis expert system based on WinCE platform
Jiang Tao,Zhou Xifeng,Guo Qian′gang
Automation College, Nanjing University of Posts and Telecommunications,Nanjing 210003,China
Abstract: For the reasons that high-tech products are highly professional,system structures are of great complexity and the failure analysis is difficult, according to relevant theories and methods of fault diagnosis the design puts forward a proposal based on expert system. Paper forms a framework of the fault diagnosis system, and discusses the establishment of fault library, reasoning mechanism and interaction interface.
Key words : expert system;embedded WinCE;SQLite;serial communications


    當各種設備應用與管理系統發生故障時,準確而快速地進行故障診斷定位,對于系統的恢復,具有十分重要意義。然而,由于系統結構復雜,導致設備故障的原因很多,在現場分析、判斷和處理故障時,往往依賴于維修人員對設備機理的把握程度和經驗,導致故障定位不準,維修時間較長。故采用故障樹分析法建立檢測引導系統,以此來引導維修人員以專家的思維模式對設備進行檢測修理,提高經濟性和可靠性。這種檢測引導系統即為專家系統。本文以串口通信故障檢測為例,設計了一種嵌入式專家系統,結合嵌入式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]。此系統模型廣泛適用于交通、通信以及電力等設備的故障檢測,在故障樹的引導下進行專家級檢測。
參考文獻
[1] 蔡自興,DURKIN J,龔濤.高級專家系統:原理、設計及應用[M].北京:科學出版社,2006.
[2] 潘玲琳.基于產生式規則的專家系統的研究實現[J].計算機技術與發展,2007(5).
[3] 邵延峰,薛紅軍.故障樹分析法在系統故障診斷中的應用[J].中國制造業,2007,36(1):72274.
[4] 朱大奇.電子設備故障診斷原理與實踐[M].北京:電子工業出版社,2004.
[5] 莊宗輝,薛毓強,連瑞紅.嵌入式數據庫SQLite在遠程監控系統中的應用[J].現代電子技術,2007(8):62-64.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 激情综合色综合久久综合| 高清中文字幕在线| 好吊妞国产欧美日韩免费观看 | 波多野结衣无限| 全彩口工番日本漫画| 羞羞答答xxdd影院欧美| 国产偷国产偷亚洲高清在线| 日本在线xxxx| 国产精品影音先锋| 91精品国产高清久久久久| 天堂俺去俺来也WWW色官网| yy22.tv夜月直播| yjsp妖精视频网站| 最近中文字幕国语免费高清6| 亚洲日本在线播放| 波多野结衣mdyd907| 伊人久久精品无码麻豆一区| 精品伊人久久香线蕉| 同性spank男男免费网站| 色猫咪av在线网址| 国产内射在线激情一区| 97国产在线播放| 国产日韩中文字幕| 五月天婷婷综合网| 国产精品999| 青青草原国产视频| 国产精品无码一区二区三区免费| 91视频综合网| 国美女福利视频午夜精品| 99国产精品久久| 夜夜爽夜夜叫夜夜高潮漏水| a级毛片高清免费视频就| 女人扒开腿让男生桶爽动漫| yellow视频免费看| 婷婷人人爽人人做人人添| 中国一级毛片视频免费看| 成人妇女免费播放久久久| 中国国语毛片免费观看视频| 我和室友香蕉第二部分| 中文字幕av无码不卡免费| 成年在线观看免费人视频草莓|