第十章+simulink仿真基礎(chǔ)(原模板).ppt_第1頁(yè)
第十章+simulink仿真基礎(chǔ)(原模板).ppt_第2頁(yè)
第十章+simulink仿真基礎(chǔ)(原模板).ppt_第3頁(yè)
第十章+simulink仿真基礎(chǔ)(原模板).ppt_第4頁(yè)
第十章+simulink仿真基礎(chǔ)(原模板).ppt_第5頁(yè)
已閱讀5頁(yè),還剩186頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2020/8/7,1,第十章 SIMULNK仿真基礎(chǔ),2020/8/7,2,主要內(nèi)容,SIMILINK與建模仿真 模塊的基本操作 運(yùn)行仿真 基本模塊介紹 連續(xù)系統(tǒng) 子系統(tǒng)及其封裝技術(shù),2020/8/7,3,10.1 SIMULINK與建模仿真10.1.1 SIMULINK,1. SIMULINK是MATLAB軟件的擴(kuò)展,它是實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模和仿真的一個(gè)軟件包,它與MATLAB語言的主要區(qū)別在于,其與用戶交互接口是基于Windows的模型化圖形輸入,其結(jié)果是使得用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建,而非語言的編程上。 2.所謂模型化圖形輸入是指SIMULINK提供了一些按功能分類的基本的系統(tǒng)

2、模塊,用戶只需要知道這些模塊的輸入輸出及模塊的功能,而不必考察模塊內(nèi)部是如何實(shí)現(xiàn)的,通過對(duì)這些基本模塊的調(diào)用,再將它們連接起來就可以構(gòu)成所需要的系統(tǒng)模型(以.mdl文件進(jìn)行存?。?,進(jìn)而進(jìn)行仿真與分析。,2020/8/7,4,10.1.2 SIMULNK應(yīng)用領(lǐng)域,1. 通訊與衛(wèi)星系統(tǒng); 2. 航空航天系統(tǒng); 3. 生物系統(tǒng); 4. 船舶系統(tǒng); 5. 汽車系統(tǒng); 6. 金融系統(tǒng); 7. 控制系統(tǒng)。,2020/8/7,5,10.1.3 SIMULINK的基本使用,1. 安裝 隨MATLAB安裝或單獨(dú)安裝。 2. 啟動(dòng) (1) 命令窗口中鍵入Simulink (2) 工具欄中,點(diǎn)擊快捷按鈕來打開Sim

3、ulink 窗口。,2020/8/7,6,出現(xiàn) Simulink Library Browser的窗口,在這個(gè)窗口中列出了按功能分類的各種模塊的名稱。,2020/8/7,7,注:在MATLAB命令窗口中輸入Simulink3 出現(xiàn)用圖標(biāo)形式顯示的Library :Simulink3的Simulink模塊庫(kù)窗口。 兩種模塊庫(kù)窗口界面只是不同的顯示形式,用戶可以根據(jù)各人喜好進(jìn)行選用,一般說來第二種窗口直觀、形象,易于初學(xué)者,但使用時(shí)會(huì)打開太多的子窗口。,2020/8/7,8,3. 創(chuàng)建模型窗口 (1) 在Matlab窗口file菜單下選擇new命令 的model; (2) Simulink窗口fi

4、le菜單下選擇new命令 的model; (3) 單擊Simulink 窗口工具欄按 鈕。,2020/8/7,9,10.1.4 建模仿真,1.建模仿真的一般過程: (1)打開一個(gè)空白的編輯窗口; (2)將模塊庫(kù)中模塊復(fù)制到編輯窗口里,并依照 給定的框圖修改編輯窗口中模塊的參數(shù); (3)將各個(gè)模塊按給定的框圖連接起來; (4)用菜單選擇或命令窗口鍵入命令進(jìn)行仿真分 析,在仿真的同時(shí),可以觀察仿真結(jié)果,如 果發(fā)現(xiàn)有不正確的地方,可以停止仿真,對(duì) 參數(shù)進(jìn)行修正; (5)如果對(duì)結(jié)果滿意,可以將模型保存。,2020/8/7,10,2. Simulink模型基本結(jié)構(gòu),(1) 一個(gè)典型的Simulink模型

5、包括如下三種類型 的元素: 信號(hào)源模塊 被模擬的系統(tǒng)模塊 輸出顯示模塊 (2) Simulink模型元素關(guān)聯(lián)圖,2020/8/7,11,信號(hào)源為系統(tǒng)的輸入,它包括常數(shù)信號(hào)源、函數(shù)信號(hào)發(fā)生器(如正弦波和階躍函數(shù)波等)和用戶自己在MATLAB 中創(chuàng)建的自定義信號(hào)。 系統(tǒng)模塊作為中心模塊是Simulink仿真建模所要解決的主要部分。 系統(tǒng)的輸出由顯示模塊接收。輸出顯示的形式包括圖形顯示、示波器顯示和輸出到文件或MATLAB 工作空間中三種。輸出模塊主要在Sinks 庫(kù)中。,2020/8/7,12,例1:,10.1.5 仿真簡(jiǎn)單模型,2020/8/7,13,創(chuàng)建模型步驟,1. 添加模塊 從源模塊庫(kù)(S

6、ources)中復(fù)制正弦波模塊(Sine Wave)。 連續(xù)模塊庫(kù)(Continuous)復(fù)制積分模塊(Integrator)。 輸出顯示模塊庫(kù)(Sinks)復(fù)制示波器模塊(Scope)。 2. 連接模塊,2020/8/7,14,3. 運(yùn)行仿真 雙擊示波器模塊,打開Scope窗口。雙擊模型窗口菜單中的SimulationStart,仿真執(zhí)行,結(jié)果如圖所示。,2020/8/7,15,2020/8/7,16,在仿真時(shí)需要將積分模塊的初始值設(shè)置為 -1,最終可以得到標(biāo)準(zhǔn)的余弦曲線。,2020/8/7,17,例2:利用simulink來計(jì)算“chirp”信號(hào)和正 弦函數(shù)信號(hào)疊加后的信號(hào)波形。 (exa

7、mp10_1_2.mdl),2020/8/7,18,顯示三個(gè)波形,2020/8/7,19,例3:?jiǎn)巫杂啥认到y(tǒng):,初始條件:,要求:采用Simulink對(duì)系統(tǒng)進(jìn)行仿真。 已知參數(shù): m=1, c=1, k=1 (examp10_1_3.mdl),2020/8/7,20,解:,2020/8/7,21,2020/8/7,22,注:如果系統(tǒng)中沒有阻尼,則動(dòng)力方程為: (examp10_1_3_0.mdl),2020/8/7,23,解:,2020/8/7,24,主要內(nèi)容,SIMILINK與建模仿真 模塊的基本操作 運(yùn)行仿真 基本模塊介紹 連續(xù)系統(tǒng) 子系統(tǒng)及其封裝技術(shù),2020/8/7,25,10.2 模

