電機(jī)控制基于Simulink的仿真_第1頁
電機(jī)控制基于Simulink的仿真_第2頁
電機(jī)控制基于Simulink的仿真_第3頁
電機(jī)控制基于Simulink的仿真_第4頁
電機(jī)控制基于Simulink的仿真_第5頁
已閱讀5頁,還剩187頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、MATLAB/Simulink設(shè)計(jì),主講:段清明 儀器科學(xué)與電氣工程學(xué)院,電機(jī)控制課程設(shè)計(jì),1 Simulink簡介,Simulink是一個(gè)用來對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包。使用Simulink來建模、分析和仿真各種動(dòng)態(tài)系統(tǒng)(包括連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng)),將是一件非常輕松的事情。它提供了一種圖形化的交互環(huán)境,只需用鼠標(biāo)拖動(dòng)的方法便能迅速地建立起系統(tǒng)框圖模型,甚至不需要編寫一行代碼。 利用Simulink進(jìn)行系統(tǒng)的建模仿真,其最大的優(yōu)點(diǎn)是易學(xué)、易用,并能依托MATLAB提供的豐富的仿真資源。,提供了仿真庫的擴(kuò)充和定制機(jī)制 Simulink的開放式結(jié)構(gòu)允許用戶擴(kuò)展仿真環(huán)境的功能:采

2、用MATLAB、FORTRAN和C代碼生成自定義模塊庫,并擁有自己的圖標(biāo)和界面。 與MATLAB工具箱的集成 由于Simulink可以直接利用MATLAB的諸多資源與功能,因而用戶可以直接在 Simulink下完成諸如數(shù)據(jù)分析、過程自動(dòng)化、優(yōu)化參數(shù)等工作。,Simulink應(yīng)用領(lǐng)域,2 Simulink啟動(dòng)及模型建立,Simulink的啟動(dòng)主要有以下兩種方法: 在MATLAB的命令窗口中輸入simulink,結(jié)果是在桌面上出現(xiàn)一個(gè)Simulink Library Browser的窗口。 單擊MATLAB主窗口的快捷按鈕 ,打開Simulink Library Browser窗口 。,Simul

3、ink模型窗口的建立,在Simulink中打開一個(gè)空白的模型窗口的方法: 選中Simulink菜單系統(tǒng)中的File | New | Model菜單項(xiàng)后,會(huì)生成一個(gè)Simulink窗口; 單擊Simulink工具欄中的“新建模型”圖標(biāo); 在MATLAB的命令窗口中選擇File | New | New Model菜單項(xiàng);,啟動(dòng)Simulink,建立系統(tǒng)模型的基本操作,Simulink的模塊庫,Simulink的模塊庫能夠?qū)ο到y(tǒng)模塊進(jìn)行有效的管理與組織可以直接將模塊庫中的模塊拖動(dòng)或者拷貝到用戶的系統(tǒng)模型中以構(gòu)建動(dòng)態(tài)系統(tǒng)模型。,Simulink公共模塊庫,Simulink中最為基礎(chǔ)、最為通用的模塊庫,

4、它可以被應(yīng)用到不同的專業(yè)領(lǐng)域中。 連續(xù)模塊continuous、非連續(xù)模塊discontinuous 離散模塊discrete、查找表模塊Look-up Table 數(shù)學(xué)運(yùn)算Math Operations 模型驗(yàn)證模塊Model Verification 模型擴(kuò)充工具M(jìn)odel-Wide Utilities 端口和子系統(tǒng)模塊Ports 將系統(tǒng)模塊插入到系統(tǒng)模型中; 查看系統(tǒng)模塊的參數(shù)設(shè)置; 以及回到系統(tǒng)模塊的上一層庫。,此外還可以進(jìn)行以下操作: (1) 使用鼠標(biāo)左鍵選擇并拖動(dòng)系統(tǒng)模塊,并將其拷貝到系統(tǒng)模型中。 (2) 在模塊搜索欄中搜索所需的系統(tǒng)模塊。,例:簡單系統(tǒng)的輸入為一個(gè)正弦波信號(hào),輸出

5、為此正弦波信號(hào)與一個(gè)常數(shù)的乘積。要求建立系統(tǒng)模型,并以圖形方式輸出系統(tǒng)運(yùn)算結(jié)果。 已知系統(tǒng)的數(shù)學(xué)描述為 系統(tǒng)輸入: u(t)=sin t , t0 系統(tǒng)輸出: y(t)=au(t), a0,相關(guān)操作:,模塊庫 Sine Wave來自sources; Gain來自Math Operations;Scope來自Sinks 連接方法 (1)拖動(dòng)對(duì)應(yīng)端口進(jìn)行連接 (2)單擊起始模塊后,按Ctrl鍵再單擊目標(biāo)模塊 模塊復(fù)制 傳統(tǒng)方式Ctrl+C/Ctrl+V、或Ctrl鍵再拖動(dòng)模塊 模塊插入 對(duì)于單輸入單輸出模塊,只需將這個(gè)模塊移到線上就可以自動(dòng)連接。,連線操作,連線分支 使用鼠標(biāo)右鍵單擊需要分支的信號(hào)

6、連線(光標(biāo)變成“+”),然后拖動(dòng)到目標(biāo)模塊。 使用鼠標(biāo)左鍵單擊并拖動(dòng)以改變信號(hào)連線的路徑。 按下Shift鍵的同時(shí),在信號(hào)連線上單擊鼠標(biāo)左鍵并拖動(dòng),可以生成新的節(jié)點(diǎn)。 在節(jié)點(diǎn)上使用鼠標(biāo)左鍵單擊并拖動(dòng),可以改變信號(hào)連線路徑。,信號(hào)組合 在利用Simulink進(jìn)行系統(tǒng)仿真時(shí),在很多情況下,需要將系統(tǒng)中某些模塊的輸出信號(hào)(一般為標(biāo)量)組合成一個(gè)向量信號(hào),并將得到的信號(hào)作為另外一個(gè)模塊的輸入。,來自Signal Routing的Bus Creator,3 Simulink模型仿真,系統(tǒng)模塊參數(shù)設(shè)置與系統(tǒng)仿真參數(shù)設(shè)置 雙擊系統(tǒng)模塊,打開系統(tǒng)模塊的參數(shù)設(shè)置對(duì)話框。 在參數(shù)設(shè)置對(duì)話框中設(shè)置合適的模塊參數(shù)。

