Sei sulla pagina 1di 20

Università di Pisa

Dipartimento di Ingegneria Civile e Industriale

Corso di Laurea in Ingegneria Aerospaziale

Risoluzione numerica delle equazioni


differenziali che descrivono la traiettoria di una
pallina da tennis

Relatore: Tommaso Andreussi Candidata: Martina Gotti

A.A. 2019/2020
Outline

• Problema

• Risoluzione numerica equazioni differenziali:


Metodo Crank-Nicolson
Metodi Runge Kutta

• Codice Matlab:
Implementazione metodi e problema
Confronto soluzioni metodi
Problema

• Obbiettivo:
si vuole tracciare la traiettoria di un lob
ω
 ⃗ 𝑣
 ⃗
 𝜃 in topspin di una pallina da tennis note
h le dimensioni e le condizioni di partenza
della pallina

 • Condizioni di partenza:
-
- ω
 ⃗
• Dimensioni pallina:
- 𝑣
 ⃗
Problema
  Il problema si può schematizzare con il
seguente modello:
1. Sistema di riferimento τ(0,x,y,z) come in figura
2. La pallina è una sfera di diametro d, massa m,
che si muove nell’aria con velocità ruotando
su se stessa con una velocita angolare

 3. La pallina si muove sotto l’azione delle sole forze:


• Forza Gravitazionale dove =(0,0,− g)
• Resistenza Aerodinamica
• Forza dovuta all’effetto Magnus
Problema

•  Le espressioni di e sono quelli ottenuti per fluidi ideali:


4.

dove e ricavati sperimentalmente per lob in topspin con velocità

5. La velocita angolare è costante


Problema
• 
II legge di Newton:
 Condizioni
+ iniziali in

Nel caso particolare di lob in topspin:


 Condizioni
+ iniziali
in

dove z
⃗𝒗 𝟎

- x
Problema
•  Problema ai valori iniziali (Pb di Cauchy del 2° ordine):

Si può ricondurre a problema di Cauchy del 1° ordine di tipo :

• introducendo le variabili e :
• definendo i vettori:
Risoluzione
Numerica
•Ipotesi
  esistenza e unicità della soluzione del Pb di Cauchy :
continua rispetto ad entrambi gli argomenti e Lipschitziana rispetto a y ovvero
tale che

Risoluzione numerica 2 processi:


1. Discretizzazione problema continuo:
Dati si definisce

2. Approssimazione di derivate o integrali (che presuppongono passaggio al


limite) con operazioni finite e discrete.
Metodi ad un passo
• Def: Un metodo numerico si dice ad un passo se
Errore introdotto ad ogni passo :

• 1° contributo errore di troncamento locale (LTE) ( consistenza)


• 2°contributo : legato accumulo errori ai passi precedenti ( stabilità)
Convergenza :

• ove è una funzione che tende a zero per

• Ordine di convergenza p:
Metodo di Crank-
Nicolson
• Passo i+1:
Derivazione metodo:
Da la formulazione integrale del pb di Cauchy

Approssimazione integrale con la formula di quadratura del trapezio:

metodo implicito  oneroso

Convergenza: p=2 :
Metodo Runge
Kutta
• famiglia di metodi (impliciti o espliciti)in cui ad ogni passo viene valutata in più punti
appartenenti all’intervallo

Forma più generale:

dove per i metodi espliciti :


dove R = numero di stadi del metodo

{}, {} e {} : coefficienti definiscono univocamente ogni metodo RK

raccolti nella matrice di Butcher

Convergenza : convergente s

Con un ordine di convergenza p :


