第8講SIMULINK建模與仿真_第1頁
第8講SIMULINK建模與仿真_第2頁
第8講SIMULINK建模與仿真_第3頁
第8講SIMULINK建模與仿真_第4頁
第8講SIMULINK建模與仿真_第5頁
已閱讀5頁,還剩119頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第6章Simulink建模與仿真

6.1Simulink模塊庫簡介與使用

6.2構建Simulink框圖

6.3設計Simulink框圖的界面

6.4Simulink與MATLAB的接口設計

6.5簡單系統(tǒng)的仿真分析

6.6Simulink的調(diào)試技術6.1Simulink模塊庫簡介與使用

6.1.1Simulink的啟動

Simulink是基于MATLAB環(huán)境之上的高性能的系統(tǒng)級仿真設計平臺,因此啟動Simulink之前必須首先運行MATLAB,然后才能啟動Simulink并建立系統(tǒng)模型。啟動Simulink有兩種方式:

(1)用命令行方式啟動Simulink。即在MATLAB的命令窗口中直接鍵入如下命令:

>>simulink利用Simulink進行系統(tǒng)仿真的步驟是:啟動Simulink,打開Simulink模塊庫;打開空白模型窗口;建立Smulink仿真模型;設置仿真參數(shù),進行仿真;輸出仿真結果。

(2)使用工具欄按鈕啟動Simulink。即用鼠標單擊MATLAB工具欄中的Simulink按鈕。啟動Simulink,建立系統(tǒng)模型,其相應的基本操作如圖6.1所示。圖6.1啟動Simulink,建立系統(tǒng)模型的基本操作為便于用戶能夠快速構建自己所需的動態(tài)系統(tǒng),Simulink提供了大量以圖形方式給出的內(nèi)置系統(tǒng)模塊,使用這些內(nèi)置模塊可以快速方便地設計出特定的動態(tài)系統(tǒng)。為了便于用戶對Simulink內(nèi)置模塊庫的認識與使用,本節(jié)簡單介紹Simulink中的模塊庫以及模塊庫中具有代表意義的系統(tǒng)模塊。圖6.2所示Simulink的模塊庫瀏覽器。圖6.2Simulink的模塊庫瀏覽器

6.1.2Simulink公共模塊庫

Simulink公共模塊庫是Simulink中最為基礎、最為通用的模塊庫,它可以被應用到不同的專業(yè)領域中。Simulink公共模塊庫主要包含9個模塊庫,如圖6.3所示。下面分別介紹各個模塊的功能:

1.Continuous(連續(xù)系統(tǒng)模塊庫)連續(xù)系統(tǒng)模塊庫以及其中各模塊的功能如圖6.4所示。

2.Discrete(離散系統(tǒng)模塊庫)離散系統(tǒng)模塊庫以及其中各模塊的功能如圖6.5所示。圖6.3Simulink的公共模塊庫圖6.4連續(xù)系統(tǒng)模塊庫及其功能圖6.5離散系統(tǒng)模塊庫及其功能3.Functions&Tables(函數(shù)與表庫)函數(shù)與表庫以及其中各模塊的功能如圖6.6所示。4.Math(數(shù)學運算庫)數(shù)學運算庫以及其中各模塊的功能如圖6.7所示。5.Nonlinear(非線性系統(tǒng)模塊庫)非線性系統(tǒng)模塊庫以及其中各模塊的功能如圖6.8所示。6.Signals&Systems(信號與系統(tǒng)模塊庫)信號與系統(tǒng)模塊庫以及其中各模塊的功能如圖6.9所示。圖6.6函數(shù)與表庫及其功能圖6.7數(shù)學運算庫及其能圖6.8非線性系統(tǒng)模塊庫及其功能圖6.9信號與系統(tǒng)模塊庫及其功能7.Sinks(系統(tǒng)輸出模塊庫)系統(tǒng)輸出模塊庫以及其中各模塊的功能如圖6.10所示。8.Sources(系統(tǒng)輸入模塊庫)系統(tǒng)輸入模塊庫以及其中各模塊的功能如圖6.11所示。9.Subsystems(子系統(tǒng)模塊庫)子系統(tǒng)模塊庫以及其中各模塊功能如圖6.12所示。圖6.10系統(tǒng)輸出模塊庫及其功能圖6.11系統(tǒng)輸入模塊庫及其功能圖6.12子系統(tǒng)模塊庫及其功能6.1.3Simulink專業(yè)模塊庫

Simulink集成了許多面向各專業(yè)領域的系統(tǒng)模塊庫,不同領域的系統(tǒng)設計者可以使用這些系統(tǒng)模塊快速構建自己的系統(tǒng)模型,然后在此基礎上進行系統(tǒng)的仿真與分析,從而完成系統(tǒng)設計的任務。這里僅簡單介紹部分專業(yè)模塊庫的主要功能。

(1)ControlSystemToolbox模塊庫:面向控制系統(tǒng)的設計與分析,主要提供線性時不變系統(tǒng)的模塊。

(2)DSPBlockset模塊庫:面向數(shù)字信號處理系統(tǒng)的設計與分析,主要提供DSP輸入模塊、DSP輸出模塊、信號預測與估計模塊、濾波器模塊、DSP數(shù)學函數(shù)庫、量化器模塊、信號管理模塊、信號操作模塊、統(tǒng)計模塊以及信號變換模塊等。

(3)SimulinkExtras模塊庫:主要補充Simulink公共模塊庫,提供附加連續(xù)模塊庫、附加線性系統(tǒng)模塊庫、附加輸出模塊庫、觸發(fā)器模塊庫、線性化模塊庫、系統(tǒng)轉換模塊庫以及航空航天系統(tǒng)模塊庫等。

