SaberMAST要點(diǎn)歸納_第1頁
SaberMAST要點(diǎn)歸納_第2頁
SaberMAST要點(diǎn)歸納_第3頁
SaberMAST要點(diǎn)歸納_第4頁
SaberMAST要點(diǎn)歸納_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、MASTte mp late 是.sin oMASTte mp late的基本格式包括以下幾個部分:MAST可以描述以下三類系統(tǒng),每一類系統(tǒng)的模型寫法各不相同。(1) 連續(xù)模擬系統(tǒng)(continuousanalogsystems)在仿真連續(xù)模擬系統(tǒng)時仿真器按照仿真時刻反復(fù)求解一系列代表仿真模型的微分方程。此類系統(tǒng)的每一個節(jié)點(diǎn)(node )都包括兩個系統(tǒng)變量 (systemvariable) ,一個 across 量和一個 through量,通常每個量都與一個單位( unit ) 關(guān)聯(lián),在 cosmosscope中顯示波形時可以顯示相應(yīng)單位。以電氣模型為例,每一個節(jié)點(diǎn)都包括一個across量(電

2、壓)和一個though 量(電流),單位分別是V和Ao連續(xù)模擬系統(tǒng)還包括液壓系統(tǒng)和磁路系統(tǒng)。(2) 事件驅(qū)動系統(tǒng)(eventdrivensystems)此類系統(tǒng)的典型代表是數(shù)字邏輯系統(tǒng),仿真器只有在事件發(fā)生時(如輸入量發(fā)生變化)才計算并更新各個輸出。此類系統(tǒng)的節(jié)點(diǎn)只 包含一個無單位量。(3) 數(shù)據(jù)流系統(tǒng)(dataflowsystems)此類模型的典型代表是控制系統(tǒng),和連續(xù)模擬系統(tǒng)類似,可以按照時域或頻域仿真,但是嚴(yán)格區(qū)分輸入量和輸出量,節(jié)點(diǎn)只包含一 個無單位量。2.MAST 基本概念2 . 1MASTtemplate基本形式是用MAST語言描述一個仿真模型的基本單位。MASTtemplate是

3、按照特定的語法編寫的純文本文件,后綴值得注意的是等號左邊的各個名稱不需要用逗號(,)分隔,而等號右邊必須用逗號分隔各個參數(shù)。(1)te mpl ateheader-聲明 tempi ate的名稱(reference ),管腳(pin )和參數(shù)(argument ) 基本形式如下:=ARG1,ARG2,ARG3 temp lateTE MP LATE_NAME PIN1 PIN2 PIN3PIN DECLARATIONARG DECLARATION容易看出templateheader 由關(guān)鍵字template開始,后面緊跟template 的名稱,再接下來是管腳(pin )的名稱,然后是一個等號

4、(=),接下來是參數(shù)名、(2)templateheaderdeclaration-對pin和argument類型的進(jìn)行聲明MAST 的所有變量在使用前都必須聲明其類型。第一行的模板參數(shù)聲明以后是管腳的類型聲明和參數(shù)類型聲明。形式如下:PIN_TYPEPIN_NAMEARG_TYPEARG_NAME管腳( pin )的類型根據(jù) template 的類型可以定義為 electrical (電氣模型)、 input/output (控制系統(tǒng)模型)和 state (數(shù)字 系統(tǒng)模型)等。參數(shù)( argument )類型通常為無單位簡單量number 。例 2-1 理想電流源templateisource

5、pm=iselectricalp,mnumberisequationsi(p->m)+=is對于參數(shù)較多較復(fù)雜的模型可以將參數(shù)分類,再將同一類的參數(shù)定義為一個結(jié)構(gòu)(struct )(3)tem pl atebody-對模型的行為進(jìn)行描述結(jié)構(gòu)化 (structured) 的模型包含本地變量聲明 (localvariabledeclaration)和若干個段 (section) ,各個段分別完成不同的任務(wù)。最重要的段是 equationssection,template在此段中對系統(tǒng)變量 (systemvariable) 賦值。對于電氣模型,需要賦值變量是節(jié)點(diǎn)電流;對于控制系統(tǒng),是輸出量。電

