1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| clear
// differents vecteurs
V0tot=[150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,245,250]
angle=[30,32.5,35,37.5,40,42.5,45,47.5,50,52.5,55,57.5,60,62.5,65,67.5,70]
alpharad=zeros(1,length(angle))
for i=1:length(angle)
alpharad(i)=angle(i)*3.14/180
end
//Différentes constantes relatives a l'experience
t0=0;
T=40; //durée
N=1000; //echantillonage
g=-9.81; //m.s^-2
Rho=1 //kg.m^3
Cx=0.2
Cz=0.8
m=800 //kg
S=4 //m^2
pas=T/(N-1)
Longueur=zeros(length(V0tot),length(alpharad))
Temps=zeros(length(V0tot),length(alpharad))
t=linspace(t0,T,N)
function p2=p2(vyi)
p2=(Rho*Cz*S/(2*m)*vyi*vyi+g)
return p2
endfunction
for k=1:length(V0tot)
for j=1:length(alpharad)
vx0=cos(alpharad(j))*V0tot(k)*1000/3600 //vitessse initiale projetées sur chaque axe en m/s
vy0=sin(alpharad(j))*V0tot(k)*1000/3600
//Definition des vecteurs vx et vy , et recurence d'euler
vx=zeros(1,N)
vx(1)=vx0
vy=zeros(1,N)
vy(1)=vy0
for i=1:N-1
vy(i+1)=vy(i)+pas*p2(vy(i))
end
for i=1:N-1
vx(i)=vx0
end
xt=zeros(1,N)
xt(1)=0
yt=zeros(1,N)
yt(1)=0
//Methode des trapèzes
for i=1:N-1
xt(i+1)=xt(i)+0.5*(vx(i+1)+vx(i))*pas
end
for i=2:N-1
yt(i+1)=yt(i)+0.5*(vy(i+1)+vy(i))*pas
end
//recherche de la longueur de la parabole (yt=0)
a=10
b=N
while (b-a)>1
x=int((b+a)/2)
if yt(a)*yt(x)>=0 then
a=x;
else b=x;
end
end
Longueur(k,j)=xt(int((b+a)/2))
Temps(k,j)=int((b+a)/2)*pas
end
end
subplot(121)
zm = min(Longueur); zM = max(Longueur);
colorbar(zm,zM)
plot3d(Longueur)
xgrid
subplot(122)
zm = min(Temps); zM = max(Temps);
colorbar(zm,zM)
plot3d(Temps)
xgrid |
Partager