?

基于執行器沖突預防的平行Petri網控制系統設計

2024-03-13 05:45林鑫杰羅繼亮李旭航葉劍虹
計算機集成制造系統 2024年2期
關鍵詞:庫所執行機構執行器

林鑫杰,羅繼亮+,李旭航,葉劍虹

(1.華僑大學 信息科學與工程學院,福建 廈門 361021;2.福建省電機控制與系統優化調度工程技術研究中心,福建 廈門 361021;3.華僑大學 計算機科學與技術學院,福建 廈門 361021)

0 引言

隨著物聯網的發展,大量設備集成到制造系統,市場需求推動制造業正在向客制化、小批量、多品種轉型。設備數量增加使得系統狀態數呈指數型增長,控制系統建模和程序設計面臨極大困難,系統狀態數劇增導致所設計系統的可靠性難以驗證[1]。

平行系統[2]為信息物理系統提供了可行的解決方案。王擁軍等[3]提出集智能管理、智能運營和智能診療為一體的平行醫院解決方案,并以天壇醫院為案例,驗證了該信息物理系統的可行性與科學性。Petri網描述制造系統程序設計中的順序、選擇、循環結構,可作為制造系統信息層建模工具[4]。然而要執行工序邏輯控制,Petri網缺少輸入輸出接口,文獻李大成等[5]提出平行Petri網,通過動作函數和激活函數,使Petri網能夠與物理層實現交互,控制實際系統運行。

控制系統設計需要進行測試驗證來保證其安全性。在丹佛國際機場事件[6]中,軟件錯誤導致大量航班延誤,從而造成巨大的經濟損失。DRABOV等[7]研究軟件錯誤檢測控制指令,用于車載計算機編程;ZHANG等[8]對美國醫療設備UI軟件錯誤進行了研究和分類;徐穎蕾等[9]對沒有沖突結構的Petri網的結構活性進行分析判斷,為部分Petri網模型的結構活性判斷提供了可行的方法;徐曉明等[10]通過有色Petri網建立多Agent協同工作模型,驗證了分布式控制策略的可行性;CAL等[11]提出基于不同Agent的控制體系結構,給出初步靈活控制的多智能體系統架構;賴李媛君等[12]提出分布式任務分配方法,用于解決動態多Agent的調度問題;SINGHAL等[13]和KIM等[14]研究多Agent系統中Agent之間的任務分配問題,主要目標是最大程度地增加成功完成的任務數量和整個系統的實用性,而不會發生任何沖突。

通過上述研究可知,Petri網控制理論具有豐富的研究基礎,但無論Petri網調度優化還是Petri網控制,都需要投入大量人力和時間成本重新開發控制代碼。本文希望給出既能進行優化調度,又能完成現場控制的新型Petri網模型。李大成等[15]為平行Petri網引入動作執行時間,實現了調度和控制一體化,然而動作函數無法描述復雜的連續動態系統,動作函數之間可能會爭奪對執行機構的使用權限,如果解決不當可能會造成嚴重的事故。針對以上問題,本文開展了3方面工作:①用智能體擴展平行Petri網定義,解決連續系統控制問題;②給出平行Petri網設計方法,通過順序、選擇、循環模塊設計,減少Petri網模型中工序排列組合新增的狀態數;③針對執行機構沖突問題,根據執行機構種類的不同定義沖突類型,并給出沖突預防算法。為驗證上述方法,編寫負責Petri網演化計算的C語言程序和負責智能體感知控制的可編程邏輯控制器(Programmable Logic Controller,PLC)代碼,并以Twin CAT為控制器進行實驗,驗證了本文方法的優越性。

1 基本概念

Petri網是一種基于圖形的形式化描述和分析建模工具,便于理解整個系統結構,可通過可達樹、狀態方程、代數方程等分析系統性能。Petri網結構為一個四元組N=(P,T,F,W),P為庫所集,T為變遷集,F為庫所與變遷之間連接的有向弧集,W為對應有向弧上的權值。C-為前置關聯矩陣,矩陣元素為庫所到變遷的弧上權值。Petri網用(N,m0)表示,m0為初始標識。對于任意變遷t,有?p∈·t,m(p)>C-(:,t),則稱在當前標識m下變遷t使能。激活變遷t,指向該變遷的庫所p減少W(p,t)個托肯,該變遷指向的庫所p得到W(t,p)個托肯。

監控庫所是為控制庫所中托肯的數量而設計的庫所。將線性約束添加到Petri網結構是通過增加監控庫所控制變遷的激發,使相關庫所的托肯數量加權并始終滿足線性約束條件。給定一個線性約束lTu≤b,其等價于b-lTu0≥0,為其設計監控庫所pc,關聯矩陣C滿足C(pc)=-lTC,初始標識滿足u0(pc)=b-lTu0,使得Petri網標識滿足約束條件lTu≤b。

