其實(shí)也就是使用 Simulink 庫(kù)里相應(yīng)的模塊,以及使用 Stateflow 流程圖向?qū)АT谶@一篇,我們介紹使用MATLAB Function的方式。
其實(shí),如果想在 Simulink 里嵌套使用 m 腳本來(lái)實(shí)現(xiàn)某些復(fù)雜的數(shù)學(xué)運(yùn)算,用 MATLAB Function 也是一種很方便的途徑。
點(diǎn)擊末尾的 “閱讀原文” 下載本文的案例模型
循環(huán)邏輯
要得到:
y1 = 0;
for(inx = 0; inx <10; inx++)
{
y1 = u1[inx] + y1;
}
或者
while(flag && (num_iter <= 100)
{
flag = func ();
num_iter ++;
}
怎么做:
MATLAB Function 模塊可以直接寫(xiě)相應(yīng)的 m 腳本。
For循環(huán)
1. 簡(jiǎn)單模型
直接把循環(huán)的腳本寫(xiě)進(jìn)去就行了:
得到代碼:
2. 調(diào)用外部函數(shù)
當(dāng) m 腳本里,如果有些運(yùn)算需要調(diào)用到外部已有的 Simulink 函數(shù)時(shí),跟 Stateflow 一樣,也可以使用 function call 的形式。如下圖,在 MATLAB Function 的數(shù)據(jù)管理界面上,將 func 設(shè)置為 function call 類(lèi)型:
MATLAB Function 內(nèi)部運(yùn)行到 func; 這一句時(shí),觸發(fā)調(diào)用外部的 Trigger 子系統(tǒng) func 計(jì)算輸出,從而更新 func_flag 的值:
生成的代碼如圖,這里做了模型配置把所有代碼注釋都去掉了:
-
循環(huán)
+關(guān)注
關(guān)注
0文章
92瀏覽量
15957 -
運(yùn)算
+關(guān)注
關(guān)注
0文章
130瀏覽量
25778 -
腳本
+關(guān)注
關(guān)注
1文章
387瀏覽量
14833
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論