国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Simulink模型到Modelica模型轉(zhuǎn)換技術(shù)

2016-11-25 20:50董政丁建完
計(jì)算機(jī)輔助工程 2016年5期

董政+丁建完

摘要: 針對(duì)Simulink模型重用到更高階的Modelica平臺(tái)上的需求,分析Simulink模型的數(shù)學(xué)本質(zhì)和代碼表達(dá),以及Modelica對(duì)外部函數(shù)和外部類(lèi)的支持,重用Simulink模型轉(zhuǎn)換生成的S-function目標(biāo)C代碼,實(shí)現(xiàn)Simulink模型到Modelica模型轉(zhuǎn)換.

關(guān)鍵詞: Simulink; S-function; Modelica; 模型轉(zhuǎn)換

中圖分類(lèi)號(hào): TP391.9 文獻(xiàn)標(biāo)志碼: B

0 引 言

隨著數(shù)字化功能樣機(jī)技術(shù)和仿真技術(shù)的發(fā)展,近幾十年來(lái)涌現(xiàn)出許多成熟的建模仿真分析工具,并廣泛應(yīng)用于機(jī)械、電子、控制等領(lǐng)域中,使得對(duì)集機(jī)械、電子、液壓、控制等多個(gè)學(xué)科領(lǐng)域子系統(tǒng)于一體的復(fù)雜產(chǎn)品的整體系統(tǒng)進(jìn)行分析成為可能.多年以來(lái),Simulink以其基本模塊的易用性和通用性,被廣泛應(yīng)用于控制系統(tǒng)的建模.同時(shí),為滿(mǎn)足物理系統(tǒng)建模,MATLAB官方和第三方均提供多種擴(kuò)展工具模塊,但是實(shí)際使用時(shí),擴(kuò)展工具模塊往往難以滿(mǎn)足使用需求.越來(lái)越多的使用者發(fā)現(xiàn)針對(duì)復(fù)雜物理系統(tǒng),Simulink存在著建模難度大并且耗費(fèi)時(shí)間多的問(wèn)題.歐洲學(xué)者針對(duì)復(fù)雜物理系統(tǒng)統(tǒng)一建模,提出多領(lǐng)域統(tǒng)一建模語(yǔ)言——Modelica語(yǔ)言,實(shí)現(xiàn)對(duì)復(fù)雜產(chǎn)品整體統(tǒng)一建模分析,并使之成為復(fù)雜系統(tǒng)建模領(lǐng)域的標(biāo)準(zhǔn).目前,Modelica語(yǔ)言已有較大的發(fā)展,針對(duì)其開(kāi)發(fā)的標(biāo)準(zhǔn)模型庫(kù)更是迅猛增長(zhǎng),已覆蓋機(jī)械、液壓、氣壓、電控、熱力和電磁等多個(gè)領(lǐng)域,并在歐美汽車(chē)、能源、動(dòng)力、機(jī)電、航空和航天等各行業(yè)獲得成功應(yīng)用.[1]

雖然Modelica的應(yīng)用已推進(jìn)復(fù)雜物理系統(tǒng)的建模和仿真發(fā)展,但是控制系統(tǒng)工程師依然習(xí)慣利用Simulink進(jìn)行控制系統(tǒng)的建模和仿真,而其他設(shè)計(jì)工程師使用Modelica建立物理系統(tǒng)模型.長(zhǎng)期以來(lái),大量的知識(shí)已經(jīng)以Simulink模型的方式累積下來(lái),如果把這些模型用Modelica重寫(xiě),十分耗費(fèi)時(shí)間和精力.基于Modelica語(yǔ)言在多領(lǐng)域建模和仿真中的廣泛應(yīng)用以及未來(lái)發(fā)展趨勢(shì),可以考慮將控制系統(tǒng)Simulink模型轉(zhuǎn)換成Modelica模型,使系統(tǒng)模型在統(tǒng)一的Modelica平臺(tái)下進(jìn)行仿真.有學(xué)者提出一種“模塊映射”方案,通過(guò)在Modelica平臺(tái)中建立與Simulink基本模塊對(duì)應(yīng)的模型庫(kù)元件,并按照Simulink模型模塊和連接關(guān)系,用Modelica元件代替Simulink模塊并復(fù)現(xiàn)連接關(guān)系,實(shí)現(xiàn)模型轉(zhuǎn)換.[2-3]這種方案依賴(lài)于專(zhuān)門(mén)定制的Modelica模型庫(kù)元件.然而,部分Simulink基本模塊,如積分模塊等,有多種變形模式,要設(shè)計(jì)一種Modelica元件與其對(duì)應(yīng)的難度很大.對(duì)此,本文提出一種基于Simulink模型代碼生成和Modelica外部類(lèi)和函數(shù)接口實(shí)現(xiàn)Simulink模型到Modelica模型轉(zhuǎn)換的新方案.

1 模型轉(zhuǎn)換原理

1.1 Simulink模型描述

Simulink模型中包含時(shí)間