(4)S-functiondemos模塊庫:主要提供C++、C、FORTRAN以及M文件下S-函數(shù)的模塊庫的演示模塊。

(5)Real-TimeWorkshop與Real-TimeWindowsTarget模塊庫:主要提供各種用來進行獨立可執(zhí)行代碼或嵌入式代碼生成,以實現(xiàn)高效實時仿真的模塊。它們和RTW、TLC有著密切的聯(lián)系。

(6)Stateflow庫:對使用狀態(tài)圖所表達的有限狀態(tài)機模型進行建模仿真和代碼生成。有限狀態(tài)機用來描述基于事件的控制邏輯,也可用于描述響應型系統(tǒng)。

(7)定點模塊庫:包含一組用于定點算法仿真的模塊。

(8)通信模塊庫:專用于通信系統(tǒng)仿真的一組模塊。

(9)Dials&Gauges庫:圖形儀表模塊庫,它們實際上是一組ActiveX控件。

(10)神經(jīng)網(wǎng)絡模塊庫:用于神經(jīng)網(wǎng)絡的分析設計和實現(xiàn)的一組模塊。

(11)模糊控制模塊庫:包括一組有關模糊控制的分析設計和實現(xiàn)的模塊。

(12)xPC模塊庫:提供了一組用于xPC仿真的模塊。

6.2構建Simulink框圖

6.1節(jié)中簡單介紹了Simulink中的一些比較常用的系統(tǒng)模塊。本節(jié)將介紹如何使用這些系統(tǒng)模塊以構建用戶自己的系統(tǒng)模型。當Simulink庫瀏覽器被啟動之后,通過鼠標左鍵單擊模塊庫的名稱可以查看模塊庫中的模塊。模塊庫中包含的系統(tǒng)模塊顯示在Simulink庫瀏覽器右邊的一欄中。對Simulink庫瀏覽器的基本操作有:

(1)使用鼠標左鍵單擊系統(tǒng)模塊庫,如果模塊庫為多層結構,則單擊“+”號載入庫。

(2)使用鼠標右鍵單擊系統(tǒng)模塊庫,在單獨的窗口打開庫。

(3)使用鼠標左鍵單擊系統(tǒng)模塊,在模塊描述欄中顯示此模塊的描述。

(4)使用鼠標右鍵單擊系統(tǒng)模塊,可以得到系統(tǒng)模塊的幫助信息,將系統(tǒng)模塊插入到系統(tǒng)模型中,查看系統(tǒng)模塊的參數(shù)設置,以及回到系統(tǒng)模塊的上一層庫。

6.2.1模塊選擇用一個非常簡單的例子介紹如何建立動態(tài)系統(tǒng)模型。此簡單系統(tǒng)的輸入為一個正弦波信號,輸出為此正弦波信號與一個常數(shù)的乘積。要求建立系統(tǒng)模型,并以圖形方式輸出系統(tǒng)運算結果。已知系統(tǒng)的數(shù)學描述為系統(tǒng)輸入:,t≥0

系統(tǒng)輸出:啟動Simulink并新建一個系統(tǒng)模型文件。欲建立此簡單系統(tǒng)的模型,需要如下的系統(tǒng)模塊(均在Simulink公共模塊庫中):

(1)系統(tǒng)輸入模塊庫Sources中的SineWave模塊:產(chǎn)生一個正弦波信號。

(2)數(shù)學庫Math中的Gain模塊:將信號乘上一個常數(shù)(即信號增益)。

(3)系統(tǒng)輸出庫Sinks中的Scope模塊:圖形方式顯示結果。選擇相應的系統(tǒng)模塊并將其拷貝(或拖動)到新建的系統(tǒng)模型中,如圖6.13所示。圖6.13選擇系統(tǒng)所需模塊在選擇構建系統(tǒng)模型所需的所有模塊后,需要按照系統(tǒng)的信號流程將各系統(tǒng)模塊正確連接起來。連接系統(tǒng)模塊的步驟如下:

(1)將光標指向起始塊的輸出端口,此時光標變成“+”。

(2)單擊鼠標左鍵并拖動到目標模塊的輸入端口,在接近到一定程度時光標變成雙十字。這時松開鼠標鍵,連接完成。完成后在連接點處出現(xiàn)一個箭頭,表示系統(tǒng)中信號的流向。

(3)在Simulink的最新版本中,連接系統(tǒng)模塊還有如下更有效的方式:①使用鼠標左鍵單擊起始模塊。②按下Ctrl鍵,并用鼠標左鍵單擊目標塊。

6.2.2模塊操作

下面介紹一些對系統(tǒng)模塊進行操作的基本技巧,掌握它們可使建立動態(tài)系統(tǒng)模型變得更為方便快捷。

1.模塊的復制如果需要幾個同樣的模塊,可以使用鼠標右鍵單擊并拖動某個塊進行拷貝。也可以在選中所需的模塊后,使用Edit菜單上的Copy和Paste或使用熱鍵Ctrl+C和Ctrl+V完成同樣的功能,如圖6.15所示。

圖6.15模塊的復制

2.模塊的插入如果用戶需要在信號連線上插入一個模塊,只需將這個模塊移到線上就可以自動連接。注意這個功能只支持單輸入單輸出模塊。對于其他的模塊,只能先刪除連線,放置塊,然后再重新連線。具體操作如圖6.16所示。圖6.16系統(tǒng)模塊的插入3.連線分支與連線改變在某些情況下,一個系統(tǒng)模塊的輸出同時作為多個其它模塊的輸入,這時需要從此模塊中引出若干連線,以連接多個其它模塊。對信號連線進行分支的操作方式為:使用鼠標右鍵單擊需要分支的信號連線(光標變成“+”),然后拖動到目標模塊。對信號連線還有以下幾種常用的操作:

