índiceitem superior

item anteriorpróximo item

 

Parte VII: Sensores

 

Nesta seção são mostrados os resultados obtidos com a simulação de leituras dos sensores relatados no Capítulo 6. Em todas as simulações apresentadas a seguir, o satélite encontra-se estabilizado inercialmente, com velocidade angular nula e com atitude dada por: 80o, -20o, -150o nos eixos x, y e z, respectivamente:

 

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

 

      ezxz._1 = 80*rad;

      ezxz._2 = -20*rad;

      ezxz._3 = -150*rad;

      quater = exyzquat (ezxz);

      istat = set_attitude (quater);

 

      w._1 = 0;

      w._2 = 0;

      w._3 = 0;

      istat = set_ang_velocity (w);

 

A atitude é propagada por 200 segundos, com ciclo de 0.5 segundo (passo externo ao integrador numérico):

 

// >>>>>>>>> intervalos de tempo

 

      t_start = 0;

      t_end   = 200;

      t_step  = 0.5;

      istat = set_current_time (t_start);

      istat = set_step_time (t_step);

      istat = set_int_step_time (0.1);

      t = t_start;

 

A dinâmica do satélite é calculada com base numa matriz de inércia diagonal com momentos iguais a 10, 15 e 20 kg m2:

 

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

 

      iner._1._1 = 10;

      iner._1._2 = 0;

      iner._1._3 = 0;

      iner._2._1 = 0;

      iner._2._2 = 15;

      iner._2._3 = 0;

      iner._3._1 = 0;

      iner._3._2 = 0;

      iner._3._3 = 20;

      istat = set_sat_inertia (iner);

 

Finalmente, a órbita é estabelecida por meio de elementos keplerianos, porém com propagação efetuada pelo modelo SGP8:

 

// >>>>>>>>>> parâmetros orbitais

 

      istat = set_orbit_propagation_flag();

      istat = set_orbit_propagation_model(1);

 

      kepel._1._1 = EARTH_RADIUS + 600000;

      kepel._1._2 = 0.06;

      kepel._1._3 = 1.;

      kepel._2._1 = 0.;

      kepel._2._2 = 0.5;

      kepel._2._3 = 0.;

      istat = set_keplerian_elements (kepel);

      istat = set_ephemeris_date (1, 1, 2001, 10, 40, 0.0);

 

a)      Magnetômetro

 

O magnetômetro foi configurado para apresentar um ruído de 2nT, alinhamento com os eixos do satélite e viés de -2, 4 e -3 nT nas direções x, y e z, respectivamente:

 

// >>>>>>> magnetômetro

      auxi = s_gaussian_noise (0.);

      axis_d  = identity(1.);

      std_dev = identity(2.e-7);

      bias._1 = -2.e-7;

      bias._2 =  4.e-7;

      bias._3 = -3.e-7;

 

      istat = set_3axis_mag (axis_d, std_dev, bias, 1.);

 

Os resultados das leituras simuladas do magnetômetro são apresentados nas Figuras B-30, B-31 e B-32, relativas aos 3 eixos do satélite.

 

Fig. B-30 – Simulação do magnetômetro na direção x.

 

Fig. B-31 – Simulação do magnetômetro na direção y.

 

Fig. B-32 – Simulação do magnetômetro na direção y.

 

b)      Sensor de estrelas.

 

Para simular este sensor, adotou-se um ruído de 6 10-5 rad (cerca de 12 segundos de arco) nas direções x e y, e  4.2 10-4 rad (86 segundos de arco) na direção z. Considerou-se que o sensor possui eixos alinhados ao sistema geométrico do satélite:

 

// >>>>>>>>  sensor de estrelas

 

            auxi = s_gaussian_noise (0);

      att_ss = identity(1.);

            std_dev = identity(6.e-5);

            std_dev._3._3 = 4.2e-4;

            istat = set_star_sensor (std_dev, att_ss);

 

A simulação apresentou os resultados mostrados nas Figuras B-33, B-34 e B-35, que correspondem aos ângulos de Euler de uma rotação nos eixos x, y e z, respectivamente. Compare-se os resultados com a atitude inicial fornecida de 80o, -20o, -150o.

 

Fig. B-33 – Simulação da atitude fornecida pelo sensor de estrelas no eixo x.

 

Fig. B-34 – Simulação da atitude fornecida pelo sensor de estrelas no eixo y.

 

Fig. B-35 – Simulação da atitude fornecida pelo sensor de estrelas no eixo z.

 

c)      Sensor GPS

 

Adotou-se para o sensor GPS um desvio padrão não correlacionado uniforme nos três eixos, de 10 m em posição e 0.01 m/s em velocidade. O vetor de estado apresentado pelo sensor (lido a cada 0.5s) foi convertido para elementos keplerianos pela função statvec_kepel, que são apresentados nas Figuras B-36 a B-41 (semi-eixo maior, excentricidade, inclinação, ascenção reta do nodo ascenente, argumento do perigeu e anomalia média). O código usado na configuração do sensor foi:

 

// >>>>>>>>>> sensor GPS

 

      auxi = s_gaussian_noise (0);

      std_dev = identity(1);

 

      istat = set_gps_sensor (10.*std_dev, 0.01*std_dev, 1., 1.);

 

Os resultados devem ser comparados com os elementos orbitais previamente definidos.

 

Fig. B-36 – Simulação do sensor GPS – semi-eixo maior orbital, em km.

 

Fig. B-37 – Simulação do sensor GPS – excentricidade.

 

Fig. B-38 – Simulação do sensor GPS – inclinação (rad).

 

