第四講SIMULINK仿真_第1頁(yè)
第四講SIMULINK仿真_第2頁(yè)
第四講SIMULINK仿真_第3頁(yè)
第四講SIMULINK仿真_第4頁(yè)
第四講SIMULINK仿真_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第6 6章章 SIMULINK SIMULINK 仿真仿真2022-5-9第第6 6章章 SIMULINK SIMULINK 仿真仿真6.1 SIMULINK6.1 SIMULINK的基本操作的基本操作6.2 SIMULINK6.2 SIMULINK的基本模塊的基本模塊6.3 SIMULINK6.3 SIMULINK的調(diào)試的調(diào)試6.4 simpowersystems6.4 simpowersystems及其應(yīng)用及其應(yīng)用引言引言nSIMULINK是是MATLAB軟件的擴(kuò)展,它是實(shí)現(xiàn)軟件的擴(kuò)展,它是實(shí)現(xiàn)動(dòng)態(tài)系動(dòng)態(tài)系統(tǒng)統(tǒng)建模和仿真的一個(gè)軟件包,其文件類型為建模和仿真的一個(gè)軟件包,其文件類型為.md

2、l,它,它與與MATLAB語(yǔ)言的主要區(qū)別在于,其與用戶交互接口語(yǔ)言的主要區(qū)別在于,其與用戶交互接口是基于是基于Windows的的模型化圖形輸入模型化圖形輸入,其結(jié)果是使得,其結(jié)果是使得用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建,而非用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建,而非語(yǔ)言的編程上。語(yǔ)言的編程上。n所謂模型化圖形輸入是指所謂模型化圖形輸入是指SIMULINK提供了一些按功提供了一些按功能分類的基本的系統(tǒng)模塊,用戶只需要知道這些模塊能分類的基本的系統(tǒng)模塊,用戶只需要知道這些模塊的輸入輸出及模塊的功能,而不必考察模塊內(nèi)部是如的輸入輸出及模塊的功能,而不必考察模塊內(nèi)部是如何實(shí)現(xiàn)的,通過(guò)對(duì)這些基

