《MATLAB在自動(dòng)控制中的應(yīng)用》課件第5章_第1頁(yè)
《MATLAB在自動(dòng)控制中的應(yīng)用》課件第5章_第2頁(yè)
《MATLAB在自動(dòng)控制中的應(yīng)用》課件第5章_第3頁(yè)
《MATLAB在自動(dòng)控制中的應(yīng)用》課件第5章_第4頁(yè)
《MATLAB在自動(dòng)控制中的應(yīng)用》課件第5章_第5頁(yè)
已閱讀5頁(yè),還剩346頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章基于Simulink的控制系統(tǒng)建模與仿真5.1Simulink基本操作及模塊庫(kù)

5.2Simulink模塊庫(kù)模塊功能介紹

5.3Simulink基本建模方法

5.4Simulink模型的仿真運(yùn)行

5.5連續(xù)時(shí)間系統(tǒng)建模與仿真

5.6離散時(shí)間系統(tǒng)建模與仿真

5.7非線性系統(tǒng)的線性化

5.8子系統(tǒng)創(chuàng)建及封裝技術(shù)

5.9S函數(shù)及其應(yīng)用

5.1Simulink基本操作及模塊庫(kù)

5.1.1運(yùn)行Simulink首先必須運(yùn)行MATLAB,在此基礎(chǔ)上運(yùn)行Simulink的方式有兩種:(1)在MATLAB命令窗口中直接輸入“simulink”并回車。

2)用鼠標(biāo)左鍵單擊MATLAB桌面工具欄中的Simulink圖標(biāo)。運(yùn)行后會(huì)顯示如圖5.1(a)所示的樹形Simulink模塊庫(kù)瀏覽器界面,它顯示了Simulink模塊庫(kù)(包括模塊組)和所有已經(jīng)安裝了的MATLAB工具箱對(duì)應(yīng)的模塊庫(kù)。圖中,若用鼠標(biāo)左鍵單擊其左側(cè)的“Simulink”項(xiàng),會(huì)在其右側(cè)顯示Simulink模塊庫(kù)所有模塊組的圖標(biāo)。同樣,若用鼠標(biāo)左鍵單擊圖左側(cè)Simulink模塊庫(kù)中任一模塊組的名稱(如“Continuous”),就會(huì)在其右側(cè)顯示該模塊組各模塊的圖標(biāo)。

圖5.1Simulink模塊庫(kù)瀏覽器界面(a)

樹形;

(b)

圖標(biāo)形

5.1.2Simulink模塊庫(kù)由圖5.1可以看到,Simulink為用戶提供了豐富的模塊庫(kù),按照用途可將它們分成四類:

(1)系統(tǒng)基本構(gòu)成模塊庫(kù),包括:常用模塊組(CommonlyUsedBlocks)、連續(xù)(Continuous)模塊組、非連續(xù)(Discontinuities)模塊組和離散(Discrete)模塊組。

(2)連接、運(yùn)算模塊庫(kù),包括:邏輯和位運(yùn)算(LogicandBitOperations)模塊組、查表(LookupTables)模塊組、數(shù)學(xué)運(yùn)算(MathOperations)模塊組、端口與子系統(tǒng)(Port&Subsystems)模塊組、信號(hào)屬性(SignalAttributes)模塊組、信號(hào)通路(SignalRouting)模塊組、用戶自定義函數(shù)(UserDefinedFunctions)模塊組和附加數(shù)學(xué)與離散(AdditionalMath&Discrete)模塊組。

(3)專業(yè)模塊庫(kù),包括:模型校核(ModelVerification)模塊組和模型擴(kuò)充(ModelWideUtilities)模塊組。

(4)輸入/輸出模塊庫(kù),包括:信源(Sources)模塊組和信宿(Sinks)模塊組。這樣,運(yùn)行Simulink的時(shí)候,就會(huì)出現(xiàn)模塊庫(kù)瀏覽器、模塊庫(kù)、模型以及仿真結(jié)果圖形輸出等各自分開的窗口。這些窗口的性質(zhì)相對(duì)獨(dú)立,

不屬于MATLAB的圖形窗口。

5.1.3Simulink模型窗口的組成圖5.2是一個(gè)僅由正弦波模塊和示波器模塊組成的Simulink模型窗口。整個(gè)模型窗口的組成自上而下是:菜單欄、工具欄、編輯框和狀態(tài)欄。這里,僅簡(jiǎn)要介紹工具欄和狀態(tài)欄。

5.2Simulink模型窗口

1.工具欄

工具欄位于Simulink模型窗口中菜單欄的下面,它由許多圖標(biāo)組成。圖5.2工具欄中,從最左邊開始的十二個(gè)圖標(biāo)具有標(biāo)準(zhǔn)Windows的相應(yīng)操作功能,這里不再贅述。其余常用圖標(biāo)及功能見表5.1。

表5.1Simulink模型窗口常用圖標(biāo)及功能

2.狀態(tài)欄狀態(tài)欄位于Simulink模型窗口的最下面。圖5.2狀態(tài)欄自左至右的文字含義如下:

Ready:表示模型已準(zhǔn)備就緒在等待仿真命令。

100%:表示編輯窗口模型的顯示比例。

ode45:表示當(dāng)前仿真所選擇的仿真算法。此外,

仿真過(guò)程中,

在狀態(tài)欄的空白格中還會(huì)實(shí)時(shí)顯示仿真經(jīng)歷的時(shí)刻。

5.2Simulink模塊庫(kù)模塊功能介紹

5.2.1常用模塊組用鼠標(biāo)左鍵單擊Simulink瀏覽器樹形界面(見圖5.1(a))模塊組中的“CommonlyUsedBlocks”,在其右側(cè)的列表框中即會(huì)顯示出如圖5.3(a)所示的樹形常用模塊組。或用鼠標(biāo)左鍵雙擊Simulink瀏覽器圖標(biāo)形界面(見圖5.1(b))中的“CommonlyUsedBlocks”模塊,會(huì)得到如圖5.3(b)所示的圖標(biāo)形常用模塊組。

圖5.3常用模塊組的兩種顯示形式(a)

樹形;

(b)

圖標(biāo)形

常用模塊組包含了Simulink建模與仿真所需的各類最基本模塊,這些模塊均來(lái)自其他模塊組,主要是便于用戶能夠在其中獲得最常用的模塊。進(jìn)行一般線性連續(xù)/離散時(shí)間控制系統(tǒng)及非線性控制系統(tǒng)研究時(shí),可首選此模塊組。常用模塊組主要模塊的功能及說(shuō)明見表5.2。

表5.2常用模塊組模塊的功能說(shuō)明

5.2.2連續(xù)模塊組連續(xù)模塊組的樹形和圖標(biāo)形顯示形式分別如圖5.4(a)和(b)所示。

圖5.4連續(xù)模塊組的兩種顯示形式(a)

樹形;

(b)

圖標(biāo)形

表5.3連續(xù)模塊組模塊功能說(shuō)明

5.2.3非連續(xù)模塊組

圖5.5非連續(xù)模塊組的兩種顯示形式(a)

樹形;

(b)

圖標(biāo)形

表5.4非連續(xù)模塊組模塊功能說(shuō)明5.2.4離散模塊組

圖5.6離散模塊組的兩種顯示形式(a)

樹形;

(b)

圖標(biāo)形

表5.5離散模塊組模塊功能說(shuō)明

續(xù)表

5.2.5數(shù)學(xué)運(yùn)算模塊組

圖5.7數(shù)學(xué)運(yùn)算模塊組的兩種顯示形式(a)

樹形;

(b)

圖標(biāo)形

表5.6數(shù)學(xué)運(yùn)算模塊組模塊功能說(shuō)明

表5.6數(shù)學(xué)運(yùn)算模塊組模塊功能說(shuō)明

表5.6數(shù)學(xué)運(yùn)算模塊組模塊功能說(shuō)明

表5.6數(shù)學(xué)運(yùn)算模塊組模塊功能說(shuō)明

5.2.6信源模塊組在任何一個(gè)Simulink模型中,信源模塊和信宿模塊是必不可少的,信源模塊為系統(tǒng)提供輸入信號(hào),而信宿模塊則為系統(tǒng)提供輸出(顯示)裝置。因此,信源模塊和信宿模塊是Simulink模型的基本組成部分,沒有它們的Simulink模型就不是一個(gè)完整的Simulink模型。信源模塊組的樹形和圖標(biāo)形顯示分別如圖5.8(a)和(b)所示。

圖5.8信源模塊組的兩種顯示形式(a)

樹形;

(b)

圖標(biāo)形

表5.7信源模塊組模塊功能說(shuō)明

表5.7信源模塊組模塊功能說(shuō)明

表5.7信源模塊組模塊功能說(shuō)明

5.2.7信宿模塊組

圖5.9信宿模塊組的兩種顯示形式(a)

樹形;

(b)

圖標(biāo)形

1.信宿模塊組一覽表

