計算機(jī)仿真技術(shù)第6章動態(tài)仿真集成環(huán)境_第1頁
計算機(jī)仿真技術(shù)第6章動態(tài)仿真集成環(huán)境_第2頁
計算機(jī)仿真技術(shù)第6章動態(tài)仿真集成環(huán)境_第3頁
計算機(jī)仿真技術(shù)第6章動態(tài)仿真集成環(huán)境_第4頁
計算機(jī)仿真技術(shù)第6章動態(tài)仿真集成環(huán)境_第5頁
已閱讀5頁,還剩201頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章動態(tài)仿真集成環(huán)境-

Simulink

本章內(nèi)容(1)

注意區(qū)分書中Simulink庫瀏覽窗口與Simulink模塊庫的區(qū)別;(2)

熟悉Simulink模塊庫和Simulink附加模塊庫中常用標(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)的不同用法及其利用它們輸出信號時的仿真參數(shù)的設(shè)置;(7)

利用MATLAB求解非線性系統(tǒng)的線性化模型;(8)

熟悉子系統(tǒng)的兩種建立方法:菜單法和模塊法,以及條件子系統(tǒng)的應(yīng)用(9)

模型封裝模板編輯器的參數(shù)設(shè)置及系統(tǒng)模型的封裝步驟。1當(dāng)前1頁,總共206頁。Simulink是一個用來對動態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包。它支持連續(xù)、離散及兩者混合的線性和非線性系統(tǒng),同時它也支持具有不同部分擁有不同采樣率的多種采樣速度的系統(tǒng)仿真。Simulink為用戶提供了一個圖形化的用戶界面(GUI)。對于用方框圖所表示的系統(tǒng),通過圖形界面,利用鼠標(biāo)點(diǎn)擊和拖拉方式,建立系統(tǒng)模型就像用鉛筆在紙上繪制系統(tǒng)的模型圖一樣簡單,它與用微分方程和差分方程建模的傳統(tǒng)仿真軟件包相比,具有更直觀、更方便、更靈活的優(yōu)點(diǎn)。它不但實現(xiàn)了可視化的動態(tài)仿真,也實現(xiàn)了與MATLAB、C或者FORTRAN甚至和硬件之間的數(shù)據(jù)傳遞,大大地擴(kuò)展了它的功能。2當(dāng)前2頁,總共206頁。6.1Simulink簡介6.1.1Simulink的啟動要啟動Simulink必須先啟動MATLAB。在MATLAB窗口中,有三種方法啟動Simulink:(1)在MATLAB的命令窗口中,直接鍵入命令:simulink;(2)在MATLAB窗口的工具條中,單擊Simulink的快捷啟動按鈕“”;(3)在MATLAB窗口的左下角“Start”菜單中,單擊“Simulink”子菜單中的“LibraryBrowser”選項。3當(dāng)前3頁,總共206頁。啟動Simulink后,便可顯示如圖6-1所示的Simulink庫瀏覽窗口(SimulinkLibraryBrowser),窗口左邊列出了該系統(tǒng)中所有安裝的一個樹狀結(jié)構(gòu)的仿真模塊集或工具箱,同時右邊顯示當(dāng)前左邊所選仿真模塊集或工具箱中所包含的標(biāo)準(zhǔn)模塊庫。Simulink庫瀏覽窗口由功能菜單、工具欄和模塊集或工具箱三大部分組成,創(chuàng)建系統(tǒng)模型時,將從這些仿真模塊集或工具箱中利用鼠標(biāo)復(fù)制標(biāo)準(zhǔn)模塊到用戶模型編輯窗口中。

4當(dāng)前4頁,總共206頁。圖6-15當(dāng)前5頁,總共206頁。6.1.2Simulink庫瀏覽窗口的功能菜單為了充分利用仿真模塊庫(集)中的標(biāo)準(zhǔn)模塊對控制系統(tǒng)進(jìn)行有效的動態(tài)仿真,在Simulink庫瀏覽窗口中設(shè)計了以下各個功能菜單。*File文件操作菜單New新建用戶模型編輯窗口/模塊庫窗口Open打開用戶模型編輯窗口Close關(guān)閉用戶模型編輯窗口Preferences參數(shù)選擇*Edit編輯菜單Addtothecurrentmodel增加到當(dāng)前用戶模型編輯窗口中Findblock查找模塊Findnewblock查找新模塊6當(dāng)前6頁,總共206頁。*View查看菜單Toolbar顯示/關(guān)閉工具條開關(guān)Statusbar顯示/關(guān)閉狀態(tài)條開關(guān)Description顯示/關(guān)閉描述窗口開關(guān)Stayontop位于上層Collapseentirebrowser壓縮整個樹狀結(jié)構(gòu)Expandentirebrowser展開整個樹狀結(jié)構(gòu)Largeicons大圖標(biāo)Smallicons小圖標(biāo)Showparametersforselectedblock顯示所選模塊參數(shù)*Help幫助菜單7當(dāng)前7頁,總共206頁。6.1.3仿真模塊庫(集)

在Simulink庫瀏覽窗口中,包含了由眾多領(lǐng)域著名專家與學(xué)者以MATLAB為基礎(chǔ)開發(fā)的大量實用模塊集或工具箱,本書限于篇幅,僅介紹與動態(tài)仿真Simulink有關(guān)的幾種模塊集。1.Simulink模塊集(Simulink)在Simulink庫瀏覽窗口的Simulink節(jié)點(diǎn)上,通過單擊鼠標(biāo)右鍵后,便可打開如圖6-2所示的Simulink模塊集窗口8當(dāng)前8頁,總共206頁。

Simulink模塊庫由標(biāo)題、功能菜單和標(biāo)準(zhǔn)模塊庫三部分組成。

圖6-29當(dāng)前9頁,總共206頁。(1)信號源模塊庫(Sources)Sources庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-3和表6-1所示。1)Simulink的標(biāo)準(zhǔn)模塊庫10當(dāng)前10頁,總共206頁。(2)接收模塊庫(Sinks)Sinks庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-4和表6-2所示。11當(dāng)前11頁,總共206頁。(3)連續(xù)系統(tǒng)模塊庫(Continuous)Continuous庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-5和表6-3所示。12當(dāng)前12頁,總共206頁。(4)離散系統(tǒng)模塊庫(Discrete)Discrete庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-6和表6-4所示。13當(dāng)前13頁,總共206頁。(5)非連續(xù)系統(tǒng)模塊庫(Discontinuities)Discontinuities庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-7和表6-5所示。14當(dāng)前14頁,總共206頁。(6)信號路由模塊庫(SignalRouting)SignalRouting庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-8和表6-6所示。15當(dāng)前15頁,總共206頁。(7)信號屬性模塊庫(SignalAttributes)SignalAttributes庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-9和表6-7所示。16當(dāng)前16頁,總共206頁。(8)數(shù)學(xué)運(yùn)算模塊庫(MathOperations)MathOperations庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-10和表6-8所示。17當(dāng)前17頁,總共206頁。(9)邏輯和位操作模塊庫(LogicandBitOperations)LogicandBitOperations庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-11和表6-9所示。

