Você está na página 1de 5

PONTIFÍCIA UNIVERSIDADE CATÓLICA

DO RIO DE JANEIRO

CONTROLE DISCRETO – ENG1471


Prof. Marco Antonio Meggiolaro
Trabalho para G3, 25 de maio de 2023
Entrega: 15 de junho de 2023

Um avião de combate F/A-18E Super Hornet (F-18) encontra-se horizontalmente em


velocidade de cruzeiro uc = 375m/s (Mach 1.1) a uma altitude inicial h = h0 = 1000m. Este
F-18 precisa fazer uma manobra de ataque, mergulhando até uma altitude h < hb = 20m, e
em seguida escapar ascendendo além de uma altitude segura h > hf = 4000m. Esta manobra
completa precisa ser executada em um invervalo de tempo máximo t ≤ tmax = 40s.

O modelo Super Hornet do F-18 possui comprimento L = 18.31m, largura total 13.62m
(8.4m com as asas dobradas) e altura A = 4.88m. Sua massa com combustível e todos os
equipamentos necessários para essa missão é M = 21538kg, assumida constante durante a
manobra. Esse modelo é atuado por dois turbofans General Electric F414-GE-400, cada um
capaz de prover até 98kN de empuxo ao acionar o afterburner (sem o afterburner cairia para
58kN cada), totalizando uma força conjunta f com um limite máximo fmax = 196000N
(196kN). A velocidade máxima teórica desse avião é 532m/s, equivalente a Mach 1.6.

Ele foi projetado para operar de forma segura em até 7.6g, onde g = 9.81m/s2 é a aceleração
da gravidade local. No entanto, para essa missão serão admitidas acelerações máximas de até
10g., acima das quais tanto a integridade do avião quanto do(a) piloto estariam em risco. A
razão empuxo/peso do F-18 é definida como fmax/(Mg)  0.93, e seu teto de serviço é de
cerca de 15000m.

O vetor de estado X do F-18, que representa sua dinâmica longitudinal, é dado por
X  [u v   h]T
onde:
 (uc + u) – velocidade longitudinal do F-18 (em relação a um referencial inercial no
solo, mas com direção definida ao longo da fuselagem) [m/s] – note que u seria o
desvio da velocidade longitudinal em relação à de cruzeiro uc = 375m/s;
 v – velocidade de ascensão do F-18 (velocidade absoluta em relação ao solo, mas na
direção perpendicular à fuselagem) [m/s];
  – taxa de arfagem (pitch rate, representando a velocidade angular do avião) [rad/s]
(por exemplo  > 0 indicaria avião “empinando”), denominado tetap no Matlab;
  – ângulo de arfagem (pitch, ou inclinação) [rad] (por exemplo  > 0 indicaria “nariz
elevado”), denominado teta no Matlab;
 h – altitude em relação ao solo [m], medida na vertical.

Note que a condição inicial do problema é X0  [0 0 0 0 h0]T , que representa uma


velocidade horizontal (e portanto v = 0,  = 0 e   0 ) igual a uc (e assim o desvio u = 0) em
uma altitude inicial h = h0 = 1000m.

O vetor de atuação no avião é dado por U = [dp de]T, onde:


 dp – desvio no ângulo do profundor (taileron, uma combinação de profundor e
aileron em sua cauda) em relação ao ângulo usado em cruzeiro [rad]; note os limites
de operação 0.5rad < dp < 0.5rad, e que por exemplo um dp > 0 abaixa o profundor
para provocar um “mergulho” do avião;
 de – empuxo (thrust) adimensionalizado, obtido dividindo a força conjunta f dos
propulsores pela massa M do avião, isto é de  f/M, fazendo com que de sempre
fique no intervalo 0 < de ≤ fmax/M  9.1. Note que esse limite superior 9.1 é igual ao
produto entre g = 9.81m/s2 e a razão empuxo/peso 0.93 do F-18 Super Hornet.

O avião está sujeito à perturbação do vento, dada pelo vetor w = [wu wv]T, onde:
 wu – velocidade do vento em relação ao solo, na direção longitudinal do avião (ao
longo da fuselagem) [m/s];
 wv – velocidade do vento em relação ao solo, na direção perpendicular à fuselagem do
avião [m/s].

Assuma que o sistema abaixo represente o movimento desse avião. Ele foi linearizado para
velocidades próximas à de cruzeiro uc e para altitudes h ao nível do mar. Note que o sistema
também foi linearizado para  pequenos: por exemplo, a equação diferencial que rege a
altitude seria h  (uc  u)  sin   v  cos  , porém ao ser linearizada com sin   , cos   1
e u << uc ela resulta em h  uc    v , conforme representado abaixo. Por simplicidade, e
para evitar a necessidade de implementar um simulador não-linear nesse problema, assume-se
que o sistema linearizado abaixo seja válido para todas as altitudes h, velocidades (uc + u) e
valores de  da manobra:
X  F  X  G  U  Gw  w

