ODE45 code running indefinitely
Show older comments
My code continues to run indefinitely. I'm trying to use ode45 to output time and two different x values. I'm just not sure what is going on/why it takes so long. Any thoughts?
My main file:
time = (0:0.1:10);
initial = [0 0 0 0];
[T,X] = ode45('memsODE',time,initial);
My ode function file:
function xdot = memsODE(t,x)
m = [4*10^(-11) 4*10^(-9)];
k = [0.25 0.05];
b = 1*10^(-10);
P = 13790;
A = 4*10^(-8);
delta = 100*10^(-6);
c = [4266666666.66667 -640000 21.3333333333333];
f1 = c(1)*x(1).^3+c(2)*x(1).^2+c(3)*x(1);
if (x(1)<(delta/2))
f2 = 1;
else
f2 = -1;
end
xdot(1) = x(2);
xdot(2) = (-f1-2*k(1)*(x(1)-x(3)))/m(1);
xdot(3) = x(4);
xdot(4) = (-b*x(4)-2*k(2)*x(3)+2*k(1)*(x(1)-x(3))+P*A*f2)/m(2);
xdot = xdot';
Accepted Answer
More Answers (0)
Categories
Find more on Ordinary Differential Equations 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!