(1)使用鼠標左鍵單擊并拖動以改變信號連線的路徑。

(2)按下Shift鍵的同時,在信號連線上單擊鼠標左鍵并拖動,可以生成新的節(jié)點。

(3)在節(jié)點上使用鼠標左鍵單擊并拖動,可以改變信號連線路徑。信號連線分支與連線改變?nèi)鐖D6.17所示。

改變粗細:選中Format菜單下的WideVectorLines時,線的粗細會根據(jù)線所引出的信號是標量還是向量而改變,如果信號為標量則為細線,若為向量則為粗線。

設定標簽:在線上雙擊鼠標,即可輸入該線的說明標簽。也可以通過選中線,然后打開Edit菜單下的SignalProperties進行設定圖6.17連線分支與連線改變

4.信號組合

在利用Simulink進行系統(tǒng)仿真時,在很多情況下,需要將系統(tǒng)中某些模塊的輸出信號(一般為標量)組合成一個向量信號,并將得到的信號作為另外一個模塊的輸入。圖6.18信號組合Signals&Systems庫

:信號分路器。將混路器輸出的信號依照原來的構成方法分解成多路信號。:信號匯總器將多路信號依照向量的形式混合成一路信號。

(a)(b)Simulink中的LTIViewer在Simulink中建立的仿真模型也可直接輸入到LTIViewer中進行分析,具體方法如下:在Simulink模型窗建立起仿真模型(線性系統(tǒng))。點擊Simulink模型窗上的【Tool:Linearanalysis】,在彈出的界面中將輸入輸出接點分別復制到仿真模型的輸入和輸出。仿真模型的輸入輸出接點再次點擊SIMULINK模型窗上的ToolLinearanalysis,打開LTIViewer仿真界面,點擊該界面上SimulinkGetLinearizedModel選項,即畫出系統(tǒng)的階躍響應曲線,表明SIMULINK中的仿真模型已和LTIViewer相連接,因此可利用LTIViewer對該系統(tǒng)進行分析。

LTIViewer獲取模型窗中模型

LTIViewer繪制的階躍響應曲線如果在Simulink模型窗對已輸入到LTIViewer中的模型進行了修改,應重復步驟(3)重新裝入模型,并刪除掉舊模型。方法是點擊LTIViewer仿真界面上的【EditDeletesystems】,在彈出的對話框中,進行模型的刪除,如圖所示。

模型的刪除6.2.3運行仿真

1.系統(tǒng)模塊參數(shù)設置與系統(tǒng)仿真參數(shù)設置當用戶按照信號的輸入輸出關系連接各系統(tǒng)模塊之后,系統(tǒng)模型的創(chuàng)建工作便已結束。為了對動態(tài)系統(tǒng)進行正確的仿真與分析,必須設置正確的系統(tǒng)模塊參數(shù)與系統(tǒng)仿真參數(shù)。系統(tǒng)模塊參數(shù)的設置方法如下:

(1)雙擊系統(tǒng)模塊,打開系統(tǒng)模塊的參數(shù)設置對話框。

(2)在參數(shù)設置對話框中設置合適的模塊參數(shù)。

(3)當系統(tǒng)中各模塊的參數(shù)設置完畢后,可設置合適的系統(tǒng)仿真參數(shù)以進行動態(tài)系統(tǒng)的仿真。圖6.19系統(tǒng)模塊參數(shù)設置

2.運行仿真當對系統(tǒng)中各模塊參數(shù)以及系統(tǒng)仿真參數(shù)進行正確設置之后,單擊系統(tǒng)模型編輯器上的Play圖標(黑色三角)或選擇Simulation菜單下的Start便可以對系統(tǒng)進行仿真分析。對于圖6.19所示的動態(tài)系統(tǒng),采用上述的模塊參數(shù)設置與默認的仿真參數(shù)進行仿真。仿真結束后雙擊Scope模塊以顯示系統(tǒng)仿真的輸出結果,如圖6.20所示。圖6.20系統(tǒng)仿真及結果輸出示波器:顯示在仿真過程產(chǎn)生的信號波形。雙擊該圖標,彈出示波器窗如右圖所示:分別管理X-Y、X和Y軸向變焦取當前窗中信號最大、最小值為縱坐標的上下限把當前軸的設置保存為該示波器的缺省設置打開示波器屬性對話框設置為浮動示波器示波器屬性對話框設置Y軸個數(shù)設置顯示的時間范圍選擇軸的標注方法確定顯示頻度(每隔n-1個數(shù)據(jù)點顯示一次)確定顯示點的時間間隔(缺省為0表示連續(xù)顯示)示波器屬性對話框General頁示波器屬性對話框Datahistory頁設定緩沖區(qū)接受數(shù)據(jù)的長度,勾選為缺省狀態(tài),其值為5000確定示波器數(shù)據(jù)是否保存到MATLAB工作空間。若勾選則為保存,且需確定變量名和保存格式(缺省時,不被勾選)MATLAB命令窗口下的仿真運行在Matlab命令窗口下可直接運行一個已存在的Simulink模型:[t,x,y]=sim(‘model’,timespan,option,ut)其中,t為返回的仿真時間向量;

x為返回的狀態(tài)矩陣;

y為返回的輸出矩陣;

model為系統(tǒng)Simulink模型文件名;