7、設(shè)置合適的系統(tǒng)仿真參數(shù)以進(jìn)行動(dòng)態(tài)系統(tǒng)的仿真 在Simulation菜單的Simulation parameters.子菜單中進(jìn)行設(shè)置,如仿真時(shí)間等 運(yùn)行仿真 單擊系統(tǒng)模型編輯器上的Play圖標(biāo)(黑色三角)或選擇Simulation菜單下的Start便可以對(duì)系統(tǒng)進(jìn)行仿真分析。 仿真結(jié)束后雙擊Scope模塊以顯示系統(tǒng)仿真的輸出結(jié)果,4 Simulink子系統(tǒng)介紹,Simulink提供的子系統(tǒng)功能可以大大地增強(qiáng)Simulink系統(tǒng)模型框圖的可讀性。 子系統(tǒng)可以理解為一種“容器”,此容器能夠?qū)⒁唤M相關(guān)的模塊封裝到一個(gè)單獨(dú)的模塊中,并且與原來系統(tǒng)模塊組的功能一致。,子系統(tǒng)建立方法(2種),在已有的系統(tǒng)模

8、型中建立子系統(tǒng): 首先框選待封裝的區(qū)域,即在模型編輯器背景中單擊鼠標(biāo)左鍵并拖動(dòng),選中需要放置到子系統(tǒng)中的模塊與信號(hào)(或在按下Shift鍵的同時(shí),用鼠標(biāo)左鍵單擊所需模塊);然后選擇Edit菜單下的Create Subsystem,即可建立子系統(tǒng)。 建立空的子系統(tǒng): Subsystems模塊庫中的模塊建立子系統(tǒng)。這樣建立的子系統(tǒng)內(nèi)容為空,然后雙擊子系統(tǒng)對(duì)其進(jìn)行編輯。,子系統(tǒng)操作 在生成子系統(tǒng)之后,用戶可以對(duì)子系統(tǒng)進(jìn)行各種與系統(tǒng)模塊相類似的操作,這時(shí)子系統(tǒng)相當(dāng)于具有一定功能的系統(tǒng)模塊。例如,子系統(tǒng)的命名、子系統(tǒng)視圖的修改、子系統(tǒng)的顯示顏色等等。當(dāng)然子系統(tǒng)也有其特有的操作,如子系統(tǒng)的顯示(用鼠標(biāo)左鍵雙

9、擊子系統(tǒng)模塊即可打開子系統(tǒng))、子系統(tǒng)的封裝等等。,Inport輸入模塊與Outport輸出模塊 在系統(tǒng)模型中建立子系統(tǒng)時(shí),Simulink會(huì)自動(dòng)生成Inport模塊(Sources模塊庫中的In1模塊)與Outport模塊(Sinks模塊庫中的Out1模塊)。Inport模塊作為子系統(tǒng)的輸入端口,Outport作為子系統(tǒng)的輸出端口,它們被用來完成子系統(tǒng)和主系統(tǒng)之間的通訊。 Inport和Outport用來對(duì)信號(hào)進(jìn)行傳遞,不改變信號(hào)的任何屬性;另外,信號(hào)標(biāo)簽可以越過它們進(jìn)行傳遞。如果需要建立多輸入多輸出的子系統(tǒng),則需要使用多個(gè)Inport模塊與Outport模塊,而且最好使用合適的名稱對(duì)Inpo

10、rt模塊與Outport模塊進(jìn)行命名。,5 Simulink與Matlab的接口設(shè)計(jì),由MATLAB工作空間變量設(shè)置系統(tǒng)模塊參數(shù) 模塊參數(shù)可以是常量也可以工作空間變量 直接使用MATLAB工作空間中的變量設(shè)置模塊參數(shù)。 使用變量的表達(dá)式設(shè)置模塊參數(shù)。 例如,如果a是定義在MATLAB中的變量,則表達(dá)式a、a2+5、exp(a)等均可以作為系統(tǒng)模塊的參數(shù),將信號(hào)輸出到MATLAB工作空間中 使用示波器模塊Scope的輸出信號(hào),可以使用戶對(duì)輸出的信號(hào)進(jìn)行簡單的定性分析。 使用Sinks模塊庫中的To Workspace 模塊,可以輕易地將信號(hào)輸出到MATLAB工作空間中。信號(hào)輸出的名稱在To Wo

11、rkspace模塊的對(duì)話框中設(shè)置,此對(duì)話框還可以設(shè)置輸出數(shù)據(jù)的點(diǎn)數(shù)、輸出的間隔,以及輸出數(shù)據(jù)的類型等。其中輸出類型有三種形式:數(shù)組、結(jié)構(gòu)以及帶有時(shí)間變量的結(jié)構(gòu)。仿真結(jié)束或暫停時(shí)信號(hào)被輸出到工作空間中。,使用工作空間變量作為系統(tǒng)輸入信號(hào) Simulink與MATLAB的數(shù)據(jù)交互是相互的,除了可以將信號(hào)輸出到MATLAB工作空間中之外,用戶還可以使用MATLAB工作空間中的變量作為系統(tǒng)模型的輸入信號(hào)。使用Sources模塊庫中的From Workspace模塊可以將MATLAB工作空間中的變量作為系統(tǒng)模型的輸入信號(hào)。此變量的格式如下所示: t=0:0.1:10; x=sin(t); input=t

12、,x; 系統(tǒng)輸入信號(hào)input的作用相當(dāng)于Sources模塊中的Sine Wave模塊,向量與矩陣 Simulink所使用的信號(hào)可以是標(biāo)量也能夠傳遞和使用向量信號(hào)。例如,向量增益可以作用在一個(gè)標(biāo)量信號(hào)上,產(chǎn)生一個(gè)向量輸出。 Simulink 最重要的特性就是支持矩陣形式的信號(hào),它可以區(qū)分行和列向量并傳遞矩陣。通過對(duì)模塊做適當(dāng)?shù)呐渲?,可以使模塊能夠接受矩陣作為模塊參數(shù)。,MATLAB Function與Function模塊 除了使用上述的方式進(jìn)行Simulink與MATLAB之間的數(shù)據(jù)交互,用戶還可以使用Functions and Tables 模塊庫中的 Function模塊(簡稱為Fcn模塊

13、)或Functions and Tables 模塊庫中的MATLAB Function模塊(簡稱為MATLAB Fcn模塊)進(jìn)行彼此間的數(shù)據(jù)交互。 Fcn模塊一般用來實(shí)現(xiàn)簡單的函數(shù)關(guān)系,在Fcn模塊中: (1) 輸入總是表示成u,u可以是一個(gè)向量。 (2)可以使用 C 語言表達(dá)式,例如sin(u1)+cos(u2)。 (3) 輸出永遠(yuǎn)為一個(gè)標(biāo)量。,(2) 可以使用 C 語言表達(dá)式,例如sin(u1)+cos(u2)。 (3) 輸出永遠(yuǎn)為一個(gè)標(biāo)量。 MATLAB Fcn一般用來調(diào)用MATLAB函數(shù)來實(shí)現(xiàn)一定的功能,在MATLAB Fcn模塊中: (1) 所要調(diào)用的函數(shù)只能有一個(gè)輸出(可以是一個(gè)向

14、量)。 (2) 單輸入函數(shù)只需使用函數(shù)名,多輸入函數(shù)輸入需要引用相應(yīng)的元素,如mean、sqrt、myfunc(u(1),u(2)。 (3) 在每個(gè)仿真步長內(nèi)都需要調(diào)用MATLAB解釋器。 使用Fcn模塊與MATLAB Fcn模塊進(jìn)行Simulink與MATLAB之間的數(shù)據(jù)交互。,使用Fcn與MATLAB Fcn模塊進(jìn)行數(shù)據(jù)交互,6 Scope高級(jí)使用技術(shù),1) Scope的參數(shù)設(shè)置 使用Scope模塊的參數(shù)設(shè)置選項(xiàng)卡能夠?qū)ο到y(tǒng)仿真輸出結(jié)果顯示進(jìn)行更多的控制,而不僅僅是上述的簡單控制。圖36、圖37所示分別為Scope模塊參數(shù)設(shè)置選項(xiàng)卡中的General選項(xiàng)卡與Data History選項(xiàng)卡。