8、塊的基本操作 10.2.1 打開模型 1. 新建模型 2. 打開一個(gè)已存在的模型 方法1:通過FileOpen命令; 方法2:在MATLAB命令窗口中直接鍵 入模型名。,2020/8/7,26,10.2.2 模塊操作 調(diào)整模塊的大小 選中模塊,模塊四角出現(xiàn)小方塊,然后按住鼠 標(biāo)拖曳。 2. 旋轉(zhuǎn)模塊 選中模塊,然后選擇菜單命令FormatRotate 模塊將順時(shí)針方向旋轉(zhuǎn)90度。 3. 模塊內(nèi)部復(fù)制 方法1:先按Ctrl鍵,再單擊模塊 方法2:右鍵拖曳模塊 方法3:EditCopy和EditPaste 方法4:選中模塊,Ctrl+C復(fù)制,Ctrl+V粘貼 方法5:右鍵快捷菜單,2020/8/7

9、,27,4. 刪除模塊 方法1:選中模塊,按Delete鍵 方法2:選中模塊,然后從模型窗口中選擇 EditDelete 方法3:選中模塊,然后選擇菜單EditCut刪 至剪貼板 5. 選中多個(gè)模塊 方法1:按住Shift鍵,同時(shí)用鼠標(biāo)單擊想要選中 的模塊 方法2:使用“范圍框”,在使用“范圍框”后,若 想繼續(xù)選擇模塊,可按住Shift鍵,再單 擊要選的模塊即可,2020/8/7,28,注:若多個(gè)模塊被選中,則這些模塊可以被 當(dāng)作一個(gè)整體進(jìn)行操作,如移動(dòng)、復(fù)制和刪除等,操作方法和單個(gè)模塊的操作方法相同。 6. 修改模塊名 鼠標(biāo)左鍵雙擊模塊名,則模塊名進(jìn)行編輯狀態(tài)。編輯完標(biāo)簽后,在模塊名外的任意

10、位置上單擊鼠標(biāo),則新的模塊名將被承認(rèn)。,2020/8/7,29,7. 改變模塊名位置 選擇菜單命令FormatFlip Name,模塊名將發(fā)生翻轉(zhuǎn)。若原模塊名位置在模塊的左邊,則翻轉(zhuǎn)到右邊。若原模塊名位置在模塊的下方,則翻轉(zhuǎn)到上方。 8. 模塊名顯示與否 選中模塊,然后通過選擇菜單命令FormatHide Name,則模塊的標(biāo)簽從屏幕上消失。此時(shí)Hide Name變成為Show Name,選中它可以重新顯示標(biāo)簽。 9. 增加陰影 選擇菜單命令FormatShow Drop Shadow 則模塊增加陰影。此時(shí)Show Drop Shadow變成為Hide Drop Shadow,選中它可以隱藏陰

11、影。,2020/8/7,30,10.2.3 信號(hào)線操作 1. 繪制信號(hào)線 方法1: 由輸出端口拖曳鼠標(biāo)到輸入端口,或拖曳鼠 標(biāo)由輸入端口到輸出端口。 方法2: 先選中模塊,然后按住Ctrl并用鼠標(biāo)左鍵單 擊目標(biāo)模塊。 2. 斷開模塊間的連線 方法1: 先按下Shift鍵,然后用鼠標(biāo)左鍵拖動(dòng)模塊到 另一個(gè)位置。 方法2: 將鼠標(biāo)指向連線的箭頭處,當(dāng)出現(xiàn)一個(gè)小圓 圈圈住箭頭時(shí)按下鼠標(biāo)左鍵并移動(dòng)連線。,2020/8/7,31,3. 在信號(hào)線之間插入模塊 用鼠標(biāo)拖動(dòng)模塊到信號(hào)線上,使得模塊的輸入/輸出端口對(duì)準(zhǔn)信號(hào)線。 4. 移動(dòng)線斷 按下鼠標(biāo)左鍵直接拖動(dòng)信號(hào)線。 5. 移動(dòng)節(jié)點(diǎn) 選中信號(hào)線某段,單擊選

12、中此段,移動(dòng)鼠標(biāo)到黑色小方框上,當(dāng)出現(xiàn)一個(gè)小圓圈時(shí)按下鼠標(biāo)左鍵移動(dòng)信號(hào)線。 6. 刪除信號(hào)線 同刪除模塊一樣。,2020/8/7,32,7. 信號(hào)線調(diào)整為斜線段 先單擊Shift按鈕,將鼠標(biāo)指向需要移動(dòng)的 直線上的一點(diǎn)并按下鼠標(biāo)左鍵拖動(dòng)直線。 8. 信號(hào)線調(diào)整為折線段 按住鼠標(biāo)左鍵不放直接拖動(dòng)直線。,2020/8/7,33,9. 信號(hào)線標(biāo)簽 (1) 建立信號(hào)標(biāo)簽 在直線上直接用鼠標(biāo)左鍵雙擊,然后輸入。 (2) 復(fù)制信號(hào)標(biāo)簽 按下Ctrl鍵,然后按住鼠標(biāo)左鍵選中標(biāo)簽并拖動(dòng) 。 (3) 移動(dòng)信號(hào)標(biāo)簽 按住鼠標(biāo)左鍵選中標(biāo)簽并拖動(dòng) (4) 編輯信號(hào)標(biāo)簽 在標(biāo)簽框內(nèi)用鼠標(biāo)左鍵雙擊,然后編輯 (5) 刪除

13、信號(hào)標(biāo)簽 按下 Shift鍵,然后用鼠標(biāo)左鍵單擊選中標(biāo)簽,再 按Delete鍵,2020/8/7,34,10.2.4 模型注釋 使用模型注釋可以使模型更易讀懂,其效果如同MATLAB 程序中的注釋行一樣。對(duì)于經(jīng)常使用Simulink的用戶,養(yǎng)成經(jīng)常使用注釋的習(xí)慣是非常重要的。 1. 建立注釋 在模型圖標(biāo)中用鼠標(biāo)左鍵雙擊,然后輸入文字。 2. 復(fù)制注釋 按下Ctrl鍵,然后按下鼠標(biāo)左鍵選中注釋文字并 拖動(dòng)。,2020/8/7,35,3. 移動(dòng)注釋 按下鼠標(biāo)左鍵選中注釋并拖動(dòng)。 4. 編輯注釋 單擊注釋文字,然后編輯。 5. 刪除注釋 按下Shift鍵,然后用鼠標(biāo)選中注釋文字,再按Delete鍵。

