0% encontró este documento útil (0 votos)
513 vistas21 páginas

Control LQR y Observadores de Estado

Este documento trata sobre el control LQR (control óptimo cuadrático) y los observadores de estado. Explica que el control LQR minimiza una función de costo para determinar la acción de control óptima. También describe cómo se usan los observadores de estado para estimar los estados del sistema cuando no pueden medirse directamente, y cómo estos estados estimados se usan en la realimentación del controlador. Finalmente, detalla algunos aspectos clave como la selección de las matrices Q y R, y la comprobación de la controlabilidad y observabilidad del sistema

Cargado por

Carlos Pillajo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
513 vistas21 páginas

Control LQR y Observadores de Estado

Este documento trata sobre el control LQR (control óptimo cuadrático) y los observadores de estado. Explica que el control LQR minimiza una función de costo para determinar la acción de control óptima. También describe cómo se usan los observadores de estado para estimar los estados del sistema cuando no pueden medirse directamente, y cómo estos estados estimados se usan en la realimentación del controlador. Finalmente, detalla algunos aspectos clave como la selección de las matrices Q y R, y la comprobación de la controlabilidad y observabilidad del sistema

Cargado por

Carlos Pillajo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Contenido

1. CONTROL LQR.............................................................................................................................. 1
Controlabilidad ............................................................................................................................ 2
Observabilidad ............................................................................................................................ 3
Selección de las matices [Q] y [R].................................................................................................... 3
OBSERVADORES DE ESTADO ........................................................................................................... 4
Estimación de estados ................................................................................................................. 4
Realimentación desde estados estimados .................................................................................. 7
2. CONTROL ÓPTIMO ESTOCÁSTICO ............................................................................................... 9
Retroacción directa ....................................................................................................................... 10
Reconstrucción óptima del estado. Filtro de Kalman-Busy .......................................................... 10
3. EJERCICIO LQG_2.m (Continuo) ................................................................................................ 15
4. EJERCICIO LQG_2.m (Discreto) .................................................................................................. 18

1. CONTROL LQR
A continuación para efectos de entendimiento se realizará el control LQR, dando una explicación
teórica, se indicará para una planta de control de velocidad de un motor tal como se indica en la
figura

Se puede ver en la figura anterior la estructura de la estrategia de control LQR, en donde se


incluye un observador de estados para hacer el seguimiento de la referencia obteniendo los
estados estimados x^, y^ y el proceso en su representación de estados.

Las siglas LQR indican control óptimo cuadrático, la cual es una estrategia de control moderno
multivariable que se caracteriza por ser robusta tanto en tiempo discreto así como en tiempo
continuo [1]
El LQR se dice que es una estrategia de control óptima ya que se procura la operación de un
sistema dinámico considerando el menor costo, es decir que el controlador se encuentra mediante
un algoritmo matemático que cual minimiza la función de costo objetivo y las desviaciones no
deseadas.

Sea las ecuaciones que describen el sistema a controlar de la forma:

La ley de control LQR responde a una acción de control proporcional (), determinándose mediante
cálculos los componentes de la matriz () que representan las constantes del control proporcional.

El control LQR se calcula minimizando la función de costo dado en ()

En (4.4) P(t) es la matriz de la ecuación de Ricatti que se halla según (4.6)

La ecuación de Ricatti puede resolverse solo si el sistema es controlable y observable, por lo tanto
antes de aplicar la ley de control LQR, debe comprobarse que el proceso a controlar cumpla con
estas dos condiciones y así también se garantiza la existencia de la matriz (4.4) de control óptimo
[2]

El control LQR presenta una sensibilidad menor o igual a 1 la cual es una cifra reducida que le
proporciona robustez, es óptimo para la J (4.5) definida por el diseñador tiene amplios márgenes
de fase y ganancia y amplia tolerancia a la reducción de la ganancia.

Una vez definidas las matrices [Q] (matriz de error ponderado) y [R] matriz ponderado de control
se determina la función de coste (4.5) y luego con la técnica LQR se minimiza J a partir de las
variables de control.

Controlabilidad.- Un sistema controlable es aquel que converge a una referencia en un tiempo