15、,Scope模塊的General選項(xiàng)卡,Scope模塊的Data history選項(xiàng)卡,下面簡單介紹一下各選項(xiàng)卡的功能與使用。 1) 坐標(biāo)系數(shù)目(Number of axes) 功能描述:在一個(gè)Scope輸出模塊中使用多個(gè)坐標(biāo)系窗口同時(shí)輸出多個(gè)信號(hào)。在默認(rèn)設(shè)置下,Scope模塊僅顯示一個(gè)坐標(biāo)系窗口。 2) 懸浮Scope開關(guān)(Floating scope) 功能描述:將Scope模塊切換為懸浮Scope模塊。,3) 顯示時(shí)間范圍(Time range) 功能描述:設(shè)置信號(hào)顯示的時(shí)間范圍。注意:信號(hào)顯示的時(shí)間范圍與系統(tǒng)仿真時(shí)間范圍并不等同,并且坐標(biāo)系所示的時(shí)間范圍并非為絕對(duì)時(shí)間,而是指相對(duì)時(shí)間范

16、圍,坐標(biāo)系的左下角的時(shí)間偏移(Time offset)給出了時(shí)間的起始偏移量(即顯示時(shí)間范圍的起始時(shí)刻)。 4) 坐標(biāo)系標(biāo)簽(Tick labels) 功能描述:確定Scope模塊中各坐標(biāo)系是否帶有坐標(biāo)軸標(biāo)簽。 下方坐標(biāo)系使用標(biāo)簽(bottom axis only)以及都不使用標(biāo)簽(none)。用戶最好使用標(biāo)簽,這有利于對(duì)信號(hào)的觀察理解.,5) 信號(hào)顯示點(diǎn)數(shù)限制(Limit data points to last) 功能描述:限制信號(hào)顯示的數(shù)據(jù)點(diǎn)的數(shù)目,Scope模塊會(huì)自動(dòng)對(duì)信號(hào)進(jìn)行截取以顯示信號(hào)的最后n個(gè)點(diǎn)(這里n為設(shè)置的數(shù)值)。,6) 保存信號(hào)至工作空間變量(Save data to wo

17、rkspace) 功能描述:將由Scope模塊顯示的信號(hào)保存到Matlab工作空間變量中,以便于對(duì)信號(hào)進(jìn)行更多的定量分析。數(shù)據(jù)保存類型有三種:帶時(shí)間變量的結(jié)構(gòu)體(structure with time)、結(jié)構(gòu)體(structure)以及數(shù)組變量(Array)。這與前面所介紹的Sinks模塊庫中的To workspace模塊類似。,此外,在Scope模塊中的坐標(biāo)系中單擊鼠標(biāo)右鍵,選擇彈出菜單中坐標(biāo)系屬性設(shè)置命令(axes properties),將彈出下圖所示的坐標(biāo)系屬性設(shè)置對(duì)話框。用戶可以對(duì)Scope模塊的坐標(biāo)系標(biāo)題與顯示信號(hào)范圍進(jìn)行合適的設(shè)置,以滿足仿真輸出結(jié)果顯示的需要。,坐標(biāo)系屬性設(shè)置對(duì)

18、話框,設(shè)置信號(hào)顯,示幅值范圍,坐標(biāo)系標(biāo)題:一,般采用信號(hào)名稱,7 S函數(shù)的設(shè)計(jì)和調(diào)用,S函數(shù)是擴(kuò)展Simulink功能的強(qiáng)有力工具,它使用戶可以利用MATLAB、C語言、C+語言等程序創(chuàng)建自己定義的Simulink模塊。C,C+,Ada,and Fortan S-Functions需要編譯為Mex文件,就和其它MEX文件一樣,Simulink可以隨時(shí)動(dòng)態(tài)的調(diào)用這些文件。 S函數(shù)使用的是一種比較特殊的調(diào)用格式,可以和Simulink求解器交互式操作。S-Functions功能非常全面,適用于連續(xù)、離散以及混合系統(tǒng)。 S函數(shù)允許用戶向模型中添加自己編寫的模塊,只要按照一些簡單的規(guī)則,就可以在S-F

19、unctions添加設(shè)計(jì)算法。在編寫好S-Functions之后就可以在S-Functions模塊中添加相應(yīng)得函數(shù)名,也可以通過封裝技術(shù)來訂制自己的交互界面。,S函數(shù)的調(diào)用,在Simulink使用S-Functions的方法就是從Simulink中的User-Defined Functions模塊庫中向Simulink模型文件窗口中拖放S-Function模塊。然后在S-Functions模塊的對(duì)話框中的S-Functions Name框中輸入S函數(shù)的文件名,在S-Functions Parameters框中輸入S函數(shù)的參數(shù)值。 在點(diǎn)擊edit的選項(xiàng)后可以編輯S函數(shù)的代碼部分,利用S函數(shù)實(shí)現(xiàn)需

20、要的功能主要是代碼部分的修改。,對(duì)于代碼部分的修改,可以使用MATLAB語言按照S-Functions的格式來編寫代碼。MATLAB提供了一個(gè)模板文件,方便S-Function的編寫,該模板文件位于MATLAB根目錄toolbox/Simulink/blocks下,模板函數(shù)的代碼如下: function sys,x0,str,ts = sfuntmpl(t,x,u,flag) switch flag, case 0, sys,x0,str,ts=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); case 2, sys=mdlUpdat

