I'm trying to implement an if
condition in Matlab that when two objects get at a distance of 30 meters of each other should accelerate until 100 m and after that it should behave normal. The condition should not work when the distance gets lower than 100 m but only when it reaches 29 m or below, until 100 m.
As I've read, Matlab will only take the first statement from the left so I was thinking to write the condition in 2 steps, but got stuck.
This is what I've done so far:
%%%%functia ----osc----simplu
function yprim=osccar1(t,y)
global dist1
if dist1<30
antr=1;
elseif dist1>30
antr=1;
end
if dist1<100
bntr=1;
else
bntr=2;
end
% if dist1<30 && (dist1<100)
% indth=1;
% elseif dist1<100
% indth=1;
% else
% indth=0;
% end
magn=(y(1)^2+y(2)^2+y(3)^2)^(3/2);
yprim=zeros(6,1);
% if indth==1
if antr==bntr
yprim(1,1)=y(4);
yprim(2,1)=y(5)-0.001;
yprim(3,1)=y(6);
yprim(4,1)=double(y(1)/magn);
yprim(5,1)=double(y(2)/magn);
yprim(6,1)=double(y(3)/magn);
else
yprim(1,1)=y(4);
yprim(2,1)=y(5);
yprim(3,1)=y(6);
yprim(4,1)=double(y(1)/magn);
yprim(5,1)=double(y(2)/magn);
yprim(6,1)=double(y(3)/magn);
end
Aucun commentaire:
Enregistrer un commentaire