MATLAB2015a中Simulink使用S函数的方法全过程
? ? ? ?S函數(shù)即系統(tǒng)函數(shù)System Function的意思,在研究中,有時(shí)需要用到復(fù)雜的算法設(shè)計(jì)等,而這些算法因?yàn)槠鋸?fù)雜性不適合用普通的Simulink模塊來(lái)搭建,即matlab所提供的Simulink模塊不能滿足用戶的需求,需要用編程的形式設(shè)計(jì)出S函數(shù)模塊,將其嵌入到系統(tǒng)中。如果恰當(dāng)?shù)厥褂肧函數(shù),理論上,可以在Simulink下對(duì)任意復(fù)雜的系統(tǒng)進(jìn)行仿真。
作者以為MATLAB2015a為例講解下S函數(shù)使用過(guò)程中的一些小技巧。
第一步:在主窗口中輸入sfundemos,或者點(diǎn)擊Simulink->User-Defined Functions->S-Function Examples,即可出現(xiàn)如圖1所示的界面,用紅色框圈出來(lái)的部分就是S函數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1 S函數(shù)庫(kù)
第二步:在MATLAB主窗口下建立一個(gè)Simulink形式的.slx文件,起名為robot.slx
第三步:Matlab為了用戶使用方便,有一個(gè)S函數(shù)的模板sfuntmpl.m,一般來(lái)說(shuō),我們僅需要在sfuntmpl.m的基礎(chǔ)上進(jìn)行修改即可。在MATLAB命令行中輸入edit sfuntmpl?即可出現(xiàn)模板函數(shù)的內(nèi)容,模板內(nèi)容如下所示
把sfuntmpl?文件和之前建立好的robot.slx放在一個(gè)路徑之下,sfuntmpl?文件重命名為?ctrlmpl.m,然后回到robot.slx框圖中,把Simulink->User-Defined Functions->S-Function Examples拖入進(jìn)框圖里面,如下圖
第三步:雙擊S-Function出現(xiàn)如下界面,切記把S-function name 的名稱改為和之前建立好的sfuntmpl?文件名字一致為ctrlmpl,這是最關(guān)鍵的一步,保證了在仿真的時(shí)候,robot.slx文件可以關(guān)聯(lián)到S函數(shù)ctrlmpl.m
?
第四步:搭建整體框圖如下,進(jìn)行機(jī)器人軌跡跟蹤仿真
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?robot.slx文件中的整體框圖仿真
?
仿真結(jié)果如下圖
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?機(jī)器人位置和速度跟蹤軌跡
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 控制輸入
總結(jié)
以上是生活随笔為你收集整理的MATLAB2015a中Simulink使用S函数的方法全过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 企业内容管理-互联网应用
- 下一篇: webpack之DefinePlugin