日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

记录MATLAB的s函数的使用(一)

發(fā)布時(shí)間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记录MATLAB的s函数的使用(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近要用simulink做仿真,需要用S函數(shù),因此記錄一下,防止以后再用找不到資料。

第一步:新建simulink模型

主頁(yè)面點(diǎn)擊新建->Simulink Model新建一個(gè)Simulink模型。

進(jìn)入之后點(diǎn)擊Blank Model建立一個(gè)空白模型。

?這時(shí)候按住ctrl+S保存一下,會(huì)彈出一個(gè)選擇保存路徑和起一個(gè)文件名字的彈框,我這里選擇是MATLAB->bin里面新建了一個(gè)文件夾保存,這樣模型就建立完成了。

第二步:加入s函數(shù)塊

?點(diǎn)擊simulink library打開simulink的塊倉(cāng)庫(kù),在Simulink->User-Defined Functions里面找到下圖中4,也就是S-Function塊,點(diǎn)擊拖到simulink里面。這里直接搜s函數(shù)會(huì)出現(xiàn)其他不相干的函數(shù),直接按這個(gè)路徑找就可以。

?拖入之后就可以進(jìn)行下一步了。

第二步:s函數(shù)m文件的建立

回到命令行窗口,Ctrl+N新建一個(gè)腳本,Ctrl+S保存一下,名字就是要編寫的S函數(shù)的名字。

保存到和第一步一樣的文件路徑里面。

鍵入:edit sfuntmpl,打開s函數(shù)例程,選擇全部,復(fù)制粘貼到剛剛建立的腳本m文件里面,然后作為自己的s函數(shù)的m文件。(鍵入sfundemos會(huì)打開s函數(shù)的塊例程,目前不知道什么用處。)

復(fù)制完之后刪掉注釋,就變成下面的樣子。

第三步:s函數(shù)的編寫

建立完之后開始進(jìn)行s函數(shù)的編寫,s函數(shù)按照官方描述是可以實(shí)現(xiàn)任意復(fù)雜系統(tǒng)的編寫的,我這里水平有限,先試一下簡(jiǎn)單的函數(shù)。

y=5*x1+3*x2;

要實(shí)現(xiàn)上面這個(gè)函數(shù),可以看到有兩個(gè)輸入x1,x2,一個(gè)輸出y,因此在初始化函數(shù)里面設(shè)置sizes.NumInputs為 2,sizes.NumOutputs為 1,另外還要注意sizes.DirFeedthrough也要設(shè)置,這個(gè)根據(jù)輸出里面有沒(méi)有輸入出現(xiàn)來(lái)設(shè)置的,若輸出的表達(dá)式里面有輸入,則設(shè)置為1,否則設(shè)置為0。其他為默認(rèn)。

function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes sizes = simsizes;sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs = 1; sizes.NumInputs = 2; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; % at least one sample time is neededsys = simsizes(sizes); x0 = []; str = []; ts = [0 0]; simStateCompliance = 'UnknownSimState';

?設(shè)置完初始化函數(shù)之后,設(shè)置輸出函數(shù),輸出函數(shù)的函數(shù)參數(shù)為t,x,u,這里只使用u,按照上面式子直接寫下來(lái)。保存函數(shù)。

function sys=mdlOutputs(t,x,u) x1 = u(1); x2 = u(2); y = 5*x1+3*x2; sys = [y];

第四步:s函數(shù)的塊關(guān)聯(lián)

打開simulink界面,點(diǎn)擊s函數(shù)塊,在s函數(shù)的函數(shù)名處填剛剛建立的函數(shù)的名字,點(diǎn)擊OK。

下面來(lái)進(jìn)行驗(yàn)證一下。搭建如下模型,step的幅值都設(shè)為1,時(shí)間分別設(shè)為0.5和1。

可以看到,滿足y=5*x1+3*x2。

?

?

?

總結(jié)

以上是生活随笔為你收集整理的记录MATLAB的s函数的使用(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。