Você está na página 1de 13

CONTROL EN SISTEMAS DE

VARIABLES DE ESTADO CONTROL Y GUIADO

DE UN AVIÓN
ANTONIO MENDOZA VÁZQUEZ
ÍNDICE:

1. Introducción…………………………………………………………………………………………………………..pág 3

2. Filtro de Kalman para estimar el estado del avión. Compruebe la bondad de las estimaciones
a partir del error de estimación de las salidas……………………………………………………………págs.3-7

3. Controlador LQR para regulación de la altura y velocidad ante escalones (positivos y


negativos) de velocidad de 5 m/s y de altura de 100 m……………………………………………..págs7-9

4. Controlador LQR de seguimiento para el control de la velocidad y altura ante saltos de 5 m/s
y 100 m (como en el apartado 2) pero con una transición en rampa de 300 segundos de
duración……………………………………………………………………………………………………………………..págs9-12
1. INTRODUCCIÓN

Este trabajo consiste en el diseño en variables de estado de un avión. Para ello se va a realizar
el control en regulación y seguimiento de un modelo de avión usando las técnicas de control
óptimo. Nuestras condiciones de vuelo serán V=100 m/s y h=900 m.

En primer lugar, vamos a diseñar un filtro de Kalman, que va a estimar el estado del avión. Una
vez diseñado el filtro de Kalman, procedemos a diseñar un controlador LQR en regulación, y
posteriormente en seguimiento para realizar un control óptimo estocástico sobre el modelo
lineal y no lineal del avión.

Para ello vamos a usar la siguiente estructura en MATLAB y las funciones proporcionadas:

% Cálculo de la condiciones de vuelo [X0,U0]=CalcCondVuelo(V0,H0);

% Cálculo del modelo linealizado en tiempo continuo [Ac,Bc,Cc,Dc]=CalcMdlLin(X0,U0);

% Elección del Tiempo de muestreo T y discretización

Uk=U0;

for k=0:Nmax % Cálculo de la salida actual integrando el modelo % no lineal


Yk=IntegraModelo(k,Uk,T,X0,1,1);

% Cálculo/Lectura de la referencia Rk

% Cálculo de la acción de control % Uk=Ctrl(Rk,Yk) % Almacenamiento de valores


históricos end

2. DISEÑO DE UN FILTRO DE KALMAN

Primeramente, un filtro de kalman es un filtro recursivo de predicción que se basa en el uso de


técnicas de espacio de estado y los algoritmos recursivos. Se estima que el estado de un
sistema dinámico. Este sistema dinámico puede ser perturbado por algún ruido, en su mayoría
asume como ruido blanco. Para mejorar el estado que estima el filtro de Kalman se utilizan
mediciones que se relacionan con el Estado, sino perturbados también. Constituye 2 pasos, la
predicción y la corrección.

En el primer paso el estado predicho por el modelo dinámico. En el segundo paso se corrige
con el modelo de observación, de modo que la covarianza del estimador de error se minimiza.
En este sentido, es un estimador óptimo.

En este apartado lo primero que hemos realizado ha sido obtener las condiciones de vuelo X0
y U0 mediante una función proporcionada, y después las matrices de estado en tiempo
continuo Ac, Bc ,Cc, Dc. Una vez obtenidas el siguiente paso ha sido hallar el tiempo de
discretización y el número de muestras. Así, fijando delta=0.5 y t_est=1s. Tenemos que:
𝜋
𝑤𝑛 =
𝛿 ∗ 𝑡𝑒
𝜋 − acos⁡(𝛿)
𝑡𝑠 =
𝑤𝑛 ∗ √1 − 𝛿^2
𝑇𝑑𝑖𝑠𝑐 = 0.1 ∗ 𝑡𝑠. = 0.01;
Así, hallamos las matrices del modelo discreto y aplicamos el algoritmo de Kalman linealizado,
en primer lugar tenemos que nuestro vector de estados x= velocidad, gamma, theta, q, h y las
vaiables de control F y delta e. Así, el código es:

%condiciones iniciales
V0=55;
h0=900;
[X0,U0]=CalcCondVuelo(V0,h0);
%discretizacion
Tm = 0.01;
[Ac,Bc,Cc,Dc] = CalcMdlLin(X0,U0);
continuo = ss(Ac,Bc,Cc,Dc);
discreto = c2d(continuo, Tm);
[Ad,Bd,Cd,Dd] = ssdata(discreto);