3、本模塊的調(diào)用,再將它們連何實(shí)現(xiàn)的,通過(guò)對(duì)這些基本模塊的調(diào)用,再將它們連接起來(lái)就可以構(gòu)成所需要的系統(tǒng)模型(以接起來(lái)就可以構(gòu)成所需要的系統(tǒng)模型(以.mdl文件進(jìn)文件進(jìn)行存?。?,進(jìn)而進(jìn)行仿真與分析。行存?。?,進(jìn)而進(jìn)行仿真與分析。6.1 SIMULINK6.1 SIMULINK的基本操作的基本操作6.1.1 Simulink6.1.1 Simulink的啟動(dòng)與退出的啟動(dòng)與退出 1. Simulink1. Simulink的啟動(dòng)的啟動(dòng) 啟動(dòng)啟動(dòng)SimulinkSimulink的方法有的方法有3 3種:種: (1)(1)在在MATLABMATLAB的命令窗口直接鍵入的命令窗口直接鍵入simulinksim

4、ulink。 (2)(2)單擊單擊MATLABMATLAB命令窗口工具欄上的命令窗口工具欄上的SimulinkSimulink模塊庫(kù)瀏覽器命令模塊庫(kù)瀏覽器命令按鈕。按鈕。 (3)(3)在在MATLABMATLAB命令窗口命令窗口FileFile菜單中選擇菜單中選擇NewNew菜單項(xiàng)下的菜單項(xiàng)下的ModelModel命令。命令。2. Simulink2. Simulink的退出的退出 退出退出SimulinkSimulink,只要關(guān)閉所有模型窗口和,只要關(guān)閉所有模型窗口和SimulinkSimulink模塊庫(kù)窗口模塊庫(kù)窗口即可即可。6.1.2 Simulink6.1.2 Simulink窗口窗口

5、1.simulink1.simulink庫(kù)瀏覽器窗口庫(kù)瀏覽器窗口 2.simulink2.simulink模型構(gòu)建窗口模型構(gòu)建窗口6.1.3 Simulink6.1.3 Simulink模塊的操作模塊的操作 1. 1. 選取模塊選取模塊2. 2. 復(fù)制與刪除模塊復(fù)制與刪除模塊3. 3. 模塊外形的調(diào)整模塊外形的調(diào)整 4. 4. 模塊的參數(shù)和屬性設(shè)置模塊的參數(shù)和屬性設(shè)置5. 5. 模塊的連接模塊的連接6. 6. 模塊名的處理模塊名的處理6.1.3 Simulink6.1.3 Simulink模塊的操作模塊的操作1. 選取模塊或模塊組n在Simulink模塊庫(kù)窗口內(nèi),用鼠標(biāo)左鍵單擊所需模塊圖標(biāo),圖

6、標(biāo)四角出現(xiàn)黑色小方點(diǎn),表明該模塊已經(jīng)選中。n2 模塊拷貝及刪除模塊拷貝及刪除q在模塊庫(kù)中選中模塊后,按住鼠標(biāo)左鍵不放并移在模塊庫(kù)中選中模塊后,按住鼠標(biāo)左鍵不放并移動(dòng)鼠標(biāo)至目標(biāo)模型窗口指定位置,釋放鼠標(biāo)即完動(dòng)鼠標(biāo)至目標(biāo)模型窗口指定位置,釋放鼠標(biāo)即完成模塊拷貝。成模塊拷貝。q模塊的刪除只需選定刪除的模塊,按模塊的刪除只需選定刪除的模塊,按Del鍵即可。鍵即可。3 模塊調(diào)整模塊調(diào)整n改變模塊位置、大小改變模塊位置、大?。哼x中模塊,拖至新的位置;選中:選中模塊,拖至新的位置;選中模塊進(jìn)行大小的縮放。模塊進(jìn)行大小的縮放。n改變模塊方向改變模塊方向使模塊輸入輸出端口的方向改變使模塊輸入輸出端口的方向改變。

7、選中模塊后,。選中模塊后,選取菜單選取菜單FormatRotateBlock,可使模塊旋轉(zhuǎn),可使模塊旋轉(zhuǎn)900。 FormatFlipBlock,旋轉(zhuǎn),旋轉(zhuǎn)18004 模塊參數(shù)設(shè)置模塊參數(shù)設(shè)置5 模塊的連接模塊的連接連接線(左鍵)分支線分支線(右鍵右鍵)6.2 Simulink6.2 Simulink的基本模塊的基本模塊SIMILINK模塊庫(kù)按功能進(jìn)行分類,包括以下8類子庫(kù):nContinuous(連續(xù)模塊)nDiscrete(離散模塊)nFunction&Tables(函數(shù)和平臺(tái)模塊)nMath(數(shù)學(xué)模塊)nNonlinear(非線性模塊)nSignals&Systems(信

8、號(hào)和系統(tǒng)模塊)nSinks(顯示模塊)nSources(輸入源模塊)1、 Math(數(shù)學(xué)模塊)(數(shù)學(xué)模塊) Sum:加減運(yùn)算:加減運(yùn)算Product:乘運(yùn)算:乘運(yùn)算Dot Product:點(diǎn)乘運(yùn)算:點(diǎn)乘運(yùn)算Gain:比例運(yùn)算:比例運(yùn)算Math Function:包括指數(shù)函數(shù)、對(duì)數(shù)函數(shù)、求平方、開(kāi)根號(hào):包括指數(shù)函數(shù)、對(duì)數(shù)函數(shù)、求平方、開(kāi)根號(hào)等常用數(shù)學(xué)函數(shù)等常用數(shù)學(xué)函數(shù)Trigonometric Function:三角函數(shù),包括正弦、余弦、正切:三角函數(shù),包括正弦、余弦、正切等等MinMax:最值運(yùn)算:最值運(yùn)算Abs:取絕對(duì)值:取絕對(duì)值Sign:符號(hào)函數(shù):符號(hào)函數(shù)Logical Operator:

9、邏輯運(yùn)算Relational Operator:關(guān)系運(yùn)算Complex to Magnitude-Angle:由復(fù)數(shù)輸入轉(zhuǎn)為幅值和相角輸出Magnitude-Angle to Complex:由幅值和相角輸入合成復(fù)數(shù)輸出Complex to Real-Imag:由復(fù)數(shù)輸入轉(zhuǎn)為實(shí)部和虛部輸出Real-Imag to Complex:由實(shí)部和虛部輸入合成復(fù)數(shù)輸出2、Signal Routing(信號(hào)通路模塊) 4、Sinks(顯示模塊或(顯示模塊或接收器模塊)接收器模塊) sinks.mdlScope:示波器。:示波器。XY Graph:顯示二維圖形。:顯示二維圖形。To Workspace:將輸

10、出寫(xiě)入:將輸出寫(xiě)入MATLAB的工作空的工作空間。間。To File(.mat):將輸出寫(xiě)入數(shù)據(jù)文件。:將輸出寫(xiě)入數(shù)據(jù)文件。Ground:連接到?jīng)]有連接到的輸入端。:連接到?jīng)]有連接到的輸入端。Terminator:連接到?jīng)]有連接到的輸出端。:連接到?jīng)]有連接到的輸出端。Constant:常數(shù)信號(hào)。Clock:時(shí)鐘信號(hào)。From Workspace:來(lái)自MATLAB的工作空間。From File(.mat):來(lái)自數(shù)據(jù)文件。Pulse Generator:脈沖發(fā)生器。Repeating Sequence:重復(fù)信號(hào)。Signal Generator:信號(hào)發(fā)生器,可以產(chǎn)生正弦、方波、鋸齒波及隨意波。Si