timespan為仿真時間;option為仿真參數(shù)選擇項,由simset設置;ut為選擇外部產(chǎn)生輸入,ut=[T,u1,u2,…,un]。[說明]上述參數(shù)中,若省略timespan,option,ut則由框圖模型的對話框SimulationParameters設置仿真參數(shù)。Simulink建模和仿真的基本步驟:1、根據(jù)系統(tǒng)的物理模型或數(shù)學模型,在SimulinkBrowser中選取相關模塊2、將選取的模塊按照模塊間的輸入輸出關系進行連接3、設置系統(tǒng)的模塊參數(shù)4、設置系統(tǒng)的仿真參數(shù)5、運行仿真模型,進行分析和調(diào)試

6.3設計Simulink框圖的界面

6.2節(jié)對使用Simulink進行系統(tǒng)建模與仿真做了簡單的介紹,任何動態(tài)系統(tǒng)的模型構建與仿真的步驟都與此類似。本節(jié)所要介紹的Simulink界面設計主要用來改善系統(tǒng)模型的界面,以便于用戶對系統(tǒng)模型的理解與維護。

6.3.1模塊及框圖屬性編輯

1.框圖的視圖調(diào)整在Simulink系統(tǒng)模型編輯器中,可以對系統(tǒng)模型的視圖進行調(diào)整以便更好地觀察系統(tǒng)模型。視圖調(diào)整的方法如下所述:

(1)使用View菜單控制模型在視圖區(qū)的顯示,用戶可以對模型視圖進行任意縮放。

(2)使用系統(tǒng)熱鍵R(放大)或V(縮小)。

(3)按空格鍵可以使系統(tǒng)模型充滿整個視圖窗口。視圖調(diào)整效果如圖6.21所示:

2.模塊的名稱操作在使用Simulink中的系統(tǒng)模塊構建系統(tǒng)模型時,Simulink會自動給系統(tǒng)模型中的模塊命名,如在6.2節(jié)的簡單動態(tài)系統(tǒng)中,正弦信號模塊名稱為SineWave;對于系統(tǒng)模型中相同的模塊,Simulink會自動對其進行編號。一般對于簡單的系統(tǒng),可以采用Simulink的自動命名;但對于復雜系統(tǒng),給每個模塊取一個具有明顯意義的名稱非常有利于系統(tǒng)模型的理解與維護。下面簡單介紹一下模塊名稱的操作。

(1)模塊命名:使用鼠標左鍵單擊模塊名稱,進入編輯狀態(tài),然后鍵入新的名稱。

(2)名稱移動:使用鼠標左鍵單擊模塊名稱并拖動到模塊的另一側,或選擇Format菜單中的FlipName翻轉模塊名稱。

(3)名稱隱藏:選擇Format菜單中的HideName隱藏系統(tǒng)模塊名稱。

注意:

系統(tǒng)模型中模塊的名稱應當是唯一的,否則Simulink會給出警告并自動改變名稱。系統(tǒng)模型中模塊的名稱操作如圖6.22所示。

3.模塊的其它操作

Simulink允許用戶對模塊的幾何尺寸進行修改,以改善系統(tǒng)模型框圖的界面。例如,對于具有多個輸入端口的模塊,需要調(diào)整其大小使其能夠較好地容納多個信號連線,而非采用模塊的默認大??;另外,對于某些系統(tǒng)模塊,當模塊的尺寸足夠大時,模塊的參數(shù)將直接顯示在模塊上面,這非常有利于用戶對模型的理解。

Simulink允許改變模塊的顏色。使用鼠標右鍵單擊模塊,選擇Foregroundcolor或Backgroundcolor菜單來設置顏色;或使用模型編輯器中Format菜單中的相應命令設置模塊顏色。如果模塊的前景色發(fā)生改變,則所有由此模塊引出的信號線顏色也隨之改變;當系統(tǒng)模型框圖很復雜時,這個特性能夠有效地增強框圖的可讀性。此外,還可以使用Format菜單中的ShowDropShadow為模塊生成陰影,或使用FlipBlock、RotateBlock對模塊進行翻轉與旋轉,或使用Font對模塊字體進行設置等。對模塊的操作如圖6.23所示。圖6.23模塊的其它操作

4.系統(tǒng)框圖注釋作為友好的Simulink系統(tǒng)模型界面,對系統(tǒng)模型的注釋是不可缺少的。在Simulink中對系統(tǒng)模型框圖進行注釋的方法非常簡單,只需在系統(tǒng)模型編輯器的背景上雙擊鼠標左鍵以確定添加注釋文本的位置,并打開一個文本編輯框,用戶便可以在此輸入相應的注釋文本。輸入完畢后,使用鼠標左鍵單擊以退出編輯并移動文本位置(編輯框未被選中情況下)到合適的地方。此外,在文本對象上單擊鼠標右鍵,可以改變文本的屬性如大小、字體和對齊方式等。在任何時候都可以雙擊注釋文本進行編輯。系統(tǒng)框圖注釋如圖6.24所示。圖6.24系統(tǒng)模型框圖注釋

6.3.2信號標簽與標簽傳遞

1.信號標簽所謂的信號標簽,也可以稱為信號的“名稱”或“標記”,它與特定的信號相聯(lián)系,是信號的一個固有屬性。這一點與系統(tǒng)框圖注釋不同,框圖注釋是對整個或局部系統(tǒng)模型進行說明的文字信息,它與系統(tǒng)模型相分離。生成信號標簽的方法有如下兩種:

