版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、仿真基礎(chǔ)第1頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日第一節(jié) SIMULINK簡介SIMULINK是MATLAB軟件的擴(kuò)展,它是實(shí)現(xiàn)動態(tài)系統(tǒng)建模和仿真的一個(gè)軟件包,它與MATLAB語言的主要區(qū)別在于,其與用戶交互接口是基于Windows的模型化圖形輸入,其結(jié)果是使得用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建,而非語言的編程上。所謂模型化圖形輸入是指SIMULINK提供了一些按功能分類的基本的系統(tǒng)模塊,用戶只需要知道這些模塊的輸入輸出及模塊的功能,而不必考察模塊內(nèi)部是如何實(shí)現(xiàn)的,通過對這些基本模塊的調(diào)用,再將它們連接起來就可以構(gòu)成所需要的系統(tǒng)模型(以.mdl文件進(jìn)行存取),進(jìn)而進(jìn)行
2、仿真與分析。SIMULINK的最新版本是SIMULINK4.0(包含在MATLAB6.0里),MATLAB5.3里的版本為3.0版,它們的變化不大。一、什么是SIMULINK第2頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日2、在MATLAB命令窗口中輸入simulink3結(jié)果是在桌面上出現(xiàn)一個(gè)用圖標(biāo)形式顯示的Library :simulink3的Simulink模塊庫窗口。二、SIMULINK的啟動1、在MATLAB命令窗口中輸入simulink結(jié)果是在桌面上出現(xiàn)一個(gè)稱為Simulink Library Browser的窗口,在這個(gè)窗口中列出了按功能分類的各種模塊的名稱。當(dāng)然用戶
3、也可以通過MATLAB主窗口的快捷按鈕來打開Simulink Library Browser窗口。兩種模塊庫窗口界面只是不同的顯示形式,用戶可以根據(jù)各人喜好進(jìn)行選用,一般說來第二種窗口直觀、形象,易于初學(xué)者,但使用時(shí)會打開太多的子窗口。第3頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日三、SIMULINK的模塊庫介紹SIMILINK模塊庫按功能進(jìn)行分類,包括以下8類子庫:Continuous(連續(xù)模塊)Discrete(離散模塊)Function&Tables(函數(shù)和平臺模塊)Math(數(shù)學(xué)模塊)Nonlinear(非線性模塊)Signals&Systems(信號和系統(tǒng)模塊)Sin
4、ks(接收器模塊)Sources(輸入源模塊)第4頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日1、連續(xù)模塊(Continuous) continuous.mdlIntegrator:輸入信號積分Derivative:輸入信號微分State-Space:線性狀態(tài)空間系統(tǒng)模型Transfer-Fcn:線性傳遞函數(shù)模型Zero-Pole:以零極點(diǎn)表示的傳遞函數(shù)模型Memory:存儲上一時(shí)刻的狀態(tài)值Transport Delay:輸入信號延時(shí)一個(gè)固定時(shí)間再輸出Variable Transport Delay:輸入信號延時(shí)一個(gè)可變時(shí)間再輸出第5頁,共48頁,2022年,5月20日,14點(diǎn)2
5、0分,星期日2、離散模塊(Discrete) discrete.mdlDiscrete-time Integrator:離散時(shí)間積分器Discrete Filter:IIR與FIR濾波器Discrete State-Space:離散狀態(tài)空間系統(tǒng)模型Discrete Transfer-Fcn:離散傳遞函數(shù)模型Discrete Zero-Pole:以零極點(diǎn)表示的離散傳遞函數(shù)模型First-Order Hold:一階采樣和保持器Zero-Order Hold:零階采樣和保持器Unit Delay:一個(gè)采樣周期的延時(shí)第6頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日3、 Function&
6、Tables(函數(shù)和平臺模塊) function.mdlFcn:用自定義的函數(shù)(表達(dá)式)進(jìn)行運(yùn)算MATLAB Fcn:利用matlab的現(xiàn)有函數(shù)進(jìn)行運(yùn)算S-Function:調(diào)用自編的S函數(shù)的程序進(jìn)行運(yùn)算Look-Up Table:建立輸入信號的查詢表(線性峰值匹配)Look-Up Table(2-D):建立兩個(gè)輸入信號的查詢表(線性峰值匹配)第7頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日4、 Math(數(shù)學(xué)模塊) math.mdlSum:加減運(yùn)算Product:乘運(yùn)算Dot Product:點(diǎn)乘運(yùn)算Gain:比例運(yùn)算Math Function:包括指數(shù)函數(shù)、對數(shù)函數(shù)、求平方、
7、開根號等常用數(shù)學(xué)函數(shù)Trigonometric Function:三角函數(shù),包括正弦、余弦、正切等MinMax:最值運(yùn)算Abs:取絕對值Sign:符號函數(shù)第8頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日Logical Operator:邏輯運(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í)部和虛部輸入合
8、成復(fù)數(shù)輸出第9頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日5、 Nonlinear(非線性模塊) nonlinear.mdlSaturation:飽和輸出,讓輸出超過某一值時(shí)能夠飽和。Relay:滯環(huán)比較器,限制輸出值在某一范圍內(nèi)變化。Switch:開關(guān)選擇,當(dāng)?shù)诙€(gè)輸入端大于臨界值時(shí),輸出由第一個(gè)輸入端而來,否則輸出由第三個(gè)輸入端而來。Manual Switch:手動選擇開關(guān)第10頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日6、Signal&Systems(信號和系統(tǒng)模塊) sigsys.mdlIn1:輸入端。Out1:輸出端。Mux:將多個(gè)單一輸入轉(zhuǎn)化為一個(gè)復(fù)合
9、輸出。Demux:將一個(gè)復(fù)合輸入轉(zhuǎn)化為多個(gè)單一輸出。Ground:連接到?jīng)]有連接到的輸入端。Terminator:連接到?jīng)]有連接到的輸出端。SubSystem:建立新的封裝(Mask)功能模塊第11頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日7、Sinks(接收器模塊) sinks.mdlScope:示波器。XY Graph:顯示二維圖形。To Workspace:將輸出寫入MATLAB的工作空間。To File(.mat):將輸出寫入數(shù)據(jù)文件。第12頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日8、Sources(輸入源模塊) sources.mdlConstant
10、:常數(shù)信號。Clock:時(shí)鐘信號。From Workspace:來自MATLAB的工作空間。From File(.mat):來自數(shù)據(jù)文件。Pulse Generator:脈沖發(fā)生器。Repeating Sequence:重復(fù)信號。Signal Generator:信號發(fā)生器,可以產(chǎn)生正弦、方波、鋸齒波及隨意波。Sine Wave:正弦波信號。Step:階躍波信號。第13頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日四、SIMULINK簡單模型的建立及模型特點(diǎn)1、簡單模型的建立 exp5_1.mdl(1)建立模型窗口(2)將功能模塊由模塊庫窗口復(fù)制到模型窗口(3)對模塊進(jìn)行連接,從而
11、構(gòu)成需要的系統(tǒng)模型2、模型的特點(diǎn)在SIMULINK里提供了許多如Scope的接收器模塊,這使得用SIMULNK進(jìn)行仿真具有像做實(shí)驗(yàn)一般的圖形化顯示效果。SIMULINK的模型具有層次性,通過底層子系統(tǒng)可以構(gòu)建上層母系統(tǒng)。SIMULINK提供了對子系統(tǒng)進(jìn)行封裝的功能,用戶可以自定義子系統(tǒng)的圖標(biāo)和設(shè)置參數(shù)對話框。第14頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日第二節(jié) SIMULINK功能模塊的處理模塊庫中的模塊可以直接用鼠標(biāo)進(jìn)行拖曳(選中模塊,按住鼠標(biāo)左鍵不放)而放到模型窗口中進(jìn)行處理。在模型窗口中,選中模塊,則其4個(gè)角會出現(xiàn)黑色標(biāo)記。此時(shí)可以對模塊進(jìn)行以下的基本操作。移動:選中模
12、塊,按住鼠標(biāo)左鍵將其拖曳到所需的位置即可。若要脫離線而移動,可按住shift鍵,再進(jìn)行拖曳。復(fù)制:選中模塊,然后按住鼠標(biāo)右鍵進(jìn)行拖曳即可復(fù)制同樣的一個(gè)功能模塊。刪除:選中模塊,按Delete鍵即可。若要刪除多個(gè)模塊,可以同時(shí)按住Shift鍵,再用鼠標(biāo)選中多個(gè)模塊,按Delete鍵即可。也可以用鼠標(biāo)選取某區(qū)域,再按Delete鍵就可以把該區(qū)域中的所有模塊和線等全部刪除。功能模塊的基本操作,包括模塊的移動、復(fù)制、刪除、轉(zhuǎn)向、改變大小、模塊命名、顏色設(shè)定、參數(shù)設(shè)定、屬性設(shè)定、模塊輸入輸出信號等。第15頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日轉(zhuǎn)向:為了能夠順序連接功能模塊的輸入和輸出
13、端,功能模塊有時(shí)需要轉(zhuǎn)向。在菜單Format中選擇Flip Block旋轉(zhuǎn)180度,選擇Rotate Block順時(shí)針旋轉(zhuǎn)90度?;蛘咧苯影碈trl+F鍵執(zhí)行Flip Block,按Ctrl+R鍵執(zhí)行Rotate Block。改變大小:選中模塊,對模塊出現(xiàn)的4個(gè)黑色標(biāo)記進(jìn)行拖曳即可。模塊命名:先用鼠標(biāo)在需要更改的名稱上單擊一下,然后直接更改即可。名稱在功能模塊上的位置也可以變換180度,可以用Format菜單中的Flip Name來實(shí)現(xiàn),也可以直接通過鼠標(biāo)進(jìn)行拖曳。Hide Name可以隱藏模塊名稱。顏色設(shè)定: Format菜單中的Foreground Color可以改變模塊的前景顏色,Bac
14、kground Color可以改變模塊的背景顏色;而模型窗口的顏色可以通過Screen Color來改變。第16頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日參數(shù)設(shè)定:用鼠標(biāo)雙擊模塊,就可以進(jìn)入模塊的參數(shù)設(shè)定窗口,從而對模塊進(jìn)行參數(shù)設(shè)定。參數(shù)設(shè)定窗口包含了該模塊的基本功能幫助,為獲得更詳盡的幫助,可以點(diǎn)擊其上的help按鈕。通過對模塊的參數(shù)設(shè)定,就可以獲得需要的功能模塊。屬性設(shè)定:選中模塊,打開Edit菜單的Block Properties可以對模塊進(jìn)行屬性設(shè)定。包括Description屬性、 Priority優(yōu)先級屬性、Tag屬性、Open function屬性、Attribu
15、tes format string屬性。其中Open function屬性是一個(gè)很有用的屬性,通過它指定一個(gè)函數(shù)名,則當(dāng)該模塊被雙擊之后,Simulink就會調(diào)用該函數(shù)執(zhí)行,這種函數(shù)在MATLAB中稱為回調(diào)函數(shù)。模塊的輸入輸出信號:模塊處理的信號包括標(biāo)量信號和向量信號;標(biāo)量信號是一種單一信號,而向量信號為一種復(fù)合信號,是多個(gè)信號的集合,它對應(yīng)著系統(tǒng)中幾條連線的合成。缺省情況下,大多數(shù)模塊的輸出都為標(biāo)量信號,對于輸入信號,模塊都具有一種“智能”的識別功能,能自動進(jìn)行匹配。某些模塊通過對參數(shù)的設(shè)定,可以使模塊輸出向量信號。例exp5_2.mdl exp5_3.mdl第17頁,共48頁,2022年,
16、5月20日,14點(diǎn)20分,星期日 第三節(jié) SIMULINK線的處理 exp5_4.mdl改變粗細(xì):線所以有粗細(xì)是因?yàn)榫€引出的信號可以是標(biāo)量信號或向量信號,當(dāng)選中Format菜單下的Wide Vector Lines時(shí),線的粗細(xì)會根據(jù)線所引出的信號是標(biāo)量還是向量而改變,如果信號為標(biāo)量則為細(xì)線,若為向量則為粗線。選中Vector Line Widths則可以顯示出向量引出線的寬度,即向量信號由多少個(gè)單一信號合成。設(shè)定標(biāo)簽:只要在線上雙擊鼠標(biāo),即可輸入該線的說明標(biāo)簽。也可以通過選中線,然后打開Edit菜單下的Signal Properties進(jìn)行設(shè)定,其中signal name屬性的作用是標(biāo)明信號的
17、名稱,設(shè)置這個(gè)名稱反映在模型上的直接效果就是與該信號有關(guān)的端口相連的所有直線附近都會出現(xiàn)寫有信號名稱的標(biāo)簽。線的折彎:按住Shift鍵,再用鼠標(biāo)在要折彎的線處單擊一下,就會出現(xiàn)圓圈,表示折點(diǎn),利用折點(diǎn)就可以改變線的形狀。線的分支:按住鼠標(biāo)右鍵,在需要分支的地方拉出即可以。或者按住Ctrl鍵,并在要建立分支的地方用鼠標(biāo)拉出即可。SIMULINK模型的構(gòu)建是通過用線將各種功能模塊進(jìn)行連接而構(gòu)成的。用鼠標(biāo)可以在功能模塊的輸入與輸出端之間直接連線。所畫的線可以改變粗細(xì)、設(shè)定標(biāo)簽,也可以把線折彎、分支。第18頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日第四節(jié) SIMULINK自定義功能模塊
18、一、方法1 exp5_5.mdl將Signal&Systems 模塊庫中的Subsystem功能模塊復(fù)制到打開的模型窗口中。雙擊Subsystem功能模塊,進(jìn)入自定義功能模塊窗口,從而可以利用已有的基本功能模塊設(shè)計(jì)出新的功能模塊。自定義功能模塊有兩種方法,一種方法是采用Signal&Systems 模塊庫中的Subsystem功能模塊,利用其編輯區(qū)設(shè)計(jì)組合新的功能模塊;另一種方法是將現(xiàn)有的多個(gè)功能模塊組合起來,形成新的功能模塊。對于很大的SIMULINK模型,通過自定義功能模塊可以簡化圖形,減少功能模塊的個(gè)數(shù),有利于模型的分層構(gòu)建。二、方法2 exp5_6.mdl在模型窗口中建立所定義功能模塊
19、的子模塊。用鼠標(biāo)將這些需要組合的功能模塊框住,然后選擇Edit菜單下的Create Subsystem即可。第19頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日三、自定義功能模塊的封裝 exp5_7.mdl exp5_8.mdl exp5_9.mdl exp5_10.mdl上面提到的兩種方法都只是創(chuàng)建一個(gè)功能模塊而已,如果要命名該自定義功能模塊、對功能模塊進(jìn)行說明、選定模塊外觀、設(shè)定輸入數(shù)據(jù)窗口,則需要對其進(jìn)行封裝處理。首先選中Subsystem功能模塊,再打開Edit菜單中的Mask Subsystem進(jìn)入mask的編輯窗口,可以看出有3個(gè)標(biāo)簽頁。Icon:設(shè)定功能模塊的外觀。I
20、nitialization:設(shè)定輸入數(shù)據(jù)窗口(Prompt List)。Documentation:設(shè)計(jì)該功能模塊的文字說明。第20頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日1、Icon標(biāo)簽頁此頁最重要的部分是Drawing Commands,在該區(qū)域內(nèi)可以用disp指令設(shè)定功能模塊的文字名稱,用plot指令畫線,用dpoly指令畫轉(zhuǎn)換函數(shù)。注意,盡管這些命令在名字上和以前講的MATLAB函數(shù)相同,但它們在功能上卻不完全相同,因此不能隨便套用以前所講的格式。disp(text)可以在功能模塊上顯示設(shè)定的文字內(nèi)容。disp(text1ntext2)分行顯示文字text1和text
21、2plot(x1 x2 xn,y1 y2 yn)指令會在功能模塊上畫出由x1 y1經(jīng)x2 y2經(jīng)x3 y3 直到xn,yn為止的直線。功能模塊的左下角會根據(jù)目前的坐標(biāo)刻度被正規(guī)化為0,0,右上角則會依據(jù)目前的坐標(biāo)刻度被正規(guī)化為1,1。dpoly(num,den):按s次數(shù)的降冪排序,在功能模塊上顯示連續(xù)的傳遞函數(shù)。dpoly(num,den,z):按z次數(shù)的降冪排序,在功能模塊上顯示離散的傳遞函數(shù)。第21頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日用戶還可以設(shè)置一些參數(shù)來控制圖標(biāo)的屬性,這些屬性在Icon頁右下端的下拉式列表中進(jìn)行選擇。Icon frame:Visible 顯示外
22、框線;Invisible:隱藏外框線。Icon Transparency:Opaque 隱藏輸入輸出的標(biāo)簽;Transparent:顯示輸入輸出的標(biāo)簽。Icon Rotation:旋轉(zhuǎn)模塊。Drawing coordinate:畫圖時(shí)的坐標(biāo)系。第22頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日2、Initialization標(biāo)簽頁此頁主要用來設(shè)計(jì)輸入提示(prompt)以及對應(yīng)的變量名稱(variable)。在prompt欄上輸入變量的含義,其內(nèi)容會顯示在輸入提示中。而variable是仿真要用到的變量,該變量的值一直存于mask workspace中,因此可以與其他程序相互傳遞
23、。如果配合在initialization commands內(nèi)編輯程序,可以發(fā)揮功能模塊的功能來執(zhí)行特定的操作。在prompt編輯框中輸入文字,這些文字就會出現(xiàn)在prompt列表中;在variable列表中輸入變量名稱,則prompt中的文字對應(yīng)該變量的說明。如果要增加新的項(xiàng)目,可以點(diǎn)擊邊上的Add鍵。Up和Down按鈕用于執(zhí)行項(xiàng)目間的位置調(diào)整。Control type列表給用戶提供選擇設(shè)計(jì)的編輯區(qū),選擇Edit會出現(xiàn)供輸入的空白區(qū)域,所輸入的值代表對應(yīng)的variable;Popup則為用戶提供可選擇的列表框,所選的值代表variable,此時(shí)在下面會出現(xiàn)Popup strings輸入框,用來設(shè)
24、計(jì)選擇的內(nèi)容,各值之間用邏輯或符號“|”隔開;如選擇Checkbox則用于on與off的選擇設(shè)定。第23頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日Assignment屬性用于配合Control type的不同選擇來提供不同的變量值,變量值有Evaluate和Literal兩種,其含義如下: AssignmentControl type Evaluate Literal Edit 輸入的文字是程序執(zhí)行時(shí)所用的變量值; 輸入內(nèi)容作字符串處理 Popup 為選擇的序號,選第一項(xiàng)輸出值為1, 選擇內(nèi)容作字符串處理 往下類推; Checkbox 輸出為1或0; 輸出為on或off的字符串
25、第24頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日3、Documentation標(biāo)簽頁此頁主要用來針對完成的功能模塊來編寫相應(yīng)的說明文字和Help。在Block description中輸入的文字,會出現(xiàn)在參數(shù)窗口的說明部分。在Block help中輸入的文字則會顯示在單擊參數(shù)窗口中的help按鈕后瀏覽器所加載的HTML文件中。Mask type:在此處輸入的文字作為封裝模塊的標(biāo)注性說明,在模型窗口下,將鼠標(biāo)指向模塊,則會顯示該文字。當(dāng)然必須先在View菜單中選擇Block Data TipsShow Block Data Tips。第25頁,共48頁,2022年,5月20日,1
26、4點(diǎn)20分,星期日第五節(jié) SIMULINK仿真的運(yùn)行一、設(shè)置仿真參數(shù)和選擇解法器設(shè)置仿真參數(shù)和選擇解法器,選擇Simulation菜單下的Parameters命令,就會彈出一個(gè)仿真參數(shù)對話框,它主要用三個(gè)頁面來管理仿真的參數(shù)。Solver頁,它允許用戶設(shè)置仿真的開始和結(jié)束時(shí)間,選擇解法器,說明解法器參數(shù)及選擇一些輸出選項(xiàng)。Workspace I/O頁,作用是管理模型從MATLAB工作空間的輸入和對它的輸出。Diagnostics頁,允許用戶選擇Simulink在仿真中顯示的警告信息的等級。構(gòu)建好一個(gè)系統(tǒng)的模型之后,接下來的事情就是運(yùn)行模型,得出仿真結(jié)果。運(yùn)行一個(gè)仿真的完整過程分成三個(gè)步驟:設(shè)置
27、仿真參數(shù),啟動仿真和仿真結(jié)果分析。第26頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日1、Solver頁此頁可以進(jìn)行的設(shè)置有:選擇仿真開始和結(jié)束的時(shí)間;選擇解法器,并設(shè)定它的參數(shù);選擇輸出項(xiàng)。仿真時(shí)間:注意這里的時(shí)間概念與真實(shí)的時(shí)間并不一樣,只是計(jì)算機(jī)仿真中對時(shí)間的一種表示,比如10秒的仿真時(shí)間,如果采樣步長定為0.1,則需要執(zhí)行100步,若把步長減小,則采樣點(diǎn)數(shù)增加,那么實(shí)際的執(zhí)行時(shí)間就會增加。一般仿真開始時(shí)間設(shè)為0,而結(jié)束時(shí)間視不同的因素而選擇??偟恼f來,執(zhí)行一次仿真要耗費(fèi)的時(shí)間依賴于很多因素,包括模型的復(fù)雜程度、解法器及其步長的選擇、計(jì)算機(jī)時(shí)鐘的速度等等。仿真步長模式:用戶在
28、Type后面的第一個(gè)下拉選項(xiàng)框中指定仿真的步長選取方式,可供選擇的有Variable-step(變步長)和Fixed-step(固定步長)方式。變步長模式可以在仿真的過程中改變步長,提供誤差控制和過零檢測。固定步長模式在仿真過程中提供固定的步長,不提供誤差控制和過零檢測。用戶還可以在第二個(gè)下拉選項(xiàng)框中選擇對應(yīng)模式下仿真所采用的算法。第27頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日變步長模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。ode45:缺省值,四/五階龍格庫塔法,適用于大多數(shù)連續(xù)或離散系統(tǒng),
29、但不適用于剛性(stiff)系統(tǒng)。它是單步解法器,也就是,在計(jì)算y(tn)時(shí),它僅需要最近處理時(shí)刻的結(jié)果y(tn-1)。一般來說,面對一個(gè)仿真問題最好是首先試試ode45。ode23:二/三階龍格庫塔法,它在誤差限要求不高和求解的問題不太難的情況下,可能會比ode45更有效。也是一個(gè)單步解法器。ode113:是一種階數(shù)可變的解法器,它在誤差容許要求嚴(yán)格的情況下通常比ode45有效。ode113是一種多步解法器,也就是在計(jì)算當(dāng)前時(shí)刻輸出時(shí),它需要以前多個(gè)時(shí)刻的解。ode15s:是一種基于數(shù)字微分公式的解法器(NDFs)。也是一種多步解法器。適用于剛性系統(tǒng),當(dāng)用戶估計(jì)要解決的問題是比較困難的,或者
30、不能使用ode45,或者即使使用效果也不好,就可以用ode15s。第28頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日ode23s:它是一種單步解法器,專門應(yīng)用于剛性系統(tǒng),在弱誤差允許下的效果好于ode15s。它能解決某些ode15s所不能有效解決的stiff問題。ode23t:是梯形規(guī)則的一種自由插值實(shí)現(xiàn)。這種解法器適用于求解適度stiff的問題而用戶又需要一個(gè)無數(shù)字振蕩的解法器的情況。ode23tb:是TR-BDF2的一種實(shí)現(xiàn), TR-BDF2 是具有兩個(gè)階段的隱式龍格庫塔公式。discrtet:當(dāng)Simulink檢查到模型沒有連續(xù)狀態(tài)時(shí)使用它。第29頁,共48頁,2022年,
31、5月20日,14點(diǎn)20分,星期日固定步長模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。ode5:缺省值,是ode45的固定步長版本,適用于大多數(shù)連續(xù)或離散系統(tǒng),不適用于剛性系統(tǒng)。ode4:四階龍格庫塔法,具有一定的計(jì)算精度。ode3:固定步長的二/三階龍格庫塔法。ode2:改進(jìn)的歐拉法。ode1:歐拉法。discrete:是一個(gè)實(shí)現(xiàn)積分的固定步長解法器,它適合于離散無連續(xù)狀態(tài)的系統(tǒng)。第30頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日步長參數(shù):對于變步長模式,用戶可以設(shè)置最大的和推薦的初始步長參數(shù),缺省情況下,步長自動地確定,它由值auto表示。
32、Maximum step size(最大步長參數(shù)):它決定了解法器能夠使用的最大時(shí)間步長,它的缺省值為“仿真時(shí)間/50”,即整個(gè)仿真過程中至少取50個(gè)取樣點(diǎn),但這樣的取法對于仿真時(shí)間較長的系統(tǒng)則可能帶來取樣點(diǎn)過于稀疏,而使仿真結(jié)果失真。一般建議對于仿真時(shí)間不超過15s的采用默認(rèn)值即可,對于超過15s的每秒至少保證5個(gè)采樣點(diǎn),對于超過100s的,每秒至少保證3個(gè)采樣點(diǎn)。Initial step size(初始步長參數(shù)):一般建議使用“auto”默認(rèn)值即可。仿真精度的定義(對于變步長模式)Relative tolerance(相對誤差):它是指誤差相對于狀態(tài)的值,是一個(gè)百分比,缺省值為1e-3,表
33、示狀態(tài)的計(jì)算值要精確到0.1%。Absolute tolerance(絕對誤差):表示誤差值的門限,或者是說在狀態(tài)值為零的情況下,可以接受的誤差。如果它被設(shè)成了auto,那么simulink為每一個(gè)狀態(tài)設(shè)置初始絕對誤差為1e-6。第31頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日Mode(固定步長模式選擇)Multitasking:選擇這種模式時(shí),當(dāng)simulink檢測到模塊間非法的采樣速率轉(zhuǎn)換,它會給出錯(cuò)誤提示。所謂的非法采樣速率轉(zhuǎn)換指兩個(gè)工作在不同采樣速率的模塊之間的直接連接。在實(shí)時(shí)多任務(wù)系統(tǒng)中,如果任務(wù)之間存在非法采樣速率轉(zhuǎn)換,那么就有可能出現(xiàn)一個(gè)模塊的輸出在另一個(gè)模塊需要
34、時(shí)卻無法利用的情況。通過檢查這種轉(zhuǎn)換,Multitasking將有助于用戶建立一個(gè)符合現(xiàn)實(shí)的多任務(wù)系統(tǒng)的有效模型。 使用速率轉(zhuǎn)換模塊可以減少模型中的非法速率轉(zhuǎn)換。Simulink提供了兩個(gè)這樣的模塊:unit delay模塊和zero-order hold模塊。對于從慢速率到快速率的非法轉(zhuǎn)換,可以在慢輸出端口和快輸入端口插入一個(gè)單位延時(shí)unit delay模塊。而對于快速率到慢速率的轉(zhuǎn)換,則可以插入一個(gè)零階采樣保持器zero-order hold。Singletasking:這種模式不檢查模塊間的速率轉(zhuǎn)換,它在建立單任務(wù)系統(tǒng)模型時(shí)非常有用,在這種系統(tǒng)就不存在任務(wù)同步問題。Auto:這種模式,s
35、imulink會根據(jù)模型中模塊的采樣速率是否一致,自動決定切換到multitasking和singletasking。第32頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日輸出選項(xiàng)Refine output:這個(gè)選項(xiàng)可以理解成精細(xì)輸出,其意義是在仿真輸出太稀松時(shí),simulink會產(chǎn)生額外的精細(xì)輸出,這一點(diǎn)就像插值處理一樣。用戶可以在refine factor設(shè)置仿真時(shí)間步間插入的輸出點(diǎn)數(shù)。 產(chǎn)生更光滑的輸出曲線,改變精細(xì)因子比減小仿真步長更有效。精細(xì)輸出只能在變步長模式中才能使用,并且在ode45效果最好。Produce additional output:它允許用戶直接指定產(chǎn)生輸
36、出的時(shí)間點(diǎn)。一旦選擇了該項(xiàng),則在它的右邊出現(xiàn)一個(gè)output times編輯框,在這里用戶指定額外的仿真輸出點(diǎn),它既可以是一個(gè)時(shí)間向量,也可以是表達(dá)式。與精細(xì)因子相比,這個(gè)選項(xiàng)會改變仿真的步長。Produce specified output only:它的意思是讓simulink只在指定的時(shí)間點(diǎn)上產(chǎn)生輸出。為此解法器要調(diào)整仿真步長以使之和指定的時(shí)間點(diǎn)重合。這個(gè)選項(xiàng)在比較不同的仿真時(shí)可以確保它們在相同的時(shí)間輸出。第33頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日2、Workspace I/O頁此頁主要用來設(shè)置SIMULINK與MATLAB工作空間交換數(shù)值的有關(guān)選項(xiàng)。Load fr
37、om workspace:選中前面的復(fù)選框即可從MATLAB工作空間獲取時(shí)間和輸入變量,一般時(shí)間變量定義為t,輸入變量定義為u。 Initial state用來定義從MATLAB工作空間獲得的狀態(tài)初始值的變量名。Save to workspace:用來設(shè)置存往MATLAB工作空間的變量類型和變量名,選中變量類型前的復(fù)選框使相應(yīng)的變量有效。一般存往工作空間的變量包括輸出時(shí)間向量(Time)、狀態(tài)向量(States)和輸出變量(Output)。 Final state用來定義將系統(tǒng)穩(wěn)態(tài)值存往工作空間所使用的變量名。Save option:用來設(shè)置存往工作空間的有關(guān)選項(xiàng)。Limit rows to
38、last用來設(shè)定SIMULINK仿真結(jié)果最終可存往MATLAB工作空間的變量的規(guī)模,對于向量而言即其維數(shù),對于矩陣而言即其秩;Decimation設(shè)定了一個(gè)亞采樣因子,它的缺省值為1,也就是對每一個(gè)仿真時(shí)間點(diǎn)產(chǎn)生值都保存,而若為2,則是每隔一個(gè)仿真時(shí)刻才保存一個(gè)值。Format用來說明返回?cái)?shù)據(jù)的格式,包括矩陣matrix、結(jié)構(gòu)struct及帶時(shí)間的結(jié)構(gòu)struct with time。第34頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日3、Diagnostics頁此頁分成兩個(gè)部分:仿真選項(xiàng)和配置選項(xiàng)。配置選項(xiàng)下的列表框主要列舉了一些常見的事件類型,以及當(dāng)SIMULINK檢查到這些事
39、件時(shí)給予的處理。仿真選項(xiàng)options主要包括是否進(jìn)行一致性檢驗(yàn)、是否禁用過零檢測、是否禁止復(fù)用緩存、是否進(jìn)行不同版本的SIMULINK的檢驗(yàn)等幾項(xiàng)。除了上述3個(gè)主要的頁外,仿真參數(shù)設(shè)置窗口還包括real-time workshop頁,主要用于與C語言編輯器的交換,通過它可以直接從SIMULINK模型生成代碼并且自動建立可以在不同環(huán)境下運(yùn)行的程序,這些環(huán)境包括實(shí)時(shí)系統(tǒng)和單機(jī)仿真。第35頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日二、啟動仿真設(shè)置仿真參數(shù)和選擇解法器之后,就可以啟動仿真而運(yùn)行。選擇Simulink菜單下的start選項(xiàng)來啟動仿真,如果模型中有些參數(shù)沒有定義,則會出現(xiàn)
40、錯(cuò)誤信息提示框。如果一切設(shè)置無誤,則開始仿真運(yùn)行,結(jié)束時(shí)系統(tǒng)會發(fā)出一鳴叫聲。除了直接在SIMULINK環(huán)境下啟動仿真外,還可以在MATLAB命令窗口中通過函數(shù)進(jìn)行,格式如下: t,x,y=sim(模型文件名,to tf,simset(參數(shù)1,參數(shù)值1,參數(shù)2,參數(shù)值2, )其中to為仿真起始時(shí)間,tf為仿真終止時(shí)間。t,x,y為返回值,t為返回的時(shí)間向量值,x為返回的狀態(tài)值,y為返回的輸出向量值。simset定義了仿真參數(shù),包括以下一些主要參數(shù):AbsTol:默認(rèn)值為1e-6設(shè)定絕對誤差范圍。Decimation:默認(rèn)值為1,決定隔多少個(gè)點(diǎn)返回狀態(tài)和輸出值。Solver:解法器的選擇。第36頁
41、,共48頁,2022年,5月20日,14點(diǎn)20分,星期日MaxRows:默認(rèn)值為0,表示不限制。若為大于零的值,則表示限制輸 出和狀態(tài)的規(guī)模,使其最大行數(shù)等于該數(shù)值。InitialState:一個(gè)向量值,用于設(shè)定初始狀態(tài)。FixedStep:用一個(gè)正數(shù)表示步階的大小,僅用于固定步長模式。MaxStep:默認(rèn)值為auto。用于變步長模式,表示最大的步階大小。如果知道模型文件名稱,可以用以下命令得到該模型的仿真參數(shù):simget(模型文件名)第37頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日第六節(jié) SIMULINK s-function的設(shè)計(jì)一、s-function的概念s-func
42、tion是一個(gè)動態(tài)系統(tǒng)的計(jì)算機(jī)語言描述,在MATLAB里,用戶可以選擇用m文件編寫,也可以用c或mex文件編寫,在這里只給大家介紹如何用m文件編寫s-function。S-function提供了擴(kuò)展Simulink模塊庫的有力工具,它采用一種特定的調(diào)用語法,使函數(shù)和Simulink解法器進(jìn)行交互。S-function最廣泛的用途是定制用戶自己的Simulink模塊。它的形式十分通用,能夠支持連續(xù)系統(tǒng)、離散系統(tǒng)和混合系統(tǒng)。Simulink為用戶提供了許多內(nèi)置的基本庫模塊,通過這些模塊進(jìn)行連接而構(gòu)成系統(tǒng)的模型。對于那些經(jīng)常使用的模塊進(jìn)行組合并封裝可以構(gòu)建出重復(fù)使用的新模塊,但它依然是基于Simul
43、ink原來提供的內(nèi)置模塊。而Simulink s-function是一種強(qiáng)大的對模塊庫進(jìn)行擴(kuò)展的新工具。第38頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日二、建立m文件s-function1、使用模板文件:sfuntmp1. m該模板文件位于MATLAB根目錄下toolbox/simulink/blocks目錄下。模板文件里s-function的結(jié)構(gòu)十分簡單,它只為不同的flag的值指定要相應(yīng)調(diào)用的m文件子函數(shù)。比如當(dāng)flag=3時(shí),即模塊處于計(jì)算輸出這個(gè)仿真階段時(shí),相應(yīng)調(diào)用的子函數(shù)為sys=mdloutputs(t,x,u)。模板文件使用switch語句來完成這種指定,當(dāng)然這種
44、結(jié)構(gòu)并不唯一,用戶也可以使用if語句來完成同樣的功能。而且在實(shí)際運(yùn)用時(shí),可以根據(jù)實(shí)際需要來去掉某些值,因?yàn)椴⒉皇敲總€(gè)模塊都需要經(jīng)過所有的子函數(shù)調(diào)用。模板文件只是Simulink為方便用戶而提供的一種參考格式,并不是編寫s-function的語法要求,用戶完全可以改變子函數(shù)的名稱,或者直接把代碼寫在主函數(shù)里,但使用模板文件的好處是,比較方便,而且條理清晰。第39頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日使用模板編寫s-function,用戶只需把s-函數(shù)名換成期望的函數(shù)名稱,如果需要額外的輸入?yún)⒘?,還需在輸入?yún)?shù)列表的后面增加這些參數(shù),因?yàn)榍懊娴?個(gè)參數(shù)是simulink調(diào)用s-
45、function時(shí)自動傳入的。對于輸出參數(shù),最好不做修改。接下去的工作就是根據(jù)所編s-function要完成的任務(wù),用相應(yīng)的代碼去替代模板里各個(gè)子函數(shù)的代碼即可。Simulink在每個(gè)仿真階段都會對s-function進(jìn)行調(diào)用,在調(diào)用時(shí),Simulink會根據(jù)所處的仿真階段為flag傳入不同的值,而且還會為sys這個(gè)返回參數(shù)指定不同的角色,也就是說盡管是相同的sys變量,但在不同的仿真階段其意義卻不相同,這種變化由simulink自動完成。m文件s-function可用的子函數(shù)說明如下:mdlInitializeSizes:定義s-function模塊的基本特性,包括采樣時(shí)間、連續(xù)或者離散狀態(tài)
46、的初始條件和sizes數(shù)組。mdlDerivatives:計(jì)算連續(xù)狀態(tài)變量的微分方程。mdlUpdate:更新離散狀態(tài)、采樣時(shí)間和主時(shí)間步的要求。mdlOutputs:計(jì)算s-function的輸出。第40頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日mdlGetTimeOfNextVarHit:計(jì)算下一個(gè)采樣點(diǎn)的絕對時(shí)間,這個(gè)方法僅僅是在用戶在mdlInitializeSizes 里說明了一個(gè)可變的離散采樣時(shí)間。mdlTerminate:實(shí)現(xiàn)仿真任務(wù)必須的結(jié)束。概括說來,建立s-function可以分成兩個(gè)分離的任務(wù):初始化模塊特性包括輸入輸出信號的寬度,離散連續(xù)狀態(tài)的初始條件和
47、采樣時(shí)間。將算法放到合適的s-function子函數(shù)中去。第41頁,共48頁,2022年,5月20日,14點(diǎn)20分,星期日2、定義s-function的初始信息為了讓Simulink識別出一個(gè)m文件s-function,用戶必須在s-函數(shù)里提供有關(guān)s-函數(shù)的說明信息,包括采樣時(shí)間、連續(xù)或者離散狀態(tài)個(gè)數(shù)等初始條件。這一部分主要是在mdlInitializeSizes子函數(shù)里完成。Sizes數(shù)組是s-function函數(shù)信息的載體,它內(nèi)部的字段意義為:NumContStates:連續(xù)狀態(tài)的個(gè)數(shù)(狀態(tài)向量連續(xù)部分的寬度)NumDiscStates:離散狀態(tài)的個(gè)數(shù)(狀態(tài)向量離散部分的寬度)NumOutputs: 輸出變量的個(gè)數(shù)(輸出向量的寬度)NumInputs:輸入變量的個(gè)數(shù)(輸入向量的寬度)DirFeedthrough:有無直
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年陜西省中考英語試題(A卷)含解析
- 通信線路工程施工監(jiān)理規(guī)范方案
- 2014-2019年中國粉煤灰陶瓷墻地磚行業(yè)分析及投資咨詢報(bào)告
- 2024至2030年中國底/側(cè)密封條行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國分體熱合式紗窗行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國保險(xiǎn)線插座數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國L板行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年中國氬氣燈頭市場調(diào)查研究報(bào)告
- 2024年中國微波信號源市場調(diào)查研究報(bào)告
- 高中語文唐宋詩5第四課明月何時(shí)照我還-羈旅鄉(xiāng)思課件語文版選修唐宋詩詞鑒賞
- 期中檢測卷(1-4單元)(試題)-2024-2025學(xué)年二年級上冊數(shù)學(xué)人教版
- 2024-2030年中國高嶺土市場運(yùn)行態(tài)勢分析與發(fā)展現(xiàn)狀調(diào)研報(bào)告
- 8.2敬畏生命 (課件)-2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 期中測試(1~3單元)(試題)-2024-2025學(xué)年三年級上冊數(shù)學(xué)蘇教版
- 口腔頜面部損傷-口腔頜面部損傷清創(chuàng)術(shù)(口腔科技術(shù))
- JJF 1049-2024溫度傳感器動態(tài)響應(yīng)校準(zhǔn)規(guī)范
- 人教版七年級音樂上冊(簡譜)第一單元《中學(xué)時(shí)代》 教案
- 高中數(shù)學(xué)大單元教學(xué)設(shè)計(jì)研究
- DB50T731-2016 殘疾兒童康復(fù)機(jī)構(gòu)等級劃分要求
- 人教版七年級英語上冊教學(xué)課件Unit 3 My School
- 2024-2030年中國節(jié)慶飾品市場發(fā)展趨勢及營銷策略分析報(bào)告
評論
0/150
提交評論