matlabsimulink子系統(tǒng)的封裝_第1頁
matlabsimulink子系統(tǒng)的封裝_第2頁
matlabsimulink子系統(tǒng)的封裝_第3頁
matlabsimulink子系統(tǒng)的封裝_第4頁
matlabsimulink子系統(tǒng)的封裝_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(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中共有如下四個選項頁:Icon&Port ,主要是對子系統(tǒng)的外觀圖標進行

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

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

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

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

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

7、擇; popup允許用戶在一系列的可能值之中做出選擇。ParamebersFrequency:r Show label .圖三Edit controlCheck box controlPop-up tontroledit類型的參數(shù)的值依賴于Evaluate的選擇,具體關系如下表:Evaluate是否選中Edit控件參數(shù)值是輸入表達式做evaluation后的結果,否輸入內容的文本字符串舉個例子:假如輸入是2*5,則若選中Evaluate,參數(shù)值為2X5=10;若為選中Evaluate ,則 參數(shù)值為字符串"2*5"。是否選中Evaluate是否選中check boxChec

8、k box參數(shù)值是1否0*是'on'否'offcheckbox類型參數(shù)的值依賴于Evaluate的選擇,具體關系如下表:然而help文檔中的表是這樣的,我感到是錯誤的Evaluation Check Box Parameter StateOnSelectedCheck Box Parameter ValueCleared'on'OffSelected0Cleared'offpopup控件允許用戶從一組可能的值中做出選擇。可選擇的可能值列表需要用戶在DialogParameters中選中該參數(shù),然后再 Options for selected pa

9、rameter中的popups標簽中編輯可選 擇值的列表(但是要注意一個可選擇值必須占單獨的一行)。具體的例子可見圖一。具有popup類型控件變量的值依賴于pop-up list中選中的item和Evaluate是否被選中,具體見下表:是否選中Evaluatepopup參數(shù)值是被選擇項的索引值,第一項的索引值為1。例如如果選擇了 popup框中的第3個選項,則參數(shù)值為3否popup選項框中所選中的字符串,例如若果選中了 popup框中的red項,則參數(shù)值為'red'Options for selected parameter 允許對 Dialog Parameters 中選定的

10、參數(shù)設置其他的options。Show parameter:只有選中該項,此參數(shù)才會顯示在已封裝模塊的對話框中。如果不想改參 數(shù)出現(xiàn)在對話框中(比如此參數(shù)是由其他參數(shù)設定的),則需要取消該項;Enable parameter-:選中該項,參數(shù)可以編輯,否則,參數(shù)將不能由用戶編輯;Popups:只有當Dialog Parameters中選中的參數(shù)是 popup類型時,才有此項。此處編輯 popup 的可能值列表,每行一項;Callback :在此處編輯想讓Simulink在改變參數(shù)時執(zhí)行的matlab代碼(例如一選中某個checkbox,就激活一個 edit field )。注意:在callba

11、ck中不要試圖改變 subsystem中的內容,否則可能在模型 update或者simulation 時出錯。改變subsystem中的內容可以再 Initialization中進行。Initialization該選項卡的界面如下:Initialization中的語句執(zhí)行。初始不可視的 model或者subsystem時菜執(zhí)行。Initialization語句不會執(zhí)行。Initialization 語句都執(zhí)行:圖四當打開model時,所有可視的masked模塊的模塊的Initialization的語句只有在打開包含它們的當你沒有使用圖示的方法加載模塊進內存時,在下面的情況下,模型中所有mask

12、ed模塊的Update the diagram (不知道這個是個什么情況)Start simulation ;Start code generation。在下面的情況下,單個模塊的 Initialization語句會執(zhí)行:使用 Mask Editor或者 set_param 改變 mask的任何一個參數(shù)(例如 MaskDisplay 和MaskInitialization );改變masked block的外觀,例如旋轉模塊或改變模塊大小;通過對話框或set_param改變模塊的 mask參數(shù)值;model 內復制 masked block。在不同的model或同一個在界面的左側有dialog

13、dialog variables 中的變量,variables的列表,在右側的Initialization commands可以使用雙擊可以重新編輯變量的名稱。在Initialization commands中可以使用有效地 matlab表達式、matlab函數(shù)、腳本、運算符和 dialog variables列表中的變量。這些代碼是在mask workspace中運行的,而不是在baseworkspace。在語句的末尾加分號(;)可以防止在 Command Window中輸出結果。在界面的下面有一個Allow library block to modify its contents 的che

14、ckbox o該參數(shù)只有在庫(library,而非 model)中subsystem封裝時才有效(圖四中該選項是 disable的)。選中該選 項允許Initialization commands中的語句增加或刪除 subsystem中的內容(模塊等東西),設 置參數(shù)。否則,無論用何種方式,當一個 masked library block改變其內容時都會報錯。注意:Initialization commands 也有如下限制:不要用initialization command創(chuàng)建其顯示依賴于其他控件設置的mask dialog (例如一選中某個checkbox,就激活一個 edit field

15、 )。這種功能用 callback實現(xiàn);在initialization commands中的變量不要以L_和M_開頭,以防出現(xiàn)意外結果。由于此種前綴的變量名是內部使用的,所以要保留;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ù)。DocumentationDocument

