蘇 偉,王吉岱,孫愛芹
(山東科技大學,青島 266510)
近年來,專家系統(tǒng)在理論研究和實際應用方面取得了令人矚目的成就。作為人工智能的關鍵部分,專家系統(tǒng)是人工智能從一般思維規(guī)律探索走向?qū)iT知識利用,從理論方法研究走向?qū)嶋H系統(tǒng)設計的轉(zhuǎn)折點和突破口[1]。它是一種典型的“知識工程”系統(tǒng),既是知識表達、知識存儲、知識推理、知識獲取和知識管理技術的綜合應用對象,也是研究和開發(fā)知識工程技術的工具,它促進了計算機軟件、硬件和系統(tǒng)從數(shù)據(jù)信息處理向知識信息處理的發(fā)展。本文以高壓輸電線路除冰機器人為控制對象,采用專家控制原理研究設計了一種基于規(guī)則庫專家控制系統(tǒng),為高壓線除冰機器人的智能化提供了一種有效的方法及途徑。
專家系統(tǒng)是一種計算機程序,具有啟發(fā)性、透明性、靈活性及智能性的特點[2]。本文所設計的系統(tǒng)是基于規(guī)則的產(chǎn)生式專家系統(tǒng),主要由知識庫、推理機、靜態(tài)數(shù)據(jù)庫、動態(tài)數(shù)據(jù)庫、解釋機制和人機接口組成,如圖1所示。
圖1 專家系統(tǒng)的組成
本文首先對試驗線路進行編號,然后對線路上的障礙進行特征提取,最后根據(jù)以往經(jīng)驗將機器人運行過程中的標準運動狀態(tài)及所對應的傳感器信息以列表的形式列出。利用clips與VC++相結(jié)合的方式編程,將這些靜態(tài)知識信息轉(zhuǎn)化為機器人所能識別的語言存入靜態(tài)數(shù)據(jù)庫中。根據(jù)以上事實,制定高效、簡潔、可擴展性好的規(guī)則存儲與知識庫中。結(jié)合實時采集的機器人的運動事實,由推理機通過推理決定這些事實與哪些規(guī)則匹配,并授予規(guī)則優(yōu)先級,進而執(zhí)行最高優(yōu)先級的規(guī)則,觸發(fā)機器人的下一步動作,同時將推理中產(chǎn)生的新信息放入動態(tài)數(shù)據(jù)庫中[2]。動態(tài)數(shù)據(jù)庫中也存儲實時接收到的傳感器信息及控制指令。此外,本專家系統(tǒng)中還有人機接口及解釋機制,方便用戶操作。
本專家系統(tǒng)是基于規(guī)則的產(chǎn)生式專家系統(tǒng),知識庫采用規(guī)則庫,其規(guī)則即為存儲推理所用的規(guī)則。規(guī)則的表達采用IF…THEN的形式,存儲格式為:
(defrule <rule name > [<comment>]
<patterns>*;// Left-Hand side of
the rule
=>
<actions>*);// Right-Hand side of
the rule
其中=>是IF…THEN規(guī)則中THEN部分開始的標記,最后一部分是行為列表,行為是聲明的事實,當此規(guī)則觸發(fā)時這些行為就會被執(zhí)行。
例如系統(tǒng)中規(guī)則1存儲的是機器人前行的觸發(fā)規(guī)則,程序?qū)崿F(xiàn)的方法為:
(deftemplate sensor
(multislot number)
(multislot signal))
(defrule rule-1
(sensor (number a) (signal 1)
(sensor (number b) (signal 0)
…
(sensor (number n) (signal 1))
=>
(printout t “the robot is moving forward”
crlf)
d2410_write_outbit(0,s,0) )
//向所用運動控制卡DMC2410的通用輸出s口發(fā)送低電平,控制電機的以實現(xiàn)除冰機器人的前行。
事實庫由線路庫、障礙庫和動作庫組成,線路庫存儲要巡檢的線路編號及相應的線路特征;障礙庫存放不同障礙的基本特征;動作庫中存放根據(jù)機器人的運動狀態(tài),各個執(zhí)行元件的動作指令。
本系統(tǒng)中事實庫采用列表法實現(xiàn),根據(jù)對機器人運動狀態(tài)的分析及多次試驗經(jīng)驗,采用列表法將機器人的運動狀態(tài)及對應的傳感器信號電平列出。例如當機器人跨越垂直線夾時,機器人的標準運動狀態(tài)如表1所示。
表1 機器人標準運動狀態(tài)
其中,橫坐標代表機器人傳感系統(tǒng)的檢測信息(低電平有效),縱坐標代表根據(jù)狀態(tài)信息不同組合確立的機器人標準運動狀態(tài)。
利用CLIPS語言將列表中存儲的事實轉(zhuǎn)化為推理機能夠識別的信息塊[3],這些信息塊在通過定義的模板進行編輯之后,被存儲在事實表中。程序編寫方法為:
( deffacts move-forward
(sensor (number a)
(signal d2410_read_inbit(1,p)
……
(sensor (number n)
(signal d2410_read_inbit(1,q)))
CLIPS所承認的事實都保存在事實表(factlist)中。新的事實用assert 命令加入事實表:
(assert<<<fact>>>)
推理機是專家系統(tǒng)的組織控制機構(gòu),是關于問題求解的一般性控制知識[4]。本系統(tǒng)采用正向推理的方式建立推理機,從已知的不同傳感器信號對應的機器人不同運動狀態(tài)事實出發(fā),正向使用推理規(guī)則?;镜乃枷胧牵合葘C器人運動狀態(tài)事實放入綜合數(shù)據(jù)庫中,根據(jù)綜合數(shù)據(jù)庫中的已有事實,到知識庫中尋找當前可用知識,形成一個當前可用知識集,然后按照沖突消解策略,從該知識集中選擇幾條知識進行推理,并將新推出的事實加入綜合數(shù)據(jù)庫,作為后面繼續(xù)推理時可用的已知事實,如此重復這一過程,直到求出所需要的解或者知識庫中再無可用知識為止。推理流程圖如圖2所示。
圖2 推理流程圖
根據(jù)實驗室搭建的模擬線路,對本文研究的控制方法進行了驗證。實驗結(jié)果如圖3所示。圖3(a)表示機器人的遇到垂直線夾的靜止狀態(tài),此時前輪的紅外傳感器檢測到了障礙,信號自動變?yōu)榈碗娖?。事實表中的存儲事實狀態(tài)為:(0,1,0,1,1,1,0,1,1,1,0,1,1);推理機將此事實與知識庫中的規(guī)則相比對,觸發(fā)與之匹配的規(guī)則“前臂升起”規(guī)則;圖3(b)表示機器人前臂升起準備越障的狀態(tài),此時前臂的上下兩個限位開關分別由1變?yōu)?,由0變?yōu)?,事實表中存儲的事實為:(1,0,1,1,1,1,0,1,1,1,0,1,1);觸發(fā)與之相匹配的規(guī)則進而使機器人前臂越障。圖3(c)表示機器人前臂越過障礙,中間臂紅外傳感器檢測到垂直線夾,機器人停止運行,等待前臂掛線。圖3(d表示前臂掛線,中間臂等待越障。原理同圖3(a),(b)一樣。
圖3 實驗結(jié)果
經(jīng)過試驗得出,本文所提出的專家系統(tǒng)的結(jié)構(gòu)合理,完全可以實現(xiàn)對機器人的智能控制,為輸電線路的除冰機器人智能化提供了一種有效的方法和途徑。
[1] 涂序彥.人工智能及其應用[M].北京:電子工業(yè)出版社,1994.
[2] 李維贊.輸電線路巡檢機器人的設計與控制系統(tǒng)的研究[J].北京:制造業(yè)自動化,2008.
[3] Joseph C.Giarratano.專家系統(tǒng)原理及編程[M].北京:機械工業(yè)出版社,2000.
[4] Villa A.Expert control system:A rationale to handle system uncertainty and control structure complexity[J].IEEE Trans SMC,1987,17-28.