solving with ode23, error using feval?

2 views (last 30 days)
Greta
Greta on 14 May 2013
I want to solve a group of differential equations using ode23, but it always gives me the same error, which is:
??? Error using ==> feval
Undefined function or method 'funsys' for input arguments of type 'double'.
Error in ==> odearguments at 110
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode23 at 172
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
I don't know exactly what is these referring to, so I wanted to ask why is it giving me these errors?? The code of the function is:
function pX=funsys(t,X)
Ie1=X(1);
Ie2=X(2);
Ir1=X(3);
Ir2=X(4);
wr=X(5);
theta=X(6);
Le=0.4112;
Lr=0.329;
M=0.4112;
w=377;
R=3;
Tm=0;
Ve1=sqrt(2)*150*sin(w*t);
Ve2=sqrt(2)*150*cos(w*t);
I=[Ie1;Ie2;Ir1;Ir2];
L=[1.1*Le 0 M*cos(theta) -M*sin(theta);0 1.1*Le -M*sin(theta) M*cos(theta);M*cos(theta) -M*sin(theta) 1.1*Lr 0;-M*sin(theta) M*cos(theta) 0 1.1*Lr];
dL=[0 0 -M*sin(theta) -M*cos(theta);0 0 -M*cos(theta) -M*sin(theta);-M*sin(theta) -M*cos(theta) 0 0;-M*cos(theta) -M*sin(theta) 0 0];
vR=R*eye(4);
vV=[Ve1;Ve2;0;0];
vImp=vR+wr*dL;
Linv=inv(L);
L1=Linv(1,:);
L2=Linv(2,:);
L3=Linv(3,:);
L4=Linv(4,:);
A=vV-vImp*I;
Te=(I'*dL*I)/2;
pIe1=L1*A;
pIe2=L2*A;
pIr1=L3*A;
pIr2=L4*A;
pwr=Te+Tm/J;
ptheta=wr;
pX=[pIe1;pIe2;pIr1;pIr2;pwr;ptheta];
Then in the command window:
y0=[0 0 0 0 0 0]
st=0:0.001:10
[t,X]=ode23(@funsys,st,y0)
Thank you very much.
  1 Comment
David Sanchez
David Sanchez on 14 May 2013
Please, use the {}Code option to tell what's code from comment.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 16 May 2013
Perhaps you did not save your code into the file funsys.m on your MATLAB path.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!