作业帮 > 综合 > 作业

使用matlab求解微分方程出现错误,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 14:54:18
使用matlab求解微分方程出现错误,
我的程序如下
clear;
clc;
R1=10;
Lq=14.3;
Ld=14.2;
psir=0.033;
np=1.0;
beta=0.0159;
uq=0;
TL=0;
J=4.65*10^(-5);
PMSM=inline('[(ud-R1*y(1)+y(3)*Lq*y(2))/Ld;(uq-R1*y(2)-y(3)*Ld*y(1)-y(3)*psir)/Lq;(np*psir*y(2)+np*(Ld-Lq)*y(1)*y(2)-TL-beta*y(3))/J]','t','y','flag','ud');
N=1000;
volt=randn(1,N); %input ud
init=[1 1 1];
y=zeros(1,N);
tsp=[0 10];
for i=1:N
ud=volt(i);
[t,I]=ode45(PMSM,tsp,init,[],ud);
y(i)=I(i,1);
end
y
运行之后总是出现如下错误提示:
Error using ==> inline.feval at 23
Not enough inputs to inline function.
Error in ==> odearguments at 110
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to
yp0.
Error in ==> ode45 at 173
[neq,tspan,ntspan,next,t0,tfinal,tdir,y0,f0,
odeArgs,odeFcn,...
Error in ==> main at 22
[t,I]=ode45(PMSM,tsp,init,[],ud);
定义PMSM函数时缺少输入参数
再问: 能否具体一些?缺少什么输入参数?