(1)使用鼠標左鍵雙擊需要加入標簽的信號(即系統(tǒng)模型中與信號相對應的模塊連線),這時便會出現(xiàn)標簽編輯框,在其中鍵入標簽文本即可。與框圖注釋類似,信號標簽可以移動到希望的位置,但只能是在信號線的附近。如果強行將標簽拖動離開信號線,標簽會自動回到原處。當一個信號定義了標簽后,從這條信號線引出的分支線會繼承這個標簽,如圖6.25所示。圖6.25信號標簽操作之一

(2)首先選擇需要加入標簽的信號,用鼠標左鍵單擊信號連線;然后使用Edit菜單下的SignalProperties項,在打開的界面中編輯信號的名稱,而且還可以使用這個界面對信號作簡單的描述,并建立HTML文檔鏈接,如圖6.26所示。

注意:

雖然信號標簽的內(nèi)容可以任意指定,但為了系統(tǒng)模型可讀性,信號標簽最好使用能夠代表信號特征的名稱(如信號類型、信號作用等)。圖6.26信號標簽操作之二

2.信號標簽的傳遞在系統(tǒng)模型中,信號標簽可以由某些稱之為“虛塊”的系統(tǒng)模塊來進行傳遞。這些虛塊主要用來完成對信號的選擇、組合與傳遞,它不改變信號的任何屬性。如Signals&Systems模塊庫中的Mux模塊的功能是組合信號,但并不改變信號的值。信號標簽傳遞的方法有如下幾種:

(1)選擇信號線并用鼠標左鍵雙擊,在信號標簽編輯框中鍵入<>,在此尖括號中鍵入信號標簽即可傳遞信號標簽。

(2)選擇信號線,然后選擇Edit菜單中的Signal

Properties;或單擊鼠標右鍵,選擇彈出式菜單中的SignalProperties,將ShowPropagatedSignals設置為on即可。注意:只能在信號的前進方向上傳遞該信號標簽。當一個帶有標簽的信號與Scope塊連接時,信號標簽將作為標題顯示。

6.3.3Simulink子系統(tǒng)介紹對于簡單的動態(tài)系統(tǒng)而言,用戶很容易建立系統(tǒng)模型并分析系統(tǒng)模型中各模塊之間的相互關系,以及模塊的輸入輸出關系。但是對于比較復雜的系統(tǒng),系統(tǒng)模型中包含的模塊數(shù)目較多,模塊之間的輸入輸出關系比較復雜。這時對于分析與設計系統(tǒng)而言,都會給用戶帶來諸多的不便,而使用子系統(tǒng)技術則可以較好地解決這一問題。

1.子系統(tǒng)生成

Simulink提供的子系統(tǒng)功能可以大大地增強Simulink系統(tǒng)模型框圖的可讀性。所謂的子系統(tǒng)可以理解為一種“容器”,此容器能夠?qū)⒁唤M相關的模塊封裝到一個單獨的模塊中,并且與原來系統(tǒng)模塊組的功能一致。子系統(tǒng)的建立方法有如下兩種:

(1)在已有的系統(tǒng)模型中建立子系統(tǒng)首先框選待封裝的區(qū)域,即在模型編輯器背景中單擊鼠標左鍵并拖動,選中需要放置到子系統(tǒng)中的模塊與信號(或在按下Shift鍵的同時,用鼠標左鍵單擊所需模塊);然后選擇Edit菜單下的CreateSubsystem,即可建立子系統(tǒng)。如圖6.28所示。圖6.28子系統(tǒng)建立:選擇模塊生成子系統(tǒng)組合已存在的模塊來建立子系統(tǒng)如果現(xiàn)有的模型已經(jīng)包含了需要轉化成子系統(tǒng)的模塊,就可以通過組合這些模塊的方式建立子系統(tǒng)。步驟如下:確定需建立Subsystem的模型(被選中的均標記有黑塊)

圈選欲建子系統(tǒng)的模塊點擊模型窗Edit菜單下的CreateSubsystem命令,則所選定的模型組合自動轉化成子系統(tǒng):雙擊該圖標,可打開該子系統(tǒng)窗口,改寫輸入輸出符號:關閉子系統(tǒng)編輯窗口,設置子系統(tǒng)標簽,則系統(tǒng)模型如下圖所示:

(2)建立空的子系統(tǒng):使用Subsystems(有的版本在Signals&Systems子庫里)模塊庫中的模塊建立子系統(tǒng)。這樣建立的子系統(tǒng)內(nèi)容為空,然后雙擊子系統(tǒng)對其進行編輯。如圖6.29所示。圖6.29子系統(tǒng)建立:生成并編輯空子系統(tǒng)下面以PID控制器子系統(tǒng)創(chuàng)建,說明子系統(tǒng)的創(chuàng)建過程:將子系統(tǒng)庫模塊中的Subsystem模塊復制到模型窗,如右圖所示。雙擊該圖標即打開該子系統(tǒng)的編輯窗口,如下圖所示。

子系統(tǒng)模塊復制到模型窗

原始子系統(tǒng)模塊的內(nèi)部結構型窗將組成子系統(tǒng)的模塊添加到子系統(tǒng)編輯窗口:將模塊按設計要求連接:設置子系統(tǒng)各模塊參數(shù)(可以是變量);修改in1和out1模塊下面的標簽;關閉子系統(tǒng)的編輯窗口,返回模型窗口,修改子系統(tǒng)的標簽(PID),該PID子系統(tǒng)即可作為模塊在構造系統(tǒng)模型時使用。2.子系統(tǒng)的封裝

