官术网_书友最值得收藏!

2.2.2 DSACMS的形式化描述

DSACMS可定義為四元組DSACMS=<DataLevel,ModelLevel,SchModule,DataProcAnalyModule>。其中DataLevel表示數據層,ModelLevel表示模型層,DataProcAnalyModule為數據處理和分析模塊,SchModule為調度方法模塊。

(1)數據層

定義2.1(數據模型) 數據模型R由一組關系模式R1,…,RNR定義,記R={R1,…,RNR},關系模式Ri由屬性ARi,1,…,ARi,k定義,記Ri=(ARi,1,…,ARi,NRi)

定義K(Ri)={ARi,1,…,ARi,NRi}為R所有屬性的集合。

定義PK(Ri)?{ARi,1,…,ARi,NRi}為主鍵,用于唯一標識R所定義元組。

定義FK(Ri)?{ARi,1,…,ARi,NRi}為外鍵,用于關聯其他關系模式。

數據層包含三類數據模型,分別是制造系統在線數據模型RMS、制造系統歷史數據模型RMSRH、學習樣本數據模型RLS,記DataLevel={RMS,RMSRH,RLS}。在調度時刻t,inst(RMS)為時刻t制造系統在線數據模型RMS定義的數據庫實例,數據從MES、SCADA系統中抽取,反映制造系統當前格局,inst(RMSRH)為當前時刻制造系統運行歷史數據模型RMSRH定義的數據庫實例,包含時刻t之前一段時間(一般為一年或幾個月)的制造系統運行記錄數據,inst(RLS)為當前時刻學習樣本數據模型RLS定義的數據庫實例,其中數據通過對過去某些時刻t'(t'<t)數據庫實例inst'(RMS)和inst'(RMSRH)進行抽取、轉化、加載(Extract Transformation Loading,ETL)操作或者基于inst'(RMS)運行或優化運行面向對象仿真模型生成。

① 制造系統在線數據模型 制造系統在線數據模型RMS={Reqp,Rwa,Rop,Rrecipe,Rproc,Rstep,Rorder,Rjob},其中:

設備由Reqp=(eqp_id,recipe_id,job_id,wa_id,Aeqp,1,…,Aeqp,Ne)定義,PK(Reqp)={eqp_id},FK(Reqp)={recipe_id,job_id,wa_id}=PK(Rrecipe)∪PK(Rjob)∪PK∪(Rwa),eqp_id為設備標識,recipe_id表示設備當前處理的加工菜單,job_id表示當前加工的工件,wa_id表示設備所在加工區,Aeqp,1,…,Aeqp,Ne為設備描述屬性,描述例如設備類型、加工模式等信息。

加工區由Rwa=(wa_id,Awa,1,…,Awa,Nw)定義,PK(Rwa)={wa_id},wa_id為加工區標識,Awa,1,…,Awa,Nw為加工區描述屬性,描述加工區名稱、緩沖區隊長等信息。

工序由Rop=(op_id,Aop,1,…,Aop,No)定義,PK(Rop)={op_id},op_id為工序標識,Aop,1,…,Aop,No為工序描述屬性,描述例如工序名稱、工序描述等信息。

設備的加工菜單由Rrecipe=(recipe_id,eqp_id,op_id,Arecipe,1,…,Arecipe,Nr)定義,PK(Rrecipe)={recipe_id},FK(Rrecipe)={eqp_id,op_id}=PK(Reqp)∪PK(Rop),recipe_id為加工菜單標識,eqp_id表示菜單所屬設備,op_id表示菜單處理的工序,Arecipe,1,…,Arecipe,Nr為加工菜單描述屬性,描述了加工時間等信息。

工藝流程由Rproc=(proc_id,Aproc,1,…,Aproc,Np)定義,PK(Rproc)={proc_id},proc_id為工藝流程標識,Aproc,1,…,Aproc,Np為工藝流程描述屬性,描述例如工藝流程步驟、光刻次數等信息。

