1. 程式人生 > >MATLAB2015a中Simulink使用S函式的方法全過程

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 

檔案和之前建立好的robot.slx放在一個路徑之下,sfuntmpl 檔案重新命名為 ctrlmpl.m,然後回到robot.slx框圖中,把Simulink->User-Defined Functions->S-Function Examples拖入進框圖裡面,如下圖

第三步:雙擊S-Function出現如下介面,切記把S-function name 的名稱改為和之前建立好的sfuntmpl 檔名字一致為ctrlmpl,這是最關鍵的一步,保證了在模擬的時候,robot.slx檔案可以關聯到S函式ctrlmpl.m

第四步:搭建整體框圖如下,進行機器人軌跡跟蹤模擬

                                                                       robot.slx檔案中的整體框圖模擬

模擬結果如下圖

                         

                                                           機器人位置和速度跟蹤軌跡

                                     

                                                                                            控制輸入