您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页怎样在matlabfunction模块中实现多输入

怎样在matlabfunction模块中实现多输入

来源:华佗小知识
怎样在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);

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务