Post on 22-Jul-2022
'··
,
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
DISEÑO DE SISTEMAS DE CONTROL ÓPTIMO Y ADAPTIVO MULTIVARIABLES PARA UN REACTOR
, ,
QUIMICO DE DESCOMPOSICION DE PRODUCTOS
INFORME DE SUFICIENCIA
PARA OPTAR EL TÍTULO PROFESIONAL DE:
INGENIERO ELECTRÓNICO
PRESENTADO POR:
JAVIER ALFREDO HERRERA MORALES
PROMOCIÓN 1990-1
LIMA-PERÚ 2002
A mis Padres
A mi Esposa
A mis Hijos
DISEÑO DE SISTEMAS DE CONTROL ÓPTIMO Y
ADAPTIVO MULTIVARIABLES PARA UN REACTOR , ,
QUIMICO DE DESCOMPOSICION DE PRODUCTOS
SUMARIO
El presente estudio trata sobre el control multivariable de un reactor químico
empleando sistemas de control óptimo y adaptivo multivariables. El reactor
químico es del tipo enchaquetado y se usa para la descomposición de un pro
ducto A en otro producto B. El objetivo de control es controlar simultáneamente
la temperatura interior del reactor y la concentración del producto B a la salida
del reactor, utilizando como fuerzas de control el flujo del producto líquido A
que ingresa al reactor, y el fluido de refrigeración que ingresa a la chaqueta del
reactor. Por consiguiente, el reactor es un proceso multivariable cuadrado por
poseer dos entradas y dos salidas, y posee un modelo dinámico no lineal.
El sistema de control óptimo comprende un modelo lineal multivariable
del proceso, una ley de control óptima cuadrática multivariable discreta y un
observador de estados óptimo ( también discreto y multivariable). El sistema de
control adaptivo, además del modelo lineal del proceso, la ley de control óptima
y el observador de estados multivariableas, cuenta también con un estimador de
parámetros que emplea la técnica de los mínimos cuadrados discreta.
Los estudios de simulación en los sistemas de control diseñados van a com
probar que las fuerzas de control: flujo del producto líquido A y el fluido de
refrigeración, logran estabilizar simultáneamente, cumpliendo por supuesto las
especificaciones de diseño, la temperatura interior del reactor y la concentración
del producto B a la salida del reactor, en presencia de cambios tipo escalón de
las señales de referencia o "set-points".
·'
t
1
ÍNDICE
PROLOGO
CAPÍTULO!
MODELADO DEL REACTOR QUÍMICO MUTIV ARIABLE
1.1
1.2
1.3
1.4
Descripción del Proceso de Reacción
La Ecuación de Estado No Lineal del Sistema
Respuesta a Lazo Abierto del Proceso
Linealización del Sistema
CAPÍTULO II
LA LEY DE CONTROL ÓPTIMA MUTIV ARIABLE
2.1 El problema del Control Óptimo Cuadrático No Estacionario
2.2 El problema del Control Óptimo Cuadrático Estacionario
2.3 El Regulador Óptimo Proporcional
2.4 El Regulador Óptimo Proporcional - Integral
2.5 El Regulador Óptimo Multivariable Proporcional - Integral
CAPÍTULO ID
EL OBSERVADOR DE ESTADOS MUTIV ARIABLE
3.] El Observador Óptimo Cuadrático SISO
3.2 El Observador Óptimo Cuadrático Multivariable
CAPÍTULO IV
CONTROL ÓPTIMO DEL REACTOR
4.1 El Procedimiento de Diseño
4.2 Control Óptimo Cuadrático Mutivariable del Sistema
1
2
2
6
7
8
13
13
16
17
19
21
24
24
26
28
28
28
l. 1 ¡,
' '
4.3 Simulación del Sistema de Control Óptimo
CAPÍTULO V
CONTROL ADAPTIVO DEL REACTOR
5 .1 Control Adaptivo con Autosintonización
5 .2 Estimación de los Parámetros del Reactor
5 .3 Control Adaptivo del Proceso de Reactor
CONCLUSIONES Y RECOMENDACIONES
ANEXO: LISTADO DE PROGRAMAS
BIBLIOGRAFIA
VI
31
35
35
36
39
41
43
61
PRÓLOGO
El presente estudio se ocupa del diseño y la simulación de sistemas de
control óptimo y adaptivo multivariables, aplicados a un reactor químico del tipo
enchaquetado, el cual se emplea para la descomposición de un producto A en otro
producto B. El reactor posee un modelo dinámico no lineal con dos entradas y dos
salidas. El objetivo de control es regular simultáneamente las salidas utilizando
como fuerzas de control las entradas. Tales fuerzas de control van a ser generadas
por controladores óptimo y adaptivo. Este trabajo comprende ocho (8) capítulos:
El capítulo I desarrolla el modelo dinámico del reactor químico multivaria
ble y analiza sus respuestas al escalón.
El capítulo 11 describe la ley de control óptima cuadrática multivariable, la
cual se deduce a partir de la configuración de un regulador multivariable discreto
del tipo proporcional-integral.
El capítulo 111 se ocupa del diseño del observador óptimo multivariable
discreto, el cual se emplea para estimar los estados del sistema.
El capítulo IV utiliza los resultados de los capítulos II y III para diseñar
y simular el sistema de control óptimo multivariable del reactor químico.
El capítulo V aborda el problema de la identificación de los parámetros del
proceso, empleando para ello el método de los mínimos cuadrados mejorado.
El capítulo VI emplea los resultados de los capítulos 11, III y V para
diseñar y simular el sistema de control adaptivo multivariable del reactor químico.
Los resultados del trabajo realizado se discuten en la parte CONCLU
SIONES. Además se sugiere posibles trabajos futuros.
En la última parte de este estudio se presenta el listado de todos los pro
gramas fuentes empleados. Tales programas fueron escritos en MATLAB.
1.1
CAPÍTULO I
MODELADO DEL REACTOR QUÍMICO MULTIVARIABLE
Descripción del Proceso de Reacción
Considere un tanque enchaquetado en el cual ingresa un fluido liquido que
contiene el producto A. Este liquido se revuelve dentro del tanque mediante un
agitador para formar una mezcla perfecta, tal como se muestra en la figura l. l.
El producto A en esta condición va a experimentar una reacción irreversible
exotérmica. Debido a que este tipo de reacción libera calor, es entonces necesario
que la temperatura en el interior del tanque sea controlada por medio del agua de
refrigeración que circula en la chaqueta que rodea al reactor. La reacción química
del producto o componente A dentro del tanque para formar el componente B se
formula como:
A ----+ B
Esta reacción se realiza a una velocidad específica K en h- 1, cuya expresión se da
más adelante. El modelo dinámico del reactor ha sido extraído de la referencia
(1].
Las variables y parámetros que intervienen en el proceso de reacción ( ver
figura 1.1) son:
1) A: producto que ingresa al reactor.
2) B: producto resultante de la transformación del producto A dentro del
tanque.
3) Cao: concentración del producto A que ingresa al reactor.
4) 710 : temperatura del liquido que contiene el producto A.
5) Fe: Flujo del liquido que pasa a través del reactor. Cuando el flujo ingresa al
reactor, contiene solamente el producto A. Cuando el flujo sale del reactor,
contiene los productos A y B. Este flujo es la alimentación al reactor.
6) Te: temperatura del liquido que sale del reactor.
3
Producto A
Reactor
T¡
Chaqueta
Refrigerante
Fe Tco Productos A y B
Ca C b F¡ T¡
Figura 1.1: Reactor químico enchaquetado.
7) Cb: Concentración del producto B a la salida del reactor y en el interior.
8) Ca: Concentración del producto A. Siempre debe de cumplirse la desigual
dad: Ca < Cao - En el estado estacionario se tiene: Ca + Cb = Cao -
9) Tea: temperatura del agua de refrigeración que ingresa a la chaqueta.
10) Te: temperatura del agua de refrigeración en el interior y en la salida de la
la chaqueta.
11) Fe: flujo del agua de refrigeración.
Las concentraciones se dan en kmol/m3, los flujos en m3 /h y las temperaturas en
grados Celcius ºC.
Las ecuaciones diferenciales que describen la dinámica del sistema se pueden
obtener mediante la aplicación de las leyes de conservación de la masa y de la
energía. Para hacer esto, se supone que no existe liquido acumulado en el reactor,
que las concentraciones y temperaturas son homogéneas y que las pérdidas de
energía hacia el exterior son despreciables.
Las ecuaciones de balance de masa son:
d(Ve Ca) dt
d(Ve Cb) dt
(1.1)
(1.2)
4
donde: Fe Cao es el flujo del componente A en kmol/h que ingresa al sistema,
Fe Ca es el flujo de A que sale del sistema, Ve es el volumen del liquido en el
sistema, -Ve kCa es la velocidad de formación de A ( el signo negativo indica que
el componente A se está consumiendo), d(V�tCa) es el flujo de A (en kmol/h) en
transición, FeCb es el flujo de B que sale del sistema, + Ve kCb es la velocidad de
formación de B a partir de A (por esta razón posee signo positivo) y d(V�tca) es el
flujo de B ( en kmol/h) en transición.
Las ecuaciones de balance de energía se formulan como:
d(Ve Pe CpeTe)
dt d(¼ Pe Cp eTe)
dt
(1.3)
(1.4)
donde: Fe Pe CpeTeo es el flujo calorífico entregado al sistema, FepeC
peTe es el
flujo calorífico que sale del sistema, Q es el flujo calorífico absorbido por el agua
de refrigeración, Ve kCaH es flujo calorífico producido en la reacción debido a
la entalpía H de la reacción, d(Ve Pe CpeTe)/dt es el flujo calorífico en transición
(acumulado) en el interior del tanque, FePeCpe(Teo - Te) es el flujo calorífico
absorbido en el sistema (refrigeración) y d(¼peCpeTe)/dt es el flujo calorífico en
transición (acumulado) en la chaqueta del tanque. Todos los flujos caloríficos
están en kJ /h, mientras que la entalpía H posee unidades de kJ /kmol.
El balance de energía en el sistema asume que la temperatura Te es uniforme
en toda la chaqueta. La transferencia de calor entre el proceso de reacción ( que
se realiza a la temperatura Te) y el agua de refrigeración ( que se realiza a la
temperatura Te), se describe mediante la relación:
Q = US(Te -Te) (1.5)
donde U es el coeficiente global de transmisión de calor en kJ / (h m2 K), S es
la superficie efectiva de transferencia de calor en m2. Tener en cuenta que en
general la superficie S puede variar debido a los flujos que ingresan al reactor y
cuando algunas superficies dentro del tanque no están completamente cubiertas
todo el tiempo con la masa liquida de la reacción.
La velocidad de reacción k en h-1 tiene la forma:
(1.6)
5
donde Ea es la energía de activación en kJ /kmol y R es la constante universal de
los gases.
El objetivo de control es estabilizar la temperatura Te, así como también la
concentración Cb a la salida del reactor, cumpliendo determinadas especificaciones
de diseño, tales como tiempo de estabilización, máximo sobrepico de las respuestas
controladas y error en estado estable de las respuestas con respecto a las señales
de referencia o "set points". Las fuerzas de control para lograr este objetivo son
el flujo Fe del liquido y el flujo de refrigeración Fe. Tales fuerzas de control van
a ser generadas por los sistemas de control óptimo (primer caso) y adaptivo con
autosintonización (segundo caso).
El proceso en estudio es multivariable porque posee dos entradas y dos
salidas. La tabla 1.1 muestra los valores nominales de los parámetros del proceso.
Tabla 1.1: Parámetros nominales del reactor químico enchaquetado.
Símbolo Descripción Valor Unidades
O:'. Coeficiente de la velocidad de reacción 29.063 h-1
R Constante de los gases ideales 8.314 kJ/K kmol
Ea Energía de activación 2100 kJ/kmol
H Entalpía de reacción 2100 kJ/kmol
u Coeficiente global de transmisión de calor 4300 kJ/(h m2 K)
Pe Densidad del liquido 800 kg/m3
Pe Densidad del refrigerante 1000 kg/m3
Cpe Calor específico del líquido 3 kJ/(kgK)
Cp e Calor específico del refrigerante 4.1868 kJ/(kgK)
s Superficie efectiva de intercambio de calor 24 m2
½ Volumen del tanque 24 m3
Vc Volumen de la chaqueta 8 m3
110 Temperatura del liquido entrante 34 ºC
Teo Temperatura del refrigerante entrante 20 ºC
Cao: Concentración del liquido de entrada 8 kmol/m3
6
El modelo dinámico del proceso de reacción en estudio es del tipo cuadrado.
Es decir, en dicho proceso, el número de entradas es igual al número de salidas. Un
sistema puede ser controlado, siempre que el número de entradas independientes
al sistema sea mayor o igual que el número de salidas. Cuando el número de
salidas es menor que el número de entradas, siempre es posible construir un
sistema cuadrado que sea controlable. Basta con crear salidas ficticias para que
el número de salidas iguale al número de entradas.
Por el contrario, si el número de entradas del sistema es menor que el
número de salidas ( estos sistemas se denominan subactuados), entonces tales sis
tema en general son incontrolables. Como en esta situación no está permitido
crear entradas ficticias, entonces las señales de control necesarias para formar
un sistema cuadrado, se deben generar obedeciendo a estrategias de control ade
cuadas al problema en cuestión. Tales señales de control creadas pueden actuar,
conforme a lo establecido en el diseño, simultáneamente o después que actúen las
señales de control originales.
1.2 La Ecuación de Estado No Lineal del Sistema
Empleando la siguiente asignación de variables de estado y de entradas de
control:
X1 Ca
X2 cb
[ :: l [ � l [ :: l [ :: l x= - u= - y=X3 Te
X4 Te
(1.7)
entonces las ecuaciones (1.1), (1.2), (1.3) y (1.4) toman la forma:
±1 -
±2 -
±3 -
±4 -
donde:
ºªº 1 ( 8) Ji (x, u) = -u1 - K x1 - -u1x1 l.
½ ½ 1
h(x, u) = K x1 -½
u1x2 (1.9)
Teo 1 US H ( ) fa(x, u)= -U1 - -U1X3 -
v; e (x3 - X4) + e Kx1 1.10 ½ ½ i Pe pi Pt pi
Teo 1 US f4(X, u) = V, U2 - V, U2X4 + V, C
(X3 - X4) (1.11) e e e Pe pe
Ea
K = ae - RC272+0:3> (1.12)
7
Notar que las ecuaciones (1.8)-(1.11) se pueden escribir en forma compacta como:
±1 fi(x, u)
x= ±2
= f(x, u)= h(x, u)
(1.13) ±a fa(x, u)
:i:4 f4(x, u)
mientras que la ecuación de salida viene a ser:
- [ :: l (1.14)
Podemos observar que la ecuación de estado del sistema dada en (1. 13) es
tremendamente no lineal. Para llevar a cabo el proceso de linealización, debemos
determinar el punto de operación del proceso. Este punto de operación muy bien
puede ser su estado estacionario. Es decir, el estado en que todas las variables
en juego toman un valor estacionario. La respuesta a lazo abierto del proceso
permite determinar su estado estacionario, tal como se verifica en la siguiente
sección.
1.3 Respuesta a Lazo Abierto del Proceso
La respuesta a lazo abierto del sistema no lineal formulado por las ecua
ciones compactas (1.13) y (1.14), se obtiene excitando a dicho sistema con dos
señales tipo escalón. Estas señales representan cambios tipo escalón de las en
tradas u1 y u2. El programa encl.m escrito en lenguaje MATLAB [2], determina
la respuesta del reactor a lazo abierto. El listado de este programa se encuentra
en el apéndice LISTADO DE PROGRAMAS de este estudio.
En el programa encl.m, la entrada u1 = F1. es un escalón de 25 m3 /h,
mientras que la entrada u2 = Fe es un escalón de 6 m3 /h. Las condiciones
iniciales impuestas en el programa son: u1 (O) = F1.(0) = 25 m3 /h, u2(0) = Fc(O)
= 6 m3 /h, x1(0) = C0(0) = 1 kmol/m3, x2(0) = Cb(O) = 5 kmol/m3 , xa(O) = Te(O)
= 34 ºC, X4(0) = Tc(O) = 20 ºC.
Los resultados de la simulación se muestran en las figuras 1.2, 1.3, 1.4 y
1.5. De estas figuras podemos extraer los siguientes valores en estado estable de
8
las variables (la barra sobre la variable indica un valor estacionario): x1 = 0.6
kmol/m3' X2 = 7.4 kmol/m3
' X3 = 35.3 ºC, X4 = 32.3 ºC. Como las entradas son
escalones, sus magnitudes son los valores estacionarios. Es decir: u1 = 25 m3 /h
Y U2 = 6 m3/h
1 r------,----,-----.--, ----.-,---�----,----
0.95 ............ � . . . . . . . . . . . . -: ............. .: . . ..... : .............. : ......... . . ..... -
0.9
�0.85'-:::: o E
� o.a e:
cu 00.75
0.7
0.65
············:··············>·············:. .. .'
. . '
. . . .
·····:··············:··············;···· . . . '
. '
. . . . . . . .
. : - ... ...... -
.. -
. . . . - . . . . -
....... �........... . ; . . . . . . . . . . -
10 20
· · · · ·: · ··········· .... ...... . .. -
........... ' .......... . -
30 40
Tiempo en minutos 50 60 70
Figura 1.2: Respuesta al escalón de la concentración C0 •
1.4 Linealización del Sistema
El sistema en estudio, la descripción dinámica del reactor enchaquetado, es
tremendamente no lineal. Con el propósito de emplear algoritmos de control y
de estimación de estados que hacen uso de modelos lineales de la forma:
x=Ax+Bu (1.15)
debemos entonces emplear un procedimiento de linealización. Esto es, un pro
cedimiento que transforme la ecuación de estado (1.13) en la ecuación dada en
(1.15). Con respecto a la ecuación de salida dada en (1.14) no existe problema
alguno dado que tal representación ya es lineal.
El procedimiento de linealización que aplicaremos en este estudio, incluye
el cómputo de dos matrices Jacobianas. Una, para determinar la matriz A y otra,
7.5r----,,-----,----.----, ---..--, ---�7------r7-----,
7 ... "
§ 6.5o E
B 6 .
5.5 ...
······················ ... ....... . . .
··········. ·············:
·-
5 ....._ ___ ....._ ___ _,__ ___ _._ ___ _._ ___ __,_; ___ __J,; ___ __J
10 20 30 40 Tiempo en minutos
50 60 70
Figura 1.3: Respuesta al escalón de la concentración Cb.
35.5�---...-,------r-----,�---�---�---�---�
351-
34.5 t-
CI) ::, :§ 34 ,_ Q)
(.)
CI)
.g 33.5 �
a> 33 · .. ,
32.5
32 ........ ..
10
... : .............. :............ . .................... .
20
··········:··············:··············:····
;
30 40 Tiempo en minutos
; 50
; 60
.. -
··-
..... -
. . . . . . . -
70
Figura 1.4: Respuesta al escalón de la temperatura Te.
9
10
para computar la matriz B. estas matrices Jacobianas se computan para el punto
de operación del sistema ( determinados gracias a la respuesta a lazo abierto del
sistema):
Xi 0.6
X2 7.4
[ :: l [ � l X= - U= - (1.16) X3 35.3
X4 32.3
donde todos los valores poseen dimensiones apropiadas. El sistema linealizado
posee la forma dada en (1.13), con:
!liJ.. !liJ.. 8x1 8x2
!th._ !th._
A= 8x1 8x2
QÍ:J_ QÍ:J_ 8x1 8x2
!li4. !li4. 8x1 8x2
34 1
32 �-· . . . . . . . . . . . . . .
!liJ.. 8x3
!th._ 8x3
QÍ:J_ 8x3
!li4. 8x3
. .........
30 .......................... , .. (/)
·o
!liJ.. 8x4
!th._ 8x4
B=
QÍ:J_ 8x4
!li4. 8x4
............................
!liJ.. !liJ.. 8u1 8u2
!th._ !th._ 8u1 8u2
QÍ:J_ QÍ:J_ 8u1 8u2
fliA. !li4. 8u1 8u2
·················
.. -
u2a . ·:· ............ ·:- ............ ·:· ............. ;- ..... .................... -(/) o
. . . . . .
0)26 e: ......... .:- ............. :, ............. :- ............. ; .......... .. -
� 24
· · ..... , ... ....... .
22'-.... · · .. · · · .... · · · · · .......... · .. · · · · .. .
10 20
; ; 30 40
Tiempo en minutos
. .
' 50 60
Figura 1.5: Respuesta al escalón de la temperatura Te.
. . . . -
70
(1.17)
donde:
aj¡
ax¡
afi ax3
ah ax¡
ah ax3
af4ax¡
af4ax3
8fi OU¡
ah au¡
ah au¡
af4 au¡
-
-
-
-
Ea l afi -ae R(272+:z:3) _ -U¡ -=0Ve ax2
-aeEa E R(272+:z:3) ; (272 + X3 )-2
Ea
ae R(272+:z:3) 1 ah -=--171
ax2 \1e
Ea E ae- nc272+:z:3) x1 ¿(272 + x3 )-2
R
Ha - Ea --e R(272+:z:3)
peCpe
af1 = o
ax4
ah =Oax4
1 _ U S Ha _ Ea Ea - --u1 - --- + --e n<212+:z:3>x1 -(272 + x3)-2Ve VepeCpe PeCpe R
-
-
-
-
-
o
us
½PcCpc
1
af4 = 0ax2
af4 1 us .- = --u2-ax4 ½ VcpcCpc
Cao ---xiVe Ve
afi = o
OU2
1 --X2Ve
Teo 1
ah =Oau2
---X3 Ve Ve
ah =0au2
o ah Tco 1 -=---X4 au2 Vc Vc
11
(1.18)
Los valores de los componentes de las matrices J acobianas A y B fueron com-putadas con el programa enc2.m, cuyo listado se muestra en el apéndice LISTADO DE PROGRAMAS. Las matrices resultantes son (se incluye la matriz de salida
12
e por claridad):
-13.8170 o -0.0205 o
A= 12.7753 -1.0417 0.0205 o
11.1784 o -2.8154 1.7917
o o 3.0811 -3.8311
0.3083 o
B= . -0.3083 o
-0.0542 o
o -1.5375
Empleando MATLAB, nuestro proceso en estudio linealizado:
x=Ax+Bu y=Cx+Du
puede ser transformado en su correspondiente representación discreta:
x(k + 1) = Gx(k) + Hu(k)
donde D y D d son matrices cero de la forma:
D = D, = [ � �] Ejecutando el programa enc2.m, es fácil verificar que C = Cd . El comando
MATLAB para realizar la conversión de un sistema continuo a su correspondiente
discreto es:
[G,H,Cd,Dd] = c2dm(A,B,C,D,T,'zoh')
donde T es el tiempo de muestreo y zoh ( "zero-order hold) significa que el proceso
de muestreo está asumiendo una memoria de retención de orden cero .
CAPÍTULO 11
LA LEY DE CONTROL ÓPTIMA MULTIVARIABLE
2.1 El problema del Control Óptimo Cuadrático No Estacionario
El problema del control óptimo cuadrático se puede formular como sigue. Dado un sistema lineal en el dominio discreto de la forma:
x(k + 1) = Gx(k) + Hu(k) x(O) = e (2.1)
se desea determinar una secuencia de señales de control u(O), u(l), ... , u(N) que minimicen una función de costo cuadrática. Un ejemplo de esta función de costo para un proceso de tiempo finito (O< k < N) es:
1 1 N-1
J =
2xT(N)Sx(N) + 2 L [xT(k)Qx(k) + uT(k)Ru(k)] (2.2)
k=O
donde x(k) es el vector de estado de dimensión n y u(k) es el vector de control de dimensión m. Mientras que la matriz real simétrica semidefinida positiva S ( de dimensión n x n) pondera la importancia del estado final x( N), la matriz real simétrica semidefinida positiva Q (de dimensión n x n) pondera la importancia del vector de estado x(k), y la matriz real simétrica definida positiva R (de dimensión m x m) pondera la importancia de la señal de control u(k). Para el reactor químico, m = 2 y n = 4.
Una matriz real es definida positiva cuando todos sus valores propios son positivos. Cuando los valores propios de una matriz real son positivos o cero, entonces la matriz es semidefinida positiva. En general, las matrices R y Q
pueden ser complejas. En este caso la matriz R debe ser hermitiana definida positiva, mientras que la matriz Q debe ser hermitiana semidefinida positiva. Una matriz compleja A es hermitiana cuando (A*)T
= (AT)* = A, donde el asterisco significa la operación conjugada.
El estado inicial del sistema es cualquier vector arbitrario x(O) = c. Si el estado final se fija en un valor x¡, entonces el término ½xT(N)Sx(N) sale
14 de la función de costo y se impone la condición final x(N) = x¡. Si el estadofinal x(N) no es fijo, entonces el término ½xT(N)Sx(N) representa la medida delrendimiento del sistema debido al estado final. La inclusión de este término en la función de costo J representa que nosotros deseamos que el estado x(N) sealo más cercano posible al origen.
El problema de minimización en estudio, consiste en minimizar J ( ecuación (2.2)) cuando está sujeto a la restricción impuesta por la ecuación de estado (2.1), donde k = O, 1, 2, ... , N - 1, y donde la condición inicial del vector de estado es especificada como
x(O) = e (2.3) Empleando los multiplicadores de Lagrange >.1 , . . . , AN, podemos definir una nueva función de costo L como sigue:
L= !xr(N)Sx(N) + ! E1
[xT(k)Qx(k) + uT(k)Ru(k)]2 2
k=O +>.T(k + l)[Gx(k) + Hu(k) - x(k + 1)]+[Gx(k) + Hu(k) - x(k + l)f >.(k + 1) (2.4)
Para minimizar la función L, debemos de derivar parcialmente L con respecto a los vectores x(k), u(k) y >.(k), e igualar a ce�o los resultados que se obtengan. Esdecir:
a L= Qx + cr >. ( k + 1) - >. ( k) = O, k = 1, 2, ... , N - 1 ( 2.5) ax(k)
a:tN)
= Sx(N) - >.(N) = O (2.6) aL
= Ru(k) + HT >.(k + 1) = O, k = 1, 2, ... , N - 1 (2.7) au(k)aL= Gx(k - 1) + Hu(k - 1) - x(k) = O, k = l, 2, ... , N - l (2.8) a>.(k)donde hemos usado las relaciones matriciales conocidas:
a -xTAx=2Axax De (2. 7) obtenemos:
a r A -X Ay= y ax
u(k) = -R- 1 HT>.(k + 1), k = 1,2, ... ,N - 1 (2.9)
Asimismo, de (2.8) obtenemos:
x(k + 1) = Gx(k) + Hu(k), k = 1, 2 , ... , N - 1
Sustituyendo (2.9) en (2.10) resulta:
x( k + l) = Gx( k) - H R-1 HT A( k + l), k = l, 2, ... , N - l
El vector de control óptimo puede ser formulado como:
u(k) = -Kx(k)
15
(2.10)
(2.11)
(2.12 )
donde K ( k) es la matriz de ganancia de realimentación de orden m x n. Asumamos
que A(k) se pueada escribir como:
A(k) = P(k)x(k) (2.13)
donde P(k) es una matriz simétrica de orden n x n. Sustituyendo (2.13) en (2.5)
y despejando convenientemente se tiene:
P(k)x(k) = Qx(k) + cT P(k + l)x(k + 1) (2.14)
Sustituyendo (2.13) en (2.11), combinando luego la ecuación resultante con la
ecuación (2.14) y reordenando términos obtenemos:
(2.15)
El conocido lema de inversión de matrices estipula que:
Usando dicho lema en (2.15) obtenemos la siguiente renombrada ecuación de
Riccati:
P(k) = Q+GT P(k+l)G-GT P(k+l)H[R+HT P(k+l)HJ- 1 HT P(k+l)G (2.16)
De la ecuación (2.6) deducimos que Sx(N) = A(N). Reemplazando (2.13) con
k = N en esta última relación se obtiene:
P(N) = S (2.17)
16
Esta última relación se emplea para resolver la ecuación de Riccati, partiendo de
k = N hasta k = O. Es decir, podemos obtener P(N), P(N - 1), . .. , P(0). De
la ecuación (2.5) se deduce:
Reemplazando la última expresión en (2.9) y empleando la relación (2.13) en la
expresión resultante produce:
u(k) = -K(k)x(k) (2.18)
Mediante el empleo de transformaciones matriciales, se pueden demostrar dos
expresiones más para la ganancia K(k), a saber [3]:
u(k) = -K(k)x(k)
u(k) = -K(k)x(k) K(k) = [R + HT P(k + l)H]- 1 HT P(k + l)G (2.20)
Nosotros usaremos preferentemente la última relación.
2.2 El problema del Control Óptimo Cuadrático Estacionario
Hemos visto en la sección anterior que cuando el tiempo final N es finito,
K(x) resulta una matriz de ganancia variante con el tiempo. Consideremos ahora
el caso cuando el sistema x(k + 1) = Gx(k) + Hu(k) ha alcanzado su estado
estacionario en un tiempo N = oo (este tiempo ahora es fijo). En esta situación
la matriz de ganancia del controlador K ( x) se convierte en una matriz constante
y se denota simplemente como K. Para N = oo, la función de costo se formula
como:
J = ! I: [xT(k)Qx(k) + uT(k)Ru(k)]2
k=O
(2.21)
Observar que desaparece el término ½xT(N)Sx(N) de la relación (2.2), debido
a que en N = oo el sistema de control óptimo es estable, de modo tal que J
converge a un valor constante, x( oo) tiende a O y y ½xT ( oo )Sx( oo)) = O. Por
otra parte, en el estado estacionario la matriz P(k) resulta una matriz constante
P. De este modo la ecuación de Riccati (2.16) en estado estacionario toma la
forma:
p = Q + GTPG- GTPH[R+ HTPHJ- 1 HTPG (2.22)
17
mientras que la matriz de ganancia K en (2.20) resulta:
(2.23)
y la ley de control u( k) pasa a ser:
u(k) = -Kx(k) (2.24)
La matriz P de la ecuación matricial (2.22) se obtiene empleando la ecuación de
Riccati en estado no estacionario dada en (2.16), pero invirtiendo la dirección del
tiempo; es decir:
P(k + 1) = Q + GT P(k)G - ar P(k)H[R + HT P(k)Ht1 HT P(k)G (2.25)
La relación (2.25) permite determinar una matriz P de magnitud convergente
usando cálculo recursivo como sigue. Asumiendo inicialmente para k = O que
P(O) = O, podemos obtener P(l); luego usar P(l) para obtener P(2), y asi
sucesivamente, hasta llegar a un tiempo discreto k para el cual P( k) = P( k + 1) =
P(k + 2) = · · · . Con la matriz P resultante determinada, podemos calcular ahora
la ganancia K usando la ecuación (2.23), para luego obtener la ley de control dada
por la ecuación (2.24). El diagrama de bloques del sistema de control óptimo de
estado estacionario se ilustra en la figura 2.1, en donde se asume que todos los
estados pueden ser medidos y procesados. Dicho sistema es estable si todas las
raíces de su ecuación característica· (los eigenvalores o modos de funcionamiento):
det[zl - G + H K] = O (2.26)
se ubican dentro del círculo unitario. El problema con la configuración mostra
da en la figura 2.1, es que la señal de referencia o "set point"no aparece ex
plícitamente. Las dos configuraciones de sistemas de control óptimo cuadrático
que se tratan en las siguientes secciones, si emplean en sus configuraciones la
señal de referencia. Estas configuraciones son el regulador óptimo proporcional y
el regulador óptimo proporcional integral, ambos en sus versiones SISO (Single
Input-Single-Output).
2 .3 El Regulador Óptimo Proporcional
El regulador óptimo proporcional es un sistema de control realimentado,
en donde la salida controlada sigue a una señal de referencia r(k). La figura 2.2
18
u(k) x( k)
I z -l
G i---
-K -
Figura 2.1: Sistema de control óptimo a lazo cerrado.
muestra el esquema de un regulador para la variable de estado x2 del vector de
estado x, empleando una ley de control de realimentación de estados de la forma
u= -Kx.
r(k)
+
x(k)
x(k+l) = Gx(k) + Hl(k) L.J.._ _ ____. e y(k) = X 2 (k)
Figura 2.2: Esquema del regulador óptimo proporcional.
Para una salida arbitraria, por ejemplo x2:
u(k) - -k1 x1(k) - k3x3 (k) - · · · - knxn(k) + k2r(k) - k2x2(k)
- -Kx(k) + k2r(k) (2.27)
Reemplazando u( k) en la ecuación de estado del proceso se obtiene:
x(k + 1) = Gx(k) + Hu(k) = (G - HK)x(k) + Hk2r(k) (2.28)
Nosotros no vamos a usar el sistema de la figura 2.2 debido a que la respuesta
controlada puede presentar errores en estado estable cuando el proceso a ser
controlado no posee un comportamiento integral. En otras palabras, cuando el
19
modelo dinámico del proceso no posee integradores (factores de la forma ; ) en
su función de transferencia. Por este motivo, es que se prefiere usar el regulador
proporcional integral que se trata en la siguiente sección.
2.4 El Regulador Óptimo Proporcional-Integral
El regulador óptimo proporcional-integral mostrado en la figura 2.3 (3], (4],
incluye un integrador discreto, el cual sirve para eliminar los errores en estado
estable. Es decir, para hacer que la diferencia entre la salida y( k) y la referencia
r ( k) sea nula en el estado estable.
v(k) I z- 1
u(k) e
+
I z-1 G
K
Figura 2.3: El regulador SISO óptimo proporcional-integral.
De la figura 2.3 deducimos:
x(k + 1) - Gx(k).+ Hu(k)
u(k) - -Kx(k) + K1v(k)
y(k) = Cx(k)
y(k)
(2.29)
(2.30)
donde x(k) es el vector de estado del sistema de orden n, y(k) es la salida escalar
controlada del sistema, u(k) es la señal o fuerza de control, v(k) es la señal de
salida del integrador, G es la matriz de estado de orden n x n, H es la matriz de
control de orden n x 1, Ces la matriz de salida de orden 1 x n, K1 es la ganancia
del integrador, y K es la matriz ganancia del controlador de orden 1 x n. La
matriz de ganancia K se formula como:
(2.31)
La ecuación que describe al integrador discreto es:
v(k) = v(k - 1) + r(k) - y(k) (2.32)
20 Para tiempo (k + 1), v(k + 1) toma la forma:
v(k + 1) - v(k) + r(k + 1) - y(k + 1)
- v(k) + r(k + 1) - C[Gx(k) + Hu(k)]- (1- CHK1 )v(k) + (-CG + CHK)x(k) + r(k + 1) (2.33)
Usando (2.29) y (2.30), encontramos: x(k + 1) Gx(k) + H[-Kx(k) + K1 v(k)]
- (G - HK)x(k) + H K1 v(k)
mientras que las ecuaciones (2.33) y (2.34) producen: (2.34)
[x(k+l)l [ G-HK HK1 l [x(k)l [º] = + r(k+l) (2.35)
v(k + 1) -CG + CHK 1 - CHK1 v(k) 1
y(k) = [ e o ] [ x(k) l v(k)
(2.36) En el estado estacionario para k -too, las variables x(k), u(k) y v(k) toman sus valores estacionarios x(oo), u(oo) y v(oo), respectivamente. Así, (2.35) toma la forma:
Definiendo: x(k) - x(oo) = Xe(k)
v(k) - v(oo) = Ve (k)
(2.38) (2.39)
podemos ahora restar (2.37) de (2.35) y luego usar las ecuaciones (2.38) y (2.39) para obtener:
[ xe(k+l) l [ G-HK HK1 l [ Xe (k) lVe(k + 1)
--CG + CHK 1 - CHK¡ Ve (k)
[ G O l [ Xe (k) l [ H l [ ] [ Xe (k) l (2.40) =
-CG J Ve (k) +
-CH -K K¡ Ve (k)
La ecuación (2.40) se puede formular en su forma compacta así: f.(k + 1) = Gf.(k) + iiw(k) w(k) = -Kf.(k) (2.41)
donde:
�(k) = [ Xe(k) l Ve(k)
Íl(k) = [ H l -CH
G(k) = [ e o l -CG I
K(k) = [ K -K1 ]
21
Cabe resaltar que el vector de estado x( k) del sistema original es de orden n,
mientras que el vector de estado � ( k) del regulador proporcional-integral es de
orden ( n + l), debido a la presencia del integrador.
Para resolver el problema del control óptimo cuadrático discreto estacionario
para el regulador proporcional integral, debemos minimizar la siguiente función
de costo:
J = ½ f [�(k)TQ�(k) + w2(k)R]k=O
(2.42)
Empleando el método de los multiplicadores de Lagrange descrito en la sección
2.1, podemos determinar las expresiones de la ecuación de Riccati y de la matriz
de ganancia K del controlador, a saber:
P = o + eT Pe - eT P iI[R + fIT P iit 1 fIT Pe
f< = [R + fIT P fIJ-1 fIT Pe
(2.43)
(2.44)
donde P es una matriz simétrica definida positiva de dimensión ( n + 1) x ( n + l),
la cual es solución de la ecuación matricial de Riccati asociada.
2.5 El Regulador Óptimo Multivariable Proporcional-Integral
El regulador proporcional-integral mostrado en la figura 2.3, también se
aplica a sistemas multivariables. Las ecuaciones que gobiernan la dinámica de un
regulador multivariable proporcional-integral se pueden establecer por extensión.
Esto es, la ecuación de estado del sistema multivariable viene a ser (ver figura
2.3):
x(k + 1) - Gx(k) + Hu(k)u(k) - -Kx(k) + K1v(k)
y(k) = Cx(k) (2.45)
(2.46)
donde x(k) es el vector de estado del sistema de orden n, y(k) es el vector de
salida de orden m, u( k) es el vector de control de orden m, v( k) es el vector de
salida del integrador de orden m, G es la matriz de estado de orden n x n, H es
22 la matriz de control de orden n x m, C es la matriz de salida de orden m x n,
K1 es la matriz de ganancia del integrador de orden m x m, y K es la matriz ganancia del controlador de orden m x n. La matriz de ganancia K posee ahora la forma:
K= (2.47) Del mismo modo, de la figura 2.3, podemos formular la ecuación que describe al vector integrador discreto:
v(k) = v(k - 1) + r(k) - y(k) (2.48)
donde r es el vector de referencia de orden m. Operando como en el caso de una entrada y una salida (sección 2.5), se puede demostrar que la forma compacta de la ecuación (2.40), pero para el caso multivariable es (ver (2.49)):
donde:
con:
f.(k + 1) = Gf.(k) + Hw(k)
f.(k) = [ Xe(k) l Ve(k)
H(k) = [ H l -CH
w(k) = -kt;,(k)
- [ G O lG(k) = -CG I
K(k) = [ K -K1 ]
x(k) - x(oo) = Xe(k)
v(k) - v(oo) = ve(k)
(2.49)
Para resolver el problema del control óptimo cuadrático discreto estacionario, tenemos que minimizar la siguiente función de costo:
(2.50) En (2.50), el vector de entrada w es de orden m. Como resultado del proceso de minimización, obtenemos las expresiones de la matriz de ganancia f< del controlador y la ecuación de Riccati asociada:
(2.51)
23
(2.52)
donde P es una matriz simétrica definida positiva de dimensión ( n + 1) x ( n + 1),
Q es una matriz simétrica semidefinida positiva de dimensión ( n + 1) x ( n + 1) y
R es una matriz simétrica definida positiva de dimensión m x m.
:,
CAPITULO 111
EL OBSERVADOR DE ESTADOS MULTIVARIABLE
3.1 El Observador Óptimo Cuadrático SISO
En implementaciones en tiempo real, sólo unas cuantas variables del vector
de estado x(k) de un proceso se pueden medir en forma directa. En tales situa
ciones necesitamos estimar dicho vector de estado; es decir, requerimos hallar un
vector de estado estimado x(k). El empleo de un observador discreto de estados
permite determinar x(k). El diseño del observador implica determinar su matriz
de ganancia Ke, partiendo de la minimización de una función de costo cuadrática,
en forma similar al caso del controlador óptimo. El diagrama de bloques del ob
servador de estados SISO (Single-Input-Single-Output) se muestra en la figura
3.1, donde podemos notar que el observador emplea las mediciones de la salida
y(k) y de la señal de control u(k).
u(k) + x(k) y(k)
I z -le
+
G i----
y(k) - y'tk) -K
e
+
i(k) 1W
H I z -l e -=--()-±:-+ + ·�
+
G i----
Figura 3.1: Configuración del observador de estados.
De la figura 3.1 se deduce:
x(k + 1) - Gx(k) + Hu(k)
y(k) - Cx(k)
La ecuación del observador toma la forma:
x(k + 1) = Gx(k) + Hu(k) + Ke [y(k) - Cx(k)]
25
(3.1)
(3.2)
(3.3)
donde x(k) es el vector de estado estimado de dimensión n, f)(k) representa la
salida escalar estimada, Ke es la matriz de ganancia de realimentación del ob
servador de dimensión n x 1 y C es la matriz de salida de dimensión 1 x n.
Reemplazando (3.2) en (3.3) y restando la ecuación resultante de (3.1), podemos
obtener la ecuación del error del observador:
e(k + 1) = [G - KeC]e(k); e(k) = x(k) - x(k) (3.4)
La ecuación característica del observador es:
det[zI - G + KeC] = O (3.5)
en donde la matriz Ke se diseña para que el error tienda a cero con una velocidad
adecuada. Las raíces de la ecuación característica deben ubicarse dentro del
círculo unitario para que el observador sea estable y opere satisfactoriamente.
En principio, la matriz Ke se puede calcular en la misma forma en que se
calculó la matriz de ganancia K del controlador óptimo: partiendo de la mini
mización de una función de costo cuadrática aplicada al observador. En este caso
usaremos el concepto de dualidad. Es decir, podemos utilizar las ecuaciones que
describen al sistema de control óptimo, convenientemente modificadas, para que
nos permitan calcular Ke- El procedimiento es como sigue. Dado que el deter
minante de una matriz y el de su transpuesta son iguales, podemos modificar la
forma de la ecuación (3.5) así:
det[zI - G + KeC] = det[(zI - G + KeC)r] = det[zI - cr + cr K;] (3.6)
Identificando la ecuación característica del controlador óptimo (2.26), con la
ecuación característica del observador (3.6), podemos concluir que se tienen que
hacer las siguientes modificaciones:
(3.7)
26
Empleando tales modificaciones en las estructuras de la ecuación de estado delproceso x(k + 1) = Gx(k) + Hu(k), de su ecuación de salida y(k) = Cx.(k) y desu ley de control u(k) = -J<x(k), obtendremos las siguientes relaciones dualesde la ecuación de estado y de la ley de control:
a(k + 1) = GT a(k) + cT /3(k)
/3(k) = -K; a(k)
Usando (3.8) y (3.9) en la función de costo siguiente:
1 00
J = 2
L [aT(k)Qea(k) + /3T(k)Re/3(k)] k=O
entonces la correspondiente ecuación de Riccati toma la forma:
mientras que la matriz de ganancia Ke resulta:
(3.8)
(3.9)
(3.10)
(3.11)
(3.12)
Para determinar Pe a partir de la ecuación (3.11), empleamos el mismo
procedimiento que para determinar P (ecuación (2.25)). Es decir, para calcular
Pe , utilizamos la siguiente ecuación recursiva:
3.2 El Observador Óptiino Cuadrático Multivariable
La figura 3.1 también puede ser aplicada a sistemas multivariables por
extensión. Así, de dicha figura se puede formular
x(k + 1)
y(k)
x(k + 1)
Gx(k) + Hu(k)
- Cx(k)
Gx(k) + Hu(k) + Ke [y(k) - Cx(k)]
(3.14)
(3.15)
(3.16)
donde x(k) es el vector de estado estimado de dimensión n, y(k) representa
el vector de salida estimado de dimensión m, Ke es la matriz de ganancia de
realimentación del observador con dimensión n x m y C es la matriz de salida de
dimensión m x n.
27
Empleando el concepto de dualidad como en el caso de una entrada y una
salida tratado en la sección a11 terior, se puede determinar la ecuación ·de Riccati
del observador:
(3.17)
donde las matrices de ponderación Re y Qe son de orden m x m y n x n respecti
vamente, y la matriz Pe solución de la ecuación de Riccati es de orden n x n. La
correspondiente matriz de ganancia Ke se calcula de:
(3.18)
Para calcular Pe, asimismo. empleamos la siguiente ecuación recursiva:
CAPÍTULO IV
CONTROL ÓPTIMO DEL REACTOR
4.1 El Procedimiento de Diseño
Este capítulo sigue el procedimiento de diseño de los sistemas de control
óptimo descritos en libro de la referencia [4), a saber:
1) Formular el problema determinando las especificaciones de diseño ( sección
4.2).
2) Determinar el modelo matemático del proceso a controlar. (sección 1.1).
3) Calcular la matriz de ganancia óptima k del controlador (sección 2.5).
4) Calcular la matriz de ganancia óptima Ke del observador (sección 3.2).
5) Simular el sistema de control óptimo cuadrático.
6) Implementar el hardware del sistema.
7) Implementar el software del sistema.
8) Realizar pruebas de funcionamiento ( obtener resultados experimentales sa
tisfactorios).
En este estudio sólo abarcaremos hasta el punto cinco.
4.2 Control Óptimo Cuadrático Multivariable del Sistema
En esta sección nos ocuparemos del diseño del control óptimo multivariable
cuadrático del proceso reactor químico enchaquetado para la descomposición de
un producto A en otro producto B. empleando el procedimiento de diseño descrito
en la sección anterior.
Formulación del Problema
Se pide diseñar un sistema de control óptimo multivariable discreto, cuya
configuración comprende una ley de control óptima multivariable cuadrática dis
creta y un estimador multivariable de estados óptimo discreto. El sistema de
29
control debe estabilizar las salidas y1 e y2 ante la acción de cambios tipo escalón
de las señales referencia r1 y r2.
El tiempo de estabilización de y1 debe ser menor de 10 horas (600 minutos)
Y de Y2 menor de 1 hora (60 minutos). El error en estado estable de las señales
controladas debe ser nulo con mínimo sobreimpulso. El sistema de control tiene
que ser capaz de estabilizar las salidas controladas en presencia de cambios tipo
escalón simultáneos de las señales de referencia r1 y r2. Para verificar este último
requerimiento se sugiere abordar los siguientes casos:
1) Que la señal controlada y1 siga a la referencia r1 caracterizada por tres
saltos escalón de 0.1 kmol/m3, mientras que r2 experimenta un salto de 1
ºC.
2) Que la señal controlada y2 siga a la referencia r2 caracterizada por tres saltos
escalón de 1 ºC, mientras que r1 experimenta un salto de 0.1 kmol/m3.
3) Que la señales controladas y1 e Y2 sigan a las referencia r1 y r2 respecti
vamente. En este caso r1 está caracterizada por tres saltos escalón de 0.1
kmol/m3, mientras que r2 experimenta tres saltos de 1 ºC.
El Modelo del Sistema a Controlar
La determinación del modelo matemático linealizado del sistema reactor
químico fue tema de la sección 1.4. Para un tiempo de muestreo de 1 minuto y
asumiendo retención de memoria de orden cero, la ecuación de estado discreta
del sistema y su ecuación de salida son:
x(k + 1) = Gx(k) + Hu(k) donde:
-0.0003 o -0.0004 -0.0002
0.3532 0.3529 0.0004 0.0002 G=
0.2397 0.1460 0.2086 o
0.2168 o 0.2511 0.1583
0.0222 0.0004
-0.0222 -0.0004 e= e, [ � 1 o
� l D = Da = [ � � l H= -0.2738 o 1 0.0856
0.0550 -0.5580
30
Cálculo de la Matriz de Ganancia del Controlador
En la sección 2.5 vimos que la estructura del regulador a emplear en el
diseño del controlador óptimo se describe mediante las siguientes ecuaciones:
f.(k + 1) = Gf.(k) + flw(k); w(k) = -Kf.(k)
donde:
G(k) = [ G o l -CG I
Íl(k) = [ H l -CH K(k) = [ K -K¡ ]
Para determinar la matriz de ganancia k del controlador de realimentación de
acuerdo a lo establecido en la sección 2.5, seleccionamos las matrices de pon
deración R y Q, a saber:
1 o o o o o
o 1 o o o o
Q= o o 1 o o o
[ � � lR= o o o 1 o o
o o o o 1 o
o o o o o 1
Para calcular la matriz k debemos resolver la ecuación de Riccati (2.51),
pero en su forma recursiva:
f>(k + 1) = CJ + aT P(k)a - aT P(k)fl[il + fIT P(k)flt1 fIT P(k)a
Luego de 100 iteraciones, los elementos de la matriz P se estabilizan en los valores:
14.6121 13.3176 0.3387 0.2071 -24.3842 -0.8602
13.3176 14.2141 0.1190 0.0726 -24.1945 -0.3168
0.3387 0.1190 1.2528 0.1548 -0.2180 -0.6241P=0.2071 0.0726 0.1548 1.0948 -0.1329 -0.3794
-24.3842 -24.1945 -0.2180 -0.1329 45.9197 0.5804
-0.8602 -0.3168 -0.6241 -0.3794 0.5804 3.5800
Conocida la matriz P, podemos ahora calcular la matriz k empleando la fórmula
(2.52):
31 resultando:
k = [ -0.4321 -0.5042 0.0829 0.0506 0.9226 -0.2226 ']-0.4251 -0.1401 -0.3282 -0.2020 0.2567 0.6716 Cálculo de la Matriz de Ganancia del Observador
El cálculo de la matriz de ganancia del observador Ke requiere el cálculo previo y en forma recursiva de la matriz Pe a partir de (3.19):
siendo las matrices de ponderación Q e y Re:
1 O O O
O 1 O O
O O 1 O
O O O 1
Luego, la matriz de ganancia Ke se calcula con la ecuación (3.18):
resultando: k = [ 0.0000 0.1909 0.0084 0.0090 l-0.0002 0.0055 0.1321 0.1386
4.3 Simulación del Sistema de Control Óptimo
Empleando los resultados de los cálculos anteriores, podemos entrar ahora a la fase de simulación del sistema de control óptimo cuadrático, antes de iniciar su implementación en tiempo real. Los programas en MATLAB enc3.m, enc4.m y enc5.m, cuyos listados se encuentran en el apéndice LISTADO DE PROGRAMAS de este trabajo, además de efectuar todos los cálculos anteriores, realiza la simulación del sistema controlado empleando una ley de control óptima con observación óptima de e�tados. Los resultados de la simulación se pueden observar en las figuras 4.1, 4.2, 4.3, 4.4, 4.5 y 4.6.
7. 7 r---.-----,----,-------,,----,-----,--:::::a--,------r---.---,
<..> 7.4 . . . ···················-··· · ············
7.3�-�--.L_---L.--L---'-----''----L----l----'--__J
30r-----,---r------,---.---�----�-------
�25.§. ¡¡: 20
··i·········:········· <·········<·········<·· ·······-
. . ., ......... _ ........ : .......... : .......... : .......... :.
10�-�--..__---L. __ ._ _ _,_ _ __JL.._ _ _,_ _ ___,1 __ _._ _ __,
� � 600 � 1� 1� 1� 1600 1� � Tiempo en minutos
32
Figura 4.1: Concentración controlada Cb y flujo de control Fe. La señal de refe
rencia de Cb experimenta cambios tipo escalón, mientras que la señal de referencia
correspondiente a Te sólo experimenta un cambio tipo escalón.
'ii, ::, ·o-¡¡¡<..> 36 · · .... , ......... , ........ :····· ............. -
¡::: 35.5
... � ........ -
O 200 400 600 800 1000 1200 1400 1600 1800 2000
6--�--...------,---r----r---r---....,.....---,---,----,
·····:··········:··········:··········:··
. . .
� � 600 � 1� 1� 1� 1600 1� � liempo en minutos
Figura 4.2: Temperatura controlada Te y flujo de control Fe. La señal de referen
cia de Cb experimenta cambios tipo escalón, mientras que la señal de referencia
correspondiente a Te sólo experimenta un cambio tipo escalón.
7.55r----.----.----,----,----.----,.-----------
7.350
'-----'---'-----'---'----'----.J'---....L..-_J __ --'----' � � � � 1� 1� 1� 1� 1� �
28r----.---.----,---,----.----,.-----------
�26
.S24 ¡¡: 022 ·s-¡¡: 20
. . . . . . . . . . . . . . . . . . . . . . .
. . .
.
........ :. . . . . . . . � . . . . . . . . . � ....... .
..•.... -:-.•.•.... ,: .•••..•.• <· •...••.. -:- ....•... -:- ..•...
.. · .......... :••·······<··········'.··········> ···········
18......_ _ _._ _ __,......_ _ _._ _ __,'-----'-----'----'-----L--_.._-_J
� � � � 1� 1� 1� 1� 1� � Tiempo en minutos
33
Figura 4.3: Concentración controlada Cb y flujo de control 1'e. La señal de refe
rencia de Te experimenta cambios tipo escalón, mientras que la señal de referencia correspondiente a Cb sólo experimenta un cambio tipo escalón.
39-----�-------------------
.. ... : . ...... : . .. r- ..... . . . . . . . . ... . . . . . . . . ........... , . . . . . . . . .. . . . . . . . . . � ................. .
.
.
200 400 600 800 1000 1200 1400 1600 1800 2000
4----,---,----.---.---......-----,,-----.---.----r----,
�3
.§. 2 � o ·s-
··············· ............ ··········· · ··················
¡¡: o
-1'--....:::==---'----'---'---'-----'----'-----'--.......___ _ ___,
O � � � � 1� 1� 1� 1� 1� � Tiempo en minutos
Figura 4.4: Temperatura controlada Te y flujo de control Fe . La señal de referencia de Te experimenta cambios tipo escalón, mientras que la señal de referencia
correspondiente a Cb sólo experimenta un cambio tipo escalón.
1.1,-----,---.------,----,----,r-----r---=:-r-----,----,---� 7.65
¡;; 7.6 E 'i!; 7.55
1 7.51--�-----' � U 7. 45
7.4 ........ , ..
7·350�---=5�0--1-'-oo
--1...1.so
--2--'
oo----'
2so'-----300
.__ __ 350.,___ __ 4.L
oo--
4..1.so _ __J500
30r------,---,-----,----,----,,-----,---.------,---�-�
12
5
¡¡: 20
·� ¡¡: 15
. . · ··· · ····:······
··
··:··········:··
. . - . - . . . . . . . . . . . . . . . . . . . � ....... .......... .. .
.. · ......... .:- ......... :, ........ -:-
10�-�--..._ _ ___._ __ _.__ _ __..__ _ __._ __ ,.__ _ ___._ __ _.__ _ __, o 50 100 150 200 250 300 350 400 450 500
Tiempo en minutos
34
Figura 4.5: Concentración controlada Cb y flujo de control Fe. Las señales de referencia correspondientes a Cb y Te experimentan cambios tipo escalón.
38.5 -----,---�-�--�--r----.---.------,---�-�
.; 38 ·····-··········-·· ·······-·····
� 37.5
. . . ........ :-........ · :· . . . . . . . ... . . . . . . . . ... . ...... ·:· ........ � ..
. . . .
"§ 37 S!.
. . . . . . . . . . . . . . . . . . . . ........ � ........ ·-· ............ . ······· · ··············· . . . .. .
F 36.5 \
·····<··········:•·········:·····
360._ __
50.._ __ 1 .....
00--
1�
5-0
--2�
00--�
25�
0--
300�--
350.__ __ 4�00
--4�50----'
500
4,------,---.------,----,----,,----.---.-----,---.-----,
3 ........ , .. .
. . ..
--: ••••..
.•.
:r<.:_· .
_.
_·_
·-_ ·_
· _
· ·_·
·_·
·-_·
·_· · _
· ·_· ·
_···
_· ·
_·-,
. . ·······-·························· .
� 1
·@- o¡¡:
-1 � �------'
.... · .......... · ....... .. ·········.···· ·
-20.__ __
5.L0--
1-'-00--
1�50--
2�
00--
2�
5-0---'
300.__ __
350,__ __ 400
.__ __ 4�50
---=--500
llempo en minutos
Figura 4.6: Temperatura controlada Te y flujo de control Fe. Las señales de referencia correspondientes a Cb y Te experimentan cambios tipo escalón.
CAPÍTULO V
CONTROL ADAPTIVO DEL REACTOR
5.1 Control Adaptivo con Autosintonización
Este capítulo emplea el procedimiento de diseño de un sistema de control adaptivo descrito en libro de la referencia [4]. Los sistemas de control adaptivo ajustan su comportamiento, es decir, sus parámetros, conforme a los cambios que se sucitan en su entorno, ya sean éstos provocados (para mejorar el rendimiento del sistema) o no. En contraposición, los sistemas de control fijos se caracterizan por la presencia de una ley de control con parámetros invariantes con el tiempo. Existen dos grandes grupos de sistemas de control adaptivo: controladores adaptivos con un modelo referencial y controladores adaptivos con autosintonización.
En este trabajo se emplea un sistema del último grupo, cuya configuración se muestra en la figura 5.1 [4].
El sistema de control adaptivo con autosintonización combina en su diseño el método de estimación de parámetros de los mínimos cuadrados recursivo mejorado, la técnica de estimación óptima de estados, la representación en el espacio de estado del modelo del proceso, y el controlador óptimo proporcional-integral. El objetivo del control es computar una fuerza de control (o ley de control) capaz de minimizar las diferencias entre las salidas Y1 e Y2 y las señales de referencia,
respectivamente. El sistema de la figura 5.1 trabaja en la forma siguiente: para cada tiempo
de muestreo, los vectores estimados de parámetros 81 y 02 se actualizan empleando los datos proporcionados por las entradas u1 y u2 del proceso y por las salidas y
1 e y2 del mismo. Luego, los elementos de los vectores estimados de parámetros se usan para recuperar el modelo lineal estimado del proceso x = Gx + ÍI u ( el sombrero sobre las matrices G y H denota estimación), lo cual permite estimar el vector de estado del modelo del proceso x. Tales resultados se usan luego para computar la ley de control vectorial u = [u1 u2JT .
r
-+
/\
Cr--
ESTIMADOR
DE ESTADOS
CALCULO DEL
CONTROLADOR
CONTROLADOR CON
AUTOSINTONIZACION
"'
36
/\
8 ESTIMADOR DE
-----
PARAMETROS
u REACTOR
y
-
Figura 5.1: Configuración de un sistema de control adaptivo con autosintonización.
5.2 Estimación de los Parámetros del Reactor
El modelo dinámico linealizdo del reactor está dado por:
x(k + 1) = Gx(k) + Hu(k) y(k) = Cx (5.1)
Asumamos en una primera aproximación que el proceso posee una entrada
y una salida. Siendo el reactor un proceso de orden 4, entonces su función de
transferencia de pulso puede ser hallada empleando la relación:
y(z) = C(zl _ G)_1 H = b1z-1 + · · · + b4z-4
u(z) 1 + a1z-1 + · · · + a4z-4
donde z es el operador de desplazamiento. La ecuación de diferencias correspon
diente es:
y(t) - -a1y(t - 1) - a2y(t - 2) - aay(t - 3) - a4y(t - 4)
+b1u(t - 1) + b2u(t - 2) + bau(t - 3) + b4u(t - 4) (5.2)
mientras que su ecuación polinomial toma la forma:
(5.3)
con:
(5.4)
37
La descripción dada en (5.2) tiene que ser reordenada como:
y(k) = 'l/JT(k)0(k) (5.5)
donde el vector de información ( o de medición) 7/J contiene los valores presentes
y pasados de la entrada u y de la salida y:
7/JT(k) = [y(k - 1) ... y(k - n) u(k - 1) ... u(k - n)]
y el vector 0 contiene los parámetros a ser estimados:
(5.6)
(5.7)
En este punto, nosotros podemos emplear el algoritmo básico de los mínimos
cuadrados recursivo estimar los del procesoo. Sin embargo, tal algoritmo puede
presentar problemas potenciales de caráctere numérico que muy bien pueden afec
tar el diseño final del sistema de control adaptívo con autosintonización. Por
tal razón, nosotros emplearemos el método de los mínimos cuadrados recursivo
mejorado propuesto en [5) y usado exitosamente en (4). Este método se puede
implementar como sigue:
1) Obtener el vector de parámetros inicial 0(0) usando los parámetros valo
rados del modelo del proceso.
2) La matriz de covarianza inicial P toma la forma P = al, donde I es la
matriz identidad y a >> 1.
3) Tomar nuevas mediciones de y(k) y de u(K) en el proceso, para obtener
una nueva ecuación de la forma dada en (5.5).
4) Computar: p(k) = max(l, 117/J(k)II); 7Pn = 7/J/ p(k)
5) Determinar la matriz N(k) aplicando factorización Cholesky en:
N(k)N(k)T = P(k)
6) Determinar la matriz diagonal de escalamiento S(k) con elementos Sjj· Tal
matriz minimiza el número condicional del producto S(k)N(k) siempre que
Sjj = 1/njj, donde cada njj se obtiene tomando el valor absoluto de la
suma de los elementos de la fila j de N ( k).
7) Computar:
Ps(k) = S(k)P(k)S(k)
'l/Jns = [S(k)]- 1 'l/Jn
r(k) = 1 + 'l/Jn7;;(k)Ps(k - l)'l/Jns(k)
A(k) = 1 - -21
[r(k) _ r2(k) _ 411Ps(k - l)'l/Jns(k)ll2 ltr Ps(k - 1)
en(k) = Y(k)/p(k) - 'l/JnT(k) 0(k - 1)
j(k) = ['l/J;s(k + l)Ps(k)'l/Jns(k + 1) + A(k)]
0(k + 1) = 0(k) + s-1(k)Ps(k)'l/Jns(k)en(k + 1)/j(k)
38
Hns(k + 1) = Ps(k)'l/Jns(k + 1) x ['l/J;8(k + l)Ps(k)'l/Jns(k + 1) + A(k)J-1
Ps(k + 1) = [I - Hns(k + l)'l/J;8(k + l)]Ps(k)/A(k)
b [max eig(Ps)ltt =as min eig(Ps)
8) Implementar el criterio para detener la estimación y para encontrar unanueva matriz de escalamiento Nnew como sigue: sabiendo que tt es el número
condicionante de Ps, si tt < T ( cota inferior), entonces detener la estimación;
en otro caso, si tt > r;, (cota superior), determinar Nnew(k) (a partir de larelación Ps = NnewN'Jew), computar los elementos nnew
33 (valor absoluto
de la suma de los elementos de las filas de Nnew(k)), determinar la matrizdiagonal Snew cuyos elementos se calculan de Snew .. = 1/nnew .. , y, calcular
31 31
la matriz Pnews = SnewPsSnew· Finalmente, actualizar: P = Pnews.
Habiendo analizado el caso de una entrada y una salida, el caso de múltiplesentradas y múltiples de salidas se puede deducir por extensión. Esto quiere decir que la función de transferencia aplicada al primer caso, pasa a ser una matriz de transferencia para el caso multivariable. Precisamente el programa enc6.m, cuyo listado se muestra en el apéndice LISTADO DE PROGRAMAS de este estudio, determina la estructura de la matriz de transferencia para el proceso reactor:
[::]-[ b¡ z-1+·+b4z-4
l+a1z-1 +···+a4z-4
Í1 z-1 + [2z-2+ faz-3
l+d1z-1+d2z-2+d3z-3
(5.8)
Las ecuaciones de diferencias correspondientes son:
Y1(t) = -a1Y1(t - 1) - a2Y1(t - 2) - a3y1(t - 3) - a4y1(t - 4)
+b1u1(t - 1) + b2u1(t � 2) + b3u1(t - 3) + b4u1(t - 4)
+c1u2(t - 1) + C2U2(t - 2) + C3U2(t - 3) + C4U2(t - 4)
- 'I/J[(k)01(k)
Y2(t) - -d1Y2(t - 1) - d2Y2(t - 2) - d3Y12(t - 3)
+ fiu1(t - 1) + hu1(t - 2) + fau1(t - 3)
+g1u2(t - 1) + g2u2(t - 2) + g3u2(t - 3)
- 'I/J[(k)02(k)
5.3 Control Adaptivo del Proceso de Reacción
39
(5.9)
En este punto ya podemos entrar a la etapa de simulación del sistema de
control adaptivo. El programa escrito en código MATLAB enc7.m, cuyo listado se
encuentra en el apéndice LISTADO DE PROGRAMAS, además de efectuar todos
los cálculos anteriores, realiza la simulación del sistema controlado empleando
un estimador de parámetros, una ley de control óptima cuádrática proporcional
integral, y un observador óptima de estados. Los resultados de la simulación se
pueden observar en las figuras 5.2 y 5.3.
7.7.--,----,----,----,----.---....--::::--,---.-----.--� 7.65
¡;;- 7.6 E '3 7.55 E � 7.5 t-::::------1
O 7. 45
7.4
........ · ......... -:.
7·35 o�--;5�0---:1-:oo:-- 1�5=-o----:'.200=---=-25�0--3..1..oo-- 3.J.50-- 4...Joo ___ 450L...__..J500
30,--,---.,------,,---,----,----,.---.,------,,-------r---,
......... -... ···-··:··········(·········'.·········i·········i········
·······<·········<··········>····
-�¡¡; 15 . . .... �.
100::----:50�--1�0-=--o --:-:'15::-o --200._ __ 2.1...50--3..1..oo-- 3..1.5_0 __ 4...Jo'-o--45Lo-__J500 Tiempo en minutos
40
Figura 5.2: Concentración controlada Cb y flujo de control Fe . Las señales de
referencia correspondientes a Cb y Te experimentan cambios tipo escalón.
38.5:::.::.::.-:.."':..-_-:_-_--,......----,--......---,-----.---......----,--�-�
38
� 37.5
� 37
i 36.5 !:2.
36 ¡:::
35.5
35'-
-
.........
--
�
-�
--
.........
--
�
-
.........
--
�
-
�-
-
.........
-
�
O 50 100 150 200 250 300 350 400 450 500
3.--------r--......----,--......---...---,---.----,--......----,
-�·-·-:·············· ·<··········>·········'.··· ...... : ..... .
. . . . -.......... -. . . . . . . . . . ....... ·: ......... ·: ......... � ..... .
� Ot···· -�
-1 _:-,.,.�--..J.
-20'---5.L..0 --1-'-00--1-'-5-0 -- 2--'00�--25._0 __ 3�00--3�50-- 4-'-0-0 --4--'50�-�500
Tiempo en minutos
Figura 5.3: Temperatura controlada Te y flujo de control Fe . Las señales de
referencia correspondientes a Cb y Te experimentan cambios tipo escalón.
CONCLUSIONES Y RECOMENDACIONES
1. En este estudio se han presentado dos procedimientos de diseño apropiados para
controlar procesos multivariables cuadrados, es decir, procesos que poseen igual
número de entradas y de salidas. El primer procedimiento es para diseñar un sistema
de control óptimo, el cual comprende un modelo lineal multivariable del proceso,
una ley de control óptima cuadrática multivariable discreta y un observador de
estados óptimo (también discreto y multivariable). El segundo procedimiento es para
diseñar un sistema de control adaptivo, el cual, además del modelo lineal del
proceso, comprende una la ley de control óptima, un observador de estados
multivariables, y un estimador de parámetros multivariable que emplea la técnica de
los mínimos cuadrados mejorado discreto.
2. El proceso controlado sobre el reactor químico del tipo enchaquetado que se usa
para la descomposición de un producto A en otro producto B. La dinámica de este
proceso es no lineal (ver (capítulo 1). Los sistemas de control óptimo (capítulo IV) y
adaptivo ( capítulo V) diseñados, han demostrado que es posible controlar
simultáneamente la temperatura interior del reactor y la concentración del producto B
a la salida del reactor, utilizando como fuerzas de control el flujo del producto
líquido A que ingresa al reactor, y el fluido de refrigeración que ingresa a la chaqueta
del reactor .
3. Los estudios de simulación presentados en los capítulos IV y V, han demostrado
que las especificaciones de diseño se cumplen satisfactoriamente para ambos
sistemas de control diseñados. Es decir, en todos los casos, el tiempo de
estabilización de la salida y 1 resulta menor de 10 horas ( 600 minutos) y de la salida
y2 menor de 1 hora ( 60 minutos). Además, los errores en estado estable de las
señales controladas son nulos y con mínimo sobreimpulso, tal como se puede
apreciar en las figuras 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 5.2 y 5.3. En tales ilustraciones
también observamos que los sistemas de control diseñados son capaces de estabilizar
las salidas controladas en presencia de cambios tipo escalón simultáneos de las
42
señales de referencia r, y r2. De esta manera, los objetivos de control se han cumplidocompletamente.
4. Cabe anotar que cuando el número de entradas es inferior al numero de salidas el'
proceso se convierte en un<? subactuado. En este caso, para controlar al proceso se
requieren generar (diseñar) entradas adicionales, de modo tal que el número de
entradas sea igual al número de salidas. La excepción a esta regla son los procesos
subactuados que sólo requieren una entrada para controlar una o más salidas. Un
caso típico es el péndulo invertido, en donde una señal de control es suficiente para
controlar simultáneamente las posiciones del carro portador del péndulo y el péndulo
mismo.
5. El tiempo de muestreo empleado para los diseños de los sistemas de control
óptimo y adaptivo es de 1 minuto. Este tiempo es suficiente para poder implementar
en tiempo real el sistema de control diseñados. En otras palabras, especialmente en el
caso adaptivo, este tiempo de muestreo es suficiente para poder realizar todos los
cómputos requeridos para calcular la ley de control multivariable. Por consiguiente,
cualquier configuración para controlar el reactor en tiempo real, es posible de
implementar.
6. El modelo no lineal del proceso desarrollado en el capítulo I, puede ser empleado
en trabajos futuros para probar técnicas de control no lineal, tales como control
predictivo no lineal, control deslizante, control por linealización de la realimentación,
entre otras. Espero que este trabajo inicial sirva como punto de partida para tal fin.
ANEXO
LISTADO DE PROGRAMAS
Programas del Capítulo 1
% enel.m RESPUESTA DEL REACTOR AL ESCALON elear all ele
% PARAMETROS DEL REACTOR
alpha = 29.063; Ea = 2100; R = 8.314; Vl = 24; Ca0 = 8; U = 4300; S = 24; rhol = 800; Cpl = 3; Tl0 = 34; H = 2100; rhoe = 1000; Cpe = 4.1868; Te0 = 20; Ve = 8; T = O.OS; % TIEMPO DE MUESTREO EN MINUTOS
% CONDICIONES INICIALES
Tl (1) = 34; K(l) = alpha*exp (-Ea/(R*(272+Tl(l)))); Te (1) = 20; Ca (1) = l; Cb(l) = 5; N = 1400; for k = l:N Fl(k) = 25; Fe (k) = 6;
% BALANCE DE MASA
K(k) = alpha*exp(-Ea/(R*(272+Tl (k)))); Ca (k+l)= Ca (k)+(T/Vl)*{Fl(k)*Ca0-Vl*K(k)*Ca(k)-Fl(k)*Ca(k)); Cb (k+l) = Cb(k) + (T/Vl)*(Vl*K(k)*Ca(k) - Fl (k)*Cb(k));
% BALANCE DE ENERGIA
Q{k) = U*S*(Tl (k)- Te (k)); Tl (k+l) = Tl(k) + (T/(Vl*rhol*Cpl))*(Fl(k)*rhol*Cpl*Tl0
- Fl (k)*rhoh*Cpl*Tl(k) Q (k) ...
+ Vl*K(k)*Ca(k)*H);Te (k+l) = Te(k) + (T/(Ve*rhoe*Cpe))*(Fe(k)*rhoe*Cpe*(TeO-
Te (k) ) ... + Q (k) ) i
end
% GRAFICOS
t = linspaee(0,T*N,N); figure (1) plot (t,Cb (l:N)); ylabel ('Cb en xlabel (' Tiempo en minutos' ) print - deps -f eneleb
kmoh/m3'); grid;
figure(2)
plot(t,T1(1:N)); ylabel('Tl en xlabel('Tiempo en minutos') print -deps -f enc1tl
grados Celcius'); grid;
figure(3)
plot(t,Ca(1:N)); ylabel('Ca en xlabel('Tiempo en minutos') print -deps -f enc1ca
kmol/m3'); grid;
figure(4)
plot(t,Tc(1:N));
xlabel ( 'Tiempo
print -deps -f
ylabel('Tc en
en minutos')
encite
grados Celcius'); grid;
% enc2.m CALCULO DE LOS JACOBIANOS DE LAS MATRICES A Y B
clear all
ele
% PARAMETROS DEL REACTOR
alpha = 29.063; Ea = 2100; RR = 8.314; Vl = 24; CaO = 8;
U = 4300; S = 24; rhol = 800; Cpl = 3; TlO = 34; H = 2100; rhoc = 1000; Cpc = 4.1868; TcO = 20; Ve = 8;
% SELECCION DE LAS VARIABLES DE ESTADO
% x1 = Ca; x2 = x2 = Cb; x3 = Tl; x4 = Te; u1 = Fl; u2 = Fe;
% PUNTOS DE OPERACION DE LAS VARIABLES
u1 = 25; u2 = 6; x1 = 0.6; x2 = 7.4; x3 = 35.3; x4 = 32.3;
KK = alpha*exp(-Ea/(RR*(272+x3)));
% ELEMENTOS DE LA MATRIZ JACOBIANA DE A f1x1 = - KK - (1/Vl)*u1; f1x2=0; f1x3 = - KK*(Ea/RR)*(272+x3)-(-2)*x1; f1x4 = O;
f2x1 = KK; f2x2 = - (1/Vl)*u1; f2x3 = KK*(Ea/RR)*(272+x3)-(-2)*x1; f2x4 = O;
f3x1 = (H/(rhol*Cpl))*KK; f3x2 = O; f3x3 = - (1/Vl)*u1 - (U*S/(Vl*rhol*Cpl))
+ (H/(rhol*Cpl))*KK*(Ea/RR)*(272+x3)-(-2)*x1;
f3x4 = (U*S/(Vl*rhol*Cpl));
f4x1 = O; f4x2 =O;
f4x3 = (U*S/(Vc*rhoc*Cpc)); f4x4 = - (1/Vc)*u2 - U*S/(Vc*rhoc*Cpc);
f1u1 = CaO/Vl - (1/Vl)*Xl; f1u2 = O;
f2u1 = - (1/Vl)*x2; f2u2 = O;
44
f3u1 = TlO/Vl - (1/Vl)*x3; f3u2 = O· f4u1 = O; f4u2 = TcO/Vc - (1/Vc)*x4;
A= [f1x1 f1x2 f1x3 f1x4
f2x1 f2x2 f2x3 f2x4 f3x1 f3x2 f3x3 f3x4 f4x1 f4x2 f4x3 f4x4];
B = [f1u1 f1u2 f2u1 f2u2 f3u1 f3u2
f4u1 f4u2];
c = [O 1 O O
o o 1 O] ;
D = [O o
o O]¡
o/. MODELO DISCRETO DEL SISTEMA
T = 0.05; o/. TIEMPO DE MUESTREO EN MINUTOS
[G H Cd Dd]=c2dm(A,B,C,D,T);
Programas del Capítulo IV
% ene3.m CONTROL OPTIMO PROPORCIONAL-INTEGRAL DEL REACTOR
% CAMBIOS TIPO ESCALON EN LA CONCENTRACION Cb
elear all;
ele;
o/. PARAMETROS DEL REACTOR alpha = 29.063¡ Ea = 2100; RR = 8.314; Vl = 24; CaO = 8; U= 4300; S = 24; rhol = 800; Cpl = 3; TlO = 34; H = 2100; rhoc = 1000; Cpe = 4.1868; TeO = 20; Ve = 8;
o/. SELECCION DE LAS VARIABLES DE ESTADO o/. x1 = Ca; x2 = x2 = Cb; x3 = Tl; x4 = Te; u1 = Fl; u2 = Fe;
% PUNTOS DE OPERACION DE LAS VARIABLES ub1 = 25¡ ub2 = 6; xb1 = 0.6; xb2 = 7.4; xb3 = 35.3; xb4 = 32.3;
KK = alpha*exp(-Ea/(RR*(272+xb3)));
o/. ELEMENTOS DE LA MATRIZ JACOBIANA DE A f1x1 = - KK - (1/Vl)*ub1; f1x2=0; f1x3 = - KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f1x4 = O;
f2x1 = KK; f2x2 = - (1/Vl)*ub1; f2x3 = KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f2x4 = O;
45
f3x1 = (H/(rhol*Cpl))*KK; f3x2 = O;
f3x3 = - (1/Vl)*ub1 - (U*S/(Vl*rhol*Cpl))
+ (H/(rhol*Cpl))*KK*(Ea/RR)*(272+xb3)�(-2)*xb1;
f3x4 = (U*S/(Vl*rhol*Cpl));
f4x1 = O; f4x2 =O; f4x3 = (U*S/(Vc*rhoc*Cpc)); f4x4 = - (1/Vc)*ub2 - U*S/(Vc*rhoc*Cpc);
f1u1 = CaO/Vl - (1/Vl)*xb1; f1u2 = O;
f2u1 = - (1/Vl)*xb2; f2u2 = O;
f3u1 = TlO/Vl - (1/Vl)*xb3; f3u2 = O;
f4u1 = O; f4u2 = TcO/Vc - (1/Vc)*xb4;
A = [f1x1 f1x2 f1x3 f1x4
f2x1 f2x2 f2x3 f2x4
f3x1 f3x2 f3x3 f3x4
f4x1 f4x2 f4x3 f4x4];
B = [f1u1 f1u2
f2u1 f2u2
f3u1 f3u2
f4u1 f4u2];
C = [O 1 O O
O O 1 O];
D = [O O
O O];
¼ MODELO DISCRETO DEL SISTEMA
T = 1; ¼ TIEMPO DE MUESTREO EN MINUTOS
[G H Cd Dd]=c2dm(A,B,C,D,T);
nG=max(size(G)); o/. ORDEN DE G, # DE ECUACIONES DE ESTADO
nU=min(size(H)); o/. ORDEN DE H, # DE ENTRADAS
o/. MATRICES AMPLIADAS
Gt=[ G zeros(nG,nU); ...
-Cd*G eye (nU)]
Ht=[ H; ...
-Cd*H];
o/. MATRICES DE PONDERACION DEL CONTROLADOR
Q = [1 O O O O O
O 1 O O O O
O O 1 O O O
O O O 1 O O
O O O O 1 O
O O O O O 1];
46
R = [1 O¡ O 1];
% EQUACION DE RICATTI PARA EL CONTROLADOR
P = zeros(nG+nU,nG+nU)¡for i = 1:100
P = Q + Gt'*P*Gt - Gt'*P*Ht*inv(R+Ht'*P*Ht)*Ht'*P*Gt;
end
% CALCULO DE LA GANACIA Ktil DEL CONTROLADOR
Ktil = inv(R+Ht'*P*Ht)*Ht'*P*Gt¡
K = Ktil(:,1:nG); % GANANCIA OPTIMA K PROPORCIONAL
KI= -Ktil(:,nG+1:nG+nU); % GANANCIA OPTIMA KI INTEGRAL
% MATRICES DE PONDERACION DEL OBSERVADOR
Qo=eye(nG,nG);
Ro=eye(nU,nU)¡
o/. ECUACION DE RICATTI PARA EL OBSERVADOR
Po = zeros(nG,nG);
for i = 1:500
Po = Qo + G*Po*G' - G'*Po*Cd'*inv(Ro+Cd*Po*Cd')*Cd*Po*G';
end
% CALCULO DE LA GANACIA Ko DEL OBSERVADOR OPTIMO
Ko = inv(Ro+Cd*Po*Cd')*Cd*Po*G';
% CONDICIONES INICIALES
x = [0;0¡0¡0]; xe = x¡
y= [O¡O] ¡ v= [O;O] ¡
u= [O;O];
N = 2000; r= [0.1 1]'¡
% BUCLE DE CONTROL
for k=1:N
V = V + r - y;
r1(k)=r(1)+xb2; r2(k)=r(2)+xb3; xe = G*xe + H*u + Ko'*(y-Cd*xe); % OBSERVADOR OPTIMO
u = -K*xe + KI*v;
x = G*x + H*u;
y =Cd*Xj
y1(k)=y(1)+xb2; y2(k)=y(2)+xb3;
u1(k)=u(1)+ub1; u2(k)=u(2)+ub2;
if k >= 1
r= [O .1 1]' ¡
end
if k > N/5
r= [0.2 1] ';
end
if k > 3*N/5
47
r= [0.3 1]';
end end
% GRAFICOS
t = linspaee(O,T*N,N); figure(1)
subplot(2,1,1)
plot(t,y1,'r' ,t,r1,'b'); ylabel('Cb
grid; subplot(2,1,2)
plot(t,u1,'b'); ylabel('Flujo Fl
xlabel('Tiempo en minutos')
print -deps -f ene3y1u1
figure(2)
subplot(2,1,1)
[kmol/m3] ');
[m3/h]'); grid;
plot(t,y2,'r',t,r2,'b'); ylabel('Tl [Grados Celeius] '); grid;
subplot(2,1,2) plot(t,u2,'b'); ylabel('Flujo Fe [m3/h]'); grid;
xlabel('Tiempo en minutos')
print -deps -f ene3y2u2
% ene4.m CONTROL OPTIMO PROPORCIONAL-INTEGRAL DEL REACTOR
% CAMBIOS TIPO ESCALON EN LA TEMPERATURA Tl
elear all;
ele;
% PARAMETROS DEL REACTOR alpha = 29.063; Ea = 2100; RR = 8.314; Vl = 24; CaO = 8; U = 4300; S = 24; rhol = 800; Cpl = 3; TlO = 34; H = 2100; rhoe = 1000; Cpe = 4.1868; TeO = 20; Ve = 8;
% SELECCION DE LAS VARIABLES DE ESTADO
% x1 = Ca; x2 = x2 = Cb; x3 = Tl; x4 = Te; u1 = Fl; u2 = Fe;
% PUNTOS DE OPERACION DE LAS VARIABLES ub1 = 25; ub2 = 6; xb1 = 0.6; xb2 = 7.4; xb3 = 35.3; xb4 = 32.3; KK = alpha*exp(-Ea/(RR*(272+xb3)));
% ELEMENTOS DE LA MATRIZ JACOBIANA DE A f1x1 = - KK - (1/Vl)*ub1; f1x2=0; f1x3 = - KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f1x4 = O;
f2x1 = KK; f2x2 = - (1/Vl)*ub1; f2x3 = KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f2x4 = O;
48
f3x1 = (H/(rhol*Cpl))*KK; f3x2 = O;
f3x3 = - (1/Vl)*ub1 - (U*S/(Vl*rhol*Cpl))
+ (H/(rhol*Cpl))*KK*(Ea/RR)*(272+xb3)�(-2)*xb1;
f3x4 = (U*S/(Vl*rhol*Cpl));
f4x1 = O; f4x2 =O;
f4x3 = (U*S/(Vc*rhoc*Cpc)); f4x4 = - (1/Vc)*ub2 - U*S/(Vc*rhoc*Cpc);
f1u1 = CaO/Vl - (1/Vl)*xb1; f1u2 = O;
f2u1 = - (1/Vl)*xb2; f2u2 = O;
f3u1 = TlO/Vl - (1/Vl)*xb3; f3u2 = O;
f4u1 = O; f4u2 = TcO/Vc - (1/Vc)*xb4;
A = [f1x1 f1x2 f1x3 f1x4
f2x1 f2x2 f2x3 f2x4
f3x1 f3x2 f3x3 f3x4
f4x1 f4x2 f4x3 f4x4];
B = [f1u1 f1u2
f2u1 f2u2
f3u1 f3u2
f4u1 f4u2];
c = [O 1 o o
o o 1 O];
D = [O o
o O];
% MODELO DISCRETO DEL SISTEMA
T = 1; % TIEMPO DE MUESTREO EN MINUTOS
[G H Cd Dd]=c2dm(A,B,C,D,T); nG=max(size(G)); % ORDEN DE G, # DE ECUACIONES DE ESTADO
nU=min(size(H)); % ORDEN DE H, # DE ENTRADAS
% MATRICES AMPLIADAS Gt=[ G zeros(nG,nU); ...
-Cd*G eye (nU)]
Ht=[ H; ...
-Cd*H];
% MATRICES DE PONDERACION DEL CONTROLADOR
Q = [1 O O O O O
49
% EQUACION DE RICATTI PARA EL CONTROLADOR P = zeros(nG+nU,nG+nU);for i = 1:100
P = Q + Gt'*P*Gt - Gt'*P*Ht*inv(R+Ht'*P*Ht)*Ht'*P*Gt; end
% CALCULO DE LA GANACIA Ktil DEL CONTROLADOR
Ktil = inv(R+Ht'*P*Ht)*Ht'*P*Gt;
K = Ktil(:,1:nG); % GANANCIA OPTIMA K PROPORCIONAL KI= -Ktil(:,nG+1:nG+nU); % GANANCIA OPTIMA KI INTEGRAL
% MATRICES DE PONDERACION DEL OBSERVADOR
Qo=eye(nG,nG); Ro=eye(nU,nU);
% ECUACION DE RICATTI PARA EL OBSERVADOR
Po = zeros(nG,nG);
for i = 1:500
Po = Qo + G*Po*G' - G'*Po*Cd'*inv(Ro+Cd*Po*Cd')*Cd*Po*G'; end
% CALCULO DE LA GANACIA Ko DEL OBSERVADOR OPTIMO Ko = inv(Ro+Cd*Po*Cd')*Cd*Po*G';
% CONDICIONES INICIALES x = [O;O;O;O]; xe = x;
y= [O;O] ; v= [O;O]; u= [O;O];
N = 2000; r= [0.1 3]';
% BUCLE DE CONTROL for k=1:N V = V + r - y; r1(k)=r(1)+xb2; r2(k)=r(2)+xb3; xe = G*xe + H*u + Ko'*(y-Cd*xe); % OBSERVADOR OPTIMO
u = -K*xe + KI*v;
x = G*x + H*u;
y =Cd*x; y1(k)=y(1)+xb2; y2(k)=y(2)+xb3; u1(k)=u(1)+ub1; u2(k)=u(2)+ub2; if k >= 1
r= [0.1 3]';
end if k > N/5
r= [0.1 1] ';
end if k > 3*N/5
r= [O .1 2)';
50
end
end
o/. GRAFICOS
t = linspaee(O,T*N,N); figure(1)
subplot(2,1,1)
plot(t,y1,'r',t,r1,'b'); ylabel('Cb
grid; subplot(2,1,2)
plot(t,u1,'b'); ylabel('Flujo Fl
xlabel('Tiempo en minutos')
print -deps -f ene4y1u1
figure(2)
subplot(2,1,1)
[kmol/m3]');
[m3/h] '); grid;
plot(t,y2,'r' ,t,r2,'b'); ylabel('Tl [Grados Celcius] '); grid;
subplot(2,1,2)
plot(t,u2,'b'); ylabel('Flujo Fe [m3/h]'); grid;
xlabel('Tiempo en minutos')
print -deps -f ene4y2u2
o/. enc4.m CONTROL OPTIMO PROPORCIONAL-INTEGRAL DEL REACTOR
o/. CAMBIOS TIPO ESCALON EN Cb Y TL.
elear all;
ele;
o/. PARAMETROS DEL REACTOR alpha = 29.063; Ea = 2100; RR = 8.314; Vl = 24; CaO = 8;
U = 4300; S = 24; rhol = 800; Cpl = 3; TlO = 34;
H = 2100; rhoc = 1000; Cpe = 4.1868; TeO = 20; Ve = 8;
o/. SELECCION DE LAS VARIABLES DE ESTADO % xi= Ca; x2 = x2 = Cb; x3 = Tl; x4 = Te; u1 = Fl; u2 = Fe;
o/. PUNTOS DE OPERACION DE LAS VARIABLES ub1 = 25; ub2 = 6; xb1 = 0.6; xb2 = 7.4; xb3 = 35.3; xb4 = 32.3;
KK = alpha*exp(-Ea/(RR*(272+xb3)));
o/. ELEMENTOS DE LA MATRIZ JACOBIANA DE A f1x1 = - KK - (1/Vl)*ub1; f1x2=0; f1x3 = - KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f1x4 = O;
f2x1 = KK; f2x2 = - (1/Vl)*ub1;
f2x3 = KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f2x4 = O;
f3x1 = (H/(rhol*Cpl))*KK; f3x2 = O;
51
f3x3 = - (1/Vl)*ub1 - (U*S/(Vl*rhol*Cpl)) ...
+ (H/(rhol*Cpl))*KK*(Ea/RR)*(272+xb3)A(-2)*xb1;
f3x4 = (U*S/(Vl*rhol*Cpl));
f4x1 = O; f4x2 =O; f4x3 = (U*S/(Vc*rhoc*Cpc)); f4x4 = - (1/Vc)*ub2 - U*S/(Vc*rhoc*Cpc);
f1u1 = CaO/Vl - (1/Vl)*xb1; f1u2 = O;
f2u1 = - (1/Vl)*xb2; f2u2 = O;
f3u1 = TlO/Vl - (1/Vl)*xb3; f3u2 = O;
f4u1 = O; f4u2 = TcO/Vc - (1/Vc)*xb4;
A = [f1x1 f1x2 f1x3 f1x4 f2x1 f2x2 f2x3 f2x4 f3x1 f3x2 f3x3 f3x4 f4x1 f4x2 f4x3 f4x4];
B = [f1u1 f1u2
f2u1 f2u2
f3u1 f3u2
f4u1 f4u2];
c = [O 1 O O
O O 1 O];
D = [O o
o O];
% MODELO DISCRETO DEL SISTEMA
T = 1; % TIEMPO DE MUESTREO EN MINUTOS
[G H Cd Dd]=c2dm(A,B,C,D,T);
nG=max(size(G)); % ORDEN DE G, # DE ECUACIONES DE ESTADO
nU=min(size(H)); % ORDEN DE H, # DE ENTRADAS
% MATRICES AMPLIADAS
Gt=[ G zeros(nG,nU); ...
-Cd*G eye (nU)]
Ht=[ H; ...
-Cd*H];
% MATRICES DE PONDERACION DEL CONTROLADOR
Q = [1 O O O O O
O 1 O O O O
O O 1 O O O
O O O 1 O O
O O O O 1 O
O O O O O 1];
R = [1 O;O 1];
52
% EQUACION DE RICATTI PARA EL CONTROLADOR P = zeros(nG+nU,nG+nU); for i = 1:100
P = Q + Gt'*P*Gt - Gt'*P*Ht*inv(R+Ht'*P*Ht)*Ht'*P*Gt; end
% CALCULO DE LA GANACIA Ktil DEL CONTROLADOR Ktil = inv(R+Ht'*P*Ht)*Ht'*P*Gt; K = Ktil(:,1:nG); % GANANCIA OPTIMA K PROPORCIONAL KI= -Ktil(: ,nG+1:nG+nU); % GANANCIA OPTIMA KI INTEGRAL
% MATRICES DE PONDERACION DEL OBSERVADOR Qo=eye(nG,nG); Ro=eye(nU,nU);
% ECUACION DE RICATTI PARA EL OBSERVADOR
Po = zeros(nG,nG); for i = 1:500
Po = Qo + G*Po*G' - G'*Po*Cd'*inv(Ro+Cd*Po*Cd')*Cd*Po*G'; end
% CALCULO DE LA GANACIA Ko DEL OBSERVADOR OPTIMO Ko = inv(Ro+Cd*Po*Cd')*Cd*Po*G';
% CONDICIONES INICIALES
x = [O;O;O;O]; xe = x;
y= [O; O] ; v= [O; O] ;
u=[O;O]; N = 2000; r= [0.1 3]';
% BUCLE DE CONTROL for k=1:N V = V + r - y; r1(k)=r(1)+xb2; r2(k)=r(2)+xb3; xe = G*xe + H*u + Ko'*(y-Cd*xe); % OBSERVADOR OPTIMO
u = -K*xe + KI*v; x = G*X + H*u;
y =Cd*x; y1(k)=y(1)+xb2; y2(k)=y(2)+xb3; u1(k)=u(1)+ub1; u2(k)=u(2)+ub2;
if k >= 1
r=[O .1 3] ';
end if k > N/5
r=[O. 2 1] ';
end if k > 3*N/5
r=[0.3 2] ';
end
53
end
o/. GRAFICOS
t = linspace(O,T*N,N);
figure(!) subplot(2,1,1)
plot(t,y1,'r' ,t,r1,'b'); ylabel('Cb
grid; subplot(2,1,2)
plot(t,u1,'b'); ylabel('Flujo Fl
xlabel('Tiempo en minutos')
print -deps -f enc5y1u1
figure(2)
subplot(2,1,1)
[kmol/m3] ');
[m3/h] '); grid;
plot(t,y2,'r' ,t,r2,'b'); ylabel('Tl [Grados Celcius]'); grid; subplot(2,1,2) plot(t,u2,'b'); ylabel('Flujo Fe [m3/h] '); grid; xlabel('Tiempo en minutos')
print -deps -f enc5y2u2
Programas del Capítulo V
o/. enc6.m ESTRUCTURA DE LA FUNCION DE TRANSFERENCIA DEL PROCESO
clear all
A = [-13.81 O -0.02 0;12.7 -1.04 0.02 0;11.17 O -2.8 1.79; ...
O O 3.08 -3.83]; B = [0.3 0;-0.3 0;-0.05 O;O -1.53]; C = [O 1 O O;O O 1 O];
D = [O 0;0 O];
T =1; o/. TIEMPO DE DISCRETIZACION EN MINUTOS
[G,H,Cd,Dd]=c2dm(A,B,C,D,T,'zoh');
ssd = ss(G,H,Cd,Dd,T); tfd = tf(ssd); o/. RESPUESTA: tfd ENTER
o/. [numd,dend,T]=tfdata(tfd);
o/. tfe = tf(numd,dend,T); o/. sse = ss(tfe,'min'); o/. [GE,HE,Cde,Dde]=ssdata(sse);
o/. Transfer function from input 1 to output ...
o/. -0.02251 z-3 + 0.01668 z-2 - 0.003094 z + 9.901e-006
o/. #1:
o/. z-4 - 0.7546 z-3 + 0.1431 z-2 - 0.0004569 z + 4.692e-010
54
% 0.08493 z-2 - 0.0009114 z - 3.014e-005. % #2: ------------------------------------------
% z-3 - 0.4011 z-2 + 0.001293 z - 1.327e-009
% Transfer funetion from input 2 to output ... % -0.0003796 z-3 + 4e-005 z-2 + 2.799e-005 z + 1.737e-008% #1:
% z-4 - 0.7546 z-3 + 0.1431 z-2 - 0.0004569 z + 4.692e-010
% -0.2734 z-2 - 0.0383 z - 1.363e-008% #2:
% z-3 - 0.4011 z-2 + 0.001293 z - 1.327e-009
% Sampling time: 1 minute
% ene7.m CONTROL ADAPTIVO DEL SISTEMA DE REACCION REACTOR
elear all
% PARAMETROS DEL REACTOR
alpha = 29.063; Ea = 2100; RR = 8.314; Vl = 24; Ca0 = 8;
U = 4300; S = 24; rhol = 800; Cpl = 3; Tl0 = 34;
H = 2100; rhoe = 1000; Cpe = 4.1868; Te0 = 20; Ve = 8;
% SELECCION DE LAS VARIABLES DE ESTADO
% x1 = Ca; x2 = Cb; x3 = Tl; x4 = Te; u1 = Fl; u2 = Fe;
% PUNTOS DE OPERACION DE LAS VARIABLES
ub1 = 25; ub2 = 6; xb1 = 0.6; xb2 = 7.4; xb3 = 35.3; xb4 = 32.3;
KK = alpha*exp(-Ea/(RR*(272+xb3)));
% ELEMENTOS DE LA MATRIZ JACOBIANA DE A f1x1 = - KK - (1/Vl)*ub1; f1x2=0;f1x3 = - KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f1x4 = O;
f2x1 = KK; f2x2 = - (1/Vl)*ub1;
f2x3 = KK*(Ea/RR)*(272+xb3)-(-2)*xb1; f2x4 = O;
f3x1 = (H/(rhol*Cpl))*KK; f3x2 = O;
f3x3 = - (1/Vl)*ub1 - (U*S/(Vl*rhol*Cpl))+ (H/(rhol*Cpl))*KK*(Ea/RR)*(272+xb3)-(-2)*xb1;
f3x4 = (U*S/(Vl*rhol*Cpl));
55
f4x1 = O; f4x2 =O; f4x3 = (U*S/(Ve*rhoe*Cpe)); f4x4 = - (1/Ve)*ub2 - U*S/(Ve*rhoe*Cpe);
f1u1 = Ca0/Vl - (1/Vl)*xb1; f1u2 = O;
f2u1 = - (1/Vl)*xb2; f2u2 = O; f3u1 = Tl0/Vl - (1/Vl)*xb3; f3u2 = O;
f4u1 = O; f4u2 = Te0/Ve - (1/Ve)*xb4;
A = [f1x1 f1x2 f1x3 f1x4 f2x1 f2x2 f2x3 f2x4 f3x1 f3x2 f3x3 f3x4 f4x1 f4x2 f4x3 f4x4];
B = [f1u1 f1u2 f2u1 f2u2 f3u1 f3u2 f4u1 f4u2];
e = [O 1 O o
o o 1 O];
D = [O o
o O];
t. MODELO DISCRETO DEL SISTEMA
T = 1; t. TIEMPO DE MUESTREO EN MINUTOS
[G H Cd Dd]=c2dm(A,B,C,D,T,'zoh');
ssd = ss(G,H,Cd,Dd,T);
tfd = tf(ssd);
[numd,dend,T]=tfdata(tfd);
a1=dend{1,1}(2); a2=dend{1,1}(3); a3=dend{1,1}(4); a4=dend{1,1}(5);
b1=numd{1,1}(2); b2=numd{1,1}(3); b3=numd{1,1}(4); b4=numd{1,1}(5);
c1=numd{1,2}(2); c2=numd{1,2}(3); c3=numd{1,2}(4); c4=numd{1,2}(5);
d1=dend{2,1}(2); d2=dend{2,1}(3); d3=dend{2,1}(4);
f1=numd{2,1}(2); f2=numd{2,1}(3); f3=numd{2,1}(4);
g1=numd{2,2}(2); g2=numd{2,2}(3); g3=numd{2,2}(4);
,. thi1 = [-a1 -a2 -a3 -a4 b1 b2 b3 b4 c1 c2 c3 c4]; % NN1=12 t. thi2 = [-d1 -d2 -d3 f1 f2 f3 g1 g2 g3]; % NN2=9
nn=max(size(G)); % ORDEN DE G, ORDEN DEL VECTOR DE ESTADOS x
rr=min(size(H)); % No DE ENTRADAS = No DE SALIDAS mm.=3; % nn+mm ES EL ORDEN DE GE; nn+mm.+2 ES EL ORDEN DE Ga
% MATRICES DE PONDERACION DEL CONTROLADOR
Q=eye(nn+mm.+2);
Q(nn+mm.+1,nn+mm.+1)=30; Q(nn+mm.+2,nn+mm.+2)=2;
R=[1 O;O 1];
t. MATRICES DE PONDERACION DEL OBSERVADOR
Qo=eye(nn+mm);
Ro=eye(rr);
t. CONDICIONES INICIALESNN1 = 12; NN2=9; % ORDEN DE LOS VECTORES DE PARAMETROSth1i = 0.1*[-a1 -a2 -a3 -a4 b1 b2 b3 b4 c1 c2 c3 c4] '; % NN1=12
th2i = 0.1*[-d1 -d2 -d3 f1 f2 f3 g1 g2 g3]'; % NN2=9alfa = 1000; P1i = alfa*eye(NN1); P2i = alfa*eye(NN2); % P INICIAL
56
y1=0; y1p=O; y1pp=O; y1ppp=O; y1pppp=O;
y2=0; y2p=O; y2pp=O; y2ppp=O; y2pppp=O;
u1=0; u1p=O; u1pp=O; u1ppp=O; u1pppp=O;
u2=0; u2p=O; u2pp=O; u2ppp=O; u2pppp=O;
y = [0;0]; u = [O;O]; x = [O;O;O;O]; xe = [zeros(1,nn+mm)]'; V = [O; O]; r = [0 .1;3]; o/. REFERENCIA
% VECTOR DE ESTADO INICIAL % ACCION INTEGRAL INICIAL
% BUCLE DE CONTROL ********************************** MM = 500; for k = 1:MM x=G*x+H*u; o/. MODELO DEL PROCESO
y=Cd*x; o/. y1(k)=y(1); y2(k)=y(2);
y1(k)=y(1); y2(k)=y(2); Y1(k)=y(1)+xb2; Y2(k)=y(2)+xb3;
o/. ESTIMACION DE PARAMETROS (METODO MCRM)
psi1= [y1p;y1pp;y1ppp;y1pppp;u1p;u1pp;u1ppp;u1pppp; ... u2p;u2pp;u2ppp;u2pppp]; rho1 = max(1,norm(psi1));
psin1 = psi1/rho1; Nn1 = chol(P1i'); o/. Nn1'*Nn1 = Pi1 => Nn1*Nn1' = Pii' S1 = inv(diag(Nn1*ones(NN1,1),0)); Psi= S1*P1i*S1;
psins1 = inv(S1)*psin1; rt1 = 1 + psins1'*Ps1*psins1; lamb1 = 1 - (rt1-sqrt(rt1-2-4*norm(Ps1*psins1)-2/trace(Ps1)))/2; e1 = y1(k)/rho1 - psin1'*th1i; j1 = psins1'*Ps1*psins1 + lamb1; th1 = th1i + e1*inv(S1)*Ps1*psins1/j1; aa(k)=th1(3); Hns1 = Ps1*psins1/j1; Psi = (Psi - Hns1*psins1'*Ps1)/lamb1; tt1 = abs(max(eig(Ps1))/min(eig(Ps1)) ); cmax = 100; cmin = 15; if tt1 <= cmin,
P1i = Psi; th1i = th1; elseif tt1 >= cmax,
Nnew1 = chol(Ps1'); o/. Nnew1*Nnew1' = Psi' Snew1 = inv(diag(Nnew1*ones(NN1,1),0)); Psnew1 = Snew1*Ps1*Snew1; P1i = Psnew1; th1i = th1;
end
psi2= [y2p;y2pp;y2ppp;u1p;u1pp;u1ppp;u2p;u2pp;u2ppp]; rho2 = max(1,norm(psi2));
psin2 = psi2/rho2;
Nn2 = chol(P2i'); o/. Nn2'*Nn2 = Pi2 => Nn2*Nn2' = P2i'
S2 = inv(diag(Nn2*ones(NN2,1),0));
57
Ps2 = S2*P2i*S2;
psins2 = inv(S2)*psin2;
rt2 = 1 + psins2'*Ps2*psins2; lamb2 = 1 - (rt2-sqrt(rt2-2-4*norm(Ps2*psins2)-2/trace(Ps2)))/2;e2 = y2(k)/rho2 - psin2'*th2i; j2 = psins2'*Ps2*psins2 + lamb2;
th2 = th2i + e2*inv(S2)*Ps2*psins2/j2; Hns2 = Ps2*psins2/j2;
Ps2 = (Ps2 - Hns2*psins2'*Ps2)/lamb2;
tt2 = abs(max(eig(Ps2))/min(eig(Ps2)) );
cmax = 100; cmin = 15; if tt2 <= cmin,
P2i = Ps2; th2i = th2;
elseif tt2 >= cmax,
end
Nnew2 = chol(Ps2'); % Nnew2*Nnew2' = Ps2'
Snew2 = inv(diag(Nnew2*ones(NN2,1),0));
Psnew2 = Snew2*Ps2*Snew2; P2i = Psnew2; th2i = th2;
% RECUPERACION DE LA ECUACION CANONICA CONTROLABLE
% th1 = [-ae1 -ae2 -ae3 -ae4 be1 be2 be3 be4 ce1 ce2 ce3 ce4]; % th2 = [-de1 -de2 -de3 fe1 fe2 fe3 ge1 ge2 ge3];
ae1=-th1(1); ae2=-th1(2); ae3=-th1(3); ae4=-th1(4);
be1=th1(5); be2=th1(6); be3=th1(7); be4=th1(8);
ce1=th1(9); ce2=th1(10); ce3=th1(11); ce4=th1(12);
de1=-th2(1); de2=-th2(2); de3=-th2(3);
fe1=th2(4); fe2=th2(5); fe3=th2(6);
ge1=th2(7); ge2=th2(8); ge3=th2(9);
tfe = [tf([O be1 be2 be3 be4],[1 ae1 ae2 ae3 ae4]),
tf([O ce1 ce2 ce3 ce4] ,[1 ae1 ae2 ae3 ae4]);
tf([O fe1 fe2 fe3] ,[1 de1 de2 de3]), ...
tf([O ge1 ge2 ge3] ,[1 de1 de2 de3])];
% [numed,dened,T]=tfdata(tfe);
% tfe = tf(tfe);
sse = ss(tfe);
% sse = ss(sse,'min'); [GE,HE,CE,DE]=ssdata(sse);
% CALCULO DE LA GANACIA Ko DEL OBSERVADOR
% EQUACION DE RICATTI
% Po = diag(0,3);
% for i = 1:20 % Po = Qo + GE*Po*GE' - GE'*Po*CE'*inv(Ro+CE*Po*CE'-)*CE*Po*GE';
% end % Ko = inv(Ro+CE*Po*CE')*CE*Po*GE';
[Ko,Po,Zo,Eo] = dlqe(GE,eye(nn+mm),CE,Qo,Ro);
% ESTIMACION DE ESTADOS
58
. % CALCULO DE LA GANANCIA Ka DEL CONTROLADOR Ga = [GE zeros(nn+mm,rr);-CE*GE eye(rr)]; Ha = [HE;-CE*HE];
% EQUACION DE RICATTI % Pa = diag(0,4); % for i = 1:20
% Pa = Qa + Ga'*Pa*Ga - Ga'*Pa*Ha*inv(Ra+Ha'*Pa*Ha)*Ha'*Pa*Ga; % end % Ka = inv(Ra+Ha'*Pa*Ha)*Ha'*Pa*Ga; % K = [Ka(1) Ka(2) Ka(3) Ka(4)]; % KI = -Ka(5);
[Ka,Pa,Ea] = dlqr(Ga,Ha,Q,R); K = [Ka(1,1:nn+mm)
Ka(2,1:nn+mm)]; KI = -[Ka(1,nn+mm+1) Ka(1,nn+mm+2)
Ka(2,nn+mm+1) Ka(2,nn+mm+2)]; % CALCULO DE LA LEY DE CONTROL
v = v + r - y; % ACCION INTEGRAL % r1(k)=Ref(1); r2(k)=Ref(2);
r1(k)=r(1); r2(k)=r(2); R1(k)=r(1)+xb2; R2(k)=r(2)+xb3; u = - K*xe + KI*v;
% u1(k+1)=u(1); u2(k+1)=u(2); u1(k+1)=u(1); u2(k+1)=u(2); U1(k+1)=u(1)+ub1; U2(k+1)=u(2)+ub2; if k >= 1
r= [O .1 3]';
end if k > MM/5
r= [O .2 1] '; end if k > 3*MM/5
r=[0.3 2] '; end
% UPDATE y1p=y1(k); y1pp=y1p; y1ppp=y1pp; y1pppp=y1ppp;
y2p=y2(k); y2pp=y2p; y2ppp=y2pp; u1p=u1(k+1); u1pp=u1p; u1ppp=u1pp; u1pppp=u1ppp;
u2p=u2(k+1); u2pp=u2p; u2ppp=u2pp; u2pppp=u2ppp;
end % FIN DEL BUCLE **********************
% GRAFICOS t = linspace(O,T*MM,MM);
figure (1)
subplot(2,1,1)
59
plot(t,Y1,'r',t,R1,'b'); ylabel('Cb grid; subplot(2,1,2) plot(t,U1(2:MM+1),'b'); ylabel('Flujo xlabel('Tiempo en minutos') print -deps -f enc7y1u1
figure(2) subplot(2,1,1) plot(t,Y2,'r',t,R2,'b'); ylabel('Tl subplot(2,1,2) plot(t,U2(2:MM+1),'b'); ylabel('Flujo xlabel('Tiempo en minutos') print -deps -f enc7y2u2
[kmol/m3] ' ) ;
Fl [m3/h]'); grid;
[Grados Celcius]'); grid;
Fe [m3/h] '); grid;
60
BIBLIOGRAFÍA
[1] Camacho, Eduardo F. y Bordons, Carlos. Model P'redictive Control. Springer -
Verlag Berlín Heidelberg New York, 1999.
[2] MathWorks, Inc. MATLAB Reference Guide. Prentice Hall, Englewood Cliffs,
New Jersey, 1996.
[3] Ogata, Katushito. Designing Linear Control Systems with MATLAB. Prentice
Hall Englewood Cliffs New Jersey, 1994.
[ 4] Rojas-Moreno, Arturo. Control Avanzado - Diseño y Aplicaciones en Tiempo
Real. Publicación Independiente, 2001.
[5] Sripada, N. Rao y Fisher, D. Grant. "lmproved Least Squares Identification,"
int. J. Control, vol. 46, no. 6, 1889 - 1913 (Die 1987).