Università di Bologna - Facoltà di Ingegneria II - Sede di Forlì



Fisica Generale Interattiva

prof. Domenico Galli



Traiettoria di un proiettile sferico nell'aria

Punto materiale sferico con velocità iniziale, soggetto alla forza peso e alla forza resistente esercitata dal fluido (parametrizzata in funzione di CD)

Soluzione mediante il metodo di Runge-Kutta del IV ordine

Parametri e condizioni iniziali suggeriti per iniziare:
Diminuendo l'intervallo si scansione migliora la precisione dei risultati.
Si osservi che per piccole velocità iniziali la traiettoria è simmetrica con forma simile a una parabola e si avvicina molto alla traiettoria nel vuoto, mentre per grandi velocità iniziali la traiettoria è fortemente asimmetrica e il primo tratto di essa è praticamente rettilineo: il motivo è che nel primo tratto, la resistenza (che ha la stessa direzione della velocità e dunque non curva la traiettoria) è talmente intensa da rendere praticamente trascurabile l'effetto della forza di gravità sulla somma vettoriale delle due forze.
Si osservi inoltre che l'angolo corrispondente alla massima gittata, per piccole velocità iniziali è pari a circa 45º, mentre per grandi velocità iniziali è notevolmente più piccolo.
Per avviare l'Applet "cliccare" il bottone qui sotto.

Errore: manca il plug-in Java 2 per eseguire l'applet!


Algoritmo di Runge-Kutta del IV ordine per il proiettile sferico nell'aria, con resistenza parametrizzata in funzione di CD:
    for(i=0;z>=0;)
{
// algoritmo di Runge-Kutta IV ordine
kx1=vx*deltaT;
jx1=ax*deltaT;
vxm1=vx+jx1/2;
kz1=vz*deltaT;
jz1=az*deltaT;
vzm1=vz+jz1/2;
vm1=Math.sqrt(vxm1*vxm1+vzm1*vzm1);
axm1=-0.5*getCd(2*vm1*r*rof/eta)*rof*s*vxm1*vm1/m;
azm1=-gamma*g-0.5*getCd(2*vm1*r*rof/eta)*rof*s*vzm1*vm1/m;
kx2=vxm1*deltaT;
jx2=axm1*deltaT;
vxm2=vx+jx2/2;
kz2=vzm1*deltaT;
jz2=azm1*deltaT;
vzm2=vz+jz2/2;
vm2=Math.sqrt(vxm2*vxm2+vzm2*vzm2);
axm2=-0.5*getCd(2*vm2*r*rof/eta)*rof*s*vxm2*vm2/m;
azm2=-gamma*g-0.5*getCd(2*vm2*r*rof/eta)*rof*s*vzm2*vm2/m;
kx3=vxm2*deltaT;
jx3=axm2*deltaT;
vxf=vx+jx3;
kz3=vzm2*deltaT;
jz3=azm2*deltaT;
vzf=vz+jz3;
vf=Math.sqrt(vxf*vxf+vzf*vzf);
axf=-0.5*getCd(2*vf*r*rof/eta)*rof*s*vxf*vf/m;
azf=-gamma*g-0.5*getCd(2*vf*r*rof/eta)*rof*s*vzf*vf/m;
kx4=vxf*deltaT;
jx4=axf*deltaT;
x=x+(kx1+2*kx2+2*kx3+kx4)/6;
vx=vx+(jx1+2*jx2+2*jx3+jx4)/6;
kz4=vzf*deltaT;
jz4=azf*deltaT;
z=z+(kz1+2*kz2+2*kz3+kz4)/6;
vz=vz+(jz1+2*jz2+2*jz3+jz4)/6;
v=Math.sqrt(vx*vx+vz*vz);
re=Math.abs(2*v*r*rof/eta); // numero di Reynolds
cd=getCd(re);
ax=-0.5*cd*rof*s*vx*v/m;
az=-gamma*g-0.5*cd*rof*s*vz*v/m;
// fine algoritmo di Runge-Kutta IV ordine
t=t+deltaT;
i++;
lxt.add(new Point2D.Float((float)t,(float)x));
lzt.add(new Point2D.Float((float)t,(float)z));
lvxt.add(new Point2D.Float((float)t,(float)vx));
lvzt.add(new Point2D.Float((float)t,(float)vz));
lrt.add(new Point2D.Float((float)t,(float)re));
lct.add(new Point2D.Float((float)t,(float)cd));
lzx.add(new Point2D.Float((float)x,(float)z));
if(z<0)break;
}

Metodo utilizzato per la parametrizzazione di CD in funzione del numero di Reynolds:
  public double getCd(double re)
{
re=Math.abs(re);
if(re<Double.MIN_VALUE)return 0.; // velocita' 0 => forza 0
if(re<1)return 24.*Math.pow(re,-1);
else if(re<2)return 24.*Math.pow(re,-0.78);
else if(re<5)return 25.6*Math.pow(re,-0.87);
else if(re<10)return 18.25*Math.pow(re,-0.66);
else if(re<20)return 18.62*Math.pow(re,-0.67);
else if(re<50)return 16.57*Math.pow(re,-0.63);
else if(re<100)return 7.01*Math.pow(re,-0.41);
else if(re<200)return 10.6*Math.pow(re,-0.5);
else if(re<500)return 5.62*Math.pow(re,-0.38);
else if(re<2e3)return 2.36*Math.pow(re,-0.24);
else if(re<5e3)return 0.75*Math.pow(re,-0.09);
else if(re<5e4)return 3.04e-16*re*re*re-7.11e-11*re*re+5.56e-6*re+0.322;
else if(re<1.5e5)return -4.4e-12*re*re+9.4e-7*re+0.424;
else if(re<2.5e5)return -1.43e-16*re*re*re+5.12e-11*re*re-6.16e-6*re+0.721;
else if(re<5e5)return 0.005*Math.pow(re,0.274);
else return 0.024*Math.pow(re,0.152);
}



Densità e viscosità di alcuni fluidi

densità [kg/m³] viscosità [kg m-1 s-1]
Aria a 0 °C 1.25
1.82 · 10-5
Etere a 18 °C 7.19 · 102 2.38 · 10-4
Acqua a 0 °C 1.00 · 103
1.8 · 10-3
Acqua a 10 °C 1.00 · 103 1.3 · 10-3
Acqua a 20 °C 1.00 · 103 1.0 · 10-3
Acqua a 30 °C 1.00 · 103 8 · 10-4
Acqua a 100 °C 1.00 · 103 2.8 · 10-5
Alcool a 18 °C 8.18 · 102
1.25 · 10-3
Mercurio a 18 °C 1.3 · 104
1.57 · 10-2
Olio di ricino a 18 °C 9.63 · 102
1.11
Glicerina a 2.8 °C 1.25 · 103
4.22
Glicerina a 18 °C 1.25 · 103 1.18
Glicerina a 20 °C 1.25 · 103 0.83
Glicerina a 26.5 °C 1.25 · 103 0.49

Densità di alcuni solidi

densità [kg/m³]
Ghiaccio
9.17 · 102
Magnesio
1.74 · 103
Vetro
2.5 · 103
Alluminio
2.70 · 103
Zinco
7.12 · 103
Stagno
7.28 · 103
Ferro
7.86 · 103
Ottone
8.5 · 103
Bronzo
8.8 · 103
Rame
8.9 · 103
Argento
1.05 · 104
Piombo
1.14 · 104
Uranio
1.87 · 104
Oro
1.94 · 104
Platino
2.14 · 104

Indice Fisica Interattiva


February 27, 2004, Domenico Galli