índiceitem superior

item anteriorpróximo item

 

3 - Funções do simulador de atitude

 

            O simulador de atitude foi implementado na linguagem C, e os protótipos das funções estão definidos no arquivo de cabeçalho attdyn.h. O arquivo de biblioteca a ser unido ao programa executável denomina-se attdyn.lib. As funções estão agrupadas segundo sua aplicação na simulação. Tem-se, assim, funções destinadas ao fornecimento de torques de controle (ou mesmo de perturbações) de origem externa; funções para fornecimento de torques de controle internas por meio de rodas de reação ou volantes de inércia; funções para fornecimento da geometria e dinâmica de apêndices articulados ou giratórios, funções para a definição de propriedades do satélite, e funções destinadas à configuração do propagador de atitude. A dinâmica dos apêndices articulados ou giratórios foi implementada de forma a não depender do tempo. Portanto ela não altera, ao contrário das rodas e volantes de inércia, o número de graus de liberdade (variáveis de estado) da planta. Em outras palavras, pressupõe-se que o torque aplicado na interface entre o apêndice e o corpo do satélite seja nulo, o que evita a necessidade de se integrar separadamente o movimento do satélite e do apêndice. Isto não acarreta perda de generalidade, uma vez que, se houver um torque nesta interface, pode-se supor que este apêndice seja um volante de inércia, o que irá permitir a integração separada. Contudo, neste caso, é necessário que este apêndice possua simetria de inércia radial (como um volante), e que sua massa e inércia sejam adicionadas ao corpo principal do satélite. Somente o momento angular relativo entre eles será integrado. Um satélite do tipo dual-spin no qual a velocidade angular da parte rotativa não sofre acelerações (ou torques), pode ser modelado como um apêndice articulado. Igualmente, painéis solares giratórios podem ser considerados apêndices articulados, já que sua velocidade de rotação é constante (torque líquido nulo). Isto não significa, em absoluto, que a conservação da quantidade de movimento angular seria violada na ausência de torques externos. Acelerações e desacelerações na velocidade angular dos painéis são compensadas por uma reação contrária no corpo principal do satélite, sem ser necessária a descrição do torque nesta interface. A vantagem desta modelagem é permitir que os apêndices possam ser modelados com assimetria de massa. De fato, a implementação da dinâmica leva em conta as alterações na inércia do conjunto, bem como na alteração do centro de massa do satélite devido ao movimento do apêndice.

 

            Antes de descrever as funções do simulador, convém mencionar os ciclos de tempo utilizados pelo integrador de atitude. Os torques utilizados pelo integrador podem possuir dinâmica de curto período (torques de reação das rodas, efeitos da geometria dos painéis na dinâmica, etc.), de médio período (atuação dos propulsores, atuação das bobinas) ou ainda de longo período (perturbações ambientais). É relativamente difícil classificar os torques efetivamente modelados como pertencentes a uma ou outra categoria, uma vez que não foi definido exatamente o que é um efeito de curto ou longo período. Um torque pode ser classificado como médio período e apresentar oscilações aleatórias de curto período, por exemplo. Por outro lado, os requisitos de operação em tempo real exigem que o cálculo destes efeitos seja otimizado com relação ao tempo de processamento. Para não descumprir este requisito, uma vez estes cálculos podem exigir processamento elevado, conclui-se que os torques devem ser atualizados no maior intervalo de tempo possível. Isto significa que este intervalo deve ser, ao mesmo tempo, pequeno o suficiente para garantir continuidade da resposta no tempo, e grande o suficiente para reduzir o esforço de processamento.

 

            Internamente um integrador numérico de passo fixo possui igualmente ciclos de tempo: há o passo de integração, o ciclo de integração e o período de integração, mostrados na Figura 3.1. O passo de integração é o menor intervalo de tempo no qual as equações da dinâmica serão avaliadas. O ciclo de integração é o intervalo no qual deseja-se conhecer o estado da dinâmica, uma vez que a integração nos passos é realizada sem controle externo. Cada ciclo de integração corresponde a vários passos de integração. Finalmente, o período de integração é o intervalo de tempo que se deseja simular. Tipicamente, passos de integração de atitude situam-se entre milésimos e décimos de segundo. Ciclos de integração são compatíveis com ciclos de controle e situam-se entre décimos de segundo e poucos segundos. Períodos de integração em geral duram de alguns minutos a algumas horas. Estes intervalos não devem ser confundidos com o tempo de processamento, que é a duração de execução do programa. No caso de simuladores em tempo real, é necessário garantir que o tempo de processamento seja inferior ao período de integração.

 

Fig. 3.1 – Intervalos de tempos presentes no integrador numérico de atitude.

 

            Parece óbvio, portanto, que a atualização das informações de torque sejam baseadas elas também nestes ciclos, de forma a otimizar o tempo disponível para o processamento. Implementou-se, assim, formas distintas de atualizar estas informações, que seguem a dinâmica temporal.

 

            Efeitos de curto período são atualizados durante os passos de integração por meio de funções de retorno (callback function). Genericamente passa-se o nome da função (callback) que calcula a derivada temporal deste efeito como argumento de uma função, e o integrador faz atualizações desta variável com base na derivada.

 

            Efeitos de médio período são atualizados durante os ciclos de integração, por meio de funções de atribuição ou definição. Trata-se de funções que recebem valores como parâmetros e registram estes valores, que permanecem constantes durante todo o ciclo de integração, até que sejam novamente atualizados pelo programa.

 

            Efeitos de longo período são atualizados durante períodos de integração, que envolvem vários ciclos. O período de atualização deve ser informado ao simulador por meio de uma função, e o simulador promoverá o cálculo do torque somente ao fim de cada período. Cada torque calculado, seja automaticamente ou fornecido pelo programador, segue apenas um destes ciclos. Torques de controle, por exemplo, podem ser atualizados somente a cada ciclo de integração, mas não podem ser calculados nos passos de integração.

 

            Um programa típico escrito em C e que utilize as funções descritas aqui possui a seguinte forma geral:

 

// inclusão dos cabeçalhos

#include "att_pro.h"

 

void main () // programa principal

{

// declaração de variáveis

...

// chamadas às funções de configuração do satélite e integrador

...

// malha de integração

      while (t < t_end) {

      // comando dos torques de controle

      ...

// armazenar o estado atual

...

// propagar a atitude

            sat_propagation();

      }

      // fim

      return;

}

 

            A utilização de funções de configuração permitem que, ao se iniciar a propagação da atitude (função sat_propagation), todas as variáveis necessárias à integração já estejam definidas, e, portanto, não é necessário passar argumentos para a integração. Além disso, implementou-se também funções de retorno dos valores atribuídos, de tal forma que, em qualquer ponto do programa, pode-se ter acesso às informações utilizadas nas definições ou os principais resultados calculados pelo integrador. As funções implementadas para a configuração do satélite e do propagador de atitude são descritas a seguir, agrupadas por aspectos funcionais:

 

·        Torque externo de controle ou perturbação não modelada

·        Torques externos em bobinas

·        Torques externos em propulsores

·        Torques internos em rodas de reação

·        Torques internos em amortecedores de nutação

·        Propriedades do satélite

·        Parâmetros do integrador de atitude

·        Parâmetros da atitude

·        Propagador de atitude

·        Cálculo de efemérides