Twin CAT是基于Windows平臺的PLC系統,可在Visual Studio平臺開發程序,通過自動化設備規范(Automation Device Specification,ADS)通信協議與其他設備通信。

2 平行Petri網及其執行算法

智能體能夠感知輸入的信號序列,并根據信號序列和智能體具有的先驗知識做出反應,通過一個執行機構影響工作對象。本文假設每個智能體只能控制一個執行機構,執行機構的集合用∑E表示。

定義1在一個控制系統中,智能體是由傳感器或執行機構的信號序列到執行器信號的映射函數。智能體的集合為∑A。

定義2如果一個執行機構的輸入是智能體a的輸出,則其為智能體a的執行機構,用λE(a)表示。

定義3激活函數是由傳感器或執行機構的信號序列到0或1的函數,即2∑I∪∑O→{0,1},激活函數集合為∑β。

定義4給定庫所p,若其對應的智能體a有執行機構,即λE(a)≠?,則p所為動作庫所;否則,p為非動作庫所。

定義5平行Petri網是一個九元組G=(N,m0,∑I,∑O,∑A,∑L,λA,λβ,λE),其中:N為一般Petri網結構;m0為初始標識;∑I為輸入信號集,其中各元素對應傳感器信號;∑O為輸出信號集,其中各元素對應執行器信號;∑A為智能體集合;∑L為激活函數集;λA為庫所集映射到智能體集合的映射;λβ為庫所集到激活函數集合的映射;λE為智能體集合到執行機構集合的映射。

根據定義1~定義5,設計了平行Petri網的執行算法,即算法1,算法包括兩部分,其中Upper-unit負責執行Petri網邏輯,Lower-unit負責執行各標識庫所的智能體函數。

算法1平行Petri網執行算法。

function Upper-unit(λL)returnm

輸入:(λL)。

輸出:m。

1 令Te=T{?t∈T|m≤C-(:,t)∧?(p∈t-)Islive},標識m下使能變遷;

2 if Te≥? then

3 從Te中任選一個變遷t,并將其從Te中刪除;

4 m′=m+C(:,t);

5 m=m′;

6 end

7 return m

function Lower-unit(m,∑I)returnλL

輸入: m,∑L

輸出:λL,∑O

1 讀取傳感器輸入以及其他執行器輸出;

2 根據輸入輸出更新激活函數∑L;

3 foreach p∈{p|m(p)≥1}do

4 智能體計算并控制執行器輸出;

5 由執行器輸出更新激活函數λL(p);

6 end

7 return λL

如圖1所示,Upper-unit接收Lower-unit發送的激活函數值,計算當前標識下的使能變遷,然后激發變遷,更新標識,并發送給Lower-unit。Lower-unit感知傳感器輸入,接收Upper-unit發送的標識,智能體負責計算并輸出控制信號,檢測到執行器完成動作后更新激活函數值,并發送給Upper-unit。

3 平行Petri網的設計方法及沖突預防

3.1 平行Petri網的設計方法

制造系統存在大量傳感器、執行機構、加工對象等單元,不同工序復用同一機構會產生新的排列組合,導致建立的模型狀態指數倍增加。直接對制造系統按照工序建模,所建立的模型存在邏輯關系混亂和容易遺漏工藝約束等問題。

為此設計了平行Petri網順序、選擇和循環模塊,用于搭建對應工序的Petri網模型。通過3種模塊對庫所重復利用,能夠有效減少系統狀態數,厘清工序執行順序,降低程序設計難度。

一個復雜工藝流程的大部分工序由順序、選擇、循環3種模塊組合而成。建立Petri網模型的步驟為:先將工序轉化為Petri網模塊,再按照執行順序將Petri網模塊依次連接,最后結合開機執行任務設置對應的初始標識。

將不同工序間相同的部分庫所用相同的庫所表示,對庫所重復利用,根據其他庫所的狀態區分工序。如圖4所示,給定兩個工藝流程:①工序1—工序3—工序4;②工序2—工序3—工序5。在兩個工藝流程中,分別執行工序1和工序2后,都執行工序3,再分別執行工序4和工序5。在其Petri網模型中,p1~p5分別表示工序1~工序5。執行完工序3后,變遷激發有兩種選擇,庫所得到托肯的順序分別為p1→p3→p4和p2→p3→p5。添加非動作庫所p6和p7,表示庫所p3中的托肯來自p1或p2分支,避免了為工序3重復設計動作庫所。