finito, es decir sin importar su estado actual en algún momento la respuesta se estabilizará en un
punto definido. Si el proceso es controlable debe existir una función de entrada o control capaz de
lograr que los estados del sistema tambien de un valor a otro en un tiempo determinado, hay un
acople entre las entradas y estados todos los estados deben ser afectados por las entradas.
Para comprobar la controlabilidad se puede establecer que el rango de la matriz de controlabilidad
coincida con el orden del sistema como se muestra en (4.7) donde A y B son las matrices de estado
y n es el orden; con esto se garantiza que en el comportamiento dinámico del sistema no exista un
punto en el que se torne inestable.

Observabilidad.- Un proceso es observable cuando los estados pueden ser determinados a partir
de las salidas en cada instante de tiempo, es decir hay un acople entre estados y salidas. Cuando
un proceso no es observable, con la información de las salidas no es posible conocer de manera
precisa y completa el comportamiento del sistema Se puede comprobar la observabilidad
sabiendo que el rango de la matriz coincide con el orden n del sistema.

Selección de las matices [Q] y [R]


Para obtener el controlador LQR, es necesario definir las matrices de la función de coste [Q] y [R].
Desafortunadamente, no existen métodos analíticos simples que permitan al diseñador definir los
valores que configuran dichas matrices en función del sistema, del control que se desee realizar y
de los esfuerzos de las variables de control. Por lo tanto es necesario proponer unas matrices [Q] y
[R], calcular el controlador y comprobar el comportamiento del sistema en lazo cerrado mediante
simulación, en función de los resultados se modifican las matrices y luego se recalcula el
controlador y se simula nuevamente. Este proceso se repite hasta que se pueda llegar al
comportamiento deseado del sistema. Por lo que se trata de un método iterativo donde el
conocimiento de la planta por parte del diseñador es decisivo a la hora de reducir el número de
iteraciones.[2]

Se presentan algunas consideraciones que suponen una ayuda en la selección de los valores de las
matrices:

 Valores mayores de los componentes de la matriz [Q] suponen un control más exigente sobre
las variables a regular.
 Valores mayores de los componentes de la matriz [R] suponen un incremento de la influencia
de las acciones de control sobre la planta.
 En general se escoge [R] igual a la matriz identidad, otorgando el mismo peso a cada una de las
variables de control. Pero en caso que algunas variables de control deban tener mayor
influencia que otras, se escoge [R] diagonal, con diferentes pesos asignados a cada variable de
control.
 Teniendo en cuenta la formulación clásica del sistema en el espacio de estado la matriz [Q] se
obtiene [Q]=[C]Tx[C].
 Cuando las variables de estado son las variables de salida, es más simple escoger [Q] diagonal,
asignando los esos apropiados a cada variable.

Aspectos que se debe tomar en cuenta en el proceso de simulación en donde se asignan valores
iniciales a las matrices Q y R verificando el comportamiento del sistema:

Plantear las simulaciones a realizar que permitan comprobar las prestaciones del controlador. Es
mejor simular en lo posible las condiciones de operación en el sistema real o en caso extremo,
donde la acción del controlador sea significativa.

Asignar las matrices Q,R como matrices identidad.

En función de los resultados de las simulaciones, incrementar o disminuir los componentes de las
matrices Q,R. Una forma sería variar únicamente Q, con R constante e igual a la matriz identidad.

El análisis de las simulaciones y, por tanto, la variación de los valores de Q y R se centra en los
términos clásicos de control: velocidad de respuesta, tiempo de establecimiento, error en
régimen permanente y verificar que las variables de control estén dentro de sus límites admisibles.

Una vez sintonizada la parte proporcional del controlador, se introduce en el sistema simulado una
perturbación significativa, que va a provocar un error estacionario. Esta perturbación se emplea
para la sintonizar la parte integral siguiendo el mismo proceso, lo que supone realizar algunas
simulaciones adicionales.

OBSERVADORES DE ESTADO
LOS observadores de estado se utilizan cuando no es posible medir los estados de las variables del
sistema, por ejemplo porque no se dispone de los sensores, porque es de difícil acceso o por el
costo alto del sensor. Como solución se realiza un modelo matemático que se comporta de
manera similar al sistema físico, en este modelo matemático se dispone de las medidas de todas
las variables del sistema. Sin embargo las variables reales no son exactamente iguales al sistema
modelado por lo que se requiere un factor de corrección de estas variables, antes de ser utilizadas
por el controlador de realimentación de estados. El modelo de la planta del motor debe ser lo más
cercano posible al sistema real para tener un mejor desempeño del controlador y del observador
de estados.

