im modelling for two mass drive train , i could not able to know why an index exceed error
3 views (last 30 days)
Show older comments
function dy= two_mass2(ta,te,k,d,jt,jg,y)
x=y(1);
y=y(2);
dxdt=y(3);
dydt=y(4);
d2xdt2=((1./jt)*(ta-d*(dxdt-d*dydt)-k*(x-y)));
d2ydt2=((1./jg)*(-te-d*(dydt-d*dxdt)-k*(y-x)));
dy=[dxdt;dydt;d2xdt2;d2ydt2];
end
clc
clear all
close all
ta=11198;
te=11937;
jt=995.8;
jg=81.2;
d=30.3;
k=19720;
tspan=[0 5000];
y0=[ 125;125;100;100];
[Tsol,Ysol]= ode45(@(t,y)two_mass2(ta,te,d,k,jt,jg,y),tspan,y0);
plot(Tsol,Ysol(:,1))
0 Comments
Answers (1)
KSSV
on 15 Feb 2023
Edited: KSSV
on 15 Feb 2023
function dy= two_mass2(ta,te,k,d,jt,jg,y)
x=y(1);
y=y(2);
dxdt=y(3);
dydt=y(4);
d2xdt2=((1./jt)*(ta-d*(dxdt-d*dydt)-k*(x-y)));
d2ydt2=((1./jg)*(-te-d*(dydt-d*dxdt)-k*(y-x)));
dy=[dxdt;dydt;d2xdt2;d2ydt2];
end
In the above function your input y to the function is 4*1 and in this line:
y=y(2);
you are overwrititng y. Change the variable y at input to some other variable.
Like shown below:
ta=11198;
te=11937;
jt=995.8;
jg=81.2;
d=30.3;
k=19720;
tspan=[0 5000];
y0=[ 125;125;100;100];
[Tsol,Ysol]= ode45(@(t,y)two_mass2(ta,te,d,k,jt,jg,y),tspan,y0);
plot(Tsol,Ysol(:,1))
function dy= two_mass2(ta,te,k,d,jt,jg,Y) %<----- y changed to Y
x=Y(1);
y=Y(2);
dxdt=Y(3);
dydt=Y(4);
d2xdt2=((1./jt)*(ta-d*(dxdt-d*dydt)-k*(x-y)));
d2ydt2=((1./jg)*(-te-d*(dydt-d*dxdt)-k*(y-x)));
dy=[dxdt;dydt;d2xdt2;d2ydt2];
end
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!