21、e(t,x,u);,case 3, sys=mdlOutputs(t,x,u); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error(Unhandled flag = ,num2str(flag); end,function sys,x0,str,ts=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs = 0

22、; sizes.NumInputs = 0; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = ; str = ; ts = 0 0;,function sys=mdlDerivatives(t,x,u) sys = ; function sys=mdlUpdate(t,x,u) sys = ; function sys=mdlOutputs(t,x,u) sys = ; function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1

23、; sys = t + sampleTime; function sys=mdlTerminate(t,x,u) sys = ;,M文件S-Functions可用的子函數(shù)說明如下: (1)mdlInitializeSizes:定義S-Function模塊的基本特性,包括采樣時(shí)間、連續(xù)或者離散狀態(tài)的初始條件和sizes數(shù)組。 (2)mdlDerivatives:計(jì)算連續(xù)狀態(tài)變量的微分方程。 (3)mdlUpdate:更新離散狀態(tài)、采樣時(shí)間和主時(shí)間同步的要求。 (4)mdlOutputs:計(jì)算S-Function的輸出。 (5)mdlGetTimeOfNextVarHit: 計(jì)算下一個(gè)采樣時(shí)間點(diǎn)的

24、絕對(duì)時(shí)間。 (6)mdlTerminate:結(jié)束仿真任務(wù)。,S-function默認(rèn)的4個(gè)輸入?yún)?shù)t、x、u和flag,他們的次序不能變動(dòng),各自代表的意義是: t:表示當(dāng)前仿真時(shí)刻,是采用絕對(duì)計(jì)量的時(shí)間值,是從仿真開始模型運(yùn)行時(shí)間的計(jì)量值。 x:模塊的狀態(tài)向量,包括連續(xù)狀態(tài)向量和離散狀態(tài)向量。 u:模塊的輸入向量。 flag:執(zhí)行不同操作的標(biāo)記變量。,S-Function默認(rèn)的4個(gè)返回參數(shù)為sys、x0、str和ts,他們的次序也不能改變,代表的意義為: sys:通用返回函數(shù); x0:初始狀態(tài)值,當(dāng)flag的值為0時(shí)才有效; str:沒有明確定義,是Math Works為將來應(yīng)用所作的保留。

25、ts:一個(gè)m2矩陣,它的兩列分別表示采樣時(shí)間間隔和偏移。,8 使用命令操作對(duì)系統(tǒng)進(jìn)行仿真,支持命令窗口運(yùn)行仿真的函數(shù)有4個(gè),即sim、simset、simget和set_param。 (1)sim函數(shù) sim函數(shù)的作用是運(yùn)行一個(gè)由Simulink建立的模型, 其調(diào)用格式為: t, x, y =sim(modname,timespan,options,ut);,其中, t為返回的仿真時(shí)間向量; x為返回的狀態(tài)矩陣; y為返回的輸出矩陣; modname為系統(tǒng)Simulink模型文件名; timespan為仿真時(shí)間; options為仿真參數(shù)選擇項(xiàng),由simset設(shè)置; ut為選擇外部產(chǎn)生輸入,u

26、t=T,u1,u2,un。,說明 上述參數(shù)中,若省略timespan,options,ut則由框圖模型的對(duì)話框Simulation Parameters設(shè)置仿真參數(shù)。,(2)simset函數(shù) simset 函數(shù)用來為sim函數(shù)建立或編輯仿真參數(shù)或規(guī)定算法,并把設(shè)置結(jié)果保存在一個(gè)結(jié)構(gòu)變量中。它有如下4種用法: (a) options=simset(property,value,):把property代表的參數(shù)賦值為value,結(jié)果保存在結(jié)構(gòu)options中。 (b) options=simset(old_opstruct,property,value,):把已有的結(jié)構(gòu)old_opstruct(由

27、simset產(chǎn)生)中的參數(shù)property重新賦值為value,結(jié)果保存在新結(jié)構(gòu)options中。 (c) options=simset(old_opstruct,new_opstruct):用結(jié)構(gòu)new_opstruct的值替代已經(jīng)存在的結(jié)構(gòu)old_opstruct的值。 (d) simset:顯示所有的參數(shù)名和它們可能的值。,(3) simget函數(shù) simget函數(shù)用來獲得模型的參數(shù)設(shè)置值。如果參數(shù)值是用一個(gè)變量名定義的,simget返回的也是該變量的值而不是變量名。如果該變量在工作空間中不存在(即變量未被賦值),則Simulink給出一個(gè)出錯(cuò)信息。該函數(shù)有如下3種用法: (a) str

28、uct=simget(modname):返回指定模型model的參數(shù)設(shè)置的options結(jié)構(gòu)。 (b) value=simget(modname,property):返回指定模型model的參數(shù)property的值。 (c) value=simget(options,property):獲取options結(jié)構(gòu)中的參數(shù)property的值。如果在該結(jié)構(gòu)中未指定該參數(shù),則返回一個(gè)空陣。 用戶只需輸入能夠唯一識(shí)別它的那個(gè)參數(shù)名稱的前幾個(gè)字符即可,對(duì)參數(shù)名稱中字母的大小寫不作區(qū)別。,(4) set_param函數(shù) set_param函數(shù)的功能很多,這里只介紹如何用set_param函數(shù)設(shè)置Simuli

29、nk仿真參數(shù)以及如何開始、暫停、終止仿真進(jìn)程或者更新顯示一個(gè)仿真模型。 (a) 設(shè)置仿真參數(shù) 調(diào)用格式為: set_param(modname,property,value,) 其中modname為設(shè)置的模型名,property為要設(shè)置的參數(shù),value是設(shè)置值。這里設(shè)置的參數(shù)可以有很多種,而且和用simset設(shè)置的內(nèi)容不盡相同,相關(guān)參數(shù)的設(shè)置可以參考有關(guān)資料。 (b) 控制仿真進(jìn)程 調(diào)用格式為: set_param(modname,SimulationCommand,cmd) 其中mode為仿真模型名稱,而cmd是控制仿真進(jìn)程的各個(gè)命令,包括start、stop、pause、comtinue

30、或update。 在使用這兩個(gè)函數(shù)的時(shí)候,需要注意必須先把模型打開。,第7章 Simulink的應(yīng)用,7.1 Simulink工作平臺(tái)的啟動(dòng) 7.2 Simulink仿真原理 7.3 Simulink模塊庫 7.4 仿真模型的建立和模塊參數(shù)及屬性的設(shè)置 7.5 其他應(yīng)用模塊集及Simulink擴(kuò)展庫,7.1 Simulink工作平臺(tái),啟動(dòng)Simulink,通常有兩種方法: (1)在MATLAB命令窗口中直接輸入Simulink命令; (2)在MATLAB工具欄上單擊Simulink按鈕,如圖7.1所示。,圖7.1 啟動(dòng)Simulink,這樣就可打開了Simulink的Simulink Libr

31、ary Brower(庫模塊瀏覽器),如圖7.2所示。在菜單欄中執(zhí)行File/New/Model命令,就建立了一個(gè)名為untitled的模型窗口,如圖7.3所示。在建立了空的模塊窗口后,用戶可以在此窗口中創(chuàng)建自己需要的Simulink模型。,圖7.2庫模塊瀏覽器,圖7.3 新建的空白模塊窗口,7.2Simulink的仿真原理,7.2.1 Simulink仿真模塊 通常,Simulink仿真系統(tǒng)包括輸入(Input)、狀態(tài)(states)和輸出(Output)三個(gè)部分。,輸入模塊:即信號(hào)源模塊,包括常數(shù)字信號(hào)源和用戶自定義信號(hào); 狀態(tài)模塊:即被模擬的系統(tǒng)模塊,是系統(tǒng)建模的核心和主要部分; 輸出模

