




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、控制工程中的程序設(shè)計(jì)控制工程中的程序設(shè)計(jì)授課教師:馮肖亮E-mail: 河南工業(yè)大學(xué) 電氣工程學(xué)院1Simulink使用與仿真使用與仿真第六章第六章23 6.1 Simulink模塊與模型建立模塊與模型建立6.1.1 Simulink啟用啟用6.1.2 Simulink模塊模塊6.1.3 Simulink模型建立模型建立6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)6.2.1 Simulink仿真技術(shù)仿真技術(shù)6.2.2 S函數(shù)函數(shù)第第6 6章章 SimulinkSimulink使用與仿真使用與仿真4 由于由于Simulink是基于是基于MATLAB環(huán)境之上的環(huán)境之上的高性能的系統(tǒng)級(jí)仿真
2、設(shè)計(jì)平臺(tái),因此啟動(dòng)高性能的系統(tǒng)級(jí)仿真設(shè)計(jì)平臺(tái),因此啟動(dòng)Simulink之前必須首先運(yùn)行之前必須首先運(yùn)行MATLAB,然后才,然后才能啟動(dòng)能啟動(dòng)Simulink,啟動(dòng),啟動(dòng)Simulink有兩種方式:有兩種方式: (1)用用命令行方式命令行方式啟動(dòng)啟動(dòng)Simulink。即在。即在MATLAB的的命令窗口中直接鍵入命令窗口中直接鍵入如下命令:如下命令: simulink6.1.1 Simulink啟用啟用6.1 Simulink模塊與模型建立模塊與模型建立5 6.1 Simulink模塊與模型建立模塊與模型建立 (2)使用使用工具欄按鈕工具欄按鈕啟動(dòng)啟動(dòng)Simulink。即用。即用鼠鼠標(biāo)單擊標(biāo)單擊
3、MATLAB工具欄中的工具欄中的 按鈕。按鈕。圖圖6.1 啟動(dòng)啟動(dòng)Simulink6 n Simulink瀏覽器界面瀏覽器界面(如圖如圖6.2所示所示) 菜單欄區(qū)、工具欄區(qū)、文字說明區(qū)、模塊菜單欄區(qū)、工具欄區(qū)、文字說明區(qū)、模塊庫(kù)區(qū)、狀態(tài)欄區(qū)庫(kù)區(qū)、狀態(tài)欄區(qū) 6.1 Simulink模塊與模型建立模塊與模型建立6.1.2 Simulink模塊模塊圖圖6.2 Simulink瀏覽器界面瀏覽器界面7 菜單欄區(qū):其主菜單有菜單欄區(qū):其主菜單有文件文件(File)、編輯編輯(Edit)、 查看查看(View)、幫助幫助(Help)等等4項(xiàng)。項(xiàng)。 File:含:含New(新建模型或者庫(kù)新建模型或者庫(kù))、op
4、en(打開打開)、Close(關(guān)閉關(guān)閉)和和Preferences(屬性設(shè)置屬性設(shè)置)4項(xiàng);項(xiàng); Edit:含:含Add to the current model(添加到當(dāng)前模型添加到當(dāng)前模型)、Find(查找查找)和和Find next(查找下一個(gè)查找下一個(gè))3項(xiàng);項(xiàng);6.1 Simulink模塊與模型建立模塊與模型建立8 6.1 Simulink模塊與模型建立模塊與模型建立View:由:由toolbar(工具欄工具欄), status bar(狀態(tài)欄狀態(tài)欄),description(文字說明欄文字說明欄),stay on top(將瀏覽器放將瀏覽器放在桌面最上層在桌面最上層) View:c
5、ollapse entire browser(模塊模塊庫(kù)壓縮顯示庫(kù)壓縮顯示),expand entire browser(模塊庫(kù)展開模塊庫(kù)展開顯示顯示),Large icons(大圖標(biāo)大圖標(biāo)) ,Small icons(小圖標(biāo)小圖標(biāo)),Show parameters for selection(顯示所選模塊的參顯示所選模塊的參數(shù)數(shù)) ;Help(幫助幫助)9 6.1 Simulink模塊與模型建立模塊與模型建立工具欄區(qū):含工具欄區(qū):含4個(gè)按鈕:新建與打開按鈕,將模個(gè)按鈕:新建與打開按鈕,將模塊放在桌面最上層按鈕,塊放在桌面最上層按鈕,F(xiàn)ind是用來查找模塊庫(kù)是用來查找模塊庫(kù)中的模塊按鈕。中的模
6、塊按鈕。文字說明區(qū):對(duì)所選模塊的文字說明;文字說明區(qū):對(duì)所選模塊的文字說明;模塊庫(kù)區(qū):含模塊庫(kù)及其相應(yīng)的模塊組;模塊庫(kù)區(qū):含模塊庫(kù)及其相應(yīng)的模塊組;狀態(tài)欄區(qū):即最下方顯示狀態(tài)欄區(qū):即最下方顯示Ready區(qū),用來顯示瀏區(qū),用來顯示瀏覽器狀態(tài)。覽器狀態(tài)。10 6.1 Simulink模塊與模型建立模塊與模型建立n Simulink基本模塊庫(kù)基本模塊庫(kù)Continuous(連續(xù)模塊組連續(xù)模塊組)Discontinuities(非連續(xù)模塊組非連續(xù)模塊組) Discrete(離散模塊組離散模塊組) Look-Up Tables(表格模塊組表格模塊組) Math Operations(數(shù)學(xué)運(yùn)算模塊組數(shù)學(xué)運(yùn)
7、算模塊組) Model Verification(模型檢驗(yàn)?zāi)K組模型檢驗(yàn)?zāi)K組) Model-Wide Utilities(公用模塊組公用模塊組) 11 6.1 Simulink模塊與模型建立模塊與模型建立Ports & Subsystems(端口與子系統(tǒng)模塊組端口與子系統(tǒng)模塊組) Signal Attributes(信號(hào)屬性模塊組信號(hào)屬性模塊組)Signal Routing(信號(hào)傳輸選擇模塊組信號(hào)傳輸選擇模塊組)Sinks(輸出模塊組輸出模塊組) Sources(信號(hào)源模塊組信號(hào)源模塊組) User-Defined Functions(用戶定義函數(shù)模塊組用戶定義函數(shù)模塊組)等等n S
8、imulink基本模塊庫(kù)基本模塊庫(kù) (續(xù)續(xù))12 6.1 Simulink模塊與模型建立模塊與模型建立1、 Continuous(連續(xù)模塊組連續(xù)模塊組) 包含包含7個(gè)基本模塊,分為連續(xù)時(shí)間線性系統(tǒng)與個(gè)基本模塊,分為連續(xù)時(shí)間線性系統(tǒng)與連續(xù)時(shí)間延遲兩種。子模塊組的名稱和用途見連續(xù)時(shí)間延遲兩種。子模塊組的名稱和用途見表表6-1。13 6.1 Simulink模塊與模型建立模塊與模型建立2、 Math Operations(數(shù)學(xué)運(yùn)算模塊組數(shù)學(xué)運(yùn)算模塊組) 包含包含25個(gè)基本模塊,包括數(shù)學(xué)運(yùn)算、向量運(yùn)算、個(gè)基本模塊,包括數(shù)學(xué)運(yùn)算、向量運(yùn)算、復(fù)數(shù)與向量間的轉(zhuǎn)換運(yùn)算復(fù)數(shù)與向量間的轉(zhuǎn)換運(yùn)算4種。其子模塊組的名
9、稱和種。其子模塊組的名稱和用途見用途見表表6-2。14 6.1 Simulink模塊與模型建立模塊與模型建立表表6-2 數(shù)學(xué)運(yùn)算模塊組子模塊的名稱及用途數(shù)學(xué)運(yùn)算模塊組子模塊的名稱及用途模模 塊塊 名名 稱稱模模 塊塊 用用 途途Abs絕對(duì)值或求模絕對(duì)值或求模(對(duì)復(fù)數(shù)對(duì)復(fù)數(shù))模塊模塊Algebraic Constraint將輸入將輸入f(z)強(qiáng)制置為強(qiáng)制置為0并輸出并輸出zAssignment分配器分配器Bitwise Logical Operator二進(jìn)制邏輯運(yùn)算模塊二進(jìn)制邏輯運(yùn)算模塊Combinatorial Logic建立邏輯真值表模塊建立邏輯真值表模塊Complex to Magnitu
10、de-Angle計(jì)算復(fù)數(shù)的幅值與相角模塊計(jì)算復(fù)數(shù)的幅值與相角模塊Complex to Real-Imag計(jì)算復(fù)數(shù)實(shí)部與虛部模塊計(jì)算復(fù)數(shù)實(shí)部與虛部模塊Dot Product計(jì)算點(diǎn)積計(jì)算點(diǎn)積(內(nèi)積內(nèi)積)模塊模塊Gain增益模塊增益模塊Logical Operator邏輯運(yùn)算模塊邏輯運(yùn)算模塊15 6.1 Simulink模塊與模型建立模塊與模型建立表表6-2續(xù)續(xù) 數(shù)學(xué)運(yùn)算模塊組子模塊的名稱及用途數(shù)學(xué)運(yùn)算模塊組子模塊的名稱及用途模模 塊塊 名名 稱稱模模 塊塊 用用 途途Magnitude-Angle to Complex由幅值與相角構(gòu)造復(fù)數(shù)模塊由幅值與相角構(gòu)造復(fù)數(shù)模塊Math Function數(shù)學(xué)運(yùn)
11、算函數(shù)模塊數(shù)學(xué)運(yùn)算函數(shù)模塊,可進(jìn)行多種數(shù)學(xué)函數(shù)運(yùn)算可進(jìn)行多種數(shù)學(xué)函數(shù)運(yùn)算Matrix Concatenation矩陣連接模塊矩陣連接模塊Matrix Gain矩陣增益模塊矩陣增益模塊MinMax計(jì)算極大值與極小值模塊計(jì)算極大值與極小值模塊Polynomial多項(xiàng)式運(yùn)算模塊多項(xiàng)式運(yùn)算模塊Product乘積運(yùn)算模塊乘積運(yùn)算模塊Real-Imag to Complex由實(shí)部與虛部構(gòu)造復(fù)數(shù)模塊由實(shí)部與虛部構(gòu)造復(fù)數(shù)模塊Relational Operator關(guān)系運(yùn)算模塊關(guān)系運(yùn)算模塊Reshape矩陣重新定維模塊矩陣重新定維模塊Rounding Function取整模塊取整模塊16 6.1 Simulink
12、模塊與模型建立模塊與模型建立表表6-2續(xù)續(xù) 數(shù)學(xué)運(yùn)算模塊組子模塊的名稱及用途數(shù)學(xué)運(yùn)算模塊組子模塊的名稱及用途模模 塊塊 名名 稱稱模模 塊塊 用用 途途Sign符號(hào)函數(shù)模塊符號(hào)函數(shù)模塊Slider Gain可變?cè)鲆婺K可變?cè)鲆婺K(使用滑尺改變?cè)鲆嬷凳褂没吒淖冊(cè)鲆嬷?Sum計(jì)算代數(shù)和或差模塊計(jì)算代數(shù)和或差模塊Trigonometric Function執(zhí)行多種常用三角函數(shù)模塊執(zhí)行多種常用三角函數(shù)模塊17 6.1 Simulink模塊與模型建立模塊與模型建立3、 Signal Routing(信號(hào)傳輸選擇模塊組信號(hào)傳輸選擇模塊組) 共有共有15個(gè)基本模塊,包括信號(hào)傳輸與信號(hào)存儲(chǔ)、個(gè)基本模塊,包
13、括信號(hào)傳輸與信號(hào)存儲(chǔ)、訪問兩種。其子模塊組的名稱和用途見訪問兩種。其子模塊組的名稱和用途見表表6-3。18 6.1 Simulink模塊與模型建立模塊與模型建立4、 Sinks(輸出模塊組輸出模塊組) 及其用途及其用途 共有共有9個(gè)基本模塊,包括模型及子系統(tǒng)輸出、數(shù)個(gè)基本模塊,包括模型及子系統(tǒng)輸出、數(shù)據(jù)觀察器與仿真控制據(jù)觀察器與仿真控制3種。其子模塊組的名稱和用途種。其子模塊組的名稱和用途見表見表6-4。模塊功能說明:模塊功能說明: 以數(shù)值形式顯示輸入信號(hào) 懸浮信號(hào)顯示器 為子系統(tǒng)或模型提供輸出端口 信號(hào)顯示器 當(dāng)輸入非零時(shí)停止仿真 中斷輸出信號(hào) 將仿真數(shù)據(jù)寫入 mat 文件 將仿真數(shù)據(jù)輸出到
14、 Matlab 工作空間 使用 Matlab 圖形顯示數(shù)據(jù) 模塊功能說明:以數(shù)值形式顯示輸入信號(hào)懸浮信號(hào)顯示器為子系統(tǒng)或模型提供輸出端口信號(hào)顯示器當(dāng)輸入非零時(shí)停止仿真中斷輸出信號(hào)將仿真數(shù)據(jù)寫入.mat文件將仿真數(shù)據(jù)輸出到MATLAB工作空間使用MATLAB圖形顯示數(shù)據(jù)19 6.1 Simulink模塊與模型建立模塊與模型建立表表6-4 輸出模塊組子模塊的名稱及用途輸出模塊組子模塊的名稱及用途模模 塊塊 名名 稱稱模模 塊塊 用用 途途Display實(shí)時(shí)數(shù)字顯示模塊實(shí)時(shí)數(shù)字顯示模塊Floating Scope浮動(dòng)示波器模塊浮動(dòng)示波器模塊Out1輸出端口模塊輸出端口模塊(同端口與子系統(tǒng)模塊中同端口
15、與子系統(tǒng)模塊中Out1)Scope示波器模塊示波器模塊Stop Simulation當(dāng)輸入非當(dāng)輸入非0時(shí),停止仿真。在仿真停止前完成當(dāng)時(shí),停止仿真。在仿真停止前完成當(dāng)前時(shí)間步內(nèi)的仿真。前時(shí)間步內(nèi)的仿真。Terminator信號(hào)終止模塊信號(hào)終止模塊To File將其輸入寫入將其輸入寫入MAT-file文件內(nèi)的一個(gè)矩陣中文件內(nèi)的一個(gè)矩陣中To Workspace將其輸入寫入工作空間將其輸入寫入工作空間XY GraphX-Y示波器模塊示波器模塊20 6.1 Simulink模塊與模型建立模塊與模型建立5、 Sources(信號(hào)源模塊組信號(hào)源模塊組) 及其用途及其用途 1818個(gè)基本模塊,包括模型及子
16、系統(tǒng)輸入與信號(hào)個(gè)基本模塊,包括模型及子系統(tǒng)輸入與信號(hào)發(fā)生器兩種。其子模塊組的名稱和用途見發(fā)生器兩種。其子模塊組的名稱和用途見表表6-56-5。21 6.1 Simulink模塊與模型建立模塊與模型建立表表6-5 信號(hào)源模塊組子模塊的名稱及用途信號(hào)源模塊組子模塊的名稱及用途模模 塊塊 名名 稱稱模模 塊塊 用用 途途Band-Limited White Noise帶寬限幅白噪聲模塊帶寬限幅白噪聲模塊Chirp Signal線性調(diào)頻信號(hào)模塊線性調(diào)頻信號(hào)模塊(頻率隨時(shí)間線性增加的正弦信號(hào)頻率隨時(shí)間線性增加的正弦信號(hào)),可用于非線性系統(tǒng)譜分析可用于非線性系統(tǒng)譜分析Clock在每一仿真步輸出當(dāng)前仿真時(shí)間
17、在每一仿真步輸出當(dāng)前仿真時(shí)間(連續(xù)時(shí)間連續(xù)時(shí)間)Constant輸出與時(shí)間無關(guān)的實(shí)數(shù)或復(fù)數(shù)輸出與時(shí)間無關(guān)的實(shí)數(shù)或復(fù)數(shù)Digital Clock僅在指定的采樣間隔內(nèi)輸出仿真時(shí)間,在其它時(shí)間僅在指定的采樣間隔內(nèi)輸出仿真時(shí)間,在其它時(shí)間輸出保持前一次值不變輸出保持前一次值不變(離散時(shí)間離散時(shí)間)From Workspace從從MATLAB工作空間中讀取數(shù)據(jù)工作空間中讀取數(shù)據(jù)From File從一個(gè)指定的文件中讀取數(shù)據(jù)并輸出從一個(gè)指定的文件中讀取數(shù)據(jù)并輸出Ground接地模塊接地模塊In1輸入端口模塊輸入端口模塊(同端口與子系統(tǒng)模塊中同端口與子系統(tǒng)模塊中In1)Pulse Generator產(chǎn)生固定頻
18、率脈沖序列產(chǎn)生固定頻率脈沖序列22 6.1 Simulink模塊與模型建立模塊與模型建立表表6-5續(xù)續(xù) 信號(hào)源模塊組子模塊的名稱及用途信號(hào)源模塊組子模塊的名稱及用途模模 塊塊 名名 稱稱模模 塊塊 用用 途途Ramp產(chǎn)生按指定初始時(shí)間、初始幅度和變化率的斜坡信號(hào)產(chǎn)生按指定初始時(shí)間、初始幅度和變化率的斜坡信號(hào)Random Number產(chǎn)生正態(tài)分布的隨機(jī)信號(hào)產(chǎn)生正態(tài)分布的隨機(jī)信號(hào)Repeating Sequence產(chǎn)生一個(gè)任意波形的周期信號(hào)產(chǎn)生一個(gè)任意波形的周期信號(hào)Signal Generator可以產(chǎn)生三種不同波形的信號(hào):正弦波、方波和鋸齒可以產(chǎn)生三種不同波形的信號(hào):正弦波、方波和鋸齒波。信號(hào)單
19、位可以是波。信號(hào)單位可以是Hz或或rad/sSignal Builder信號(hào)構(gòu)造器信號(hào)構(gòu)造器Sine Wave正弦波信號(hào)模塊正弦波信號(hào)模塊Step在指定時(shí)間產(chǎn)生一個(gè)可定義上下電平的階躍信號(hào)在指定時(shí)間產(chǎn)生一個(gè)可定義上下電平的階躍信號(hào)Uniform Random Number產(chǎn)生在整個(gè)指定時(shí)間周期內(nèi)均勻分布的隨機(jī)信號(hào)產(chǎn)生在整個(gè)指定時(shí)間周期內(nèi)均勻分布的隨機(jī)信號(hào)23 6.1 Simulink模塊與模型建立模塊與模型建立n 部分專業(yè)模塊庫(kù)簡(jiǎn)介部分專業(yè)模塊庫(kù)簡(jiǎn)介 Mathworks公司還提供了一系列與公司還提供了一系列與Simulink一起使用的專業(yè)模塊庫(kù),主要有:一起使用的專業(yè)模塊庫(kù),主要有:Contr
20、ol System Toolbox:控制系統(tǒng)工具箱:控制系統(tǒng)工具箱Communications Blockset:通信系統(tǒng)仿真模塊:通信系統(tǒng)仿真模塊Fuzzy Logic Toolbox:模糊邏輯控制工具箱:模糊邏輯控制工具箱24 6.1 Simulink模塊與模型建立模塊與模型建立n 部分專業(yè)模塊庫(kù)簡(jiǎn)介部分專業(yè)模塊庫(kù)簡(jiǎn)介 (續(xù)續(xù)) Neural Network Blockset:神經(jīng)網(wǎng)絡(luò)工具箱:神經(jīng)網(wǎng)絡(luò)工具箱 Simulink Extras:補(bǔ)充:補(bǔ)充Simulink公共模塊庫(kù)公共模塊庫(kù) Stateflow:用來對(duì)復(fù)雜的事件驅(qū)動(dòng)系統(tǒng)進(jìn)行建模:用來對(duì)復(fù)雜的事件驅(qū)動(dòng)系統(tǒng)進(jìn)行建模 和仿真和仿真 R
21、eal-Time Workshop (簡(jiǎn)稱簡(jiǎn)稱RTW):可以直接將:可以直接將simulink模型框圖和模型框圖和Stateflow的狀態(tài)圖轉(zhuǎn)換成高效的狀態(tài)圖轉(zhuǎn)換成高效優(yōu)化的程序代碼優(yōu)化的程序代碼25 6.1 Simulink模塊與模型建立模塊與模型建立6.1.3 Simulink模型建立模型建立建立簡(jiǎn)單模型的步驟:建立簡(jiǎn)單模型的步驟:建立模型窗口建立模型窗口點(diǎn)擊點(diǎn)擊 ,彈出,彈出Simulink Library Browser 點(diǎn)擊點(diǎn)擊File,彈出彈出New,指向,指向Model(或者在鍵盤中同時(shí)按住或者在鍵盤中同時(shí)按住Ctrl+N)即可得到一個(gè)即可得到一個(gè)空白的模型窗口空白的模型窗口(如
22、下圖所示)。(如下圖所示)。26 6.1 Simulink模塊與模型建立模塊與模型建立將功能模塊從模塊庫(kù)中復(fù)制到模型窗口將功能模塊從模塊庫(kù)中復(fù)制到模型窗口 將左圖中的將左圖中的功能模塊功能模塊復(fù)制到復(fù)制到空白窗口空白窗口“Untitled”。27 6.1 Simulink模塊與模型建立模塊與模型建立對(duì)模塊進(jìn)行連接,構(gòu)成所需要的系統(tǒng)模型對(duì)模塊進(jìn)行連接,構(gòu)成所需要的系統(tǒng)模型(如下如下圖所示圖所示)保存系統(tǒng)模型保存系統(tǒng)模型 點(diǎn)擊點(diǎn)擊Untiled菜單欄上的菜單欄上的File,選擇,選擇Save或者或者Save as保保存文件,文件擴(kuò)展名為存文件,文件擴(kuò)展名為.mdl 。 28 6.2 Simulin
23、k仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)6.2.1 Simulink仿真技術(shù)仿真技術(shù)下面通過一個(gè)例子介紹下面通過一個(gè)例子介紹Simulink的仿真技術(shù)的仿真技術(shù)例題例題:已知一個(gè)系統(tǒng)模型,它的:已知一個(gè)系統(tǒng)模型,它的數(shù)學(xué)描述數(shù)學(xué)描述為為 。求。求建立建立一個(gè)一個(gè)Simulink系統(tǒng)模型系統(tǒng)模型,并以,并以圖形方式圖形方式輸出系統(tǒng)輸出系統(tǒng)運(yùn)算結(jié)果運(yùn)算結(jié)果。( )( ), ( )sin( ),0,0y tau t u tt at29 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)解:解:第一步:選擇模塊第一步:選擇模塊p 在在Sources中選擇中選擇Sine Wave模塊,用以模塊,用以產(chǎn)生產(chǎn)生
24、一個(gè)一個(gè)正弦波信號(hào)正弦波信號(hào)。30 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)p在在Math中選擇中選擇Gain模塊,用以模塊,用以產(chǎn)生產(chǎn)生一個(gè)一個(gè)常數(shù)常數(shù)(即(即信號(hào)增益信號(hào)增益)。)。31 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)p在在Sinks中選擇中選擇Scope模塊,用以模塊,用以圖形方式顯示圖形方式顯示結(jié)果結(jié)果。32 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)p生成系統(tǒng)模型(系統(tǒng)模型囊括了模塊選擇步驟) 。33 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)第二步:添加連接線第二步:添加連接線 完成所需模塊選擇后,按系統(tǒng)信號(hào)流動(dòng)方向,將
25、各完成所需模塊選擇后,按系統(tǒng)信號(hào)流動(dòng)方向,將各系統(tǒng)模塊連接起來。具體做法是將光標(biāo)指向起始?jí)K的輸系統(tǒng)模塊連接起來。具體做法是將光標(biāo)指向起始?jí)K的輸出端口,此時(shí)光標(biāo)變成出端口,此時(shí)光標(biāo)變成“+”,單擊鼠標(biāo)左鍵并拖動(dòng)到目,單擊鼠標(biāo)左鍵并拖動(dòng)到目標(biāo)模塊的輸入端口,在接近到一定程度時(shí)光標(biāo)變成雙十標(biāo)模塊的輸入端口,在接近到一定程度時(shí)光標(biāo)變成雙十字。這時(shí)松開鼠標(biāo)鍵,連接完成。完成后在連接點(diǎn)處出字。這時(shí)松開鼠標(biāo)鍵,連接完成。完成后在連接點(diǎn)處出現(xiàn)一個(gè)箭頭,表示系統(tǒng)中信號(hào)的流向,如圖所示。現(xiàn)一個(gè)箭頭,表示系統(tǒng)中信號(hào)的流向,如圖所示。34 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)第三步:輸入信號(hào)與輸出信
26、號(hào)對(duì)比的實(shí)現(xiàn)第三步:輸入信號(hào)與輸出信號(hào)對(duì)比的實(shí)現(xiàn)在在Simulink公共模塊庫(kù)的公共模塊庫(kù)的Signal Routing(信號(hào)流信號(hào)流向模塊庫(kù)向模塊庫(kù))中選擇中選擇Mux模塊,以模塊,以實(shí)現(xiàn)將輸入信號(hào)和實(shí)現(xiàn)將輸入信號(hào)和輸出信號(hào)同時(shí)輸入到一個(gè)示波器中輸出信號(hào)同時(shí)輸入到一個(gè)示波器中,如圖所示,如圖所示。35 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)第四步:仿真運(yùn)行第四步:仿真運(yùn)行首先,進(jìn)行系統(tǒng)模塊參數(shù)和仿真參數(shù)設(shè)置。逐一雙擊系統(tǒng)中首先,進(jìn)行系統(tǒng)模塊參數(shù)和仿真參數(shù)設(shè)置。逐一雙擊系統(tǒng)中的模塊,打開其參數(shù)設(shè)置對(duì)話框,輸入合適的模塊參數(shù),如的模塊,打開其參數(shù)設(shè)置對(duì)話框,輸入合適的模塊參數(shù),如
27、圖所示,仿真參數(shù)可采用圖所示,仿真參數(shù)可采用Simulink的默認(rèn)值,也可自主設(shè)定。的默認(rèn)值,也可自主設(shè)定。本例中,系統(tǒng)模塊參數(shù)設(shè)置增益取值為本例中,系統(tǒng)模塊參數(shù)設(shè)置增益取值為5,仿真參數(shù)采用,仿真參數(shù)采用Simulink的默認(rèn)值。的默認(rèn)值。36 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)進(jìn)行仿真實(shí)驗(yàn)。單擊系統(tǒng)模型編輯器上的進(jìn)行仿真實(shí)驗(yàn)。單擊系統(tǒng)模型編輯器上的“ ”(Play)或選擇)或選擇Simulation菜單下的菜單下的Start便可以對(duì)系統(tǒng)進(jìn)行仿真分析。仿真結(jié)束后雙擊便可以對(duì)系統(tǒng)進(jìn)行仿真分析。仿真結(jié)束后雙擊Scope模塊可顯示系統(tǒng)仿真的輸出結(jié)果,如圖所示。模塊可顯示系統(tǒng)仿真
28、的輸出結(jié)果,如圖所示。n如果在仿真過程結(jié)束之前,用戶想停止此如果在仿真過程結(jié)束之前,用戶想停止此次仿真,可選擇菜單選項(xiàng)次仿真,可選擇菜單選項(xiàng)SimulationStop停止仿真。停止仿真。37 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)在這里做幾點(diǎn)說明:在這里做幾點(diǎn)說明:1)如果需要多個(gè)同樣的模塊時(shí),可使用鼠標(biāo)右如果需要多個(gè)同樣的模塊時(shí),可使用鼠標(biāo)右鍵單擊并拖動(dòng)庫(kù)中的基本模塊進(jìn)行拷貝。鍵單擊并拖動(dòng)庫(kù)中的基本模塊進(jìn)行拷貝。2)如果需要在信號(hào)連線上插入一個(gè)單輸入單輸如果需要在信號(hào)連線上插入一個(gè)單輸入單輸出模塊,只需將這個(gè)模塊移到線上就可以完成出模塊,只需將這個(gè)模塊移到線上就可以完成自動(dòng)
29、插入,對(duì)于非單輸入單輸出的模塊,只能自動(dòng)插入,對(duì)于非單輸入單輸出的模塊,只能先刪除連線,然后放置該塊,并重新連線。先刪除連線,然后放置該塊,并重新連線。3) 若需要從某模塊中引出若干連線若需要從某模塊中引出若干連線,可使用鼠可使用鼠標(biāo)右鍵單擊需要分支信號(hào)的連線,使光標(biāo)變成標(biāo)右鍵單擊需要分支信號(hào)的連線,使光標(biāo)變成“+”后,拖動(dòng)到目標(biāo)模塊。后,拖動(dòng)到目標(biāo)模塊。38 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)4) 若模塊的輸入輸出方向與建立系統(tǒng)的信號(hào)流動(dòng)方向不同,可將鼠標(biāo)停在若模塊的輸入輸出方向與建立系統(tǒng)的信號(hào)流動(dòng)方向不同,可將鼠標(biāo)停在模塊上,點(diǎn)擊右鍵,選擇模塊上,點(diǎn)擊右鍵,選擇Form
30、at中的中的Flip Block功能可實(shí)現(xiàn)模塊水平翻轉(zhuǎn),功能可實(shí)現(xiàn)模塊水平翻轉(zhuǎn),或或Rotate Block功能進(jìn)行逆時(shí)針功能進(jìn)行逆時(shí)針90旋轉(zhuǎn)。旋轉(zhuǎn)。5) 用鼠標(biāo)左鍵單擊模塊名稱,進(jìn)入編輯狀態(tài)然后鍵入新的名稱,即可完成用鼠標(biāo)左鍵單擊模塊名稱,進(jìn)入編輯狀態(tài)然后鍵入新的名稱,即可完成對(duì)模塊的重新命名。對(duì)模塊的重新命名。39 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)6) 在創(chuàng)建大型復(fù)雜系統(tǒng)模型需要添加信號(hào)標(biāo)簽時(shí),具體做在創(chuàng)建大型復(fù)雜系統(tǒng)模型需要添加信號(hào)標(biāo)簽時(shí),具體做法是用鼠標(biāo)左鍵雙擊需要加入標(biāo)簽的信號(hào)(即系統(tǒng)模型中法是用鼠標(biāo)左鍵雙擊需要加入標(biāo)簽的信號(hào)(即系統(tǒng)模型中與信號(hào)相對(duì)應(yīng)的模塊連
31、線),系統(tǒng)會(huì)彈出標(biāo)簽編輯框,在與信號(hào)相對(duì)應(yīng)的模塊連線),系統(tǒng)會(huì)彈出標(biāo)簽編輯框,在對(duì)話框中鍵入標(biāo)簽文本即可。對(duì)話框中鍵入標(biāo)簽文本即可。40 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 下圖所示的仿真過程是在系統(tǒng)默認(rèn)仿真參數(shù)條件下完成的,但是有時(shí)候系統(tǒng)默認(rèn)仿真參數(shù)并不能得到理想的仿真結(jié)果,需要對(duì)系統(tǒng)仿真參數(shù)做調(diào)整。41 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)1仿真參數(shù)的設(shè)定仿真參數(shù)的設(shè)定在如下圖在如下圖 Simulink仿真模型編譯器界面下,選擇菜仿真模型編譯器界面下,選擇菜單選項(xiàng)單選項(xiàng)SimulationConfiguration Parameters,將顯,將顯示如
32、圖所示的仿真參數(shù)對(duì)話框。示如圖所示的仿真參數(shù)對(duì)話框。42 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)設(shè)置仿真時(shí)間非常重要,它決定了模型仿真的時(shí)間或取值區(qū)域,其設(shè)置完全根據(jù)待仿真系統(tǒng)的特性來確定,反映在輸出顯示上就是示波器的橫軸坐標(biāo)值的取值范圍?!癝tart time”和“Stop time”項(xiàng)分別用以設(shè)置仿真開始時(shí)間(或取值區(qū)域下限)和終止時(shí)間(或取值區(qū)域上限),默認(rèn)值分別為0.0和10.0s。(1)設(shè)置仿真時(shí)間設(shè)置仿真時(shí)間43 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 在在Simulink的仿真過程中的仿真過程中選擇合適的算法是很重要的選擇合適的算法是很重要的。仿真
33、算法是求常微分方程、傳遞函數(shù)、狀態(tài)方程解的數(shù)值仿真算法是求常微分方程、傳遞函數(shù)、狀態(tài)方程解的數(shù)值計(jì)算方法,主要有計(jì)算方法,主要有歐拉法(歐拉法(Eular)、阿達(dá)姆斯法)、阿達(dá)姆斯法(Adams)和龍格)和龍格-庫(kù)塔法(庫(kù)塔法(Runge-Kutta)。由于動(dòng)態(tài)系。由于動(dòng)態(tài)系統(tǒng)的差異性,使得某種算法對(duì)某類問題比較有效,而另外統(tǒng)的差異性,使得某種算法對(duì)某類問題比較有效,而另外算法對(duì)另一類問題更有效。因此,對(duì)不同的問題,可以選算法對(duì)另一類問題更有效。因此,對(duì)不同的問題,可以選擇不同的適應(yīng)算法和相應(yīng)的參數(shù),以得到更準(zhǔn)確、快速的擇不同的適應(yīng)算法和相應(yīng)的參數(shù),以得到更準(zhǔn)確、快速的解。解。(2)選擇仿真算
34、法選擇仿真算法44 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 根據(jù)仿真步長(zhǎng),根據(jù)仿真步長(zhǎng),Simulink中提供的常微分方程數(shù)值計(jì)中提供的常微分方程數(shù)值計(jì)算的算法大致可以分兩類:算的算法大致可以分兩類:Variable Step(可變步長(zhǎng)類算(可變步長(zhǎng)類算法)法),在仿真過程中可以自動(dòng)調(diào)整步長(zhǎng),開通過減小步長(zhǎng),在仿真過程中可以自動(dòng)調(diào)整步長(zhǎng),開通過減小步長(zhǎng)來提高計(jì)算的精度;來提高計(jì)算的精度;Fixed Step(固定步長(zhǎng)類算法)(固定步長(zhǎng)類算法),在仿,在仿真過程中采取基準(zhǔn)采樣時(shí)間作為固定步長(zhǎng)。一般地,使用真過程中采取基準(zhǔn)采樣時(shí)間作為固定步長(zhǎng)。一般地,使用變步長(zhǎng)的自適應(yīng)算法是比較好
35、的選擇。這類算法會(huì)按照設(shè)變步長(zhǎng)的自適應(yīng)算法是比較好的選擇。這類算法會(huì)按照設(shè)定的精確度在各積分段內(nèi)自適應(yīng)地尋找最大步長(zhǎng)進(jìn)行積分,定的精確度在各積分段內(nèi)自適應(yīng)地尋找最大步長(zhǎng)進(jìn)行積分,從而使得運(yùn)算效率最高。從而使得運(yùn)算效率最高。45 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)3示波器的屬性設(shè)置示波器的屬性設(shè)置 Scope(示波器)模塊是(示波器)模塊是Simulink仿真中非常重要的一個(gè)仿真中非常重要的一個(gè)模塊,既可以顯示仿真結(jié)果,而且可以同時(shí)保存波形數(shù)據(jù),模塊,既可以顯示仿真結(jié)果,而且可以同時(shí)保存波形數(shù)據(jù),是人機(jī)交互的重要手段。是人機(jī)交互的重要手段。46 6.2 Simulink仿真技
36、術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 雙擊示波器模塊圖標(biāo),即可彈出示波器的窗口界面,雙擊示波器模塊圖標(biāo),即可彈出示波器的窗口界面,如圖所示,在此可進(jìn)行屬性設(shè)置。如圖所示,在此可進(jìn)行屬性設(shè)置。47 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 點(diǎn)擊點(diǎn)擊“示波器參數(shù)示波器參數(shù)”按鍵,彈出示波器參數(shù)設(shè)置界面,按鍵,彈出示波器參數(shù)設(shè)置界面,其中有兩個(gè)功能,分別是其中有兩個(gè)功能,分別是General(常規(guī))功能和(常規(guī))功能和Data history(數(shù)據(jù))功能,如圖所示。(數(shù)據(jù))功能,如圖所示。 a)General功能界面功能界面 b)Data history功能界面功能界面48 6.2 Simulin
37、k仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 在在Gencral(常規(guī))功能中,可以進(jìn)行的設(shè)置有:(常規(guī))功能中,可以進(jìn)行的設(shè)置有:Number of Axes(坐標(biāo)個(gè)數(shù))、(坐標(biāo)個(gè)數(shù))、Time range(時(shí)間范(時(shí)間范圍)、圍)、Tick labels(單位標(biāo)簽)、(單位標(biāo)簽)、Sampling(采樣)(采樣)等。等。 在在Data history(數(shù)據(jù))功能中,可以進(jìn)行的設(shè)(數(shù)據(jù))功能中,可以進(jìn)行的設(shè)置有:置有:Limit data points to last(僅顯示最新的數(shù)(僅顯示最新的數(shù)據(jù))、據(jù))、Save data to workspace(保存數(shù)據(jù)至工作(保存數(shù)據(jù)至工作間)。間)。49
38、6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 在示波器窗口的圖形顯示區(qū)域內(nèi)單擊鼠標(biāo)右鍵,選擇在示波器窗口的圖形顯示區(qū)域內(nèi)單擊鼠標(biāo)右鍵,選擇“Axes properties”功能,可彈出一個(gè)名為功能,可彈出一個(gè)名為“scope properties:axisl”的軸的軸屬性設(shè)置界面,在此進(jìn)行坐標(biāo)屬性設(shè)置界面,在此進(jìn)行坐標(biāo)y的最大值與最小值的設(shè)置,用的最大值與最小值的設(shè)置,用Title項(xiàng)來給顯示信號(hào)命名,如圖所示。項(xiàng)來給顯示信號(hào)命名,如圖所示。50 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)6.2.2 S函數(shù)函數(shù) 在實(shí)際的應(yīng)用中,通常會(huì)有用戶自己所需的具有獨(dú)特在實(shí)際的應(yīng)用中,
39、通常會(huì)有用戶自己所需的具有獨(dú)特功能的模塊,用功能的模塊,用Simulink所提供的基本模塊無法實(shí)現(xiàn),這所提供的基本模塊無法實(shí)現(xiàn),這時(shí)可以使用時(shí)可以使用Simulink支持的支持的S-函數(shù)格式,用函數(shù)格式,用MATLAB語(yǔ)言語(yǔ)言或或C語(yǔ)言編程序,構(gòu)成語(yǔ)言編程序,構(gòu)成S-函數(shù)模塊,像標(biāo)準(zhǔn)的函數(shù)模塊,像標(biāo)準(zhǔn)的Simulink模塊模塊那樣直接調(diào)用。實(shí)際上那樣直接調(diào)用。實(shí)際上Simulink許多模塊所包含的算法均許多模塊所包含的算法均是由是由S-函數(shù)寫的,用戶也可以編寫自己的函數(shù)寫的,用戶也可以編寫自己的S-函數(shù),然后進(jìn)函數(shù),然后進(jìn)行封裝便可得到具有特定功能的定制模塊。但是行封裝便可得到具有特定功能的定
40、制模塊。但是S-函數(shù)的函數(shù)的使用與一般函數(shù)相比復(fù)雜的多。使用與一般函數(shù)相比復(fù)雜的多。51 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)1S函數(shù)的基本概念函數(shù)的基本概念 S-函數(shù)是系統(tǒng)函數(shù)(函數(shù)是系統(tǒng)函數(shù)(System Function)的簡(jiǎn)稱,是指采)的簡(jiǎn)稱,是指采用用非圖形化的方式非圖形化的方式(即計(jì)算機(jī)語(yǔ)言,區(qū)別于(即計(jì)算機(jī)語(yǔ)言,區(qū)別于Simulink的系統(tǒng)模的系統(tǒng)模塊)描述的一個(gè)功能塊。用戶可以采用塊)描述的一個(gè)功能塊。用戶可以采用MATLAB代碼,代碼,C,C+,F(xiàn)ORTRAM等語(yǔ)言編寫等語(yǔ)言編寫S-函數(shù)。函數(shù)。 S-函數(shù)具有特定的語(yǔ)法結(jié)構(gòu),用來描述并實(shí)現(xiàn)連續(xù)系統(tǒng)、函數(shù)具有特
41、定的語(yǔ)法結(jié)構(gòu),用來描述并實(shí)現(xiàn)連續(xù)系統(tǒng)、離散系統(tǒng)以及復(fù)合系統(tǒng)等動(dòng)態(tài)系統(tǒng);離散系統(tǒng)以及復(fù)合系統(tǒng)等動(dòng)態(tài)系統(tǒng);S-函數(shù)能夠接受來自函數(shù)能夠接受來自Simulink求解器的相關(guān)信息,并對(duì)求解器發(fā)出的命令作出適當(dāng)求解器的相關(guān)信息,并對(duì)求解器發(fā)出的命令作出適當(dāng)?shù)捻憫?yīng),這種交互作用非常類似于的響應(yīng),這種交互作用非常類似于Simulink系統(tǒng)模塊與求解器系統(tǒng)模塊與求解器的交互作用。的交互作用。52 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) S-函數(shù)作為與其他語(yǔ)言相結(jié)合的接口,可以使用這個(gè)語(yǔ)函數(shù)作為與其他語(yǔ)言相結(jié)合的接口,可以使用這個(gè)語(yǔ)言所提供的強(qiáng)大能力。例如,言所提供的強(qiáng)大能力。例如,MATLAB
42、語(yǔ)言編寫的語(yǔ)言編寫的S-函數(shù)可函數(shù)可以充分利用以充分利用MATLAB所提供的豐富資源,方便地調(diào)用各種工所提供的豐富資源,方便地調(diào)用各種工具箱函數(shù)和圖形函數(shù);使用具箱函數(shù)和圖形函數(shù);使用C語(yǔ)言編寫的語(yǔ)言編寫的S-函數(shù)可以實(shí)現(xiàn)對(duì)操函數(shù)可以實(shí)現(xiàn)對(duì)操作系統(tǒng)的訪問,如實(shí)現(xiàn)與其他進(jìn)程的通信和同步等。作系統(tǒng)的訪問,如實(shí)現(xiàn)與其他進(jìn)程的通信和同步等。 用戶可能會(huì)有如下的疑問:用戶可能會(huì)有如下的疑問:Simulink已經(jīng)提供了大量的已經(jīng)提供了大量的內(nèi)置的系統(tǒng)模塊,并且允許用戶自定義模塊,那么為何還要內(nèi)置的系統(tǒng)模塊,并且允許用戶自定義模塊,那么為何還要使用使用S-函數(shù)呢?誠(chéng)然,對(duì)于大多數(shù)動(dòng)態(tài)系統(tǒng)仿真分析語(yǔ)言,函數(shù)呢
43、?誠(chéng)然,對(duì)于大多數(shù)動(dòng)態(tài)系統(tǒng)仿真分析語(yǔ)言,使用使用Simulink提供的模塊即可實(shí)現(xiàn),而無需使用提供的模塊即可實(shí)現(xiàn),而無需使用S-函數(shù)。函數(shù)。53 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 但是,當(dāng)需要開發(fā)一個(gè)新的通用的模塊作為一個(gè)獨(dú)立但是,當(dāng)需要開發(fā)一個(gè)新的通用的模塊作為一個(gè)獨(dú)立的功能單元時(shí),使用的功能單元時(shí),使用S-函數(shù)實(shí)現(xiàn)則是一種相當(dāng)簡(jiǎn)便的方法。函數(shù)實(shí)現(xiàn)則是一種相當(dāng)簡(jiǎn)便的方法。另外,由于另外,由于S-函數(shù)可以使用多種語(yǔ)言編寫,因此可以將已函數(shù)可以使用多種語(yǔ)言編寫,因此可以將已有的代碼結(jié)合進(jìn)來,而不需要在有的代碼結(jié)合進(jìn)來,而不需要在Simulink中重新實(shí)現(xiàn)算法,中重新實(shí)現(xiàn)算法
44、,從而在某種程度上實(shí)現(xiàn)了代碼移植。從而在某種程度上實(shí)現(xiàn)了代碼移植。 此外,在此外,在S-函數(shù)中使用文本方式輸入公式、方程,非函數(shù)中使用文本方式輸入公式、方程,非常適合復(fù)雜動(dòng)態(tài)系統(tǒng)的數(shù)學(xué)描述,并且在仿真過程中可常適合復(fù)雜動(dòng)態(tài)系統(tǒng)的數(shù)學(xué)描述,并且在仿真過程中可以對(duì)仿真進(jìn)行更精確的控制。以對(duì)仿真進(jìn)行更精確的控制。 54 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)簡(jiǎn)單地說,用戶可以從如下的幾個(gè)角度來理解簡(jiǎn)單地說,用戶可以從如下的幾個(gè)角度來理解S-函數(shù):函數(shù):1. S-函數(shù)為函數(shù)為Simulink的的“系統(tǒng)系統(tǒng)”函數(shù)。函數(shù)。 2. 能夠響應(yīng)能夠響應(yīng)Simulink為求解器命令的函數(shù)。為求解器
45、命令的函數(shù)。3. 采用非圖形化的方法實(shí)現(xiàn)一個(gè)動(dòng)態(tài)系統(tǒng)。采用非圖形化的方法實(shí)現(xiàn)一個(gè)動(dòng)態(tài)系統(tǒng)。4. 可以開發(fā)新的可以開發(fā)新的Simulink模塊。模塊。 5. 可以與已有的代碼相結(jié)合進(jìn)行仿真??梢耘c已有的代碼相結(jié)合進(jìn)行仿真。 6. 采用文本方式輸入復(fù)雜的系統(tǒng)方程。采用文本方式輸入復(fù)雜的系統(tǒng)方程。 7. 擴(kuò)展擴(kuò)展Simulink功能。功能。M文件文件S-函數(shù)可以擴(kuò)展圖形能力,函數(shù)可以擴(kuò)展圖形能力,C MEX S-函數(shù)可以提供與操作系統(tǒng)的接口。函數(shù)可以提供與操作系統(tǒng)的接口。 8. S-函數(shù)的語(yǔ)法結(jié)構(gòu)是為實(shí)現(xiàn)一個(gè)動(dòng)態(tài)系統(tǒng)而設(shè)計(jì)的(默認(rèn)用法)。函數(shù)的語(yǔ)法結(jié)構(gòu)是為實(shí)現(xiàn)一個(gè)動(dòng)態(tài)系統(tǒng)而設(shè)計(jì)的(默認(rèn)用法)。55
46、6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)2與與S-函數(shù)相關(guān)的一些術(shù)語(yǔ)函數(shù)相關(guān)的一些術(shù)語(yǔ)(1)仿真例程(仿真例程(Routines)Simulink在仿真的特定階段調(diào)用對(duì)應(yīng)的在仿真的特定階段調(diào)用對(duì)應(yīng)的S-函數(shù)功能模塊(函函數(shù)功能模塊(函數(shù)),來完成不同的任務(wù),如初始化、計(jì)算輸出、更新離散狀數(shù)),來完成不同的任務(wù),如初始化、計(jì)算輸出、更新離散狀態(tài)、計(jì)算導(dǎo)數(shù)、結(jié)束仿真等,這些功能模塊(函數(shù))稱為仿真態(tài)、計(jì)算導(dǎo)數(shù)、結(jié)束仿真等,這些功能模塊(函數(shù))稱為仿真例程或者回調(diào)函數(shù)(例程或者回調(diào)函數(shù)(call back functions)。)。S-函數(shù)中的例程函數(shù)如下:函數(shù)中的例程函數(shù)如下:mdl
47、Initialization 初始化初始化mdlGetTimeofNextVarHit 計(jì)算下一個(gè)采樣點(diǎn)計(jì)算下一個(gè)采樣點(diǎn)mdlOutput 計(jì)算輸出計(jì)算輸出mdlUpdate 更新離散狀態(tài)更新離散狀態(tài)mdlDerivatives 計(jì)算導(dǎo)數(shù)計(jì)算導(dǎo)數(shù)mdlTerminate 結(jié)束仿真結(jié)束仿真56 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)(2)直接饋通(直接饋通(Direct feedthrough) 直接饋通意味著在某一時(shí)刻的系統(tǒng)輸出直接饋通意味著在某一時(shí)刻的系統(tǒng)輸出y中包含某一時(shí)刻的中包含某一時(shí)刻的系統(tǒng)輸入系統(tǒng)輸入u時(shí),或系統(tǒng)是一個(gè)變采樣時(shí)間系統(tǒng)(時(shí),或系統(tǒng)是一個(gè)變采樣時(shí)間系統(tǒng)(v
48、ariable sample time system)且采樣時(shí)間計(jì)算與輸入)且采樣時(shí)間計(jì)算與輸入u相關(guān)時(shí),需要直接饋通。相關(guān)時(shí),需要直接饋通。time=(n*sample_time_value)+offset_time其中其中n表示第表示第n個(gè)采樣點(diǎn)。個(gè)采樣點(diǎn)。Simulink在每一個(gè)采樣點(diǎn)上調(diào)用在每一個(gè)采樣點(diǎn)上調(diào)用mdlOutput和和mdlUpdate例程。例程。 對(duì)于連續(xù)時(shí)間系統(tǒng)采樣時(shí)間和偏移量的值應(yīng)該設(shè)置為零。對(duì)于連續(xù)時(shí)間系統(tǒng)采樣時(shí)間和偏移量的值應(yīng)該設(shè)置為零。采樣時(shí)間還可以繼承自驅(qū)動(dòng)模塊、目標(biāo)模塊或者系統(tǒng)最小采樣采樣時(shí)間還可以繼承自驅(qū)動(dòng)模塊、目標(biāo)模塊或者系統(tǒng)最小采樣時(shí)間,這種情況下采樣
49、時(shí)間值應(yīng)該設(shè)置為時(shí)間,這種情況下采樣時(shí)間值應(yīng)該設(shè)置為-1,或者,或者INHERITED_SAMPLE_TIME。57 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)(3)動(dòng)態(tài)輸入(動(dòng)態(tài)輸入(Dynamically sized inputs)S-函數(shù)支持動(dòng)態(tài)可變維數(shù)的輸入。函數(shù)支持動(dòng)態(tài)可變維數(shù)的輸入。S-函數(shù)的輸入變量函數(shù)的輸入變量u的維數(shù)決定于驅(qū)動(dòng)的維數(shù)決定于驅(qū)動(dòng)S-函數(shù)模塊的輸入信號(hào)的維數(shù)。函數(shù)模塊的輸入信號(hào)的維數(shù)。 58 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)3S-函數(shù)的工作原理函數(shù)的工作原理(1)動(dòng)態(tài)系統(tǒng)描述動(dòng)態(tài)系統(tǒng)描述 在對(duì)動(dòng)態(tài)系統(tǒng)建模時(shí),總是能夠采用廣義的狀態(tài)
50、空間形在對(duì)動(dòng)態(tài)系統(tǒng)建模時(shí),總是能夠采用廣義的狀態(tài)空間形式進(jìn)行表示。對(duì)無論是線性系統(tǒng)還是非線性系統(tǒng)進(jìn)行描述式進(jìn)行表示。對(duì)無論是線性系統(tǒng)還是非線性系統(tǒng)進(jìn)行描述Simulink框圖的大部分模塊都具有一個(gè)輸入向量框圖的大部分模塊都具有一個(gè)輸入向量u、一個(gè)輸出、一個(gè)輸出向量向量y和一個(gè)狀態(tài)向量和一個(gè)狀態(tài)向量x,其中,其中x分為兩部分:連續(xù)狀態(tài)占據(jù)第分為兩部分:連續(xù)狀態(tài)占據(jù)第一部分,離散狀態(tài)占據(jù)第二部分,如圖所示。一部分,離散狀態(tài)占據(jù)第二部分,如圖所示。系統(tǒng)狀態(tài)空間系統(tǒng)狀態(tài)空間59 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)(2)Simulink仿真的過程仿真的過程 Simulink的仿真過程
51、有初始化和仿真運(yùn)行兩個(gè)階段組的仿真過程有初始化和仿真運(yùn)行兩個(gè)階段組成,在初始化階段,主要功能是初始化所有的模塊,完成成,在初始化階段,主要功能是初始化所有的模塊,完成的工作有:將參數(shù)傳遞給的工作有:將參數(shù)傳遞給MATLAB進(jìn)行求值、展開模型進(jìn)行求值、展開模型的層次、檢查信號(hào)的寬度和連接、確定狀態(tài)初值和采樣時(shí)的層次、檢查信號(hào)的寬度和連接、確定狀態(tài)初值和采樣時(shí)間等。間等。 在仿真運(yùn)行階段,完成的工作有:計(jì)算輸出、更新離在仿真運(yùn)行階段,完成的工作有:計(jì)算輸出、更新離散狀態(tài)、計(jì)算連續(xù)狀態(tài)、計(jì)算輸出等。散狀態(tài)、計(jì)算連續(xù)狀態(tài)、計(jì)算輸出等。S-函數(shù)仿真流程如函數(shù)仿真流程如圖圖(c)所示,每個(gè)功能模塊都對(duì)應(yīng)于
52、一個(gè)仿真例程。所示,每個(gè)功能模塊都對(duì)應(yīng)于一個(gè)仿真例程。60 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)圖圖(c) S-函數(shù)仿真流程函數(shù)仿真流程61 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)4編寫編寫M文件文件S-函數(shù)函數(shù)(1)M文件文件S-函數(shù)的工作流程函數(shù)的工作流程 M文件文件S-函數(shù)和上節(jié)所介紹的函數(shù)和上節(jié)所介紹的S-函數(shù)仿真流函數(shù)仿真流程是一致的。它調(diào)用例程函數(shù)的順序是通過標(biāo)志程是一致的。它調(diào)用例程函數(shù)的順序是通過標(biāo)志Flag來控制的。圖來控制的。圖(d)給出了各仿真階段的標(biāo)志值、給出了各仿真階段的標(biāo)志值、變量值及其對(duì)應(yīng)仿真例程。變量值及其對(duì)應(yīng)仿真例程。 62
53、6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)圖圖(d) M文件文件S-函數(shù)流程函數(shù)流程63 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)(2)M文件文件S-函數(shù)模板函數(shù)模板 Simulink為用戶編寫為用戶編寫S-函數(shù)提供了各種模板文件,函數(shù)提供了各種模板文件,其中定義了其中定義了S-函數(shù)完整的框架結(jié)構(gòu),用戶可以根據(jù)自己函數(shù)完整的框架結(jié)構(gòu),用戶可以根據(jù)自己的需要加以修改。的需要加以修改。 編寫編寫M文件文件S-函數(shù)時(shí),推薦使用函數(shù)時(shí),推薦使用S-函數(shù)模板文件函數(shù)模板文件sfuntmpl.m。這個(gè)文件是一個(gè)完整的。這個(gè)文件是一個(gè)完整的M文件文件S-函數(shù),它函數(shù),它包含包含1個(gè)
54、主函數(shù)和個(gè)主函數(shù)和6個(gè)子函數(shù)。個(gè)子函數(shù)。 在主函數(shù)內(nèi),程序根據(jù)標(biāo)志變量在主函數(shù)內(nèi),程序根據(jù)標(biāo)志變量Flag,將執(zhí)行流程,將執(zhí)行流程轉(zhuǎn)移到相應(yīng)的子函數(shù),即例程函數(shù)。轉(zhuǎn)移到相應(yīng)的子函數(shù),即例程函數(shù)。Flag標(biāo)志量作為主標(biāo)志量作為主函數(shù)的參數(shù)由系統(tǒng)(函數(shù)的參數(shù)由系統(tǒng)(Simulink引擎)調(diào)用時(shí)給出。引擎)調(diào)用時(shí)給出。64 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 若要打開模板文件,可在若要打開模板文件,可在MATLAB命令窗口輸入命令窗口輸入“edit sfuntmpl”命令,命令,模板如下:模板如下:function sys,x0,str,ts = sfuntmpl(t,x,u,f
55、lag)switch flag, case 0, sys,x0,str,ts=mdlInitializeSizes;case 1, sys=mdlDerivatives(t,x,u);case 2, sys=mdlUpdate(t,x,u);case 3, sys=mdlOutputs(t,x,u);case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u);otherwise error(Unhandled flag = ,num2str(flag);end65 6.2 Simulink仿真技術(shù)與仿真技
56、術(shù)與S函數(shù)函數(shù)function sys,x0,str,ts=mdlInitializeSizessizes = simsizes; % 生成sizes數(shù)據(jù)結(jié)構(gòu) sizes.NumContStates = 0; % 連續(xù)狀態(tài)數(shù),缺省為 0sizes.NumDiscStates = 0; % 離散狀態(tài)數(shù),缺省為 0sizes.NumOutputs = 0; % 輸出量個(gè)數(shù),缺省為 0sizes.NumInputs = 0; % 輸入量個(gè)數(shù),缺省為 0sizes.DirFeedthrough = 1; %是否存在直接饋通。1:存在;0:不存在,缺省為 1。sizes.NumSampleTimes =
57、 1; % 采樣時(shí)間個(gè)數(shù),至少是一個(gè)sys = simsizes(sizes); % 返回sizes數(shù)據(jù)結(jié)構(gòu)所包含的信息66 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)% initialize the initial conditionsx0 = ; % 設(shè)置初始狀態(tài)str = ; % 保留變量置空ts = 0 0; % 采樣時(shí)間:采樣周期 偏移量,采樣周期為0表示是連續(xù)系統(tǒng)計(jì)算導(dǎo)數(shù)例程子函數(shù):給定 t,x,u, 計(jì)算連續(xù)狀態(tài)的導(dǎo)數(shù),用戶應(yīng)該在此給出系統(tǒng)的連續(xù)狀態(tài)方程。該子函數(shù)可以不存在。67 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)function sys=mdlD
58、erivatives(t,x,u) sys = ; % sys 表示狀態(tài)導(dǎo)數(shù),即dx。狀態(tài)更新例程子函數(shù):給定 t,x,u, 計(jì)算離散狀態(tài)的更新。每個(gè)仿真步長(zhǎng)必然調(diào)用該子函數(shù),不論是否有意義。用戶除了在此描述系統(tǒng)的離散狀態(tài)方程外,還可以填入其它每個(gè)仿真步長(zhǎng)都有必要執(zhí)行的代碼function sys=mdlUpdate(t,x,u) sys = ; % sys 表示下一個(gè)離散狀態(tài) 即 x(k+1)。計(jì)算輸出例程子函數(shù):給定 t,x,u, 計(jì)算輸出。該子函數(shù)必須存在,用戶可以在此描述系統(tǒng)的輸出方程68 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù)function sys=mdlOutpu
59、ts(t,x,u) sys = ; % sys 表示下輸出,即y。計(jì)算下一個(gè)采樣時(shí)間,僅在系統(tǒng)是變采樣時(shí)間系統(tǒng)時(shí)調(diào)用function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; %設(shè)置下一次的采樣時(shí)間是1s以后sys = t + sampleTime; %sys 表示下一個(gè)采樣時(shí)間點(diǎn)。 %仿真結(jié)束時(shí)要調(diào)用的例程函數(shù),在仿真結(jié)束時(shí)調(diào)用,用戶可以在此完成結(jié)束仿真所需的必要工作69 6.2 Simulink仿真技術(shù)與仿真技術(shù)與S函數(shù)函數(shù) 程序的前程序的前17行是主程序,下面的程序是需要用戶根據(jù)仿真行是主程序,下面的程序是需要用戶根據(jù)仿真要求進(jìn)行
60、充實(shí)的子程序。要求進(jìn)行充實(shí)的子程序。 主函數(shù)包含四個(gè)輸出:主函數(shù)包含四個(gè)輸出:sys 數(shù)組包含某個(gè)子函數(shù)返回的值,數(shù)組包含某個(gè)子函數(shù)返回的值,它的含義隨著調(diào)用子函數(shù)的不同而不同;它的含義隨著調(diào)用子函數(shù)的不同而不同;x0 為所有狀態(tài)的初為所有狀態(tài)的初始化向量;始化向量;str是保留參數(shù),總是一個(gè)空矩陣;是保留參數(shù),總是一個(gè)空矩陣;Ts返回系統(tǒng)采樣返回系統(tǒng)采樣時(shí)間。注意在編寫自己的時(shí)間。注意在編寫自己的S-函數(shù)時(shí),應(yīng)該把函數(shù)名函數(shù)時(shí),應(yīng)該把函數(shù)名sfuntmpl改改為為S-function塊中對(duì)應(yīng)的函數(shù)名。塊中對(duì)應(yīng)的函數(shù)名。 初始化例程子函數(shù)是必須存在的子函數(shù),在初始化階段,初始化例程子函數(shù)是必須存在的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 業(yè)務(wù)連續(xù)性管理體系構(gòu)建與優(yōu)化指南
- 邊緣計(jì)算設(shè)備的多模態(tài)數(shù)據(jù)融合威脅檢測(cè)與防御-洞察及研究
- 華為公關(guān)經(jīng)費(fèi)管理辦法
- 農(nóng)業(yè)項(xiàng)目考核管理辦法
- 辣椒種植新技術(shù)推廣方案指南
- 北京擺攤行為管理辦法
- 公共區(qū)域職場(chǎng)管理辦法
- 酒店員工獎(jiǎng)勵(lì)與處罰制度
- 江蘇技能競(jìng)賽管理辦法
- 互聯(lián)網(wǎng)企業(yè)敏捷組織模式創(chuàng)新研究
- 維修安全生產(chǎn)管理制度
- 《小學(xué)生心理健康教育》試題及答案
- 2024年全球及中國(guó)神經(jīng)康復(fù)外骨骼機(jī)器人行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 某鎮(zhèn)“十五五”發(fā)展規(guī)劃編制思路
- 江蘇省連云港市2024-2025學(xué)年高二年級(jí)上冊(cè)期末調(diào)研考試物理試題(選修)解析版
- 免疫初中試題及答案
- 宏觀經(jīng)濟(jì)學(xué) 試題及答案
- GB/T 23454-2025石材臺(tái)面板
- 科研單位科研誠(chéng)信自查報(bào)告及整改措施
- 加工碎石合作協(xié)議書
- 地板拆除合同協(xié)議書
評(píng)論
0/150
提交評(píng)論