Estimación de estados
La realimentación de estados requiere medir los estados, pero normalmente, no se tiene acceso a
todos los estados. Entonces surge la pregunta ¿Cómo implementar la realimentación de estados?
Si el sistema es observable, los estados se pueden estimar mediante un observador.
Un observador es un sistema dinámico que estima los estados de la planta basado en la medida de
sus entradas y salidas.

¿Cómo construir un observador? Una forma intuitiva podría ser reproducir el modelo de la planta
y ejecutarlo simultáneamente para obtener un estado estimado x^(t)

El problema con este diseño simple es que si la planta y su “copia” en el observador tienen
diferentes condiciones iniciales, los estimados generalmente no convergirán a los valores reales.
Una mejor estructura de observador incluye una “corrección del error por realimentación”.
Con un diseño apropiado de la matriz de ganancia L, se puede ajustar al observador para que
entregue un estimado del estado que convergirá asintóticamente al valor real del estado.

Arreglando el diagrama de bloques anterior, obtenemos la estructura final del observador.

Si el sistema es observable, se puede escoger la ganancia L para que asigne arbitrariamente los
autovalores de A-LC De hecho, requerimos que el observador sea estable.

Del diagrama de bloques, las ecuaciones del observador son:

De la ecuación del observador, y la ecuación de la planta,

se puede obtener una ecuación para el error de estimación,


Así, vemos que para que el error converja asintóticamente a cero, e(t) -> 0 (y así x^(t)->x(t)), se
necesita que (A-LC) se Hurwitz.

Diseño del observador


Para diseñar el observador usamos las matrices A,B y C de la planta para formar la ecuación de
estado

Donde L es tal que los autovalores de (A-LC) tengan parte real negativa. De donde surge la
pregunta ¿Cómo seleccionar L? Se puede usar por dualidad, el mismo procedimiento seguido para
diseñar la ganancia de realimentación de estados K tal que A-BK sea Hurwitz. Si se forma la matriz
transpuesta de (A-LC)T se tiene:

Por lo que el problema se reduce a escoger Kdual para hacer que Adual – Bdual Kdual sea matriz
Hurwitz, y finalmente

Realimentación desde estados estimados


Una ganancia de realimentación K

Un estimador de estados (observador) con ganancia L.

Para diseñar K utilizando la fórmula de Bass-Gura para logar que (A - BK) sea matriz de Hurwitz

Para diseñar L en el observador usamos la dualidad y la misma fórmula de Bass-Gura para lograr
que (A - LC) se matriz de Hurwitz
Se debe diseñar K tal que (A - BK) sea Hurwitz, con los autovalores deseados, podemos garantizar
que el sistema de lazo cerrado sea asintóticamente y FIFO estable, y con una respuesta dinámica
especificada.

Se debe diseñar L para que (A - LC) sea Hurwitz, garantizamos que el observador sea
asintóticamente estable, y que el estimado del error x^(t) converja al estado real x(t) cuando t->∞

Pero K y el observador se diseñaron independientemente… ¿funcionarán de la misma manera


cuando se pongan juntos en un esquema de realimentación desde los estados estimados?
2. CONTROL ÓPTIMO ESTOCÁSTICO
El problema LQ determinista aborda problemas de regulación frente a perturbaciones transitorias,
en los que el sistema ve modificadas súbitamente sus condiciones de funcionamiento (equilibrio)
generando unas CI x(0+) ≠ 0 y el objetivo es que el regulador retorne el estado a su condición
normal de equilibrio, lo antes posible y procurando que el esfuerzo de control requerido no resulte
excesivo.

Aunque hay problemas que pueden formularse de esta manera, la situación más común es que las
perturbaciones sean aleatorias y persistentes tendiendo a desviar y mantener el sistema fuera de
su posición de equilibrio. Como consecuencia, el problema radica ahora en diseñar una
configuración retroactiva mediante la cual las desviaciones iniciales se reduzcan rápidamente pero
que además, atenúe lo más posible los efectos de las perturbaciones persistentes. La solución de
este problema nos conducirá a la síntesis de un regulador estocástico. Su estudio se desarrolla en
dos partes.

