李鴻明, 畢 翔,2, 魏振春,2, 韓江洪,2, 王啟忠
(1.合肥工業(yè)大學 計算機與信息學院,安徽合肥 230009;2.合肥工業(yè)大學安全關鍵工業(yè)測控技術教育部工程研究中心,安徽合肥230009;3.安徽國投新集能源股份有限公司 劉莊煤礦,安徽穎上 236200)
離散事件動態(tài)系統(tǒng)(discrete event dynamic system s,簡稱DEDS)是由異步、突發(fā)的事件驅動狀態(tài)演化的動態(tài)系統(tǒng),系統(tǒng)的輸入輸出是離散量,難以建立精確的數學模型[1]。產生式規(guī)則主要用于專家系統(tǒng)中,具有自然直觀、格式清晰、便于推理的特點,因而得到了廣泛的使用。規(guī)則化描述方法(rule description method,簡稱RDM)是一種將產生式規(guī)則應用于DEDS,用來描述DEDS中各對象間行為關系的方法。該方法已應用在車身總線控制系統(tǒng)、皮帶機集群控制系統(tǒng)中,并且取得了較好的效果[2,3]。
但是在實際的生產應用中,是以混合動態(tài)系統(tǒng)(HDS)為主,包括DEDS和連續(xù)變量動態(tài)系統(tǒng)(CVDS)[4]。在此類系統(tǒng)中,存在著連續(xù)變量的輸入與輸出,因為RDM可使用的范圍是離散變量,對連續(xù)變量的描述存在不足,使得系統(tǒng)必須引入另一個控制方法,增加了系統(tǒng)的復雜度和設計難度。為了簡化系統(tǒng)設計的結構,需使RDM同樣適用于連續(xù)變量。模糊控制是以模糊集合論、模糊語言變量及模糊邏輯推理為基礎的,模擬人的近似推理和決策過程[5],和RDM相似的都是以規(guī)則作為系統(tǒng)輸出的參照,因此RDM可以引用模糊控制的模糊概念來編寫規(guī)則,同時在系統(tǒng)中引入模糊控制對連續(xù)變量的處理方式,使RDM適用于連續(xù)變量動態(tài)系統(tǒng)。
RDM采用類似產生式規(guī)則(IF…THEN…)的規(guī)則形式,將系統(tǒng)中相關的事件和動作寫成一條規(guī)則,具有規(guī)范、簡潔、貼近自然語言、易于理解和修改的特點[6-8]。每條規(guī)則都由左件和右件2部分組成,左件相當于條件,右件相當于動作。左件和右件均由因子組成,因子不止一個時,中間用“&”相連,表示“邏輯與”,語法形式如下:
<因子>&<因子>&…&<因子>= =<因子>&<因子>&…&<因子>,
因子的定義如下:<因子>::=[<因子名>:<因子值>]。
因子是規(guī)則中的最小單元,每個因子代表系統(tǒng)中的一個對象,因子名為該對象名,因子值代表該對象當前的狀態(tài)。
在采用RDM的系統(tǒng)中,系統(tǒng)被分為驅動層和邏輯層。驅動層包括輸入驅動和輸出驅動。當某一個對象的狀態(tài)發(fā)生變化時,觸發(fā)生成該對象的因子,將其封裝在一個通信消息中發(fā)送給邏輯層。邏輯層相對底層是一個獨立的模塊,把系統(tǒng)中的控制策略剝離出來,包括規(guī)則庫和推理模塊。當邏輯層收到通信消息后,提取因子信息,搜索規(guī)則庫激活相關規(guī)則,被成功激活規(guī)則的右件因子則作為輸出,發(fā)送給輸出驅動模塊。輸出驅動模塊將規(guī)則的右件因子解釋并執(zhí)行。邏輯層和驅動層之間的耦合程度較低,可以很方便地進行修改和完善,提高了系統(tǒng)的適應性。
在自然語言中,人們常用一些模糊性的詞語交流,使得可以用較少的言辭傳遞最大的信息量,如“大”、“小”、“快”、“慢”等[5]。如用人的思維邏輯去控制車速,“當車速稍慢的時候,則輕踩油門”,車速是連續(xù)變化的,不能簡單地用一個狀態(tài)或數值去表示,但可以使用這些模糊的語言值來描述其狀態(tài),進而描述整條規(guī)則。RDM是一種貼近自然語言的描述方法,因此也可以采用模糊語言值的方法,來描述連續(xù)系統(tǒng)的控制規(guī)則。
將輸入和輸出變量進行量化,映射為模糊語言值,因子中的因子值用模糊語言值代替?zhèn)鹘y(tǒng)的精確值,由這種因子組合成的規(guī)則,稱為模糊規(guī)則。如上述的車速控制,使用RDM的形式描述為<車速:稍快>==<油門:輕踩>,因為模糊規(guī)則使用的因子值是模糊量,于是在采用RDM系統(tǒng)的驅動層中,需要將輸入的精確值轉化為模糊量發(fā)送到推理模塊,將推理模塊發(fā)送的模糊量轉化為精確值進行輸出。在此,引入模糊控制中的模糊化和解模糊化方法,實現精確→模糊、模糊→精確的轉化過程。結合RDM系統(tǒng)自身的結構特點,將模糊規(guī)則并入規(guī)則庫中,整個系統(tǒng)共用一個規(guī)則庫,保持邏輯層的獨立性。
在模糊控制中,模糊化方法就是將輸入的精確值轉化為該變量在其論域上的模糊集合及其相應的隸屬度[5]。這里輸入變量 x的隸屬函數μAi(x)采用三角形分布形式,即
其中,ai、bi、ci分別是三角形3個頂點的橫坐標。
如圖1所示,將模糊化處理模塊并入輸入驅動模塊中,保持系統(tǒng)原有層次結構,驅動層和邏輯層仍然以傳遞消息的方式進行通信。原輸入驅動模塊分為2個子模塊,一個用于處理連續(xù)變量的模糊化模塊,一個用于處理離散量的離散量轉換模塊。此時,層與層之間傳遞的通信消息就需要包括因子名、模糊值和對應的隸屬度,結合RDM的語法形式,通信消息的格式如下:
[<因子名>:<模糊值1-隸屬度1>:<模糊值2-隸屬度2>:…:<模糊值N-隸屬度N>],N表示模糊值的個數。
圖1 采用基于模糊控制的RDM系統(tǒng)結構圖
邏輯層收到驅動層發(fā)送的通信消息,需要進行規(guī)則推理。推理分2個步驟:
(1)確定激活哪些規(guī)則。將通信消息中所有隸屬度大于0的模糊值過濾出來,與對應的因子名組成因子,因子名相同的因子歸并成為一個集合A,那么一個輸入量將會生成一個集合。對于一個有m個輸入量的系統(tǒng),則會生成m個集合{A1,A2,A3,…,Am},這m個集合的笛卡爾乘積D=A1×A2×A3×…×Am。遍歷整個規(guī)則庫,依次取出每條規(guī)則,如果規(guī)則左件所包含的因子與集合D中任意一個子集相同,此條規(guī)則將會被激活,匹配不到的子集將丟棄不用。
(2)量化被激活規(guī)則的左件隸屬度。一個多輸入的系統(tǒng),被激活的規(guī)則左件包含了多個因子,并且各個因子的隸屬度不一定相同,因此規(guī)則左件的隸屬度需要重新定義。對被成功激活的規(guī)則左件的隸屬度采用取小的原則計算[5],即以左件所包含的因子中最小的隸屬度作為此條規(guī)則左件的隸屬度,即
每條被激活的規(guī)則都至少有一個推薦的結論,即右件最少包含一個因子。將被成功激活的規(guī)則右件包含的因子與規(guī)則左件隸屬度μ組合,具有相同因子名的因子封裝在一條通信消息中,發(fā)送給輸出驅動。
對于傳統(tǒng)規(guī)則推理出的是離散量,可以直接被驅動程序執(zhí)行,但是對模糊規(guī)則推理出的是模糊量,需要將其轉化為可被驅動理解的精確值,這個過程稱為解模糊化[5]。這里解模糊使用重心法,其計算公式為:
其中,∑表示代數和;zi表示隸屬函數的質心;∫μi(z)表示隸屬函數μi(z)下的面積;z0為輸出值。
圖1中,將解模糊化模塊并入輸出驅動中,保持系統(tǒng)原有的層次結構。這樣,輸出驅動模塊就被分為2個子模塊,用于輸出連續(xù)變量的解模糊化模塊和用于輸出離散變量的離散量解釋模塊。
模擬小車在一條有障礙物的高低不平的直線道路上行駛,要求是勻速運動的,并且在遇到障礙物時及時避讓,使用平臺VC 6.0。
為了簡化過程,小車的采用頻率為10 H z,控制車速v h=20m/s,始時車速為0。系統(tǒng)的輸入量有速度偏差e(t)=vt-v h和偏差變化率d e(t)/ d t,即小車的加速度a,系統(tǒng)的輸出是油門開度K,當K>0時,踩油門;K<0時,踩剎車;K=0時,保持不變,K∈[-100%,100%][9]。以加速度a-表示坡對車輛速度的影響,a->0時,表示下坡;a-<0時,表示上坡;a-=0時,表示平坦,a-∈[-5,5]。道路共3個車道,障礙物靜止并隨機放置在某個車道上。油門開度對車輛的驅動加速度為a+,小車在t時刻車速為:
其中,vt0表示在t0時刻的車速a+d t為(t-t0)時間內控制加速度對速度的影響a-d t為(tt0)時間內坡度對汽車速度的影響。
將輸入和輸出量在各自的論域上劃分為5個等級{-2,-1,0,1,2},對應的語言值{負大、負小、零、正小、正大},英文字頭縮寫為{NB,NS,ZO,PS,PB},其隸屬函數如圖2所示。
圖2 隸屬度函數
使用RDM描述的車速控制規(guī)則如下:
障礙物在此是一種離散量的形式出現,共3個車道{1,2,3};車輛檢測當前5個方向{左2,左1,前,右1,右2},左2表示左邊第2個車道,左1表示左邊第1個車道,右2和右1相同;用1、0分別表示障礙物的有無,根據當前小車所在車道和前方5個方向的障礙物情況,生成當前狀態(tài)因子。避讓的規(guī)則如下:
系統(tǒng)的仿真結果如圖3、圖4所示。圖3是小車速度曲線圖,從中可以看出,對復雜的路面,車速保持在vh上下震蕩。圖4是仿真使用的坡道,造成曲線中幾次大的震蕩,是由于陡坡的作用。
圖3 仿真實時速度曲線
圖4 仿真坡道
小車對障礙物的避讓,如圖5所示。采用基于模糊控制的RDM系統(tǒng)對離散事件進行處理,從圖5中可以看出,對離散事件處理能力沒有影響。
圖5 小車對障礙的避讓
針對RDM對連續(xù)變量描述的不足,提出了基于模糊控制的規(guī)則化描述方法,經仿真驗證表明,該方法能夠較好地應用于連續(xù)變量動態(tài)系統(tǒng),擴展了RDM的使用范圍,同時對原系統(tǒng)有很好的兼容性。與采用傳統(tǒng)RDM的系統(tǒng)相比,采用基于模糊控制的RDM系統(tǒng),保留原系統(tǒng)的層次結構和對離散變量的處理方式,輸入和輸出驅動中分別引入模糊化和解模糊化模塊,規(guī)則庫中增加了模糊規(guī)則,實現了連續(xù)變量的輸入輸出,有效地降低了混合動態(tài)系統(tǒng)結構的復雜度,使得RDM可適用于更加復雜的系統(tǒng)。
[1] 鄭大鐘,趙千川.離散事件動態(tài)系統(tǒng)[M].北京:清華大學出版社,2001:1-339.
[2] 韓江洪,魏振春,張本宏,等.總線式車身控制系統(tǒng)的規(guī)則化建模方法[J].汽車工程,2006,28(12):1121-1124.
[3] 韓江洪,鄭淑麗,陸 陽,等.離散事件控制系統(tǒng)規(guī)則化描述方法的研究[J].合肥工業(yè)大學學報:自然科學版,2005,28 (9):1081-1084.
[4] 龍 德,崔建江,徐心和,等.基于知識的分層事件調度混雜系統(tǒng)仿真策略[J].系統(tǒng)仿真學報,2003,15(12): 1805-1807.
[5] Passino K M,Yurkovich S.Fuzzy control[M].北京:清華大學出版社,2001:21-103.
[6] Wei Zhenchun,H an Jianghong,Lu Yang,et al.Hierarchical m odeling and control of discrete even t control sy stem s based on rule description method[J].Proceedings of the 2006 IEEE In ternational Conference on M echatronics and Au tomation,2006:2179-2183.
[7] 韓江洪,張亞瓊,魏振春,等.基于規(guī)則的離散事件系統(tǒng)模型與規(guī)則匹配研究[J].系統(tǒng)仿真學報,2008,20(6): 1394-1396.
[8] 肖冰冰,張維勇,畢 翔.一種基于規(guī)則化描述方法的驗證技術[J].合肥工業(yè)大學學報:自然科學版,2010,33(5): 674-678.
[9] 劉文光,何 仁.考慮油門開度快速變化的自動變速器換擋控制策略[J].農業(yè)機械學報,2009,40(9):16-19.