Simulink求一个多输入多输出的S函数
RT,输入为ia,ib,f,输出为Is,Iscos。各部分关系如下:Is=(1/3(ia+2ib)^2+ia^2)^0.5Iscos=2/3(ia*cosf+ib*cos...
RT,输入为ia,ib,f,输出为Is,Iscos。各部分关系如下:
Is=(1/3(ia+2ib)^2+ia^2)^0.5
Iscos= 2/3(ia*cosf+ib*cos(f-2π/3)-(ia+ib)*cos(f+2π/3))
如果能在俩输出端各追加一个截止频率100HZ的低通滤波器就更好了,那样的话我追加100分。 展开
Is=(1/3(ia+2ib)^2+ia^2)^0.5
Iscos= 2/3(ia*cosf+ib*cos(f-2π/3)-(ia+ib)*cos(f+2π/3))
如果能在俩输出端各追加一个截止频率100HZ的低通滤波器就更好了,那样的话我追加100分。 展开
2个回答
展开全部
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)就可以了。
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)就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询