焦 亭,劉振國
(山西大學自動化系,山西太原 030006)
現有監(jiān)督控制理論主要針對組成離散事件系統(tǒng)的各組件工作于單一工作模式的情形,通過計算所得的監(jiān)督控制器使系統(tǒng)運行滿足給定的性能指標[1–6].近年來已有學者開始研究組件根據工件的加工情況選擇不同工作模式的離散事件系統(tǒng)監(jiān)督控制方法.例如,Teixeira等借鑒文獻[7]中的抽象方法提出一種擴展有限狀態(tài)自動機(extended finite-state machines)的變量抽象(variable abstraction)方法,使被控的制造系統(tǒng)能根據工件被加工的次數選擇檢測單元的工作模式[8–9].Cury等提出區(qū)分器(distinguishers)的概念以識別工件已被加工次數的信息,從而基于該信息選擇正確的檢測單元工作模式[10–13].Rosa等提出一種基于區(qū)分器的近似監(jiān)督控制方法[14],該方法雖然能進一步簡化監(jiān)督控制器的計算過程,得到最少限制的監(jiān)督控制器,但是該計算過程仍然很復雜.Teixeira等將基于區(qū)分器的局部模塊化控制應用于一個制造系統(tǒng)[15].
然而,以上方法均引入了額外的事件以選擇正確的組件工作模式.引入額外的事件意味著被控對象的復雜度隨之增大,進而增大了監(jiān)督控制器的復雜度.此外,隨著組件工作模式的增加,額外引入的事件數量也將隨之顯著增長.文獻[8–9,14]雖然通過變量抽象等方式對監(jiān)督控制器進行了一定的簡化,但這些方法實現過程復雜.
為此,本文提出一種融合監(jiān)督控制器的生成方法,該方法無需引入額外的事件,因此不會導致融合監(jiān)督控制器狀態(tài)數急劇增長;且可證明所設計的融合監(jiān)督控制器能保證系統(tǒng)的可控且非阻塞運行.本文所提方法的另一個優(yōu)勢是能適應多個工件同時處于系統(tǒng)中時的情形,而上述文獻中并未涉及該問題.
本文所提方法與離散事件系統(tǒng)控制律重構方法的不同之處在于:控制律重構主要解決由于系統(tǒng)結構或性能指標發(fā)生改變引起監(jiān)督控制器發(fā)生改變后,監(jiān)督控制器之間的狀態(tài)切換問題[16–17];而本文基于組件各工作模式下的監(jiān)督控制器生成融合監(jiān)督控制器,通過定義事件選擇函數保證系統(tǒng)的正確運行.由此可見,本文所提方法可避免監(jiān)督控制器之間的狀態(tài)切換問題.
為了描述更加直觀、清晰,表1列出了后文將用到的主要數學符號.
表1 主要數學符號表Table 1 Nomenclature
離散事件系統(tǒng)利用由5元組(5–tuple)描述的自動機(automaton)建模,如自動機
其中:Q為狀態(tài)集合;Σ為事件集合;δ:Q×Σ →Q為轉移函數;該函數一般為偏函數(partial function);q0為初始狀態(tài);Qm為標識狀態(tài)集合.利用字符串長度的遞推,轉移函數可擴展為δ:Q×Σ?→Q,其中Σ?表示事件集合Σ上的Kleene閉包[1].
自動機G所生成語言(language)的閉性質(closed behavior)可表示為
其中符號δ(q0,s)!表示δ(q0,s)有定義,即從初始狀態(tài)q0出發(fā)事件串s可發(fā)生[1].
自動機G所生成語言的標識性質(marked behavior)可表示為
任意兩事件串s1,s2∈Σ?均是可連接的(concatenated),記作s1.s2[1].
對任意語言K ?Σ?,K關于L(G)可控需滿足
令E ?Σ?表示性能指標,關于G可控且滿足性能指標E的所有可控子語言可記作
集合C(E)中的最大元素記作
所得結果即為滿足性能指標E的監(jiān)督控制器.可使用TCT軟件包中的supcon指令進行計算[1,18].
如果在監(jiān)督控制器的作用下,從系統(tǒng)的初始狀態(tài)出發(fā)經由事件的發(fā)生總能回到標識狀態(tài),則稱系統(tǒng)非阻塞(nonblocking).
在現有的離散事件系統(tǒng)中,組成系統(tǒng)的組件往往只有一種既定的工作模式.但在控制要求更為復雜的系統(tǒng)中,有時需要根據工件的加工狀況決定下一步的加工流程.例如對于自動生產線中的檢測單元,如果同一個工件連續(xù)兩次均未通過檢測單元的檢測,則檢測單元不再將該工件送回系統(tǒng)中進行再次加工,而是作為次品直接輸出系統(tǒng).
為了描述的簡便并不失一般性,假設系統(tǒng)中只有一個組件存在兩種工作模式.兩種工作模式下由同步積(synchronous product)[1,18]計算所得的系統(tǒng)總的被控對象與性能指標分別記作GA,EA與GB,EB,對應的監(jiān)督控制器分別為
需要根據監(jiān)督控制器Asup與Bsup的信息與進入系統(tǒng)的工件加工情況,做出相應的控制決策.為此,首先定義監(jiān)督控制器的融合算法.
假設
將Asup與Bsup的交集記作
其中:
QmA×QmB為集合QmA與QmB的笛卡爾集(cartesian product).
以Asup∧Bsup為基礎,按如下融合算法merge(Asup,Bsup)生成自動機Asup?Bsup,并將其稱為融合監(jiān)督控制器.
Step 1初始化.
令
令
其中:QA?B:=QA∩B∪QA∩∪QB∩;ΣA?B=ΣA∪ΣB;δA?B為Asup?Bsup的轉移函數,并由Step 2中描述的方法生成.
Step 2對Asup中的任意轉移函數δA(qa1,σ)=qa2,其中qa1,qa2∈QA,σ ∈ΣA,往Asup?Bsup中添加轉移函數
其中:如果存在(qa1,qb1)∈QA∩B且δB(qb1,σ)=qb2∈QB,則?1=qb1,?2=qb2;如果存在(qa1,qb1)∈QA∩B且δB(qb1,σ)未定義,則?1=qb1,?2=?;否則?1=?,?2=?.
對Bsup中的任意轉移函數δB(qb1,σ)=qb2,其中qb1,qb2∈QB,σ ∈ΣB,往Asup?Bsup中添加轉移函數
其中:如果存在(qa1,qb1)∈QA∩B且δA(qa1,σ)=qa2∈QA,則?1=qa1,?2=qa2;如果存在(qa1,qb1)∈QA∩B且δA(qa1,σ)未定義,則?1=qa1,?2=?;否則?1=?,?2=?.
Step 3令
將QA?B中的狀態(tài)重命名為0,1,···,|QA?B|?1,其中狀態(tài)0為初始狀態(tài)(q0A,q0B),|QA?B|為狀態(tài)集合QA?B中的狀態(tài)個數.
由于merge(Asup,Bsup)算法遍歷了Asup與Bsup中的所有轉移函數以生成Asup?Bsup中的轉移函數,因此該算法的時間復雜度為O(n1+n2),其中n1,n2分別為Asup與Bsup中的轉移函數個數.
由merge(Asup,Bsup)算法的構造過程可知,Asup?Bsup的狀態(tài)數將小于Asup與Bsup狀態(tài)數之和,即|QA?B|<|QA|+|QB|.merge算法的實質是以Asup與Bsup的交集為基礎,分別將Asup與Bsup中不在Asup∩Bsup中的部分加入Asup?Bsup中,此過程對應該算法描述中的Step 2.當Asup與Bsup無交集時,由于Asup?Bsup,Asup與Bsup的初始狀態(tài)均用狀態(tài)0表示,因此|QA?B|=|QA|+|QB|?1.
將Asup與Bsup的并集記作Asup∪Bsup.自動機Asup∪Bsup與Asup?Bsup的差別在于后者沿用了Asup和Bsup中的公共部分,因此從集合QA?B去掉集合{(?,qb)|(?,qb)∈QA?B}中的所有狀態(tài)以及與之相關的轉移,所得結果即為Asup.同理,從集合QA?B去掉集合{(qa,?)|(qa,?)∈QA?B}中的所有狀態(tài)以及與之相關的轉移,所得結果即為Bsup.而由Asup∪Bsup無法直接得到Asup和Bsup.
進入系統(tǒng)的工件將在融合監(jiān)督控制器Asup?Bsup的監(jiān)督控制下進行加工.由于工件可能經由不同的事件串使融合監(jiān)督控制器進入相同的狀態(tài),而在該狀態(tài)應根據特定的事件串做出相應的控制決策,因此僅有融合監(jiān)督控制器仍不能滿足控制要求.為了根據工件的加工情況選擇相應的組件工作模式,對于任意狀態(tài)q?:=(qa,qb)∈QA?B,引入決策集Σq?:=D(qa)∪D(qb),其中:D(qa)為Asup中在狀態(tài)qa被禁止的事件組成的集合,D(qb)為Bsup中在狀態(tài)qb被禁止的事件組成的集合.D(qa)與D(qb)可由TCT中的condat指令計算得到,并規(guī)定D(?)=?.
對于任意狀態(tài)q?:=(qa,qb)∈QA?B,同時引入對應的工件信息集合,其中ID∈{1,2,···}為工件編號,q′,δ′分別為工件當前所在組件或緩沖區(qū)的當前狀態(tài)與該組件或緩沖區(qū)對應自動機模型的轉移函數,P為與組件工作模式選擇有關的謂詞(predicate),如工件被重復加工的次數小于2次時相應事件才能被使能.
其中σ?P表示事件σ的發(fā)生滿足謂詞P.
事件選擇函數對應的物理意義為:在狀態(tài)q?可發(fā)生的事件σ需滿足:
1)不被融合監(jiān)督控制器禁止;
2)該事件需對應于工件信息集合中的某個具體工件的加工,并且該事件發(fā)生后工件信息集合中的元素將進行相應的更新;
3)該事件的發(fā)生仍滿足謂詞P.
定理1融合監(jiān)督控制器Asup?Bsup為關于GA與GB可控的非阻塞監(jiān)督控制器.
證 將監(jiān)督控制器Asup?Bsup,Asup與Bsup中的不可控事件集合分別記作
首先證明Asup?Bsup關于GA可控,即
由于s ∈L(Asup?Bsup),根據Asup?Bsup的生成過程可知s ∈L(Asup)或L(Bsup).由可知σ ∈
如果s ∈L(Bsup)L(Asup)或,由于條件sσ ∈L(GA)不成立,因此式(1)自然成立.如果s ∈L(Asup)且,由于L(Asup)關于GA可控,因此sσ ∈L(Asup).于是,由自動機Asup?Bsup的構造過程可知sσ ∈L(Asup?Bsup).
Asup?Bsup關于GB可控的證明過程與證明Asup?Bsup關于GA可控的過程類似,此處不再贅述.
然后證明Asup?Bsup關于GA與GB非阻塞.
在Asup?Bsup中的任意狀態(tài)q?∈QA?B,由事件選擇函數f(q?)的定義可知,只有不被Asup或Bsup禁止且滿足謂詞P的事件才能發(fā)生,因此在事件選擇函數f(q?)的作用下,Asup?Bsup的運行不會造成阻塞.
證畢.
以圖1所示的帶反饋功能的制造系統(tǒng)為例[7,9],演示第3節(jié)提出的組件多工作模式下的離散事件系統(tǒng)監(jiān)督控制方法.該系統(tǒng)由3個組件R,M,TU與2個緩沖區(qū)B1,B2組成(假設兩個緩沖區(qū)的容量均為1),對應的各自動機模型如圖1所示.本文沿用TCT中的表示慣例,用奇數與偶數分別代表可控與不可控事件.
圖1 帶反饋功能的制造系統(tǒng)結構圖Fig.1 Structure of the manufacturing system with feedback function
系統(tǒng)的工作方式為:機器人R每次往緩沖區(qū)B1中放入一個工件(用事件1表示);制造單元M從B1中取出工件進行加工(用事件3表示),加工完畢后放入緩沖區(qū)B2(用事件2表示);檢測單元TU從緩沖區(qū)B2取工件進行檢測,并對應兩種工作模式:
1)如果該工件已被加工2次,則檢測單元TU工作在模式A,即從緩沖區(qū)B2取工件進行檢測(用事件5表示),檢測合格則將該工件作為正品輸出(用事件4表示),檢測不合格則作為次品輸出(用事件6表示).模式A對應的自動機模型由圖1中的自動機TUA表示.
2)如果該工件的加工次數未超過2次,則檢測單元TU工作在模式B,即從緩沖區(qū)B2取工件進行檢測(用事件7表示),檢測合格則將該工件作為正品輸出(用事件8表示),檢測不合格則將該工件放入緩沖區(qū)B1中再次加工(用事件10表示).模式B對應的自動機模型由圖1中的自動機TUB表示.
對應的性能指標為:
1)防止緩沖區(qū)B1,B2出現上溢與下溢;
2)根據工件的加工次數選擇TU的工作模式.
檢測單元工作在A與B模式下對應的緩沖區(qū)B1,B2自動機模型分別由圖1中的自動機B1A,B2A與B1B,B2B所示.由TCT計算可得
其中sync(·)為TCT中計算同步積的指令[18].
模式A與模式B下對應的監(jiān)督控制器分別為Asup與Bsup,如圖2與圖3所示.
圖2 監(jiān)督控制器Asup狀態(tài)轉移圖Fig.2 State transition graph of supervisor Asup
圖3 監(jiān)督控制器Bsup狀態(tài)轉移圖Fig.3 State transition graph of supervisor Bsup
利用融合算法得到如圖4所示的融合監(jiān)督控制器Asup?Bsup,其各狀態(tài)對應的決策集如表2所示.
圖4 融合監(jiān)督控制器Asup ?Bsup狀態(tài)轉移圖Fig.4 State transition graph of merged supervisor Asup ?Bsup
表2 狀態(tài)與決策集對應關系表Table 2 Relation between states and their decision sets
假設事件串s=1.3,則q?=2,={(1,1,δM,P)},其中第2項表示工件當前位于加工單元M中的狀態(tài)1,δM表示加工單元M對應自動機模型的轉移函數,對于下文中出現的工件信息集合中對應項的含義均可按此方式理解.由表2可知Σq?={1,5,7};因此,在狀態(tài)2事件1不能發(fā)生,從而事件選擇函數f(2)={2}.如果在狀態(tài)2事件1發(fā)生,則從Asup?Bsup的初始狀態(tài)出發(fā)經由事件串1.3.1.2將進入狀態(tài)5.但在狀態(tài)5只有事件5能發(fā)生,而事件5只有在事件10已經發(fā)生2次的情況下才能發(fā)生,此時將出現阻塞,即f(5)=?.由此可見,本文定義的事件選擇函數能有效避免出現阻塞.事件2發(fā)生后工件信息集合更新為={(1,1,δB2B,P)}.
假設事件串s=1.3.2,則q?=4,={(1,1,δB2B,P)}.由表2可知Σq?={1,3},雖然在狀態(tài)4事件5和7均有定義,但由于謂詞P的作用,此時事件選擇函數f(4)={7},即檢測單元工作在模式B.事件7發(fā)生后工件信息集合更新為={(1,1,δTUB,P)}.
假設事件串s=1.3.2.7.10.3.2.7.10.3.2,則q?=4,={(1,1,δB2A,P)},即再次進入狀態(tài)4.由表2可知Σq?={1,3},雖然在狀態(tài)4 事件5和7均有定義,但由于謂詞P的作用,此時事件選擇函數f(4)={5},即檢測單元工作在模式A.對應的物理意義為由于該工件已經經過了2次加工,因此檢測單元需工作在模式A.
為了描述的便利本文所給實例中緩沖區(qū)的容量為1,可直接將第3節(jié)中的方法推廣至緩沖區(qū)容量更大的情形.
將文獻[7–15]中所提方法得到的監(jiān)督控制器與本例所得融合監(jiān)督控制器相比,可知解決相同問題融合監(jiān)督控制器的狀態(tài)數目少于文獻中所得監(jiān)督控制器,主要原因是本文利用事件選擇函數動態(tài)地選擇滿足要求的事件,而文獻中采用的是靜態(tài)的狀態(tài)抽象、近似等方法.
本文所提方法的另一個優(yōu)勢是能滿足多個工件同時處于系統(tǒng)中的情形.將緩沖區(qū)B1的容量擴大為2,則TU工作在模式A與模式B時緩沖區(qū)B1對應的自動機模型變更為圖5所示.融合監(jiān)督控制器與狀態(tài)決策集也將相應發(fā)生變化,由于計算過程與上文類似,此處不再贅述.此時,如果事件串1.1發(fā)生,則系統(tǒng)中將有2個工件,對應的工件信息集合為={(1,2,δB1B,P),(2,1,δB1B,P)}.由于此時的事件選擇函數允許事件3發(fā)生,假設工件1先進行加工,則事件3發(fā)生后工件信息集合更新為={(1,1,δM,P),(2,1,δB1B,P)}.此后,系統(tǒng)將在融合監(jiān)督控制器與事件選擇函數的共同作用下繼續(xù)運行.
圖5 緩沖區(qū)B1狀態(tài)轉移圖Fig.5 State transition graphs of buffer B1
本文提出了一種組件存在多種工作模式的離散事件系統(tǒng)監(jiān)督控制方法,通過利用各工作模式下系統(tǒng)對應的監(jiān)督控制器生成融合監(jiān)督控制器.系統(tǒng)將在融合監(jiān)督控制器的作用下根據當前狀態(tài)的決策集和工件信息集合得到事件選擇函數的輸出值,從而決定下一步可發(fā)生的事件.相比于文獻[7–15]中提出的變量抽象、近似等方法,本文所提方法更直觀簡便,并且本文所提方法能適應多個工件同時處于系統(tǒng)中的情形.