通信系統建模與仿真 筆記3 創建自己的模塊庫

創建自己的模塊庫


一、模塊合成

利用上一篇文章所用到的模塊來實現:

1、啓動simulink

2、選中上圖紅框內的上個模塊,然後ctrl+g


4、simulink自動生成了一個模塊,然後就變成了這樣:


5、可以雙擊Subsystem看到內部的連接圖


模塊合成就這麼簡單:選中基本模塊,然後ctrl+g


二、創建新模塊

創建一個實現這樣功能的模塊:

Output=(input1*input2+input3)*input4-input5

1、啓動simulink

2、新建編輯窗口

3、放入Subsystem模塊


2、雙擊後可以看到這樣一個彈窗:


3、往該窗口放入乘法模塊Product、加法模塊add、加法模塊subtract、以及一些輸入輸出,並按下圖連接

加減乘除模塊都可以在math operations模塊庫中找到、輸入輸出在port & subsystems中


4、回到上一個窗口,調整一下邊框的大小


5、封裝上面的模塊

選中模塊,然後ctrl+m


6、在彈出的窗口中:

Icon選項卡:


比如我在Drawing commands 輸入disp("first"),然後點擊OK,原來的圖標就變成這樣了:


Parameters選項卡:


可以通過添加按鈕,把需要的參數添加進來,然後輸入相關信息:


此時可以點擊一下彈窗右下角的“Apply”,方便後面的操作

Initialization選項卡


初始命令可以輸入 output=(input1*input2+input3)*input4-input5


然後點擊OK。

這時回到之前的窗口,雙擊模型圖,此時不再顯示模塊的內部結構,而是顯示下圖:


選中模型圖,ctrl+m 繼續下一個選項卡 Documentation:

紅框1、2、3可以隨便輸入一些信息,比如123456789等:


然後點擊OK,在回去雙擊模型圖,可以看到:


也可以認真一點輸入信息啦:



到此爲止,我們已經完整地創建了一個自己的模塊,但是...不能保存,保存的時候會報錯:


原因是使用中文,導致編碼錯誤,無法保存,之後我嘗試了很多種方法,都沒有解決這個問題,要麼是可以保存,但是中文亂碼,要麼就是可以顯示中文,但是不能保存,無奈只好把中文全刪了!


三、使用自定義模塊

1、實際上使用很簡單,在simulink窗口上ctrl+n  新建一個模型文件

2、然後把創建的模塊直接拖入新的窗口就可以了


3、驗證一下結果:



4、爲了方便以後使用,我們把這個first模塊添加到simulink的模塊瀏覽器中

4.1首先新建的是庫文件,注意是庫文件不是模型文件


4.2然後拖入"first"模型,並保存爲“first_lib.mdl”


4.3需要編寫一個slblocks,m文件

在matlab窗口新建一個m文件,輸入以下代碼:

function blkStruct = slblocks 
blkStruct.Name = ['My Library'];   % 模塊庫的顯示名稱  
blkStruct.OpenFcn = 'first_lib';   %自定義的模塊庫名稱  


將其保存爲slblocks,m,同時把該slblocks,m文件保存在與"first_lib.mdl"文件同一個文件夾中:


4.4最後還有一步:添加路徑

在matlab窗口中,File->Set Path->Add Folder,把包含first_lib和slblocks文件的文件夾添加進去:



點擊“save”保存,然後關閉窗口

4.5最後重啓matlab,啓動simulink,可以看到我們添加的模塊:



是不是忽然有點意思了!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章