創建自己的模塊庫
一、模塊合成
利用上一篇文章所用到的模塊來實現:
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,可以看到我們添加的模塊:
是不是忽然有點意思了!!