11、ne Wave:正弦波信號(hào)。Step:階躍波信號(hào)。1 Sources庫(kù)庫(kù)n也可稱為信號(hào)源庫(kù),該庫(kù)包含了可向仿真模型提供信號(hào)的模塊。它沒(méi)有輸入口,但至少有一個(gè)輸出口。n雙擊圖標(biāo) 即彈出該庫(kù)的模塊圖: 在該圖中的每一個(gè)圖標(biāo)都是一個(gè)信號(hào)模塊,這些模塊均可拷貝到用戶的模型窗里。用戶可以在模型窗里根據(jù)自己的需要對(duì)模塊的參數(shù)進(jìn)行設(shè)置(但不可在模塊庫(kù)里進(jìn)行模塊的參數(shù)設(shè)置).nSine Wave:產(chǎn)生幅值、頻率可設(shè)置的正弦波信號(hào)。 雙擊圖標(biāo)雙擊圖標(biāo) ( (認(rèn)定該模塊已拷貝到用戶模型窗認(rèn)定該模塊已拷貝到用戶模型窗,以下均如此以下均如此),),彈出正弦波的參數(shù)設(shè)置框圖。圖中參彈出正弦波的參數(shù)設(shè)置框圖。圖中參數(shù)為數(shù)

12、為SimulinkSimulink默認(rèn)值,用戶可根據(jù)需要對(duì)這些參數(shù)默認(rèn)值,用戶可根據(jù)需要對(duì)這些參數(shù)重新設(shè)置。重新設(shè)置。幅值、頻率為2,基準(zhǔn)為0.5,其波形如下圖所示:nStep:產(chǎn)生幅值、階躍時(shí)間可設(shè)置的階躍信號(hào)。 雙擊圖標(biāo) ,彈出階躍信號(hào)的參數(shù)設(shè)置框圖。圖中參數(shù)為Simulink默認(rèn)值。當(dāng)設(shè)置幅值為0.8,階躍時(shí)間為1秒時(shí),階躍波形如下圖所示:2 Sinks 庫(kù)庫(kù) n該庫(kù)包含了顯示和寫(xiě)模塊輸出的模塊。雙擊 即彈出該庫(kù)的模塊圖: :數(shù)字表,顯示指定模塊的輸出數(shù)值。 :X-Y繪圖儀用同一圖形窗口,顯示X-Y坐標(biāo)的圖形(需先在參數(shù)對(duì)話框中設(shè)置每個(gè)坐標(biāo)的變化范圍),當(dāng)X、Y分別為正、余弦信號(hào)時(shí),其顯