表5.8信宿模塊組模塊功能說(shuō)明

表5.8信宿模塊組模塊功能說(shuō)明

2.示波器模塊示波器是信宿模塊組中最重要的模塊。示波器模塊窗口如圖5.10所示。

1)示波器的用途在仿真過(guò)程中,示波器實(shí)時(shí)顯示(標(biāo)量或向量)信號(hào)波形。無(wú)論示波器窗口是否打開,只要仿真一啟動(dòng),示波器緩沖區(qū)就接受示波器輸入端傳送的信號(hào)。該緩沖區(qū)可以接受多達(dá)30個(gè)不同的信號(hào),它們以列的方式排列。

圖5.10示波器窗口

2)示波器窗口的工具欄示波器窗口的工具欄位于該窗口菜單欄下面,它由許多圖標(biāo)組成,見圖5.10。示波器窗口工具欄常用圖標(biāo)及功能如下:

·圖標(biāo):打開示波器參數(shù)設(shè)置對(duì)話窗口;

·三個(gè)圖標(biāo):分別管理xy雙向變焦(Zoom)、x軸向變焦(ZoomX-axis)和y軸向變焦(ZoomY-axis);

·圖標(biāo):管理縱坐標(biāo)的自動(dòng)刻度(Autoscale),自動(dòng)選取當(dāng)前示波器窗口中信號(hào)的最小值和最大值為縱坐標(biāo)的下限和上限;

·圖標(biāo):保存當(dāng)前軸的設(shè)置;

·圖標(biāo):

恢復(fù)已保存軸的設(shè)置。

3)

示波器縱坐標(biāo)范圍的手工設(shè)置

5.11示波器縱坐標(biāo)范圍手工設(shè)置對(duì)話框

4)示波器橫坐標(biāo)的設(shè)置用鼠標(biāo)左鍵單擊示波器工具欄圖標(biāo),便打開如圖5.12所示的示波器參數(shù)設(shè)置對(duì)話窗口。圖5.12(a)為General(一般)選項(xiàng),可進(jìn)行橫坐標(biāo)顯示參數(shù)的設(shè)置。圖5.12(b)為Datahistory(數(shù)據(jù)歷史)選項(xiàng),可進(jìn)行示波器數(shù)據(jù)處理的設(shè)置。圖5.12示波器參數(shù)設(shè)置對(duì)話窗口(a)

一般選項(xiàng);

(b)

數(shù)據(jù)歷史選項(xiàng)

影響橫坐標(biāo)顯示的參數(shù)設(shè)置(見圖5.12(a))如下:

Timerange:在此欄填寫所希望的橫坐標(biāo)上限值,即可改變示波器的橫坐標(biāo)。此欄若為auto,則示波器橫坐標(biāo)上限值即為所設(shè)仿真時(shí)間(見5.5.1節(jié));缺省值為10,則意味著顯示在[0,10]區(qū)間的信號(hào);如果信號(hào)實(shí)際持續(xù)時(shí)間超過(guò)設(shè)定時(shí)間,則不顯示區(qū)間外的內(nèi)容。

Sampling:包含兩個(gè)下拉菜單項(xiàng),即抽選(Decimation)和采樣周期(Sampletime)。

Decimation設(shè)置顯示頻度,若取n,則每隔n-1個(gè)數(shù)據(jù)點(diǎn)給予顯示,缺省值為1。

Sampletime設(shè)置顯示點(diǎn)的(采樣)時(shí)間步長(zhǎng),缺省值為0,表示顯示連續(xù)信號(hào);倘若取-1,則表示顯示方式取決于輸入信號(hào);若取任何大于0的數(shù),則表示顯示離散信號(hào)的時(shí)間間隔。

5)示波器數(shù)據(jù)存儲(chǔ)圖5.12(b)中兩個(gè)復(fù)選框的含義如下:

Limitdatapointstolast:設(shè)定緩沖區(qū)接收數(shù)據(jù)的長(zhǎng)度。缺省為選中狀態(tài),其值為5000。如果輸入數(shù)據(jù)長(zhǎng)度超過(guò)設(shè)定值,則最早的“歷史”數(shù)據(jù)被清除。

Savedatatoworkspace:若選中該欄,可以把示波器緩沖區(qū)中保存的數(shù)據(jù)以矩陣或結(jié)構(gòu)體形式送入MATLAB工作空間。缺省時(shí)不被選中。變量名可以設(shè)定,缺省名是ScopeData。

6)多信號(hào)顯示區(qū)設(shè)置在圖5.12(a)的Numberofaxes欄進(jìn)行多信號(hào)顯示區(qū)設(shè)置。該欄的缺省值為1,表示Scope模塊只有一個(gè)輸入端,示波器窗只有一個(gè)信號(hào)顯示區(qū)。如果此欄設(shè)置為2,則Scope模塊將有兩個(gè)輸入端,示波器窗口也相應(yīng)地有兩個(gè)信號(hào)顯示區(qū)。該欄的其他設(shè)置值可依此類推。

7)設(shè)置為游離示波器選中圖5.12(a)的floatingscope欄,示波器將以游離狀態(tài)出現(xiàn)。即,示波器沒有輸入端,導(dǎo)致它與其他模塊分離。

5.3Simulink基本建模方法

5.3.1Simulink模型概念

Simulink模型有幾層含義:視覺上,表現(xiàn)為直觀的方框圖;文件上,則是擴(kuò)展名為.mdl的ASCII代碼;數(shù)學(xué)上,體現(xiàn)了一組微分方程或差分方程;行為上,則模擬了由物理器件構(gòu)成的實(shí)際系統(tǒng)的動(dòng)態(tài)特性。

5.13Simulink模型的一般性結(jié)構(gòu)

5.3.2Simulink模型窗口的操作

1.新建Simulink模型窗口打開一個(gè)缺省名為untitled的空白窗口,即新建立了一個(gè)Simulink模型窗口。打開“untitled”模型窗口通常可采用以下幾種方法:

(1)用鼠標(biāo)左鍵單擊Simulink模塊庫(kù)瀏覽器或某個(gè)Simulink模型窗口的圖標(biāo)。

(2)選擇MATLAB桌面菜單“File|New|Model”。

(3)選擇Simulink模塊庫(kù)瀏覽器窗口或某個(gè)Simulink模型窗口中的菜單“File|New|Model”。

2.打開已有Simulink模型

要打開已有Simulink模型有以下幾種方法:

(1)用鼠標(biāo)左鍵單擊Simulink模塊庫(kù)瀏覽器或某個(gè)Simulink模型窗口圖標(biāo),彈出一個(gè)打開Simulink文件對(duì)話框。該對(duì)話框與一般Windows應(yīng)用軟件的打開文件對(duì)話框類似。在該對(duì)話框中,用鼠標(biāo)左鍵單擊欲打開的文件,再單擊“打開”鍵(或用鼠標(biāo)左鍵雙擊欲打開的文件),

即可打開所選擇的Simulink模型。

(2)選擇Simulink模塊庫(kù)瀏覽器窗口中某個(gè)Simulink模型窗口菜單“File|Open”。其余的與方法(1)類似。

(3)在MATLAB命令窗口下直接輸入Simulink模型文件名字(不帶擴(kuò)展名.mdl)。如果文件不在當(dāng)前目錄或MATLAB搜索路徑上,

則還需要注明文件路徑。

3.Simulink模型的保存

由于Simulink是以ASCII碼形式存儲(chǔ)的.mdl文件(稱為MDL模型文件),因此這種文件的保存是標(biāo)準(zhǔn)的Windows操作。即,利用圖標(biāo)、菜單“File|Save”或“File|AsSave...”等,

都可以實(shí)現(xiàn)Simulink模型的保存。

4.Simulink模型的打印打印Simulink模型最快捷的方法是將模型直接輸出到打印機(jī)上,通常采用菜單打印方法具體如下:

用鼠標(biāo)左鍵單擊Simulink模型窗口圖標(biāo),或選擇該窗口菜單“File|Print”,則彈出一個(gè)打印對(duì)話框。該對(duì)話框與Windows標(biāo)準(zhǔn)文檔打印對(duì)話框的區(qū)別在于:多了一個(gè)如圖5.14所示的選項(xiàng)框。該選項(xiàng)框中各選項(xiàng)的功用和配合見表5.9。說(shuō)明:當(dāng)模型被直接輸出到打印機(jī)時(shí),Simulink將根據(jù)用戶所選紙張的大小,自動(dòng)調(diào)整模型的大小。

圖5.14打印對(duì)話框中的選項(xiàng)框

表5.9圖5.14選項(xiàng)框中各選項(xiàng)的功用及配合

5.Simulink模型的文檔嵌入

Simulink模型可以位圖形式或以Windows圖元文件形式嵌入到Word文檔中。方法是:選擇Simulink模型窗口菜單“Edit|CopyModelToClipboard”,將整個(gè)模型復(fù)制到剪切板中,