子系統(tǒng)可以建立自己的參數(shù)設置對話框,以避免對子系統(tǒng)內(nèi)的每個模塊分別進行參數(shù)設置,因此在子系統(tǒng)建立好以后,需對其進行封裝。子系統(tǒng)封裝的基本步驟為:設置好子系統(tǒng)中各模塊的參數(shù)變量;定義提示對話框及其特性;定義被封裝子系統(tǒng)的描述和幫助文檔;定義產(chǎn)生模塊圖標的命令。

設置子系統(tǒng)參數(shù)變量將原子系統(tǒng)中的常數(shù)改為變量,其中飽和環(huán)節(jié)的上、下限分別設為au、ab(需打開該環(huán)節(jié)的參數(shù)設置框)。產(chǎn)生提示對話框

選擇需要封裝的子系統(tǒng),從模型窗口的Edit菜單選擇MaskSubsystem命令,即彈出封裝編輯器:該編輯器分為四頁:Icon(圖標)頁Parameters(參數(shù)頁)Initialiation(初始化)頁Documentation(文檔)頁其中子系統(tǒng)封裝最關鍵的是Parameters項,用于設置參數(shù)變量及其類型等。(1)Icon標簽頁此頁最重要的部分是DrawingCommands,在該區(qū)域內(nèi)可以用disp指令設定功能模塊的文字名稱,用plot指令畫線,用dpoly指令畫轉換函數(shù)。disp(‘text’)可以在功能模塊上顯示設定的文字內(nèi)容。plot([x1x2…xn],[y1y2…yn])指令在功能模塊上畫出直線。dpoly(num,den):按s次數(shù)的降冪排序,在功能模塊上顯示連續(xù)的傳遞函數(shù)。用戶還可以設置一些參數(shù)來控制圖標的屬性,這些屬性在Icon頁右下端的下拉式列表中進行選擇。Iconframe:Visible顯示外框線;Invisible:隱藏外框線。IconTransparency:Opaque隱藏輸入輸出的標簽;Transparent:顯示輸入輸出的標簽。IconRotation:旋轉模塊。Drawingcoordinate:畫圖時的坐標系。(2)Initialization標簽頁此頁主要用來設計輸入提示(prompt)以及對應的變量名稱variable)。在prompt編輯框中輸入文字,這些文字就會出現(xiàn)在prompt列表中;在variable列表中輸入變量名稱,則prompt中的文字對應該變量的說明。Controltype列表給用戶提供選擇設計的編輯區(qū),選擇Edit會出現(xiàn)供輸入的空白區(qū)域,所輸入的值代表對應的variable。Assignment屬性用于配合Controltype的不同選擇來提供不同的變量值,變量值有Evaluate和Literal兩種。(3)Documentation標簽頁此頁針對完成的功能模塊編寫相應的說明文字和Help。在Blockdescription中輸入的文字,會出現(xiàn)在參數(shù)窗口的說明部分。Masktype:此處輸入的文字作為封裝模塊的標注說明,在模型窗口下,將鼠標指向模塊,會顯示該文字。Parameters頁AddDeleteUpDown提示符變量名直接輸入變量名變量的類型為數(shù)值變量的數(shù)值可在線調(diào)節(jié)假定子系統(tǒng)(Nonlinearsystem)的參數(shù)變量名已由封裝編輯器全部輸入。雙擊該子系統(tǒng)圖標,即彈出如圖所示子系統(tǒng)的參數(shù)設置框圖。如圖所示逐欄輸入與變量所對應的參數(shù),即完成對該子系統(tǒng)的參數(shù)設置。3.條件子系統(tǒng)(1)使能子系統(tǒng)該子系統(tǒng)當使能端控制信號為正時,系統(tǒng)處于“允許”狀態(tài),否則為“禁止”狀態(tài)?!笆鼓堋笨刂菩盘柨梢詾闃肆?,也可以為向量。當為標量信號時,只要該信號大于零,子系統(tǒng)就開始執(zhí)行;當為向量信號時,只要其中一個信號大于零,也“使能”子系統(tǒng)。例:積分分離式PID控制器。這種PID控制器可以讓控制器中的積分項在系統(tǒng)響應進入穩(wěn)態(tài)時投入運行,以提高穩(wěn)態(tài)精度;而在系統(tǒng)響應處于瞬態(tài)過程時,將積分項斷開以改善系統(tǒng)動態(tài)響應質(zhì)量。積分分離式PID控制器建立如圖所示:使能模塊的控制信號為delta與abs(e)的差值。delta為一很小的正數(shù),當偏差e的絕對值小于delta時,控制器的積分項才投入使用,從而實現(xiàn)了控制器中的積分項的分離控制。(2)觸發(fā)子系統(tǒng)觸發(fā)子系統(tǒng)只在觸發(fā)事件發(fā)生的時刻執(zhí)行。所謂觸發(fā)事件也就是觸發(fā)子系統(tǒng)的控制信號,一個觸發(fā)子系統(tǒng)只能有一個控制信號,在Simulink中稱之為觸發(fā)輸入。(a)觸發(fā)子系統(tǒng)模塊(b)觸發(fā)子系統(tǒng)模型觸發(fā)事件有4種類型,即上升沿觸發(fā)、下降沿觸發(fā)、跳變觸發(fā)和回調(diào)函數(shù)觸發(fā)。雙擊觸發(fā)子系統(tǒng)中的觸發(fā)器模塊(Trigger),在彈出的對話框中可選擇觸發(fā)類型。觸發(fā)子系統(tǒng)應用的一個示例。觸發(fā)器設為下降沿觸發(fā),正弦輸入經(jīng)觸發(fā)控制后,成為階梯波,如圖所示。系統(tǒng)僅在脈沖信號的下降沿導通,并保持導通時刻的輸入值至下一個脈沖下降沿。