13、示圖形如下: 示波器示波器:顯示在仿真過(guò)程產(chǎn)生的信號(hào)波形。雙顯示在仿真過(guò)程產(chǎn)生的信號(hào)波形。雙擊該圖標(biāo)擊該圖標(biāo),彈出示波器窗如右圖所示:彈出示波器窗如右圖所示:分別管理X-Y、X和Y軸向變焦取當(dāng)前窗中信號(hào)最大、最小值為縱坐標(biāo)的上下限把當(dāng)前軸的設(shè)置保存為該示波器的缺省設(shè)置打開(kāi)示波器屬性對(duì)話框設(shè)置為浮動(dòng)示波器示波器屬性對(duì)話框設(shè)置Y軸個(gè)數(shù)設(shè)置顯示的時(shí)間范圍選擇軸的標(biāo)注方法確定顯示頻度(每隔n-1個(gè)數(shù) 據(jù) 點(diǎn) 顯 示 一 次 )確定顯示點(diǎn)的時(shí)間間隔(缺省 為 0 表 示 連 續(xù) 顯 示 )示波器屬性對(duì)話框General頁(yè)示波器屬性對(duì)話框示波器屬性對(duì)話框Data history頁(yè)設(shè)定緩沖區(qū)接受數(shù)據(jù)的長(zhǎng)度,

14、勾選為缺省狀態(tài),其值為5000確定示波器數(shù)據(jù)是 否 保 存 到MATLAB工作空間。若勾選則為保存,且需確定變量名和保存格式(缺省時(shí),不被勾選)【例6-1】示波器應(yīng)用示例。Simulink仿真模型如左圖所示,示波器輸入為3(Y軸個(gè)數(shù)為3)。右圖為該示波器顯示的三路輸入信號(hào)的波形. (a)(b)nSignals & Systems 庫(kù)庫(kù) n :信號(hào)分路器 。 q將混路器輸出的信號(hào)依照原來(lái)的構(gòu)成方法分解成多路信號(hào)。n :信號(hào)匯總器 q將多路信號(hào)依照向量的形式混合成一路信號(hào)。 Simulink模型窗口下仿真模型窗口下仿真 步驟打開(kāi)Simulink仿真模型窗口,或打開(kāi)指定的.mdl文件;1.設(shè)

15、置仿真參數(shù):在模型窗口選取菜單【Simulation: Parameters】,彈出 “Simulation Parameters” 對(duì)話框,設(shè)置仿真參數(shù),然后按【OK】即可;說(shuō)明說(shuō)明若不設(shè)置仿真參數(shù)若不設(shè)置仿真參數(shù),則采用則采用Simulink缺省設(shè)置缺省設(shè)置.6.3 6.3 系統(tǒng)仿真運(yùn)行系統(tǒng)仿真運(yùn)行Simulink模型窗口下仿真模型窗口下仿真 步驟仿真運(yùn)行和終止:在模型窗口選取菜單【Simulation: Start】,仿真開(kāi)始,至設(shè)置的仿真終止時(shí)間,仿真結(jié)束。若在仿真過(guò)程中要中止仿真,可選擇【Simulation: Stop】菜單。也可直接點(diǎn)擊模型窗口中的 (或 )啟動(dòng)(或停止)仿真。

16、MATLAB 命令窗口下的仿真運(yùn)行n在Matlab命令窗口可直接運(yùn)行已存在的Simulink模型:nt,x,y=sim(model,timespan,option,ut)其中,t為返回的仿真時(shí)間向量; x為返回的狀態(tài)矩陣; y為返回的輸出矩陣; model為系統(tǒng)Simulink模型文件名; timespan為仿真時(shí)間;option為仿真參數(shù)選擇項(xiàng),由simset設(shè)置;ut為選擇外部產(chǎn)生輸入,ut=T,u1,u2,un。說(shuō)明 上述參數(shù)中,若省略timespan,option,ut則由框圖模型的對(duì)話框Simulation Parameters設(shè)置仿真參數(shù)。back1、仿真參數(shù)對(duì)話框 點(diǎn)擊Simul

17、link模型窗simulation菜單下的Parameters命令,彈出仿真參數(shù)對(duì)話框如右圖所示。用得較多的主要是Solver頁(yè)和Workspace I/O頁(yè)。 Solver頁(yè)頁(yè) Simulation time(仿真時(shí)間): 設(shè)置Start time(仿真開(kāi)始時(shí)間)和Stop time(仿真終止時(shí)間)可通過(guò)頁(yè)內(nèi)編輯框內(nèi)輸入相應(yīng)數(shù)值,單位“秒”。另外,用戶還可以利用Sinks庫(kù)中的Stop模塊來(lái)強(qiáng)行中止仿真。6.3.2 6.3.2 仿真參數(shù)設(shè)置仿真參數(shù)設(shè)置 Solver頁(yè)頁(yè) Solver options(仿真算法選擇): 分為定步長(zhǎng)算法和變步長(zhǎng)算法兩類。定步長(zhǎng)支持的算法可在Fixed step

