基于MATLABSimulink的建模與仿真.ppt_第1頁(yè)
基于MATLABSimulink的建模與仿真.ppt_第2頁(yè)
基于MATLABSimulink的建模與仿真.ppt_第3頁(yè)
基于MATLABSimulink的建模與仿真.ppt_第4頁(yè)
基于MATLABSimulink的建模與仿真.ppt_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)仿真技術(shù) 第五講基于MATLAB Simulink的建模與仿真 MATLAB軟件簡(jiǎn)介MATLAB仿真實(shí)例什么是Simulink Simulink模塊庫(kù)簡(jiǎn)介Simulink模型的建立方法Simulink建模與仿真舉例小結(jié) MATLAB軟件簡(jiǎn)介 MATLAB是一門計(jì)算機(jī)編程語(yǔ)言 是一種科學(xué)計(jì)算軟件 取名來源于MatrixLaboratory 本意是專門以矩陣的方式來處理計(jì)算機(jī)數(shù)據(jù) MATLAB將高性能的數(shù)值計(jì)算和可視化集成在一起 并提供了大量的內(nèi)置函數(shù) 被廣泛應(yīng)用在科學(xué)計(jì)算 信息處理 控制系統(tǒng)等領(lǐng)域的分析 仿真和設(shè)計(jì)工作 MATLAB的功能包括 數(shù)值分析 數(shù)值和符號(hào)計(jì)算 工程和科學(xué)繪圖 通訊和控制系統(tǒng)的設(shè)計(jì)與仿真 數(shù)字圖像與信號(hào)處理 財(cái)務(wù)與金融工程等 MATLAB軟件簡(jiǎn)介 MATLAB軟件的典型應(yīng)用領(lǐng)域 科學(xué)研究 工程技術(shù)應(yīng)用研究CAI ComputerAidedInstruct 數(shù)學(xué)實(shí)驗(yàn) MathematicalExperiment 數(shù)學(xué)建模 MathematicalModeling clear刪除工作空間中的所有變量 系統(tǒng)不會(huì)要求你確認(rèn)這個(gè)命令 所有變量都被清除且不能再恢復(fù) 對(duì)于簡(jiǎn)單的問題 在MATLAB提示符下輸入命令是快速有效的 然而當(dāng)命令數(shù)增加或希望改變一個(gè)或幾個(gè)變量的值 然后重新執(zhí)行一系列命令時(shí) 在MATLAB提示符處鍵入命令就非常麻煩了 對(duì)這個(gè)問題MATLAB提供了一種邏輯解決方案 它允許用戶把MATLAB命令放在一個(gè)簡(jiǎn)單的文本文件中 然后告訴MATLAB打開文件并執(zhí)行命令 如同在MATLAB提示符處鍵入命令一樣 這些文件被稱為腳本文件或簡(jiǎn)單地稱為M文件 M文件是指腳本文件以擴(kuò)展名 m結(jié)尾 MATLAB軟件簡(jiǎn)介 MATLAB提供三種控制流結(jié)構(gòu)的語(yǔ)句 For end循環(huán)While end循環(huán)If Else End結(jié)構(gòu) MATLAB軟件簡(jiǎn)介 For end循環(huán)的基本作用是以固定的和預(yù)定的次數(shù)重復(fù)一組特定的命令 一般形式是 forn 循環(huán)控制量的范圍 commands end MATLAB軟件簡(jiǎn)介 說明 在for和end語(yǔ)句之間的命令串 commands 按矩陣 array 中的每一列執(zhí)行一次 在每一次迭代中 n被指定為循環(huán)控制量的范圍內(nèi)的下一列 例如 forn 1 10 x n sin n pi 10 end這個(gè)循環(huán)體的作用是 對(duì)n等于1到10 求所有語(yǔ)句的值 直到下一個(gè)end語(yǔ)句 第1次通過For循環(huán)n 1 第2次 n 2 如此繼續(xù) 直到n 10 在n 10以后 For循環(huán)結(jié)束 然后求end語(yǔ)句后面的任何命令值 For循環(huán)不能用For循環(huán)內(nèi)重新賦值循環(huán)變量n來終止 在For循環(huán)中循環(huán)控制量的范圍可以是任何有效的MATLAB矩陣 比如data 119456 716 15 forn datax n 1 n 2 end這時(shí)程序的輸出有四個(gè)數(shù)值 分別是矩陣data的兩列相減的結(jié)果x 4x 7x 46x 1 For循環(huán)可按需要嵌套 即For循環(huán)體內(nèi)的命令組中可以出現(xiàn)另一個(gè)For循環(huán)體 這體現(xiàn)了For循環(huán)體也是命令組 比如forn 1 5form 5 1 1A n m n 2 m 2 Endend While end循環(huán)以不定的次數(shù)求一組語(yǔ)句的值 Whil end循環(huán)的一般形式是 whileexpression 控制表達(dá)式 commands end只要在控制表達(dá)式 expression 里的所有元素為真 就執(zhí)行While和end語(yǔ)句之間的命令串 commands MATLAB軟件簡(jiǎn)介 說明 控制表達(dá)式的值未必是一個(gè)標(biāo)量值 矩陣值也同樣有效 在矩陣情況下 所得到矩陣的所有元素必須都為真 具體示例 num 0 EPS 1 while 1 EPS 1EPS EPS 2 num num 1 end這段MATLAB代碼最后在num 53時(shí)停止 IF ELSE END結(jié)構(gòu)提供有條件地執(zhí)行一些特定的命令序列的方式 最簡(jiǎn)單的IF ELSE END結(jié)構(gòu)是 ifexpression 條件控制表達(dá)式 commands end如果在條件控制表達(dá)式 expression 中的所有元素為真 非零 那么就執(zhí)行if和end語(yǔ)句之間的命令串 commands 在表達(dá)式包含有幾個(gè)邏輯表達(dá)式時(shí) 即使前一個(gè)表達(dá)式?jīng)Q定了表達(dá)式的最后邏輯狀態(tài) 仍要計(jì)算所有的子表達(dá)式 MATLAB軟件簡(jiǎn)介 一般的有兩個(gè)選擇的IF ELSE END結(jié)構(gòu)是 ifexpression 條件控制表達(dá)式 commandsevaluatedifTrueelsecommandsevaluatedifTrueend在這里 如果條件控制表達(dá)式 expression 為真 則執(zhí)行第1組命令 如果表達(dá)式是假 則執(zhí)行第2組命令 有三個(gè)或更多選擇時(shí)的IF ELSE END結(jié)構(gòu)的形式 ifexpression1commandsevaluated ifexpression1isTrueelseifexpression2commandsevaluated ifexpression2isTrueelseifexpression3commandsevaluated ifexpression3isTrueelseif elsecommandsevaluatedifonotherexpressionisTrueend最后這種有三個(gè)以上選擇的IF ELSE END形式 依次檢查各表達(dá)式 只執(zhí)行第一個(gè)表達(dá)式為真的命令串 接下來的關(guān)系表達(dá)式不檢驗(yàn) 跳過其余的IF ELSE END結(jié)構(gòu) 最后的else命令可有可無 break是一種特殊的控制結(jié)構(gòu) 基本作用是無條件跳出臨近的循環(huán)體 即結(jié)束For循環(huán)和While循環(huán)的執(zhí)行 MATLAB軟件簡(jiǎn)介 學(xué)習(xí)和使用常用軟件MATLAB的一些基本語(yǔ)句和功能來驗(yàn)證或觀察函數(shù)的變化 實(shí)現(xiàn)函數(shù)的可視化計(jì)算 MATLAB軟件簡(jiǎn)介 MATLAB仿真舉例 設(shè)系統(tǒng)方程 y 0 1 試用Euler法求其數(shù)值解 取步長(zhǎng)h 0 1 0 t 1 試編寫matlab程序求其數(shù)值解 設(shè)系統(tǒng)方程 y 0 1 試用Euler法求其數(shù)值解 取步長(zhǎng)h 0 1 0 t 1 試編寫matlab程序求其數(shù)值解 Euler迭代公式 yn 1 yn 0 1yn2 MATLAB仿真舉例 Euler迭代公式 yn 1 yn 0 1yn2 y 0 1 取步長(zhǎng)h 0 1 0 t 1 MATLAB仿真舉例 Euler迭代公式 yn 1 yn 0 1yn2 y 0 1 t 0 0 1 1 length size t 1 y zeros size t y 1 1 forn 1 1 length 1y n 1 y n 0 1 y n 2endplot t y 取步長(zhǎng)h 0 1 0 t 1 MATLAB仿真舉例 運(yùn)行結(jié)果 y 1 00000 90000 81900 75190 69540 64700 60520 56850 53620 50750 4817 MATLAB仿真舉例 作業(yè) 設(shè)系統(tǒng)方程 y 0 1 試用二階龍格庫(kù)塔法求其數(shù)值解 取步長(zhǎng)h 0 1 0 t 1 試編寫matlab程序求其數(shù)值解 二階龍格庫(kù)塔法迭代公式 請(qǐng)?jiān)诘诙螌?shí)驗(yàn)時(shí)上機(jī)驗(yàn)證結(jié)果 Simulink是MATLAB提供的實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模和仿真的一個(gè)軟件包 它讓用戶把精力從編程轉(zhuǎn)向模型的構(gòu)造 Simulink一個(gè)很大的優(yōu)點(diǎn)是為用戶省去了許多重復(fù)的代碼編寫工作 Simulink支持線性 非線性系統(tǒng) 連續(xù)系統(tǒng) 離散系統(tǒng) 或者混合系統(tǒng)的建模與仿真 同時(shí)它也支持具有不同部分擁有不同采樣率的多種采樣速度的系統(tǒng)仿真 Simulink的啟動(dòng)方式有兩種 1 在工具欄點(diǎn)擊Simulink圖標(biāo) 2 在CommandWindow中輸入 Simulink 什么是Simulink Simulink模塊庫(kù)簡(jiǎn)介 SIMILINK模塊庫(kù)按功能進(jìn)行分類 連續(xù)模塊 離散模塊 查表模塊 數(shù)學(xué)模塊 非線性模塊 信號(hào)通路模塊 接收器模塊 輸入源模塊 其他常用方塊組及工具箱 特別模塊 Simulink模塊庫(kù)簡(jiǎn)介 Derivative 輸入信號(hào)微分Integrator 積分器State Space 線性狀態(tài)空間系統(tǒng)模型Transfer Fcn 線性傳遞函數(shù)模型Zero Pole 以零極點(diǎn)表示的傳遞函數(shù)模型Memory 存儲(chǔ)上一時(shí)刻的狀態(tài)值TransportDelay 輸入信號(hào)延時(shí)一個(gè)給定時(shí)間再輸出VariableTransportDelay 輸入信號(hào)延時(shí)一個(gè)可變時(shí)間再輸出 連續(xù)模塊 Continuous Zero OrderHold 零階采樣保持器UnitDelay 一個(gè)采樣周期的延時(shí)Discrete timeIntegrator 離散時(shí)間積分器DiscreteState Space 離散狀態(tài)空間系統(tǒng)模型DiscreteFilter 離散濾波器DiscreteTransfer Fcn 離散傳遞函數(shù)模型DiscreteZero Pole 以零極點(diǎn)表示的離散傳遞函數(shù)模型First OrderHold 一階采樣保持器 離散模塊 Discrete Look UpTable 建立輸入信號(hào)的查詢表 線性峰值匹配 Look UpTable 2 D 建立兩個(gè)輸入信號(hào)的查詢表 線性峰值匹配 Fcn 用戶自定義的函數(shù) 表達(dá)式 MATLABFcn 利用MATLAB的現(xiàn)有函數(shù)S Function 調(diào)用自編的S函數(shù)的程序 Look upTable 查表模塊 User definedfunction 用戶定義函數(shù)模塊 Sum 加減運(yùn)算Product 模塊輸入的乘除運(yùn)算DotProduct 點(diǎn)乘運(yùn)算Gain 比例運(yùn)算MathFunction 包括指數(shù)函數(shù) 對(duì)數(shù)函數(shù) 求平方等常用數(shù)學(xué)函數(shù)TrigonometricFunction 三角函數(shù) 包括正弦 余弦 正切等MinMax 最小值或最大值運(yùn)算 Mathoperations 數(shù)學(xué)模塊 Abs 取絕對(duì)值Sign 給出符號(hào)函數(shù)RoundingFunction圓整函數(shù)CombinatorialLogic 建立真值表LogicalOperator 邏輯運(yùn)算RelationalOperator 關(guān)系運(yùn)算ComplextoMagnitude Angle 由復(fù)數(shù)輸入轉(zhuǎn)為幅值和相角輸出ComplextoReal Imag 由復(fù)數(shù)輸入轉(zhuǎn)為實(shí)部和虛部輸出Magnitude AngletoComplex 由幅值和相角輸入合成復(fù)數(shù)輸出Real ImagtoComplex 由實(shí)部和虛部輸入合成復(fù)數(shù)輸出 RateLimit 變化速率限制Saturation 飽和輸出 讓輸出超過某一值時(shí)能夠飽和 Quantizer 離散化Blacklash 滯環(huán)或間隙DeadZone 死區(qū)Relay 滯環(huán)繼電器Switch 切換開關(guān)ManualSwitch 手動(dòng)選擇開關(guān)Coulomb ViscousFriction庫(kù)侖和粘滯摩擦 Discontinuous 非線性模塊 Mux 將多個(gè)單一輸入轉(zhuǎn)化為一個(gè)復(fù)合輸出 Demux 將一個(gè)復(fù)合輸入轉(zhuǎn)化為多個(gè)單一輸出 SignalRouting 信號(hào)通路模塊 Scope 示波器 顯示信號(hào)曲線 XYGraph 顯示二維X Y圖形 Out1 輸出端口Display 顯示數(shù)值ToWorkspace 將輸出寫入MATLAB的工作空間 ToFile mat 將輸出寫入數(shù)據(jù)文件 Terminator 終止一個(gè)未連接的輸出端口 Sinks 接收器模塊 In1 輸入端口Constant 常數(shù)信號(hào)SignalGenerator 信號(hào)發(fā)生器 產(chǎn)生任意波形Ramp 斜坡信號(hào)SineWave 正弦波信號(hào)Step 階躍波信號(hào)RepeatingSequence 重復(fù)信號(hào)PulseGenerator 脈沖發(fā)生器Ground 擱置一個(gè)未連接的輸入端口Clock 時(shí)鐘信號(hào)FromWorkspace 來自MATLAB的工作空間 FromFile mat 來自數(shù)據(jù)文件 Sources 輸入源模塊 其他常用方塊組及工具箱Blocksets Toolboxes Simulinkextras 特別模塊 2 SimulinkExtras Simulink附加庫(kù) 3 CommunicationsBlockset 通信模塊集 4 ControlSystemToolbox 控制系統(tǒng)工具箱 5 DSPBlockset 數(shù)字信號(hào)處理模塊集 6 Dials GaugesBlockset 面板和儀表模塊集 7 Fixed PointBlockset 定點(diǎn)模塊集 8 FuzzyLogicToolbox 模糊邏輯工具箱 9 MPCBlockset MPC模塊集 10 NCDBlockset 非線性控制設(shè)計(jì)模塊集 11 MotorolaDSPBlockset DSP模塊集 12 NeuralNetworkBlockset 神經(jīng)網(wǎng)絡(luò)模塊集 13 PowerSystemBlockset 電力系統(tǒng)模塊集 SIMULINK的一些其它工具箱 14 Real TimeWindowsTarget 實(shí)時(shí)窗口目標(biāo)庫(kù) 15 Real TimeWorkshop 實(shí)時(shí)工作空間庫(kù) 16 SystemIDBlocks 系統(tǒng)辨識(shí)模塊集 17 Stateflow 有限狀態(tài)流程庫(kù) 18 AerospaceBlockset 航空模塊集 23 DataAcquistionToolbox 數(shù)據(jù)采集工具箱 20 SignalProcessingBlocks 信號(hào)處理工具箱 21 ImageAcquistionToolbox 圖形采集工具箱 22 RFBlockset 射頻工具箱 23 VideoandImageProcessingBlocks圖像處理工具箱 新增工具箱 機(jī)構(gòu)仿真工具箱液壓驅(qū)動(dòng)工具箱 例1 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 例1 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 忽略摩擦力 運(yùn)動(dòng)微分方程為 例1 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 在matlab simulink中搭建仿真模型 加入兩個(gè)積分模塊 第一個(gè)模塊用來計(jì)算速度 第二個(gè)模塊用來計(jì)算位移 可用模塊圖表示為 例1 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 假定F sin t 為正弦激勵(lì) m 0 5 求0 10s區(qū)間內(nèi)的系統(tǒng)位移響應(yīng)曲線 仿真結(jié)果如下圖 例1 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 若要求同時(shí)輸出位移和速度 則模型框圖為 例1 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 仿真結(jié)果如下圖 在模型窗口中 選中模塊 則其4個(gè)角會(huì)出現(xiàn)黑色標(biāo)記 此時(shí)可以對(duì)模塊進(jìn)行以下的基本操作 移動(dòng) 選中模塊 按住鼠標(biāo)左鍵將其拖曳到所需的位置即可 若要脫離線而移動(dòng) 可按住shift鍵 再進(jìn)行拖曳 復(fù)制 選中模塊 然后按住鼠標(biāo)右鍵進(jìn)行拖曳即可復(fù)制同樣的一個(gè)功能模塊 刪除 選中模塊 按Delete鍵即可 若要?jiǎng)h除多個(gè)模塊 可以同時(shí)按住Shift鍵 再用鼠標(biāo)選中多個(gè)模塊 按Delete鍵即可 也可以用鼠標(biāo)選取某區(qū)域 再按Delete鍵就可以把該區(qū)域中的所有模塊和線等全部刪除 轉(zhuǎn)向 為了能夠順序連接功能模塊的輸入和輸出端 功能模塊有時(shí)需要轉(zhuǎn)向 在菜單Format FlipBlock Ctrl I 旋轉(zhuǎn)180度 Format RotateBlock Ctrl R 順時(shí)針旋轉(zhuǎn)90度 模塊的處理 Simulink模型的建立方法 改變大小 選中模塊 對(duì)鼠標(biāo)移到角上出現(xiàn) 進(jìn)行拖曳即可 模塊命名 先用鼠標(biāo)在需要更改的名稱上單擊一下 然后直接更改即可 名稱在功能模塊上的位置也可以變換180度 可以用Format FlipName來實(shí)現(xiàn) 也可以直接通過鼠標(biāo)進(jìn)行拖曳 HideName可以隱藏模塊名稱 顏色設(shè)定 Format ForegroundColor改變模塊的前景顏色 BackgroundColor改變模塊的背景顏色 而模型窗口的顏色可以通過ScreenColor來改變 參數(shù)設(shè)定 用鼠標(biāo)雙擊模塊 就可以進(jìn)入模塊的參數(shù)設(shè)定窗口 從而對(duì)模塊進(jìn)行參數(shù)設(shè)定 或點(diǎn)擊鼠標(biāo)右鍵 選擇Blockparameters參數(shù)設(shè)定窗口包含了該模塊的基本功能幫助 通過對(duì)模塊的參數(shù)設(shè)定 就可以獲得需要的功能模塊 模塊的處理 Simulink模型的建立方法 SIMULINK模型的構(gòu)建是通過用線將各種功能模塊進(jìn)行連接而構(gòu)成的 用鼠標(biāo)可以在功能模塊的輸入與輸出端之間直接連線 線的分支 按住鼠標(biāo)右鍵 在需要分支的地方拉出即可 或者按住Ctrl鍵 并在要建立分支的地方用鼠標(biāo)拉出即可 或從輸入端拉線到分支點(diǎn) 模塊的連接 Simulink模型的建立方法 屬性設(shè)定 選中模塊 打開Edit BlockProperties可以對(duì)模塊進(jìn)行屬性設(shè)定 或鼠標(biāo)右鍵選擇BlockProperties屬性包括Description描述屬性 對(duì)模塊的說明文本Priority優(yōu)先級(jí)屬性 模塊執(zhí)行順序Tag標(biāo)簽屬性 Openfunction屬性 通過它指定一個(gè)函數(shù)名 則當(dāng)該模塊被雙擊之后 Simulink就會(huì)調(diào)用該函數(shù)執(zhí)行 這種函數(shù)在MATLAB中稱為回調(diào)函數(shù)Attributesformatstring屬性 屬性的改變 Simulink模型的建立方法 Simulink模型的建立方法 取信號(hào)源Sources Step 取增益Math Gain 取傳函Continuous TransferFcn 取相加點(diǎn)Math Sum 取顯示Sinks Scope 連接各元件 選擇仿真參數(shù) 如停止時(shí)間等Simulation Simulationparameters 開始仿真Simulation Start 選擇start 或這里開始仿真 點(diǎn)擊右鍵 調(diào)整顯示參數(shù) 仿真結(jié)果顯示 例3 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 若要求同時(shí)輸出位移 速度和加速度 則模型框圖為 Simulink建模與仿真舉例 例3 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 仿真結(jié)果如下圖 例4 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 例4 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 運(yùn)動(dòng)微分方程為 動(dòng)力方程變換為 例4 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 在matlab simulink中搭建仿真模型 例4 考慮下圖所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng) 位移曲線仿真結(jié)果如下圖 同時(shí)查看位移 速度 加速度仿真模型框圖 同時(shí)查看位移 速度 加速度10s內(nèi)仿真結(jié)果 若要同時(shí)查看位移 速度 加速度20s內(nèi)仿真結(jié)果 該如何設(shè)置參數(shù) 第1步 設(shè)置仿真參數(shù)和選擇解法器選擇Simulation菜單下的Parameters命令 就會(huì)彈出一個(gè)仿真參數(shù)對(duì)話框 它主要用三個(gè)頁(yè)面來管理仿真的參數(shù) Solver頁(yè) 它允許用戶設(shè)置仿真的開始和結(jié)束時(shí)間 選擇解法器 說明解法器參數(shù)及選擇一些輸出選項(xiàng) WorkspaceI O頁(yè) 作用是管理模型從MATLAB工作空間的輸入和對(duì)它的輸出 Diagnostics診斷頁(yè) 允許用戶選擇Simulink在仿真中顯示的警告信息的等級(jí) 構(gòu)建好一個(gè)系統(tǒng)的模型之后 接下來的事情就是運(yùn)行模型 得出仿真結(jié)果 運(yùn)行一個(gè)仿真的完整過程分成三個(gè)步驟 設(shè)置仿真參數(shù) 啟動(dòng)仿真和仿真結(jié)果分析 仿真方法與仿真參數(shù)的選擇 Simulink建模與仿真舉例 Solver頁(yè) Simulationtime仿真時(shí)間 注意這里的時(shí)間是計(jì)算機(jī)仿真中對(duì)時(shí)間的一種表示 比如10秒的仿真時(shí)間 如果采樣步長(zhǎng)定為0 1 則需要執(zhí)行100步 若把步長(zhǎng)減小 則采樣點(diǎn)數(shù)增加 那么實(shí)際的執(zhí)行時(shí)間就會(huì)增加 一般仿真開始時(shí)間設(shè)為0 而結(jié)束時(shí)間視不同的因素而選擇 Solveroption解法選項(xiàng) Type后面的第一個(gè)選項(xiàng)中指定仿真的步長(zhǎng)類型 分Variable step 變步長(zhǎng) 和Fixed step 固定步長(zhǎng) 兩種 變步長(zhǎng)模式解法器有 ode45 ode23 ode113 ode15s ode23s ode23t ode23tb和discrete ode45 缺省值 四 五階龍格 庫(kù)塔法 適用于大多數(shù)連續(xù)或離散系統(tǒng) 但不適用于剛性 stiff 系統(tǒng) 它是單步解法器 也就是 在計(jì)算y tn 時(shí) 它僅需要最近處理時(shí)刻的結(jié)果y tn 1 一般來說 面對(duì)一個(gè)仿真問題最好是首先試試ode45 ode23 二 三階龍格 庫(kù)塔法 它在誤差限要求不高和求解的問題不太難的情況下 可能會(huì)比ode45更有效 也是一個(gè)單步解法器 ode113 是一種階數(shù)可變的解法器 它在誤差容許要求嚴(yán)格的情況下通常比ode45有效 ode113是一種多步解法器 也就是在計(jì)算當(dāng)前時(shí)刻輸出時(shí) 它需要以前多個(gè)時(shí)刻的解 ode15s 是一種基于數(shù)字微分公式的解法器 NDFs 也是一種多步解法器 適用于剛性系統(tǒng) 當(dāng)用戶估計(jì)要解決的問題是比較困難的 或者不能使用ode45 或者即使使用效果也不好 就可以用ode15s 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è)階段的隱式龍格 庫(kù)塔公式 discrtet 當(dāng)Simulink檢查到模型沒有連續(xù)狀態(tài)時(shí)使用它 Simulink建模與仿真舉例 固定步長(zhǎng)模式解法器有 ode5 ode4 ode3 ode2 ode1和discrete ode5 缺省值 是ode45的固定步長(zhǎng)版本 適用于大多數(shù)連續(xù)或離散系統(tǒng) 不適用于剛性系統(tǒng) ode4 四階龍格 庫(kù)塔法 具有一定的計(jì)算精度 ode3 固定步長(zhǎng)的二 三階龍格 庫(kù)塔法 ode2 改進(jìn)的歐拉法 ode1 歐拉法 discrete 是一個(gè)實(shí)現(xiàn)積分的固定步長(zhǎng)解法器 它適合于離散無連續(xù)狀態(tài)的系統(tǒng) Simulink建模與仿真舉例 Fixedstepsize固定步參數(shù) 缺省情況下 步長(zhǎng)自動(dòng)地確定 它由值auto表示Mode 固定步長(zhǎng)模式選擇 Multitasking 多任務(wù)模式 當(dāng)simulink檢測(cè)到模塊間非法的采樣速率轉(zhuǎn)換 它會(huì)給出錯(cuò)誤提示 所謂的非法采樣速率轉(zhuǎn)換指兩個(gè)工作在不同采樣速率的模塊之間的直接連接 在實(shí)時(shí)多任務(wù)系統(tǒng)中 如果任務(wù)之間存在非法采樣速率轉(zhuǎn)換 那么就有可能出現(xiàn)一個(gè)模塊的輸出在另一個(gè)模塊需要時(shí)卻無法利用的情況 通過檢查這種轉(zhuǎn)換 Multitasking將有助于用戶建立一個(gè)符合現(xiàn)實(shí)的多任務(wù)系統(tǒng)的有效模型 使用速率轉(zhuǎn)換模塊可以減少模型中的非法速率轉(zhuǎn)換 Simulink提供了兩個(gè)這樣的模塊 unitdelay模塊和zero orderhold模塊 對(duì)于從慢速率到快速率的非法轉(zhuǎn)換 可以在慢輸出端口和快輸入端口插入一個(gè)單位延時(shí)unitdelay模塊 而對(duì)于快速率到慢速率的轉(zhuǎn)換 則可以插入一個(gè)零階采樣保持器zero orderhold Singletasking 單任務(wù)模式 不檢查模塊間的速率轉(zhuǎn)換 它在建立單任務(wù)系統(tǒng)模型時(shí)非常有用 在這種系統(tǒng)就不存在任務(wù)同步問題 Auto 自動(dòng)模式 simulink會(huì)根據(jù)模型中模塊的采樣速率是否一致 自動(dòng)決定切換到multitasking和singletasking Stepsize步長(zhǎng)參數(shù) 對(duì)于變步長(zhǎng)模式 用戶可以設(shè)置最大的和推薦的初始步長(zhǎng)參數(shù) 缺省情況下 步長(zhǎng)自動(dòng)地確定 它由值auto表示 Maximumstepsize 最大步長(zhǎng)參數(shù) 它決定了解法器能夠使用的最大時(shí)間步長(zhǎng) 它的缺省值為 仿真時(shí)間 50 即整個(gè)仿真過程中至少取50個(gè)取樣點(diǎn) 但這樣的取法對(duì)于仿真時(shí)間較長(zhǎng)的系統(tǒng)則可能帶來取樣點(diǎn)過于稀疏 而使仿真結(jié)果失真 一般建議對(duì)于仿真時(shí)間不超過15s的采用默認(rèn)值即可 對(duì)于超過15s的每秒至少保證5個(gè)采樣點(diǎn) 對(duì)于超過100s的 每秒至少保證3個(gè)采樣點(diǎn) Initialstepsize 初始步長(zhǎng)參數(shù) 一般建議使用 auto 默認(rèn)值即可 Relativetolerance 相對(duì)誤差 它是指誤差相對(duì)于狀態(tài)的值 是一個(gè)百分比 缺省值為1e 3 表示狀態(tài)的計(jì)算值要精確到0 1 Absolutetolerance 絕對(duì)誤差 表示誤差值的門限 或者是說在狀態(tài)值為零的情況下 可以接受的誤差 如果它被設(shè)成了auto 那么simulink為每一個(gè)狀態(tài)設(shè)置初始絕對(duì)誤差為1e 6 Simulink建模與仿真舉例 Outputoptions輸出選項(xiàng) 在變步長(zhǎng)模式下有效 Refineoutput 精細(xì)輸出 其意義是在仿真輸出太稀松時(shí) simulink會(huì)產(chǎn)生額外的精細(xì)輸出 這一點(diǎn)就像插值處理一樣 用戶可以在refinefactor設(shè)置仿真時(shí)間步間插入的輸出點(diǎn)數(shù) 產(chǎn)生更光滑的輸出曲線 改變精細(xì)因子比減小仿真步長(zhǎng)更有效 并且在ode45效果最好 Produceadditionaloutput 它允許用戶直接指定產(chǎn)生輸出的時(shí)間點(diǎn) 一旦選擇了該項(xiàng) 則在它的右邊出現(xiàn)一個(gè)outputtimes編輯框 在這里用戶指定額外的仿真輸出點(diǎn) 它既可以是一個(gè)時(shí)間向量 也可以是表達(dá)式 與精細(xì)因子相比 這個(gè)選項(xiàng)會(huì)改變仿真的步長(zhǎng) Producespecifiedoutputonly 它的意思是讓simulink只在指定的時(shí)間點(diǎn)上產(chǎn)生輸出 為此解法器要調(diào)整仿真步長(zhǎng)以使之和指定的時(shí)間點(diǎn)重合 這個(gè)選項(xiàng)在比較不同的仿真時(shí)可以確保它們?cè)谙嗤臅r(shí)間輸出 WorkspaceI O頁(yè) 此頁(yè)主要用來設(shè)置與MATLAB工作空間交換數(shù)值的有關(guān)選項(xiàng) Loadfromworkspace 從MATLAB工作空間獲取時(shí)間和輸入變量 一般時(shí)間變量定義為t 輸入變量定義為u Initialstate用來定義從MATLAB工作空間獲得的狀態(tài)初始值的變量名 Savetoworkspace 設(shè)置保存到MATLAB工作空間的變量類型和變量名 包括輸出時(shí)間向量 Time 狀態(tài)向量 States 和輸出變量 Output 最終狀態(tài) Finalstate 用來定義將系統(tǒng)穩(wěn)態(tài)值存往工作空間所使用的變量名 Diagnostics頁(yè) 此頁(yè)分成兩個(gè)部分 仿真選項(xiàng)和配置選項(xiàng) 配置選項(xiàng)下的列表框主要列舉了一些常見的事件類型 以及當(dāng)SIMULINK檢查到這些事件時(shí)給予的處理 仿真選項(xiàng)options主要包括是否進(jìn)行一致性檢驗(yàn) 是否禁用過零檢測(cè) 是否禁止復(fù)用緩存 是否進(jìn)行不同版本的SIMULINK的檢驗(yàn)等幾項(xiàng) 除了上述3個(gè)主要的頁(yè)外 仿真參數(shù)設(shè)置窗口還包括real timeworkshop頁(yè) 主要用于與C語(yǔ)言編輯器的交換 通過它可以直接從SIMULINK模型生成代碼并且自動(dòng)建立可以在不同環(huán)境下運(yùn)行的程序 這些環(huán)境包括實(shí)時(shí)系統(tǒng)和單機(jī)仿真 設(shè)置仿真參數(shù)和選擇解法器之后 就可以啟動(dòng)仿真而運(yùn)行 選擇Simulink菜單下的start選項(xiàng)來啟動(dòng)仿真 如果模型中有些參數(shù)沒有定義 則會(huì)出現(xiàn)錯(cuò)誤信息提示框 如果一切設(shè)置無誤 則開始仿真運(yùn)行 結(jié)束時(shí)系統(tǒng)會(huì)發(fā)出一鳴叫聲 啟動(dòng)仿真 Simulink建模與仿真舉例 演示示波器Scope Simulink建模與仿真舉例 SCOPE圖形的鼠標(biāo)右鍵 zoomoutAutoscaleSavecurrentaxessettingAxesproperties工具欄 ScopeparametersGeneralDatahistoryFloatingscope Exm5 2 mdl Simulink建模與仿真舉例 Simulink建模與仿真舉例 Simulink建模與仿

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論