MATLAB出错M函数如下% 编写异步发电机dqo坐标下的局部数学模型M—函数% 将该M—函数定义为asy_ge,其中x为电流(id1,iq1,id2,iq2)的一阶导数,y=(id1,iq1,id2,iq2,ud1,uq1,w)function x=asy_ge(y)% 下面输入电机基本

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/26 17:26:35
MATLAB出错M函数如下%编写异步发电机dqo坐标下的局部数学模型M—函数%将该M—函数定义为asy_ge,其中x为电流(id1,iq1,id2,iq2)的一阶导数,y=(id1,iq1,id2,i

MATLAB出错M函数如下% 编写异步发电机dqo坐标下的局部数学模型M—函数% 将该M—函数定义为asy_ge,其中x为电流(id1,iq1,id2,iq2)的一阶导数,y=(id1,iq1,id2,iq2,ud1,uq1,w)function x=asy_ge(y)% 下面输入电机基本
MATLAB出错
M函数如下
% 编写异步发电机dqo坐标下的局部数学模型M—函数
% 将该M—函数定义为asy_ge,其中x为电流(id1,iq1,id2,iq2)的一阶导数,y=(id1,iq1,id2,iq2,ud1,uq1,w)
function x=asy_ge(y)
% 下面输入电机基本数据:
LR0=0.0013;LS0=0.0014;RR=0.146;RS=0.144;
% 下面计算互感LM与激磁电流之间的关系(考虑磁路饱和作用):
mm=((y(1)+y(3))^2+(y(2)+y(4))^2)^.5
LM=(0.2209268+0.1829319*mm-0.1096410*mm^2+0.0257472*mm^3-0.0028836*mm^4);
LR=LM+LR0;LS=LM+LS0;
%下面计算系数矩阵A和B
A=1/(LS*LR-LM^2)*[-RS*LR,y(7)*LM^2,RR*LM,y(7)*LM*LR;
-y(7)*LM^2,-RS*LR,-y(7)*LM*LR,RR*LM;
RS*LM,-y(7)*LM*LS,-RR*LS,-y(7)*LS*LR;
y(7)*LM*LS,RS*LM,y(7)*LS*LR,-RR*LS];
B=1/(LS*LR-LM^2)*[LR,0;0,LR;-LM,0;0,-LM];
%下面计算x与y之间关系
x=[(A*[y(1);y(2);y(3);y(4)]+B*[y(5);y(6)])];
运行后报错:
Input argument "y" is undefined.
Error in ==> asy_ge at 7
mm=((y(1)+y(3))^2+(y(2)+y(4))^2)^.5
不知什么原因
是在editor里按F5单独运行 asy_ge 函数时报错  ? Input argument "y" is undefined.
Error in ==> asy_ge at 7
mm=((y(1)+y(3))^2+(y(2)+y(4))^2)^.5
不是仿真时报 不知什么原因

MATLAB出错M函数如下% 编写异步发电机dqo坐标下的局部数学模型M—函数% 将该M—函数定义为asy_ge,其中x为电流(id1,iq1,id2,iq2)的一阶导数,y=(id1,iq1,id2,iq2,ud1,uq1,w)function x=asy_ge(y)% 下面输入电机基本
你调用函数asy_ge的时候忘记加上参数了吧?把调用的那一行也贴上来看看就知道了.
按F5单独运行一个有参数的函数是错误的做法,因为此时你的参数全都属于未定义状态,没有值.正确的做法是在命令窗口输入命令给y赋值,然后再输入asy_ge(y)运行.