18當(dāng)前18頁,總共206頁。(10)查表模塊庫(LookupTables)LookupTables庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-12和表6-10所示。19當(dāng)前19頁,總共206頁。(11)用戶自定義函數(shù)模塊庫(User-DefinedFunctions)User-DefinedFunctions庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-13和表6-11所示。20當(dāng)前20頁,總共206頁。(12)模型檢測模塊庫(ModelVerification)ModelVerification庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-14和表6-12所示。21當(dāng)前21頁,總共206頁。(13)端口與子系統(tǒng)模塊庫(Ports&Subsystems)Ports&Subsystems庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-15和表6-13所示。22當(dāng)前22頁,總共206頁。(14)模型擴(kuò)展功能模塊庫(Model-WideUtilities)Model-WideUtilities庫中所包含的各個標(biāo)準(zhǔn)模塊及其功能如圖6-16和表6-14所示。23當(dāng)前23頁,總共206頁。(15)模塊集和工具箱(Blocksets&Toolboxes)Blocksets&Toolboxes中所包含的模塊集和工具箱如圖6-17所示。24當(dāng)前24頁,總共206頁。(16)常用模塊庫(CommonlyUsedBlocks)CommonlyUsedBlocks庫中所包含的各個標(biāo)準(zhǔn)模塊如圖6-18所示。25當(dāng)前25頁,總共206頁。(17)附加數(shù)學(xué)與離散模塊庫(AdditionalMath&Discrete)在AdditionalMath&Discrete庫中包含了兩個標(biāo)準(zhǔn)模塊庫:附加數(shù)學(xué)庫(AdditionalMath)和附加離散庫(AdditionalDiscrete)。26當(dāng)前26頁,總共206頁。2)Simulink模塊集的功能菜單為了充分利用Simulink中的各個標(biāo)準(zhǔn)模塊對控制系統(tǒng)進(jìn)行有效的動態(tài)仿真,Simulink模塊集中設(shè)計了以下各個功能菜單。*File文件操作菜單*Edit編輯菜單*View查看菜單*Help幫助菜單27當(dāng)前27頁,總共206頁。*File文件操作菜單New新建模型編輯窗口/模塊庫窗口Open打開模型文件Close關(guān)閉模型文件Save保存模型文件Saveas另存模型文件Sourecontrol來源控制Modelproperties模型屬性Preferences參數(shù)選擇Print打印Printersetup打印設(shè)置ExitMATLAB退出MATLAB28當(dāng)前28頁,總共206頁。*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連接選項Unlocklibrary解鎖庫Updatediagram更新圖標(biāo)29當(dāng)前29頁,總共206頁。*View查看菜單Gotoparent轉(zhuǎn)到根Toolbar顯示/關(guān)閉工具條開關(guān)Statusbar顯示/關(guān)閉狀態(tài)條開關(guān)Modelbrowseroptions模型瀏覽器選項Blockdatatipsoptions模塊信息選項Showlibrarybrowser顯示庫瀏覽器Zoomin放大模塊視圖Zoomout縮小模塊視圖Fitsystemtoview將框圖縮放到正好符合窗口的大小Normal顯示框圖的實際大小*Help幫助菜單30當(dāng)前30頁,總共206頁。關(guān)于某些菜單的進(jìn)一步操作方法在后面的有關(guān)部分中將陸續(xù)詳細(xì)介紹。另外,當(dāng)在一個模型或模塊庫窗口上單擊鼠標(biāo)右鍵時,也會顯示前后相關(guān)的菜單。菜單的內(nèi)容取決于是否選中模塊,如果選中模塊,菜單顯示的命令僅僅適用于所選模塊,否則,菜單顯示的命令作用于整個模型或模塊庫。31當(dāng)前31頁,總共206頁。2.Simulink附加模塊集(SimulinkExtras)在Simulink庫瀏覽窗口的SimulinkExtras節(jié)點(diǎn)上,通過單擊鼠標(biāo)右鍵后,便可打開如圖6-21所示的SimulinkExtras模塊集窗口。32當(dāng)前32頁,總共206頁。在SimulinkExtras模塊集中附加了以下一些模塊庫,用鼠標(biāo)的左鍵雙擊各個模塊庫的圖標(biāo),便可打開相應(yīng)的模塊庫,各模塊庫中所包含各個標(biāo)準(zhǔn)模塊的功能如下所示。*附加接收模塊庫(AdditionalSinks)*附加離散系統(tǒng)模塊庫(AdditionalDiscrete)*附加線性模塊庫(AdditionalLinear)PIDController--PID控制器模塊PIDController(WithApproximateDerivative)--具有實際微分的PID控制器模塊*轉(zhuǎn)換庫(Transformations)*觸發(fā)器庫(FilpFlops)*線性化庫(Linearization)33當(dāng)前33頁,總共206頁。3.Simulink參數(shù)估計模塊集(SimulinkParameterEstimation)在Simulink庫瀏覽窗口的SimulinkParameterEstimation節(jié)點(diǎn)上,通過單擊鼠標(biāo)右鍵后,便可打開如圖6-22所示的SimulinkParameterEstimation庫窗口。34當(dāng)前34頁,總共206頁。4.Simulink響應(yīng)優(yōu)化模塊集(SimulinkResponseOptimization)在Simulink庫瀏覽窗口的SimulinkResponseOptimization節(jié)點(diǎn)上,通過單擊鼠標(biāo)右鍵后,便可打開如圖6-23所示的SimulinkResponseOptimization模塊集窗口。35當(dāng)前35頁,總共206頁。5.Simulink確認(rèn)模塊集(SimulinkVerificationandValidation)在Simulink庫瀏覽窗口的SimulinkVerificationandValidation節(jié)點(diǎn)上,通過單擊鼠標(biāo)右鍵后,便可打開如圖6-24所示的SimulinkVerificationandValidation模塊集窗口。36當(dāng)前36頁,總共206頁。6.Simulink控制設(shè)計模塊集(SimulinkControlDesign)在Simulink庫瀏覽窗口的SimulinkControlDesign節(jié)點(diǎn)上,通過單擊鼠標(biāo)右鍵后,便可打開如圖6-25所示的SimulinkControlDesign模塊集窗口。37當(dāng)前37頁,總共206頁。6.2模型的構(gòu)造Simulink完全采用方框圖的“抓取”功能來構(gòu)造動態(tài)系統(tǒng)模型,系統(tǒng)的創(chuàng)建過程就是繪制方框圖的過程。在Simulink環(huán)境中方框圖的繪制完全依賴于鼠標(biāo)操作。38當(dāng)前38頁,總共206頁。6.2.1模型編輯窗口若想新建一個控制系統(tǒng)結(jié)構(gòu)框圖,則首先應(yīng)該打開一個標(biāo)題為“Untitled”的空白模型編輯窗口,如圖6-26所示。

圖6-2639當(dāng)前39頁,總共206頁。創(chuàng)建一個新的模型編輯窗口有以下三種方法:)在Simulink庫瀏覽窗口中,點(diǎn)擊工具條中的新建模型窗口按鈕;)在Simulink庫窗口中選擇菜單命令File|New|Model;)在MATLAB指令窗口中選擇菜單命令File|New|Model。40當(dāng)前40頁,總共206頁。模型編輯窗口由標(biāo)題、功能菜單和用戶模型編輯區(qū)三部分組成。在模型編輯窗口中允許用戶對系統(tǒng)的結(jié)構(gòu)圖進(jìn)行編輯、修改和仿真。對控制系統(tǒng)結(jié)構(gòu)框圖的繪制必須在用戶模型編輯區(qū)中進(jìn)行,結(jié)構(gòu)圖中所需的各種模塊,可直接從Simulink庫瀏覽窗口中的各模塊庫(集)中復(fù)制相應(yīng)的標(biāo)準(zhǔn)模塊得到。模型編輯窗口的標(biāo)題實際上是擴(kuò)展名為.mdl的模型文件名,它可利用菜單命令File|Saveas將其任意更名保存。41當(dāng)前41頁,總共206頁。為了方便用戶建模,模型編輯窗口中設(shè)計了以下多種功能菜單。*File文件操作菜單參Simulink模塊庫中功能菜單的File項。*Edit編輯菜單參Simulink模塊庫中功能菜單的Edit項。*View查看菜單參Simulink模塊庫中功能菜單的View項。42當(dāng)前42頁,總共206頁。*Simulation仿真操作菜單Start開始仿真Stop停止仿真SimulationParameters仿真參數(shù)設(shè)置Normal正常的Accelerator加速的External外部的43當(dāng)前43頁,總共206頁。*Format格式菜單Font字體設(shè)置Textalignment文字對齊Flipname模塊名置于模塊的相反一邊Show/Hidename顯示/隱藏模塊名Flipblock模塊旋轉(zhuǎn)180度Rotateblock模塊順時針方向旋轉(zhuǎn)90度ShowdropShadow顯示陰影Showportlabels顯示端口標(biāo)注Foregroundcolor前景顏色設(shè)置Backgroundcolor背景顏色設(shè)置Screencolor屏幕顏色設(shè)置

44當(dāng)前44頁,總共206頁。如果方框圖模型文件已經(jīng)存在,則可利用以下三種方法打開一個具有一定內(nèi)容的模型編輯窗口:)在Simulink庫瀏覽窗口中,點(diǎn)擊工具條中的打開模型文件按鈕,然后選擇或者輸入要編輯的模型文件名;)在庫窗口中選擇菜單命令File|Open,然后選擇或者輸入要編輯的模型文件名;)在MATLAB指令窗口中直接鍵入模型文件名(不帶.mdl擴(kuò)展名)。