14、 6. 改變注釋字體 要改變注釋內(nèi)容的字體,先選中注釋,選擇模型窗口菜單中的【Format Font】選項(xiàng),就會(huì)出現(xiàn)一個(gè)字體選擇的對(duì)話框,選中認(rèn)為合適的字體,然后按【OK】。,2020/8/7,36,10.2.5 創(chuàng)建復(fù)雜模型 通過兩個(gè)算例來說明建模中的其他一些技巧。 例1: 一個(gè)生長(zhǎng)在罐中的細(xì)菌的簡(jiǎn)單模型。假定細(xì)菌的出生率和當(dāng)前細(xì)菌的總數(shù)成正比,死亡率和當(dāng)前的總數(shù)的平方成正比。若以x 代表當(dāng)前細(xì)菌的總數(shù),則細(xì)菌的出生率可表示為: 細(xì)菌的死亡率可表示為: 細(xì)菌總數(shù)的總變化率可表示為出生率與死亡率之差。因此系統(tǒng)可表示為如下的微分方程形式:,2020/8/7,37,假定b=1/h,p=0.5/h,

15、當(dāng)前細(xì)菌的總數(shù)為100,計(jì)算一個(gè)小時(shí)后罐中的細(xì)菌總數(shù)。 步驟一:添加模塊 這是一個(gè)一階系統(tǒng),因此一個(gè)用來解微分方程的積分模塊是必要的。積分模塊的輸入為 ,輸出為 。,2020/8/7,38,2020/8/7,39,2020/8/7,40,2020/8/7,41,模型的起始時(shí)間默認(rèn)為0,終止時(shí)間默認(rèn)為10.0。需要改變終止時(shí)間時(shí),旋轉(zhuǎn)模型菜單【SimulinkParameters】,打開模型參數(shù)對(duì)話框,設(shè)置【Stop time】為10.0。 現(xiàn)在模型就全部完成了,選擇【FileSave】命令保存模型為bio_example,Simulink將以bio_example.mdl為文件名保存到指定的位

16、置。,2020/8/7,42,步驟四:運(yùn)行模型 雙擊示波器模塊,并選擇【SimulinkStart】命令運(yùn)行模型,示波器將繪制出仿真結(jié)果。,2020/8/7,43,例2: 三自由度結(jié)構(gòu)強(qiáng)迫振動(dòng)(examp10_2_2.mdl),2020/8/7,44,已知參數(shù):m=1,k=1,p0=1,w=0.5 要求:采用Simulink對(duì)系統(tǒng)進(jìn)行動(dòng)態(tài)仿真,計(jì)算時(shí) 間050 解:,2020/8/7,45,2020/8/7,46,2020/8/7,47,10.2.6 模型拷貝到Word文檔中 1. 拷貝到Word文檔 使用【EditCopy Model】命令,然后在Word 中粘貼. 2.在Word文檔中編輯

17、 使用取消組合命令.,2020/8/7,48,主要內(nèi)容,SIMILINK與建模仿真 模塊的基本操作 運(yùn)行仿真 基本模塊介紹 連續(xù)系統(tǒng) 子系統(tǒng)及其封裝技術(shù),2020/8/7,49,10.3 運(yùn)行仿真 使用窗口仿真 使用MATLAB命令運(yùn)行仿真,2020/8/7,50,10.3.1 使用窗口運(yùn)行仿真 優(yōu)點(diǎn):人機(jī)交互性強(qiáng),不必記住繁瑣的命 令語句即可進(jìn)行操作。 設(shè)置仿真參數(shù) 選擇菜單選項(xiàng)【SimulationConfiguration Parameters】,可以對(duì)仿真參數(shù)及算法進(jìn)行 設(shè)置。,2020/8/7,51,1. 解法設(shè)置頁(yè)(Solver) 當(dāng)選中菜單選項(xiàng) 【SimulationConfig

18、uration Parameters】 后,出現(xiàn)參數(shù)及算法等設(shè)置頁(yè),再點(diǎn)擊 【Solver】,則出現(xiàn)解法設(shè)置頁(yè),如圖所示。,2020/8/7,52,各種ode命令地說明,2020/8/7,53,2. Data Import/Export面板 該面板主要用于向Matlab7.0工作空間輸出模型仿真結(jié)果數(shù)據(jù),或從Matlab7.0工作空間讀入數(shù)據(jù)到模型,如圖所示。,2020/8/7,54,(1) 從MATLAB工作空間加載 (Load from workspace) 雖然Simulink提供了多種系統(tǒng)輸入信號(hào),但并不能完全滿足需要。Simulink允許使用用戶自定義的信號(hào)作為系統(tǒng)輸入信號(hào)。在Loa

19、d from workspace框中,用戶可以設(shè)置MATLAB中的變量作為系統(tǒng)輸入信號(hào)或系統(tǒng)狀態(tài)初值,如下所述.,2020/8/7,55,Input:用來設(shè)置系統(tǒng)輸入信號(hào),其格式為t, u,其中t、u 均為列向量,t 為輸入信號(hào)的時(shí)間向量,u 為相應(yīng)時(shí)刻的信號(hào)取值。可以使用多個(gè)信號(hào)輸入,如t, u1, u2。輸入信號(hào)與Simulink的接口由Inport模塊(In1模塊)實(shí)現(xiàn)。 Initial state:用來設(shè)置系統(tǒng)狀態(tài)變量的初始值。初始值可為列向量。,2020/8/7,56,(2) 仿真結(jié)果輸出到MATLAB的工作空間 (Save to workspace) 可以將系統(tǒng)的仿真結(jié)果、系統(tǒng)仿真

20、時(shí)刻、系統(tǒng)中的狀態(tài)或指定的信號(hào)輸出到MATLAB的工作空間中,以便用戶對(duì)其進(jìn)行定量分析,如下所述。 Time:輸出系統(tǒng)仿真時(shí)刻。 States:輸出系統(tǒng)模型中的所有狀態(tài)變量。 Output:輸出系統(tǒng)模型中的所有由Output 模塊(即Out1 模塊)表示的信號(hào)。 Final state:輸出系統(tǒng)模型中的最終狀態(tài)變量取值,即最后仿真時(shí)刻處的狀態(tài)值。,2020/8/7,57,(3) 輸出選項(xiàng)(Save options) Limit data points to last:表示輸出數(shù)據(jù)的長(zhǎng)度(從信號(hào)的最后數(shù)據(jù)點(diǎn)記起)。 Format:表示輸出數(shù)據(jù)類型。共有三種形式:Structure with Ti

