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分。
展开
 我来答
tianxiawulang
推荐于2017-10-04 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2581万
展开全部
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)就可以了。
流星flying
2013-06-16 · TA获得超过9172个赞
知道大有可为答主
回答量:1337
采纳率:100%
帮助的人:1188万
展开全部
干嘛一定要用S函数?你这两个公式只需要调用output函数就完了,所以用普通的matlab function就可以了,简单实用。低通滤波器也有很多模块供你选择,简单的比如一阶的,复杂的一般在通信库里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式