45當(dāng)前45頁,總共206頁。6.2.2對象的選定在建模操作中,諸如拷貝一個模塊或者刪除一條連線,都需要首先選定一個或多個模塊或連線,我們把這些模塊或連線稱做對象。1.選定單個對象用鼠標(biāo)單擊待選對象,小黑四方塊的“句柄”就會出現(xiàn)在被選中模塊的四個角上,或在被選中連線的兩個端點(diǎn)旁。46當(dāng)前46頁,總共206頁。2.選定一組對象選定一組對象的方法有以下三種:選定一組不連續(xù)對象在按下Shift鍵的同時,用鼠標(biāo)單擊每一待選的對象。要取消一個已被選定的對象的選定狀態(tài),在按下Shift鍵的同時,再一次用鼠標(biāo)單擊該對象。選定一組連續(xù)對象按住鼠標(biāo)左鍵向右下方拉出一個矩形虛線框,將所有待選模塊包圍在其中,然后松開按鍵,則矩形框里所有的對象同時被選中。47當(dāng)前47頁,總共206頁。選定整個模型要選定一個活動窗口的所有對象,只要選擇窗口菜單下的Edit|Selectall命令即可。但不能通過此種方法來選擇所有的模塊和連線來創(chuàng)建子系統(tǒng)模塊。如果想放棄選中的對象,則只需在空白處點(diǎn)擊即可48當(dāng)前48頁,總共206頁。6.2.3模塊的操作模塊是Simulink模型構(gòu)造的基本元素,利用鼠標(biāo)點(diǎn)擊和拖拉方式可將仿真模塊庫(集)中標(biāo)準(zhǔn)模塊拷貝到用戶模型編輯窗口中,并使其相互連接,便可得到系統(tǒng)方框圖。49當(dāng)前49頁,總共206頁。1.模塊的復(fù)制1)從一個窗口復(fù)制模塊到另一個窗口建立模型時,會經(jīng)常從Simulink模塊庫、其它庫(集)或者模型編輯窗口中復(fù)制標(biāo)準(zhǔn)模塊到當(dāng)前正在編輯的模型編輯窗口中。復(fù)制標(biāo)準(zhǔn)模塊,可按以下步驟進(jìn)行。①打開相關(guān)的模塊庫(集)或模型編輯窗口以及正在編輯的模型編輯窗口;50當(dāng)前50頁,總共206頁。②將光標(biāo)定位于要復(fù)制的模塊上,按下鼠標(biāo)左鍵并保持住,拖動鼠標(biāo)到正在編輯的模型編輯窗口中適當(dāng)位置,然后松開鼠標(biāo)左鍵,就會在選定的位置上復(fù)制出相應(yīng)的模塊,新復(fù)制的模塊和原模塊的名字相同,如果同一模塊在同一窗口中復(fù)制了一次以上,它們會自動在模塊名字末加進(jìn)次序號,以資區(qū)別。新復(fù)制的模塊繼承了原模塊的所有參數(shù)。但在復(fù)制Sum、Mux、Demux和BusSelector模塊時,Simulink會隱藏其名字,以避免模型圖中不必要的混亂,增加可讀性。由此可見,從一個窗口拖動模塊到另一個窗口,其實是從一個窗口復(fù)制模塊到另一個窗口。51當(dāng)前51頁,總共206頁。2)在同一窗口中復(fù)制模塊在按下Ctrl鍵的同時,用鼠標(biāo)左鍵選中待復(fù)制的模塊后,將其拖到希望位置后,松開按鍵,便完成復(fù)制工作。如果采用鼠標(biāo)右鍵,以上拷貝過程中就省掉按Ctrl鍵了。另外,還可通過Edit菜單下的Copy和Paste命令來復(fù)制模塊。52當(dāng)前52頁,總共206頁。2.模塊的移動1)從一個窗口移動模塊到另一個窗口模塊的移動,可按以下步驟進(jìn)行。①打開相關(guān)的模塊庫(集)或模型編輯窗口以及正在編輯的模型編輯窗口;②在按下Shift鍵的同時,從一個窗口拖動模塊到另一個窗口。53當(dāng)前53頁,總共206頁。2)在同一窗口中移動模塊在同一窗口中移動單個模塊時,只需將光標(biāo)置于待移動模塊圖標(biāo)上,按住鼠標(biāo)將模塊拖到合適的位置放開鼠標(biāo)即可,模塊移動時,與模塊的連線也隨之移動,這時Simulink將會自動地重畫與被移動模塊相連的連線。當(dāng)移動多個模塊及其連線時,首先要選中要移動的模塊和連線,然后把光標(biāo)置于待移動模塊及其連線的任一處,將其拖動到指定位置即可。另外,也可通過Edit菜單下的Cut和Paste命令來移動模塊。54當(dāng)前54頁,總共206頁。3.模塊的刪除按Delete或Backspace鍵即可以刪除所選定的一個或多個模塊。另外,也可通過Edit菜單下的Cut或Clear命令來刪除所選定的模塊。但Edit|Cut命令,可將選定的模塊移到Windows的剪貼板上,可供Edit|Paste命令重新粘貼。55當(dāng)前55頁,總共206頁。4.模塊的旋轉(zhuǎn)因從標(biāo)準(zhǔn)模塊庫中復(fù)制到模型編輯窗口中模塊,在默認(rèn)狀態(tài)下是輸入端(大于符號)在左,而輸出端(三角符號)在右,在繪制系統(tǒng)方框圖時,有時為了使得連線更容易,避免不必要的交叉線,增加框圖的可讀性,需要對某些模塊翻轉(zhuǎn)或旋轉(zhuǎn),使得其輸入端和輸出端改變方向。如在反饋回路中的模塊希望輸入端在右輸出端在左。在Simulink下實現(xiàn)這一功能是輕而易舉的事情,首先用鼠標(biāo)選中要旋轉(zhuǎn)處理的模塊,然后執(zhí)行Format|Flipblock命令將對此模塊旋轉(zhuǎn)180度;或執(zhí)行Format|Rotateblock命令將對此模塊順時針方向旋轉(zhuǎn)90度。56當(dāng)前56頁,總共206頁。6.2.4模塊間的連接線系統(tǒng)框圖中的信號沿模塊間的連接線傳輸,連接線可傳輸標(biāo)量或向量信號。1.模塊間的連接線模塊間的連接線是從某模塊的輸出端(三角符號)出發(fā)直指另一模塊的輸入口(大于符號)的有向線段。它的生成方法是:把鼠標(biāo)光標(biāo)移到起點(diǎn)模塊的輸出端,按鼠標(biāo)左右的任何一鍵,看到光標(biāo)變?yōu)椤?”字后,拖動“+”字光標(biāo)到終點(diǎn)模塊的輸入端,再釋放鼠標(biāo)按鈕,則會自動產(chǎn)生一條帶箭頭的線段,將兩個模塊連接起來,箭頭方向表示信號流向。如想消去某段連線,可先用鼠標(biāo)單擊的方法選定該連線后,按Delete鍵,則可刪除用方塊標(biāo)定的連線。57當(dāng)前57頁,總共206頁。2.畫支線支線是從一條已存在的有向線段上任意一點(diǎn)出發(fā),指向另一模塊輸入口的有向線段。已存在的有向線段和支線傳輸?shù)氖窍嗤男盘?,使用支線可以將一個信號傳輸給多個模塊,它也一般用于連接方框圖中的反向模塊。這類支線生成的方法是:把鼠標(biāo)光標(biāo)移到有向線段上的任意點(diǎn)處,在按下Ctrl鍵的同時,按下鼠標(biāo)左鍵,光標(biāo)由箭頭變?yōu)椤?”字,拖動鼠標(biāo)到適當(dāng)位置后放開左鍵,屏幕上就出現(xiàn)一條由此點(diǎn)引出的箭頭線,再從此箭頭開始按住鼠標(biāo)左右任何一鍵,沿另一方向拖到適當(dāng)位置后松開按鍵,照此操作,直到整個支線繪完為止。如果采用鼠標(biāo)右鍵,以上過程中就省掉按Ctrl鍵了。58當(dāng)前58頁,總共206頁。6.2.5模型的保存在模型編輯窗口中編輯好系統(tǒng)結(jié)構(gòu)框圖后,可用窗口中的菜單命令File|Save將其保存為模型文件(擴(kuò)展名為.mdl),模型文件中存有模塊圖和模塊的一些屬性,它是以ASCII碼形式存儲的,它也可用窗口中的菜單命令File|Saveas將其任意更名保存。模型文件名必須是以字母開頭的且不能超過31個字母、數(shù)字和下劃線組成的字符串。59當(dāng)前59頁,總共206頁。例6-1建立如圖6-27所示的系統(tǒng)模型,并將其保存為ex6_1.mdl模型文件。圖6-2760當(dāng)前60頁,總共206頁。6.2.6模塊名字的處理1.模塊名字的修改模塊名字是指標(biāo)識模塊圖標(biāo)的字符串,為了增加可讀性,那些被用戶所復(fù)制到用戶窗口中的標(biāo)準(zhǔn)模塊的標(biāo)題常作必要的修改,具體方法如下:先用鼠標(biāo)單擊所選標(biāo)題,輸入新的標(biāo)題(MATLAB7.4版僅限西文字符,MATLAB6.5版中西文均可)然后用鼠標(biāo)單擊窗口中的任一地方,修改工作完成。模塊名字的字體、字形和大小也可通過選擇菜單命令Format|Font來改變。61當(dāng)前61頁,總共206頁。2.模塊名字位置的改變模型中所有模塊的名字都必須是唯一的,并且必須包含至少一個字符。缺省情況下,如果模塊的端口在它的左右兩邊時,模塊的名字顯示在它的下面,而如果模塊的端口在它的上下兩邊時,模塊的名字顯示在它的左邊。但所選模塊的模塊名字可通過以下兩種方法改變位置:1)將模塊名用鼠標(biāo)拖至模塊相反的一邊;2)選擇菜單命令Format|Flipname,可將所選模塊的名字置于模塊的相反一邊。62當(dāng)前62頁,總共206頁。3.改變是否顯示模塊名字選擇Format菜單下的Hidename或Showname命令,便可隱藏或顯示所選模塊的模塊名。63當(dāng)前63頁,總共206頁。6.2.7模塊內(nèi)部參數(shù)的修改被復(fù)制到用戶窗口中的各種模塊,開始包含著與原始標(biāo)準(zhǔn)模塊一樣的內(nèi)部參數(shù)設(shè)置,即內(nèi)部參數(shù)開始均為缺省值。如:階躍輸入函數(shù)模塊(StepFcn)的缺省的階躍時刻是1,而不是0,傳遞函數(shù)模塊(TranceferFcn)的缺省值為1/(s+1)等。為了適合用戶的不同需要,常需對模塊的內(nèi)部參數(shù)作必要的修改。具體操作如下:用鼠標(biāo)的左鍵雙擊待修改內(nèi)部參數(shù)模塊的圖標(biāo),則可打開該模塊的參數(shù)設(shè)置對話框,通過改變對話框中適當(dāng)欄目中的數(shù)據(jù)便可。在參數(shù)設(shè)置時任何MATLAB工作內(nèi)存中已有的變量、合法表達(dá)式和MATLAB語句等都可以填寫在設(shè)置欄中,某些模塊的方框大小是可以用鼠標(biāo)操作調(diào)整的。64當(dāng)前64頁,總共206頁。例6-2把例6-1中的系統(tǒng)模型修改成圖6-28所示的系統(tǒng)模型。圖6-2865當(dāng)前65頁,總共206頁。解①對傳遞函數(shù)模塊參數(shù)的修改②對求和模塊輸入極性的修改