i. Retroacción directa LQ: Donde se dispone en cada instante de medidas completas y


exactas del estado.
ii. Regulador Lineal Cuadrático Gauseano LQG, Supone el caso más habitual de que sólo
se dispone de medidas incompletas y ruidosas del estado. Teniendo que recurrir, en
este caso, a un estimador óptimo (filtro de Kalman) que, al igual que en el control
modal, puedes ser calculado independientemente del regulador gracias al principio de
separación y que aquí recibe el nombre de principio de equivalencia de certeza.

Descripción de la planta.-

La presencia de las perturbaciones se tiene en cuenta ampliando la descripción de la planta

Donde w(t) representa las perturbaciones (ruido del proceso) que actuán sobre la misma y v(t)
representa al ruido de medida
Nuevo criterio de optimización. Promedio de J
1. Caso de horizonte finito, en donde el sistema es estocástico la J

Donde la primera parte corresponde a la desviación del estado final ponderado; la segunda
parte corresponde a la integral de la desviación “aumentada” de x

2. Caso de horizonte infinito, en el caso estocástico puerto que w es persistente el coste


tiene a infinito J->inf, y por ello hay que dividir por T para que pueda resultar finito, Así el
costo es:

Retroacción directa
La diferencia con el caso determinista es que la perturbación (ruido blanco) hace imposible
calcular con exactitud cómo evolucionará el sistema (x,u). Por ello la solución no permite obtener
u(t) a priori (lazo abierto), sino que hay que considerarlo en cada instante en base a toda la
información disponible. Como la información histórica viene resumida en x(t), la ley de control ha
de ser de la forma u(t)= f(x(t)), lo que presupone que el estado puede medirse completa y
exactamente en todo instante.

La suposición de que el estado es completamente accesible y libre de ruidos es poco realista, y


más en nuestro caso, en el que las medidas del estado contienen componentes aleatorios que
resultan difícilmente medibles. Por ello en los apartados siguientes se considera la inclusión del
Filtro de Kalman para la estimación de los estados no accesibles.

En el caso determinista la solución al problema LQ es retroactiva, Aquí, la solución es la misma ya


que sorprendentemente la presencia de ruido blaco no altera ni la estructura ni el valor de las
ganancias. Lo que se modifica es el valor del costo mínimo, es decir, se empeoran las prestaciones
óptimas. Su valor es mayor al del caso determinista en una cantidad que depende de la magnitud
de la perturbación (w)

Reconstrucción óptima del estado. Filtro de Kalman-Busy


En el caso estocástico (ruido del proceso y de medida actuando sobre la planta) la ganancia de
retroacción del estado Kc, resulta la misma que en el caso determinista (es decir, es independiente
de V,W). El problema es que normalmente no tenemos acceso directo y completo a las variables
de estado, Por ello es necesario utilizar un observador estocástico. El filtro de Kalman calcula la
estimación de mínima varianza x^(t) a partir de los registros de y(t), u(t). Además resulta
independiente de Q y R (es decir, aunque se modifiquen Q,R la estimación óptima siempre es la
misma)

Finalmente se aplica la retroacción sobre la estimación, es decir, en el compensador se sustituye x


por x^ y el resultado es óptimo utilizando como función de coste el valor medido de J
El cálculo de Ko, Kc corresponde a problemas independientes (teorema de separación) y duales.
Ahora, en vez de utilizar la fórmula de Ackermann se utiliza la ecuación de Riccati. Con el
observador óptimo (filtro de Kalman) el cálculo de Ko se hace de forma que se establece este
compromiso de una forma “óptima”. El criterio que se sigue es el de minimizar el cuadrado del
error de reconstrucción.

Previamente hay que especificar las características estadísticas de las perturbaciones que actúan
sobre el sistema tales como el ruido de la planta y el ruido de medida. En concreto, hay que tener
información de A, B,B, C de las características del ruido del proceso y del ruido de medida, y el
valor medio y la varianza de las condiciones iniciales del estado.

Formulación del problema del filtro de Kalman-Bucy (observador óptimo estocástico)

Planta:

Donde w es ruido de proceso, y v, ruido de medida, son procesos de ruido blanco Gaussianos con
media cero y marices de intensidades W y V, respectivamente.

Se supone que están incorrelados, además las condiciones iniciales no se conocen con exactitud.

