% PROGRAMME DE SYNTHESE DES DONNEES ET DE CERTAINS RESULTATS global temps Ir It Il Irl Itl Irt Asat etat_init vitesse_rotation altitude points_trace tau vitesse_angul_mini global vitesse_angul_mini0 angle_mini_mod_fin rotation_initiale J jroue vitesseroue K_tumbling memoire switch1 global couple_max_roue moment_max_bobine instant_injection initpqrQ periode_pulse temps_action periode non_pulse disp(' *************** PRINCIPALES DONNEES DE LA SIMULATION ***************') disp(' Nanosatellite CASAASAT') disp(' ------------------------------------') disp(' ***********************************************************************') disp(' ') disp([ ' ' 'Latitude d''injection = ' num2str(latitude_injection) ' °' ]) disp([ ' ' 'Heure d''injection = ' num2str(instant_injection) ' s' ' Avec rappel --> Heure =0 au survol équateur']) load B_point.mat; temps_fin_tumbling=max(temps_Bpoint(2,1:length(temps_Bpoint))); duree_tumbling=temps_fin_tumbling-instant_injection; disp([ ' Heure de fin de Tumbling = ' num2str(temps_fin_tumbling) ' s, soit ' num2str(duree_tumbling) ' s, après l''injection' ]) load initpqrQ.mat; Tf=initpqrQ(1,length(initpqrQ)); duree_acq=Tf-duree_tumbling; disp([ ' ' 'Heure fin d''acquisition fine = ' num2str(Tf) ' s, soit ' num2str(duree_acq) ' s, après la fin du tumbling' ]) disp(' ') disp(' --------------------- RESPECT DES SPECIFICATIONS ------------------------') disp([ ' ' 'Moment magnétique maximum bobine = ' num2str(moment_max_bobine) ' Am²']) disp([ ' ' 'Vitesse angulaire de coupure detumbling = ' num2str(vitesse_angul_mini0) ' rd/s']) disp([ ' ' 'Ecart maximum de pointage en acquisition fine = ' num2str(angle_mini_mod_fin) ' rd']) disp([ ' ' 'Couple maximum sur la roue = ' num2str(couple_max_roue) ' Nm']) disp([ ' ' 'Nombre minimum de points stockés pour les courbes = ' num2str(points_trace)]) disp([ ' ' 'Consigne de tangage = ' num2str(consigne_tangage) ' rd']) disp([ ' ' 'Consigne de roulis = ' num2str(consigne_roulis) ' rd']) disp([ ' ' 'Consigne de lacet = ' num2str(consigne_lacet) ' rd']) if non_pulse==1 disp([ ' ' 'Simulation avec champ non pulsé']) else disp([ ' ' 'Simulation avec champ pulsé']) end disp(' ') disp(' --------------------- COEFFICIENTS DES REGULATIONS ------------------------') disp(' ROULIS') disp([ ' ' 'K_PID_ROULIS= ' num2str(K_PID_ROULIS) ' SI']) disp([ ' ' 'F_PID_ROULIS = ' num2str(F_PID_ROULIS) ' SI']) disp([ ' ' 'GAIN_ROULIS = ' num2str(gain_roulis)]) disp(' LACET') disp([ ' ' 'K_PID_LACET= ' num2str(K_PID_LACET) ' SI']) disp([ ' ' 'F_PID_LACET = ' num2str(F_PID_LACET) ' SI']) disp([ ' ' 'GAIN_LACET = ' num2str(gain_lacet)]) disp(' TANGAGE') disp([ ' ' 'K_PID_TANGAGE= ' num2str(K_PID_TANGAGE) ' SI']) disp([ ' ' 'F_PID_TANGAGE = ' num2str(F_PID_TANGAGE) ' SI']) disp([ ' ' 'GAIN_TANGAGE = ' num2str(gain_tangage)]) disp('') disp(' NB : Les coefficients peuvent etre modifiés dans le module dédié de la simulation') disp(' ou directement dans l''espace Matlab') disp(' ') disp(' --------------------- VALEURS INITIALES ------------------------') disp([ ' ' 'Angle de roulis = ' num2str(roulis0) ' rd ' 'Vitesse de roulis = ' num2str(v_roulis0) ' rd/s']) disp([ ' ' 'Angle de tangage = ' num2str(tangage0) ' rd ' 'Vitesse de tangage = ' num2str(v_tangage0) ' rd/s']) disp([ ' ' 'Angle de lacet = ' num2str(lacet0) ' rd ' 'Vitesse de lacet = ' num2str(v_lacet0) ' rd/s']) disp('') disp(' --------------------- PARAMETRES DU PULSE ------------------------') disp([ ' ' 'periode = ' num2str(periode) ' s ' 'temps d''action = ' num2str(temps_action) ' s']) disp(' ') disp(' --------------------- FONCTIONNEMENT DE LA ROUE ------------------------') rot_init_tour=rotation_initiale*30/pi; disp([ ' ' 'Vitesse initiale = ' num2str(rotation_initiale) ' rd/s ou ' num2str(rot_init_tour) ' tours/s']) load vit_roue.mat; rot_finale=vit_roue_rd_s(2,length(vit_roue_rd_s)); rot_fin_tour=rot_finale*30/pi; disp([ ' ' 'Vitesse finale = ' num2str(rot_finale) ' rd/s ou ' num2str(rot_fin_tour) ' tours/mn']) disp(' ') disp(' --------------------- TRANSMISSION EVENTUELLE DE DONNEES ------------------------') d1=num2str(etat_init(1));d2=num2str(etat_init(2));d3=num2str(etat_init(3));d4=num2str(etat_init(4)); d5=num2str(etat_init(5));d6=num2str(etat_init(6));d7=num2str(etat_init(7)); disp(' Vecteur à 7 composantes initialisant l''intégration par le quaternion d''attitude en repère orbital') disp(' ') disp([ ' ' 'etat_init = [' d1 ' ' d2 ' ' d3 ' ' d4 ' ' d5 ' ' d6 ' ' d7 ']']) disp(' ') disp(' Rotation absolue initiale en repère satellite: p=u(1) q=u(2) r=u(3)') disp(' Quaternion d''attitude initiale par rapport au repère orbital:Q =[u(4) u(5) u(6) u(7)]') disp(' ') disp(' ') % ------------------------------------------------------------- % Récupération des valeurs finales load initpqrQ.mat; Tf=initpqrQ(1,length(initpqrQ)); etat_final=initpqrQ(2:8,length(initpqrQ)); d1=num2str(etat_final(1));d2=num2str(etat_final(2));d3=num2str(etat_final(3));d4=num2str(etat_final(4)); d5=num2str(etat_final(5));d6=num2str(etat_final(6));d7=num2str(etat_final(7)); % ------------------------------------------------------------- disp(' Vecteur à 7 composantes de la configuration finale ( variable u=initpqrQ_final)') disp(' ') disp([ ' ' 'etat_final = initpqrQ_final = [' d1 ' ' d2 ' ' d3 ' ' d4 ' ' d5 ' ' d6 ' ' d7 ']']) disp(' ') disp([' Instant de fin de simulation ' 'Tf = ' num2str(Tf) ' secondes']) disp(' Rotation absolue finale en repère satellite: p=u(1) q=u(2) r=u(3)') disp(' Quaternion d''attitude finale par rapport au repère orbital:Q =[u(4) u(5) u(6) u(7)]') disp(' ') disp(' Vecteur à 8 composantes de la simulationle ( variable u=initpqrQ stockée dans initpqrQ.mat)') disp(' u(1) le temps') disp(' u(2:4) la rotation absolue en axes orbitaux') disp(' u(5:8) le quaternion d''attitude du satellite par rapport au repère orbital') disp(' ') disp(' ********************************* FIN DES SORTIES ***********************************') end