




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章動(dòng)態(tài)仿真集成環(huán)境-
Simulink
本章內(nèi)容(1)
注意區(qū)分書(shū)中Simulink庫(kù)瀏覽窗口與Simulink模塊庫(kù)的區(qū)別;(2)
熟悉Simulink模塊庫(kù)和Simulink附加模塊庫(kù)中常用標(biāo)準(zhǔn)模塊的功能及其應(yīng)用;(3)
利用Simulink標(biāo)準(zhǔn)模塊在用戶模型窗口中建立控制系統(tǒng)仿真模型;(4)
熟悉利用Simulink進(jìn)行系統(tǒng)仿真的兩種仿真方法:菜單法和行命令法;(5)
仿真算法和參數(shù)以及常用標(biāo)準(zhǔn)模塊參數(shù)的設(shè)置;(6)
仿真結(jié)果的三種處理方法,并注意輸出接口模塊(Out1)和將數(shù)據(jù)輸出到工作空間模塊(ToWorkspace)的不同用法及其利用它們輸出信號(hào)時(shí)的仿真參數(shù)的設(shè)置;(7)
利用MATLAB求解非線性系統(tǒng)的線性化模型;(8)
熟悉子系統(tǒng)的兩種建立方法:菜單法和模塊法,以及條件子系統(tǒng)的應(yīng)用(9)
模型封裝模板編輯器的參數(shù)設(shè)置及系統(tǒng)模型的封裝步驟。1目前一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)Simulink是一個(gè)用來(lái)對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包。它支持連續(xù)、離散及兩者混合的線性和非線性系統(tǒng),同時(shí)它也支持具有不同部分擁有不同采樣率的多種采樣速度的系統(tǒng)仿真。Simulink為用戶提供了一個(gè)圖形化的用戶界面(GUI)。對(duì)于用方框圖所表示的系統(tǒng),通過(guò)圖形界面,利用鼠標(biāo)點(diǎn)擊和拖拉方式,建立系統(tǒng)模型就像用鉛筆在紙上繪制系統(tǒng)的模型圖一樣簡(jiǎn)單,它與用微分方程和差分方程建模的傳統(tǒng)仿真軟件包相比,具有更直觀、更方便、更靈活的優(yōu)點(diǎn)。它不但實(shí)現(xiàn)了可視化的動(dòng)態(tài)仿真,也實(shí)現(xiàn)了與MATLAB、C或者FORTRAN甚至和硬件之間的數(shù)據(jù)傳遞,大大地?cái)U(kuò)展了它的功能。2目前二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.1Simulink簡(jiǎn)介6.1.1Simulink的啟動(dòng)要啟動(dòng)Simulink必須先啟動(dòng)MATLAB。在MATLAB窗口中,有三種方法啟動(dòng)Simulink:(1)在MATLAB的命令窗口中,直接鍵入命令:simulink;(2)在MATLAB窗口的工具條中,單擊Simulink的快捷啟動(dòng)按鈕“”;(3)在MATLAB窗口的左下角“Start”菜單中,單擊“Simulink”子菜單中的“LibraryBrowser”選項(xiàng)。3目前三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)啟動(dòng)Simulink后,便可顯示如圖6-1所示的Simulink庫(kù)瀏覽窗口(SimulinkLibraryBrowser),窗口左邊列出了該系統(tǒng)中所有安裝的一個(gè)樹(shù)狀結(jié)構(gòu)的仿真模塊集或工具箱,同時(shí)右邊顯示當(dāng)前左邊所選仿真模塊集或工具箱中所包含的標(biāo)準(zhǔn)模塊庫(kù)。Simulink庫(kù)瀏覽窗口由功能菜單、工具欄和模塊集或工具箱三大部分組成,創(chuàng)建系統(tǒng)模型時(shí),將從這些仿真模塊集或工具箱中利用鼠標(biāo)復(fù)制標(biāo)準(zhǔn)模塊到用戶模型編輯窗口中。
4目前四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)圖6-15目前五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.1.2Simulink庫(kù)瀏覽窗口的功能菜單為了充分利用仿真模塊庫(kù)(集)中的標(biāo)準(zhǔn)模塊對(duì)控制系統(tǒng)進(jìn)行有效的動(dòng)態(tài)仿真,在Simulink庫(kù)瀏覽窗口中設(shè)計(jì)了以下各個(gè)功能菜單。*File文件操作菜單New新建用戶模型編輯窗口/模塊庫(kù)窗口Open打開(kāi)用戶模型編輯窗口Close關(guān)閉用戶模型編輯窗口Preferences參數(shù)選擇*Edit編輯菜單Addtothecurrentmodel增加到當(dāng)前用戶模型編輯窗口中Findblock查找模塊Findnewblock查找新模塊6目前六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)*View查看菜單Toolbar顯示/關(guān)閉工具條開(kāi)關(guān)Statusbar顯示/關(guān)閉狀態(tài)條開(kāi)關(guān)Description顯示/關(guān)閉描述窗口開(kāi)關(guān)Stayontop位于上層Collapseentirebrowser壓縮整個(gè)樹(shù)狀結(jié)構(gòu)Expandentirebrowser展開(kāi)整個(gè)樹(shù)狀結(jié)構(gòu)Largeicons大圖標(biāo)Smallicons小圖標(biāo)Showparametersforselectedblock顯示所選模塊參數(shù)*Help幫助菜單7目前七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.1.3仿真模塊庫(kù)(集)
在Simulink庫(kù)瀏覽窗口中,包含了由眾多領(lǐng)域著名專(zhuān)家與學(xué)者以MATLAB為基礎(chǔ)開(kāi)發(fā)的大量實(shí)用模塊集或工具箱,本書(shū)限于篇幅,僅介紹與動(dòng)態(tài)仿真Simulink有關(guān)的幾種模塊集。1.Simulink模塊集(Simulink)在Simulink庫(kù)瀏覽窗口的Simulink節(jié)點(diǎn)上,通過(guò)單擊鼠標(biāo)右鍵后,便可打開(kāi)如圖6-2所示的Simulink模塊集窗口8目前八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)
Simulink模塊庫(kù)由標(biāo)題、功能菜單和標(biāo)準(zhǔn)模塊庫(kù)三部分組成。
圖6-29目前九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(1)信號(hào)源模塊庫(kù)(Sources)Sources庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-3和表6-1所示。1)Simulink的標(biāo)準(zhǔn)模塊庫(kù)10目前十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(2)接收模塊庫(kù)(Sinks)Sinks庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-4和表6-2所示。11目前十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(3)連續(xù)系統(tǒng)模塊庫(kù)(Continuous)Continuous庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-5和表6-3所示。12目前十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(4)離散系統(tǒng)模塊庫(kù)(Discrete)Discrete庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-6和表6-4所示。13目前十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(5)非連續(xù)系統(tǒng)模塊庫(kù)(Discontinuities)Discontinuities庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-7和表6-5所示。14目前十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(6)信號(hào)路由模塊庫(kù)(SignalRouting)SignalRouting庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-8和表6-6所示。15目前十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(7)信號(hào)屬性模塊庫(kù)(SignalAttributes)SignalAttributes庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-9和表6-7所示。16目前十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(8)數(shù)學(xué)運(yùn)算模塊庫(kù)(MathOperations)MathOperations庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-10和表6-8所示。17目前十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(9)邏輯和位操作模塊庫(kù)(LogicandBitOperations)LogicandBitOperations庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-11和表6-9所示。
18目前十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(10)查表模塊庫(kù)(LookupTables)LookupTables庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-12和表6-10所示。19目前十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(11)用戶自定義函數(shù)模塊庫(kù)(User-DefinedFunctions)User-DefinedFunctions庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-13和表6-11所示。20目前二十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(12)模型檢測(cè)模塊庫(kù)(ModelVerification)ModelVerification庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-14和表6-12所示。21目前二十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(13)端口與子系統(tǒng)模塊庫(kù)(Ports&Subsystems)Ports&Subsystems庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-15和表6-13所示。22目前二十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(14)模型擴(kuò)展功能模塊庫(kù)(Model-WideUtilities)Model-WideUtilities庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊及其功能如圖6-16和表6-14所示。23目前二十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(15)模塊集和工具箱(Blocksets&Toolboxes)Blocksets&Toolboxes中所包含的模塊集和工具箱如圖6-17所示。24目前二十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(16)常用模塊庫(kù)(CommonlyUsedBlocks)CommonlyUsedBlocks庫(kù)中所包含的各個(gè)標(biāo)準(zhǔn)模塊如圖6-18所示。25目前二十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(17)附加數(shù)學(xué)與離散模塊庫(kù)(AdditionalMath&Discrete)在AdditionalMath&Discrete庫(kù)中包含了兩個(gè)標(biāo)準(zhǔn)模塊庫(kù):附加數(shù)學(xué)庫(kù)(AdditionalMath)和附加離散庫(kù)(AdditionalDiscrete)。26目前二十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2)Simulink模塊集的功能菜單為了充分利用Simulink中的各個(gè)標(biāo)準(zhǔn)模塊對(duì)控制系統(tǒng)進(jìn)行有效的動(dòng)態(tài)仿真,Simulink模塊集中設(shè)計(jì)了以下各個(gè)功能菜單。*File文件操作菜單*Edit編輯菜單*View查看菜單*Help幫助菜單27目前二十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)*File文件操作菜單New新建模型編輯窗口/模塊庫(kù)窗口Open打開(kāi)模型文件Close關(guān)閉模型文件Save保存模型文件Saveas另存模型文件Sourecontrol來(lái)源控制Modelproperties模型屬性Preferences參數(shù)選擇Print打印Printersetup打印設(shè)置ExitMATLAB退出MATLAB28目前二十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)*Edit編輯菜單Can’tundo不能撤消Can’tredo不能重復(fù)Cut剪切Copy復(fù)制Paste粘貼Clear清除SelectAll全部選定Copymodeltoclipboard復(fù)制模型到剪切板Find查找Createsubsystem創(chuàng)建子系統(tǒng)Masksubsystem封裝子系統(tǒng)Lookundermask查看封裝子系統(tǒng)Linkoptions連接選項(xiàng)Unlocklibrary解鎖庫(kù)Updatediagram更新圖標(biāo)29目前二十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)*View查看菜單Gotoparent轉(zhuǎn)到根Toolbar顯示/關(guān)閉工具條開(kāi)關(guān)Statusbar顯示/關(guān)閉狀態(tài)條開(kāi)關(guān)Modelbrowseroptions模型瀏覽器選項(xiàng)Blockdatatipsoptions模塊信息選項(xiàng)Showlibrarybrowser顯示庫(kù)瀏覽器Zoomin放大模塊視圖Zoomout縮小模塊視圖Fitsystemtoview將框圖縮放到正好符合窗口的大小Normal顯示框圖的實(shí)際大小*Help幫助菜單30目前三十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)關(guān)于某些菜單的進(jìn)一步操作方法在后面的有關(guān)部分中將陸續(xù)詳細(xì)介紹。另外,當(dāng)在一個(gè)模型或模塊庫(kù)窗口上單擊鼠標(biāo)右鍵時(shí),也會(huì)顯示前后相關(guān)的菜單。菜單的內(nèi)容取決于是否選中模塊,如果選中模塊,菜單顯示的命令僅僅適用于所選模塊,否則,菜單顯示的命令作用于整個(gè)模型或模塊庫(kù)。31目前三十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.Simulink附加模塊集(SimulinkExtras)在Simulink庫(kù)瀏覽窗口的SimulinkExtras節(jié)點(diǎn)上,通過(guò)單擊鼠標(biāo)右鍵后,便可打開(kāi)如圖6-21所示的SimulinkExtras模塊集窗口。32目前三十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)在SimulinkExtras模塊集中附加了以下一些模塊庫(kù),用鼠標(biāo)的左鍵雙擊各個(gè)模塊庫(kù)的圖標(biāo),便可打開(kāi)相應(yīng)的模塊庫(kù),各模塊庫(kù)中所包含各個(gè)標(biāo)準(zhǔn)模塊的功能如下所示。*附加接收模塊庫(kù)(AdditionalSinks)*附加離散系統(tǒng)模塊庫(kù)(AdditionalDiscrete)*附加線性模塊庫(kù)(AdditionalLinear)PIDController--PID控制器模塊PIDController(WithApproximateDerivative)--具有實(shí)際微分的PID控制器模塊*轉(zhuǎn)換庫(kù)(Transformations)*觸發(fā)器庫(kù)(FilpFlops)*線性化庫(kù)(Linearization)33目前三十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3.Simulink參數(shù)估計(jì)模塊集(SimulinkParameterEstimation)在Simulink庫(kù)瀏覽窗口的SimulinkParameterEstimation節(jié)點(diǎn)上,通過(guò)單擊鼠標(biāo)右鍵后,便可打開(kāi)如圖6-22所示的SimulinkParameterEstimation庫(kù)窗口。34目前三十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)4.Simulink響應(yīng)優(yōu)化模塊集(SimulinkResponseOptimization)在Simulink庫(kù)瀏覽窗口的SimulinkResponseOptimization節(jié)點(diǎn)上,通過(guò)單擊鼠標(biāo)右鍵后,便可打開(kāi)如圖6-23所示的SimulinkResponseOptimization模塊集窗口。35目前三十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)5.Simulink確認(rèn)模塊集(SimulinkVerificationandValidation)在Simulink庫(kù)瀏覽窗口的SimulinkVerificationandValidation節(jié)點(diǎn)上,通過(guò)單擊鼠標(biāo)右鍵后,便可打開(kāi)如圖6-24所示的SimulinkVerificationandValidation模塊集窗口。36目前三十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.Simulink控制設(shè)計(jì)模塊集(SimulinkControlDesign)在Simulink庫(kù)瀏覽窗口的SimulinkControlDesign節(jié)點(diǎn)上,通過(guò)單擊鼠標(biāo)右鍵后,便可打開(kāi)如圖6-25所示的SimulinkControlDesign模塊集窗口。37目前三十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2模型的構(gòu)造Simulink完全采用方框圖的“抓取”功能來(lái)構(gòu)造動(dòng)態(tài)系統(tǒng)模型,系統(tǒng)的創(chuàng)建過(guò)程就是繪制方框圖的過(guò)程。在Simulink環(huán)境中方框圖的繪制完全依賴(lài)于鼠標(biāo)操作。38目前三十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.1模型編輯窗口若想新建一個(gè)控制系統(tǒng)結(jié)構(gòu)框圖,則首先應(yīng)該打開(kāi)一個(gè)標(biāo)題為“Untitled”的空白模型編輯窗口,如圖6-26所示。
圖6-2639目前三十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)創(chuàng)建一個(gè)新的模型編輯窗口有以下三種方法:)在Simulink庫(kù)瀏覽窗口中,點(diǎn)擊工具條中的新建模型窗口按鈕;)在Simulink庫(kù)窗口中選擇菜單命令File|New|Model;)在MATLAB指令窗口中選擇菜單命令File|New|Model。40目前四十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)模型編輯窗口由標(biāo)題、功能菜單和用戶模型編輯區(qū)三部分組成。在模型編輯窗口中允許用戶對(duì)系統(tǒng)的結(jié)構(gòu)圖進(jìn)行編輯、修改和仿真。對(duì)控制系統(tǒng)結(jié)構(gòu)框圖的繪制必須在用戶模型編輯區(qū)中進(jìn)行,結(jié)構(gòu)圖中所需的各種模塊,可直接從Simulink庫(kù)瀏覽窗口中的各模塊庫(kù)(集)中復(fù)制相應(yīng)的標(biāo)準(zhǔn)模塊得到。模型編輯窗口的標(biāo)題實(shí)際上是擴(kuò)展名為.mdl的模型文件名,它可利用菜單命令File|Saveas將其任意更名保存。41目前四十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)為了方便用戶建模,模型編輯窗口中設(shè)計(jì)了以下多種功能菜單。*File文件操作菜單參Simulink模塊庫(kù)中功能菜單的File項(xiàng)。*Edit編輯菜單參Simulink模塊庫(kù)中功能菜單的Edit項(xiàng)。*View查看菜單參Simulink模塊庫(kù)中功能菜單的View項(xiàng)。42目前四十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)*Simulation仿真操作菜單Start開(kāi)始仿真Stop停止仿真SimulationParameters仿真參數(shù)設(shè)置Normal正常的Accelerator加速的External外部的43目前四十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)*Format格式菜單Font字體設(shè)置Textalignment文字對(duì)齊Flipname模塊名置于模塊的相反一邊Show/Hidename顯示/隱藏模塊名Flipblock模塊旋轉(zhuǎn)180度Rotateblock模塊順時(shí)針?lè)较蛐D(zhuǎn)90度ShowdropShadow顯示陰影Showportlabels顯示端口標(biāo)注Foregroundcolor前景顏色設(shè)置Backgroundcolor背景顏色設(shè)置Screencolor屏幕顏色設(shè)置
44目前四十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)如果方框圖模型文件已經(jīng)存在,則可利用以下三種方法打開(kāi)一個(gè)具有一定內(nèi)容的模型編輯窗口:)在Simulink庫(kù)瀏覽窗口中,點(diǎn)擊工具條中的打開(kāi)模型文件按鈕,然后選擇或者輸入要編輯的模型文件名;)在庫(kù)窗口中選擇菜單命令File|Open,然后選擇或者輸入要編輯的模型文件名;)在MATLAB指令窗口中直接鍵入模型文件名(不帶.mdl擴(kuò)展名)。
45目前四十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.2對(duì)象的選定在建模操作中,諸如拷貝一個(gè)模塊或者刪除一條連線,都需要首先選定一個(gè)或多個(gè)模塊或連線,我們把這些模塊或連線稱(chēng)做對(duì)象。1.選定單個(gè)對(duì)象用鼠標(biāo)單擊待選對(duì)象,小黑四方塊的“句柄”就會(huì)出現(xiàn)在被選中模塊的四個(gè)角上,或在被選中連線的兩個(gè)端點(diǎn)旁。46目前四十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.選定一組對(duì)象選定一組對(duì)象的方法有以下三種:選定一組不連續(xù)對(duì)象在按下Shift鍵的同時(shí),用鼠標(biāo)單擊每一待選的對(duì)象。要取消一個(gè)已被選定的對(duì)象的選定狀態(tài),在按下Shift鍵的同時(shí),再一次用鼠標(biāo)單擊該對(duì)象。選定一組連續(xù)對(duì)象按住鼠標(biāo)左鍵向右下方拉出一個(gè)矩形虛線框,將所有待選模塊包圍在其中,然后松開(kāi)按鍵,則矩形框里所有的對(duì)象同時(shí)被選中。47目前四十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)選定整個(gè)模型要選定一個(gè)活動(dòng)窗口的所有對(duì)象,只要選擇窗口菜單下的Edit|Selectall命令即可。但不能通過(guò)此種方法來(lái)選擇所有的模塊和連線來(lái)創(chuàng)建子系統(tǒng)模塊。如果想放棄選中的對(duì)象,則只需在空白處點(diǎn)擊即可48目前四十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.3模塊的操作模塊是Simulink模型構(gòu)造的基本元素,利用鼠標(biāo)點(diǎn)擊和拖拉方式可將仿真模塊庫(kù)(集)中標(biāo)準(zhǔn)模塊拷貝到用戶模型編輯窗口中,并使其相互連接,便可得到系統(tǒng)方框圖。49目前四十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)1.模塊的復(fù)制1)從一個(gè)窗口復(fù)制模塊到另一個(gè)窗口建立模型時(shí),會(huì)經(jīng)常從Simulink模塊庫(kù)、其它庫(kù)(集)或者模型編輯窗口中復(fù)制標(biāo)準(zhǔn)模塊到當(dāng)前正在編輯的模型編輯窗口中。復(fù)制標(biāo)準(zhǔn)模塊,可按以下步驟進(jìn)行。①打開(kāi)相關(guān)的模塊庫(kù)(集)或模型編輯窗口以及正在編輯的模型編輯窗口;50目前五十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)②將光標(biāo)定位于要復(fù)制的模塊上,按下鼠標(biāo)左鍵并保持住,拖動(dòng)鼠標(biāo)到正在編輯的模型編輯窗口中適當(dāng)位置,然后松開(kāi)鼠標(biāo)左鍵,就會(huì)在選定的位置上復(fù)制出相應(yīng)的模塊,新復(fù)制的模塊和原模塊的名字相同,如果同一模塊在同一窗口中復(fù)制了一次以上,它們會(huì)自動(dòng)在模塊名字末加進(jìn)次序號(hào),以資區(qū)別。新復(fù)制的模塊繼承了原模塊的所有參數(shù)。但在復(fù)制Sum、Mux、Demux和BusSelector模塊時(shí),Simulink會(huì)隱藏其名字,以避免模型圖中不必要的混亂,增加可讀性。由此可見(jiàn),從一個(gè)窗口拖動(dòng)模塊到另一個(gè)窗口,其實(shí)是從一個(gè)窗口復(fù)制模塊到另一個(gè)窗口。51目前五十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2)在同一窗口中復(fù)制模塊在按下Ctrl鍵的同時(shí),用鼠標(biāo)左鍵選中待復(fù)制的模塊后,將其拖到希望位置后,松開(kāi)按鍵,便完成復(fù)制工作。如果采用鼠標(biāo)右鍵,以上拷貝過(guò)程中就省掉按Ctrl鍵了。另外,還可通過(guò)Edit菜單下的Copy和Paste命令來(lái)復(fù)制模塊。52目前五十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.模塊的移動(dòng)1)從一個(gè)窗口移動(dòng)模塊到另一個(gè)窗口模塊的移動(dòng),可按以下步驟進(jìn)行。①打開(kāi)相關(guān)的模塊庫(kù)(集)或模型編輯窗口以及正在編輯的模型編輯窗口;②在按下Shift鍵的同時(shí),從一個(gè)窗口拖動(dòng)模塊到另一個(gè)窗口。53目前五十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2)在同一窗口中移動(dòng)模塊在同一窗口中移動(dòng)單個(gè)模塊時(shí),只需將光標(biāo)置于待移動(dòng)模塊圖標(biāo)上,按住鼠標(biāo)將模塊拖到合適的位置放開(kāi)鼠標(biāo)即可,模塊移動(dòng)時(shí),與模塊的連線也隨之移動(dòng),這時(shí)Simulink將會(huì)自動(dòng)地重畫(huà)與被移動(dòng)模塊相連的連線。當(dāng)移動(dòng)多個(gè)模塊及其連線時(shí),首先要選中要移動(dòng)的模塊和連線,然后把光標(biāo)置于待移動(dòng)模塊及其連線的任一處,將其拖動(dòng)到指定位置即可。另外,也可通過(guò)Edit菜單下的Cut和Paste命令來(lái)移動(dòng)模塊。54目前五十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3.模塊的刪除按Delete或Backspace鍵即可以刪除所選定的一個(gè)或多個(gè)模塊。另外,也可通過(guò)Edit菜單下的Cut或Clear命令來(lái)刪除所選定的模塊。但Edit|Cut命令,可將選定的模塊移到Windows的剪貼板上,可供Edit|Paste命令重新粘貼。55目前五十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)4.模塊的旋轉(zhuǎn)因從標(biāo)準(zhǔn)模塊庫(kù)中復(fù)制到模型編輯窗口中模塊,在默認(rèn)狀態(tài)下是輸入端(大于符號(hào))在左,而輸出端(三角符號(hào))在右,在繪制系統(tǒng)方框圖時(shí),有時(shí)為了使得連線更容易,避免不必要的交叉線,增加框圖的可讀性,需要對(duì)某些模塊翻轉(zhuǎn)或旋轉(zhuǎn),使得其輸入端和輸出端改變方向。如在反饋回路中的模塊希望輸入端在右輸出端在左。在Simulink下實(shí)現(xiàn)這一功能是輕而易舉的事情,首先用鼠標(biāo)選中要旋轉(zhuǎn)處理的模塊,然后執(zhí)行Format|Flipblock命令將對(duì)此模塊旋轉(zhuǎn)180度;或執(zhí)行Format|Rotateblock命令將對(duì)此模塊順時(shí)針?lè)较蛐D(zhuǎn)90度。56目前五十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.4模塊間的連接線系統(tǒng)框圖中的信號(hào)沿模塊間的連接線傳輸,連接線可傳輸標(biāo)量或向量信號(hào)。1.模塊間的連接線模塊間的連接線是從某模塊的輸出端(三角符號(hào))出發(fā)直指另一模塊的輸入口(大于符號(hào))的有向線段。它的生成方法是:把鼠標(biāo)光標(biāo)移到起點(diǎn)模塊的輸出端,按鼠標(biāo)左右的任何一鍵,看到光標(biāo)變?yōu)椤?”字后,拖動(dòng)“+”字光標(biāo)到終點(diǎn)模塊的輸入端,再釋放鼠標(biāo)按鈕,則會(huì)自動(dòng)產(chǎn)生一條帶箭頭的線段,將兩個(gè)模塊連接起來(lái),箭頭方向表示信號(hào)流向。如想消去某段連線,可先用鼠標(biāo)單擊的方法選定該連線后,按Delete鍵,則可刪除用方塊標(biāo)定的連線。57目前五十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.畫(huà)支線支線是從一條已存在的有向線段上任意一點(diǎn)出發(fā),指向另一模塊輸入口的有向線段。已存在的有向線段和支線傳輸?shù)氖窍嗤男盘?hào),使用支線可以將一個(gè)信號(hào)傳輸給多個(gè)模塊,它也一般用于連接方框圖中的反向模塊。這類(lèi)支線生成的方法是:把鼠標(biāo)光標(biāo)移到有向線段上的任意點(diǎn)處,在按下Ctrl鍵的同時(shí),按下鼠標(biāo)左鍵,光標(biāo)由箭頭變?yōu)椤?”字,拖動(dòng)鼠標(biāo)到適當(dāng)位置后放開(kāi)左鍵,屏幕上就出現(xiàn)一條由此點(diǎn)引出的箭頭線,再?gòu)拇思^開(kāi)始按住鼠標(biāo)左右任何一鍵,沿另一方向拖到適當(dāng)位置后松開(kāi)按鍵,照此操作,直到整個(gè)支線繪完為止。如果采用鼠標(biāo)右鍵,以上過(guò)程中就省掉按Ctrl鍵了。58目前五十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.5模型的保存在模型編輯窗口中編輯好系統(tǒng)結(jié)構(gòu)框圖后,可用窗口中的菜單命令File|Save將其保存為模型文件(擴(kuò)展名為.mdl),模型文件中存有模塊圖和模塊的一些屬性,它是以ASCII碼形式存儲(chǔ)的,它也可用窗口中的菜單命令File|Saveas將其任意更名保存。模型文件名必須是以字母開(kāi)頭的且不能超過(guò)31個(gè)字母、數(shù)字和下劃線組成的字符串。59目前五十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-1建立如圖6-27所示的系統(tǒng)模型,并將其保存為ex6_1.mdl模型文件。圖6-2760目前六十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.6模塊名字的處理1.模塊名字的修改模塊名字是指標(biāo)識(shí)模塊圖標(biāo)的字符串,為了增加可讀性,那些被用戶所復(fù)制到用戶窗口中的標(biāo)準(zhǔn)模塊的標(biāo)題常作必要的修改,具體方法如下:先用鼠標(biāo)單擊所選標(biāo)題,輸入新的標(biāo)題(MATLAB7.4版僅限西文字符,MATLAB6.5版中西文均可)然后用鼠標(biāo)單擊窗口中的任一地方,修改工作完成。模塊名字的字體、字形和大小也可通過(guò)選擇菜單命令Format|Font來(lái)改變。61目前六十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.模塊名字位置的改變模型中所有模塊的名字都必須是唯一的,并且必須包含至少一個(gè)字符。缺省情況下,如果模塊的端口在它的左右兩邊時(shí),模塊的名字顯示在它的下面,而如果模塊的端口在它的上下兩邊時(shí),模塊的名字顯示在它的左邊。但所選模塊的模塊名字可通過(guò)以下兩種方法改變位置:1)將模塊名用鼠標(biāo)拖至模塊相反的一邊;2)選擇菜單命令Format|Flipname,可將所選模塊的名字置于模塊的相反一邊。62目前六十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3.改變是否顯示模塊名字選擇Format菜單下的Hidename或Showname命令,便可隱藏或顯示所選模塊的模塊名。63目前六十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.7模塊內(nèi)部參數(shù)的修改被復(fù)制到用戶窗口中的各種模塊,開(kāi)始包含著與原始標(biāo)準(zhǔn)模塊一樣的內(nèi)部參數(shù)設(shè)置,即內(nèi)部參數(shù)開(kāi)始均為缺省值。如:階躍輸入函數(shù)模塊(StepFcn)的缺省的階躍時(shí)刻是1,而不是0,傳遞函數(shù)模塊(TranceferFcn)的缺省值為1/(s+1)等。為了適合用戶的不同需要,常需對(duì)模塊的內(nèi)部參數(shù)作必要的修改。具體操作如下:用鼠標(biāo)的左鍵雙擊待修改內(nèi)部參數(shù)模塊的圖標(biāo),則可打開(kāi)該模塊的參數(shù)設(shè)置對(duì)話框,通過(guò)改變對(duì)話框中適當(dāng)欄目中的數(shù)據(jù)便可。在參數(shù)設(shè)置時(shí)任何MATLAB工作內(nèi)存中已有的變量、合法表達(dá)式和MATLAB語(yǔ)句等都可以填寫(xiě)在設(shè)置欄中,某些模塊的方框大小是可以用鼠標(biāo)操作調(diào)整的。64目前六十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-2把例6-1中的系統(tǒng)模型修改成圖6-28所示的系統(tǒng)模型。圖6-2865目前六十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)解①對(duì)傳遞函數(shù)模塊參數(shù)的修改②對(duì)求和模塊輸入極性的修改
66目前六十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.2.8模塊的標(biāo)量擴(kuò)展標(biāo)量擴(kuò)展是指將一個(gè)標(biāo)量值轉(zhuǎn)變成一個(gè)具有相同元素的向量。幾乎所有的模塊都能接受標(biāo)量輸入或向量輸入,產(chǎn)生標(biāo)量或向量輸出,并且允許用戶來(lái)定義標(biāo)量或向量參數(shù),這樣的模塊將稱(chēng)之為向量化了的模塊。用戶可通過(guò)Format菜單中的Widenonscalarlines命令來(lái)定義模型中的哪些信號(hào)線傳遞的是向量信號(hào),并且將向量信號(hào)連線用粗線表示,標(biāo)量信號(hào)連線用細(xì)線表示。利用Edit菜單中選擇UpdateDiagram選項(xiàng)可隨時(shí)更新顯示。另外,在仿真開(kāi)始時(shí)也可進(jìn)行這樣的更新顯示。67目前六十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)1.輸入的標(biāo)量擴(kuò)展當(dāng)模塊有一個(gè)以上的輸入時(shí),可以把向量輸入和標(biāo)量輸入混合起來(lái)。在這種情況下,那個(gè)標(biāo)量輸入信號(hào)就要進(jìn)行標(biāo)量擴(kuò)展,形成一個(gè)具有和向量輸入信號(hào)維數(shù)一樣的具有相同元素的向量,如圖6-29所示。
68目前六十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.參數(shù)的標(biāo)量擴(kuò)展對(duì)于可以進(jìn)行標(biāo)量擴(kuò)展的那些模塊,其參數(shù)既可以定義為標(biāo)量,也可以定義為向量。當(dāng)為一個(gè)向量參數(shù)時(shí),向量參數(shù)中的每一個(gè)元素與輸入向量中的每一個(gè)元素相對(duì)應(yīng)。而當(dāng)定義為一個(gè)標(biāo)量參數(shù)時(shí),Simulink就對(duì)標(biāo)量參數(shù)進(jìn)行標(biāo)量擴(kuò)展,自動(dòng)形成一個(gè)具有相應(yīng)維數(shù)的向量,如圖6-30所示。69目前六十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3.顯示/關(guān)閉連線的寬度可以通過(guò)選擇菜單命令FormatPort/SignaldisplaysWidenonscalarLines來(lái)顯示和關(guān)閉模型中用粗線表示的向量信號(hào)連線。4.信號(hào)標(biāo)注要對(duì)某一連線進(jìn)行標(biāo)注,只需雙擊標(biāo)注處,并且在插入點(diǎn)處輸入標(biāo)注即可,標(biāo)注可移動(dòng)到連線的任何位置。標(biāo)注的字體、字形和大小也可通過(guò)選擇菜單命令FormatFont來(lái)改變。
70目前七十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.3連續(xù)系統(tǒng)的數(shù)字仿真創(chuàng)建好系統(tǒng)模型后,就可以在用戶模型窗口中利用Simulink的菜單命令或者在MATLAB的命令窗口中利用MATLAB的指令操作方式對(duì)系統(tǒng)進(jìn)行仿真了。71目前七十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.3.1利用Simulink菜單命令進(jìn)行仿真Simulink的菜單命令方式對(duì)于交互式工作非常方便,這種在Simulink窗口下進(jìn)行的仿真最直觀,它可使用Scopes或者其他的顯示模塊,在運(yùn)行仿真時(shí)觀察仿真結(jié)果。仿真的結(jié)果還可保存到MATLAB工作空間的變量中,以待進(jìn)一步的處理。另外,在這種仿真方式下,無(wú)論是對(duì)框圖模型本身還是對(duì)數(shù)值算法及參數(shù)的選擇都可以很方便地修改和操縱。模型及仿真參數(shù)不僅在仿真前允許編程和修改,而且在仿真過(guò)程中也允許作一定程度的修改。在這種菜單仿真方式下,在一個(gè)系統(tǒng)仿真的同時(shí),允許打開(kāi)另一個(gè)系統(tǒng)。72目前七十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)在啟動(dòng)仿真開(kāi)始之前,首先應(yīng)選擇系統(tǒng)模型窗口中的SimulationConfigurationParameters命令來(lái)設(shè)置仿真算法和參數(shù),這時(shí)將給出一個(gè)如圖6-31所示的對(duì)話框,它包括七個(gè)頁(yè)面和四個(gè)功能按鈕。其中,前兩個(gè)頁(yè)面是經(jīng)常需要用戶改變?cè)O(shè)置的。圖6-3173目前七十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)1.求解器(Solver)頁(yè)面該頁(yè)面用來(lái)設(shè)置仿真開(kāi)始和停止時(shí)間、選擇仿真算法和指定算法的參數(shù)等,如圖6-31所示。1)仿真時(shí)間(Simulationtime)仿真時(shí)間是由參數(shù)對(duì)話框中的開(kāi)始時(shí)間(StartTime)和停止時(shí)間(StopTime)框中的內(nèi)容來(lái)確定的,它們均可修改,缺省的開(kāi)始時(shí)間為0.0秒,停止時(shí)間為10.0秒。在仿真過(guò)程中允許實(shí)時(shí)修改仿真的終止時(shí)間(StopTime)74目前七十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2)求解器選項(xiàng)(Solveroptions)仿真涉及常微分方程組的數(shù)值積分,由于動(dòng)態(tài)系統(tǒng)行為的多樣性,目前還沒(méi)有一種算法能夠保證所有模型的數(shù)值仿真結(jié)果總是準(zhǔn)確、可靠的。為此,Simulink提供了變步長(zhǎng)(Variable-step)和定步長(zhǎng)(Fixed-step)兩大類(lèi)數(shù)值積分算法供用戶選擇。對(duì)于變步長(zhǎng)算法,可以設(shè)定最大步長(zhǎng)(Maxstepsize)、最小步長(zhǎng)(Minstepsize)、起始步長(zhǎng)(Initialstepsize)、相對(duì)容差(Relativetolerance)和絕對(duì)容差(Absolutetolerance)。對(duì)于定步長(zhǎng)算法,可以設(shè)定固定步長(zhǎng)(Fixedstepsize)和選擇仿真模式(Mode)。因此為得到準(zhǔn)確仿真結(jié)果,用戶必須針對(duì)不同模型仔細(xì)選擇算法及參數(shù)。75目前七十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(1)仿真算法在求解器選項(xiàng)(Solveroptions)最上面的兩個(gè)選擇框中,可選擇相應(yīng)的仿真算法。變步長(zhǎng)(Variable-step)算法可以選擇的變步長(zhǎng)算法有以下幾種。缺省情況下,連續(xù)系統(tǒng)采用ode45;離散系統(tǒng)采用discrete。定步長(zhǎng)(Fixed-step)算法可以選擇的定步長(zhǎng)算法有以下幾種。76目前七十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(2)仿真步長(zhǎng)在求解器選項(xiàng)(Solveroptions)下面的選擇框中。對(duì)于變步長(zhǎng)算法,可以設(shè)定最大步長(zhǎng)(Maxstepsize)、最小步長(zhǎng)(Minstepsize)和起始步長(zhǎng)(Initialstepsize)。對(duì)于定步長(zhǎng)算法,可以設(shè)定固定步長(zhǎng)(Fixedstepsize)。缺省情況下,這些參數(shù)均為auto,即這些參數(shù)將被自動(dòng)地設(shè)定。對(duì)于變步長(zhǎng)算法,采用變步長(zhǎng)的方法進(jìn)行仿真,仿真開(kāi)始時(shí)是以起始步長(zhǎng)作為計(jì)算步長(zhǎng)的,在仿真過(guò)程中,算法會(huì)把算得的局部估計(jì)誤差與誤差容限相比較,在滿足仿真精度的前提下,自動(dòng)拉大步長(zhǎng),提高計(jì)算效率。
77目前七十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)一般情況下,最大步長(zhǎng)可以選擇一個(gè)較大的數(shù)值,但如果選擇的過(guò)大,可能會(huì)出現(xiàn)在仿真點(diǎn)處仿真結(jié)果是正確的,但仿真曲線不是很光滑的情況,故最大步長(zhǎng)一般選擇為仿真范圍的1/50。通常,最小步長(zhǎng)都取的很小,但如果取的太小,會(huì)增大計(jì)算量。仿真的最小步長(zhǎng)和最大步長(zhǎng)均可在仿真過(guò)程中進(jìn)行實(shí)時(shí)修改。78目前七十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(3)誤差容限相對(duì)容差(Relativetolerance)和絕對(duì)容差(Absolutetolerance)中所填寫(xiě)的容差值是用來(lái)定義仿真精度的。在變步長(zhǎng)仿真過(guò)程中,算法會(huì)把算得的局部估計(jì)誤差與這里填寫(xiě)的容許誤差限來(lái)相比較,當(dāng)誤差超過(guò)這一誤差限時(shí)會(huì)自動(dòng)地對(duì)仿真步長(zhǎng)作適當(dāng)?shù)男拚?,所以說(shuō)在變步長(zhǎng)仿真時(shí),誤差限的設(shè)置是很重要的,它將關(guān)系到微分方程求解的精度。誤差限經(jīng)常在0.1和1e-6之間取值,它越小,積分的步數(shù)就越多,精度也越高,但是過(guò)?。ㄈ?e-10)由于計(jì)算舍入誤差的顯著增加,而影響整個(gè)精度,誤差限在仿真過(guò)程中允許實(shí)時(shí)修改。79目前七十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(4)仿真模式(Mode)在采用定步長(zhǎng)(Fixed-step)算法進(jìn)行仿真時(shí),需要在求解器選項(xiàng)(Solveroptions)下面的仿真模式(Mode)選擇框列表中選擇仿真模式。①多任務(wù)模式(MultiTasking)如果檢測(cè)到模塊間進(jìn)行非法采樣類(lèi)轉(zhuǎn)換,即直接相連模塊之間以不同的采樣類(lèi)運(yùn)算,單模式會(huì)出現(xiàn)錯(cuò)誤。在實(shí)時(shí)多任務(wù)系統(tǒng)中,任務(wù)間非法采樣類(lèi)轉(zhuǎn)換可能導(dǎo)致當(dāng)另一個(gè)任務(wù)需要時(shí),某一任務(wù)輸出不能用。通過(guò)此類(lèi)轉(zhuǎn)換檢查,多任務(wù)模式可以幫助創(chuàng)建現(xiàn)實(shí)中的合法的多任務(wù)系統(tǒng)模型,模型中何處表示是同時(shí)執(zhí)行的任務(wù)。80目前八十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)
②單任務(wù)模式(SingleTasking)該模式不檢查模塊間的采樣類(lèi)轉(zhuǎn)換。該模式對(duì)于建造單任務(wù)系統(tǒng)模型非常有用,在此類(lèi)系統(tǒng)中,任務(wù)同步不是問(wèn)題。
③自動(dòng)模式(Auto)當(dāng)選用此模式時(shí),如果模型中所有模塊運(yùn)行于同樣的采樣率下,Simulink使用單任務(wù)模式;如果模型包含有不同采樣率運(yùn)行的模塊,則使用多任務(wù)模式。81目前八十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3)輸出選項(xiàng)(Outputoptions)在輸出選項(xiàng)(Outputoptions)中,可以選擇以下三種輸出。(1)細(xì)化輸出(Refineoutput)(2)產(chǎn)生額外的輸出(Produceadditionaloutput)(3)只產(chǎn)生指定的輸出(Producespecifiedoutputonly)82目前八十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.數(shù)據(jù)輸入/輸出(DataImport/Export)頁(yè)面該頁(yè)面可以將仿真的輸出結(jié)果保存到MATLAB的工作空間變量中,也可以從MATLAB的工作空間取得輸入和初始狀態(tài),如圖6-32所示。圖6-3283目前八十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)1)從MATLAB的工作空間裝入輸入和初始狀態(tài)(Loadfromworkspace)系統(tǒng)開(kāi)始仿真時(shí)的初始狀態(tài),通常在模塊中指定,也可以在DataImport/Export頁(yè)的Loadfromworkspace域的初始狀態(tài)(Initialstates)編輯框中重新指定,以重新裝載在模塊中指定的初始條件。在仿真運(yùn)行期間,Simulink也可以把MATLAB工作空間的變量值當(dāng)作模型的輸入信號(hào),它是通過(guò)輸入端口輸入到模型中。要指定這一選項(xiàng),在DataImport/Export頁(yè)面的Loadfromworkspace域中,選中Input選框,然后在其后的編輯框中輸入外部輸入變量(缺省內(nèi)容為[t,u]),并選擇Apply或OK按鈕。84目前八十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)外部輸入可以采用下列任何一種形式。(l)外部輸入矩陣(Array)外部輸入矩陣的第一列必須是升序排列的時(shí)間向量,其余列指定輸入值。每列代表不同輸入模塊信號(hào)序列,每行則是相應(yīng)時(shí)間的輸入值。如果選擇了數(shù)據(jù)插值(interpolatedata)選項(xiàng),必要時(shí)Simulink對(duì)輸入值進(jìn)行線性插值或外推。輸入矩陣的總列數(shù)必須等于n+l,其中n為進(jìn)入模型的信號(hào)輸入端口總數(shù)。如果在MATLAB工作空間中定義了t和u,則可以直接采用缺省的外部輸入標(biāo)識(shí)[t,u]。85目前八十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(2)具有時(shí)間的結(jié)構(gòu)(StructurewithTime)Simulink可以從MATLAB工作空間中讀入結(jié)構(gòu)形式的數(shù)據(jù),但其名字必須在Input后的編輯框中指定。輸入結(jié)構(gòu)必須有兩個(gè)字段:時(shí)間和信號(hào)。時(shí)間字段包含一列仿真時(shí)間的向量;信號(hào)字段包含子結(jié)構(gòu)數(shù)組,每個(gè)對(duì)應(yīng)模型的一個(gè)輸出端口;每個(gè)子結(jié)構(gòu)有字段:值;值字段包含相應(yīng)輸入端口的輸入列向量。86目前八十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(3)結(jié)構(gòu)(Structure)結(jié)構(gòu)格式與具有時(shí)間的結(jié)構(gòu)格式一樣,只是其時(shí)間字段為空。如在上例中,可以指定:ex.time=[]。(4)外部輸入時(shí)間表達(dá)式(Externalinputtimeexpression)時(shí)間表達(dá)式可以是任何MATLAB表達(dá)式、計(jì)算行向量,其長(zhǎng)度與模型輸入端口的信號(hào)數(shù)一樣。87目前八十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2)將結(jié)果保存到MATLAB的工作空間變量中(Savetoworkspace)Simulink將仿真結(jié)果存放在SavetoWorksPace域中指定名字的向量中。它可以通過(guò)在WorkspaceI/O頁(yè)面的Savetoworkspace域中,任意選擇時(shí)間(Time)、狀態(tài)(States)、輸出(Output)和最終狀態(tài)(Finalstate)選框,并指定返回的變量名。變量名即可任意指定,也可采用默認(rèn)值。若要將某一結(jié)果輸出到多個(gè)變量中,可在此參數(shù)輸入框中同時(shí)指定多個(gè)變量名,各變量名之間用逗號(hào)分開(kāi)后外加方括號(hào)。指定的返回變量使得Simulink將時(shí)間、狀態(tài)、輸出和最終狀態(tài)值的軌跡輸出到MATLAB工作空間中,以便進(jìn)一步對(duì)其分析。如果想保存一個(gè)穩(wěn)定狀態(tài)的結(jié)果并從那個(gè)已知的狀態(tài)重新啟動(dòng)仿真,那么保存最終狀態(tài)(Finalstate)將非常有用。88目前八十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)可以通過(guò)Saveoptions域來(lái)指定輸出存儲(chǔ)的格式和限制保存輸出的數(shù)量。其格式選項(xiàng)可以采用下列任何一種形式。(l)矩陣(Array)Simulink將所選定的以上輸出結(jié)果分別存儲(chǔ)在SavetoWorkspace域中各編輯框命名的矩陣中,缺省值分別為tout,xout,yout和xFinal。矩陣的每一列與模型的一個(gè)輸出或狀態(tài)相對(duì)應(yīng),第一行與初始時(shí)間相對(duì)應(yīng)。89目前八十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(2)具有時(shí)間的結(jié)構(gòu)(StructurewithTime)Simulink保存模型的結(jié)果到一個(gè)結(jié)構(gòu)中,該結(jié)構(gòu)的名字是由SavetoWorkspace域中各編輯框命名的,該結(jié)構(gòu)有兩個(gè)頂層字段:時(shí)間和信號(hào)。時(shí)間字段包含仿真時(shí)間向量;信號(hào)字段包含子結(jié)構(gòu)數(shù)組,每個(gè)子結(jié)構(gòu)對(duì)應(yīng)一個(gè)模型輸出端口或與具有狀態(tài)的模塊相對(duì)應(yīng)。每個(gè)子結(jié)構(gòu)包含三個(gè)字段:值、標(biāo)簽、模塊名。值字段包含相應(yīng)輸出端口的輸出向量;標(biāo)簽字段指定與輸出相連的信號(hào)標(biāo)簽;模塊名字段指定輸出端口的名字。Simulink存儲(chǔ)模型的狀態(tài)到一個(gè)結(jié)構(gòu)組成相同的模型輸出結(jié)構(gòu)中。90目前九十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(3)結(jié)構(gòu)(Structure)該格式與前面所述的結(jié)構(gòu)基本一樣,只是不保存仿真時(shí)間到結(jié)構(gòu)的時(shí)間字段中。要限制保存數(shù)據(jù)的行數(shù),可選擇Limitrowstolast編輯框,并指定保存的行數(shù)。要使用抽取(Decimation)因子,在Decimation文本框中輸入數(shù)值。例如,在Decimation文本框中輸入的值為2時(shí),產(chǎn)生的點(diǎn)將每隔一個(gè)保存一個(gè)。此外如果計(jì)算出來(lái)的結(jié)果太多,也可以改變Limitrowsoflast(限用最后的點(diǎn)數(shù))引導(dǎo)的編輯框來(lái)進(jìn)行設(shè)置,在一般情況下,該參數(shù)選擇為1000也就足夠了。91目前九十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3.優(yōu)化(Optimazition)頁(yè)面在該頁(yè)面中,可以選擇不同的選項(xiàng)來(lái)提高仿真性能以及產(chǎn)生代碼的性能。其中,SimulationandcodeGeneration欄設(shè)置對(duì)模型仿真及代碼生成共同有效;CodeGeneration欄設(shè)置僅對(duì)代碼生成有效。92目前九十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)4.診斷(Diagnostics)頁(yè)面在診斷頁(yè)面中,可以設(shè)定一致性檢查(Consistencychecking)和邊界檢查(Boundschecking)。對(duì)于每一事件類(lèi)型,可以選擇是否需要提示消息,是警告消息還是錯(cuò)誤消息。警告消息不會(huì)終止仿真,錯(cuò)誤消息則會(huì)終止仿真的運(yùn)行。93目前九十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)5.硬件設(shè)置(HardwareImplementation)頁(yè)面該頁(yè)面主要針對(duì)于計(jì)算機(jī)系統(tǒng)模型,如嵌入式控制器。允許設(shè)置這些用來(lái)執(zhí)行模型所表示系統(tǒng)的硬件參數(shù)。6.模型參考(ModeiReferencing)頁(yè)面該頁(yè)面允許用戶設(shè)置模型中的其它子模型,或者包含在其它模型中的此模型,以便仿真的調(diào)試和目標(biāo)代碼的生成。7.實(shí)時(shí)工作空間(Real-timeWorkshop)頁(yè)面在該頁(yè)面中,可以設(shè)置影響Real-timeWorkshop生成代碼和構(gòu)建可執(zhí)行文件的諸多參數(shù)和選項(xiàng)。94目前九十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.3.2仿真結(jié)果分析設(shè)置完以上仿真控制參數(shù)后,則可選擇Simulation|Start命令來(lái)啟動(dòng)仿真過(guò)程,在仿真結(jié)束時(shí)會(huì)自動(dòng)發(fā)出一聲?shū)Q叫。在仿真過(guò)程中還允許采用Simulation菜單下的Pause和Continue命令來(lái)暫?;蚶^續(xù)仿真過(guò)程,若選擇Simulation|Stop命令,則人為中止仿真過(guò)程。結(jié)果分析有助于模型的改進(jìn)和完善,同時(shí)結(jié)果分析也是仿真的主要目的。仿真結(jié)果可采用以下幾種方法得到。95目前九十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(1)利用示波器模塊(Scope)得到輸出結(jié)果當(dāng)利用示波器模塊作輸出時(shí),它不僅會(huì)自動(dòng)地將仿真的結(jié)果從示波器上實(shí)時(shí)地顯示出來(lái)。而且也可同時(shí)把示波器緩沖區(qū)存儲(chǔ)的數(shù)據(jù),送到MATLAB工作空間指定的變量中保存起來(lái),以便利用繪圖命令在MATLAB命令窗口里繪制出圖形。96目前九十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)在示波器模塊的窗口中,利用快捷按鈕“”,可打開(kāi)如圖6-35所示的示波器模塊參數(shù)(parameters)對(duì)話框。示波器參數(shù)對(duì)話框中有兩個(gè)頁(yè)面,圖6-35(a)為一般參數(shù)設(shè)置(General),圖6-35(b)為數(shù)據(jù)存儲(chǔ)參數(shù)設(shè)置(Datahistory)。圖6-3597目前九十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-4對(duì)圖6-36所示的系統(tǒng)進(jìn)行仿真。圖6-3698目前九十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)解
在求解器選項(xiàng)(Solveroptions)頁(yè)面中,把固定步長(zhǎng)(Fixed-stepsize)一欄中的默認(rèn)值auto改為0.05,以確保最大仿真步長(zhǎng)小于周期的1/10,否則波形就失真,設(shè)置完參數(shù)后用鼠標(biāo)單擊【OK】按鈕接收新參數(shù),同時(shí)關(guān)閉此對(duì)話框。在Simulink中,仿真中的動(dòng)態(tài)數(shù)據(jù)的計(jì)算都是由數(shù)值積分實(shí)現(xiàn)的。盡管本例從信號(hào)發(fā)生器到示波器沒(méi)通過(guò)其他環(huán)節(jié)(實(shí)際上可認(rèn)為經(jīng)過(guò)一個(gè)增益為1的比例環(huán)節(jié)),但動(dòng)態(tài)數(shù)據(jù)仍是經(jīng)數(shù)值積分計(jì)算得到的,因此在仿真前,仍需執(zhí)行SimulationConfigurationParameters命令來(lái)設(shè)置仿真控制面板中相應(yīng)的參數(shù),參圖6-31。99目前九十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)選擇SimulationStart命令啟動(dòng)仿真過(guò)程,便可在示波器上看到相應(yīng)的曲線。另外,在MATLAB命令窗口中利用以下命令,便可得到如圖6-38所示的輸出曲線。>>plot(y(:,1),y(:,2));title('sin')圖6-38100目前一百頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)除了示波器形象的輸出之外,用戶還可以用ToWorkspace模塊或Out1模塊將仿真結(jié)果返回到MATLAB的工作空間變量中,這樣返回的結(jié)果當(dāng)然可以利用MATLAB命令來(lái)進(jìn)一步處理。101目前一百零一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(2)利用輸出接口模塊(Out1)得到輸出結(jié)果利用輸出接口(Out1)模塊把仿真結(jié)果返回到MATLAB的工作空間時(shí),就必須選定圖6-32所示的DataImport/Export頁(yè)面中的時(shí)間變量(Time)和輸出變量(Output)對(duì)話框,對(duì)話框中的變量名即可采用默認(rèn)的,也可根據(jù)需要更名。狀態(tài)變量(States)和終值狀態(tài)變量(Finalstate)對(duì)話框?yàn)槿芜x。102目前一百零二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-5對(duì)圖6-39所示的模型框圖進(jìn)行仿真。`圖6-39103目前一百零三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)選擇SimulationConfigurationParameters命令,打開(kāi)仿真參數(shù)控制面板,在圖6-31所示的求解器選項(xiàng)(Solveroptions)頁(yè)面,把終止時(shí)間(Stoptime)欄中的內(nèi)容改為20,其余參數(shù)采用默認(rèn)值;在圖6-32所示的數(shù)據(jù)輸入/輸出(DataImport/Export)頁(yè)面,把時(shí)間變量(Time)和輸出變量(Output)對(duì)話框中的變量改為t和y,其余參數(shù)采用默認(rèn)值,按【OK】鍵返回。選擇SimulationStart命令開(kāi)始仿真,等聽(tīng)到一聲嘟后仿真便結(jié)束,此時(shí)可返到MATLAB工作窗口,運(yùn)行命令>>plot(t,y)104目前一百零四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)便可得到圖6-40所示的輸出響應(yīng)曲線。105目前一百零五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(3)利用把數(shù)據(jù)傳送到工作空間模塊(ToWorkspace)得到輸出結(jié)果利用ToWorkspace模塊向MATLAB工作空間傳送數(shù)據(jù)時(shí),應(yīng)該為其指定一個(gè)變量名,它是通過(guò)用鼠標(biāo)左鍵雙擊該模塊的圖標(biāo)來(lái)完成的,這將給出如圖6-41所示的對(duì)話框。用戶可以在Variablename(變量名)引導(dǎo)的編輯框中輸入相應(yīng)的變量名。106目前一百零六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-6對(duì)圖6-42所示系統(tǒng)模型進(jìn)行仿真圖6-42107目前一百零七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)MATLAB工作窗口,運(yùn)行命令:>>plot(t,y)便可得到如圖6-43所示的圖形。108目前一百零八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.3.3利用MATLAB的指令操作方式進(jìn)行仿真除了利用Simulink菜單對(duì)系統(tǒng)進(jìn)行仿真外,還可以在MATLAB工作窗口中,利用命令函數(shù)sim()或ode45()對(duì)系統(tǒng)進(jìn)行仿真,MATLAB命令行方式對(duì)于處理成批的仿真比較有用。109目前一百零九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)1.利用函數(shù)sim()進(jìn)行仿真當(dāng)系統(tǒng)的數(shù)學(xué)模型以系統(tǒng)結(jié)構(gòu)圖描述時(shí),在MATLAB的工作窗口中,通常利用函數(shù)sim()對(duì)系統(tǒng)進(jìn)行仿真,函數(shù)sim()的調(diào)用格式為[t,x,y]=sim(‘model’,tf,options,ut)或[t,x,y1,y2,…,yn]=sim(‘model’,tf,options,ut,)110目前一百一十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-8對(duì)例6-5中圖6-39所示系統(tǒng)進(jìn)行初始狀態(tài)不同設(shè)置的仿真。解①對(duì)于圖6-39所示的系統(tǒng)模型ex6_5,在數(shù)據(jù)輸入/輸出(DataImport/Export)頁(yè)面中,選定從工作空間輸入?yún)?shù)功能欄(Loadfromworkspace)中的初始狀態(tài)選擇框(Initialstate),并輸入初始狀態(tài)向量[0.50],其余參數(shù)同例6-5,在接收以上參數(shù)后,將其另存為模型文件ex6_8;②在MATLAB指令窗口中,運(yùn)行以下指令,可得圖6-45所示的相軌跡圖。>>[t,x1,y1]=sim('ex6_5',20);[t,x2,y2]=sim('ex6_8',20);>>plot(x1(:,1),x1(:,2),'r:',x2(:,1),x2(:,2),'b-');>>legend('零初始狀態(tài)','非零初始狀態(tài)')111目前一百一十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)對(duì)圖6-42所示框圖模型,采用以上命令將不可能獲得輸出響應(yīng),因?yàn)門(mén)oWorkspace模塊不同于輸出接口模塊(out1),因由這條指令運(yùn)行所得的輸出y將是空“[]”。圖6-45112目前一百一十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.利用函數(shù)ode45()進(jìn)行仿真當(dāng)系統(tǒng)的數(shù)學(xué)模型以微分方程給出時(shí),通常在MATLAB的工作窗口中,利用函數(shù)ode45()對(duì)系統(tǒng)進(jìn)行仿真求解運(yùn)算,函數(shù)ode45()的調(diào)用格式為[t,x]=ode45(fun,tspan,x0,tol)其中,fun為函數(shù)名,為用來(lái)描述系統(tǒng)狀態(tài)方程的M函數(shù)文件;tspan為仿真時(shí)間區(qū)間,當(dāng)其為標(biāo)量tf時(shí),默認(rèn)仿真時(shí)間區(qū)間為[0,tf],當(dāng)其為二元行向量[t0,tf]時(shí),仿真時(shí)間區(qū)間為[t0,tf];x0為狀態(tài)方程的初始向量值;tol用來(lái)指定精度,其默認(rèn)值為10-3;返回變量t為時(shí)間,x為狀態(tài)方程的解向量。113目前一百一十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)另外,利用函數(shù)ode45(),ode23(),ode113(),ode15s(),ode23s(),ode23t()和ode23tb()也可對(duì)系統(tǒng)進(jìn)行同樣的仿真,他們的調(diào)用格式與函數(shù)ode45()完全相同。這些函數(shù)的使用范圍與Simulink求解器選項(xiàng)(Solveroptions)中變步長(zhǎng)仿真算法相對(duì)應(yīng)。114目前一百一十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-9求微分方程在其初始條件下的解。解首先根據(jù)以上微分方程編寫(xiě)一個(gè)函數(shù)ex6_9.m。%ex6_9.mfunctiondx=ex6_9(t,x)dx=[x(2);(1-x(1)^2)*x(2)-x(1)];再利用以下MATLAB命令,即可求出微分方程在時(shí)間區(qū)間[0,30]上的解曲線(見(jiàn)圖1-10)。>>[t,x]=ode45('ex6_9',[0,30],[1;0]);>>plot(t,x(:,1),t,x(:,2));xlabel('t');ylabel('x(t)')115目前一百一十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.3.4模塊參數(shù)的動(dòng)態(tài)交換1.在MATLAB工作空間中定義變量框圖模塊在仿真時(shí)所需的參數(shù)和初始變量取自模塊對(duì)話框,而模塊對(duì)話框中填寫(xiě)的MATLAB變量以及表達(dá)式又來(lái)自MATLAB工作空間,不管仿真以何種方式進(jìn)行,總可以在MATLAB工作空間中為Simulink模塊預(yù)定義參數(shù)和初始變量,也可以在指令窗口或命令文件中交互地進(jìn)行變量的數(shù)值傳遞。116目前一百一十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-10在MATLAB空間中預(yù)定義框圖模塊參數(shù)??紤]一個(gè)單輸入雙輸出的狀態(tài)空間表達(dá)式其中矩陣A,b,C,d和初始條件向量x0分別為117目前一百一十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)解(1)構(gòu)造如圖6-46所示的框圖系統(tǒng)并將其保存為ex6_10文件;(2)輸入接口(In1)和輸出接口(Out1)分別復(fù)制于信號(hào)源與接收模塊庫(kù),并將兩個(gè)輸出接口模塊的標(biāo)題依次改為y1和y2。圖6-46118目前一百一十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(3)Demux模塊(分離模塊)復(fù)制于信號(hào)與系統(tǒng)模塊庫(kù)(Signals&Systems),它將一個(gè)向量信號(hào)分解為若干個(gè)輸出信號(hào),輸出信號(hào)的數(shù)目由Demux模塊參數(shù)對(duì)話框中的輸出數(shù)目(Numberofoutputs)欄中的內(nèi)容確定。(4)狀態(tài)空間表達(dá)式模塊(State-Space)復(fù)制于連續(xù)系統(tǒng)模塊庫(kù)(Continuous)中,用鼠標(biāo)打開(kāi)狀態(tài)空間模塊的參數(shù)對(duì)話框,并將A,b,C,d分別填入?yún)?shù)對(duì)話框中的A,B,C,D四個(gè)矩陣參數(shù)輸入欄中,而在初始條件(InitialConditions)欄中直接填入初始向量參數(shù)[1;1;1],如圖6-47所示。119目前一百一十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)圖6-47120目前一百二十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)(5)在MATLAB指令方式下,運(yùn)行以下指令,得圖6-48>>A=[-0.3,0,0;2.9,-0.62,-2.3;0,2.3,0];
>>b=[1;0;0];>>C=[1,1,0;1,-3,1];>>d=[0;1];>>[t,x,y]=sim(‘ex6_10’,10);>>plot(t,y(:,1),‘:b’,
t,y(:,2),‘-r’);>>legend(‘y1’,‘y2’)圖6-48121目前一百二十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)在本例中如把矩陣A,b,C,d的值直接填入狀態(tài)空間參數(shù)對(duì)話框中相應(yīng)的欄目中,則以上前兩行的指令可省略。當(dāng)然初始向量x0的值也可利用以下MATLAB命令給定。>>x0
=[1;1;1];122目前一百二十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.使用全局變量實(shí)現(xiàn)數(shù)據(jù)交換在參數(shù)優(yōu)化、靈敏度等計(jì)算中,常需要實(shí)現(xiàn)幾個(gè)文件之間的數(shù)據(jù)交換,那么采用前面所說(shuō)的預(yù)定義方式是不可行的,這時(shí),可以采用全局變量來(lái)實(shí)現(xiàn)數(shù)據(jù)傳遞,定義全局變量的命令格式如下globalabc在此,參數(shù)a,b,c被定義為全局變量。使用全局變量要注意,全局變量應(yīng)在使用它們的所有命令文件、函數(shù)文件、工作內(nèi)存中加以定義才能被共享。即當(dāng)其中某一個(gè)文件使全局變量數(shù)值發(fā)生改變后,新值馬上傳送到其它文件,當(dāng)然也包括參與運(yùn)行的框圖模型。123目前一百二十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3.使用set_param()指令傳送數(shù)據(jù)指令set_param()是專(zhuān)門(mén)設(shè)計(jì)來(lái)更改Simulink模塊參數(shù)的。事實(shí)上,模塊對(duì)話框中的參數(shù)設(shè)置都是靠這個(gè)指令來(lái)實(shí)現(xiàn)的,該函數(shù)的調(diào)用格式為
set_param(Name,Parameter1,Value1,Parameter2,Value2,…,)其中Name是系統(tǒng)/模塊名,Parameter是待修改的參數(shù)名,Value是新指定值。124目前一百二十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)例6-11對(duì)圖6-49所示系統(tǒng)模型進(jìn)行仿真
。圖6-49125目前一百二十五頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)解(1)構(gòu)造圖6-49所示的簡(jiǎn)單系統(tǒng),并保存文件名為ex6_10,為了保證以下指令正常運(yùn)行,系統(tǒng)ex6_11窗口不要關(guān)閉;(2)在MATLAB指令方式下,運(yùn)行以下指令,可得圖6-50所示的輸出曲線。>>set_param(‘ex6_11/Gain’,‘Gain’,‘2’);%表示把系統(tǒng)mod5中的比例模塊(Gain)中的增益(Gain)設(shè)置為2>>[t,x,y]=sim(‘ex6_11’,10);>>plot(t,y(:,1),‘:b’,t,y(:,2),‘-r’);>>legend(‘y1’,‘y2’)126目前一百二十六頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)圖6-50127目前一百二十七頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.3.5Simulink調(diào)試器由用戶建立的系統(tǒng)模型,有時(shí)可能會(huì)出現(xiàn)這樣或那樣的問(wèn)題,為了便于用戶查找問(wèn)題,Simulink設(shè)置了動(dòng)態(tài)仿真調(diào)試器(SimulinkDebugger)。在利用Simulink調(diào)試器調(diào)試時(shí),系統(tǒng)能實(shí)時(shí)地顯示模型的狀態(tài)和模塊的數(shù)據(jù)傳輸。用戶可以一步一步地進(jìn)行仿真,以便發(fā)現(xiàn)系統(tǒng)模型問(wèn)題所在。Simulink調(diào)試器(SimulinkDebugger)的啟動(dòng),可采用以下兩種方法:(1)在模型窗口的工具條中,單擊SimulinkDebugger的快捷啟動(dòng)按鈕“”;(2)在模型窗口的功能菜單中,執(zhí)行命令ToolsSimulinkDebugger。128目前一百二十八頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)6.4離散系統(tǒng)的仿真Simulink具有仿真離散(采樣數(shù)據(jù))系統(tǒng)的能力。模型可以是多采樣率的,也就是說(shuō),它們可以包含有以不同的速率采樣的模塊。模型還可以是既包含有離散模塊,又包含有連續(xù)模塊的混合模型。在離散模塊中均包含一個(gè)采樣時(shí)間(Sampletime)參數(shù)設(shè)定欄,見(jiàn)圖6-52所示離散傳遞函數(shù)模塊(DiscreteTransferFcn)的參數(shù)設(shè)置對(duì)話框。圖6-52129目前一百二十九頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)采樣時(shí)間參數(shù)設(shè)定離散模塊狀態(tài)改變的采樣時(shí)間,通常,采樣時(shí)間被設(shè)成標(biāo)量變量,然而,它也可以通過(guò)在該參數(shù)域中指定一個(gè)包含有兩個(gè)元素的向量來(lái)指定一個(gè)時(shí)間偏移量。例如若僅在采樣時(shí)間(Sampletime)參數(shù)設(shè)定欄填寫(xiě)一個(gè)標(biāo)量參數(shù),那么它就是采樣時(shí)間。若在此欄中填寫(xiě)二元向量[Ts,offset],那么該量的第一個(gè)元素指定采樣時(shí)間Ts,第二個(gè)元素設(shè)置偏移時(shí)間offset,實(shí)際采樣時(shí)間為t=n*Ts+offset。在此,n為整數(shù),offset是絕對(duì)值小于采樣時(shí)間Ts的實(shí)數(shù)。若要求模型必須在某時(shí)刻更新,或要求一些離散模塊必須比另外一些離散模塊更新得早一些或晚一些時(shí),就必須借助offset的設(shè)置來(lái)實(shí)現(xiàn)。130目前一百三十頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)1.純離散系統(tǒng)的仿真純離散系統(tǒng)可使用任何一種積分算法進(jìn)行仿真,而不會(huì)影響輸出結(jié)果。若只要采樣瞬間的輸出數(shù)據(jù),那么應(yīng)把最小步長(zhǎng)設(shè)置得比最大的采樣間隔大例6-12設(shè)人口變化的非線性離散系統(tǒng)的差分方程為其中k表示年份,p(k)為某一年的人口數(shù)目,p(k-1)為上一年的人口數(shù)目。如果設(shè)人口初始值p(0)=200000,人口繁殖速率r=1.05,新增資源所能滿足的個(gè)體數(shù)目N=1000000,要求建立此人口動(dòng)態(tài)變化系統(tǒng)的系統(tǒng)模型,并分析人口數(shù)目在0至100年之間的變化趨勢(shì)。131目前一百三十一頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)圖6-53132目前一百三十二頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)圖6-54133目前一百三十三頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)2.離散—連續(xù)混合系統(tǒng)仿真由于Simulink的每個(gè)離散模塊都有一個(gè)內(nèi)置的輸入采樣器和輸出零階保持器,故連續(xù)模塊和離散模塊混用時(shí),它們之間可直接連接。在仿真時(shí),離散模塊的輸入輸出每個(gè)采樣周期更新一次,即在采樣間隔內(nèi)它的輸入輸出保持不變;而連續(xù)模塊的輸入輸出每個(gè)計(jì)算步長(zhǎng)更新一次。仿真算法可以采用前面介紹過(guò)的任何一種。134目前一百三十四頁(yè)\總數(shù)二百零六頁(yè)\編于十一點(diǎn)3.多頻采樣系統(tǒng)的仿真多頻采樣系統(tǒng)包含有不同采樣速率的離散模塊,在Simulink中,多頻采樣系統(tǒng)和多頻采樣-連續(xù)混合系統(tǒng)的建模與仿真都可以進(jìn)行。例6-13對(duì)圖6-55所示雙速率采樣系統(tǒng)進(jìn)行
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)利使用許可合同范本
- 外賣(mài)承運(yùn)合同范本
- ppp總包合同范本
- 買(mǎi)賣(mài)鮑魚(yú)合同范本
- 出售工程潔具合同范本
- 人才引進(jìn)股權(quán)激勵(lì)合同范本
- 分期合同與框架合同范本
- ppp合同范本 政府
- 鄉(xiāng)鎮(zhèn)建設(shè)用地合同范本
- 出軌賠償合同范本
- 無(wú)人駕駛技術(shù)的傳感器技術(shù)應(yīng)用
- 公會(huì)掛靠協(xié)議
- 信息技術(shù)開(kāi)學(xué)第一課(課堂常規(guī)紀(jì)律)
- 高程測(cè)量-三角高程測(cè)量(工程測(cè)量課件)
- 新視野大學(xué)英語(yǔ)(第四版)讀寫(xiě)教程4(思政智慧版)課件 Unit1 Urban development Section B
- 村(居)民房屋翻建(新建)申請(qǐng)表
- 集裝箱房施工方案
- 人教新課標(biāo)五年級(jí)數(shù)學(xué)下冊(cè)教材解讀PPT
- CentOS 7系統(tǒng)配置與管理-習(xí)題及答案 楊海艷【ch07】管理文件權(quán)限
- 食品安全蔬菜水果
- 高中英語(yǔ)教學(xué)設(shè)計(jì)案例高中英語(yǔ)教學(xué)設(shè)計(jì)一等獎(jiǎng)(四篇)
評(píng)論
0/150
提交評(píng)論