1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| //Projet découverte
//informatique et astronautique
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float t0(float e,float w,float a); //déclaration de la fonction t sans correction
float t1(float e,float w,float a); //déclaration de la fonction t avec correction 1
float t2(float e,float w,float a); //déclaration de la fonction t avec correction 2
float t3(float e,float w,float a); //déclaration de la fonction t avec correction 3
float t4(float e,float w,float a); //déclaration de la fonction t avec correction 4
void main()
{
float a=0; // rayon de l'orbite
float e=0; // exentricité
float v=0; // point de l'orbite d'anomalies vraie
float i=0; // inclinaison
float w=0; //
int mu=398600; // parametre mu définie dans le TP
float vc=0; //
float tab[28][5]; // déclaration du tableau des calculs
float la=0; // latitude
float tp=0; //temp de passage au périgé
int t=0; //compteur de boucle pour l'affichage du tableau
int n=0; //nombre de V saisie
printf("projet modélisation mathématique de la trace d'un satelitte en orbite terrestre\n\n");
printf("veuillez saisir le rayon a de l'orbite \n");
scanf("%f",&a);
printf("veuillez saisir l'exentricite e\n");
scanf("%f",&e);
printf("veuillez saisir l'inclinaison i\n");
scanf("%f",&i);
printf("veuillez saisir le parametre w\n");
scanf("%f",&w);
tp=(-sqrt(pow(a,3)/mu))*(asin((sqrt(1-pow(e,2))*sin(-w))/(1+e*cos(-w)))-e*((sqrt(1-pow(e,2))*sin(-w))/(1+e*cos(-w))));
printf("temp de passage au perigee :%f\n",&tp);
printf("vous pouvez saisir 28 point different de V");
do
{
printf("veuillez saisir un point V de l'orbite\n");
scanf("%f",&v);
n++;
tab[n-1][0]=v; //attribution de V
tab[n-1][1]=(3,141592654*v)/180; //converstion de V en radian
vc=acos(-e); //calcul de Vc
if(Vc<=v<=2*(3,141592654)-Vc)
{
tab[n-1][2]=t1;
} else
{
if(tab[n-1][1]>=2*(3,141592654)-Vc)
{
tab[n-1][2]=t2;
} else
{
if(-2*(3,141592654)+Vc<=tab[n-1][1]<=-Vc)
{
tab[n-1][2]=t3;
} else
{
if(2*(3,141592654)+Vc>=tab[n-1][1])
{
tab[n-1][2]=t4;
} else
{
if(-Vc<=tab[n-1][1]<=Vc,-Vc<=-w<=Vc)
{
tab[n-1][2]=t0;
}
}
}
}
}
la=pow(sin(sin(w+tab[n-1][0])*sin(i)),-1); //calcul de la latitude
tab[n-1][3]=la; //
tab[n-1][4]=pow(sin((tan(la))/(tan(i))),-1); //calcul de la longitude
} while(n!=28); //fin de la boucle à la 28e valeurs
printf("affichage du tableau\n");
printf("affichage du tableau\nresultats des calculs : \n\n");
for (t=0; t<28; t++) //boucle d'affichage des résultats
{
printf("point %2d : %f, %f, %f, %f, %f\n",t+1,tab[t][0],tab[t][1],tab[t][2],tab[t][3],tab[t][4]);
}
return 0;
}
float t0(float e,float w,float a)
{
return (sqrt(pow(a,3)/mu))*(asin((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))-e*((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1]))));
} //définition de la fonction t0
float t1(float e,float w,float a)
{
return (sqrt(pow(a,3)/mu))*((3,141592654)-(asin((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))-e*((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))));
} //définition de la fonction t1
float t2(float e,float w,float a)
{
return (sqrt(pow(a,3)/mu))*(2*(3,141592654)+(asin((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))-e*((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))));
} //définition de la fonction t2
float t3 (float e,float w,float a)
{
return (sqrt(pow(a,3)/mu))*((-3,141592654)-(asin((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))-e*((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))));
} //définition de la fonction t3
float t4(float e,float w,float a)
{
return (sqrt(pow(a,3)/mu))*(-2*(-3,141592654)+(asin((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))-e*((sqrt(1-pow(e,2))*sin(tab[n-1][1]))/(1+e*cos(tab[n-1][1])))));
} //définition de la fonction t4 |
Partager