版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5章基于Simulink的控制系統(tǒng)建模與仿真5.1Simulink基本操作及模塊庫
5.2Simulink模塊庫模塊功能介紹
5.3Simulink基本建模方法
5.4Simulink模型的仿真運行
5.5連續(xù)時間系統(tǒng)建模與仿真
5.6離散時間系統(tǒng)建模與仿真
5.7非線性系統(tǒng)的線性化
5.8子系統(tǒng)創(chuàng)建及封裝技術(shù)
5.9S函數(shù)及其應(yīng)用
5.1Simulink基本操作及模塊庫
5.1.1運行Simulink首先必須運行MATLAB,在此基礎(chǔ)上運行Simulink的方式有兩種:(1)在MATLAB命令窗口中直接輸入“simulink”并回車。
2)用鼠標左鍵單擊MATLAB桌面工具欄中的Simulink圖標。運行后會顯示如圖5.1(a)所示的樹形Simulink模塊庫瀏覽器界面,它顯示了Simulink模塊庫(包括模塊組)和所有已經(jīng)安裝了的MATLAB工具箱對應(yīng)的模塊庫。圖中,若用鼠標左鍵單擊其左側(cè)的“Simulink”項,會在其右側(cè)顯示Simulink模塊庫所有模塊組的圖標。同樣,若用鼠標左鍵單擊圖左側(cè)Simulink模塊庫中任一模塊組的名稱(如“Continuous”),就會在其右側(cè)顯示該模塊組各模塊的圖標。
圖5.1Simulink模塊庫瀏覽器界面(a)
樹形;
(b)
圖標形
5.1.2Simulink模塊庫由圖5.1可以看到,Simulink為用戶提供了豐富的模塊庫,按照用途可將它們分成四類:
(1)系統(tǒng)基本構(gòu)成模塊庫,包括:常用模塊組(CommonlyUsedBlocks)、連續(xù)(Continuous)模塊組、非連續(xù)(Discontinuities)模塊組和離散(Discrete)模塊組。
(2)連接、運算模塊庫,包括:邏輯和位運算(LogicandBitOperations)模塊組、查表(LookupTables)模塊組、數(shù)學(xué)運算(MathOperations)模塊組、端口與子系統(tǒng)(Port&Subsystems)模塊組、信號屬性(SignalAttributes)模塊組、信號通路(SignalRouting)模塊組、用戶自定義函數(shù)(UserDefinedFunctions)模塊組和附加數(shù)學(xué)與離散(AdditionalMath&Discrete)模塊組。
(3)專業(yè)模塊庫,包括:模型校核(ModelVerification)模塊組和模型擴充(ModelWideUtilities)模塊組。
(4)輸入/輸出模塊庫,包括:信源(Sources)模塊組和信宿(Sinks)模塊組。這樣,運行Simulink的時候,就會出現(xiàn)模塊庫瀏覽器、模塊庫、模型以及仿真結(jié)果圖形輸出等各自分開的窗口。這些窗口的性質(zhì)相對獨立,
不屬于MATLAB的圖形窗口。
5.1.3Simulink模型窗口的組成圖5.2是一個僅由正弦波模塊和示波器模塊組成的Simulink模型窗口。整個模型窗口的組成自上而下是:菜單欄、工具欄、編輯框和狀態(tài)欄。這里,僅簡要介紹工具欄和狀態(tài)欄。
圖
5.2Simulink模型窗口
1.工具欄
工具欄位于Simulink模型窗口中菜單欄的下面,它由許多圖標組成。圖5.2工具欄中,從最左邊開始的十二個圖標具有標準Windows的相應(yīng)操作功能,這里不再贅述。其余常用圖標及功能見表5.1。
表5.1Simulink模型窗口常用圖標及功能
2.狀態(tài)欄狀態(tài)欄位于Simulink模型窗口的最下面。圖5.2狀態(tài)欄自左至右的文字含義如下:
Ready:表示模型已準備就緒在等待仿真命令。
100%:表示編輯窗口模型的顯示比例。
ode45:表示當前仿真所選擇的仿真算法。此外,
仿真過程中,
在狀態(tài)欄的空白格中還會實時顯示仿真經(jīng)歷的時刻。
5.2Simulink模塊庫模塊功能介紹
5.2.1常用模塊組用鼠標左鍵單擊Simulink瀏覽器樹形界面(見圖5.1(a))模塊組中的“CommonlyUsedBlocks”,在其右側(cè)的列表框中即會顯示出如圖5.3(a)所示的樹形常用模塊組。或用鼠標左鍵雙擊Simulink瀏覽器圖標形界面(見圖5.1(b))中的“CommonlyUsedBlocks”模塊,會得到如圖5.3(b)所示的圖標形常用模塊組。
圖5.3常用模塊組的兩種顯示形式(a)
樹形;
(b)
圖標形
常用模塊組包含了Simulink建模與仿真所需的各類最基本模塊,這些模塊均來自其他模塊組,主要是便于用戶能夠在其中獲得最常用的模塊。進行一般線性連續(xù)/離散時間控制系統(tǒng)及非線性控制系統(tǒng)研究時,可首選此模塊組。常用模塊組主要模塊的功能及說明見表5.2。
表5.2常用模塊組模塊的功能說明
5.2.2連續(xù)模塊組連續(xù)模塊組的樹形和圖標形顯示形式分別如圖5.4(a)和(b)所示。
圖5.4連續(xù)模塊組的兩種顯示形式(a)
樹形;
(b)
圖標形
表5.3連續(xù)模塊組模塊功能說明
5.2.3非連續(xù)模塊組
圖5.5非連續(xù)模塊組的兩種顯示形式(a)
樹形;
(b)
圖標形
表5.4非連續(xù)模塊組模塊功能說明5.2.4離散模塊組
圖5.6離散模塊組的兩種顯示形式(a)
樹形;
(b)
圖標形
表5.5離散模塊組模塊功能說明
續(xù)表
5.2.5數(shù)學(xué)運算模塊組
圖5.7數(shù)學(xué)運算模塊組的兩種顯示形式(a)
樹形;
(b)
圖標形
表5.6數(shù)學(xué)運算模塊組模塊功能說明
表5.6數(shù)學(xué)運算模塊組模塊功能說明
表5.6數(shù)學(xué)運算模塊組模塊功能說明
表5.6數(shù)學(xué)運算模塊組模塊功能說明
5.2.6信源模塊組在任何一個Simulink模型中,信源模塊和信宿模塊是必不可少的,信源模塊為系統(tǒng)提供輸入信號,而信宿模塊則為系統(tǒng)提供輸出(顯示)裝置。因此,信源模塊和信宿模塊是Simulink模型的基本組成部分,沒有它們的Simulink模型就不是一個完整的Simulink模型。信源模塊組的樹形和圖標形顯示分別如圖5.8(a)和(b)所示。
圖5.8信源模塊組的兩種顯示形式(a)
樹形;
(b)
圖標形
表5.7信源模塊組模塊功能說明
表5.7信源模塊組模塊功能說明
表5.7信源模塊組模塊功能說明
5.2.7信宿模塊組
圖5.9信宿模塊組的兩種顯示形式(a)
樹形;
(b)
圖標形
1.信宿模塊組一覽表
表5.8信宿模塊組模塊功能說明
表5.8信宿模塊組模塊功能說明
2.示波器模塊示波器是信宿模塊組中最重要的模塊。示波器模塊窗口如圖5.10所示。
1)示波器的用途在仿真過程中,示波器實時顯示(標量或向量)信號波形。無論示波器窗口是否打開,只要仿真一啟動,示波器緩沖區(qū)就接受示波器輸入端傳送的信號。該緩沖區(qū)可以接受多達30個不同的信號,它們以列的方式排列。
圖5.10示波器窗口
2)示波器窗口的工具欄示波器窗口的工具欄位于該窗口菜單欄下面,它由許多圖標組成,見圖5.10。示波器窗口工具欄常用圖標及功能如下:
·圖標:打開示波器參數(shù)設(shè)置對話窗口;
·三個圖標:分別管理xy雙向變焦(Zoom)、x軸向變焦(ZoomX-axis)和y軸向變焦(ZoomY-axis);
·圖標:管理縱坐標的自動刻度(Autoscale),自動選取當前示波器窗口中信號的最小值和最大值為縱坐標的下限和上限;
·圖標:保存當前軸的設(shè)置;
·圖標:
恢復(fù)已保存軸的設(shè)置。
3)
示波器縱坐標范圍的手工設(shè)置
圖
5.11示波器縱坐標范圍手工設(shè)置對話框
4)示波器橫坐標的設(shè)置用鼠標左鍵單擊示波器工具欄圖標,便打開如圖5.12所示的示波器參數(shù)設(shè)置對話窗口。圖5.12(a)為General(一般)選項,可進行橫坐標顯示參數(shù)的設(shè)置。圖5.12(b)為Datahistory(數(shù)據(jù)歷史)選項,可進行示波器數(shù)據(jù)處理的設(shè)置。圖5.12示波器參數(shù)設(shè)置對話窗口(a)
一般選項;
(b)
數(shù)據(jù)歷史選項
影響橫坐標顯示的參數(shù)設(shè)置(見圖5.12(a))如下:
Timerange:在此欄填寫所希望的橫坐標上限值,即可改變示波器的橫坐標。此欄若為auto,則示波器橫坐標上限值即為所設(shè)仿真時間(見5.5.1節(jié));缺省值為10,則意味著顯示在[0,10]區(qū)間的信號;如果信號實際持續(xù)時間超過設(shè)定時間,則不顯示區(qū)間外的內(nèi)容。
Sampling:包含兩個下拉菜單項,即抽選(Decimation)和采樣周期(Sampletime)。
Decimation設(shè)置顯示頻度,若取n,則每隔n-1個數(shù)據(jù)點給予顯示,缺省值為1。
Sampletime設(shè)置顯示點的(采樣)時間步長,缺省值為0,表示顯示連續(xù)信號;倘若取-1,則表示顯示方式取決于輸入信號;若取任何大于0的數(shù),則表示顯示離散信號的時間間隔。
5)示波器數(shù)據(jù)存儲圖5.12(b)中兩個復(fù)選框的含義如下:
Limitdatapointstolast:設(shè)定緩沖區(qū)接收數(shù)據(jù)的長度。缺省為選中狀態(tài),其值為5000。如果輸入數(shù)據(jù)長度超過設(shè)定值,則最早的“歷史”數(shù)據(jù)被清除。
Savedatatoworkspace:若選中該欄,可以把示波器緩沖區(qū)中保存的數(shù)據(jù)以矩陣或結(jié)構(gòu)體形式送入MATLAB工作空間。缺省時不被選中。變量名可以設(shè)定,缺省名是ScopeData。
6)多信號顯示區(qū)設(shè)置在圖5.12(a)的Numberofaxes欄進行多信號顯示區(qū)設(shè)置。該欄的缺省值為1,表示Scope模塊只有一個輸入端,示波器窗只有一個信號顯示區(qū)。如果此欄設(shè)置為2,則Scope模塊將有兩個輸入端,示波器窗口也相應(yīng)地有兩個信號顯示區(qū)。該欄的其他設(shè)置值可依此類推。
7)設(shè)置為游離示波器選中圖5.12(a)的floatingscope欄,示波器將以游離狀態(tài)出現(xiàn)。即,示波器沒有輸入端,導(dǎo)致它與其他模塊分離。
5.3Simulink基本建模方法
5.3.1Simulink模型概念
Simulink模型有幾層含義:視覺上,表現(xiàn)為直觀的方框圖;文件上,則是擴展名為.mdl的ASCII代碼;數(shù)學(xué)上,體現(xiàn)了一組微分方程或差分方程;行為上,則模擬了由物理器件構(gòu)成的實際系統(tǒng)的動態(tài)特性。
圖
5.13Simulink模型的一般性結(jié)構(gòu)
5.3.2Simulink模型窗口的操作
1.新建Simulink模型窗口打開一個缺省名為untitled的空白窗口,即新建立了一個Simulink模型窗口。打開“untitled”模型窗口通??刹捎靡韵聨追N方法:
(1)用鼠標左鍵單擊Simulink模塊庫瀏覽器或某個Simulink模型窗口的圖標。
(2)選擇MATLAB桌面菜單“File|New|Model”。
(3)選擇Simulink模塊庫瀏覽器窗口或某個Simulink模型窗口中的菜單“File|New|Model”。
2.打開已有Simulink模型
要打開已有Simulink模型有以下幾種方法:
(1)用鼠標左鍵單擊Simulink模塊庫瀏覽器或某個Simulink模型窗口圖標,彈出一個打開Simulink文件對話框。該對話框與一般Windows應(yīng)用軟件的打開文件對話框類似。在該對話框中,用鼠標左鍵單擊欲打開的文件,再單擊“打開”鍵(或用鼠標左鍵雙擊欲打開的文件),
即可打開所選擇的Simulink模型。
(2)選擇Simulink模塊庫瀏覽器窗口中某個Simulink模型窗口菜單“File|Open”。其余的與方法(1)類似。
(3)在MATLAB命令窗口下直接輸入Simulink模型文件名字(不帶擴展名.mdl)。如果文件不在當前目錄或MATLAB搜索路徑上,
則還需要注明文件路徑。
3.Simulink模型的保存
由于Simulink是以ASCII碼形式存儲的.mdl文件(稱為MDL模型文件),因此這種文件的保存是標準的Windows操作。即,利用圖標、菜單“File|Save”或“File|AsSave...”等,
都可以實現(xiàn)Simulink模型的保存。
4.Simulink模型的打印打印Simulink模型最快捷的方法是將模型直接輸出到打印機上,通常采用菜單打印方法具體如下:
用鼠標左鍵單擊Simulink模型窗口圖標,或選擇該窗口菜單“File|Print”,則彈出一個打印對話框。該對話框與Windows標準文檔打印對話框的區(qū)別在于:多了一個如圖5.14所示的選項框。該選項框中各選項的功用和配合見表5.9。說明:當模型被直接輸出到打印機時,Simulink將根據(jù)用戶所選紙張的大小,自動調(diào)整模型的大小。
圖5.14打印對話框中的選項框
表5.9圖5.14選項框中各選項的功用及配合
5.Simulink模型的文檔嵌入
Simulink模型可以位圖形式或以Windows圖元文件形式嵌入到Word文檔中。方法是:選擇Simulink模型窗口菜單“Edit|CopyModelToClipboard”,將整個模型復(fù)制到剪切板中,
然后再將其粘貼到Word文檔中。
5.3.3模塊操作
1.模塊的選定模塊選定操作是許多其他操作(如復(fù)制、移動、刪除)的前導(dǎo)操作。被選定模塊的四個角會出現(xiàn)小黑塊,如圖5.15所示。選定單個模塊的操作方法:將鼠標指向待選模塊,單擊鼠標左鍵即可。選定多個模塊的操作方法有兩種:方法一:按住“Shift”鍵,依次點擊所需選定的模塊。方法二:按住鼠標右鍵,拉出矩形虛線框,將所有待選模塊包括在其中,然后松開按鍵,于是矩形里所有模塊(包括連接模塊的信號線)均被選中,
如圖5.16所示。
圖
5.15選定的模塊
圖5.16用矩形框同時選中多個模塊
2.模塊的復(fù)制
1)同一模型窗口內(nèi)的模塊復(fù)制方法方法一:選中待復(fù)制模塊,按下鼠標右鍵,拖動該模塊至合適的位置,釋放鼠標右鍵。方法二:
選中待復(fù)制模塊,
按住“Ctrl”鍵,
再按下鼠標左鍵,
拖動該模塊至合適的位置,
釋放鼠標左鍵。
2)不同模型窗口(包括模型庫窗口)之間的模塊復(fù)制方法方法一:在一窗口選中模塊,按下鼠標左鍵,將其直接拖至另一模型窗口,釋放鼠標左鍵。方法二:在一窗口選中模塊,用鼠標左鍵單擊圖標,然后用鼠標左鍵點擊目標模型窗口中需復(fù)制模塊的位置,再用鼠標左鍵單擊圖標即可。此法也適用于同一窗口內(nèi)模塊的復(fù)制。
3.模塊的移動
1)同一模型窗口內(nèi)模塊的移動方法方法一:選中待移動模塊,按下鼠標左鍵,拖動該模塊至合適的位置,釋放鼠標左鍵。但應(yīng)注意,模塊移動時,與之相連的連線也隨之移動。方法二:選中待移動模塊,按下“→”鍵,可使模塊向右移動,直至移動到合適的位置。同理,按下“←”鍵,可使模塊向左移動;按下“↑”或“↓”鍵,可使模塊向上或向下移動。
2)不同模型窗口內(nèi)模塊的移動方法選中待移動模塊,按住“Shift”鍵,按下鼠標左鍵,拖動模塊至合適的位置,釋放鼠標左鍵。但此時與模塊相連的連線不隨之移動。
4.模塊的刪除方法一:選中待刪除模塊,按下“Delete”鍵。方法二:選中待刪除模塊,用鼠標左鍵單擊工欄圖標,
將選定內(nèi)容剪切并存放于剪貼板上。
5.改變模塊大小
首先選中該模塊,待模塊四個角出現(xiàn)小黑塊后,將鼠標指向適當?shù)男『趬K,按下鼠標左鍵并拖動邊框至合適大小,
然后釋放鼠標左鍵。
整個過程如圖5.17所示。
圖5.17改變模塊大?。╝)
原尺寸;
(b)
拖動邊框;
(c)
新尺寸
6.模塊的旋轉(zhuǎn)
缺省狀態(tài)下的模塊總是輸入端在左,輸出端在右,見圖5.18(a)。選擇Simulink模型窗口菜單“Format|FlipBlock”,可以將選定模塊旋轉(zhuǎn)180°,如圖5.18(b)所示;選擇菜單“Format|RotateBlock”,可以將選定模塊順時針旋轉(zhuǎn)90°,如圖5.18(c)所示。
圖5.18模塊的旋轉(zhuǎn)(a)
缺省狀態(tài);
(b)
旋轉(zhuǎn)180°;
(c)
旋轉(zhuǎn)90°
7.模塊名稱的操作
1)修改模塊名稱用鼠標左鍵單擊待修改模塊的名稱,會在原名稱的四周出現(xiàn)一個編輯框,然后就可對模塊名稱進行修改。修改完畢后,將指針移出該編輯框,再用鼠標左鍵單擊一次,即可結(jié)束修改。
2)模塊名稱字體設(shè)置首先選中該模塊,然后選擇模型窗口菜單“Format|Font”,將彈出標準的Windows“字體”對話框。在該對話框中,
根據(jù)需要選擇模塊名稱字體及文字大小。
3)改變模塊名稱的位置缺省時,模塊名稱位置位于模塊的下邊,通過設(shè)置可以將模塊名稱放置在模塊的左邊、右邊或上邊。方法一:首先選中模塊,再選擇模型窗口菜單“Format|FlipName”,可將模塊名稱從原先位置搬移到“對側(cè)”。方法二:用鼠標左鍵單擊待修改模塊名稱,出現(xiàn)編輯框后,按下鼠標左鍵,拖動其至模塊對側(cè),釋放鼠標左鍵。如果模塊的輸入、輸出端位于其左右兩側(cè),則模塊名稱在缺省情況下位于模塊下方;否則位于模塊的左外側(cè),參見圖5.18(c)。
4)隱藏模塊名稱先選中模塊,
再選擇Simulink模型窗口菜單“Format|HideName”,
即可隱藏模塊名稱。
與此同時,
菜單也變?yōu)椤癋ormat|ShowName”。
8.模塊的陰影效果
選擇Simulink模型窗口菜單“Format|ShowDropShadow”,可以給選定的模塊加上陰影效果,見圖5.19。此時,該菜單變?yōu)椤癋ormat|HideDropShadow”,再選擇之,又可去除陰影效果。
圖5.19加上陰影效果的模塊
9.模塊的參數(shù)設(shè)置
幾乎所有的模塊都有一個相應(yīng)的參數(shù)對話框,用鼠標左鍵雙擊一個模塊,打開其對話框,然后通過改變對話框中適當欄目中的值即可對模塊參數(shù)進行設(shè)置。每個對話框的下端都有四個按鈕,其含義分別為:
“OK”
參數(shù)設(shè)置完成,關(guān)閉對話框
“Cancel”
取消所作的修改,恢復(fù)原先的參數(shù)值,關(guān)閉對話框
“Help”
打開該模塊的超文本幫助文檔
“Apply”將所作的修改應(yīng)用于模塊,
不關(guān)閉對話框
5.3.4信號線的操作
1.信號線的生成先將鼠標指向連線的起點(即某模塊的輸出端),待指針變?yōu)椤埃弊趾?,按下鼠標左鍵并拖動直至終點(即某模塊輸入端),再釋放鼠標左鍵,Simulink會根據(jù)模塊起點和終點的位置,自動配置連線,或者采用直線,或者采用折線(由水平和垂直線段組成)連接。當然,在上述信號線的生成方法中,也可以先將鼠標指針指向連線的終點,待指針變?yōu)椤埃弊趾?,按下鼠標左鍵并拖動至起點,
再釋放鼠標左鍵。
2.信號線的移動和刪除移動線段操作:用鼠標左鍵單擊待移動線段,按下鼠標左鍵并拖動至希望處后,釋放鼠標左鍵。刪除線段操作:
選中待刪除線段,
按下“Delete”鍵。
3.信號線分支的生成在實際模型中,一個信號往往需要分送到不同模塊的多個輸入端,此時就需要繪制分支線(branchline)。例如,反饋控制系統(tǒng)中反饋線的繪制就必須應(yīng)用信號線分支操作。分支線的繪制步驟如下:
(1)將鼠標指針指向分支線的起點(即已存在信號線上的某點)。
(2)按下鼠標右鍵,看到指針變?yōu)椤埃弊郑ɑ蛘呦劝醋 癈trl”鍵,再按下鼠標左鍵)。
(3)
拖動鼠標至分支線的終點處,
釋放鼠標右鍵。
4.信號線的折曲與折點的移動在構(gòu)建控制系統(tǒng)結(jié)構(gòu)圖模型時,有時需要使兩模塊間的連線“打折”,以留出空白繪制其他模塊,這就需要產(chǎn)生“折曲”。產(chǎn)生“折曲”的方法:選中已存在的信號線,將鼠標指針指到待折處,先按住“Shift”鍵,再按下鼠標左鍵,拖動至合適處,釋放鼠標左鍵。移動“折曲”上折點的方法:選中折線,將鼠標指針指到待移動的折點處,當鼠標指針變?yōu)橐粋€小圓圈時,按下鼠標左鍵并拖動折點至希望處,
釋放鼠標左鍵。
5.信號線寬度的顯示信號線所攜帶的信號既可以是標量也可以是向量,并且不同信號線所攜帶向量信號的維數(shù)可能互不相同。為了使信息傳遞一目了然,Simulink不但可以用粗線顯示向量型信號線,而且還可以將向量維數(shù)用數(shù)字標出。操作方法是:選擇Simulink模型窗口菜單“Format|Port/SignalDisplays|WideNonscaleLines”,將用粗線顯示向量型信號線;選擇菜單“Format|Port/SignalDisplays|SignalDimensions”,將在向量型信號線上用數(shù)字標注向量的維數(shù)。
6.用彩色顯示信號線
Simulink所建離散系統(tǒng)模型允許有多個采樣頻率。為了清晰地顯示不同采樣頻率的模塊及信號線,可選擇Simulink模型窗口菜單“Format|Port/SignalDisplays|SampleTimeColors”。經(jīng)此操作后,Simulink將用不同顏色顯示具有不同采樣頻率的模塊和信號線。系統(tǒng)默認紅色表示最高采樣頻率,
黑色表示連續(xù)信號流經(jīng)的模塊及信號線。
7.插入模塊如果模塊只有一個輸入端和一個輸出端,那么該模塊可以直接被插入到一條信號線中。方法是:選中待插入模塊,按下鼠標左鍵,拖動待插入模塊至希望插入的信號線上,再釋放鼠標左鍵,
見圖5.20。
圖5.20插入模塊過程
8.信號線與模塊的分離如圖5.21所示,選中待分離模塊,首先按住“Shift”鍵,再按下鼠標左鍵,將模塊拖至別處,即可將模塊與信號線分離。
圖
5.21模塊與信號線分離過程
9.信號線標識
1)添加標識用鼠標左鍵雙擊需要添加標識的信號線,將彈出一個空白的文字填寫框。在其中輸入文本,作為該信號線的標識。輸入結(jié)束后,只需將鼠標指針移出該編輯框,再在模型窗口的任意位置上單擊鼠標左鍵即可。
2)修改標識用鼠標左鍵單擊需要修改的信號線標識,在原標識四周將出現(xiàn)一個編輯框,此時即可修改標識。
3)移動標識用鼠標左鍵單擊需要移動的信號線標識,待編輯框出現(xiàn)后,將鼠標指針指向編輯框,按下鼠標左鍵,拖動其至新位置處即可。
4)復(fù)制標識用鼠標左鍵單擊需要復(fù)制的信號線標識,待編輯框出現(xiàn)后,首先按住“Ctrl”鍵,將鼠標指針指向編輯框,再按下鼠標左鍵,
拖動其至新位置處即可。
5)刪除標識用鼠標左鍵單擊需要刪除的信號線標識,待編輯框出現(xiàn)后,再用鼠標左鍵雙擊標識,使得整個標識被全部選中;按下“Delete”鍵;將鼠標指針移出編輯框,在模型窗口的任意位置處單擊鼠標左鍵,即刪除了該標識。
6)設(shè)置標識字體用鼠標左鍵單擊信號線標識,待編輯框出現(xiàn)后,選擇模型窗口菜單“Format|Font”,將彈出標準的Windows“字體”對話框。在該對話框中,可根據(jù)需要選擇文字字體及大小。
5.3.5模型的注釋
使用模型注釋可以使Simulink模型更具有可讀性,其作用同MATLAB程序中的注釋行一樣。對于經(jīng)常使用Simulink的用戶來說,養(yǎng)成添加注釋的習(xí)慣是非常重要的。
1.模型注釋的創(chuàng)建在Simulink模型窗口中,用鼠標左鍵雙擊任何想要添加注釋的部位,將會出現(xiàn)一個編輯框。在編輯框中輸入注釋內(nèi)容后,將鼠標指針移出編輯框,再在模型窗口的任意位置上單擊鼠標左鍵,
即完成了模型注釋的創(chuàng)建。
2.注釋位置的移動在注釋文字處單擊鼠標左鍵,待出現(xiàn)編輯框后,按下鼠標左鍵,就可把該編輯框拖至任何希望的位置。還可以按照與模塊操作同樣的方法來對注釋進行復(fù)制、
刪除等操作。
3.注釋字體的設(shè)置
用鼠標左鍵單擊注釋文字,待編輯框出現(xiàn)后,選擇模型窗口菜單“Format|Font”,將彈出標準的Windows“字體”對話框。在該對話框中,可根據(jù)需要選擇注釋文字字體及大小。完成選擇后,將鼠標指針移出注釋編輯框,再在模型窗口的任意位置單擊鼠標左鍵,操作完成。
5.4Simulink模型的仿真運行
5.4.1仿真運行
1.Simulink仿真運行可采用如下兩種方法運行Simulink模型:
(1)用鼠標左鍵單擊Simulink模型窗口工具欄“仿真啟動或繼續(xù)”圖標。當仿真開始后,圖標就變成“暫停仿真”圖標。仿真過程結(jié)束后,圖標又變成了。
(2)選擇Simulink模型窗口菜單“Simulation|Start”。當仿真開始后,“Start”就變成了“Stop”。仿真過程結(jié)束后,“Stop”又變成了“Start”。
2.仿真運行的終止或中斷終止仿真運行的方法:選擇Simulink模型窗口菜單“Simulation|Stop”,或用鼠標左鍵單擊工具欄“終止仿真”圖標。中斷仿真運行的方法:選擇Simulink模型窗口菜單“Simulation|Pause”,或用鼠標左鍵單擊Simulink模型窗口的工具欄圖標。
欲使仿真繼續(xù)運行,用鼠標左鍵單擊圖標即可。
3.仿真結(jié)果的輸出與顯示可使用Simulink模塊庫信宿模塊組中的模塊作為仿真結(jié)果輸出與顯示裝置。具體方法將在第5.5節(jié)與5.6節(jié))詳細介紹。
5.4.2仿真參數(shù)的配置運行Simulink模型之前,如果不采用Simulink所提供的仿真參數(shù)缺省設(shè)置,就必須對各種仿真參數(shù)進行配置(configuration)。而且,經(jīng)過仿真初步運行、分析后,也需要對一些仿真參數(shù)進行配置。尤其是對于復(fù)雜控制系統(tǒng)仿真,仿真參數(shù)的合理配置尤為重要。仿真參數(shù)配置包括:仿真起始和終止時刻的設(shè)定;仿真步長的選擇;仿真算法的選定;是否從外界獲得數(shù)據(jù);是否向外界輸出數(shù)據(jù)等。
在Simulink模型窗口下,選擇菜單“Simulation|ConfigurationParameters...”,就可得到如圖5.22所示的仿真參數(shù)配置對話框。圖中,Select項包括:解算器(Solver)、仿真數(shù)據(jù)輸入/輸出(DataImport/Export)、仿真優(yōu)化(Optimization)、診斷(Diagnostics)、硬件實現(xiàn)(HardwareImplemen...)及模型參考(ModelReferencing)等。這些選項中,最基本、最重要的就是解算器和仿真數(shù)據(jù)輸入/輸出兩個選項。下面詳細介紹這兩個選項的參數(shù)選擇及設(shè)置。
圖5.22仿真參數(shù)配置對話框
1.解算器Solver
在仿真參數(shù)配置對話框左側(cè)的“Select”項(見圖5.22)內(nèi),用鼠標左鍵單擊“Solver”,即可出現(xiàn)圖5.22右側(cè)所示的解算器界面。根據(jù)需要設(shè)置合適的仿真參數(shù),可以使Simulink仿真發(fā)揮出最好的效果。
1)仿真時間(Simulationtime)設(shè)置
Simulationtime選項組用于設(shè)置仿真時間。其中:
Starttime:設(shè)置仿真開始時間,缺省設(shè)置為0;
Stoptime:設(shè)置仿真結(jié)束時間,缺省設(shè)置為10,單位為秒(s)。
2)解算器選項(Solveroptions)
Solveroptions選項組用于設(shè)置所用解算器類型和相應(yīng)的仿真選項。其中:
Type選項:設(shè)置解算器仿真步長(也稱為積分步長)的類型。共有兩類:變步長(Variablestep)和定步長(Fixedstep)。缺省設(shè)置是變步長的ode45解算器仿真算法。
Solver選項:選擇支撐仿真模型運行的解算器仿真算法,其列表選項內(nèi)容和解算器類型與仿真模型類型(連續(xù)或離散)有關(guān)。
3)變步長連續(xù)解算器若選擇仿真參數(shù)配置對話框(見圖5.22)中的解算器類型為Variablestep,則出現(xiàn)如圖5.23所示的變步長連續(xù)解算器選項組界面(缺省情況)。
圖
5.23變步長連續(xù)解算器選項組界面
圖中:
Maxstepsize:設(shè)置最大仿真步長;
Minstepsize:設(shè)置最小仿真步長;
Initialstepsize:設(shè)置初始仿真步長;
Zerocrossingcontrol:進行系統(tǒng)狀態(tài)變量不連續(xù)點的零穿越(Zerocrossing)檢查;
Relativetolerance:設(shè)置相對誤差容許限;
Absolutetolerance:
設(shè)置絕對誤差容許限。
4)變步長離散解算器若選擇解算器類型為Variablestep,解算器仿真算法為discrete(nocontinuousstates),則出現(xiàn)如圖5.24所示的變步長離散解算器選項組界面(缺省情況)。圖中各選項的設(shè)置與變步長連續(xù)解算器的相同,
且均可采用缺省值。
圖
5.24變步長離散解算器選項組界面
5)定步長解算器若選擇解算器類型為Fixedstep,則出現(xiàn)如圖5.25所示的定步長解算器選項組界面(缺省情況)。
圖5.25定步長解算器選項組界面圖中:Periodicsampletimeconstraint:規(guī)定由仿真模型定義的采樣時間約束;
Fixedstepsize(fundamentalsampletime):設(shè)置定仿真步長的數(shù)值;
TaskingmodeforPeriodicsampletime:設(shè)置任務(wù)模式。其中,單任務(wù)(SingleTasking)模式用于模型具有相同的采樣速率的情況;多任務(wù)(MultiTasking)模式用于模型具有不同的采樣速率的情況;Auto模式表示系統(tǒng)可根據(jù)模型中的采樣速率相同與否,自動選擇MultiTasking模式或SingleTasking模式。
2.解算器算法及選擇按照解算器類型,可將解算器算法分為變步長算法和定步長算法兩大類。
1)變步長解算器算法(變步長算法)
Simulink為變步長解算器提供了如下常用的仿真算法:
ode45:基于Runge-Kutta法的四、五階單步變步長算法;
ode23:基于Runge-Kutta法的二、三階單步算法;
ode113:可變階次的Adams-Bashforth-MoultonPECE多步算法,比ode45更適合于誤差容許范圍要求比較嚴格的情況;
ode15s:可變階次的數(shù)值微分公式多步算法,可以解算剛性問題;
ode23s:基于修正的Rosenbrock公式單步算法,適用于誤差容許范圍較寬的情況;
ode23t:基于梯形規(guī)則的一種自由插補實現(xiàn)算法,可以解算適度剛性問題;
ode23tb:二階隱式龍格-庫塔公式;
discrete(變步長離散解算器):不含積分運算的變步長算法,適用于純離散系統(tǒng)。此時,系統(tǒng)會自動選擇這種算法。
2)定步長解算器算法(固定步長算法)
Simulink為定步長解算器提供了如下常用的仿真算法:
ode5:定步長ode45算法;
ode4:四階Runge-Kutta算法;
ode3:定步長ode23算法;
ode2:Henu方法,即改進歐拉法;
ode1:即歐拉法;
discrete(fixedstep):不含積分運算的定步長算法,適用于純離散系統(tǒng)。此時,系統(tǒng)會自動選擇這種算法。
3.仿真數(shù)據(jù)輸入/輸出(DataImport/Export)
在仿真參數(shù)配置對話框左側(cè)的“Select”項內(nèi),用鼠標單擊“DataImport/Export”,即可出現(xiàn)如圖5.26右側(cè)所示的仿真數(shù)據(jù)輸入/輸出設(shè)置界面。
圖
5.26仿真數(shù)據(jù)輸入/輸出設(shè)置界面
1)Loadfromworkspace選項組功能:從MATLAB工作空間導(dǎo)入數(shù)據(jù)。
Input:用于將MATLAB工作空間已存在的數(shù)據(jù)導(dǎo)入Simulink模型的“輸入模塊(In)”中。數(shù)據(jù)類型包括:數(shù)組、時間表達式、結(jié)構(gòu)體和時間串等。如果Simulink模型中使用了“輸入模塊”,就必須選中該選項并填寫所導(dǎo)入數(shù)據(jù)的變量名。缺省變量名為[t,u],t為時間,u為該時間對應(yīng)的數(shù)值。如果模型中有n個“輸入模塊”,則u的第1,2,…,n
列分別送至輸入模塊In1,In2,…,Inn中。
Initialstate:用于設(shè)置由Input選項導(dǎo)入Simulink模型輸入模塊(In)變量的初始值,與Input選項配合使用。選中此選項,無論建立該模型的積分模塊(Integator)設(shè)置過什么樣的初始值,都可將MATLAB工作空間已存在的變量強制作為Simulink模型“輸入模塊”變量的初始值(缺省名為xInitial)?!纠?.1】從MATLAB工作空間導(dǎo)入數(shù)據(jù)應(yīng)用實例。
圖
5.27例5.1的Simulink模型
【解】給定含有兩個輸入模塊In1和In2的Simulink模型如圖5.27所示。
首先在MATLAB命令窗口中輸入:>>t1=[0:0.01:10]′;>>u1=[sin(t),cos(t)];>>x0=[2,
2];
運行后,在MATLAB工作空間就定義了三個變量t1、u1、x0。然后,在仿真數(shù)據(jù)輸入/輸出設(shè)置界面(見圖5.26)右側(cè)的Loadfromworkspace選項組中分別選中“Input”和“Initialstate”選項,
并在相應(yīng)的輸入框中填入變量名,
見圖5.28。
圖
5.28例5.1的Loadfromworkspace選項設(shè)置
圖5.29例5.1的仿真結(jié)果(a)
選中Initialstate選項;
(b)
未選中Initialstate選項
2)Savetoworkspace選項組功能:將仿真結(jié)果數(shù)據(jù)保存至MATLAB工作空間中。
Time:用于設(shè)置保存于MATLAB工作空間中的仿真運行時間變量名。選中此選項,可將仿真運行時間變量以指定的變量名(缺省名為tout)保存于MATLAB工作空間。
States:用于設(shè)置保存于MATLAB工作空間中的狀態(tài)變量名。選中此選項,可將仿真過程中Simulink模型中的狀態(tài)變量值以指定的變量名(缺省名為xout)保存于工作空間。
Output:用于設(shè)置保存于MATLAB工作空間中的輸出數(shù)據(jù)變量名。如果Simulink模型中使用了“輸出模塊(Out)”,就必須選中該選項并填寫保存于MATLAB工作空間中的輸出數(shù)據(jù)變量名(缺省名為yout)。數(shù)據(jù)的保存方式與數(shù)據(jù)導(dǎo)入情況類似。
Finalstate:用于設(shè)置保存于MATLAB工作空間中的最終狀態(tài)變量名。選中此選項,可將Simulink模型中的最終狀態(tài)變量值以指定的變量名(缺省名為xFinal)保存于工作空間。
3)Saveoptions選項組功能:數(shù)據(jù)保存選項,需要與Savetoworkspace選項組配合使用。
Limitdatapointstolast:用于限定可存取的數(shù)據(jù)。選中此選項后,可設(shè)定保存變量接收數(shù)據(jù)的長度,缺省值為1000。如果輸入數(shù)據(jù)長度超過設(shè)定值,那么最早的“歷史”數(shù)據(jù)被清除。
Decimation:用于設(shè)置“解點”保存頻度。若取n,則每隔n-1點保存一個“解點”,缺省值為1。
Format:用于設(shè)置數(shù)據(jù)保存格式。對Simulink而言,保存數(shù)據(jù)有三種格式選擇(見其右側(cè)的列表框):數(shù)組(Array)、結(jié)構(gòu)體(Structure)和時間結(jié)構(gòu)體(Structurewithtime)。
Outputoptions:用于設(shè)置產(chǎn)生附加輸出信號數(shù)據(jù),只適用于變步長解算器。其左側(cè)的列表框包括三個選項:Refineoutput(平滑輸出)、Produceadditionaloutput(修改時間步長平滑輸出)和Producespecifiedoutputonly(在給定時間內(nèi)產(chǎn)生輸出)。5.5連續(xù)時間系統(tǒng)建模與仿真
5.5.1線性連續(xù)時間系統(tǒng)
【例5.2】三階控制系統(tǒng)結(jié)構(gòu)圖如圖5.30所示,建立系統(tǒng)的Simulink模型,
并運行模型。
【解】本例的數(shù)學(xué)模型是控制系統(tǒng)的結(jié)構(gòu)圖。這是應(yīng)用Simulink建模時,
最簡單、
最方便、
最直觀的一種數(shù)學(xué)模型。
圖5.30控制系統(tǒng)結(jié)構(gòu)圖(1)構(gòu)建Simulink模型。由圖5.30構(gòu)建的Simulink模型如圖5.31所示,模型名為exm5-2.mdl。圖中所需模塊可分別在Simulink模塊庫中的信源模塊組(見表5.7)、連續(xù)模塊組(見表5.3)、數(shù)學(xué)運算模塊組(見表5.6)以及信宿模塊組(見表5.8)中獲得。構(gòu)建該模型的具體方法詳見5.3節(jié)。
圖
5.31例5.2的Simulink模型
(2)模塊參數(shù)的配置。圖5.31中各模塊參數(shù)的配置如下:①r(t)模塊(即Step模塊):首先將模塊名稱由原來的Step改為r(t)。再用鼠標左鍵雙擊該模塊,即可打開如圖5.32所示的模塊參數(shù)設(shè)置對話框。圖中,將Steptime(階躍信號發(fā)生時刻)欄中缺省的1改為0,其余參數(shù)采用缺省值。圖
5.32
r(t)模塊參數(shù)設(shè)置對話框
②Sum模塊:用鼠標左鍵雙擊該模塊,打開其參數(shù)設(shè)置對話框,將ListofSigns欄中缺省的“++”改為“+-”(系統(tǒng)為負反饋連接),見圖5.33。③ZeroPole模塊:用鼠標左鍵雙擊該模塊,打開其參數(shù)設(shè)置對話框,分別在Zeros、Poles和Gain欄中填寫傳遞函數(shù)的零點向量[]、極點向量[0,-1]和增益5,見圖5.34。與此同時,該模塊的圖標也將顯示新的傳遞函數(shù)。注意,由于此模塊實現(xiàn)的零極點增益模型沒有零點,因而在Zeros欄填寫空矩陣“[]”。圖
5.34零極點增益模塊參數(shù)設(shè)置對話框
④TransferFcn模塊:用鼠標左鍵雙擊該模塊,打開其參數(shù)設(shè)置對話框,在Numeratorcoefficient欄中填寫分子多項式系數(shù)向量[0.4561],在Denominatorcoefficient欄中填寫分母多項式系數(shù)向量[0.1141],見圖5.35。與此同時,該模塊的圖標也將顯示新的傳遞函數(shù)。
如前所述,傳遞函數(shù)分子、
分母多項式系數(shù)均按s降冪排列。
圖5.35傳遞函數(shù)模塊參數(shù)設(shè)置對話框
⑤Gain模塊:首先選擇模型窗口菜單“Format|RotateBlock”,旋轉(zhuǎn)Gain模塊的方向;然后,用鼠標左鍵雙擊Gain模塊,打開其參數(shù)設(shè)置對話框,在Gain欄中填寫0.5,如圖5.36所示。
圖5.36Gain模塊參數(shù)設(shè)置對話框
⑥c(t)模塊(即Scope模塊):首先將模塊名稱由原來的Scope改為c(t);然后,用鼠標左鍵雙擊該模塊,出現(xiàn)示波器窗口;再用鼠標左鍵單擊示波器窗口工具欄圖標,打開如圖5.37所示的示波器參數(shù)設(shè)置對話框;在Datahistory頁中,選中Savedatatoworkspace,這將使送入示波器的數(shù)據(jù)同時被保存在MATLAB工作空間缺省名為ScopeData的時間結(jié)構(gòu)體數(shù)組中。
⑦模型窗口exm5-2.mdl:仿真參數(shù)配置窗口中的各選項均采用缺省值。實際上,在輸入?yún)?shù)之前,Simulink中相應(yīng)的模塊都給出了較實用的提示,用戶可以通過自己摸索的方式來學(xué)習(xí)每一個模塊的使用方法。
(3)仿真運行。首先用鼠標左鍵雙擊c(t)模塊,打開示波器窗口;再用鼠標左鍵單擊模型窗口“仿真啟動”圖標,就可在示波器窗口中看到c(t)的變化曲線;還可再用鼠標左鍵單擊顯示屏上的“自動刻度”圖標,使得波形充滿整個坐標框,仿真結(jié)果見圖5.38。
圖
5.37
c(t)模塊參數(shù)設(shè)置對話框
圖
5.38例5.2的仿真結(jié)果
(4)保存在MATLAB工作空間中的仿真數(shù)據(jù)的應(yīng)用。本例通過示波器模塊向工作空間存放了時間結(jié)構(gòu)體數(shù)組ScopeData。這組數(shù)據(jù)可獨立地供用戶作進一步分析時使用。下面的MATLAB程序(程序名為e5-2.m)就說明了如何利用保存在MATLAB工作空間中的仿真數(shù)據(jù)(即示波器數(shù)據(jù))ScopeData繪制出所需的圖形。
%例5.2程序名為e5-2.mclftt=ScopeData.time;%將時間結(jié)構(gòu)體域的時間數(shù)據(jù)賦給ttxx=ScopeData.signals.values;%將時間結(jié)構(gòu)體域的數(shù)值數(shù)據(jù)賦給xxplot(tt,xx,′r′,′LineWidth′,2)%繪制曲線xlabel(′t′),ylabel(′c(t)′)
%為坐標軸添加說明
程序運行結(jié)果如圖5.39所示。
圖
5.39利用保存在工作空間中的仿真數(shù)據(jù)所繪制的曲線
2.微分方程數(shù)學(xué)模型用微分方程描述的數(shù)學(xué)模型,可利用積分模塊直接構(gòu)建Simulink模型。
【例5.3】考慮如圖5.40所示的強制阻尼二階系統(tǒng)。圖中,小車所受外力為F,小車位移為x。設(shè)小車質(zhì)量m=5,彈簧彈性系數(shù)k=2,阻尼系數(shù)f=1。并設(shè)系統(tǒng)的初始狀態(tài)為靜止在平衡點處,即,x(0)=x(0)=0,外力函數(shù)為幅值等于1的階躍量。仿真此小車系統(tǒng)的運動。.圖5.40強制阻尼二階系統(tǒng)
【解】(1)建立系統(tǒng)數(shù)學(xué)模型。圖5.40中,通過受力分析可知,有兩個力影響著小車的運動:彈簧的彈性力和阻尼器的阻尼力。彈性力為kx,阻尼力為fx,小車的加速度力為mx。若忽略重力,這三個力的合力應(yīng)為F。根據(jù)牛頓第二定律,得到小車的運動方程為......(5.1)
將m,k,
f的值代入式(5.1),整理后得
(5.2)
將上述微分方程改寫為
(5.3)
式中,u(t)=0.2F。
(2)利用積分模塊構(gòu)建Simulink模型?;谖⒎址匠虜?shù)學(xué)模型的仿真,實質(zhì)上就是建立微分方程求解模型。因此,可利用積分模塊采用逐次降階積分法完成。即,x經(jīng)積分模塊作用輸出x,x再經(jīng)積分模塊作用就得到x。而x與x經(jīng)代數(shù)運算又產(chǎn)生x
。依據(jù)上述思想,由式(5.3)所構(gòu)建的Simulink模型如圖5.41所示,模型名為exm5-3.mdl。圖中,x″對應(yīng)x,x′對應(yīng)x。........圖
5.41求解微分方程的Simulink模型
(3)模塊參數(shù)的配置。圖5.41中的模塊參數(shù)配置如下:①u(t)模塊:將模塊名稱由原來的Step改為u(t),將Steptime欄填寫為0,將Finalvalue欄填寫為0.2。②Gain模塊:在Gain欄填寫0.2。③Gain1模塊:在Gain欄填寫0.4。④Sum模塊:Iconshape(圖標形狀)項選擇rectangular,使模塊呈矩形;在ListofSigns欄填寫+--。
⑤Clock模塊:產(chǎn)生當前仿真時間數(shù)據(jù)t,僅供Toworkspace模塊使用。⑥Mux模塊:Numberofinputs欄填寫2(缺省值),見圖5.42。該模塊可將模型中的位移數(shù)據(jù)x與時間數(shù)據(jù)t組合成向量。⑦ToWorkspace模塊:在Variablename(變量名)欄中將缺省的變量名simout改為x-t,
如圖5.43所示。
圖
5.42Mux模塊參數(shù)設(shè)置對話框
圖5.43ToWorkspace參數(shù)設(shè)置對話框
⑧模型窗口exm5-3.mdl:將鼠標指針放置在模型窗口工具欄圖標內(nèi),將框內(nèi)數(shù)值改為50(即仿真結(jié)束時間)?;蜻x擇模型窗口菜單“Simulation|ConfigurationParameters...”,打開仿真參數(shù)配置對話框,在Solver選項組的SimulationTime選項中,將Stoptime設(shè)置為50。
(4)仿真運行。首先用鼠標左鍵雙擊示波器模塊,打開示波器窗口;再用鼠標左鍵單擊模型窗口圖標,就可在示波器窗口中顯示出小車位移x隨時間變化的軌跡,如圖5.44所示。
圖
5.44例5.3的仿真結(jié)果
(5)將數(shù)據(jù)保存到工作空間中。本例采用Toworkspace模塊以選定的矩陣方式向工作空間存放數(shù)組數(shù)據(jù)x-t。這組數(shù)據(jù)也可獨立地供用戶作進一步分析時使用。例如,在MATLAB命令窗口中輸入:
>>x=x-t(:,1);>>t=x-t(:,2);>>plot(t,x)運行后即可繪制出x-t曲線。
3.積分模塊的復(fù)位功能積分模塊的主要功能是構(gòu)建諸如例5.3一類微分方程的Simulink模型。除此而外,利用積分器的復(fù)位功能還可以構(gòu)建分段積分方程的Simulink模型。
【例5.4】構(gòu)建如下積分方程的Simulink模型并求解。
(0≤t<5)(t≥5)(5.4)
式中,u(t)是單位階躍函數(shù),初始條件為x(0)=x(0)=0
。
.
【解】本例說明如何產(chǎn)生帶復(fù)位端口的積分模塊及產(chǎn)生有兩個顯示窗口的示波器。(1)構(gòu)建積分方程求解模型。由式(5.4)構(gòu)建的Simulink模型如圖5.45所示,模型名為exm5-4.mdl。圖中,積分模塊與示波器模塊均有兩個輸入端口,
它們的產(chǎn)生方法如下:
圖
5.45求解分段積分方程的Simulink模型
①產(chǎn)生帶復(fù)位端口的積分模塊。用鼠標左鍵雙擊Interator模塊,打開其參數(shù)設(shè)置對話框;在Externalreset(外復(fù)位)下拉欄中選擇rising項;用鼠標左鍵單擊“OK”按鈕,積分模塊就呈現(xiàn)如圖5.45所示的兩個端口,下端口為復(fù)位端口,該端口旁的符號表示此端口信號由負變正的瞬間,該積分器被強迫置為零。②產(chǎn)生有兩個顯示窗口的示波器。用鼠標左鍵雙擊Scope模塊,打開示波器窗口,見圖5.46;再用鼠標左鍵單擊該窗口工具欄圖標,打開示波器屬性對話框;在Numberofaxes欄中填寫2,用鼠標左鍵單擊“OK”按鈕,就獲得兩端口示波器,同時出現(xiàn)圖5.47所示的兩個顯示窗口。
(2)仿真模型參數(shù)配置。①Clock模塊:生成時間變量t。②Constant模塊:Constantvalue欄填寫5。③Sum模塊:ListofSings欄填寫+-。④
增益模塊:
Gain欄填寫0.5。
⑤示波器模塊:自上而下,在示波器第一個顯示窗口坐標框內(nèi)單擊鼠標右鍵,彈出一個現(xiàn)場菜單,用鼠標左鍵單擊“Axesproperties...”,打開縱坐標設(shè)置對話框;在Y-min和Y-max欄中分別填寫0和10(縱坐標下、上限),在Title欄中填寫f(t)。示波器第二個顯示窗的縱坐標下、上限采用缺省值,Title欄中填寫t-5。⑥模型窗口exm5-3.mdl:仿真參數(shù)配置窗口各選項均采用缺省值。(3)仿真運行。用鼠標左鍵雙擊Scope模塊,打開示波器窗口;再用鼠標左鍵單擊模型窗口圖標,在示波器窗口中顯示出f(t)和
t-5曲線,
如圖5.47所示。
圖5.46Scope模塊參數(shù)設(shè)置對話框
圖5.47例5.4的仿真結(jié)果
4.單位脈沖函數(shù)的生成
像其他物理體系中不存在理想單位脈沖一樣,Simulink模塊庫中也沒有現(xiàn)成的單位脈沖標準模塊,但可以采用某種近似方法產(chǎn)生。
【例5.5】已知控制系統(tǒng)的狀態(tài)方程為
試求系統(tǒng)的單位脈沖響應(yīng)。
【解】本例主要說明單位脈沖函數(shù)的生成方法及狀態(tài)方程模塊的使用。(1)單位脈沖函數(shù)的數(shù)學(xué)含義及近似實現(xiàn)。
單位脈沖函數(shù)在數(shù)學(xué)上定義為
(t=0)(t≠0)(5.5a)
且滿足
(5.5b)
近似構(gòu)造單位脈沖函數(shù)的思路是:用一個面積為1的“窄高”脈沖近似,其數(shù)學(xué)表達式為
δ(t)=M·1(t)-M·1(t-d)(5.6)
式中,1(t)為單位階躍函數(shù),M為近似脈沖幅度,d為近似脈沖寬度,且M·d=1。說明:d的選擇要考慮下述兩方面的因素:①脈沖寬度應(yīng)遠小于被研究系統(tǒng)的最快動態(tài)模式(系統(tǒng)特征根或特征值的實部絕對值的最大值)。②脈沖寬度不能太小,以免引起嚴重的圓整或截斷誤差。
本例系統(tǒng)的特征值可采用下述MATLAB命令求出:
>>eig([01;-0.4-0.2])運行結(jié)果為:ans=-0.1000+0.6245i-0.1000-0.6245i
即,系統(tǒng)特征值為λ1,2=-0.1±i0.6245。
由于系統(tǒng)特征值實部的絕對值為0.1,因此取近似脈沖寬度d=0.01,幅度M=100,代入式(5.6),得δ(t)=100·1(t)-100·1(t-0.01)(5.7)
(2)構(gòu)建Simulink模型及參數(shù)配置。由式(5.7)構(gòu)建的Simulink模型如圖5.48所示,模型名為exm5-5.mdl。圖中,各模塊參數(shù)配置如下。
①u1(t)模塊:Steptime欄填寫0,F(xiàn)inaltime欄填寫100。②u2(t)模塊:Steptime欄填寫0.01,F(xiàn)inaltime欄填寫100。③
Sum模塊:
ListofSigns欄填寫+-。
圖
5.48具有近似單位脈沖的Simulink模型
圖
5.49例5.5的仿真結(jié)果
④StateSpace模塊:在矩陣A,B,C,D欄中依次填寫[0,1;-0.4,-0.2],[0;0.2],[1,0],0。⑤模型窗口exm5-5.mdl:將模型窗口工具欄圖標框內(nèi)數(shù)值改為20,
即將仿真終止時間設(shè)置為20。
其余仿真參數(shù)采用缺省值。
(3)仿真運行。用鼠標左鍵雙擊示波器模塊,打開示波器窗口。再用鼠標左鍵單擊模型窗口圖標,在示波器窗口顯示出y(t)曲線,如圖5.49所示。5.5.2非線性連續(xù)時間系統(tǒng)
1.典型非線性模塊的應(yīng)用為了提高仿真能力,Simulink模塊庫中包含了許多典型非線性模塊,如DeadZone模塊、Saturation模塊、Relay模塊及Backlash模塊等。應(yīng)用Simulink構(gòu)建非線性連續(xù)時間系統(tǒng)的仿真模型時,根據(jù)非線性元件參數(shù)的取值,既可使用典型非線性模塊直接實現(xiàn),也可通過對典型非線性模塊進行適當組合實現(xiàn)(見例5.6)。當然,還可以采用Fun函數(shù)模塊或其他Simulink模塊庫中的模塊實現(xiàn)(見例5.7和例5.8)。
【例5.6】設(shè)具有飽和非線性特性的控制系統(tǒng)如圖5.50所示。通過仿真研究K=15和K=5時系統(tǒng)的運動。
圖
5.50具有飽和非線性特性的控制系統(tǒng)結(jié)構(gòu)圖
【解】(1)構(gòu)建Simulink模型。由圖5.50所構(gòu)建的Simulink模型如圖5.51所示,模型名為exm5-6.mdl。
圖5.51例5.6的Simulink模型
(2)仿真模型參數(shù)配置。圖5.51中各模塊參數(shù)配置如下:①r(t)模塊:Steptime欄填寫0,F(xiàn)inaltime欄填寫1。②Sum模塊:ListofSigns欄填寫+-。③Saturation模塊:Upperlimit(飽和上限)欄填寫1,Lowerlimit(飽和下限)欄填寫-1。④Gain模塊:Gain欄填寫2。⑤G1(s)模塊:Numerator欄填寫[15],Denominator欄填寫[0.1,1,0]。⑥G2(s)模塊:Numerator欄填寫[1],Denominator欄填寫[0.2,1]。⑦
模型窗口exm5
-6.mdl:
仿真參數(shù)配置窗口各選項均采用缺省值。
(3)仿真運行。用鼠標左鍵雙擊示波器模塊,打開示波器窗口;再用鼠標左鍵單擊模型窗口圖標,則得到K=15時系統(tǒng)的響應(yīng)曲線,如圖5.52(a)所示。顯見,此時非線性系統(tǒng)的運動出現(xiàn)自激振蕩。進一步,將傳遞函數(shù)G1(s)模塊的Numerator設(shè)置由[15]改為[5],其余參數(shù)不變。同樣可以得到K=5時非線性系統(tǒng)的響應(yīng)曲線,如圖5.52(b)所示,此時非線性系統(tǒng)的運動已經(jīng)沒有自激振蕩了。圖5.52非線性系統(tǒng)的響應(yīng)曲線(a)K=15;
(b)K=5
2.任意函數(shù)模塊及其應(yīng)用在Simulink模塊庫中,除間歇、死區(qū)、飽和等函數(shù)形式固定的模塊外,還有若干個函數(shù)形式可由用戶根據(jù)需要定義的“任意函數(shù)”模塊,主要有:Fcn模塊(函數(shù)組合模塊)、MATLABFcn模塊(MATLAB函數(shù)模塊)和LookupTable模塊(查表模塊)等,其模塊圖標見圖5.53。
圖5.53Simulink模塊庫中的“任意函數(shù)”模塊圖標(a)Fcn模塊;(b)MATLABFcn模塊;(c)
1維Look
upTable模塊;
(d)
2維Look
upTable模塊
1)Fcn模塊
Fcn模塊位于用戶自定義(UserDefineFunction)模塊組中,模塊圖標見圖5.53(a),其參數(shù)設(shè)置對話框如圖5.54所示。圖中,Expression(表達式)欄必須填寫函數(shù)表達式(即函數(shù)的解析式),且必須遵循下述規(guī)則:
圖
5.54Fcn模塊參數(shù)設(shè)置對話框
(1)模塊的輸入可以是標量或向量,但輸出一定是標量。模塊輸入是標量時,必須用u作為變量名;輸入為向量時,必須用u(1),u(2)等向量作為元素名。圖5.54中Expression欄的內(nèi)容為缺省表達式。(2)表達式符合C語言格式,執(zhí)行的是標量運算,計算結(jié)果就是模塊的輸出。(3)
表達式中引用的其他標量形式的參量必須存在于MATLAB工作空間中。
2)MATLABFcn模塊
MATLABFcn模塊也位于用戶自定義模塊組中,模塊圖標如圖5.53(b)所示,其參數(shù)設(shè)置對話框如圖5.55所示。圖中,MATLABfunction欄填寫表達式或函數(shù)文件名,且應(yīng)遵循下述規(guī)則:(1)模塊的輸入、輸出都可以是標量或向量。(2)表達式的書寫規(guī)則與Fcn模塊相同;函數(shù)編寫符合2.6.1節(jié)論述的M函數(shù)文件基本結(jié)構(gòu)及規(guī)則。(3)表達式或函數(shù)的輸出必須與該模塊的輸出維數(shù)匹配,否則就會出現(xiàn)錯誤。該模塊可以進行的運算比Fcn模塊復(fù)雜,
但速度較慢。
圖5.55MATLABFcn函數(shù)模塊參數(shù)設(shè)置對話框
3)LookupTable模塊
LookupTable模塊位于查表(LookupTables)模塊組中,有1維、2維及n維之分。圖5.53(c)是1維LookupTable模塊圖標,而圖5.53(d)則是2維LookupTable模塊圖標。
此類模塊可根據(jù)所給表格對輸入進行“插補”或“外推”運算。
【例5.7】將圖5.50所示非線性控制系統(tǒng)中的飽和非線性用MATLABFcn函數(shù)模塊實現(xiàn)。
【解】(1)構(gòu)建Simulink模型。由圖5.50所構(gòu)建的Simulink模型如圖5.56所示,模型名為exm5-7.mdl。
圖
5.56具有MATLABFcn模塊的非線性系統(tǒng)仿真模型
圖中,Saturation模塊(即MATLABFcn模塊)實現(xiàn)飽和非線性特性,函數(shù)名為bh.m。因此,在該模塊參數(shù)設(shè)置對話框(見圖5.55)的MATLABfunction欄中填寫函數(shù)名bh(省略擴展名),其M函數(shù)文件如下:functiony=bh(u)
ifabs(u)<=1y=2*u;
elseifu>1y=2;
else
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資合作經(jīng)營幼兒園合同書
- 提前預(yù)定租約協(xié)議
- 入伍誓言獻身國防為民族復(fù)興努力
- 燈飾安裝工程勞務(wù)分包
- 債務(wù)重組協(xié)議書格式要求
- 未寫英語作業(yè)的誠懇保證書
- 科技服務(wù)合同范本
- 供應(yīng)商入圍招標文件的制作技巧
- 招標文件制作軟件使用解析
- 批發(fā)市場肉品采購合約
- GB/T 10560-2017礦用焊接圓環(huán)鏈用鋼
- GB/T 10325-2012定形耐火制品驗收抽樣檢驗規(guī)則
- FZ/T 91019-1998染整機械導(dǎo)布輥制造工藝規(guī)范
- FZ/T 52025-2012再生有色滌綸短纖維
- SHSG0522003 石油化工裝置工藝設(shè)計包(成套技術(shù))內(nèi)容規(guī)定
- FMEA-培訓(xùn)教材-汽車fmea培訓(xùn)課件
- 制造部年終總結(jié)報告課件
- 粵科版高中通用技術(shù)選修1:電子控制技術(shù)全套課件
- 知識產(chǎn)權(quán)法(英文) Intellectual Property Right Law課件
- 熱力管道焊接技術(shù)交底記錄大全
- 接地裝置安裝試驗記錄
評論
0/150
提交評論