本文還需設計庫所的智能體。根據庫所類型制定不同的激活函數激發規則,設計智能體與傳感器、執行器間的交換規則,包括智能體任務完成標志和智能體的執行代碼,以及執行器輸出的安全參數,如電機啟停的加減速閾值。

3.2 沖突預防

不同Agent任務對同一執行機構資源的占用可能引起資源沖突問題。根據執行機構的不同,將資源沖突問題劃分為3種類型,對應電路中信號類型的開關量、數字量和模擬量。

開關型執行機構指執行機構僅有0和1兩種狀態,數字型執行機構指執行機構輸出的是離散的數字量,模擬型執行機構指執行機構輸出的是連續的模擬量。

定義9給定兩個智能體A和B,如果其執行機構是相同的開關型執行機構,且A和B的輸出不同,則A和B為開關型執行機構沖突。

定義10給定兩個智能體A和B,如果其執行機構是相同的非開關型執行機構,則其為非開關型執行機構沖突。

定義11給定一個平行Petri網的兩個庫所p1和p2,如果λA(p1)和λA(p2)為開關型或非開關型執行機構沖突,則p1和p2是沖突的。

定義12給定一個平行Petri網,如果一個庫所的集合P滿足以下條件,則稱P為極大沖突庫所集:①P中任意兩個庫所互相沖突;②對于任意一個庫所,如果它與庫所集P中的每個庫所沖突,則它存在于P中。

定理1在算法2設計的監控庫所控制下,平行Petri網不會產生執行器沖突。

算法2沖突預防算法。

輸入:平行Petri網。

輸出:沖突預防平行Petri網。

1 foreach 執行機構e∈∑Edo

3 初始化極大沖突集,P(e)=?;

4 foreach庫所p do

5 if庫所p對應的執行機構為e

6 end

7 end

9 極大沖突集為空P(e)=?;

10 end

11 else

13 if ?pn∈P(e)與pm沖突then

14 P(e)=P(e)∪pm;

15 end

16 else

m≠n,pn?P(e) then

18 New P(e)=pm,pn;

19 end

20 end

21 end

22 end

24 end

4 實驗驗證

如圖5所示,本文實驗平臺是一個芯片檢測控制系統,圖5a中包括控制器、驅動器和電源,圖5b包括傳感器、執行器和檢測電路。其中倍福Twin CAT軟PLC作為控制器,采用C語言編寫Upper-unit程序,采用PLC語言編寫Lower-unit程序,二者之間的數據交換通過ADS通訊協議實現,Lower-unit與物理系統的交互由PLC輸入輸出模塊完成。

為了更加清楚地介紹實驗系統,本文給出圖6所示的芯片檢測系統示意圖,包括X軸控制單元、Z軸控制單元、出料單元、收料單元、取放芯片單元、底座控制單元。表1所示為每個單元的傳感器和執行機構。

表1 各單元傳感器與執行器

(1)工藝流程

根據如圖7所示的工藝流程設計存儲類型芯片檢測與封裝實驗,芯片由撕膜電機拆除塑封,再由控制出料的步進電機M3負責運送。左右兩個機械爪由X軸(水平方向)和Z軸(垂直方向)兩個步進電機控制,移動吸爪,使左右爪位置分別對準出料單元位置(L3和L4)后,移動吸爪下降至芯片槽位置,控制吸爪抓取芯片,每次取完,控制出料的步進電機M3移動一格輸送下一顆芯片。移動吸爪對準工作臺1或工作臺2的位置(L1和L2),再移動吸爪下降至芯片槽位置,控制吸爪放置芯片,然后通過運行在PLC上的軟件進行讀寫檢測,并將檢測結果同步給Petri網。Petri網根據檢測結果選擇將芯片丟棄還是放置合格槽塑封。丟棄操作由電機控制吸爪對準丟棄口(L7)后丟棄芯片;放置合格槽操作由電機控制吸爪的左右爪位置依次對準收料單元位置(L5和L6)后,移動吸爪下降至芯片槽位置,控制吸爪放置芯片,每次放完,控制收料的步進電機M4移動一格,將芯片運送至塑封臺完成塑封。檢測工作由工作臺1(包括A1和A2)和工作臺2(包括A3和A4)共4個芯片槽交替完成,循環往復。

(2)設計過程

1)X軸控制單元設計

