Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORY (TCLAB)
Universidad Nacional de Colombia, Sede Medellín. Cra. 80 x Cl. 65. Barrio Robledo.
brvargasr@unal.edu.co
cmonterroza@unal.edu.co
lasierramo@unal.edu.co
Abstract: This paper presents a study on the analysis and design of observer techniques
applied to the Temperature Control Laboratory (TCLAB) plant. The linearization of the
plant is performed, and different observation methods are explored, including Luenberger
Observer, Sliding Mode Observer (SMO), Unknown Input Observer (UIO) and Kalman
Filter.
1
El objetivo de la planta es lograr mantener la temperatura de Tabla 1. Variables y parámetros de la planta
uno o de los dos transistores en un valor de referencia deseado,
modificando el ciclo de dureza del voltaje del transistor. PARÁMETRO DESCRIPCIÓN VALOR INICIAL
Masa del
El TCLab permite la flexibilidad de aplicar muchos conceptos 𝑚𝑄 1.9517𝑥10−3 𝑘𝑔
transistor
de la Ingeniería de Control en general, tales como:
𝑚𝑆 Masa del sensor 2.3𝑥10−4 𝑘𝑔
modelamiento de sistemas dinámicos, identificación de
Masa del
sistemas, control manual, control automático en el dominio de 𝑚𝐻 6𝑥10−3 𝑘𝑔
disipador
la frecuencia, control automático en variables de estado, entre
Calor específico
muchos otros.
del transistor
y del sensor 𝐽
𝐶𝑝 1900
(ambos están 𝑘𝑔 𝐾
hechos del
mismo material
Calor específico 𝐽
𝐶𝐻 880
del disipador 𝑘𝑔 𝐾
Coeficiente de
transferencia 1 𝑊
𝐾𝑄𝐻𝑆 de calor entre el
transistor y el 35.7 𝐾
disipador
Coeficiente de
transferencia 1 𝑊
Fig. 1. Planta no lineal TCLab. 𝐾𝑄𝑆 de calor entre el
transistor y el 56.55 𝐾
Puede aplicarse un voltaje a cada uno de los dos transistores sensor
usando los pines digitales 3 y 5 del Arduino. Coeficiente de
Al tratarse de pines digitales, para lograr una acción de control transferencia 1 𝑊
continua, lo que en realidad debe aplicarse es un voltaje 𝐾𝑄𝐴 de calor del
Modulado por Ancho de Pulsos (PWM). transistor al 62.5 𝐾
ambiente
La planta real tiene tres elementos que comparten temperatura: Coeficiente de
El transistor, el sensor y un disipador metálico de calor. Es transferencia 1 𝑊
posible aplicar balances de energía para obtener un modelo que 𝐾𝐴𝑆 de calor del
involucre las tres temperaturas. Dicho modelo se muestra a sensor al 180 𝐾
continuación: ambiente
Coeficiente de
𝑑𝑇𝑄 transferencia
𝐶𝑝 𝑚𝑄 = 𝐾𝑄𝐻𝑆 (𝑇𝐻 − 𝑇𝑄 ) + 𝐾𝑄𝑆 (𝑇𝑠 − 𝑇𝑄 ) 1 𝑊
𝑑𝑡 𝐾𝐴𝐻𝑆 de calor del
+ 𝐾𝑄𝐴 (𝑇𝑎 − 𝑇𝑄 ) + 𝐾𝑢 𝑢 disipador al 14 𝐾
ambiente
𝑑𝑇𝑠 Coeficiente de
𝐶𝑝 𝑚𝑠 = 𝐾𝑄𝑆 (𝑇𝑄 − 𝑇𝑆 ) + 𝐾𝑆𝐴 (𝑇𝑎 − 𝑇𝑆 ) 𝑊
𝑑𝑡 𝐾𝑢 potencia de 0.053
entrada % 𝑑𝑒 𝑑𝑢𝑟𝑒𝑧𝑎
𝑑𝑇𝐻 Ciclo de dureza
𝐶𝐻 𝑚𝐻 = 𝐾𝑄𝐻𝑆 (𝑇𝑄 − 𝑇𝐻 ) + 𝐾𝐴𝐻𝑆 (𝑇𝑎 − 𝑇𝐻 ) Variable de entrada
𝑑𝑡 𝑢 del voltaje de
[%]
entrada
En este modelo se despreció el efecto del calor por radiación. Temperatura del Variable de estado
𝑇𝑄
transistor [K]
Variables y parámetros de la planta. Temperatura del Variable de estado
𝑇𝑆
sensor [K]
A continuación, se especifican los valores numéricos de los Temperatura del Variable de estado
parámetros utilizados para las diferentes simulaciones 𝑇𝐻
disipador [K]
realizadas. Depende del lugar
Temperatura
𝑇𝑎 de operación del
ambiente
TCLab
2
1.2 Linealización en 313.8573K y la temperatura del disipador se estabiliza en
301.4554K.
Para realizar la linealización alrededor de un punto de equilibrio
se tiene el siguiente esquema de modelo lineal: Linealización.
𝑑(∆𝑥)
= 𝐴∆𝑥 + 𝐵∆𝑢
𝑑𝑡 Haciendo uso de MATLAB, se realiza la linealización con los
En donde: comandos jacobian y eval. En este script se definen los
• ∆𝑥̇ corresponde al vector que contiene las dinámicas parámetros, ecuaciones, variables de estado y entradas del
de las variables de estado. modelo.
• ∆𝑥 corresponde al vector de variables de estado.
• ∆𝑢 corresponde al vector de entradas del sistema Representación matricial en variables de estado.
• A y B corresponden a las matrices jacobianas.
Las matrices de linealización se presentan a continuación,
Para este proceso se definen las funciones:
𝑓1 = 𝑥1 ; 𝑓2 = 𝑥2 ; 𝑓3 = 𝑥3 −0.0118 0.0026 0.0065
𝐴 = [ 0.0222 −0.0308 0 ]
La definición de la matriz A que acompaña al vector de las 0.0040 0 −0.0262
variables de estado en el modelo lineal es:
0.0097
𝐵=[ 0 ]
∂𝑓1 ∂𝑓1 ∂𝑓1
0
∂𝑥1 ∂𝑥2 ∂𝑥3
∂𝑓2 ∂𝑓2 ∂𝑓2 𝐶 = [1 0 0]
𝐴= |𝑥 , 𝑢 |
∂𝑥1 ∂𝑥2 ∂𝑥3 𝑒 𝑒
∂𝑓3 ∂𝑓3 ∂𝑓3 𝐷 = [0]
Análisis de estabilidad
[∂𝑥1 ∂𝑥2 ∂𝑥3 ]
Haciendo uso del comando eig de MATLAB, se encuentran los
Además, se tiene como definición para la matriz B:
∂𝑓1 valores propios de la matriz A, los cuales son:
∂u −0.0078
∂𝑓2 𝜆1,2,3 = [ −0.0339 ]
𝐵= |𝑥𝑒 , 𝑢𝑒 |
∂u −0.0270
∂𝑓3
[ ∂u ] Se puede observar que los tres polos tienen parte real negativa.
Por lo tanto, el sistema es estable.
Para las salidas el modelo lineal se representa como:
1.3 Comparación modelo lineal vs modelo no lineal
𝑑(∆𝑦)
= 𝐶∆𝑥 + 𝐷∆𝑢 En el proceso de aproximación del modelo no lineal al lineal, se
𝑑𝑡
Donde C y D corresponden nuevamente a matrices jacobianas. trabaja con cambios pequeños en el modelo del sistema y se
En este caso, la salida corresponde a la variable de estado 𝑥1, la realiza el análisis en pequeña señal. Para hacer la comparación
cual hace referencia a la temperatura del transistor 𝑇𝑄 entre el modelo no lineal y el lineal se debe tener en cuenta esta
región de trabajo.
Punto de operación
Como la linealización se hace alrededor de un punto de
Haciendo uso de un programa de MATLAB y la función fsolve equilibrio se tiene que
se encontró que el punto de operación ante una entrada PWM
con ciclo de 20% es: 𝑥 = 𝑥𝑒 + ∆𝑥
En donde:
319.9658 • 𝑥 es el vector de estados del sistema no lineal
[𝑥𝑒 ] = [313.8573] • ∆𝑥 es un vector variable de desviación
301.4554 • 𝑥𝑒 es un vector constante.
Por ello, para hallar la entrada del sistema lineal, se le debe
Se concluye que, ante una entrada de operación de 20% de ciclo restar el punto de operación a la entrada del sistema no lineal:
de dureza, la temperatura en el transistor alcanza una magnitud
de 319.9658K, mientras que el sensor alcanza su estado estable ∆𝑢 = 𝑢 − 𝑢𝑒
3
Además, para encontrar la variable de salida del sistema no Comparación temperatura del disipador.
lineal, es necesario sumarle el punto de operación a la salida del
sistema lineal:
𝑦 = ∆𝑦 + 𝑦𝑒
1 0 0
𝑂𝑏 = [−0.0117 0.00261 0.0065 ]
0.0002 −0.0001 −0.0002
Fig. 2. Comparación temperatura del transistor
Donde su rango es:
Comparación temperatura del sensor.
𝑟𝑎𝑛𝑘 (𝑂𝑏) = 3
2. OBSERVADOR DE LUENBERGER
𝐶
𝑂=[ 𝐶𝐴 ]
⋮
𝑛−1
𝐶𝐴
4
intervalo [0 𝑡1 ] es suficiente para determinar un estado
𝑆𝑃% 𝑅2 4
desconocido 𝑥 (𝑡0 ) = 𝑥0 . 𝑅 = ln ( ) ; 𝜉=√ 2 ; 𝜔𝑛 =
100 𝑅 + 𝜋2 𝜉 ∙ 𝑇𝑠
Para el diseño de este observador, se tiene el modelo de la planta
linealizada representado como Obteniendo como resultado:
𝑥̇ = 𝐴𝑥 + 𝐵𝑢 𝑦 = 𝐶𝑥 𝑃𝑥 = 𝑠 2 + 0.02𝑠 + 0.002
Para este tipo de estimación, el observador propuesto es una Cuyas raíces son 𝜆1,2 −0.01 ± 0.008𝑖.
copia del modelo linealizado.
Para el diseño del observador, debido a que el sistema cuenta
𝑥̂̇ = 𝐴𝑥̂ + 𝐵𝑢 + 𝐾𝑒 (𝑦 − 𝑦̂) 𝑦̂ = 𝐶𝑥̂ con tres variables de estado, es necesario definir tres valores
propios deseados. En este caso se agrega un polo lo
En donde 𝑦̂ representa la salida estimada y 𝑥̂̇ representa el suficientemente alejado del polo dominante para así garantizar
estado estimado. El diagrama del sistema en lazo cerrado con el que la dinámica no se ve afectada por esta adición, finalmente
observador se presenta a continuación el polinomio deseado se define como:
Obteniendo
Fig. 5. Diagrama sistema con el observador de Luenberger 0.1512
𝐾𝑒 = [−7.0108]
La selección de los parámetros del polinomio deseado se hizo 1.9044
con base en las simulaciones realizadas para el proceso de
linealización, en las cuales se observa un tiempo de A continuación, se presentan los resultados obtenidos.
establecimiento de aproximadamente 800 segundos en lazo
abierto y una respuesta dominantemente de primer orden. Comparación salida sistema lineal vs observador
5
Error entre el sistema lineal y el observador Comparación temperatura del sensor sistema no lineal vs
observador
Fig. 7. Error sistema lineal Fig. 9. Comparación salida 𝑇𝑆 sistema no lineal vs observador
En el modelo lineal se observa que el observador sigue con Comparación temperatura del disipador sistema no lineal vs
lealtad el comportamiento de la salida medida, sin embargo, es observador
importante implementar este observador en la planta no lineal
para poder visualizar el comportamiento de las variables
estimadas y no medidas.
6
Error entre el sistema no lineal y el observador 0.004314
𝐷 = [ 0.0127 ] → 𝑀𝑎𝑡𝑟𝑖𝑧 𝑎𝑠𝑜𝑐𝑖𝑎𝑑𝑎 𝑎 𝑙𝑎𝑠 𝐸𝐷
0.013528
0.004314
𝐶𝐷 = [1 0 0] [ 0.0127 ] = [0.004314]
0.013528
Cálculo de E:
−0.004314
𝐸 = −𝐷(𝐶𝐷)−1 = [ −0.0127 ] [0.004314]−1
Fig. 11. Error sistema no lineal. −0.013528
7
Con ayuda del comando eig() en Matlab, se encuentra que los λ1 = −0.0328, λ2 = −0.0769 y λ3 = −1.
valores propios del espacio de estados son λ1 = −0.057,
λ2 = −0.0084 y λ3 = −0.022, con esto se establece que el Finalmente, se tiene la siguiente dinámica del error:
sistema es detectable porque todos los valores propios son
negativos, por lo tanto, se puede continuar con el diseño. 𝑒̇1 −1 0 0 𝑒1
[𝑒̇2 ] = [ 0 −0.0672 −0.0222] [𝑒2 ]
Ahora se introduce un teorema: 𝑒̇3 0 −0.0149 −0.0425 𝑒3
Cálculo de N:
Fig. 12. Observador con entradas desconocidas en Simulink.
0 0 0 Se realiza la simulación teniendo en cuenta las siguientes
𝑁 = 𝑃𝐴 − 𝑘𝐶 = [0.0895 −0.0672 −0.0222] características:
0.0575 −0.0149 −0.0425
𝑘1
- La entrada conocida inicia con el valor de operación
− [𝑘 2 ] [ 1 0 0 ]
que es 20%, a los 300 segundos se introduce un cambio
𝑘3
que la deja en un valor final de 50%.
Entonces,
- La entrada desconocida (Tamb) inicia con un valor de
operación de 293°K a los 100 segundos se produce un
0 0 0 𝑘1 0 0
cambio y termina con un valor de 298°K.
𝑁 = [0.0895 −0.0672 −0.0222] − [𝑘2 0 0]
- Las condiciones iniciales para el observador
0.0575 −0.0149 −0.0425 𝑘3 0 0 comienzan en las condiciones iniciales para la planta,
pero multiplicadas por un factor de 0.1 para evidenciar
−𝑘1 0 0
las diferencias de ambas.
→ 𝑁 = [0.0895 − 𝑘2 −0.0672 −0.0222]
0.0575 − 𝑘3 −0.0149 −0.0425 Primero, se obtiene la salida que es la temperatura del transistor
frente a lo qué se evidencia un buen comportamiento del
No se hace uso del comando acker debido a qué es una matriz observador con entradas desconocidas. A los 100 y 300
singular y dicho comando en Matlab con esta particularidad no segundos se observan los cambios introducidos en las entradas
se ejecuta correctamente. Por lo tanto, se escogen los siguientes frente a lo qué el observador responde de manera apropiada.
valores de constantes de manera que los valores de los polos de
la matriz N sean similares a los de la matriz A:
8
La diferencia entre la salida que es la temperatura del transistor
y los otros estados es que dicha temperatura es la única que se
ve afectada directamente por la entrada, como se vio en las
ecuaciones de diseño, dónde para los demás estados no
involucran la entrada conocida.
4. FILTRO DE KALMAN
𝑥𝐾 = 𝐻𝐾 𝑥𝐾 + 𝑣𝐾
En el cual
• 𝑤𝐾−1 Representa el ruido blanco generado por la
incertidumbre del modelo, el cual tiene media cero y
matriz de covarianza 𝑄𝐾
• 𝑣𝐾 Representa el ruido blanco generado por la
medición, el cual tiene media cero y matriz de
covarianza 𝑅𝐾
9
0.9768 0.0050 0.0125 𝑃0 = 𝑄
𝐹 = [ 0.0426 0.9404 0.0003]
0.0077 0 0.9490 Etapa de predicción
0.0192 En esta etapa, se realiza una predicción del estado actual del
𝐺 = [ 0.0004 ] sistema basándose en las estimaciones anteriores y el modelo
0.0001 matemático del sistema. El filtro de Kalman utiliza dos
variables clave: el estado estimado anterior 𝑥 − y la covarianza
𝐻 = [1 0 0] asociada con la incertidumbre de la estimación del estado
anterior 𝑃− . A partir de estos valores, se calcula la predicción
Además, se deben definir los valores que deben tomar las
del estado siguiente y su covarianza asociada utilizando el
matrices de covarianzas 𝑄 y 𝑅, teniendo en cuenta que, si existe
modelo del sistema y la matriz de transición del estado.
mucho ruido en los datos medidos, el valor de la matriz Q debe
considerarse grande, mientras que si existe incertidumbre en las
𝑃𝐾 − = 𝐹𝐾−1 𝑃+ 𝐾−1 𝐹𝐾−1 𝑇 + 𝑄𝐾−1
ecuaciones diferenciales que rigen el modelo, el valor de la
matriz R debe considerarse grande.
𝑥̂ − = 𝐹𝐾−1 𝑥 + 𝐾−1 + 𝐺𝐾−1 𝑢𝐾−1
Para este caso de la planta TCLAB, se definen los siguientes
valores. 𝐾𝐾 = 𝑃𝐾 − 𝐻𝐾 𝑇 (𝐻𝐾 𝑃𝐾 − 𝐻𝐾 𝑇 + 𝑅𝐾 )−1
𝑅 = 𝐼𝑛𝑐𝑒𝑟𝑡𝑖𝑑𝑢𝑚𝑏𝑟𝑒 𝑑𝑒𝑙 𝑚𝑜𝑑𝑒𝑙𝑜 2 = 0.01 Se realiza el montaje del código en Matlab y se comparan las
simulaciones, teniendo en cuenta los estados de la planta
Condiciones iniciales discretizada y la estimación de cada uno de los estados después
de haber pasado por el filtro de Kalman.
Para el computo del algoritmo del filtro del Kalman, es
necesario el establecimiento de las condiciones iniciales del En la Fig. 17, se observa el estado 𝑋1 que es la temperatura del
estado a posteriori y de la matriz de la covarianza del error a transistor, en el cual se observa que la salida real corresponde
posteriori, para este diseño se definieron con la salida medida, por otro lado, el filtro logra realizar una
buena estimación, permaneciendo en todo el recorrido en el
17.3726 punto medio del ruido.
̂0 + = [12.5218]
𝑥
2.6523
10
Fig. 17. Filtro de Kalman variable 𝑇𝑄 Fig. 19. Filtro de Kalman variable TS
En la Fig. 18, se muestra el error de estimación de la Como se mencionó, debido a que en la temperatura del sensor
temperatura del transistor, mostrada en la anterior figura. El se tiene una mejor filtración del ruido, es de esperar que el error
error comienza en 4 unidades de temperatura debido a que el sea menor, y así se observa en la Fig. 20.
observador, más específicamente el Xapriori se inicializa con el
vector de condiciones iniciales multiplicado por un factor de
0.8, para que la convergencia del observador a la medición sea
notoria. En el resto del tramo se observa error de estimación
inferior a 0.25 [K].
11
Fig. 23. Esquema Simulink Filtro de Kalman y planta no lineal
12
Finalmente, en la Fig. 26 se evidencia la comparación de la Siendo 𝒆𝒚 = 𝒚 − 𝒚 ̂, el error de estimación en la medición. La
temperatura del disipador con el filtro y en la planta no lineal. dinámica de este error se muestra a continuación:
Al igual que en las simulaciones anteriores, se observa muy
buena aproximación. 𝑒𝑦̇ = 𝑦̇ − 𝑦̂̇
𝑒𝑦̇ = 𝐴11 𝑒𝑦 + 𝐴12 𝑒𝑥2 − 𝐿1 𝑠𝑖𝑔𝑛(𝑒𝑦 )
Siendo 𝒆𝒙𝟐 = 𝒙𝟐 − 𝒙 ̂,
𝟐 el error de estimación de la parte no
medible. Ahora bien, se debe hallar la dinámica de este error,
teniendo en cuenta que ya hemos elegido una 𝐿1 tal que el
sistema converja de acuerdo con la superficie deslizante hasta
el origen (𝑠 = 𝑒𝑦 ).
̇ = 𝑥2̇ − 𝑥̂2̇
𝑒𝑥2
𝑒𝑥2
̇ = 𝐴22 𝑒𝑥2 − 𝐿2 𝐿1 𝑠𝑖𝑔𝑛(𝑒𝑦 )
13
𝑦̂̇ = −0.017𝑦̂ + [0.0047 0.0076]𝑥
̂2 + 0.014𝑢
+[0.1]𝑠𝑖𝑔𝑛(𝑒𝑦 )
0.041 −0.053 0
̂2̇ = [
𝑥 ] 𝑦̂ + [ ]𝑥
̂
0.0053 0 −0.019 2
−17.5]
{ +[ [0.1]𝑠𝑖𝑔𝑛(𝑒𝑦 )
29.5
14
Fig. 30. OMD de las temperaturas 𝑇𝑆 y 𝑇𝐻 vs. modelo
De la Fig. 30 se concluye que el observador realiza un buen Fig. 33. Aplicándole zoom a la figura anterior.
trabajo estimando estos estados del sistema que no son
medibles, aunque en tenga muchas oscilaciones en el transitorio Como era de esperarse, el modelo No Lineal se comporta muy
y al realizar cambios a la entrada, ratificando esto con la Fig. similar al modelo Lineal anteriormente descrito, donde se puede
31, donde se muestra que en estos intervalos el error tiene una concluir que el OMD es estable en tiempo finito, tal como se
amplitud significativa antes de irse a cero. Estos resultados observa en la Fig. 33 siendo la gráfica azul la curva descrita por
fueron obtenidos usando el método de Euler para simularlo el observador. Ahora bien, tal como se muestra en la Fig. 34, el
desde el archivo Diseno.m de Matlab usando el modelo lineal error obtenido se mantiene en cero, lo que confirma el buen
de la planta. Para el caso de la simulación del modelo No Lineal funcionamiento del observador.
se hizo uso de Simulink, arrojando los resultados que se
mostrarán a continuación.
15
Fig. 34. Error de estimación de 𝑇𝑄 del modelo No Lineal.
Fig. 36. Aplicándole zoom a la figura anterior.
Fig. 35. 𝑇𝑆 No Lineal vs. OMD Fig. 37. 𝑇𝐻 No Lineal vs. OMD
16
altas, con respecto a las condiciones iniciales de la
planta real llegando un error super bajo, lo que lo hace
muy buen observador.
6. CONCLUSIONES