4.子系統(tǒng)操作在生成子系統(tǒng)之后,用戶可以對子系統(tǒng)進行各種與系統(tǒng)模塊相類似的操作,這時子系統(tǒng)相當于具有一定功能的系統(tǒng)模塊。例如,子系統(tǒng)的命名、子系統(tǒng)視圖的修改、子系統(tǒng)的顯示顏色等等。當然子系統(tǒng)也有其特有的操作,如子系統(tǒng)的顯示(用鼠標左鍵雙擊子系統(tǒng)模塊即可打開子系統(tǒng))、子系統(tǒng)的封裝等等。

6.3.4建立復雜系統(tǒng)模型

Simulink適合建立大型復雜系統(tǒng)的模型,它為仿真系統(tǒng)模型的界面組織與設計提供了強大的支持。一般而言,建立復雜系統(tǒng)模型有兩種不同的思路:

(1)自下而上的設計思路:如果用戶從草圖開始建立一個復雜的模型,可以先建底層模型,然后對已經(jīng)建好的塊生成子系統(tǒng)。

(2)自上而下的設計思路:首先設計系統(tǒng)的總體模型,然后再進行細節(jié)設計。采用這種方法,可以在頂層使用空的子系統(tǒng)塊,然后再實現(xiàn)具體的細節(jié)。6.3.5SIMULINK仿真運行1、設置仿真參數(shù)和選擇解法器選擇Simulation菜單下的Parameters命令,彈出一個仿真參數(shù)對話框,有三個管理仿真參數(shù)的頁面。Solver頁,允許用戶設置仿真的開始和結束時間,選擇解法器,說明解法器參數(shù)及選擇一些輸出選項。WorkspaceI/O頁,設置模型從MATLAB工作空間的輸入和對它的輸出。Diagnostics頁,允許用戶選擇仿真中顯示的警告信息等級。運行一個仿真的完整過程分成三個步驟:設置仿真參數(shù),啟動仿真和仿真結果分析。(1)Solver頁(2)WorkspaceI/O頁此頁主要用來設置SIMULINK與MATLAB工作空間交換數(shù)值的有關選項。(3)Diagnostics頁此頁分兩個部分:仿真選項和配置選項。配置選項下的列表框主要列舉了常見的事件類型。仿真選項options主要包括是否進行一致性檢驗、是否禁用過零檢測、是否禁止復用緩存等。除上述3個主要的頁外,仿真參數(shù)設置窗口還包括real-timeworkshop頁,主要用于與C語言編輯器的交換,通過它可直接從SIMULINK模型生成代碼并自動建立可在不同環(huán)境下運行的程序。2、啟動仿真6.4Simulink與MATLAB的接口設計6.4.1由MATLAB工作空間變量設置系統(tǒng)模塊參數(shù)如前所述,用戶可以雙擊一個模塊以打開模塊參數(shù)設置對話框,然后直接輸入數(shù)據(jù)以設置模塊參數(shù)。其實用戶也可以使用MATLAB工作空間中的變量設置系統(tǒng)模塊參數(shù),這對于多個模塊的參數(shù)均依賴于同一個變量時非常有用。

(1)直接使用MATLAB工作空間中的變量設置模塊參數(shù)。

(2)使用變量構成的表達式設置模塊參數(shù)。例如,如果a是定義在MATLAB中的變量,則表達式a、a^2+5、exp(–a)等均可以作為系統(tǒng)模塊的參數(shù),如圖6.30所示。圖6.30使用MATLAB工作空間變量設置模塊參數(shù)6.4.2將信號輸出到MATLAB工作空間中

使用示波器模塊Scope的輸出信號,可以使用戶對輸出的信號進行簡單的定性分析。

使用Sinks模塊庫中的ToWorkspace模塊,可以輕易地將信號輸出到MATLAB工作空間中。信號輸出的名稱在ToWorkspace模塊的對話框中設置,此對話框還可以設置輸出數(shù)據(jù)的點數(shù)、輸出的間隔,以及輸出數(shù)據(jù)的類型等。其中輸出類型有三種形式:數(shù)組、結構以及帶有時間變量的結構。仿真結束或暫停時信號被輸出到工作空間中,如圖6.31所示。圖6.31系統(tǒng)模型中信號輸出6.4.3使用工作空間變量作為系統(tǒng)輸入信號

Simulink與MATLAB的數(shù)據(jù)交互是相互的,除了可以將信號輸出到MATLAB工作空間中之外,用戶還可以使用MATLAB工作空間中的變量作為系統(tǒng)模型的輸入信號。使用Sources模塊庫中的FromWorkspace模塊可以將MATLAB工作空間中的變量作為系統(tǒng)模型的輸入信號。此變量的格式如下所示:>>t=0:time_step:final_time;%表示信號輸入時間范圍與時間步長>>x=func(t); %表示在每一時刻的信號值>>input=[t',x'];%表示信號的輸入向量,輸入變量第一列須為時間序列,接下來的各列代表信號的取值例如,在MATLAB命令窗口中鍵入如下的語句并運行。>>t=0:0.1:10;>>x=sin(t);>>input=[t',x'];圖6.32MATLAB工作空間變量作為系統(tǒng)輸入信號運行此系統(tǒng)進行仿真,系統(tǒng)輸入信號input的作用相當于Sources模塊中的SineWave模塊,其結果如圖6.33所示(Scope1顯示結果)。圖6.33使用input信號作為輸入的仿真結果

6.4.4向量與矩陣在前面的系統(tǒng)模型中,Simulink所使用的信號均是標量。其實,Simulink也能夠傳遞和使用向量信號。例如,向量增益可以作用在一個標量信號上,產(chǎn)生一個向量輸出。在缺省情況下,模塊對向量中的逐個元素進行操作,就像MATLAB中的數(shù)組運算一樣,如圖6.34所示。圖6.34向量增益示意圖

