UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA ANTONIO DA SILVA SILVEIRA TÉCNICAS DE CONTROLE LQG/LTR E FUZZY APLICADAS AO VEÍCULO AÉREO NÃO TRIPULADO: AEROSONDE DM: 02 / 2008 UFPA / ITEC / PPGEE Campus Universitário do Guamá Belém-Pará-Brasil 2008 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA ANTONIO DA SILVA SILVEIRA TÉCNICAS DE CONTROLE LQG/LTR E FUZZY APLICADAS AO VEÍCULO AÉREO NÃO TRIPULADO: AEROSONDE Dissertação submetida à Banca Examinadora do Programa de Pós-Graduação em Engenharia Elétrica da UFPA para a obtenção do Grau de Mestre em Engenharia Elétrica UFPA / ITEC / PPGEE Campus Universitário do Guamá Belém-Pará-Brasil 2008 ________________________________________________________________________ S587t Silveira, Antonio da Silva Técnicas de controle LQG/LTR e fuzzy aplicadas ao veículo aéreo não tripulado : Aerosonde / Antonio da Silva Silveira; orientador, José Augusto Lima Barreiros.- 2008. Dissertação (Mestrado) – Universidade Federal do Pará, Instituto de Tecnologia, Programa de Pós-Graduação em Engenharia Elétrica, Belém, 2008. 1. Controle automático. 2. Aviões - sistemas de controle 3. Sistemas difusos. I. Título. CDD – 22. ed. 629.89 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA TÉCNICAS DE CONTROLE LQG/LTR E FUZZY APLICADAS AO VEÍCULO AÉREO NÃO TRIPULADO: AEROSONDE AUTOR: ANTONIO DA SILVA SILVEIRA DISSERTAÇÃO DE MESTRADO SUBMETIDA À AVALIAÇÃO DA BANCA EXAMINADORA APROVADA PELO COLEGIADO DO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA DA UNIVERSIDADE FEDERAL DO PARÁ E JULGADA ADEQUADA PARA OBTENÇÃO DO GRAU DE MESTRE EM ENGENHARIA ELÉTRICA NA ÁREA DE SISTEMAS DE ENERGIA APROVADA EM: 25 / 02 / 2008 BANCA EXAMINADORA: _________________________________________________________________________________ Prof. Dr. JOSÉ AUGUSTO LIMA BARREIROS (ORIENTADOR – UFPA) _________________________________________________________________________________ Prof. Dr. CARLOS TAVARES DA COSTA JÚNIOR (CO-ORIENTADOR – UFPA) _________________________________________________________________________________ Prof. Dr. ANDRÉ MAURÍCIO DAMASCENO FERREIRA (MEMBRO – CEFET / PA) _________________________________________________________________________________ Profa. Dra. BRIGIDA RAMATI PEREIRA DA ROCHA (MEMBRO – UFPA) _________________________________________________________________________________ Prof. Dr. JORGE ROBERTO BRITO DE SOUZA (MEMBRO – UFPA) _________________________________________________________________________________ Prof. Dr. ORLANDO FONSECA SILVA (MEMBRO – UFPA) _________________________________________________________________________________ Prof. Dr. WALTER BARRA JÚNIOR (MEMBRO – UFPA) VISTO: _________________________________________________________________________________ Prof. Dr. EVALDO GONÇALVES PELAES (COORDENADOR DO PPGEE / ITEC / UFPA) UFPA / ITEC / PPGEE Dedicatória Dedico este trabalho ao meu avô, Euzébio Orlando da Mota Silveira, que infelizmente se foi quando eu ainda estava na graduação. Tenho certeza que, onde quer que ele esteja, sem dúvida, deve estar muito contente pela conclusão deste trabalho... Tanto quanto eu fico quando me lembro dele. Agradecimentos Agradeço a dedicação e apoio dado por minha esposa, Aline Silveira, que contribuiu com este trabalho, desde sua concepção, quando iniciamos o mesmo durante as disciplinas do curso de mestrado. Trabalhamos juntos enquanto a idéia ainda estava se consolidando, e chegamos a elaborar juntos, a primeira versão, na forma de um artigo, que posteriormente se tornou esta dissertação. Agradeço, também, aos meus pais, Antonio e Leda, e a minha irmã, Luciana, pela motivação, incentivo, patrocínio e muitas vezes, até auxílio técnico e teórico, quando eram obrigados a ler e ouvir durante horas, minhas histórias de dissertação e aviação, e me ajudar a conduzir alguma tarefa relacionada ao meu trabalho. Todos os meus amigos, de alguma forma, me apoiaram e incentivaram, mesmo quando nem se quer tinham ciência disso, mas em especial, gostaria de agradecer aos amigos Cleison Daniel Silva, Rafael Bayma e ao professor e amigo, Max Rothe-Neves, que muito me ensinaram e participaram na minha formação. Agradeço também, aos amigos aeromodelistas do Aeroclube do Pará, com quem aprendi bastante durante os divertidos finais de semana em que brincamos de piloto, mesmo que remoto. Além deles, agradecimento especial ao professor e orientador Barreiros, meu co-orientador Tavares, Prof. Orlando (Nick), Prof. Jorge Brito e ao Prof. Walter Barra – eles são os principais responsáveis pela minha formação na área de sistemas e controle. Finalizando, gostaria de agradecer o patrocínio da CAPES, que financiou meus estudos durante o curso do mestrado, e juntamente, agradecer a equipe do Programa de Pós-Graduação da Universidade Federal do Pará. Sumário 1 Introdução...............................................................................................................1 2 Física do processo, geodésia e navegação .........................................................5 2.1 Cinemática e dinâmica de corpos rígidos ..........................................................5 2.1.1 Cinemática vetorial......................................................................................5 2.1.2 Dinâmica de corpos rígidos.......................................................................12 2.2 Geodésia .........................................................................................................16 2.3 Navegação terrestre ........................................................................................19 2.3.1 Frames de referência e sistemas de coordenadas....................................19 2.3.2 Sistema sexagesimal e posição na Terra..................................................20 2.3.3 Método de navegação adotado.................................................................21 2.4 Aerodinâmica básica........................................................................................22 2.4.1 Aerodinâmica da seção de um aerofólio ...................................................22 3 Aerosim 1.2, introdução aos UAVs e ao Aerosonde .........................................26 3.1 Aerosim 1.2......................................................................................................26 3.1.1 Interface ....................................................................................................27 3.2 Introdução aos UAVs .......................................................................................29 3.3 Aerosonde UAV ...............................................................................................31 3.3.1 Estudo da dinâmica do Aerosonde ...........................................................32 3.3.1.1 Dinâmica longitudinal..........................................................................38 3.3.1.2 Dinâmica lateral / direcional................................................................43 4 Visão geral dos sistemas de controle de aeronaves ........................................48 4.1 Especificações de pólos/modos.......................................................................49 4.2 Sistemas de aumento de estabilidade (SAS)...................................................50 4.2.1 Pitch SAS ..................................................................................................51 4.2.2 SAS Lateral-Direcional ou Yaw Damper ...................................................52 4.3 Sistemas de aumento de controle (CAS).........................................................53 4.3.1 Pitch-Rate CAS .........................................................................................54 4.4 Pilotos Automáticos .........................................................................................55 4.4.1 Pitch-Attitude Hold.....................................................................................56 4.4.2 Altitude Hold ..............................................................................................56 4.4.3 Speed Hold ...............................................................................................57 4.4.4 Roll Angle Hold..........................................................................................58 4.5 Técnicas de controle robusto multivariável ......................................................58 4.5.1 Robustez e estabilidade ............................................................................59 4.5.2 Especificações de desempenho no domínio da freqüência ......................60 4.5.3 LQG...........................................................................................................61 4.5.3.1 LQR ....................................................................................................63 4.5.3.2 Filtro de Kalman..................................................................................64 4.5.4 LQG/LTR...................................................................................................67 4.6 Sistema de Controle Lateral do Aerosonde UAV.............................................69 4.6.1 LQG/LTR Lateral do Aerosonde................................................................73 4.7 Sistema de Controle Longitudinal do Aerosonde UAV ....................................80 4.7.1 LQG/LTR Longitudinal do Aerosonde .......................................................82 5 Controladores fuzzy de Altitude, de Direção e o Sistema de Navegação .......89 5.1 Controlador fuzzy de Altitude...........................................................................89 5.2 Controlador fuzzy de direção/heading .............................................................92 5.3 Sistema de navegação ....................................................................................94 5.4 Simulações com o piloto automático completo ................................................96 5.4.1 Simulação 1: na região de estabilidade e sem perturbações ....................97 5.4.1.1 Planejamento da missão ..................................................................101 5.4.1.2 Teste dos controladores com o modelo não-linear ...........................105 5.4.1.3 Simulação da rota: Sobrevôo em Belém ..........................................109 5.4.2 Simulação 2: com variação de parâmetros, perturbações e fora da região de estabilidade programada.............................................................................112 6 Conclusão Geral e Sugestões para novos trabalhos......................................116 Referências Bibliográficas ...................................................................................119 APÊNDICE A - Instalação do Aerosim 1.2 para MATLAB 6 ou superior...........121 APÊNDICE B – Controlador LQG/LTR Lateral do Aerosonde ...........................123 APÊNDICE C – Controlador LQG/LTR Longitudinal do Aerosonde..................127 APÊNDICE D – Controlador fuzzy de Altitude ....................................................132 APÊNDICE E – Controlador fuzzy de Direção.....................................................134 APÊNDICE F – Gerador de waypoints .................................................................136 APÊNDICE G – Sistema de Navegação ...............................................................137 ANEXO A – Software de Configuração do Aerosonde UAV ..............................139 ANEXO B – Software de Trim e Linearização do Aerosonde ............................145 Lista de Figuras 2. 1: Derivada de um vetor em um frame em rotação. ................................................7 2. 2: Velocidade e aceleração com frames em movimento. ........................................8 2. 3: Geoid e definições de altura..............................................................................18 2. 4: Modelo esferoidal oblato da Terra.....................................................................18 2. 5: Longitude e latitude em relação ao Equador e o meridiano de Greenwich. ......21 2. 6: Seção de um aerofólio e principais parâmetros. ...............................................23 2. 7: Definição das superfícies de controle, de ângulos e eixos aerodinâmicos........24 3. 1: Interface da biblioteca de blocos do Aerosim 1.2 no Simulink...........................27 3. 2: Fotografia e modelo gráfico tridimensional do Aerosonde UAV. .......................31 3. 3: Diagrama de simulação no Simulink do Aerosonde tipo caixa preta.................32 3. 4: Resposta temporal do ângulo de bank. .............................................................33 3. 5: Resposta temporal de heading..........................................................................33 3. 6: Resposta temporal de φ para entrada nos ailerons de -0,0073 rad..................34 3. 7: Resposta temporal de φ do modelo não-linear com os valores de entrada trimados. ............................................................................................................36 3. 8: Resposta temporal da velocidade relativa (airspeed) para o ponto de operação em 23 m/s. .........................................................................................................37 3. 9: Resposta temporal do ângulo θ para o ponto de operação de trimagem. ........37 3. 10: Resposta temporal de α e θ ao doublet no elevator e modo natural shortperiod estimulado. ..............................................................................................39 3. 11: Resposta temporal de h e Va ao doublet no elevator......................................40 3. 12: Resposta temporal de α e θ ao doublet no throttle e oscilação em θ devido ao phugoid. ........................................................................................................41 3. 13: Resposta temporal de h e Va ao doublet no throttle. Phugoid estimulado. .....42 3. 14: Resposta de β e φ ao doublet aplicado no rudder. .......................................44 3. 15: Resposta de β e ψ ao doublet aplicado no rudder........................................45 3. 16: Resposta de φ e ψ ao doublet aplicado no rudder. .......................................45 4. 1: Estrutura de um Pitch SAS com realimentação do ângulo de ataque e pitch rate. ...........................................................................................................................51 4. 2: Estrutura de um Yaw Damper. ..........................................................................52 4. 3: Perda de sustentação durante o roll influenciando na dinâmica longitudinal e lateral. ................................................................................................................54 4. 4: Diagrama de um possível pitch-rate CAS..........................................................55 4. 5: Diagrama de blocos de um piloto automático tipo Pitch-Attitude Hold. .............56 4. 6: Diagrama de blocos de um piloto automático de altitude com sub-controlador de ângulo de pitch...................................................................................................57 4. 7: Diagrama de blocos de um Speed Hold e Altitude Hold na mesma malha de controle. .............................................................................................................57 4. 8: Estrutura do controlador LQG. ..........................................................................62 4. 9: Estrutura da planta com observador de estados. ..............................................66 4. 10: Diagrama de blocos do controlador LQG/LTR (Zarei et al.; 2006). .................68 4. 11: Ganhos principais do sistema original da dinâmica lateral do Aerosonde.......72 4. 12: Ganhos principais balanceados em DC e com inclinação de -20 dB/década..72 4. 13: Magnitude de 1 m (ω ) , para limitar σ nas altas freqüências................................73 4. 14: Ganhos principais de CΦ ( s) L com Filtro de Kalman e rf = 10 2 . .........................74 4. 15: Resposta ao degrau aplicado em rφ do sistema em M.F. com Filtro de Kalman. ...........................................................................................................................75 4. 16: Erro de estimação dos estados tendendo a zero, exceto por ψ na linha preta tracejada. ...........................................................................................................75 4. 17: Diagrama de simulação do Simulink e análise do erro de estimação de estados...............................................................................................................76 4. 18: Ganhos principais do sistema com LQG/LTR. ................................................78 4. 19: Resposta ao degrau do sistema com LQG/LTR e sinal de controle................78 4. 20: Ganhos principais inferior e superior do sistema longitudinal original. ............81 4. 21: Ganhos principais do sistema aumentado com pré-compensador. .................81 4. 22: Ganhos principais do sistema aumentado em M.A. com o Filtro de Kalman...83 4. 23: Resposta temporal ao degrau aplicado em rθ do sistema em M.F. com o Filtro de Kalman. .........................................................................................................83 4. 24: Resposta temporal ao degrau aplicado em rV a do sistema em M.F. com o Filtro de Kalman. .........................................................................................................84 4. 25: Erros de estimação dos estados do sistema com o Filtro de Kalman. ............84 4. 26: Ganhos principais do sistema com LQG/LTR. ................................................86 4. 27: Resposta ao degrau aplicado em rθ do sistema em M.F. com LQG/LTR e o sinal de controle. ................................................................................................87 4. 28: Resposta ao degrau aplicado em rVa do sistema em M.F. com LQG/LTR e o sinal de controle. ................................................................................................87 5. 1: Diagrama de blocos do controlador fuzzy de Mamdani.....................................90 5. 2: Funções de pertinência de entrada do controlador. ..........................................91 5. 3: Funções de pertinência de saída do controlador...............................................91 5. 4: Funções de pertinência de entrada do controlador. ..........................................93 5. 5: Funções de pertinência da saída do controlador...............................................93 5. 6: Representação gráfica do método de triangulação para obtenção da trajetória ψ ref .....................................................................................................................95 5. 7: Diagrama completo de simulação no Simulink..................................................99 5. 8: Diagrama interno do bloco 1. ..........................................................................100 5. 9: Diagrama interno do bloco 2. ..........................................................................100 5. 10: Diagrama interno do bloco 3. ........................................................................100 5. 11: Diagrama interno do bloco 4. ........................................................................100 5. 12: Diagrama interno do bloco 5. ........................................................................101 5. 13: Diagrama interno do bloco 7. ........................................................................101 5. 14: Rota que deverá ser percorrida passando por cinco waypoints. ...................102 5. 15: Rota gerada pelo waypoint_gen.m. ...............................................................104 5. 16: Resposta temporal do controle de θ e φ com zoom nos primeiros 4 s de simulação. ........................................................................................................105 5. 17: Resposta temporal de Va para o teste dos controladores com asas niveladas. .........................................................................................................................105 5. 18: Resposta temporal da simulação com doublet aplicado em φref . ..................106 5. 19: Resposta temporal de h e intervalo marcando o momento em que θ reduz e Va aumenta. .................................................................................................108 5. 20: Resposta temporal de φ, θ , β , e α no controle de altitude e direção. ..........108 5. 21: Resposta temporal de Va e ψ no controle de altitude e direção. .................109 5. 22: Gráfico 3-D da rota percorrida pelo Aerosonde UAV no Sobrevôo em Belém. .........................................................................................................................110 5. 23: Gráfico 2-D da rota percorrida pelo Aerosonde UAV no Sobrevôo em Belém. .........................................................................................................................110 5. 24: Variação da altitude ao longo da simulação. .................................................111 5. 25: Variação de ψ ao longo da simulação. .........................................................111 5. 26: Variação de Va ao longo da simulação.........................................................111 5. 27: Velocidades dos ventos sul e oeste e da turbulência usada na simulação. ..112 5. 28: Rota 3-D percorrida pelo Aerosonde submetido a perturbações atmosféricas e variação de parâmetros. A altitude dos waypoints entre 250 e 300 m . ...............113 5. 29: Gráfico 2-D da Simulação 1 e 2 juntas para comparação entre simulação com e sem perturbações e variações de parâmetros. .............................................114 5. 30: Direção e Altitude foram afetadas pelos ventos e turbulências. ....................114 5. 31: Va e Vamédia ao longo da simulação com perturbações e variação de parâmetros. .........................................................................................................................115 Lista de Tabelas 2. 1: Convenções de sinais para as superfícies de controle aerodinâmicas. ............25 3. 1: Pólos, fatores de amortecimento, freqüências e constantes de tempo do modelo longitudinal. ........................................................................................................42 3. 2: Pólos, fatores de amortecimento, freqüências e constantes de tempo da dinâmica lateral. .................................................................................................47 4. 1: Tipos comuns de sistemas de aumento de estabilidade, de controle e pilotos automáticos........................................................................................................49 4. 2: Pólos de malha fechada do sistema com o Filtro de Kalman ............................76 4. 3: Em cinza, os pólos M.F. do Aerosonde aumentados pelo pré-compensador e modificados pelo controlador. Em branco, os pólos adicionados pelo LQG/LTR. ...........................................................................................................................79 4. 4: Pólos de M.F. do sistema aumentado com o Filtro de Kalman. ........................85 4. 5: Em cinza, os pólos M.F. do Aerosonde aumentados pelo pré-compensador e modificados pelo controlador. Em branco, os pólos adicionados pelo LQG/LTR. ...........................................................................................................................88 Resumo Este trabalho é um estudo sobre sistemas de controle de vôo de aviões, que aborda desde um resumo teórico sobre a física do processo, aerodinâmica, navegação terrestre e geodésia, até o projeto de controladores LQG/LTR e fuzzy, para compor um piloto automático testado em simulações com um modelo não-linear da planta, o veículo aéreo não tripulado, Aerosonde UAV. Além disto, um sistema de navegação é projetado para simular o planejamento e seguimento de uma rota de vôo préestabelecida em duas simulações, uma com perturbações meteorológicas e variação de parâmetros do modelo, e outra em condições ideais. O que garante o bom desempenho deste piloto automático, mesmo quando testado em condições adversas, tal como em pontos de operação diferentes do qual foi projetado, é a utilização do método LQG/LTR nos mais baixos níveis da malha de controle, compondo os controladores longitudinal e lateral do Aerosonde, que atuam diretamente no comando das principais superfícies de controle aerodinâmicas e na potência do motor da aeronave. O método LQG/LTR usufrui das propriedades do Regulador Linear Ótimo Quadrático (LQR) com realimentação total dos estados, que por sua vez, é garantidamente robusto e estável. Além disto, o método LQG/LTR também utiliza o Filtro de Kalman como estimador de estados e para filtrar dinâmicas indesejáveis de alta freqüência, sendo o projeto baseado em análises no domínio da freqüência dos ganhos principais do sistema. Já na camada intermediária da malha de controle, são utilizados controladores fuzzy do tipo Mamdani para controlar a altitude e direção da aeronave através de um mapeamento estático das variáveis erro de altitude e direção. As saídas destes controladores fuzzy servem de referência para os controladores LQG/LTR longitudinal e lateral. Na camada mais alta da malha de controle, está presente o sistema de navegação e coordenação de vôo, que monitora e determina a trajetória a ser percorrida pela aeronave, passando estas informações como referência aos controladores fuzzy. Desta forma, o sistema completo usufrui da fusão de técnicas modernas e inteligentes de controle procurando atender uma vasta região de operação sem a necessidade de utilizar ganhos programáveis. Palavras-chave: controle de vôo, aviões, método LQG/LTR, controle fuzzy, piloto automático, Aerosonde, UAV, sistema de navegação. Abstract This work is a study about aircraft flight control systems that covers from a theoretical resume about the process physics to the design of LQG/LTR and fuzzy controllers, to build an autopilot tested in simulations with a non-linear model of the plant, the unmanned aerial vehicle, Aerosonde UAV. Furthermore, a navigation system is designed for the planning and tracking of a pre-established flight route in two simulations, one with meteorological disturbances and parameter variations of the model, and another in ideal conditions. What guarantees a good performance of this autopilot, even when tested in adverse conditions, as in different operation points from where it was designed for, is the use of the LQG/LTR method inside of low levels of the control loop, composing the longitudinal and lateral Aerosonde controllers, that acts directly over the principal aerodynamic command surfaces and the engine power of the aircraft. The LQG/LTR method usufructs of properties from the Linear Quadratic Regulator (LQR) with full state feedback, with it´s guaranteed robustness and stability. Along with that, the LQG/LTR method also uses the Kalman Filter as a state estimator and to filter high frequency undesirable dynamics, being the design process based on frequency domain analisys of the principal gains of the system. And inside of an intermediary level of the control loop, fuzzy controllers of Mamdani kind are used to control altitude and direction of the aircraft, by means of a stactic mapping of altitude and heading error variables. The outputs of these fuzzy controllers are used as reference inputs for the LQG/LTR longitudinal and lateral controllers. In the higher level of the control loop, is where the navigation and flight coordination system are present, monitoring and determining the right trajactory to be tracked by the aircraft, passing that information as reference inputs for the fuzzy controllers. In this way, the complete system usufructs of the fusion between modern and intelligent control techniques, looking forward to attend a wide operational range without the need to use scheduled gains. Keywords: flight control, aircraft, LQG/LTR method, fuzzy control, autopilot, Aerosonde, UAV, navigation system. Capítulo 1 Introdução Desde o início da história da aviação, deu-se ênfase em construir aviões controláveis pela pilotagem mais do que pela estabilidade inerente dos mesmos. As dificuldades em controlar os primeiros aviões assim como o crescimento na duração e distâncias dos vôos, rapidamente, motivaram o desenvolvimento de sistemas de controle automático adequados ao ramo da aviação. Atualmente, tanto o tempo, a distância e as fases de vôo são as mais diversas possíveis, exigindo constante adaptação dos sistemas de controle da aeronave. As técnicas e aplicações da engenharia de controle e sistemas na solução de problemas no ramo da aviação são bem diversas, podendo-se encontrar na literatura especializada métodos baseados em teoria de controle clássico, moderno, inteligente e pela fusão dessas teorias. Técnicas de controle clássico, sozinhas, apresentam certas limitações no controle de aeronaves. Isto se deve ao grande número de variáveis de entrada e saída (muitas vezes fortemente acopladas), à necessidade de boa experiência e intuição para definir a estrutura dos controladores, ao fechamento ordenado e sucessivo das malhas de realimentação e à sintonia de boa parte dos controladores por tentativa e erro. A teoria de controle moderno tem tido impacto significativo na indústria aeronáutica nos últimos anos, utilizando técnicas como: alocação de pólos, modelo de referência, inversão dinâmica, LQG/LTR (Linear Quadratic Gaussian/LoopTransfer-Recovery) e LQ com realimentação da saída (Stevens e Lewis; 2003). Uma das principais vantagens em utilizar tais técnicas é que o projeto é baseado diretamente no modelo por variáveis de estado, que normalmente contém mais informação sobre o sistema do que a descrição por função de transferência baseada apenas na relação entrada-saída (modelo tipo caixa preta). Outra vantagem é a descrição do sistema por equações matriciais, que ao contrário das técnicas clássicas, podem computar todos os ganhos de controle simultaneamente e todas as malhas de realimentação podem ser fechadas ao mesmo tempo, permitindo projetos mais rápidos e diretos. 1 Técnicas de controle inteligente aplicando, por exemplo, lógica fuzzy, também têm sido usadas em trabalhos recentes, tais como: Sugeno et al. (1993), no controle de um helicóptero não tripulado; Cavalcante (1994), na elaboração de um sistema de navegação para helicóptero não tripulado; Doitsidis et al. (2004), Mileva at al. (2005) e Silveira et al. (2007), com simulações de pequenos aviões tripulados e não tripulados utilizando controladores fuzzy do tipo Mamdani (Passino e Yurkovich; 1998). Nesses últimos, principalmente, apesar de funcionarem e fornecerem boas respostas temporais, os controladores são sintonizados por tentativa e erro, ou baseando-se no funcionamento de controladores clássicos para sintonizar controladores fuzzy do tipo Mamdani, o que remete aos problemas de definição das estruturas dos controladores e fechamentos sucessivos de malhas de realimentação, sem provas matemáticas das margens de estabilidade e de robustez do sistema completo. As técnicas mais recentes procuram fundir as teorias clássicas, modernas e inteligentes na tentativa de usufruir de suas vantagens e suprir as necessidades com o que a outra possa oferecer. Neste trabalho, o estudo é voltado à fusão das técnicas inteligentes e modernas utilizando sistemas fuzzy do tipo Mamdani que analisam as saídas da planta e comandam compensadores LQG/LTR que garantem a robustez e estabilidade do sistema levando em consideração margens de incertezas do modelo e ruídos de medição. Outra característica interessante do LQG/LTR é que este dispensa grande intuição sobre a estrutura do compensador, fornecendo-a de forma direta. Na indústria aeronáutica costuma-se utilizar gain-scheduling (ou ganhos programáveis) devido a variações nas fases de vôo e alterações nos mais diversos parâmetros da aeronave. Gain-scheduling se baseia em determinar ganhos (ou parâmetros) do controlador para vários pontos de operação da aeronave e usando um sistema supervisório, selecionar estes ganhos quando a aeronave estiver no respectivo ponto de operação. No entanto, dependendo da quantidade significativa destas variações, o trabalho de obtenção dos modelos lineares locais para o projeto dos controladores e mais o projeto em si, pode ser exaustivo, necessitando-se em alguns casos, de centenas de projetos. Com o uso do LQG/LTR pretende-se utilizar um único modelo linear para os projetos levando em consideração as margens de incertezas do modelo e assim garantir sua utilização em uma grande faixa de operação. 2 Para este trabalho, a aeronave utilizada nas simulações não possui um envelope (ou faixa de operação) velocidade-altitude muito grande. Ela é um micro veículo aéreo não tripulado (micro UAV, do inglês, Unmanned Aerial Vehicle) que opera apenas em velocidades subsônicas. Mesmo assim, executa boa parte das fases de vôo como qualquer outra aeronave tripulada, como: decolagem, subida até altitude de cruzeiro, cruzeiro, descida, aproximação e pouso. Logo, por gainscheduling simplesmente, a varredura de um grande número de pontos de operação e uma grande tabela de ganhos teria de ser obtida, diferentemente da solução por LQG/LTR junto com controle fuzzy que será abordada. Além da preocupação em cobrir uma vasta região de operação da aeronave, aviões são sistemas multivariáveis bastante complexos, com um grande número de variáveis que não são medidas pelos sensores e com forte acoplamento dos canais de entrada e saída, sendo então necessário estimar algumas variáveis e garantir o desacoplamento dos canais citados sob condições de restrições que otimizem o esforço de controle e minimizem os efeitos das dinâmicas indesejadas. O LQG/LTR utiliza então o Filtro de Kalman para estimar as variáveis e permitir a realimentação total de estados para o LQR (Regulador Linear Ótimo Quadrático, do inglês, Linear Quadratic Regulator). A parte final do trabalho define o piloto automático, interliga os sistemas de controle e estabilização da aeronave (sistemas de baixo nível com LQG/LTR) aos controladores fuzzy de Mamdani e aos sistemas de navegação e coordenação de vôo. O sistema de navegação é responsável por informar dados de posição do veículo no globo terrestre e o de coordenação, por permitir o planejamento dos vôos e determinar e passar comandos aos sistemas de baixo nível. Para simular tais sistemas, como: a atmosfera, campo magnético, forma do planeta Terra, gravidade, Sistema de Posicionamento Global (GPS, do inglês, Global Positioning System) e o modelo não-linear do avião com seis graus de liberdade (6DOF, do inglês, Six Degrees Of Freedom), será utilizada uma ferramenta para o software MATLAB (http://www.mathworks.com) chamada Aerosim Blockset, da empresa U-Dynamics (http://www.u-dynamics.com). 3 O texto deste trabalho, além deste capítulo introdutório, foi estruturado da seguinte forma: Capítulo 2: revisão de conceitos sobre cinemática e dinâmica de aeronaves, aerodinâmica básica, forças e momentos que agem sobre os aviões, geodésia e navegação terrestre. Capítulo 3: apresentação do ambiente de simulação e da ferramenta Aerosim 1.2; introdução aos UAVs e ao Aerosonde UAV que será utilizado nas simulações; apresentação do modelo matemático linear do Aerosonde UAV, estudo de sua dinâmica e análise dos modos naturais. Capítulo 4: visão geral dos sistemas de controle, de estabilização e pilotos automáticos; revisão teórica de técnicas de controle robusto multivariável e análise de sistemas multivariáveis no domínio da freqüência; projeto dos controladores LQG/LTR de controle e estabilização lateral e longitudinal. Capítulo 5: projeto dos controladores fuzzy de Mamdani de altitude e direção que comandam os sub-controladores LQG/LTR; desenvolvimento do sistema de navegação; resultados das simulações com o piloto automático completo; Capítulo 6: conclusões gerais e sugestões para continuações do trabalho. 4 Capítulo 2 Física do processo, geodésia e navegação O objetivo deste capítulo é familiarizar o leitor aos tópicos considerados essenciais ao entendimento da engenharia aeroespacial, dando ênfase a partes relevantes da mecânica clássica voltada ao tratamento de veículos com seis graus de liberdade (6-DOF) através de uma representação por ângulos de Euler e quatérnions. Além desses tópicos, simulações de veículos em movimento sobre e ao redor da Terra requerem um resumo sobre geodésia, gravitação e navegação. Finalizando, um estudo sobre aerodinâmica básica fornecerá a base necessária para compreensão dos capítulos seguintes, sendo considerada indispensável ao entendimento dos mesmos. 2.1 Cinemática e dinâmica de corpos rígidos A cinemática e dinâmica de corpos rígidos não considera estruturas flexíveis, logo, as aeronaves neste trabalho sempre mantém todas as suas partes (não móveis) na mesma posição relativa. O que, de acordo com Stevens e Lewis (2003), na maioria dos casos é suficiente para simulações e projetos de sistemas de controle de vôo quando não se está preocupado em aliviar cargas aerodinâmicas e controlar modos estruturais. 2.1.1 Cinemática vetorial A cinemática estuda o movimento de corpos sem levar em conta os mecanismos causadores do movimento. O movimento de objetos físicos pode ser descrito por vetores em três dimensões utilizando as seguintes definições: Frame de Referência: corpo rígido ou conjunto de pontos rigidamente acoplados usados para estabelecer distâncias e direções, podendo estar em movimento ou ser um referencial inercial; Vetor: objeto geométrico abstrato que possui magnitude e direção; 5 Sistema de coordenadas: sistema de medidas para localização de pontos num espaço definido em um frame de referência. Notações Algumas notações importantes também devem ser destacadas, tal como em Stevens e Lewis (2003): p A / B ≡ vetor posição do ponto A com respeito ao ponto B v A / i ≡ velocidade do ponto A em relação ao frame i (Fi ) b v A / i ≡ derivada de v A / i calculada em Fb v cA / i ≡ componentes de v A / i no sistema de coordenadas c b v cA / i ≡ componentes no sistema de coordenadas c da derivada em Fb Exemplo dos componentes de um vetor: ⎡ xb ⎤ ⎡ vx ⎤ b ⎢ ⎥ ⎢ ⎥ p A / B = ⎢ yb ⎥ e v = ⎢v y ⎥ ⎢⎣ zb ⎥⎦ ⎢⎣ vz ⎥⎦ b são componentes de p e v em um sistema de coordenadas b. Vetor de velocidade angular A derivada de um vetor pode ser definida de maneira análoga à definição de derivada de uma grandeza escalar: ⎡ p (t + δ t ) − p A/ B (t ) ⎤ dp A / B = lim ⎢ A / B ⎥ δ t →0 dt δt ⎣ ⎦ Se p A / B é um vetor posição, sua derivada é um vetor velocidade somente se a derivada for calculada no frame no qual B é um ponto fixo. A Figura 2.1 exemplifica a derivada de um vetor em um frame rotativo com respeito a um vetor de referência. A derivada de w tomada no frame Fr é não nula se w estiver mudando de direção ou magnitude quando observado de Fr , sendo independente de qualquer translação entre os dois frames. A mudança de direção pode ser obtida utilizando o teorema da rotação (Stevens e Lewis; 2003). Na Figura 2.1, seja ŝ um vetor unitário paralelo ao eixo de rotação no tempo t , para um 6 observador em Fr , w se torna um novo vetor w + δ w no tempo t + δ t devido a rotação δφ . Calculando-se a rotação com δφ positivo em torno de ŝ , fornece: δ w ⎛ δφ ⎞ ≈ sˆ ×w δ t ⎜⎝ δ t ⎟⎠ quando δ t → 0 , r ( ) = sˆφ × w w ( ) A quantidade sˆφ compõe o vetor velocidade angular instantânea, ωb / r de Fb , com respeito ao frame Fr . Se w também muda em magnitude em Fb , este efeito é considerado na equação: r = bw + ωb / r × w w (2.1) A equação (2.1) é chamada de equação de Coriolis (Stevens e Lewis; 2003) e é considerada essencial no desenvolvimento de equações de movimento baseadas nas leis de Newton, aplicando-se a qualquer quantidade física representada por vetores sem a necessidade de avaliar as derivadas em função do tempo. É importante destacar algumas propriedades do vetor velocidade angular: 1) é um vetor único que relaciona as derivadas de um vetor tomadas em dois frames diferentes; 2) satisfaz a condição de movimento relativo ωb / a = −ωa / b ; 3) é aditivo sobre múltiplos frames, ωc / a = ωc / b + ωb / a ; 4) sua derivada é a mesma em ambos os frames, aω b / a = bω b / a . Figura 2. 1: Derivada de um vetor em um frame em rotação. 7 Velocidade e Aceleração em frames em movimento A Figura 2.2 apresenta um ponto P movendo-se com respeito aos frames Fa e Fb em relação aos respectivos pontos fixos O e Q . Para relacionar as velocidades e acelerações nos dois frames, primeiro obtêm-se os vetores de posição e as derivadas em relação ao frame Fa . rP / O = rQ / O + rP / Q a rP / O = a rQ / O + a rP / Q (2.2) Aplicando a equação de Coriolis (2.1) em (2.2), v P / a = v Q / a + v P / b + ωb / a × rP / Q (2.3) A equação (2.3) é importante para os cálculos nos sistemas de navegação inercial das aeronaves, quando se tem diferentes sistemas de coordenadas envolvidos, por exemplo, o sistema de coordenadas do corpo da aeronave onde o sistema de navegação está imerso, o do planeta Terra e um ponto de referência no espaço tridimensional para onde a aeronave deve se dirigir. Figura 2. 2: Velocidade e aceleração com frames em movimento. A derivada da equação (2.3) fornece a aceleração de P em relação a Fa . Analisando a equação (2.3) da esquerda para a direita, os dois primeiros termos são definidos no frame Fa e fornecem a aceleração em relação ao mesmo. O terceiro termo está definido em outro frame e necessita que se aplique a equação (2.1) de Coriolis. No quarto termo, a velocidade angular torna-se vetor de aceleração angular, tal que: 8 a P / a = aQ / a + ( a P / b + ωb / a × v P / b ) + α b / a × rP / Q + ωb / a × ( v P / b + ωb / a × rP / Q ) Reagrupando os termos, tem-se: a P / a = a P / b + aQ / a + α b / a × rP / Q + ωb / a × (ωb / a × rP / Q ) + 2ωb / a × v P / b aceleração aceleração aceleração centrípeta relativa de Coriolis (2.4) aceleração total aceleração de transporte de P em Fa α : vetor de aceleração angular; a: vetor de aceleração de translação. As equações (2.3) e (2.4) são importantes para compor os sistemas de navegação inerciais e a partir delas é que são possíveis estimações de variações angulares e de translado da aeronave. Quatérnions e vetores A teoria dos quatérnions foi desenvolvida por W. R. Hamilton (1805-1865) na tentativa de generalizar números complexos em espaços tridimensionais. Hoje, ela é vastamente aplicada em simulações, robótica, navegação, controle de atitude e computação gráfica (Stevens e Lewis; 2003) devido às vantagens que sua representação fornece, tal como contornar problemas de singularidade matricial. Os quatérnions são apresentados de forma bastante resumida, pois o foco deste trabalho utiliza as representações por ângulos de Euler. Hamilton introduziu a seguinte forma aos quatérnions: x0 + x1i + x2 j + x3 k e com a generalização dos complexos no espaço tridimensional i 2 = j 2 = k 2 = ijk = −1, ij = k , jk = i, ki = j = −ik Quatérnions obedecem às leis da álgebra, exceto a multiplicação que é não comutativa: r = ( p0 + p1i + p2 j + p3k ) × ( q0 + q1i + q2 j + q3 k ) r = p0 q0 + p0 q1i + p0 q2 j + p0 q3 k + p1q0i + p1q1i 2 + ... podendo ser escrito na forma: ⎡ r0 ⎤ ⎡ p0 ⎢r ⎥ ⎢ p ⎢ 1⎥ = ⎢ 1 ⎢ r2 ⎥ ⎢ p2 ⎢ ⎥ ⎢ ⎣ r3 ⎦ ⎣ p3 − p1 p0 p3 − p2 − p2 − p3 p0 p1 − p3 ⎤ ⎡ q0 ⎤ p2 ⎥⎥ ⎢⎢ q1 ⎥⎥ − p1 ⎥ ⎢ q2 ⎥ ⎥⎢ ⎥ p0 ⎦ ⎣ q3 ⎦ 9 Interpretando i, j , k como vetores unitários, os quatérnions podem ser tratados como ( q0 + q ) , onde q é a parte vetorial do quatérnion com os componentes q1 , q2 , q3 ao longo de i, j , k : ⎡p ⎤ p = ⎢ r0 ⎥ ⎣p ⎦ ⎡q ⎤ q = ⎢ 0r ⎥ ⎣q ⎦ onde as componentes são tomadas em um sistema de referência r. A multiplicação de dois quatérnions é indicada pelo operador “ ∗ ”: p0 q0 − p ⋅ q ⎡ ⎤ p∗q = ⎢ r⎥ ⎣⎢( p0q + q0p + p × q ) ⎦⎥ Pelo tratamento vetorial aos quatérnions, as operações com os mesmos se dão da mesma forma que com os vetores. Para um estudo mais completo, aconselha-se o livro de Stevens e Lewis (2003). Análise matricial da cinemática: transformações lineares Considerando a equação matricial v = Au onde v e u são matrizes (n x 1) e A , uma matriz (n x n) constante, cada elemento de v é combinação linear dos elementos de u . Logo, v = Au é uma transformação linear da matriz u . Supondo que em outra análise se utilize um novo grupo de variáveis através de uma transformação linear reversível com uma matriz de transformação L , nãosingular, tal que exista uma L−1 , as novas variáveis correspondentes a u e v são: u1 = Lu e v1 = Lv A nova relação de transformação entre as variáveis é: v1 = LAu = LAL−1u1 Matrizes de transformação são utilizadas para efetuar rotação de coordenadas tal como as rotações com ângulos de Euler e com quatérnions, assim como a conversão entre representações com ângulos de Euler para quatérnions, mostrada em (2.5) e vice-versa. q0 = ±(cos φ/2 cos θ/2 cosψ/2 + sen φ/2 sen θ/2 senψ/2) q1 = ±(sen φ/2 cos θ/2 cosψ/2 − cos φ/2 sen θ/2 senψ/2) q2 = ±(cos φ/2 sen θ/2 cosψ/2 + sen φ/2 cos θ/2 senψ/2) (2.5) q3 = ± (cos φ/2 cos θ/2 senψ/2 − sen φ/2 sen θ/2 cosψ/2) Em (2.5) tanto faz utilizar + ou - , desde que seja único de q0 a q3 . 10 Rotações de Euler Para melhor visualizar a orientação de aeronaves em um sistema de coordenadas cartesianas em relação a outro, a representação de Euler é muito útil. Descrita por três sucessivas rotações, no ramo aeronáutico as rotações de Euler são feitas em ordem específica em torno de cada um dos três eixos cartesianos ou planos de rotação. A forma de efetuar estas rotações é utilizar uma matriz de transformação chamada matriz cosseno de direção (2.6), que por questão de simplificação é apresentada diretamente neste trabalho apenas ressaltando que os elementos unitários e nulos correspondem à coordenadas que não mudam durante a rotação do sistema de coordenas “a” para o “b”: ⎡ xb ⎤ ⎡ cos μ ⎢ ⎥ ⎢ ⎢ yb ⎥ = ⎢ − senμ ⎢⎣ zb ⎥⎦ ⎢⎣ 0 senμ 0 ⎤ ⎡ xa ⎤ cos μ 0 ⎥⎥ ⎢⎢ ya ⎥⎥ 0 1 ⎥⎦ ⎢⎣ za ⎥⎦ (2.6) Utilizando a equação (2.6) já se pode efetuar uma rotação de coordenadas como uma sequência de rotações de planos. De praxe, na aviação, se executa as rotações, pela regra da mão direita e em ordem, através dos eixos z, y, x, conforme: - Rotação no eixo z: ângulo ψ positivo (yaw ou guinada); - Rotação no eixo y: ângulo θ positivo (pitch ou arfagem); - Rotação no eixo x: ângulo φ positivo (roll ou rolagem). Para melhor ilustrar, dá-se um exemplo utilizando um sistema de referência na Terra (sistema r) e outro fixo ao “corpo” da aeronave (sistema b, do inglês, bodyfixed). Utilizando a convenção NED (do inglês, North East Down), onde o eixo z é positivo apontado para baixo, a matriz de transformação pelas três rotações sucessivas é obtida por: 0 0 ⎤ ⎡cos θ 0 − senθ ⎤ ⎡ cosψ senψ 0 ⎤ ⎡1 ⎢ u = ⎢0 cos φ senφ ⎥⎥ ⎢⎢ 0 1 0 ⎥⎥ ⎢⎢ − senψ cosψ 0 ⎥⎥ u r ⎢⎣0 − senφ cos φ ⎥⎦ ⎢⎣ senθ 0 cos θ ⎥⎦ ⎢⎣ 0 0 1⎥ ⎦ b Cb / r : matriz de transformação Cb / r ⎡ cos θ cosψ ⎢ = ⎢( − cos φ senψ + senφ senθ cosψ ) ⎢⎣ ( senφ senψ + cos φ senθ cosψ ) cos θ senψ ( cos φ cosψ + senφ senθ senψ ) ( −senφ cosψ + cos φ senθ senψ ) − senθ ⎤ ⎥ senφ cos θ ⎥ cos φ cos θ ⎥⎦ (2.7) 11 A matriz de transformação (2.7) possibilita encontrar outras relações com rotações, como as que sofrem variações no tempo, podendo-se obter os componentes de velocidade e aceleração das aeronaves. Por exemplo: ω b b/r ωbb/ r ⎡φ ⎤ ⎛ ⎡0⎤ ⎢ ⎥ ⎜ = ⎢ 0 ⎥ + Cφ ⎜ ⎢⎢θ ⎥⎥ + Cθ ⎜ ⎢0⎥ ⎢0⎥ ⎝⎣ ⎦ ⎣ ⎦ 0 ⎡ P ⎤ ⎡1 ⎢ ⎥ ⎢ = ⎢Q ⎥ = ⎢0 cos φ ⎢⎣ R ⎥⎦ ⎢⎣0 − senφ ⎡0⎤⎞ ⎢0⎥⎟ ⎢ ⎥⎟ ⎢⎣ψ ⎥⎦ ⎟⎠ − senθ ⎤ ⎡ φ ⎤ ⎢ ⎥ senφ cos θ ⎥⎥ ⎢ θ ⎥ cos φ cos θ ⎥⎦ ⎢⎣ψ ⎥⎦ (2.8) onde, em (2.8), P, Q e R são símbolos padrões para denotar componentes de taxas de variação de roll, pitch e yaw respectivamente. 2.1.2 Dinâmica de corpos rígidos Nesta seção serão destacadas algumas equações de estados importantes para o entendimento da simulação e análise de movimento de aeronaves tal como as que são usadas pela ferramenta de simulação Aerosim. Para um estudo mais amplo, recomenda-se a leitura dos livros de Jan Roskam (1979), Uy-Loi Ly (1997) e Stevens e Lewis (2003). Movimento Angular Usando o CM (centro de massa) da aeronave como ponto de referência, a dinâmica rotacional pode ser separada da translacional (Stevens e Lewis; 2003). Sendo assim, para o estudo da dinâmica rotacional, dá-se um exemplo utilizando dois frames, Fi como referencial inercial e Fb fixo ao corpo rígido do veículo; v CM / i a velocidade do CM no frame inercial; ωb / i a velocidade angular de Fb com respeito a Fi e, M A,T a soma dos momentos aerodinâmicos e de propulsão sobre o CM. Seja o vetor de momento angular no frame inercial Fi , calculado no CM de um corpo rígido e denotado por h , sua derivada tirada no frame inercial é: i h = M A,T 12 Para determinar o vetor de momento angular, considere um elemento de massa δ m com vetor posição r relativo ao CM. Sua velocidade inercial é dada por: v = v CM / i + ωb / i × r O momento angular desse elemento de massa em relação ao CM é igual ao momento de translação em relação ao CM: δ h = r × vδ m = r × v CM / iδ m + r × (ωb / i × r ) δ m (2.9) Integrando (2.9) sobre todos os elementos de massa, fornece: h = ωb / i ∫ ( r ⋅ r ) dm − ∫ r ( r ⋅ ωb / i ) dm ω b b/r ⎡P⎤ = ⎢⎢Q ⎥⎥ ⎢⎣ R ⎥⎦ e (2.10) ⎡x⎤ r = ⎢⎢ y ⎥⎥ ⎢⎣ z ⎥⎦ b (2.11) Substituindo (2.11) em (2.10): ⎡ P ( y 2 + z 2 ) dm − Q xy dm − R xz dm ⎤ ∫ ∫ ⎢ ∫ ⎥ 2 2 b ⎢ h = Q ∫ ( x + z ) dm − R ∫ yz dm − P ∫ yx dm ⎥ ⎢ ⎥ ⎢ R ( x 2 + y 2 ) dm − P zx dm − Q zy dm ⎥ ∫ ∫ ⎣ ∫ ⎦ (2.12) As várias integrais nos componentes de (2.12) são definidas como momentos e produtos cruzados de inércia: ( ) Momento de inércia sobre o eixo x: J xx = ∫ y 2 + z 2 dm Produto cruzado de inércia: J xy ≡ J yx = ∫ xy dm Substituindo estas definições em (2.12), fornece: ⎡ J xx − J xy − J xz ⎤ ⎡ P ⎤ ⎢ ⎥ h = ⎢ − J xy J yy − J yz ⎥ ⎢⎢Q ⎥⎥ ≡ J bωbb/ i ⎢ − J xz − J yz J zz ⎥ ⎢⎣ R ⎥⎦ ⎣ ⎦ b (2.13) matriz de inércia A matriz J presente em (2.13) é conhecida como matriz de inércia de corpo rígido. Ela é uma matriz real, simétrica e normalmente, por simplicidade, considerada constante para corpos com distribuição de massa fixa, podendo ser calculada ou determinada experimentalmente. De posse de hb e diferenciando em relação a Fb , M A,T = i h = b h + ωb / i × h (2.14) 13 M bA,T = J b bω bb/ i + Ωbb/ i J bωbb/ i (2.15) onde Ωbb/ i é uma matriz de produto cruzado de ωbb/ i . Rearranjando a equação (2.15) se obtêm a equação de estados para a velocidade angular: ω bb/ i = ( J b ) ⎡⎣ M bA,T − Ωbb/ i J bωbb/ i ⎤⎦ −1 b (2.16) A equação de estados (2.16) é vastamente utilizada em simulação e análise de movimento de corpos rígidos podendo ser resolvida numericamente para ωbb/ i quando se tem a matriz de inércia e o vetor de torque previamente calculado. Equações de movimento de Euler A equação de estados de velocidade angular (2.16) toma uma forma mais simples quando a inversa da matriz de inércia for diagonal. A forma mais simples é conhecida como equações de movimento de Euler. Seja o vetor de torque com os componentes M bA,T ⎡A⎤ = ⎢⎢ m ⎥⎥ ⎢⎣ n ⎥⎦ as equações de Euler são: ( P = J y − J z ) QR Jx + A Jx ( J − J x ) RP + m Q = z Jy Jy ( R = J x − J y ) PQ Jz + (2.17) n Jz As equações em (2.17) envolvem permutação cíclica dos componentes de rotação angular e inércia, o que acarreta em um acoplamento inerente, pois, qualquer variação angular sobre dois eixos gera uma aceleração sobre o terceiro eixo. Este fenômeno é chamado de acoplamento inercial e será mais bem compreendido a partir do Capítulo 3, quando algumas análises são efetuadas para avaliar os acoplamentos do UAV Aerosonde. 14 Movimento de translação do CM O movimento de translação de um veículo sobre a Terra pode assumir duas formas de análise, uma mais completa, onde a rotação do planeta, achatamento dos pólos e variações na forma de sua superfície são consideradas e outra mais simples, que desconsidera estes fatores. De acordo com Stevens e Lewis (2003), a análise mais completa é necessária para simulações com precisão em veículos mais rápidos que 2000 ft/s (ou 2195 km/h) ou quando se deseja simular um sistema de navegação em longas distâncias. Neste trabalho, o UAV utilizado nas simulações não voará a mais de 100 km/h, descartando a necessidade da análise completa. Para simulação de aeronaves em baixa velocidade sobrevoando uma pequena região do planeta Terra sem a necessidade de alta precisão de posição, é aceitável negligenciar termos centrípetos e de Coriolis das equações, assumindo uma superfície plana e inercial. Deste modo, seja um frame Fv no veículo aéreo com velocidade angular nula relativa a um frame de referência inercial Fe , com ωb / v ≡ ωb / e e com o sistema geográfico de coordenadas em Fv , alinhado com um sistema plano tangente T nas vizinhanças do veículo. A atitude da aeronave pode ser descrita por ângulos de roll, pitch, yaw e uma matriz cosseno de direção Cb / n (corpo do veículo com respeito ao sistema geográfico, também chamado de sistema de navegação local que tem sua origem no CM do veículo): Cb / n = fn ( Φ ) e n b p CM / T = Cn / b v CM / e = H (Φ )ωb Φ b/e b b v CM /e = (2.18) 1 b FA,T + Cb / n g n − Ωbb/ e v bCM / e m ω bb/ e = ( J b ) ⎡⎣M bA,T − Ωbb/ e J bωbb/ e ⎤⎦ b −1 onde: pCM / T : posição do CM do veículo em relação a origem do sistema T ; v CM / e = e p CM / T : vetor de velocidade do CM em Fe ; ωb / e : velocidade angular de Fb relativo a Fe ; Φ : ângulos de Euler do sistema fixo ao corpo em relação ao sistema NED. 15 Levando em consideração o ar ao redor da aeronave, tem-se o vetor de velocidade relativa: v brel = v bCM / e − Cb / n vWn / e (2.19) com vW / e igual ao vetor velocidade do vento relativo a Fe . Nesta análise simplificada, o vetor aceleração gravitacional possui apenas um componente não nulo, g D = 9,80665 m/s2 : gt = [0 0 g D ] Organizando as equações de (2.18) em um vetor de estados, tem-se: n X T = ⎡( pCM /T ) ⎣⎢ T ΦT (v ) (ω ) T b CM / e T b b/e ⎤ ⎦⎥ Para se obter a equação do vetor de aceleração de translação do CM, derivase a equação (2.19) em relação ao frame fixo ao corpo da aeronave Fb eliminando v CM / e : b v rel = 1 b FA,T + g − ωb / e × v rel − e v W / e m (2.20) O último termo de (2.20) pode ser utilizado para injetar perturbações no modelo, tal como rajadas de ventos. Se igualado a zero, considerando ventos estáveis, e introduzindo componentes do frame Fb , a equação do vetor de aceleração será: b v brel = 1 b FA,T + Cb / n g n − Ωbb/ e v brel m (2.21) Nesta seção verificou-se que o comportamento de um veículo aéreo rígido é determinado pelas equações de força, momento e cinemática, tendo algumas outras dependências mais fracas não mencionadas neste trabalho e que estão acopladas as equações apresentadas. Algumas destas dependências não apareceram devido a simplificações no modelo escolhido para o planeta Terra, ficando mais evidente com o estudo da geodésia e da navegação terrestre. 2.2 Geodésia Geodésia é uma área da matemática que estuda a forma e a área da Terra, que é comumente descrita como um esferóide oblato, ou seja, com os pólos levemente achatados. Essa forma se desenvolveu quando a Terra ainda estava em 16 formação a partir de uma nuvem de gases que, devido ao efeito de rotação, concentrou maior força centrífuga na região equatorial do que na região dos pólos, causando o achatamento ou compressão de aproximadamente 0,3% em relação ao diâmetro equatorial (Jeppesen General Navigation Manual; 2005). Pesquisas mais recentes, baseadas em informações de satélites, apontaram que, na verdade, a Terra teria o formato levemente parecido ao de uma pêra, com seu maior diâmetro, de apenas algumas dezenas de metros a mais, ao sul da linha do equador. A questão é que para simular o movimento de um veículo aeroespacial ao redor da Terra é necessário ter um modelo matemático que a descreva. A partir das observações e medidas pelo estudo da geodésia, uma série de agências definiu diferentes modelos para a Terra. Por exemplo, alguns países europeus definiram o modelo ED50 (European Datum 1950), a França utilizou o NTF (Nouvelle Triangulation de France) do ano de 1970 e os Estados Unidos definiu o WGS-84 (World Geodetic System 1984), utilizado para a efeméride dos satélites do sistema GPS, atualmente mais utilizado no mundo e que é normalmente implantado nos diversos sistemas de navegação. Neste trabalho, o modelo utilizado é o WGS-84, que vem integrado aos diagramas de simulação do Aerosim no MATLAB. Como mencionado no final da seção 2.1.2, um simples esferóide de superfície plana seria suficiente para as simulações e projetos dos controladores, já o WGS-84 atende a simulações para grandes velocidades sobre grandes áreas da superfície do planeta, o que é mais que suficiente para cumprir os objetivos deste trabalho. Além da forma, é necessário o conhecimento de um modelo de gravitação e de rotação do planeta. A superfície equipotencial do campo gravitacional terrestre, que coincide com o nível médio do mar (m.s.l., do inglês, mean sea level) e que se estende continuamente abaixo dos continentes, é chamada de geoid. A distribuição irregular de massa da Terra faz com que o geoid seja uma superfície ondulada, conforme a Figura 2.3 apresenta. 17 Figura 2. 3: Geoid e definições de altura. Na Figura 2.3, vê-se que a noção de vertical local é definida a partir da direção com que a Terra atrai, por exemplo, um peso de prova, sendo normal à superfície do geoid e o ângulo que este forma com a normal do esferóide, chama-se deflexão vertical. O esferóide do WGS-84 tem seu centro localizado no CM da Terra e é dividido de um em um grau (1º) tanto para a latitude como para a longitude. Alguns parâmetros importantes deste modelo são apresentados na Figura 2.4: Figura 2. 4: Modelo esferoidal oblato da Terra. a ≡ 6378137, 0 m a −b f = ≡ 1/ 298, 257223563 a b = 6356752 m (a e= 2 − b2 ) 1/ 2 ≈ 0, 08181919 a ωE ≡ 7, 2921150 ×10−5 rad/s GM ≡ 3986004, 418 × 108 m3 /s2 18 onde a, f , b, e, ωE e GM são respectivamente: eixo semi-maior, achatamento, eixo semi-menor, excentricidade, taxa de rotação e a constante gravitacional da Terra. 2.3 Navegação terrestre Na seção 2.1, tratou-se de frames de referência e sistemas de coordenadas sem levar em conta as definições destes sistemas. Nesta seção, abordam-se as nomenclaturas mais comuns dos frames e sistemas de coordenadas assim como os sistemas de navegação e o método escolhido para efetuar a navegação do Aerosonde durante as simulações. 2.3.1 Frames de referência e sistemas de coordenadas Convenções NED e ENU NED (do inglês, north, east and down): convenção para sistemas de coordenadas que possuem seus eixos alinhados com o norte, leste e para baixo, onde “baixo” refere-se ao vetor normal ao esferóide (ver Figura 2.3); ENU (do inglês, east, north and up): similar ao NED mas com eixos alinhados com o leste, norte e para cima. Sistemas e frames ECI (do inglês, Earth-centered inertial): sistema de coordenadas com sua origem no CM da Terra, eixos no plano equatorial e ao longo do eixo de rotação. Um frame de referência no ECI é denotado por Fi , sendo um frame inercial não rotativo, mas que translada com o CM da Terra; ECEF (do inglês, Earth-centered, Earth-fixed): sistema de coordenadas com sua origem na superfície da Terra (sistema de plano tangente ou geográfico), eixos no plano equatorial e ao longo do eixo de rotação. Frames no ECEF são denotados por Fe ; Plano-tangente: sistema geográfico com sua origem na superfície do planeta e denotado pelo frame Ft ; 19 Vehicle-carried: sistema geográfico carregado dentro do veículo com sua origem no CM do mesmo e aqui denotado por frames Fv ; Vehicle body-fixed: sistema fixado ao corpo do veículo no seu CM e com eixos alinhados conforme a convenção NED ou ENU. Frame denotado por Fb ; Vehicle stability-axes e wind-axes: sistemas de coordenadas baseados nos eixos de estabilidade e do vento respectivamente, sendo que o primeiro tem seus eixos alinhados em relação ao veículo quando este encontra-se em vôo estável e nivelado, ou seja, variações angulares nulas ( P , Q , R = 0 ). O segundo refere-se aos ventos. Frames nestes sistemas são denotados por Fs e Fw , respectivamente. 2.3.2 Sistema sexagesimal e posição na Terra O sistema sexagesimal utiliza o fato de que uma rotação em sentido horário a partir do norte, leste, sul e oeste e de volta ao norte, é um círculo de 360º (Jeppesen General Navigation Manual; 2005). O norte é definido como 000º ou 360º, o leste como 090º, o sul 180º e o oeste 270º. Logo, as direções na Terra podem ser medidas em graus no sentido horário a partir do norte. Navegação é um processo fundamental quando se quer levar uma aeronave de um ponto a outro, sendo necessário o uso de sistemas de referência de posição sobre a superfície da Terra. Em uma superfície plana, uma posição pode ser precisamente definida utilizando um sistema de coordenadas cartesianas pelo uso de dois eixos perpendiculares, x e y. Mas para superfícies esféricas, é necessário utilizar coordenadas baseadas em ângulos, conhecidas como longitude e latitude. Definidas de forma semelhante ao sistema cartesiano, envolvem círculos mutuamente perpendiculares ao longo da superfície do planeta. Alguns destes círculos são importantes destacar: Equador: Grande Círculo cujo plano está a 90º do eixo de rotação da Terra dividindo-a em dois hemisférios (norte e sul). Ao longo do arco do Equador estão as direções leste e oeste; 20 Meridianos: são Semi-Grandes Círculos que unem os pólos norte e sul e cruzam o Equador a 90º. O meridiano de Greenwich é um dos mais conhecidos, pois é o meridiano principal que define o eixo longitudinal, análogo ao eixo y. Figura 2. 5: Longitude e latitude em relação ao Equador e o meridiano de Greenwich. Na Figura 2.5 ilustra-se um exemplo de como obter a posição de um ponto A a x quilômetros ao leste do Meridiano de Greenwich e y quilômetros ao norte do Equador ou, em termos de longitude e latitude, β º de Greenwich e α º do Equador. Em resumo, na navegação com veículos aéreos, os conceitos de longitude e latitude são a forma mais comum de levar a aeronave de um ponto a outro de forma precisa, sendo para isto, necessário conhecer a posição inicial e final e ter instrumentos que possibilitem conhecer direção, altitude, velocidade, direção dos ventos, etc., para poder determinar a direção até o ponto desejado e o deslocamento necessário. 2.3.3 Método de navegação adotado Neste trabalho, um simulador de GPS é utilizado para determinar a posição do UAV Aerosonde e assim permitir a navegação através dos waypoints, que são pontos específicos de longitude, latitude e altitude pelos quais a aeronave deve passar durante o vôo. O método adotado é baseado no de Randy C. Hoover (2004), que utiliza um gerador de waypoints para que o usuário, em uma fase de pré-vôo, 21 insira uma lista de waypoints que posteriormente são utilizados pelo piloto automático, o qual obtém a trajetória para o waypoint e monitora se o mesmo é alcançado. O algoritmo usado para a navegação do Aerosonde lida com o erro entre a posição desejada e a posição atual, gerando uma trajetória longitudinal e lateral a ser percorrida. A trajetória longitudinal é obtida simplesmente pela subtração da altitude desejada pela atual. Já a trajetória lateral, é um pouco mais complexa e utiliza um método por triangulação. O método da triangulação consiste em subtrair o valor de dois vetores e calcular a tangente inversa do resultado (Hoover; 2004), fornecendo diretamente a direção ou heading correto para o waypoint. Os cálculos do sistema de navegação são explicados em detalhes no Capítulo 5 juntamente com o projeto do controlador fuzzy de Mamdani de direção. 2.4 Aerodinâmica básica Os modelos matemáticos utilizados neste trabalho contêm dados aerodinâmicos da aeronave como um todo. No entanto, é importante compreender como estes dados são obtidos, por partes, examinando os efeitos das forças e momentos que agem sobre as superfícies do avião, começando pelo estudo dos aerofólios. 2.4.1 Aerodinâmica da seção de um aerofólio A forma de um aerofólio determina suas propriedades aerodinâmicas, e para ilustrar os parâmetros que as afetam, a Figura 2.6 apresenta uma seção de um aerofólio em duas dimensões e supostamente de comprimento infinito. 22 Figura 2. 6: Seção de um aerofólio e principais parâmetros. A Figura 2.6 ilustra um aerofólio submetido a uma corrente de ar ao redor de sua superfície com linhas tangentes a ela garantindo um fluxo estável e constante. A linha de corda (chord line) é a linha de referência para descrever a forma do aerofólio, definindo-o como simétrico ou assimétrico. A linha média ou linha de abaulamento (camber line) divide a superfície superior e inferior em distâncias iguais, definindo a espessura do aerofólio. Estes parâmetros combinados definem a faixa de velocidade da aeronave. Imaginando um eixo perpendicular ao plano da Figura 2.6, que passa através da linha de corda e inclinando o aerofólio pela rotação nesse eixo, forma-se o ângulo α , conhecido como ângulo de ataque. Com a variação deste ângulo, duas forças aerodinâmicas perpendiculares são alteradas, o empuxo (que garante a sustentação e elevação) e o arrasto devido à fricção do ar com a superfície do aerofólio, conforme visto na Figura 2.6. O ângulo de ataque muitas vezes é confundido com o ângulo de pitch θ , no entanto, a diferença é que o ângulo de pitch é formado pela rotação no eixo y em relação ao sistema de referência da aeronave, do tipo bodyfixed, como mencionado na seção 2.3.1, ou seja, é o ângulo entre o eixo longitudinal da aeronave e o horizonte. Já o ângulo de ataque, é a inclinação em relação ao fluxo de ar ou à direção do vento (Wind-axes). Um exemplo clássico para visualizar essa diferença é o caso de um avião em aproximação para pouso. Normalmente, o avião se aproxima com o “nariz” levantado, por exemplo, com pitch θ = 10º , mas está descendo, o que é um fator aerodinâmico, logo, dependente do ângulo de ataque α . Este, só coincide com θ quando a força resultante no eixo vertical z for nula. Na análise lateral também ocorre certa confusão entre o ângulo de guinada (yaw) ψ e o ângulo de derrapagem (sideslip) β , sendo estes respectivamente análogos aos casos de θ e α . A Figura 2.7 apresenta tais diferenças. 23 Na Figura 2.7, além de se definir os ângulos aerodinâmicos, também são apresentados os eixos relativos ao vento incidente e o eixo de estabilidade, sendo esse último, o que define a direção do vôo (ou flight path). Na mesma figura, as três principais superfícies móveis de controle de um avião (sendo estas as únicas utilizadas neste trabalho) são ilustradas, e aqui apresentadas suas funções: Figura 2. 7: Definição das superfícies de controle, de ângulos e eixos aerodinâmicos. Ailerons: superfícies móveis localizadas nas asas que atuam simetricamente e são responsáveis pela rotação no eixo longitudinal x. Efetuam o movimento de rolagem (roll) denotado pelo ângulo φ ou ângulo de bank (bank angle); Profundor (elevator): superfície móvel localizada na cauda da aeronave no estabilizador horizontal responsável pela rotação no eixo lateral y. Efetua o movimento de arfagem (pitch) denotado pelo ângulo θ ; Leme (rudder): superfície móvel localizada na cauda da aeronave no estabilizador vertical responsável pela rotação no eixo z. Efetua o movimento de guinada (yaw) denotado pelo ângulo ψ de direção ou heading. 24 Além destas superfícies móveis, pode-se citar os flaps, slats, trens de pouso, etc, que por restrições de tempo, não são utilizadas neste trabalho e, para mais informações, recomenda-se a leitura da referência de Jan Roskam (1985). Outro comando comum em aviões motorizados é o acelerador (ou throttle), que varia a potência entregue ao motor da aeronave. A convenção de sinais para as superfícies de controle adotadas neste trabalho utiliza a convenção comum da indústria aeronáutica (Figura 2.7 e Tabela 2.1): Tabela 2. 1: Convenções de sinais para as superfícies de controle aerodinâmicas. Deflexão Sinal Efeito Elevator Para baixo Positivo Baixa o nariz da aeronave Rudder Para a esquerda Positivo Guinada do nariz para a esquerda Ailerons Aileron direito baixo Positivo Asa esquerda desce e a direita sobe Com o que foi abordado até o presente momento já se tem informação suficiente para seguir ao estudo da planta de controle e entender quais variáveis estão envolvidas nas simulações. Os principais ângulos e vetores conhecidos neste capítulo irão compor o vetor de estados que será derivado a partir do modelo não linear do Aerosonde, que é o veículo aéreo não tripulado apresentado no Capítulo 3. 25 Capítulo 3 Aerosim 1.2, introdução aos UAVs e ao Aerosonde Neste capítulo, abordam-se as funcionalidades do Aerosim, sigla para Aeronautical Simulation Blockset (ou, em português, Conjunto de blocos para Simulações Aeronáuticas), e suas principais características, faz-se uma introdução aos UAVs destacando os tipos e suas funções, finalizando-se com a apresentação da planta de controle, o Aerosonde. 3.1 Aerosim 1.2 O Aerosim encontra-se na versão 1.2 sendo um conjunto de ferramentas desenvolvidas para simulação de modelos dinâmicos não-lineares de aeronaves com 6-DOF. Desenvolvido e distribuído pela empresa Unmanned Dynamics (www.u-dynamics.com), que tem por objetivo prover softwares para UAVs e foi fundada em 2002 pelo engenheiro de controle de aeronaves, Marius Niculescu. O Aerosim é distribuído gratuitamente para fins educacionais no site da empresa. Essa ferramenta é composta de diversos blocos para o Simulink/MATLAB, da empresa MathWorks, e engloba uma biblioteca de modelos completos de aviões personalizáveis através da modificação de parâmetros. Dentre esses modelos, o modelo não-linear do Aerosonde está presente juntamente com alguns exemplos de simulações para facilitar o aprendizado e rapidamente familiarizar o usuário com a ferramenta. Além dos modelos de aeronaves, o Aerosim possibilita a imersão em um ambiente de simulação de uma atmosfera com ou sem ventos constantes, bem como simulação de rajadas de ventos e turbulências, e utiliza o modelo da Terra baseado no WGS-84. Proporciona meios de efetuar transformações para vários frames de referência, como body-axes, wind-axes, frames geográficos, ECI e ECEF; e blocos de conversão de unidades comuns utilizadas em engenharia aeronáutica. Podendo simular toda a dinâmica da aeronave assim como o ambiente ao redor dela, o Aerosim também conta com uma maneira de reduzir a abstração da simulação indo além das análises gráficas comuns, podendo exibir animações 26 tridimensionais ao conectar o Simulink/MATLAB ao simulador de vôo Microsoft Flight Simulator, distribuído pela empresa Microsoft, que fica responsável somente em exibir a simulação que ocorre no MATLAB. Pode-se, também, conectar um controlador de jogo tipo joystick para pilotar manualmente a aeronave através do Aerosim. O Aerosim requer a versão do MATLAB 6, ou mais recente. Sua instalação e ligação do mesmo ao simulador Microsoft Flight Simulator é explicada detalhadamente no APÊNDICE A. 3.1.1 Interface O Aerosim inclui ao Simulink as bibliotecas de blocos mostradas na Figura 3.1. Atenção especial é dada ao item de aviões completos (Complete Aircraft) onde se encontra o principal bloco utilizado neste trabalho, o de modelo de avião com 6DOF. Figura 3. 1: Interface da biblioteca de blocos do Aerosim 1.2 no Simulink. Na Figura 3.1, o bloco responsável pela simulação do modelo não-linear de avião com 6-DOF possui três entradas e quinze saídas para possibilitar uma infinidade de testes. Este bloco contém sub-blocos do pacote Aerosim interligando 27 os diversos modelos: do avião, da atmosfera e do geoid da Terra. Os canais de entrada/saída mais comuns e utilizados neste trabalho são: Controls: vetor de entrada 7x1 de controles do avião como: flaps, profundor, ailerons, leme, acelerador, mistura e ignição. Os controles aerodinâmicos estão em radianos, o acelerador vai de 0 a 1, a mistura é dada pela relação ar / fluxo combustível e ignição 0 ou 1 para desligado e ligado respectivamente; Winds: vetor de entrada 3x1 das componentes de velocidade dos ventos dadas em um frame de referência geográfico do tipo NED; RST: entrada booleana para efetuar reset nos estados da aeronave; States: saída com o vetor 15x1 de estados do avião, sendo as variáveis em ordem: posição (latitude, longitude e altitude), velocidade (u, v, w, em m/s), atitude (q0, q1, q2, q3, do quatérnion), variações angulares ( P, Q, R , em rad/s), massa de combustível (kg) e rotação do motor (RPM). A atitude em quatérnions pode ser diretamente convertida para ângulos de Euler utilizando os blocos de transformação que acompanham o Aerosim; Sensors: vetor 18x1 das saídas dos sensores, como: posição com GPS, velocidade com GPS, acelerômetros, giroscópios, dados atmosféricos e magnetômetro; VelW: vetor 3x1 de saída da velocidade do avião no sistema de referência wind-axes, contendo: velocidade do fluxo de ar, ângulo de derrapagem β e ângulo de ataque α ; Euler: saída do vetor 3x1 dos ângulos de Euler: roll, pitch e yaw; MSL: altitude do avião em relação ao nível do mar; AGL: altitude do avião acima do nível do solo (AGL, do inglês, Above Ground Level). O bloco da Figura 3.1 é uma generalização de um modelo com 6-DOF, sendo necessário alimentá-lo com parâmetros da aeronave e suas condições iniciais. Dando um duplo-clique com o mouse sobre o bloco, a tela de parâmetros se abre no Simulink. É importante ressaltar a função de alguns itens: Aircraft configuration file: arquivo de configuração da aeronave. Deve-se fornecer o caminho para o arquivo do tipo MAT do MATLAB que contém os dados da aeronave que são pertinentes a montagem e obtenção do seu modelo não linear. No caso deste trabalho, será utilizado o arquivo aerosondecfg.mat, pré-configurado com 28 os dados do UAV Aerosonde e mostrado no ANEXO A. Para construção de arquivos MAT personalizados, o Aerosim trás um script em formato m-file do MATLAB que “pergunta” ao usuário alguns dados da aeronave para gerar o arquivo de configuração. Para maiores informações, deve-se consultar o manual do usuário do Aerosim (www.u-dynamics.com); Initial position: vetor 3x1 de posição inicial da aeronave dado em latitude, longitude e altitude; Initial Velocities: vetor 3x1 de velocidade inicial da aeronave dado em componentes NED; Initial attitude: vetor 4x1 de atitude inicial dada em quatérnions. Pode-se utilizar o bloco de transformações do Aerosim para converter atitude em ângulos de Euler para quatérnions; Initial angular rates: vetor 3x1 de variações angulares iniciais ( P, Q, R ); Initial fuel mass: massa inicial da quantidade de combustível à bordo da aeronave (dada em quilogramas); Initial engine speed: velocidade inicial de rotação do motor (em RPM); Sample time: período de amostragem (em segundos). Com as informações apresentadas nesta seção pode-se ter uma idéia das principais funções disponíveis no Aerosim para promover as simulações deste trabalho. Tendo a ferramenta sido apresentada, passa-se ao estudo das aplicações em que simulações com veículos aéreos são utilizadas. 3.2 Introdução aos UAVs Os UAVs podem ser divididos em três categorias, os que voam de forma autônoma, os que são pilotados remotamente (RPVs, do inglês, Remotely Piloted Vehicle) e os que dependem de pilotagem remota em alguns trechos da missão, por exemplo, na decolagem e no pouso, mas seguem autônomos nos demais trechos. Normalmente, um sistema de UAV é composto de um veículo aéreo, uma ou mais estações de controle e monitoramento em solo, carga útil (doravante designada como payload) e um link de dados para troca de informações ar/solo (Introduction to UAV System; 2002). 29 Nenhuma operação com UAVs teria propósito se não fossem pelos payloads. Normalmente são os subsistemas mais caros dentro de um sistema de um UAV. Geralmente incorporado por câmeras para alta e baixa luminosidade, sistema de reconhecimento de alvo, marcadores a laser, radares, dispositivos de sensoriamento de variáveis ambientais e químicas, armas, etc. UAVs ganharam reconhecimento global pela sua integração efetiva em operações militares de defesa e ataque. Devido a seus motores de baixo ruído e difícil detecção visual ou por radares, tornaram-se elemento essencial nos campos de batalha. Além destas aplicações, os UAVs têm potencial em operações não militares, como: “no campo de monitoração ambiental, climatológica e biodiversidade; mapeamento; prospecção topográfica, mineral e arqueológica; levantamento de ocupação urbana e em áreas rurais; inspeção de linhas de transmissão, oleodutos e gasodutos; observação de obras e represas; monitoração de estradas e rios; geração e retransmissão de sinais de comunicação; operação em zonas de perigo ou de desastre; vigilância, busca e salvamento” (Ramos e Bueno; 2007). Estes veículos podem variar quanto à estrutura, tamanho e modelo, sendo os tipos mais comuns os aviões, helicópteros e dirigíveis. Alguns países podem ser citados como pioneiros na pesquisa e desenvolvimento de UAVs, como: Estados Unidos, Israel, Austrália e países europeus. No âmbito nacional, desde o início da década de 1980, começou-se a desenvolver pesquisas nessa área, conduzidas no Centro Técnico Aeroespacial (CTA). Desde então, diversos projetos passaram a ser desenvolvidos até os dias atuais, como exemplos: projeto Helix (1992-1995) para um helicóptero não tripulado da empresa Gyron Tecnologia com parceria de diversas universidades brasileiras e, culminando em 1996, no desenvolvimento do projeto AURORA (Autonomous Unmanned Remote Monitoring Robotic Airship), para um dirigível não tripulado (Ramos e Bueno; 2007); projeto ARARA (1999), sigla para Aeronaves de Reconhecimento Assistidas por Rádio e Autônomas, iniciado pela USP de São Carlos, utilizando aviões (Neris; 2001); projeto SiDeVAAN (2004), sigla para Simulação e Desenvolvimento de Veículos Aéreos Autônomos e Nãotripulados, realizado pela Universidade Federal de Minas Gerais (UFMG) com aviões (Campos et al.; 2007). 30 3.3 Aerosonde UAV O Aerosonde UAV é a aeronave escolhida para ser utilizada como planta a ser controlada neste trabalho. Isto se deve ao fato de que a ferramenta Aerosim já trás um modelo não-linear em blocos do Simulink para esta aeronave. O Aerosonde é desenvolvido e operado globalmente há mais de dez anos pelas empresas Aerosonde Pty Ltd (AePL) e Aerosonde North America (AeNA) (www.aerosonde.com). Este UAV foi desenvolvido com o intuito de operar em vôos econômicos, longos e a partir de qualquer região do planeta. Possibilitando vôos de até 32 horas, foi o primeiro UAV a cruzar o Oceano Atlântico em 1998 e a executar vôos dentro de furacões em 2005 e 2007 para estudo e predição dos mesmos. Com aproximadamente 3 metros de envergadura de asa e 13 quilogramas, o Aerosonde utiliza sistema de navegação por GPS e uma estação de monitoramento e comando em solo para ser operado. Permite payloads de até 2,3 quilogramas, velocidades de cruzeiro que variam de 60 km/h a 110 km/h, razão de subida de até 9 km/h e altitudes de até 6000 metros (20000 ft). Na Figura 3.2, são apresentadas duas imagens do Aerosonde, sendo a da esquerda uma fotografia real e a da direita, o modelo gráfico tridimensional da aeronave no simulador Microsoft Flight Simulator. Figura 3. 2: Fotografia e modelo gráfico tridimensional do Aerosonde UAV. 31 3.3.1 Estudo da dinâmica do Aerosonde Para o estudo da dinâmica do Aerosonde, uma análise em malha aberta fornece informações básicas para avaliar a estabilidade do sistema e como o mesmo se comporta quando submetido a pequenas perturbações. Na Figura 3.3 apresentase o diagrama de blocos de simulação no Simulink, do modelo não-linear do Aerosonde. O mesmo é considerado como um modelo tipo caixa preta apenas para testar seu comportamento em malha aberta e obter algumas conclusões sobre as respostas das simulações no contexto de estabilidade, para introduzir o conceito de “trimagem” (trim) que possibilitará a obtenção de modelos linearizados em pontos de operação específicos. Figura 3. 3: Diagrama de simulação no Simulink do Aerosonde tipo caixa preta. Executando a simulação do modelo da Figura 3.3, com a aeronave em malha aberta, durante 1 minuto, sem ventos e monitorando a dinâmica lateral do Aerosonde, ou seja, coletando as respostas para o ângulo de bank φ e de direção (heading) ψ , quando nas entradas (Controls) o vetor [-0.1 0 0 0.4] = [profundor ailerons leme acelerador] é aplicado, as respostas da Figura 3.4 e 3.5 são obtidas, mostrando a instabilidade na dinâmica lateral da planta mesmo com as superfícies de controle, ailerons e leme, estando niveladas e fixadas na posição neutra. 32 Figura 3. 4: Resposta temporal do ângulo de bank. Figura 3. 5: Resposta temporal de heading. A instabilidade na dinâmica lateral observada nas figuras 3.4 e 3.5 deve-se ao torque do motor que gera um movimento espiral em torno do eixo longitudinal x. Em 33 detalhes, o ângulo de bank aumenta demasiadamente e o avião entra em “parafuso” dando diversas voltas completas de 0º a 359º de direção. Por tentativa e erro, pode-se chegar a um valor de entrada que estabilize as asas do avião mantendo-as niveladas pelo menos por um curto período de tempo. O mesmo pode ser encontrado para a dinâmica longitudinal, procurando um ângulo de pitch que possibilite ao avião voar reto e nivelado, ou seja, com a resultante de todas as forças que atuam sobre a aeronave, nulas. A busca por tais valores é chamada de ajuste do trim, que dada uma velocidade, altitude e peso da aeronave, “sintoniza” as superfícies de controle e potência do motor para que o vôo seja reto e nivelado. O ajuste do trim (ou “trimagem”) é fundamental para que seja possível obter modelos lineares do Aerosonde em pontos de operação específicos de velocidade, altitude, massa e assim derivar um modelo dentro de uma região de estabilidade. Por tentativa e erro, o valor de -0,0073 rad de deflexão dos ailerons manteve o ângulo de bank mais próximo de zero, conforme a Figura 3.6. No entanto, por tentativa e erro levaria muito tempo até conseguir um arranjo de todas as superfícies de controle e aceleração que garantisse um vôo reto e nivelado. Como solução, métodos iterativos de otimização, por exemplo, utilizando o algoritmo Simplex (Stevens e Lewis; 2003), ou mesmo a pilotagem manual, conseguem obter resultados satisfatórios. Figura 3. 6: Resposta temporal de φ para entrada nos ailerons de -0,0073 rad. 34 Na versão 1.2 do Aerosim, um programa para o ajuste do trim e obtenção dos modelos lineares vem acompanhado de um diagrama de simulação para o Simulink, onde, através da função linmod do Matlab, extrai-se um modelo linear no espaço de estados. Este programa é apresentado no ANEXO B deste trabalho. Em resumo, este programa solicita ao usuário a velocidade (m/s), a altitude (m), o ângulo de bank (graus) e a massa de combustível (kg). O programa de “trimagem” solicita a informação de ângulo de bank pois podese querer analisar a dinâmica da aeronave enquanto efetua curvas estáveis de ângulos constantes, na literatura específica comumente chamadas de steady-turns. Quando a dinâmica do avião é analisada nas condições de vôo reto e nivelado ou em steady-turn, pode-se dividir o estudo da dinâmica em longitudinal e lateral, pois o acoplamento destas dinâmicas é mínimo e pode ser desconsiderado (Stevens e Lewis; 2003). Este tipo de análise facilita na visualização e entendimento do problema assim como no projeto dos controladores que podem ser feitos separadamente. Para estudar os modos ou pólos mais importantes na dinâmica do Aerosonde, um modelo linear nas seguintes condições é obtido: velocidade = 23 m/s, altitude = 1000 m, φ =0º e 2 kg de combustível. O resultado do ajuste para este ponto de operação é: Entradas: Saídas: Elevator = -0,1429 rad Airspeed = 23,00 m/s Aileron = -0,0086 rad Sideslip = 0,02º Rudder = -0,0010 rad AOA = 4,32º Throttle = 0,5698 (~57%) Bank = -0,02º Pitch = 4,32º Heading = 0,04º Altitude = 1000,00 m Estados: u = 22,93 m/s (componente no eixo x) v = 0,01 m/s (componente no eixo y) w = 1,73 m/s (componente no eixo z) p = -0,00 º/s, q = -0,00 º/s, r = -0,00 º/s 35 φ = -0,02º, θ = 4,32º, ψ = 0,04º Motor = 4835 RPM Utilizando os valores do vetor de entrada obtidos pelo programa de “trimagem” na simulação da planta não linear, pode-se perceber variações menores nos ângulos φ , θ e na velocidade, que se mantém em torno de 23 m/s conforme as figuras 3.7, 3.8 e 3.9. Figura 3. 7: Resposta temporal de φ do modelo não-linear com os valores de entrada trimados. Se estas simulações fossem feitas com o modelo linearizado, utilizando os mesmos valores de entrada, mesmas condições iniciais e sem perturbações, a aeronave permaneceria no estado de equilíbrio. Apesar de se ter utilizado os valores obtidos pela “trimagem”, ainda assim, a planta não-linear sofre os efeitos do torque do motor com o avanço do tempo, no entanto, de forma menos agressiva do que sem os ajustes. De qualquer modo, percebe-se que o Aerosonde não voa reto e nivelado sem um controlador humano ou automático. 36 Figura 3. 8: Resposta temporal da velocidade relativa (airspeed) para o ponto de operação em 23 m/s. Figura 3. 9: Resposta temporal do ângulo θ para o ponto de operação de trimagem. Os modelos lineares longitudinal e lateral obtidos nesta trimagem são apresentados e estudados na seção seguinte. 37 3.3.1.1 Dinâmica longitudinal O modelo longitudinal linear obtido a partir da trimagem para um vôo do Aerosonde a 23 m/s, 1000 m de altitude, asas niveladas e 2 kg de massa de combustível foi: ⎡ -0, 2029 0, 6110 -1, 7044 -9, 7991 -0, 0001 0, 0100 ⎤ ⎢ -0,5670 -3,8086 22, 4291 -0, 7397 0, 0010 0 ⎥⎥ ⎢ ⎢ 0, 4906 -4, 2213 -4,3901 0 0, 0000 -0, 0078 ⎥ A=⎢ ⎥ 0 1, 0000 0 0 0 ⎥ ⎢ 0 ⎢ 0, 0753 -0,9972 0 22,9997 0 0 ⎥ ⎢ ⎥ 0 0 -0, 0379 -2, 6886 ⎦ ⎣ 29, 7630 2, 2466 0 ⎡ 0,3132 ⎤ ⎢ -1,9847 ⎥ 0 ⎢ ⎥ ⎢-27,5486 ⎥ 0 B=⎢ ⎥ 0 0 ⎢ ⎥ ⎢ ⎥ 0 0 ⎢ ⎥ 0 349, 2659 ⎦ ⎣ ; ⎡ 0,9972 0, 0753 0 0 0 ⎢-0, 0033 0, 0434 0 0 0 ⎢ C=⎢ 0 0 1 0 0 ⎢ 0 0 1 0 ⎢ 0 ⎢⎣ 0 0 0 0 1 0⎤ 0 ⎥⎥ 0⎥ ⎥ 0⎥ 0 ⎥⎦ onde, Vetor de estados: x = [u w q theta h Omega] Vetor de entrada: u = [elevator throttle] Vetor de saída: y = [Va alpha q theta h] u = componente da velocidade (m/s) no eixo x; w = componente da velocidade (m/s) no eixo z; q = variação angular (rad/s) de θ ; h = altitude (m); Omega = rotação do motor (RPM); Va = airstream velocity ou airspeed (velocidade relativa m/s). Com as asas niveladas, o acoplamento da dinâmica longitudinal e lateral pode ser desprezado. Desta forma pode-se estudar os modos naturais envolvidos em cada dinâmica separadamente, fornecendo ao projetista maior conhecimento sobre a planta, como é mostrado nos exemplos a seguir: 38 Simulação em malha aberta aplicando pulsos de elevator/profundor Modo natural: short-period Utilizando condições iniciais nulas é aplicado na entrada da planta um pulso duplo no elevator, de amplitude 0,1 rad de 1 a 1,5 segundos e de -0,1 rad de 1,5 a 2 segundos. Este pulso duplo é chamado de doublet e possui média nula na intenção de restaurar as condições de vôo quando os pulsos finalizam. A Figura 3.10 mostra a resposta temporal do ângulo de pitch e do ângulo de ataque após o doublet no elevator. As respostas das duas saídas não coincidem plenamente em forma nem em duração ao distúrbio que as causou. Estas respostas são características da aeronave e representam o modo natural denominado short-period, no qual α e θ variam juntos (ver seção 2.4.1), causando pouca mudança no ângulo γ = θ − α , conhecido como flight path angle ou, em português, ângulo de translado do vôo. Na Figura 3.11, inspecionam-se outras variáveis envolvidas, como a altitude e velocidade, que pela ordem de grandeza em que são normalmente utilizadas, podem ser consideradas praticamente constantes, sendo então o short-period responsável por variações consideráveis apenas em α e θ . Figura 3. 10: Resposta temporal de α eθ ao doublet no elevator e modo natural short-period estimulado. 39 Figura 3. 11: Resposta temporal de h e Va ao doublet no elevator. Modo natural: phugoid Fazendo outra análise sobre as respostas das figuras 3.10 e 3.11 observa-se outro modo natural sendo estimulado, o modo phugoid. Quando os efeitos do shortperiod começam a cessar, ainda sobra uma pequena amplitude de oscilação pouco amortecida que representa a troca de energia potencial e cinética enquanto a aeronave varia sua atitude. Este efeito é melhor visualizado na Figura 3.11, onde percebe-se que quando a velocidade aumenta a altitude diminui, o que indica que o ângulo de translado γ se tornou negativo e a aeronave começou a descer e ganhar velocidade. Devido ao aumento do fluxo de ar passando pelos aerofólios da aeronave, ele aumenta sua sustentação invertendo o movimento e ganhando altitude e perdendo velocidade. Este ciclo se repete até as oscilações sumirem e a aeronave retornar ao seu estado inicial. Simulação em malha aberta aplicando-se doublet na entrada de aceleração Aplicando-se a mesma técnica do exemplo anterior, só que desta vez, na segunda entrada, referente ao acelerador, com pulsos de 0,5 de 1 a 4 segundos e de -0,5 de 4 a 7 segundos, tem-se a resposta para α e θ na Figura 3.12: 40 Figura 3. 12: Resposta temporal de α eθ ao doublet no throttle e oscilação em θ devido ao phugoid. Examinando a Figura 3.12, percebe-se que o ângulo de ataque é pouco afetado enquanto que o de pitch sofre grandes variações. Conclui-se então, que o short-period é pouco afetado, no entanto, as oscilações do phugoid acompanham a atitude de pitch durante toda a simulação e, analisando a velocidade e altitude na Figura 3.13, observa-se que a altitude e velocidade variam junto com θ . Logo, a entrada do acelerador influencia predominantemente no modo phugoid. Análise dos pólos e zeros de transmissão do sistema Pela análise dos pólos do sistema e com o auxílio das figuras 3.10 a 3.13 é possível identificar os pólos do sistema que estão envolvidos com os modos shortperiod e phugoid. Este estudo é importante para verificar se a planta possui pólos instáveis e também para determinar a freqüência e o amortecimento. Isto dará mais informações ao projetista sobre as dificuldades que poderão ser encontradas quando for desenvolver os controladores. Dependendo do fator de amortecimento e da freqüência desses pólos, pode-se avaliar a qualidade do vôo, baseado tanto em pilotagem manual como em automática, sendo alguns casos tão críticos que a pilotagem manual só poderia ser feita se houvesse a presença de um sistema de 41 controle de estabilização entre o piloto humano e a planta. Este tipo de análise e sistema será abordado no Capítulo 4. Figura 3. 13: Resposta temporal de h e Va ao doublet no throttle. Phugoid estimulado. Os pólos, amortecimentos, freqüências e constantes de tempo do modelo longitudinal são mostrados na Tabela 3.1: Tabela 3. 1: Pólos, fatores de amortecimento, freqüências e constantes de tempo do modelo longitudinal. Pólo Amortecimento −6, 49 ×10−4 1 −5,35 ×10−2 ± j 5, 73 ×10−1 9,30 ×10−2 −2, 79 1 −4,10 ± j 9, 77 0,387 Freqüência (rad/s) Cte. Tempo (s) 1540 5, 76 ×10−1 phugoid short − period 0,3584 10, 6 Os pólos envolvidos com a dinâmica do short-period e phugoid são sempre complexos conjugados, conforme destacados na Tabela 3.1. Isto se deve ao que já fora mostrado nas figuras 3.10 a 3.13, onde a dinâmica de ambos os modos era 42 oscilatória. A grande diferença está na freqüência e no amortecimento. O shortperiod geralmente tem a maior freqüência (menor período) e maior amortecimento. No modo phugoid dá-se o contrário. Estes resultados não são animadores, pois se percebe que apesar de estável, o Aerosonde possui um modo short-period subamortecido e de período muito curto. O modo phugoid também se mostra problemático, já que as oscilações realmente levam muito tempo para cessar devido ao baixíssimo fator de amortecimento. Em compensação, tem um período maior que facilita a pilotagem. O sistema também possui dois zeros de transmissão localizados no semiplano esquerdo do plano-s, sendo então o sistema de fase mínima com z1 = -3, 4766 e z2 = 0, 0003 . Perceba que z2 está muito próximo do primeiro pólo da Tabela 3.1, podendo-se fazer um cancelamento destes. As informações obtidas no estudo da dinâmica longitudinal já possibilitaram prever algumas dificuldades que deverão ser levadas em consideração quando os controladores forem projetados, tal como problemas de amortecimento e forte acoplamento entre as variáveis. Para completar o estudo da dinâmica do Aerosonde, dá-se seqüência a análise da dinâmica lateral. 3.3.1.2 Dinâmica lateral / direcional O modelo linear da dinâmica lateral obtido foi: ⎡-0,5895 1, 7312 -22,9345 9, 7991 ⎢ -3,8720 -19, 0490 9,1681 0 ⎢ A = ⎢ 0, 6278 -2, 4709 -0,9582 0 ⎢ 1, 0000 0, 0755 0 ⎢ 0 ⎢⎣ 0 0 1, 0028 0 2,9486 ⎤ ⎡ -1,1552 ⎢-101, 4284 1,8250 ⎥ ⎢ ⎥ B = ⎢ -3,9992 -18, 6309 ⎥ ⎢ ⎥ 0 0 ⎢ ⎥ ⎢⎣ ⎥⎦ 0 0 ; ⎡0, 0435 ⎢ 0 ⎢ C=⎢ 0 ⎢ ⎢ 0 ⎢⎣ 0 0⎤ 0 ⎥⎥ 0⎥ ⎥ 0⎥ 0 ⎥⎦ 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0⎤ 0 ⎥⎥ 0⎥ ⎥ 0⎥ 1 ⎥⎦ onde, Vetor de estados: x = [v p r phi psi] 43 Vetor de entradas: u = [aileron rudder] Vetor de saídas: y = [beta p r phi psi] v = componente da velocidade (m/s) no eixo y; p = variação angular (rad/s) de φ ; r = variação angular (rad/s) de ψ . Da mesma maneira como foi feito o estudo da dinâmica longitudinal, serão feitas algumas simulações em malha aberta (MA) na forma de exemplos com o modelo lateral. Simulação MA com aplicação de doublet no rudder A aplicação de um doublet na segunda entrada, a do rudder, excita os três modos naturais que se deseja observar no comportamento dinâmico lateral do modelo. Os pulsos aplicados têm amplitude 0,5 rad de 1 a 2 segundos e de -0,5 rad de 2 a 3 segundos de simulação. As figuras 3.14 a 3.16 apresentam as respostas relacionando as variáveis β , φ , ψ , de sideslip, roll e heading, respectivamente. Figura 3. 14: Resposta de β e φ ao doublet aplicado no rudder. 44 Figura 3. 15: Resposta de β e ψ ao doublet aplicado no rudder. Figura 3. 16: Resposta de φ eψ ao doublet aplicado no rudder. 45 Nas figuras 3.14 e 3.15 observa-se que quando o rudder é estimulado ocorrem variações no ângulo de guinada ψ e também no ângulo de rolagem φ . Este efeito é decorrente do modo natural de oscilação denominado dutch roll. Logo, o rudder da aeronave produz movimento tanto de guinada como de rolagem. Percebe- se também, que ocorre derrapagem devido à variação no ângulo de sideslip β , sempre contrária ao movimento de φ e ψ . Para ilustrar melhor este efeito, toma-se como exemplo um veículo terrestre. Um carro, ao iniciar uma curva, faz o passageiro ser "puxado" para o lado contrário ao da curva devido à atuação de forças centrífugas. Normalmente o carro não sofre a derrapagem, pois o atrito com o asfalto é muito grande, mas com o avião, esta derrapagem é percebida e considerável conforme as figuras 3.14 e 3.15. A derrapagem cessa após alguns segundos quando o estímulo dos pulsos também cessa. A Figura 3.16 compara as variações que ocorrem nos ângulos φ e ψ , servindo para avaliar outro modo natural denominado roll subsidence. Este modo é responsável pela taxa de variação do ângulo φ e é normalmente estável. Fornece uma idéia da máxima taxa de rolagem da aeronave. O terceiro modo natural é designado por spiral, que tem efeito semelhante ao estudado no início do capítulo, provocado pelo torque do motor e que causou o movimento espiral fazendo a aeronave entrar em “parafuso”. Apesar desta comparação, este modo normalmente conta com grandes constantes de tempo, o que muitas vezes a própria estrutura da aeronave é projetada para eliminar os efeitos espirais ou o piloto, automático ou manual, facilmente o eliminam. Para facilitar o entendimento, dá-se um exemplo de um carro desalinhado, que necessita de constantes correções na trajetória, por parte do piloto, para que o veículo se mova em linha reta. No Aerosonde, o caso da própria estrutura eliminar o modo espiral não ocorre, como pode ser visto, na Figura 3.16, φ e ψ progressivamente desviando-se da posição neutra após o pulso ter cessado. Análise dos pólos e zeros de transmissão do sistema O modelo linear lateral do Aerosonde possui dois zeros de transmissão, ambos no semiplano esquerdo do plano-s, sendo o sistema de fase mínima com z1 = -148, 0479 e z2 na origem. Quanto aos pólos do sistema, um deles encontra-se 46 na origem e se cancela com z2 . Os demais pólos, mostrados na Tabela 3.2, são relativos aos três modos naturais envolvidos na dinâmica lateral. O dutch roll é subamortecido e de curto período, o que prejudica a pilotagem principalmente na fase de pouso sob rajadas de ventos. O modo espiral é instável e, portanto, precisa ser modificado por algum sistema de controle ou estabilização, que é o foco dos sistemas que serão estudados e projetados no Capítulo 4. Tabela 3. 2: Pólos, fatores de amortecimento, freqüências e constantes de tempo da dinâmica lateral. Pólo Amortecimento Freqüência (rad/s) Cte. Tempo (s) −1, 22 ± j 5,39 0, 221 5,53 −18, 2 1 0, 0549 6, 46 ×10−2 −1 15, 4798 dutch roll roll subsidence spiral 47 Capítulo 4 Visão geral dos sistemas de controle de aeronaves Os modos naturais estudados no Capítulo 3 podem ser divididos em diferentes categorias, por exemplo: os que envolvem principalmente movimentos rotacionais, como o short-period, roll subsidence e dutch roll; os modos que envolvem movimentos translacionais e de dinâmica muito mais lenta, como o phugoid e, por último, o modo spiral, dependente de ambos os movimentos, masque é normalmente excitado apenas por forças aerodinâmicas fracas. Todos esses modos influenciam nas respostas da aeronave. A boa resposta de uma aeronave aos comandos de manobra é determinada em parte pela velocidade dos modos rotacionais. As freqüências destes modos e o pouco amortecimento podem tornar difícil ou impossível para um piloto controlar a aeronave. Para solucionar tais situações, tal como verificado no Aerosonde no Capítulo 3, com a presença de pólos instáveis e pouco amortecidos, é necessário utilizar algum sistema de controle automático que modifique os modos naturais para torná-los viáveis à pilotagem. Estes tipos de sistemas são conhecidos como SAS (do inglês, Stability Augmentation Systems), responsáveis por melhorar a estabilidade da aeronave. Se estes sistemas, além de aumentarem a estabilidade, também garantirem tipos particulares de respostas às entradas de controle de um piloto (automático ou manual), são denominados de CAS (do inglês, Control Augmentation Systems), podendo alterar as características dos modos naturais para diferentes características de vôo. Os sistemas de piloto automático são relacionados normalmente às funções “superiores” de controle e podem utilizar CAS e SAS em camadas inferiores. Um exemplo de piloto automático poderia ser um segurador de atitude de pitch (Pitch attitude hold), utilizando em uma camada mais baixa na hierarquia da malha de controle, um CAS para controlar as variações das taxas de pitch (por exemplo, Q em rad/s) e um SAS que aumentasse o amortecimento do modo short-period. A Tabela 4.1 apresenta tipos comuns de SAS, CAS e funções de pilotos automáticos (Stevens e Lewis; 2003). Os tipos foram deixados em inglês para familiarização do leitor com a linguagem normalmente utilizada tanto no Brasil como 48 no exterior, onde dampers são amortecedores, rates as taxas de variação e holders são seguradores: Tabela 4. 1: Tipos comuns de sistemas de aumento de estabilidade, de controle e pilotos automáticos. SAS CAS Roll damper Roll rate Pitch damper Pitch rate Yaw damper Lateral / direcional Pilotos Automáticos Pitch attitude hold Altitude hold Speed hold Roll-angle hold Para garantir o projeto de controladores satisfatórios, algum critério de comparação deve ser utilizado como requisito de desempenho. Na literatura, normalmente são encontrados alguns critérios de comparação baseados em opiniões de operadores humanos para veículos tripulados, o que não exclui sua utilização em UAVs, já que estes podem necessitar de intervenção humana através da pilotagem remota. De qualquer modo, o foco deste trabalho é a pilotagem autônoma de veículos que geralmente transportam payloads sensíveis a trepidações e solavancos. Portanto, seguir os requisitos de qualidade e desempenho das aeronaves tripuladas aumenta as chances de se obter bons resultados. Diversas pesquisas no ramo aeroespacial são voltadas a essas especificações de qualidade de vôo e vários métodos têm sido propostos. A princípio, tais estudos parecem simples, mas, na prática, ainda não é possível especificar, com precisão, critérios de projeto de sistemas de controle para modificar a dinâmica de aeronaves (Stevens e Lewis; 2003). Alguns desses métodos consistem em analisar pólos e zeros, ou resposta em frequência, e comparar com especificações conhecidas e opiniões de pilotos. 4.1 Especificações de pólos/modos As especificações apresentadas neste trabalho foram extraídas de Stevens e Lewis (2003) e são baseadas nas Especificações Militares de Qualidade de Vôo dos Estados Unidos. Elas são definidas de acordo com a classe de aeronave, fases de vôo e por níveis de qualidade de vôo. Neste trabalho, são abordadas apenas as 49 especificações resumidas para as classes de aviões pequenos e leves, fases de vôo não terminais (decolagem, aproximação e pouso) e qualidade nível 1, que seria a qualidade adequada à fase de vôo. Especificações para os modos: Phugoid: ζ ≥ 0, 04 ; Short-period: ζ ≥ 0,30 ; Roll subsidence: constante de tempo máxima τ = 1, 4 s ; Spiral: modo pode ser instável desde que não dobre em amplitude após 20 s; Dutch Roll: ζ ≥ 0, 08 . 4.2 Sistemas de aumento de estabilidade (SAS) A maioria das aeronaves, tripuladas ou não, requerem algum tipo de sistema que melhore sua estabilidade. Existem aviões que são tão inerentemente instáveis que seria praticamente impossível o vôo destes sem um sistema automático de controle de estabilidade. Os SAS normalmente utilizam as medições de sensores como giroscópios para a tomada das variações das taxas angulares da aeronave. Essas medidas são processadas e realimentadas aos servomecanismos que atuam nas superfícies de controle aerodinâmicas. Deste modo, um momento aerodinâmico proporcional à velocidade angular e à aceleração angular pode ser gerado e produzir um efeito de amortecimento nos movimentos da aeronave. Convencionalmente, os SAS podem ser projetados separadamente para a dinâmica longitudinal e para a lateral-direcional. Isto é possível devido ao desacoplamento destas dinâmicas em boa parte das fases de vôo, tal como fora mostrado no Capítulo 3. Nos casos em que existe grande influência entre as dinâmicas longitudinal e lateral, como em curvas com grandes variações no ângulo de bank, os controladores deverão garantir o desacoplamento (ver seção 4.3). Os controladores que serão desenvolvidos para aumentar a estabilidade e controlar o Aerosonde UAV, neste trabalho, são apontados como sub-controladores dentro de uma hierarquia de comando, utilizando sistemas SAS e CAS em uma única estrutura. No entanto, para facilitar o entendimento dos projetos, é importante 50 ressaltar de forma independente alguns tipos de sistemas SAS e CAS para conhecer quais as variáveis envolvidas e o que se deseja com cada um destes sistemas. Os sistemas SAS mais comuns são então descritos detalhadamente na forma de exemplos. 4.2.1 Pitch SAS A principal função de um sistema do tipo Pitch SAS é garantir amortecimento e freqüência natural satisfatória para o modo natural short-period estudado no Capítulo 3. Foi visto que este modo natural envolve tanto o ângulo de ataque α como as variações no ângulo de pitch (e também no pitch rate, q ). Normalmente, faz-se realimentação apenas do pitch rate se o modo natural short-period possuir amortecimento adequado de acordo com as especificações de qualidade. Caso contrário, fecha-se outra malha de realimentação com a saída do ângulo de ataque ou do próprio ângulo de pitch, conforme mostrado na Figura 4.1: Figura 4. 1: Estrutura de um Pitch SAS com realimentação do ângulo de ataque e pitch rate. Onde: u é o sinal de controle; ue o erro; δ e é a deflexão do pofundor/elevator; kα e kq são os ganhos do controlador. O sistema apresentado na Figura 4.1 realimenta a saída do ângulo de ataque e quando as perturbações são verificadas nessa variável a realimentação leva esta informação ao atuador que procura gerar um ângulo de pitch restaurador. Malhas externas de controle geralmente são fechadas ao redor do Pitch SAS para promover funções de sistemas CAS e de Piloto Automático. 51 4.2.2 SAS Lateral-Direcional ou Yaw Damper O SAS que aumenta a estabilidade da dinâmica lateral das aeronaves é chamado de Yaw Damper e está presente na maioria dos sistemas de controle de vôo de aviões comerciais e militares, na intenção de modificar os modos naturais roll-subsidence e dutch-roll pela realimentação das variações do ângulo de bank (roll, φ ) aos ailerons, e das variações do ângulo de guinada (yaw, ψ ) ao leme. O Yaw Damper procura eliminar os efeitos de derrapagens durante curvas ou quando a aeronave é submetida a perturbações como rajadas de ventos laterais. A estrutura do Yaw Damper é apresentada na Figura 4.2: Figura 4. 2: Estrutura de um Yaw Damper. Onde r1 e r2 são as referências para as variações angulares p e r respectivamente; ua é o comando de aileron e ur o de leme/rudder; δ a é a deflexão dos ailerons; δ r é a deflexão do leme/rudder; k p e kr os ganhos do controlador. Na Figura 4.2 é apresentado um bloco designado como “Filtro Washout” que tem como entrada o yaw rate ( r ) e saída rw . Este filtro não é essencial, mas normalmente está presente nos aviões manualmente pilotados. Isto se deve ao fato de que o Yaw Damper tenta se opor a atuação, por exemplo, de um comando do piloto ao leme, fazendo com que o piloto tenha que aplicar comando acima do normal para obter o efeito de guinada. Sendo assim, o Filtro Washout é um filtro passa-alta que facilita a pilotagem manual, logo, quando a aeronave encontra-se em uma condição de regime, com pouca ou nenhuma variação em r , o Yaw Damper 52 procura restaurar a atitude quando submetida a pequenas perturbações. Para perturbações muito grandes, como a da entrada de um comando de leme enviado pelo piloto, o filtro modifica as características do Yaw Damper para possibilitar a manobra. Neste trabalho, o Filtro de Washout não será implementado, mas sim um controlador multivariável que procura ter as características do Yaw Damper, modificadas a partir de um índice de desempenho, como um CAS-SAS em um só. 4.3 Sistemas de aumento de controle (CAS) Enquanto que os sistemas SAS procuram modificar as características dinâmicas das aeronaves no sentido de dar-lhes melhores condições de pilotagem e estabilidade, os sistemas CAS procuram controlar certas variáveis para possibilitar que estas possam desempenhar tarefas específicas, como por exemplo, rastrear com precisão um percurso ou um alvo de forma automática. Além desses, imagine que em aeronaves de alto desempenho, como caças, que precisam executar manobras rápidas e precisas e geralmente a grandes velocidades, controlar as variáveis de variações angulares previne estresse da estrutura da aeronave e desmaio do piloto devido aos efeitos provocados pela força g (em termos de n vezes a aceleração da gravidade na Terra) elevada. Exemplos comuns de sistemas CAS são os controladores de roll rate, pitch rate e controle lateral-direcional. O exemplo com aviões tipo caças militares é um caso extremo, mas analisando o caso do Aerosonde UAV e outras aeronaves lentas e não acrobáticas, ainda assim é importante a presença dos sistemas CAS para eliminar acoplamentos entre a dinâmica longitudinal e lateral em curvas coordenadas, reduzir o efeito de forças indesejáveis e garantir melhor qualidade de vôo. Quando um avião inicia uma curva, seja ela pela atuação dos ailerons ou pelo leme, conforme visto no Capítulo 3, geralmente ocorre rotação em torno do eixo longitudinal, ou seja, rolagem. Sabe-se também, que a sustentação da aeronave dáse pela atuação de forças no sentido de baixo para cima, sendo boa parte desta sustentação proveniente das forças que atuam nas asas. Quando um avião executa um roll, mesmo que de pequeno ângulo de bank, é como se o comprimento das asas houvesse encurtado, reduzindo a sustentação conforme mostrado na Figura 4.3: 53 Figura 4. 3: Perda de sustentação durante o roll influenciando na dinâmica longitudinal e lateral. Além da perda de sustentação, percebe-se que no sistema de referência body-axis o que era ângulo de pitch passa a ter certa influência no ângulo de guinada e viceversa. Logo, para reduzir tal acoplamento, deve-se controlar as variações angulares para eliminar as forças laterais (e longitudinais) indesejáveis geradas pela rolagem e evitar mudança na atitude da aeronave. Se cada controlador executar corretamente sua função, os efeitos negativos da manobra serão eliminados. Para visualizar melhor os sistemas CAS, serão apresentadas algumas estruturas de controle que facilitarão o entendimento dos mesmos antes destes serem implementados com as técnicas de controle robusto multivariável. 4.3.1 Pitch-Rate CAS Na Figura 4.4 é apresentado um diagrama de blocos representativo de um possível sistema CAS. Veja que este se assemelha ao Pitch SAS da seção 4.2.1 exceto pelo controlador C ( s ) presente na entrada do SAS para regular o valor de q em uma referência desejada. Normalmente, como citado na seção anterior, se quer regular q em zero e com erro de regime nulo para que, por exemplo, durante uma curva coordenada, não haja alteração no ângulo de pitch. 54 Figura 4. 4: Diagrama de um possível pitch-rate CAS. O controlador C ( s) poderia ser, por exemplo, um compensador Proporcional Integral (PI) para garantir erro de regime nulo. Estruturas de controle semelhantes poderiam ser construídas para controlar as variações angulares dos ângulos de bank e guinada, não sendo necessário seguir exatamente nesta mesma linha em que simplesmente se fechou uma malha externa ao redor do sistema SAS. Diferentes estruturas podem ser experimentadas e recomenda-se a leitura das referências de Stevens e Lewis (2003) e Roskam (1979) para um estudo mais detalhado das estruturas de controle comumente utilizadas na indústria aeroespacial. 4.4 Pilotos Automáticos Diferentemente do que foi abordado sobre os sistemas SAS e CAS, que são voltados às características de resposta dinâmica da aeronave, os pilotos automáticos devem ser projetados para atender as especificações de erro de regime e rejeição de distúrbios, exercendo a função de aliviar o trabalho de um piloto humano (dentro da aeronave ou remoto) em manter uma determinada condição de vôo por longos períodos. Existem diversos tipos de pilotos automáticos normalmente utilizados em aviões, como: de velocidade, altitude, atitude, etc. Alguns são tão complexos e precisos que englobam uma infinidade de subsistemas todos interligados e supervisionados para serem ativados e desativados no momento certo. No entanto, na sua forma mais simples, um piloto automático de um avião geralmente utiliza os sistemas apresentados na Tabela 4.1, incluindo os sistemas SAS e CAS em suas malhas internas de controle. 55 4.4.1 Pitch-Attitude Hold O Pitch-Attitude Hold é normalmente utilizado quando a aeronave está com as asas niveladas (ângulo de bank φ = 0 ). A variável controlada é a do ângulo de pitch, θ = γ + α , onde γ é o ângulo de direção de translação do vôo no eixo longitudinal. Este tipo de piloto automático é utilizado para manter o nariz do avião em um ângulo desejado e pode ser utilizado como um sub-controlador para um piloto automático de altitude. Apenas ressaltando o que já fora comentado no Capítulo 2, somente com a variação de θ , não significa que a aeronave irá subir ou descer, pois quem vai determinar isso é o ângulo γ , que também depende de α . O diagrama de blocos que descreve este piloto automático é mostrado na Figura 4.5. Figura 4. 5: Diagrama de blocos de um piloto automático tipo Pitch-Attitude Hold. 4.4.2 Altitude Hold O piloto automático de altitude possibilita que a aeronave seja mantida em uma altitude fixa desejada. Nos aviões modernos de passageiros, ele normalmente possui uma tolerância de erro de regime de ±200 ft ( ±60 m). Nos sistemas mais modernos, além de fixar a aeronave na altitude desejada, também a conduz de uma altitude a outra sob condições especificadas de razão de subida e limites de ângulo de pitch. Na Figura 4.6 é apresentado o diagrama de blocos de um piloto automático de altitude que utiliza o controlador de ângulo de pitch da seção anterior e os sistemas SAS e CAS nas malhas internas, possibilitando o projeto do piloto automático de altitude com limitador de ângulo de pitch. 56 Figura 4. 6: Diagrama de blocos de um piloto automático de altitude com sub-controlador de ângulo de pitch. 4.4.3 Speed Hold O piloto automático de controle de velocidade utiliza a medida da velocidade do fluxo de ar que passa através da aeronave que é realimentada e comparada à velocidade desejada. Devido ao forte acoplamento entre a velocidade e a variável do ângulo de pitch, o controlador de velocidade, quando em união com o controlador de altitude, torna-se bastante complexo, pois a estrutura do Speed Hold comanda tanto o acelerador como o profundor da aeronave para regular a velocidade. Isto influencia diretamente no controle da altitude. Uma possível estrutura do Speed Hold seria o fechamento de uma malha externa no Pitch-Attitude-Hold para a variação de θ no intuito de ganhar ou perder velocidade. Um exemplo seria a estrutura do diagrama da Figura 4.7 onde o controlador de altitude também foi incluído. Figura 4. 7: Diagrama de blocos de um Speed Hold e Altitude Hold na mesma malha de controle. A estrutura de controle da Figura 4.7 utiliza as duas variáveis de entrada de controle longitudinal da planta, o acelerador/throttle e o profundor/elevator. Esta configuração é mais complexa, pois tanto o controlador de altitude quanto o 57 controlador de velocidade afetam o ângulo de pitch. No entanto, as técnicas de controle robusto multivariável que serão utilizadas na elaboração do Speed Hold do Aerosonde UAV lidam com este problema de forma simples e sem a preocupação com a estrutura do controlador. 4.4.4 Roll Angle Hold A forma mais simples de um piloto automático de Roll Angle Hold é um nivelador de asas que regula o ângulo de bank φ em zero pela realimentação dessa variável aos comandos de entrada dos ailerons. O caso mais completo possibilita o rastreamento de diferentes ângulos de bank desejados e a estrutura é mais complexa, pois exige CAS e SAS presentes tanto na dinâmica lateral como na longitudinal para controlar o pitch-rate ( Q ) e a derrapagem ( β ) e possibilitar curvas coordenadas (steady-turns), tal como mencionado na seção 4.3. O Roll Angle Hold geralmente é utilizado como sub-controlador para outros sistemas, como por exemplo, quando está na malha interna do piloto automático de direção que garante o vôo em um ângulo específico da bússola, tal como pode ser visto no projeto do controlador de direção do Aerosonde UAV no Capítulo 5. A estrutura comumente utilizada neste piloto automático é semelhante a da Figura 4.5, apenas substituindo θ por φ e pitch-rate ( Q ou q ) por roll-rate ( P ou p ). Com esta última estrutura é finalizado o estudo sobre os sistemas de controle de vôo normalmente presentes nas aeronaves e que possibilitará uma melhor compreensão do que será abordado no projeto dos controladores deste trabalho. 4.5 Técnicas de controle robusto multivariável As técnicas de controle moderno são baseadas diretamente no modelo por variáveis de estados tal como o que fora obtido no Capítulo 3, e ao contrário das técnicas de controle clássico e seus sucessivos fechamentos das malhas de controle com obtenção individual dos ganhos dos controladores, no controle moderno os problemas são resolvidos pela solução de equações matriciais que permitem que os 58 ganhos sejam computados simultaneamente, fechando todas as malhas de controle de uma só vez. Desta forma o projetista conta com maior liberdade e simplificação quando o sistema possui mais de um par entrada/saída ou múltiplas malhas de controle. Em resumo, pela utilização de técnicas de controle moderno multivariável, os projetos por tentativa e erro e o fechamento sucessivo das malhas de controle são reduzidos, restando ao projetista apenas trabalhar com a seleção de um critério de desempenho que será apresentado mais adiante neste capítulo. Os problemas que serão abordados nesta seção envolvem regulação e rastreamento de uma referência utilizando o método LQG/LTR. O problema de regulação baseia-se em levar uma dada saída do sistema à zero garantindo uma característica de resposta temporal desejada, tal como o que é exigido pelos sistemas SAS, CAS e de pilotos automáticos. O problema de rastreamento exige que a saída “siga” uma referência desejada, podendo esta ser uma constante não nula ou uma referência variante no tempo. 4.5.1 Robustez e estabilidade No projeto de sistemas de controle de aeronaves baseados em modelos matemáticos lineares é importante ressaltar, que tais modelos, são aproximações do modelo não linear dentro de uma região de estabilidade ou num certo ponto de operação, seja ele estável ou não. Logo, dinâmicas de alta freqüência podem estar sendo negligenciadas no modelo linear. Além disso, quando o avião se afasta da região de estabilidade, ou da condição de vôo onde fora linearizado, seu comportamento varia. Esta variação de parâmetros é um efeito de baixa freqüência que pode tornar o sistema instável. Para compensar estas variações e erros de modelagem, deve-se utilizar controladores que garantam a robustez e estabilidade do sistema levando em consideração os erros de modelagem dos modos de alta freqüência e variações de parâmetros. Além dos erros de modelagem, os sistemas de controle de aviões devem contornar problemas de perturbações, como, rajadas de ventos e ruídos de medição dos sensores, garantindo desempenho satisfatório em termos de sobre-sinal, tempo de acomodação, etc. 59 O desempenho dos controladores em termos de robustez e estabilidade no LQG/LTR (Doyle e Stein; 1979) é garantido pela minimização de um índice de desempenho (PI, do inglês, performance índex), ou função custo, e pela análise do sistema no domínio da freqüência, descrita pelo diagrama de magnitude de Bode para sistemas MIMO (do inglês, Multiple-Input Multiple-Output). Para isto, é necessária uma representação especial para a magnitude de funções matriciais, que são os ganhos principais inferiores e superiores, ou valores singulares (SVs, do inglês, singular values) do sistema. Esses devem respeitar margens que garantam estabilidade e robustez de forma análoga a utilizada no controle clássico, sendo que para o caso MIMO, o máximo SV deve ter baixa magnitude nas altas freqüências para garantir a estabilidade devido aos erros de modelagem e ruídos de medição, enquanto que o mínimo SV deve ter grande magnitude nas baixas freqüências para garantir a robustez. Estas noções ficarão mais claras na forma de exemplos que serão apresentados nos projetos dos controladores do Aerosonde UAV. 4.5.2 Especificações de desempenho no domínio da freqüência Resumidamente, as especificações de desempenho nas baixas freqüências exigem que o ganho principal inferior, ou mínimo SV ( σ ), possua grande magnitude, enquanto que o ganho principal superior, ou máximo SV ( σ ), nas altas freqüências, possua pequena magnitude, fornecendo assim uma largura de banda ampla, porém restrita, com frequência de corte ( ωc ) definida para que o ganho de malha GK ( jω ) tenha valor próximo de 1, ou 0 dB, em ωc . Logo, o máximo valor singular na frequência de corte especificada deve satisfazer a equação 4.1: σ (GK ( jωc )) = 1 (4.1) E para garantir a robustez e precisão estática do sistema sujeito a perturbações nas baixas freqüências ( ωd ), a especificação em termos do mínimo valor singular para GK ( jω ) é: σ (GK ( jω )) 1 para ω ≤ ωd (4.2) De praxe, para garantir que as perturbações de baixa frequência sejam atenuadas de forma satisfatória, deve-se garantir que σ (GK ( jω )) seja maior que 40 dB. 60 Outra especificação de baixa frequência refere-se ao erro de regime nulo. Para garanti-lo, pelo teorema do valor final (Stevens e Lewis; 2003) obtém-se a equação 4.3, onde r é a magnitude da entrada de um degrau unitário e δ ∞ é o maior valor que o erro de regime pode assumir. σ (GK (0)) > r δ∞ (4.3) Nas altas freqüências, a partir de certa frequência ωn , geralmente estão presentes ruídos originados pelos sensores e dinâmicas não modeladas, logo, a margem que garante a robustez e estabilidade é limitada pela equação 4.4: σ (GK ( jω )) 1 para ω ≥ ωn (4.4) Para garantir que os ruídos de medição sejam atenuados satisfatoriamente, de praxe, deve-se garantir que o ganho GK em (4.4) seja menor que -20 dB. Estas margens servirão como base para o processo de loop-shaping no projeto dos controladores LQG/LTR, onde o projetista procura definir o formato dos SVs mínimo e máximo no diagrama de magnitude de Bode de sistemas MIMO. 4.5.3 LQG O Regulador Linear Ótimo Quadrático (LQR) e o Filtro de Kalman podem ser utilizados em conjunto para o projeto de um regulador dinâmico como o LQG. Uma das características interessantes do uso do LQG é que a estrutura do compensador é fornecida pelo processo de projeto e não necessita ser conhecida de antemão. Isto torna o LQG uma ótima opção para o controle de sistemas muito complexos e com um grande número de variáveis, tal como o Aerosonde UAV, que possui ordem bastante elevada e grande número de entradas e saídas. Para o projeto do LQR, um exemplo básico seria um sistema descrito no espaço de estados pelas equações 4.5 e 4.6, com x(t ) ∈ R n e u (t ) o sinal de entrada de controle por realimentação total de estados, mostrado em (4.7), onde r pode ser uma referência a ser rastreada e K é o ganho do controlador LQR: x = Ax + Bu (4.5) y = Cx (4.6) u = − Kx + r (4.7) 61 Fornecendo assim o sistema em malha fechada na equação 4.8: x = ( A − BK ) x + Br (4.8) O problema é que o LQR é baseado na realimentação total de estados e geralmente nem todas as variáveis estão disponíveis para serem realimentadas. É aí que entra a solução pelo regulador LQG, que utilizando um Filtro de Kalman, estima as variáveis não medidas e as realimenta ao LQR. Fornecendo, assim, a equação 4.9, onde x̂ é o vetor de estados estimados e L o ganho do Filtro de Kalman: xˆ = ( A − LC ) xˆ + Bu + Ly (4.9) A nova lei de controle, substituindo os estados estimados, em (4.7), passa a ser: u = − Kxˆ + r (4.10) sendo a estrutura do LQG apresentada na Figura 4.8. A estrutura do controlador LQG faz com que os pólos de malha fechada do sistema comportem-se identicamente como se os estados tivessem sido realimentados sem estimação ao controlador LQR, podendo assim usufruir dos benefícios deste regulador, como estabilidade garantida de malha fechada. No entanto, quando o LQR e o Filtro de Kalman são utilizados nesta configuração, o LQR “perde” algumas das suas propriedades vantajosas, tal como margem de ganho infinita e margem de fase de 60º. Para contornar este problema, o LTR (Doyle e Stein; 1979) é utilizado para recuperar tais propriedades do LQR e moldar por loopshaping a forma dos ganhos principais em função da freqüência e atender às margens de robustez e estabilidade estudadas na seção 4.5.2. Para verificar individualmente onde o LQR e o Filtro de Kalman entram em conflito, eles serão apresentados em mais detalhes. Figura 4. 8: Estrutura do controlador LQG. 62 4.5.3.1 LQR Um sistema (estabilizável) em malha fechada com LQR é garantidamente estável para o caso de realimentação total de estados. No entanto, geralmente, nem todos os estados de um sistema podem ser medidos para satisfazer este requisito, mas, como foi visto antes, com o uso do LQG pode-se projetar um estimador de estados e usufruir das vantagens do regulador LQR. Equação Algébrica de Riccati e ganho do LQR Para se obter o ganho K ótimo do LQR de realimentação de estados em (4.7), que minimiza o funcional em (4.11), é necessário resolver a Equação Algébrica de Riccati (ARE, do inglês, Algebraic Riccati Equation) em (4.12) e obter a matriz simétrica P , ( P = PT ), semidefinida positiva. De posse de P , esta é substituída na equação 4.13 para se determinar o ganho ótimo do controlador LQR. J= 1 ∞ T x Qx + u T Ru ) dt ( ∫ 0 2 (4.11) 0 = AT P + PA + Q − PBR −1 BT P (4.12) K = R −1 BT P (4.13) onde Q ≥ 0 e R > 0 são matrizes de pesos conhecidas que determinam o índice de desempenho. As magnitudes relativas de Q e R devem ser selecionadas, como parâmetros de projeto, para priorizar relativamente os requisitos de minimização dos estados e do esforço de controle. Uma matriz R de maior magnitude fará com que o sinal u (t ) seja minimizado, logo, otimiza-se o esforço de controle, mantendo Ru (t ) próximo de zero. Diz-se que R muito grande penaliza mais o controle, fazendo-o menor relativo ao vetor de estados. Por outro lado, para fazer com que x(t ) tenda a zero mais rapidamente, seleciona-se Q com maior magnitude. Estas propriedades fazem de Q e R os principais parâmetros de escolha no projeto do regulador LQR, pois estes afetam diretamente na posição dos pólos de malha fechada do sistema e nas características de resposta temporal e em frequência. Outros aspectos importantes referem-se à parte de análise. Na parte de análise, deve-se verificar se o sistema é detectável e estabilizável. Se ( ) Q , A for detectável, então ( A, B ) é estabilizável se e somente se 63 existir uma única solução semidefinida positiva de P para a equação de Ricatti em (4.12) (Anderson e Moore; 1989). Se estes requisitos forem atendidos, o LQR garante a estabilidade assintótica do sistema em malha fechada. Sendo a detectabilidade uma condição menos rigorosa de observabilidade, onde se verifica apenas se os pólos instáveis são observáveis. Logo, para garantir a detectabilidade, todos os pólos instáveis da planta devem aparecer no índice de desempenho em (4.11). Já a estabilizabilidade, corresponde a uma condição menos rigorosa de controlabilidade, exigindo que apenas os pólos instáveis sejam controláveis, garantindo-se que o controle u (t ) tenha influência suficiente sobre eles. Na literatura específica existem diversas formas propostas para a escolha de Q e R . No entanto, neste trabalho, tais matrizes são determinadas tomando como base o conhecimento sobre a planta e suas variáveis de estado, utilizando matrizes de peso modificadas, tais como as abordadas em Stevens e Lewis (2003). Isto se deve aos acoplamentos existentes entre as variáveis e a necessidade de deixar algumas delas “mais soltas” que outras, restringindo então a matriz do ganho. Para um estudo mais completo sobre o assunto, recomenda-se a leitura das referências de Doyle e Stein (1979), Anderson e Moore (1989), Green e Limebeer (1995) e Stevens e Lewis (2003). O foco deste estudo sobre LQR é sua aplicação, juntamente com o Filtro de Kalman para compor a estrutura do LQG. Deve-se ressaltar que o regulador LQR propõe-se a garantir as especificações de baixas freqüências, tal como mostrado em (4.2) para garantir margens de ganho elevadas nas baixas freqüências. Já o Filtro de Kalman, abordado na próxima seção, procura atenuar os efeitos das altas freqüências, entrando em conflito com o LQR, fazendo diminuir as altas margens de ganho do sistema. 4.5.3.2 Filtro de Kalman Nas seções anteriores foi explicado que para poder utilizar a realimentação total de estados com o LQR, muitas vezes, há necessidade de se estimar as variáveis a partir das que são realmente medidas pelos sensores da planta. Além 64 disto, há necessidade de se filtrar os efeitos indesejáveis das dinâmicas de alta frequência, erros de modelagem e ruídos de medição para garantir a estabilidade. No ramo da aviação, o Filtro de Kalman é vastamente utilizado devido ao elevado número de variáveis presentes, com algumas sendo muito difíceis de se tomar medidas precisas a partir de sensores. Um exemplo é o ângulo de ataque, que normalmente é estimado por um Filtro de Kalman a partir do pitch-rate ( q ), ângulo de pitch ( θ ) e da aceleração normal da aeronave. Como este trabalho é centrado somente em simulação, todas as variáveis de estado estão disponíveis para realimentação, porém, por questões didáticas e até mesmo pensando em uma futura aplicação em um protótipo real, a estrutura com o Filtro de Kalman foi escolhida. Utilizando o mesmo sistema descrito em (4.5) e (4.6), seja xˆ (t ) o estado estimado de x(t ) , um sistema dinâmico observador de estados é descrito como: xˆ = Axˆ + Bu + L ( y − Cxˆ ) (4.14) xˆ = ( A − LC ) xˆ + Bu + Ly (4.15) ou Pela equação 4.15 vê-se que o observador de estados é um sistema com duas entradas, u (t ) e y (t ) , que são respectivamente ação de controle e saída da planta, ambas conhecidas. As saídas do observador de estados são ŷ e x̂ : yˆ = Cxˆ (4.16) y = y − yˆ (4.17) x = x − xˆ (4.18) Sejam y e x dados por: onde y é o erro de estimação da saída e x o erro de estimação dos estados. Diferenciando-se (4.18), e usando (4.5) e (4.15), tem-se que: x = ( A − LC ) x (4.19) O erro de estimação inicial é dado por x ( 0 ) = x ( 0 ) − xˆ ( 0 ) , com xˆ ( 0 ) sendo o valor inicial estimado, que geralmente é escolhido igual a zero. A estrutura do observador de estados, tal como a utilizada com o Filtro de Kalman, é apresentada na Figura 4.9: 65 Figura 4. 9: Estrutura da planta com observador de estados. É necessário que o erro de estimação desapareça com o tempo para qualquer x ( 0 ) . Para que isto ocorra, ( A − LC ) deve ser assintoticamente estável. Logo, desde que seja obtido um ganho L que garanta esta estabilidade, os estados serão estimados corretamente. Além do fator de estabilidade, é necessário que o erro de estimação desapareça rapidamente, o que pode ser feito com facilidade desde que o estimador seja assintoticamente estável e tenha dinâmica mais rápida que a planta. Para encontrar um ganho L tal que ( A − LC ) seja assintoticamente estável, pode-se utilizar o problema de realimentação de estados de forma similar ao LQR para que L aloque os pólos do sistema de acordo com as propriedades desejadas. Então, de forma análoga ao ganho do LQR, K , em (4.13), obtido pela solução da Equação Algébrica de Riccati em (4.12), formula-se o problema dual para L : Substituir A, B, K por AT , C T , LT LT = R −1CP → L = PC T R −1 (4.20) 0 = AP + PAT + Q − PC T R −1CP (4.21) A equação 4.21 é conhecida como Equação Algébrica de Riccati de Observador. Outro aspecto desta dualidade está entre a condição de alcançabilidade1 de ( A, B ) e a observabilidade de ( BT , AT ) , com o dual para o caso do observador para 1 Um dado estado x1 é dito alcançável se existir uma entrada capaz de conduzir o sistema de um estado inicial x0 a x1 dentro de um intervalo de tempo finito. 66 a observabilidade de ( C , A) e alcançabilidade de ( A, Q ) . Então, o sistema em (4.19) obtido com o ganho L , e P (única e definida positiva), é assintoticamente estável. A grande vantagem desta dualidade é que os parâmetros de projeto continuam sendo as definições das matrizes Q e R tal como com o LQR. Até o presente momento, o problema foi atacado apenas do ponto de vista da estimação dos estados. No entanto, outra vantagem do Filtro de Kalman é lidar com as incertezas do modelo, perturbações e ruídos que atuam sobre a planta, utilizando as técnicas de análise no domínio da frequência através dos ganhos principais. O Filtro de Kalman baseia-se em um tratamento probabilístico do processo e ruídos de medição, sendo caracterizado como um filtro passa-baixas com boa rejeição de distúrbios e ruídos. No entanto, por questões de objetividade e simplificação, não será abordada uma revisão sobre os aspectos probabilísticos do Filtro de Kalman, onde estudam-se as características das perturbações e ruídos que se deseja filtrar. Ao contrário, pretende-se ser mais direto ao se utilizar o conhecimento sobre os distúrbios e ruídos mais comuns encontrados nos problemas de controle de aeronaves. Para um estudo mais detalhado, recomenda-se a leitura das referências Doyle e Stein (1979) e Stevens e Lewis (2003). Quando não se tem conhecimento sobre as condições iniciais da aeronave muito menos sobre as incertezas do modelo da planta e dos ruídos de medição, os conhecimentos práticos da indústria aeronáutica podem fornecer informações que preencham essas lacunas. Logo, de praxe, costuma-se projetar o Filtro de Kalman para uma frequência de corte em torno de 10 rad/s para o máximo SV. Lembrando também, que esta limitação de frequência adotada pelo filtro, algumas vezes entra em conflito com o regulador LQR, fazendo com que o uso de ambos no LQG necessite de alguma forma de recuperação, como o Loop-Transfer-Recovery. 4.5.4 LQG/LTR Como foi visto nas seções anteriores deste capítulo, se um observador ou Filtro de Kalman for utilizado para estimar os estados, as propriedades de garantia de robustez do LQR com realimentação total de estados geralmente são perdidas 67 (Doyle e Stein; 1979). Desta forma, nesta seção deseja-se apresentar uma técnica que recupera essa garantia de robustez e estabilidade. A técnica conhecida como LTR, que recupera o loop-gain ou ganho de malha do regulador, pode ser feita a partir da entrada ou da saída da planta. Neste trabalho, será abordada apenas a técnica de recuperação do loop-gain na saída, que se baseia em projetar primeiro o Filtro de Kalman e posteriormente o regulador LQR, ajustando os parâmetros deste último e analisando as respostas no domínio do tempo e da frequência até que os requisitos de robustez e estabilidade sejam atendidos. A estrutura do controlador LQG/LTR pode ser vista na Figura 4.10. Esta estrutura é a mesma a ser utilizada no projeto dos controladores laterais e longitudinais do Aerosonde UAV neste trabalho. Figura 4. 10: Diagrama de blocos do controlador LQG/LTR (Zarei et al.; 2006). As matrizes Ac , Bc e Cc que aparecem no diagrama da Figura 4.10 correspondem às matrizes Aa , Ba e Ca do controlador LQG/LTR descritas adiante na equação 4.32 para o caso lateral ou em (4.33) para o caso longitudinal. Outro bloco que deve ser destacado é o do pré-compensador que aparece na Figura 4.10, pois é utilizado nos projetos do Aerosonde UAV para balancear a dinâmica da planta, não sendo uma parte integrante e necessária para o LQG/LTR. O projeto do LQG/LTR para a recuperação da robustez do loop-gain G ( s) K ( s) na saída, onde K ( s) é o controlador e G ( s) a planta, começa com o projeto do Filtro de Kalman, obtendo assim o loop-gain de Kalman: Lk ( s ) = C ΦL (4.22) onde Φ ( s ) = ( sI − A) −1 é a matriz de transição de estados. A equação 4.22 usufrui da mesma propriedade de robustez garantida pela realimentação de estados do loop68 gain do LQR, K ΦB , quando a recuperação é feita na entrada. Isto se deve a dualidade existente entre as técnicas de recuperação na entrada e na saída (Stevens e Lewis; 2003). Após o projeto do Filtro de Kalman, deve-se projetar o regulador LQR para obter o loop-gain completo Lr ( s ) do regulador: Lr ( s ) = G ( s ) K ( s ) = C ΦBK Φ r L (4.23) Φ r ( s ) = [ sI − ( A − BK − LC )]−1 (4.24) onde Φ r ( s ) é a matriz de transição dos estados já com o Filtro de Kalman e o regulador LQR, sendo necessário selecionar os parâmetros do LQR para que Lr ( s ) se aproxime de C ΦL . A função custo a ser minimizada pode ser da forma J= 1 ∞ T ( x Qx + ρ 2uT Ru ) dt 2 ∫0 (4.25) Após a seleção de Q e R , pode-se variar o valor de ρ , normalmente fazendo-o tender a zero para efetuar o loop-shaping pela análise dos gráficos de magnitude dos valores singulares e recalculando o ganho K até se obter resultado satisfatório. O uso do LQG/LTR será empregado nas próximas seções para executar as funções de controle de SAS, CAS e piloto automático do Aerosonde UAV. Mais precisamente, na dinâmica lateral, serão projetados controladores que controlam o ângulo de bank com aumento da estabilidade e promovendo um piloto automático do tipo roll angle hold. Para a dinâmica longitudinal, o mesmo será feito para um pitch angle hold com speed hold, todos em um único controlador com a estrutura sendo fornecida automaticamente pelo processo, a seguir, do projeto dos controladores. 4.6 Sistema de Controle Lateral do Aerosonde UAV O projeto do sistema de controle lateral do Aerosonde UAV começa pelo desenvolvimento de um sistema CAS que controle o ângulo de bank da aeronave para o problema de regulação e rastreamento, ou seja, tanto para manter as asas niveladas como para mantê-la em ângulos específicos e permitir curvas coordenadas com mínima derrapagem. Logo, o interesse está em fazer φ seguir um comando do piloto automático mantendo β = 0 . 69 Este sistema será projetado utilizando as técnicas de LQG/LTR estudadas anteriormente visando agrupar em uma única estrutura o roll-damper, yaw-damper, roll-rate e o piloto automático roll-angle hold, que será o controlador de baixo nível para o controle direcional do Aerosonde. Utilizando o software Matlab para o projeto, e o modelo linear do Aerosonde, apresentado no Capítulo 3, inicia-se esta etapa pela análise das variáveis que serão utilizadas para estimar os estados da planta e comandar a mesma. O vetor de entrada de controle é u = [ aileron rudder ] ; T O vetor de referência é r = ⎡⎣ rφ O vetor de estados é x = [ v T rβ ⎤⎦ , onde rβ = 0 ; p r φ ψ] ; T A matriz C da planta é: ⎡ 0 C=⎢ ⎣0, 0435β 0 0 1φ 0 0 0 0⎤ 0 ⎥⎦ logo, as variáveis que serão utilizadas para estimar os demais estados são φ e β , sendo feita a aproximação de β = 0, 0435v , obtida pelo software de linearização descrito no ANEXO B, onde calcula-se o ângulo de sideslip a partir do vetor formado pelas duas componentes u e v da velocidade nos eixos x e y, respectivamente. Na Figura 4.11 é apresentado o diagrama de magnitude de Bode em relação aos ganhos principais inferior ( σ ) e superior ( σ ) do sistema original da dinâmica lateral do Aerosonde. Os ganhos principais (ou SVs) versus frequência mostram claramente que o erro de regime será elevado em malha fechada, pois o loop-gain não apresenta integradores nem um grande ganho DC, assim como uma grande separação entre os SVs inferior e superior nas baixas freqüências. Logo, esta característica deve ser balanceada pelo uso de um pré-compensador P : P = H −1 (0) (4.26) que é a inversa do ganho DC H (0) do sistema original que pode ser obtido pelo comando dcgain do Matlab: ⎡52,8559 48, 4368⎤ H (0) = ⎢ ⎥ ⎣ 1, 4301 2,3250 ⎦ e ⎡ 0, 0434 -0,9034 ⎤ P=⎢ ⎥ ⎣-0, 0267 0,9858 ⎦ 70 O sistema aumentado pela inclusão do pré-compensador na entrada é descrito por d ⎡ x⎤ ⎡ A B⎤ ⎡ x⎤ ⎡ 0 ⎤ = + u dt ⎢⎣ε ⎥⎦ ⎢⎣ 0 0 ⎥⎦ ⎢⎣ε ⎥⎦ ⎢⎣ P ⎥⎦ Aa ; ⎡y⎤ ⎡ x⎤ ⎢ y ⎥ = [C 0] ⎢ε ⎥ Ca ⎣ ⎦ ⎣ ε⎦ (4.27) Ba e o resultado em termos dos SVs versus frequência são apresentados na Figura 4.12. Percebe-se que o ganho DC dos SVs foi balanceado e agora o sistema é do tipo 1, com integradores nas duas entradas, acarretando em uma inclinação de -20 dB/década, com ganho mais elevado nas baixas freqüências. Margens de robustez no domínio da frequência Considerando primeiro a margem de alta freqüência, assumindo que o modelo do Aerosonde é preciso em 10% até a frequência de 2 rad/s. Após este valor as incertezas aumentam com uma taxa de 20 dB/década devido aos erros de modelagem, modos flexíveis da aeronave e ruídos de medição. Este comportamento é modelado por: m(ω ) = s+2 20 (4.28) Logo, para garantir a estabilidade da planta, o loop-gain referente a saída deve ser: σ (GK ( jω )) < 1 20 = m(ω ) s + 2 (4.29) mostrado na Figura 4.13. Sendo assim, o projeto do Filtro de Kalman será feito de forma a respeitar a limitação da Figura 4.13, procurando atenuar comportamentos acima de 10 rad/s. Para as considerações de robustez em relação às baixas freqüências, o sistema em malha fechada deve ser robusto, por exemplo, a distúrbios como rajadas de ventos. O mínimo loop-gain para o SV inferior deve ser não muito menor que 20dB em 10−1 rad/s. 71 Figura 4. 11: Ganhos principais do sistema original da dinâmica lateral do Aerosonde. Figura 4. 12: Ganhos principais balanceados em DC e com inclinação de -20 dB/década. 72 Figura 4. 13: Magnitude de 1 m (ω ) , para limitar σ nas altas freqüências. 4.6.1 LQG/LTR Lateral do Aerosonde Para o projeto do LQG/LTR lateral com recuperação do loop-gain na saída, primeiro será projetado o Filtro de Kalman, logo, C Φ ( s ) L é o que se quer recuperar na fase posterior com o projeto do LQR. Filtro de Kalman Para encontrar o ganho L que minimiza o funcional J= 1 ∞ 2 T ( rf x Qx + uT Ru ) dt 2 ∫0 (4.30) os parâmetros de rf , Q e R devem ser selecionados para garantir rápida convergência na estimação, boa resposta temporal e respeitar as margens de robustez e estabilidade. Para o sistema aumentado após a inclusão do pré-compensador P , de (4.26), o vetor de estados aumentou seu número de variáveis para 7, logo a matriz de pesos Q deve ser diagonal 7x7 e R , referente as duas variáveis de entrada, uma 73 matriz identidade 2x2. Após algumas tentativas, determinou-se Q do filtro como sendo: v p r φ ψ P1 P2 Q = diag ([1 1 1 1 1 0,1 0,1]) e rf = 102 , o que forneceu os SVs da Figura 4.14, e resposta temporal da Figura 4.15 ao degrau unitário aplicado na referência rφ com o sistema em malha fechada. Os valores singulares da Figura 4.14 estão respeitando as margens de robustez e estabilidade, e a resposta temporal da Figura 4.15 é aceitável, com erro de regime nulo. O ganho L encontrado que minimiza o funcional em (4.30) é: ⎡ -6, 6814 17,1550 2,5413 11, 6021 1,5383 -2, 6822 -1, 6702 ⎤ L=⎢ ⎥ ⎣ 71, 2020 -7,5490 -6,8505 -0, 2906 -3, 4528 -1, 6704 2, 6829 ⎦ T e as margens de ganho e fase do sistema são, respectivamente, 2 ×104 e 60º . Outro requisito de análise para o projeto do filtro é a condição de alcançabilidade de ( Aa , Q ) , que é atendida pela matriz de pesos Q . Logo, o sistema é alcançável, o que pode ser verificado pelo erro de estimação tendendo a zero na Figura 4.16 após a realização da simulação com o diagrama de blocos da Figura 4.17. Figura 4. 14: Ganhos principais de C Φ ( s ) L com Filtro de Kalman e rf = 10 . 2 74 Figura 4. 15: Resposta ao degrau aplicado em rφ do sistema em M.F. com Filtro de Kalman. Figura 4. 16: Erro de estimação dos estados tendendo a zero, exceto por ψ na linha preta tracejada. 75 Figura 4. 17: Diagrama de simulação do Simulink e análise do erro de estimação de estados. Na Figura 4.16 a linha preta tracejada chama a atenção, pois é a única que não converge totalmente a zero, deixando o erro de estimação em torno de -0,04. Esta linha corresponde ao erro de estimação de ψ (psi). No entanto, esta variável não causará problemas, pois ficará “relaxada” no projeto do LQR, justamente para não influenciar no controle, já que está ligada diretamente ao controle de direção, que não está sendo abordado neste controlador, para não entrar em conflito devido ao acoplamento que ψ tem com todas as outras variáveis do vetor de estados. No diagrama da Figura 4.17 destacam-se as matrizes A est , Best e Cest que são as matrizes do Filtro de Kalman. Além destes destaques, a entrada aplicada aos ailerons foi um pulso que durou de 0 a 1 segundo de simulação com amplitude igual a 0,1 apenas para tirar a planta do seu estado inicial de equilíbrio. Os pólos, fatores de amortecimento, freqüências ou constantes de tempo com o filtro em malha fechada são mostrados na Tabela 4.2 (veja especificações de qualidade na seção 4.1). Tabela 4. 2: Pólos de malha fechada do sistema com o Filtro de Kalman. Pólos Amortecimento Freq. (rad/s) ou Cte. Tempo (s) -1,53 -2, 07 -1,94 ± j 5, 60 -9,53 -18,3 1, 00 1, 00 0,328 1, 00 1, 00 1,53 s 2, 07 s 5,93 rad / s 9,53 s 18,3 s 76 LQR A seleção dos parâmetros do LQR, que leva ao ganho ótimo K , que minimiza o funcional J= ( ) 1 ∞ T x Qx + ρ 2u T Ru dt 2 ∫0 (4.31) deve ser realizada. O parâmetro ρ 2 = 10−2 foi obtido após algumas tentativas e análises da resposta do sistema com o LQG/LTR completo. Escolheu-se a matriz de pesos Q do LQR dada por: φ ψ P1 P2 ⎛ v 2 p r ⎞ 6 −6 Q = diag ⎜ ⎡⎣10 1 1 10 10 1 1⎤⎦ ⎟ ⎜ ⎟ ⎝ ⎠ Percebe-se que esta matriz Q deixa a variável ψ bastante “relaxada” tal como mencionado anteriormente sobre a Figura 4.16. No entanto, a variável v , que tem relação direta com a variação de β , possui maior peso assim como a variável φ . A matriz R , é uma matriz identidade 2x2, agora multiplicada por ρ 2 = 10−2 . Os testes e análises a partir desta etapa já são feitos com o sistema completo do LQG/LTR, e o valor calculado é dado por: ⎡0, 0849 -0, 0849 -0, 4828 -3, 4213 0, 0000 1, 0272 0,9352 ⎤ K = 103 ⎢ ⎥ ⎣ 0, 0271 0,1539 -0, 0604 9,3653 0, 0000 -0, 0705 0,1137 ⎦ LQG/LTR O projeto do LQR mostrado anteriormente já atende as necessidades de recuperação do loop-gain, ou seja, a variação do parâmetro ρ , assim como das matrizes dos pesos, já foram feitas para garantir a recuperação das especificações de C ΦL . Sendo então apresentado o sistema aumentado e completo com o LQG/LTR, pré-compensador e o modelo linear do Aerosonde: ⎡A Alqg / ltr = ⎢ a ⎣ 07 x 7 − Ba K ⎤ ⎥ Aa − LCa − Ba K ⎦ ; ⎡0 ⎤ Blqg / ltr = ⎢ 7 x 2 ⎥ ⎣ −L ⎦ ; Clqg / ltr = [Ca 02 x 7 ] (4.32) Os valores singulares do sistema completo, respeitando as margens de robustez e estabilidade, são mostrados na Figura 4.18, e a resposta a aplicação de um degrau unitário na referência rφ e o sinal de controle, na Figura 4.19. 77 As margens de ganho e fase do sistema com LQG/LTR são respectivamente 6, 2001×104 e 60, 0011º , fornecendo um aumento na margem de ganho em relação a obtida no projeto com o Filtro de Kalman. Figura 4. 18: Ganhos principais do sistema com LQG/LTR. Figura 4. 19: Resposta ao degrau do sistema com LQG/LTR e sinal de controle. Na Figura 4.19 vê-se que o sinal de controle conta com baixas amplitudes angulares, levando em consideração que amplitudes comuns de deflexão dos ailerons e do leme podem chegar a até 45º em algumas aeronaves. 78 O controlador lateral de baixo nível está pronto, então, para receber os comandos do controlador de direção que vai orientar o Aerosonde em relação aos ângulos da bússola através de comandos de ângulos de rolagem ao piloto automático Roll Angle Hold (controle do ângulo de bank) projetado aqui. Como uma observação final, percebe-se, na Figura 4.19, que a resposta temporal do ângulo de rolagem possui sobre-sinal de aproximadamente 10% que não foi possível reduzir sem comprometer as margens de robustez e estabilidade. No entanto, em aviões, os efeitos que mais provocam desconforto a tripulantes ou danos aos equipamentos dentro da fuselagem são os de derrapagem e demais esforços resultantes das forças que provocam o efeito de sideslip (Stevens e Lewis; 2003). Portanto, sobre-sinal nesta faixa para o Roll Angle Hold é aceitável, tal como pode ser comparado pela Tabela 4.3 dos pólos de malha fechada do sistema, em relação às especificações de qualidade de vôo da seção 4.1 e os pólos de malha aberta do sistema original na Tabela 3.2 do Capítulo 3. Tabela 4. 3: Em cinza, os pólos de M.F. do Aerosonde aumentados pelo pré-compensador e modificados pelo controlador. Em branco, os pólos adicionados pelo LQG/LTR. Pólos Amortecimento Freq. (rad/s) ou Cte. Tempo (s) −1,86 × 10−6 1 1,86 ×10−6 s −1,53 1 1,53 s −2, 07 1 2, 07 s −1,94 ± j 5, 60 0,328 5,93 rad / s −9,53 1 9,53 s −4,84 ± j8,31 0,504 9, 62 rad / s −9, 66 1 9, 66 s −18,3 1 18,3 s −49,3 ± j83, 7 0,507 97, 2 rad / s −98, 0 1 98, 0 s Todo o código desenvolvido no Matlab para o projeto do Controlador Lateral do Aerosonde, que foi apresentado nesta seção, está presente no APÊNDICE B. 79 4.7 Sistema de Controle Longitudinal do Aerosonde UAV O projeto do sistema de controle longitudinal do Aerosonde UAV incorpora os pilotos automáticos de Pitch Angle Hold e Speed Hold para o controle das variáveis θ e Va (velocidade do fluxo de ar), respectivamente. O método de projeto se assemelha ao utilizado para o controlador LQG/LTR lateral de baixo nível da seção 4.6, logo, este sistema incorpora aumento de estabilidade com SAS, CAS e funções de piloto automático. No controle longitudinal, uma das maiores preocupações é o desacoplamento das variáveis que se quer controlar, pois como foi visto no Capítulo 3, velocidade e atitude da aeronave estão fortemente ligadas. Além desta preocupação, há também a questão de minimizar as variações angulares e forças laterais que atuam na dinâmica longitudinal e “relaxar” algumas variáveis de estados, tal como a altitude e a rotação do motor (Omega), para que estas não interfiram no controle de θ e Va . O vetor de entrada de controle é: u = [ elevator throttle] ; T O vetor de referencia é: r = [ rθ rVa ] ; T O vetor de estados é: x = [u w q θ h omega ] , onde os componentes T são, respectivamente: velocidade ( m / s ) em relação ao eixo x, velocidade ( m / s ) em relação ao eixo z (sistema NED), pitch-rate, ângulo de pitch, altitude e Omega (rpm); A matriz C da planta é: ⎡0,9972Va C=⎢ 0 ⎣ 0, 0753α 0 0 0 0 1θ 0 0⎤ 0 0 ⎥⎦ logo, as variáveis que serão utilizadas para estimar os demais estados são Va , α e θ . Na Figura 4.20 é apresentado o diagrama de magnitude de Bode em relação aos ganhos principais inferior ( σ ) e superior ( σ ) do sistema original da dinâmica longitudinal do Aerosonde e, assim como ocorreu com a dinâmica lateral, será necessário incluir um pré-compensador P como o da equação 4.26, para a inclusão dos integradores e balancear as entradas do sistema. Neste caso, P é dado por: ⎡-0, 0006 -3, 6743 ⎤ P=⎢ ⎥ ⎣ 0,1929 12,1762 ⎦ 80 O sistema aumentado com P é descrito da mesma forma que em (4.27). Figura 4. 20: Ganhos principais inferior e superior do sistema longitudinal original. Figura 4. 21: Ganhos principais do sistema aumentado com pré-compensador. 81 Na Figura 4.21, são mostrados os valores singulares do sistema aumentado com o pré-compensador. Percebe-se que agora o sistema decai com -20 dB/década, mas diferentemente do que ocorreu com a dinâmica lateral, os canais não estão perfeitamente balanceados. No entanto, houve um aumento significativo do ganho em DC. 4.7.1 LQG/LTR Longitudinal do Aerosonde Filtro de Kalman Para encontrar o ganho L que minimiza o funcional em (4.30) foram utilizados, neste caso, os seguintes parâmetros: rf 2 = 10 u w q θ h omega P1 P2 Q = diag ([1 1 1 1 1 1 30 90]) R = I2x2 resultando em: ⎡ 0, 0111 -0, 0238 -0, 0041 -0, 0024 0, 0087 2, 7802 0, 0036 0, 0293⎤ L = 10 ⎢ ⎥ ⎣-0, 0096 0, 0956 0, 0239 0, 0072 0, 0028 0, 6060 -0, 0169 0, 0062 ⎦ T 3 Sendo o sistema alcançável e observável pelos testes de ( Aa , Q ) e ( AaT , BaT ) . Os SVs do sistema em malha aberta com o Filtro de Kalman são mostrados na Figura 4.22, projetados para respeitar os limites de altas freqüências tal como foi feito com o controlador lateral, tendo frequência de corte em torno de 10 rad / s . Para avaliar o funcionamento do filtro, na Figura 4.23 é apresentada a resposta temporal quando um degrau é aplicado à referência rθ , com rVa = 0 . Na Figura 4.24 é feito o contrário, aplicando-se o degrau em rVa e zero na referência 1. O erro de estimação é avaliado na Figura 4.25, quando um diagrama de simulação tal como o apresentado na seção anterior, na Figura 4.17, é utilizado, aplicando-se um pulso de amplitude igual a 0,1 na entrada (1) do elevator durante o primeiro segundo da simulação. As margens de ganho e fase do sistema com o filtro são respectivamente 1,9804 × 105 e 60º . 82 Figura 4. 22: Ganhos principais do sistema aumentado em M.A. com o Filtro de Kalman. Figura 4. 23: Resposta temporal ao degrau aplicado em rθ do sistema em M.F. com o Filtro de Kalman. 83 Figura 4. 24: Resposta temporal ao degrau aplicado em rV a do sistema em M.F. com o Filtro de Kalman. Figura 4. 25: Erros de estimação dos estados do sistema com o Filtro de Kalman. 84 Na Figura 4.25, pode-se perceber que uma das variáveis de estados fica com erro estático não nulo. Essa variável é referente à altitude, sobrando um erro de estimação de aproximadamente 0, 244 metros. Como mencionado na seção 4.4.2, deste capítulo, as tolerâncias nos controladores de altitude são de ±60 m , logo, este erro de estimação não é tão significativo. Além disto, a variável h , assim como Omega , ficarão “relaxadas” no projeto deste controlador, justamente para não interferirem no objetivo de controle deste LQG/LTR longitudinal. Os pólos, fatores de amortecimento, freqüências e constantes de tempo com o filtro em malha fechada são mostrados na Tabela 4.4 (veja especificações de qualidade na seção 4.1). Tabela 4. 4: Pólos de M.F. do sistema aumentado com o Filtro de Kalman. Pólos Amortecimento Freq. (rad/s) e Cte. Tempo (s) -2,89 ×10−4 -2, 67 ± j 0,991 1 0,937 2,89 × 10−4 s 2,85 rad / s -4,89 -4, 42 ± j 3,97 -4, 28 ± j10,3 1 0, 744 4,89 s 5,94 rad / s 11,1 rad / s 0,385 LQR Para a obtenção do ganho K ótimo que minimiza o funcional em (4.31), os seguintes parâmetros foram utilizados no projeto do LQR: ρ 2 = 10−2 q θ h omega P1 P2 ⎛ u 3 w ⎞ 5 −3 −3 −3 −3 ⎡ Q = diag ⎜ ⎣5 ×10 10 1 10 10 10 10 10 ⎤⎦ ⎟ ⎜ ⎟ ⎝ ⎠ R = I2x2 Percebe-se que a matriz Q deixa as variáveis h e Omega “relaxadas”, enquanto que u , que tem relação direta com Va , possui um peso bem maior. A variável θ também possui grande peso, assim como w e q também recebem certa consideração para minimizar as respectivas variações de velocidade no eixo z e variação angular de θ . O ganho K obtido para estes parâmetros de projeto foi: 85 ⎡ 0, 6580 0, 0909 -0, 0545 -1,3108 0, 0000 0, 0013 0, 2307 0, 0696 ⎤ K = 103 ⎢ ⎥ ⎣-0,1031 0, 0004 0, 0873 3, 0785 0, 0003 0, 0001 -0, 0338 0, 0009 ⎦ LQG/LTR A descrição do sistema aumentado e completo com o LQG/LTR, précompensador e o modelo linear longitudinal do Aerosonde é: ⎡A Alqg / ltr = ⎢ a ⎣08 x8 − Ba K ⎤ Aa − LCa − Ba K ⎥⎦ ; ⎡0 ⎤ Blqg / ltr = ⎢ 8 x 2 ⎥ ⎣ −L ⎦ ; Clqg / ltr = [Ca 02 x8 ] (4.33) Os valores singulares do sistema completo, respeitando as margens de robustez e estabilidade são mostrados na Figura 4.26, e a resposta à aplicação de um degrau unitário na referência rθ e o respectivo sinal de controle, na Figura 4.27. A resposta à aplicação de um degrau unitário na referência rVa e o respectivo sinal de controle são mostrados na Figura 4.28. As margens de ganho e fase do sistema com LQG/LTR são respectivamente 1,1645 ×105 e 60º . Figura 4. 26: Ganhos principais do sistema com LQG/LTR. 86 Na Figura 4.26 vê-se que os ganhos principais inferior e superior respeitam as margens de robustez e estabilidade estabelecidas para os projetos dos controladores LQG/LTR, tendo o ganho principal inferior em 0,1 rad / s em torno de 20dB e o superior atenuando a partir de 10 rad / s . Figura 4. 27: Resposta ao degrau aplicado em rθ do sistema em M.F. com LQG/LTR e o sinal de controle. Figura 4. 28: Resposta ao degrau aplicado em rVa do sistema em M.F. com LQG/LTR e o sinal de controle. A resposta de θ na Figura 4.27 possui um elevado sobre-sinal de cerca de 60%, considerado ruim para grandes deflexões do ângulo de pitch. No entanto, o acoplamento existente entre Va e θ no Aerosonde UAV não deixou muita escolha para garantir a robustez e estabilidade de acordo com as margens estabelecidas no projeto. De qualquer forma, será visto na simulação com a planta não-linear, que com a inclusão de um limitador de pitch (no Bloco 3 da Figura 5.7), este controlador 87 pode ser limitado a rastrear apenas valores pequenos de ângulo de pitch. Além disto, será visto no Capítulo 5 que os resultados com o modelo não linear possuem menor sobre-sinal. Isto se deve ao fato de que a dinâmica dos atuadores não é considerada no modelo linear, assim como efeitos de saturação. Este fato pode ser explicado pelos gráficos dos sinais de controle das figuras 4.27 e 4.28, onde percebe-se variações muito rápidas para as deflexões angulares do profundor. O mesmo ocorre para o acelerador, que no modelo linear, nunca satura, o que permite imaginar uma alavanca de acelerador infinita que aceita até mesmo valores negativos (desaceleração ou freio). No modelo não linear o acelerador vai de 0 a 1. Por hora, apesar do sobre-sinal estar elevado, sabe-se que o sistema é robusto e estável, sendo capaz de garantir um bom desacoplamento entre a dinâmica longitudinal e lateral do Aerosonde, garantindo erro de regime nulo durante curvas coordenadas quando trabalhando em conjunto com o controlador lateral. Os pólos do sistema longitudinal completo são mostrados na Tabela 4.5: Tabela 4. 5: Em cinza, os pólos M.F. do Aerosonde aumentados pelo pré-compensador e modificados pelo controlador. Em branco, os pólos adicionados pelo LQG/LTR. Pólos Amortecimento Freq. (rad/s) ou Cte. Tempo (s) -2,89 ×10−4 1, 00 2,89 × 10−4 s -7,90 × 10−4 1, 00 7,90 ×10−4 -2, 67 ± j 0,991 0,937 2,85 rad / s −3,53 1 3,53 s −4,89 1 4,89 s -4, 42 ± j 3.97 0, 744 5,94 rad / s −7, 70 1 7, 70 s -4, 08 ± j 6, 61 0,525 7, 77 rad / s -4, 28 ± j10,3 0,385 11,1 rad / s -99,8 1 99,8 s -50,8 ± j87, 4 0,502 101 rad / s O código em Matlab utilizado neste projeto está descrito no APÊNDICE C. O projeto dos sub-controladores do Aerosonde está finalizado, passando-se então ao projeto dos sistemas de controle de altitude, direção e navegação. 88 Capítulo 5 Controladores fuzzy de Altitude, de Direção e o Sistema de Navegação No Capítulo 4 foram desenvolvidos os controladores de baixo nível do sistema de controle de vôo do Aerosonde UAV, sendo estes, sub-controladores, que são utilizados pelos controladores fuzzy de altitude e de direção apresentados neste capítulo. Além desses, será mostrado o sistema de navegação da aeronave que fornece as referências aos controladores de altitude e direção para coordenar o UAV através dos waypoints pré-estabelecidos. A escolha em trabalhar com controle fuzzy, nesta etapa, baseia-se em questões didáticas de apreciação do uso concomitante deste tipo de técnica com outras, e pela simplicidade na elaboração dos controladores, em vista de que os acoplamentos e demais complexidades da planta já foram solucionadas pelo método LQG/LTR dos controladores do Capítulo 4. Além disto, este trabalho complementa o que foi desenvolvido sobre controle fuzzy aplicado ao Aerosonde em Silveira et al. (2007), onde não se fazia o controle simultâneo da altitude e velocidade, nem a navegação através dos waypoints. Ao final do capítulo, serão feitas simulações com o sistema de controle de vôo completo juntamente com o sistema de navegação. Serão verificados resultados com e sem perturbações, testes fora da região de estabilidade onde o modelo utilizado nos projetos dos controladores foi obtido por linearização, e também com variações na massa de combustível. Além disso, serão fornecidas informações sobre cada bloco do Simulink desenvolvido para simular este sistema, com o modelo nãolinear com 6-DOF. 5.1 Controlador fuzzy de Altitude As técnicas de controle fuzzy estão inseridas na área de controle inteligente. Geralmente, os problemas de controle são tratados através destas técnicas quando um modelo qualitativo está disponível (ou informações de especialistas) e a estratégia de controle pode ser formulada e executada com base em um conjunto de regras que procuram emular o raciocínio humano. 89 Uma das principais características dos controladores fuzzy do tipo Mamdani é a presença do fuzzificador e defuzzificador que permitem trabalhar com regras lingüísticas, tal como, “SE” a altitude é grande, “ENTÃO” diminua o ângulo de pitch. Essa expressão SE-ENTÃO mostrada caracteriza uma regra que qualquer piloto de avião conhece e faz intuitivamente. Sendo assim, o que se pretende fazer para controlar a altitude do Aerosonde UAV é utilizar uma base de conhecimento para promover o controle. Como os sinais fornecidos pelos sensores do Aerosonde são valores reais, ou crisp (Passino e Yurkovich; 1998), deve-se utilizar um fuzzificador na entrada do controlador para transformar um valor real em um conjunto fuzzy. O processo inverso é feito na saída com o defuzzificador, transformando um conjunto fuzzy de volta para um valor real, como por exemplo, um ângulo de pitch. A estrutura em diagrama de blocos de um controlador fuzzy de Mamdani é mostrada na Figura 5.1 (Wang; 1997): Figura 5. 1: Diagrama de blocos do controlador fuzzy de Mamdani. Para melhor entender o processo mostrado na Figura 5.1, a elaboração do piloto automático Altitude Hold, abordado na seção 4.4.2, será usado como exemplo. O controlador fuzzy de altitude trabalho com mapeamento estático, recebendo na entrada o erro entre a altitude desejada e a atual do Aerosonde UAV eh = href − h (5.1) para determinar uma referência de ângulo de pitch ( θ ref ) na saída para fazer a aeronave subir, nivelar ou descer. O processo de fuzzificação então converte o valor real de eh para os conjuntos fuzzy N, Z, P, referentes a erro negativo, zero e positivo, respectivamente. Estes três conjuntos são representados por funções de pertinência definidas no universo de discurso de eh , conforme, por exemplo, a Figura 5.2. A fuzzificação é feita, então, mapeando-se o valor real da variável eh em termos das funções trapezoidais de N e P ou da função triangular de Z (Wang; 1997), tal como pode ser visto no código fonte do controlador fuzzy de altitude no APÊNDICE D. 90 Para o processo de defuzzificação, é aplicado o método por média dos centros e são utilizados os conjuntos fuzzy referentes aos ângulos de pitch que devem conduzir a aeronave a ganhar ou perder altitude. Estes conjuntos são designados por AUMENTAR, NEUTRALIZAR e DIMINUIR o ângulo de pitch, com suas funções, neste trabalho, mostradas na Figura 5.3. Figura 5. 2: Funções de pertinência de entrada do controlador. Figura 5. 3: Funções de pertinência de saída do controlador. As funções de pertinência da saída da Figura 5.3 estão limitadas em uma faixa de 0 a 1 no universo de discurso de θ ref , no entanto, o valor crisp resultante da defuzzificação é posteriormente escalonado por um ganho que limita o θ ref máximo para que se possa definir a máxima deflexão de pitch de acordo com a fase de vôo, como por exemplo, para não permitir grandes ângulos em baixas velocidades. A distribuição das funções de pertinência tanto da entrada como da saída são geralmente determinadas com base no conhecimento adquirido sobre a planta. 91 A máquina de inferência aqui utilizada usa uma base de regras simples composta por: SE eh ∈ N ENTÃO diminuir pitch; SE eh ∈ Z ENTÃO neutralizar pitch; SE eh ∈ P ENTÃO aumentar pitch. Como se usou apenas uma entrada, a inferência é direta tal como mostrado na base de regras. E para a defuzzificação, utiliza-se a média dos centros: 3 θ ref = ∑b μ i =1 3 i ∑μ i =1 i (5.2) i onde b é a base da função de saída. Neste exemplo, pela análise de Figura 5.3 vêse que as bases são 0, 25 , 0,5 e 0, 75 para diminuir, neutralizar e aumentar, respectivamente, e μ é a pertinência das funções de entrada. O código fonte deste controlador está demonstrado no APÊNDICE D. 5.2 Controlador fuzzy de direção/heading O controlador de direção ou Heading Hold é a parte do piloto automático responsável por rastrear valores de ângulos entre 0º e 359º fornecidos pelo sistema de navegação do Aerosonde. Na sua entrada recebe o erro entre a direção desejada e a atual do UAV: eψ = ψ ref −ψ UAV (5.3) ψ UAV = ψ + β (5.4) onde A equação 5.4 representa a direção real da aeronave considerando os efeitos de derrapagem ( β ). Como o controlador lateral desenvolvido no Capítulo 4 elimina quase que totalmente os efeitos de β , pode-se considerar este igual a zero em (5.4). Na saída do controlador fuzzy de direção é fornecido o ângulo de bank ( φref ) de referência para o controlador lateral de baixo nível. 92 A estrutura do controlador fuzzy de direção é a mesma utilizada para o controlador de altitude da seção anterior, diferenciando-se é claro, pelas variáveis de entrada e saída assim como pela distribuição das funções de pertinência nos seus universos de discurso. Para a entrada, os conjuntos continuam com os mesmos nomes, N, Z e P. Para a saída, os novos nomes são: ESQUERDA, NIVELAR e DIREITA, referentes a efetuar rolagem à esquerda ou à direita para mudar a direção do UAV ou nivelar, para manter o veículo na direção atual. As funções de pertinência para a entrada e saída são mostradas nas figuras 5.4 e 5.5. Figura 5. 4: Funções de pertinência de entrada do controlador. Figura 5. 5: Funções de pertinência da saída do controlador. A saída do controlador fuzzy é o ângulo de bank de referência que é passado ao controlador de direção de baixo nível, sendo que o universo de discurso de saída está limitado entre -1 e 1, para posteriormente ser escalonado por um ganho externo que limita o máximo ângulo de bank. A base de regras do controlador fuzzy de direção é: SE eψ ∈ N ENTÃO rolar à esquerda; 93 SE eψ ∈ Z ENTÃO nivelar asas; SE eψ ∈ P ENTÃO rolar à direita. O método de defuzzificação utilizado é o mesmo do controlador de altitude, por média dos centros, mostrado na equação 5.2. Deve-se fazer uma observação sobre o controlador de direção, pois ele possui um tratamento especial para o sinal do erro de direção ( eψ ), para que a aeronave sempre procure o caminho mais curto no momento de decidir para qual lado efetuar uma curva. Por exemplo, imagine que o UAV esteja voando na direção de ψ UAV = 10º quando o sistema de navegação solicita uma nova referência de ψ ref = 350º . A aeronave poderia alcançar o ângulo solicitado tanto com uma curva à esquerda como à direita, no entanto, pela esquerda o caminho é mais curto. Para tratar este problema foi utilizado o esquema da equação 5.5: ( ) eψ corrigido = eψ − 180º − 180º se eψ > 180º (5.5) A implementação de (5.5) assim como do controlador fuzzy de direção pode ser conferida no APÊNDICE E. Com a conclusão do controlador de direção, completa-se todo o sistema de controle de vôo do Aerosonde UAV, restando apenas o sistema de navegação que monitora a aeronave e comanda os controladores desenvolvidos neste trabalho. 5.3 Sistema de navegação O sistema de navegação implementado neste trabalho deve exercer as funções tal como abordado na seção 2.3.3. Basicamente, monitora-se a posição da aeronave em termos de sua latitude, longitude e altitude determinando a partir de uma base de dados de waypoints como conduzir o avião ao ponto desejado. Neste trabalho, os waypoints possuem informações adicionais para que se possa ter condições de vôo específicas entre cada fase da viagem. Essas informações são velocidade, pitch máximo e bank máximo, permitindo que decolagens, subidas até altitude de cruzeiro, descidas, aproximações e pousos possam ter configurações que garantam a segurança da aeronave. Um exemplo da utilização destes parâmetros adicionais dos waypoints seria ter o Aerosonde, logo 94 após a decolagem, sujeito a fortes ventos laterais e executando manobras com grandes deflexões angulares. Nesta situação, se o avião ainda estivesse em baixa velocidade e altitude, possivelmente poderia entrar em stall e cair. Apesar dos parâmetros adicionais presentes na base de dados de waypoints do sistema de navegação, este trabalha com restrições apenas de latitude e longitude, ou seja, se a latitude e longitude de um determinado ponto for atingida, o sistema de navegação passa a conduzir a aeronave para o próximo ponto desejado, independentemente dos demais parâmetros estarem ou não próximos aos valores desejados. Isto foi adotado por questões de simplificação do trabalho. O método para determinação da trajetória que conduz o Aerosonde para uma posição desejada em termos de latitude e longitude é o de triangulação, semelhante ao adotado em Hoover (2004), onde ⎛ Lond − Lonatual ⎞ 180º ⎟ ⎝ Latd − Latatual ⎠ π ψ ref = tan −1 ⎜ (5.6) é obtido a partir da Figura 5.6. O subscrito “d” em (5.6) é referente à latitude e longitude desejadas. O ângulo ψ ref (em graus) obtido é então passado como referência a ser rastreada pelo controlador fuzzy de direção. Figura 5. 6: Representação gráfica do método de triangulação para obtenção da trajetória ψ ref . 95 O sistema de navegação, então, utiliza duas entradas (latitude e longitude) que são constantemente avaliadas para poder determinar a trajetória para um determinado waypoint. Estas entradas são fornecidas como ângulos em radianos e comparadas com a latitude e longitude desejadas. Quando | Latd − Latatual | < 10−5 rad e | Lond − Lonatual | < 10−5 rad (5.7) o sistema de navegação considera que o waypoint fora atingido e deve-se passar ao waypoint seguinte. Na saída do sistema de navegação são fornecidas as referências para os sistemas de controle de vôo conforme mostrado no vetor em (5.8): saídanav = ⎡⎣ψ ref href − 3 Varef φMAX θ MAX wp ⎤⎦ T (5.8) onde wp é o número do waypoint para onde o sistema de navegação estará conduzindo o Aerosonde. Percebe-se que a referência para a altitude href é subtraída de 3 metros. Isto se deve a necessidade de corrigir o erro em regime permanente que o controlador fuzzy de altitude não elimina por não possuir ação integral, sendo então, mais simples, incluir este offset de -3. Para o planejamento das missões que se quer executar com o Aerosonde e definição dos waypoints, pode-se utilizar coordenadas para longitude e latitude definidas em graus, minutos e segundos convertendo-as para radianos usando a função dms2rad do Matlab, tal como é descrito no código fonte do planejador de missões do APÊNDICE F. As coordenadas podem ser obtidas a partir de um GPS, mapa, cartas de navegação, etc. Neste trabalho, foram utilizados os softwares Google Earth (http://earth.google.com/) e o Microsoft Flight Simulator 2004 para obter coordenadas sobre pontos específicos do globo terrestre. O código fonte do sistema de navegação é apresentado no APÊNDICE G deste trabalho. 5.4 Simulações com o piloto automático completo Neste estágio, tudo o que era necessário para controlar e navegar o Aerosonde de forma autônoma já foi projetado e está pronto para ser utilizado com o modelo não-linear de 6-DOF da aeronave no Simulink. 96 As simulações serão feitas em etapas que seguem desde o planejamento da missão, testes individuais dos controladores, até o momento em que todos são interligados e a missão é executada do início ao fim com a verificação da rota percorrida. No total, duas simulações serão executadas, sendo a primeira, com o Aerosonde nas proximidades da região de estabilidade em que os controladores de baixo nível foram projetados. Na segunda, o Aerosonde sofrerá diversas variações de parâmetros e condições de vôo, sendo também submetido a perturbações como rajadas de ventos. Ao final, os resultados dessas duas simulações serão comparados para avaliar a eficácia dos controladores desenvolvidos. 5.4.1 Simulação 1: na região de estabilidade e sem perturbações Primeiramente, deve-se analisar o diagrama de simulações construído no Simulink e seus sub-blocos para compreender e associar suas funções com os sistemas que foram projetados. Na Figura 5.7 é apresentado o diagrama completo, enumerado para facilitar a explicação, conforme: Bloco 1: Controlador lateral do Aerosonde desenvolvido na seção 4.6 para eliminar os efeitos de derrapagem ( β → 0 ) e rastrear um ângulo de bank ( φref ). O diagrama contido dentro do bloco 1, com a estrutura do LQG/LTR, é mostrado na Figura 5.8. Os sinais de controle gerados pelo controlador devem ser convertidos de graus para radianos antes de serem inseridos no modelo não-linear do Aerosonde; Bloco 2: Controlador longitudinal do Aerosonde desenvolvido na seção 4.7 para controlar a velocidade do fluxo de ar ( Va ) e o ângulo de pitch ( θ ). O diagrama interno do bloco 2 é apresentado na Figura 5.9. Atenção especial deve ser dada para a presença da saturação de [0,1] e ganho de 1/ 349, 2659 que limitam o sinal de comando enviado ao throttle. O ganho elimina a dinâmica de Omega (rotação do motor) considerado na matriz B do modelo linear da seção 3.3.1.1. Além disto, o sinal de controle enviado à superfície aerodinâmica sofre conversão para radianos; 97 Bloco 3: Controlador fuzzy de altitude da seção 5.1, com seus sub-blocos mostrados na Figura 5.10. Utiliza o bloco Matlab Function do Simulink para carregar a função FLC_altitude.m que tem o código fonte descrito no APÊNDICE D. Na saída da função é utilizado um ganho de 10 / 7, 491 para escalonar o sinal de controle para que seja possível selecionar um θ MAX ; Bloco 4: Controlador fuzzy de direção desenvolvido na seção 5.2. Seus sub- blocos são semelhantes aos do bloco 3, carregando neste a função FLC_heading.m mostrada no APÊNDICE E. Os sub-blocos são apresentados na Figura 5.11 e destaca-se o bloco Pi Bound que converte os sinais de entrada que chegam entre 0º e 359º para [−180º ,180º ] . Na saída da função FLC_heading é utilizado um ganho de 1/ 0,5 para escalonar o sinal de referência do ângulo de bank que é passado ao bloco 2 limitado pelo φMAX ; Bloco 5: Sistema de navegação com seus sub-blocos apresentados na Figura 5.12. Trata os sinais dos sensores do Aerosonde utilizando demultiplexadores para obter apenas as informações de posição do GPS da aeronave. Para a obtenção da trajetória e gerenciamento dos waypoints o bloco Matlab Function é carregado com o psi_waypoint.m descrito no APÊNDICE G. Duas saídas da função psi_waypoint.m não aparecem no diagrama, que são θ MAX e φMAX . Elas são variáveis globais que são atualizadas internamente no Matlab durante a simulação; Bloco 6: Bloco que acompanha a versão 1.2 do Aerosim Blockset para interligar o Simulink ao Microsoft Fligth Simulator. Este bloco passa os parâmetros de posição, ângulos de Euler e Va via o protocolo do software FSUIPC desenvolvido por Peter Dowson (http://www.schiratti.com/dowson.html). Bloco 7: O gerenciador de saídas que apenas armazena as diversas saídas do Aerosonde em variáveis globais do Matlab para que seja reduzido o número de linhas de sinais no diagrama de simulações. Para isto, foram usados os blocos From-To do Simulink. As variáveis deste bloco são mostradas na Figura 5.13. 98 Figura 5. 7: Diagrama completo de simulação no Simulink. 99 Figura 5. 8: Diagrama interno do bloco 1. Figura 5. 9: Diagrama interno do bloco 2. Figura 5. 10: Diagrama interno do bloco 3. Figura 5. 11: Diagrama interno do bloco 4. 100 Figura 5. 12: Diagrama interno do bloco 5. Figura 5. 13: Diagrama interno do bloco 7. 5.4.1.1 Planejamento da missão Utilizando o software Google Earth foram obtidas coordenadas para efetuar uma missão sobre a cidade de Belém-PA, Brasil, que será chamada de Sobrevôo em Belém. O Aerosonde deverá passar por cinco waypoints iniciando sua viagem sobre o Aeroporto Júlio César em Belém a 1000 metros de altitude. A rota que a aeronave deverá percorrer é apresentada na Figura 5.14. 101 Figura 5. 14: Rota que deverá ser percorrida passando por cinco waypoints. O Aerosonde vai iniciar sua viagem na direção ψ 330º , alinhado com a cabeceira da pista 33 do Aeroporto Júlio César na altitude, velocidade e massa de projeto, tal como o modelo linear foi obtido. Seguindo na direção de 330º , interceptará o WP 1 que fica sobre a outra extremidade da pista do aeroporto. Efetuando uma curva coordenada à esquerda, seguirá até a Baía do Guajará interceptando o WP 2. No caminho até o WP 3, o Aerosonde passará nas proximidades das Docas do Estado do Pará, Mercado do Ver-o-Peso e outros pontos turísticos da cidade de Belém do Pará até iniciar seu retorno ao aeroporto via os WP 4 e 5. A seguir, são apresentados os waypoints carregados para o sistema de navegação e plotados na Figura 5.15 pelo software waypoint_gen.m descrito no APÊNDICE F. 102 Início: cabeceira 33 da pista do aeroporto Júlio César Para alinhar o Aerosonde na direção ψ = 330º deve-se fornecer a atitude inicial ao bloco do modelo não-linear que aceita um vetor na forma de quatérnions. Para se obter a atitude em quatérnions basta utilizar as equações de (2.5) do Capítulo 2: q0 = ± (cos φ/2 cos θ/2 cosψ/2 + sen φ/2 sen θ/2 senψ/2) q1 = ±(sen φ/2 cos θ/2 cosψ/2 − cos φ/2 sen θ/2 senψ/2) q2 = ± (cos φ/2 sen θ/2 cosψ/2 + sen φ/2 cos θ/2 senψ/2) q3 = ± (cos φ/2 cos θ/2 senψ/2 − sen φ/2 sen θ/2 cosψ/2) com φ = 0º e θ = 0º . O quatérnion obtido foi: [ q0 q1 q2 q3 ] = [ −0,9659 0 0 0, 2588] T T Latitude: 1º 25'07, 70"S . Como o sistema de navegação trabalha com o sistema de coordenadas em radianos utiliza-se a função dms2rad do Matlab para a conversão, conforme: dms2rad(-1,25,07.70); Latitude ( rad ): -0, 02476282839003 rad Percebe-se que o sinal de menos (-) foi colocado antes do 1 devido a coordenada estar ao sul da linha do equador. Longitude: 48º 27 '22, 47"W (Oeste) = -0,84572096022540 rad ; Altitude: 1000 m ; Va = 23 m / s ; φMAX = 15º ; θ MAX = 7º . WP 1: cabeceira 15 da pista do aeroporto Júlio César Latitude: 1º 24 '34, 23" S = -0, 02460056125096 rad ; Longitude: 48º 27 '55, 20"W = -0.84587963974323 rad ; Altitude: 975 m ; Va = 23 m / s ; φMAX = 15º ; θ MAX = 7º . WP 2: Baía do Guajará Latitude: 1º 26 '06,59" S = -0.02504833516684 rad ; Longitude: 48º 29 '50, 29"W = -0,84643761180881 rad ; Altitude: 950 m ; Va = 23 m / s ; φMAX = 15º ; θ MAX = 7º . 103 WP 3: sobre a Casa das 11 Janelas, Belém-PA, Brasil Latitude: 1º 27 '23,86" S = -0.02542295069823 rad ; Longitude: 48º 30 '19, 66"W = -0.84658000158696 rad ; Altitude: 1000 m ; Va = 25 m / s ; φMAX = 20º ; θ MAX = 7º . WP 4: ponto de aproximação para a cabeceira 33 Latitude: 1º 25'31, 75" S = -0.02487942608034 rad ; Longitude: 48º 26 '59, 06"W = -0.84560746534265 rad ; Altitude: 1000 m ; Va = 23 m / s ; φMAX = 30º ; θ MAX = 7º . WP 5: cabeceira 33 da pista do Aeroporto Júlio César Latitude: 1º 25'07, 70" S = -0, 02476282839003 rad ; Longitude: 48º 27 '22, 47"W = -0,84572096022540 rad ; Altitude: 1000 m ; Va = 23 m / s ; φMAX = 15º ; θ MAX = 7º . Figura 5. 15: Rota gerada pelo waypoint_gen.m. 104 5.4.1.2 Teste dos controladores com o modelo não-linear Controlador LQG/LTR Lateral e Longitudinal com o modelo não-linear Teste feito iniciando a simulação sob as condições do modelo linear do Capítulo 3, solicitando ao controlador longitudinal que rastreie Varef = 23 m / s , θ ref = 7º e solicitando ao controlador lateral que mantenha as asas niveladas. As respostas de θ e φ são apresentadas na Figura 5.16 e de Va em 5.17. Perceba que θ se estabiliza em torno de 7º quando a velocidade se aproxima de 23 m / s . Figura 5. 16: Resposta temporal do controle de θ e φ com zoom nos primeiros 4 s de simulação. Figura 5. 17: Resposta temporal de Va para o teste dos controladores com asas niveladas. 105 Em uma segunda simulação, o controlador longitudinal permanece com as mesmas referências, θ ref = 7º e Varef = 23 m / s , enquanto que um doublet de φref = ±15º é aplicado na referência do controlador lateral de 0 a 30 s e de 30 a 60 s , conforme mostrado na Figura 5.18. Figura 5. 18: Resposta temporal da simulação com doublet aplicado em φref e o sinal de controle. 106 O sinal de controle mostrado na Figura 5.18 representa o momento de transição de φref quando este passa de +15º para −15º . Percebe-se que os controladores LQG/LTR longitudinais e laterais, tal como ocorreu com a simulação do modelo linear, envia comandos de grandes amplitudes durante um curto período de tempo. Este comportamento já era esperado, pois estes controladores devem comportar-se do mesmo modo nas duas simulações (com modelo linear e não linear), a diferença é que no modelo não linear, a aeronave não responde da mesma forma, tal como pode ser visto na Figura 5.17 a ausência do sobre-sinal de 60% na resposta do ângulo de pitch. Outra observação, esta em relação a Figura 5.18, é referente ao sinal de controle do acelerador, que está limitado entre 0 e 1, sendo que no trecho visível da figura o sinal de controle do acelerador se mantém em 1 para garantir que a velocidade de 23 m/s possa ser rastreada enquanto mantém-se o ângulo de pitch rastreando 7º. Com estes resultados, verificou-se que os controladores de baixo nível projetados pelo método LQG/LTR possibilitam o controle das variáveis desejadas com precisão estática e até com transitórios mais suaves do que havia sido verificado no Capítulo 4. Os sinais de controle estão dentro de uma faixa aceitável e com isso, pode-se passar ao estudo dos demais controladores das camadas mais superiores, como os de controle de altitude e direção. Controle fuzzy de Altitude e Direção com o modelo não-linear Neste teste os controladores fuzzy fornecem as referências aos subcontroladores lateral e longitudinal para rastrear altitude e direção. Os limitadores angulares estarão em φMAX = 15º e θ MAX = 7º . A simulação inicia na altitude ( h ) de 980 m e ψ = 0º para rastrear 1000 m e 45º com β → 0 e Varef = 23 m / s . Lembrando que href = 1000 − offset , mencionado na seção 5.1 com offset = 3 . A resposta da altitude é mostrada na Figura 5.19, φ , θ , β , e α em 5.20 e, ψ e Va em 5.21. Percebe-se que a transição na altitude tem um valor praticamente constante nos 10 primeiros segundos, devido a tentativa de aumentar Va pela redução em θ . 107 Figura 5. 19: Resposta temporal de h e intervalo Figura 5. 20: Resposta temporal de φ, marcando o momento em que θ, β, e α θ reduz e Va aumenta. no controle de altitude e direção. 108 Figura 5. 21: Resposta temporal de Va e ψ no controle de altitude e direção. Todas as simulações desta seção e das seções seguintes utilizam o algoritmo de simulação ODE4 (Runge-Kutta) do Simulink com período de amostragem de 0, 02 s . Após estes testes, verificou-se que os controladores estão garantindo bons resultados com o modelo não-linear do Aerosonde, portanto, dá-se continuidade a simulação da rota completa da seção 5.4.1.1. 5.4.1.3 Simulação da rota: Sobrevôo em Belém Na Figura 5.22 é apresentado o gráfico tridimensional da rota percorrida pelo Aerosonde em função da longitude, latitude e altitude. Na Figura 5.23 a mesma rota é apresentada em duas dimensões em função apenas da longitude e latitude. Por fim, a variação da altitude no tempo é mostrada na Figura 5.24, onde se percebe um pequeno erro em regime permanente, porém, aceitável por ser menor que 60 m . As manobras feitas pelo Aerosonde em termos de sua direção e as variações na velocidade são apresentadas nas figuras 5.25 e 5.26, respectivamente. 109 Figura 5. 22: Gráfico 3-D da rota percorrida pelo Aerosonde UAV no Sobrevôo em Belém. Figura 5. 23: Gráfico 2-D da rota percorrida pelo Aerosonde UAV no Sobrevôo em Belém. 110 Figura 5. 24: Variação da altitude ao longo da simulação. Figura 5. 25: Variação de ψ ao longo da simulação. Figura 5. 26: Variação de Va ao longo da simulação. 111 5.4.2 Simulação 2: com variação de parâmetros, perturbações e fora da região de estabilidade programada Nesta simulação, a rota de Sobrevôo em Belém será a mesma, exceto pela altitude, que será 700 m mais baixa que a simulação anterior. Além desta modificação, a massa de combustível da aeronave será reduzida em 1 kg. Estas mudanças afetarão diretamente no comportamento aerodinâmico e na distribuição de massa do Aerosonde. Até o presente momento, todas as simulações estavam sendo feitas sem a presença de ventos (constantes ou em rajadas) e turbulências, que para esta simulação foram incluídas e possuem representação gráfica apresentada na Figura 5.27. O sistema de coordenadas adotado utiliza a convenção NED, logo, o vetor em (5.9) apresenta ventos provenientes do sul e do oeste (devido ao sinal negativo) e turbulências no sentido positivo (para baixo) do eixo z. O vetor em (5.9) é multiplicado por uma sequência aleatória de média 3 , variância nula e baixa frequência para simular as perturbações atmosféricas. [-1 - 0,9 0, 2]T (5.9) Figura 5. 27: Velocidades dos ventos sul e oeste e da turbulência usada na simulação. 112 Na Figura 5.28 é apresentado o gráfico tridimensional da rota percorrida pelo Aerosonde e, na Figura 5.29, a representação em duas dimensões da rotas com e sem perturbações e variações de parâmetros para que seja possível comparar a simulação 1 e 2. A Figura 5.30 apresenta as respostas da variação da altitude e direção em função do tempo, onde é facilmente notada a presença da turbulência afetando o controle da altitude assim como os ventos influenciando nas correções de direção. Apesar do erro em regime permanente na resposta da altitude, esta ainda é bem inferior à tolerância adotada na indústria de ±60 m (Stevens e Lewis; 2003). A velocidade sofreu diversos picos, mas manteve a média em torno de 23 m / s como pode ser visto na Figura 5.31. Deve-se fazer uma observação em relação às perturbações atmosféricas que foram simuladas, pois estas submeteram o Aerosonde a variações extremas, quando na verdade, no mundo real, variações nas velocidades dos ventos não ocorrem de forma tão abrupta como foi simulado. Figura 5. 28: Rota 3-D percorrida pelo Aerosonde submetido a perturbações atmosféricas e variação de parâmetros. A altitude dos waypoints entre 250 e 300 m . 113 Figura 5. 29: Gráfico 2-D da Simulação 1 e 2 juntas para comparação entre simulação com e sem perturbações e variações de parâmetros. Figura 5. 30: Direção e Altitude foram afetadas pelos ventos e turbulências. 114 Figura 5. 31: Va e Vamédia ao longo da simulação com perturbações e variação de parâmetros. Com estes resultados, fica evidente que a utilização das técnicas de controle robusto multivariável em união com o controle fuzzy, quando respeitadas as margens de robustez e estabilidade, garantem controlar eficientemente a planta mesmo para grandes variações no modelo e na presença de perturbações. 115 Capítulo 6 Conclusão Geral e Sugestões para novos trabalhos No Capítulo 2, uma revisão teórica de conceitos sobre cinemática e dinâmica de aeronaves foi apresentada, ressaltando-se as equações gerais de movimento de corpos rígidos com seis graus de liberdade, representações de atitudes em espaços tridimensionais por ângulos de Euler e quatérnions, e como relacionar estas representações. Um resumo sobre aerodinâmica básica, frisando o funcionamento de aerofólios e as principais forças e momentos envolvidos, foi também abordado. Este estudo forneceu o conhecimento necessário para melhor compreender a relação entre as variáveis envolvidas no problema e como são feitas simulações com aviões. Ainda no Capítulo 2, um estudo sobre geodésia e navegação terrestre foi desenvolvido para fornecer subsídios ao entendimento da navegação de aeronaves ao redor do globo terrestre e como são tratadas as informações de posicionamento na Terra. Os modelos mais comuns do geoid foram mostrados, com noções sobre frames de referência e sistemas de coordenadas normalmente utilizados no estudo de veículos aéreos; mostrou-se também os eixos e ângulos utilizados, as superfícies móveis de controle aerodinâmico dos aviões e respectivas convenções de sinais adotadas pela indústria aeronáutica, consideradas informações de suma importância para entender os resultados obtidos durante as simulações. No Capítulo 3, uma apresentação detalhada dos principais blocos e funções do Aerosim 1.2 foi fornecida, assim como o modelo do UAV Aerosonde e uma introdução sobre veículos aéreos não tripulados; um modelo matemático linear do Aerosonde foi obtido e analisado detalhadamente, em relação aos principais modos naturais envolvidos na dinâmica de aviões. Esta fase de análise permitiu maior familiarização com a ferramenta de simulação, o Aerosim, e também antecipou o conhecimento dos principais problemas e limitações que seriam encontradas para ajudar na solução dos problemas na fase de projeto dos controladores. Como exemplo, verificou-se que a planta possuía pólos instáveis, apresentava cancelamento de pólos e zeros de transmissão e relacionou-se movimentos e comportamentos característicos da aeronave aos pólos do sistema, dando uma interpretação física para esta fase de análise. 116 No Capítulo 4, fez-se uma revisão geral sobre os principais sistemas de controle de vôo e de aumento de estabilidade utilizados em aviões, com apresentação dos pilotos automáticos mais comuns e formas de avaliar o desempenho dos controladores baseando-se em especificações de qualidade utilizadas pela indústria aeronáutica. Fez-se também uma revisão teórica de técnicas de controle robusto multivariável e análise no domínio da frequência, dando ênfase sobre o regulador LQG/LTR e a aplicação deste no controle de aeronaves, garantindo-se robustez e estabilidade em uma grande faixa de operação, ou fases de vôo, baseadas em especificações de desempenho no domínio da freqüência. Foram projetados os controladores lateral e longitudinal, seguindo-se à risca as margens de robustez e estabilidade prescritas. Ainda na fase de projeto, algumas limitações foram detectadas, estas em relação às restrições de desempenho baseadas na análise dos ganhos principais do sistema no domínio da frequência. Como estas restrições eram muito exigentes, tornou-se difícil a obtenção de respostas temporais sem grandes sobre-sinais, isto para que a faixa de operação dos controladores não fosse reduzida. Apesar das limitações encontradas, quando os controladores LQG/LTR do Capítulo 4 foram testados com o modelo não linear, verificou-se uma melhoria em relação a resposta transitória, uma melhoria associada ao fato de o modelo não linear considerar a dinâmica dos atuadores do Aerosonde. No Capítulo 5, foi finalizado o sistema de controle de vôo do Aerosonde com o projeto de controladores fuzzy, do tipo Mamdani, para altitude e direção, baseado em um resumo teórico sobre o tipo de controlador utilizado; apresentou-se o sistema de navegação projetado e como este determina a trajetória baseando-se nas informações dos waypoints. O piloto automático completo do Aerosonde foi apresentado bloco por bloco assim como a estrutura interna utilizada; simulações individuais com o modelo não linear do Aerosonde, com 6-DOF, foram feitas com cada bloco desenvolvido, culminando em testes finais com planejamento de missão, criação dos waypoints e simulação do sistema em duas situações, sem e com perturbações e variação de parâmetros. Nas duas simulações o Aerosonde conseguiu percorrer a rota desejada tendo bons resultados mesmo quando testado fora do ponto de operação ao qual os controladores foram projetados, o que indica que a fusão das técnicas inteligentes e modernas neste tipo de aplicação pode servir 117 como alternativa para aeronaves que não exijam uma grande faixa de operação em termos de altitude e velocidade. Acredita-se que os resultados aqui apresentados sejam de motivação para novos estudos de técnicas de controle aplicadas a veículos aéreos, pois o método adotado para controlar a planta em um envelope altitude-velocidade razoavelmente grande baseou-se nos projetos realizados com um único modelo linear submetido a uma forte restrição para a garantia de robustez e estabilidade. Logo, tentar explorar outras situações mais amplas, com múltiplos modelos locais e utilização de gainscheduling, poderia manter ou ampliar o envelope de operação, com maior liberdade ao projetista para moldar as respostas temporais. Ainda no âmbito de se trabalhar com múltiplos modelos lineares locais, seria interessante experimentar outras técnicas de fusão de controle inteligente e controle moderno, utilizando, por exemplo, um Compensador Paralelo Distribuído e verificação da estabilidade do modelo global pelo segundo método de Lyapunov, com solução de Desigualdades Matriciais Lineares (Passino e Yurkovich; 1998). Para uma alternativa mais simples, sugere-se manter a mesma estrutura de controladores abordada neste trabalho, mas com alterações nos controladores fuzzy, incluindo novas variáveis de entrada, como por exemplo, a derivada do erro, e aumentar o número de conjuntos fuzzy. Outras linhas de estudo poderiam ser seguidas também no ramo dos sistemas de navegação, fornecendo maior funcionalidade ao sistema de obtenção de trajetória, como a inclusão da altitude nas restrições de waypoints e obtenção de uma trajetória de subida (rampa de subida) pelo método de triangulação, com a possibilidade de determinação de uma razão de subida ótima baseando-se na economia de combustível. Por fim, seria interessante testar o piloto automático em um protótipo real, como em um aeromodelo adequado. 118 Referências Bibliográficas ANDERSON, B.D.O., MOORE, J.B. . Optimal Control: Linear Quadratic Methods. Prentice-Hall International, Inc. . 1989. CAMPOS, M., ISCOLD, P., TORRES, L.A.B., AGUIRRE, L.A. . SiDeVAAN: Simulação e Desenvolvimento de Veículos Aéreos Autônomos e NãoTripulados. VIII Simpósio Brasileiro de Automação Inteligente – SBAI. 2007. Florianópolis-SC. CAVALCANTE, C.M.C. . Sistema de Navegação para Helicópteros Não Tripulados Utilizando Controlador Nebuloso. Dissertação de Mestrado submetida ao curso de Engenharia Elétrica da Universidade Federal de Santa Catarina – UFSC. Florianópolis-SC, 1994. DOITSIDIS, L., VALAVANIS, K.P., TSOURVELOUDIS, N.C., KONTITSIS, M. . A Framework for Fuzzy Logic Based UAV. Proceedings of the 2004 IEEE International Conference on Robotics & Automation. New Orleans, LA. April 2004. DOYLE, J.C., STEIN, G. . Robustness with Observers. IEEE Transactions on Automatic Control, vol. AC-24, no. 4, Agosto, 1979, pp. 607-611. ETKIN, B. . Dynamics of Flight – Stability and Control. John Wiley & Sons. 1959. GREEN, M., LIMEBEER, D.J.N. . Linear Robust Control. Prentice Hall, New Jersey, U.S.A. 1995. HOOVER, R.C. . Fusion of Hard and Soft Computing for Guidance, Navigation and Control of Uninhabited Aerial Vehicles. Thesis submitted in partial fulfillment of the Requirements for the degree of M.Sc. in Measurement and Control Engineering. Idaho State University, Dec. 2004. Introduction to UAV Systems – UAV Center Co. Ltd.. Disponível em: <http://www.uavcenter.com>. Acesso em: 30 mar. 2007. Jeppesen General Navigation Manual – Jeppesen Sanderson, Inc.. 2005. Disponível em: <http://www.jeppesen.com>. Acesso em: 30 mar. 2007. LY, Uy-Loi. Stability and Control of Flight Vehicle. Department of Aeronautics and Astronautics – University of Washington. September 29, 1997. 119 MILEVA, B., BOSKOSKI, P., DESKOSKI, S. . Fuzzy Logic Controlo f the Hight of the Airplane. 6th International PhD Workshop on Systems and Control, October 4-8, 2005 Izola, Slovenia. NERIS, L.O. . Um piloto automático para as aeronaves do projeto ARARA. Dissertação de mestrado defendida no Instituto de Ciências Matemáticas e de Computação, USP, 2001. PASSINO, K.M., YURKOVICH, S. . Fuzzy Control. Addison Wesley Longman, Inc. 1998. Precision Manuals Boeing 737NG documentation. Disponível em: <http://www.precisionmanuals.com>. Acesso em: 30 mar. 2007. RAMOS, J., D’ABREU, J., NEVES, O., FIGUEIREDO, D., TANURE, L., HOLANDA, F. . Iniciativa para Robótica Pedagógica Aberta e de Baixo Custo para Inclusão Social e Digital no Brasil. VIII Simpósio Brasileiro de Automação Inteligente – SBAI. 2007. Florianópolis-SC. ROSKAM, J. . Airplane Flight Dynamics and Automatic Flight Controls. University of Kansas, Lawrence, Kansas. Copyright of Roskam Aviation and Engineering Corporation. 1979. SKOGESTAD, S., POSTLETHWAITE, I. . Multivariable Feedback Control: Analysis and design. John Wiley & Sons. 1996. SILVEIRA, A.S., LOPES, A.M.O., da COSTA Jr, C.T., BARREIROS, J.A.L. . Sistema de Controle fuzzy para Veículo Aéreo Não Tripulado. VIII Simpósio Brasileiro de Automação Inteligente – SBAI. 2007. Florianópolis-SC. STEVENS, B.L. e LEWIS, F.L. . Aircraft Control and Simulation. 2ª Ed. 2003. John Wiley & Sons. SUGENO, M., HIRANO, I., NAKAMURA, S., KOTSU, S. . Development of na Intelligent Unmanned Helicopter. Tokyo Institute of Technology, Japan. IEEE 1995. WANG, Li-Chin. A course in fuzzy systems and control. Prentice Hall PTR. 1ª Ed. 1997. ZAREI, J., MONTAZERI, A., MOTLAGH, M.R.J., POSHTAN, J. . Design and comparison of LQG/LTR and H ∞ controllers for a VSTOL flight control system. Journal of the Franklin Institute. 2006. 120 APÊNDICE A - Instalação do Aerosim 1.2 para MATLAB 6 ou superior Para instalar o Aerosim Blockset no Matlab, execute o arquivo setup.exe que acompanha o pacote de instalação que pode ser encontrado em www.udynamics.com. Por padrão, após a instalação, os arquivos do Aerosim ficarão na pasta c:\Arquivos de Programas\Aerosim ou o usuário pode selecionar outro diretório que deverá ser conhecido para uso em outro procedimento. Após a instalação, o arquivo c:\Pasta_do_Matlab\toolbox\local\pathdef.m será modificado automaticamente para a inclusão da pasta do Aerosim ao Matlab. Para verificar se a instalação foi bem sucedida, abra o Matlab e o Simulink. Dentro do Simulink, procure na lista de blocos pelo item AeroSim Blockset. Se não aparecer esta opção, será necessário atualizar o path do Matlab manualmente. Feche o Simulink e, na janela principal do Matlab, vá ao Menu arquivo e clique sobre Set Path; dê outro clique sobre o botão “Add with subfolders” e adicione a pasta onde o Aerosim 1.2 foi instalado. Feche e abra o Matlab e vá novamente ao Simulink para verificar se o AeroSim Blockset aparece na lista de itens. Conectando o Aerosim ao Microsoft Flight Simulator Primeiro deve-se obter o software FSUIPC de Peter Dowson na Internet em www.schiratti.com. Para instalá-lo no Flight Simulator, copie o arquivo fsuipc.dll para a pasta c:\Seu_Diretório_do_FlightSim\Modules. No Matlab, prepare seu diagrama de simulação no Simulink incluindo o bloco \AeroSim Blockset\Pilot Interface\FS Interface. Este bloco deverá receber a informação dos sensores do bloco da planta, contendo: posição (latitude, longitude e altitude), atitude em ângulos de Euler (radianos) e a velocidade do fluxo de ar. Dando um duplo clique sobre o bloco FS Interface, deve-se especificar o período de amostragem, devendo este ser menor ou igual ao que se está utilizando na simulação do Simulink. Um exemplo pronto encontra-se no pacote de arquivos do Aerosim. Para executá-lo, basta digitar aerosonde_demo_msfs na janela de comandos do Matlab. 121 Dependendo da demanda de processamento para efetuar a simulação no Matlab/Simulink e apresentar o andamento em tempo real no Flight Simulator, pode ser necessário utilizar dois computadores. Caso este seja o caso, o usuário precisará do software Wide FS encontrado também na página de Peter Dowson. O Wide FS é dividido em dois softwares, um cliente e um servidor, que operam em uma rede TCP/IP. Para utilizá-lo, basta copiar o arquivo servidor no mesmo computador onde o Flight Simulator será executado e, o cliente, onde o Matlab/Simulink estará rodando. No Wide FS Cliente, deve-se informar o endereço IP do servidor para que os dados da simulação sejam passados via rede ao computador com o Flight Simulator. Para maiores informações, recomenda-se visitar a página de Peter Dowson e do Aerosim na Internet. 122 APÊNDICE B – Controlador LQG/LTR Lateral do Aerosonde close all; %clear; % Lateral-directional Dynamics % -----------------------------% State vector: x = [v p r phi psi] % Input vector: u = [aileron rudder] % Output vector: y = [beta p r phi psi] % State matrix: A = A=[-0.5895 1.7312 -22.9345 9.7991 0; 9.1681 0 0; 0.6278 -2.4709 -0.9582 0 0; 0.0755 -0.0000 0; 1.0028 -0.0000 0]; -3.8720 -19.0490 0 1.0000 0 0 % Control matrix: B = B=[-1.1552 2.9486; -101.4284 1.8250; -3.9992 -18.6309; 0 0; 0 0]; % Observation matrix: C = C=[ 0 0 0.0435 0 0 1 0 0 0; 0]; % Plotando SVs do sistema original original_sys=ss(A,B,C,0); w=logspace(-3,3,100); figure(1); sigma(original_sys,w), grid, title('SVs do sistema original'), hold on % Polos, fator de amortecimento e frequencias disp('Eigenvalues & dampings of the original system'); damp(original_sys); % Aumentando o sistema original com pre-comp. e integradores nas entradas % Matriz de ganho DC inversa P=inv(dcgain(original_sys)); 123 Aint=-0.001*diag([1 1]); % integradores em -0.001 prox. a origem % indice 'a' para sistema augmented ou aumentado Aa=[A B; zeros(2,5) Aint]; Ba=[0*B; P]; Ca=[C zeros(2)]; Da=[zeros(2,2)]; augmented_sys=ss(Aa,Ba,Ca,Da); figure(1); sigma(augmented_sys,w), title('SVs do sistema aumentado com P'), legend('original SVs','augmented SVs') % Polos, fator de amortecimento e frequencias do sistema aumentado disp('Eigenvalues & dampings of the augmented system'); damp(augmented_sys); % Incertezas de alta frequencia high_bound=tf([20],[1 2]); sigma(high_bound,w); % Filtro de Kalman % [ v p r phi psi i1 i2] Qk=diag([1 1 1 1 1 0.1 0.1]); % Matriz de pesos Q do filtro rf=1e+2; % rho Rk=eye(2); % Matriz de pesos R do filtro disp('Kalman gain L'); L=lqr(Aa',Ca',rf*Qk,Rk)' % Ganho otimo de Kalman kalman_sys=ss(Aa,L,Ca,Da); % Eq. de estados do filtro figure(2); sigma(kalman_sys,w), title('SVs com Filtro de Kalman'), grid; % Margem de ganho e fase alfa0=sigma(kalman_sys,w,2); alfa0=min(alfa0(1,:)); MG=1/(1-alfa0); MF=2*asin(alfa0/2)*180/pi; % Testa alcancabilidade & observabilidade Alc = obsv(Aa,sqrt(Qk)); unAlc = length(Aa)-rank(Alc); 124 if unAlc == 0 disp('alcancavel'); else disp('nao alcancavel'); end Ob=obsv(Aa',Ba'); unob=length(Aa)-rank(Ob); if unob == 0 disp('observavel'); else disp('nao observavel'); end % Resposta ao degrau com Filtro de Kalman t=[0:0.01:5]; y=step(Aa-L*Ca,L,Ca,Da,1,t); % mudar de 1 para 2 para testar degrau na 2a entrada figure(3) % CHANNEL 1 plot(t,y), grid, title('Resposta ao degrau aplicado na referencia 1'), legend(' ',' '); % polos, fator amort. e frequencias com (Aa-LCa) disp('Eigenvalues & dampings of the Kalman system (Aa-LCa)'); damp(ss(Aa-L*Ca,L,Ca,Da)); % Regulador LQR % [ v p r phi psi i1 i2] rc=1.000e-2; %rho Qlq=diag([1e2 1e0 1e0 1e6 1e-6 1 1]); % Matriz de pesos Q do LQR Rlq=rc*eye(2); % Matriz de pesos R do LQR disp('LQR gain Klq'); Klq=lqr(Aa,Ba,Qlq,Rlq) % Ganho otimo do LQR lqr_sys=ss(Aa,Ba,Klq,Da); % Eq. estados do LQR figure(4); sigma(lqr_sys,w), title('SVs com LQR'), grid; % LQG/LTR Regulator Alqg=[Aa -Ba*Klq; zeros(7) Aa-L*Ca-Ba*Klq]; % Sistema em MA com LQG/LTR Blqg=[zeros(7,2); -L]; Clqg=[Ca zeros(2,7)]; Dlqg=[zeros(2)]; 125 lqg_sys=ss(Alqg,Blqg,Clqg,Dlqg); figure(4); sigma(lqg_sys,w), title('Valores Singulares com LQG/LTR'), grid; % Margem de ganho e fase alfa0=sigma(lqg_sys,w,2); alfa0=min(alfa0(1,:)); MG=1/(1-alfa0); MF=2*asin(alfa0/2)*180/pi; % polos, fator amort. e freq. em MF com LQG/LTR disp('Eigenvalues & dampings of the system with LQG/LTR'); damp(ss(Alqg-Blqg*Clqg,Blqg,Clqg,Dlqg)); % Resposta ao degrau em MF com LQG/LTR t=[0:0.01:10]; y=step(Alqg-Blqg*Clqg,Blqg,Clqg,Dlqg,1,t); % mudar para 2 para aplicar degrau na 2a entrada figure(5) % CHANNEL 1 plot(t,y), grid, title('Resposta ao degrau aplicado na referencia phi com LQG/LTR'), legend(' ',' '); pause close all 126 APÊNDICE C – Controlador LQG/LTR Longitudinal do Aerosonde close all; %clear; % Longitudinal Dynamics % ----------------------% State vector: x = [u w q theta h Omega] % Input vector: u = [elevator throttle] % Output vector: y = [Va alpha q theta h] % State matrix: LongA = LongA=[-0.2029 0.6110 -1.7044 -9.7991 -0.0001 0.0100; -0.5670 -3.8086 22.4291 -0.7397 0.0010 0.4906 -4.2213 -4.3901 0 0.0000 -0.0078; 0 0 0 1.0000 0.0753 -0.9972 0 29.7630 2.2466 0 22.9997 0 0; 0 0; 0 0; -0.0379 -2.6886]; % Control matrix: LongB = LongB=[ 0.3132 0; -1.9847 0; -27.5486 0; 0 0; 0 0; 0 349.2659]; % Observation matrix: LongC = LongC=[ 0.9972 0 0.0753 0 0 0 0; 0 0 1 0 0]; % Plotando SVs do sistema original original_sys=ss(LongA,LongB,LongC,0); w=logspace(-3,3,100); figure(1); sigma(original_sys,w), grid, title('SVs do sistema original'), hold on % polos, fator de amortecimento e frequencias do sistema original disp('Eigenvalues & dampings of the original system'); damp(original_sys); 127 % Aumentando o sistema com pre-comp. e integradores na entrada % Matriz do ganho DC inversa LongP=inv(dcgain(original_sys)); LongAint=-0.001*diag([1 1]); % integradores em -0.001 % indice 'a' para sistema aumentado ou augmented LongAa=[LongA LongB; zeros(2,6) LongAint]; LongBa=[0*LongB; LongP]; LongCa=[LongC zeros(2)]; LongDa=[zeros(2,2)]; augmented_sys=ss(LongAa,LongBa,LongCa,LongDa); % sistema aumentado figure(1); sigma(augmented_sys,w), title('SVs do sistema aumentado com pre-compensador'), legend('original SVs','augmented SVs') % polos, fator de amort., frequencias do sistema aumentado disp('Eigenvalues & dampings of the augmented system'); damp(augmented_sys); % Incertezas de alta frequencia: high_bound=tf([20],[1 2]); sigma(high_bound,w); % Filtro de Kalman % [u w q theta h Omega int1 int2] LongQk=diag([1 1 1 1 1 1 30 90]); % Matriz de pesos Q do filtro Longrf=1e1; %rho LongRk=eye(2); % Matriz de pesos R do filtro disp('Kalman gain LongL'); LongL=lqr(LongAa',LongCa',Longrf*LongQk,LongRk)' % Ganho otimo de Kalman kalman_sys=ss(LongAa,LongL,LongCa,LongDa); figure(2); sigma(kalman_sys,w), title('SVs com Filtro de Kalman'), grid; % Margem de ganho e fase alfa0=sigma(kalman_sys,w,2); alfa0=min(alfa0(1,:)); MG=1/(1-alfa0); MF=2*asin(alfa0/2)*180/pi; 128 % Testa alcancabilidade & observabilidade Alc = obsv(LongAa,sqrt(LongQk)); unAlc = length(LongAa)-rank(Alc); if unAlc == 0 disp('alcancavel'); else disp('nao alcancavel'); end Ob=obsv(LongAa',LongBa'); unob=length(LongAa)-rank(Ob); if unob == 0 disp('observavel'); else disp('nao observavel'); end % Plotando a resposta ao degrau com o Filtro de Kalman t=[0:0.01:5]; y=step(LongAa-LongL*LongCa,LongL,LongCa,LongDa,1,t); figure(3) % CHANNEL 1 plot(t,y), grid, title('Resposta ao degrau aplicado em Rtheta do sistema em M.F. com Filtro de Kalman'), legend(' ',' '); t=[0:0.01:5]; y=step(LongAa-LongL*LongCa,LongL,LongCa,LongDa,2,t); figure(3) % CHANNEL 2 plot(t,y), grid, title('Resposta ao degrau aplicado em Rva do sistema em M.F. com Filtro de Kalman'), legend(' ',' '); % polos, amortecimento, frequencia com (LongAa-LongLLongCa) disp('Eigenvalues & dampings of the Kalman system (LongAa-LongLLongCa)'); damp(ss(LongAa-LongL*LongCa,LongL,LongCa,LongDa)); % Regulador LQR % [u w q theta h Omega int1 int2] Longrc=1e-2; %rho LongQlq=diag([5e3 1e1 1e0 1e6 1e-3 1e-3 1e-3 1e-3]); % Matriz de pesos Q do LQR LongRlq=Longrc*eye(2); % Matriz de pesos R do LQR disp('LQR gain LongKlq'); 129 LongKlq=lqr(LongAa,LongBa,LongQlq,LongRlq) % ganho otimo do LQR lqr_sys=ss(LongAa,LongBa,LongKlq,LongDa); figure(4); sigma(lqr_sys,w), title('SVs with LQR'), grid; % Regulador LQG/LTR LongAlqg=[LongAa -LongBa*LongKlq; zeros(8) LongAa-LongL*LongCa-LongBa*LongKlq]; LongBlqg=[zeros(8,2); -LongL]; LongClqg=[LongCa zeros(2,8)]; LongDlqg=[zeros(2)]; lqg_sys=ss(LongAlqg,LongBlqg,LongClqg,LongDlqg); figure(4); sigma(lqg_sys,w), title('SVs com o controlador LQG/LTR'), grid; % Margem de ganho e fase alfa0=sigma(lqg_sys,w,2); alfa0=min(alfa0(1,:)); MG=1/(1-alfa0); MF=2*asin(alfa0/2)*180/pi; % polos, amortecimento, frequencia com LQG/LTR disp('Eigenvalues & dampings of the system with LQG/LTR'); damp(ss(LongAlqg-LongBlqg*LongClqg,LongBlqg,LongClqg,LongDlqg)); % Resposta ao degrau em MF com LQG/LTR t=[0:0.01:10]; y=step(LongAlqg-LongBlqg*LongClqg,LongBlqg,LongClqg,LongDlqg,1,t); figure(5) % CHANNEL 1 plot(t,y), grid, title('Resposta ao degrau aplicado em Rtheta com LQG/LTR em M.F.'), legend(' ',' '); t=[0:0.01:10]; y=step(LongAlqg-LongBlqg*LongClqg,LongBlqg,LongClqg,LongDlqg,2,t); figure(5) % CHANNEL 2 plot(t,y), grid, title('Resposta ao degrau aplicado em Rva com LQG/LTR em M.F.'), legend(' ',' '); pause close all 130 % Inicializa variaveis para simulacao conjunta com o Simulink global next_wp lat_d lon_d spd_ref h_ref theta_max phi_max; % Waypoint 1: dados devem ser substituidos de acordo com o interesse da % missao. As variaveis abaixo foram carregadas para o primeiro waypoint da % simulacao intitulada Sobrevoo em Belem apresentada no capitulo 5. lat_d=-0.02460056125096; lon_d=-0.84587963974323; h_ref=975; spd_ref=23; theta_max=7; phi_max=15; next_wp=1; 131 APÊNDICE D – Controlador fuzzy de Altitude function [u]=FLC_Altitude(erro); e=erro(1); % erro de altitude %iniciando as variaveis Mng=0;Mz=0;Mpg=0; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Pertinencias para o erro %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if e <= -20 Mng=1; % pertinencia erro negativo end %%%%%%%%%%%%%%%%%%%%%%%%% if e>-20 & e<0 % funcao trapezoidal negativo b=-3000;a=b; c=-20; d=0; Mng=(d-e)/(d-c); % pertinencia erro negativo end %%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%% if e>-20 & e<0 %funcao triangular zero a=-20; c=0;b=c; d=20; Mz=(e-a)/(b-a); % Pertinencia zero end %%%%%%%%%%%%%%%%%%%%%%%%% if e==0 Mz=1; % Pertinencia zero end %%%%%%%%%%%%%%%%%%%%%%%%% if e>0 & e<20 %Zero a=-20; c=0;b=c; d=20; Mz=(d-e)/(d-c); % Pertinencia zero 132 end %%%%%%%%%%%%%%%%%%%%%%%%% if e>0 & e<20 % Positivo a=0; b=20; d=3000;c=d; Mpg=(e-a)/(b-a); % Pertinencia positivo end %%%%%%%%%%%%%%%%%%%%%%%%% if e>=20 Mpg=1; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Defuzzificacao por media dos centros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% M(1)=min(Mng); % Pertinencia negativo B(1)=0.25; % base de DIMINUIR no univ. discurso de saida M(2)=min(Mz); % Pertinencia zero B(2)=0.5; % base de NEUTRALIZAR no univ. discurso de saida M(3)=min(Mpg); % Pertinencia positivo B(3)=0.75; % base de AUMENTAR no univ. discurso de saida num=0;den=0; for i=1:3, num=num+B(i)*M(i); den=den+M(i); end u=num/den; % referencia pitch saida 133 APÊNDICE E – Controlador fuzzy de Direção function [u]=FLC_Heading(erro); e=erro(1); % erro de direcao if abs(e) > 180 % trata o sinal do erro e = (abs(e)-180) - 180; end %iniciando as variaveis Mng=0;Mz=0;Mpg=0; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Pertinencias para o erro %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if e <= -90.5 Mng=1; % Pertinencia Negativo end %%%%%%%%%%%%%%%%%%%%%%%%% if e>-90.5 & e<0 % Funcao trapezoidal Negativo b=-360;a=b; c=-90.5; d=0; Mng=(d-e)/(d-c); end %%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%% if e>-90.5 & e<0 % Funcao triangular Zero a=-90.5; c=0;b=c; d=90.5; Mz=(e-a)/(b-a); % Pertinencia Zero end %%%%%%%%%%%%%%%%%%%%%%%%% if e==0 Mz=1; end %%%%%%%%%%%%%%%%%%%%%%%%% if e>0 & e<90.5 134 % Funcao Triangular Zero a=-90.5; c=0;b=c; d=90.5; Mz=(d-e)/(d-c); end %%%%%%%%%%%%%%%%%%%%%%%%% if e>0 & e<90.5 % Funcao Trapezoidal Positivo a=0; b=90.5; d=360;c=d; Mpg=(e-a)/(b-a); % Pertinencia Positivo end %%%%%%%%%%%%%%%%%%%%%%%%% if e>=90.5 Mpg=1; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Defuzzificacao por media dos centros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% M(1)=min(Mng); % pert. negativo B(1)=-0.5; % base funcao ESQUERDA M(2)=min(Mz); % pert. zero B(2)=0; % base funcao NIVELAR M(3)=min(Mpg); % pert. positivo B(3)=0.5; % base funcao DIREITA num=0;den=0; for i=1:3, num=num+B(i)*M(i); den=den+M(i); end u=num/den; % saida: referencia angulo de bank 135 APÊNDICE F – Gerador de waypoints % Gerador de waypoints - visualiza rota da missao clear waypoint; waypoint(:,:,1) = [-0.02460056125096,-0.84587963974323,975]; waypoint(:,:,2) = [-0.02504833516684,-0.84643761180881,950]; waypoint(:,:,3) = [-0.02542295069823,-0.84658000158696,1000]; waypoint(:,:,4) = [-0.02487942608034,-0.84560746534265,1000]; waypoint(:,:,5) = [-0.02476282839003,-0.84572096022540,1000]; %waypoint(:,:,n) = [Lat,Lon,Alt]; Especifica mais waypoints hold on [tmp1,tmp2,wp_number]=size(waypoint); for i=1:wp_number % plota os waypoints em tres dimensoes wp=waypoint(:,:,i); plot3(wp(2),wp(1),wp(3),'r:o','LineWidth',3),title('waypoints')... ,xlabel('Longitude (rad)'),ylabel('Latitude (rad)'),zlabel('Altitude (m)'),grid on text(wp(2),wp(1),wp(3),[' WP ' num2str(i)]) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%% % DMS2RAD Converte angulos a partir de grau:minuto:segundo para radianos % % rad = dms2rad(grau,minuto,segundo) % % Minutos e segundos devem estar entre 0 e 60 136 APÊNDICE G – Sistema de Navegação function [psi_d]=psi_waypoint(input); %calcula trajetoria psi_uav=input(1); % direcao atual beta_uav=input(2); % sideslip atual lat_uav=input(3); % latitude atual fornecida pelo GPS lon_uav=input(4); % longitude atual fornecida pelo GPS % define variaveis globais para afetarem o Workspace do Matlab global lat_d lon_d next_wp h_ref spd_ref theta_max phi_max; if next_wp < 5 % verifica se todos os waypoints foram concluidos % caso ainda hajam waypoints, compara (lat,lon) do waypoint % (lat_d,lon_d) com as respectivas atuais do GPS. if ( (abs(lat_d-lat_uav) < 0.00001) & (abs(lon_d-lon_uav) < 0.00001) ) next_wp=next_wp+1; % atualiza para o proximo waypoint end end switch next_wp % switch case para setar globalmente as novas variaveis case 2 lat_d=-0.02504833516684; lon_d=-0.84643761180881; h_ref=950; spd_ref=23; theta_max=7; phi_max=15; case 3 lat_d=-0.02542295069823; lon_d=-0.84658000158696; h_ref=1000; spd_ref=23; theta_max=7; phi_max=20; case 4 lat_d=-0.02487942608034; lon_d=-0.84560746534265; h_ref=1000; spd_ref=23; theta_max=7; 137 phi_max=30; case 5 lat_d=-0.02476282839003; lon_d=-0.84572096022540; h_ref=1000; spd_ref=23; theta_max=7; phi_max=15; % case n % n pertence aos inteiros, para cada waypoint desejado % lat_d; % lon_d=; % h_ref=; % spd_ref=; % theta_max=; % phi_max=; end psi_wp=atan2((lon_d-lon_uav),(lat_d-lat_uav))*(180/pi); % calcula trajetoria if psi_wp < 0 % trata psi para entregar os dados entre 0 e 359 (graus) psi_wp = 360 - abs(psi_wp); end psi_d=[psi_wp h_ref-3 spd_ref next_wp]; % vetor de saidas da funcao % (h_ref-3 corresponde ao offset mencionado no capitulo 5) 138 ANEXO A – Software de Configuração do Aerosonde UAV % AIRCRAFT CONFIGURATION SCRIPT % Aerosonde UAV - sample model from AeroSim Library % Copyright 2002 Unmanned Dynamics, LLC % Revision: 1.0 Date: 05/13/2002 % Clear workspace clear all; % Name of the MAT-file that will be generated cfgmatfile = 'aerosondecfg'; %%% AERODYNAMICS %%% % Aerodynamic force application point (usually the aerodynamic center)[x y z] rAC = [0.1425 0 0]; % m %%% Aerodynamic parameter bounds %%% % Airspeed bounds VaBnd = [15 50]; % m/s % Sideslip angle bounds BetaBnd = [-0.5 0.5]; % rad % Angle of attack bounds AlphaBnd = [-0.1 0.3]; % rad %%% Aerodynamic reference parameters %%% % Mean aerodynamic chord MAC = 0.189941; % m % Wind span b = 2.8956; % m % Wing area S = 0.55; % m^2 % ALL aerodynamics derivatives are per radian: %%% Lift coefficient %%% % Zero-alpha lift CL0 = 0.23; % alpha derivative CLa = 5.6106; 139 % Lift control (flap) derivative CLdf = 0.74; % Pitch control (elevator) derivative CLde = 0.13; % alpha-dot derivative CLalphadot = 1.9724; % Pitch rate derivative CLq = 7.9543; % Mach number derivative CLM = 0; %%% Drag coefficient %%% % Lift at minimum drag CLmind = 0.23; % Minimum drag CDmin = 0.0434; % Lift control (flap) derivative CDdf = 0.1467; % Pitch control (elevator) derivative CDde = 0.0135; % Roll control (aileron) derivative CDda = 0.0302; % Yaw control (rudder) derivative CDdr = 0.0303; % Mach number derivative CDM = 0; % Oswald's coefficient osw = 0.75; %%% Side force coefficient %%% % Sideslip derivative CYbeta = -0.83; % Roll control derivative CYda = -0.075; % Yaw control derivative CYdr = 0.1914; % Roll rate derivative CYp = 0; % Yaw rate derivative CYr = 0; 140 %%% Pitch moment coefficient %%% % Zero-alpha pitch Cm0 = 0.135; % alpha derivative Cma = -2.7397; % Lift control derivative Cmdf = 0.0467; % Pitch control derivative Cmde = -0.9918; % alpha_dot derivative Cmalphadot = -10.3796; % Pitch rate derivative Cmq = -38.2067; % Mach number derivative CmM = 0; %%% Roll moment coefficient %%% % Sideslip derivative Clbeta = -0.13; % Roll control derivative Clda = -0.1695; % Yaw control derivative Cldr = 0.0024; % Roll rate derivative Clp = -0.5051; % Yaw rate derivative Clr = 0.2519; %%% Yaw moment coefficient %%% % Sideslip derivative Cnbeta = 0.0726; % Roll control derivative Cnda = 0.0108; % Yaw control derivative Cndr = -0.0693; % Roll rate derivative Cnp = -0.069; % Yaw rate derivative Cnr = -0.0946; 141 %%% PROPELLER %%% %Propulsion force application point (usually propeller hub) [x y z] rHub = [0 0 0]; % m % Advance ratio vector J = [-1 0 0.1 0.2 0.3 0.35 0.4 0.45 0.5 0.6 0.7 0.8 0.9 1 1.2 2]; % Coefficient of thrust look-up table CT = CT(J) CT = [0.0492 0.0286 0.0266 0.0232 0.0343 0.034 0.0372 0.0314 0.0254 0.0117 -0.005 -0.0156 0.0203 -0.0295 -0.04 -0.1115]; % Coefficient of power look-up table CP = CP(J) CP = [0.0199 0.0207 0.0191 0.0169 0.0217 0.0223 0.0254 0.0235 0.0212 0.0146 0.0038 -0.005 0.0097 -0.018 -0.0273 -0.0737]; % Propeller radius Rprop = 0.254; % m % Propeller moment of inertia Jprop = 0.002; % kg*m^2 %%% ENGINE %%% % Engine rpm vector RPM = [1500 2100 2800 3500 4500 5100 5500 6000 7000]; % rot per min % Manifold pressure vector MAP = [60 70 80 90 92 94 96 98 100]; % kPa % Sea-level fuel flow look-up table fflow = fflow(RPM, MAP) % RPM -> rows, MAP -> columns FuelFlow = [ 31 32 46 53 55 57 65 73 82 40 44 54 69 74 80 92 103 111 50 63 69 92 95 98 126 145 153 66 75 87 110 117 127 150 175 190 83 98 115 143 148 162 191 232 246 93 102 130 159 167 182 208 260 310 100 118 137 169 178 190 232 287 313 104 126 151 184 191 206 253 326 337 123 144 174 210 217 244 321 400 408 ]; % g/hr % Sea-level power look-up table P = P(RPM, MAP) % RPM -> rows, MAP -> columns 142 Power = [ 18.85 47.12 65.97 67.54 69.12 67.54 67.54 69.12 86.39 59.38 98.96 127.55 149.54 151.74 160.54 178.13 200.12 224.31 93.83 149.54 187.66 237.5 249.23 255.1 307.88 366.52 398.77 109.96 161.27 245.57 307.88 326.2 351.86 421.5 491.14 531.45 164.93 245.04 339.29 438.25 447.68 494.8 565.49 673.87 772.83 181.58 245.67 389.87 496.69 528.73 571.46 662.25 822.47 993.37 184.31 293.74 403.17 535.64 570.2 622.04 748.75 956.09 1059.76 163.36 276.46 420.97 565.49 609.47 691.15 860.8 1130.97 1193.81 124.62 249.23 417.83 586.43 645.07 762.36 996.93 1246.17 1429.42 ]; % W % Sea-level pressure and temperature at which the data above is given pSL = 102300; % Pa TSL = 291.15; % deg K % Engine shaft moment of inertia Jeng = 0.0001; % kg*m^2 %%% INERTIA %%% % Empty aircraft mass (zero-fuel) mempty = 8.5; % kg % Gross aircraft mass (full fuel tank) mgross = 13.5; % kg % Empty CG location [x y z] CGempty = [0.156 0 0.079]; % m % Gross CG location [x y z] CGgross = [0.159 0 0.090]; % m % Empty moments of inertia [Jx Jy Jz Jxz] Jempty = [0.7795 1.122 1.752 0.1211]; % kg*m^2 % Gross moments of inertia [Jx Jy Jz Jxz] Jgross = [0.8244 1.135 1.759 0.1204]; % kg*m^2 %%% OTHER SIMULATION PARAMETERS %%% % WMM-2000 date [day month year] dmy = [13 05 2002]; % Save workspace variables to MAT file save(cfgmatfile); 143 % Output a message to the screen fprintf(strcat('\n Aircraft configuration saved as:\t', strcat(cfgmatfile),'.mat')); fprintf('\n'); 144 ANEXO B – Software de Trim e Linearização do Aerosonde % trim_aerosonde % A Matlab script that trims the nonlinear aircraft model for a chosen % flight condition and extracts the aircraft linear model % % Unmanned Dynamics, LLC % October 1, 2002 % % The trim parameters structure has the following components: % 1. Simulation settings % TrimParam.SampleTime = simulation sample time % TrimParam.FinalTime = simulation final time (used only for trim function) % TrimParam.SimModel = Simulink model name % 2. Flight condition definition % TrimParam.VelocitiesIni % TrimParam.RatesIni % TrimParam.AttitudeIni % TrimParam.PositionIni % TrimParam.FuelIni % TrimParam.EngineSpeedIni % TrimParam.Airspeed % TrimParam.Altitude % TrimParam.BankAngle % TrimParam.Elevator % TrimParam.Aileron % TrimParam.Rudder % TrimParam.Throttle % TrimParam.Flap % TrimParam.Mix % TrimParam.Ign % TrimParam.Winds % 3. Miscellaneous parameters: % TrimParam.StateIdx = state order index (order of states in Simulink block diagram usually % different than the desired state order - velocities, angular rates, % attitude angles, position, fuel, and engine speed) % TrimParam.Options = trim function options % TrimParam.SimOptions = the sim function options % TrimParam.NAircraftStates = the size of the aircraft state vector, % currently 14 145 % TrimParam.NSimulinkStates = the size of the state vector in the Simulink % model (could be larger than aircraft state vector) % % The trim output structure has the following components: % TrimOutput.States = Simulink model states at trim condition % TrimOutput.Inputs = inputs at trim condition % TrimOutput.Outputs = outputs at trim condition % TrimOutput.Derivatives = model derivatives at trim condition clear all; clc; fprintf('\nSetting initial trim parameters...'); % Simulation time settings TrimParam.SampleTime = 0.04; TrimParam.FinalTime = 60; % Actuators TrimParam.Flap = 0; TrimParam.Mix = 13; TrimParam.Ign = 1; % Wind velocities TrimParam.Winds = [0 0 0]; % Simulink model to trim TrimParam.SimModel = 'aerosonde_trim'; fprintf('\nThe Simulink model %s.mdl will be trimmed.', TrimParam.SimModel); % Get the sim options structure TrimParam.SimOptions = simget(TrimParam.SimModel); % Set the model inputs TrimInput = [0 0 0 0.4]; %%% IDENTIFY THE ORDER OF AIRCRAFT STATES %%% fprintf('\nIdentifying the order of the Simulink model states...'); 146 % Set some easily-identifiable initial conditions TrimParam.VelocitiesIni = [24 2 -1]'; TrimParam.RatesIni = [0.03 0.02 0.01]'; TrimParam.AttitudeIni = [0.1 0.05 0.6]'; TrimParam.PositionIni = [45*pi/180 -122*pi/180 1342]'; TrimParam.FuelIni = 2.567; TrimParam.EngineSpeedIni = 5000*pi/30; % Run Simulink model for a single sample period [SimTime, SimStates, SimOutputs] = sim(TrimParam.SimModel, [0 TrimParam.SampleTime], TrimParam.SimOptions, ... [0 TrimInput; TrimParam.SampleTime TrimInput]); % Find the state order StateIni = [TrimParam.VelocitiesIni; TrimParam.RatesIni; TrimParam.AttitudeIni; TrimParam.PositionIni; TrimParam.FuelIni; TrimParam.EngineSpeedIni]; TrimParam.NAircraftStates = length(StateIni); TrimParam.NSimulinkStates = length(SimStates(1,:)); TrimParam.StateIdx = zeros(TrimParam.NAircraftStates,1); for i=1:TrimParam.NAircraftStates j = 1; while TrimParam.StateIdx(i) == 0 value = SimStates(1,j); if value == StateIni(i) TrimParam.StateIdx(i) = j; end j = j + 1; end end clear SimTime SimStates SimOutputs; fprintf('done.'); %%% DETERMINE THE INITIAL GUESS FOR AIRCRAFT CONTROLS %%% % Flight condition fprintf('\n'); fprintf('\n Choose flight condition:'); fprintf('\n--------------------------\n'); TrimParam.Airspeed = input('Trim airspeed [m/s]: '); TrimParam.Altitude = input('Trim altitude [m]: '); 147 TrimParam.BankAngle = input('Trim bank angle [rad]: '); TrimParam.FuelIni = input('Fuel mass [kg]: '); TrimParam.Flap = input('Flap setting [frac]: '); % The initial conditions for the flight condition above TrimParam.VelocitiesIni = [TrimParam.Airspeed 0 0]'; TrimParam.RatesIni = [0 0 0]'; TrimParam.AttitudeIni = [TrimParam.BankAngle 0 0]'; TrimParam.PositionIni = [45*pi/180 -122*pi/180 TrimParam.Altitude]'; TrimParam.EngineSpeedIni = 5000*pi/30; % The trim error threshold MaxErrTAS = 0.5; MaxErrAlt = 4; MaxErrBank = 0.1*pi/180; % The control surface gains KElevator = -0.02; KAileron = 0.02; KThrottle = -0.02; fprintf('\nComputing the initial estimates for the trim inputs...'); GoodGuess = 0; Niter = 1; while (~GoodGuess)&(Niter<30) % Run Simulink model for a short time (10 s) [SimTime, SimStates, SimOutputs] = sim(TrimParam.SimModel, [0 10], TrimParam.SimOptions, ... [0 TrimInput; 10 TrimInput]); % Compute errors in trim ErrTAS = SimOutputs(end,1) - TrimParam.Airspeed; ErrAlt = SimOutputs(end,7) - TrimParam.Altitude; ErrBank = SimOutputs(end,4) - TrimParam.BankAngle; fprintf('\nIteration #%2d, Airsp err = %6.2f m/s, Alt err = %8.2f m, phi err = %6.2f deg.', Niter, ErrTAS, ErrAlt, ErrBank*180/pi); % If all errors are within threshold if (abs(ErrTAS)<MaxErrTAS)&(abs(ErrAlt)<MaxErrAlt)&(abs(ErrBank)<MaxErrBank) % We are done with the initial guess GoodGuess = 1; else 148 % Adjust aircraft controls TrimInput(1) = TrimInput(1) + KElevator * ErrTAS; TrimInput(2) = TrimInput(2) + KAileron * ErrBank; TrimInput(4) = TrimInput(4) + KThrottle * ErrAlt; end Niter = Niter + 1; end % Save initial guess TrimParam.VelocitiesIni = SimStates(end,TrimParam.StateIdx(1:3))'; TrimParam.AttitudeIni = SimStates(end, TrimParam.StateIdx(7:9))'; TrimParam.EngineSpeedIni = SimStates(end, TrimParam.StateIdx(14)); TrimParam.Elevator = TrimInput(1); TrimParam.Aileron = TrimInput(2); TrimParam.Rudder = TrimInput(3); TrimParam.Throttle = TrimInput(4); clear SimTime SimStates SimOutputs TrimInput; fprintf('\nDone. Initial guesses for trim inputs are:'); fprintf('\n Elevator = %6.4f', TrimParam.Elevator); fprintf('\n Aileron = %6.4f', TrimParam.Aileron); fprintf('\n Rudder = %6.4f', TrimParam.Rudder); fprintf('\n Throttle = %6.4f', TrimParam.Throttle); %%% PERFORM AIRCRAFT TRIM %%% fprintf('\n'); fprintf('\nPerforming the aircraft trim...\n'); % Set initial guesses StateIni = zeros(TrimParam.NSimulinkStates,1); StateIni(TrimParam.StateIdx(1)) = TrimParam.VelocitiesIni(1); StateIni(TrimParam.StateIdx(2)) = TrimParam.VelocitiesIni(2); StateIni(TrimParam.StateIdx(3)) = TrimParam.VelocitiesIni(3); StateIni(TrimParam.StateIdx(4)) = TrimParam.RatesIni(1); StateIni(TrimParam.StateIdx(5)) = TrimParam.RatesIni(2); StateIni(TrimParam.StateIdx(6)) = TrimParam.RatesIni(3); StateIni(TrimParam.StateIdx(7)) = TrimParam.BankAngle; StateIni(TrimParam.StateIdx(8)) = TrimParam.AttitudeIni(2); StateIni(TrimParam.StateIdx(9)) = TrimParam.AttitudeIni(3); StateIni(TrimParam.StateIdx(10)) = TrimParam.PositionIni(1); StateIni(TrimParam.StateIdx(11)) = TrimParam.PositionIni(2); StateIni(TrimParam.StateIdx(12)) = TrimParam.Altitude; 149 StateIni(TrimParam.StateIdx(13)) = TrimParam.FuelIni; StateIni(TrimParam.StateIdx(14)) = TrimParam.EngineSpeedIni; InputIni = [TrimParam.Elevator; TrimParam.Aileron; TrimParam.Rudder; TrimParam.Throttle]; OutputIni = [TrimParam.Airspeed; 0; 0; TrimParam.BankAngle; 0; 0; TrimParam.Altitude]; DerivIni = zeros(TrimParam.NSimulinkStates,1); % Set indices of fixed parameters StateFixIdx = [TrimParam.StateIdx(4) TrimParam.StateIdx(5) TrimParam.StateIdx(6) TrimParam.StateIdx(7) TrimParam.StateIdx(12) TrimParam.StateIdx(13)]; InputFixIdx = []; OutputFixIdx = [1 2 4 7]; DerivFixIdx = [TrimParam.StateIdx(1) TrimParam.StateIdx(2) TrimParam.StateIdx(3) TrimParam.StateIdx(4) TrimParam.StateIdx(5) TrimParam.StateIdx(6) ... TrimParam.StateIdx(7) TrimParam.StateIdx(8) TrimParam.StateIdx(9) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]; % Set optimization parameters TrimParam.Options(1) = 1; % show some output TrimParam.Options(2) = 1e-6; % tolerance in X TrimParam.Options(3) = 1e-6; % tolerance in F TrimParam.Options(4) = 1e-6; TrimParam.Options(14) = 5000; % max iterations % Trim the airplane [TrimOutput.States,TrimOutput.Inputs,TrimOutput.Outputs,TrimOutput.Derivatives] = trim(TrimParam.SimModel,StateIni,InputIni,OutputIni,... StateFixIdx,InputFixIdx,OutputFixIdx,DerivIni,DerivFixIdx,TrimParam.Options); % Print the trim results fprintf('\nFinished. The trim results are:'); fprintf('\nINPUTS:'); fprintf('\n Elevator = %6.4f', TrimOutput.Inputs(1)); fprintf('\n Aileron = %6.4f', TrimOutput.Inputs(2)); fprintf('\n Rudder = %6.4f', TrimOutput.Inputs(3)); fprintf('\n Throttle = %6.4f', TrimOutput.Inputs(4)); fprintf('\nSTATES:'); fprintf('\n u = %6.2f m/s', TrimOutput.States(TrimParam.StateIdx(1))); fprintf('\n v = %6.2f m/s', TrimOutput.States(TrimParam.StateIdx(2))); fprintf('\n w = %6.2f m/s', TrimOutput.States(TrimParam.StateIdx(3))); 150 fprintf('\n p = %6.2f deg/s', TrimOutput.States(TrimParam.StateIdx(4))*180/pi); fprintf('\n q = %6.2f deg/s', TrimOutput.States(TrimParam.StateIdx(5))*180/pi); fprintf('\n r = %6.2f deg/s', TrimOutput.States(TrimParam.StateIdx(6))*180/pi); fprintf('\n phi = %6.2f deg', TrimOutput.States(TrimParam.StateIdx(7))*180/pi); fprintf('\n theta = %6.2f deg', TrimOutput.States(TrimParam.StateIdx(8))*180/pi); fprintf('\n psi = %6.2f deg', TrimOutput.States(TrimParam.StateIdx(9))*180/pi); % Geographic position is irrelevant %fprintf('\n Lat = %8.4f deg', TrimOutput.States(TrimParam.StateIdx(10))*180/pi); %fprintf('\n Lon = %8.4f deg', TrimOutput.States(TrimParam.StateIdx(11))*180/pi); fprintf('\n Alt = %6.2f m', TrimOutput.States(TrimParam.StateIdx(12))); fprintf('\n Fuel = %6.2f kg', TrimOutput.States(TrimParam.StateIdx(13))); fprintf('\n Engine = %6.0f rot/min', TrimOutput.States(TrimParam.StateIdx(14))*30/pi); fprintf('\nOUTPUTS:'); fprintf('\n Airspeed = %6.2f m/s', TrimOutput.Outputs(1)); fprintf('\n Sideslip = %6.2f deg', TrimOutput.Outputs(2)*180/pi); fprintf('\n AOA = %6.2f deg', TrimOutput.Outputs(3)*180/pi); fprintf('\n Bank = %6.2f deg', TrimOutput.Outputs(4)*180/pi); fprintf('\n Pitch = %6.2f deg', TrimOutput.Outputs(5)*180/pi); fprintf('\n Heading = %6.2f deg', TrimOutput.Outputs(6)*180/pi); fprintf('\n Altitude = %8.2f m', TrimOutput.Outputs(7)); % Extract the linear model fprintf('\n \nExtracting aircraft linear model...\n'); % Perturbation level LinParam(1) = 10^-8; [A, B, C, D] = linmod(TrimParam.SimModel, TrimOutput.States, TrimOutput.Inputs, LinParam); % Longitudinal dynamics % States: u w q theta h omega % Inputs: elevator throttle % Outputs: Va alpha q theta h Alon = [ A(TrimParam.StateIdx(1), [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) A(TrimParam.StateIdx(3), [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) A(TrimParam.StateIdx(5), [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) A(TrimParam.StateIdx(8), [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) 151 A(TrimParam.StateIdx(12), [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) A(TrimParam.StateIdx(14), [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) ]; Blon = [ B(TrimParam.StateIdx(1), [1 4]) B(TrimParam.StateIdx(3), [1 4]) B(TrimParam.StateIdx(5), [1 4]) B(TrimParam.StateIdx(8), [1 4]) B(TrimParam.StateIdx(12), [1 4]) B(TrimParam.StateIdx(14), [1 4]) ]; Clon = [ C(1, [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) C(3, [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) zeros(2, 6) C(7, [TrimParam.StateIdx(1) TrimParam.StateIdx(3) TrimParam.StateIdx(5) TrimParam.StateIdx(8) TrimParam.StateIdx(12) TrimParam.StateIdx(14)]) ]; Clon(3,3) = 1; Clon(4,4) = 1; fprintf('\n'); fprintf('\n Longitudinal Dynamics'); fprintf('\n-----------------------'); fprintf('\n State vector: x = [u w q theta h Omega]'); fprintf('\n Input vector: u = [elevator throttle]'); fprintf('\n Output vector: y = [Va alpha q theta h]'); fprintf('\n State matrix: A = \n'); disp(Alon); fprintf('\n Control matrix: B = \n'); disp(Blon); fprintf('\n Observation matrix: C = \n'); disp(Clon); % Eigenvalue analysis eiglon = eig(Alon); for i=1:length(eiglon) 152 if imag(eiglon(i))>0 [wd, T, wn, zeta] = eigparam(eiglon(i)); fprintf('\n Eigenvalue: %6.4f +/- %6.4f i', real(eiglon(i)), imag(eiglon(i))); fprintf('\n Damping = %6.4f, natural frequency = %6.4f rad/s, period = %8.4f s', zeta, wn, T); elseif imag(eiglon(i))==0 fprintf('\n Eigenvalue: %6.4f', eiglon(i)); fprintf('\n Time constant = %6.4f s', -1/eiglon(i)); end end % Lateral-directional dynamics % States: v p r phi psi % Inputs: aileron rudder % Outputs: beta p r phi psi Alat = [ A(TrimParam.StateIdx(2), [TrimParam.StateIdx(2) TrimParam.StateIdx(4) TrimParam.StateIdx(6) TrimParam.StateIdx(7) TrimParam.StateIdx(9)]) A(TrimParam.StateIdx(4), [TrimParam.StateIdx(2) TrimParam.StateIdx(4) TrimParam.StateIdx(6) TrimParam.StateIdx(7) TrimParam.StateIdx(9)]) A(TrimParam.StateIdx(6), [TrimParam.StateIdx(2) TrimParam.StateIdx(4) TrimParam.StateIdx(6) TrimParam.StateIdx(7) TrimParam.StateIdx(9)]) A(TrimParam.StateIdx(7), [TrimParam.StateIdx(2) TrimParam.StateIdx(4) TrimParam.StateIdx(6) TrimParam.StateIdx(7) TrimParam.StateIdx(9)]) A(TrimParam.StateIdx(9), [TrimParam.StateIdx(2) TrimParam.StateIdx(4) TrimParam.StateIdx(6) TrimParam.StateIdx(7) TrimParam.StateIdx(9)]) ]; Blat = [ B(TrimParam.StateIdx(2), [2 3]) B(TrimParam.StateIdx(4), [2 3]) B(TrimParam.StateIdx(6), [2 3]) B(TrimParam.StateIdx(7), [2 3]) B(TrimParam.StateIdx(9), [2 3]) ]; Clat = [ C(2, [TrimParam.StateIdx(2) TrimParam.StateIdx(4) TrimParam.StateIdx(6) TrimParam.StateIdx(7) TrimParam.StateIdx(9)]) zeros(4, 5) ]; Clat(2,2) = 1; Clat(3,3) = 1; Clat(4,4) = 1; Clat(5,5) = 1; 153 fprintf('\n'); fprintf('\n Lateral-directional Dynamics'); fprintf('\n------------------------------'); fprintf('\n State vector: x = [v p r phi psi]'); fprintf('\n Input vector: u = [aileron rudder]'); fprintf('\n Output vector: y = [beta p r phi psi]'); fprintf('\n State matrix: A = \n'); disp(Alat); fprintf('\n Control matrix: B = \n'); disp(Blat); fprintf('\n Observation matrix: C = \n'); disp(Clat); % Eigenvalue analysis eiglat = eig(Alat); for i=1:length(eiglat) if imag(eiglat(i))>0 [wd, T, wn, zeta] = eigparam(eiglat(i)); fprintf('\n Eigenvalue: %6.4f +/- %6.4f i', real(eiglat(i)), imag(eiglat(i))); fprintf('\n Damping = %6.4f, natural frequency = %6.4f rad/s, period = %8.4f s', zeta, wn, T); elseif (imag(eiglat(i))==0)&(real(eiglat(i))~=0) fprintf('\n Eigenvalue: %6.4f', eiglat(i)); fprintf('\n Time constant = %6.4f s', -1/eiglat(i)); end end 154