jeudi 2 janvier 2020

Python et la physique des satellites

Objectif

Etudier la mécanique des satellites avec Python en utilisant les fonctions. Créer une représentation graphique.
Donnera lieu à un défi pour les secondes.

Script sans graphique


# import de la fonction racine carree
from math import sqrt,pi

# constantes
G=6.67*10**-11 # constante universelle
Mt= 5.97*10**24 # Masse de la terre en kg
Rt=6378*10**3 # Rayon terrestre en m

# declaration de la fonction vitesse de paramètre h
def vitesse(h):
    v=sqrt(G*Mt/(Rt+h))
    return v

# declaration de la fonction periode de paramètre h
def periode(h):
    p=sqrt(((Rt+h)**3*4*pi**2)/(G*Mt))
    return p


# tableau
print ("<","h en km","> <","vitesse en m par s","> <","période en s",">")
for h in range (0,36010000,10000):
    print ("<",h/1000,"> <",vitesse(h),"> <",periode(h),">")

Script avec graphique

En regardant les graphs, j'en conclue que plus mon satellite est haut, moins je vais vite, et donc il est logique que plus j'orbite haut, plus le temps pour 1 tour (ma période augmente)
Pour info à 36000 km d'altitude j'ai une période de 1447 min soit un peu plus de 24h... c'est l'altitude des satellites géo-stationnaires !!!

# import de la fonction racine carree
from math import sqrt,pi

# constantes
G=6.67*10**-11 # constante universelle 
Mt= 5.97*10**24 # Masse de la terre en kg
Rt=6378*10**3 # Rayon terrestre en m

# declaration de la fonction vitesse de paramètre h
def vitesse(h):
    v=sqrt(G*Mt/(Rt+h))
    return v

# declaration de la fonction periode de paramètre h
def periode(h):
    p=sqrt(((Rt+h)**3*4*pi**2)/(G*Mt))
    return p


# tableau
hgraph=[]
vgraph=[]
pgraph=[]

print ("<","h en km","> <","vitesse en km par h","> <","période en min",">")
for h in range (0,36010000,10000):
    print ("<",h/1000,"> <",vitesse(h)*3.6,"> <",periode(h)/60,">")
    hgraph.append(h/1000)
    vgraph.append(vitesse(h)*3.6)
    pgraph.append(periode(h)/60)
    
#graphique
import matplotlib.pyplot as plt
plt.subplot(1,2,1)
plt.plot(hgraph,vgraph)
plt.xlabel('Hauteur en km')
plt.title('Vitesse en km/h')


plt.subplot(1,2,2)
plt.plot(hgraph,pgraph)
plt.xlabel('Période en km')
plt.title('Période en minute')

Explication du script avec graphique

Bon pour l'instant je sais faire comme ça.

# tableau
hgraph=[]
vgraph=[]
pgraph=[]
# Ces 4 lignes pour déclarer des listes vides, j'en aurai 3

    hgraph.append(h/1000)
    vgraph.append(vitesse(h)*3.6)
    pgraph.append(periode(h)/60)
# Ces 3 lignes dans la boucle ajoutent au fur et à mesure les données calculées dans les listes

=> ce qui fait qu'en fin de boucle j'ai 3 listes avec plein de valeurs de

#graphique
import matplotlib.pyplot as plt
plt.subplot(1,2,1)
plt.plot(hgraph,vgraph)
plt.xlabel('Hauteur en km')
plt.title('Vitesse en km/h')
# Au dessus commence le graphique, ici je représente les points x = hgraph et y = vgraph
# Le plt.subplot c'est pour créer 2 graphiques sur la même ligne    

Aucun commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)