Periodo orbital satelital

Este programa nos ayudará a calcular el tiempo que demora un satélite artificial en orbitar un cuerpo celeste

El período orbital T (es decir, cuánto tiempo tarda el satélite en describir una órbita completa), es proporcional al tamaño de la órbita y viene dado por la siguiente expresión:

T² = 4π² (RT + alfa)³ / G MT

Donde:

RT= radio de la Tierra

G= constante de gravitación universal=6.67E-11N*m²/Kg²

M= masa de la Tierra= 5.98E24Kg

alfa= semi-eje mayor de la órbita; el cual está dado por los términos de la distancia de la Tierra al apogeo y el perigeo y lo podemos obtener mediante la siguiente ecuación.

                        a=Rapogeo+Rperigeo/2

Para llegar a esta ecuación sólo tenemos que basarnos en las leyes de Kepler, tomar en cuenta la fuerza de atracción gravitacional de la Tierra, igualarlas y despejarlas en ecuaciones mas simples hasta llegar a los valores que necesitamos para calcular el periodo orbital.

F = m*g

Como F es la fuerza de atracción gravitatoria:

G (M m / R²) = m (v² / R)

Simplificando las masas y los radios, tenemos:

G (M / R) = v²

Pero la velocidad tangencial es igual a la angular por el radio de giro, es decir:

v = ω R

Sustituyendo:

G (M / R) = (ω R)²

Ahora bien, la velocidad angular es igual a:

ω = 2π / T

Volviendo a sustituir:

G (M / R) = (2π / T)² R² → G M / R³ = 4π² / T² → G M T² = 4π² R³

T² = 4π² R³ / G M

Como, en este caso, R = RT + alfa, sustituyendo obtenemos la siguiente expresión:

T² = 4π² (RT + alfa)³ / G M

In [3]:
from pylab import linspace, pi
%matplotlib inline
In [4]:
from numpy import sqrt
T=1
RT=6.38E6
G=6.67E-11
M=5.98E24
alfa= int(input('Introduce una variable: '))
T=sqrt((4*pi**2*(RT+alfa)**3)/(G*M))/60
print T
Introduce una variable: 404000
92.6496681033
In [5]:
import numpy as np
import matplotlib.pyplot as plt
font_size=10
alfa=np.arange(404000,404010,0.1)
T=sqrt((4*pi**2*(RT+alfa)**3)/(G*M))/60
plt.plot(alfa, T)
plt.xlabel(r'variable $(m)$', fontsize=font_size)
plt.ylabel('Periodo $(min)$', fontsize=font_size)
plt.title('Periodo orbital', fontsize=font_size)
Out[5]:
<matplotlib.text.Text at 0x7f064ed96650>
In [ ]: