欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種從Simulink模型轉(zhuǎn)換至UML模型的方法

文檔序號:6514718閱讀:653來源:國知局
一種從Simulink模型轉(zhuǎn)換至UML模型的方法
【專利摘要】本發(fā)明提供了一種從Simulink模型轉(zhuǎn)換至UML模型的方法,通過建立Simulink模型的模型元素和UML模型的模型元素之間的對應(yīng)關(guān)系,建立Simulink源元模型架構(gòu)和UML目標(biāo)元模型架構(gòu),從而根據(jù)Simulink源元模型和UML目標(biāo)元模型確定Simulink模型轉(zhuǎn)換至UML模型的轉(zhuǎn)換方法。本發(fā)明確定了Simulink模型元素與UML模型元素的對應(yīng)關(guān)系,簡化了模型轉(zhuǎn)換的復(fù)雜性,解決了在CPS系統(tǒng)中,通用建模過程領(lǐng)域細(xì)化問題和計算過程和物理過程融合的問題,解決了Simulink在需求建模上的弱勢以及UML模型在表達(dá)控制,算法建模方面的缺陷,兩者優(yōu)勢互補(bǔ),揚(yáng)長避短,提高模型開發(fā)的效率。
【專利說明】—種從S i mu I i nk模型轉(zhuǎn)換至UML模型的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種信息物理融合系統(tǒng),尤其是一種模型轉(zhuǎn)換的方法。
【背景技術(shù)】
[0002]信息物理融合系統(tǒng)(Cyber-Physical System, CPS)是指在環(huán)境感知的基礎(chǔ)上,深度融合了 3C的網(wǎng)絡(luò)化物理設(shè)備系統(tǒng),它通過計算過程和物理過程相互影響的反饋循環(huán)實現(xiàn)深度融合和實時交互,以安全、可靠、高效和實時的方式監(jiān)測或者控制物理實體,其目的是實現(xiàn)信息世界和物理世界的深度融合。按照功能和系統(tǒng)屬性劃分,CPS —體化模型可以劃分為物理實體、計算實體和交互實體。物理實體是指物理過程及其深度嵌入的物理環(huán)境,其過程主要表示為在連續(xù)時間域所遵循的物理規(guī)則,采用基于時間推進(jìn)的動態(tài)連續(xù)仿真模型對物理實體進(jìn)行刻畫;計算實體主要指CPS的計算單元和控制單元,其過程主要表示為數(shù)據(jù)處理和邏輯控制,采用基于事件驅(qū)動的動態(tài)離散仿真模型對計算實體進(jìn)行刻畫;交互實體往往由物理構(gòu)件或計算構(gòu)件組成,主要描述它們的組合特性、交互接口規(guī)則、融合關(guān)系和行為特性。
[0003]模型驅(qū)動開發(fā)方法(Model Driven Development,簡稱MDD)能夠在早期階段對系統(tǒng)進(jìn)行分析與驗證,有助于保證系統(tǒng)的質(zhì)量屬性,并有效控制開發(fā)時間與成本。模型轉(zhuǎn)換為模型驅(qū)動涉及開發(fā)方法的核心,它是指將一種語言描述的模型轉(zhuǎn)換成另外一種語言描述的模型。它被認(rèn)為是基于模型驅(qū)動的復(fù)雜嵌入式實時系統(tǒng)設(shè)計與實現(xiàn)的基礎(chǔ)。
[0004]Simulink模型主要用來刻畫基于時間推進(jìn)的連續(xù)動態(tài)過程,UML模型主要用來刻畫基于事件驅(qū)動的離散行為過程。采用UML對計算實體的靜態(tài)結(jié)構(gòu)仿真建模和基于離散事件驅(qū)動的動態(tài)行為仿真建模,以及采用Simulink對物理實體的動態(tài)連續(xù)行為仿真建模已成為工程試驗的主流。但是CPS的異構(gòu)性,表現(xiàn)在Simulink和UML的異構(gòu)性,使得CPS物理實體和計算實體的融合面對很大的挑戰(zhàn)。
[0005]目前已有很多基于Simulink和UML的協(xié)同仿真建模方法。德國Fraunhofer研究機(jī)構(gòu)通過擴(kuò)展UML Profile實現(xiàn)UML和Simulink在嵌入式實時領(lǐng)域的協(xié)同仿真,荷蘭Nijmegen大學(xué)通過擴(kuò)展UML在執(zhí)行時間方面的表達(dá)能力實現(xiàn)UML和Simulink在嵌入式實時領(lǐng)域的同步仿真,德國EXTESSY機(jī)構(gòu)將UML和Simulink模型代碼集成到一個統(tǒng)一的系統(tǒng)架構(gòu)中在代碼級實現(xiàn)Simulink和UML的協(xié)同仿真。
[0006]但是這些集成方法都沒有從根本上解決Simulink和UML的融合問題,CPS物理實體和計算實體的異構(gòu)性,表現(xiàn)為Simulink和UML模型元素本質(zhì)上的區(qū)別,使得這些協(xié)同仿真方法不能滿足CPS系統(tǒng)深度融合的要求。

