Professional Documents
Culture Documents
CONTROL AVANZADO I
TRABAJO PRACTICO 6:
CONTROL OPTIMO EN SISTEMAS CONTINUOS
Junio de 2011
CONTROL AVANZADO I
2011
1. INTRODUCCION
El objetivo del trabajo prctico es aplicar como estrategia de control la tcnica de realimentacin de estados aplicando la teora de control ptimo, esto es, calcular una matriz de realimentacin de estados con el fin de minimizar un funcional costo en lugar de fijar una dinmica para el sistema a lazo cerrado. Adems se utilizar esta teora en la construccin de observadores para la reconstruccin del vector de estados en sistemas ruidosos.
1.1.
Control ptimo
En la primera parte del presente TP se realizar el diseo de sistemas de control basados en costos cuadrticos. Se considera el siguiente sistema continuo, lineal, estacionario, de orden n , con m entradas:
= A. X + B.U X
En el diseo de estos sistemas de control interesa la eleccin de un vector de control U tal que el mismo minimice un funcional costo dado por :
donde Q y R son matrices cuadradas, simtricas, definidas positivas de orden nxn y mxm respectivamente. Puede demostrarse que para un funcional J como el anterior la ley de control buscada est dada por la realimentacin de estados siguiente :
U = K .X
donde K se calcula a travs de
K = R 1 .B '.P
y P es una matriz simtrica, definida positiva, que satisface la ecuacin algebraica de Riccati:
1.2.
Sea el siguiente sistema continuo, donde W y V son seales de ruido que afectan al vector de estados y a la salida respectivamente
= A. X + B.U + W X Y = C. X + V
[W ] nx1 [V ] px1
Trabajo Prctico 6
Pg. 2 de 9
CONTROL AVANZADO I
2011
W U B
A
Utilizando el principio de dualidad y la teora de control ptimo podemos disear un observador, denominado Filtro de Kalmann-Bucy, que minimiza el efecto del ruido en las variables de estado estimadas. El sistema dual del anterior es:
= A.Z + C .S Z
y el funcional costo a minimizar es:
donde Qr y Rr son matrices simtricas definidas positivas que sirven de pesos para el ruido en los estados (W) y en la salida (V) respectivamente. Puede demostrarse que dichas matrices Qr y Rr corresponden a las matrices de covarianza de las seales de ruido W y V. La realimentacin obtenida a travs de Ricatti para este sistema dual es:
S = K 0 .Z
Las matrices G y F del observador completo a construir son entonces
G = K 0
F = A G.C
Trabajo Prctico 6
Pg. 3 de 9
CONTROL AVANZADO I
2011
y para el clculo de la matriz G del filtro de Kalmann: [Ko,Po,Lo]=lqr(A,C,Qr,Rr) G = Ko donde Qr y Rr deben calcularse como las matrices de covarianza de las seales de ruido W y V, para ello se utiliza la macro cov de MATLAB. La misma se describe a continuacin: COV Covariance matrix. COV(X), if X is a vector, returns the variance. For matrices, where each row is an observation, and each column a variable, COV(X) is the covariance matrix. .....
Trabajo Prctico 6
Pg. 4 de 9
CONTROL AVANZADO I
2011
3.1.
Para observar los efectos del control ptimo se utilizar el modelo en variables de estados del sistema de alineacin magntica ya conocido. El archivo alinmagLQR.mdl contiene el modelo del sistema al que se le ha aplicado una realimentacin de estados. A continuacin se muestra dicho modelo:
Notas respecto del modelo anterior: 1- El modelo necesita que las variables siguientes se encuentren cargadas en el espacio de trabajo en Matlab: a, bu, bp,cx Matrices del sistema continuo a lazo abierto X0 Vector de condiciones iniciales del vector de estados X k Matriz de realimentacin de estados 2- Los siguientes parmetros se encuentran ajustados: Tiempo total de simulacin: 0.04 segundos, Tiempo de muestreo en bloques de salida To Workspace: 0.00005 segundos. Estos ajustes provocan que las variables de salida evot, evou y evox generadas en cada simulacin sean de dimensiones 801x1.
3.1.1) Cargar en Matlab las matrices del sistema a lazo abierto a partir del archivo alinmag.mat. 3.1.2) Calcular la matriz de realimentacin K de modo de optimizar los funcionales siguientes:
a)
J 1 = x 2 dt
0
b)
J 2 = 10 x 2 dt
0
c)
J 3 = 100 x 2 dt
0
d)
J 4 = 1000 x 2 dt
0
Trabajo Prctico 6
Pg. 5 de 9
CONTROL AVANZADO I
2011
La variable x a optimizar que aparece en los funcionales anteriores es la primera variable de estado del vector X, y se corresponde con la posicin del rotor. Adoptar R=1e-5.
[ INSERTAR AQU LAS GRAFICA DE LA VARIABLE u] [ INSERTAR AQU LAS GRAFICA DE LA VARIABLE x]
Trabajo Prctico 6
Pg. 6 de 9
CONTROL AVANZADO I
2011
3.2.
Observador ptimo
El objeto del filtro de Kalmann es el de reconstruir el vector de estados del sistema cuando el mismo se ve afectado por seales ruidosas. Para observar el funcionamiento de este tipo especial de observador se utilizar el sistema del motor de CC pero con el agregado de ruido en las variables de estado y en la salida. Al pie de esta pgina se muestra el DB correspondiente al motor de CC, con una realimentacin de estados implementada a travs de un observador y con seales de ruido sumadas en las variables de estado y la salida. El archivo TP6kal.m contiene un script con comandos MATLAB que crea las matrices del sistema a lazo cerrado y calcula dos observadores uno clsico y un filtro de Kalmann. Luego simula el sistema a lazo cerrado utilizando ambos observadores. Realizar las siguientes tareas: 3.2.1) Ejecutar el archivo TP5kal.m , interpretar los resultados obtenidos y extraer conclusiones.
ruido_I
Mux Mux
K Bt K Bu Sum6 K A 1/s X
ruido_y
K Cw Sum4
Trabajo Prctico 6
Pg. 7 de 9
CONTROL AVANZADO I
2011
4. Apndice
4.1.
% % % % %
Archivo TP5kal.m
CONTROL AVANZADO I Trabajo Prctico 6 Control ptimo en sistema continuos Filtro de Kalmann
% Archivo TP6kal.m
% Construccin de las matrices del motor disp('Construyendo matrices y sistemas ...') a=[ -65 -25 ; 25 -2 ]; bu=[ 50 ; 0 ]; cw=[ 0 1 ]; % Construccin de matrices del sistema ampliado % y clculo de realimentacin aamp=[ a zeros(2,1) ; -cw 0 ]; bamp=[ bu ; 0 ]; Ki=acker(aamp,bamp,[-150 -150 -150]); K=Ki(1,1:2); ki=-Ki(1,3); % Clculo del observador completo tradicional autoOBS=[ -500 -500 ]; aux=acker(a',cw',autoOBS); g1=aux'; f1=a-g1*cw; % Construccin de las seales de ruido Ww=100*rand(1501,1)-50*ones(1501,1); Wi=25*rand(1501,1)-12.5*ones(1501,1); W=[Ww Wi]; V=20*rand(1501,1)-10*ones(1501,1); % Clculo del observador ptimo - Filtro de Kalmann Qr=cov(W); Rr=cov(V); aux=lqr(a',cw',Qr,Rr); g2=aux'; f2=a-g2*cw; % Construccin de A1=[a bu*ki -bu*K B1=[1 0 0 0 ; 0 1 C1=[cw 0 0 0 ]; D1=[0 0 0 1 ]; A2=[a bu*ki -bu*K B2=[1 0 0 0 ; 0 1 C2=[cw 0 0 0 ]; D2=[0 0 0 1 ]; matrices para simulacin ; -cw 0 0 0 ; g1*cw bu*ki f1-bu*K ]; 0 0 ; 0 0 1 -1 ; zeros(2,3) g1 ];
% Construccin de los sistemas a lazo cerrado sisLC1=ss(A1,B1,C1,D1); sisLC2=ss(A2,B2,C2,D2); % Construccin de la matriz de entradas y el vector tiempo Ref=50*ones(1501,1); t=0:0.0002:0.3; U=[ W Ref V ]; % Simulaciones disp('Ejecutando simulaciones ...')
Trabajo Prctico 6
Pg. 8 de 9
CONTROL AVANZADO I
[y1,tx,X1]=lsim(sisLC1,U,t); [y2,tx,X2]=lsim(sisLC2,U,t); % Grficas de w con observador general Fig2=figure; set(Fig2,'Name','Motor CC con filtro de Kalmann') subplot(1,2,1);plot(t,X1(:,2),'-r',t,X1(:,5),'-g') axis([0 0.3 0 60]) legend('w real','w estim',0) xlabel('Tiempo') ylabel('Velocidad') title('Aplicacin de un observador general') % Grficas de w con filtro de Kalmann subplot(1,2,2);plot(t,X2(:,2),'-r',t,X2(:,5),'-g') axis([0 0.3 0 60]) legend('w real','w estim',0) xlabel('Tiempo') ylabel('Velocidad') title('Aplicacin de un filtro de Kalmann')
2011
Trabajo Prctico 6
Pg. 9 de 9