32、塊:即信號(hào)顯示模塊,它能夠以圖形方式、文件格式進(jìn)行顯示。,注意:在設(shè)計(jì)一個(gè)模型時(shí),必須先確定這三個(gè)部分的意,以及它們之間的聯(lián)系;Simulink的仿真模型并非一定要完全包括這三個(gè)部分,它可以缺少其中一個(gè)或者兩個(gè); Simulink的狀態(tài)模塊可以是連續(xù)的、離散的,或者它們二者的結(jié)合。,7.2.2 Simulink仿真過程 1初始化階段 對(duì)模型的參數(shù)進(jìn)行估計(jì),得到它們實(shí)際計(jì)算的值。 展開模型的各個(gè)層次; 按照更新的次序?qū)δP瓦M(jìn)行排序; 確定那些顯式化的信號(hào)屬性,并檢查每個(gè)模塊是否能夠接受連接它們輸入端的信號(hào); 確定所有非顯式的信號(hào)采樣時(shí)間模塊的采樣時(shí)間; 分配和初始化存儲(chǔ)空間,以便存儲(chǔ)每個(gè)模塊的狀

33、態(tài)和當(dāng)前值的輸出。,2模型執(zhí)行階段 模型仿真是通過數(shù)值積分來進(jìn)行完成的,計(jì)算數(shù)值積分可以采用以下兩步來進(jìn)行: 按照秩序計(jì)算每個(gè)模塊的積分; 根據(jù)當(dāng)前輸入和狀態(tài)來決定狀態(tài)的微分,得到微分矢量,然后把它返回給解法器,以計(jì)算下一個(gè)采樣點(diǎn)的狀態(tài)矢量。在每一個(gè)時(shí)間步中,Simulink依次解決下列問題: 按照秩序更新模塊的輸出; 按照秩序更新模塊的狀態(tài); 檢查模塊連續(xù)狀態(tài)的不連續(xù)點(diǎn); 計(jì)算下一個(gè)仿真時(shí)間步的時(shí)間。,7.3.1 連續(xù)模塊庫(Continuous) 在連續(xù)模塊(Continuous)庫中包括了常見的連續(xù)模塊,這些模塊如圖所示。,7.3 Simulink模塊庫,在庫模塊瀏覽器中單擊Simuli

34、nk前面的“+”號(hào),就能夠看到Simulink的模塊庫,如圖7.2所示。,4. 傳遞函數(shù)模塊(Transfer Fcn) 功能:用執(zhí)行一個(gè)線性傳遞函數(shù)。 5. 零極點(diǎn)傳遞函數(shù)模塊(Zero-Pole) 功能:用于建立一個(gè)預(yù)先指定的零點(diǎn)、極點(diǎn),并用延遲算子s表示的連續(xù)。 6存儲(chǔ)器模塊(Memory) 功能:保持輸出前一步的輸入值。 7傳輸延遲模塊(Transport Delay) 功能:用于將輸入端的信號(hào)延遲指定的時(shí)間后再傳輸給輸出信號(hào)。 8可變傳輸延遲模塊(Variable Transport Delay) 功能:用于將輸入端的信號(hào)進(jìn)行可變時(shí)間的延遲。,1. 積分模塊(Integrator):

35、 功能:對(duì)輸入變量進(jìn)行積分。說明:模塊的輸入可以是標(biāo)量,也可以是矢量;輸入信號(hào)的維數(shù)必須與輸入信號(hào)保持一致。 2. 微分模塊(Derivative) 功能:通過計(jì)算差分u/ t近似計(jì)算輸入變量的微分。 3. 線性狀態(tài)空間模塊(State-Space) 功能:用于實(shí)現(xiàn)以下數(shù)學(xué)方程描述的系統(tǒng):,7.3.2 離散模塊庫(Discrete) 離散模塊庫(Discrete)主要用于建立離散采樣的系統(tǒng)模型,包括的主要模塊,如圖所示。,1零階保持器模塊(Zero-Order-Hold) 功能:在一個(gè)步長內(nèi)將輸出的值保持在同一個(gè)值上。,2單位延遲模塊(Unit Delay) 功能:將輸入信號(hào)作單位延遲,并且保

36、持一個(gè)采樣周期相當(dāng)于時(shí)間算子z-1 。 3離散時(shí)間積分模塊(Discrete Time Integrator) 功能:在構(gòu)造完全離散的系統(tǒng)時(shí),代替連續(xù)積分的功能。使用的積分方法有:向前歐拉法、向后歐拉法、梯形法。 4離散狀態(tài)空間模塊(Discrete State Space) 功能:用于實(shí)現(xiàn)如下數(shù)學(xué)方程描述的系統(tǒng):,5離散濾波器模塊(Discrete Filter) 功能:用于實(shí)現(xiàn)無限脈沖響應(yīng)(IIR)和有限脈沖響應(yīng)(FIR)的數(shù)字濾波器。 6離散傳遞函數(shù)模塊(Discrete Transfer Fcn) 功能:用于執(zhí)行一個(gè)離散傳遞函數(shù)。 7離散零極點(diǎn)傳遞函數(shù)模塊(Discrete Zero-

37、Pole) 功能:用于建立一個(gè)預(yù)先指定的零點(diǎn)、極點(diǎn),并用延遲算子z-1表示的離散系統(tǒng)。 8一階保持器模塊(First Order Hold) 功能:在一定時(shí)間間隔內(nèi)保持一階采樣。,7.3.3 函數(shù)與表格模塊庫(Function & Table) 函數(shù)與表格模塊庫(Function & Table)主要實(shí)現(xiàn)各種一維、二維或者更高維函數(shù)的查表,另外用戶還可以根據(jù)自己需要?jiǎng)?chuàng)建更復(fù)雜的函數(shù)。該模塊庫包括多個(gè)主要模塊、如圖7.7所示。,1. 一維查表模塊(Look-Up Table) 一維查表模塊(Look-Up Table)實(shí)現(xiàn)對(duì)單路輸入信號(hào)的查表和線性插值。 2二維查表模塊(Look-Up Tabl

38、e 2-D) 功能:根據(jù)給定的二維平面網(wǎng)格上的高度值,把輸入的兩個(gè)變量經(jīng)過查表、插值,計(jì)算出模塊的輸出值,并返回這個(gè)值。 說明:對(duì)二維輸入信號(hào)進(jìn)行分段線性變換。,3自定義函數(shù)模塊(Fcn) 功能:用于將輸入信號(hào)進(jìn)行指定的函數(shù)運(yùn)算,最后計(jì)算出模塊的輸出值。 說明:輸入的數(shù)學(xué)表達(dá)式應(yīng)符合C語言編程規(guī)范;與MATLAB中的表達(dá)式有所不同,不能完成矩陣運(yùn)算。 4MATLAB函數(shù)模塊(MATLAB Fcn) 功能:對(duì)輸入信號(hào)進(jìn)行MATLAB函數(shù)及表達(dá)式的處理。 說明:模塊為單輸入模塊;能夠完成矩陣運(yùn)算。 注意:從運(yùn)算速度角度,Math function模塊要比Fcn模塊慢。當(dāng)需要提高速度時(shí),可以考慮采用