Objetivo: Reconstrucción óptima de estado estimación de los estados a partir de las medidas de la
salida y la entrada, minimizando la suma de varianzas del vector de error de estimación

El filtro de Kalman es un observador óptimo que proporciona un compromiso entre la velocidad de


reconstrucción del estado y la inmunidad al ruido de medida.

Solución del problema:

1.- Condiciones.- Si el sistema lineal e invariante es completamente controlable con w(t) como
entrada y completamente observable (o al menos detectable), la ecuación de Riccati tiene una
única solución positiva Po(t) y el observador es asintóticamente estable.

2.- Esquema de bloques del observador óptimo


3.- Estructura: La estructura del observador de estado completo (se dice que un observador es
completo cuando el observador y la planta tienen el mismo orden) es:

4.- Error de reconstrucción: el error de reconstrucción es e(t) = x(t) – x^(t), satisface la ecuación
diferencial

El error de reconstrucción tiene la propiedad de tender a cero a medida que pasa el tiempo, para
cualquier condición inicial, si y sólo si el observador es asintóticamente estable, lim e(t) =0.

5.- Solución para horizonte finito: El vector de ganancias depende del tiempo:
6.- Solución para horizonte infinito.- Régimen estacionario. El vector de ganancias es constante
Una de las características del filtro de Kalman es que la matriz de ganancias Ko(t) alcanza valores
estacionarios muy rápidamente. Visto de otra forma, la matriz Po(t), solución de la ecuación de
Riccati converge rápidamente hacia un valor estacionario Po que es independiente de las
condiciones iniciales Po0. En caso de un sistema invariante todas las matrices son constantes, por
lo que la solución estacionaria Po también es una matriz constante y es la única solución definida
positiva de la ecuación de Riccati:

La matriz de ganancias del observador óptimo en régimen estacionario es:

La matriz Kopt 0 (t) de ganancias es, en general, asintóticamente estable, y esto es lo que permite
emplear el valor estacionario como valor constante de la ganancia. El observador óptimo
estacionario presenta la ventaja de que es más sencillo de implementar. En el caso de que el
sistema sea invariante este observador óptimo estacionario es óptimo en el sentido de que hace
que el lim E{eT(t)e(t)} sea mínimo.

7.- Metasistema
Propiedades de la solución.

1.- Dualidad entre el observador óptimo y el regulador óptimo.

El regulador LQ y el filtro de Kalman son problemas duales. Así, tenemos la siguiente equivalencia
de matrices:

La dualidad entre ambos problemas puede usarse para obtener las propiedades (estacionarias) del
observador óptimo a partir de las del regulador óptimo. Además, esta dualidad permite usar las
funciones de Matlab que resuelven el problema LQ ( función lqr) para resolver el filtro de Kalman
(función lqe).
3. EJERCICIO LQG_2.m (Continuo)
%% Determinación de la planta
clc; clear all; close all;
num = [-0.652 0.1042];
den = [1 5.909e-08 0.002402];
Hs=tf(num,den); % Función de transferencia continua
[A,B,C,D] = tf2ss(num,den);
B2 =[0;1];