【發(fā)明內(nèi)容】

[0007]為了克服現(xiàn)有技術(shù)的不足,針對以上問題,本發(fā)明提出了以Simulink模型對物理實體進(jìn)行仿真建模,以UML模型對計算實體進(jìn)行仿真建模,在兩層模型之間采用模型轉(zhuǎn)換方法,使用模型轉(zhuǎn)換工具實現(xiàn)Simulink物理模型到UML計算模型的轉(zhuǎn)換,完成CPS系統(tǒng)計算-物理實體一體化的協(xié)同仿真。
[0008]本發(fā)明要解決上述Simulink模型和UML模型的異構(gòu)問題,提供一種從Simulink模型轉(zhuǎn)換至UML模型的轉(zhuǎn)換方法。
[0009]本發(fā)明解決其技術(shù)問題所釆用的技術(shù)方案,包括如下步驟:
[0010]I)建立Simulink模型的模型元素和UML模型的模型元素之間的對應(yīng)關(guān)系
[0011]針對Simulink模型中的基本模型元素原子模塊Primitive Block、子系統(tǒng)模塊SubSystem Block、連線Line/Branch和端口 Port,通過ATL轉(zhuǎn)換規(guī)則實現(xiàn)模型元素之間一一對應(yīng)的轉(zhuǎn)換,分別將其對應(yīng)轉(zhuǎn)換為UML模型的模型元素類Class、含子模塊的類ClassContained Blocks、連接器 Connector、流端口 Flowport ;
[0012]2)建立Simulink源元模型架構(gòu)和UML目標(biāo)元模型架構(gòu)
[0013]建立Simulink源元模型架構(gòu),Simulink源元模型包括原子模塊和含子系統(tǒng)模塊的元模型EBlock、端口的元模型EPort、連線的元模型ELine、參數(shù)的元模型EParameter和函數(shù)的元模型EFunction,建立Simulink源元模型架構(gòu),EBlock和EParameter之間釆用聚合關(guān)系,一個EBlock可以包含多個EParameter ;EBlock和EFunction之間釆用聚合關(guān)系,一個EBlock可以包含多個EFunction ;EBlock和EPort之間米用聚合關(guān)系,一個EBlock可以包含多個EPort ;ELine和EPort之間釆用聚合關(guān)系,一個ELine可以包含多個EPort ;
[0014]建立UML目標(biāo)元模型架構(gòu),UML目標(biāo)元模型包括類和含子模塊的類的元模型EClass、連接器的元模型EConnector、流端口的元模型EFlowport、屬性的元模型EAttribute和操作的兀模型EOperation ;建立UML目標(biāo)兀模型架構(gòu),EClass和EAttribute之間釆用聚合關(guān)系,一個EClass可以包含多個EAttribute ;EClass和EOperation之間釆用聚合關(guān)系,一個EClass可以包含多個EOperation ;EConnector和EFlowport之間米用聚合關(guān)系,一個EConnector可以包含多個EFlowport ;
[0015]建立Simulink基本元素元模型的ecore結(jié)構(gòu):根據(jù)Simulink源元模型架構(gòu),定義ecore結(jié)構(gòu)中包含五個類,分別是Block、Parameter、Function、Port、Line ;類Block中的變量有函數(shù)functions、輸入?yún)?shù)srcBlkParams、輸出參數(shù)dstBlkParams、流入端口 srcBlkPorts 和流出端口 dstBlkPorts,functions 的類型為 Function,srcBlkParams 和 dstBlkParams 的類型為 Parameter,srcBlkPorts 和 dstBlkPorts 的類型為 Port ;類 Parameter 的變量有 Parameter 所在模塊 blockParameter,blockParameter的類型為Block,當(dāng)Parameter是輸入數(shù)據(jù)時,blockParameter表示數(shù)據(jù)來源模塊 srcBlockParameter,當(dāng) Parameter 是輸出數(shù)據(jù)時,blockParameter 表不數(shù)據(jù)到達(dá)模塊dstBlockParameter ;類Function中的變量有Function所在模塊blockFunction, blockFunction的類型為Block ;類Port中的變量包含Port所在模塊blockPort和Port所關(guān)聯(lián)的連線linePort,blockPort的類型為Block,當(dāng)Port是輸入數(shù)據(jù),blockPort是輸入模塊srcBlockPort,當(dāng)Port是輸出數(shù)據(jù),blockPort是輸出模塊dstBlockPort,linePort的類型為Line,當(dāng)Port是輸入數(shù)據(jù),連線為輸入連線srcLinePort,當(dāng)Port是輸出數(shù)據(jù),連線為輸出連線dstLinePort ;Line中的變量有連線相關(guān)聯(lián)的端口 portLine,portLine的類型為Port,Line兩端連接兩個端口,根據(jù)數(shù)據(jù)輸入還是數(shù)據(jù)輸出,可分為輸入端口 srcLnPorts和輸出端口 dstLnPorts ;
[0016]建立UML基本元素元模型的ecore結(jié)構(gòu):根據(jù)UML目標(biāo)元模型架構(gòu),定義ecore結(jié)構(gòu)中包含五個類,分別是 Class、Attribute、Operation、Flowport 和 Connector ;類 Class中的變量有參數(shù)、操作、端口,參數(shù)的類型為Attribute,操作的類型為Operation,端口的類型為 Flowport ;類 Arrtibute 中的變量有屬性所在類 classAttribute,classAttribute的類型為Class ;類Operation中的變量有操作所在類classOperation,classOperation的類型為Operation ;類Flowport中的變量有端口所在類classFlowport和Flowport相關(guān)聯(lián)的連接器 conncetorFlowport,classFlowport 的類型為 Class, conncetorFlowport 的類型為Connector, Flowport方向的類型為EString,當(dāng)Flowport是輸入端口時,Flowport方向為“IN”,當(dāng)Flowport是輸出端口時,F(xiàn)lowport方向為“OUT” ;類Connector中的變量有 Connector 相關(guān)聯(lián)的端口 f 1wportConnector, f 1wportConnector 的類型為 Flowport ;
[0017]3)根據(jù)Simulink源元模型和UML目標(biāo)元模型確定Simulink模型轉(zhuǎn)換至UML模型的轉(zhuǎn)換方法
[0018]將Simulink模型中的Block使用ATL轉(zhuǎn)換規(guī)則轉(zhuǎn)換為UML中的Class,當(dāng)Simulink模型中出現(xiàn)環(huán)時,將環(huán)視為一個Block,將Block中的參數(shù)、函數(shù)、端口及其Block本身的名字和類型信息,分別對應(yīng)轉(zhuǎn)換為Class中的屬性、操作、流端口和Class的名字和類型信息;其中,Simulink參數(shù)到UML屬性的轉(zhuǎn)換,包括參數(shù)名稱的轉(zhuǎn)換和參數(shù)對應(yīng)的類的信息的轉(zhuǎn)換,包括 srcBlockParameter 和 dstBlockParameter 到 classAttribute 的轉(zhuǎn)換;Simulink函數(shù)到UML操作的轉(zhuǎn)換,包括操作操作名字的轉(zhuǎn)換,和操作對應(yīng)的類的信息的轉(zhuǎn)換,包括blockFunction到classOperation的轉(zhuǎn)換;Simulink端P到UML流端P的轉(zhuǎn)換,包括端口名字的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,其中,srcBlkPorts對應(yīng)的流端口方向為“IN”,dstBlkPorts對應(yīng)的流端口方向為“OUT” ;確定Simulink模型元素Line到UML模型元素Connector的轉(zhuǎn)換,包括Line名字的轉(zhuǎn)換,和Line連接的端口 srcLnPorts和dstLnPorts的轉(zhuǎn)換,srcLnPorts和dstLnPorts的轉(zhuǎn)換包括端口名字的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,srcLnPorts對應(yīng)的流端口方向為“IN”,dstLnPorts對應(yīng)的流端口方向為“OUT”,在此實現(xiàn)了 Simulink模型到UML模型的轉(zhuǎn)換,解決了 CPS領(lǐng)域計算過程和物理過程融合的問題。
[0019]本發(fā)明的有益效果是由于分析了 Simulink模型和UML模型的模型元素,確定了Simulink模型元素與UML模型元素的對應(yīng)關(guān)系,簡化了對復(fù)雜模型的分析:
[0020]1.本發(fā)明分析了 Simulink元模型和UML元模型的結(jié)構(gòu),設(shè)計了 Simulink源元模型和UML目標(biāo)元模型的架構(gòu),簡化了模型轉(zhuǎn)換的復(fù)雜性;
[0021]2.本發(fā)明中的模型轉(zhuǎn)換策略的目標(biāo)模型為UML模型,由于Simulink擅長描述基于時間推進(jìn)的連續(xù)過程,UML則用于描述基于離散事件驅(qū)動的過程,該模型轉(zhuǎn)換策略的出現(xiàn),解決了在CPS系統(tǒng)中,通用建模過程領(lǐng)域細(xì)化的問題以及計算過程和物理過程融合的問題。
[0022]3.同時解決了 Simulink在需求建模上的弱勢,以及UML模型在表達(dá)控制,算法建模方面的缺陷,將兩者優(yōu)勢互補(bǔ),揚(yáng)長避短,以提高模型開發(fā)的效率。
【專利附圖】