66當(dāng)前66頁,總共206頁。6.2.8模塊的標(biāo)量擴(kuò)展標(biāo)量擴(kuò)展是指將一個標(biāo)量值轉(zhuǎn)變成一個具有相同元素的向量。幾乎所有的模塊都能接受標(biāo)量輸入或向量輸入,產(chǎn)生標(biāo)量或向量輸出,并且允許用戶來定義標(biāo)量或向量參數(shù),這樣的模塊將稱之為向量化了的模塊。用戶可通過Format菜單中的Widenonscalarlines命令來定義模型中的哪些信號線傳遞的是向量信號,并且將向量信號連線用粗線表示,標(biāo)量信號連線用細(xì)線表示。利用Edit菜單中選擇UpdateDiagram選項可隨時更新顯示。另外,在仿真開始時也可進(jìn)行這樣的更新顯示。67當(dāng)前67頁,總共206頁。1.輸入的標(biāo)量擴(kuò)展當(dāng)模塊有一個以上的輸入時,可以把向量輸入和標(biāo)量輸入混合起來。在這種情況下,那個標(biāo)量輸入信號就要進(jìn)行標(biāo)量擴(kuò)展,形成一個具有和向量輸入信號維數(shù)一樣的具有相同元素的向量,如圖6-29所示。

68當(dāng)前68頁,總共206頁。2.參數(shù)的標(biāo)量擴(kuò)展對于可以進(jìn)行標(biāo)量擴(kuò)展的那些模塊,其參數(shù)既可以定義為標(biāo)量,也可以定義為向量。當(dāng)為一個向量參數(shù)時,向量參數(shù)中的每一個元素與輸入向量中的每一個元素相對應(yīng)。而當(dāng)定義為一個標(biāo)量參數(shù)時,Simulink就對標(biāo)量參數(shù)進(jìn)行標(biāo)量擴(kuò)展,自動形成一個具有相應(yīng)維數(shù)的向量,如圖6-30所示。69當(dāng)前69頁,總共206頁。3.顯示/關(guān)閉連線的寬度可以通過選擇菜單命令FormatPort/SignaldisplaysWidenonscalarLines來顯示和關(guān)閉模型中用粗線表示的向量信號連線。4.信號標(biāo)注要對某一連線進(jìn)行標(biāo)注,只需雙擊標(biāo)注處,并且在插入點(diǎn)處輸入標(biāo)注即可,標(biāo)注可移動到連線的任何位置。標(biāo)注的字體、字形和大小也可通過選擇菜單命令FormatFont來改變。

