怎样在matlab function模块中实现多输入

小弟在simulink仿真的时候需要调用自己编写的m函数。于是用matlabfunction模块,但是我的M函数有多个输入,貌似matlabfunction模块只单输入。... 小弟在simulink仿真的时候需要调用自己编写的m函数。于是用matlab function模块,但是我的M函数有多个输入,貌似matlab function模块只单输入。请教各位怎么在matlab function模块实现以下算式,从而实现输出三相电压:左边算式,右边模块;
你好,我的matlab function前后结构是这样的。那这个matlab function模块里面的程序要怎么写呢,谢谢。
我写的是这样:
function y=fcn(u)
y=[y1 y2 y3]
u=[ua ub uc]
y1=x(2)*cos(x(1));
y2=x(2)*cos(x(1)-2*pi/3));
y3=x(2)*cos(x(1)+2*pi/3));
y=u;
结果还是不正确啊。求解答,谢谢;
展开
 我来答
很多游戏
高粉答主

2019-12-02 · 游戏精通者,攻略技能点满
很多游戏
采纳数:91 获赞数:387000

向TA提问 私信TA
展开全部

1、打开matlab,新建一个空白的simulinik模型。

2、打开simulink的元件库,如图中红圈所示。

3、在搜索栏输入“matlab function”,开始搜索,就可以在右边找到对应的模块。

4、第一个和最后一个是一样的。选中后按住鼠标左键不放,拖到空白的simulink界面中。

5、为了示例使用方法,编一个加法器的功能。把两个正弦波发生器,一个示波器用同样的方法拖到界面中来。

6、双机matlab function模块,打开编辑代码的界面。

7、默认的函数名称是fcn,输入量是u,输出量是y,都可以按照需要修改名称。这里把函数名称改成fcn_add。

8、重新定义输入量,因为有两个输入口,所以在声明函数时,分别命名为source_1和source_2,

9、保存以后回到simulink界面,可以发现,之前只有一个输入端的matlab function模块现在有两个输入端了。

10、按照对应的端口连接这些模块。设置两个正弦波发生器的参数,一个设置成幅值为1,频率为1HZ,另外一个是幅值为1,频率为2HZ。双击波形发生器就可以设置参数了。

11、准备仿真,仿真按钮就是上面的播放键。

12、然后等仿真结束后,双击scope示波器查看结果。可以发现这个matlab function模块已经实现了加法器的作用。

tianxiawulang
推荐于2017-09-19 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2649万
展开全部

代码写的很乱:

1、开始的时候y1、y2、y3都还没赋值,直接就 y=[y1 y2 y3] 肯定会出错。

2、同样,ua、ub、uc也没有赋值就用了。而且u作为输入参数传进来,对u赋值就把输入给覆盖了。

3、变量x(1)、x(2)哪里来的?

 

按照你现在的模块,可以把代码改成:

function y = fcn(x)
y1=x(2)*cos(x(1));
y2=x(2)*cos(x(1)-2*pi/3);
y3=x(2)*cos(x(1)+2*pi/3);
y=[y1 y2 y3];

不过,实现这样的功能似乎没有使用MATLAB Function模块(早期版本里叫Embedded MATLAB Function)的必要,直接用Interpreted MATLAB Function就可以了(早期版本里叫MATLAB Fcn)。

 

如果用MATLAB Function模块,可以利用其支持多输入多输出的特点,把函数改成:

function [y1,y2,y3] = fcn(x1,x2)
y1=x2*cos(x1);
y2=x2*cos(x1-2*pi/3);
y3=x2*cos(x1+2*pi/3);

下面的方框图示意了两种函数写法对应的模块(模型已作为附件上传)。

 

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-06-04
展开全部
fcn(ua,ub,uc)就是三个输入的
追问
你好,我把问题补充了一下,麻烦在帮忙解答一下,谢谢;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式