1、據我所知,S函式好像不支援多輸入多輸出,要實現多輸入多輸出,需要在輸入端把需要的訊號合併為向量,然後在輸出端把向量訊號再給分解開成為多個輸出。這樣的話,你不僅需要一個S函式,還需要在S-Function模組的前後分別加上Mux和Demux模組。
2、從你的方程看,似乎並沒有使用S函式的必要,建議的做法有這樣幾種:
(1)使用MATLAB Fcn 模組(R2011a之後改名為Interpreted MATLAB Function)。優點是使用比較簡單,而且理論上可以使用任何MATLAB函式。
(2)直接使用Simulink的基本模組搭建(例如Fcn);
(3)用 Embedded MATLAB Function模組(R2011a之後改名為MATLAB Function)。該模組的好處是支援多輸入多輸出,還可以進行程式碼生成,但對於語法限制比較嚴格。
除非有要求必須使用S函式,否則上面任何一種做法都更可取。你考慮一下,等決定使用哪種方式實現了,我再幫你做(其實你完全可以自己試一試)。
3、低通濾波器應該使用1/(Ts+1)就可以了。
1、據我所知,S函式好像不支援多輸入多輸出,要實現多輸入多輸出,需要在輸入端把需要的訊號合併為向量,然後在輸出端把向量訊號再給分解開成為多個輸出。這樣的話,你不僅需要一個S函式,還需要在S-Function模組的前後分別加上Mux和Demux模組。
2、從你的方程看,似乎並沒有使用S函式的必要,建議的做法有這樣幾種:
(1)使用MATLAB Fcn 模組(R2011a之後改名為Interpreted MATLAB Function)。優點是使用比較簡單,而且理論上可以使用任何MATLAB函式。
(2)直接使用Simulink的基本模組搭建(例如Fcn);
(3)用 Embedded MATLAB Function模組(R2011a之後改名為MATLAB Function)。該模組的好處是支援多輸入多輸出,還可以進行程式碼生成,但對於語法限制比較嚴格。
除非有要求必須使用S函式,否則上面任何一種做法都更可取。你考慮一下,等決定使用哪種方式實現了,我再幫你做(其實你完全可以自己試一試)。
3、低通濾波器應該使用1/(Ts+1)就可以了。