6、氣模型見例 2-1 。在連續(xù)模擬系統(tǒng)中 equationssection 的任務(wù)在于給出用于求解通過模型管腳節(jié)點(diǎn)的 through 量的表達(dá)式,對于電氣模型而言, 即給出節(jié)點(diǎn)電流的表達(dá)式。仿真器利用給出的節(jié)點(diǎn)電流的表達(dá)式代入每個節(jié)點(diǎn)的 KCL 方程,從而最終求出節(jié)點(diǎn)電壓,節(jié)點(diǎn)電壓即 系統(tǒng)變量。對于電壓源和電感則情況有所區(qū)別,此類模型的系統(tǒng)變量是電流而不是電壓。例 2-1 中 i(p->m) 表示從節(jié)點(diǎn) p 到節(jié)點(diǎn) m 的電流。 由于電路網(wǎng)絡(luò)中可能有多個模型并聯(lián)在相同節(jié)點(diǎn), 每個模型對節(jié)點(diǎn)電流的作用 應(yīng)該是使其增加相應(yīng)值,所以對其賦值應(yīng)該用 += 。例 2-2 控制系統(tǒng)的加法器templa

7、teadderin1in2out=k inputin1in2 outputout numberk equations out=(in1+in2)*k對于事件驅(qū)動型的數(shù)字系統(tǒng), templatebody 中描述輸入輸出關(guān)系的段不是 equationssection ,而是 when 語句(whenstatement) 。例 2-3 邏輯與門templateandin1in2out=td statelogic_4in1in2out numbertd=0 statelogic_4out_state when(event_on(in1)|event_on(in2) if(in1=l4_1)&(

8、in2=l4_1) out_state=l4_1 elseout_state=l4_0 if(driven(out)=out_state) schedule_event(time+td,out,out_state)其中 template 的管腳類型為 state ,數(shù)據(jù)類型是 logic_4 。 whenstatement 的語法為when(CONDITION)其中 CONDITION 通常用帶有特定參數(shù)的 event_on() 函數(shù)特定信號發(fā)生變化的事件, 即當(dāng)作為 event_on() 的參數(shù)的信號發(fā)生變 化時 CONDITION 為真,執(zhí)行 when 后面的語句。對數(shù)字管腳信號的幅值必須

9、使用 schedule_event() 語句,這樣才能將事件加入仿真器的事件隊(duì)列, 從而是輸出信號改變以后觸發(fā) 下一級的模塊。 schedule_event 的參數(shù)如下:schedule_event(TIME,STATE_NAME,VALUE)表示在指定時刻令指定名稱的 state 變量變?yōu)榻o定的值。 time 是仿真器提供的系統(tǒng)變量,表示當(dāng)前仿真時刻。在例 2-3 中參數(shù) td 反映輸出信號發(fā)生變化所需的延遲時間。 中間變量 out_state 用于與當(dāng)前輸出管腳狀態(tài)比較, 從而在輸入發(fā)生 變化后僅當(dāng)輸出也發(fā)生改變才觸發(fā)事件。對本地局部變量的復(fù)制賦值直接用等號 (=). 。2.2MASTte