[yl,t,xl]=initial(discreto,X0);

%cov del ruido


Hw=diag([0.1, 1e-3, 1e-3, 1e-3 1]);
Hv=diag([0.5, 2]);

Uk=U0;
xant = [0 0 0 0 0]';
Pant = (1e4).*eye(5);

N= 500;

x_plot=[];
Y_plot=[];

for k=0:N

xapriori = Ad*xant + Bd*Uk;


Papriori = Ad*Pant*Ad' + Hw;
L=Papriori*Cd'*inv(Cd*Papriori*Cd' + Hv);
Yk = yl(k+1,:)';
xgorro = xapriori + L*(Yk - Cd*xapriori);
Pgorro = (eye(5) - L*Cd)*Papriori;
xant = xgorro;
Pant = Pgorro;
x_plot = [x_plot xgorro];
Y_plot = [Y_plot Yk];

end
Hemos tomado un filtro de Kalman en régimen permanente, vamos a comprobar que el estado
estimado converge al estado real:

Velocidad:

Gamma:
Theta:

Q:
H:

Errores de estimación:
Podemos observar que el estado estimado en todos los casos converge al estado real.

3. Controlador LQR para regulación de la altura y velocidad ante escalones (positivos y


negativos) de velocidad de 5 m/s y de altura de 100 m.

Primeramente, Las técnicas de control óptimo conforman una de las ramas del control
automático más importantes en el desarrollo de las estrategias modernas de control más
utilizadas hoy en día. Se han escrito numerosas monografías dedicadas a su estudio, y se ha
publicado una gran cantidad de artículos en revistas especializadas.

Nos vamos a centrar en este trabajo en el control LQR en régimen permanente.

En primer lugar vamos a diseñar la ganancia del controlador con el comando dlqr de MATLAB,
para lo cual, primero tenemos que diseñar las matrices Q y R que la elegiremos así:

Q=diag([0.02,0,1e-5,0,1e-3]);

R=5.*diag([1e-5,0.17]);

Posteriormente, se diseñan la matriz M, se ensaya el sistema en bucle cerrado y se ajustan Q y


R hasta que de una respuesta adecuada. Así, para escalones de 5 m/s en la velocidad y 100m
en la altura las respuestas son las siguientes: (En rojo las referencias)

Velocidad:
Altitud:

Ahora procedemos a simular el modelo no lineal, cuya cariable yk calcularemos con la función
integra_modelo. Así: los resultados de simulación del modelo no lineal son:

Velocidad real:
Altitud real:

Tras la realización de un controlador LQR para regulación y tras los resultados obtenidos,
llegamos a las siguientes conclusiones:

Un menor tiempo de muestreo nos permite que la actuación del controlador sea mejor, y las
estimaciones proporcionadas por el Filtro de Kalman, tanto para el controlador LQR para el
modelo lineal como no lineal son realmente buenas.

4. Controlador LQR de seguimiento para el control de la velocidad y altura ante saltos


de 5 m/s y 100 m (como en el apartado 2) pero con una transición en rampa de 300
segundos de duración.

Anteriormente, hemos realizado el problema de regulación y ahora vamos a realizar el


seguimiento de una referencia. Para ello, primero se fija el polinomio deltaz de acuerdo a una
respuesta en rampa. Después construimos las matrices de la dinámica del error Ae y Be, Qe y
Re. Una vez realizado esto, se proceden a diseñar las matrices Kx y Ke. Y finalmente obtener la
función de transferencia, para obtener las ecuaciones en diferencias y así, establecer el
programa de control. Así, usando primeramente el modelo lineal:
Velocidad:

Altitud:
Observamos, que ambas variables siguen a la rampa.

Ahora, simulamos para el modelo no lineal y los resultados son:

Velocidad:

Altitud real:
Podemos observar que en el modelo no lineal existen grandes oscilaciones, pero, aun así, la
salida sigue a la referencia en rampa.

Tras la realización de un controlador LQR para seguimiento y tras los resultados obtenidos,
llegamos a las siguientes conclusiones:

Para el modelo linealizado, el controlador se comporta de una manera aceptable, excepto por
las oscilaciones. Para el modelo no linealizado, un controlador LQR para seguimiento no es una
solución adecuada, ya que se producen errores muy significativos.

Você também pode gostar