matlabsimulink子系統(tǒng)的封裝_第1頁
matlabsimulink子系統(tǒng)的封裝_第2頁
matlabsimulink子系統(tǒng)的封裝_第3頁
matlabsimulink子系統(tǒng)的封裝_第4頁
matlabsimulink子系統(tǒng)的封裝_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、子系統(tǒng)的封裝的意義 子系統(tǒng)封裝技術可以讓一個子系統(tǒng)有自己的特點。封裝后的子系統(tǒng)可以有自己的圖標、自己的參數(shù)和具有功能描述的控制對話框,甚至自己的help文檔,同時參數(shù)的修改更為方便(不用深入子系統(tǒng),只需在對話框中修改便可),內部結構也不易被修改。 封裝技術的簡要介紹封裝是在Mask Editor中進行的。要打開Mask Editor,需要兩步:選中要封裝的子系統(tǒng);選擇菜單Edit->Edit Mask或者右鍵菜單中的Edit Mask。Mask Editor的樣子如下: 圖一 可見,Mask Editor中共有如下四個選項頁:l Icon&Port,主要是對子系統(tǒng)的外觀圖標進行設

2、置;l Parameters,主要對封裝子系統(tǒng)的參數(shù)進行設置。如果子系統(tǒng)中有一個或多個模塊需要手動設置參數(shù),那么在仿真之前需要進入到子系統(tǒng)里面去對這些模塊分別進行參數(shù)設計,很麻煩。而用Mask Editor中的Parameters設置參數(shù),使這些參數(shù)能夠將參數(shù)值傳入到subsystem的模塊中去。這樣就可以直接對subsystem進行參數(shù)設計,既明了又方便;l Initialization,提供了一個Matlab語言命令框,可以在其中寫入一些程序,當子系統(tǒng)有被載入、改變參數(shù)或初始化等情況發(fā)生時,Simulink會自動執(zhí)行這些程序。所以可以將一些仿真前需要對subsystem做的設置,以程序的形

3、式寫入到編輯框內來實現(xiàn);l Documentation,編輯子系統(tǒng)的描述和生成help文檔。注意:左下角的Unmask按鈕可以取消對subsystem的封裝。 詳細闡述 下面對這四個選項頁進行詳細闡述,由于Icon&Port和Documentation對subsystem的功能影響不是很大,故只做簡要介紹,詳細內容參考help文檔。 Icon&port 如圖一所示,該選項頁有三部分:Options、Icon Drawing Commands和Examples of drawing commands。其中Icon Drawing Commands中可以編輯相應的繪圖命令,所有支持

4、的命令的簡單語法可在Examples of drawing commands中查看,具體用見相應的help文檔。 Parameters 該選項頁布局如下圖所示: 圖二 如上圖所示,該選項頁有兩個設置欄Dialog Parameters和Options for selected parameter。在Dialog Parameters左側有四個按鈕,功能分別是增加參數(shù)、刪除參數(shù)、上移和下移。 在Dialog Parameters面板中,每個參數(shù)有如下幾個屬性:l prompt,其實封裝后subsystem對話框中顯示的文本,起到一種提示作用;l Variable,在mask's work

5、space中存儲參數(shù)值的變量名稱。在封裝的subsy內,可以把該variable當做參數(shù)的值來使用,所以允許用戶通過對話框設置參數(shù) 。由于這是變量名,所以要遵守matlab關于變量命名的規(guī)則;l Type,編輯參數(shù)的空間的類型。在封裝好的subsystem的對話框中,控件緊隨參數(shù)的prompt顯示。主要有三種類型Edit、Checkbox和Popup;l Evaluate,Simulink可以使用用戶輸入作為參數(shù)值,也可以把用戶輸入做個evaluation,使用其結果當做參數(shù)的值(默認情況下如此)。選中Evaluate,則會對用戶輸入做evaluation,然后將evaluation的結果賦值

6、給variable;不選中則不會evaluation,將會把表達式本身作為字符串值賦值給variable。選中Evaluate的效果依控件Type的不同而不同,后面會詳細闡述;l tunable,選中tunable則參數(shù)在仿真時可以被修改,未選中則仿真時參數(shù)不能修改;l tab name,標簽名字。不輸入tab name,那么封裝好的subsystem的對話框是在一個面板上的(沒有標簽),如果輸入了文本,則對話框中參數(shù)會顯示在不同的標簽下; 控件類型:edit、checkbox和popup。l edit允許用戶在一定區(qū)域輸入?yún)?shù)的值;l checkbox允許用戶在check box的選中與不選

