Orbita di un Satellite

Transcript

Orbita di un Satellite
Orbita di un Satellite
DESCRIZIONE DEL PROBLEMA "Orbita di un Satellite"
1.
Utilizzare la Function Matlab ode45 modificando i parametri di default :
•
RelTol = 1e-6
•
AbsTol =1e-4
per calcolare l’orbita di un satellite intorno alla Terra (origine del riferimento). Le equazioni del moto sono:
•
*? **
x’’(t) =
*
* * * a*
•
y’’(t) =
y t ** **
(* (
)
con valori iniziali:
•
x(0) = 4.223 * 10 0
•
y(0) = 0
•
x’(0), y’(0) velocità iniziale
dove:
•
G= 6.672 * 10 6 6
•
M =5.97 * 10 *? massa della terra
costante gravitazionale
Visualizzare in un grafico le orbite, relative ad un giorno(in sec.), di satelliti alle seguenti velocità iniziali:
(0,3071),(0,3500),(0,2000).
2.
DESCRIZIONE DELL’ALGORITMO
Per risolvere l' esercizio si sono sviluppate due function:
•
testorb.m: Function che usando il modello realizza le richieste dell'elaborato
•
orb.m: Function che descrive il modello del sistema differenziale
2.1 Function “testorb.m”
Questa function realizza i grafici richiesti dell’esercizio usando il sistema di equazioni di “orb.m”.
function testorb
% valori iniziali
x0 = 4.223*10 ^7;
y0 = 0;
x0p = [0 0 0];
Guerr a Stefano
Pagina 2
Orbita di un Satellite
y0p = [3071 3500 2000 ];
T = 24*60*60 ;
% modifica delle opzioni
options = odeset('RelTol', 1e-6, 'AbsTol', 1e-4);
% vettore dei valori iniziali e velocità v(1)
x = [x0; x0p(1); y0 ; y0p(1)];
% chiamate alle funzioni con ode45
[t1, y1 ] = ode45(@orb, [0 T], x, options);
% vettore dei valori iniziali e velocità v(2)
x = [x0; x0p(2); y0 ; y0p(2)];
[t2, y2 ] = ode45(@orb, [0 T], x, options);
% vettore dei valori iniziali e velocità v(3)
x = [x0; x0p(3); y0 ; y0p(3)];
[t3, y3 ] = ode45(@orb, [0 T], x, options);
% visualizzo il grafico bidimensioale
figure('Name','Grafico 2D')
plot(y1 (:,1), y1 (:,3), y2 (:,1), y2 (:,3), y3 (:,1), y3 (:,3))
xlabel('x')
ylabel('y')
title('Orbite')
legend('3071', '3500', '2000')
pause(2)
% Visualizzo il grafico tridimensionale
figure('Name','Grafico 3D')
plot3(t1 , y1 (:,1), y1 (:,3), t2, y2 (:,1), y2 (:,3), t3, y3 (:,1), y3 (:,3))
xlabel('tempo')
ylabel('x')
zlabel('y')
title('Orbite in funzione del tempo')
legend('3071', '3500', '2000')
Guerr a Stefano
Pagina 3
Orbita di un Satellite
grid on
Questa funzione utilizza la function matlab ode45 modificando i parametri di default in questo modo:
•
RelTol = 1e-6
•
AbsTol =1e-4
per calcolare l’orbita di un satellite intorno alla Terra. Nell'uso della ODE richiama il modello differenziale orb.m.
Visualizza poi in un grafico le orbite, relative ad un giorno (in sec.), di satelliti alle seguenti velocità iniziali:
1. (0,3071)
2. (0,3500)
3. (0,2000)
2.2 Function “orb.m”
Function che descrive il sistema di equazioni differenziali del problema
function f = orb(t, x)
G = 6.672 *10 ^-11 ;
M = 5.97*10^24;
f1 = x(2);
f2 = -(G*M)*x(1)/((x(1)^2+x(3)^2)^1.5);
f3 = x(4);
f4 = -(G*M)*x(3)/((x(1)^2+x(3)^2)^1.5);
f = [f1;f2;f3 ;f4 ];
Si ricevono in input:
•
x: vettore valori iniziali.
•
t: valore di posizione
Si ritornano in output:
•
f: vettore con i valori risultato.
Si impostano le costanti:
•
G = 6.672*10 0 0
costante gravitazionale
•
M = 5.97*10 1?
massa della terra
Guerr a Stefano
Pagina 4
Orbita di un Satellite
Le equazioni del moto sono date da:
•
x’’(t) =
•
y’’(t) =
3.
)
*) *)
)
(( ( ) ) ) ) )
) t ** **
*
(( * * * * ) *
ECCEZIONI PREVISTE
Non sono stati previsti particolari controlli per questo esercizio in quanto i dati sono statici non immessi da tastiera.
4.
ESEMPI D’USO
Presentiamo l'output ottenuto lanciando la function:
•
testorb.m
Guerr a Stefano
Pagina 5
Orbita di un Satellite
Guerr a Stefano
Pagina 6