18、size編輯框中指定步長(zhǎng)或選擇auto,由計(jì)算機(jī)自動(dòng)確定步長(zhǎng),離散系統(tǒng)一般默認(rèn)地選擇定步長(zhǎng)算法,在實(shí)時(shí)控制中則必須選用定步長(zhǎng)算法;變步長(zhǎng)支持的算法如圖9-16所示,對(duì)于連續(xù)系統(tǒng)仿真一般選擇ode45,步長(zhǎng)范圍使用auto項(xiàng)。 圖9-15 定步長(zhǎng)算法圖9-16 變步長(zhǎng)算法 Solver頁(yè)頁(yè) Error Tolerance(誤差限度): 算法的誤差是指當(dāng)前狀態(tài)值與當(dāng)前狀態(tài)估計(jì)值的差值,分為Relative tolerance(相對(duì)限度)和Absolute tolerance(絕對(duì)限度),通常可選auto。 Output options(輸出選擇項(xiàng)):有Refine output(細(xì)化輸出)、Pro

19、duce additional output(產(chǎn)生附加輸出)、Produce specified output only(只產(chǎn)生指定輸出)。 這個(gè)頁(yè)面的作用是定義將仿真結(jié)果輸出到工作空間,以及從工作空間得到輸入和初始狀態(tài)。 Load from workspace:選則是否從工作空間獲得輸入或初始狀態(tài)。 Input:選擇工作空間提供輸入,且為矩陣形式。輸入矩陣的第一列必須是升序的時(shí)間向量,其余列分別對(duì)應(yīng)不同的輸入信號(hào)。 Workspace I/OWorkspace I/O頁(yè)頁(yè)t=(0:0.1:10);u=cos(t),sin(t);如在指令窗中輸入:且在模型窗中的模型為:Save to work

20、space:勾選相應(yīng)方框表明保存輸出到MATLAB工作空間。 time 和 output 為缺省選中的。即一般運(yùn)行一個(gè)仿真模型后,在MATLAB 工作空間都會(huì)增加兩個(gè)變量tout、yout。變量名可以設(shè)置。Save options(存儲(chǔ)選項(xiàng)):存儲(chǔ)數(shù)據(jù)到工作空間的格式,可選數(shù)組、構(gòu)架數(shù)組、包含時(shí)間數(shù)據(jù)的構(gòu)架數(shù)組。6.4 simpowersystems6.4 simpowersystems及其應(yīng)用及其應(yīng)用nSimpowersystems模塊nSimpowersystems仿真6.3.1 Simpowersystems模塊模塊nElectrical Sources:電源元件nElements: 線

21、路元件;Extras:附加元件庫(kù)nMachines:電機(jī)元件;Measurements:測(cè)量元件nPower Electronics:電力電子元件庫(kù)1.1 Electrical Sources:電源元件電源元件左側(cè)左側(cè)4個(gè):個(gè):直流電壓源直流電壓源交流電壓源交流電壓源交流電流源交流電流源三相電源三相電源右側(cè)右側(cè)3個(gè):個(gè):受控電壓源受控電壓源受控電流源受控電流源三相可編程電壓源三相可編程電壓源n例:ndtlb.mdl 低通濾波電路nsimrlc.mdlnsimjl.mdl, 在所示電路中在所示電路中,4,1,1,1,162431KAIRRRRVUss111001212121SSSSSS和、的穩(wěn)態(tài)

22、值。和時(shí)221I,UU求取當(dāng)求取當(dāng)例子例子1:電路分析:電路分析0*221SSIUBIUUA, 2121112422223210RUISRUUIRKIUISURIUsS d=solve(U1+I2*R3-U2=0,S2*IS-(U2-K*I2)/R4-I2=0,(Us-U1)/R1*S1+I2-U1/R2=0,I2,U1,U2); a=inline(d.I2) b=inline(d.U1) c=inline(d.U2)MATLAB編程求解編程求解, 例例1:Simulink的仿真求解的仿真求解在所示正弦電路中在所示正弦電路中例子例子2:正弦電路穩(wěn)態(tài)分析:正弦電路穩(wěn)態(tài)分析,1,314cos10,