%% controlabilidad
n=size(A,1);
c_cont=ctrb(A,B);
if (rank(c_cont) ~=n)
error('planta no contolable');
end
%% Observabilidad
o_cont=obsv(A,C);
if(rank(o_cont )~=n)
error('planta no observable');
end
%% Inicializaciones
ref=[100]; %referencia
n = size(A,1);
m = size(C,1);
I = diag(ones(1,size(B,1)));
N = 50;
W = 0.1; % ruido de proceso
V = 1; % ruido de medición
%% Definición de Q - R
Q = C'*C ; %matriz de error ponderado.
R = diag(ones(1,size(B,2))); % matriz ponderada de control
%% valores a seleccionar de Q-R
J = []; val2 =10^10;
v = [];
v2 =[];
while(val2>0.0001)
val = 10^10;
while(val>0.0001)
v = [v val];
v2=[v2 val2];
val = val/10;
end
val2 = val2/10;
end
%% Optimización Q-R
for i=1:size(v,2)
% Nuevas Qn, Rn
Qn=v(i)*Q;
Rn = v2(i)*R;
% se enceran las variables
j=0;
u = zeros(size(B,2),1);
x = ones(size(A,1),1);
y = zeros(size(C,1),1);
xe = x;
%Calculo de la ganancia del Regulador Lineal Cuadrático LQR
[K,P,E] = lqr(A,B,Qn,Rn); % -----d
for k=1:N
x = A*x+B*u;
u = -K*x;
y = C*x;
j = j +x'*Qn*x+u'*Rn*u;
if(j==inf)
break;
end
end
J = [J j];
end
figure(1); plot(J); title('J');
indice = find(J(1,:)==min(J));
v = v(indice);
v2 = v2(indice);
Qn = v(1)*Q;
Rn = v2(1)*R;
%% Optimización Precompensador
[K] = lqr(A,B,Qn,Rn); % -----------d
precom = (C*(I-A-B*K)^-1*B)^-1;
Jpre = []; i = 2;
prec_aux = [];
y1 = zeros(size(C,1),1);
while i>00.1
prec_aux = [prec_aux i*precom];
jpre=0;
u = zeros(size(B,2),1);
x = ones(size(A,1),1);
y = zeros(size(C,1),1);
xe = x;
for k=1:N
x = A*x+B*u;
u = -K*x + prec_aux(size(prec_aux,2))*(ref);
y = C*x;
jpre = jpre + abs(ref(1)-y(1));
if (j ==inf)
break;
end
end
Jpre = [Jpre jpre];
i =i/1.001;
end
figure(2);
plot(Jpre); title('PRECOMPENSADOR')
indice = find(Jpre(1,:)==min(Jpre));
prec = prec_aux(indice(1));
%% GRAFICOS
u = zeros(size(B,2),1);
x = ones(size(A,1),1);
y = zeros(size(C,1),1);
ye = y;
y2 = zeros(size(C,1),1);
z =zeros(size(C,1),1);
xe = x;
V = rand(1,N);
W = rand(1,N);
for k=1:N
x = A*x+B*u+B2*W(k);
u = -K*x + prec*(ref);
y = C*x;
z = y + V(k);
y2 = [y2 z];
end
figure(3);
hold on;
for i=1:size(C,1)
plot(y2(i,:));
end
grid on;
[L,P,aut] = lqe (A,B2,C,W(1),V(1)) %---d
u = zeros(size(B,2),1);
x = ones(size(A,1),1);
y = zeros(size(C,1),1);
e1 = zeros(size(A,1),1);
xe=x; e =0;
y1 = zeros(size(C,1),1);
for i =1:50
u = -K*xe +prec*(ref);
x = A*x+B*u+B2*W(i);
%xe = (A-B*K-L*C)*xe+L*z;
xe = A*xe +B*u + L*(z-C*xe);
y = C*x;
if rand >0.8
z = C*xe;
else
z = y + V(i);
end
%z= y+V(k);
ye = C*xe;
e = x-xe;
e1=[e1 e]
y1 = [y1 z];
end
plot(y1, 'r')
legend('Con ruido','Sin ruido');
figure(4);
hold on;
for i=1:size(A,1)
plot(e1(i,:));
end
4. EJERCICIO LQG_2.m (Discreto)
%% Matrices Planta
clc; clear all; close all;
% ---
% Ac = [-12 -20.02;1 0];
% Bc = [0; 1];
% C = [1 0];
% D = [0];
% Gc =[0 ; 1];
%%
Ac = [-10 1;-0.02 -2]; % Matrices de estado continua
Bc = [0;2];
C = [1 0];
D=[0];
Gc = [0;1];
%%
% Ac = [-10 -50; 1 0];
% Bc = [1;0];
% C = [20 0];
% D = [0];
%Gc = [0;1];
% Conversión a matrices de estado discretas
T = 0.05;
A = expm(Ac*T);
B = inv(Ac)*(A-eye(2,2))*Bc;
G = inv(Ac)*(A-eye(2,2))*Gc;

%% Parámetros iniciales
ref = [100];
n = size (A,1);
m = size(C,1);
I = eye(2,2);
N = 200;
%% Controlabilidad y Observabilidad
c_cont = ctrb(A,B);
if (rank(c_cont) ~=n)
error('planta no Controlable');
end
%
o_cont = obsv(A,C);
if(rank(o_cont) ~= n)
error ('planta no Observable');
end
%% Definicion de Q - R
Q = C'*C ; % Matriz de error ponderado
R = diag(ones(1,size(B,2))); % Matriz ponderada de control

