Я пытаюсь реализовать условие if
в Matlab, что, когда два объекта находятся на расстоянии 30 метров друг от друга, они должны ускоряться до 100 метров, и после этого они должны вести себя нормально.Условие не должно работать, когда расстояние становится меньше 100 м, но только когда оно достигает 29 м или ниже, до 100 м.
Как я читал, Matlab будет принимать только первое утверждение слева, поэтомуЯ думал написать условие в 2 этапа, но застрял.
Это то, что я сделал до сих пор:
%%%%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