23、314sin1032121RRRtUtUssHLLFCC001. 0,001. 02121,求在不同開(kāi)關(guān)狀態(tài)下電路,求在不同開(kāi)關(guān)狀態(tài)下電路中各點(diǎn)電流的穩(wěn)態(tài)值。中各點(diǎn)電流的穩(wěn)態(tài)值。221231232211123111132211)()1()()1(0ssUSjWLRISjWLRjWCIUSjWLRISRjWCIIISISd=solve(S1*I1+S2*I2-I3=0,I1*(1/(j*W*C1)+R1)+S1*I3*(R2+j*W*L1)-S1*US1=0,I2*(1/(j*W*C2)+R3+R2+j*W*L2)+S2*I3*(R2+j*W*L1)-S2*US2=0,I1,I2,I3)a=in

24、line(d.I1) b=inline(d.I2)c=inline(d.I3)()(,31232223231231111121322221111dtdiLRiuuSRidtdiLRiuuSRiiiidtducCSidtducCSicscs例子例子2:正弦電路暫態(tài)分析:正弦電路暫態(tài)分析用用dsolve求解,有求解,有初值條件初值條件, 例例2:Simulink的仿真求解的仿真求解 即可以觀察穩(wěn)態(tài)值,也可以觀察暫態(tài)過(guò)程。 仿真結(jié)果與算法的選擇、仿真參數(shù)的選擇和初值的設(shè)置有密切關(guān)系。 有相應(yīng)的輔助工具 Powergui進(jìn)行結(jié)果分析。 n在建立的Simulink系統(tǒng)模型比較大或很復(fù)雜時(shí),可將一些模塊組

25、合成子系統(tǒng),這樣可使模型得到簡(jiǎn)化,便于連線;可提高效率,便于調(diào)試;可生成層次化的模型圖表,用戶可采取自上而下或自下而上的設(shè)計(jì)方法。n將一個(gè)創(chuàng)建好的子系統(tǒng)進(jìn)行封裝,也就是使子系統(tǒng)象一個(gè)模塊一樣,例如可以有自己的參數(shù)設(shè)置對(duì)話框,自己的模塊圖標(biāo)等。這樣就使子系統(tǒng)使用起來(lái)非常方便。 補(bǔ)充補(bǔ)充1 子系統(tǒng)的創(chuàng)建和封裝子系統(tǒng)的創(chuàng)建和封裝通過(guò)子系統(tǒng)模塊來(lái)建立子系統(tǒng)n在Simulink庫(kù)瀏覽器,有一個(gè)子系統(tǒng)(Subsystems)的庫(kù)模塊(有的版本在Signals & Systems子庫(kù)里),點(diǎn)擊該圖標(biāo)即可看到不同類型的子系統(tǒng)模塊。子模塊庫(kù)MATLAB6.0 版MATLAB6.5 版補(bǔ)充內(nèi)容補(bǔ)充內(nèi)容2:

26、 SIMULINK s-function的設(shè)計(jì)的設(shè)計(jì)一、s-function的概念qs-function是一個(gè)動(dòng)態(tài)系統(tǒng)的計(jì)算機(jī)語(yǔ)言描述,在MATLAB里,用戶可以選擇用m文件編寫(xiě),也可以用c或mex文件編寫(xiě),在這里只給大家介紹如何用m文件編寫(xiě)s-function。qS-function提供了擴(kuò)展Simulink模塊庫(kù)的有力工具,它采用一種特定的調(diào)用語(yǔ)法,使函數(shù)和Simulink解法器進(jìn)行交互。qS-function最廣泛的用途是定制用戶自己的Simulink模塊。它的形式十分通用,能夠支持連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng),便于構(gòu)建復(fù)雜的、高非線性、多邏輯運(yùn)算的系統(tǒng)。Simulink為用戶提供了許多

27、內(nèi)置的基本庫(kù)模塊,通過(guò)這些模塊進(jìn)行連接而構(gòu)成系統(tǒng)的模型。對(duì)于那些經(jīng)常使用的模塊進(jìn)行組合并封裝可以構(gòu)建出重復(fù)使用的新模塊,但它依然是基于Simulink原來(lái)提供的內(nèi)置模塊。而Simulink s-function是一種強(qiáng)大的對(duì)模塊庫(kù)進(jìn)行擴(kuò)展的新工具。二、建立m文件s-function1、使用模板文件:sfuntmp1. mq該模板文件位于MATLAB根目錄下toolbox/simulink/blocks目錄下。q模板文件里s-function的結(jié)構(gòu)十分簡(jiǎn)單,它只為不同的flag的值指定要相應(yīng)調(diào)用的m文件子函數(shù)。比如當(dāng)flag=3時(shí),即模塊處于計(jì)算輸出這個(gè)仿真階段時(shí),相應(yīng)調(diào)用的子函數(shù)為sys=md

28、loutputs(t,x,u)。q模板文件使用switch語(yǔ)句來(lái)完成這種指定,當(dāng)然這種結(jié)構(gòu)并不唯一,用戶也可以使用if語(yǔ)句來(lái)完成同樣的功能。而且在實(shí)際運(yùn)用時(shí),可以根據(jù)實(shí)際需要來(lái)去掉某些值,因?yàn)椴⒉皇敲總€(gè)模塊都需要經(jīng)過(guò)所有的子函數(shù)調(diào)用。q模板文件只是Simulink為方便用戶而提供的一種參考格式,并不是編寫(xiě)s-function的語(yǔ)法要求,用戶完全可以改變子函數(shù)的名稱,或者直接把代碼寫(xiě)在主函數(shù)里,但使用模板文件的好處是,比較方便,而且條理清晰。q使用模板編寫(xiě)s-function,用戶只需把s-函數(shù)名換成期望的函數(shù)名稱,如果需要額外的輸入?yún)⒘浚€需在輸入?yún)?shù)列表的后面增加這些參數(shù),因?yàn)榍懊娴?個(gè)參數(shù)