10、mplate 變量聲明 在一個 template 中除了作為模型節(jié)點(diǎn)的 pin 變量和設(shè)置參數(shù) argument 變量以外,通常還必須在 templatebody 中聲明若干本 地變量。通??梢苑譃闊o單位局部變量、 var/ref 變量以及 val 變量。(1 )無單位局部變量-不與單位關(guān)聯(lián),不具有實(shí)際物理意義,僅在模型內(nèi)部有效 無單位量通常用作輸入?yún)?shù)的中間變量,只可在 parametersection 中賦值。通常聲明為簡單標(biāo)量( scalar )類型 number 。除了 number 、enum 等標(biāo)量類型,局部變量還可以聲明為復(fù)合( composite )類型,如結(jié)構(gòu) (struct

11、) 、數(shù)組 (array) 等。例 2-4 可變電阻templatevar_rpm=r_max,ratio electricalp,mnumberr_max,rationumberrparametersif(ratio>1.0|ratio<=0)error( “ %,ratioisnotofthecorrectvalue.,instance()elser=r_max*ratio;equationsi(p->m)=(v(p)-v(m)/r(2) var和ref變量-在tem pl ate中聲明的系統(tǒng)變量,在系統(tǒng)范圍內(nèi)有效var 變量通常作為 equationsection 中的

12、系統(tǒng)中間變量,用于作為 through 量(例如電流)不能直接由關(guān)系式表達(dá)的情況。 變量僅能在 eqationssection 中賦值。var考慮理想電壓源的情況,流過電壓源的電流由外電路決定,而與模型內(nèi)部無關(guān),電流無法用內(nèi)部表達(dá)式給出,所以必須引入 變量。 var 變量的聲明格式如下:varvarUNITVAR_NAME例 2-5 理想電壓源templatevsourcepm=vselectricalp,mnumbervsvariivsequationsi(p->m)+=ivsivs:v(p)-v(m)=vs本例中 ivs 是 var 變量,單位是 i ,表示從節(jié)點(diǎn) p 流向節(jié)點(diǎn) m

13、的電流。 ivs:v(p)-v(m)=vs 從此式中無法確定 ivs ,所以仿真器在保證此式成立的情況下根據(jù)總體電路來確定表示 ivs 的值由隨后的關(guān)系式確定。僅ivs例 2-6 線性電感templateinductorpm=indelectricalp,mnumberindvariilequationsi(p->m)+=ilil:v(p)-v(m)=d_by_dt(ind*il)本例中 il 表示電感電流, d_by_dt 表示對時間求導(dǎo)數(shù)。由于 MAST 的表達(dá)式不支持積分運(yùn)算,因此電感電流與電壓的關(guān)系必須表示為電壓是電流的對時間的導(dǎo)數(shù),所以無法顯式給出電流的表達(dá)式,故將電流聲明為v

14、ar 變量。參看例 2-1 理想電流源。對于數(shù)字系統(tǒng),與 var 變量類似的是 state 變量。ref 變量也是系統(tǒng)變量, 在系統(tǒng)范圍有效, 但是在一個 template 內(nèi)部聲明的 ref 變量表示在另一個 template 中聲明的 var 變量。例 2-7 電流控制電壓源templatecvtcipm=k refici electricalp,m numberk varii equations i(p->m)+=i i:v(p)-v(m)+=k*ci(3) val變量-本地有單位變量,僅在模型內(nèi)部有效 val 變量通常用作計算模型內(nèi)部參數(shù)的中間變量, 僅可在 valuessect

15、ion 賦值。運(yùn)行時仿真器將 valuesection 和 equationsection 合并。同時 val 變量在仿真結(jié)束后可以用 exact 命令提取到 cosmosscope 中觀察。例 2-8 線性電阻templaterespm=r electricalp,m numberp valppower valii valvv values v=v(p,m)i=v/rp=v*iequationsi(p->m)+=i本例中 i 、 v 和 p 都可以用 exact 命令提取并觀察。2.3MAST 與 C 語言比較MAST 大部分語法形式與 C 語言相近,但也有很多區(qū)別如下:1)每一行代碼

16、用回車換行,而不用分號(。當(dāng)一行代碼未寫完就需要換行時必須用反斜線、與&、或| ,其他和 C 語言類似2 )邏輯和關(guān)系運(yùn)算符分別是相等 = 、不等 =3)注釋語句以 # 開始,而不是 /*/ 或者/4 )每一個 section 后面的左花括號必須緊跟 section 的名稱,不能出現(xiàn)換行,否則會報錯。如value正確而value會出錯。5)變量聲明比較復(fù)雜,通常需要聲明數(shù)據(jù)類型和變量類型。數(shù)據(jù)類型不同,簡單類型包括 integer 、 number 、string 和 enum ,復(fù)合類型包括 struct 、union 和 array 。3 MAST 建立模型實(shí)例3 1 控制系統(tǒng)的二