【附圖說明】
[0023]圖1是模型轉(zhuǎn)換的總體框架。
[0024]圖2是Simulink基本元素元模型結(jié)構(gòu)定義圖。[0025]圖3是UML基本元素元模型結(jié)構(gòu)定義圖;
[0026]圖4是Simulink模型例圖,其中,In1、In2表示輸入端口,Outl表示輸出端口,Linel> Line2、Line3、Line4、Line5 表不連線,Integrator 表不積分器模塊,Integrator>Line2、Line4和加法器組成子系統(tǒng)模塊SubSystem, Add表示原子模塊,用來實現(xiàn)加法運(yùn)算。
[0027]圖5 是 UML 模型例圖,itsSubSystem:SubSystem、itsSum:Sum 表不類,inAttributel、inAttribute2、inAttribute3、outAttributel、outAttribute2 表不屬性,double為屬性的類型,In1、In2、In3、Outl、0ut2表示流端口,Line2表示連接器。
[0028]圖6是UML模型中類的狀態(tài)圖。其中(a)是UML模型例圖中SubSystem的狀態(tài)圖,Active為狀態(tài)的名字,tm(100)表示時間事件,每100ms觸發(fā)一次,SubSystemFunctionO表示操作,(b)是UML模型例圖中Sum的狀態(tài)圖,Active表示狀態(tài)的名字,tm(100)表示時間事件,每IOOms觸發(fā)一次,SumFunction O表示操作。
【具體實施方式】
[0029]下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明。
[0030]本發(fā)明涉及到一個Simulink到UML的模型轉(zhuǎn)換工具,該模型轉(zhuǎn)換工具對任意Simulink模型,都能自動將其轉(zhuǎn)換到相應(yīng)的UML模型。模型轉(zhuǎn)換的總體框架如圖1所示。
[0031]轉(zhuǎn)換方法的步驟為:
[0032]I)建立Simulink模型的模型元素和UML模型的模型元素之間的對應(yīng)關(guān)系
[0033]針對Simulink模型中的基本模型元素原子模塊Primitive Block、子系統(tǒng)模塊SubSystem Block、連線Line/Branch和端口 Port,通過ATL轉(zhuǎn)換規(guī)則實現(xiàn)模型元素之間一一對應(yīng)的轉(zhuǎn)換,分別將其對應(yīng)轉(zhuǎn)換為UML模型的模型元素類Class、含子模塊的類ClassContained Blocks、連接器 Connector、流端口 Flowport ;
[0034]該模型轉(zhuǎn)換工具,基于ATL模型轉(zhuǎn)換技術(shù),要完成模型該轉(zhuǎn)換工具,定義源語言Simulink與目標(biāo)語言UML的元模型,元模型是以面向?qū)ο蟮乃枷朊枋鲆环N語言的語法結(jié)構(gòu),從而使模型轉(zhuǎn)換時,能根據(jù)其相應(yīng)的語法元素,進(jìn)行相對應(yīng)的轉(zhuǎn)換。針對模型轉(zhuǎn)換的特點,使用了 KM3重新描述了 Simulink和UML的元模型語法結(jié)構(gòu)。
[0035]2)建立Simulink源元模型架構(gòu)和UML目標(biāo)元模型架構(gòu)
[0036]建立Simulink源元模型架構(gòu),Simulink源元模型包括原子模塊和含子系統(tǒng)模塊的元模型EBlock、端口的元模型EPort、連線的元模型ELine、參數(shù)的元模型EParameter和函數(shù)的元模型EFunction,建立Simulink源元模型架構(gòu),EBlock和EParameter之間采用聚合關(guān)系,一個EBlock可以包含多個EParameter ;EBlock和EFunction之間采用聚合關(guān)系,一個EBlock可以包含多個EFunction ;EBlock和EPort之間米用聚合關(guān)系,一個EBlock可以包含多個EPort ;ELine和EPort之間采用聚合關(guān)系,一個ELine可以包含多個EPort ;聚合關(guān)系如附圖2所示。
[0037]建立UML目標(biāo)元模型架構(gòu),UML目標(biāo)元模型包括類和含子模塊的類的元模型EClass、連接器的元模型EConnector、流端口的元模型EFlowport、屬性的元模型EAttribute和操作的兀模型EOperation ;建立UML目標(biāo)兀模型架構(gòu),EClass和EAttribute之間采用聚合關(guān)系,一個EClass可以包含多個EAttribute ;EClass和EOperation之間采用聚合關(guān)系,一個EClass可以包含多個EOperation ;EConnector和EFlowport之間米用聚合關(guān)系,一個EConnector可以包含多個EFlowport ;聚合關(guān)系如附圖3所示。
[0038]建立Simulink基本元素元模型的ecore結(jié)構(gòu):根據(jù)Simulink源元模型架構(gòu),定義ecore結(jié)構(gòu)中包含五個類,分別是Block、Parameter、Function、Port、Line ;類Block中的變量有函數(shù)functions、輸入?yún)?shù)srcBlkParams、輸出參數(shù)dstBlkParams、流入端口 srcBlkPorts 和流出端口 dstBlkPorts,functions 的類型為 Function,srcBlkParams 和 dstBlkParams 的類型為 Parameter,srcBlkPorts 和 dstBlkPorts 的類型為 Port ;類 Parameter 的變量有 Parameter 所在模塊 blockParameter,blockParameter的類型為Block,當(dāng)Parameter是輸入數(shù)據(jù)時,blockParameter表示數(shù)據(jù)來源模塊 srcBlockParameter,當(dāng) Parameter 是輸出數(shù)據(jù)時,blockParameter 表不數(shù)據(jù)到達(dá)模塊dstBlockParameter ;類Function中的變量有Function所在模塊blockFunction, blockFunction的類型為Block ;類Port中的變量包含Port所在模塊blockPort和Port所關(guān)聯(lián)的連線linePort,blockPort的類型為Block,當(dāng)Port是輸入數(shù)據(jù),blockPort是輸入模塊srcBlockPort,當(dāng)Port是輸出數(shù)據(jù),blockPort是輸出模塊dstBlockPort,linePort的類型為Line,當(dāng)Port是輸入數(shù)據(jù),連線為輸入連線srcLinePort,當(dāng)Port是輸出數(shù)據(jù),連線為輸出連線dstLinePort ;Line中的變量有連線相關(guān)聯(lián)的端口 portLine,portLine的類型為Port,Line兩端連接兩個端口,根據(jù)數(shù)據(jù)輸入還是數(shù)據(jù)輸出,可分為輸入端口 srcLnPorts和輸出端口 dstLnPorts ;
[0039]建立UML基本元素元模型的ecore結(jié)構(gòu):根據(jù)UML目標(biāo)元模型架構(gòu),定義ecore結(jié)構(gòu)中包含五個類,分別是 Class、Attribute、Operation、Flowport 和 Connector ;類 Class中的變量有參數(shù)、操作、端口,參數(shù)的類型為Attribute,操作的類型為Operation,端口的類型為 Flowport ;類 Arrtibute 中的變量有屬性所在類 classAttribute,classAttribute的類型為Class ;類Operation中的變量有操作所在類classOperation,classOperation的類型為Operation ;類Flowport中的變量有端口所在類classFlowport和Flowport相關(guān)聯(lián)的連接器 conncetorFlowport,classFlowport 的類型為 Class, conncetorFlowport 的類型為Connector, Flowport方向的類型為EString,當(dāng)Flowport是輸入端口時,Flowport方向為“IN”,當(dāng)Flowport是輸出端口時,F(xiàn)lowport方向為“OUT” ;類Connector中的變量有 Connector 相關(guān)聯(lián)的端口 f 1wportConnector, f 1wportConnector 的類型為 Flowport ;
[0040]3)根據(jù)Simulink源元模型和UML目標(biāo)元模型確定Simulink模型轉(zhuǎn)換至UML模型的轉(zhuǎn)換方法
[0041]將Simulink模型中的Block使用ATL轉(zhuǎn)換規(guī)則轉(zhuǎn)換為UML中的Class,當(dāng)Simulink模型中出現(xiàn)環(huán)時,將環(huán)視為一個Block,將Block中的參數(shù)、函數(shù)、端口及其Block本身的名字和類型信息,分別對應(yīng)轉(zhuǎn)換為Class中的屬性、操作、流端口和Class的名字和類型信息。其中,Simulink參數(shù)到UML屬性的轉(zhuǎn)換,包括參數(shù)名稱的轉(zhuǎn)換和參數(shù)對應(yīng)的類的信息的轉(zhuǎn)換,包括 srcBlockParameter 和 dstBlockParameter 到 classAttribute 的轉(zhuǎn)換;Simulink函數(shù)到UML操作的轉(zhuǎn)換,包括操作操作名字的轉(zhuǎn)換,和操作對應(yīng)的類的信息的轉(zhuǎn)換,包括blockFunction到classOperation的轉(zhuǎn)換;Simulink端P到UML流端P的轉(zhuǎn)換,包括端口名字的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,其中,srcBlkPorts對應(yīng)的流端口方向為’ IN,,dstBlkPorts對應(yīng)的流端口方向為’ OUT,。確定Simulink模型元素Line到UML模型元素Connector的轉(zhuǎn)換,包括Line名字的轉(zhuǎn)換,和Line連接的端口 srcLnPorts和dstLnPorts的轉(zhuǎn)換,srcLnPorts和dstLnPorts的轉(zhuǎn)換包括端口名字的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,srcLnPorts對應(yīng)的流端口方向為“IN”,dstLnPorts對應(yīng)的流端口方向為“OUT”,在此實現(xiàn)了 Simulink模型到UML模型的轉(zhuǎn)換,解決了 CPS領(lǐng)域計算過程和物理過程融合的問題。
[0042]以圖4中的Simulink模型為例,具體轉(zhuǎn)換方法為:
[0043]a、定義已知Simulink模型要轉(zhuǎn)換到的UML模型的名稱
[0044]b、確定Simulink參數(shù)所在的模塊信息,獲取模塊的名字
[0045]判斷是否定義了srcBlockParameter,若定義了,則通過 srcBlockParameter獲取對應(yīng)Block的名字,若沒有,則通過dstBlockParameter獲取對應(yīng)Block的名字;否貝1J,需要自己定義;根據(jù)Simulink實施例,子Block SubSystem定義了srcBlockParameterInAttribute2,則 InAttribute2 對應(yīng)的模塊的名字為 SubSystem,如圖5所示,類似,InAttributel對應(yīng)的模塊的名字為Sum。
[0046]C、確定Simulink函數(shù)所在的模塊信息,獲取模塊的名字
[0047]判斷是否定義了 blockFunction,若定義了,則通過blockFunction獲取對應(yīng)Block的名字,若沒有,則不進(jìn)行任何操作;否則,需要自己定義;根據(jù)Simulink實施例,子Block SubSystem 定義了 blockFunction SubSystemFunction,則 SubSystemFunction 對應(yīng)的模塊的名字為SubSystem,如圖5所示。
[0048]d、將Simulink模 型中的Block轉(zhuǎn)換為UML中的Class,當(dāng)Simulink模型中出現(xiàn)環(huán)時,將環(huán)視為一個block。
[0049]獲取Block中的所有參數(shù)、函數(shù)、端口及其Block本身信息(名字、類型),分別轉(zhuǎn)換為Class中的屬性、操作、流端口和Class的信息(名字、類型);如Simulink實施例中,BlockSubSystem轉(zhuǎn)換為 UML 類 SubSystem,Sum 轉(zhuǎn)換為 UML 類 Sum,類型為 Add。其中,Simulink 參數(shù)到UML屬性的轉(zhuǎn)換,包括參數(shù)信息(參數(shù)名稱等)的轉(zhuǎn)換,和參數(shù)對應(yīng)的類的信息的轉(zhuǎn)換,包括 srcBlockParameter 和 dstBlockParameter 到 classAttribute 的轉(zhuǎn)換;如 SimulinkBlock SubSystem 中 srcBlkParams inAttribute2 和 dstBlkParams outAttribute2 轉(zhuǎn)換為 UML Class Subsystem 中的 attributes inAttribute2 和 outAttribute2。 Simulink函數(shù)到UML操作的轉(zhuǎn)換,包括操作信息(操作名字等)的轉(zhuǎn)換,和操作對應(yīng)的類的信息的轉(zhuǎn)換,包括 blockFunction 到 classOperation 的轉(zhuǎn)換;如 Simulink Block Sum 中 functionsSumFunction 轉(zhuǎn)換為 UML Class Sum 中的 operationsSumFunction。Simulink 端口 到UML流端口的轉(zhuǎn)換,包括端口信息的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,其中,srcBlkPorts對應(yīng)的流端口方向為“IN”,dstBlkPorts對應(yīng)的流端口方向為“OUT”;如Simulink Block Sum的srcBlkPorts Inl 轉(zhuǎn)換為 UML Class Sun^classFlowports Inl,并且 f 1wportDirection為“IN”。確定Simulink模型元素Line到UML模型元素Connector的轉(zhuǎn)換,包括Line信息的轉(zhuǎn)換,和 Line 連接的端口 srcLnPorts 和 dstLnPorts 的轉(zhuǎn)換,srcLnPorts 和 dstLnPorts的轉(zhuǎn)換包括端口信息的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,srcLnPorts對應(yīng)的流端口方向為“IN”,dstLnPorts對應(yīng)的流端口方向為“0UT”,如Simulink中的Line2轉(zhuǎn)換為UML ConnectorLine2,其 dstLnPorts In3 轉(zhuǎn)換為 UMLClass 中的 flowports In3,f1wportDirection 為“OUT”。
[0050]e、將Simulink模型的兀模型和步驟2)中定義的Simulink ecore模型、UML ecore模型及由步驟3)中轉(zhuǎn)換方法編寫的轉(zhuǎn)換規(guī)則加載到模型轉(zhuǎn)換器中,配置運(yùn)行環(huán)境,生成對應(yīng)的UML模型的元模型
[0051]Simulink模型的元模型由Simulink模型得到。Simulink模型的數(shù)據(jù)在項目文件夾下以XML文件形式進(jìn)行保存,所以需要通過處理XML文件,將其還原成為符合Simulink源元模型架構(gòu)的.xmi文件。UML模型的元模型是符合UML目標(biāo)元模型架構(gòu)的.xmi模型描述文件。
[0052]為UML模型綁定狀態(tài)圖,根據(jù)Simulink模型數(shù)據(jù)信息設(shè)定采樣時間,提取由Simulink/RTW(Real-Time Workshop,實時工具)生成的 Simulink 模型的 C/C++代碼中的函數(shù)SimulinkFunctionO,添加到UML狀態(tài)圖中,如圖6分別提取Simulink實施例模型的C/C++代碼中的函數(shù) SubSystemFunctionO 和 SumFunctionO。
【權(quán)利要求】
1.一種從Simulink模型轉(zhuǎn)換至UML模型的方法,其特征在于包括如下步驟: 1)建立Simulink模型的模型元素和UML模型的模型元素之間的對應(yīng)關(guān)系 針對Simulink模型中的基本模型元素原子模塊Primitive Block、子系統(tǒng)模塊SubSystem Block、連線Line/Branch和端口 Port,通過ATL轉(zhuǎn)換規(guī)則實現(xiàn)模型元素之間一一對應(yīng)的轉(zhuǎn)換,分別將其對應(yīng)轉(zhuǎn)換為UML模型的模型元素類Class、含子模塊的類ClassContained Blocks、連接器 Connector、流端口 Flowport ; 2)建立Simulink源元模型架構(gòu)和UML目標(biāo)元模型架構(gòu) 建立Simulink源元模型架構(gòu),Simulink源元模型包括原子模塊和含子系統(tǒng)模塊的元模型EBlock、端口的元模型EPort、連線的元模型ELine、參數(shù)的元模型EParameter和函數(shù)的元模型EFunction,建立Simulink源元模型架構(gòu),EBlock和EParameter之間釆用聚合關(guān)系,一個EBlock可以包含多個EParameter ;EBlock和EFunction之間米用聚合關(guān)系,一個EBlock可以包含多個EFunction ;EBlock和EPort之間米用聚合關(guān)系,一個EBlock可以包含多個EPort ;ELine和EPort之間釆用聚合關(guān)系,一個ELine可以包含多個EPort ; 建立UML目標(biāo)元模型架構(gòu),UML目標(biāo)元模型包括類和含子模塊的類的元模型EClass、連接器的元模型EConnector、流端口的元模型EFlowport、屬性的元模型EAttribute和操作的元模型EOperation ;建立UML目標(biāo)元模型架構(gòu),EClass和EAttribute之間釆用聚合關(guān)系,一個EClass可以包含多個EAttribute ;EClass和EOperation之間釆用聚合關(guān)系,一個EClass可以包含多個EOperation ;EConnector和EFlowport之間米用聚合關(guān)系,一個EConnector 可以包含多個 EFlowport ; 建立Simulink基本元素元模型的ecore結(jié)構(gòu):根據(jù)Simulink源元模型架構(gòu),定義ecore 結(jié)構(gòu)中包含五個類,分別是 Block、Parameter、Function、Port、Line ;類 Block 中的變量有函數(shù)functions、輸入?yún)?shù)srcBlkParams、輸出參數(shù)dstBlkParams、流入端口srcBlkPorts 和流出端口 dstBlkPorts,functions 的類型為 Function,srcBlkParams和 dstBlkParams 的類型為 Parameter,srcBlkPorts 和 dstBlkPorts 的類型為 Port ;類 Parameter 的變量有 Parameter 所在模塊 blockParameter,blockParameter 的類型為Block,當(dāng)Parameter是輸入數(shù)據(jù)時,blockParameter表示數(shù)據(jù)來源模塊 srcBlockParameter,當(dāng) Parameter 是輸出數(shù)據(jù)時,blockParameter 表不數(shù)據(jù)到達(dá)模塊dstBlockParameter ;類Function中的變量有Function所在模塊blockFunction, blockFunction的類型為Block ;類Port中的變量包含Port所在模塊blockPort和Port所關(guān)聯(lián)的連線linePort,blockPort的類型為Block,當(dāng)Port是輸入數(shù)據(jù),blockPort是輸入模塊srcBlockPort,當(dāng)Port是輸出數(shù)據(jù),blockPort是輸出模塊dstBlockPort,IinePort的類型為Line,當(dāng)Port是輸入數(shù)據(jù),連線為輸入連線srcLinePort,當(dāng)Port是輸出數(shù)據(jù),連線為輸出連線dstLinePort ;Line中的變量有連線相關(guān)聯(lián)的端口 portLine,portLine的類型為Port,Line兩端連接兩個端口,根據(jù)數(shù)據(jù)輸入還是數(shù)據(jù)輸出,可分為輸入端口 srcLnPorts和輸出端口 dstLnPorts ; 建立UML基本元素元模型的ecore結(jié)構(gòu):根據(jù)UML目標(biāo)元模型架構(gòu),定義ecore結(jié)構(gòu)中包含五個類,分別是 Class、Attribute、Operation、Flowport 和 Connector ;類 Class 中的變量有參數(shù)、操作、端口,參數(shù)的類型為Attribute,操作的類型為Operation,端口的類型為 Flowport ;類 Arrtibute 中的變量有屬性所在類 classAttribute,classAttribute 的類型為Class ;類Operation中的變量有操作所在類classOperation, classOperation的類型為Operation ;類Flowport中的變量有端口所在類classFlowport和Flowport相關(guān)聯(lián)的連接器 conncetorFlowport, classFlowport 的類型為 Class, conncetorFlowport 的類型為 Connector, Flowport 方向的類型為 EString,當(dāng) Flowport 是輸入端口時,F(xiàn)lowport 方向為“IN”,當(dāng)Flowport是輸出端口時,F(xiàn)lowport方向為“OUT” ;類Connector中的變量有Connector 相關(guān)聯(lián)的端口 f 1wportConnector, f 1wportConnector 的類型為 Flowport ; 3)根據(jù)Simulink源元模型和UML目標(biāo)元模型確定Simulink模型轉(zhuǎn)換至UML模型的轉(zhuǎn)換方法 將Simulink模型中的Block使用ATL轉(zhuǎn)換規(guī)則轉(zhuǎn)換為UML中的Class,當(dāng)Simulink模型中出現(xiàn)環(huán)時,將環(huán)視為一個Block,將Block中的參數(shù)、函數(shù)、端口及其Block本身的名字和類型信息,分別對應(yīng)轉(zhuǎn)換為Class中的屬性、操作、流端口和Class的名字和類型信息;其中,Simulink參數(shù)到UML屬性的轉(zhuǎn)換,包括參數(shù)名稱的轉(zhuǎn)換和參數(shù)對應(yīng)的類的信息的轉(zhuǎn)換,包括 srcBlockParameter 和 dstBlockParameter 到 classAttribute 的轉(zhuǎn)換;Simulink函數(shù)到UML操作的轉(zhuǎn)換,包括操作操作名字的轉(zhuǎn)換,和操作對應(yīng)的類的信息的轉(zhuǎn)換,包括 blockFunction 到 classOperation 的轉(zhuǎn)換;Simulink 端口 到 UML 流端口 的轉(zhuǎn)換,包括端口名字的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,其中,srcBlkPorts對應(yīng)的流端口方向為“ IN”,dstBlkPorts對應(yīng)的流端口方向為“OUT” ;確定Simulink模型元素Line到UML模型元素Connector的轉(zhuǎn)換,包括Line名字的轉(zhuǎn)換,和Line連接的端口 srcLnPorts和dstLnPorts的轉(zhuǎn)換,srcLnPorts和dstLnPorts的轉(zhuǎn)換包括端口名字的轉(zhuǎn)換和端口方向的轉(zhuǎn)換,srcLnPorts對應(yīng)的流端口方向為“IN”,dstLnPorts對應(yīng)的流端口方向為“OUT”,在此實現(xiàn)了 Simulink模型到UML 模型的轉(zhuǎn)換, 解決了 CPS領(lǐng)域計算過程和物理過程融合的問題。
【文檔編號】G06F17/50GK103514331SQ201310466291
【公開日】2014年1月15日 申請日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
【發(fā)明者】王宇英, 周興社, 梁東方, 李曉宇 申請人:西北工業(yè)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
唐海县| 阳江市| 正定县| 满洲里市| 隆德县| 尖扎县| 大荔县| 乌什县| 商丘市| 台北市| 佛坪县| 香河县| 普兰店市| 高要市| 含山县| 青神县| 精河县| 息烽县| 高雄市| 新宁县| 罗定市| 嘉善县| 灵丘县| 岳阳市| 红桥区| 中西区| 吴江市| 麦盖提县| 屏东市| 阿尔山市| 嘉义市| 永定县| 乃东县| 滕州市| 云南省| 潮州市| 南涧| 蓬莱市| 从江县| 皋兰县| 克山县|