流程的工步由Rstep=(step_id,proc_id,oper_id,position,Astep,1,…,Astep,Ns)定義,PK(Rstep)={step_id},FK(Rstep)=PK(Rproc)∪PK(Rop)={proc_id,op_id},step_id為工步標識,proc_id表示工步所屬工藝流程,op_id表示工步處理的工序,position表示工步在工藝流程中的位置。Astep,1,…,Astep,Ns為工步描述屬性,描述例如前道工步、后道工步、工藝約束等信息。

訂單由Rorder=(order_id,proc_id,Aorder,1,…,Aorder,Nor)定義,PK(Rorder)={order_id},FK(Rorder)=PK(Rproc)={proc_id},order_id表示訂單標識,proc_id表示訂單所需的工藝流程,Aorder,1,…,Aorder,Nor為訂單描述屬性,描述例如訂單到達時間、訂單數量、交貨期、已投料數量、預計投料時間、投料數量以及其他訂單相關外部因素等信息。

工件由Rjob=(job_id,order_id,eqp_id,wa_id,step_id,Ajob,1,…,Ajob,Nj)定義,PK(Rjob)={job_id },FK(Rjob)={order_id,eqp_id,wa_id,step_id}=PK(Rorder)∪PK(Reqp)∪PK(Rwa)∪PK(Rstep),job_id為工件標識,order_id表示工件所屬訂單,eqp_id表示正在加工工件的設備,wa_id表示工件所在加工區,step_id表示工件當前加工工步(當工件正在加工)或下一工步(當工件在等待加工),Ajob,1,…,Ajob,Nj為工件描述屬性,描述例如工件當前狀態等信息。

② 制造系統運行歷史數據模型 制造系統運行歷史數據從設備運行歷史信息和工件運行歷史信息兩個角度來刻畫,定義RMSRH={Rerh,Rjrh},其中:

設備運行歷史由Rerh=(eqp_id,event_type,begin_time,end_time,Aerh,1,…,Aerh,Nerh)定義,eqp_id為設備標識,event_type表示設備所處狀態,例如加工、維護、故障、測試等,begin_time為狀態開始時間,end_time為狀態結束時間。Aerh,1,…,Aerh,Nerh為狀態描述屬性,例如加工模式、故障類型等信息。

工件運行歷史由Rjrh=(job_id,event_type,begin_time,end_time,Ajrh,1,…,Ajrh,Njrh)定義,job_id為工件標識,event_type表示工件所處狀態,例如加工、等待、試片、返工等,begin_time為狀態開始時間,end_time為狀態結束時間。Ajrh,1,…,Ajrh,Njrh為狀態描述屬性,例如工藝參數設置等。

③ 學習樣本數據模型 學習樣本數據是構造數據驅動模型的基礎,定義RLS={RP,RUNC,RAS},RLS中關系模式的屬性可從RMSRMSRH使用ETL得到,ETL∈DataProcAnalyModule是由一組關系代數操作組成的集合,用于抽取RLS中屬性值。

不確定因素樣本數據模型為關系模式集合:

RUNC={Runc=(Xunc,1,…,Xunc,Nunc,Yunc)|unc∈UNC},其中,UNC為制造系統中存在不確定因素的集合,例如設備加工時間、設備故障、緊急訂單等。Xunc=(Xunc,1,…,Xunc,Nunc)=ETLXunc(RMS,RERH,RJRH),是表征不確定因素unc影響因素的屬性集(向量),描述例如設備連續運行時間、設備切換加工菜單頻率、設備故障、設備保養等信息,ETLXunc∈ETL為抽取unc影響因素屬性的關系代數,Yunc=ETLYunc(RMS,RERH,RJRH)為不確定因素發生的結果屬性(變量),描述例如設備是否發生故障等信息,ETLXunc∈ETL為抽取unc結果屬性的關系代數。