% valores a probar de Q-R


J = [] ; val2=10^10;
v = []; v2 = [];
while (val2>0.0001)
val = 10^10;
while (val>0.0001)
v=[v val];
v2=[v2 val2];
val=val/10;
end
val2=val2/10;
end
%% Optimización Q-R
for i =1:size(v,2)
%Nuevas Qn y Rn
Qn = v(i)*Q;
Rn = v2(i)*R;
% variables iniciales
j = 0;
u = zeros(size(B,2),1);
x = ones(size(A,1),1);
y = zeros(size(C,1),1);
xe = x ;
% Evalua los valores de Q y R mediante la
% función de Regulador Lineal Cuadrático
[K,P,E] = dlqr(A,B,Qn,Rn);
for k=1:N
x = A*x + B*u;
u = -K*x;
y = C*x;
j = j+x'*Qn*x+u'*Rn*u;
if(j==inf)
break;
end
end
J=[J j];
end
figure(1);plot(J); title('J');
indice = find(J(1,:)==min(J));
v = v(indice);
v2 = v2(indice);
Qn = v(1)*Q;
Rn = v2(1)*R; Fig. N1 Resultado de la optimización de J

%% Optimización Precompensador
[K] = dlqr(A,B,Qn,Rn);
prec = (C*(I-(A+B*K))^-1*B)^-1;
Jpre = []; i = 200;
prec_aux = [];
y1 = zeros(size(C,1),1);
while i>0.001
prec_aux = [prec_aux i*prec];
jpre = 0;
u = zeros(size(B,2),1);
x = ones(size(A,1),1);
y = zeros(size(C,1),1);
xe = x ;
for k=1:N
x = A*x + B*u;
u = -K*x+prec_aux(size(prec_aux,2))*(ref);
y = C*x;
jpre = jpre + abs(ref(1)-y(1));
if(jpre==inf)
break;
end
end
Jpre = [Jpre jpre];
i = i/1.001;
end
figure(2);
plot(Jpre);title('PRECOMPENSADOR');
indice = find(Jpre(1,:)==min(Jpre));
pre = prec_aux(indice(1));
prec = pre;

%% GRAFICOS
%close all;
u =zeros(size(B,2),1);
x = zeros(size(A,1),1);
y2 = zeros(size(C,1),1);
V = 0.025*ones(1,N);
W = 0.09*ones(1,N);
for k =1:N
x = A*x+B*u+G*sqrt(W(k))*randn;
u = -K*x+prec*(ref);
y = C*x;
z = y + sqrt(V(k))*randn;
y2 = [y2 z];
end
figure(3);
hold on;
for i=1:size(C,1)
plot(y2(i,:));
end
grid on;

u = zeros(size(B,2),1);
x = zeros(size(A,1),1);
y = zeros(size(C,1),1);
z = zeros(size(C,1),1);
xe =x; e =[]; ye=[]; yx =[];
y1 =zeros(size(C,1),1); S = eye(2,2);
for i=1:N
u = -K*xe+prec*ref;
x = A*x+B*u+G*sqrt(W(k))*randn;
xp = A*xe + B*u;
[L,P,aut] = dlqe(A,Gc,C,W(i),V(i));
%L= (A*S*A'+G*V(i)*G')*C'*inv(C*(A*S*A'+G*V(i)*G')*C'+W(i));
xe =xp + L*(z-C*xp);
%S = (I-L*C)'*(A*S*A'+G*V(i)*G')*(I-L*C)'+L*W(i)*L';
y = C*x;
if rand>1
z =C*xe;
else
z= y + sqrt(V(i))*randn;
end
e = [e x-xe];
y1 = [y1 z];
end
plot (y1,'r');
legend('Con ruido','Sin ruido');
figure(4);
plot(e(1,:)); hold on;
plot(e(2,:),'r'); title('Error de estimación');

figure(7);
step(ss(Ac,Bc,C,0));hold on;
step(ss(A,B,C,0,T));title('Continua, Discreta');

REFERENCIAS

[1] D. S. Naidu, Optimal Control Systems, vol. 124, no. 4. 2003.


[2] R. J. Mantz, “Introducción al control óptimo,” Univ. Nac. la Plata, 2003.

También podría gustarte