21、me(帶有仿真時(shí)間變量的結(jié)構(gòu)體)、Structure(不帶仿真時(shí)間變量的結(jié)構(gòu)體)、Array(信號(hào)數(shù)組)。,2020/8/7,58,例:假定兩個(gè)輸入信號(hào)都為正弦信號(hào)sin(t), 并且假定初始值為0,1(examp10_3_1),2020/8/7,59,2020/8/7,60,(1)將Load from workspace欄的兩項(xiàng)全部選上,并且將Input欄改寫為t, u, u; Initial state欄改寫為0,1 (2)將Save to workspace欄的四項(xiàng)全部選上。 (3)Save option欄的三項(xiàng)分別為:1000,1,Array (4)運(yùn)行仿真前,首先需要生成系統(tǒng)輸入信號(hào)

22、,在MATLAB命令窗口中鍵入如下命令: t=0:0.1:10;t=t; u=sin(t);,2020/8/7,61,示波器顯示圖形,2020/8/7,62,MATLAB命令窗口使用Plot畫出圖形,2020/8/7,63,運(yùn)行whos的結(jié)果:,Name Size Bytes Class t 101x1 808 double array tout 51x1 408 double array u 101x1 808 double array xFinal 1x2 16 double array xout 51x2 816 double array yout 51x2 816 double arr

23、ay 上面t和tout的維數(shù)不相同,這是因?yàn)樵赟olver中采用了變步長(zhǎng)解法,若采用定步長(zhǎng)法(步長(zhǎng)取0.1)則維數(shù)相同。,2020/8/7,64,10.3.2 使用MATLAB命令運(yùn)行仿真,MATLAB提供了sim命令,用戶可以在MATLAB 的環(huán)境下以命令行或M 文件的形式運(yùn)行Simulink模型。 使用命令行方式,用戶可以在腳本文件中重復(fù)地對(duì)同一系統(tǒng)在不同的仿真參數(shù)或不同的系統(tǒng)模塊參數(shù)下進(jìn)行仿真,而無需一次又一次啟動(dòng)Simulink圖形窗口中的Start Simulink。 注:下面對(duì)進(jìn)行動(dòng)態(tài)系統(tǒng)仿真的命令逐一介紹。首先看一個(gè)例子。,2020/8/7,65,例:建立一個(gè)簡(jiǎn)單的動(dòng)態(tài)系統(tǒng),其功

24、能如下: (1)系統(tǒng)的輸入為一單位幅值、單位頻率的正 弦信號(hào); (2)系統(tǒng)的輸出信號(hào)為輸入信號(hào)的積分。 要求如下: (1)系統(tǒng)的輸入信號(hào)由MATLAB 工作空間中的 變量提供,時(shí)間010s; (2)使用MATLAB繪制原始輸入信號(hào)與系統(tǒng)運(yùn) 算結(jié)果的曲線。,2020/8/7,66,問題描述: 原函數(shù):sin(t) 時(shí)間區(qū)域:t=010s 原函數(shù)的積分為: 若取零初始條件,則有:C=1 因此得到:,2020/8/7,67,Simulink模型(保存文件名為:command_in_out),2020/8/7,68,對(duì)Data Impot/Export進(jìn)行如下設(shè)置: (1)Load from work

25、space 欄:Input 打勾, 并填入sim_input(由MATLAB 工作空間 輸入的輸入名)。Initial state 不選。 (2)Save to workspace 欄:Time 和Output 項(xiàng)勾上,State 和Final state 項(xiàng)不勾。 (3)Save options 欄依次為:1000,1,Array,2020/8/7,69,在MATLAB工作空間中定義輸入變量sim_input如下: t = 0: 0.1: 10; t = t; % 表示輸入信號(hào)的時(shí) 間范圍 u = sin( t ); % 產(chǎn)生輸入正弦信號(hào) sim_input= t, u ; % 傳遞給Sim

26、ulink系 統(tǒng)模型的變量,2020/8/7,70,然后運(yùn)行Simulink仿真。最后在MATLAB工作空間運(yùn)行以下命令: Plot(t,u,tout,yout,-);grid,2020/8/7,71,10.3.2.1 使用sim命令進(jìn)行動(dòng)態(tài)系統(tǒng)仿真,1. 使用語法 sim命令的格式為: t, x, y = sim( model, timespan, options, ut) t, x, y1, y2, , yn = sim( model, timespan, options, ut),以上是完整的語法格式,實(shí)際使用時(shí)可以省略其中的某些參數(shù)設(shè)置而采用默認(rèn)參數(shù)。除了參數(shù)“model”外,其它的仿

27、真參數(shù)設(shè)置均可以取值為空矩陣,此時(shí)sim命令對(duì)沒有設(shè)置的仿真參數(shù)使用默認(rèn)的參數(shù)值進(jìn)行仿真,默認(rèn)的參數(shù)值由系統(tǒng)模型框圖決定。用戶可以使用sim命令的options 參數(shù)對(duì)可選參數(shù)進(jìn)行設(shè)置,這樣設(shè)置的仿真參數(shù)將覆蓋模型默認(rèn)的參數(shù)。,2020/8/7,72,2. 參數(shù)說明,(1) model:需要進(jìn)行仿真的系統(tǒng)模型框圖名稱; (2) timespan:系統(tǒng)仿真的時(shí)間范圍(起始至終止時(shí)間),可有如下形式: tFinal:設(shè)置仿真終止時(shí)間。仿真起始時(shí)間默認(rèn)為0; tStart tFinal:設(shè)置起始時(shí)間(tStart)與終止時(shí)間(tFinal); tStart OutputTimes tFinal:設(shè)置

28、起始時(shí)間(tStart)與終止時(shí)間(tFinal),并且設(shè)置仿真返回的時(shí)間向量tStart OutputTimes tFinal,其中tStart、OutputTimes、tFinal必須按照升序排列。,2020/8/7,73,(3) options:由simset命令所設(shè)置的除仿真時(shí)間外的 仿真參數(shù); (4) ut:表示系統(tǒng)模型頂層的外部可選輸入。ut可以是MATLAB 函數(shù)。可以使用多個(gè)外部輸入ut1、ut2、。 (5) t:返回系統(tǒng)仿真的時(shí)間向量。 (6) x:返回系統(tǒng)仿真的狀態(tài)變量矩陣。 (7) y:返回系統(tǒng)仿真的輸出矩陣。按照頂層輸出Outport模塊的順序輸出。如果輸出信號(hào)為向量輸

29、出,則輸出信號(hào)具有與此向量相同的維數(shù)。 (8) y1,yn:返回多個(gè)系統(tǒng)仿真的輸出。,2020/8/7,74,3 . 舉例說明,例1:簡(jiǎn)單仿真(examp10_3_3.m) 輸入sin(t) 對(duì)于前面的動(dòng)態(tài)系統(tǒng) command_in_out,在前面進(jìn)行仿真時(shí)沒有使用命令行方式,在此采用命令行語句進(jìn)行仿真。在仿真之前,首先使用仿真參數(shù)設(shè)置對(duì)話框設(shè)置參數(shù),然后在MATLAB命令窗口中鍵入如下命令:,2020/8/7,75,clear, t=0:0.1:10; t=t; %表示輸入信號(hào)的時(shí)間范圍 u=sin(t); sim_input=t,u; %傳遞給Simulin系統(tǒng)模 型的變量 tout,x,

