terça-feira, 3 de novembro de 2026

Modelo não linear F16

Untitled
O modelo não-linear encontra-se disponível no livro do Stevens e Lewis, Airfract Control and Simulation. Possuo as 2ª e 3ª edições do livro, e não há variação no código existente entre elas. O código disponibilizado no livro para a dinâmica não linear do F16 está escrito em Fortran e para facilitar um pouco a vida eu a transcrevi para o Matlab. Hoje em dia com a IA você consegue fazer isso num tapa, mas a versão por mim programada pode ser encontrada no meu github por meio deste link. O modelo utiliza o referencial NED (North-East-Down). Você pode, por exemplo, utilizar o ENU (East-North-Up), caso deseje, por questões de opção de referencial, mas isso não consta no programação realizada em Matlab.
Há de convir que eu procurei tentar separar o que pega no sistema de modelagem matemática. Tentei separar em subsistemas de modo a deixar a programação separada em massa, momentos de inercia, coeficientes aerodinâmicos, influência de momento rotor (turbina, por exemplo), entre outros, e deixar as equações de força, momento, cinemática e dinâmica um pouco mais direto para quem deseja entender o passo a passo da modelagem.
A modelagem considera a terra plana, mas dá para realizar algumas adaptações nesse código de modo a considerar a terra esférica (e as influências de Corioli e força centrífuga) na modelagem. Isso é um preciosismo, mas para a tarefa de obtenção de malhas de controle por agora não tem muuuuito ganho.
Considerações de carater geral:
  • As condicionantes de massa em uma aeronave, drone com propulsão sólida/líquida varia com o passar do tempo, pelo consumo do agente propulsor. No caso da dinâmica F16 modelado e programado no livro do Lewis, essa massa não varia. No seu programa mais refinado, para a dinâmica que você irá desenvolver de modo mais profissional, leve em consideração as variações de massa total do seu sistema. Se seu sistema possui baterias elétricas, essa variação não tem fundamentação, pois não há variação mássica e apenas consumo de energia;
  • Equivalentemente, há alteração de momento de inércia do seu sistema com variação da condição de voo (flaps baixados, variações devido às deflexões de empenas, devido à própria variação de massa, alijamento de algum partes não necessárias mais durante o voo). Isso deve ser levado em consideração na sua abordagem quando da simulação para o caso mais geral;
  • Além disso, em se considerando a terra esférica, deve-se considerar variações no parâmetro de gravidade com a latitude, como mesmo abordado no livro do Lewis;
  • Os parâmetros aerodinâmicos (tabelas aerodinâmicas) e as de desempenho do turbina do F16 vêm diretamente das tabelas presentes no livro do Lewis. No caso de sua simulação de aeronave, drone você tem que derivar essas tabelas aerodinâmicas por CFD, análise numérica ou qualquer outro tipo aplicável. Aqui eu não fiz juízo de valor sobre se elas estão corretas ou se os seus parâmetros possuem equivalência com o mundo real. Apenas as usei;
  • A equação para o F16 já foi construída tendo por base o parâmetro t, que num caso geral toma por referência o consumo ou alguma máquina de estados do sistema em condição após certo instante de tempo, por exemplo.
Existem alguns códigos disponíveis na internet, até com novas tabelas aerodinâmicas. Existe também alguns trabalhos, livros e afins que consideram o modelo do F16 uma base para desenvolvimento e estudos na área de controle, otimização numérica, simulação de dinâmica etc. Esse é o código, como dito anteriormente, escrito por mim, e se tiver erro, faz parte. Me aponte onde, por favor, que eu ajusto tão logo ele seja a mim chegado.
O modelo foi escrito basicamente seguindo as diretrizes disponíveis no livro. O código a seguir irá esclarecer as etapas do desenvolvimento. É possível observar que existem alguns comentários no código, que fazem referência direta à equação tal do livro, disponível na página tal. Segue o código.
Figura 1: Num contexto mais geral, a sua função matemática irá cuspir uma massa, peso e matriz J, referente ao momento de inércia do sistema, condizente com a condição de voo em que o sistema se encontra. No fim das contas, é um parâmetro dependente do parâmetro t.
Figura 2: Parâmetros específicos da aeronave F16 apresentados no livro do Lewis. Num sistema complexo, esses parâmetros podem, e com certeza, devem variar.
Figura 3: Estado instantâneo do sistema para as variáveis de estado e controle.
Figura 4: Análise do sistema num pré-cálculo de variáveis que serão empregadas no transcorrer do código.
Figura 5: Modelo aerodinâmico do sistema na condição ISA + 0 apresentado no livro do Lewis. Para um modelo mais completo, é interessante realizar a inserção do parâmetro de temperatura local para adaptar para as demais ISA's.
Figura 6: Modelo propulsivo do F16 apresentado pelo Lewis. Aqui o buraco é mais embaixo num sistema complexo, em se considerando rendimento, momento angular induzido entre outros parâmetros. No livro do Lewis está tudo basicamente em formato de tabela.
Figura 7: Etapa de processamento dos parâmetros aerodinâmicos. Em sistemas não lineares é comum encontrar tabelas e análise nesse formato, mais ou menos complexas, e levando em considerações as diversas fases de uma aeronave, drone em seus mais diversos estágios de voo.
Figura 8: Equações de Força do sistema.Ela está diferente daquela apresentada no livro do Lewis de modo a deixar o desenvolvimento mais direto com as equações disponíveis.
Figura 9: Equações de cinemática. Aqui a coisa não muda muito do que já existe. Tem que se levar em considerações a possibilidade de divisão por zero em alguns termos. No futuro, interessante modificar para quaternions para evitar problemas numéricos.
Figura 10: Equações de momento. Observe a consideração de momento induzida pelos motores. No caso mais geral, há também a dinâmica do momento de inércia , que será derivado a posteriori em outro post com mais detalhes de como o fazer matematicamente.
Figura 11: Equações de navegação, tendo por referência o padrão NED. Fica a critério do cliente aqui apresentar os parâmetros derivados.
Figura 12: Saídas de interesse, a critério do desenvolvedor e das malhas as quais ele deseja obter para o desempenho do seu sistema.
Bom, esse é omodelo simplificado do F16 disponível no livro do Lewis. É possível, por exemplo, criar um s-function no Simulink ou mesmo derivar, bloco a bloco, para no próprio Simulink, para deixar a coisa mais impessoal. O código gera os parâmetros apresentados no livro, quando da verificação de modelo. Há um pequeno "erro" para a variável , desprezíveis quando da análise de um contexto mais geral e de testes para aprendizado do problema. Vi alguns códigos e coisas do tipo em C++ na internet e também em Matlab. Quero deixar disponível no blog apenas para consulta futura minha, caso se faça necessário.
Ah, para entender melhor as funções que são chamadas durante o programa, clica no link, deixa de preguiça e olha dentro das pastas para você entender o que foi feito. É isso aí. Vlw.

Nenhum comentário:

Postar um comentário