然后再將其粘貼到Word文檔中。

5.3.3模塊操作

1.模塊的選定模塊選定操作是許多其他操作(如復(fù)制、移動(dòng)、刪除)的前導(dǎo)操作。被選定模塊的四個(gè)角會(huì)出現(xiàn)小黑塊,如圖5.15所示。選定單個(gè)模塊的操作方法:將鼠標(biāo)指向待選模塊,單擊鼠標(biāo)左鍵即可。選定多個(gè)模塊的操作方法有兩種:方法一:按住“Shift”鍵,依次點(diǎn)擊所需選定的模塊。方法二:按住鼠標(biāo)右鍵,拉出矩形虛線框,將所有待選模塊包括在其中,然后松開按鍵,于是矩形里所有模塊(包括連接模塊的信號(hào)線)均被選中,

如圖5.16所示。

5.15選定的模塊

圖5.16用矩形框同時(shí)選中多個(gè)模塊

2.模塊的復(fù)制

1)同一模型窗口內(nèi)的模塊復(fù)制方法方法一:選中待復(fù)制模塊,按下鼠標(biāo)右鍵,拖動(dòng)該模塊至合適的位置,釋放鼠標(biāo)右鍵。方法二:

選中待復(fù)制模塊,

按住“Ctrl”鍵,

再按下鼠標(biāo)左鍵,

拖動(dòng)該模塊至合適的位置,

釋放鼠標(biāo)左鍵。

2)不同模型窗口(包括模型庫(kù)窗口)之間的模塊復(fù)制方法方法一:在一窗口選中模塊,按下鼠標(biāo)左鍵,將其直接拖至另一模型窗口,釋放鼠標(biāo)左鍵。方法二:在一窗口選中模塊,用鼠標(biāo)左鍵單擊圖標(biāo),然后用鼠標(biāo)左鍵點(diǎn)擊目標(biāo)模型窗口中需復(fù)制模塊的位置,再用鼠標(biāo)左鍵單擊圖標(biāo)即可。此法也適用于同一窗口內(nèi)模塊的復(fù)制。

3.模塊的移動(dòng)

1)同一模型窗口內(nèi)模塊的移動(dòng)方法方法一:選中待移動(dòng)模塊,按下鼠標(biāo)左鍵,拖動(dòng)該模塊至合適的位置,釋放鼠標(biāo)左鍵。但應(yīng)注意,模塊移動(dòng)時(shí),與之相連的連線也隨之移動(dòng)。方法二:選中待移動(dòng)模塊,按下“→”鍵,可使模塊向右移動(dòng),直至移動(dòng)到合適的位置。同理,按下“←”鍵,可使模塊向左移動(dòng);按下“↑”或“↓”鍵,可使模塊向上或向下移動(dòng)。

2)不同模型窗口內(nèi)模塊的移動(dòng)方法選中待移動(dòng)模塊,按住“Shift”鍵,按下鼠標(biāo)左鍵,拖動(dòng)模塊至合適的位置,釋放鼠標(biāo)左鍵。但此時(shí)與模塊相連的連線不隨之移動(dòng)。

4.模塊的刪除方法一:選中待刪除模塊,按下“Delete”鍵。方法二:選中待刪除模塊,用鼠標(biāo)左鍵單擊工欄圖標(biāo),

將選定內(nèi)容剪切并存放于剪貼板上。

5.改變模塊大小

首先選中該模塊,待模塊四個(gè)角出現(xiàn)小黑塊后,將鼠標(biāo)指向適當(dāng)?shù)男『趬K,按下鼠標(biāo)左鍵并拖動(dòng)邊框至合適大小,

然后釋放鼠標(biāo)左鍵。

整個(gè)過(guò)程如圖5.17所示。

圖5.17改變模塊大?。╝)

原尺寸;

(b)

拖動(dòng)邊框;

(c)

新尺寸

6.模塊的旋轉(zhuǎn)

缺省狀態(tài)下的模塊總是輸入端在左,輸出端在右,見圖5.18(a)。選擇Simulink模型窗口菜單“Format|FlipBlock”,可以將選定模塊旋轉(zhuǎn)180°,如圖5.18(b)所示;選擇菜單“Format|RotateBlock”,可以將選定模塊順時(shí)針旋轉(zhuǎn)90°,如圖5.18(c)所示。

圖5.18模塊的旋轉(zhuǎn)(a)

缺省狀態(tài);

(b)

旋轉(zhuǎn)180°;

(c)

旋轉(zhuǎn)90°

7.模塊名稱的操作

1)修改模塊名稱用鼠標(biāo)左鍵單擊待修改模塊的名稱,會(huì)在原名稱的四周出現(xiàn)一個(gè)編輯框,然后就可對(duì)模塊名稱進(jìn)行修改。修改完畢后,將指針移出該編輯框,再用鼠標(biāo)左鍵單擊一次,即可結(jié)束修改。

2)模塊名稱字體設(shè)置首先選中該模塊,然后選擇模型窗口菜單“Format|Font”,將彈出標(biāo)準(zhǔn)的Windows“字體”對(duì)話框。在該對(duì)話框中,

根據(jù)需要選擇模塊名稱字體及文字大小。

3)改變模塊名稱的位置缺省時(shí),模塊名稱位置位于模塊的下邊,通過(guò)設(shè)置可以將模塊名稱放置在模塊的左邊、右邊或上邊。方法一:首先選中模塊,再選擇模型窗口菜單“Format|FlipName”,可將模塊名稱從原先位置搬移到“對(duì)側(cè)”。方法二:用鼠標(biāo)左鍵單擊待修改模塊名稱,出現(xiàn)編輯框后,按下鼠標(biāo)左鍵,拖動(dòng)其至模塊對(duì)側(cè),釋放鼠標(biāo)左鍵。如果模塊的輸入、輸出端位于其左右兩側(cè),則模塊名稱在缺省情況下位于模塊下方;否則位于模塊的左外側(cè),參見圖5.18(c)。

4)隱藏模塊名稱先選中模塊,

再選擇Simulink模型窗口菜單“Format|HideName”,

即可隱藏模塊名稱。

與此同時(shí),

菜單也變?yōu)椤癋ormat|ShowName”。

8.模塊的陰影效果

選擇Simulink模型窗口菜單“Format|ShowDropShadow”,可以給選定的模塊加上陰影效果,見圖5.19。此時(shí),該菜單變?yōu)椤癋ormat|HideDropShadow”,再選擇之,又可去除陰影效果。

圖5.19加上陰影效果的模塊

9.模塊的參數(shù)設(shè)置

幾乎所有的模塊都有一個(gè)相應(yīng)的參數(shù)對(duì)話框,用鼠標(biāo)左鍵雙擊一個(gè)模塊,打開其對(duì)話框,然后通過(guò)改變對(duì)話框中適當(dāng)欄目中的值即可對(duì)模塊參數(shù)進(jìn)行設(shè)置。每個(gè)對(duì)話框的下端都有四個(gè)按鈕,其含義分別為:

“OK”

參數(shù)設(shè)置完成,關(guān)閉對(duì)話框

“Cancel”

取消所作的修改,恢復(fù)原先的參數(shù)值,關(guān)閉對(duì)話框

“Help”

打開該模塊的超文本幫助文檔

“Apply”將所作的修改應(yīng)用于模塊,

不關(guān)閉對(duì)話框

5.3.4信號(hào)線的操作

1.信號(hào)線的生成先將鼠標(biāo)指向連線的起點(diǎn)(即某模塊的輸出端),待指針變?yōu)椤埃弊趾?,按下鼠?biāo)左鍵并拖動(dòng)直至終點(diǎn)(即某模塊輸入端),再釋放鼠標(biāo)左鍵,Simulink會(huì)根據(jù)模塊起點(diǎn)和終點(diǎn)的位置,自動(dòng)配置連線,或者采用直線,或者采用折線(由水平和垂直線段組成)連接。當(dāng)然,在上述信號(hào)線的生成方法中,也可以先將鼠標(biāo)指針指向連線的終點(diǎn),待指針變?yōu)椤埃弊趾螅聪率髽?biāo)左鍵并拖動(dòng)至起點(diǎn),

再釋放鼠標(biāo)左鍵。

2.信號(hào)線的移動(dòng)和刪除移動(dòng)線段操作:用鼠標(biāo)左鍵單擊待移動(dòng)線段,按下鼠標(biāo)左鍵并拖動(dòng)至希望處后,釋放鼠標(biāo)左鍵。刪除線段操作:

選中待刪除線段,

按下“Delete”鍵。

3.信號(hào)線分支的生成在實(shí)際模型中,一個(gè)信號(hào)往往需要分送到不同模塊的多個(gè)輸入端,此時(shí)就需要繪制分支線(branchline)。例如,反饋控制系統(tǒng)中反饋線的繪制就必須應(yīng)用信號(hào)線分支操作。分支線的繪制步驟如下:

(1)將鼠標(biāo)指針指向分支線的起點(diǎn)(即已存在信號(hào)線上的某點(diǎn))。

(2)按下鼠標(biāo)右鍵,看到指針變?yōu)椤埃弊郑ɑ蛘呦劝醋 癈trl”鍵,再按下鼠標(biāo)左鍵)。

(3)

拖動(dòng)鼠標(biāo)至分支線的終點(diǎn)處,

釋放鼠標(biāo)右鍵。

4.信號(hào)線的折曲與折點(diǎn)的移動(dòng)在構(gòu)建控制系統(tǒng)結(jié)構(gòu)圖模型時(shí),有時(shí)需要使兩模塊間的連線“打折”,以留出空白繪制其他模塊,這就需要產(chǎn)生“折曲”。產(chǎn)生“折曲”的方法:選中已存在的信號(hào)線,將鼠標(biāo)指針指到待折處,先按住“Shift”鍵,再按下鼠標(biāo)左鍵,拖動(dòng)至合適處,釋放鼠標(biāo)左鍵。移動(dòng)“折曲”上折點(diǎn)的方法:選中折線,將鼠標(biāo)指針指到待移動(dòng)的折點(diǎn)處,當(dāng)鼠標(biāo)指針變?yōu)橐粋€(gè)小圓圈時(shí),按下鼠標(biāo)左鍵并拖動(dòng)折點(diǎn)至希望處,

釋放鼠標(biāo)左鍵。

5.信號(hào)線寬度的顯示信號(hào)線所攜帶的信號(hào)既可以是標(biāo)量也可以是向量,并且不同信號(hào)線所攜帶向量信號(hào)的維數(shù)可能互不相同。為了使信息傳遞一目了然,Simulink不但可以用粗線顯示向量型信號(hào)線,而且還可以將向量維數(shù)用數(shù)字標(biāo)出。操作方法是:選擇Simulink模型窗口菜單“Format|Port/SignalDisplays|WideNonscaleLines”,將用粗線顯示向量型信號(hào)線;選擇菜單“Format|Port/SignalDisplays|SignalDimensions”,將在向量型信號(hào)線上用數(shù)字標(biāo)注向量的維數(shù)。

6.用彩色顯示信號(hào)線

Simulink所建離散系統(tǒng)模型允許有多個(gè)采樣頻率。為了清晰地顯示不同采樣頻率的模塊及信號(hào)線,可選擇Simulink模型窗口菜單“Format|Port/SignalDisplays|SampleTimeColors”。經(jīng)此操作后,Simulink將用不同顏色顯示具有不同采樣頻率的模塊和信號(hào)線。系統(tǒng)默認(rèn)紅色表示最高采樣頻率,

黑色表示連續(xù)信號(hào)流經(jīng)的模塊及信號(hào)線。

7.插入模塊如果模塊只有一個(gè)輸入端和一個(gè)輸出端,那么該模塊可以直接被插入到一條信號(hào)線中。方法是:選中待插入模塊,按下鼠標(biāo)左鍵,拖動(dòng)待插入模塊至希望插入的信號(hào)線上,再釋放鼠標(biāo)左鍵,

見圖5.20。

圖5.20插入模塊過(guò)程

8.信號(hào)線與模塊的分離如圖5.21所示,選中待分離模塊,首先按住“Shift”鍵,再按下鼠標(biāo)左鍵,將模塊拖至別處,即可將模塊與信號(hào)線分離。

5.21模塊與信號(hào)線分離過(guò)程

9.信號(hào)線標(biāo)識(shí)

1)添加標(biāo)識(shí)用鼠標(biāo)左鍵雙擊需要添加標(biāo)識(shí)的信號(hào)線,將彈出一個(gè)空白的文字填寫框。在其中輸入文本,作為該信號(hào)線的標(biāo)識(shí)。輸入結(jié)束后,只需將鼠標(biāo)指針移出該編輯框,再在模型窗口的任意位置上單擊鼠標(biāo)左鍵即可。

2)修改標(biāo)識(shí)用鼠標(biāo)左鍵單擊需要修改的信號(hào)線標(biāo)識(shí),在原標(biāo)識(shí)四周將出現(xiàn)一個(gè)編輯框,此時(shí)即可修改標(biāo)識(shí)。

3)移動(dòng)標(biāo)識(shí)用鼠標(biāo)左鍵單擊需要移動(dòng)的信號(hào)線標(biāo)識(shí),待編輯框出現(xiàn)后,將鼠標(biāo)指針指向編輯框,按下鼠標(biāo)左鍵,拖動(dòng)其至新位置處即可。

4)復(fù)制標(biāo)識(shí)用鼠標(biāo)左鍵單擊需要復(fù)制的信號(hào)線標(biāo)識(shí),待編輯框出現(xiàn)后,首先按住“Ctrl”鍵,將鼠標(biāo)指針指向編輯框,再按下鼠標(biāo)左鍵,

拖動(dòng)其至新位置處即可。

5)刪除標(biāo)識(shí)用鼠標(biāo)左鍵單擊需要?jiǎng)h除的信號(hào)線標(biāo)識(shí),待編輯框出現(xiàn)后,再用鼠標(biāo)左鍵雙擊標(biāo)識(shí),使得整個(gè)標(biāo)識(shí)被全部選中;按下“Delete”鍵;將鼠標(biāo)指針移出編輯框,在模型窗口的任意位置處單擊鼠標(biāo)左鍵,即刪除了該標(biāo)識(shí)。

6)設(shè)置標(biāo)識(shí)字體用鼠標(biāo)左鍵單擊信號(hào)線標(biāo)識(shí),待編輯框出現(xiàn)后,選擇模型窗口菜單“Format|Font”,將彈出標(biāo)準(zhǔn)的Windows“字體”對(duì)話框。在該對(duì)話框中,可根據(jù)需要選擇文字字體及大小。

5.3.5模型的注釋

使用模型注釋可以使Simulink模型更具有可讀性,其作用同MATLAB程序中的注釋行一樣。對(duì)于經(jīng)常使用Simulink的用戶來(lái)說(shuō),養(yǎng)成添加注釋的習(xí)慣是非常重要的。

1.模型注釋的創(chuàng)建在Simulink模型窗口中,用鼠標(biāo)左鍵雙擊任何想要添加注釋的部位,將會(huì)出現(xiàn)一個(gè)編輯框。在編輯框中輸入注釋內(nèi)容后,將鼠標(biāo)指針移出編輯框,再在模型窗口的任意位置上單擊鼠標(biāo)左鍵,

即完成了模型注釋的創(chuàng)建。

2.注釋位置的移動(dòng)在注釋文字處單擊鼠標(biāo)左鍵,待出現(xiàn)編輯框后,按下鼠標(biāo)左鍵,就可把該編輯框拖至任何希望的位置。還可以按照與模塊操作同樣的方法來(lái)對(duì)注釋進(jìn)行復(fù)制、

刪除等操作。

3.注釋字體的設(shè)置

用鼠標(biāo)左鍵單擊注釋文字,待編輯框出現(xiàn)后,選擇模型窗口菜單“Format|Font”,將彈出標(biāo)準(zhǔn)的Windows“字體”對(duì)話框。在該對(duì)話框中,可根據(jù)需要選擇注釋文字字體及大小。完成選擇后,將鼠標(biāo)指針移出注釋編輯框,再在模型窗口的任意位置單擊鼠標(biāo)左鍵,操作完成。

5.4Simulink模型的仿真運(yùn)行

5.4.1仿真運(yùn)行

1.Simulink仿真運(yùn)行可采用如下兩種方法運(yùn)行Simulink模型:

(1)用鼠標(biāo)左鍵單擊Simulink模型窗口工具欄“仿真啟動(dòng)或繼續(xù)”圖標(biāo)。當(dāng)仿真開始后,圖標(biāo)就變成“暫停仿真”圖標(biāo)。仿真過(guò)程結(jié)束后,圖標(biāo)又變成了。

(2)選擇Simulink模型窗口菜單“Simulation|Start”。當(dāng)仿真開始后,“Start”就變成了“Stop”。仿真過(guò)程結(jié)束后,“Stop”又變成了“Start”。

2.仿真運(yùn)行的終止或中斷終止仿真運(yùn)行的方法:選擇Simulink模型窗口菜單“Simulation|Stop”,或用鼠標(biāo)左鍵單擊工具欄“終止仿真”圖標(biāo)。中斷仿真運(yùn)行的方法:選擇Simulink模型窗口菜單“Simulation|Pause”,或用鼠標(biāo)左鍵單擊Simulink模型窗口的工具欄圖標(biāo)。

欲使仿真繼續(xù)運(yùn)行,用鼠標(biāo)左鍵單擊圖標(biāo)即可。

3.仿真結(jié)果的輸出與顯示可使用Simulink模塊庫(kù)信宿模塊組中的模塊作為仿真結(jié)果輸出與顯示裝置。具體方法將在第5.5節(jié)與5.6節(jié))詳細(xì)介紹。