將工藝流程中的動作轉化為順序、選擇、循環模塊,根據工序將模塊組合成Petri網模型。工序1(復位設置零點)到工序2(到達L1位置)為順序關系,工序2到工序3(到達L6位置)或到工序10(到達L7位置)為選擇關系,工序10到工序3為順序關系,工序3到工序4(到達L5位置)為順序關系,工序4到工序5(到達L4位置)為順序關系,工序5到工序6(到達L3位置)為順序關系,工序6到工序7(到達L1位置)或到工序9(到達L2位置)為選擇關系,工序9到工序2為順序關系,工序7到工序8(到達L2位置)為順序關系,工序8到工序3或到工序11(到達L7位置)為選擇關系。為了區別空吸爪還是攜帶芯片吸爪到達L1位置,分別用兩個工序表示,L2位置也做同樣處理。為了區分L7上的芯片來自工作臺1還是工作臺2,分別用兩個工序表示。

2)Z軸控制單元設計

工序18(Z軸回零)到工序19(Z軸左下深)為順序關系,工序19到工序20(Z軸右下深)為順序關系,工序20到工序18或到工序21(Z軸回零)為循環關系,工序21到工序22(Z軸左下淺)為順序關系,工序22到工序23(Z軸右下淺)為順序關系,工序23到工序24(Z軸回零)為順序關系,工序24到工序21或到工序18為循環關系。圖8所示的循環結構可以控制工序連續執行兩次,以在符合工序情況下減少狀態量。

簡要介紹其余邏輯比較簡單單元的功能。工序29表示左吸爪放芯片,工序30表示左吸爪取芯片,工序31表示右吸爪放芯片,工序32表示右吸爪取芯片,工序33和工序34分別表示左吸爪上的芯片檢測合格與不合格,工序35和工序36分別表示右吸爪上的芯片檢測合格與不合格,工序37~工序42為直流電機工作與停止狀態。

智能體的PLC程序根據括號內的內容設計,不同智能體分別實現控制步進電機、直流電機、閥門或繼電器開關的功能。除了控制執行機構的程序設計,額外增加負責智能體控制的PLC程序與負責Petri網運行的C代碼通信的程序,智能體根據Petri網的當前標識判斷執行哪些智能體動作,智能體完成相應動作時更新激活函數,并反饋給Petri網。

按照上面步驟建立了以執行機構為單元的Petri網模型,然而模型中可能存在執行器沖突問題,根據算法2沖突預防算法尋找每個執行機構的極大沖突集,并設計監控庫所,將線性約束添加到Petri網中。建立如圖8所示的芯片檢測平臺平行Petri網。

利用Petri網分析理論研究平行Petri網的性質,例如利用可達圖、網結構分析可達性、安全性和死鎖,限于篇幅,且本文重點在于執行器沖突預防,在此不再贅述。

繪制平行Petri網模型圖的方法與普通Petri網相同,畫出的平行Petri網如圖8所示。平行Petri網對定義進行修改,根據平行Petri網的執行規則設計上位機程序,根據智能體具體功能設計底層控制代碼。

根據算法1,設計Petri網演化的C語言程序和智能體的PLC程序。Upper-unit運行在Windows平臺,與運行在PLC上的Lower-unit協同控制系統。采集每個庫所獲得托肯的時間,以及庫所指向的變遷激發時間,相減可得該庫所對應的智能體運行時間。經驗證,實驗結果完全符合所設計的工藝流程,驗證了該方法的可行性。這里以X軸方向上的位置變化為例,繪制如圖9所示的X軸對應庫所甘特圖及X軸步進電機位置變化圖,圖中X軸步進電機位置與本文描述的工序相同。

該Petri網模型符合沖突預防約束,通過資源庫所的限制,實現了同一時刻相同執行機構對應的庫所最多只有一個被標識,不存在執行機構沖突問題。

5 結束語

本文提出一種平行Petri網控制系統設計方法,通過智能體擴展了平行Petri網的定義,給出了沖突預防控制庫所設計方法,避免了控制代碼對執行機構的爭奪;同時編寫了Petri網與智能體程序,以Twin CAT為計算平臺實現了本文方法,并在一個芯片檢測平臺上進行了實驗驗證。

后續研究計劃將智能體執行時間加入Petri網模型,研究平行Petri網的優化調度問題,并將調度策略設計到Petri網結構中來優化工藝流程。

猜你喜歡
庫所執行機構執行器
中寰氣動執行機構
中寰氣動執行機構
基于FPGA 的有色Petri 網仿真系統設計*
測控技術(2018年12期)2018-11-25
飛機裝配預連接緊固件自動化安裝末端執行器設計
考慮執行器飽和的改進無模型自適應控制
一類具有執行器飽和的非線性系統抗飽和方法研究
利用Petri網特征結構的故障診斷方法
彈道修正執行機構綜述
一種遞歸π演算向Petri網的轉換方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合