徑為~t,;+1,pi;+1,…J
是_M的依賴(lài)于故障的 操作下游鄰域FODN(Failure-dependentOperationDownstreamNeighbor),其中,
[0051] 定義14 :給每一個(gè)托肯定義一個(gè)識(shí)別碼:xG\,其中G是托肯數(shù)的總和,\為自 然數(shù)集合{1,2,…,G}。yx代表第x個(gè)托肯前進(jìn)的步數(shù),在初始狀態(tài)M。下,VxGA/c,yx= 〇。 第x個(gè)托肯前進(jìn)一步就有:yx=yx+l。
[0052]本發(fā)明分為三個(gè)具體的步驟:
[0053] 1)進(jìn)行死鎖避免算法:
[0054] 1. 1)初始化;
[0055] 1. 2)采集當(dāng)前狀態(tài)信息,包括每個(gè)庫(kù)所所含的托肯數(shù),其中,活動(dòng)庫(kù)所中的托肯數(shù) 表示當(dāng)前所含的工件數(shù),資源庫(kù)所中的托肯數(shù)表示當(dāng)前剩余的資源數(shù)目;
[0056] 1. 3)根據(jù)變迀發(fā)射規(guī)則,求出當(dāng)前狀態(tài)下所有使能的變迀集合TEN,且所有使能的 變迀集合TEN中的元素個(gè)數(shù)為n;
[0057] 1. 4)令無(wú)死鎖變迀集合=備
[0058] 1.5)第i中工件類(lèi)型或進(jìn)程的第j個(gè)變迀%屬于可容許的變迀集合TEN,且 在當(dāng)前剩余資源支撐下,工件若能從當(dāng)前位置走到最近的關(guān)鍵位置,則無(wú)死鎖變迀集合 7一,u 否則進(jìn)行步驟1. 5)。:=表示"定義為"的意思。
[0059]2)進(jìn)行穩(wěn)健性加強(qiáng)算法:
[0060] 進(jìn)程將被分為三類(lèi):a、當(dāng)前以及后續(xù)路徑中只占用可靠資源的進(jìn)程;b、當(dāng)前沒(méi)有 占用,但是后續(xù)路徑需要不可靠資源的進(jìn)程;c、當(dāng)前占用了不可靠資源的進(jìn)程。那么根據(jù)這 些進(jìn)程選擇可以發(fā)射的變迀。首先,第一種進(jìn)程中的變迀允許發(fā)射,很顯然這些變迀的發(fā)射 不會(huì)影響到其他進(jìn)程,即使資源故障了,這些進(jìn)程也不會(huì)阻塞其他的進(jìn)程;其次是第二種進(jìn) 程中的變迀,可以分為兩種情況討論,1、當(dāng)前資源足夠支撐庫(kù)所中的托肯前進(jìn)到最近的不 可靠資源至少被儲(chǔ)存起來(lái),則這種變迀允許發(fā)射,2、否則不允許發(fā)射;最后,也分兩種情況 討論,若當(dāng)前庫(kù)所占用的不可靠資源沒(méi)有故障,即,s(ri) = 1,且后續(xù)路徑不需要不可靠資 源,或者當(dāng)前資源足夠支撐其托肯走到最近的不可靠資源,則變迀允許發(fā)射,否則不允許發(fā) 射。
[0061] 穩(wěn)健性算法將從無(wú)死鎖變迀集合tdf中挑選產(chǎn)生一個(gè)允許發(fā)射的變迀集合 g ,使得系統(tǒng)既無(wú)死鎖又是穩(wěn)健的。具體包括以下步驟:
[0062] 2. 1)對(duì)于變迀tGTDF,若工件在當(dāng)前庫(kù)所以及后續(xù)路徑中都不占用不可靠資源, 則tGTrb;
[0063] 2. 2)對(duì)于tGTDF,若工件在當(dāng)前位置沒(méi)有占用不可靠資源,后續(xù)路徑中需要占用 不可靠資源,那么,如果當(dāng)前資源足夠支撐該工件前進(jìn)到最近的不可靠資源,且能夠被存儲(chǔ) 起來(lái),則teTrb;
[0064] 2. 3)對(duì)于tGTDF,若工件在當(dāng)前位置占用了不可靠資源,則,如果當(dāng)前工件占用的 不可靠資源沒(méi)有故障,且后續(xù)路徑中不需要不可靠資源,或者當(dāng)前資源能夠支撐其前進(jìn)到 最近的不可靠資源,則tGTRB,其中,TRB為變迀集合;
[0065]2. 4)否則,tg選擇下一個(gè)tGtdf,進(jìn)行步驟2. 1),直至TRB中所有變迀都找 出來(lái)之后進(jìn)行步驟3)。
[0066] 3)進(jìn)行并發(fā)性改善算法
[0067] 為了提高系統(tǒng)的并發(fā)性,希望所有的托肯都能夠以同樣的速度前 進(jìn),這也就意味著,任意兩個(gè)托肯之間的前進(jìn)步長(zhǎng)最大的差距越小越好,即, min{majryv-yx;. {x;,xjGA/G其中,用;Kr:表示第Xl個(gè)托肯前進(jìn)的步數(shù),用務(wù)t表示第 Xl個(gè)托肯前進(jìn)的步數(shù)。
[0068] 具體包括以下步驟:
[0069] 3. 1)給變迀集合TRB中的每一個(gè)變迀對(duì)應(yīng)的托肯添加標(biāo)簽x1;
[0070] 3. 2)用:表示第Xi個(gè)托肯前進(jìn)的步數(shù);
[0071] 3. 3)挑選最落后的托肯,則其對(duì)應(yīng)的變迀屬于并發(fā)性改善變迀集合Tmc;
[0072] 3. 4)讓并發(fā)性改善變迀集合TMe中的一個(gè)變迀發(fā)射
[0073] 3. 5)返回到采集當(dāng)前狀態(tài)信息步驟即步驟1. 2)。
[0074] 本發(fā)明關(guān)注于帶有不可靠資源的自動(dòng)制造系統(tǒng)的穩(wěn)健的活性使能監(jiān)督控制器的 合成,提出了一種分布式的方法,不僅能夠避免由循環(huán)等待引起的死鎖問(wèn)題,同時(shí)避免了由 資源故障引起的阻塞狀態(tài)。通過(guò)在線(xiàn)核實(shí)資源用量,本發(fā)明的方法避免離線(xiàn)合成基于全局 信息的故障感知監(jiān)督控制器。通過(guò)這三個(gè)算法的運(yùn)行,將產(chǎn)生一組變迀集合,任意屬于該集 合的變迀的發(fā)射都能滿(mǎn)足無(wú)死鎖,穩(wěn)健性并改善系統(tǒng)并發(fā)性,因?yàn)椋篞I'm每發(fā) 射一個(gè)變迀后,這三個(gè)算法需要重新依次計(jì)算,再產(chǎn)生一個(gè)新的變迀集合,如此循環(huán)往復(fù), 實(shí)時(shí)動(dòng)態(tài)地生成一組事件發(fā)生序列。
[0075] 在圖1所示的模型中模擬了一個(gè)由三種工件類(lèi)型進(jìn)程競(jìng)爭(zhēng)四種資源 和1~4,其中r4是不可靠資源,資源容量為CCrJ=C(r2) =C(r3) =C(r4) =2。P。 ={p1;p5,p9}, ={Pz~Piih2 = {P6 ~Psl% =(Pio~PulPrR ={^i~Pr=h),T={tt -t12], 不同加工階段的資源需求為aP2=心% =匕= f3, % =匕flP> =心flP8= fl,% = = ri-? ^riQ
[0076] 對(duì)于如圖 1 所示的PPN,假設(shè)在標(biāo)識(shí)M= 7 .Pi+p;^ *p5+2 *p6+2 *p7+8 *p9+2 ?r1+r2 下,在該網(wǎng)中有四個(gè)信{p^p&Pu-pwhSf{p4,p6,ps,p12-p15},S3= {p4,p6,pn,p14, p15},S4= {p3,ps,p12-p14},為了簡(jiǎn)便起見(jiàn),限制工件類(lèi)型義和為不可以同時(shí)進(jìn)入加工進(jìn)程進(jìn) 行加工,很顯然,有了這個(gè)限制,上述四個(gè)信標(biāo)將不會(huì)被清空,即,系統(tǒng)無(wú)死鎖。在該狀態(tài)下, 孤有一個(gè)工件在階段2進(jìn)行加工,在決的第1和第2階段分別有兩個(gè)工件在加工,&沒(méi)有 工件在加工。巧和"分別還有2和1個(gè)空閑資源,經(jīng)被占用滿(mǎn)了。若此時(shí)不可 靠資源r4出現(xiàn)故障,p3,p5中的托肯無(wú)法前進(jìn),因?yàn)閞3沒(méi)有空閑資源導(dǎo)致13, &無(wú)法發(fā)射,并 且由于被爲(wèi)的兩個(gè)工件占滿(mǎn)了的r4出現(xiàn)了故障,資源r3無(wú)法釋放。因此,整個(gè)系統(tǒng)都無(wú)法 運(yùn)行,直到&被修復(fù)。
[0077]對(duì)于圖 1 所示的PPN,假設(shè)M= 7 ?Pi+p^e?p5+p6+p7+7 ?Pg+Pu+ri+iYh^+i^,根 據(jù)死鎖避免算法,可以得到:TDF= ;根據(jù)穩(wěn)健性算法,可以得到: 1;[?={1:1,1:3,1: 5,1:6,1:7,1:9,1:12},其中{1: 1,1:3,1:9,1:12}允許發(fā)射,因?yàn)樗鼈兯鶎俚倪M(jìn)程在后續(xù) 路徑中不需要任何不可靠資源,{t5,t6}允許發(fā)射,因?yàn)槭S噘Y源足夠支撐相應(yīng)的工件移 動(dòng)到最近的不可靠資源,只要&沒(méi)有出現(xiàn)故障,{t7}就允許發(fā)射;根據(jù)并發(fā)性改善算法, min()乂) = 0,max(.yXi) = 3,因此maxyXi - = 3,TMC={tt5,t12} 〇
【主權(quán)項(xiàng)】
1. 一種基于Petri網(wǎng)的自動(dòng)制造系統(tǒng)的控制方法,其特征在于,包括以下步驟: 1) 進(jìn)行死鎖避免算法: 1. 1)初始化; 1. 2)采集當(dāng)前狀態(tài)信息,包括每個(gè)庫(kù)所所含的托肯數(shù),其中,活動(dòng)庫(kù)所中的托肯數(shù)表示 當(dāng)前所含的工件數(shù),資源庫(kù)所中的托肯數(shù)表示當(dāng)前剩余的資源數(shù)目; 1. 3)根據(jù)變迀發(fā)射規(guī)則,求出當(dāng)前狀態(tài)下所有使能的變迀集合TEN,且所有使能的變迀 集合TEN中的元素個(gè)數(shù)為n; 1. 4)令無(wú)死鎖變迀集合= 0 1.5)選擇第i中工件類(lèi)型或進(jìn)程的第j個(gè)變迀%;屬于所有使能的變迀集合TEN,且 在當(dāng)前剩余資源支撐下,工件若能從當(dāng)前庫(kù)所走到最近的關(guān)鍵庫(kù)所,則無(wú)死鎖變迀集合 U否則進(jìn)行步驟1. 5); 2) 進(jìn)行穩(wěn)健性加強(qiáng)算法:將從無(wú)死鎖變迀集合TDF中挑選產(chǎn)生一個(gè)的變迀集合 使得系統(tǒng)既無(wú)死鎖又是穩(wěn)健的;無(wú)死鎖變迀集合TDF中元素個(gè)數(shù)為m; 3) 進(jìn)行并發(fā)性改善算法: 3. 1)給變迀集合TRB中的每一個(gè)變迀對(duì)應(yīng)的托肯添加標(biāo)簽x1; 3. 2)用)^表示第Xl個(gè)托肯前進(jìn)的步數(shù); 3. 3)選擇最落后的托肯,則其對(duì)應(yīng)的變迀屬于并發(fā)性改善變迀集合Tmc; 3. 4)讓并發(fā)性改善變迀集合TMe中的一個(gè)變迀發(fā)射;然后進(jìn)行步驟1. 2)。2. 根據(jù)權(quán)利要求1所述的一種基于Petri網(wǎng)的自動(dòng)制造系統(tǒng)的控制方法,其特征在于, 步驟2)的具體步驟如下: 2.1) 對(duì)于變迀tGTDF,若工件在當(dāng)前庫(kù)所以及后續(xù)路徑中都不占用不可靠資源,則 TGTrb; 2.2) 對(duì)于tgTdf,若工件在當(dāng)前庫(kù)所沒(méi)有占用不可靠資源,后續(xù)路徑中需要占用不 可靠資源,那么,如果當(dāng)前資源足夠支撐該工件前進(jìn)到最近的不可靠資源,且能夠被存儲(chǔ)起 來(lái),則TGTrb; 2. 3)對(duì)于tgTdf,若工件在當(dāng)前位置占用不可靠資源,則,如果當(dāng)前工件占用的不可靠 資源沒(méi)有故障,且后續(xù)路徑中不需要不可靠資源,或者當(dāng)前資源能夠支撐其前進(jìn)到最近的 不可靠資源,則tGTRB,其中,TRB為變迀集合; 2.4)否則,t運(yùn)rKS,選擇下一個(gè)tGTDF,進(jìn)行步驟1),直至TRB中所有變迀都找出來(lái)之 后進(jìn)行步驟3)。
【專(zhuān)利摘要】一種基于Petri網(wǎng)的自動(dòng)制造系統(tǒng)的控制方法,通過(guò)死鎖避免算法、穩(wěn)健性加強(qiáng)算法、并發(fā)性改善算法,這三個(gè)算法的運(yùn)行,將產(chǎn)生一組變遷集合,任意屬于該集合的變遷的發(fā)射都能滿(mǎn)足無(wú)死鎖,穩(wěn)健性并改善系統(tǒng)并發(fā)性,每發(fā)射一個(gè)變遷后,這三個(gè)算法需要重新依次計(jì)算,再產(chǎn)生一個(gè)新的變遷集合,如此循環(huán)往復(fù),實(shí)時(shí)動(dòng)態(tài)地生成一組事件發(fā)生序列。本發(fā)明保證系統(tǒng)在出現(xiàn)資源故障時(shí)那些不需要故障資源的進(jìn)程不會(huì)被需要故障資源的進(jìn)程阻塞,能夠持續(xù)流暢加工,并改善系統(tǒng)的并發(fā)性。
【IPC分類(lèi)】G05B19/418
【公開(kāi)號(hào)】CN105022377
【申請(qǐng)?zhí)枴緾N201510435932
【發(fā)明人】胡核算, 承艷
【申請(qǐng)人】西安電子科技大學(xué)
【公開(kāi)日】2015年11月4日
【申請(qǐng)日】2015年7月22日