5.4.2仿真參數(shù)的配置運(yùn)行Simulink模型之前,如果不采用Simulink所提供的仿真參數(shù)缺省設(shè)置,就必須對(duì)各種仿真參數(shù)進(jìn)行配置(configuration)。而且,經(jīng)過(guò)仿真初步運(yùn)行、分析后,也需要對(duì)一些仿真參數(shù)進(jìn)行配置。尤其是對(duì)于復(fù)雜控制系統(tǒng)仿真,仿真參數(shù)的合理配置尤為重要。仿真參數(shù)配置包括:仿真起始和終止時(shí)刻的設(shè)定;仿真步長(zhǎng)的選擇;仿真算法的選定;是否從外界獲得數(shù)據(jù);是否向外界輸出數(shù)據(jù)等。

在Simulink模型窗口下,選擇菜單“Simulation|ConfigurationParameters...”,就可得到如圖5.22所示的仿真參數(shù)配置對(duì)話框。圖中,Select項(xiàng)包括:解算器(Solver)、仿真數(shù)據(jù)輸入/輸出(DataImport/Export)、仿真優(yōu)化(Optimization)、診斷(Diagnostics)、硬件實(shí)現(xiàn)(HardwareImplemen...)及模型參考(ModelReferencing)等。這些選項(xiàng)中,最基本、最重要的就是解算器和仿真數(shù)據(jù)輸入/輸出兩個(gè)選項(xiàng)。下面詳細(xì)介紹這兩個(gè)選項(xiàng)的參數(shù)選擇及設(shè)置。

圖5.22仿真參數(shù)配置對(duì)話框

1.解算器Solver

在仿真參數(shù)配置對(duì)話框左側(cè)的“Select”項(xiàng)(見圖5.22)內(nèi),用鼠標(biāo)左鍵單擊“Solver”,即可出現(xiàn)圖5.22右側(cè)所示的解算器界面。根據(jù)需要設(shè)置合適的仿真參數(shù),可以使Simulink仿真發(fā)揮出最好的效果。

1)仿真時(shí)間(Simulationtime)設(shè)置

Simulationtime選項(xiàng)組用于設(shè)置仿真時(shí)間。其中:

Starttime:設(shè)置仿真開始時(shí)間,缺省設(shè)置為0;

Stoptime:設(shè)置仿真結(jié)束時(shí)間,缺省設(shè)置為10,單位為秒(s)。

2)解算器選項(xiàng)(Solveroptions)

Solveroptions選項(xiàng)組用于設(shè)置所用解算器類型和相應(yīng)的仿真選項(xiàng)。其中:

Type選項(xiàng):設(shè)置解算器仿真步長(zhǎng)(也稱為積分步長(zhǎng))的類型。共有兩類:變步長(zhǎng)(Variablestep)和定步長(zhǎng)(Fixedstep)。缺省設(shè)置是變步長(zhǎng)的ode45解算器仿真算法。

Solver選項(xiàng):選擇支撐仿真模型運(yùn)行的解算器仿真算法,其列表選項(xiàng)內(nèi)容和解算器類型與仿真模型類型(連續(xù)或離散)有關(guān)。

3)變步長(zhǎng)連續(xù)解算器若選擇仿真參數(shù)配置對(duì)話框(見圖5.22)中的解算器類型為Variablestep,則出現(xiàn)如圖5.23所示的變步長(zhǎng)連續(xù)解算器選項(xiàng)組界面(缺省情況)。

5.23變步長(zhǎng)連續(xù)解算器選項(xiàng)組界面

圖中:

Maxstepsize:設(shè)置最大仿真步長(zhǎng);

Minstepsize:設(shè)置最小仿真步長(zhǎng);

Initialstepsize:設(shè)置初始仿真步長(zhǎng);

Zerocrossingcontrol:進(jìn)行系統(tǒng)狀態(tài)變量不連續(xù)點(diǎn)的零穿越(Zerocrossing)檢查;

Relativetolerance:設(shè)置相對(duì)誤差容許限;

Absolutetolerance:

設(shè)置絕對(duì)誤差容許限。

4)變步長(zhǎng)離散解算器若選擇解算器類型為Variablestep,解算器仿真算法為discrete(nocontinuousstates),則出現(xiàn)如圖5.24所示的變步長(zhǎng)離散解算器選項(xiàng)組界面(缺省情況)。圖中各選項(xiàng)的設(shè)置與變步長(zhǎng)連續(xù)解算器的相同,

且均可采用缺省值。

5.24變步長(zhǎng)離散解算器選項(xiàng)組界面

5)定步長(zhǎng)解算器若選擇解算器類型為Fixedstep,則出現(xiàn)如圖5.25所示的定步長(zhǎng)解算器選項(xiàng)組界面(缺省情況)。

圖5.25定步長(zhǎng)解算器選項(xiàng)組界面圖中:Periodicsampletimeconstraint:規(guī)定由仿真模型定義的采樣時(shí)間約束;

Fixedstepsize(fundamentalsampletime):設(shè)置定仿真步長(zhǎng)的數(shù)值;

TaskingmodeforPeriodicsampletime:設(shè)置任務(wù)模式。其中,單任務(wù)(SingleTasking)模式用于模型具有相同的采樣速率的情況;多任務(wù)(MultiTasking)模式用于模型具有不同的采樣速率的情況;Auto模式表示系統(tǒng)可根據(jù)模型中的采樣速率相同與否,自動(dòng)選擇MultiTasking模式或SingleTasking模式。

2.解算器算法及選擇按照解算器類型,可將解算器算法分為變步長(zhǎng)算法和定步長(zhǎng)算法兩大類。

1)變步長(zhǎng)解算器算法(變步長(zhǎng)算法)

Simulink為變步長(zhǎng)解算器提供了如下常用的仿真算法:

ode45:基于Runge-Kutta法的四、五階單步變步長(zhǎng)算法;

ode23:基于Runge-Kutta法的二、三階單步算法;

ode113:可變階次的Adams-Bashforth-MoultonPECE多步算法,比ode45更適合于誤差容許范圍要求比較嚴(yán)格的情況;

ode15s:可變階次的數(shù)值微分公式多步算法,可以解算剛性問題;

ode23s:基于修正的Rosenbrock公式單步算法,適用于誤差容許范圍較寬的情況;

ode23t:基于梯形規(guī)則的一種自由插補(bǔ)實(shí)現(xiàn)算法,可以解算適度剛性問題;

ode23tb:二階隱式龍格-庫(kù)塔公式;

discrete(變步長(zhǎng)離散解算器):不含積分運(yùn)算的變步長(zhǎng)算法,適用于純離散系統(tǒng)。此時(shí),系統(tǒng)會(huì)自動(dòng)選擇這種算法。

2)定步長(zhǎng)解算器算法(固定步長(zhǎng)算法)

Simulink為定步長(zhǎng)解算器提供了如下常用的仿真算法:

ode5:定步長(zhǎng)ode45算法;

ode4:四階Runge-Kutta算法;

ode3:定步長(zhǎng)ode23算法;

ode2:Henu方法,即改進(jìn)歐拉法;

ode1:即歐拉法;

discrete(fixedstep):不含積分運(yùn)算的定步長(zhǎng)算法,適用于純離散系統(tǒng)。此時(shí),系統(tǒng)會(huì)自動(dòng)選擇這種算法。

3.仿真數(shù)據(jù)輸入/輸出(DataImport/Export)

在仿真參數(shù)配置對(duì)話框左側(cè)的“Select”項(xiàng)內(nèi),用鼠標(biāo)單擊“DataImport/Export”,即可出現(xiàn)如圖5.26右側(cè)所示的仿真數(shù)據(jù)輸入/輸出設(shè)置界面。

5.26仿真數(shù)據(jù)輸入/輸出設(shè)置界面

1)Loadfromworkspace選項(xiàng)組功能:從MATLAB工作空間導(dǎo)入數(shù)據(jù)。

Input:用于將MATLAB工作空間已存在的數(shù)據(jù)導(dǎo)入Simulink模型的“輸入模塊(In)”中。數(shù)據(jù)類型包括:數(shù)組、時(shí)間表達(dá)式、結(jié)構(gòu)體和時(shí)間串等。如果Simulink模型中使用了“輸入模塊”,就必須選中該選項(xiàng)并填寫所導(dǎo)入數(shù)據(jù)的變量名。缺省變量名為[t,u],t為時(shí)間,u為該時(shí)間對(duì)應(yīng)的數(shù)值。如果模型中有n個(gè)“輸入模塊”,則u的第1,2,…,n

列分別送至輸入模塊In1,In2,…,Inn中。

Initialstate:用于設(shè)置由Input選項(xiàng)導(dǎo)入Simulink模型輸入模塊(In)變量的初始值,與Input選項(xiàng)配合使用。選中此選項(xiàng),無(wú)論建立該模型的積分模塊(Integator)設(shè)置過(guò)什么樣的初始值,都可將MATLAB工作空間已存在的變量強(qiáng)制作為Simulink模型“輸入模塊”變量的初始值(缺省名為xInitial)?!纠?.1】從MATLAB工作空間導(dǎo)入數(shù)據(jù)應(yīng)用實(shí)例。

