índiceitem superior

item anteriorpróximo item

 

Apêndice B

 

Exemplos e testes do simulador de atitude

 

A Tabela B-1 apresenta o código fonte do programa utilizado para gerar os testes. A seguir são apresentados os testes realizados, bem como o resultado obtido de cada teste. São também fornecidas as linhas do código fonte que foram alteradas em cada teste. Nos gráficos apresentados adotou-se a seguinte padronização: o componente (do torque, da velocidade angular ou da atitude) é vermelho, o componente y é verde o componente z é azul.

 

Tabela B-1

Código fonte do programa utilizado nos testes da dinâmica

 

 

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

#include <float.h>

#include "att_pro.h"

 

// A seguinte biblioteca deverá ser unida ao programa principal:

// c:\...\attit_pro.lib

 

// Programa de testes

 

void main (void)

{

      quaternion quater;

      matrix3 iner;

      vector3 w, ezxz;

      double relerr, abserr;

      double t, t_start, t_end, t_step;

      int istat;

      FILE *nfile;

// >>>>>>>>>>>>>>>>>>>>>>>> inércia e massa

      iner._11 = 10;

      iner._12 = 0;

      iner._13 = 0;

      iner._21 = 0;

      iner._22 = 10;

      iner._23 = 0;

      iner._31 = 0;

      iner._32 = 0;

      iner._33 = 10;

      istat = set_sat_inertia (iner);

// >>>>>>>>>>>>>>>>>>>>>>>> parâmetros iniciais de atitude

      ezxz._1 = 0*RADIANS;

      ezxz._2 = 0*RADIANS;    // Parâmetros de euler da atitude inicial

      ezxz._3 = 0*RADIANS;

      quater = ezxzquat (ezxz);

      istat = set_attitude (quater);

      w._1 = 0;

      w._2 = 0;         // Velocidade angular inicial

      w._3 = 0;

      istat = set_ang_velocity (w);

// >>>>>>>>>>>>>>>>>>>>>>>> tempo de integração

      t_start = 0;

      t_end   = 200;

      t_step  = 1;

      istat = set_current_time (t_start);

      istat = set_step_time (t_step);

      istat = set_int_step_time (0.1);

      t = t_start;

// >>>>>>>>>>>>>>>>>>>>>>>> malha de integração

      while (t < t_end) {

            quater = get_attitude ();

            ezxz = quatezxz (quater);

            w = get_ang_velocity ();

            t = get_current_time ();

            // imprimir instante t, atitude e velocidade angular

      sat_propagation ();

      }

      return;

}

 

 

      Apresenta-se, a seguir, exemplos e testes efetuados com os diversos módulos desenvolvidos para o simulador de atitude. Os exemplos estão separados em grupos na forma:

 

·          Corpo rígido livre de torques. Movimento de nutação.

·          Corpo rígido sob a ação de torques externos. Movimento de precessão.

·          Corpo rígido sob a ação de torques magnéticos.

·          Corpo rígido sob a ação de torques internos de roda de reação.

·          Corpo rígido sob a ação de torques de propulsores.

·          Propagação de órbita.

·          Sensores.

·          Tempo real.