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