onde

 u   0.068 0.011 0 g 0   u   0.41 1.00   0.068 0.011


 v   0.023 2.10 u 0 
0 v      
   c    77.0 0.09  dp   0.023 2.10   w 
     0.011 0.160 2.20 0 0        61.0 0.11      0 0  
u
         de    w v 
  0 0 1 0 0     0 0   0 0 
 h   0 1 0 uc 0   h   0 0   0 0 
Note que o sistema é altamente acoplado. Por exemplo, um aumento no empuxo
adimensionalizado de  f/M provoca não só uma aceleração longitudinal u  0 (com
coeficiente 1.0, como esperado pois f  M  u se todos os demais estados, atuações e
perturbações forem nulos), mas também uma aceleração de ascensão v  0 devido à maior
sustentação gerada (coeficiente 0.09), e até tende a fazer o avião “mergulhar” com a
aceleração angular   0 (devido ao coeficiente negativo 0.11), o que pode ser explicado
pelo fato de as turbinas se localizarem um pouco acima do centro de gravidade do avião,
gerando um momento negativo.

Outro exemplo de acoplamento envolve abaixar o profundor devido a um valor dp > 0, que
não apenas provoca a esperado tendência de “mergulho” do avião   0 (com coeficiente
61.0), como também gera uma aceleração vertical à fuselagem v  0 (coeficiente 77.0) e
uma frenagem longitudinal u  0 (coeficiente 0.41) devido ao maior arrasto.

O controle do avião será feito de forma digital, mas assume-se que o controlador disponível
possui frequência de apenas 10Hz, ou seja, T = 0.1s (período de controle 100ms).

É fundamental definir uma trajetória de referência desejada hdesejada [m] para o controlador
comparar com o valor medido/estimado de h, através de uma função temporal desde o
instante inicial t = 0 até o final t = tfim = 50s da simulação. É recomendável também (mas
não necessário) especificar trajetórias de referência não nulas para as outras 4 variáveis de
estado u, v,  e , em função do tempo t, se isso ajudar no problema. Use seu instinto,
criatividade e coragem!

O controlador será considerado um sucesso se e somente se:


 a aceleração do F-18 jamais ultrapassar 10g durante a manobra, para garantir a
integridade do avião e do(a) piloto;
 em algum instante da trajetória a altitude h < hb = 20m desejada for alcançada, e
sempre garantindo que h > 0 para não haver colisão com o solo; e
 após t = tmax = 40s a altitude seja sempre h > hf = 4000m, para escapar com
segurança.

Parte 0 (10%)
Obtenha com ajuda do Matlab as equações das matrizes equivalentes ZOH discretas ,  e
w para T = 0.1s, gerando a equação de diferenças abaixo, e apresente-as no trabalho.

X(k  1)    X(k)    U(k)   w  w

Parte 1 (40%)
Assuma que o avião dispõe de um sofisticado sistema de navegação inercial com GPS e
bússola embutidos, que é capaz de medir/estimar automaticamente todo o estado X.
Assumindo que não haja ruído neste sistema, e que não haja vento em relação ao solo (ou
seja, wu = wv = 0), implemente em Matlab uma rotina de controle LQR para cumprir o
objetivo. Informe no trabalho as matrizes Q1 e Q2 escolhidas, assim como a matriz de ganhos
K resultante e os pólos de malha fechada, além das matrizes H e J apropriadas para esse
caso. Informe também os valores de referência escolhidos para cada estado em função do
tempo t para todos os instantes simulados 0 ≤ t ≤ tfim = 50s.

Gere a partir do arquivo “f18.m” fornecido um arquivo de simulação de Matlab “parte1.m”


que simule os primeiros tfim = 50s do problema, gerando as matrizes X, Y, U (todas com
1+tsim/T = 501 colunas) que armazenam os valores de X(:,k+1), Y(:,k+1) e U(:,k+1) para
cada amostra coletada no instante t = kT, onde 0 ≤ k ≤ 500.

Note que o arquivo “f18.m” fornecido gera uma animação da manobra, e produz 4 gráficos
em função do tempo: (i) valores reais das velocidades u e v, em m/s; (ii) ângulo de arfagem 
(teta) do sensor e real, convertida de radianos para graus, assim como a taxa de arfagem 
(tetap) convertida para graus/s; (iii) altitude h do sensor e real, em m; e (iv) valores reais das
atuações dp (convertida para graus) e de (adimensional entre 0 e 9.1), e da razão a/g entre os
módulos da aceleração do avião e da gravidade (que sempre deve ser manter abaixo de 10).

Os gráficos também mostram informações adicionais como altitude mínima alcançada,


ângulos mínimo e máximo de arfagem na manobra, e valores máximos de dp (em módulo),
de (adimensional e convertida para f em kN), e da razão a/g, assim como se a missão foi um
sucesso ou qual foi o motivo de falha. No caso de sucesso, é informado também o instante de
tempo tsucesso em que a altitude h > hf = 4000m foi alcançada, sem mais retornar a esse
patamar até o final dos tfim = 50s da simulação.

