怎样在matlabfunction模块中实现多输⼊
问:怎样在matlab function 模块中实现多输⼊
⼩弟在simulink 仿真的时候需要调⽤⾃⼰编写的m 函数。于是⽤matlab function 模块,但是我的M 函数有多个输⼊,貌似matlab function 模块只单输⼊。请教各位怎么在matlab function 模块实现以下算式,从⽽实现输出三相电压:左边算式,右边模块;
你好,我的matlab function 前后结构是这样的。那这个matlab function 模块⾥⾯的程序要怎么写呢,谢谢。我写的是这样:function y=fcn(u)y=[y1 y2 y3]u=[uaubuc]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;
结果还是不正确啊。求解答,谢谢;答:代码写的很乱:1、开始的时候y1、y2、y3
都还没赋值,直接就y=[y1 y2 y3] 肯定会出错。
2、同样,ua 、ub 、uc 也没有赋值就⽤了。⽽且u 作为输⼊参数传进来,对u 赋值就把输⼊给覆盖了。3、变量x(1)、x(2)哪⾥来的?
按照你现在的模块,可以把代码改成:1234
5 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模块,可以利⽤其⽀持多输⼊多输出的特点,把函数改成:1234
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);
下⾯的⽅框图⽰意了两种函数写法对应的模块(模型已作为附件上传)。