性能指標預測樣本數據模型RP=(Xse,1,…,Xse,Nse,Xsch,1,…,Xsch,Nsch,Yp1,…,Yp,NP),其中,Xse=(Xse,1,…,Xse,Nse)=ETLXse(RMS)是表示制造系統當前調度環境的屬性集(向量),例如在制品分布、緊急工件分布等,ETLXse∈ETL表示抽取調度環境屬性的關系代數操作。Xsch=(Xsch,1,…,Xsch,Nsch)表示調度方法設置方案的屬性集(向量),例如調度方法分配(按設備或加工區)。Ypi表示制造系統在調度環境Xse下采用調度方法設置方案Xsch得到的性能指標屬性(變量),描述例如準時交貨率、平均加工周期等調度性能指標。

自適應調度樣本數據模型為關系模式集合:

{RAS,pi=(Xse,1,…,Xse,Nse,Ysch,1,…,Ysch,Nsch)|pi∈P},其中,Ysch=(Ysch,1,…,Ysch,Nsch)表示在調度環境Xse下優化性能指標pi的調度方法設置方案的屬性集(向量)。

(2)模型層

ModelLevel=(OOSMMS,DDPMMS)

① 制造系統面向對象模型 制造系統的面向對象仿真模型(Object?Oriented Simulation Model,OOSMMS)是可執行的仿真模型,根據對象建模技術的定義,OOSMMS可由制造系統對象模型(CMS)、制造系統動態模型(DMS)、制造系統功能模型(FMS)從三個方面描述:

OOSMMS=(CMS,DMS,FMS)

定義2.2(對象模型) 對象模型C由一組類定義描述,C={C1,…CNC},類Ci可由四元組的形式定義,Ci=<ACi,MCi,RefCi,AggCi>,其中:

ACi為描述Ci定義對象的屬性的集合;

MCi為Ci定義對象可調用的方法集合;

RefCi為Ci定義的對象引用對象的集合,記為ci:Cj∈RefCi,即Cj定義的對象cj(cj:Cj)被Ci定義的對象引用。

AggCi包含若干組成Ci的對象集合,記為cks:Set<Ck>∈AggCi,即Ci定義的對象包含了一組由Ck定義的對象所組成的集合(cks:Set<Ck>)。

ID(ACi)?ACi為可唯一標識Ci對象的屬性集。

定義2.3(對象關系映射) ORM∈DataPreprocAnalyModule為數據模型和對象模型之間的映射C=ORM(R)。

ORM(Ri)=Ci

ORM(K(RCi)-FK(RCi))∪PK(RCi)=ACi

ORM(PK(RCi))=ID(ACi)

PK(RCj)?FK(RCi)=> ci:ORM(RCj)∈RefCi

PK(RCi)?FK(RCk)=> cks:Set<ORM(RCk)>∈AggCi

由定義2.3給定的映射機制可推導出制造系統面向對象模型的對象模型CMS,CMS描述了對象的類型和關聯,CMS由一組類定義組成。CMS={Ceqp,Cproc,Cop,Cwa,Corder,Cjob,Crecipe,Cstep},其中:

Ceqp類定義了設備對象,Ceqp=<Aeqp,Meqp,Refeqp,Aggeqp>,其中,Aeqp={eqp_id,Aeqp,1,…,Aeqp,Ne}為設備屬性的集合,eqp_id為設備標識,Aeqp,1,…,Aeqp,Ne為設備描述屬性;Refeqp={wa:Cwa,recipe:Crecipe,job:Cjob},wa為設備所在加工區,recipe為設備當前加工菜單,job為設備當前加工的工件,Aggeqp={recipes:Set<Crecipe>},recipes表示設備可處理的加工菜單集合。

Cwa類定義了加工區對象,Cwa=<Awa,Mwa,Refwa,Aggwa>,其中,Awa={wa_id,Awa,1,…,Awa,Nw}為設備屬性的集合,其中wa_id為加工區標識,Awa,1,…,Awa,Nw為描述屬性;Refwa=?,Aggwa={eqps:Set<Ceqp>,jobs:Set<Cjob>},eqps表示加工區包含的設備集合,jobs表示當前位于加工區的工件集合。