29、是simulink調(diào)用s-function時(shí)自動(dòng)傳入的。對(duì)于輸出參數(shù),最好不做修改。接下去的工作就是根據(jù)所編s-function要完成的任務(wù),用相應(yīng)的代碼去替代模板里各個(gè)子函數(shù)的代碼即可。qSimulink在每個(gè)仿真階段都會(huì)對(duì)s-function進(jìn)行調(diào)用,在調(diào)用時(shí),Simulink會(huì)根據(jù)所處的仿真階段為flag傳入不同的值,而且還會(huì)為sys這個(gè)返回參數(shù)指定不同的角色,也就是說(shuō)盡管是相同的sys變量,但在不同的仿真階段其意義卻不相同,這種變化由simulink自動(dòng)完成。qm文件s-function可用的子函數(shù)說(shuō)明如下:qmdlInitializeSizes:定義s-function模塊的基本特性

30、,包括采樣時(shí)間、連續(xù)或者離散狀態(tài)的初始條件和sizes數(shù)組。Flag=0qmdlDerivatives:計(jì)算連續(xù)狀態(tài)變量的微分方程。Flag=1qmdlUpdate:更新離散狀態(tài)、采樣時(shí)間和主時(shí)間步的要求。Flag=2qmdlOutputs:計(jì)算s-function的輸出。Flag=3qmdlGetTimeOfNextVarHit:計(jì)算下一個(gè)采樣點(diǎn)的絕對(duì)時(shí)間,這個(gè)方法僅僅是在用戶在mdlInitializeSizes 里說(shuō)明了一個(gè)可變的離散采樣時(shí)間。Flag=4qmdlTerminate:實(shí)現(xiàn)仿真任務(wù)必須的結(jié)束。Flag=9q概括說(shuō)來(lái),建立s-function可以分成兩個(gè)分離的任務(wù):q初始化模塊特性包括輸入輸出信號(hào)的寬度,離散連續(xù)狀態(tài)的初始條件和采樣時(shí)間。q將算法放到合適的s-function子函數(shù)中去。2、定義s-function的初始信息q為了讓Simulink識(shí)別出一個(gè)m文件s-function,用戶必須在s-函數(shù)里提供有關(guān)s-函數(shù)的說(shuō)明信息,包括采樣時(shí)間、連續(xù)或者離散狀態(tài)個(gè)數(shù)等初始條件。這一部分主要是在mdlInitializeSizes子函數(shù)里完成。qSizes數(shù)組是s-functio

溫馨提示

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

評(píng)論

0/150

提交評(píng)論