5.27例5.1的Simulink模型

【解】給定含有兩個(gè)輸入模塊In1和In2的Simulink模型如圖5.27所示。

首先在MATLAB命令窗口中輸入:>>t1=[0:0.01:10]′;>>u1=[sin(t),cos(t)];>>x0=[2,

2];

運(yùn)行后,在MATLAB工作空間就定義了三個(gè)變量t1、u1、x0。然后,在仿真數(shù)據(jù)輸入/輸出設(shè)置界面(見圖5.26)右側(cè)的Loadfromworkspace選項(xiàng)組中分別選中“Input”和“Initialstate”選項(xiàng),

并在相應(yīng)的輸入框中填入變量名,

見圖5.28。

5.28例5.1的Loadfromworkspace選項(xiàng)設(shè)置

圖5.29例5.1的仿真結(jié)果(a)

選中Initialstate選項(xiàng);

(b)

未選中Initialstate選項(xiàng)

2)Savetoworkspace選項(xiàng)組功能:將仿真結(jié)果數(shù)據(jù)保存至MATLAB工作空間中。

Time:用于設(shè)置保存于MATLAB工作空間中的仿真運(yùn)行時(shí)間變量名。選中此選項(xiàng),可將仿真運(yùn)行時(shí)間變量以指定的變量名(缺省名為tout)保存于MATLAB工作空間。

States:用于設(shè)置保存于MATLAB工作空間中的狀態(tài)變量名。選中此選項(xiàng),可將仿真過(guò)程中Simulink模型中的狀態(tài)變量值以指定的變量名(缺省名為xout)保存于工作空間。

Output:用于設(shè)置保存于MATLAB工作空間中的輸出數(shù)據(jù)變量名。如果Simulink模型中使用了“輸出模塊(Out)”,就必須選中該選項(xiàng)并填寫保存于MATLAB工作空間中的輸出數(shù)據(jù)變量名(缺省名為yout)。數(shù)據(jù)的保存方式與數(shù)據(jù)導(dǎo)入情況類似。

Finalstate:用于設(shè)置保存于MATLAB工作空間中的最終狀態(tài)變量名。選中此選項(xiàng),可將Simulink模型中的最終狀態(tài)變量值以指定的變量名(缺省名為xFinal)保存于工作空間。

3)Saveoptions選項(xiàng)組功能:數(shù)據(jù)保存選項(xiàng),需要與Savetoworkspace選項(xiàng)組配合使用。

Limitdatapointstolast:用于限定可存取的數(shù)據(jù)。選中此選項(xiàng)后,可設(shè)定保存變量接收數(shù)據(jù)的長(zhǎng)度,缺省值為1000。如果輸入數(shù)據(jù)長(zhǎng)度超過(guò)設(shè)定值,那么最早的“歷史”數(shù)據(jù)被清除。

Decimation:用于設(shè)置“解點(diǎn)”保存頻度。若取n,則每隔n-1點(diǎn)保存一個(gè)“解點(diǎn)”,缺省值為1。

Format:用于設(shè)置數(shù)據(jù)保存格式。對(duì)Simulink而言,保存數(shù)據(jù)有三種格式選擇(見其右側(cè)的列表框):數(shù)組(Array)、結(jié)構(gòu)體(Structure)和時(shí)間結(jié)構(gòu)體(Structurewithtime)。

Outputoptions:用于設(shè)置產(chǎn)生附加輸出信號(hào)數(shù)據(jù),只適用于變步長(zhǎng)解算器。其左側(cè)的列表框包括三個(gè)選項(xiàng):Refineoutput(平滑輸出)、Produceadditionaloutput(修改時(shí)間步長(zhǎng)平滑輸出)和Producespecifiedoutputonly(在給定時(shí)間內(nèi)產(chǎn)生輸出)。5.5連續(xù)時(shí)間系統(tǒng)建模與仿真

5.5.1線性連續(xù)時(shí)間系統(tǒng)

【例5.2】三階控制系統(tǒng)結(jié)構(gòu)圖如圖5.30所示,建立系統(tǒng)的Simulink模型,

并運(yùn)行模型。

【解】本例的數(shù)學(xué)模型是控制系統(tǒng)的結(jié)構(gòu)圖。這是應(yīng)用Simulink建模時(shí),

最簡(jiǎn)單、

最方便、

最直觀的一種數(shù)學(xué)模型。

圖5.30控制系統(tǒng)結(jié)構(gòu)圖(1)構(gòu)建Simulink模型。由圖5.30構(gòu)建的Simulink模型如圖5.31所示,模型名為exm5-2.mdl。圖中所需模塊可分別在Simulink模塊庫(kù)中的信源模塊組(見表5.7)、連續(xù)模塊組(見表5.3)、數(shù)學(xué)運(yùn)算模塊組(見表5.6)以及信宿模塊組(見表5.8)中獲得。構(gòu)建該模型的具體方法詳見5.3節(jié)。

5.31例5.2的Simulink模型

(2)模塊參數(shù)的配置。圖5.31中各模塊參數(shù)的配置如下:①r(t)模塊(即Step模塊):首先將模塊名稱由原來(lái)的Step改為r(t)。再用鼠標(biāo)左鍵雙擊該模塊,即可打開如圖5.32所示的模塊參數(shù)設(shè)置對(duì)話框。圖中,將Steptime(階躍信號(hào)發(fā)生時(shí)刻)欄中缺省的1改為0,其余參數(shù)采用缺省值。圖

5.32

r(t)模塊參數(shù)設(shè)置對(duì)話框

②Sum模塊:用鼠標(biāo)左鍵雙擊該模塊,打開其參數(shù)設(shè)置對(duì)話框,將ListofSigns欄中缺省的“++”改為“+-”(系統(tǒng)為負(fù)反饋連接),見圖5.33。③ZeroPole模塊:用鼠標(biāo)左鍵雙擊該模塊,打開其參數(shù)設(shè)置對(duì)話框,分別在Zeros、Poles和Gain欄中填寫傳遞函數(shù)的零點(diǎn)向量[]、極點(diǎn)向量[0,-1]和增益5,見圖5.34。與此同時(shí),該模塊的圖標(biāo)也將顯示新的傳遞函數(shù)。注意,由于此模塊實(shí)現(xiàn)的零極點(diǎn)增益模型沒有零點(diǎn),因而在Zeros欄填寫空矩陣“[]”。圖

5.34零極點(diǎn)增益模塊參數(shù)設(shè)置對(duì)話框

④TransferFcn模塊:用鼠標(biāo)左鍵雙擊該模塊,打開其參數(shù)設(shè)置對(duì)話框,在Numeratorcoefficient欄中填寫分子多項(xiàng)式系數(shù)向量[0.4561],在Denominatorcoefficient欄中填寫分母多項(xiàng)式系數(shù)向量[0.1141],見圖5.35。與此同時(shí),該模塊的圖標(biāo)也將顯示新的傳遞函數(shù)。

如前所述,傳遞函數(shù)分子、

分母多項(xiàng)式系數(shù)均按s降冪排列。

圖5.35傳遞函數(shù)模塊參數(shù)設(shè)置對(duì)話框

⑤Gain模塊:首先選擇模型窗口菜單“Format|RotateBlock”,旋轉(zhuǎn)Gain模塊的方向;然后,用鼠標(biāo)左鍵雙擊Gain模塊,打開其參數(shù)設(shè)置對(duì)話框,在Gain欄中填寫0.5,如圖5.36所示。

圖5.36Gain模塊參數(shù)設(shè)置對(duì)話框

⑥c(t)模塊(即Scope模塊):首先將模塊名稱由原來(lái)的Scope改為c(t);然后,用鼠標(biāo)左鍵雙擊該模塊,出現(xiàn)示波器窗口;再用鼠標(biāo)左鍵單擊示波器窗口工具欄圖標(biāo),打開如圖5.37所示的示波器參數(shù)設(shè)置對(duì)話框;在Datahistory頁(yè)中,選中Savedatatoworkspace,這將使送入示波器的數(shù)據(jù)同時(shí)被保存在MATLAB工作空間缺省名為ScopeData的時(shí)間結(jié)構(gòu)體數(shù)組中。

⑦模型窗口exm5-2.mdl:仿真參數(shù)配置窗口中的各選項(xiàng)均采用缺省值。實(shí)際上,在輸入?yún)?shù)之前,Simulink中相應(yīng)的模塊都給出了較實(shí)用的提示,用戶可以通過(guò)自己摸索的方式來(lái)學(xué)習(xí)每一個(gè)模塊的使用方法。