70當(dāng)前70頁,總共206頁。6.3連續(xù)系統(tǒng)的數(shù)字仿真創(chuàng)建好系統(tǒng)模型后,就可以在用戶模型窗口中利用Simulink的菜單命令或者在MATLAB的命令窗口中利用MATLAB的指令操作方式對系統(tǒng)進(jìn)行仿真了。71當(dāng)前71頁,總共206頁。6.3.1利用Simulink菜單命令進(jìn)行仿真Simulink的菜單命令方式對于交互式工作非常方便,這種在Simulink窗口下進(jìn)行的仿真最直觀,它可使用Scopes或者其他的顯示模塊,在運(yùn)行仿真時觀察仿真結(jié)果。仿真的結(jié)果還可保存到MATLAB工作空間的變量中,以待進(jìn)一步的處理。另外,在這種仿真方式下,無論是對框圖模型本身還是對數(shù)值算法及參數(shù)的選擇都可以很方便地修改和操縱。模型及仿真參數(shù)不僅在仿真前允許編程和修改,而且在仿真過程中也允許作一定程度的修改。在這種菜單仿真方式下,在一個系統(tǒng)仿真的同時,允許打開另一個系統(tǒng)。72當(dāng)前72頁,總共206頁。在啟動仿真開始之前,首先應(yīng)選擇系統(tǒng)模型窗口中的SimulationConfigurationParameters命令來設(shè)置仿真算法和參數(shù),這時將給出一個如圖6-31所示的對話框,它包括七個頁面和四個功能按鈕。其中,前兩個頁面是經(jīng)常需要用戶改變設(shè)置的。圖6-3173當(dāng)前73頁,總共206頁。1.求解器(Solver)頁面該頁面用來設(shè)置仿真開始和停止時間、選擇仿真算法和指定算法的參數(shù)等,如圖6-31所示。1)仿真時間(Simulationtime)仿真時間是由參數(shù)對話框中的開始時間(StartTime)和停止時間(StopTime)框中的內(nèi)容來確定的,它們均可修改,缺省的開始時間為0.0秒,停止時間為10.0秒。在仿真過程中允許實時修改仿真的終止時間(StopTime)74當(dāng)前74頁,總共206頁。2)求解器選項(Solveroptions)仿真涉及常微分方程組的數(shù)值積分,由于動態(tài)系統(tǒng)行為的多樣性,目前還沒有一種算法能夠保證所有模型的數(shù)值仿真結(jié)果總是準(zhǔn)確、可靠的。為此,Simulink提供了變步長(Variable-step)和定步長(Fixed-step)兩大類數(shù)值積分算法供用戶選擇。對于變步長算法,可以設(shè)定最大步長(Maxstepsize)、最小步長(Minstepsize)、起始步長(Initialstepsize)、相對容差(Relativetolerance)和絕對容差(Absolutetolerance)。對于定步長算法,可以設(shè)定固定步長(Fixedstepsize)和選擇仿真模式(Mode)。因此為得到準(zhǔn)確仿真結(jié)果,用戶必須針對不同模型仔細(xì)選擇算法及參數(shù)。75當(dāng)前75頁,總共206頁。(1)仿真算法在求解器選項(Solveroptions)最上面的兩個選擇框中,可選擇相應(yīng)的仿真算法。變步長(Variable-step)算法可以選擇的變步長算法有以下幾種。缺省情況下,連續(xù)系統(tǒng)采用ode45;離散系統(tǒng)采用discrete。定步長(Fixed-step)算法可以選擇的定步長算法有以下幾種。76當(dāng)前76頁,總共206頁。(2)仿真步長在求解器選項(Solveroptions)下面的選擇框中。對于變步長算法,可以設(shè)定最大步長(Maxstepsize)、最小步長(Minstepsize)和起始步長(Initialstepsize)。對于定步長算法,可以設(shè)定固定步長(Fixedstepsize)。缺省情況下,這些參數(shù)均為auto,即這些參數(shù)將被自動地設(shè)定。對于變步長算法,采用變步長的方法進(jìn)行仿真,仿真開始時是以起始步長作為計算步長的,在仿真過程中,算法會把算得的局部估計誤差與誤差容限相比較,在滿足仿真精度的前提下,自動拉大步長,提高計算效率。

77當(dāng)前77頁,總共206頁。一般情況下,最大步長可以選擇一個較大的數(shù)值,但如果選擇的過大,可能會出現(xiàn)在仿真點(diǎn)處仿真結(jié)果是正確的,但仿真曲線不是很光滑的情況,故最大步長一般選擇為仿真范圍的1/50。通常,最小步長都取的很小,但如果取的太小,會增大計算量。仿真的最小步長和最大步長均可在仿真過程中進(jìn)行實時修改。78當(dāng)前78頁,總共206頁。(3)誤差容限相對容差(Relativetolerance)和絕對容差(Absolutetolerance)中所填寫的容差值是用來定義仿真精度的。在變步長仿真過程中,算法會把算得的局部估計誤差與這里填寫的容許誤差限來相比較,當(dāng)誤差超過這一誤差限時會自動地對仿真步長作適當(dāng)?shù)男拚?,所以說在變步長仿真時,誤差限的設(shè)置是很重要的,它將關(guān)系到微分方程求解的精度。誤差限經(jīng)常在0.1和1e-6之間取值,它越小,積分的步數(shù)就越多,精度也越高,但是過?。ㄈ?e-10)由于計算舍入誤差的顯著增加,而影響整個精度,誤差限在仿真過程中允許實時修改。79當(dāng)前79頁,總共206頁。(4)仿真模式(Mode)在采用定步長(Fixed-step)算法進(jìn)行仿真時,需要在求解器選項(Solveroptions)下面的仿真模式(Mode)選擇框列表中選擇仿真模式。①多任務(wù)模式(MultiTasking)如果檢測到模塊間進(jìn)行非法采樣類轉(zhuǎn)換,即直接相連模塊之間以不同的采樣類運(yùn)算,單模式會出現(xiàn)錯誤。在實時多任務(wù)系統(tǒng)中,任務(wù)間非法采樣類轉(zhuǎn)換可能導(dǎo)致當(dāng)另一個任務(wù)需要時,某一任務(wù)輸出不能用。通過此類轉(zhuǎn)換檢查,多任務(wù)模式可以幫助創(chuàng)建現(xiàn)實中的合法的多任務(wù)系統(tǒng)模型,模型中何處表示是同時執(zhí)行的任務(wù)。80當(dāng)前80頁,總共206頁。

②單任務(wù)模式(SingleTasking)該模式不檢查模塊間的采樣類轉(zhuǎn)換。該模式對于建造單任務(wù)系統(tǒng)模型非常有用,在此類系統(tǒng)中,任務(wù)同步不是問題。