Cop類定義了工序對象,Cop=<Aop,Mop,Refop,Aggop>,其中,Aop={op_id,Aop,1,…,Aop,No}為設備屬性的集合,其中,op_id為工序標識,Aop,1,…,Aop,No為工序描述屬性;Refop=?,Aggop=?。

Crecipe類定義了加工菜單對象,Crecipe=<Arecipe,Mrecipe,Refrecipe,Aggrecipe>,其中,Arecipe={recipe_id,Arecipe,1,…,Arecipe,Nr}為加工菜單屬性的集合,其中,recipe_id為加工菜單標識,Arecipe,1,…,Arecipe,Nr為加工菜單的描述屬性;Refrecipe={eqp:Ceqp,op:Cop},eqp表示加工菜單所在的設備,op表示加工菜單處理的工序,Aggrecipe=?。

Cproc類定義了工藝流程對象,Cproc=<Aproc,Mproc,Refproc,Aggproc>,其中,Aproc={proc_id,Aproc,1,…,Aproc,Np}為工藝流程屬性的集合,其中proc_id為工藝流程標識,Aproc,1,…,Aproc,Np為工藝流程的描述屬性;Refproc=?,Aggproc={steps:Set<Cstep>}表示與工藝流程對象包含的工步。

Cstep類定義了加工步驟對象,Cstep=<Astep,Mstep,Refstep,Aggstep>,其中,Astep={step_id,position,Astep,1,…,Astep,Ns}為工步屬性的集合,其中step_id為工步標識,position為工步在其所屬的工藝流程中的位置,Astep,1,…,Astep,Ns為工步的描述屬性;Refstep={proc:Proc},proc為流程步所屬的工藝流程,Aggstep=?。

Corder類定義了訂單對象,Corder=<Aorder,Morder,Reforder,Aggorder>,其中,Aorder={order_id,Aorder,1,…,Aorder,Nor}為訂單屬性的集合,其中order_id為訂單標識,Aorder,1,…,Aorder,Nor為訂單的描述屬性;Reforder={proc:Proc},proc為完成訂單所需的工藝流程,Aggorder={jobs:Set<Cjob>}表示訂單包含的工件。

Cjob類定義了工件對象,Cjob=<Ajob,Mjob,Refjob,Aggjob>,其中,Ajob={job_id,Ajob,1,…,Ajob,Nj}為工件屬性的集合,其中job_id為工件標識,Ajob,1,…,Ajob,Nj為工件的描述屬性;Refjob={order:Corder,eqp:Ceqp,wa:Cwa,step:Cstep},Aggjob=?。

CMS定義的對象實例objt(CMS)可通過對RMS定義的數據庫實例inst(RMS)根據映射規則ORM執行轉換,記為objt(CMS)=TRF(inst(RMS)),即t時刻制造系統的在線數據模型實例,通過ORM定義的轉換TRF可得面向對象模型中對象實例及初始化。從模型驅動架構角度,模型實例之間的轉換可以從模型的定義之間的映射定義,因此,TRF可由ORM定義。如圖2?2所示。

圖2?2 數據模型與關系模型的映射與轉換

從調度的角度考察功能模型FMS,可將FMS定義如下:

當調度周期T給定時,FMS描述了調度環境Xse下采用調度方法配置Xsch與性能指標之間的映射關系,即FMS={Ypi=fpi(Xse,Xsch)|pi∈P}。

② 數據驅動預測模型 模型層中的數據驅動預測模型DDPM包含三類模型:不確定因素估計模型(UPM),性能指標預測模型(PPM),自適應調度模型(ASPM)。即DDPM=(PPM,UPM,ASPM)。DDPM通過DataProcAnalyModule中的方法利用DataLevel定義的樣本學習數據構造,preProcData∈DataProcAnalyModule為數據預處理方法,BuildPredictionModel∈DataProcAnalyModule為基于數據的預測建模方法。