Simulink通常用模塊和連接關(guān)系表達(dá)模型.通過(guò)MATLAB提供的代碼生成工具RTW(Real-Time Workshop)把模型轉(zhuǎn)換成S-Function目標(biāo)C代碼后,Simulink模型中的數(shù)學(xué)描述就變成代碼描述.Simulink模型轉(zhuǎn)換成C代碼后,Simulink模型原有的所有變量信息都保存在SimStruct實(shí)例中,SimStruct是S-Function目標(biāo)C代碼中定義的類(lèi),代碼中還定義用于對(duì)SimStruct操作的接口函數(shù).

Simulink求解器通過(guò)對(duì)接口函數(shù)的調(diào)用,對(duì)用C代碼描述的Simulink模型進(jìn)行仿真,仿真流程見(jiàn)圖1,仿真主要包含初始化和循環(huán)求解2個(gè)階段.

初始化階段由mdlInitializeSizes,mdlStart和mdlInitializeSampleTimes函數(shù)實(shí)現(xiàn)采樣時(shí)間、狀態(tài)向

量、輸入向量的初始化.在循環(huán)求解階段中,

modelOutputs函數(shù)用C代碼的方式描述關(guān)系式

1.4 Modelica外部類(lèi)

類(lèi)是Modelica語(yǔ)言的基本結(jié)構(gòu)元素,是構(gòu)成Modelica模型的基本單元,類(lèi)可以包含3種類(lèi)型:變量、方程和成員類(lèi).變量表示類(lèi)的屬性,通常代表某個(gè)物理量;方程指定類(lèi)的行為,表達(dá)變量之間的數(shù)值約束關(guān)系.[1]通常,類(lèi)定義在Modelica內(nèi)部,類(lèi)的變量、方程和成員類(lèi)均以Modelica語(yǔ)言描述,對(duì)內(nèi)是可見(jiàn)的.

Modelica同時(shí)支持外部類(lèi).外部類(lèi)一般由C語(yǔ)言定義,對(duì)于Modelica相當(dāng)于一個(gè)“黑箱”,只暴露其操作的接口,內(nèi)部結(jié)構(gòu)完全封閉.外部函數(shù)協(xié)作完成某一任務(wù)時(shí),這些外部函數(shù)之間需要傳遞一些信息的內(nèi)部存儲(chǔ),外部類(lèi)的實(shí)例就可以表示這種內(nèi)部存儲(chǔ).在Modelica語(yǔ)言中,外部類(lèi)同樣以class作為關(guān)鍵字,但加上extends ExternalObject關(guān)鍵字修飾,表明從ExternalObject派生,并且僅有3個(gè)函數(shù)constructor和destructor,分別用于構(gòu)造和銷(xiāo)毀外部實(shí)例.外部類(lèi)實(shí)例通常為一個(gè)指向某類(lèi)實(shí)例的指針,見(jiàn)圖3.定義SimStructPrt外部類(lèi)并且定義類(lèi)構(gòu)造函數(shù).構(gòu)造函數(shù)由外部函數(shù)實(shí)現(xiàn),SimStructPrt實(shí)例即為指向SimStruct實(shí)例的指針.

3 結(jié) 論

通過(guò)對(duì)S-function目標(biāo)C代碼分析和對(duì)

Modelica外部類(lèi)及外部函數(shù)的研究,實(shí)現(xiàn)Simulink模型到Modelica模型的轉(zhuǎn)換,使得Simulink模型可以在Modelica平臺(tái)下進(jìn)行仿真.模型轉(zhuǎn)換重用Simulink模型,可以將多年來(lái)累積在Simulink模型中的知識(shí)重用到更高階的Modelica平臺(tái)上,提高工作效率.由于無(wú)須依賴(lài)定制的模型庫(kù),實(shí)施起來(lái)方便高效,并且由Simulink自帶的代碼生成工具生成C代碼,代碼穩(wěn)定可靠,魯棒性高.

參考文獻(xiàn):

[1]

趙建軍, 丁建完, 周凡利, 等. Modelica語(yǔ)言及其多領(lǐng)域統(tǒng)一建模與仿真機(jī)理[J]. 系統(tǒng)仿真學(xué)報(bào), 2006, 18(S2): 570-573. DOI: 10.3969/j.issn.1004-731X.2006.z2.162.

ZHAO J J, DING J W, ZHOU F L, et al. Modelica and its mechanism of multi-domain unified modeling and simulation[J]. Journal of System Simulation, 2006, 18(S2): 570-573. DOI: 10.3969/j.issn.1004-731X.2006.z2.162.

[2] DEMPSEY M. Automatic translation of Simulink models into Modelica using Simelica and the AdvancedBlocks library[C]//Proceedings of the 3rd International Modelica Conference. Linkping, 2003.

[3] 王岳. 多領(lǐng)域建模仿真平臺(tái)MWorks的外接工具集成研究[D]. 武漢:華中科技大學(xué), 2009.

[4] van SCHIJNDEL A W M. A review of the application of SimuLink S-functions to multi domain modelling and building simulation[J]. Journal of Building Performance Simulation, 2014, 7(3): 165-178. DOI: 10.1080/19401493.2013.804122.