17、階環(huán)節(jié) 根據(jù)二階環(huán)節(jié)的定義,令輸入量為 u(t) ,輸出量為 y(t) ,則 s 域的輸入輸出關(guān)系為Y(s)/U(s)=K/(s+p1)*(s+p2)其中 K 是開環(huán)增益, p1 和 p2 是兩個極點(diǎn)。將等式展開可得sA2*Y(s)+( p1+ p2)*s*Y(s)+p1*p 2*Y(s)=K*U(s)改寫為時域表達(dá)式可得d(dy/dt)/dt+a1*dy/dt+a0*y=K*u其中 a0=p1*p2,a1=p1+p2.saber 并不支持在同一個表達(dá)式中出現(xiàn)二由于 MAST 不允許表達(dá)式中出現(xiàn)兩個微分項(xiàng)相乘,所以必須展開至這種最簡形式。此外 次和二次以上的微分,因此必須聲明一個中間變量表示一

18、次微分,從而將原來的二次微分表示為此中間變量的一次微分。根據(jù)這些分析,可以寫出二階環(huán)節(jié)的 template 如下所示 例 3-1 控制系統(tǒng)的二階環(huán)節(jié)templatetrans_2orderinout=a0,a1,k inputnuin outputnuout numbera1,a2,k varnuout_d1 equations out_d1:out_d1=d_by_dt(out) out:d_by_dt(out_d1)+a1*out_d1+a0*out=k*inTools-Drawingtools in 和 out 。如圖所示寫好此 template 以后,將其保存為 trans_2orde

19、r.sin 。在 saber 中選擇 File-New-Symbol ,再選擇 畫好需要的模型符號。再點(diǎn)右鍵 Create-inputport 和 outputport 放置輸入端口和輸出端口,并命名為再設(shè)置模型的屬性( properties ),添加一個屬性 primitive, 值為 trans_2order 自動添加了 template 中聲明的輸入?yún)?shù),此處將所有輸入?yún)?shù)的值設(shè)置為req* 。再次打開 properties .最后把模型保存為時可以看到 saber 已經(jīng)trans_2order.ai_sym,瀏覽并添加 trans_2order.ai_sym ,設(shè)為了驗(yàn)證模型的正確性,

20、新建一個原理圖,右鍵菜單選擇Get Part £ySymbolName置 a0=100, a1=8 , k=100 。從參數(shù)可知這是一個欠阻尼二階環(huán)節(jié)。再添加一個階躍信號,結(jié)果如圖所示。3.2 離散有效值轉(zhuǎn)換模塊對正弦信號等間隔采樣,令每個信號周期內(nèi)的采樣點(diǎn)數(shù)為N,則信號的有效值可以根據(jù)均方根值的定義按照以下公式計算:計算輸入信號在多個時間點(diǎn)的平方和是一MAST 的系統(tǒng)變量保存。在數(shù)字離因此只需獲得輸入信號在一個周期內(nèi)的平方和, 就可以根據(jù)上式計算出信號的均方根值。 個累積的過程,在每個采樣時刻必須已知上一個時刻的值,因此數(shù)據(jù)的平方和計算結(jié)果必須用 散系統(tǒng)中,系統(tǒng)變量是 state 。根據(jù)這些分析,寫出的 template 如下: 例 3-2 離散有效值轉(zhuǎn)換模塊templatez_rm

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論