Simulink最重要的特性就是支持矩陣形式的信號,它可以區(qū)分行和列向量并傳遞矩陣。通過對模塊做適當?shù)呐渲茫梢允鼓K能夠接受矩陣作為模塊參數(shù)。在上面的例子中,如果Constant模塊的參數(shù)為一矩陣,并且Gain增益模塊被配置成按矩陣乘的定義從左邊乘上輸入向量,則Display塊能夠感知到輸入信號的尺寸,即1×2行向量,并對邊框做適當調(diào)整,如圖6.35所示。圖6.35矩陣輸入與向量增益示意圖6.4.5MATLABFunction與Function模塊除了使用上述的方式進行Simulink與MATLAB之間的數(shù)據(jù)交互,用戶還可以使用FunctionsandTables模塊庫中的Function模塊(簡稱為Fcn模塊)或FunctionsandTables模塊庫中的MATLABFunction模塊(簡稱為MATLABFcn模塊)進行彼此間的數(shù)據(jù)交互。

Fcn模塊一般用來實現(xiàn)簡單的函數(shù)關系,在Fcn模塊中:

(1)輸入總是表示成u,u可以是一個向量。

(2)可以使用C語言表達式,例如sin(u[1])+cos(u[2])。

(3)輸出永遠為一個標量。

MATLABFcn一般用來調(diào)用MATLAB函數(shù)來實現(xiàn)一定的功能,在MATLABFcn模塊中:

(1)所要調(diào)用的函數(shù)只能有一個輸出(可以是一個向量)。

(2)單輸入函數(shù)只需使用函數(shù)名,多輸入函數(shù)輸入需要引用相應的元素,如mean、sqrt、myfunc(u(1),u(2))。

(3)在每個仿真步長內(nèi)都需要調(diào)用MATLAB解釋器。使用Fcn模塊與MATLABFcn模塊進行Simulink與MATLAB之間的數(shù)據(jù)交互如圖6.36所示。圖6.36使用Fcn與MATLABFcn模塊進行數(shù)據(jù)交互6.5使用Simulink進行簡單的仿真

例:信號平方運算。系統(tǒng)的功能是對輸入的信號進行平方運算。現(xiàn)要求建立系統(tǒng)的Simulink模型并進行簡單的仿真分析。具體要求如下:

(1)系統(tǒng)輸入信號源:幅值為2的正弦波

(2)使用Scope顯示原始信號和結果信號

(3)生成系統(tǒng)運算部分的子系統(tǒng)

(4)生成信號標簽并傳遞解:首先選擇系統(tǒng)所需的如下模塊(組件):

(1)Sources庫中的SineWave塊

(2)Math庫中的Product塊

(3)SignalsandSystems庫中的Mux塊

(4)Sinks庫中的Scope塊然后進行如下的操作:

(1)連接系統(tǒng)模塊

(2)選擇一個包含Product和Mux塊的區(qū)域,建立相應的子系統(tǒng)

(3)在主系統(tǒng)中生成輸入信號的標簽,在子系統(tǒng)中生成輸出信號的標簽

(4)傳遞信號的標簽

(5)改變輸入和輸出端口的名字

(6)保存模型圖6.37平方運算系統(tǒng)模型最后,進行模塊參數(shù)設置并使用默認的仿真參數(shù)進行仿真。在本例中,只需要對系統(tǒng)輸入信號源SineWave模塊進行參數(shù)設置即可(雙擊SineWave模塊),設置正弦信號的幅值為2,如圖6.38所示。系統(tǒng)仿真結果如圖6.39所示。圖6.38SineWave模塊參數(shù)設置圖6.39系統(tǒng)仿真結果6.6Simulink的調(diào)試技術

6.6.1Simulink圖形調(diào)試器啟動

Simulink的圖形調(diào)試器具有優(yōu)秀的用戶界面,使用菜單Tools下的Simulinkdebugger命令或是使用調(diào)試器按鈕啟動調(diào)試器,如圖6.40所示。圖6.40Simulink調(diào)試器窗口

6.6.2調(diào)試器的操作設置與功能啟動Simulink調(diào)試器,設置合適的調(diào)試斷點之后,便可以對系統(tǒng)模型中指定的模塊或信號進行調(diào)試了。在設置斷點進行調(diào)試之前,首先對Simulink圖形調(diào)試器中的操作設置與功能做一個簡單的介紹。

1.

Simulink調(diào)試器工具欄

Simulink調(diào)試器工具欄命令功能介紹如圖6.41所示。圖6.41Simulink調(diào)試器工具欄命令介紹

2.斷點顯示及斷點條件設置

Simulink提供了友好的調(diào)試界面,用戶可以在斷點顯示框中了解到當前斷點的信息,如斷點位置、斷點模塊的輸入輸出等,如圖6.42所示。圖6.42斷點顯示框一般說來,用戶可以在調(diào)試之前在指定的模塊之前設置斷點。但是多數(shù)情況下,用戶需要在一定的條件下設置系統(tǒng)斷點以進行調(diào)試。Simulink調(diào)試器提供了五種斷點條件設置,如圖6.43所示。圖6.43斷點條件設置

3.

調(diào)試器輸出窗口在對指定的系統(tǒng)模型進行調(diào)試時,調(diào)試結果均在Simulink的輸出窗口顯示。圖6.44所示為Simulink的調(diào)試器輸出窗口:圖6.44調(diào)試器輸出窗口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論