30、yout=sim(command_in_out); %使用sim進(jìn)行系統(tǒng)仿真,仿真參數(shù)取與前面相同 plot(t,u,tout,yout,-); grid,2020/8/7,76,2020/8/7,77,例2:仿真時(shí)間設(shè)置,在前面已經(jīng)對(duì)sim命令中的仿真時(shí)間參數(shù)timespan設(shè)置做了介紹。Timespan具有三種使用形式,根據(jù)不同動(dòng)態(tài)系統(tǒng)的不同要求,用戶可以選擇使用如下所示的三種形式進(jìn)行系統(tǒng)仿真: t, x, y =sim(model, tFinal) t, x, y = sim(model, tStart, tFinal) t, x, y =sim( model, tStart outpu

31、tTimes tFinal),2020/8/7,78,此外在默認(rèn)情況下,系統(tǒng)仿真的輸出結(jié)果(輸出時(shí)間、狀態(tài)和運(yùn)算結(jié)果)受到Simulink求解器仿真步長(zhǎng)的控制,因而系統(tǒng)仿真輸出結(jié)果也受到求解器步長(zhǎng)的控制。 如果需要在指定的時(shí)刻輸出系統(tǒng)仿真結(jié)果,則需要使用仿真時(shí)間設(shè)置的第三種方式,其中tStart outputTimes tFinal表示輸出時(shí)間向量,此向量為一遞增行向量。在sim命令中使用timespan設(shè)置系統(tǒng)仿真時(shí)間范圍,會(huì)覆蓋Simulink原來的仿真時(shí)間設(shè)置,但是并不會(huì)影響到系統(tǒng)模型。,2020/8/7,79,以前面command_in_out為例進(jìn)行說明。仿真參數(shù)設(shè)置對(duì)話框內(nèi)的設(shè)置與

32、前面相同。使用四組不同的仿真時(shí)間對(duì)此系統(tǒng)進(jìn)行仿真。 為了與系統(tǒng)模型文件command_in_out.mdl區(qū)別,所編制的M文件名取為command_in_out_m.m。若M文件名取為command_in_out.m,則在MATLAB工作空間運(yùn)行時(shí),將返回系統(tǒng)模型文件框圖。程序如下:,2020/8/7,80,t=0:0.1:10; t=t; u=sin(t); sim_input=t,u; tout1,x1,yout1=sim(command_in_out,5); 仿真時(shí)間范圍05s,輸出時(shí)間向量tout1 由Simulimk的求解器步長(zhǎng)決定 tout2,x2,yout2=sim(comman

33、d_in_out,1 8); 仿真時(shí)間范圍18s,輸出時(shí)間向量tout2 由Simulimk的求解器步長(zhǎng)決定 tout3,x3,yout3=sim(command_in_out,1:8); 仿真時(shí)間范圍18s,并且每隔1s 輸出一次,即輸出時(shí)間變量為1 2 3 4 5 6 7 8 tout4,x4,yout4=sim(command_in_out,1:0.2:8); 仿真時(shí)間范圍18s,并且每隔0.2s 輸出一次,即輸出時(shí)間變量為1 1.2 1.4 7.6 7.8 8 subplot(2,2,1); plot(t,u,tout1,yout1,*); subplot(2,2,2); plot(t

34、,u,tout2,yout2,*); subplot(2,2,3); plot(t,u,tout3,yout3,*); subplot(2,2,4); plot(t,u,tout4,yout4,*);,2020/8/7,81,2020/8/7,82,例3:外部輸入變量設(shè)置,前面對(duì)動(dòng)態(tài)系統(tǒng)command_in_out進(jìn)行仿真時(shí),通過設(shè)置Simulink仿真參數(shù)設(shè)置對(duì)話框中Data Import/Export面板中的外部變量輸入,以使系統(tǒng)在仿真過程中獲取輸入信號(hào)sim_input。除了使用這種方法從MATLAB工作空間中獲得系統(tǒng)輸入信號(hào)之外,用戶還可以通過使用sim命令中的ut參數(shù)來設(shè)置系統(tǒng)的外部

35、輸入信號(hào)。下面介紹如何使用ut參數(shù)設(shè)置外部輸入信號(hào)。 以command_in_out為例進(jìn)行說明。使用如下命令: t, x, y=sim(model, timespan, options, ut) ut為一個(gè)具有兩列的矩陣,第一列表示外部輸入信號(hào)的時(shí)間,第二列代表與時(shí)間列相對(duì)應(yīng)的外部輸入信號(hào)。,2020/8/7,83,MATLAB程序(command_in_out_m2.m),t=0:0.1:10; t=t; u=sin(t); sim_input=t, u; tout1, x1, yout1=sim(command_in_out, 10); 使用Simulink仿真參數(shù)對(duì)話框中的worksp

36、ace I/O 從MATLAB 工作空間中獲得輸入信號(hào) u=cos(t); ut=t, u; 改變系統(tǒng)輸入信號(hào) tout2, x2, yout2=sim(command_in_out, 10, , ut); 使用Sim中的ut參數(shù)獲得系統(tǒng)輸入信號(hào),ut的使用會(huì)覆蓋由Workspace I/O 的系統(tǒng)輸入設(shè)置,這一點(diǎn)可以在下面的系統(tǒng)仿真結(jié)果圖形中反映出來 subplot(2, 1, 1); plot(tout1, yout1); grid subplot(2, 1, 2); plot(tout2, yout2); grid,2020/8/7,84,2020/8/7,85,圖中上圖表示系統(tǒng)輸入為s

37、in(t)時(shí)的相應(yīng)曲線,下圖表示cos(t)時(shí)的相應(yīng)曲線。從圖中可明顯看出,當(dāng)使用sim命令的ut參數(shù)時(shí),Simulink仿真參數(shù)設(shè)置對(duì)話框中的設(shè)置被覆蓋。以前對(duì)話框中的外部輸入是名為sim_input的正弦信號(hào),而采用ut參數(shù)后執(zhí)行的余弦輸入信號(hào)。注意:這里指的“覆蓋”,并不是在Workspace I/O 對(duì)話框的Input中,將sim_input改變成了ut,事實(shí)上并沒有改變,只是不執(zhí)行sim_input,而執(zhí)行了命令行中的ut。,2020/8/7,86,10.3.2.2 simset命令 Simset命令是用來創(chuàng)建和編輯options結(jié)構(gòu)的。 10.3.3.3 simget命令 Simg