Metodo Runge Kutta
• Metodo di Runge Kutta esplicito del 4° ordine (p=4: converge con per
Stadi: R=4 : ad ogni passo la funzione si valuta in 4 punti dell’intervallo

Espressione:

Dove

-
Codice matlab per Metodi
function [t,U]= Crank_Nicolson (fun,y0,t0,tend,n)
h=(tend-t0)/n;  
t=linspace(t0,tend,n+1)’; & x z
U=zeros(n+1,length(y0)); U(1,:)=y0';
options=optimset('Display','off','Tolfun',10^-4);
for i=1:n
ui=U(i,:)';
F=@(x) ui- x + (h/2).*(fun(t(i+1),x)+fun(t(i),x));
u=fsolve(F,ui,options);
U(i+1,:)=u'; end

function [t,U] = RK4 (fun,y0,t0,tend,n) (...)


for i=1:n
ui=U(i,:)’;
K1= fun(t(i),ui); K2=fun(t(i)+(h/2),ui+(h/2*K1));
K3=fun(t(i)+(h/2),ui+(h/2*K2)); K4=fun(t(i+1),ui+(h*K3));
u = ui +(h/6)*(K1+2*K2+2*K3+K4);
U(i+1,:)=u'; end
Codice matlab per definizione problema
function fn=tennis_ball(t,y)
global rho d m eta w g
N= length(y);fn=zeros(N,1);
vmodulo=sqrt(y(3)^2 +y(4)^2);
alpha= rho*pi*d^2/(8*m);
CD=0.508 + (1/(22.053 + (4.196*(vmodulo/w)^(5/2))))^(2/5);
CM= 1/(2.022 + (0.981*(vmodulo/w)));
%Forzante:
fn(1)= y(3);
fn(2)= y(4);
fn(3)= -CD*alpha*vmodulo*y(3) + eta*CM*alpha*vmodulo*y(4);
fn(4)=-g - CD*alpha*vmodulo*y(4) - eta*CM*alpha*vmodulo*y(3);

[t,U1]= Crank_Nicolson (@tennis_ball,y0,t0,tend,n);


[t,U2]= RK4 (@tennis_ball,y0,t0,tend,n);
Grafico traiettoria per n=150
 Crank-Nicolson  Runge Kutta di ordine 4
Osservazion
i
•  Ricerca della posizione x in cui tocca terra palla:

n_t= max(find(U(:,2)>=0));
Xt=U(n_t,1);

Vettori differenza soluzioni:


%Differenza soluzione vettore x:
Diffx=U2(:,1)-U1(:,1);
%Differenza soluzione vettore z:
Diffz=U2(:,2)-U1(:,2);

Per per ,
Diffx e Diffz presentano delle
componenti sempre più vicine a zero.
Definizione di ‘’coincidenza’’ delle
soluzioni
Non avendo la soluzione esatta, non siamo in grado di dire a priori per quale
valore di n si ottiene una buona stima della soluzione
 Per le regole di un incontro di tennis, pallina è

chiamata fuori o dentro al campo se tocca o meno le


righe che definiscono il campo : allora si ha che esiste
un range di posizioni della pallina per cui questa è
risulta dentro il campo
Questo ci fornisce un criterio per definire la
«coincidenza» o meno per un certo n tra le soluzioni
ottenute da i 2 metodi:

Diffx(i)<<10^(-2) Diffz(i)<<10^(-2)
Codice ricerca ‘’coicidenza’’
soluzioni
 Si esegue un ciclo while per cercare il numero di passi necessario affinchè
le 2 soluzioni coincidano a meno di una differenza inferiore a 10^-2:
%Numero iniziale di passi, con cui inizio la ricerca:
n=350;
%Vettori differenza:Diffx=ones(n+1,1);Diffz=ones(n+1,1);
while abs(max(Diffx))>10^(-2) | abs(max(Diffz))>10^(-2) & n<=400
n=n+5;
[t,U1]= Crank_Nicolson (@tennis_ball,y0,t0,tend,n);
[t,U2]= RK4 (@tennis_ball,y0,t0,tend,n);
Diffx=U2(:,1)-U1(:,1);
Diffz=U2(:,2)-U1(:,2);end

 Si trova che il numero di passi che soddisfa la condizione è n=385


Bibliografi
a
• Calcolo Scientifico, Quarteroni, Saleri, Gervasio

• Matematica Numerica, Quarteroni, Sacco,Saleri, Gervasio

• The aerodynamics of tennis balls—The topspin lob, A. Štěpánek

• Trajectory of a Spinning Tennis Ball, F. Klvaňa

• MATLAB/Simulink applications in solving Ordinary Differential


Equations,  S. Eshkabilov
Conclusioni
:
• Riepiloga

Potrebbero piacerti anche