OOSMMS中包含例如工件加工時間、設備故障、緊急訂單等不確定因素(UNC),為了使得OOSMMS的運行結果更為精確,可從制造系統的實際運行歷史記錄中得到一組數據驅動的不確定因素估計模型UPM表征這些不確定因素,對于unc∈UNC,其數據驅動預測模型f'unc從inst(Runc)學習得到:

  inst(Runc)={<xunc,t',yunc,t'> |xunc,t'

  =ETLXunc(inst'(RMS),inst'(RERH),inst'(RJRH)),

 yunc,t'=ETLYunc(inst'(RMS),inst'(RERH),inst'(RJRH))}

其中,xunc,t'為unc的影響因素向量Xunc的取值,yunc,t'為unc結果變量Yunc的取值。一般情況下,yunc,t'可以從歷史數據中抽取,當yunc,t'難以獲取時,亦可通過OOSMMS模擬實際制造系統運作得到。

通過preProcData對inst(Runc)進行預處理,調用數據驅動建模方法BuildPredictionModel可得不確定因素unc的數據驅動預測模型f'unc(X'unc):

Yunc=f'unc(X'unc)=BuildPredictionModel(preProcData(ins(Runc)))

其中,X'unc是經過數據預處理的規約后的unc的影響因素。

從而UPM={Yunc=f'unc(X'unc)|unc∈UNC}

當制造系統呈現大規模且制造過程復雜時,OOSMMS的運行時間較長,難以在線運行。已知OOSMMS的功能模型FMS,可從OOSMMS的運行歷史數據中得到一組數據驅動的性能指標預測模型PPM作為FMS的近似表達,通過調用PPM中的模型可以快速得到FMS的近似輸出。對于性能指標pi,其數據驅動預測模型f'pi由inst(RP)學習得到:inst(RP)={<xse,t',xsch,yp1,t',…,ypNP,t'>|xse,t'=ETLse(inst'(RMS)),ypi,t'=fpi(xse,t',xsch),pi∈P,t'<t}

其中,xse,t'為t'時刻調度環境向量Xse的取值,從數據庫實例inst'(RMS)中抽取,xsch為調度方法設置向量Xsch的取值,可以由用戶指定,亦可通過枚舉法遍歷。ypi,t'為在時刻t',調度環境為xse,t'時,采用xsch所指定的調度方法設置,以給定的調度周期T運行OOSMMS得到的性能指標pi,t'的取值。如xsch和實際制造系統采用的調度方法設置一致,則亦可直接從制造系統在t'之后T個時刻的RMSRH的數據庫實例中獲取pi的值,即從ins(t'+T)RMSRH中獲取pi,t'的值,記為pi,t'=ETLYpi(ins(t'+T)RMSRH),其中T為調度周期。

通過preProcData對inst(RP)進行預處理,進一步調用數據驅動建模方法BuildPredictionModel可得性能指標pi的數據驅動預測模型f'pi(X'se,Xsch):

Ypi=f'pi(X'se,Xsch)=BuildPredictionModel(preProcData(inst(RP)))

其中,X'se是經過數據預處理規約的調度環境向量。

從而PPM={Ypi=f'pi(X'se,Xsch)|pi∈P')

其中,P'是經過數據預處理規約的調度性能指標集。

由于制造系統的復雜性,迭代優化OOSMMS的調度方法設置無法在線完成。已知OOSMMS的功能模型FMS,可從OOSMMS的優化運行歷史數據中得到數據驅動的自適應調度模型作為優化FMS的方法。對于性能指標pi,其數據驅動自適應調度模型argmifpi(X'se,Xsch)由inst(RAS,pi)學習得到:

inst(RAS,pi)={<xse,t',ysch,t'> |ysch,t'=argmifpi(X'se,Xsch)}

其中,xse,t'為t'時刻調度環境向量Xse的取值,從數據庫實例inst'(RMS)中抽取。ysch,t'為在調度環境xse,t'下通過迭代運行OOSMMS可最優化(令最優化為最小化)調度性能指標pi的調度方法設置。ysch,t'亦可為在調度環境xse,t'下實際生產線上得到較優化調度性能指標pi的調度方法設置,即當制造系統在t't'+T時間段內性能指標pi達到較好結果(由ins(t'+T)RMSRH推斷出),則將制造系統在t'時刻采用的調度方法設置作為ysch,t'保存。