16、ation的界面如下:圖五Mask type :出現(xiàn)在對話框的 block classification。當出現(xiàn)在對話框時,后面總是有"(mask)" 后綴。該區(qū)域可以輸入任意合法的matlab字符,但不能輸入line break ;Mask description :此處文本出現(xiàn)在對話框中描述模塊功能。這里可以輸入line break (使用 enter 或 return 鍵);Mask help :此處的內容將在點擊help按鈕時起作用,可以在其中輸入下面三種內容:URL specification ;web或eval命令;文本或者html文本。三者的對應關系如下圖所示

17、:圖六12.5子系統(tǒng)及其封裝技術12.5.1子系統(tǒng)的建立建立子系統(tǒng)有兩種方法:通過 Subsystem模塊建立子系統(tǒng)和通過已有的模塊建立子系統(tǒng)。兩者的區(qū)別是:前者先建立子系統(tǒng),再為其添加功能模塊;后者先選擇模塊,再建立子系統(tǒng)。1 .通過Subsystem模塊建立子系統(tǒng)操作步驟為:(1) 先打開Simulink模塊庫瀏覽器,新建一個仿真模型。(2) 打開Simulink模塊庫中的Ports & Subsystems 模塊庫,將Subsystem 模塊添加到模型編輯窗口中。加到該窗口中,另外還要根據(jù)需要添加輸入模塊和輸出模塊,表示子系統(tǒng)的輸入端口和輸出端口。這樣,一個子系統(tǒng)就建好了。2 .

18、通過已有的模塊建立子系統(tǒng)操作步驟為:(1)先選擇要建立子系統(tǒng)的模塊,不包括輸入端口和輸出端口。 選擇模型編輯窗口 Edit菜單中的Create Subsystem 命令,這樣,子系統(tǒng)就建好了。在這種情況下,系統(tǒng)會自動把輸入模塊和輸出模塊添加到子系統(tǒng)中,并把原來的模塊變?yōu)樽酉到y(tǒng)的圖標。例12-5 PID控制器是在自動控制中經常使用的模塊,試建立 PID控制器的模型并建立子系統(tǒng)。步驟如下:(1) 先建立PID控制器的模型。(2) 建立子系統(tǒng)。12.5.2子系統(tǒng)的條件執(zhí)行1.使能子系統(tǒng)建立使能子系統(tǒng)的方法是: 打開Simulink模塊庫中的Ports & Subsystems模塊庫,將Ena

19、ble模塊復制到子系統(tǒng)模型中,則系統(tǒng)的圖標發(fā)生了變化。例12-6利用使能子系統(tǒng)構成一個正弦半波整流器。操作步驟如下:(1)打開Simulink模塊庫瀏覽器并新建一個仿真模型。(2)將Sine Wave、Enabled Subsystem、Scope 3個模塊拖至新打開的模型編輯窗口,連接各模塊并存盤。其中使能信號端接Sine Wave 模塊。為了便于比較,除顯示半波整流波形外,還顯示正弦波,故在示波器屆性窗口將 Number of axes 設置為 2。使能子系統(tǒng)建立好后,可對 Enable模塊進行參數(shù)設置。 選擇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 模塊構成子系統(tǒng)。 選擇Simulink菜單中的Start命令,就可看到波形。3. 使能加觸發(fā)子系統(tǒng)所謂使能加觸發(fā)子系統(tǒng)就是把 Enable和Tirgger模塊都加到子系統(tǒng)中,使

溫馨提示

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

評論

0/150

提交評論