Fig. B-39 – Simulação do sensor GPS – ascenção reta do nodo (rad).

 

Fig. B-40 – Simulação do sensor GPS – argumento do perigeu (rad).

 

Fig. B-41 – Simulação do sensor GPS – anomalia média (rad).

 

d)      Sensor solar analógico

 

Para o teste do modelo do sensor solar analógico adotou-se a configuração da Plataforma Multi-Missão, na qual são fixados oito sensores no satélite, numa geometria octagonal. Utilizou-se um desvio padrão relativo de 0.02 e absoluto de 0.01. O ganho do sensor foi unitário. Alterou-se a anomalia média da órbita para 6,09 rad (kepel._2._3) para que os gráficos mostrassem o instante de ingresso do satélite na sombra da Terra (por volta de 185 s). Os comandos de configuração do sensor foram:

 

// >>>>>>>>>> sensor solar analógico

 

auxi = s_gaussian_noise (0);

      istat = set_css_number(8);

            css_rel = 0.02;

      css_abs = 0.01;

            auxi = sqrt(2.)/2.;

      vec2._1 = 0.5;    // +X +Y +Z

            vec2._2 = 0.5;

      vec2._3 = auxi;

            istat = set_coarse_sun_sensor (1, 0, vec2, css_ab, css_rel, 1);

      vec2._1 = -0.5;   // -X +Y +Z

            vec2._2 = 0.5;

      vec2._3 = auxi;

            istat = set_coarse_sun_sensor (2, 0, vec2, css_ab, css_rel, 1);

      vec2._1 = -0.5;   // -X -Y +Z

      vec2._2 = -0.5;

            vec2._3 = auxi;

      istat = set_coarse_sun_sensor (3, 0, vec2, css_ab, css_rel, 1);

            vec2._1 = 0.5;    // +X -Y +Z

      vec2._2 = -0.5;

            vec2._3 = auxi;

      istat = set_coarse_sun_sensor (4, 0, vec2, css_ab, css_rel, 1);

            vec2._1 = 0.5;    // +X +Y -Z

      vec2._2 = 0.5;

            vec2._3 = -auxi;

      istat = set_coarse_sun_sensor (5, 0, vec2, css_ab, css_rel, 1);

            vec2._1 = -0.5;   // -X +Y -Z

      vec2._2 = 0.5;

            vec2._3 = -auxi;

      istat = set_coarse_sun_sensor (6, 0, vec2, css_ab, css_rel, 1);

            vec2._1 = -0.5;   // -X -Y -Z

      vec2._2 = -0.5;

            vec2._3 = -auxi;

      istat = set_coarse_sun_sensor (7, 0, vec2, css_ab, css_rel, 1);

            vec2._1 = 0.5;    // +X -Y -Z

      vec2._2 = -0.5;

            vec2._3 = -auxi;

      istat = set_coarse_sun_sensor (8, 0, vec2, css_ab, css_rel, 1);

 

A Figura B-42 mostra o fator de sombra obtido pela função earth_shadow, enquanto que a Figura B-43 apresenta as leituras dos 8 sensores solares. Conforme pode ser visto nesta figura, os sensores 1, 2, 5 e 6 encontram-se do lado oposto ao Sol, e, portanto, suas leituras apresentam apenas um ruído de fundo. Conclui-se desta figura que o Sol encontra-se provavelmente no quadrante –X +Y +Z. No exemplo mostrado na Figura B-44 adotou-se uma velocidade angular no eixo z de 1 rotação a cada 100 segundos.

 

Fig. B-42 – Fator de sombra da Terra utilizado no modelo do sensor solar.

 

5, 6, 7, 8

 

4

 

3

 

1

 

2

 
 

Fig. B-43 – Leitura dos 8 sensores solares analógicos, com velocidade angular nula.

 

5, 6, 7, 8

 

4

 

3

 

1

 

2

 

Fig. B-44 – Leitura dos 8 sensores solares analógicos, com velocidade angular de 1 ciclo a cada 100 segundos.

 

e)      Unidade inercial

 

A unidade inercial testada consiste de giros sem desalinhamento, com erro de fator de escala igual a 10-7 nos três eixos, viés de 5 10-9 rad/s nos três eixos, random drift não correlacionado de 10-8 rad/s, e random walk de 4 10-10 rad/s3/2. Acrescentou-se uma velocidade angular de 3,6o/s no eixo x, como visto na listagem a seguir.

 

w._1     = 2*pi/100.;

w._2     = 0;

      w._3     = 0;

      auxi     = s_gaussian_noise (0);

      axis_dir = identity(1.);

      sc_er._1 = 1.e-7;

      sc_er._2 = 1.e-7;

      sc_er._3 = 1.e-7;

      bias._1  = 5.e-9;

      bias._2  = 5.e-9;

      bias._3  = 5.e-9;

      drift    = identity(1.e-9);

      rand_wk  = identity(4.e-10);

 

      istat = set_inertial_unit (axis_dir, sc_er, bias, drift, rand_wk);

 

            As Figuras B-45 a B-47 mostram as leituras da unidade inercial, em unidades de grau por hora, nos eixos cartesianos x, y e z do satélite, respectivamente. Subtraiu-se no gráfico da leitura do eixo x o valor de 3,6o/s para que a escala ficasse pequena.

 

Fig. B-45 – Leitura da velocidade angular na direção x (subtraída de.3,6o/s).

 

Fig. B-46 – Leitura da velocidade angular na direção y da unidade inercial.

 

Fig. B-47 – Leitura da velocidade angular na direção z da unidade inercial.