7、中之間做出選擇;l popup允許用戶在一系列的可能值之中做出選擇。 圖三 edit類型的參數(shù)的值依賴于Evaluate的選擇,具體關系如下表: Evaluate是否選中Edit控件參數(shù)值是輸入表達式做evaluation后的結果否輸入內容的文本字符串 舉個例子:假如輸入是2*5,則若選中Evaluate,參數(shù)值為2×5=10;若為選中Evaluate,則參數(shù)值為字符串"2*5"。 checkbox類型參數(shù)的值依賴于Evaluate的選擇,具體關系如下表:是否選中Evaluate是否選中check boxCheck box參數(shù)值是是1否0否是'on'

8、;否'off' 然而help文檔中的表是這樣的,我感到是錯誤的:EvaluationCheck Box Parameter StateCheck Box Parameter ValueOnSelected1Cleared'on'OffSelected0Cleared'off' popup控件允許用戶從一組可能的值中做出選擇??蛇x擇的可能值列表需要用戶在Dialog Parameters中選中該參數(shù),然后再Options for selected parameter中的popups標簽中編輯可選擇值的列表(但是要注意一個可選擇值必須占單獨的一行)。

9、具體的例子可見圖一。具有popup類型控件變量的值依賴于pop-up list中選中的item和Evaluate是否被選中,具體見下表: 是否選中Evaluatepopup參數(shù)值是被選擇項的索引值,第一項的索引值為1。例如如果選擇了popup框中的第3個選項,則參數(shù)值為3否popup選項框中所選中的字符串,例如若果選中了popup框中的 red 項,則參數(shù)值為 'red' Options for selected parameter允許對Dialog Parameters中選定的參數(shù)設置其他的options。Show parameter:只有選中該項,此參數(shù)才會顯示在已封裝模塊

10、的對話框中。如果不想改參數(shù)出現(xiàn)在對話框中(比如此參數(shù)是由其他參數(shù)設定的),則需要取消該項;Enable parameter:選中該項,參數(shù)可以編輯,否則,參數(shù)將不能由用戶編輯;Popups:只有當Dialog Parameters中選中的參數(shù)是popup類型時,才有此項。此處編輯popup的可能值列表,每行一項;Callback:在此處編輯想讓Simulink在改變參數(shù)時執(zhí)行的matlab代碼(例如一選中某個checkbox,就激活一個edit field)。 注意:在callback中不要試圖改變subsystem中的內容,否則可能在模型update或者simulation時出錯。改變sub

11、system中的內容可以再Initialization中進行。 Initialization 該選項卡的界面如下: 圖四 當打開model時,所有可視的masked模塊的Initialization中的語句執(zhí)行。初始不可視的模塊的Initialization的語句只有在打開包含它們的model或者subsystem時菜執(zhí)行。 當你沒有使用圖示的方法加載模塊進內存時,Initialization語句不會執(zhí)行。 在下面的情況下,模型中所有masked模塊的Initialization語句都執(zhí)行:Update the diagram(不知道這個是個什么情況);Start simulation;Sta

12、rt code generation。 在下面的情況下,單個模塊的Initialization語句會執(zhí)行:使用Mask Editor或者set_param改變mask的任何一個參數(shù)(例如MaskDisplay 和 MaskInitialization );改變masked block的外觀,例如旋轉模塊或改變模塊大??;通過對話框或set_param改變模塊的mask參數(shù)值;在不同的model或同一個model內復制masked block。 在界面的左側有dialog variables的列表,在右側的Initialization commands可以使用雙擊dialog variables中

13、的變量,可以重新編輯變量的名稱。 在Initialization commands中可以使用有效地matlab表達式、matlab函數(shù)、腳本、運算符和dialog variables列表中的變量。這些代碼是在mask workspace中運行的,而不是在base workspace。在語句的末尾加分號(;)可以防止在Command Window中輸出結果。 在界面的下面有一個Allow library block to modify its contents的checkbox。該參數(shù)只有在庫(library,而非model)中subsystem封裝時才有效(圖四中該選項是disable的)。選

14、中該選項允許Initialization commands中的語句增加或刪除subsystem中的內容(模塊等東西),設置參數(shù)。否則,無論用何種方式,當一個masked library block改變其內容時都會報錯。 注意:Initialization commands也有如下限制:不要用initialization command創(chuàng)建其顯示依賴于其他控件設置的mask dialog(例如一選中某個checkbox,就激活一個edit field)。這種功能用callback實現(xiàn); 在initialization commands中的變量不要以L_和M_開頭,以防出現(xiàn)意外結果。由于此種前綴的