39、Fcn 或者S函數(shù)模塊。 5S-函數(shù)模塊(S-Function) 功能:按照Simulink標(biāo)準(zhǔn),編寫用戶自己的Simulink函數(shù)。它能夠?qū)ATLAB語句、C語言等編寫的函數(shù)放在Simulink模塊中運(yùn)行,最后計(jì)算模塊的輸出值。,7.3.4 數(shù)學(xué)模塊庫(Math) 數(shù)學(xué)模塊庫(Math)包括多個(gè)數(shù)學(xué)運(yùn)算模塊,如圖7.8所示。,3. 矢量的點(diǎn)乘模塊(Dot Product) 功能:矢量的點(diǎn)乘模塊(Dot Product)用于實(shí)現(xiàn)輸入信號(hào)的點(diǎn)積運(yùn)算。 4. 增益模塊(Gain) 功能:增益模塊(Gain)的作用是把輸入信號(hào)乘以一個(gè)指定的增益因子,使輸入產(chǎn)生增益。,1. 求和模塊(Sum) 功能

40、:求和模塊(Sum)用于對(duì)多路輸入信號(hào)進(jìn)行求和運(yùn)算,并輸出結(jié)果。 2. 乘法模塊(Product) 功能:乘法模塊(Product)用于實(shí)現(xiàn)對(duì)多路輸入的乘積、商、矩陣乘法或者模塊的轉(zhuǎn)置等。,5. 常用數(shù)學(xué)函數(shù)模塊(Math Function) 功能:用于執(zhí)行多個(gè)通用數(shù)學(xué)函數(shù),其中包含exp、log、log10、square、sqrt、pow、reciprocal、hypot、rem、mod等。,6. 三角函數(shù)模塊(Trigonometric Function) 功能:用于對(duì)輸入信號(hào)進(jìn)行三角函數(shù)運(yùn)算,共有10種三角函數(shù)供選擇。 7. 特殊數(shù)學(xué)模塊 特殊數(shù)學(xué)模塊中包括求最大最小值模塊(MinMax

41、)、取絕對(duì)值模塊(Abs)、符號(hào)函數(shù)模塊(Sign)、取整數(shù)函數(shù)模塊(Rounding Function)等。 8. 數(shù)字邏輯函數(shù)模塊 數(shù)字邏輯函數(shù)模塊包括復(fù)合邏輯模塊(Combinational Logic)、邏輯運(yùn)算符模塊(Logical Operator)、位邏輯運(yùn)算符模塊(Bitwise Logical Operator)等。 9. 關(guān)系運(yùn)算模塊(Relational Operator) 關(guān)系符號(hào)包括:=(等于)、(不等于)、(大于)、=(大于等于)等。,10. 復(fù)數(shù)運(yùn)算模塊 復(fù)數(shù)運(yùn)算模塊包括計(jì)算復(fù)數(shù)的模與幅角(Complex to Magnitude-Angle)、由模和幅角計(jì)算復(fù)數(shù)

42、(Magnitude-Angle to Complex)、提取復(fù)數(shù)實(shí)部與虛部模塊(Complex to Real and Image)、由復(fù)數(shù)實(shí)部和虛部計(jì)算復(fù)數(shù)(Real and Image to Complex)。,7.3.5非線性模塊(Nonlinear) 非線性模塊(Nonlinear)中包括一些常用的非線性模塊,如圖7.9所示。,1. 比率限幅模塊(Rate Limiter) 功能:用于限制輸入信號(hào)的一階導(dǎo)數(shù),使得信號(hào)的變化率不超過規(guī)定的限制值。 2飽和度模塊(Saturation) 功能:用于設(shè)置輸入信號(hào)的上下飽和度,即上下限的值,來約束輸出值。 3量化模塊(Quantizer) 功

43、能:用于把輸入信號(hào)由平滑狀態(tài)變成臺(tái)階狀態(tài)。,4死區(qū)輸出模塊(Dead Zone) 功能:在規(guī)定的區(qū)內(nèi)沒有輸出值。 5繼電模塊(Relay) 功能:繼電模塊(Relay)用于實(shí)現(xiàn)在兩個(gè)不同常數(shù)值之間進(jìn)行切換。 6選擇開關(guān)模塊(Switch) 功能:根據(jù)設(shè)置的門限來確定系統(tǒng)的輸出。,7.3.6 信號(hào)與系統(tǒng)模塊庫(signals &Systems) 信號(hào)與系統(tǒng)模塊庫(signals &Systems)包括的主要模塊如圖7.11所示。,1. Bus 信號(hào)選擇模塊(Bus Selector) 功能:用于得到從Mux模塊或其它模塊引入的Bus信號(hào)。 2. 混路器模塊(Mux) 功能:把多路信號(hào)組成一個(gè)矢量

44、信號(hào)或者Bus信號(hào)。 3.分路器模塊(Demux) 功能:把混路器組成的信號(hào)按照原來的構(gòu)成方法分解成多路信號(hào)。 4. 信號(hào)合成模塊(Merge) 功能:把多路信號(hào)進(jìn)行合成一個(gè)單一的信號(hào)。 5. 接收/傳輸信號(hào)模塊(From/Goto) 功能:接收/傳輸信號(hào)模塊(From/Goto)常常配合使用, From模塊用于從一個(gè)Goto模塊中接收一個(gè)輸入信號(hào),Goto模塊用于把輸入信號(hào)傳遞給From模塊。 6初始值設(shè)定模塊(IC) 功能:初始值設(shè)定模塊(IC)用于設(shè)定與輸出端口連接的模塊的初始值。,7.3.7 信號(hào)輸出模塊(Sinks) 信號(hào)輸出模塊(Sinks)包括的主要模塊如圖7.12所示。,圖7.

45、12 輸出顯示模塊庫,1. 示波器模塊(Scope) 功能:顯示在仿真過程中產(chǎn)生的輸出信號(hào),用于在示波器中顯示輸入信號(hào)與仿真時(shí)間的關(guān)系曲線,仿真時(shí)間為x軸。 2. 二維信號(hào)顯示模塊(XY Graph) 功能:在MATLAB的圖形窗口中顯示一個(gè)二維信號(hào)圖,并將兩路信號(hào)分別作為示波器坐標(biāo)的x軸與y 軸,同時(shí)把它們之間的關(guān)系圖形顯示出來。 3. 顯示模塊(Display) 功能:按照一定的格式顯示輸入信號(hào)的值??晒┻x擇的輸出格式包括:short、long、short_e、long_e、bank等。,4. 輸出到文件模塊(To File) 功能:按照矩陣的形式把輸入信號(hào)保存到一個(gè)指定的MAT文件。第一

