Este documento presenta un modelo matemático de una caldera de vapor con 5 variables de estado. Se pide realizar varias tareas relacionadas con el análisis y control del sistema, incluyendo obtener la matriz de transferencia, analizar la controlabilidad y observabilidad, diseñar controladores por realimentación de estado y de salida, y diseñar un controlador óptimo.
1. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2006-7
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
Tarea 3. Control de una caldera de vapor (entrega 12-12-06)
Una caldera de vapor tiene el esquema físico de la figura
El modelo obtenido en tiempo continuo es:
A=[ 0 0 0 0 0
0 -0.0078 0.0018 -0.0158 0.0009
0 0.0015 -0.0041 0.1822 -0.0043
0 0.0156 -0.1726 -0.4228 0.0443
0 -0.0008 0.0039 0.0378 -0.0111]
C=[ 0.0003 -20.1392 2.4214 -20.0552 1.1660
0.0329 0.0002 0 0.0020 0 ]
B=[ 0.0311 0.0060 0.0001 -0.0086
-20.1130 0.3369 -0.0422 0.9691
1.9742 0.4747 -0.0493 -1.3183
19.9838 -0.3916 0.0398 1.6444
-1.0565 -0.4651 0.0585 0.1533]
D=[ 0]
Entradas=[flujo-fuel flujo-agua flujo-gases flujo-vapor];
Salidas=[ presión-vapor nivel-agua];
observándose que la quinta variable de estado es fundamental para mantener la caldera en
equilibrio, aunque no se puede medir.
Por lo tanto, el objetivo de control serán las variables:
v. controladas=[ presión-vapor nivel-agua x5];
Las tres primeras variables serán manipuladas y el flujo de vapor se considerará que varía
en escalones.
2. Departamento de Ingeniería de Sistemas y Automática
Universidad Politécnica de Valencia
INGENIERÍA DE CONTROL I
2006-7
__________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
SE PIDE:
1. Obtener la matriz de transferencia, los polos y los ceros de transmisión
2. Evaluar la relevancia de cada una de estas tres entradas y dos salidas
3. Analizar el posible emparejamiento de variables manipuladas y controladas:
presión/fuel; nivel/agua; x5/gases.
4. Realizar el desacoplamiento de los tres pares de señales
a. Por realimentación del estado
b. Con una prealimentación dinámica
c. Es seguro el desacoplamiento?
5. Diseñar un control por realimentación del estado para obtener polos en torno a -0.5.
6. Diseñar un sensor virtual para las variables de estado no medibles (3).
7. Diseñar un control por realimentación de la salida (con observador) de forma que se
asegure un valor constante en la variable x5.
7. Diseñar un sensor virtual para las variaciones estacionarias del caudal de flujo,
realizando una compensación por prealimentación.
9. Diseñar un control óptimo cuyo índice pondera:
salidas:Qy = [.001 0 0; 0 10 0;0 0 1]; Control: R = [1 0 0 ; 0 1 0;0 0 .2 ];
10. Repetir el diseño por realimentación del estado para conseguir los mismos polos que en
el diseño óptimo
3. __________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
Solución
%Tarea 3. Curso 2006/7. Control de una caldera de vapor
clear;
clc;
%Definición de las matrices del sistema inicial
A=[0 0 0 0 0;0 -0.0078 0.0018 -0.0158 0-0009;
0 0.0078 -0.0041 0.1822 -0.0043;
0 0.0156 -0.1726 -0.4228 0.0443;
0 -0.0008 0.0039 0.0378 -0.0111]
B=[0.0311 0.0060 0.0001 -0.0086;-20.1130 0.3369 -0.0422 0.9691;
1.9742 0.4747 -0.0493 -1.3183;
19.9838 -0.3916 0.0398 1.6444;
-1.0565 -0.4651 0.0585 0.1533]
C=[0.0003 -20.1392 2.4214 -20.0552 1.1660;
0.0329 0.0002 0 0.0020 0]
D=zeros(2,4)
%1. Obtener la matriz de transferencia, los polos y los ceros de
transmisión
%Representación interna:
S=ss(A,B,C,D);
%Matriz de transferencia:
MT=tf(S);
%en forma factorizada:
G=zpk(MT);
%donde se ven los polos, y también, como polos complejos:
polos=eig(A);
% Los ceros de transmisión.
% La realización es mínima:
rank(ctrb(A,B));
%=5
rank(obsv(A,C));
%=5
% luego
ceros=tzero(S);
% no tiene
% 2. Evaluar la relevancia de cada una de estas tres entradas y dos
salidas
% El sistema es controlable y observable. Veamos para cada variable.
% controlabilidad u1
W1=ctrb(A,B(:,1));
rank(W1);
% controlabilidad u2
W2=ctrb(A,B(:,2));
4. __________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
rank(W2);
% controlabilidad u3
W3=ctrb(A,B(:,3));
rank(W3);
% controlabilidad u4
W4=ctrb(A,B(:,4));
rank(W4);
% Todos los rangos son 5. Todas las entradas son cíclicas.
% Para ver la relevancia podemos calcular el "tamaño"
% de las matrices Wi.
% Una medida sería el valor singular máximo. De momento, vamos a
% calcular los determinantes:
det(W1);det(W2);det(W3);det(W4);
% El mayor resulta ser el correspondiente a u1, y el menor el de u3.
% Intuimos que la primera entrada controla mejor el sistema.
% Igualmente:
sm1=svd(W1); sm1(1)
% es mucho mayor que
sm4=svd(W4); sm4(1)
% Veamos con las salidas:
% observabilidad y1
O1=obsv(A,C(1,:));
rank(O1);
% observabilidad y2
O2=obsv(A,C(2,:));
rank(O2);
% Siendo el sistema observable con ambas salidas.
% Procediendo como antes
det(O1);
%=0.0018, mientras que:
det(O2);
% es despreciable. (Si calculamos los rangos anteriores
% con una tolerancia de 0.1, queda claro).
%3. Analizar el posible emparejamiento de variables manipuladas y
%controladas: presión/fuel; nivel/agua; x5/gases.
% Consideremos un nuevo sistema entrada/salida con 3 entradas y 3
%salidas, (con la misma A, eliminando la cuarta entrada y añadiendo como
%salida x5):
Ba=[0.0311 0.0060 0.0001;-20.1130 0.3369 -0.0422;
1.9742 0.4747 -0.0493;19.9838 -0.3916 0.0398;
-1.0565 -0.4651 0.0585];
Ca=[0.0003 -20.1392 2.4214 -20.0552 1.1660;0.0329 0.0002 0 0.0020 0;
0 0 0 0 1];
Da=zeros(3,3);
Sa=ss(A,Ba,Ca,Da);
% cuya matriz de transferencia será:
Ga=zpk(tf(Sa));
5. __________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
% Observamos que este sistema tiene un integrador, por lo tanto,
% si calculamos la matriz de ganancias estáticas nos resultarán términos
%infinitos.
% Podemos calcular la matriz de ganancias a distintas frecuencias y
%analizar el posible emparejamiento para todas ellas.
% Por ejemplo, para w=0.1:
Ga1=abs(evalfr(Sa,.1*i));
rga1=Ga1.*inv(Ga1);
% Probamos para varias frecuencias. La técnica del RGA no nos da una
indicación clara.
%
% Analicemos las f.d.t. propuestas:
%Presión/fuel:
Ga(1,1)
% nivel/agua
Ga(2,2)
% x5/gases
Ga(3,3)
% Todas ellas son inestables y de difícil control, pero las salidas
% responden suficientemente a las entradas.
%4. Realizar el desacoplamiento de los tres pares de señales
%a. Por realimentación del estado
% Hacemos una transformación del estado para tener como primeras
%variables de estado las tres salidas. Tomamos, por ejemplo:
T=[Ca;0 0 1 0 0;0 0 0 1 0];
a=T*A*inv(T);
b=T*Ba;
c=Ca*inv(T);
d=Da;
%Definimos
a11 = a(1:3,1:3);
a12 = a(1:3,4:5);
a21 = a(4:5,1:3);
a22 = a(4:5,4:5);
b1 = b(1:3,:);
b2 = b(4:5,:);
% Diseñamos: u=K.x + F.r, resultando
% x1'=(a11+b1k1)x1 + (a12+b1k2)x2+b1Fr;
% x2'=(a21+b2k1)x1 + (a22+b2k2)x2+b2Fr;
% y elegimos:
F=inv(b1);
k2=-F*a12;
k1=-F*a11;
% El desacoplamiento no es válido, pues la parte restante,
% a22+b2k2, es inestable.
6. __________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
% Desacoplamiento por PREALIMENTACIÓN DINÁMICA
%También en este caso tendremos problemas, puesto que el sistema es
%inestable y de fase no mínima.
% Esto nos pone de manifiesto el fuerte acoplamiento entre todas las
% variables.
%5. Diseñar un control por realimentación del estado para obtener polos
%en torno a -0.5 (hay tres variables de control).
p=[-0.5 -0.5 -0.5 -0.49 -0.51];
% Calculamos el control
K = place(A,Ba,p)
% Verificamos el resultado
eig(A-Ba*K);
% Quedando el sistema con entradas "ficticias"
Sc = ss(A-Ba*K,Ba,Ca,Da);
%6. Diseñar un sensor virtual para las variables de estado no medibles
%(3).
% A diferencia del punto 4, tenemos solamente dos variables de salida,
%que vamos a tomar como primeras variables de estado
T1=[C;zeros(3,2) eye(3)]
% Matriz de transformacion, que comprobamos es de rango completo:
% rank(T1)=5
Ar=T1*A*inv(T1)
Br=T1*Ba
Dr=zeros(2,3)
Cr=C*inv(T1)
Sr=ss(Ar,Br,Cr,Dr)
% Cuya representación detallada es:
Ar11=Ar(1:2,1:2);
Ar12=Ar(1:2,3:5);
Ar21=Ar(3:5,1:2);
Ar22=Ar(3:5,3:5);
Br1=Br(1:2,:);
Br2=Br(3:5,:);
Cr1=Cr(:,1:2);
Cr2=Cr(:,3:5);
% Si fijamos los polos del observador, más rápidos
po=[-2 -2.5 -3];
% Calculamos el observador reducido
Ko=place(Ar22', Ar12', po)'
Ao=[Ar22-Ko*Ar12]
Bo=[Br2-Ko*Br1 Ar21-Ko*Ar11]
Co=[eye(3)]
Do=[eye(3) Ko]
7. __________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
%7. Diseñar un control por realimentación de la salida (con observador)
% de forma que se asegure un valor constante en la variable x5.
% Para ello, debemos introducir un integrador en el observador de la
% variable x5. Según hemos elegido la transformación T1, esta variable es
% la tercera de las observadas.
% Ampliamos el sistema Sr=ss(Ar,Br,Cr,Dr) con este integrador y
%diseñamos, como antes, una realimentación del estado (con 6 variables de
%estado):
Ai=[Ar zeros(5,1); 0 0 0 0 -1 0];
Bi=[Br; 0 0 0];
Ci=[Cr zeros(2,1); 0 0 0 0 0 1];
Di=zeros(3,3);
% Diseñamos el control
pi=[-0.5 -0.5 -0.5 -0.49 -0.51 -0.501];
% Calculamos el control
Kt = place(Ai,Bi,pi)
% El sistema realimentado es:
Sci=ss(Ai-Bi*Kt,Bi,Ci,Di)
% cuya fdt, para la variable x5, es:
g5=tf(ss(Ai-Bi*Kt,Bi,[0 0 0 0 1 0],zeros(1,3));
% Comprobando que su valor estacionario es nulo:
dcgain(g5);
%8. Diseñar un sensor virtual para las variaciones estacionarias del
%caudal de flujo, realizando una compensación por prealimentación.
% En este caso generaremos la señal de caudal de flujo como salida
% de un integrador adicional de forma que, en B, u4 desaparecerá como
%señal de entrada, siendo x6=u4.
B4=B(:,4);
% Reestructuramos el modelo de estado:
Ap=[A B4;zeros(1,6)];
Bp=[Ba;zeros(1,3)];
Cp=[C zeros(2,1)];
% que observamos no es controlable (la sexta variable de estado, u4, no
%es controlable, pero si observable:
rank(obsv(Ap,Cp)); %=6
% Diseñaremos, como antes, un observador reducido para la sexta variable
%de estado (además de las 3 anteriores, si solo hubiera acceso a dos
%variables de salida), obteniendo u^4.
% La compensación por prealimentación consistirá en compensar con las
%otras tres entradas el efecto de esta nueva variable estimada, al menos
%en régimen estacionario.
%9. Diseñar un control óptimo cuyo índice pondera:
% Salidas:Qy = [.001 0 0; 0 10 0;0 0 1];
% Control: R = [1 0 0 ; 0 1 0;0 0 .2 ];
8. __________________________________________________________________________________________________
P. Albertos. Dept. Ingeniería de Sistemas y Automática. UPV. Ext.: 79570 e-mail pedro@aii.upv.es
% Partimos del sistema inicial, Sa, con tres entradas de control y tres
% salidas
% La ponderación del estado sería:
Q=Ca'*Qy*Ca;
% El control óptimo sería:
Km=lqr(A,Ba,Q,R);
%cuyos polos están en:
pm=eig(A-Ba*K)%={-0.0008,-0.0737,-1.4203,-1.1367+1.2341i,-1.1367-1.2341i}
%10. Repetir el diseño por realimentación del estado para conseguir los
%mismos polos que en el diseño óptimo
KO=place(A,Ba,pm);
% Observando que, obviamente, aunque los polos son los mismos, las
% realimentaciones son muy distintas: KO =/= Km.
% También podemos ver que las dinámicas entrada/salida de ambos
%sistemas, pese a tener los mismos polos, son muy distintas.