15、變量名是內部使用的,所以要保留;Avoid using set_param commands to set parameters of blocks residing in masked subsystems that reside in the masked subsystem being initialized。我覺得就是不要用set_param命令給嵌套在深層的subsystem參數(shù)設置參數(shù)。 Documentation Documentation的界面如下: 圖五l Mask type:出現(xiàn)在對話框的block classification。當出現(xiàn)在對話框時,后面總是有"(m

16、ask)"后綴。該區(qū)域可以輸入任意合法的matlab字符,但不能輸入line break;l Mask description:此處文本出現(xiàn)在對話框中描述模塊功能。這里可以輸入line break(使用enter或return鍵);Mask help:此處的內容將在點擊help按鈕時起作用,可以在其中輸入下面三種內容:URL specification;web或eval命令;文本或者html文本。三者的對應關系如下圖所示: 圖六12.5 子系統(tǒng)及其封裝技術12.5.1 子系統(tǒng)的建立建立子系統(tǒng)有兩種方法:通過Subsystem模塊建立子系統(tǒng)和通過已有的模塊建立子系統(tǒng)。兩者的區(qū)別是:前者

17、先建立子系統(tǒng),再為其添加功能模塊;后者先選擇模塊,再建立子系統(tǒng)。1通過Subsystem模塊建立子系統(tǒng)操作步驟為:(1) 先打開Simulink模塊庫瀏覽器,新建一個仿真模型。(2) 打開Simulink模塊庫中的Ports & Subsystems模塊庫,將Subsystem模塊添加到模型編輯窗口中。(3) 雙擊Subsystem模塊打開一個空白的Subsystem窗口,將要組合的模塊添加到該窗口中,另外還要根據(jù)需要添加輸入模塊和輸出模塊,表示子系統(tǒng)的輸入端口和輸出端口。這樣,一個子系統(tǒng)就建好了。2通過已有的模塊建立子系統(tǒng)操作步驟為:(1) 先選擇要建立子系統(tǒng)的模塊,不包括輸入端口和

18、輸出端口。(2) 選擇模型編輯窗口Edit菜單中的Create Subsystem 命令,這樣,子系統(tǒng)就建好了。在這種情況下,系統(tǒng)會自動把輸入模塊和輸出模塊添加到子系統(tǒng)中,并把原來的模塊變?yōu)樽酉到y(tǒng)的圖標。例12-5 PID控制器是在自動控制中經(jīng)常使用的模塊,試建立PID控制器的模型并建立子系統(tǒng)。步驟如下:(1) 先建立PID控制器的模型。(2) 建立子系統(tǒng)。12.5.2 子系統(tǒng)的條件執(zhí)行1使能子系統(tǒng)建立使能子系統(tǒng)的方法是:打開Simulink模塊庫中的Ports & Subsystems模塊庫,將Enable模塊復制到子系統(tǒng)模型中,則系統(tǒng)的圖標發(fā)生了變化。例12-6 利用使能子系統(tǒng)構成

19、一個正弦半波整流器。操作步驟如下:(1) 打開Simulink模塊庫瀏覽器并新建一個仿真模型。(2) 將Sine Wave、Enabled Subsystem、Scope 3個模塊拖至新打開的模型編輯窗口,連接各模塊并存盤。其中使能信號端接Sine Wave模塊。為了便于比較,除顯示半波整流波形外,還顯示正弦波,故在示波器屬性窗口將Number of axes設置為2。使能子系統(tǒng)建立好后,可對Enable模塊進行參數(shù)設置。(3) 選擇Simulink菜單中的Start命令,就可看到半波整流波形和正弦波形。2觸發(fā)子系統(tǒng)觸發(fā)子系統(tǒng)是指當觸發(fā)事件發(fā)生時開始執(zhí)行子系統(tǒng)。與使能子系統(tǒng)相類似,觸發(fā)子系統(tǒng)的建立要把Ports & Subsystems模塊庫中的Trigger模塊添加到子系統(tǒng)中或直接選擇Triggered Subsystem模塊來建立觸發(fā)子系統(tǒng)。例12-7 利用觸發(fā)子系統(tǒng)將一鋸齒波轉換成方波。操作步驟如下:(1) 用Signal Generator、Triggered Subsystem和Scope

溫馨提示

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

評論

0/150

提交評論