46、行為仿真時(shí)間,余下的行則是輸入數(shù)據(jù),一個(gè)數(shù)據(jù)點(diǎn)是輸入矢量的一個(gè)分量。 5. 輸出到工作空間模塊(To Workspace) 功能:把信號(hào)保存到MATLAB的當(dāng)前工作空間,是另一種輸出方式。 6. 終止信號(hào)模塊(Terminator) 功能:中斷一個(gè)未連接的信號(hào)輸出端口。 7. 結(jié)束仿真模塊(Stop simulation) 功能:停止仿真過程。當(dāng)輸入為非零時(shí),停止系統(tǒng)仿真。,7.3.8信號(hào)源模塊庫(Sources) 信號(hào)源模塊庫(Sources)包括的主要模塊如圖7.13所示。,圖7.13 信號(hào)源模塊庫,1輸入常數(shù)模塊(Constant) 功能:產(chǎn)生一個(gè)常數(shù)。該常數(shù)可以是實(shí)數(shù),也可以是復(fù)數(shù)。

47、2信號(hào)源發(fā)生器模塊(Signal Generator) 功能:產(chǎn)生不同的信號(hào),其中包括:正弦波、方波、鋸齒波信號(hào)。 3從文件讀取信號(hào)模塊(From File) 功能:從一個(gè)MAT文件中讀取信號(hào),讀取的信號(hào)為一個(gè)矩陣,其矩陣的格式與To File模塊中介紹的矩陣格式相同。如果矩陣在同一采樣時(shí)間有兩個(gè)或者更多的列,則數(shù)據(jù)點(diǎn)的輸出應(yīng)該是首次出現(xiàn)的列。,4從工作空間讀取信號(hào)模塊(From Workspace) 功能:從MATLAB工作空間讀取信號(hào)作為當(dāng)前的輸入信號(hào)。 5隨機(jī)數(shù)模塊(Random Number) 功能:產(chǎn)生正態(tài)分布的隨機(jī)數(shù),默認(rèn)的隨機(jī)數(shù)是期望為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布量。 6帶寬限制白

48、噪聲模塊(Band Limited White Noise) 功能:實(shí)現(xiàn)對(duì)連續(xù)或者混雜系統(tǒng)的白噪聲輸入。 7其它模塊 除以上介紹的常用模塊外,還包括其模塊。各模塊功能可通過以下方法查看:先進(jìn)入Simulink工作窗口,在菜單中執(zhí)行Help/Simulink Help命令,這時(shí)就會(huì)彈出Help界面。然后用鼠標(biāo)展開Using SimulinkBlock ReferenceSimulink BlockLibraries就可以看到Simulink的所有模塊。查看相應(yīng)的模塊的使用方法和說明信息即可。,7.4 仿真模型的建立與模塊參數(shù)與屬性的設(shè)置,1. 仿真模塊的建立 首先啟動(dòng)Simulink命令,建立一

49、個(gè)空的模塊窗口“untitled” ,然后利用Simulink提供的模塊庫,在此窗口中創(chuàng)建自己需要的Simulink模型。 具體方法:在模塊庫瀏覽器中找到所需模塊,選中該模塊后右擊鼠標(biāo),把它加入到一個(gè)模型窗口中即可完成模塊的建立。,圖7.14添加模塊,2. 模塊參數(shù)與屬性的設(shè)置 方法:在所建立的模型窗口中,選中相應(yīng)的模塊,單擊右擊鼠標(biāo),在彈出的快捷菜單中單擊“Block parameters”選項(xiàng)(如圖7.15所示),即可打開該模塊的參數(shù)設(shè)置對(duì)話框,如圖7.16(a)所示。右擊鼠標(biāo),在彈出的快捷菜單中單擊“Block Properties”選項(xiàng),即可打開該模塊的屬性設(shè)置對(duì)話框,如圖7.16(b

50、)所示。,圖7.15 Block paramenters選項(xiàng),3.模塊的連接,一般情況下,每個(gè)模塊都有一個(gè)或者多個(gè)輸入口或者輸出口。輸入口通常是模塊的左邊的“”符號(hào);輸出口是右邊的“”符號(hào)。 模塊的連接方法:把鼠標(biāo)指針放到模塊的輸出口,這時(shí),鼠標(biāo)指針將變?yōu)椤?”十字形;然后,拖運(yùn)鼠標(biāo)至其它模塊的輸入口,這時(shí)信號(hào)線就變成了帶有方向箭頭的線段。此時(shí),說明這兩個(gè)模塊的連接成功,否則需要重新進(jìn)行連接。,4.運(yùn)行仿真 在運(yùn)行仿真之前,首先保存已設(shè)置和連接的模型,然后就可以運(yùn)行仿真。,1. Simulink仿真注意 (1)Simulink的數(shù)據(jù)類型 由于Simulink在仿真過程中,始終都要檢查模型的類型

51、安全性。模型的類型安全性是指從該模型產(chǎn)生的代碼不出現(xiàn)上溢或者下溢現(xiàn)象,當(dāng)產(chǎn)生溢出現(xiàn)象時(shí),系統(tǒng)將出錯(cuò)誤。查看模塊的數(shù)據(jù)類型的方法是:在模型窗口的菜單中執(zhí)行Format/Port Data Types命令,這樣每個(gè)模塊支持的數(shù)據(jù)類型就顯示出來了。要取消數(shù)據(jù)類型的查看方式,單擊Port Data Types去掉其前面的勾號(hào)即可。,7.4.3 Simulink仿真注意與技巧,圖7.23 查看模塊支持的數(shù)據(jù)類型,(2) 數(shù)據(jù)的傳輸 在仿真過程中,Simulink首先查看有沒有特別設(shè)置的信號(hào)的數(shù)據(jù)類型,以及檢驗(yàn)信號(hào)的輸入和輸出端口的數(shù)據(jù)類型是否產(chǎn)生沖突。如果有沖突,Simulink將停止仿真,并給出一個(gè)出

52、錯(cuò)提示對(duì)話框,在此對(duì)話框中將顯示出錯(cuò)的信號(hào)以及端口,并把信號(hào)的路徑以高亮顯示。遇到該情形,必須改變數(shù)據(jù)類型以適應(yīng)模塊的需要。,(3)提高仿真速度 Simulink仿真過程,仿真的性能受諸多因素的影響,包括模型的設(shè)計(jì)和仿真參數(shù)的選擇等。對(duì)于大多數(shù)問題,使用Simulink系統(tǒng)默認(rèn)的解法和仿真參數(shù)值就能夠比較好地解決。因素及解決方法: (1)仿真的時(shí)間步長太小。針對(duì)這種情況可以把最大仿真步長參數(shù)設(shè)置為默認(rèn)值auto。 (2)仿真的時(shí)間過長??勺们闇p小仿真的時(shí)間。 (3)選擇了錯(cuò)誤的解法。針對(duì)這種情況可以通過改變解法器來解決。 (4)仿真的精度要求過高。仿真時(shí),如果絕對(duì)誤差限度太小,則會(huì)使仿真在接近

