劉懷蘭,岳 鵬,閤辰皓,趙文杰
(1.華中科技大學(xué),機(jī)械工程學(xué)院,湖北 武漢 430074;2.武漢高德信息產(chǎn)業(yè)有限公司,湖北 武漢 430070)
信息物理系統(tǒng)是一個(gè)綜合計(jì)算、通信、網(wǎng)絡(luò)、控制和物理環(huán)境的多維復(fù)雜系統(tǒng),基于信息物理系統(tǒng)的制造是智能制造的核心與關(guān)鍵技術(shù),也是難點(diǎn)與瓶頸。數(shù)字孿生(Digital Twin, DT)是集成多物理、多尺度、概率模擬的系統(tǒng),通過使用數(shù)字模型、傳感器信息和輸入數(shù)據(jù),能夠?qū)ζ湮锢韺\生兄弟的活動以及性能進(jìn)行仿真和預(yù)測[1],其為構(gòu)建信息物理系統(tǒng)過程中信息空間以及物理空間如何交互融合這一核心瓶頸問題的解決提出了一種方法。離散制造活動的執(zhí)行依托于離散制造車間,因此離散制造車間數(shù)字孿生系統(tǒng)的構(gòu)建為基于信息物理系統(tǒng)的制造這一難點(diǎn)技術(shù)的實(shí)現(xiàn)提供了有效的解決手段。
數(shù)字孿生的概念最早于2003年由Grieves教授在他的產(chǎn)品全生命周期管理課程上提出,他認(rèn)為數(shù)字孿生可以定義為一個(gè)三維模型:物理實(shí)體、虛擬實(shí)體、二者間的連接[2]。經(jīng)過多年發(fā)展,當(dāng)前數(shù)字孿生可通過一個(gè)五維模型來表述:物理實(shí)體、虛擬實(shí)體、服務(wù)、孿生數(shù)據(jù)、各部分之間的連接[3]。無論如何對數(shù)字孿生進(jìn)行定義,虛擬實(shí)體都是數(shù)字孿生中不可缺少的一部分,用以描述物理實(shí)體在信息空間中的映射。虛擬車間即數(shù)字孿生車間的虛擬實(shí)體,數(shù)字孿生車間的構(gòu)建同樣也離不開其虛擬實(shí)體的準(zhǔn)確描述,虛擬車間本質(zhì)上是要素、行為、規(guī)則3個(gè)模型的集合,其行為模型描述了虛擬車間在外部環(huán)境與內(nèi)部運(yùn)行機(jī)制作用下的實(shí)時(shí)響應(yīng)[4]。對于數(shù)字孿生車間虛擬實(shí)體及其行為模型的構(gòu)建,諸多學(xué)者已經(jīng)開展了一定的研究。柳林燕等[5]提出了車間生產(chǎn)過程數(shù)字孿生系統(tǒng)體系架構(gòu),將虛擬車間定義為車間生產(chǎn)過程數(shù)字孿生模型、設(shè)備數(shù)字孿生模型、產(chǎn)品數(shù)字孿生模型、人員數(shù)字孿生模型、環(huán)境孿生模型的組合,并從概念上將行為模型定義為功能模型的一種;趙浩然等[6]從車間幾何信息,生產(chǎn)系統(tǒng)模型對虛擬車間進(jìn)行了描述,并利用了擴(kuò)展隨機(jī)高級Petri網(wǎng)對其行為進(jìn)行了建模;郭東升等[7]從產(chǎn)品、資源、工藝3個(gè)方面對數(shù)字孿生車間進(jìn)行了模型定義;WU等[8]基于Unity3D建立了虛擬車間,并通過Web-Service以及OPC-UA和物理車間進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)了虛擬車間與物理車間的同步運(yùn)行;ZHANG等[9]建立了虛擬與同步集成的數(shù)字孿生系統(tǒng),并將其應(yīng)用在了中空玻璃生產(chǎn)線上。
綜上所述,當(dāng)前對于數(shù)字孿生車間虛擬實(shí)體的構(gòu)建仍處于探索階段,導(dǎo)致其行為模型構(gòu)建缺乏統(tǒng)一的模型描述方法,各自獨(dú)立發(fā)展的模型缺乏可擴(kuò)展性和建模效率。為此,本文首先基于數(shù)字孿生五維模型提出了數(shù)字孿生車間虛擬實(shí)體分層模型,并對離散事件系統(tǒng)規(guī)范(Discrete Event System Specification, DEVS)進(jìn)行擴(kuò)展提出基于值的離散事件系統(tǒng)規(guī)范(Value-based Discrete Event System Specification, VDEVS)以描述數(shù)字孿生車間虛擬實(shí)體的行為模型,最后給出了典型加工單元的數(shù)字孿生虛擬實(shí)體行為模型實(shí)例。
陶飛等[3]提出的數(shù)字孿生模型可以表示為一個(gè)五元組:
MDT=(PE,VE,SS,DD,CN)。
(1)
其中:PE表示物理實(shí)體,該物理實(shí)體按照功能及結(jié)構(gòu)一般分為單元級PE,系統(tǒng)級PE和復(fù)雜系統(tǒng)級PE;VE表示虛擬實(shí)體,其可以從幾何模型(Gv)、物理模型(Pv)、行為模型(Bv)和規(guī)則模型(Rv)4個(gè)角度描述,
VE=(Gv,Pv,Bv,Rv);
(2)
SS表示服務(wù);DD表示孿生數(shù)據(jù);CN表示組成各部分之間的連接。數(shù)字孿生結(jié)構(gòu)如圖1所示。
數(shù)字孿生五維模型的提出推動了數(shù)字孿生技術(shù)在相關(guān)領(lǐng)域和行業(yè)的應(yīng)用。其中虛擬實(shí)體模型是數(shù)字孿生五維模型的關(guān)鍵,但該模型僅從頂層簡單地將虛擬實(shí)體分為了幾何模型、物理模型、行為模型、和規(guī)則模型,并未對其進(jìn)行層次化的描述,這就導(dǎo)致了:①虛擬實(shí)體無法與劃分為單元級、系統(tǒng)級、復(fù)雜系統(tǒng)級的物理實(shí)體一一映射;②在對虛擬實(shí)體進(jìn)行建模時(shí),效率低下,不易擴(kuò)展且難以維護(hù)。數(shù)字孿生虛擬實(shí)體分層模型實(shí)際上對虛擬實(shí)體在單元級、系統(tǒng)級、復(fù)雜系統(tǒng)級3個(gè)層級上進(jìn)行了封裝,從而提高了虛擬實(shí)體模型的復(fù)用性并以此提高建模效率,其低耦合的特點(diǎn)使得虛擬實(shí)體模型更加靈活且易于擴(kuò)展以及維護(hù)。因此,本文首先從單元級、系統(tǒng)級、復(fù)雜系統(tǒng)級3個(gè)層級對車間虛擬實(shí)體進(jìn)行定義。其中:VU表示單元級虛擬實(shí)體,VS表示系統(tǒng)級虛擬實(shí)體,VC表示復(fù)雜系統(tǒng)級虛擬實(shí)體,定義如下:
(1)單元級虛擬實(shí)體定義
單元級虛擬實(shí)體定義為一個(gè)四元組:
VU=(Gv,Pv,UnitBv,UnitRv)。
(3)
式中:Gv為描述單元級別虛擬實(shí)體幾何參數(shù)(形狀、尺寸、位置等)與關(guān)系(裝配關(guān)系)參數(shù)的集合;Pv為描述物理屬性、約束及特征等屬性的集合;UnitBv為單元級的虛擬實(shí)體行為模型;UnitRv為單元級虛擬實(shí)體的規(guī)則模型。
(2)系統(tǒng)級虛擬實(shí)體定義
系統(tǒng)級虛擬實(shí)體定義為一個(gè)三元組:
VS=(R,{VUr|r∈R},SystemBv,SystemRv)。
(4)
式中:R表示子虛擬實(shí)體名稱集合,{VUr|r∈R}為該系統(tǒng)級虛擬實(shí)體包含的單元級虛擬實(shí)體;SystemBv為系統(tǒng)級的虛擬實(shí)體行為模型;SystemRv為系統(tǒng)級虛擬實(shí)體的規(guī)則模型。
(3)復(fù)雜系統(tǒng)級虛擬實(shí)體定義
復(fù)雜系統(tǒng)級虛擬實(shí)體定義為一個(gè)三元組:
VC=(R,{VSr|r∈R},CSystemBv,
CSystemRv)。
(5)
式中:R為子虛擬實(shí)體名稱集合;{VSr|r∈R}為該系統(tǒng)級虛擬實(shí)體包含的單元級虛擬實(shí)體;CSystemBv為復(fù)雜系統(tǒng)級的虛擬實(shí)體行為模型;CSystemRv為復(fù)雜系統(tǒng)級虛擬實(shí)體的規(guī)則模型。
本文主要對離散制造車間進(jìn)行研究,為了精確描述離散制造車間虛擬實(shí)體的行為,同樣需要在單元級、系統(tǒng)級、復(fù)雜系統(tǒng)級3個(gè)層次對其虛擬實(shí)體的行為模型進(jìn)行層次化的定義,其結(jié)構(gòu)如圖2所示。其中,上層虛擬實(shí)體由下層虛擬實(shí)體組成,其行為主要由與其層級對應(yīng)的行為模型進(jìn)行描述,該行為模型由下一層的行為模型通過外部輸入耦合、內(nèi)部耦合、外部輸出耦合3種耦合關(guān)系組成,底層行為模型由基本功能模型之間的耦合組成。功能模型描述了車間生產(chǎn)過程中關(guān)鍵生產(chǎn)要素對物料流、能量流、信息流的基本操作以及轉(zhuǎn)換,基本功能模型的識別、分類、定義以及不同功能模型之間的耦合機(jī)制能夠?qū)卧壧摂M車間的行為模型進(jìn)行描述,進(jìn)而能夠?qū)ο到y(tǒng)級、復(fù)雜系統(tǒng)級虛擬車間的行為模型進(jìn)行描述,這一過程的關(guān)鍵在于底層功能的劃分以及行為模型的描述方法。
1.2.1 離散制造車間虛擬實(shí)體行為模型底層功能劃分
離散制造車間屬于離散事件系統(tǒng),因此對于其數(shù)字孿生虛擬實(shí)體行為模型可借助離散事件系統(tǒng)進(jìn)行描述。
離散事件系統(tǒng)中,事件的發(fā)生間隔以及活動的持續(xù)時(shí)間呈現(xiàn)一定的隨機(jī)性,因此其模型構(gòu)建的關(guān)鍵步驟是針對所研究的問題進(jìn)行抽樣,并進(jìn)行合理的分析,從已知的統(tǒng)計(jì)分布中進(jìn)行選擇,估算其分布參數(shù)從而確定活動持續(xù)時(shí)長或者是事件發(fā)生間隔時(shí)間,進(jìn)而對整個(gè)仿真模型進(jìn)行描述。數(shù)字孿生虛擬實(shí)體與物理實(shí)體的建立并不存在先后關(guān)系,虛擬實(shí)體也可能先于物理實(shí)體構(gòu)建,因此在對其行為模型構(gòu)建時(shí),無法進(jìn)行所對應(yīng)物理實(shí)體數(shù)據(jù)的統(tǒng)計(jì)、抽樣分析,也就存在利用離散事件系統(tǒng)建模時(shí),行為模型構(gòu)建不準(zhǔn)確的問題。為此,本文首先對離散事件系統(tǒng)中實(shí)體活動持續(xù)時(shí)間的方法進(jìn)行擴(kuò)展,增加了通過基于虛擬實(shí)體關(guān)鍵屬性的函數(shù)以及基于物理實(shí)體同步運(yùn)行的擴(kuò)展方法,如圖3所示。
傳統(tǒng)離散事件系統(tǒng)中活動的持續(xù)時(shí)間主要通過基于確定值與基于統(tǒng)計(jì)方法進(jìn)行確定?;诖_定值即明確的給出能夠度量某個(gè)活動持續(xù)時(shí)間的正數(shù),而基于統(tǒng)計(jì)方法則要依據(jù)特定的統(tǒng)計(jì)分布進(jìn)行抽樣,并將其作為活動的持續(xù)時(shí)間,如以均勻分布在[1,1.2]中隨機(jī)的獲取時(shí)間變量。在對數(shù)字孿生虛擬實(shí)體行為模型進(jìn)行描述時(shí),各個(gè)虛擬實(shí)體的活動持續(xù)時(shí)間除了基于傳統(tǒng)方法確定之外,還可通過對虛擬實(shí)體關(guān)鍵屬性的操作以及基于物理實(shí)體的同步運(yùn)行兩種方法進(jìn)行確定?;趯μ摂M實(shí)體關(guān)鍵屬性的操作即對真實(shí)物理實(shí)體運(yùn)行情況的模擬,可表現(xiàn)為以虛擬實(shí)體幾何模型(Gv)、物理模型(Pv)屬性為參數(shù)的計(jì)算函數(shù),例如:為了分析自動導(dǎo)引運(yùn)輸車(Automated Guided Vehicle, AGV)沿某一段路徑運(yùn)動的時(shí)長,可以利用其速度、加速度、位姿、路徑來構(gòu)建模擬運(yùn)行函數(shù),從而對其真實(shí)運(yùn)行情況進(jìn)行模擬;而對于基于物理實(shí)體的同步運(yùn)行來說,其能夠準(zhǔn)確地復(fù)現(xiàn)物理實(shí)體的行為,例如:在對加工單元進(jìn)行虛擬實(shí)體構(gòu)建時(shí),虛擬機(jī)器人運(yùn)動路徑的運(yùn)動學(xué)反解可交由實(shí)驗(yàn)物理機(jī)器人進(jìn)行運(yùn)算,并實(shí)時(shí)地將其速度、加速度、關(guān)節(jié)角度信息反饋至虛擬機(jī)器人并控制其動作,從而可以實(shí)現(xiàn)基于實(shí)驗(yàn)物理機(jī)器人來精確描述虛擬實(shí)體活動,進(jìn)而對該活動時(shí)間進(jìn)行確定。在利用擴(kuò)展后的離散事件系統(tǒng)建模方法構(gòu)建虛擬實(shí)體的行為模型時(shí),某一活動的持續(xù)時(shí)間一方面可以通過對物理實(shí)體運(yùn)行時(shí)的情況利用相關(guān)數(shù)學(xué)函數(shù)進(jìn)行模擬,另一方面可以適當(dāng)?shù)貥?gòu)建實(shí)驗(yàn)物理實(shí)體,通過對該物理實(shí)體的同步運(yùn)行來確定該活動的持續(xù)時(shí)間。
因此,車間行為模型底層功能需要從時(shí)間變量的生成、對虛擬實(shí)體關(guān)鍵屬性的操作以及基于物理實(shí)體的同步運(yùn)行3個(gè)維度來進(jìn)行劃分,從而借助離散事件系統(tǒng)建模方法對車間生產(chǎn)要素的行為提供統(tǒng)一、快速的描述。
時(shí)間變量生成這一底層功能主要通過隨機(jī)數(shù)生成技術(shù)產(chǎn)生隨機(jī)數(shù),然后基于生成的隨機(jī)數(shù)通過逆變換法、舍選法、特征法等方法生成符合特定分布的隨機(jī)變量。
基于Gv與Pv的關(guān)鍵屬性的計(jì)算函數(shù)模擬了物理實(shí)體真實(shí)的運(yùn)行情況,更準(zhǔn)確地說是對機(jī)電產(chǎn)品運(yùn)行情況的模擬,將其封裝為功能組件并通過事件進(jìn)行驅(qū)動,能夠?qū)崿F(xiàn)物理實(shí)體運(yùn)行情況的準(zhǔn)確模擬。機(jī)電產(chǎn)品包括執(zhí)行機(jī)構(gòu)子系統(tǒng)、傳感檢測子系統(tǒng)、信息處理及控制子系統(tǒng),其中執(zhí)行機(jī)構(gòu)子系統(tǒng)又由驅(qū)動原件和執(zhí)行機(jī)構(gòu)組成,驅(qū)動原件負(fù)責(zé)驅(qū)動執(zhí)行機(jī)構(gòu)的運(yùn)動,執(zhí)行機(jī)構(gòu)子系統(tǒng)本質(zhì)上改變了物理實(shí)體的裝配屬性以及位姿屬性。因此,虛擬實(shí)體對于物理實(shí)體真實(shí)運(yùn)行情況的功能組件首先要從Gv裝配關(guān)系以及位姿屬性的修改進(jìn)行設(shè)計(jì)。對于裝配關(guān)系功能來說,主要就是將某一實(shí)體安裝到父實(shí)體,或者將父實(shí)體的子實(shí)體進(jìn)行拆除,因此可以對這兩個(gè)功能進(jìn)行封裝,得到“安裝實(shí)體”和“拆除實(shí)體”功能組件。對于其位姿的修改來說,本文主要對制造系統(tǒng)常見主動實(shí)體的運(yùn)動進(jìn)行歸納分析,文獻(xiàn)[5]將車間的主動實(shí)體分為機(jī)器人、數(shù)控機(jī)床、專用加工設(shè)備、人員、自動導(dǎo)引運(yùn)輸車(AGV)、傳送帶、立體倉庫以及產(chǎn)品/零部件等,本文對這些主動實(shí)體主要運(yùn)動形式進(jìn)行了歸納與整理,如表1所示。
表1 離散制造車間主要主動實(shí)體運(yùn)動形式
由表1可知,車間主動實(shí)體的主要運(yùn)動形式是沿直線移動、繞某一軸的旋轉(zhuǎn)運(yùn)動、沿某一不規(guī)則路徑的移動,因此本文依據(jù)這3種運(yùn)動形式對物理實(shí)體的運(yùn)動進(jìn)行模擬并將傳感檢測子系統(tǒng)封裝為功能組件:“單項(xiàng)路徑”、“雙向路徑”、“實(shí)體旋轉(zhuǎn)”、“實(shí)體移動”等。整個(gè)車間中的物料生成以及對物料的暫存將其封裝為物料生成以及物料容納功能組件。物理實(shí)體設(shè)備的傳感檢測子系統(tǒng)同樣也需要虛擬實(shí)體的模擬,將傳感檢測子系統(tǒng)封裝為傳感器功能組件,用于檢測虛擬實(shí)體的相關(guān)信息??刂葡到y(tǒng)子組件能夠依據(jù)傳感系統(tǒng)子組件反饋的信息對執(zhí)行系統(tǒng)進(jìn)行控制,對于機(jī)器人和數(shù)控設(shè)備,其主要控制功能即解析程序并生成笛卡爾坐標(biāo),同時(shí)通過運(yùn)動學(xué)的反解將笛卡爾坐標(biāo)轉(zhuǎn)換為各軸的軸坐標(biāo),因此將其程序解析功能封裝為機(jī)器人控制器和數(shù)控設(shè)備控制器功能組件,將運(yùn)動學(xué)的正逆解封裝為功能組件;對于AGV,主要根據(jù)設(shè)置的路徑進(jìn)行移動,因此將沿路徑移動封裝為功能組件。這些功能組件之間需要利用事件進(jìn)行同步,不同事件之間需要通過布爾運(yùn)算來進(jìn)行運(yùn)算,因此將事件之間的布爾運(yùn)算封裝為功能組件。
基于物理實(shí)體的同步運(yùn)行能夠使得虛擬實(shí)體基于實(shí)驗(yàn)物理設(shè)備運(yùn)行時(shí)進(jìn)行實(shí)時(shí)的響應(yīng),從而更加精確地描述其活動,因此其需要能夠與物理設(shè)備進(jìn)行通訊。對于機(jī)器人來說,可以將虛擬實(shí)體運(yùn)行路徑發(fā)送至物理機(jī)器人,物理機(jī)器人反解后實(shí)時(shí)將軸數(shù)據(jù)同步至機(jī)器人虛擬實(shí)體,將其同步行為封裝為程序容器功能組件;對于數(shù)控設(shè)備來說,可以實(shí)時(shí)同步物理實(shí)體執(zhí)行加工程序時(shí)各軸的軸坐標(biāo),將其封裝為數(shù)控程序容器功能組件;對于其他機(jī)電設(shè)備來說,需要通過發(fā)送數(shù)據(jù)和采集數(shù)據(jù),精準(zhǔn)地描述該機(jī)電設(shè)備虛擬實(shí)體活動的持續(xù)時(shí)間,將其封裝為通訊服務(wù)功能塊。行為模型基本功能劃分如表2所示。
表2 行為模型基本功能劃分
續(xù)表2
1.2.2 虛擬車間行為描述方法
離散制造車間屬于離散事件系統(tǒng),其虛擬實(shí)體的行為模型描述需要借助離散事件系統(tǒng)層次化描述方法。DEVS由Zeigler教授于1976年提出,其利用了形式化的方法對系統(tǒng)模型進(jìn)行規(guī)范,該規(guī)范從面向?qū)ο蟮?Objcet-Oriented)角度出發(fā)依據(jù)系統(tǒng)理論描述了離散事件系統(tǒng)。該規(guī)范建立了系統(tǒng)完備的模型框架,保證了模型的規(guī)范性、重用性、仿真互操作,并為離散事件系統(tǒng)建模提供了層次化、模塊化的機(jī)制[10],因此,本文借由該方法對數(shù)字孿生車間虛擬實(shí)體行為模型進(jìn)行描述。DEVS包括原子模型和耦合模型,其定義分別如下[11]:
(1)原子模型(Atomic DEVS model)
原子模型定義為一個(gè)七元組:
A=(X,Y,S,s0,tα(s),δx,δy)。
(6)
式中:X為輸入事件集合;Y為輸出事件集合;S為離散狀態(tài)集合;s0為其初始狀態(tài);tα(s)為時(shí)間推進(jìn)函數(shù);δx為外部狀態(tài)轉(zhuǎn)換函數(shù);δy為輸出和內(nèi)部狀態(tài)轉(zhuǎn)換函數(shù)。
(2)耦合模型(Coupled DEVS)
耦合模型層次化、模塊化的描述了系統(tǒng)的結(jié)構(gòu),其定義為一個(gè)七元組:
N=(X,Y,D,{Mi},EIC,ITC,EOC)。
(7)
式中:X為輸入事件集合;Y為輸出事件集合;D為耦合成員名字集合;{Mi}為其耦合成員集合;EIC為外部輸入耦合集;ITC為內(nèi)部輸入耦合集;EOC為外部輸出耦合集。
DEVS從系統(tǒng)論演變而來,是一種對離散事件系統(tǒng)的形式化描述規(guī)范,研究者們針對不同的應(yīng)用領(lǐng)域提出了許多DEVS的擴(kuò)展形式[11],包括動態(tài)結(jié)構(gòu)DEVS(Dynamic Structure Discrete Event System, DSDEVS)、符號DEVS(symbolic-DEVS)、元胞自動機(jī)DEVS(cell-DEVS)、模糊DEVS(fuzzy-DEVS)、實(shí)時(shí)DEVS(Real Time DEVS, RT-DEVS)等。其中:DSDEVS用于描述模型在仿真運(yùn)行時(shí)結(jié)構(gòu)動態(tài)改變的系統(tǒng),如系統(tǒng)連通性的進(jìn)化,生物進(jìn)化等;symbolic-DEVS用于探索并發(fā)和同步方式處理的多模型行為,表示在符號時(shí)間中發(fā)生的事件;cell-DEVS結(jié)合元胞自動機(jī)建模仿真,為元胞建模提供了動態(tài)層次化與模塊化描述的機(jī)制;fuzzy-DEVS將模糊集合理論應(yīng)用于經(jīng)典DEVS理論上的集合和函數(shù),用于描述不確定模型;RT-DEVS主要應(yīng)用于實(shí)時(shí)仿真,其仿真時(shí)鐘不再是虛擬的時(shí)鐘,而是一個(gè)實(shí)時(shí)的時(shí)鐘。上述DEVS擴(kuò)展形式均基于傳統(tǒng)的離散事件系統(tǒng)建模體系,對于活動的持續(xù)時(shí)間依舊是通過確定值或者是符合某種分布的隨機(jī)變量,而數(shù)字孿生行為模型在離散制造車間中無法通過觀測物理實(shí)體對其某個(gè)活動的持續(xù)時(shí)間進(jìn)行確定,因此需要通過對物理實(shí)體運(yùn)動進(jìn)行模擬以及基于實(shí)驗(yàn)物理實(shí)體的同步運(yùn)行來描述某個(gè)活動。傳統(tǒng)DEVS在這方面有所欠缺,如利用DEVS原子模型可以描述虛擬車間功能模型,通過其時(shí)間推進(jìn)函數(shù)能夠確定某一狀態(tài)在未接收到外部輸入情況下的持續(xù)時(shí)間,該時(shí)間在編譯模型時(shí)即可確定,但虛擬車間的功能模型中,某一狀態(tài)在未接收到外部輸入情況下的持續(xù)時(shí)間可能在運(yùn)行時(shí)才能確定,例如正向運(yùn)動學(xué)功能模型(如圖4)。
該功能模型負(fù)責(zé)將輸入的虛擬機(jī)器人6個(gè)軸的各個(gè)關(guān)節(jié)角度值通過正向運(yùn)動學(xué)算法轉(zhuǎn)換為機(jī)器人末端執(zhí)行器的位姿,使用傳統(tǒng)的DEVS原子模型定義如下:
forward_kinematics=(X,Y,S,s0,tα(s),δx,δy)。
式中:X={(J1,J2,J3,J4,J5,J6)|J1,J2,J3,J4,J5,J6∈A},其中A為機(jī)器人限位角度集合;S={Calculate,Wait};s0=Wait;δy(Calculate)=((X,Y,Z,RX,RY,RZ),Wait);tα(Wait)=+∞;tα(Calculate)=calculatingtime;δx(Wait,(J1,J2,J3,J4,J5,J6))=Send。
該功能模型的輸入端口接受值為數(shù)組(J1,J2,J3,J4,J5,J6)的事件,輸出端口輸出值為數(shù)組(X,Y,Z,RX,RY,RZ)的事件,其狀態(tài)包括Calculate和Wait,Wait狀態(tài)持續(xù)時(shí)間為+∞,該狀態(tài)下某時(shí)刻接收到輸入事件時(shí),會轉(zhuǎn)換為Calculate狀態(tài)。在Calculate狀態(tài)下,原子模型需要執(zhí)行正運(yùn)動學(xué)算法,將輸入的關(guān)節(jié)角度值轉(zhuǎn)換為輸出的空間坐標(biāo)值,并在執(zhí)行完成后,將狀態(tài)變換為Wait狀態(tài)繼續(xù)等待輸入。值得注意的是,Calculate狀態(tài)的持續(xù)時(shí)間無法在定義時(shí)給出,只有執(zhí)行算法對輸入值進(jìn)行計(jì)算時(shí),即在模型仿真運(yùn)行時(shí)才能知道該狀態(tài)的持續(xù)時(shí)間。
在虛擬車間中,功能模型涉及到對該模型輸入值與關(guān)鍵屬性的計(jì)算,以及基于實(shí)驗(yàn)物理實(shí)體的同步運(yùn)行。從上述示例可以看出,由于沒有明確給出對值計(jì)算時(shí)的相關(guān)定義,無法定義該狀態(tài)的時(shí)間推進(jìn)函數(shù),也就無法利用DEVS原子模型對這種涉及到輸入值計(jì)算的功能模型進(jìn)行定義;與此同時(shí),DEVS原子模型事件之間的連接用于描述模型之間的同步行為,無法描述對于物理實(shí)體數(shù)據(jù)的采樣以及不同模型之間數(shù)據(jù)的傳輸。為解決上述問題,本文對傳統(tǒng)的DEVS模型進(jìn)行擴(kuò)展,稱為VDEVS,使其具備對輸入值的計(jì)算以及對物理實(shí)體采樣與模型間數(shù)據(jù)傳輸?shù)哪芰Α?/p>
對DEVS進(jìn)行擴(kuò)展的目的是為了能夠利用其對離散車間虛擬實(shí)體的分層行為模型進(jìn)行描述。如前文所述,傳統(tǒng)離散事件系統(tǒng)建模與仿真方法不再適用于虛擬實(shí)體先于物理實(shí)體構(gòu)建的情況。而由于DEVS理論是離散事件系統(tǒng)的建模規(guī)范,對于DEVS主要基于擴(kuò)展后的離散事件系統(tǒng)進(jìn)行擴(kuò)展,其擴(kuò)展思路如圖5所示。
DEVS中,耦合模型的定義主要是確定各個(gè)模型之間的耦合關(guān)系,換句話說DEVS耦合模型由原子模型“搭建”而成,因此對DEVS耦合模型的擴(kuò)展需要基于DEVS擴(kuò)展后的原子模型。原子模型的擴(kuò)展首先增加了內(nèi)部變量,該變量可用來對虛擬實(shí)體的關(guān)鍵屬性進(jìn)行引用并在原子模型內(nèi)保存與物理實(shí)體交互時(shí)的緩沖數(shù)據(jù)。隨后為了能夠在不同模型之間進(jìn)行數(shù)據(jù)的傳遞,對原子模型擴(kuò)展了數(shù)據(jù)端口及配對關(guān)系。為了實(shí)現(xiàn)原子模型基于虛擬實(shí)體的計(jì)算函數(shù)以及物理實(shí)體的同步運(yùn)行,為DEVS原子模型擴(kuò)展了計(jì)算函數(shù),該函數(shù)能夠使得原子模型和虛擬實(shí)體以及物理實(shí)體實(shí)現(xiàn)交互。
VDEVS原子模型定義如下:
A=(X,Y,DI,DO,C,M,PI,PO,S,s0,δτ,δx,δy)。
(8)
式中:
定義1X為輸入事件集合,X={(p,v)|p∈EventInPorts,v∈(true,false)}。
定義2Y為輸出事件集合,Y={(p,v)|p∈EventOutPorts,v∈(true,false)}。
定義3DI為輸入數(shù)據(jù)集合,DI={(dp,v)|dp∈DataInPorts,v∈DIp}。
定義4DO為輸出數(shù)據(jù)集合,DO={(dp,v)|dp∈DataOutPorts,v∈DOp}。
定義5M為內(nèi)部變量。
定義6C為數(shù)據(jù)計(jì)算函數(shù),即2DI×2DO×2M→2DO×2M,其中DI為數(shù)據(jù)輸入集合,DO為數(shù)據(jù)輸出集合,M為內(nèi)部變量。
定義7PI為輸入事件與輸入數(shù)據(jù)連接函數(shù),PI(EventInPorts,DataInports)=EventInPorts×2DataInports。該函數(shù)表明輸入事件端口與輸入數(shù)據(jù)端口的配對關(guān)系,當(dāng)該輸入事件端口接收事件時(shí)候,與其配對的數(shù)據(jù)端口允許采樣。
定義8PO為輸出事件與輸出數(shù)據(jù)連接函數(shù),PO(EventOutPorts,DataOutports)=EventOutPorts×2DataOutports。
定義9S為一組該模型的狀態(tài)。
定義10s0為初始狀態(tài),其中s0∈S。
定義11δτ為δτ狀態(tài)轉(zhuǎn)移事件產(chǎn)生函數(shù),定義為{X∪{?}}×2DI×2DO×2M→Xτ,其中Xτ表示狀態(tài)轉(zhuǎn)移事件集。公式表明狀態(tài)轉(zhuǎn)移事件由數(shù)據(jù)端口內(nèi)部變量以及事件端口的布爾邏輯式得來。
定義12δx為狀態(tài)轉(zhuǎn)換函數(shù),定義為S×Xτ×C→S。
定義13δy為輸出函數(shù),定義為S→Y×DO。
以上定義規(guī)范了具備數(shù)據(jù)處理能力的VDEVS原子模型,其中定義1~定義4、定義7~定義8對DEVS中的事件進(jìn)行了更加精確的定義與擴(kuò)展。在DEVS原子模型中,事件定義為端口與值的二元組。在VDEVS原子模型中,由于對輸入數(shù)據(jù)的處理需要一定的時(shí)間,為了保證對輸入數(shù)據(jù)的持續(xù)采樣,需要將DEVS中的事件進(jìn)一步拆分為true和false值的條件事件、value值的數(shù)據(jù),以及兩者之間的配對關(guān)系。定義5規(guī)定了原子模型的定義必須包括內(nèi)部變量,其作用域僅在當(dāng)前原子模型內(nèi)有效。定義6規(guī)定了數(shù)據(jù)計(jì)算函數(shù),即在原子模型的定義時(shí)需要規(guī)定對輸入數(shù)據(jù)、輸出數(shù)據(jù)、內(nèi)部數(shù)據(jù)的計(jì)算函數(shù)。定義12將DEVS原子模型中的外部狀態(tài)轉(zhuǎn)換函數(shù)以及內(nèi)部狀態(tài)轉(zhuǎn)換函數(shù)進(jìn)行了統(tǒng)一說明,其狀態(tài)轉(zhuǎn)換依賴于定義11中所定義的狀態(tài)轉(zhuǎn)移事件Xτ,其中Xτ的產(chǎn)生由狀態(tài)事件轉(zhuǎn)移函數(shù)決定,該函數(shù)表現(xiàn)為輸入事件以及輸入數(shù)據(jù)、輸出數(shù)據(jù)、內(nèi)部變量所構(gòu)成的布爾表達(dá)式,該布爾表達(dá)式中與內(nèi)部變量相關(guān)的部分替代了DEVS原子模型中由時(shí)間推進(jìn)函數(shù)所決定的內(nèi)部狀態(tài)轉(zhuǎn)換。定義13規(guī)定了某狀態(tài)的輸出函數(shù),該輸出函數(shù)在本狀態(tài)的計(jì)算函數(shù)執(zhí)行完成后執(zhí)行。
VDEVS耦合模型定義如下:
N=(X,Y,DI,DO,D,{Mi},EIC,DIC,IEC,
IDC,EOC,DOC)。
(9)
式中:
定義14X為耦合模型輸入事件集合,X={(p,v)|p∈EventInPorts,v∈(true,false)}。
定義15Y為耦合模型輸出事件集合,Y={(p,v)|p∈EventOutPorts,v∈(true,false)}。
定義16DI為輸入數(shù)據(jù)集合,DI={(dp,v)|dp∈DataInPorts,v∈DIp}。
定義17DO為輸出數(shù)據(jù)集合,DO={(dp,v)|dp∈DataOutPorts,v∈DOp}。
定義18{Mi}為子組件集合。
定義19EIC為輸入事件耦合函數(shù),功能模型定義為EIC?{((N,eipN),(d,eipd))|eipN∈EventInPorts,d∈D,ipd∈EventInPortsd},其中N為該耦合組件名稱。
定義20DIC為輸入數(shù)據(jù)耦合函數(shù),其定義為DIC?{((N,dipN),(d,dipd))|dipN∈DataInPorts,d∈D,dipd∈DataInPortsd}。
定義21IEC為內(nèi)部事件耦合函數(shù),其定義為IEC?{((a,eopa),(b,eipb))|a∈D,b∈D,eopa∈EventOutPortsd,eipb∈EventInPortsd}。
定義22IDC為內(nèi)部數(shù)據(jù)耦合函數(shù),其定義為IDC?{((a,dopa),(b,dipb))|a∈D,b∈D,dopa∈DataOutPortsd,dipb∈DataInPortsd}。
定義23EOC為輸出事件耦合函數(shù),其定義為EOC?{((d,eopd),(N,eopN))|eopN∈EventOutPorts,d∈D,eopd∈EventOutPortsd}。
定義24DOC為輸出數(shù)據(jù)耦合關(guān)系,其定義為DOC?{((d,dopd),(N,dopN))|dopN∈DataOutPorts,d∈D,dopd∈DataOutPortsd}。
以上定義規(guī)范了VDEVS的耦合模型,其在DEVS的基礎(chǔ)上增加了數(shù)據(jù)的耦合,使得事件以及與數(shù)據(jù)可以在耦合模型的子組件之間進(jìn)行傳遞。值得注意的是,原子模型和原子模型之間的數(shù)據(jù)耦合,必須嚴(yán)格依據(jù)連接函數(shù)所定義的連接關(guān)系。
在VDEVS下,如圖3所示的正向運(yùn)動學(xué)功能模型可借由VDEVS原子模型進(jìn)行定義,如圖6所示。
該功能模型包括兩個(gè)事件端口以及兩個(gè)數(shù)據(jù)端口,功能模型定義如下:
X={(p,v)|p∈{EI},v∈{true,false}};
Y={(p,v)|p∈{EO},v∈{true,false}};
DI={(p,v)|p∈{DI1},v∈{(J1,J2,J3,J4,J5,J6)|J1,J2,J3,J4,J5,J6∈A}},其中A為工業(yè)機(jī)器人限位角度;
DO={(p,v)|p∈{DO2},v∈{(X,Y,Z,RX,RY,RZ)|X,Y,Z,RX,RY,RZ∈C}},其中C為工業(yè)機(jī)器人可達(dá)范圍;
M={calculatedone},內(nèi)部數(shù)據(jù)為calculate_done變量,其類型為bool,定義域?yàn)楫?dāng)前原子模型;
C((J1,J2,J3,J4,J5,J6),(calculatedone,false))=((X,Y,Z,RX,RY,RZ),(calculatedone,true));
PI={(EI1,DI1)};
PO={(EO1,DO1)};
S={Calculate,Wait};
s0=Wait;
δτ(EI1)=X1τ;
δτ(calculate_done,true)=X2τ;
δx(wait,X1τ)=Calculate;
δx(Calculate,(calculate_done,true),C)=Wait;
δy(Calculate)=((EO,true),(O,(X,Y,Z,RX,RY,RZ)));
在該定義下,正向運(yùn)動學(xué)功能模型依然包括Calculate和Wait兩個(gè)狀態(tài),且wait為初始狀態(tài)。其輸入事件端口為EI1,輸出事件端口為EO1,輸入數(shù)據(jù)端口為DI1,屬于數(shù)據(jù)為(J1,J2,J3,J4,J5,J6),輸出數(shù)據(jù)端口為DO1,輸出數(shù)據(jù)為(X,Y,Z,RX,RY,RZ),其中輸入事件端口和輸入數(shù)據(jù)端口關(guān)聯(lián),輸出事件端口與輸出數(shù)據(jù)端口關(guān)聯(lián)。內(nèi)部數(shù)據(jù)為calculatedone,其類型為bool類型,定義域?yàn)樵撛幽P蛢?nèi)部。計(jì)算函數(shù)主要將(J1,J2,J3,J4,J5,J6)轉(zhuǎn)換為(X,Y,Z,RX,RY,RZ),同時(shí)將標(biāo)志位Calculatedone的值由false設(shè)為true,該函數(shù)在Calculate狀態(tài)下執(zhí)行。當(dāng)在Wait狀態(tài)時(shí),其狀態(tài)由外部事件X驅(qū)動,并變?yōu)镃alculate狀態(tài),當(dāng)處于Calculate狀態(tài)時(shí),其狀態(tài)是否變化為wait由Calculatedone值是否為ture決定。同時(shí),在數(shù)據(jù)計(jì)算完成轉(zhuǎn)換至Wait狀態(tài)時(shí),向事件端口輸出true以輸出事件并向數(shù)據(jù)端口DO1輸出數(shù)據(jù)(X,Y,Z,RX,RY,RZ)。
VDEVS在原有DEVS基礎(chǔ)上擴(kuò)展了對輸入數(shù)據(jù)的修改能力,其原子模型可對虛擬車間功能模型進(jìn)行描述,其耦合模型可對數(shù)字孿生車間單元級、系統(tǒng)級、復(fù)雜系統(tǒng)級虛擬實(shí)體行為進(jìn)行描述。
(1)單元級虛擬實(shí)體行為模型定義
UnitBv為單元級的虛擬實(shí)體行為模型,定義其為VDEVS耦合模型:
UnitBv=(X,Y,DI,DO,D,{Fi|i∈D},
EIC,DIC,IEC,IDC,EOC,DOC)。
其中{Fi}為子功能集合,F(xiàn)i定義為VDEVS原子模型,
Fi=(X,Y,DI,DO,C,M,PI,PO,S,s0,δτ,δx,δy)。
其中單元級虛擬實(shí)體的Gv?M且Pv?M,即虛擬資源中的幾何參數(shù)以及物理參數(shù)定義為原子模型的內(nèi)部變量,此時(shí)的數(shù)據(jù)計(jì)算函數(shù)C即為在輸入數(shù)據(jù)下對當(dāng)前虛擬資源集合參數(shù)以及物理參數(shù)的變換。
(2)系統(tǒng)級虛擬實(shí)體行為模型定義
系統(tǒng)級虛擬實(shí)體行為模型定義為單元級虛擬實(shí)體行為模型的耦合:
SystemBv=(X,Y,DI,DO,R,{UnitBr|r∈R},
EIC,DIC,IEC,IDC,EOC,DOC)。
(3)復(fù)雜系統(tǒng)級虛擬實(shí)體行為模型定義
復(fù)雜系統(tǒng)級虛擬實(shí)體行為模型定義為系統(tǒng)級虛擬實(shí)體行為模型的耦合:
CSystemBv=(X,Y,DI,DO,R,{SystemBr|
r∈R},EIC,DIC,IEC,IDC,EOC,DOC)。
以上提出了擴(kuò)展的數(shù)字孿生車間虛擬實(shí)體行為模型,并利用該模型對車間各層實(shí)體行為進(jìn)行了封裝,系統(tǒng)級虛擬實(shí)體行為模型由單元級虛擬實(shí)體耦合形成,復(fù)雜系統(tǒng)級虛擬實(shí)體行為模型又以系統(tǒng)級虛擬實(shí)體行為模型耦合形成,上層行為模型通過事件與端口的連接協(xié)調(diào)下層行為模型。
為了驗(yàn)證所提VDEVS方法,本文首先設(shè)計(jì)了VDEVS語言,并基于該語言以及面向?qū)ο笏枷腴_發(fā)了VDEVS仿真原型系統(tǒng),主要界面如圖7所示。
該原型系統(tǒng)的主要功能即讀取格式為.VDevs的模型定義語言,在對其進(jìn)行語法、語義分析后將其加載至仿真系統(tǒng)中,點(diǎn)擊開始仿真后系統(tǒng)依據(jù)VDEVS仿真規(guī)則進(jìn)行模型間的數(shù)據(jù)交互、狀態(tài)切換、計(jì)算函數(shù)等執(zhí)行,同時(shí)在仿真時(shí)能夠?qū)崟r(shí)展示系統(tǒng)性能度量的部分指標(biāo),如設(shè)備利用率、產(chǎn)量等。
本文以一加工單元作為仿真實(shí)例進(jìn)行驗(yàn)證。該加工單元由產(chǎn)生器Generator、入料傳送帶Convey1、機(jī)器人Robot、處理器Processor1、處理器Processor2、出料傳送帶Conveyor2以及吸收器Sink組成,其布局如圖8所示。
該加工單元的虛擬實(shí)體屬于系統(tǒng)級虛擬實(shí)體,其行為模型CSystemBv如圖9所示。該行為模型描述了加工單元的行為,其動作流程為:Robot對工件搬運(yùn)動作的仿真結(jié)束后,將該工件發(fā)送至Processor1的wi端口;Processor1對加工過程進(jìn)行模擬,完成后其eo以及wo端口分別向自己的ei1以及機(jī)器人wi2端口發(fā)送事件以及數(shù)據(jù);Robot再次模擬搬運(yùn)過程,完成后從wo2發(fā)送工件至Processor2數(shù)據(jù)輸入端口wi;Processor2對加工過程進(jìn)行模擬,完成后其eo以及wo端口分別向自己的ei1以及機(jī)器人wi3端口發(fā)送事件以及數(shù)據(jù);Robot模擬搬運(yùn)過程,完成后從其wo3端口向Conveyor2端口發(fā)出數(shù)據(jù),Conveyor2模擬完成出料過程后將其發(fā)送至Sink的wi端口;Sink對接受到的工件進(jìn)行計(jì)數(shù),統(tǒng)計(jì)當(dāng)前加工完成的工件數(shù)量。在上述過程中,機(jī)器人wi1、wi2、wi3和入料傳送帶的wi以及Processor1、Processor2的wi數(shù)據(jù)端口均會在配對事件未發(fā)生時(shí)阻塞數(shù)據(jù),充當(dāng)緩沖隊(duì)列。
為了驗(yàn)證本文所提出的VDEVS方法,機(jī)器人行為模型Robot通過計(jì)算函數(shù)Robotmove()與RobotStudio中的機(jī)器人虛擬實(shí)體進(jìn)行交互,而數(shù)控加工中心行為模型Processor1則通過計(jì)算函數(shù)CNCExcute()與真實(shí)加工單元中的數(shù)控設(shè)備物理實(shí)體進(jìn)行交互,如圖10所示。其余模型的活動持續(xù)時(shí)間、事件發(fā)生間隔時(shí)間均通過符合泊松分布、正態(tài)分布的隨機(jī)變量生成函數(shù)確定。
本文首先根據(jù)圖9所示行為模型以及上述關(guān)鍵計(jì)算函數(shù),基于VDEVS模型定義語言對該加工單元進(jìn)行描述,隨后加載.VDevs文件至VDEVS仿真原型系統(tǒng)中,設(shè)置仿真時(shí)間為1 h、仿真速度為6倍。模型實(shí)際運(yùn)行時(shí)間為10 min,仿真結(jié)束時(shí),系統(tǒng)處理了30個(gè)工件,仿真過程中系統(tǒng)最大產(chǎn)量為6個(gè)工件,如圖11所示。最終,各設(shè)備利用率分別為ρGenerator=50.37%、ρConveyor1=46.96%、ρRobot=63.1%,ρProcessor1=40.8%,ρProcessor2=39.51%,ρConveyor2=69.04%,ρSink=43.92%,如圖12所示。
數(shù)字孿生車間虛擬實(shí)體行為模型是虛擬車間建立的關(guān)鍵,然而當(dāng)前對該行為模型缺乏準(zhǔn)確、清晰、層次化的描述,導(dǎo)致數(shù)字孿生車間虛擬實(shí)體建模效率低下,可擴(kuò)展性不高。針對虛擬車間定義行為模型定義不精確的問題,提出了虛擬實(shí)體分層模型和基于VDEVS的行為模型描述方法。本文首先基于五維模型提出了數(shù)字孿生虛擬車間分層模型與兩種新的離散事件系統(tǒng)時(shí)間變量確定方法,隨后基于這兩種方法對傳統(tǒng)DEVS進(jìn)行了擴(kuò)展,在保持該建模方法對模型層次化、模塊化描述的同時(shí)擴(kuò)展了其數(shù)據(jù)處理能力以及與物理實(shí)體的數(shù)據(jù)交互能力,進(jìn)而提出了VDEVS。為了減少因模型定義模糊而導(dǎo)致的虛擬車間行為描述歧義,便于開發(fā)可復(fù)用的應(yīng)用,通過數(shù)學(xué)集合語言對虛擬車間進(jìn)行了層次化、模塊化的形式描述,最后給出了實(shí)例描述。
由于傳統(tǒng)DEVS的仿真引擎中對于事件的同步基于原子模型的時(shí)間推進(jìn)函數(shù),而本文將該函數(shù)移除,傳統(tǒng)DEVS的仿真引擎不再適用,下一步工作將對模型仿真引擎執(zhí)行語義進(jìn)行形式化描述,使虛擬車間行為模型能夠進(jìn)行準(zhǔn)確的仿真。