(3)仿真運(yùn)行。首先用鼠標(biāo)左鍵雙擊c(t)模塊,打開示波器窗口;再用鼠標(biāo)左鍵單擊模型窗口“仿真啟動(dòng)”圖標(biāo),就可在示波器窗口中看到c(t)的變化曲線;還可再用鼠標(biāo)左鍵單擊顯示屏上的“自動(dòng)刻度”圖標(biāo),使得波形充滿整個(gè)坐標(biāo)框,仿真結(jié)果見圖5.38。

5.37

c(t)模塊參數(shù)設(shè)置對(duì)話框

5.38例5.2的仿真結(jié)果

(4)保存在MATLAB工作空間中的仿真數(shù)據(jù)的應(yīng)用。本例通過(guò)示波器模塊向工作空間存放了時(shí)間結(jié)構(gòu)體數(shù)組ScopeData。這組數(shù)據(jù)可獨(dú)立地供用戶作進(jìn)一步分析時(shí)使用。下面的MATLAB程序(程序名為e5-2.m)就說(shuō)明了如何利用保存在MATLAB工作空間中的仿真數(shù)據(jù)(即示波器數(shù)據(jù))ScopeData繪制出所需的圖形。

%例5.2程序名為e5-2.mclftt=ScopeData.time;%將時(shí)間結(jié)構(gòu)體域的時(shí)間數(shù)據(jù)賦給ttxx=ScopeData.signals.values;%將時(shí)間結(jié)構(gòu)體域的數(shù)值數(shù)據(jù)賦給xxplot(tt,xx,′r′,′LineWidth′,2)%繪制曲線xlabel(′t′),ylabel(′c(t)′)

%為坐標(biāo)軸添加說(shuō)明

程序運(yùn)行結(jié)果如圖5.39所示。

5.39利用保存在工作空間中的仿真數(shù)據(jù)所繪制的曲線

2.微分方程數(shù)學(xué)模型用微分方程描述的數(shù)學(xué)模型,可利用積分模塊直接構(gòu)建Simulink模型。

【例5.3】考慮如圖5.40所示的強(qiáng)制阻尼二階系統(tǒng)。圖中,小車所受外力為F,小車位移為x。設(shè)小車質(zhì)量m=5,彈簧彈性系數(shù)k=2,阻尼系數(shù)f=1。并設(shè)系統(tǒng)的初始狀態(tài)為靜止在平衡點(diǎn)處,即,x(0)=x(0)=0,外力函數(shù)為幅值等于1的階躍量。仿真此小車系統(tǒng)的運(yùn)動(dòng)。.圖5.40強(qiáng)制阻尼二階系統(tǒng)

【解】(1)建立系統(tǒng)數(shù)學(xué)模型。圖5.40中,通過(guò)受力分析可知,有兩個(gè)力影響著小車的運(yùn)動(dòng):彈簧的彈性力和阻尼器的阻尼力。彈性力為kx,阻尼力為fx,小車的加速度力為mx。若忽略重力,這三個(gè)力的合力應(yīng)為F。根據(jù)牛頓第二定律,得到小車的運(yùn)動(dòng)方程為......(5.1)

將m,k,

f的值代入式(5.1),整理后得

(5.2)

將上述微分方程改寫為

(5.3)

式中,u(t)=0.2F。

(2)利用積分模塊構(gòu)建Simulink模型?;谖⒎址匠虜?shù)學(xué)模型的仿真,實(shí)質(zhì)上就是建立微分方程求解模型。因此,可利用積分模塊采用逐次降階積分法完成。即,x經(jīng)積分模塊作用輸出x,x再經(jīng)積分模塊作用就得到x。而x與x經(jīng)代數(shù)運(yùn)算又產(chǎn)生x

。依據(jù)上述思想,由式(5.3)所構(gòu)建的Simulink模型如圖5.41所示,模型名為exm5-3.mdl。圖中,x″對(duì)應(yīng)x,x′對(duì)應(yīng)x。........圖

5.41求解微分方程的Simulink模型

(3)模塊參數(shù)的配置。圖5.41中的模塊參數(shù)配置如下:①u(t)模塊:將模塊名稱由原來(lái)的Step改為u(t),將Steptime欄填寫為0,將Finalvalue欄填寫為0.2。②Gain模塊:在Gain欄填寫0.2。③Gain1模塊:在Gain欄填寫0.4。④Sum模塊:Iconshape(圖標(biāo)形狀)項(xiàng)選擇rectangular,使模塊呈矩形;在ListofSigns欄填寫+--。

⑤Clock模塊:產(chǎn)生當(dāng)前仿真時(shí)間數(shù)據(jù)t,僅供Toworkspace模塊使用。⑥Mux模塊:Numberofinputs欄填寫2(缺省值),見圖5.42。該模塊可將模型中的位移數(shù)據(jù)x與時(shí)間數(shù)據(jù)t組合成向量。⑦ToWorkspace模塊:在Variablename(變量名)欄中將缺省的變量名simout改為x-t,

如圖5.43所示。

5.42Mux模塊參數(shù)設(shè)置對(duì)話框

圖5.43ToWorkspace參數(shù)設(shè)置對(duì)話框

⑧模型窗口exm5-3.mdl:將鼠標(biāo)指針放置在模型窗口工具欄圖標(biāo)內(nèi),將框內(nèi)數(shù)值改為50(即仿真結(jié)束時(shí)間)?;蜻x擇模型窗口菜單“Simulation|ConfigurationParameters...”,打開仿真參數(shù)配置對(duì)話框,在Solver選項(xiàng)組的SimulationTime選項(xiàng)中,將Stoptime設(shè)置為50。

(4)仿真運(yùn)行。首先用鼠標(biāo)左鍵雙擊示波器模塊,打開示波器窗口;再用鼠標(biāo)左鍵單擊模型窗口圖標(biāo),就可在示波器窗口中顯示出小車位移x隨時(shí)間變化的軌跡,如圖5.44所示。

5.44例5.3的仿真結(jié)果

(5)將數(shù)據(jù)保存到工作空間中。本例采用Toworkspace模塊以選定的矩陣方式向工作空間存放數(shù)組數(shù)據(jù)x-t。這組數(shù)據(jù)也可獨(dú)立地供用戶作進(jìn)一步分析時(shí)使用。例如,在MATLAB命令窗口中輸入:

>>x=x-t(:,1);>>t=x-t(:,2);>>plot(t,x)運(yùn)行后即可繪制出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

。

.

【解】本例說(shuō)明如何產(chǎn)生帶復(fù)位端口的積分模塊及產(chǎn)生有兩個(gè)顯示窗口的示波器。(1)構(gòu)建積分方程求解模型。由式(5.4)構(gòu)建的Simulink模型如圖5.45所示,模型名為exm5-4.mdl。圖中,積分模塊與示波器模塊均有兩個(gè)輸入端口,

它們的產(chǎn)生方法如下:

5.45求解分段積分方程的Simulink模型

①產(chǎn)生帶復(fù)位端口的積分模塊。用鼠標(biāo)左鍵雙擊Interator模塊,打開其參數(shù)設(shè)置對(duì)話框;在Externalreset(外復(fù)位)下拉欄中選擇rising項(xiàng);用鼠標(biāo)左鍵單擊“OK”按鈕,積分模塊就呈現(xiàn)如圖5.45所示的兩個(gè)端口,下端口為復(fù)位端口,該端口旁的符號(hào)表示此端口信號(hào)由負(fù)變正的瞬間,該積分器被強(qiáng)迫置為零。②產(chǎn)生有兩個(gè)顯示窗口的示波器。用鼠標(biāo)左鍵雙擊Scope模塊,打開示波器窗口,見圖5.46;再用鼠標(biāo)左鍵單擊該窗口工具欄圖標(biāo),打開示波器屬性對(duì)話框;在Numberofaxes欄中填寫2,用鼠標(biāo)左鍵單擊“OK”按鈕,就獲得兩端口示波器,同時(shí)出現(xiàn)圖5.47所示的兩個(gè)顯示窗口。

(2)仿真模型參數(shù)配置。①Clock模塊:生成時(shí)間變量t。②Constant模塊:Constantvalue欄填寫5。③Sum模塊:ListofSings欄填寫+-。④

增益模塊:

Gain欄填寫0.5。

⑤示波器模塊:自上而下,在示波器第一個(gè)顯示窗口坐標(biāo)框內(nèi)單擊鼠標(biāo)右鍵,彈出一個(gè)現(xiàn)場(chǎng)菜單,用鼠標(biāo)左鍵單擊“Axesproperties...”,打開縱坐標(biāo)設(shè)置對(duì)話框;在Y-min和Y-max欄中分別填寫0和10(縱坐標(biāo)下、上限),在Title欄中填寫f(t)。示波器第二個(gè)顯示窗的縱坐標(biāo)下、上限采用缺省值,Title欄中填寫t-5。⑥模型窗口exm5-3.mdl:仿真參數(shù)配置窗口各選項(xiàng)均采用缺省值。(3)仿真運(yùn)行。用鼠標(biāo)左鍵雙擊Scope模塊,打開示波器窗口;再用鼠標(biāo)左鍵單擊模型窗口圖標(biāo),在示波器窗口中顯示出f(t)和