38、et命令用來獲得系統(tǒng)模型的仿真參數(shù)設(shè)置。 10.3.2.4 simplot命令 使用語法: Simplot(data); Simplot(time,data); 說明:data是動(dòng)態(tài)系統(tǒng)仿真結(jié)果的輸出數(shù)據(jù),一般由outport模塊,To Workspace模塊等產(chǎn)生的輸出,其數(shù)據(jù)類型可以為矩陣、向量、或結(jié)構(gòu)體等。,2020/8/7,87,主要內(nèi)容,SIMILINK與建模仿真 模塊的基本操作 運(yùn)行仿真 基本模塊介紹 連續(xù)系統(tǒng) 子系統(tǒng)及其封裝技術(shù),2020/8/7,88,10.4.1 連續(xù)系統(tǒng)模塊 作用:大多數(shù)物理系統(tǒng)可以用微分方程進(jìn)行描述,因此可以用連續(xù)系統(tǒng)模擬。最簡(jiǎn)單的模型是線性模型和定常模型

39、。 例如,振動(dòng)理論中的動(dòng)力學(xué)方程: 其中,X 為系統(tǒng)的廣義坐標(biāo)列向量,M 為質(zhì)量矩陣,C 為阻尼矩陣,K 為剛度矩陣,P(t)為外部激勵(lì)列向量。,2020/8/7,89,在Simulink中,用來模擬連續(xù)系統(tǒng)的基本模塊有四個(gè):增義模塊,求和模塊,微分模塊,積分模塊。除了這四個(gè)基本模塊,傳遞函數(shù)模塊也經(jīng)常用來模擬物理系統(tǒng)和控制器。,2020/8/7,90,1. 增益模塊 作用:使增益模塊的輸入信號(hào)乘以一個(gè)常 數(shù),并輸出。 可用代數(shù)表達(dá)式表示為: y(t)= k x(t) 簡(jiǎn)圖如下: 注:y(t)、x(t)、k可以為標(biāo)量、向量或矩陣。,2020/8/7,91,2020/8/7,92,2. 求和模塊

40、 作用:對(duì)兩個(gè)或多個(gè)信號(hào)進(jìn)行求和運(yùn)算。 可用代數(shù)表達(dá)式表示為:c= a + b 兩種形狀:圓形和方形。 求和模塊必須至少有一個(gè)輸入而僅有一個(gè)輸出。輸入的正負(fù)號(hào)的數(shù)目由雙擊模塊進(jìn)入編輯欄進(jìn)行設(shè)定。 求和模塊不但可以進(jìn)行標(biāo)量求和運(yùn)算,也可以進(jìn)行向量或矩陣求和運(yùn)算,但是標(biāo)量或矩陣的維數(shù)必須相等,2020/8/7,93,2020/8/7,94,3. 微分模塊(examp10_4_1.mdl) 作用:計(jì)算輸入對(duì)時(shí)間的變化率。 代表如下微分方程: 微分模塊如圖所示: 考慮對(duì)正弦信號(hào)sin (t) 的微分: Simulink模型框圖和仿真結(jié)果如下頁(yè)圖形所示。,2020/8/7,95,2020/8/7,96,

41、4. 積分模塊(examp10_4_2.mdl) 作用:計(jì)算輸入信號(hào)從起始時(shí)間到當(dāng)前時(shí) 刻對(duì)時(shí)間的積分。 代表如下微分方程: 積分模塊如圖所示:,2020/8/7,97,例:,2020/8/7,98,5. 簡(jiǎn)單物理模型 利用前面所介紹的這些模塊可以模擬由線性微分工程描述的任何物理模型。 例:考慮如下所示的簡(jiǎn)單的小車系統(tǒng)運(yùn)動(dòng)。,2020/8/7,99,假定F=sin(t) 為正弦激勵(lì),m=0.5。 求系統(tǒng)位移響應(yīng)曲線。(examp10_4_3.mdl),2020/8/7,100,例:(examp10_4_4.mdl),2020/8/7,101,6. 傳遞函數(shù)模塊 傳遞函數(shù)表示法頻繁地應(yīng)用于控制系

42、統(tǒng)設(shè)計(jì)和系統(tǒng)的動(dòng)態(tài)模擬。傳遞函數(shù)定義為系統(tǒng)在零初始條件下輸出的Laplace變換與輸入的Laplace變換之比。傳遞函數(shù)是一種描述系統(tǒng)動(dòng)力學(xué)輸入輸出關(guān)系的簡(jiǎn)便方法。,2020/8/7,102,例:,2020/8/7,103,2020/8/7,104,例:(examp10_4_3_0.mdl),2020/8/7,105,注:對(duì)傳遞函數(shù)模塊的說明: 傳遞函數(shù)模塊只適用于單輸入單輸出系統(tǒng),即單自由度系統(tǒng),但無法應(yīng)用于多輸入多輸出系統(tǒng),即多自由度系統(tǒng)。 用傳遞函數(shù)模塊對(duì)線性定常系統(tǒng)進(jìn)行仿真,能夠使仿真模型簡(jiǎn)單和緊湊,但是無法輸出內(nèi)部變量,如x 的導(dǎo)數(shù)。 無法適用具有初始條件的情況。,2020/8/7,

43、106,10.4.2 狀態(tài)空間模塊,狀態(tài)空間模塊可以起到與傳遞函數(shù)模塊相同的作用。所不同的是,狀態(tài)空間模塊允許用戶指定初始條件,并且可以共享內(nèi)部變量。另外,狀態(tài)空間模塊可以用來模擬多輸入多輸出系統(tǒng)。,2020/8/7,107,1. 狀態(tài)空間概念,2020/8/7,108,2. 線性單輸入輸出系統(tǒng)(examp10_4_4_0.mdl),2020/8/7,109,說明:對(duì)于此例,因?yàn)榭紤]的是沒有外部輸入的自由振動(dòng),因此狀態(tài)空間模塊可以沒有左端輸入。,2020/8/7,110,說明:左圖取C=1,1 則在scope中顯示出位移和速度數(shù)據(jù)疊加后的數(shù)據(jù)的圖形。示波器輸出為y的圖形。 y=1,1x;x,2

44、020/8/7,111,若取C=1,0,則示波器顯示位移時(shí)程,若取C=0,1,則示波器顯示速度時(shí)程,2020/8/7,112,若取C=1,0;0,1, D=zeros(2,1)則示波器顯示位移、速度時(shí)程,2020/8/7,113,3. 多輸入輸出系統(tǒng)(examp10_4_4_1.mdl),2020/8/7,114,2020/8/7,115,2020/8/7,116,示波器顯示的第一個(gè)質(zhì)量的位移時(shí)程 C=1,0,0,0,示波器顯示的兩個(gè)質(zhì)量的位移時(shí)程C=1,0,0,0;0,1,0,0D=zeros(2,1),2020/8/7,117,示波器顯示的兩個(gè)質(zhì)量的速度時(shí)程C=0,0,1,0;0,0,0,