53、零的狀態(tài)附近耗費(fèi)過多時(shí)間。通常,相對(duì)誤差限為0.1%就已經(jīng)足夠了。 (5)模型包含一個(gè)外部存儲(chǔ)塊。盡量使用內(nèi)置存儲(chǔ)模塊。,(4)改善仿真精度 檢驗(yàn)仿真精度的方法是:通過修改仿真的相對(duì)誤差限和絕對(duì)誤差限,并在一個(gè)合適的時(shí)間跨度反復(fù)運(yùn)行仿真,對(duì)比仿真結(jié)果有無大的變化,如果變化不大,表示解是收斂的。說明仿真的精度是有效的,結(jié)果是穩(wěn)定的。 如果仿真結(jié)果不穩(wěn)定,其原因可參是系統(tǒng)本身不穩(wěn)定或仿真解法不適合。如果仿真的結(jié)果不精確,其原因很可能是: (1)模型有取值接近零的狀態(tài)。如果絕對(duì)誤差過大,會(huì)使仿真在接近零區(qū)域運(yùn)行的仿真時(shí)間太小。解決的辦法是修改絕對(duì)誤差參數(shù)或者修改初始的狀態(tài)。 (2)如果改變絕對(duì)誤差限

54、還不能達(dá)到預(yù)期的誤差限,則修改相對(duì)誤差限,使可接受的誤差降低,并減小仿真的步長。,2. Simulink仿真技巧 連接分支信號(hào)線 先連接好單根信號(hào)線,然后將鼠標(biāo)指針放在已經(jīng)連接好的信號(hào)線上,同時(shí)按住“Ctrl”鍵,拖動(dòng)鼠標(biāo),連接到另一個(gè)模塊。這樣就可以根據(jù)需由一個(gè)信號(hào)源模塊,引出多條信號(hào)線。如圖7.28所示。,圖7.28 引出多條信號(hào)線示例,模塊的編輯技巧 (1)調(diào)整模塊大小 (2)在同一窗口復(fù)制模塊 (3)刪除模塊 (4)編輯模塊標(biāo)簽,7.5 其它應(yīng)用模塊集和Simulink擴(kuò)展庫,1. 通信模塊集(Communications Blockset),圖7.31 通信模塊集中的模塊庫,2數(shù)字信

55、號(hào)處理模塊集(DSP Blockset),3. 電力系統(tǒng)模塊集(Power System Blockset),4. Simulink擴(kuò)展庫,擴(kuò)展信號(hào)輸出模塊庫(Additional Sinks),圖7.35 擴(kuò)展信號(hào)輸出模塊庫,擴(kuò)展離散庫(Additional Discrete),擴(kuò)展線性庫(Additional Linear),圖7.36 擴(kuò)展離散庫,圖7.37 擴(kuò)展線性庫,轉(zhuǎn)換庫(Transformations),圖7.38 轉(zhuǎn)換模塊庫,觸發(fā)模塊庫(Flip Flops),圖7.39 觸發(fā)模塊庫,線性化庫(Linearization),圖7.40 線性化庫,宇航模塊庫(Airspace B

56、locks),圖7.41 宇航模塊庫,SIMULINK仿真基礎(chǔ),基本建模方法 連續(xù)系統(tǒng)建模 解微分方程,SIMULINK入門,MATLAB命令窗口運(yùn)行指令: simulink SIMULINK模塊庫瀏覽器: Simulink Library Browser Source子庫 建立一個(gè)簡單的仿真系統(tǒng),建立一個(gè)簡單的仿真系統(tǒng),點(diǎn)擊“新建”,建立新模型tst1 用鼠標(biāo)在信源模塊中選取sine wave,拖曳至tst1窗口 用鼠標(biāo)在信宿模塊中選取scope,拖曳至tst1窗口 連線 啟動(dòng)仿真,模塊的基本操作,模塊的選定 選定單個(gè)和選定多個(gè) 模塊的復(fù)制 復(fù)制/粘貼Ctrl鍵 模塊名操作 點(diǎn)擊模塊名 模塊

57、的樣式 Format菜單,簡單建模:,按住Ctrl,簡單建模:,支持向量顯示,Mux,支持標(biāo)量擴(kuò)展,插入模塊,SIMULINK模型,外表:直觀的方框圖 文件:MDL文件 數(shù)學(xué):微分方程或差分方程 行為:模擬物理過程的動(dòng)態(tài)性狀,加注釋,simulink模型的一般性結(jié)構(gòu),信 源,系 統(tǒng),信 宿,數(shù)值分析:積分模塊的應(yīng)用,積分模塊應(yīng)用:復(fù)位積分,負(fù)變正時(shí) 強(qiáng)迫清零,微分方程,構(gòu)造微分方程求解模型,Simulink電路仿真,Simulink 是MATLAB 的一個(gè)重要的工具箱,是結(jié)合了框圖界面和交互仿真能力的系統(tǒng)級(jí)設(shè)計(jì)和仿真工具。它以MATLAB 核心數(shù)學(xué),圖形和語言為基礎(chǔ),可以讓用戶完成從算法開發(fā),

58、仿真或者模型驗(yàn)證的全過程,而不需要傳遞數(shù)據(jù),重寫代碼或改變軟件環(huán)境。 在start進(jìn)入Simulink菜單,選擇 Simulink Library Browser,打開Simulink庫函數(shù),選擇 File New打開編輯窗口。 在MATLAB的 Command窗口直接鍵入Simulink即可打開Simulink工作窗口。 Simulink 作為面向框圖的仿真軟件,具有以下的功能和優(yōu)點(diǎn): (1)用方框圖的繪制代替了程序的編寫。構(gòu)成任何一個(gè)系統(tǒng)框圖有三個(gè)步驟,即選定典型環(huán)節(jié),相互聯(lián)結(jié)和給定環(huán)節(jié)參數(shù)。 (2)仿真的建立和運(yùn)行是智能化的。首先,畫好了框圖并存起來,Simulink自動(dòng)建立一個(gè)仿真的過

59、程;其次,在運(yùn)行時(shí)用戶可以不給步長,只給出要求的仿真精度,軟件會(huì)自動(dòng)選擇能保證給定精度的最大步長,使得在給定的精度要求下系統(tǒng)仿真具有最快的速度。,(3) 輸入輸出信號(hào)來源形式的多樣化。其輸入信號(hào)可以是各種信號(hào)發(fā)生器;也可以來自一個(gè)設(shè)定的記錄文件;還可以來自MATLAB的工作空間(workspace).輸出信號(hào)也類似,這就擴(kuò)大了仿真系統(tǒng)與各種外部軟件和硬件的接口能力。 Simulink工具箱中含有大量的仿真模塊集,例如Power System Blockset (PSB),DSP Blockset ,Communication Blockset,CDMA Reference Blockset, Nonlinear Control D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論