版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
(優(yōu)選)電機控制基于的仿真本文檔共191頁;當(dāng)前第1頁;編輯于星期二\16點39分1Simulink簡介Simulink是一個用來對動態(tài)系統(tǒng)進行建模、仿真和分析的軟件包。使用Simulink來建模、分析和仿真各種動態(tài)系統(tǒng)(包括連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng)),將是一件非常輕松的事情。它提供了一種圖形化的交互環(huán)境,只需用鼠標拖動的方法便能迅速地建立起系統(tǒng)框圖模型,甚至不需要編寫一行代碼。利用Simulink進行系統(tǒng)的建模仿真,其最大的優(yōu)點是易學(xué)、易用,并能依托MATLAB提供的豐富的仿真資源。本文檔共191頁;當(dāng)前第2頁;編輯于星期二\16點39分提供了仿真庫的擴充和定制機制Simulink的開放式結(jié)構(gòu)允許用戶擴展仿真環(huán)境的功能:采用MATLAB、FORTRAN和C代碼生成自定義模塊庫,并擁有自己的圖標和界面。與MATLAB工具箱的集成由于Simulink可以直接利用MATLAB的諸多資源與功能,因而用戶可以直接在Simulink下完成諸如數(shù)據(jù)分析、過程自動化、優(yōu)化參數(shù)等工作。本文檔共191頁;當(dāng)前第3頁;編輯于星期二\16點39分Simulink應(yīng)用領(lǐng)域本文檔共191頁;當(dāng)前第4頁;編輯于星期二\16點39分2Simulink啟動及模型建立Simulink的啟動主要有以下兩種方法:在MATLAB的命令窗口中輸入simulink,結(jié)果是在桌面上出現(xiàn)一個SimulinkLibraryBrowser的窗口。單擊MATLAB主窗口的快捷按鈕,打開SimulinkLibraryBrowser窗口。本文檔共191頁;當(dāng)前第5頁;編輯于星期二\16點39分Simulink模型窗口的建立
在Simulink中打開一個空白的模型窗口的方法:選中Simulink菜單系統(tǒng)中的File|New|Model菜單項后,會生成一個Simulink窗口;單擊Simulink工具欄中的“新建模型”圖標;在MATLAB的命令窗口中選擇File|New|NewModel菜單項;
本文檔共191頁;當(dāng)前第6頁;編輯于星期二\16點39分啟動Simulink,建立系統(tǒng)模型的基本操作依次表示新建、打開系統(tǒng)模型文件依次表示新建、打開與保存系統(tǒng)模型文件本文檔共191頁;當(dāng)前第7頁;編輯于星期二\16點39分Simulink的模塊庫Simulink的模塊庫能夠?qū)ο到y(tǒng)模塊進行有效的管理與組織可以直接將模塊庫中的模塊拖動或者拷貝到用戶的系統(tǒng)模型中以構(gòu)建動態(tài)系統(tǒng)模型。
模塊搜索
模塊描述
系統(tǒng)模塊
系統(tǒng)模塊庫
本文檔共191頁;當(dāng)前第8頁;編輯于星期二\16點39分Simulink公共模塊庫Simulink中最為基礎(chǔ)、最為通用的模塊庫,它可以被應(yīng)用到不同的專業(yè)領(lǐng)域中。
連續(xù)模塊continuous、非連續(xù)模塊discontinuous離散模塊discrete、查找表模塊Look-upTable數(shù)學(xué)運算MathOperations模型驗證模塊ModelVerification模型擴充工具Model-WideUtilities端口和子系統(tǒng)模塊Ports&Subsystems、信號屬性模塊SignalAttributes信號路由模塊SignalRouting、接收模塊Sinks輸入模塊Sources用戶自定義函數(shù)模塊User-DefinedFunctions本文檔共191頁;當(dāng)前第9頁;編輯于星期二\16點39分Simulink的部分專業(yè)模塊庫DSPBlockset數(shù)字信號處理工具包Fixed-PointBlockset定點運算控制系統(tǒng)仿真工具包PowerSystemBlockset電力電動系統(tǒng)工具包Dials&GaugesBlockset交互圖形和控制面板設(shè)計工具包CommunicationsBlockset通訊系統(tǒng)工具包CDMAReferenceBlocksetCDMACDMA通訊系統(tǒng)設(shè)計和分析工具包NonlinearControlDesignBlockset非線性控制設(shè)計工具箱MotorolaDSPDeveloper’sKitMotorolaDSP開發(fā)工具箱TIDSPDeveloper’sKitTIDSP開發(fā)工具箱本文檔共191頁;當(dāng)前第10頁;編輯于星期二\16點39分對Simulink庫瀏覽器的基本操作有:(1)使用鼠標左鍵單擊系統(tǒng)模塊庫,如果模塊庫為多層結(jié)構(gòu),則單擊“+”號載入庫。(2)使用鼠標右鍵單擊系統(tǒng)模塊庫,可在單獨的窗口打開庫。(3)使用鼠標左鍵單擊系統(tǒng)模塊,在模塊描述欄中顯示此模塊的描述。(4)使用鼠標右鍵單擊系統(tǒng)模塊,可以得到:系統(tǒng)模塊的幫助信息;將系統(tǒng)模塊插入到系統(tǒng)模型中;查看系統(tǒng)模塊的參數(shù)設(shè)置;以及回到系統(tǒng)模塊的上一層庫。
此外還可以進行以下操作:
(1)使用鼠標左鍵選擇并拖動系統(tǒng)模塊,并將其拷貝到系統(tǒng)模型中。
(2)在模塊搜索欄中搜索所需的系統(tǒng)模塊。本文檔共191頁;當(dāng)前第11頁;編輯于星期二\16點39分例:簡單系統(tǒng)的輸入為一個正弦波信號,輸出為此正弦波信號與一個常數(shù)的乘積。要求建立系統(tǒng)模型,并以圖形方式輸出系統(tǒng)運算結(jié)果。已知系統(tǒng)的數(shù)學(xué)描述為系統(tǒng)輸入:u(t)=sint,t≥0
系統(tǒng)輸出:y(t)=au(t),a≠0本文檔共191頁;當(dāng)前第12頁;編輯于星期二\16點39分相關(guān)操作:模塊庫SineWave來自sources;Gain來自MathOperations;Scope來自Sinks連接方法(1)拖動對應(yīng)端口進行連接(2)單擊起始模塊后,按Ctrl鍵再單擊目標模塊模塊復(fù)制傳統(tǒng)方式Ctrl+C/Ctrl+V、或Ctrl鍵再拖動模塊模塊插入對于單輸入單輸出模塊,只需將這個模塊移到線上就可以自動連接。本文檔共191頁;當(dāng)前第13頁;編輯于星期二\16點39分連線操作連線分支使用鼠標右鍵單擊需要分支的信號連線(光標變成“+”),然后拖動到目標模塊。使用鼠標左鍵單擊并拖動以改變信號連線的路徑。按下Shift鍵的同時,在信號連線上單擊鼠標左鍵并拖動,可以生成新的節(jié)點。在節(jié)點上使用鼠標左鍵單擊并拖動,可以改變信號連線路徑。本文檔共191頁;當(dāng)前第14頁;編輯于星期二\16點39分信號組合
在利用Simulink進行系統(tǒng)仿真時,在很多情況下,需要將系統(tǒng)中某些模塊的輸出信號(一般為標量)組合成一個向量信號,并將得到的信號作為另外一個模塊的輸入。來自SignalRouting的BusCreator本文檔共191頁;當(dāng)前第15頁;編輯于星期二\16點39分3Simulink模型仿真系統(tǒng)模塊參數(shù)設(shè)置與系統(tǒng)仿真參數(shù)設(shè)置雙擊系統(tǒng)模塊,打開系統(tǒng)模塊的參數(shù)設(shè)置對話框。在參數(shù)設(shè)置對話框中設(shè)置合適的模塊參數(shù)。設(shè)置合適的系統(tǒng)仿真參數(shù)以進行動態(tài)系統(tǒng)的仿真在Simulation菜單的Simulationparameters...子菜單中進行設(shè)置,如仿真時間等運行仿真單擊系統(tǒng)模型編輯器上的Play圖標(黑色三角)或選擇Simulation菜單下的Start便可以對系統(tǒng)進行仿真分析。仿真結(jié)束后雙擊Scope模塊以顯示系統(tǒng)仿真的輸出結(jié)果本文檔共191頁;當(dāng)前第16頁;編輯于星期二\16點39分4Simulink子系統(tǒng)介紹Simulink提供的子系統(tǒng)功能可以大大地增強Simulink系統(tǒng)模型框圖的可讀性。子系統(tǒng)可以理解為一種“容器”,此容器能夠?qū)⒁唤M相關(guān)的模塊封裝到一個單獨的模塊中,并且與原來系統(tǒng)模塊組的功能一致。本文檔共191頁;當(dāng)前第17頁;編輯于星期二\16點39分子系統(tǒng)建立方法(2種)在已有的系統(tǒng)模型中建立子系統(tǒng):首先框選待封裝的區(qū)域,即在模型編輯器背景中單擊鼠標左鍵并拖動,選中需要放置到子系統(tǒng)中的模塊與信號(或在按下Shift鍵的同時,用鼠標左鍵單擊所需模塊);然后選擇Edit菜單下的CreateSubsystem,即可建立子系統(tǒng)。建立空的子系統(tǒng):Subsystems模塊庫中的模塊建立子系統(tǒng)。這樣建立的子系統(tǒng)內(nèi)容為空,然后雙擊子系統(tǒng)對其進行編輯。本文檔共191頁;當(dāng)前第18頁;編輯于星期二\16點39分子系統(tǒng)操作在生成子系統(tǒng)之后,用戶可以對子系統(tǒng)進行各種與系統(tǒng)模塊相類似的操作,這時子系統(tǒng)相當(dāng)于具有一定功能的系統(tǒng)模塊。例如,子系統(tǒng)的命名、子系統(tǒng)視圖的修改、子系統(tǒng)的顯示顏色等等。當(dāng)然子系統(tǒng)也有其特有的操作,如子系統(tǒng)的顯示(用鼠標左鍵雙擊子系統(tǒng)模塊即可打開子系統(tǒng))、子系統(tǒng)的封裝等等。本文檔共191頁;當(dāng)前第19頁;編輯于星期二\16點39分Inport輸入模塊與Outport輸出模塊
在系統(tǒng)模型中建立子系統(tǒng)時,Simulink會自動生成Inport模塊(Sources模塊庫中的In1模塊)與Outport模塊(Sinks模塊庫中的Out1模塊)。Inport模塊作為子系統(tǒng)的輸入端口,Outport作為子系統(tǒng)的輸出端口,它們被用來完成子系統(tǒng)和主系統(tǒng)之間的通訊。
Inport和Outport用來對信號進行傳遞,不改變信號的任何屬性;另外,信號標簽可以越過它們進行傳遞。如果需要建立多輸入多輸出的子系統(tǒng),則需要使用多個Inport模塊與Outport模塊,而且最好使用合適的名稱對Inport模塊與Outport模塊進行命名。本文檔共191頁;當(dāng)前第20頁;編輯于星期二\16點39分5Simulink與Matlab的接口設(shè)計由MATLAB工作空間變量設(shè)置系統(tǒng)模塊參數(shù)模塊參數(shù)可以是常量也可以工作空間變量直接使用MATLAB工作空間中的變量設(shè)置模塊參數(shù)。使用變量的表達式設(shè)置模塊參數(shù)。例如,如果a是定義在MATLAB中的變量,則表達式a、a^2+5、exp(–a)等均可以作為系統(tǒng)模塊的參數(shù)本文檔共191頁;當(dāng)前第21頁;編輯于星期二\16點39分將信號輸出到MATLAB工作空間中
使用示波器模塊Scope的輸出信號,可以使用戶對輸出的信號進行簡單的定性分析。使用Sinks模塊庫中的ToWorkspace模塊,可以輕易地將信號輸出到MATLAB工作空間中。信號輸出的名稱在ToWorkspace模塊的對話框中設(shè)置,此對話框還可以設(shè)置輸出數(shù)據(jù)的點數(shù)、輸出的間隔,以及輸出數(shù)據(jù)的類型等。其中輸出類型有三種形式:數(shù)組、結(jié)構(gòu)以及帶有時間變量的結(jié)構(gòu)。仿真結(jié)束或暫停時信號被輸出到工作空間中。本文檔共191頁;當(dāng)前第22頁;編輯于星期二\16點39分使用工作空間變量作為系統(tǒng)輸入信號
Simulink與MATLAB的數(shù)據(jù)交互是相互的,除了可以將信號輸出到MATLAB工作空間中之外,用戶還可以使用MATLAB工作空間中的變量作為系統(tǒng)模型的輸入信號。使用Sources模塊庫中的FromWorkspace模塊可以將MATLAB工作空間中的變量作為系統(tǒng)模型的輸入信號。此變量的格式如下所示:
>>t=0:0.1:10; >>x=sin(t); >>input=[t',x'];
系統(tǒng)輸入信號input的作用相當(dāng)于Sources模塊中的SineWave模塊本文檔共191頁;當(dāng)前第23頁;編輯于星期二\16點39分向量與矩陣Simulink所使用的信號可以是標量也能夠傳遞和使用向量信號。例如,向量增益可以作用在一個標量信號上,產(chǎn)生一個向量輸出。Simulink最重要的特性就是支持矩陣形式的信號,它可以區(qū)分行和列向量并傳遞矩陣。通過對模塊做適當(dāng)?shù)呐渲?,可以使模塊能夠接受矩陣作為模塊參數(shù)。本文檔共191頁;當(dāng)前第24頁;編輯于星期二\16點39分MATLABFunction與Function模塊
除了使用上述的方式進行Simulink與MATLAB之間的數(shù)據(jù)交互,用戶還可以使用FunctionsandTables模塊庫中的Function模塊(簡稱為Fcn模塊)或FunctionsandTables模塊庫中的MATLABFunction模塊(簡稱為MATLABFcn模塊)進行彼此間的數(shù)據(jù)交互。
Fcn模塊一般用來實現(xiàn)簡單的函數(shù)關(guān)系,在Fcn模塊中:
(1)輸入總是表示成u,u可以是一個向量。
(2)可以使用C語言表達式,例如sin(u[1])+cos(u[2])。
(3)輸出永遠為一個標量。本文檔共191頁;當(dāng)前第25頁;編輯于星期二\16點39分(2)可以使用C語言表達式,例如sin(u[1])+cos(u[2])。
(3)輸出永遠為一個標量。
MATLABFcn一般用來調(diào)用MATLAB函數(shù)來實現(xiàn)一定的功能,在MATLABFcn模塊中:
(1)所要調(diào)用的函數(shù)只能有一個輸出(可以是一個向量)。
(2)單輸入函數(shù)只需使用函數(shù)名,多輸入函數(shù)輸入需要引用相應(yīng)的元素,如mean、sqrt、myfunc(u(1),u(2))。
(3)在每個仿真步長內(nèi)都需要調(diào)用MATLAB解釋器。
使用Fcn模塊與MATLABFcn模塊進行Simulink與MATLAB之間的數(shù)據(jù)交互。本文檔共191頁;當(dāng)前第26頁;編輯于星期二\16點39分使用Fcn與MATLABFcn模塊進行數(shù)據(jù)交互
函數(shù)表達式
Matlab函數(shù)
MATLAB函數(shù)本文檔共191頁;當(dāng)前第27頁;編輯于星期二\16點39分6Scope高級使用技術(shù)打印輸出
參數(shù)設(shè)置
視圖整體縮放
Y軸縮放
視圖自動縮放
X軸縮放
保存當(dāng)前坐標軸設(shè)置
恢復(fù)坐標軸設(shè)置
懸浮Scope開關(guān)
懸浮時信號選擇
去除坐標軸選擇
本文檔共191頁;當(dāng)前第28頁;編輯于星期二\16點39分1)Scope的參數(shù)設(shè)置使用Scope模塊的參數(shù)設(shè)置選項卡能夠?qū)ο到y(tǒng)仿真輸出結(jié)果顯示進行更多的控制,而不僅僅是上述的簡單控制。圖36、圖37所示分別為Scope模塊參數(shù)設(shè)置選項卡中的General選項卡與DataHistory選項卡。本文檔共191頁;當(dāng)前第29頁;編輯于星期二\16點39分Scope模塊的General選項卡坐標系標簽
坐標系數(shù)目
顯示時間范圍
懸浮Scope開關(guān)
本文檔共191頁;當(dāng)前第30頁;編輯于星期二\16點39分Scope模塊的Datahistory選項卡信號顯示點數(shù)限制
保存信號至工作空間變量
本文檔共191頁;當(dāng)前第31頁;編輯于星期二\16點39分下面簡單介紹一下各選項卡的功能與使用。
1)坐標系數(shù)目(Numberofaxes)功能描述:在一個Scope輸出模塊中使用多個坐標系窗口同時輸出多個信號。在默認設(shè)置下,Scope模塊僅顯示一個坐標系窗口。
2)懸浮Scope開關(guān)(Floatingscope)功能描述:將Scope模塊切換為懸浮Scope模塊。本文檔共191頁;當(dāng)前第32頁;編輯于星期二\16點39分3)顯示時間范圍(Timerange)功能描述:設(shè)置信號顯示的時間范圍。注意:信號顯示的時間范圍與系統(tǒng)仿真時間范圍并不等同,并且坐標系所示的時間范圍并非為絕對時間,而是指相對時間范圍,坐標系的左下角的時間偏移(Timeoffset)給出了時間的起始偏移量(即顯示時間范圍的起始時刻)。
4)坐標系標簽(Ticklabels)功能描述:確定Scope模塊中各坐標系是否帶有坐標軸標簽。下方坐標系使用標簽(bottomaxisonly)以及都不使用標簽(none)。用戶最好使用標簽,這有利于對信號的觀察理解.本文檔共191頁;當(dāng)前第33頁;編輯于星期二\16點39分5)信號顯示點數(shù)限制(Limitdatapointstolast)功能描述:限制信號顯示的數(shù)據(jù)點的數(shù)目,Scope模塊會自動對信號進行截取以顯示信號的最后n個點(這里n為設(shè)置的數(shù)值)。6)保存信號至工作空間變量(Savedatatoworkspace)
功能描述:將由Scope模塊顯示的信號保存到Matlab工作空間變量中,以便于對信號進行更多的定量分析。數(shù)據(jù)保存類型有三種:帶時間變量的結(jié)構(gòu)體(structurewithtime)、結(jié)構(gòu)體(structure)以及數(shù)組變量(Array)。這與前面所介紹的Sinks模塊庫中的Toworkspace模塊類似。本文檔共191頁;當(dāng)前第34頁;編輯于星期二\16點39分此外,在Scope模塊中的坐標系中單擊鼠標右鍵,選擇彈出菜單中坐標系屬性設(shè)置命令(axesproperties),將彈出下圖所示的坐標系屬性設(shè)置對話框。用戶可以對Scope模塊的坐標系標題與顯示信號范圍進行合適的設(shè)置,以滿足仿真輸出結(jié)果顯示的需要。本文檔共191頁;當(dāng)前第35頁;編輯于星期二\16點39分坐標系屬性設(shè)置對話框 設(shè)置信號顯示幅值范圍坐標系標題:一般采用信號名稱本文檔共191頁;當(dāng)前第36頁;編輯于星期二\16點39分7S函數(shù)的設(shè)計和調(diào)用S函數(shù)是擴展Simulink功能的強有力工具,它使用戶可以利用MATLAB、C語言、C++語言等程序創(chuàng)建自己定義的Simulink模塊。C,C++,Ada,andFortanS-Functions需要編譯為Mex文件,就和其它MEX文件一樣,Simulink可以隨時動態(tài)的調(diào)用這些文件。S函數(shù)使用的是一種比較特殊的調(diào)用格式,可以和Simulink求解器交互式操作。S-Functions功能非常全面,適用于連續(xù)、離散以及混合系統(tǒng)。S函數(shù)允許用戶向模型中添加自己編寫的模塊,只要按照一些簡單的規(guī)則,就可以在S-Functions添加設(shè)計算法。在編寫好S-Functions之后就可以在S-Functions模塊中添加相應(yīng)得函數(shù)名,也可以通過封裝技術(shù)來訂制自己的交互界面。本文檔共191頁;當(dāng)前第37頁;編輯于星期二\16點39分S函數(shù)的調(diào)用在Simulink使用S-Functions的方法就是從Simulink中的User-DefinedFunctions模塊庫中向Simulink模型文件窗口中拖放S-Function模塊。然后在S-Functions模塊的對話框中的S-FunctionsName框中輸入S函數(shù)的文件名,在S-FunctionsParameters框中輸入S函數(shù)的參數(shù)值。在點擊edit的選項后可以編輯S函數(shù)的代碼部分,利用S函數(shù)實現(xiàn)需要的功能主要是代碼部分的修改。本文檔共191頁;當(dāng)前第38頁;編輯于星期二\16點39分對于代碼部分的修改,可以使用MATLAB語言按照S-Functions的格式來編寫代碼。MATLAB提供了一個模板文件,方便S-Function的編寫,該模板文件位于MATLAB根目錄toolbox/Simulink/blocks下
模板函數(shù)的代碼如下:function[sys,x0,str,ts]=sfuntmpl(t,x,u,flag)switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes;case1,sys=mdlDerivatives(t,x,u);case2,sys=mdlUpdate(t,x,u);
case3,
sys=mdlOutputs(t,x,u);
case4,sys=mdlGetTimeOfNextVarHit(t,x,u);case9,sys=mdlTerminate(t,x,u);otherwiseerror(['Unhandledflag=',num2str(flag)]);end本文檔共191頁;當(dāng)前第39頁;編輯于星期二\16點39分function[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=0;sizes.NumInputs=0;sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;sys=simsizes(sizes);x0=[];str=[];ts=[00];functionsys=mdlDerivatives(t,x,u)sys=[];functionsys=mdlUpdate(t,x,u)sys=[];functionsys=mdlOutputs(t,x,u)sys=[];functionsys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime=1;sys=t+sampleTime;functionsys=mdlTerminate(t,x,u)sys=[];本文檔共191頁;當(dāng)前第40頁;編輯于星期二\16點39分M文件S-Functions可用的子函數(shù)說明如下:(1)mdlInitializeSizes:定義S-Function模塊的基本特性,包括采樣時間、連續(xù)或者離散狀態(tài)的初始條件和sizes數(shù)組。(2)mdlDerivatives:計算連續(xù)狀態(tài)變量的微分方程。(3)mdlUpdate:更新離散狀態(tài)、采樣時間和主時間同步的要求。(4)mdlOutputs:計算S-Function的輸出。(5)mdlGetTimeOfNextVarHit:計算下一個采樣時間點的絕對時間。(6)mdlTerminate:結(jié)束仿真任務(wù)。本文檔共191頁;當(dāng)前第41頁;編輯于星期二\16點39分S-function默認的4個輸入?yún)?shù)t、x、u和flag,他們的次序不能變動,各自代表的意義是:
t:表示當(dāng)前仿真時刻,是采用絕對計量的時間值,是從仿真開始模型運行時間的計量值。
x:模塊的狀態(tài)向量,包括連續(xù)狀態(tài)向量和離散狀態(tài)向量。
u:模塊的輸入向量。
flag:執(zhí)行不同操作的標記變量。本文檔共191頁;當(dāng)前第42頁;編輯于星期二\16點39分S-Function默認的4個返回參數(shù)為sys、x0、str和ts,他們的次序也不能改變,代表的意義為:
sys:通用返回函數(shù);
x0:初始狀態(tài)值,當(dāng)flag的值為0時才有效;
str:沒有明確定義,是MathWorks為將來應(yīng)用所作的保留。
ts:一個m×2矩陣,它的兩列分別表示采樣時間間隔和偏移。本文檔共191頁;當(dāng)前第43頁;編輯于星期二\16點39分8使用命令操作對系統(tǒng)進行仿真支持命令窗口運行仿真的函數(shù)有4個,即sim、simset、simget和set_param。(1)sim函數(shù)sim函數(shù)的作用是運行一個由Simulink建立的模型,其調(diào)用格式為:[t,x,y]=sim(modname,timespan,options,ut);本文檔共191頁;當(dāng)前第44頁;編輯于星期二\16點39分
其中,t為返回的仿真時間向量;
x為返回的狀態(tài)矩陣;
y為返回的輸出矩陣;
modname為系統(tǒng)Simulink模型文件名;
timespan為仿真時間;options為仿真參數(shù)選擇項,由simset設(shè)置;ut為選擇外部產(chǎn)生輸入,ut=[T,u1,u2,…,un]。[說明]上述參數(shù)中,若省略timespan,options,ut則由框圖模型的對話框SimulationParameters設(shè)置仿真參數(shù)。本文檔共191頁;當(dāng)前第45頁;編輯于星期二\16點39分(2)simset函數(shù)
simset函數(shù)用來為sim函數(shù)建立或編輯仿真參數(shù)或規(guī)定算法,并把設(shè)置結(jié)果保存在一個結(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(由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ù)名和它們可能的值。本文檔共191頁;當(dāng)前第46頁;編輯于星期二\16點39分(3)simget函數(shù)
simget函數(shù)用來獲得模型的參數(shù)設(shè)置值。如果參數(shù)值是用一個變量名定義的,simget返回的也是該變量的值而不是變量名。如果該變量在工作空間中不存在(即變量未被賦值),則Simulink給出一個出錯信息。該函數(shù)有如下3種用法:
(a)struct=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ù),則返回一個空陣。用戶只需輸入能夠唯一識別它的那個參數(shù)名稱的前幾個字符即可,對參數(shù)名稱中字母的大小寫不作區(qū)別。本文檔共191頁;當(dāng)前第47頁;編輯于星期二\16點39分(4)set_param函數(shù)
set_param函數(shù)的功能很多,這里只介紹如何用set_param函數(shù)設(shè)置Simulink仿真參數(shù)以及如何開始、暫停、終止仿真進程或者更新顯示一個仿真模型。
(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)控制仿真進程
調(diào)用格式為:
set_param(modname,'SimulationCommand','cmd')
其中mode為仿真模型名稱,而cmd是控制仿真進程的各個命令,包括start、stop、pause、comtinue或update。在使用這兩個函數(shù)的時候,需要注意必須先把模型打開。本文檔共191頁;當(dāng)前第48頁;編輯于星期二\16點39分第7章Simulink的應(yīng)用
7.1Simulink工作平臺的啟動
7.2Simulink仿真原理7.3Simulink模塊庫7.4仿真模型的建立和模塊參數(shù)及屬性的設(shè)置7.5其他應(yīng)用模塊集及Simulink擴展庫本文檔共191頁;當(dāng)前第49頁;編輯于星期二\16點39分7.1Simulink工作平臺啟動Simulink,通常有兩種方法:(1)在MATLAB命令窗口中直接輸入Simulink命令;(2)在MATLAB工具欄上單擊Simulink按鈕,如圖7.1所示。
圖7.1啟動Simulink
這樣就可打開了Simulink的SimulinkLibraryBrower(庫模塊瀏覽器),如圖7.2所示。在菜單欄中執(zhí)行File/New/Model命令,就建立了一個名為untitled的模型窗口,如圖7.3所示。在建立了空的模塊窗口后,用戶可以在此窗口中創(chuàng)建自己需要的Simulink模型。本文檔共191頁;當(dāng)前第50頁;編輯于星期二\16點39分圖7.2庫模塊瀏覽器
圖7.3新建的空白模塊窗口
本文檔共191頁;當(dāng)前第51頁;編輯于星期二\16點39分7.2
Simulink的仿真原理7.2.1Simulink仿真模塊通常,Simulink仿真系統(tǒng)包括輸入(Input)、狀態(tài)(states)和輸出(Output)三個部分?!ぽ斎肽K:即信號源模塊,包括常數(shù)字信號源和用戶自定義信號;·狀態(tài)模塊:即被模擬的系統(tǒng)模塊,是系統(tǒng)建模的核心和主要部分;·輸出模塊:即信號顯示模塊,它能夠以圖形方式、文件格式進行顯示。注意:在設(shè)計一個模型時,必須先確定這三個部分的意,以及它們之間的聯(lián)系;Simulink的仿真模型并非一定要完全包括這三個部分,它可以缺少其中一個或者兩個;Simulink的狀態(tài)模塊可以是連續(xù)的、離散的,或者它們二者的結(jié)合。本文檔共191頁;當(dāng)前第52頁;編輯于星期二\16點39分7.2.2Simulink仿真過程1.初始化階段①對模型的參數(shù)進行估計,得到它們實際計算的值。②展開模型的各個層次;③按照更新的次序?qū)δP瓦M行排序;④確定那些顯式化的信號屬性,并檢查每個模塊是否能夠接受連接它們輸入端的信號;⑤確定所有非顯式的信號采樣時間模塊的采樣時間;⑥分配和初始化存儲空間,以便存儲每個模塊的狀態(tài)和當(dāng)前值的輸出。2.模型執(zhí)行階段模型仿真是通過數(shù)值積分來進行完成的,計算數(shù)值積分可以采用以下兩步來進行:①按照秩序計算每個模塊的積分;②根據(jù)當(dāng)前輸入和狀態(tài)來決定狀態(tài)的微分,得到微分矢量,然后把它返回給解法器,以計算下一個采樣點的狀態(tài)矢量。在每一個時間步中,Simulink依次解決下列問題:
·按照秩序更新模塊的輸出;
·按照秩序更新模塊的狀態(tài);
·檢查模塊連續(xù)狀態(tài)的不連續(xù)點;
·計算下一個仿真時間步的時間。本文檔共191頁;當(dāng)前第53頁;編輯于星期二\16點39分7.3.1連續(xù)模塊庫(Continuous)
在連續(xù)模塊(Continuous)庫中包括了常見的連續(xù)模塊,這些模塊如圖所示。
7.3Simulink模塊庫
在庫模塊瀏覽器中單擊Simulink前面的“+”號,就能夠看到Simulink的模塊庫,如圖7.2所示。
本文檔共191頁;當(dāng)前第54頁;編輯于星期二\16點39分4.傳遞函數(shù)模塊(TransferFcn)功能:用執(zhí)行一個線性傳遞函數(shù)。5.零極點傳遞函數(shù)模塊(Zero-Pole)功能:用于建立一個預(yù)先指定的零點、極點,并用延遲算子s表示的連續(xù)。6.存儲器模塊(Memory)功能:保持輸出前一步的輸入值。7.傳輸延遲模塊(TransportDelay)功能:用于將輸入端的信號延遲指定的時間后再傳輸給輸出信號。8.可變傳輸延遲模塊(VariableTransportDelay)功能:用于將輸入端的信號進行可變時間的延遲。1.積分模塊(Integrator):功能:對輸入變量進行積分。說明:模塊的輸入可以是標量,也可以是矢量;輸入信號的維數(shù)必須與輸入信號保持一致。2.微分模塊(Derivative)功能:通過計算差分?u/
?t近似計算輸入變量的微分。3.線性狀態(tài)空間模塊(State-Space)功能:用于實現(xiàn)以下數(shù)學(xué)方程描述的系統(tǒng):本文檔共191頁;當(dāng)前第55頁;編輯于星期二\16點39分7.3.2離散模塊庫(Discrete)
離散模塊庫(Discrete)主要用于建立離散采樣的系統(tǒng)模型,包括的主要模塊,如圖所示。1.零階保持器模塊(Zero-Order-Hold)功能:在一個步長內(nèi)將輸出的值保持在同一個值上。本文檔共191頁;當(dāng)前第56頁;編輯于星期二\16點39分2.單位延遲模塊(UnitDelay)功能:將輸入信號作單位延遲,并且保持一個采樣周期相當(dāng)于時間算子z-1
。3.離散時間積分模塊(DiscreteTimeIntegrator)功能:在構(gòu)造完全離散的系統(tǒng)時,代替連續(xù)積分的功能。使用的積分方法有:向前歐拉法、向后歐拉法、梯形法。4.離散狀態(tài)空間模塊(DiscreteStateSpace)功能:用于實現(xiàn)如下數(shù)學(xué)方程描述的系統(tǒng):5.離散濾波器模塊(DiscreteFilter)功能:用于實現(xiàn)無限脈沖響應(yīng)(IIR)和有限脈沖響應(yīng)(FIR)的數(shù)字濾波器。6.離散傳遞函數(shù)模塊(DiscreteTransferFcn)功能:用于執(zhí)行一個離散傳遞函數(shù)。7.離散零極點傳遞函數(shù)模塊(DiscreteZero-Pole)功能:用于建立一個預(yù)先指定的零點、極點,并用延遲算子z-1表示的離散系統(tǒng)。8.一階保持器模塊(FirstOrderHold)功能:在一定時間間隔內(nèi)保持一階采樣。本文檔共191頁;當(dāng)前第57頁;編輯于星期二\16點39分7.3.3函數(shù)與表格模塊庫(Function&Table)
函數(shù)與表格模塊庫(Function&Table)主要實現(xiàn)各種一維、二維或者更高維函數(shù)的查表,另外用戶還可以根據(jù)自己需要創(chuàng)建更復(fù)雜的函數(shù)。該模塊庫包括多個主要模塊、如圖7.7所示。本文檔共191頁;當(dāng)前第58頁;編輯于星期二\16點39分1.一維查表模塊(Look-UpTable)
一維查表模塊(Look-UpTable)實現(xiàn)對單路輸入信號的查表和線性插值。2.二維查表模塊(Look-UpTable2-D)功能:根據(jù)給定的二維平面網(wǎng)格上的高度值,把輸入的兩個變量經(jīng)過查表、插值,計算出模塊的輸出值,并返回這個值。說明:對二維輸入信號進行分段線性變換。3.自定義函數(shù)模塊(Fcn)功能:用于將輸入信號進行指定的函數(shù)運算,最后計算出模塊的輸出值。說明:輸入的數(shù)學(xué)表達式應(yīng)符合C語言編程規(guī)范;與MATLAB中的表達式有所不同,不能完成矩陣運算。4.MATLAB函數(shù)模塊(MATLABFcn)功能:對輸入信號進行MATLAB函數(shù)及表達式的處理。說明:模塊為單輸入模塊;能夠完成矩陣運算。注意:從運算速度角度,Mathfunction模塊要比Fcn模塊慢。當(dāng)需要提高速度時,可以考慮采用Fcn或者S函數(shù)模塊。5.S-函數(shù)模塊(S-Function)功能:按照Simulink標準,編寫用戶自己的Simulink函數(shù)。它能夠?qū)ATLAB語句、C語言等編寫的函數(shù)放在Simulink模塊中運行,最后計算模塊的輸出值。本文檔共191頁;當(dāng)前第59頁;編輯于星期二\16點39分7.3.4數(shù)學(xué)模塊庫(Math)
數(shù)學(xué)模塊庫(Math)包括多個數(shù)學(xué)運算模塊,如圖7.8所示。本文檔共191頁;當(dāng)前第60頁;編輯于星期二\16點39分3.矢量的點乘模塊(DotProduct)功能:矢量的點乘模塊(DotProduct)用于實現(xiàn)輸入信號的點積運算。4.增益模塊(Gain)功能:增益模塊(Gain)的作用是把輸入信號乘以一個指定的增益因子,使輸入產(chǎn)生增益。1.求和模塊(Sum)功能:求和模塊(Sum)用于對多路輸入信號進行求和運算,并輸出結(jié)果。2.乘法模塊(Product)功能:乘法模塊(Product)用于實現(xiàn)對多路輸入的乘積、商、矩陣乘法或者模塊的轉(zhuǎn)置等。5.常用數(shù)學(xué)函數(shù)模塊(MathFunction)功能:用于執(zhí)行多個通用數(shù)學(xué)函數(shù),其中包含exp、log、log10、square、sqrt、pow、reciprocal、hypot、rem、mod等。本文檔共191頁;當(dāng)前第61頁;編輯于星期二\16點39分6.三角函數(shù)模塊(TrigonometricFunction)功能:用于對輸入信號進行三角函數(shù)運算,共有10種三角函數(shù)供選擇。7.特殊數(shù)學(xué)模塊特殊數(shù)學(xué)模塊中包括求最大最小值模塊(MinMax)、取絕對值模塊(Abs)、符號函數(shù)模塊(Sign)、取整數(shù)函數(shù)模塊(RoundingFunction)等。8.數(shù)字邏輯函數(shù)模塊數(shù)字邏輯函數(shù)模塊包括復(fù)合邏輯模塊(CombinationalLogic)、邏輯運算符模塊(LogicalOperator)、位邏輯運算符模塊(BitwiseLogicalOperator)等。9.關(guān)系運算模塊(RelationalOperator)
關(guān)系符號包括:==(等于)、≠(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)等。10.復(fù)數(shù)運算模塊復(fù)數(shù)運算模塊包括計算復(fù)數(shù)的模與幅角(ComplextoMagnitude-Angle)、由模和幅角計算復(fù)數(shù)(Magnitude-AngletoComplex)、提取復(fù)數(shù)實部與虛部模塊(ComplextoRealandImage)、由復(fù)數(shù)實部和虛部計算復(fù)數(shù)(RealandImagetoComplex)。本文檔共191頁;當(dāng)前第62頁;編輯于星期二\16點39分非線性模塊(Nonlinear)非線性模塊(Nonlinear)中包括一些常用的非線性模塊,如圖7.9所示。本文檔共191頁;當(dāng)前第63頁;編輯于星期二\16點39分1.比率限幅模塊(RateLimiter)功能:用于限制輸入信號的一階導(dǎo)數(shù),使得信號的變化率不超過規(guī)定的限制值。2.飽和度模塊(Saturation)功能:用于設(shè)置輸入信號的上下飽和度,即上下限的值,來約束輸出值。3.量化模塊(Quantizer)功能:用于把輸入信號由平滑狀態(tài)變成臺階狀態(tài)。4.死區(qū)輸出模塊(DeadZone)功能:在規(guī)定的區(qū)內(nèi)沒有輸出值。5.繼電模塊(Relay)功能:繼電模塊(Relay)用于實現(xiàn)在兩個不同常數(shù)值之間進行切換。6.選擇開關(guān)模塊(Switch)功能:根據(jù)設(shè)置的門限來確定系統(tǒng)的輸出。本文檔共191頁;當(dāng)前第64頁;編輯于星期二\16點39分7.3.6信號與系統(tǒng)模塊庫(signals&Systems)信號與系統(tǒng)模塊庫(signals&Systems)包括的主要模塊如圖7.11所示。本文檔共191頁;當(dāng)前第65頁;編輯于星期二\16點39分1.Bus信號選擇模塊(BusSelector)功能:用于得到從Mux模塊或其它模塊引入的Bus信號。2.混路器模塊(Mux)功能:把多路信號組成一個矢量信號或者Bus信號。3.分路器模塊(Demux)功能:把混路器組成的信號按照原來的構(gòu)成方法分解成多路信號。4.信號合成模塊(Merge)功能:把多路信號進行合成一個單一的信號。5.接收/傳輸信號模塊(From/Goto)功能:接收/傳輸信號模塊(From/Goto)常常配合使用,F(xiàn)rom模塊用于從一個Goto模塊中接收一個輸入信號,Goto模塊用于把輸入信號傳遞給From模塊。6.初始值設(shè)定模塊(IC)功能:初始值設(shè)定模塊(IC)用于設(shè)定與輸出端口連接的模塊的初始值。本文檔共191頁;當(dāng)前第66頁;編輯于星期二\16點39分7.3.7信號輸出模塊(Sinks)
信號輸出模塊(Sinks)包括的主要模塊如圖7.12所示。圖7.12輸出顯示模塊庫本文檔共191頁;當(dāng)前第67頁;編輯于星期二\16點39分1.示波器模塊(Scope)功能:顯示在仿真過程中產(chǎn)生的輸出信號,用于在示波器中顯示輸入信號與仿真時間的關(guān)系曲線,仿真時間為x軸。2.二維信號顯示模塊(XYGraph)功能:在MATLAB的圖形窗口中顯示一個二維信號圖,并將兩路信號分別作為示波器坐標的x軸與y軸,同時把它們之間的關(guān)系圖形顯示出來。3.顯示模塊(Display)功能:按照一定的格式顯示輸入信號的值??晒┻x擇的輸出格式包括:short、long、short_e、long_e、bank等。4.輸出到文件模塊(ToFile)功能:按照矩陣的形式把輸入信號保存到一個指定的MAT文件。第一行為仿真時間,余下的行則是輸入數(shù)據(jù),一個數(shù)據(jù)點是輸入矢量的一個分量。5.輸出到工作空間模塊(ToWorkspace)功能:把信號保存到MATLAB的當(dāng)前工作空間,是另一種輸出方式。6.終止信號模塊(Terminator)功能:中斷一個未連接的信號輸出端口。7.結(jié)束仿真模塊(Stopsimulation)功能:停止仿真過程。當(dāng)輸入為非零時,停止系統(tǒng)仿真。本文檔共191頁;當(dāng)前第68頁;編輯于星期二\16點39分信號源模塊庫(Sources)信號源模塊庫(Sources)包括的主要模塊如圖7.13所示。圖7.13信號源模塊庫本文檔共191頁;當(dāng)前第69頁;編輯于星期二\16點39分1.輸入常數(shù)模塊(Constant)功能:產(chǎn)生一個常數(shù)。該常數(shù)可以是實數(shù),也可以是復(fù)數(shù)。2.信號源發(fā)生器模塊(SignalGenerator)功能:產(chǎn)生不同的信號,其中包括:正弦波、方波、鋸齒波信號。3.從文件讀取信號模塊(FromFile)功能:從一個MAT文件中讀取信號,讀取的信號為一個矩陣,其矩陣的格式與ToFile模塊中介紹的矩陣格式相同。如果矩陣在同一采樣時間有兩個或者更多的列,則數(shù)據(jù)點的輸出應(yīng)該是首次出現(xiàn)的列。4.從工作空間讀取信號模塊(FromWorkspace)功能:從MATLAB工作空間讀取信號作為當(dāng)前的輸入信號。5.隨機數(shù)模塊(RandomNumber)功能:產(chǎn)生正態(tài)分布的隨機數(shù),默認的隨機數(shù)是期望為0,方差為1的標準正態(tài)分布量。6.帶寬限制白噪聲模塊(BandLimitedWhiteNoise)功能:實現(xiàn)對連續(xù)或者混雜系統(tǒng)的白噪聲輸入。7.其它模塊除以上介紹的常用模塊外,還包括其模塊。各模塊功能可通過以下方法查看:先進入Simulink工作窗口,在菜單中執(zhí)行Help/SimulinkHelp命令,這時就會彈出Help界面。然后用鼠標展開UsingSimulink\BlockReference\SimulinkBlockLibraries就可以看到Simulink的所有模塊。查看相應(yīng)的模塊的使用方法和說明信息即可。
本文檔共191頁;當(dāng)前第70頁;編輯于星期二\16點39分本文檔共191頁;當(dāng)前第71頁;編輯于星期二\16點39分7.4仿真模型的建立與模塊參數(shù)與屬性的設(shè)置1.仿真模塊的建立首先啟動Simulink命令,建立一個空的模塊窗口“untitled”
,然后利用Simulink提供的模塊庫,在此窗口中創(chuàng)建自己需要的Simulink模型。具體方法:在模塊庫瀏覽器中找到所需模塊,選中該模塊后右擊鼠標,把它加入到一個模型窗口中即可完成模塊的建立。
圖7.14添加模塊
本文檔共191頁;當(dāng)前第72頁;編輯于星期二\16點39分2.模塊參數(shù)與屬性的設(shè)置
方法:在所建立的模型窗口中,選中相應(yīng)的模塊,單擊右擊鼠標,在彈出的快捷菜單中單擊“Blockparameters”選項(如圖7.15所示),即可打開該模塊的參數(shù)設(shè)置對話框,如圖7.16(a)所示。右擊鼠標,在彈出的快捷菜單中單擊“BlockProperties”選項,即可打開該模塊的屬性設(shè)置對話框,如圖7.16(b)所示。圖7.15Blockparamenters選項
本文檔共191頁;當(dāng)前第73頁;編輯于星期二\16點39分3.模塊的連接
一般情況下,每個模塊都有一個或者多個輸入口或者輸出口。輸入口通常是模塊的左邊的“>”符號;輸出口是右邊的“>”符號。
模塊的連接方法:把鼠標指針放到模塊的輸出口,這時,鼠標指針將變?yōu)椤?”十字形;然后,拖運鼠標至其它模塊的輸入口,這時信號線就變成了帶有方向箭頭的線段。此時,說明這兩個模塊的連接成功,否則需要重新進行連接。4.運行仿真在運行仿真之前,首先保存已設(shè)置和連接的模型,然后就可以運行仿真。本文檔共191頁;當(dāng)前第74頁;編輯于星期二\16點39分1.Simulink仿真注意(1)Simulink的數(shù)據(jù)類型由于Simulink在仿真過程中,始終都要檢查模型的類型安全性。模型的類型安全性是指從該模型產(chǎn)生的代碼不出現(xiàn)上溢或者下溢現(xiàn)象,當(dāng)產(chǎn)生溢出現(xiàn)象時,系統(tǒng)將出錯誤。查看模塊的數(shù)據(jù)類型的方法是:在模型窗口的菜單中執(zhí)行Format/PortDataTypes命令,這樣每個模塊支持的數(shù)據(jù)類型就顯示出來了。要取消數(shù)據(jù)類型的查看方式,單擊PortDataTypes去掉其前面的勾號即可。7.4.3Simulink仿真注意與技巧圖7.23查看模塊支持的數(shù)據(jù)類型本文檔共191頁;當(dāng)前第75頁;編輯于星期二\16點39分(2)數(shù)據(jù)的傳輸在仿真過程中,Simulink首先查看有沒有特別設(shè)置的信號的數(shù)據(jù)類型,以及檢驗信號的輸入和輸出端口的數(shù)據(jù)類型是否產(chǎn)生沖突。如果有沖突,Simulink將停止仿真,并給出一個出錯提示對話框,在此對話框中將顯示出錯的信號以及端口,并把信號的路徑以高亮顯示。遇到該情形,必須改變數(shù)據(jù)類型以適應(yīng)模塊的需要。(3)提高仿真速度
Simulink仿真過程,仿真的性能受諸多因素的影響,包括模型的設(shè)計和仿真參數(shù)的選擇等。對于大多數(shù)問題,使用Simulink系統(tǒng)默認的解法和仿真參數(shù)值就能夠比較好地解決。因素及解決方法:(1)仿真的時間步長太小。針對這種情況可以把最大仿真步長參數(shù)設(shè)置為默認值auto。(2)仿真的時間過長??勺们闇p小仿真的時間。(3)選擇了錯誤的解法。針對這種情況可以通過改變解法器來解決。(4)仿真的精度要求過高。仿真時,如果絕對誤差限度太小,則會使仿真在接近零的狀態(tài)附近耗費過多時間。通常,相對誤差限為0.1%就已經(jīng)足夠了。(5)模型包含一個外部存儲塊。盡量使用內(nèi)置存儲模塊。本文檔共191頁;當(dāng)前第76頁;編輯于星期二\16點39分(4)改善仿真精度檢驗仿真精度的方法是:通過修改仿真的相對誤差限和絕對誤差限,并在一個合適的時間跨度反復(fù)運行仿真,對比仿真結(jié)果有無大的變化,如果變化不大,表示解是收斂的。說明仿真的精度是有效的,結(jié)果是穩(wěn)定的。如果仿真結(jié)果不穩(wěn)定,其原因可參是系統(tǒng)本身不穩(wěn)定或仿真解法不適合。如果仿真的結(jié)果不精確,其原因很可能是:(1)模型有取值接近零的狀態(tài)。如果絕對誤差過大,會使仿真在接近零區(qū)域運行的仿真時間太小。解決的辦法是修改絕對誤差參數(shù)或者修改初始的狀態(tài)。(2)如果改變絕對誤差限還不能達到預(yù)期的誤差限,則修改相對誤差限,使可接受的誤差降低,并減小仿真的步長。本文檔共191頁;當(dāng)前第77頁;編輯于星期二\16點39分2.Simulink仿真技巧■連接分支信號線先連接好單根信號線,然后將鼠標指針放在已經(jīng)連接好的信號線上,同時按住“Ctrl”鍵,拖動鼠標,連接到另一個模塊。這樣就可以根據(jù)需由一個信號源模塊,引出多條信號線。如圖7.28所示。圖7.28引出多條信號線示例
■模塊的編輯技巧(1)調(diào)整模塊大小
(2)在同一窗口復(fù)制模塊(3)刪除模塊(4)編輯模塊標簽本文檔共191頁;當(dāng)前第78頁;編輯于星期二\16點39分7.5其它應(yīng)用模塊集和Simulink擴展庫1.通信模塊集(CommunicationsBlockset)圖7.31通信模塊集中的模塊庫本文檔共191頁;當(dāng)前第79頁;編輯于星期二\16點39分2.?dāng)?shù)字信號處理模塊集(DSPBlockset)3.電力系統(tǒng)模塊集(PowerSystemBlockset)本文檔共191頁;當(dāng)前第80頁;編輯于星期二\16點39分4.Simulink擴展庫
?擴展信號輸出模塊庫(AdditionalSinks)圖7.35擴展信號輸出模塊庫本文檔共191頁;當(dāng)前第81頁;編輯于星期二\16點39分?擴展離散庫(AdditionalDiscrete)?擴展線性庫(AdditionalLinear)圖7.36擴展離散庫圖7.37擴展線性庫本文檔共191頁;當(dāng)前第82頁;編輯于星期二\16點39分?轉(zhuǎn)換庫(Transformations)圖7.38轉(zhuǎn)換模塊庫?觸發(fā)模塊庫(FlipFlops)圖7.39觸發(fā)模塊庫本文檔共191頁;當(dāng)前第83頁;編輯于星期二\16點39分?線性化庫(Linearization)圖7.40線性化庫?宇航模塊庫(AirspaceBlocks)圖7.41宇航模塊庫本文檔共191頁;當(dāng)前第84頁;編輯于星期二\16點39分SIMULINK仿真基礎(chǔ)基本建模方法連續(xù)系統(tǒng)建模解微分方程本文檔共191頁;當(dāng)前第85頁;編輯于星期二\16點39分SIMULINK入門MATLAB命令窗口運行指令:simulinkSIMULINK模塊庫瀏覽器:SimulinkLibraryBrowserSource子庫建立一個簡單的仿真系統(tǒng)本文檔共191頁;當(dāng)前第86頁;編輯于星期二\16點39分本文檔共191頁;當(dāng)前第87頁;編輯于星期二\16點39分建立一個簡單的仿真系統(tǒng)點擊“新建”,建立新模型tst1用鼠標在信源模塊中選取sinewave,拖曳至tst1窗口用鼠標在信宿模塊中選取scope,拖曳至tst1窗口連線啟動仿真本文檔共191頁;當(dāng)前第88頁;編輯于星期二\16點39分本文檔共191頁;當(dāng)前第89頁;編輯于星期二\16點39分模塊的基本操作模塊的選定選定單個和選定多個模塊的復(fù)制復(fù)制/粘貼 Ctrl鍵模塊名操作點擊模塊名模塊的樣式Format菜單本文檔共191頁;當(dāng)前第90頁;編輯于星期二\16點39分簡單建模:按住Ctrl本文檔共191頁;當(dāng)前第91頁;編輯于星期二\16點39分本文檔共191頁;當(dāng)前第92頁;編輯于星期二\16點39分簡單建模:本文檔共191頁;當(dāng)前第93頁;編輯于星期二\16點39分支持向量顯示Mux本文檔共191頁;當(dāng)前第94頁;編輯于星期二\16點39分支持標量擴展本文檔共191頁;當(dāng)前第95頁;編輯于星期二\16點39分插入模塊本文檔共191頁;當(dāng)前第96頁;編輯于星期二\16點39分SIMULINK模型外表:直觀的方框圖文件:MDL文件數(shù)學(xué):微分方程或差分方程行為:模擬物理過程的動態(tài)性狀本文檔共191頁;當(dāng)前第97頁;編輯于星期二\16點39分加注釋本文檔共191頁;當(dāng)前第98頁;編輯于星期二\16點39分simulink模型的一般性結(jié)構(gòu)信源系統(tǒng)信宿本文檔共191頁;當(dāng)前第99頁;編輯于星期二\16點39分數(shù)值分析:積分模塊的應(yīng)用本文檔共191頁;當(dāng)前第100頁;編輯于星期二\16點39分積分模塊應(yīng)用:復(fù)位積分負變正時強迫清零本文檔共191頁;當(dāng)前第101頁;編輯于星期二\16點39分微分方程本文檔共191頁;當(dāng)前第102頁;編輯于星期二\16點39分構(gòu)造微分方程求解模型本文檔共191頁;當(dāng)前第103頁;編輯于星期二\16點39分Simulink電路仿真本文檔共191頁;當(dāng)前第104頁;編輯于星期二\16點39分
Simulink是MATLAB的一個重要的工具箱,是結(jié)合了框圖界面和交互仿真能力的系統(tǒng)級設(shè)計和仿真工具。它以MATLAB核心數(shù)學(xué),圖形和語言為基礎(chǔ),可以讓用戶完成從算法開發(fā),仿真或者模型驗證的全過程,而不需要傳遞數(shù)據(jù),重寫代碼或改變軟件環(huán)境。在start進入Simulink菜單,選擇SimulinkLibraryBrowser,打開Simulink庫函數(shù),選擇FileNew打開編輯窗口。在MATLAB的Command窗口直接鍵入Simulink即可打開Simulink工作窗口。
Simulink作為面向框圖的仿真軟件,具有以下的功能和優(yōu)點:(1)用方框圖的繪制代替了程序的編寫。構(gòu)成任何一個系統(tǒng)框圖有三個步驟,即選定典型環(huán)節(jié),相互聯(lián)結(jié)和給定環(huán)節(jié)參數(shù)。
(2)仿真的建立和運行是智能化的。首先,畫好了框圖并存起來,Simulink自動建立一個仿真的過程;其次,在運行時用戶可以不給步長,只給出要求的仿真精度,軟件會自動選擇能保證給定精度的最大步長,使得在給定的精度要求下系統(tǒng)仿真具有最快的速度。
本文檔共191頁;當(dāng)前第105頁;編輯于星期二\16點39分
(3)輸入輸出信號來源形式的多樣化。其輸入信號可以是各種信號發(fā)生器;也可以來自一個設(shè)定的記錄文件;還可以來自MATLAB的工作空間(workspace).輸出信號也類似,這就擴大了仿真系統(tǒng)與各種外部軟件和硬件的接口能力。
Simulink工具箱中含有大量的仿真模塊集,例如PowerSystemBlockset
(PSB),DSPBlockset,CommunicationBlockset,CDMA
ReferenceBlockset,NonlinearControlDesignBlockset
等專門領(lǐng)域應(yīng)用的仿真模塊。研究MATLAB在電路仿真中的應(yīng)用,主要用到的是Simulink節(jié)點下的CommonlyusedBlocks,Sinks,Sources等模塊以及在電路仿真中最長用的PowerSystemBlockset(DSP)模塊。本文檔共191頁;當(dāng)前第106頁;編輯于星期二\16點39分求i3,U4,U7;本文檔共191頁;當(dāng)前第107頁;編輯于星期二\16點39分1.Simulink常用模塊介紹要熟練地使用Simulink進行仿真,首先要求能夠熟練使用Simlink常用模塊。在模塊瀏覽器中的Simulink節(jié)點下包含了搭建一個Simulink模塊所需要的基本模塊。本節(jié)主要對其中的Sources模塊庫、Sinks模塊庫、MathOperations庫和Continuous模塊庫中的常用模塊進行介紹。
Sources模塊階躍函數(shù),起始時間是第1秒而非0秒。雙擊step模塊,對仿真起始時間(steptime)和階躍值(Initialvalue,Finalvalue)的大小進行設(shè)置。信號發(fā)生器,可以產(chǎn)生給定頻率和幅值的正弦波(sinewave)、方波(squarewave)和鋸齒波(sawtoothwave),雙擊圖標可以設(shè)置。本文檔共191頁;當(dāng)前第108頁;編輯于星期二\16點39分
定時器,顯示仿真時間,在系統(tǒng)仿真時打開定時器,可以看到實時的仿真時間。
正弦波,電路中常用到的正弦信號(SineWave)模塊,雙擊圖標,在彈出的窗口中調(diào)整相關(guān)參數(shù)。信號生成方式有兩種:Timebased和Samplebased
。
如果以Timebased方式運行該模塊,則需要用戶設(shè)定波形的幅度(Amplitude)、偏移(Bias)、頻率(Frequency)、初相(Phase)幾個參數(shù);如果選擇Samplebased方式,參數(shù)設(shè)置則為幅度(Amplitude)、偏移(Bias)、每周期采樣數(shù)(Sampiesperperiod)和偏移采樣數(shù)(Numberofoffsetsamples).
兩種工作方式中的各項參數(shù)都可以用關(guān)系式加以換算:
每周期采樣數(shù)=2*pi/(頻率*采樣時間)頻移采樣數(shù)=初相*每周期采樣數(shù)/(2*pi)設(shè)置采樣時間Sampletime,將此參數(shù)設(shè)置為零時表示以連續(xù)的方式工作,將此參數(shù)設(shè)置為大于零的值時則以所設(shè)采樣時間工作。但要注意的是采用Samplebased模式的模塊式不能以連續(xù)的方式工作的。本文檔共191頁;當(dāng)前第109頁;編輯于星期二\16點39分
從工作空間輸入。從MATLABWorkspace輸入已有的函數(shù)作為仿真的激勵信號。首先要在MATLAB環(huán)境下建立一個時間向量和相應(yīng)的函數(shù)值向量,然后將時間向量和函數(shù)值向量的名稱[T,U]填入該圖標的對話框中。
MathOperations模塊加、減運算在Listofsigns文本框中可以選擇多個數(shù)的加、減法運算。在Iconshape中選擇圓形或方形符號。
Gain:增益作為后續(xù)模塊的增益系數(shù)。
Continuous模塊
TransferFcn傳遞函數(shù),設(shè)置numerator選項,分子多項式系數(shù)的降冪排列。Denominator選項,分母多項式系數(shù)的降冪排列。
本文檔共191頁;當(dāng)前第110頁;編輯于星期二\16點39分
Sinks模塊Sinks模塊庫中的模塊主要功能是接受信號,并且將接受的信號顯示出來。
輸出到工作空間,功能與FromWorkspace正好相反,把仿真結(jié)果連同輸入信號輸出到工作空間去。
XY示波器:顯示MATLAB的圖形窗口。輸入曲線是以時間為橫軸的繪圖區(qū)域。
它的作用是將信號值直接顯示在該模塊的窗口中。輸出信號是個直流信號時,我們就可以把它直接送到這個模塊中,從模塊窗口中直接讀出輸入信號的大小。示波器模塊可以接受多個輸入信號,每個端口的輸入信號都將在一個坐標軸中顯示。如果是向量或矩陣信號,則以不同的顏色表示每個元素信號;如果信號本身是離散的,則顯示信號的階梯圖。本文檔共191頁;當(dāng)前第111頁;編輯于星期二\16點39分
(1)示波器的工具欄
本文檔共191頁;當(dāng)前第112頁;編輯于星期二\16點39分(2)坐標軸的范圍調(diào)整
在坐標框內(nèi)單擊鼠標右鍵,在彈出的快捷菜單中執(zhí)行“Axesproperties”命令,可以對坐標軸進行調(diào)整,如圖4.1-1所示。“Y-min”、“Y-max”分別是設(shè)置Y軸的最小值和最大值,在“Title”中可以為坐標軸取個名字,默認是以輸入信號線的標簽作為坐標軸的名字。本文檔共191頁;當(dāng)前第113頁;編輯于星期二\16點39分
(3)示波器的參數(shù)設(shè)置單擊圖標將彈出
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 類風(fēng)濕關(guān)節(jié)炎慢病管理
- 新生兒糖尿病的護理課件
- 高三化學(xué)一輪復(fù)習(xí) 第五章 《化工生產(chǎn)中的重要非金屬元素》 專題講解 氣體的制備、凈化和收集 課件
- 巧用繩課件教學(xué)課件
- 2-1-3 碳酸鈉與碳酸氫鈉 課件 高一上學(xué)期化學(xué)人教版(2019)必修第一冊
- 吉林省2024七年級數(shù)學(xué)上冊第1章有理數(shù)階段綜合訓(xùn)練范圍1.6~1.8課件新版華東師大版
- 低壓裝表接電安全
- 報任安書公開課教案
- 家居建材客服合同范本
- 幼兒園衛(wèi)生清潔工勞動合同
- 警犬相關(guān)知識培訓(xùn)課件
- 高三第一次聯(lián)考英語試卷分析
- 幼兒園食品安全
- 家庭教育與孩子的生涯規(guī)劃
- 大學(xué)生如何遵守網(wǎng)絡(luò)生活中的道德要求
- 給小朋友科普醫(yī)學(xué)知識
- 最美老師評選述職報告
- 電氣工程及其自動化生涯發(fā)展展示
- 2024學(xué)校所屬企業(yè)國有資產(chǎn)管理的若干意見全文
- 五年級上冊簡易方程練習(xí)400題及答案
- 員工安全出行知識培訓(xùn)
評論
0/150
提交評論