45、1 D=zeros(2,1),示波器顯示的兩個(gè)質(zhì)量的位移、速度時(shí)程C=1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1 D=zeros(4,1),2020/8/7,118,10.4.3 離散系統(tǒng)模塊,離散系統(tǒng)采用差分方程表示。離散信號(hào)是一組以采樣周期為間隔的離散時(shí)間序列。對(duì)于大多數(shù)的物理系統(tǒng),信號(hào)原本都是在時(shí)間上連續(xù)的。但在對(duì)信號(hào)的采集過程中,需要通過傳感器等采集工具對(duì)信號(hào)進(jìn)行采集,因此最終得到的信號(hào)都是以采樣周期為時(shí)間間隔的離散數(shù)據(jù)。若原物理系統(tǒng)也用離散數(shù)據(jù)形式進(jìn)行描述,則構(gòu)成了離散時(shí)間系統(tǒng)。,2020/8/7,119,離散增益模塊 離散求和模塊 離散延遲模塊 時(shí)間離散積分模塊

46、 簡(jiǎn)單離散系統(tǒng)模型 離散傳遞函數(shù)模塊,與連續(xù)系統(tǒng)采用的模塊相同,2020/8/7,120,10.4.4 離散狀態(tài)空間模塊,1. 連續(xù)時(shí)間系統(tǒng)的離散化 式(3)中的兩個(gè)變量將于有限時(shí)間內(nèi)趨于常值矩陣。,2020/8/7,121,因此,式(1)所示的連續(xù)時(shí)間系統(tǒng)就轉(zhuǎn)換成了式(4)式所示的離散時(shí)間系統(tǒng)。矩陣F為離散時(shí)間系統(tǒng)的系統(tǒng)矩陣,G為離散時(shí)間系統(tǒng)的輸入矩陣。 2. F和G的計(jì)算 根據(jù)矩陣指數(shù)的定義,有: 同時(shí),求得:,2020/8/7,122,3. 采用離散狀態(tài)空間模塊進(jìn)行仿真 對(duì)于兩自由度系統(tǒng):,2020/8/7,123,2020/8/7,124,連續(xù)時(shí)間系統(tǒng)的系統(tǒng)矩陣,離散時(shí)間系統(tǒng)的系統(tǒng)矩陣

47、(假定采樣周期為T=0.02),注:在matlab命令窗口中求: F=expm(A*T),2020/8/7,125,2020/8/7,126,在狀態(tài)空間模塊中輸入: A=0.9988, 0.0008, 0.02, 0; 0.0004, 0.9996, 0, 0.02; -0.1197, 0.0798, 0.9948, 0.0028; 0.0399, -0.0399, 0.0014, 0.9986 B=0;0;0;0 %因?yàn)闆]有外部輸入 C=1,0,0,0 %不能寫成C=0,0,0,0,否則輸出為0 D=0 初值輸入為:0.2;0;0;0 %也可寫為0.2,0,0,0 步長(zhǎng)輸入為:0.02,20

48、20/8/7,127,示波器顯示的第一個(gè)質(zhì)量的位移時(shí)程 C=1,0,0,0,示波器顯示的兩個(gè)質(zhì)量的位移時(shí)程C=1,0,0,0;0,1,0,0D=zeros(2,1),與前面連續(xù)時(shí)間系統(tǒng)的仿真結(jié)果一致。,2020/8/7,128,主要內(nèi)容,SIMILINK與建模仿真 模塊的基本操作 運(yùn)行仿真 基本模塊介紹 連續(xù)系統(tǒng) 子系統(tǒng)及其封裝技術(shù),2020/8/7,129,本章學(xué)習(xí)內(nèi)容和目的,進(jìn)一步掌握連續(xù)系統(tǒng)的建模和仿真技巧 掌握向量線性系統(tǒng)的描述方法 結(jié)合蹦極跳的算例領(lǐng)會(huì)復(fù)雜系統(tǒng)的建模方法與仿真,2020/8/7,130,10.5.1 積分模塊高級(jí)積分器,在使用Simulink對(duì)實(shí)際的動(dòng)態(tài)系統(tǒng)進(jìn)行仿真時(shí)

49、,積分運(yùn)算可以說是Simulink求解器的核心技術(shù)之一。在前面使用過積分模塊對(duì)數(shù)據(jù)進(jìn)行積分處理,事實(shí)上,所使用的模塊式積分模塊的一種簡(jiǎn)單積分方式。所謂的重置積分方式是指當(dāng)重置信號(hào)觸發(fā)時(shí)將模塊的輸出重置為初始條件。本節(jié)積分模塊的重置積分模式高級(jí)積分器進(jìn)行介紹。,2020/8/7,131,1. 對(duì)積分器的各個(gè)端口進(jìn)行簡(jiǎn)單的介紹 下圖分別為使用缺省參數(shù)設(shè)置下的積分器外觀與選擇所用參數(shù)設(shè)置下的積分器的外觀比較。,2020/8/7,132,(1)External State:為外部重置設(shè)置。用在當(dāng)重置信號(hào)發(fā)生觸發(fā)事件時(shí),模塊將按照初始條件重置狀態(tài)量??梢圆捎貌煌挠|發(fā)方式對(duì)積分器狀態(tài)進(jìn)行重置: none

50、:關(guān)閉外部重置; rising: 當(dāng)模塊接收到的觸發(fā)信號(hào)上升通過零點(diǎn)時(shí),重置過程開始; falling:模塊接收到的觸發(fā)信號(hào)下降通過零點(diǎn)時(shí),重置過程開始; either:無論觸發(fā)信號(hào)上升或下降通過零點(diǎn),重置過程都開始; level:當(dāng)觸發(fā)信號(hào)非零時(shí),使得積分器輸出保持在初始狀態(tài)。,2020/8/7,133,(2)Initial condition source:為初始條件設(shè)置,設(shè)置積分器初始條件的方法有兩種: external:從外部輸入源設(shè)置初始條件。初始條件設(shè)置端口以x0作為標(biāo)志; internal::在積分器模塊參數(shù)對(duì)話框中設(shè)置初始條件,說明模塊的初始值是從內(nèi)部獲得的。選上后,下面將出現(xiàn)

51、要求輸入初始值的輸入欄。Internal為默認(rèn)設(shè)置。,2020/8/7,134,(3)Limit output:積分器輸出范圍限制。在某些情況下,積分器的輸出可能會(huì)超出系統(tǒng)本身所允許的上限或下限值,選擇積分器輸出范圍限制框(Limit output)并設(shè)置上限值(Upper saturation limit)與下限值(Lower saturation limit),可以將積分器的輸出限制在一個(gè)給定的范圍之內(nèi)。此時(shí)積分器的輸出服從下面的規(guī)則: 當(dāng)積分結(jié)果小于或等于下限值并且輸入信號(hào)為負(fù),積分器的輸出保持在下限值(下飽和區(qū)); 當(dāng)積分結(jié)果在上限值與下限值之間時(shí),積分器輸出為實(shí)際積分結(jié)果; 當(dāng)積分結(jié)