Importante relembrar, para todas as partes:


 para a simulação ser considerada um sucesso, será verificado nos gráficos se: (i) a razão
a/g sempre se manteve abaixo de 10, durante toda a simulação; (ii) os atuadores nunca
foram saturados durante toda a simulação, ou seja sempre estiveram nas faixas de
operação 0.5rad < dp < 0.5rad e 0 < de ≤ 9.1; (iii) em algum instante da trajetória
alcançou-se a altitude desejada h < hb = 20m, porém sempre com h > 0 para não colidir
com o solo; e (iv) se tsucesso ≤ tmax = 40s.
 programe a simulação deste sistema discreto de forma explícita, sem o uso da função
dlsim do Matlab ou de ferramentas Simulink, e implemente no simulador as condições de
saturação de dp e de para que nunca sejam violadas.

Bônus:
O único trabalho que gerar o menor tempo tsucesso ganhará bônus de 2.0 pontos na G3 (ou
na G2), o segundo menor tempo bônus de 1.0 ponto, e o terceiro menor tempo bônus de
0.5 pontos.

Parte 2 (50%)
Considere a mesma manobra, porém na presença de turbulência com ventos significativos.
Além disso, houve uma pane no sistema de navegação inercial, impossibilitando as medições
de u, v e  . Um altímetro e um inclinômetro são então usados nesta manobra sob condições
de emergência para medir h e , porém ambos os sensores são ruidosos. O computador de
bordo do avião, ao perceber a pane no sistema de navegação, liga automaticamente um
sistema de controle de emergência, que utiliza apenas os 2 sensores acima em um filtro de
Kalman linear.
Assumindo os ruídos como Gaussianos, obtiveram-se dos fabricantes os valores dos desvios-
padrão dos erros nas medições do altímetro e do inclinômetro, respectivamente:
 hstd = 10m para h;
 tetastd = 0.0873rad para  (equivalente a 5º)
Os ventos da zona de turbulência são assumidos Gaussianos de média zero, com orientação e
velocidade aleatórias, com desvios-padrão:
 wustd = 3m/s para wu;
 wvstd = 2m/s para wv.

A partir desses dados, é possível estimar as matrizes de covariância W (das perturbações) e V


(dos ruídos dos sensores). Informe no trabalho os valores das matrizes de W e V, das novas
matrizes H e J adotadas após a pane, além de todas as equações de controle, predição e
correção utilizados na implementação deste controlador de emergência com filtro de Kalman
linear. Informe também no trabalho as matrizes Q1 e Q2 escolhidas para o LQR, assim como
a matriz de ganhos K resultante e os pólos de malha fechada (caso tenham sido modificados
em relação à Parte 1). Informe também os valores de referência escolhidos para cada estado
em função do tempo t.

Com o auxílio do arquivo “f18.m” fornecido, gere um segundo arquivo de simulação de


Matlab “parte2.m” que simule os primeiros tfim = 50s do problema usando um filtro de
Kalman linear, e gere os mesmos gráficos solicitados anteriormente. Note que a simulação do
sistema precisa sortear a cada instante valores Gaussianos adequados para os ruídos e
perturbações.

Importante:
 use no Matlab a notação vruido = [vh vteta]' para os ruídos sorteados nas leituras de h e
, para não confundir com a variável v da velocidade de ascenção, e adote w = [wu wv]'
para as perturbações sorteadas.
 para o cálculo da atuação U pela lei de controle a ser implementada (assim como para as
predições e correções para estimar os estados), é proibido usar o estado real X, as
perturbações sorteadas do vento w e os ruídos sorteados dos sensores vruido.
 a cada simulação a resposta será um pouco diferente, uma vez que os ruídos e perturbações
vruido e w são aleatórios e sorteados no simulador. Por esse motivo, rode várias vezes
essa simulação da Parte 2 para ter certeza que o controlador/estimador implementado é
robusto e gera simulações bem sucedidas em todos os casos testados.

Atenção: O TRABALHO É INDIVIDUAL


O PDF do trabalho precisa mostrar todas as equações relevantes, incluindo as leis de controle
e de predição/correção e matrizes solicitadas para cada parte. É preciso incluir também no
PDF do trabalho todos os gráficos de cada parte gerados pelo Matlab, e ocupando toda a
largura das páginas para maior clareza.

É preciso enviar pelo Moodle, além do trabalho em um único PDF, os arquivos parte1.m e
parte2.m com as rotinas todas implementadas, prontas para serem rodadas. Cada arquivo, ao
ser rodado, precisa gerar os gráficos solicitados e replicados no texto do trabalho. Portanto no
Moodle poderão ser enviados até 3 arquivos: 2 arquivos de extensão *.m e mais 1 PDF.

Boa pilotagem!

Você também pode gostar