MATLAB2015a中Simulink使用S函式的方法全過程
S函式即系統函式System Function的意思,在研究中,有時需要用到複雜的演算法設計等,而這些演算法因為其複雜性不適合用普通的Simulink模組來搭建,即matlab所提供的Simulink模組不能滿足使用者的需求,需要用程式設計的形式設計出S函式模組,將其嵌入到系統中。如果恰當地使用S函式,理論上,可以在Simulink下對任意複雜的系統進行模擬。
作者以為MATLAB2015a為例講解下S函式使用過程中的一些小技巧。
第一步:在主視窗中輸入sfundemos,或者點選Simulink->User-Defined Functions->S-Function Examples,即可出現如圖1所示的介面,用紅色框圈出來的部分就是S函式
圖1 S函式庫
第二步:在MATLAB主視窗下建立一個Simulink形式的.slx檔案,起名為robot.slx
第三步:Matlab為了使用者使用方便,有一個S函式的模板sfuntmpl.m,一般來說,我們僅需要在sfuntmpl.m的基礎上進行修改即可。在MATLAB命令列中輸入edit sfuntmpl 即可出現模板函式的內容,模板內容如下所示
把sfuntmpl
第三步:雙擊S-Function出現如下介面,切記把S-function name 的名稱改為和之前建立好的sfuntmpl 檔名字一致為ctrlmpl,這是最關鍵的一步,保證了在模擬的時候,robot.slx檔案可以關聯到S函式ctrlmpl.m
第四步:搭建整體框圖如下,進行機器人軌跡跟蹤模擬
robot.slx檔案中的整體框圖模擬
模擬結果如下圖
機器人位置和速度跟蹤軌跡
控制輸入