52、果大于或等于上限值并且輸入信號(hào)為正,積分器的輸出保持在上限值(上飽和區(qū))。,2020/8/7,135,(4)Show saturation port:在積分器中顯示飽和端口。此端口位于輸出端口下方。飽和端口的輸出有三種情況,用來表示積分器的飽和狀態(tài): 輸出為1,表示積分器處于上飽和區(qū); 輸出為0,表示積分器處于正常范圍之內(nèi); 輸出為-1,表示積分器處于下飽和區(qū)。,2020/8/7,136,說明: (1) 積分器的初始值為0; (2) External reset設(shè)置為: falling。,2. 舉例說明(examp10_5_1.mdl),2020/8/7,137,如果初始值設(shè)置為5,則結(jié)果為:

53、,2020/8/7,138,(1) 積分器的初始值為5; (2) External reset設(shè)置為:rising。,2020/8/7,139,(1) 積分器的初始值為5; (2) External reset設(shè)置為:either,2020/8/7,140,(1) 積分器的初始值為5; (2) External reset設(shè)置為:level,2020/8/7,141,10.5.2 向量線性系統(tǒng),信號(hào)線傳輸?shù)男盘?hào)可以是標(biāo)量形式,也可以是向量信號(hào)形式。 向量信號(hào)線 在Signals -0.4,-0.2 B=0;0.2 C=1,0 D=0,2020/8/7,151,4. 狀態(tài)空間模塊(examp10

54、_5_4.mdl) 單自由度系統(tǒng)的單位脈沖響應(yīng),2020/8/7,152,2020/8/7,153,10.5.4 非線性系統(tǒng)的模擬(examp10_5_5.mdl) 例1:小車由兩個(gè)噴射式發(fā)動(dòng)機(jī)推動(dòng)在光滑的平面內(nèi)運(yùn)動(dòng)。若小車的速度和位移之和為負(fù)值,則啟動(dòng)左邊的發(fā)動(dòng)機(jī);若小車的速度和位移之和為正值,則啟動(dòng)右邊的發(fā)動(dòng)機(jī)??刂频哪繕?biāo)使小車靜止在原點(diǎn)。此模型類似于衛(wèi)星的位置控制過程。,2020/8/7,154,假定小車初始靜止,并且位移量為+1 假設(shè):m=5kg,F(xiàn)=1,-1,0,2020/8/7,155,注:符號(hào)函數(shù)模塊說明(examp10_5_5_0.mdl),2020/8/7,156,用一個(gè)二維

55、圖形模塊來繪制仿真過程的相圖,相圖是速度相對(duì)于位移的變化圖。,2020/8/7,157,注:在MATLAB中使用plot(xout(:,1),xout(:,2)畫出的圖形,和XYGraph的結(jié)果一致。,說明:為模仿“符號(hào)切換的非瞬時(shí)性”,本例采用“定步長(zhǎng)”solver解算器ode5,fixed step size為0.05,2020/8/7,158,為了得知小車何時(shí)到達(dá)原點(diǎn)并使仿真停止,對(duì)模型增加一個(gè)邏輯判斷,以使目標(biāo)達(dá)到時(shí)仿真自動(dòng)停止。(examp10_5_5_1.mdl) 對(duì)于本算例,可以認(rèn)為小車的位移和速度的絕對(duì)值之和小于一個(gè)較小量,如0.01 時(shí),就認(rèn)為目標(biāo)已經(jīng)達(dá)到并結(jié)束仿真: 如果想

56、得到小車位移的響應(yīng)時(shí)程,可在模型中加入示波器模塊,如下圖所示。 為觀察仿真時(shí)間進(jìn)程,引入仿真時(shí)鐘顯示。,2020/8/7,159,2020/8/7,160,仿真結(jié)果如下圖所示。,該圖形是采用MATLAB環(huán)境下的plot(tout,xout(:,1)畫出的 ,結(jié)果與示波器的結(jié)果一致。由圖形可看出,仿真在7.6s時(shí)停止,這與模型框圖中的時(shí)鐘顯示模塊Display的結(jié)果一致。小車系統(tǒng)在7.6時(shí)達(dá)到平衡。,2020/8/7,161,例2. 蹦極跳系統(tǒng)的動(dòng)態(tài)仿真(examp10_5_6.mdl) 蹦極跳時(shí)一種挑戰(zhàn)身體極限的運(yùn)動(dòng),蹦極者系著一根彈性繩從高處的橋梁(或山崖等)向下跳。在下落的過程中,蹦極者幾

57、乎處于失重狀態(tài)。按照牛頓運(yùn)動(dòng)規(guī)律,自由下落的物體由下式確定: m為人體的質(zhì)量,g為重力加速度。,2020/8/7,162,位置x的基準(zhǔn)為橋梁的基準(zhǔn)面. 如果人體系在一個(gè)彈性常數(shù)為k的彈性繩索上,定義繩索下端的初始位置為o,則其對(duì)落體位置的影響為:,2020/8/7,163,因此,整個(gè)蹦極系統(tǒng)的數(shù)學(xué)模型為: 其為典型的具有連續(xù)狀態(tài)的非線性系統(tǒng) 解: 設(shè)橋梁距離地面為50m,即h2=50 蹦極者起始速度為0 蹦極者的起始位置為繩索的長(zhǎng)度30m,即h1=30 其余的參數(shù)為: k=20,a2=a1=1,m=70kg,g=10m/s2 初始條件:x(0)=-30;x(0)=0,2020/8/7,164,

58、注:Switch模塊介紹,雙擊輸入Threshold值,系統(tǒng)默認(rèn)為0。,2020/8/7,165,2020/8/7,166,說明: (1)設(shè)置仿真時(shí)間0100s,為了使曲線光滑,可設(shè)置最大仿真步長(zhǎng)為0.1。 (2) 右邊圖為蹦極者到地面的距離曲線。,2020/8/7,167,examp10_5_6_1.mdl模型如上圖所示,運(yùn)行結(jié)果和前面一致。在matlab環(huán)境下輸入m=70; g=10; k=20; a1=1; a2=1.,2020/8/7,168,examp10_5_6_2.mdl模型采用了Fcn模塊,結(jié)果和前面運(yùn)行一致。,2020/8/7,169,若在MATLAB環(huán)境下鍵入:whos 可得到: whos Name Size Bytes Class a1 1x1 8 double array a2 1x1 8 double array g 1x1 8 double array k 1x

溫馨提示

  • 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)論