③自動模式(Auto)當(dāng)選用此模式時,如果模型中所有模塊運(yùn)行于同樣的采樣率下,Simulink使用單任務(wù)模式;如果模型包含有不同采樣率運(yùn)行的模塊,則使用多任務(wù)模式。81當(dāng)前81頁,總共206頁。3)輸出選項(Outputoptions)在輸出選項(Outputoptions)中,可以選擇以下三種輸出。(1)細(xì)化輸出(Refineoutput)(2)產(chǎn)生額外的輸出(Produceadditionaloutput)(3)只產(chǎn)生指定的輸出(Producespecifiedoutputonly)82當(dāng)前82頁,總共206頁。2.數(shù)據(jù)輸入/輸出(DataImport/Export)頁面該頁面可以將仿真的輸出結(jié)果保存到MATLAB的工作空間變量中,也可以從MATLAB的工作空間取得輸入和初始狀態(tài),如圖6-32所示。圖6-3283當(dāng)前83頁,總共206頁。1)從MATLAB的工作空間裝入輸入和初始狀態(tài)(Loadfromworkspace)系統(tǒng)開始仿真時的初始狀態(tài),通常在模塊中指定,也可以在DataImport/Export頁的Loadfromworkspace域的初始狀態(tài)(Initialstates)編輯框中重新指定,以重新裝載在模塊中指定的初始條件。在仿真運(yùn)行期間,Simulink也可以把MATLAB工作空間的變量值當(dāng)作模型的輸入信號,它是通過輸入端口輸入到模型中。要指定這一選項,在DataImport/Export頁面的Loadfromworkspace域中,選中Input選框,然后在其后的編輯框中輸入外部輸入變量(缺省內(nèi)容為[t,u]),并選擇Apply或OK按鈕。84當(dāng)前84頁,總共206頁。外部輸入可以采用下列任何一種形式。(l)外部輸入矩陣(Array)外部輸入矩陣的第一列必須是升序排列的時間向量,其余列指定輸入值。每列代表不同輸入模塊信號序列,每行則是相應(yīng)時間的輸入值。如果選擇了數(shù)據(jù)插值(interpolatedata)選項,必要時Simulink對輸入值進(jìn)行線性插值或外推。輸入矩陣的總列數(shù)必須等于n+l,其中n為進(jìn)入模型的信號輸入端口總數(shù)。如果在MATLAB工作空間中定義了t和u,則可以直接采用缺省的外部輸入標(biāo)識[t,u]。85當(dāng)前85頁,總共206頁。(2)具有時間的結(jié)構(gòu)(StructurewithTime)Simulink可以從MATLAB工作空間中讀入結(jié)構(gòu)形式的數(shù)據(jù),但其名字必須在Input后的編輯框中指定。輸入結(jié)構(gòu)必須有兩個字段:時間和信號。時間字段包含一列仿真時間的向量;信號字段包含子結(jié)構(gòu)數(shù)組,每個對應(yīng)模型的一個輸出端口;每個子結(jié)構(gòu)有字段:值;值字段包含相應(yīng)輸入端口的輸入列向量。86當(dāng)前86頁,總共206頁。(3)結(jié)構(gòu)(Structure)結(jié)構(gòu)格式與具有時間的結(jié)構(gòu)格式一樣,只是其時間字段為空。如在上例中,可以指定:ex.time=[]。(4)外部輸入時間表達(dá)式(Externalinputtimeexpression)時間表達(dá)式可以是任何MATLAB表達(dá)式、計算行向量,其長度與模型輸入端口的信號數(shù)一樣。87當(dāng)前87頁,總共206頁。2)將結(jié)果保存到MATLAB的工作空間變量中(Savetoworkspace)Simulink將仿真結(jié)果存放在SavetoWorksPace域中指定名字的向量中。它可以通過在WorkspaceI/O頁面的Savetoworkspace域中,任意選擇時間(Time)、狀態(tài)(States)、輸出(Output)和最終狀態(tài)(Finalstate)選框,并指定返回的變量名。變量名即可任意指定,也可采用默認(rèn)值。若要將某一結(jié)果輸出到多個變量中,可在此參數(shù)輸入框中同時指定多個變量名,各變量名之間用逗號分開后外加方括號。指定的返回變量使得Simulink將時間、狀態(tài)、輸出和最終狀態(tài)值的軌跡輸出到MATLAB工作空間中,以便進(jìn)一步對其分析。如果想保存一個穩(wěn)定狀態(tài)的結(jié)果并從那個已知的狀態(tài)重新啟動仿真,那么保存最終狀態(tài)(Finalstate)將非常有用。88當(dāng)前88頁,總共206頁??梢酝ㄟ^Saveoptions域來指定輸出存儲的格式和限制保存輸出的數(shù)量。其格式選項可以采用下列任何一種形式。(l)矩陣(Array)Simulink將所選定的以上輸出結(jié)果分別存儲在SavetoWorkspace域中各編輯框命名的矩陣中,缺省值分別為tout,xout,yout和xFinal。矩陣的每一列與模型的一個輸出或狀態(tài)相對應(yīng),第一行與初始時間相對應(yīng)。89當(dāng)前89頁,總共206頁。(2)具有時間的結(jié)構(gòu)(StructurewithTime)Simulink保存模型的結(jié)果到一個結(jié)構(gòu)中,該結(jié)構(gòu)的名字是由SavetoWorkspace域中各編輯框命名的,該結(jié)構(gòu)有兩個頂層字段:時間和信號。時間字段包含仿真時間向量;信號字段包含子結(jié)構(gòu)數(shù)組,每個子結(jié)構(gòu)對應(yīng)一個模型輸出端口或與具有狀態(tài)的模塊相對應(yīng)。每個子結(jié)構(gòu)包含三個字段:值、標(biāo)簽、模塊名。值字段包含相應(yīng)輸出端口的輸出向量;標(biāo)簽字段指定與輸出相連的信號標(biāo)簽;模塊名字段指定輸出端口的名字。Simulink存儲模型的狀態(tài)到一個結(jié)構(gòu)組成相同的模型輸出結(jié)構(gòu)中。90當(dāng)前90頁,總共206頁。(3)結(jié)構(gòu)(Structure)該格式與前面所述的結(jié)構(gòu)基本一樣,只是不保存仿真時間到結(jié)構(gòu)的時間字段中。要限制保存數(shù)據(jù)的行數(shù),可選擇Limitrowstolast編輯框,并指定保存的行數(shù)。要使用抽取(Decimation)因子,在Decimation文本框中輸入數(shù)值。例如,在Decimation文本框中輸入的值為2時,產(chǎn)生的點(diǎn)將每隔一個保存一個。此外如果計算出來的結(jié)果太多,也可以改變Limitrowsoflast(限用最后的點(diǎn)數(shù))引導(dǎo)的編輯框來進(jìn)行設(shè)置,在一般情況下,該參數(shù)選擇為1000也就足夠了。91當(dāng)前91頁,總共206頁。3.優(yōu)化(Optimazition)頁面在該頁面中,可以選擇不同的選項來提高仿真性能以及產(chǎn)生代碼的性能。其中,SimulationandcodeGeneration欄設(shè)置對模型仿真及代碼生成共同有效;CodeGeneration欄設(shè)置僅對代碼生成有效。92當(dāng)前92頁,總共206頁。4.診斷(Diagnostics)頁面在診斷頁面中,可以設(shè)定一致性檢查(Consistencychecking)和邊界檢查(Boundschecking)。對于每一事件類型,可以選擇是否需要提示消息,是警告消息還是錯誤消息。警告消息不會終止仿真,錯誤消息則會終止仿真的運(yùn)行。93當(dāng)前93頁,總共206頁。5.硬件設(shè)置(HardwareImplementation)頁面該頁面主要針對于計算機(jī)系統(tǒng)模型,如嵌入式控制器。允許設(shè)置這些用來執(zhí)行模型所表示系統(tǒng)的硬件參數(shù)。6.模型參考(ModeiReferencing)頁面該頁面允許用戶設(shè)置模型中的其它子模型,或者包含在其它模型中的此模型,以便仿真的調(diào)試和目標(biāo)代碼的生成。7.實時工作空間(Real-timeWorkshop)頁面在該頁面中,可以設(shè)置影響Real-timeWorkshop生成代碼和構(gòu)建可執(zhí)行文件的諸多參數(shù)和選項。94當(dāng)前94頁,總共206頁。6.3.2仿真結(jié)果分析設(shè)置完以上仿真控制參數(shù)后,則可選擇Simulation|Start命令來啟動仿真過程,在仿真結(jié)束時會自動發(fā)出一聲鳴叫。在仿真過程中還允許采用Simulation菜單下的Pause和Continue命令來暫?;蚶^續(xù)仿真過程,若選擇Simulation|Stop命令,則人為中止仿真過程。結(jié)果分析有助于模型的改進(jìn)和完善,同時結(jié)果分析也是仿真的主要目的。仿真結(jié)果可采用以下幾種方法得到。95當(dāng)前95頁,總共206頁。(1)利用示波器模塊(Scope)得到輸出結(jié)果當(dāng)利用示波器模塊作輸出時,它不僅會自動地將仿真的結(jié)果從示波器上實時地顯示出來。而且也可同時把示波器緩沖區(qū)存儲的數(shù)據(jù),送到MATLAB工作空間指定的變量中保存起來,以便利用繪圖命令在MATLAB命令窗口里繪制出圖形。96當(dāng)前96頁,總共206頁。在示波器模塊的窗口中,利用快捷按鈕“”,可打開如圖6-35所示的示波器模塊參數(shù)(parameters)對話框。示波器參數(shù)對話框中有兩個頁面,圖6-35(a)為一般參數(shù)設(shè)置(General),圖6-35(b)為數(shù)據(jù)存儲參數(shù)設(shè)置(Datahistory)。圖6-3597當(dāng)前97頁,總共206頁。例6-4對圖6-36所示的系統(tǒng)進(jìn)行仿真。圖6-3698當(dāng)前98頁,總共206頁。解