t-5曲線,

如圖5.47所示。

圖5.46Scope模塊參數(shù)設(shè)置對(duì)話框

圖5.47例5.4的仿真結(jié)果

4.單位脈沖函數(shù)的生成

像其他物理體系中不存在理想單位脈沖一樣,Simulink模塊庫(kù)中也沒有現(xiàn)成的單位脈沖標(biāo)準(zhǔn)模塊,但可以采用某種近似方法產(chǎn)生。

【例5.5】已知控制系統(tǒng)的狀態(tài)方程為

試求系統(tǒng)的單位脈沖響應(yīng)。

【解】本例主要說(shuō)明單位脈沖函數(shù)的生成方法及狀態(tài)方程模塊的使用。(1)單位脈沖函數(shù)的數(shù)學(xué)含義及近似實(shí)現(xiàn)。

單位脈沖函數(shù)在數(shù)學(xué)上定義為

(t=0)(t≠0)(5.5a)

且滿足

(5.5b)

近似構(gòu)造單位脈沖函數(shù)的思路是:用一個(gè)面積為1的“窄高”脈沖近似,其數(shù)學(xué)表達(dá)式為

δ(t)=M·1(t)-M·1(t-d)(5.6)

式中,1(t)為單位階躍函數(shù),M為近似脈沖幅度,d為近似脈沖寬度,且M·d=1。說(shuō)明:d的選擇要考慮下述兩方面的因素:①脈沖寬度應(yīng)遠(yuǎn)小于被研究系統(tǒng)的最快動(dòng)態(tài)模式(系統(tǒng)特征根或特征值的實(shí)部絕對(duì)值的最大值)。②脈沖寬度不能太小,以免引起嚴(yán)重的圓整或截?cái)嗾`差。

本例系統(tǒng)的特征值可采用下述MATLAB命令求出:

>>eig([01;-0.4-0.2])運(yùn)行結(jié)果為:ans=-0.1000+0.6245i-0.1000-0.6245i

即,系統(tǒng)特征值為λ1,2=-0.1±i0.6245。

由于系統(tǒng)特征值實(shí)部的絕對(duì)值為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:將模型窗口工具欄圖標(biāo)框內(nèi)數(shù)值改為20,

即將仿真終止時(shí)間設(shè)置為20。

其余仿真參數(shù)采用缺省值。

(3)仿真運(yùn)行。用鼠標(biāo)左鍵雙擊示波器模塊,打開示波器窗口。再用鼠標(biāo)左鍵單擊模型窗口圖標(biāo),在示波器窗口顯示出y(t)曲線,如圖5.49所示。5.5.2非線性連續(xù)時(shí)間系統(tǒng)

1.典型非線性模塊的應(yīng)用為了提高仿真能力,Simulink模塊庫(kù)中包含了許多典型非線性模塊,如DeadZone模塊、Saturation模塊、Relay模塊及Backlash模塊等。應(yīng)用Simulink構(gòu)建非線性連續(xù)時(shí)間系統(tǒng)的仿真模型時(shí),根據(jù)非線性元件參數(shù)的取值,既可使用典型非線性模塊直接實(shí)現(xiàn),也可通過(guò)對(duì)典型非線性模塊進(jìn)行適當(dāng)組合實(shí)現(xiàn)(見例5.6)。當(dāng)然,還可以采用Fun函數(shù)模塊或其他Simulink模塊庫(kù)中的模塊實(shí)現(xiàn)(見例5.7和例5.8)。

【例5.6】設(shè)具有飽和非線性特性的控制系統(tǒng)如圖5.50所示。通過(guò)仿真研究K=15和K=5時(shí)系統(tǒng)的運(yùn)動(dò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ù)配置窗口各選項(xiàng)均采用缺省值。

(3)仿真運(yùn)行。用鼠標(biāo)左鍵雙擊示波器模塊,打開示波器窗口;再用鼠標(biāo)左鍵單擊模型窗口圖標(biāo),則得到K=15時(shí)系統(tǒng)的響應(yīng)曲線,如圖5.52(a)所示。顯見,此時(shí)非線性系統(tǒng)的運(yùn)動(dòng)出現(xiàn)自激振蕩。進(jìn)一步,將傳遞函數(shù)G1(s)模塊的Numerator設(shè)置由[15]改為[5],其余參數(shù)不變。同樣可以得到K=5時(shí)非線性系統(tǒng)的響應(yīng)曲線,如圖5.52(b)所示,此時(shí)非線性系統(tǒng)的運(yùn)動(dòng)已經(jīng)沒有自激振蕩了。圖5.52非線性系統(tǒng)的響應(yīng)曲線(a)K=15;

(b)K=5

2.任意函數(shù)模塊及其應(yīng)用在Simulink模塊庫(kù)中,除間歇、死區(qū)、飽和等函數(shù)形式固定的模塊外,還有若干個(gè)函數(shù)形式可由用戶根據(jù)需要定義的“任意函數(shù)”模塊,主要有:Fcn模塊(函數(shù)組合模塊)、MATLABFcn模塊(MATLAB函數(shù)模塊)和LookupTable模塊(查表模塊)等,其模塊圖標(biāo)見圖5.53。

圖5.53Simulink模塊庫(kù)中的“任意函數(shù)”模塊圖標(biāo)(a)Fcn模塊;(b)MATLABFcn模塊;(c)

1維Look

upTable模塊;

(d)

2維Look

upTable模塊

1)Fcn模塊

Fcn模塊位于用戶自定義(UserDefineFunction)模塊組中,模塊圖標(biāo)見圖5.53(a),其參數(shù)設(shè)置對(duì)話框如圖5.54所示。圖中,Expression(表達(dá)式)欄必須填寫函數(shù)表達(dá)式(即函數(shù)的解析式),且必須遵循下述規(guī)則:

5.54Fcn模塊參數(shù)設(shè)置對(duì)話框

(1)模塊的輸入可以是標(biāo)量或向量,但輸出一定是標(biāo)量。模塊輸入是標(biāo)量時(shí),必須用u作為變量名;輸入為向量時(shí),必須用u(1),u(2)等向量作為元素名。圖5.54中Expression欄的內(nèi)容為缺省表達(dá)式。(2)表達(dá)式符合C語(yǔ)言格式,執(zhí)行的是標(biāo)量運(yùn)算,計(jì)算結(jié)果就是模塊的輸出。(3)

表達(dá)式中引用的其他標(biāo)量形式的參量必須存在于MATLAB工作空間中。

2)MATLABFcn模塊

MATLABFcn模塊也位于用戶自定義模塊組中,模塊圖標(biāo)如圖5.53(b)所示,其參數(shù)設(shè)置對(duì)話框如圖5.55所示。圖中,MATLABfunction欄填寫表達(dá)式或函數(shù)文件名,且應(yīng)遵循下述規(guī)則:(1)模塊的輸入、輸出都可以是標(biāo)量或向量。(2)表達(dá)式的書寫規(guī)則與Fcn模塊相同;函數(shù)編寫符合2.6.1節(jié)論述的M函數(shù)文件基本結(jié)構(gòu)及規(guī)則。(3)表達(dá)式或函數(shù)的輸出必須與該模塊的輸出維數(shù)匹配,否則就會(huì)出現(xiàn)錯(cuò)誤。該模塊可以進(jìn)行的運(yùn)算比Fcn模塊復(fù)雜,

但速度較慢。

圖5.55MATLABFcn函數(shù)模塊參數(shù)設(shè)置對(duì)話框

3)LookupTable模塊

LookupTable模塊位于查表(LookupTables)模塊組中,有1維、2維及n維之分。圖5.53(c)是1維LookupTable模塊圖標(biāo),而圖5.53(d)則是2維LookupTable模塊圖標(biāo)。

此類模塊可根據(jù)所給表格對(duì)輸入進(jìn)行“插補(bǔ)”或“外推”運(yùn)算。

【例5.7】將圖5.50所示非線性控制系統(tǒng)中的飽和非線性用MATLABFcn函數(shù)模塊實(shí)現(xiàn)。

【解】(1)構(gòu)建Simulink模型。由圖5.50所構(gòu)建的Simulink模型如圖5.56所示,模型名為exm5-7.mdl。

5.56具有MATLABFcn模塊的非線性系統(tǒng)仿真模型

圖中,Saturation模塊(即MATLABFcn模塊)實(shí)現(xiàn)飽和非線性特性,函數(shù)名為bh.m。因此,在該模塊參數(shù)設(shè)置對(duì)話框(見圖5.55)的MATLABfunction欄中填寫函數(shù)名bh(省略擴(kuò)展名),其M函數(shù)文件如下:functiony=bh(u)

ifabs(u)<=1y=2*u;

elseifu>1y=2;

else

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論