通過preProcData對inst(RAS,pi)進行預處理,進一步調用數據驅動建模方法BuildPredictionModel可得自適應優化性能指標pi的數據驅動預測模型argmifpi(X'se,Xsch):

Ysch=argmifpi(X'se,Xsch)=BuildPredictionModel(preProcData(ins(RAS))),X'se是經過數據預處理規約的調度環境變量。

由此ASPM={Ysch=argmifpi(X'se,Xsch)|pi∈P}

(3)調度方法模塊

調度方法模塊包含三類方法:生產計劃方法集(PlanMethods),生產調度方法集(SchMethods),元啟發式搜索方法集(MHS),可用下式表示:

SchModule={PlanMethods,SchMethods,MHS}

其中,PlanMethods中的方法是用于處理訂單的生產計劃方法,例如半導體制造系統中的投料策略,可以采用固定投料、基于交貨期的投料、多目標投料、智能投料等方法;SchMethods實現工件調度的生產調度方法,例如半導體制造系統中的用于計算工件優先級的實時調度規則或用于工件排序的搜索方法等。PlanMethods和SchMethods中的方法可以在OOMMS中實現,PlanMethods中的方法可以作為Corder類的成員方法實現(在Morder中實現),SchMethods中的方法可以作為Ceqp類、Cwa類或Cjob類的成員方法實現(在MeqpMwaMjob中實現)。PlanMethods和SchMethods中的方法也可封裝成構件供OOSMMS調用。OOSMMS對調度方法的設置(例如將實時調度規則按設備/加工區生產線進行分配)以一定形式編碼,由向量Xsch表示,Xsch的值可以通過枚舉遍歷或者用戶設置的方式給定,OOSMMS根據編碼規則解碼Xsch并調用相應的生產計劃方法和生產調度方法實現調度,完成加工,得到相應性能指標。當通過迭代運行OOMMS的方式生成數據驅動自適應調度模型學習樣本時,當Xsch維度較高,argmifpi(xse,t',Xsch)很難實現,因此可通過MHS提供元啟發式搜索方法,通過迭代優化運行OOMMS的方式,得到較優的Xsch值作為訓練樣本,即mhs∈MHS,使得:

mh(fpi(xse,t',Xsch))≈argmifpi(xse,t',Xsch)

(4)數據處理與分析模塊

調度方法模塊包含五類方法:抽取轉換加載方法集(ETL)、對象關系映射規則集(ORM)、數據預處理方法集(PreProcData)、預測建模方法集(BuildPredictionModel)和元啟發式優化方法集(MHO),可用下式表示:

DataProcAnalyModule={ETL,ORM,PreProcData,BuildPredictionModel,MHO}

其中,ETL中的方法用于數據模型的轉換,ORM實現制造系統在線數據模型和面向對象模型中對象模型的映射,PreProcData實現學習樣本數據的預處理,BuildPredictionModel從學習樣本學習得到數據驅動的預測模型,MHO針對PreProcData和BuildPredictionModel中的方法存在參數敏感等缺點,進行參數優化。例如,已知數據集DS,preProcDatapars∈PreProcData,pars為PreProcData所需設置的參數集,則可選用mho∈MHO,通過mho(preProcDatapars(DS))優化pars設置,提升preProcDatapars對數據預處理的質量。

主站蜘蛛池模板: 公安县| 重庆市| 桃源县| 崇明县| 濮阳县| 华阴市| 乌鲁木齐县| 淮阳县| 津市市| 崇文区| 呼伦贝尔市| 鄂托克前旗| 隆安县| 邯郸县| 昭通市| 剑川县| 天门市| 宿迁市| 盘锦市| 府谷县| 新乡市| 桦南县| 新和县| 衡南县| 来宾市| 云浮市| 馆陶县| 成武县| 肃南| 开封县| 手游| 桂阳县| 呼和浩特市| 民乐县| 曲沃县| 石棉县| 娄烦县| 宜都市| 屏山县| 平陆县| 琼结县|