官术网_书友最值得收藏!

2.2 子系統的制作與封裝

實際建模過程中,常常會遇到一些難以在一張模型圖中畫出來的較為復雜系統。這時候就需要將大系統中的一些具有獨立功能的部分封裝起來,形成一些所謂的子系統,然后再利用這些子系統來構成整個系統。

1.子系統的制作

Simulink提供了兩種構建系統的方法,一種是使用Simulink/Ports&Subsystems庫中的“Subsystem”模塊,另一種是使用快捷菜單命令“CreateSubsystem”。比較方便的是

快捷命令法,其方法如圖2 29所示。圖2 29(a)中虛線框表示的便是待要制作成子系統的模塊集合。用鼠標框選這個模塊集合,如圖2 29(b)使用右鍵打開快捷菜單并選用

“CreateSubsystem”命令,框選中的模塊集合便會被制作成圖2 29(c)所示的樣子,這

就是子系統。如果需要對子系統的內容進行修改,再雙擊子系統圖標即可打開它,修改完畢后關掉窗口即可。

圖229 子系統的制作

2.子系統的封裝

通過上面圖229所示的例子可以看到,通過系統分層和建立子系統可以相當方便地構建大型復雜系統,并且這些子系統還可以反復利用。然而,上例中子系統模型還存在一些缺點:修改內部模塊參數不方便,需要打開子系統找到對應的模塊后再行修改。為此,Simulink提供了所謂的模塊封裝技術。對子系統封裝以后的模塊與Simulink模塊庫所提供的模塊一樣,子系統模塊內部的參數可以顯示于一個對話框,并可在這個對話框中對顯示的參數進行輸入和修改。

封裝一個子系統也相當簡單,選中該子系統圖標,選擇“Edit|MaskSubsystem”菜單命令,然后在所彈出的對話框中對封裝進行設計即可。

例如上述圖2 29,假如子系統中三角波模塊設置如圖2 30(a)所示,現欲將其設置成圖2 30(b)所示的樣子,目的是想將來用戶雙擊子系統模塊圖標時能打開一個參數設置對話框,然后由用戶在那個對話框中對三角波的參數賦予實際值。

圖230 三角波參數的設置

為了達到上述目的,就要使用Simulink的封裝機制。

首先,如圖231所示,先選中待封裝子系統,用鼠標右鍵打開快捷菜單,在菜單中

選用“MaskSubsystem”命令,然后在隨后打開的,如圖2 31(b)所示的封裝設計對

話框中選擇“Parameters”選項卡,按下參數插入按鈕,就可以在參數表中定義參數了。參數定義無誤后,確認即可。

圖231 子系統的封裝

一個功能模塊集封裝成子系統后,再用鼠標雙擊它,打開的就不再是子系統的內容欄,而只是允許用戶修改的一個參數設置對話框,如圖2 32(a)所示。這就是封裝的含義和意義。如果用戶還需要觀察和修改內部模塊結構,那么就使用快捷菜單中的命令

“LookUnderMask”來打開它,如圖2 32(b)所示。

圖232 封裝后的子系統

至于封裝的其他功能和選項請讀者自行參閱其他更詳細的 Matlab使用說明。同時,Simulink允許構造多層子系統,在子系統中還包含若干下層子系統。

主站蜘蛛池模板: 淮南市| 安陆市| 信阳市| 聊城市| 栖霞市| 土默特左旗| 农安县| 股票| 甘德县| 仁怀市| 郎溪县| 扶风县| 东兴市| 金华市| 麻栗坡县| 泌阳县| 崇明县| 大英县| 宁化县| 通山县| 日喀则市| 岱山县| 奉新县| 罗江县| 隆子县| 东城区| 康平县| 衡东县| 刚察县| 山西省| 将乐县| 井冈山市| 布拖县| 红原县| 云霄县| 沁阳市| 双峰县| 剑阁县| 蒙山县| 垦利县| 根河市|