在求解器選項(Solveroptions)頁面中,把固定步長(Fixed-stepsize)一欄中的默認(rèn)值auto改為0.05,以確保最大仿真步長小于周期的1/10,否則波形就失真,設(shè)置完參數(shù)后用鼠標(biāo)單擊【OK】按鈕接收新參數(shù),同時關(guān)閉此對話框。在Simulink中,仿真中的動態(tài)數(shù)據(jù)的計算都是由數(shù)值積分實現(xiàn)的。盡管本例從信號發(fā)生器到示波器沒通過其他環(huán)節(jié)(實際上可認(rèn)為經(jīng)過一個增益為1的比例環(huán)節(jié)),但動態(tài)數(shù)據(jù)仍是經(jīng)數(shù)值積分計算得到的,因此在仿真前,仍需執(zhí)行SimulationConfigurationParameters命令來設(shè)置仿真控制面板中相應(yīng)的參數(shù),參圖6-31。99當(dāng)前99頁,總共206頁。選擇SimulationStart命令啟動仿真過程,便可在示波器上看到相應(yīng)的曲線。另外,在MATLAB命令窗口中利用以下命令,便可得到如圖6-38所示的輸出曲線。>>plot(y(:,1),y(:,2));title('sin')圖6-38100當(dāng)前100頁,總共206頁。除了示波器形象的輸出之外,用戶還可以用ToWorkspace模塊或Out1模塊將仿真結(jié)果返回到MATLAB的工作空間變量中,這樣返回的結(jié)果當(dāng)然可以利用MATLAB命令來進(jìn)一步處理。101當(dāng)前101頁,總共206頁。(2)利用輸出接口模塊(Out1)得到輸出結(jié)果利用輸出接口(Out1)模塊把仿真結(jié)果返回到MATLAB的工作空間時,就必須選定圖6-32所示的DataImport/Export頁面中的時間變量(Time)和輸出變量(Output)對話框,對話框中的變量名即可采用默認(rèn)的,也可根據(jù)需要更名。狀態(tài)變量(States)和終值狀態(tài)變量(Finalstate)對話框為任選。102當(dāng)前102頁,總共206頁。例6-5對圖6-39所示的模型框圖進(jìn)行仿真。`圖6-39103當(dāng)前103頁,總共206頁。選擇SimulationConfigurationParameters命令,打開仿真參數(shù)控制面板,在圖6-31所示的求解器選項(Solveroptions)頁面,把終止時間(Stoptime)欄中的內(nèi)容改為20,其余參數(shù)采用默認(rèn)值;在圖6-32所示的數(shù)據(jù)輸入/輸出(DataImport/Export)頁面,把時間變量(Time)和輸出變量(Output)對話框中的變量改為t和y,其余參數(shù)采用默認(rèn)值,按【OK】鍵返回。選擇SimulationStart命令開始仿真,等聽到一聲嘟后仿真便結(jié)束,此時可返到MATLAB工作窗口,運(yùn)行命令>>plot(t,y)104當(dāng)前104頁,總共206頁。便可得到圖6-40所示的輸出響應(yīng)曲線。105當(dāng)前105頁,總共206頁。(3)利用把數(shù)據(jù)傳送到工作空間模塊(ToWorkspace)得到輸出結(jié)果利用ToWorkspace模塊向MATLAB工作空間傳送數(shù)據(jù)時,應(yīng)該為其指定一個變量名,它是通過用鼠標(biāo)左鍵雙擊該模塊的圖標(biāo)來完成的,這將給出如圖6-41所示的對話框。用戶可以在Variablename(變量名)引導(dǎo)的編輯框中輸入相應(yīng)的變量名。106當(dāng)前106頁,總共206頁。例6-6對圖6-42所示系統(tǒng)模型進(jìn)行仿真圖6-42107當(dāng)前107頁,總共206頁。MATLAB工作窗口,運(yùn)行命令:>>plot(t,y)便可得到如圖6-43所示的圖形。108當(dāng)前108頁,總共206頁。6.3.3利用MATLAB的指令操作方式進(jìn)行仿真除了利用Simulink菜單對系統(tǒng)進(jìn)行仿真外,還可以在MATLAB工作窗口中,利用命令函數(shù)sim()或ode45()對系統(tǒng)進(jìn)行仿真,MATLAB命令行方式對于處理成批的仿真比較有用。109當(dāng)前109頁,總共206頁。1.利用函數(shù)sim()進(jìn)行仿真當(dāng)系統(tǒng)的數(shù)學(xué)模型以系統(tǒng)結(jié)構(gòu)圖描述時,在MATLAB的工作窗口中,通常利用函數(shù)sim()對系統(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當(dāng)前110頁,總共206頁。例6-8對例6-5中圖6-39所示系統(tǒng)進(jìn)行初始狀態(tài)不同設(shè)置的仿真。解①對于圖6-39所示的系統(tǒng)模型ex6_5,在數(shù)據(jù)輸入/輸出(DataImport/Export)頁面中,選定從工作空間輸入?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當(dāng)前111頁,總共206頁。對圖6-42所示框圖模型,采用以上命令將不可能獲得輸出響應(yīng),因為ToWorkspace模塊不同于輸出接口模塊(out1),因由這條指令運(yùn)行所得的輸出y將是空“[]”。圖6-45112當(dāng)前112頁,總共206頁。2.利用函數(shù)ode45()進(jìn)行仿真當(dāng)系統(tǒng)的數(shù)學(xué)模型以微分方程給出時,通常在MATLAB的工作窗口中,利用函數(shù)ode45()對系統(tǒng)進(jìn)行仿真求解運(yùn)算,函數(shù)ode45()的調(diào)用格式為[t,x]=ode45(fun,tspan,x0,tol)其中,fun為函數(shù)名,為用來描述系統(tǒng)狀態(tài)方程的M函數(shù)文件;tspan為仿真時間區(qū)間,當(dāng)其為標(biāo)量tf時,默認(rèn)仿真時間區(qū)間為[0,tf],當(dāng)其為二元行向量[t0,tf]時,仿真時間區(qū)間為[t0,tf];x0為狀態(tài)方程的初始向量值;tol用來指定精度,其默認(rèn)值為10-3;返回變量t為時間,x為狀態(tài)方程的解向量。113當(dāng)前113頁,總共206頁。另外,利用函數(shù)ode45(),ode23(),ode113(),ode15s(),ode23s(),ode23t()和ode23tb()也可對系統(tǒng)進(jìn)行同樣的仿真,他們的調(diào)用格式與函數(shù)ode45()完全相同。這些函數(shù)的使用范圍與Simulink求解器選項(Solveroptions)中變步長仿真算法相對應(yīng)。114當(dāng)前114頁,總共206頁。例6-9求微分方程在其初始條件下的解。解首先根據(jù)以上微分方程編寫一個函數(shù)ex6_9.m。%ex6_9.mfunctiondx=ex6_9(t,x)dx=[x(2);(1-x(1)^2)*x(2)-x(1)];再利用以下MATLAB命令,即可求出微分方程在時間區(qū)間[0,30]上的解曲線(見圖1-10)。>>[t,x]=ode45('ex6_9',[0,30],[1;0]);>>plot(t,x(:,1),t,x(:,2));xlabel('t');ylabel('x(t)')115當(dāng)前115頁,總共206頁。6.3.4模塊參數(shù)的動態(tài)交換1.在MATLAB工作空間中定義變量框圖模塊在仿真時所需的參數(shù)和初始變量取自模塊對話框,而模塊對話框中填寫的MATLAB變量以及表達(dá)式又來自MATLAB工作空間,不管仿真以何種方式進(jìn)行,總可以在MATLAB工作空間中為Simulink模塊預(yù)定義參數(shù)和初始變量,也可以在指令窗口或命令文件中交互地進(jìn)行變量的數(shù)值傳遞。116當(dāng)前116頁,總共206頁。例6-10在MATLAB空間中預(yù)定義框圖模塊參數(shù)。考慮一個單輸入雙輸出的狀態(tài)空間表達(dá)式其中矩陣A,b,C,d和初始條件向量x0分別為117當(dāng)前117頁,總共206頁。解(1)構(gòu)造如圖6-46所示的框圖系統(tǒng)并將其保存為ex6_10文件;(2)輸入接口(In1)和輸出接口(Out1)分別復(fù)制于信號源與接收模塊庫,并將兩個輸出接口模塊的標(biāo)題依次改為y1和y2。圖6-46118當(dāng)前118頁,總共206頁。(3)Demux模塊(分離模塊)復(fù)制于信號與系統(tǒng)模塊庫(Signals&Systems),它將一個向量信號分解為若干個輸出信號,輸出信號的數(shù)目由Demux模塊參數(shù)對話框中的輸出數(shù)目(Numberofoutputs)欄中的內(nèi)容確定。(4)狀態(tài)空間表達(dá)式模塊(State-Space)復(fù)制于連續(xù)系統(tǒng)模塊庫(Continuous)中,用鼠標(biāo)打開狀態(tài)空間模塊的參數(shù)對話框,并將A,b,C,d分別填入?yún)?shù)對話框中的A,B,C,D四個矩陣參數(shù)輸入欄中,而在初始條件(InitialConditions)欄中直接填入初始向量參數(shù)[1;1;1],如圖6-47所示。119當(dāng)前119頁,總共206頁。圖6-47120當(dāng)前120頁,總共206頁。(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當(dāng)前121頁,總共206頁。在本例中如把矩陣A,b,C,d的值直接填入狀態(tài)空間參數(shù)對話框中相應(yīng)的欄目中,則以上前兩行的指令可省略。當(dāng)然初始向量x0的值也可利用以下MATLAB命令給定。>>x0

=[1;1;1];122當(dāng)前122頁,總共206頁。2.使用全局變量實現(xiàn)數(shù)據(jù)交換在參數(shù)優(yōu)化、靈敏度等計算中,常需要實現(xiàn)幾個文件之間的數(shù)據(jù)交換,那么采用前面所說的預(yù)定義方式是不可行的,這時,可以采用全局變量來實現(xiàn)數(shù)據(jù)傳遞,定義全局變量的命令格式如下globalabc在此,參數(shù)a,b,c被定義為全局變量。使用全局變量要注意,全局變量應(yīng)在使用它們的所有命令文件、函數(shù)文件、工作內(nèi)存中加以定義才能被共享。即當(dāng)其中某一個文件使全局變量數(shù)值發(fā)生改變后,新值馬上傳送到其它文件,當(dāng)然也包括參與運(yùn)行的框圖模型。123當(dāng)前123頁,總共206頁。3.使用set_param()指令傳送數(shù)據(jù)指令set_param()是專門設(shè)計來更改Simulink模塊參數(shù)的。事實上,模塊對話框中的參數(shù)設(shè)置都是靠這個指令來實現(xiàn)的,該函數(shù)的調(diào)用格式為

set_param(Name,Parameter1,Value1,Parameter2,Value2,…,)其中Name是系統(tǒng)/模塊名,Parameter是待修改的參數(shù)名,Value是新指定值。124當(dāng)前124頁,總共206頁。例6-11對圖6-49所示系統(tǒng)模型進(jìn)行仿真

。圖6-49125當(dāng)前125頁,總共206頁。解(1)構(gòu)造圖6-49所示的簡單系統(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當(dāng)前126頁,總共206頁。圖6-50127當(dāng)前127頁,總共206頁。6.3.5Simulink調(diào)試器由用戶建立的系統(tǒng)模型,有時可能會出現(xiàn)這樣或那樣的問題,為了便于用戶查找問題,Simulink設(shè)置了動態(tài)仿真調(diào)試器(SimulinkDebugger)。在利用Simulink調(diào)試器調(diào)試時,系統(tǒng)能實時地顯示模型的狀態(tài)和模塊的數(shù)據(jù)傳輸。用戶可以一步一步地進(jìn)行仿真,以便發(fā)現(xiàn)系統(tǒng)模型問題所在。Simulink調(diào)試器(SimulinkDebugger)的啟動,可采用以下兩種方法:(1)在模型窗口的工具條中,單擊SimulinkDebugger的快捷啟動按鈕“”;(2)在模型窗口的功能菜單中,執(zhí)行命令ToolsSimulinkDebugger。128當(dāng)前128頁,總共206頁。6.4離散系統(tǒng)的仿真Simulink具有仿真離散(采樣數(shù)據(jù))系統(tǒng)的能力。模型可以是多采樣率的,也就是說,它們可以包含有以不同的速率采樣的模塊。模型還可以是既包含有離散模塊,又包含有連續(xù)模塊的混合模型。在離散模塊中均包含一個采樣時間(Sampletime)參數(shù)設(shè)定欄,見圖6-52所示離散傳遞函數(shù)模塊(DiscreteTransferFcn)的參數(shù)設(shè)置對話框。圖6-52129當(dāng)前129頁,總共206頁。采樣時間參數(shù)設(shè)定離散模塊狀態(tài)改變的采樣時間,通常,采樣時間被設(shè)成標(biāo)量變量,然而,它也可以通過在該參數(shù)域中指定一個包含有兩個元素的向量來指定一個時間偏移量。例如若僅在采樣時間(Sampletime)參數(shù)設(shè)定欄填寫一個標(biāo)量參數(shù),那么它就是采樣時間。若在此欄中填寫二元向量[Ts,offset],那么該量的第一個元素指定采樣時間Ts,第二個元素設(shè)置偏移時間offset,實際采樣時間為t=n*Ts+offset。在此,n為整數(shù),offset是絕對值小于采樣時間Ts的實數(shù)。若要求模型必須在某時刻更新,或要求一些離散模塊必須比另外一些離散模塊更新得早一些或晚一些時,就必須借助offset的設(shè)置來實現(xiàn)。130當(dāng)前130頁,總共206頁。1.純離散系統(tǒng)的仿真純離散系統(tǒng)可使用任何一種積分算法進(jìn)行仿真,而不會影響輸出結(jié)果。若只要采樣瞬間的輸出數(shù)據(jù),那么應(yīng)把最小步長設(shè)置得比最大的采樣間隔大例6-12設(shè)人口變化的非線性離散系統(tǒng)的差分方程為其中k表示年份,p(k)為某一年的人口數(shù)目,p(k-1)為上一年的人口數(shù)目。如果設(shè)人口初始值p(0)=200000,人口繁殖速率r=1.05,新增資源所能滿足的個體數(shù)目N=1000000,要求建立此人口動態(tài)變化系統(tǒng)的系統(tǒng)模型,并分析人口數(shù)目在0至100年之間的變化趨勢。131當(dāng)前131頁,總共206頁。圖6-53132當(dāng)前132頁,總共206頁。圖6-54133當(dāng)前133頁,總共206頁。2.離散—連續(xù)混合系統(tǒng)仿真由于Simulink的每個離散模塊都有一個內(nèi)置的輸入采樣器和輸出零階保持器,故連續(xù)模塊和離散模塊混用時,它們之間可直接連接。在仿真時,離散模塊的輸入輸出每個采樣周期更新一次,即在采樣間隔內(nèi)它的輸入輸出保持不變;而連續(xù)模塊的輸入輸出每個計算步長更新一次。仿真算法可以采用前面介紹過的任何一種。134當(dāng)前134頁,總共206頁。3.多頻采樣系統(tǒng)的仿真多頻采樣系統(tǒng)包含有不同采樣速率的離散模塊,在Simulink中,多頻采樣系統(tǒng)和多頻采樣-連續(xù)混合系統(tǒng)的建模與仿真都可以進(jìn)行。例6-13對圖6-55所示雙速率采樣系統(tǒng)進(jìn)行仿真。圖6-55135當(dāng)前135頁,總共206頁。解(1)離散傳遞函數(shù)模塊復(fù)制于離散系統(tǒng)模塊庫(Discrete)中,設(shè)兩個離散傳遞函數(shù)模塊的采樣時間和偏離時間分別為[1,0.1]和[0.7,0],并把兩個離散模塊的標(biāo)題分別改為“Tf=1,offset=0.1”和“Tf=0.7,offset=0”,如圖6-55所示;(2)把階躍函數(shù)的階躍時刻設(shè)置為0;(3)Format|Sempletimecolor命令可以用顏色顯示出兩個模塊采樣時間的不同;(4)運(yùn)行以下指令,可得圖6-61所示曲線。>>[t,x,y]=sim(‘ex6_13’,3);>>stairs(t,y)>>legend(‘y1’,‘y2’)136當(dāng)前136頁,總共206頁。

6.5仿真系統(tǒng)的線性化模型在一般的非線性系統(tǒng)分析中,常需要在平衡點(diǎn)處求系統(tǒng)的線性化模型,同樣利用Simulink提供的基本函數(shù),也可對非線性系統(tǒng)進(jìn)行線性化處理。137當(dāng)前137頁,總共206頁。1.平衡點(diǎn)的確定利用Simulink提供的trim()函數(shù)可根據(jù)系統(tǒng)的模型文件來求出系統(tǒng)的平衡點(diǎn),但在繪制Simulink模型時注意首先應(yīng)該將系統(tǒng)的輸入和輸出用輸入/輸出接口模塊(In1/Out1)來表示。該函數(shù)的調(diào)用格式如下[x,u,y,dx]=trim(‘model’,x0,u0,y0,ix,iu,iy)138當(dāng)前138頁,總共206頁。由于該函數(shù)是通過極小化的算法來求出系統(tǒng)的平衡點(diǎn),所以有時不能保證狀態(tài)向量的變化率等于零。也即除非問題本身的最小值唯一,否則不能保證所求的平衡點(diǎn)是最佳的,因此,若想尋找全局最佳平衡點(diǎn),必須多試幾組初始值。當(dāng)系統(tǒng)有不連續(xù)狀態(tài)時,trim()函數(shù)一般不適用,而trim4()函數(shù)也許能給出較好的結(jié)果。對于以上函數(shù)的調(diào)用,也可寫成如下的格式[x,u,y,dx]=trim(‘model’)這時會在默認(rèn)的輸入與輸出下求出系統(tǒng)的平衡點(diǎn)來,這樣的方法尤其對

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論