Está en la página 1de 314

CONTROL DE PROCESOS

PRÁCTICO Y AVANZADO
ARTURO ROJAS MORENO, Ph.D.

F Modelado de Procesos
F Sistemas de Instrumentación
F Elementos Finales de Control
F Control PID SISO
F Estrategias de Control PID
F Sı́ntesis de Controladores SISO y MIMO
F Control Fuzzy
F Programas fuente en MATLAB

TECSUP
II

CONTROL DE PROCESOS PRÁCTICO Y AVANZADO

c 2011 Arturo Rojas-Moreno. Todos los derechos reservados.


Copyright

ISBN

Queda rigurosamente prohibida la reproducción total o parcial de esta obra por cualquier
medio o procedimiento, sin la autorización escrita del propietario del “Copyright”.
A la Memoria de mis Padres
Índice general

III

Prefacio IX

1. Introducción 1
1.1. Sistema de Control a Lazo Cerrado . . . . . . . . . . . . . . . . . . . . 1
1.2. Sistema de Control a Lazo Abierto . . . . . . . . . . . . . . . . . . . . 5
1.3. Dinámica Lineal de los Elementos Ideales . . . . . . . . . . . . . . . . 7

2. El Proceso a Controlar 11
2.1. Procesos con Comportamiento Proporcional . . . . . . . . . . . . . . . 11
2.2. Procesos de Primer Orden . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3. Procesos de Segundo Orden . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4. Procesos Integrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5. Procesos con Tiempo Muerto . . . . . . . . . . . . . . . . . . . . . . . 21
2.6. Procesos de Orden Superior . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7. El Motor DC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8. Modelo MIMO del Proceso Tanque Cerrado . . . . . . . . . . . . . . . 28
2.8.1. Descripción del Proceso . . . . . . . . . . . . . . . . . . . . . . 28
2.8.2. Modelo Dinámico No Lineal del Proceso . . . . . . . . . . . . . 30
2.8.3. Modelo Dinámico de Lagrange del Proceso . . . . . . . . . . . 33
2.8.4. Modelo Dinámico Lineal del Proceso . . . . . . . . . . . . . . . 33
2.9. Respuesta Transitoria de los Procesos . . . . . . . . . . . . . . . . . . 34
2.9.1. Respuesta al Escalón . . . . . . . . . . . . . . . . . . . . . . . . 34
2.9.2. Método del 28.3 % y 63.2 % . . . . . . . . . . . . . . . . . . . . 36
2.9.3. Otras Respuestas al Escalón y al Impulso . . . . . . . . . . . . 37
2.10. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3. El Sistema de Medición 45
3.1. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.1. Caracterı́sticas Estáticas y Dinámicas . . . . . . . . . . . . . . 46

4. Elementos Finales de Control 51


4.1. Caracterı́sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2. La Válvula de Control Automática (VCA) . . . . . . . . . . . . . . . . 52
4.2.1. Dimensionamiento de una VCA . . . . . . . . . . . . . . . . . . 52
4.2.2. Carcterı́stica de una VCA Operando . . . . . . . . . . . . . . . 55
VI ÍNDICE GENERAL

5. Control PID SISO 57


5.1. Sistema de Control SISO . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2. Especificaciones de Diseño . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.1. Especificaciones de Diseño en el Dominio del Tiempo . . . . . . 59
5.2.2. Especificaciones de Diseño en el Dominio de la Frecuencia . . . 61
5.3. Modos de Control PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3.1. La Banda Proporcional BP % . . . . . . . . . . . . . . . . . . . 66
5.3.2. Control Proporcional . . . . . . . . . . . . . . . . . . . . . . . . 70
5.3.3. Control Integral . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3.4. Control Derivativo . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3.5. Control PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.4. Control de Dos Posiciones . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.5. Estructuras del Controlador PID . . . . . . . . . . . . . . . . . . . . . 76
5.6. Métodos de Sintonización de Controladores PID . . . . . . . . . . . . 79
5.6.1. Métodos Basados en la Curva de Reacción . . . . . . . . . . . . 79
5.6.2. Métodos a Lazo Cerrado . . . . . . . . . . . . . . . . . . . . . . 91
5.6.3. Métodos Basados en la Minimización de un Índice . . . . . . . 103
5.7. El Efecto Windup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.8. El Algoritmo PID Discreto Modificado . . . . . . . . . . . . . . . . . . 117
5.9. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

6. Estrategias de Control 125


6.1. Control en Cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.2. Control de la Razón . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.3. Control Anticipativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.4. Control Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.5. Control Selectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.6. Control de Rango Partido . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.7. Control con Autosintonización de Parámetros . . . . . . . . . . . . . . 140
6.8. Control Adaptativo con Modelo Referencial . . . . . . . . . . . . . . . 141
6.9. Autosintonización con Reconocimiento de Patrones . . . . . . . . . . . 143

7. Sı́ntesis de Controladores SISO y MIMO 147


7.1. Método de Dahlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.2. Control MIMO vı́a Desacoplamiento . . . . . . . . . . . . . . . . . . . 151
7.2.1. No Interacción . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.2.2. Exactitud Estática . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.2.3. Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.3. Control MIMO con Desacopladores . . . . . . . . . . . . . . . . . . . . 161
7.4. Control MIMO empleando el Criterio de Hurwitz . . . . . . . . . . . . 164
7.4.1. Procedimiento de Diseño . . . . . . . . . . . . . . . . . . . . . 164
7.4.2. El Criterio de Hurwitz . . . . . . . . . . . . . . . . . . . . . . . 165
7.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
ÍNDICE GENERAL VII

8. Control Predictivo 169


8.1. Control Predictivo Basado en Modelos . . . . . . . . . . . . . . . . . . 169
8.2. Principios del Control Predictivo . . . . . . . . . . . . . . . . . . . . . 170
8.3. El Modelo del Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.4. El Controlador Predictivo . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.4.1. Objetivo del Controlador . . . . . . . . . . . . . . . . . . . . . 176
8.4.2. Respuesta Libre y Respuesta Forzada . . . . . . . . . . . . . . 178
8.4.3. La Ley de Control SISO . . . . . . . . . . . . . . . . . . . . . . 180
8.5. Procedimiento de Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8.6. Ejemplo de Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8.7. Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

9. Control Fuzzy 193


9.1. El Controlador Fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.2. Diseño de Sistemas de Control Fuzzy . . . . . . . . . . . . . . . . . . . 194
9.2.1. Control Fuzzy del Manipulador Robótico de 1GDL . . . . . . . 194

A. Sistemas Continuos 209


A.1. La Transformada Unilateral de Laplace . . . . . . . . . . . . . . . . . 209
A.1.1. Definición y Ejemplos . . . . . . . . . . . . . . . . . . . . . . . 209
A.1.2. La Transformada Inversa de Laplace . . . . . . . . . . . . . . . 212
A.1.3. La Función de Transferencia . . . . . . . . . . . . . . . . . . . . 213
A.1.4. Fracciones Parciales . . . . . . . . . . . . . . . . . . . . . . . . 214
A.1.5. Álgebra de Bloques . . . . . . . . . . . . . . . . . . . . . . . . . 219
A.2. Matrices y Determinantes . . . . . . . . . . . . . . . . . . . . . . . . . 220
A.2.1. Operaciones con Matrices . . . . . . . . . . . . . . . . . . . . . 221
A.2.2. Tipos de Matrices . . . . . . . . . . . . . . . . . . . . . . . . . 223
A.2.3. Determinantes y Matriz Inversa . . . . . . . . . . . . . . . . . . 224
A.2.4. Rango, Eigenvectores y Pseudoinversas . . . . . . . . . . . . . . 229
A.2.5. Diagonalización de Matrices y Formas Canónicas . . . . . . . . 234
A.3. Variables de Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
A.3.1. Ejemplo de Introducción . . . . . . . . . . . . . . . . . . . . . . 235
A.3.2. Definición de Variables de Estado . . . . . . . . . . . . . . . . . 237
A.3.3. Matriz de Transferencia y Estabilidad . . . . . . . . . . . . . . 238
A.3.4. Controlabilidad y Observabilidad . . . . . . . . . . . . . . . . . 241
A.3.5. Solución de la Ecuación de Estado de SLITs Continuos . . . . 244
A.3.6. Formas Canónicas SISO en el Espacio de Estado . . . . . . . . 251
A.4. Discretización Directa . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
A.5. Sistemas con Tiempo Muerto . . . . . . . . . . . . . . . . . . . . . . . 258
A.6. Linealización de Sistemas Continuos . . . . . . . . . . . . . . . . . . . 260
A.6.1. Caso SISO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
A.6.2. Caso MIMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
A.7. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
VIII ÍNDICE GENERAL

B. Fundamentos de MATLAB y Simulink 275


B.1. Fundamentos de MATLAB . . . . . . . . . . . . . . . . . . . . . . . . 275
B.1.1. El Entorno de Trabajo de MATLAB . . . . . . . . . . . . . . . 275
B.1.2. Comandos y Funciones Generales . . . . . . . . . . . . . . . . . 276
B.1.3. Creación de Archivos Tipo m . . . . . . . . . . . . . . . . . . . 278
B.1.4. Matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
B.1.5. Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
B.1.6. Matemática Simbólica . . . . . . . . . . . . . . . . . . . . . . . 287
B.1.7. Simulación de un Sistema de Control . . . . . . . . . . . . . . . 289
B.2. Fundamentos de Simulink . . . . . . . . . . . . . . . . . . . . . . . . . 292
B.2.1. Fundamentos del Software Simulink . . . . . . . . . . . . . . . 292
B.2.2. Creación de un Modelo Simulink . . . . . . . . . . . . . . . . . 296

B
. ibliografı́a 299

Indice
.́ alfabético 302
Prefacio

Esta publicación está dirigida a todos los profesionales, cientı́ficos, especialistas y


estudiantes interesados en familiarizarse con el modelado, la simulación y el control
de procesos industriales. Tanto modelos lineales como no lineales se emplean en esta
publicación para representar la dinámica de los procesos tratados.
El libro se denomina Control de Procesos Práctico y Avanzado porque su con-
tenido abarca tanto temas relacionados con el diseño práctico de sistemas de control
de una entrada y una salida empleando controladores PID (Proporcional Integral
Derivativo), ası́ como también temas avanzados del control de procesos tales co-
mo: Control PID multivariable, control de procesos empleando estrategias (cascada,
razón, rango partido, anticipativo, selectivo) y control con inteligencia artificial (con-
trol fuzzy y control neuronal).
En todos los Capı́tulo que lo conforman, este libro usa intensivamente el software
MATLABr para el cálculo, diseño y simulación de sistemas de control de proce-
sos. También se emplea el software Simulinkr , el cual trabaja dentro del entorno
MATLAB. Simulink usa diagramas de bloques en su programación. El Apéndice B:
Fundamentos de MATLAB y Simulink, es lectura primordial para los lectores poco
familiarizados con estos programas.
Todos los programas empleados en este libro se pueden ejecutar sin problemas
en versiones recientes de MATLAB. Estos programas fuente se pueden descargar del
enlace Descargas de: www.ctlima.com.
Para asimilar sin dificultad el contenido de este libro, el lector requiere haber lle-
vado los cursos de matemática, fı́sica y fundamentos de control automático dictados
en una Universidad o Instituto. Sin embargo, se recomienda que el lector se remita
al Apéndice A: Matemáticas para el Control de Procesos, donde, empleando intensi-
vamente la herramienta MATLAB, se hace un repaso de los tópicos de matemáticas
requeridos en el desarrollo de los Capı́tulos de este libro.
El procedimiento de diseño de sistemas de control empleado en este libro com-
prende básicamente: la formulación del problema a resolver, el modelado del proceso,
el diseño del algoritmo de control, y verificación del sistema de control diseñado vı́a
simulación.
Esta publicación puede ser usada como:

Libro texto para cursos relacionados con el Control de Procesos.

Libro texto para cursos relacionados con el Control Avanzado de Procesos.

Libro de consulta en diferentes cursos de instrumentación y control.


X Prefacio

Libro de consulta en temas relacionados con el diseño e implementación de


sistemas de control.
La organización de este libro comprende los capı́tulos siguientes:

Capı́tulo 1: Introducción. Este capı́tulo presenta una introducción sucinta so-


bre los sistemas de control a lazo cerrado y a lazo abierto, describiendo brevemente
sus componentes. Antes de abordar los siguientes capı́tulos se recomienda leer los
Apéndices A y B.

Capı́tulo 2: Sistemas de Instrumentación. Algunos tópicos relevantes de los


sistemas de instrumentación se tratan en este Capı́tulo, incluyendo el cálculo de pla-
cas de orificio y el diseño de circuitos acondicionadores de señal.

Capı́tulo 3: Elementos Finales de Control. Diferentes tipos de elementos de


control final son descritos en este Capı́tulo, que también incluye el cálculo de válvulas
de control.

Capı́tulo 4: Modelado de Sistemas Lineales. En este capı́tulo se elaboran y


simulan los modelos dinámicos de varios procesos de comportamiento lineal.

Capı́tulo 5: Modelado de Sistemas No Lineales. Los modelos dinámicos no


lineales de diversos procesos son desarrollados y simulados en este capı́tulo.

Capı́tulo 6: Control PID. El control PID (Proporcional Integral Derivativo)


de procesos SISO (Single Input Single Output) es el más usado en la industria. Por
ello, esta publicación le dedica un Capı́tulo.

Capı́tulo 7: Control PID MIMO. Varios métodos de control PID aplicados


a procesos MIMO (Multiple Input Multiple Output), caracterizados por múltiples
entradas y múltiples salidas, se tratan en este capı́tulo.

Capı́tulo 8: Control Fuzzy. El control de procesos empleando inteligencia ar-


tificial está cobrando mayor importancia en la industria en razón a sus múltiples
aplicaciones exitosas. Este Capı́tulo trata sobre el control fuzzy (difuso o borroso), el
cual es una técnica de control inteligente.

Capı́tulo 8: Control Neuronal. Este Capı́tulo se ocupa del control neuronal


de procesos, el cual es otra técnica de control que emplea inteligencia artificial en su
diseño.

Apéndice A: Matemática para el Control de Procesos. Este Apéndice


trata algunos tópicos de matemática aplicada que son necesarios para el mejor en-
tendimiento de los capı́tulos presentados. Se pone énfasis en la solución de problemas
matemáticos empleando software.

Apéndice B: Fundamentos de MATLAB y Simulink. Este capı́tulo se ocu-


pa de la teorı́a y aplicaciones del paquete MATLAB/SIMULINK.
XI

VIENEN AGRADECIMIENTOS.

Arturo Rojas Moreno, Ph.D.


ctlima33@gmail.com
www.ctlima.com
Capı́tulo 1

Introducción

En este Capı́tulo se hace un breve introducción sobre los sistemas de control a lazo
cerrado y a lazo abierto, describiendo brevemente sus componentes e incluyendo ejemplos
industriales para reforzar la comprensión de los conceptos. Tales componentes son: el
proceso cuya variable de salida se desea controlar, el sistema de instrumentación que
sensa y transmite la variable a controlar, el controlador que procesa la desviación entre
el valor de la variable a controlar con respecto a una señal deseada con el propósito de
generar una señal de control, y el elemento de control final que recibe la señal generada
por el controlador para efectuar cambios en el proceso con la finalidad de que la desviación
anteriormente descrita se reduzca a cero.

1.1. Sistema de Control a Lazo Cerrado


La Fig. 1.1 muestra el diagrama de bloques (la interrelación entre sus compo-
nentes) de un sistema de control a lazo cerrado. A continuación vamos a describir
sucintamente sus componentes.

Controlador de
realimentación Disturbios
SP MV PV
r e Algoritmo u Elemento final y
de Control de control Proceso

Sensor más
Transmisor
Sistema de
medición

Fig. 1.1: Sistema de control a lazo cerrado.

El Proceso
El bloque proceso representa un cambio fı́sico o quı́mico de la materia. Ası́ tenemos
los procesos de calefacción, enfriamiento, mezcla, fundición, separación, destilación,
2 Introducción

llenado y vaciado, evaporación, cocción, entre otros. Los instrumentos son dispositivos
que se emplean en los procesos para monitorearlos y controlarlos, lo cual se logra
mediante la medición de algunas de sus caracterı́sticas, también denominadas los
parámetros del proceso.
Algunos ejemplos de caracterı́sticas del proceso son: capacitancia, inductancia,
resistencia, voltaje, corriente, peso, presión, aceleración, sonido, color, nivel, tempe-
ratura, humedad, densidad, contenido de humedad, viscocidad, dimensión, concen-
tración de pH, flujo, velocidad, espesor, gravedad especı́fica, entre otros. La variable
y mostrada en Fig. 1.4, conocida también como PV (Process Variable), es la variable
controlada o salida del proceso.

El Sistema de Medición
Es común que un proceso posea varios parámetros que necesitan ser monitoreadas
simultáneamente. Esto se logra por lo general, empleando un sistema de medición
para cada parámetro (ver Fig. 1.1). Cada sistema de medición consta de un sensor
que proporciona la (variable medida), y de un transmisor que cambia dicha variable
en una señal estandarizada que pueda ser transmitida. La variable medida representa
entonces la condición actual de la variable controlada y.
En algunos casos, la variable medida y la variable controlada es la misma variable.
Por ejemplo, la medición y control de la variable velocidad de un motor DC (Direct
Current). Sin embargo, en otros casos, la variable medida y la variable controlada
pueden ser diferentes. Este es el caso del control de nivel de un lı́quido en un tanque,
que puede ser realizado midiendo la presión en el fondo del tanque. Es decir, en este
caso medimos presión para controlar nivel.
Señales estandarizadas que se emplean en el control de procesos son: 4 a 20 mA
(miliamperio), 3 a 15 psi (libra por pulgada cuadrada) y 0.2 a 1 bar. Otros rangos de
señales también son empleados: 0 a 10 V (volt), − 10 a + 10 V, etc. El transmisor
también es conocido como convertidor, transductor, y en general como un acondi-
cionador de señales. Si fuera necesario, un acondicionador de señal se puede diseñar
empleando opamps (amplificadores operacionales) en su implementación.
En muchos casos, el sensor y el transmisor son parte de un solo instrumento. Los
sistemas de medición actuales también incluyen hardware para almacenar algoritmos
y rutinas de cálculo, y para el procesamiento de señales digitales empleando protoco-
los industriales de comunicación. Los sistemas de medición inteligente reciben dicha
denominación, por que poseen la capacidad de procesamiento de señales.
En general, los sistema de medición se aplican a los procesos para: indicar el
valor de una variable, registrar y almacenar los valores de una variable, controlar una
variable, fijar alarmas en los casos que una variable alcanza un determinado valor,
y como enclavamiento; es decir, haciendo que una variable cause una acción cuando
alcance un valor previamente establecido.

El Controlador
Para lograr control en la Fig. 1.1, se requiere que el valor de la variable medida
tienda a ser el valor de la señal de referencia r o SP (Set Point), que es la señal
deseada de la variable controlada. En otras palabras, en los sistemas de control a lazo
cerrado, las señales r e y son comparadas. La diferencia entre ellas es la señal de error
1.1 Sistema de Control a Lazo Cerrado 3

e, llamada también señal de desviación. Cuando existe una desviación, es necesario


actuar para eliminarla. Esta acción incluye el ajuste y la acción de una señal o fuerza
de control u, denominada también la variable manipulada MV (Manipulated Vari-
able), para minimizar el error; es decir, para hacer que la señal y siga a r, cumpliendo
ciertas especificaciones de diseño (sección 5.2).
Por ejemplo, la velocidad de un carro se controla comparando el valor indicado
por el velocı́metro (la variable medida) con el valor lı́mite de la velocidad (la variable
deseada o SP). Si existe una desviación, se tiene que ajustar mediante el pedal del
acelerador una cierta cantidad de gas (la variable manipulada MV) para cambiar la
velocidad (la variable controlada o PV).
El bloque denominado controlador (ver la Fig. 1.1), es el que procesa la señal de
error e empleando un algoritmo de control, para generar la ley de control u que va
hacia el elemento de control final. El agregado de la palabra realimentación, que en
general no es necesario, sólo es para indicar en este caso que tal controlador forma
parte de un sistema de control realimentado.
La función del controlador mostrado en la la Fig. 1.1 se logra llevando a cabo
tres pasos. El primero consiste en recopilar información acerca de la variable del
proceso que se desea controlar. Luego, usar convenientemente dicha información para
tomar una decisión con relación a la condición del proceso. Finalmente, tomar una
acción basada en tal decisión, empleando para ello el elemento de control final. Es
importante anotar que para mantener el control, la recopilación de información debe
de ser continua y permanentemente evaluada. Estas acciones aseguran que la variable
controlada se mantenga en el valor deseado previamente establecido.
Considere el sistema de control de temperatura que posee la terma eléctrica de una
vivienda, en donde la acción de control se realiza conectando o desconectando a la red
la resistencia de calefacción para aumentar o disminuir la temperatura del agua en la
terma, correspondientemente. En un primer paso, un sensor de temperatura detecta
la temperatura actual y la compara con una temperatura de referencia previamente
establecida. Como resultado de la comparación, se decide que es necesario cambiar la
condición del proceso: aumentar o disminuir la temperatura. Finalmente, se toma la
acción correspondiente: conectar la resistencia a la red para aumentar la temperatura
del agua, o desconectarla para disminuirla.
El control se puede realizar en forma manual o en forma automática. En el control
manual, la decisión la realiza la persona, mientras que en el control automático la
realiza un dispositivo. La terma es un caso de control automático de la temperatura,
mientras que la conducción de un carro para mantenerlo a una velocidad constante,
es un caso de control manual.

El Elemento Final de Control (EFC)


El controlador genera una señal que por si misma no posee la potencia necesaria
para provocar cambios en el proceso. Por tal razón, la señal de salida del controlador
va hacia el elemento final de control (EFC), el cual sı́ posee la capacidad de efectuar
cambios en el proceso con el propósito de disminuir el error e = r−y. Por consiguiente,
el EFC es el hardware que implementa la decisión tomada por el controlador.
La fuente de energı́a común del EFC puede ser eléctrica, neumática e hidráulica.
Ejemplos de EFC eléctricos son los motores AC y DC, motores paso a paso, válvu-
4 Introducción

las de control motóricas, solenoides, relés, entre otros. Entre los EFC hidráulicos y
neumáticos tenemos: válvulas neumáticas, pistones hidráulicos y neumáticos, mo-
tores hidráulicos y neumáticos, etc. Dependiendo del tipo de EFC, en muchos casos
será necesario incluir un convertidor (o transmisor) de señal entre el controlador y el
EFC, tal como se muestra en el ejemplo 1.1.

Los Disturbios
Además de la variable manipulada, otros factores pueden afectar la variable con-
trolada. Por ejemplo, la velocidad del carro puede ser afectada por la resistencia del
viento y por la calidad de la pista. Por otro lado, La temperatura del agua en la terma
puede ser afectada por un mal aislamiento del tanque o por la cambiante temperatura
del entorno. En control de procesos, estos factores se denominan disturbios.
Para compensar la acción de los disturbios, se requiere de una continua circulación
de la información sobre el proceso. En el sistema de control a lazo cerrado de la Fig.
1.1, la información fluye constantemente hacia los instrumentos. Tal información es
denotada como realimentación. Todos los instrumentos y dispositivos que intervienen
en el control de un proceso son referidos como el lazo de control realimentado.

Ejemplo 1.1

En el sistema de control de flujo mostrado en la Fig. 1.2(a), indicar sus componentes


y las señales normalizadas. Este sistema emplea como sensor de flujo una placa de
orificio para producir la caı́da de presión ∆P = P1 − P2, con la finalidad de tener
una medición indirecta del flujo F, pues sabemos que tal flujo es proporcional a la
raı́z cuadrada de ∆P.

Solución: Ver Fig. 1.3(b).√Observar que se requiere un primer transmisor para re-
alizar la operación F = C ∆P , donde C es una constante de proporcionalidad, y
luego convertir esta operación en una señal de corriente estandarizada (4 a 20 mA).
El signo raı́z cuadrada a un costado del transmisor indica esta operación. Notar tam-
bién que ha sido necesario incluir un segundo transmisor para convertir 4 a 20 mA al
rango de 3 a 15 psi, dado que el actuador de la válvula trabaja con señal neumática
estandarizada.

Ejemplo 1.2

En el sistema de control de temperatura mostrado en la Fig. 1.3, indicar cuál es la


señal disturbio y porqué. Este sistema emplea como sensor una termoresistencia, cuya
salida es un valor de resistencia eléctrica, la cual es proporcional a la temperatura en
el interior del tanque. Los valores de resistencia se convierten a señales estandarizadas
de 4 a 20 mA mediante el transmisor. Observar que la válvula de control posee un
actuador eléctrico porque trabaja con una señal de 4 a 20 mA. Esta señal alimenta a
un motor DC (el actuador). El movimiento de rotación del eje del motor se convierte
en un movimiento de traslación para hacer desplazar el eje de la válvula.

Solución: El flujo del producto que ingresa al tanque constituye la señal de disturbio.
Mientras mas brusca sea la variación del flujo de producto, mayor será la dificultad
para que la señal PV siga a la señal SP.
1.2 Sistema de Control a Lazo Abierto 5

CONTROLADOR

TRANSMISOR TRANSMISOR

ACTUADOR
F

P1 P2 VÁLVULA
PLACA DE ORIFICIO NEUMÁTICA

(a)

4 − 20 mA 4 − 20 mA
SP
CONTROLADOR
4 − 20 mA PV MV

TRANSMISOR TRANSMISOR
ACTUADOR 3 − 15 psi
P
PROCESO F

P1 P2 EFC: VÁLVULA
SENSOR: PLACA DE CONTROL
DE ORIFICIO NEUMÁTICA
(b)

Fig. 1.2: (a) Sistema de control de flujo. (b) Solución al ejercicio 1.1.

PV
Sensor 4−20 mA
(ohm) Transmisor
MV Controlador
4−20 mA SP
Producto 4−20 mA

Agua caliente

Fig. 1.3: Sistema de control de temperatura.

1.2. Sistema de Control a Lazo Abierto


La Fig. 1.4 muestra el diagrama de bloques de un sistema de control a lazo
abierto, donde podemos observar que no existe un lazo de realimentación. Dicho lazo
si está presente en el sistema de control de la Fig. 1.1.
Cuando el controlador de la Fig. 1.4 se reemplaza, por ejemplo, por un PLC
(Programmable Logic Controller), entonces el sistema de control a lazo abierto se
6 Introducción

Disturbios
SP MV PV
r y Sensor más
Controlador u Elemento final
anticipativo de control Proceso Transmisor
Sistema de
Instrumentación
Fig. 1.4: Sistemas de control a lazo abierto.

convierte en un mando programable, el cual se emplea en la industria en muchas


tareas de automatización que tienen que ver principalmente con aperturas y cierres
temporizados de válvulas y otros actuadores. La programación de los tiempos de la
entrada en operación de los compresores que conforman un sistema de generación de
aire comprimido, es un ejemplo tı́pico de mando programable.
El control a lazo abierto de la Fig. 1.1 se convierte en un sistema de control
anticipativo, cuando el controlador es del tipo anticipativo. En esta clase de control,
los sensores miden los valores de los disturbios, mientras que la variable manipulada
(la señal de control) se ajusta antes de que ocurran cambios en la variable controlada.
La estrategia de control anticipativo se trata en detalle en la sección 6.3. Sin
embargo, cabe mencionar que este esquema de control presenta ventajas y desventajas
comparado con el control realimentado. Por una parte, es deseable porque evita la
ocurrencia de errores antes de que se reflejen en la variable controlada. Sin embargo,
para lograr aquello, se requiere de un análisis dinámico complejo de los disturbios
para que la estrategia de control trabaje efectivamente. Sólo en muy pocos casos en
la industria, el control anticipativo es relevante.
Existen otras estrategias de control, además del control anticipativo, tales como
control de la razón de dos variables, control en cascada, control de rango partido y
control selectivo, todas las cuales serán abordadas en detalle en el Capı́tulo 6.

Ejemplo 1.3

La Fig. 1.5 muestra un tanque empleado en la industria para el soplado (transporte)


de un producto en forma de polvo. En dicha Fig., LT y PT son transmisores para
medir el nivel del producto y la presión dentro del tanque, respectivamente. Este
ejemplo es un caso tı́pico de mando programable, el cual se implementa con un PLC
y válvulas ON–OFF (de apertura y cierre). La apertura y cierre de tales válvulas
se realiza con un programa elaborado para tal propósito. Este programa se puede
elaborar empleando diversos métodos. Uno de los más populares es el método de la
escalera. No es propósito de este libro entrar en detalles de este método de progra-
mación.
Luego de elaborado y probado el programa, éste se almacena en la memoria del
PLC. Para el caso que nos ocupa, tal programa satisface la siguiente secuencia lógica:

ESTADO 0 (REPOSO): V2 OFF


ESTADO 1 (LLENAR PRODUCTO): V1 ON
ESTADO 2 (TANQUE LLENO): LT MÁXIMO, V1 OFF, V2 OFF, V3 ON
1.3 Dinámica Lineal de los Elementos Ideales 7

ESTADO 3 (TRANSPORTAR PRODUCTO): PT MÁXIMO, V4 ON, V5 ON


ESTADO 4 (SOPLAR NITRÓGENO): PT MÍNIMA, V3 OFF, V4 OFF
ESTADO 5 (DESFOGUE/REPOSO): V2 ON, V5 OFF

TRANSPORTE
DESFOGUE

V4 V1

V5 V2

SOPLADO ENTRADA DE LT
ADICIONAL PRODUCTO
PT

SOPLADO
INFERIOR

V3

Fig. 1.5: Tanque del ejemplo 1.3 para el soplado de un producto.

1.3. Dinámica Lineal de los Elementos Ideales


La Tabla 1.1 describe los modelos dinámicos lineales de los elementos ideales,
mientras que la Fig. 1.6 muestra los sı́mbolos de los mismos. Tal información es de
gran utilidad porque explica el comportamiento fı́sico de los diversos elementos que
son parte de los procesos. Las unidades de medida empleadas corresponden al Sistema
Internacional, la cual usaremos a lo largo de los capı́tulos, salvo indicaciones expresas.
De todas formas, siempre están disponibles las tablas de conversión de unidades. En
la Tabla 1.1, la energı́a se expresa en J (joule), la potencia en W (watt) y el tiempo
t en s (segundos).
La Fig. 1.6(a) muestra la inductancia eléctrica L en H (henrio), en donde se
cumple que la diferencia de potencial v21 = v2 − v1 en V (volt) es proporcional a la
variación de la corriente i en A (ampere) con respecto al tiempo.
La Fig. 1.6(b) ilustra el resorte traslacional de constante K, en donde la variación
de velocidad v21 en m/s es proporcional a la variación de la fuerza f en N (newton)
con respecto al tiempo. Teniendo en cuenta que v21 = dx21 /dt donde x21 = x2 − x1
es el cambio de posición, es fácil demostrar que f=Kx21 . Por ello, K está en N/m.
La Fig. 1.6(c) muestra el resorte rotacional de constante K en N–m/rad, en donde
el cambio de velocidad angular ω21 en rad/s es proporcional a la variación del torque
con respecto al tiempo dT/dt en N–m/s (newton–metro/segundo). Considerando que
8 Introducción

Tabla 1.1: Modelos dinámicos para elementos ideales.

Almacenador Elemento Ecuación Energı́a E o


o disipador fı́sico descriptiva potencia P
Almacenador Inductancia
di
inductivo eléctrica L v21 = L dt E = 12 Li2
Almacenador Resorte
1 df 1 F2
inductivo traslacional v21 = K dt E= 2 K
Almacenador Resorte
1 dT 1 F2
inductivo rotacional ω21 = K dt E= 2 K
Almacenador Inercia
inductivo fluı́dica p21 = I dq
dt E = 12 Iq 2
Almacenador Capacitancia
capacitivo eléctrica i = C dvdt21 E = 12 Cv21
2

Almacenador
capacitivo Masa f = M dv
dt E = 12 M v 2
Almacenador Momento
capacitivo de Inercia T = J dω
dt E = 12 Jω 2
Almacenador Capacitancia
capacitivo fluı́dica q21 = Cf dpdt21 E = 12 Cf p22
Almacenador Capacitancia
capacitivo térmica q = Ct dT
dt E = Ct T
Disipador Resistencia
1 1 2
de energı́a eléctrica i= R v21 P= R v21
Disipador Amortiguador
de energı́a traslacional f = Bv21 2
P = Bv21
Disipador Amortiguador
de energı́a rotacional T = Bω21 2
P = Bω21
Disipador Resistencia
1 1 2
de energı́a fluı́dica q= Rf p21 P= Rf p21
Disipador Resistencia
1 1
de energı́a térmica q= Rt T21 P= Rt T21
1.3 Dinámica Lineal de los Elementos Ideales 9

L K ω1 T T ω2 p1
i f f K I
v v2 q p2
v1 v2 θ1
θ2
(a) (b) (c) (d)
J ω T p1
C Cf
i M f
v1 v2 v q1 p2 q2

(e) (f) (g) (h)

f ω1 T ω
q Ct i R B f B T 2
T v1 v2
v1 v2
(i) (j) (k) (l)

Rf Rt
p1 q p2 T1 T2
q
(m) (n)

Fig. 1.6: Sı́mbolos de los elementos ideales.

ω21 = dθ21 /dt donde θ21 en rad es el cambio de posición angular, es fácil demostrar
que T = Kθ21 . Por ello, K está en N–m/rad.
En la Fig. 1.6(d) se cumple que el cambio de presión p21 en N/m2 es proporcional
a la variación del flujo q en m3 /s con respecto al tiempo. La constante de propor-
cionalidad I es la inercia fluı́dica, la cual posee las unidades N–s2 /m5 puesto que la
inercia fluı́dica se expresa como:
p21
I=
dq/dt
La Fig. 1.6(e) ilustra la capacitancia eléctrica C en F (faradio), en donde la
corriente i en A (ampere) que circula a través de C es proporcional a la diferencia de
potencial v21 en V (volt) con respecto al tiempo.
La Fig. 1.6(f) muestra la masa M en kg (kilogramo), en donde la fuerza f en N
(newton) que actúa sobre M produce la aceleración a=dv/dt en m/s 2 , donde v en
m/s es la velocidad de la masa M.
En la Fig. 1.6(g) se cumple que el torque de torsión T en N–m es proporcional a
la aceleración angular α = dω/dt en rad/s2 . La constante de proporcionalidad J en
N–m–s2 /rad se denomina momento de inercia y es caracterı́stico para cada cuerpo
dependiendo de su forma.
El flujo q en m/s3 de un fluido que existe en un conducto o recipiente (ver Fig.
1.6(h)), es proporcional a la caı́da o cambio de presión p21 con respecto al tiempo.
La proporcionalidad mencionada define a la capacitancia fluı́dica Cf en m5 /N.
El flujo de calor q en J/s (joule/segundo) que circula en un conducto, es propor-
cional al cambio de temperatura T en grados K (kelvin) con respecto al tiempo. La
10 Introducción

proporcionalidad mencionada define a la capacitancia térmica C t en J/K, la cual se


muestra en la Fig. 1.6(i).
La Fig. 1.6(j) muestra una resistencia eléctrica R en Ω (ohm), en donde la corriente
i en A es proporcional a la caı́da de voltaje v21 . Notar que la proporcionalidad es la
inversa de R, la cual se denomina conductancia G=1/R y su unidad es f (mho).
La fuerza f en N que se ejerce en el amortiguador traslacional mostrado en la
Fig. 1.6(k), es proporcional al cambio de velocidad v21 . La proporcionalidad B se
denomina la constante de fricción viscosa traslacional, cuya unidad es N–s/m.
El torque T en N–m que se ejerce en el amortiguador rotacional mostrado en la
Fig. 1.6(l), es proporcional al cambio de velocidad angular ω21 . La proporcionalidad
B se denomina la constante de fricción viscosa rotacional, cuya unidad es N–m–s/rad.
La resistencia fluı́dica Rf se define como la variación de la presión p21 en un
conducto o recipiente, con respecto al flujo q del fluido en m3 /s, tal como se muestra
en la Fig. 1.6(m). Por ello, Rf = p21 /q se expresa en N–s/m5 .
De igual manera, la resistencia térmica Rt se define como la variación de la tem-
peratura T21 en grados K (kelvin) en un conducto, con respecto al flujo q de calor
en J/s, tal como se observa en la Fig. 1.6(n). Por ello, Rt posee las unidades K/J.
Capı́tulo 2

El Proceso a Controlar

La dinámica de una gran variedad de procesos a ser controlados se puede describir


mediante un conjunto de ecuaciones diferenciales. Tal descripción matemática se ob-
tiene aplicando las leyes de la fı́sicas y de la quı́mica en dicho proceso, tales como la
conservación de la energı́a y las leyes de Newton.
Para construir un modelo adecuado para propósitos de control, se requiere conocer
bien la dinámica del proceso. No siempre es mejor que un modelo sea lo más exacto
posible a su comportamiento dinámico. Tener en cuenta que mientras más complejo sea
el modelo, más dificultoso será el análisis y diseño del sistema de control. Lo recomendable
es que el modelo del proceso mantenga las caracterı́sticas dinámicas de interés para el
rango de operación del sistema de control a diseñar.
En este capı́tulo se determinan los modelos dinámicos de varios procesos con tres
propósitos fundamentales. El primero, para que sirvan como una fuente de datos de
salida para poder construir curvas de reacción; el segundo, para que su dinámica sea
usada en el diseño de controladores avanzados; por último, para verificar la funcionalidad
del controlador actuando sobre el proceso.

2.1. Procesos con Comportamiento Proporcional


Un proceso SISO con comportamiento proporcional se caracteriza por poseer una
FT constante (ver Tabla 2.8), es decir, su salida y(t) es proporcional a su entrada
u(t):
y(t) = Kp u(t) (2.1)
donde Kp es la ganancia proporcional del proceso. Los dos siguientes procesos poseen
comportamiento proporcional.

Flujo en una Tuberı́a


La Fig. 2.1(a) muestra un tramo de tuberı́a sección uniforme por donde circula un
flujo y, cuya magnitud está gobernada por la abertura u de la válvula de control. Las
letras FI (Flow Indication) dentro del cı́rculo indican la presencia de un instrumento
de indicación de flujo.
La respuesta al escalón (su curva de reacción a lazo abierto) del proceso flujo se
ilustra en la Fig. 2.1(b). Considérese que para un tiempo t1 , el flujo que pasa por
12 El Proceso a Controlar

la válvula es y1 = A1 vρ, donde A1 es la sección transversal correspondiente a la


abertura u1 de la válvula, v es la velocidad del flujo considerada constante y ρ es la
densidad lı́quido, también considerada constante. Para un tiempo t2 , incrementamos
la abertura de la válvula de u1 a u2 . Consecuentemente, el flujo aumenta de y1 a y2 =
A2 vρ, sin experimentar retardo, donde A2 es la sección transversal correspondiente
a la abertura u2 . La ganancia proporcional del proceso flujo es entonces:
∆y y2 − y 1
Kp = = (2.2)
∆u u2 − u 1
En el dominio de Laplace, la expresión genérica de la FT del proceso flujo toma la
forma:
y(s) = Kp u(s) (2.3)
donde s es el operador de Laplace.

u
u
2
∆u
FI
u u1
y t1 t2 t
Válvula y
de control y
(a) 2 ∆y
y
1

t1 t2 t
(b)

Fig. 2.1: (a) Proceso flujo. (b) Respuesta al escalón (curva de reacción a lazo abierto)
del proceso flujo.

Ejemplo 2.1

Determinar la ganancia proporcional del proceso flujo mostrado en la Fig. 2.1(a),


sabiendo que el recorrido total de la válvula es de 10 mm y que el máximo flujo que
puede pasar por la tuberı́a es de 10 L/min (L: litro). Asumir que el cambio de flujo
∆y a través de la válvula es proporcional al cambio de abertura de válvula ∆u.

Solución.- La proporcionalidad se refiere a que ∆y = Kp ∆u. Empleando la ecuación


(2.2), la ganancia Kp se calcula como:
∆y y2 − y 1 10 − 0 L
Kp = = = =1 ♣
∆u u2 − u 1 10 − 0 min mm

Flujo en una Faja de Transporte


La Fig. 2.2 muestra una faja transportando un flujo de material granulado y. cuya
magnitud está gobernada por la velocidad u en el eje de salida de una caja reductora.
2.2 Procesos de Primer Orden 13

Observar que un motor es el que hace girar los ejes de entrada y de salida de dicha
caja.
La respuesta al escalón mostrado en la Fig. 2.1(b) también se aplica al proceso
flujo de granos. Considérese que para un tiempo t1 , el flujo que pasa por la banda
es y1 , correspondiente a la velocidad u1 fijada en la caja reductora. Para un tiempo
t2 , incrementamos la velocidad de salida de la caja reductora, fijándola de u 1 a u2 .
Consecuentemente, el flujo aumenta de y1 a y2 , sin experimentar retardo. Entonces,
la ganancia proporcional del proceso flujo de granos es la misma obtenida en (2.2) y
la correspondiente FT está dada por (2.3).

Silo de
material

u Banda transportadora
Caja de
reducción y
Motor

Fig. 2.2: Proceso flujo de granos sobre una banda de transporte.

2.2. Procesos de Primer Orden


Un procesos SISO de primer orden se caracterizan por poseer una FT que posee
1
una parte proporcional Kp más un retardo de primer orden T s+1 (ver Tabla 2.8); es
decir, su salida y(s) está relacionada con su entrada u(s) como sigue:

Kp
y(s) = u(s) (2.4)
Ts + 1
donde Kp es la ganancia proporcional del proceso y T es la constante de tiempo. Los
siguientes procesos son de primer orden.

Nivel en un Tanque Cerrado


La Fig. 2.3 muestra un tanque cerrado de sección uniforme S, en el cual ingresa
un flujo de agua qC y sale otro flujo qD a través de un orificio ubicado en la base
del tanque. La Tabla 2.1 describe las variables y parámetros en juego. Aplicando
balance de masas en el tanque se tiene que el cambio de volumen de agua acumulado
en el interior del tanque se puede modelar como:

dh
S = S ḣ = qC − qD (2.5)
dt

donde h es la altura del agua y S ḣ es el cambio de volumen de agua en el tiempo t


dentro del tanque. Para variaciones pequeñas de h y asumiendo que el flujo de salida
14 El Proceso a Controlar

q
C

S h
Rebose

q
D

Fig. 2.3: Proceso tanque cerrado con orificio de salida en la base y tuberı́a de rebose.

Tabla 2.1: Parámetros y variables del proceso nivel en un tanque cerrado.

Sı́mbolo Descripción Valor Unid.


dS Diámetro del tanque 0.2 m
S Sección circular del tanque 0.0314 m2
h Nivel del agua m
h Nivel del agua en estado estacionario 0.4 m
qC Flujo de agua frı́a hacia el tanque m3 /s
qC Estado estacionario de qC 1.66×10−4 m3 /s
qD Flujo de salida desde el tanque m3 /s
qD Estado estacionario de qD 2.16×10−4 m3 /s
Rh Resistencia hidráulica del tanque: Rh = h/q D s/m2

qD es laminar, entonces:
h
qD = (2.6)
Rh
donde Rh es la resistencia hidráulica del tanque, la cual se puede determinar de [13]:

h
Rh = (2.7)
qD

donde h y q D son los valores en estado estacionario de h y qD respectivamente.


Reemplazando (2.6) en (2.44), se obtiene la ecuación de estado lineal del nivel:

1 1
ḣ = − h + qC (2.8)
Rh S S

En el dominio de Laplace: ḣ = s h − h(0), donde s es el operador de Laplace. Si se


tiene en cuenta que h(0) = 0 (requisito indispensable para hallar la FT del proceso),
2.2 Procesos de Primer Orden 15

(2.8) toma la forma:


h(s) Rh Rh
= h(s) = qC (s) (2.9)
qC (s) SRh s + 1 SRh s + 1
Asumiendo que el flujo de entrada es un escalón de amplitud A, entonces, su trans-
formada de Laplace es: qC (s) = A/s. Por consiguiente, de (2.9) se obtiene:
Rh A
h(s) = (2.10)
s(SRh s + 1)
Aplicando los teoremas del valor inicial y del valor final en h(s), los valores inicial y
final de h(t) resultan:
lı́m h(t) = lı́m sh(s) = 0 lı́m h(t) = lı́m sh(s) = Rh A
t→0 s→∞ t→∞ s→o

La curva de reacción a lazo abierto del nivel h se determina resolviendo (2.8) o (2.10).
Vamos a intentar tres soluciones. Para una primera solución, descomponemos (2.10)
en fracciones parciales:
" #
Rh A 1 1
h(s) = = Rh A − 1
s(SRh s + 1) s (s + SR )
h

Tomando transformada inversa de Laplace a cada término de h(s) se obtiene:


h i
− 1 t
h(t) = Rh A 1 − e SRh (2.11)

Los valores inicial y final de h(t) resultan:


lı́m h(t) = 0 lı́m h(t) = Rh A
t→0 t→inf

Notar que estos valores coinciden con los hallados empleando (2.10).
La segunda forma de hallar h(t) es empleando matemática simbólica, tal como se
ilustra en el siguiente programa denominado nivel1simb.m:
% nivel1simb.m DETERMINACIÓN DE h(t) USANDO TRANSFORMADA INVERSA DE LAPLACE
clear all; close all; clc; syms s Rh A S;
h=ilaplace(Rh*A*(1/s - 1/(s + 1/(S*Rh)))); pretty(simplify(h))

La tercera forma de hallar h(t) es mediante un programa en MATLAB, el cual tam-


bién grafica la curva de reacción. Este programa requiere la ecuación de diferencia
del proceso nivel. Para ello se debe de discretizar la ecuación de estado dada en (2.8)
como sigue:
h(k + 1) − h(k) 1 1
=− h(k) + qC (k)
T Rh S S
 
1 1
h(k + 1) = h(k) + T − h(k) + qC (k)
Rh S S
 
1 1
h=h+T − h + qC
Rh S S
donde k = t/T es el tiempo discreto y T es el tiempo de muestreo. La última notación
es más conveniente para programación en tiempo real. Ejecutar el programa curvah.m
para obtener la curva de reacción de la Fig. 2.4.
16 El Proceso a Controlar

% curvah.m CURVA DE REACCIÓN DEL NIVEL DEL AGUA EN EL TANQUE CERRADO


clear all; close all; clc;
% PARÁMETROS DEL PROCESO TANQUE CERRADO
S=0.0314; hbar=0.5; qCbar=1.666e-4; qDbar=2.16e-4; Rh=hbar/qDbar;
h=0; T=1; M=500; % PERIODO DE MUESTREO Y NÚMERO DE MUESTRAS M
for k=1:M; QC(k)=qCbar; h=h+T*(-(1/(Rh*S))*h+(1/S)*qCbar); H(k)=h; end
ejet = linspace(0,M*T,M);
subplot(2,1,1), plot(ejet,QC*6e4); grid % CONVERSI ÓN A L/min
ylabel(’Flujo qC [L/min]’), xlabel(’TIEMPO [s]’)
subplot(2,1,2), plot(ejet,H); grid, ylabel(’NIVEL [m]’),
xlabel(’TIEMPO [s]’), print -f -deps curvah % GENERA FIGURA curvah.eps

11

10.5

10
qC [L/h]

9.5

8.5
0 50 100 150 200 250 300 350 400 450 500
TIEMPO [s]

0.4

0.3
NIVEL [m]

0.2

0.1

0
0 50 100 150 200 250 300 350 400 450 500
TIEMPO [s]

Fig. 2.4: Proceso nivel en un tanque cerrado.

Temperatura en un Tanque con Agitador


La Fig. 2.5 muestra un proceso térmico: temperatura en un tanque con agitador. A
este tanque ingresa un flujo q a una temperatura Ti y sale el mismo flujo q pero a una
temperatura To . Asumiendo cero pérdidas se va a demostrar que la FT Ti (s)/To (s)
es de primer orden. La Tabla 2.2 describe las variables y parámetros en juego.
Asumiendo que el lı́quido en el tanque se agita uniformemente, que los flujos
volumétricos de entrada y de salida, la densidad y capacidad calorı́fica del lı́quido
son todos constantes, y que el proceso es adiabático (sin pérdidas) debido a que el
tanque posee buen aislamiento, entonces, la ecuación del balance de energı́a es:
dTo
qρCp Ti − qρCp To = V ρCv (2.12)
dt
En el dominio de Laplace s, (2.12) resulta:
qρCp Ti (s) − qρCp To (s) = V ρCv (sTo − To (0))
2.2 Procesos de Primer Orden 17

Ti

q
T

Fig. 2.5: Proceso temperatura en un tanque con agitador.

Tabla 2.2: Parámetros y variables del proceso temperatura en un tanque con agitador.

Sı́mbolo Descripción Unidades


q Flujo de entrada y de salida m3 /s
ρ Densidad del lı́quido en q kg/m3
J
Cp Capacidad calorı́fica a presión constante kg K
J
Cv Capacidad calorı́fica a volumen constante kg K
V Volumen del lı́quido en el tanque m3
Ti Temperatura del flujo de entrada oC

To Temperatura del flujo de salida oC

Sabemos que la determinación de la FT de cualquier proceso requiere que todas las


condiciones iniciales sean nulas. En el caso que nos ocupa, tal requerimiento se cumple
si: To (0) = 0. Por lo tanto, su correspondiente FT To (s)/Ti (s) resulta:

To (s) 1 V Cv
= τ= (2.13)
Ti (s) τs + 1 qCp

La curva de reacción del proceso con Ti (s) = A/s, la cual es semejante al gráfico
inferior de la Fig. 2.4, posee la forma:

t
To (t) = A (1 − e− τ )

la cual se halla ejecutando el programa en matemática simbólica temp1simb.m, donde


tau = τ :

% temp1simb.m DETERMINACIÓN DE To(t) USANDO TRANSFORMADA INVERSA DE LAPLACE


clear all; close all; clc; syms s tau A;
To = ilaplace(A/(s*(tau*s+1))); pretty(simplify(To))
18 El Proceso a Controlar

2.3. Procesos de Segundo Orden


Circuito con Opamps
La Fig. 2.6 muestra un seguidor de voltaje y dos amplificadores operacionales
(opamps) inversores conectados en cascada. La ganancia del seguidor de voltaje es
uno. Las ganancias de los amplificadores son respectivamente:
1 1
Vx (s) Vo (s)
= − sC1 1 = − sC2 1
Vi (s) R1 + sC Vx (s) R2 + sC
1 2

Este proceso es de segundo orden porque:


Vo (s) 1
=
Vi (s) (R1 C1 s + 1)(R2 C2 s + 1)

C1 C2

R1 C1 R2 C2
Vo
Vi
Vi Vx
Seguidor de voltaje Opamp Opamp
inversor inversor

Fig. 2.6: Proceso de segundo orden con opamps.

Tanques en Cascada
La Fig. 2.7 muestra dos tanques unidos por una tuberı́a. Los parámetros y va-
riables de este proceso se describen en la Tabla 2.3. Las ecuaciones dinámicas que
gobiernan este sistema son:
h1 − h 2 dh1
q1 = C1 = q − q1
R1 dt
h2 dh2
q2 = C2 = q1 − q2
R2 dt
Pasando al dominio de Laplace con condiciones iniciales nulas, se obtiene:
h1 (s) − h2 (s)
q1 (s = C1 sh1 (s) = q(s) − q1 (s)
R1
h2 (s)
q2 (s) = C2 sh2 (s) = q1 (s) − q2 (s)
R2
Si la entrada es q(s) y la salida es q2 (s), entonces:
q2 (s) 1
= 2
q(s) R1 C1 R2 C2 s + (R1 C1 + R2 C2 + R2 C1 )s + 1
2.3 Procesos de Segundo Orden 19

Tabla 2.3: Parámetros y variables del proceso temperatura en un tanque con agitador.

Sı́mbolo Descripción Unidades


m3
q, q1 , q2 Flujos de entrada, intermedio y de salida s
s
R1 , R2 Resistencias hidráulicas m2
C1 , C2 Capacitancias hidráulicas m2
h1 , h2 Niveles en los tanques m2

h1 h2
R1 R2

q1 q2

Fig. 2.7: Proceso de segundo orden con tanques en cascada.

Indicador con Núcleo de Fierro Móvil


La Fig. 2.8 muestra un indicador con núcleo de fierro móvil, donde K es la con-
stante del resorte, B es la constante de viscocidad del amortiguador, M es la masa
del núcleo de fierro encerrado por la bobina, y u es la corriente que circula por la
bobina. La fuerza electromagnética Km u producida por u produce un movimiento
y en el núcleo, cuya dirección y magnitud depende de la dirección y magnitud de
la corriente u. El movimiento y, que es también el desplazamiento del indicador, es
proporcional a la corriente u. La ecuación que gobierna el movimiento del núcleo es:

dy d2 y
Km u = Ky + B +M 2
dt dt
En el dominio de Laplace y con condiciones iniciales nulas, la ecuación anterior re-
sulta:
Km u(s) = Ky(s) + Bsy(s) + M s2 y(s)
La FT y(s)/u(s) toma la forma:
Km
y(s) M Kp
= 2 B K
=
u(s) s + Ms + M
s2 + 2ζωn s + ωn2
r
Km B K
Kp = ζ= √ ωn =
M 2 KM M
20 El Proceso a Controlar

Resorte K u
uo
Bobina t
uo u M Escala y
Corriente yo
y y
yo
t
Amortiguador B

Fig. 2.8: Indicador con núcleo de fierro móvil.

2.4. Procesos Integrales


Llenado de un Tanque
La Fig. 2.9 muestra un tanque de sección A que está siendo llenado por un flujo
u de entrada. Sólo cuando el tanque alcanza un nivel máximo, entonces se prende la
bomba de vaciado. El volumen acumulado en el tanque es:

dy
A =u
dt

En el dominio de Laplace: Asy(s) = u(s). Por lo tanto, la FT de este proceso es:

y(s) Kp 1
= Kp =
u(s) s A

u(t)
Flujo u(t)
y(t)
uo
t
t1
y(t)
y(t)

yo

Bomba t
t1

Fig. 2.9: Llenado de un tanque.


2.5 Procesos con Tiempo Muerto 21

Satélite
El satélite mostrado en la Fig. 2.10 se puede modelar como:

J θ̈ = u

donde J es el momento de inercia del satélite, θ es el ángulo de inclinación y u es


el torque generado por los impulsores para corregir el ángulo de inclinación. En el
dominio de Laplace, el modelo del satélite toma la forma: Js2 θ(s) = u(s). Luego, la
FT del satélite es un doble integrador:

θ(s) Kp 1
= 2 Kp =
u(s) s J

Por otro lado, si seleccionamos como variables de estado x1 = θ y x2 = θ̇, entonces


las ecuaciones de estado del proceso resultan: ẋ1 = x2 y ẋ2 = u/J, mientras que la
salida es: y = x1 . En forma matricial:
      
ẋ1 0 1 x1 0
= + 1 u
ẋ2 0 0 x2 J
 
x1
y = [1 0]
x2

J
u

Fig. 2.10: Esquema simplificado de un satélite.

2.5. Procesos con Tiempo Muerto


Faja de Transporte con Tiempo Muerto
La Fig. 2.11 muestra una faja transportando granos. Observar que en el intervalo
t0 hasta t1 , el flujo de granos y0 es producido por la abertura u0 de la válvula
de cuchilla. En el tiempo t1 se incrementa la abertura de la válvula en un ∆u, lo
cual se traduce en un incremento del flujo en un ∆y, sólo cuando dicho incremento
recorra la distancia L. Sabemos que la faja se mueve a una velocidad constante v.
Por consiguiente, el tiempo muerto que demora el flujo ∆y en recorrer L es:

L
Tt =
v
22 El Proceso a Controlar

La FT de este proceso resulta entonces:


y(s) ∆y
= Kp e−Tt s Kp =
u(s) ∆u




 


 
 

 

  

  

  

    
  

 
L


  

   u(t)

 
  
  
  
 
  
  
 
  
  
 
  
  
     
  
  
 
  
  
 
  
  
 
  
  
 
  
  
 
  
  
    u
 
Válvla decuchilla uo


 

  

  

  

  

    
   
u+ u 
  

  

  

   t

 
 
  
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
    
t0 t1


 

 

   
 
 
 

 
 

 
 

 
   
 
 
 

 
 

   
 
  y(t)

Motor 

  
 
 
r  
 
   
 
   
 
   
 
   
 
    
 
   
 
   
 
   
 
  y
o
Tt
y
t
Velocidad w v = wr t t1
u 0
constante

Fig. 2.11: Faja de transporte con tiempo muerto.

Flujos en Tuberı́as con Tiempo Muerto


La Fig. 2.12 muestra dos flujos y1 (t) e y2 (t) que circulan por dos tuberı́as que
luego se juntan en una sola, en la cual se ha instalado un sensor de PH. En la tuberı́a
común de longitud L, el flujo suma y(t) = y1 (t) + y2 (t) circula a una velocidad v.
Hasta el tiempo t1 , las aberturas de válvulas [u1 ]o y [u2 ]o dejan circular un flujo de yo .
En el tiempo t1 se incrementan las aberturas de las válvulas en un ∆u1 (t) y ∆u2 (t),
respectivamente, lo cual se traduce en un incremento del flujo total en un ∆y(t). Este
incremento de flujo debe de recorrer una distancia L para que sea detectado por el
sensor de PH. Por lo tanto, el tiempo muerto que demora el flujo ∆y(t) en recorrer
L es:
L
Tt =
v
La FT de este proceso toma la forma:
y(s) ∆y
= Kp e−Tt s Kp =
u1 (s) ∆u1 + ∆u2

2.6. Procesos de Orden Superior


Proceso de Enfriamiento de Tercer Orden
En la Fig. 2.13(a), Qc es el flujo de agua a una temperatura Tc que ingresa a la
camisa de enfriamiento del tanque, con el propósito de enfriar el flujo q constante que
ingresa al tanque a una temperatura Ti . Este flujo abandona el tanque por desborde
a una temperatura T . La pared metálica del tanque se encuentra a una temperatura
2.6 Procesos de Orden Superior 23

u 1(t)
u 1(t)
[u 1]o
L t
Flujo u1 (t)
u2(t)
u 2(t)
Flujo y(t) a Sensor [u 2]o
una velocidad de PH t
v constante
Flujo u2 (t)
Tt
y(t)
y(t)
yo
t

Fig. 2.12: Flujos en tuberı́as con tiempo muerto.

Rebose q
Agua fría T
qC
TC TC
ρC
Camisa de
Producto enfriamiento
q
Ti Tanque metálico
ρ Tm
(a) ti

K6
K1

tc tc t
i 1 1 1
K5 τ 3 s+1 K4 τ 2 s+1 t K2
τ 1 s+1
m

K7 K3

q
c (b)

Fig. 2.13: Proceso de enfriamiento.

Tm . El modelo de este proceso fue extraı́do de [28]. La Tabla 2.4 muestra las variables
y parámetros del proceso.
El balance de energı́a en el flujo que se procesa se expresa como:

dT
qρCp Ti − hi Ai T + hi Ai Tm − qρCp T = V ρCv (2.14)
dt
24 El Proceso a Controlar

Tabla 2.4: Parámetros y variables del proceso de enfriamiento en un tanque con


camisa de enfriamiento. En la Tabla, C.T.C. significa Coeficiente de Transferencia
Calorı́fica.
Sı́mbolo Descripción Valor Unid.
Qc , Qc , qc Flujo de agua actual, estable y residual m3 /s
q Flujo actual del producto que ingresa m3 /s
ρ Densidad de q kg/m3
ρc Densidad de Qc kg/m3
ρm Densidad de la pared de metal del tanque kg/m3
J
Cp Capacidad calorı́fica de q kg−K
J
Cv Capacidad calorı́fica en el tanque kg−K
J
C vm Capacidad calorı́fica del metal de la pared kg−K
V Volumen del producto en el tanque m3
Vm Volumen de la pared de metal del tanque m3
T, T , t Temp. actual, estable y residual de q K
Tci , T ci , tci Temp. actual, estable y residual de Qc K
Ti , T i , t i Temp. actual, estable y residual de q K
Tm , T m , t m Temp. actual, estable y residual del metal K
J
hi C.T.C. de la cara interna del tanque m2 −s−K
J
ho C.T.C. de la cara externa del tanque m2 −s−K
Ai Área interna de transferencia de calor m2
Ao Área externa de transferencia de calor m2

La ecuación (2.14) también es válida para el estado estacionario:

dT
qρCp T i − hi Ai T + hi Ai T m − qρCp T = V ρCv (2.15)
dt

Restando (2.15) de (2.14) y teniendo en cuenta que ti = Ti − T i , tm = Tm − T m y


t = T − T , entonces el modelo lineal residual de (2.14) resulta:

dt
qρCp ti − hi Ai t + hi Ai tm − qρCp t = V ρCv (2.16)
dt

Pasando (2.16) al dominio de Laplace y operando, se obtiene:

K1 K2
t(s) = ti (s) + tm (s) (2.17)
τ1 s + 1 τ1 s + 1

qρCp hi A − i V ρCp
K1 = K2 = τ1 =
qρCp + hi Ai qρCp + hi Ai qρCp + hi Ai
2.6 Procesos de Orden Superior 25

El balance de energı́a para la pared del tanque se formula como:

dTm
hi Ai (T − Tm ) − ho Ao (Tm − Tc ) = Vm ρm CVm (2.18)
dt

Como en el caso anterior y sabiendo que tc = Tc − T c , se encuentra:

dtm
hi Ai (t − tm ) − ho Ao (tm − tc ) = Vm ρm CVm
dt
K3 K4
tm (s) = t(s) + tc (s) (2.19)
τ2 s + 1 τ2 s + 1

hi Ai ho Ao V m ρ m C vm
K3 = K4 = τ2 =
hi Ai + h o Ao hi Ai + h o Ao hi Ai + h o Ao
El balance de energı́a en la camisa de enfriamiento se formula como:

dTc
Qc ρc Cp Tci + ho Ao (Tm − Tc ) − Qc ρc Cp Tc = Vc ρc Cv (2.20)
dt
La ecuación (2.20) es no lineal debido a los productos Qc Tci y Qc Tc , los cuales se
pueden linealizar siguiendo el procedimiento de la subsección A.6.1, ejemplo A.49,
sabiendo que: qc = Qc − Qc . Esto es:

Q c Tc i = Q c T c i + T c i qc + Q c tc i
Q c Tc = Q c T c + T c q c + Q c t c (2.21)

Reemplazando las ecuaciones de (2.21) en (2.20) se obtiene:

dTc
ρc Cp (Qc T ci +T ci qc +Qc tci )+ho Ao (Tm −Tc )−ρc Cp (Qc T c +T c qc +Qc tc ) = Vc ρc Cv
dt
(2.22)
En el estado estacionario todas las variables residuales son nulas. Por consiguiente,
(2.22) toma la forma:

dT c
ρc Cp Qc T ci + ho Ao (T m − T c ) − ρc Cp Qc T c = Vc ρc Cv (2.23)
dt
Restando (2.22) de (2.22) y pasando la resultante al dominio de Laplace se obtiene:

K5 K6 K7
tc (s) = tc + tm + qc (2.24)
τ3 s + 1 i τ3 s + 1 τ3 s + 1

Q c ρc C p ho Ao
K5 = h o A o + Q c ρc C p K6 =
ho Ao h o A o + Q c ρc C p

ρc Cp (T c − T ci ) Vc ρc C p
K7 = τ3 =
h o A o + Q c ρc C p h o A o + Q c ρc C p
La Fig. 2.13(b) muestra el diagrama de bloques del proceso construido con las ecua-
ciones (2.17), (2.20) y (2.24).
26 El Proceso a Controlar

2.7. El Motor DC
La Fig. 2.14(a) muestra el circuito equivalente de un motor DC (direct current),
donde Rf , Lf , If y Vf son la resistencia, la inductancia, la corriente y el voltaje de
campo respectivamente, Ra , La , Ia y Va son la resistencia, la inductancia, la corriente
y el voltaje de armadura respectivamente, Tm , TL y Td son el torque motor, el torque
de carga y el torque de disturbio respectivamente, Km es la constante de motor, Kb
es la constante contraelectromotriz, ω es la velocidad angular, θ es la posición angular
del eje, J es el momento de inercia del motor más carga y B es la constante de fricción
del motor más carga.

Va
Ra
Rf La

Vf Lf Vb

J
If B
Ia ω
θ
(a)
Motor más
Campo carga
T
d
Vf 1 If Tm 1 ω 1 θ
Km
Rf Lf s TL Js B s

(b)
Motor más
Armadura Td carga
Va Im 1 Tm 1 ω 1 θ
Km
Ra L as TL Js B s

Vb
Kb

(c)

Fig. 2.14: (a) Circuito equivalente del motor DC. (b) Motor DC controlado por campo.
(c) Motor DC controlado por armadura.

Motor DC Controlado por el Campo


Cuando el motor DC está controlado por el campo, entonces la corriente de campo
If es variable, mientras que la corriente de armadura Ia permanece constante. Las
ecuaciones en el dominio de Laplace que rigen la dinámica del motor CC en este caso
son:

Vf (s) = (Rf + Lf s)If (s)


Tm (s) = Km If (s) = TL (s) + Td (s)
TL (s) = Jsω(s) + Bω(s) ω(s) = sθ(s)
2.7 El Motor DC 27

El diagrama de bloques para este caso se muestra en la Fig. 2.14(b). Considerando


que el torque de disturbio Td es despreciable, la FT resulta:

θ(s) Km
Gp (s) = = (2.25)
Vf (s) s(Js + B)(Lf s + Rf )

Si la inductancia de campo Lf es suficientemente pequeña, entonces la FT para la


posición θ y para la velocidad angular ω toman la forma:

θ(s) ∼ K
Gp (s) = =
Vf (s) s(τ s + 1)
ω(s) ∼ K J Km
Gp (s) = = τ= K= (2.26)
Vf (s) τs + 1 B Rf B

Motor DC Controlado por la Armadura


Si el motor DC está controlado por la armadura, entonces la corriente de armadu-
ra Ia es variable, mientras que la corriente de campo If permanece constante. Las
ecuaciones en el dominio de Laplace que rigen la dinámica del motor DC en este caso
son:

Va (s) = (Ra + La s)Ia (s) + Vb (s) Vb (s) = Kb ω(s)


Tm (s) = Km Ia (s) = TL (s) + Td (s)
TL (s) = Jsω(s) + Bω(s)
ω(s) = sθ(s) (2.27)

El diagrama de bloques para esta situación se muestra en la Fig. 2.14(c). Asumiendo


que el torque de disturbio Td es despreciable, la FT resulta:

θ(s) Km
Gp (s) = = (2.28)
Va (s) s[(Ra + La s)(Js + B) + Kb Km ]

Si la inductancia de armadura La es suficientemente pequeña, entonces la FT para


la posición θ y para la velocidad angular ω toman la forma:

θ(s) ∼ K
Gp (s) = =
Va (s) s(τ s + 1)
ω(s) ∼ K Km Ra J
Gp (s) = = ; K= ; τ= (2.29)
Va (s) τs + 1 Ra B + Kb Km Ra B + Kb Km

Notar que tanto para el motor controlado por campo como por armadura, las FTs
para θ y para ω dadas en (2.26) y (2.29) poseen la misma estructura cuando se
desprecia ya sea Lf o La .

Modelo en el Espacio de Estado


En ingenierı́a de control se emplea más el motor CC controlado por armadura
debido a la inherente realimentación que presenta en este caso. Por tal razón nos
ocuparemos del modelo en el espacio de estado para este motor. Si seleccionamos
28 El Proceso a Controlar

como variables de estado x1 = θ, x2 = ω y x3 = Ia y asumimos que Td = 0 en (2.27),


se obtienen las siguientes ecuaciones diferenciales de primer orden:
B Km Kb 1
ẋ1 = x2 ẋ2 = − x2 + x3 ẋ3 = − x3 + Va
J J La La
Si se elige como salida la posición y = x1 y se designa a Va como la entrada u, la
forma matricial de la ecuación de estado resulta:
ẋ = Ax + Bu y = Cx (2.30)
       
ẋ1 1 0 0 0 x1
 
 ẋ2  =  0 − B − Km  +  0  u y= 1 0 0  x2 
J J
1
ẋ3 0 −K
La
b
−R a
La La x3
Si se considera que la inductancia de armadura La es despreciable, entonces podemos
usar las FTs dadas en (2.29). Para el caso posición θ, seleccionemos x 1 = θ y x2 = θ̇
como las variables de estado del motor, y = θ como la salida y u = Va como la
señal de entrada. Se deja como ejercicio demostrar que partiendo de la primera FT
de (2.29), la representación en el espacio de estado resulta:
ẋ = Ax + Bu y = Cx (2.31)
       
ẋ1 0 1 0   x1
= + K u y= 1 0
ẋ2 0 − τ1 τ x2
Para el caso velocidad angular ω, seleccionemos x = y = ω como la variable de estado
y a la vez salida y u = Va como la señal de entrada. Se deja como ejercicio demostrar
que partiendo de la segunda FT de (2.29), la representación en el espacio de estado
toma la forma:
x = Ax + Bu y = Cx (2.32)
1 K
A=− B= C=1
τ τ

2.8. Modelo MIMO del Proceso Tanque Cerrado


2.8.1. Descripción del Proceso
El proceso tanque cerrado con agua estudiado aquı́ se muestra en la Fig. 2.15. La
Fig. 2.16 ilustra el esquema para estudio de este proceso, donde se observa que los
flujos de agua frı́a qC y de agua caliente qC se mezclan en el interior del tanque con el
propósito de producir el flujo de salida qC a una temperatura θ. Por consiguiente, el
proceso tanque con agua es multivariable cuadrado debido a que posee dos entradas:
los flujos qC y qH , y dos salidas: el nivel h del agua dentro del tanque y la temperatura
θ que se asume uniforme en el interior del tanque.
El objetivo del sistema de control a diseñar, es determinar adecuadas fuerzas de
control qC y qH con la capacidad de estabilizar las salidas controladas h y θ, cumplien-
do ciertas especificaciones de diseño previamente establecidas. La manipulación de
las fuerzas de control se realizan mediante dos válvulas de control neumáticas, mien-
tras que el transmisor de nivel LT y el transmisor de temperatura TT se ocupan de
medir y transmitir el nivel y la temperatura respectivamente. La Tabla 2.5 describe
las variables y los parámetros valorados del proceso tanque cerrado con agua.
2.8 Modelo MIMO del Proceso Tanque Cerrado 29

Tabla 2.5: Parámetros, variables y sı́mbolos del sistema tanque con agua.

Sı́mbolo Descripción Valor Unid.


dA Diámetro del tanque 0.2 m
A Sección circular del tanque 0.0314 m2
h Nivel del agua m
h Nivel del agua en estado estacionario 0.4 m
qC Flujo de agua frı́a hacia el tanque m3 /s
qC Estado estacionario de qC 1.66×10−4 m3 /s
qH Flujo de agua caliente hacia el tanque m3 /s
qH Estado estacionario de qH 0.5×10−4 m3 /s
qD Flujo de salida desde el tanque m3 /s
qD Estado estacionario de qD 2.16×10−4 m3 /s
Rh Resistencia hidráulica del tanque: Rh = h/q D s/m2
g Aceleración de la gravedad 9.81 m/s2
θC Temperatura del flujo qC 20 +270 K
θH Temperatura del flujo qH 50 +270 K
θ Temperatura del flujo qD y en el tanque K
θ Estado estacionario de θ 35+270 K
ρC Densidad del agua para qC 998 kg/m3
ρH Densidad del agua para qH 988 kg/m3
ρD Densidad del agua para qD 996 kg/m3
d Diámetro del orificio de la placa en qD 6.5 mm
D Diámetro de la placa de orificio en qD 15.9 mm
J
Cp Calor especı́fico del agua 4186.8 kg K
ΦH Calor entregado por qH J/s
ΦT Calor del agua en el interior del tanque J/s
ΦD Calor que toma el flujo de salida qD J/s
ΦC Calor que trae consigo qC J/s
LT Transmisor de nivel
TT Transmisor de temperatura
FT Transmisor de flujo
PT Transmisor de presión
30 El Proceso a Controlar

Fig. 2.15: Sistema tanque con agua.

2.8.2. Modelo Dinámico No Lineal del Proceso


Balance de Masas
Aplicando balance de masas en el tanque, el cambio de volumen de agua acumu-
lado en su interior se modela como:
dh
A = Aḣ = qC + qH − qD (2.33)
dt
donde A es la sección del tanque, h es la altura del agua, Aḣ es el cambio de volumen
de agua en el tiempo t, qC (agua frı́a) y qH (agua caliente) son los flujos de entrada
al tanque y qD (agua calentada) es el flujo de salida, el cual se calcula de [14]:
π p √ π p
qD = CE d2 2ρD ∆p = a h; a = CE d2 ρD 2g (2.34)
4 4
donde hemos usado el hecho de que la caı́da de presión ∆p en la tuberı́a de diámetro
D provocada por la placa de orificio de diámetro d se expresa como:

∆p = ρD gh

En la expresión (2.34), g es la aceleración de la gravedad, C = 0.6 es el coeficiente


de descarga del orificio, ρD es la densidad del agua a una temperatura θ, β = d/D es
2.8 Modelo MIMO del Proceso Tanque Cerrado 31

PT
LT= Transmisor de Nivel
TT = Transmisor de Temperatura
TT
PT= Transmisor de Presión
FT= Transmisor de Flujo
LT
Rebose

Drenaje

FT
Agua Caliente

FT
Agua Fría

Fig. 2.16: Esquema de estudio del sistema tanque con agua.

una relación igual a 0.41 y E es una constante de corrección del valor del flujo debido
a consideraciones geométricas, el cual se expresa como:

E = (1 − β 4 )−1/2

Despejando ḣ de (2.33), la ecuación de estado para la variable de estado nivel toma


la forma:
a√ 1 1
ḣ = − h + qC + qH (2.35)
A A A
Los valores de las densidades del agua en función de la temperatura se pueden obtener
de figura 2.17.

Balance de Energı́a Térmica


El balance de energı́a térmica dentro del tanque se formula como:

ΦT = −ΦD + ΦC + ΦH (2.36)

donde ΦH es calor entregado por el flujo de agua caliente qH , ΦT es el calor del


agua en el interior del tanque, ΦD es el calor que toma el flujo de salida qD y ΦC
es el calor que trae consigo el flujo de entrada de agua frı́a qC . Cabe anotar que se
está despreciando el calor que se libera al exterior del tanque debido a que tal tanque
es cerrado y suficientemente aislado. Las relaciones que gobiernan los flujos calorı́ficos
descritos anteriormente son:

ΦT = AhρD Cp = AhρD Cp θ̇
dt
32 El Proceso a Controlar

DENSIDAD Kg/m3
1005

1000

995

990

985

980
0 10 20 30 40 50 60
TEMPERATURA ° C

Fig. 2.17: Valores de la densidad del agua versus la temperatura.

ΦC = C p ρC θ C qC
ΦH = C p ρH θ H qH

Φ D = C p ρD θ q D = C p ρD θ a h (2.37)

Los parámetros que aparecen en (2.37) se describen en la tabla 2.5. Observar que se
asume un valor constante para el calor especı́fico del agua Cp . La ecuación de estado
de la variable de estado temperatura θ se obtiene despejando dθ dt = θ̇ de (2.36):

a √ ρC θ C qC ρH θ H qH
θ̇ = − θ h+ + (2.38)
Ah ρD A h ρD A h
Definamos las siguientes fuerzas de control o variables manipuladas: u1 = qC ,
u2 = qH y las siguientes variables de estado: x1 = h, x2 = θ y juntando las ecuaciones
(2.35) y (2.38), la ecuación de estado que describe la dinámica del proceso tanque
cerrado con agua se formula como:

ẋ = f (x, u) (2.39)
         
ẋ1 ḣ x1 u1 qC
ẋ = = x= u= =
ẋ2 θ̇ x2 u2 qD
 √ 
" # − Aa x1 + A1 u1 + A1 u2
f1  
f= = 
f2 a x ρ θ u ρ θ u
− A √x21 + ρCD AC x11 + ρHD AH x12

Dado que las variables de estado son las variables medidas del proceso, entonces la
ecuación de salida posee la siguiente expresión:

y = Cx (2.40)
2.8 Modelo MIMO del Proceso Tanque Cerrado 33

     
y1 x1 1 0
y= = C=
y2 x2 0 1

2.8.3. Modelo Dinámico de Lagrange del Proceso


El modelo dinámico de Lagrange del proceso tanque cerrado con agua se obtiene
reordenado las ecuaciones de (2.39) en la forma siguiente:

u1 + u2 = Aẋ1 + a x1

ρC θC u1 + ρH θH u2 = ρD Ax1 ẋ2 + ρD a x1 x2

Por consiguiente:
       √ 
1 1 u1 A 0 ẋ1 a x1
= + √
ρc θ C ρH θ H u2 0 ρD Ax1 ẋ2 ρD a x 1 x 2

Operando en la última ecuación, es fácil demostrar que el modelo dinámico de La-


grange del proceso toma la forma:

u = P ẋ + d (2.41)
 
1 ρH θH A −ρD Ax1
P=
(ρH θH − ρC θC ) −ρC θC A ρD Ax1
 √ √ 
1 ρH θ H a x 1 − ρ D a x 1 x 2
d= √ √
(ρH θH − ρC θC ) −ρC θC a x1 + ρD a x1 x2

2.8.4. Modelo Dinámico Lineal del Proceso


La placa de orificio instalada en la tuberı́a del flujo de salida qD produce un flujo
turbulento que para variaciones pequeñas del nivel h se puede aproximar como [13]:

2h
qD = (2.42)
Rh

donde Rh es la resistencia hidráulica del tanque, la cual se puede determinar de [13]:

h
Rh = (2.43)
qD

donde h y q D son los valores en estado estacionario de h y qD respectivamente.


Reemplazando (2.42) en (2.35), se obtiene la ecuación lineal de estado del nivel:

2 1 1
ḣ = − h + qC + qH (2.44)
Rh A A A

En función de las variables de estado definidas anteriormente, (2.44) toma la forma:

2 1 1
ẋ1 = − x 1 + u1 + u2 (2.45)
Rh A A A
34 El Proceso a Controlar

Asumiendo que la variación del nivel h es mı́nima, entonces podemos hacer las
siguientes sustituciones en la ecuación de estado (2.38) correspondiente a la tempe-
ratura en el tanque:
√ p
h=h qD = a h = a h = q D
donde el valor estacionario q D se calcula de (2.42). Tales reemplazos nos permiten
obtener la siguiente descripción lineal de la dinámica de la temperatura:
qD ρC θ C ρH θ H
θ̇ = − θ+ qC + qH (2.46)
AhρD hρD AhρD
Empleando las variables de estado definidas anteriormente, (2.46) toma la forma:
qD ρC θ C ρH θ H
ẋ2 = − x2 + u1 + u2 (2.47)
AhρD AhρD AhρD
La ecuación de estado lineal del proceso se obtiene juntando las ecuaciones (2.45) y
(2.47):
ẋ = A x + B u (2.48)
       
x1 h u1 qC
x= = u= =
x2 θ u2 qH
   1 
− Rh2 A 0 A A
1

A= qD
 B= ρ θ ρH θ H

0 − Ahρ C C
Ahρ Ahρ
D D D

La ecuación de salida es la misma expresión dada en (2.40).

2.9. Respuesta Transitoria de los Procesos


2.9.1. Respuesta al Escalón
Asumamos que la respuesta de un sistema (su curva de reacción) a una entrada
tipo escalón posee la forma mostrada en la Fig. 2.18, el cual es el caso en muchos
sistemas industriales denominados autoregulados. Observar en la Fig. 2.18 que la
respuesta y0 en el tiempo t1 se debe a la entrada tipo escalón u0 . Cuando la señal
escalón de entrada cambia de u0 a u1 , entonces se produce la curva de reacción y(t)
mostrada, la cual empieza en t1 . Este tipo de respuesta se puede aproximar mediante
una FT de primer orden en cascada con una FT del tiempo muerto:
y(s) Kp y1 − y 0
Gp (s) = = eτ s Kp = (2.49)
u(s) (T s + 1) u1 − u 0
donde Kp es la ganancia proporcional, T es el retardo de primer orden o la constante
de tiempo y τ es el tiempo muerto o retardo puro. Los parámetros T y τ se obtienen
gráficamente trazando una tangente que toque el punto de tangencia (P.T.) sobre la
curva de reacción.
La curva de reacción mostrada en la Fig. 2.18 también se puede aproximar me-
diante una FT de orden n de la forma:
y(s) Kp y1 − y 0
G(s) = = n
Kp = (2.50)
u(s) (Tn s + 1) u1 − u 0
Los parámetros n y Tn de (2.50) se determinan empleando la Tabla 2.6.
2.9 Respuesta Transitoria de los Procesos 35

u y
Proceso
u1 autoregulado y
1
u KP y
e τs P.T.
Ts + 1 y0
u0
τ
t t1 t t t1 T t
0 0

Fig. 2.18: Curva de reacción de un sistema.

Tabla 2.6: Determinación de los parámetro n y Tn de (2.50).

n 2 3 4 5 6 7 8 9 10
τ /T 0.104 0.218 0.320 0.410 0.493 0.591 0.641 0.709 0.775
Tn /T 0.368 0.270 0.224 0.195 0.175 0.151 0.148 0.140 0.132

Ejemplo 2.2

Determinar dos modelos dinámicos que describan el comportamiento velocidad fre-


nada de un motor DC a partir de su curva de reacción, semejante a la mostrada en la
Fig. 2.18. Esta curva se obtuvo manipulando la entrada u del sistema, un generador
de voltaje continuo. Los datos leı́dos fueron: u0 = 10 V, u1 = 20 V, y0 = 400 rpm,
y1 = 600 rpm, el tiempo muerto τ = 2 s y T = 9.2 s. Determinar la ganancia nor-
malizada del sistema sabiendo que la entrada máxima de voltaje es 40 V y el rango
del instrumento de medición de rpm a la salida es de 0 a 1000 rpm.

Solución: El primer modelo dinámico se halla con la ecuación (2.49) donde τ = 2 s


y T = 9.2 s:

y(s) Kp y1 − y 0 600 − 400 rpm


G(s) = = e−τ s Kp = = = 20
u(s) (T s + 1) u1 − u 0 20 − 10 V

El segundo modelo dinámico se refiere a la ecuación (2.50). Con los datos propor-
cionados en el ejemplo se obtiene: τ /T = 0.217. Empleando la Tabla 2.6 se puede
determinar: n = 3 y Tn /T = 0.270, lo que implica: Tn = 2.484 s. La FT resulta:

y(s) Kp 20
G(s) = = n
=
u(s) (Tn s + 1) (2.484s + 1)3

La ganancia normalizada Kpn se determina de:


600−400
1000−0 0.2
Kpn = 20−10 = = 0.4
40−0
0.5
36 El Proceso a Controlar

Caso Especial
Para el caso especial:
0 < τ /T < 0.104
la dinámica del sistema autoregulado se puede aproximar mediante la siguiente FT
de segundo orden:
Y (s) KP y1 − y 0
G(s) = = KP = (2.51)
U (s) (T1 s + 1)(T2 s + 1) u1 − u 0
donde T1 y T2 son dos constantes de tiempo que se relacionan mediante la ecuación:

T2 = kT1 k>1

La constante k se determina usando la Tabla 2.7.

Tabla 2.7: Determinación de los parámetro T1 y T2 de (2.51).

k 1 2 3 4 5 6 7 8 9
τ /T 0.094 0.090 0.085 0.080 0.075 0.069 0.064 0.058 0.053
T1 /T 0.238 0.175 0.140 0.120 0.107 0.097 0.088 0.081 0.074

Ejemplo 2.3

Determinar el modelo que describa la dinámica de un sistema mecatrónico de veloci-


dad a partir de su curva de reacción, semejante a la mostrada en la Fig. 2.18. En este
caso, los datos leı́dos fueron: u0 = 5 V, u1 = 15 V, y0 = 200 rpm, y1 = 300 rpm, τ
= 2 s, T = 22 s.

Solución: El modelo dinámico se refiere a la ecuación (2.51). Dado que τ /T = 0.09,


empleando la Tabla 2.51 se determina que k = 2 y T1 /T = 0.175, lo que implica que
T1 = 3.85 s y T2 = kT1 = 7.7 s. Como KP = (300–200)/(15–5) = 10 rpm/V, la FT
pedida es:
Y (s) KP 10
G(s) = = =
U (s) (T1 s + 1)(T2 s + 1) (3.85s + 1)(7.7s + 1)

2.9.2. Método del 28.3 % y 63.2 %


La Fig. 2.19 muestra la curva de reacción para el método 28.3 % y 63.2 %. En este
método se determinan los tiempos t28.3 % y t63.2 % correspondientes a las magnitudes
0.283∆y y 0.632∆y, respectivamente. En base a estos valores, los parámetros de la
FT dada en la ecuación (2.49) se determinan de:

T = 1.5(t63.2 % − t28.3 % ) τ = t63.2 % − T (2.52)


2.9 Respuesta Transitoria de los Procesos 37

u t 63.2%
y
t 28.3
u1 Proceso y
autoregulado 1
∆u
u KP y 0.632 ∆y ∆y
u0 e τs
Ts + 1 y0
0.283 ∆ y
t t1 t
0 t t1 t
0

Fig. 2.19: Curva de reacción para el método 28.3 % y 63.2 %.

2.9.3. Otras Respuestas al Escalón y al Impulso


Los sistemas autoregulados presentan una respuesta finita (constante o cero) a
entradas de prueba escalón o impulso. Sabemos que cuando la entrada u(t) es un
escalón o un impulso de magnitud A, sus correspondientes transformadas de Laplace
son u(s) = A/s y u(s) = A respectivamente.
El siguiente proceso de segundo orden se emplea para explicar las especificaciones
de diseño en el dominio del tiempo como veremos en la siguiente sección. La FT de
este sistema es:
y(s) ωn2
Gp (s) = = 2 (2.53)
r(s) s + 2ζωn s + ωn2
donde ωn es conocida como la frecuencia natural de oscilación y ζ es el coeficiente de
amortiguamiento. Cuando r(s) = A/s (entrada tipo escalón de magnitud A), y(s) en
(2.53) toma la forma:
Aωn2
y(s) = (2.54)
s(s2 + 2ζωn s + ωn2 )
Tomando la transformada inversa de Laplace (fórmula (31) de la Tabla A.1) se ob-
tiene:  
ωn −ζωn t
y(t) = A 1 − e sen(ωd t + θ) (2.55)
ωd
La Fig. 2.20 (gráfico superior izquierda) muestra y(t) para A = 1 y varios valores de
ζ. Notar que para ζ ≥ 1 la respuesta se vuelve sobreamortiguada. La transformada
inversa de laplace de (2.54) para ζ ≥ 1 se obtiene empleando la fórmula (32) de la
Tabla A.1.
Cuando u(s) = A (entrada tipo impulso), y(s) en la ecuación (2.53) se formula
como:
Aωn2
y(s) = 2 (2.56)
s + 2ζωn s + ωn2
Tomando la transformada inversa de Laplace (fórmula (29) de la Tabla A.1) resulta:
Aωn2 −ζωn t
y(t) = e sen ωd t (2.57)
ωd
La Fig. 2.20 (gráfico superior derecha) muestra y(t) para A = 1 y varios valores de
ζ. Notar también que para ζ ≥ 1 la respuesta se vuelve sobreamortiguada.
38 El Proceso a Controlar

Una forma alternativa de (2.53) incluye un tiempo muerto τ . Esto es:

y(s) ω2
G(s) = = 2 e−sτ (2.58)
u(s) s + 2ζωs + ω 2

Para una entrada tipo escalón (u(s) = A/s) en (2.58) y aplicando la propiedad (5)
de la Tabla A.2 en (2.55), se obtiene la respuesta y(t) al escalón correspondiente a
(2.58):
 
ωn −ζωn (t−τ )
y(t) = A 1 − e sen[ωd (t − τ ) + θ] (2.59)
ωd
La Fig. 2.20 (gráfico inferior izquierda) muestra y(t) para A = 1 y varios valores de
ζ. De nuevo, notar que para ζ ≥ 1 la respuesta se vuelve sobreamortiguada.
Si la entrada es un impulso (u(s) = A) en (2.58) y aplicando la propiedad (5)
de la Tabla A.2 en (2.57), se obtiene la respuesta al impulso y(t) correspondiente a
(2.58):
Aωn2 −ζωn (t−τ )
y(t) = e sen ωd (t − τ ) (2.60)
ωd
La Fig. 2.20 (gráfico superior derecha) muestra y(t) para A = 1 y varios valores de ζ.
Notar que para ζ ≥ 1 la respuesta se vuelve sobreamortiguada. Para obtener la Fig.
2.20, ejecutar el programa r1.m listado abajo.

% r1.m RESPUESTAS AL ESCALÓN Y AL IMPULSO DE PROCESOS AUTOREGULADOS


clear all; close all; clc; wn=3; tau=2; s=tf(’s’);
subplot(221), for z=[0.2:0.4:1.8]; G1=wn^2/(s^2+2*z*wn*s+wn^2);
step(G1), hold on, end
subplot(222), for z=[0.2:0.4:1.8]; G2=wn^2/(s^2+2*z*wn*s+wn^2);
impulse(G2), hold on, end
subplot(223), for z=[0.2:0.4:1.8]; G3=wn^2*exp(-tau*s)/(s^2+2*z*wn*s+wn^2);
step(G3), hold on, end
subplot(224), for z=[0.2:0.4:1.8]; G4=wn^2*exp(-tau*s)/(s^2+2*z*wn*s+wn^2);
impulse(G4), hold on, end, print -deps -f r1

Respuesta al Escalón en Procesos No Autoregulados


Procesos no autoregulados, como es el caso de la posición angular del eje de un
motor de CC, o el aumento del nivel de un lı́quido dentro de un tanque sin tuberı́a de
salida, poseen una respuesta al escalón no finita, tal como se ilustra en la Fig. 2.21.
La dinámica de tales procesos se puede modelar como:

Kp −τ s
Gp (s) = e R = Kp τ (2.61)
s

donde τ es el tiempo muerto, R es la razón de reacción unitaria y Kp es la ganancia


proporcional. Los parámetros R y τ se obtienen gráficamente, tal como se ilustra en
la Fig. 2.21.
A manera de resumen, la Tabla 2.8 muestra la FT (función de transferencia) de
varios procesos en función de su comportamiento.
2.10 Problemas 39

Step Response Impulse Response

2 4

1.5
Amplitude

Amplitude
0.2 2 0.2
1
0
0.5 1.8
1 1.8
0 −2
0 5 10 0 5 10
Time (sec) Time (sec)

Step Response Impulse Response

2 4

1.5
Amplitude

Amplitude
0.2 2
0.2
1
0
0.5 1.8
1 1.8
0 −2
0 5 10 0 5 10
Time (sec) Time (sec)

Fig. 2.20: Respuestas al escalón y al impulso de procesos de segundo orden en función


del parámetro ζ.

u Proceso
no autoregulado y
A u y
Kp
e τs
s

τ R = Kp τ R t
τ

Fig. 2.21: Respuesta al escalón de un proceso no autoregulado.

2.10. Problemas
Problema 2.1 Amplificador de Opamps
La Fig. 2.22 muestra un amplificador un seguidor de voltaje y dos opamps inversores.
Demostrar que este proceso es proporcional con ganancia K p = Rf /Ri , donde Rf ,
Ri y R son resistencias.
40 El Proceso a Controlar

Tabla 2.8: FT (Función de Transferencia) de varios procesos en función de su com-


portamiento, donde τ es el tiempo muerto. Otras combinaciones son posibles.

Proceso FT Proceso FT
Kp
Proporcional (P) Kp Primer orden T s+1
Kp Kp
Integral (I) s Segundo orden (T1 s+1)(T2 s+1)
(primera forma)
Kp Kp
Doblemente s2
Segundo orden (T s+1)2
integral (segunda forma)
  2
1 ωn
Proporcional Kp 1 + Ti s Segundo orden s2 +2ζωs+ωn
2

integral (PI) (tercera forma)


Kp
Proporcional Kp (1 + Td s) De orden n (T1 s+1)···(Tn s+1)
derivativo (PD) (primera forma)
 
1 Kp
P+I+D Kp 1 + Ti s + Td s De orden n (T s+1)n
(segunda forma)
Kp
Proporcional con Kp e−τ s 2do orden con τ (T1 s+1)(T2 s+1) e−τ s
tiempo muerto (1a forma)
Kp 2
ωn
Integral con s e−τ s 2do orden con τ s2 +2ζωs+ωn
2 e−τ s
tiempo muerto (2a forma)
Kp 2s
ωn
1er orden con T s+1 e−τ s 2do orden con τ s2 +2ζωs+ωn
2 e−τ s
tiempo muerto y derivativo

Rf R
Ri R
Vo

Seguidor Opamp Opamp


Vin de voltaje inversor inversor

Fig. 2.22: Circuito con opamps.

Problema 2.2 Turbina

La Fig. 8.11 muestra una turbina de agua unido a un generador eléctrico. De-
mostrar que:
M (s) Kp
=
ω(s) Ts + 1
2.10 Problemas 41

donde M (s) es el momento rotacional generado por la turbina gracias a la acción


del flujo de agua, ω(s) es la velocidad angular del generador y T su correspondiente
constante de tiempo. Asumir conocido cualquier otro parámetro necesario.

Generador
eléctrico
Turbina

Entrada
de agua
M
ω

Desague

Fig. 2.23: Generador accionado por una turbina de agua.

Problema 2.3 Proceso Tanque Cerrado

En la subsección 2.8.1 se determinaron el modelo de Lagrange y la ecuación de estado


del proceso tanque cerrado
√ con agua. Ahora consideremos que se desea controlar el
flujo de salida qD = a h y la temperatura en el tanque θ. Las fuerzas de control (las
entradas), siguen siendo las mismas: qC y qH . Determinar la ecuación de estado y el
modelo de Lagrange del proceso para esta situación.

Problema 2.4 Tanque para Gas

La Fig. 2.24 muestra un tanque de almacenamiento de gas. Demostrar que:

Po (s) 1
= T = RC
Pi (s) Ts + 1

donde Po es la presión del gas dentro del recipiente, Pi es la presión del gas de entrada,
R = (Pi − Po )/Q es el la resistencia neumática, Q es el caudal del gas, C = dm/dp
(variación de la masa con respecto a la variación de la presión) es la capacitancia
neumática, m = ρV es la masa del gas, V es el volumen del tanque, ρ es la densidad
del gas y T = RC es la constante de tiempo. Se sabe además que la capacitancia C
multiplicada por la variación de la presión de salida dPo , es igual al gas Q añadido
al recipiente en un diferencial de tiempo dt.

Problema 2.5 Proceso Mecánico

La Fig. 2.25 muestra una proceso mecánico traslacional, donde M es la masa de


un cuerpo que está accionado por una fuerza u. A esta acción se le oponen la fuerza
fK = Kx en el resorte y la fuerza de pérdidas fB = Bv en el amortiguador, donde K
42 El Proceso a Controlar

Pi
R
Q
Po
C
ρ

Fig. 2.24: Tanque almacenador de gas.

es la constante del resorte, B es la constante de pérdidas, v = dx/dt es la velocidad


de la masa M y x su posición. La ecuación dinámica de este proceso es:
dv
M = u − f K − fB
dt
Determine la FT v(s)/u(s) y la ecuación matricial de estado del proceso sabiendo
que x1 = v, x2 = fK , mientras que la salida es: y = x1 /K.

x
K v

B fK M u

fB

Fig. 2.25: Proceso mecánico traslacional.

Problema 2.6 Sistema de Plataformas


La Fig. 2.26 muestra dos plataformas P1 y P2 de masas m1 y m2 acopladas por
resorte y amortiguador. El sistema de plataformas descrito tiene como entradas de
control las señales u1 y u2 generadas por dos actuadores. Las señales de control son
capaces de llevar a cero con suficiente rapidez los errores de posición e 2 = r2 − y2 ,
donde r1 y r2 son las señales de referencia e y1 e y2 , las señales de salida a controlar,
son las posiciones individuales de las plataformas. Asuma Usted los valores de los
parámetros del sistema. (a) Determinar las ecuaciones de estado y de salida del
sistema. (b) Determine el modelo de Lagrange del sistema.
Problema 2.7 Proceso Térmico
En el sistema térmico mostrado en la Fig. 2.27 se desea determinar su ecuación
de estado, sabiendo que las entradas al sistema son el flujo de agua q1 (t) y el flujo de
calor Qi (t), mientras que las salidas son las temperaturas TM y TF . Considerar que
la temperatura Ta del medio ambiente es constante. Se sabe además que TF > TM ,
TF > Ta . Considerar que el flujo de salida qo es laminar. Los parámetros CF y CM son
los calores especı́ficos del fluido en el tanque y de la masa respectivamente, mientras
que RF y R : F son las resistencias hidráulicas.
2.10 Problemas 43

  
    e1

+
    u1

r1   +

P1 y1
R1 Y1

− K1 u2 B1

              
+
+

r2
   P2
y
2

R2
  −
Y2

  e2
K2 B2

















Fig. 2.26: Plataformas acopladas.

! "! "!  $% "! "! ## "! "! "! "!  
 ##  
qi Ta

 
RF

 CM RM

h

CF TM
 
             
TF Q

VAPOR
 qo

Fig. 2.27: Sistema hidráulico del problema 2.7.

Problema 2.8 Proceso Hidráulico

En el proceso hidráulico mostrado en la Fig. 2.28 se desea determinar su ecuación


de estado, sabiendo que la entrada al sistema es la fuerza f (t) aplicada sobre la masa
M1 de sección A1 y la salida es el desplazamiento x2 de la masa M2 de de sección
A2 . B, B1 y B2 son los coeficientes de fricción viscosa mientras K es la constante del
resorte.

Problema 2.9 Proceso Hı́brido

En el proceso hı́brido mostrado en la Fig. 2.29 se desea determinar su ecuación


de estado, sabiendo que la entrada al sistema es el flujo de agua q1 (t) y la salida
es el voltaje V (t) del generador. Tomar como variables de estado la presión P 1 , la
velocidad angular ωT del eje del motor y la corriente de armadura iG del motor.

Problema 2.10 Proceso Electromecánico


44 El Proceso a Controlar

B1 /2
,,- ../f(t)
M1 B1 /2
A1 f1 x1

B2 /2
() ACEITE
A2
M2
f2
*+ B2 /2
x2

&' &' &' &' &' &' &' &' &' &' &' &'
K B

Fig. 2.28: Sistema hidráulico del problema 2.8.

q
Po A Ra La

θT θG
ωT ωG Rc
P1 q1 TT TG
V
Turbina VG K bω Lc
KT
JT
q1
Generador DC en paralelo

Fig. 2.29: Proceso hı́brido del problema 2.9.

En el sistema electromecánico mostrado en la Fig. 2.30 se desea determinar las


funciones de transferencia ω(s)/R(s) y θ(s)/R(s). Notar que la barra dentada posee

22A@ DC3232 A@ BDC3232 A@ BDC3232 A@ B DC


una masa M y gira a ω rad/s

Ref e R
223232 E3232 E3232 EE 889 89 x

232 32 4432 01 5454 5454 <5454 ;:=< ;:=<


A Tm M
ω dθ
KJK
θ ωm

445454 >GF5454 ?>IH GF5454 ?>IH GF ?>IH GF


J dt

J ML ML
u Vb K b ωm
KT r

445445 5445 65445 76 76


Ia f
L x
Transductor
B

Fig. 2.30: Sistema electromecánico del problema 8.6.


Capı́tulo 3

El Sistema de Medición

En este Capı́tulo se aborda el sistema de medición de un sistema de control reali-


mentado, el cual comprende la medición primaria, realizada con sensores, y la conversión
de la señal señal medida en una señal manipulable, estandarizada y transmitible. Esta
conversión la realiza el transmisor.
Es necesario acotar que en el mercado se pueden encontrar tanto sensores como
transmisores (denominados también transductores, convertidores o acondicionadores de
señal) por separado, ası́ como también formando instrumentos unidades completas.
También cabe mencionar que los sistemas de medición actuales, además de tener
disponibles mediciones estandarizadas tales como 4 a 20 mA o 3 a 15 psi, también son
capaces de procesar señales digitales empleando uno o varios protocolos industriales.

3.1. Sensores
Recordemos que la Fig. 1.1 ilustra un sistema de control a lazo cerrado (o real-
imentado) simple, denominado ası́ poseer un solo lazo de realimentación. El bloque
sistema de medición para el control de procesos SISO (Single Input Single Output),
consta de un sensor y de un transmisor. El sensor proporciona la variable medida,
la cual representa la condición actual de la variable controlada y, mientras que el
transmisor cambia tal medición en una señal estandarizada, la cual generalmente es
una señal que pueda ser procesada y transmitida. En muchos casos la variable medida
y la variable controlada pueden ser la misma.
Los temas sensores y transmisores se tratan en forma extensa y especilizada en
los textos de instrumentación industrial. En esta publicación, tales temas van a ser
tratados con el suficiente nivel que exige un texto de control de procesos.
La medición del valor actual de la señal a controlar se realiza mediante un sensor,
denominado también elemento primario de medición, o un instrumento de medición
que emplea los sensores adecuados para tal o cual medición. Un sensor puede estar
caracterizado por una curva de reacción la cual relaciona la variable medida con la
señal generada. Esta curva se obtiene aplicando una serie de entradas conocidas al
sensor y almacenando las correspondientes respuestas. Un ejemplo tı́pico está consti-
tuido por las curvas caracterı́sticas de Temperatura (◦ F) vs mV de las termocuplas.
Según el tipo de señal de salida que proporciona, un sensor se puede clasificar en
analógicos (la señal de salida es continua dentro del rango de medición), digital (la
46 El Sistema de Medición

señal de salida es digital), y ON–OFF (la señal de salida varı́a entre los umbrales
ON y OFF). Según la magnitud a medir, el sensor puede ser de nivel, presión, tem-
peratura, proximidad, flujo, etc. Por ejemplo, una termoresistencia proporciona una
señal continua en ohms, la cual es proporcional a la temperatura medida, mientras
que un radar proporciona señales discretas que son proporcionales a la magnitud de
la variable medida. Por otro lado, las señales que abren y cierran completamente una
válvula son del tipo ON–OFF.

3.1.1. Caracterı́sticas Estáticas y Dinámicas


Un sensor posee tanto caracterı́sticas estáticas como dinámicas. Entre las car-
acterı́sticas estáticas tenemos: rango, alcance, resolución, sensibilidad, curva carac-
terı́stica, linealidad, saturación, zona muerta, repetibilidad, histéresis, precisión y
exactitud. Las caracterı́sticas dinámicas son: velocidad de respuesta, respuesta en
frecuencia, y estabilidad.
El rango es el campo de medida de la magnitud de entrada del sensor y varı́a entre
el valor máximo y el valor mı́nimo detectables, con una tolerancia de error aceptable.
El alcance o span es la diferencia entre el valor máximo y el valor mı́nimo de interés,
mientras que la resolución es la mı́nima diferencia entre dos valores próximos que el
sensor es capaz de distinguir. Supongamos que un voltı́metro es capaz de medir en
el rango de 0 a 500 V, pero nosotros sólo estamos interesados en medir en la escala
de 200 a 300 V, lo cual significa un span de 100 V. El voltı́metro usado posee una
resolución de 0.5 V, es decir, podemos ver sin dificultad lecturas de, por ejemplo,
200.5 V 0 289.5 V.
La sensibilidad es la variación de la salida debido a una variación de la entrada. El
gráfico de los puntos de sensibilidad define la curva caracterı́stica o de de calibración.
Este gráfico representa respuesta no lineal. Mientras mayor sea la pendiente de dicha
curva, mejor la sensibilidad. En un sensor con curva de respuesta lineal, la variación
de la salida producida por una variación de la entrada es constante; es decir, su
sensibilidad es siempre la misma y su curva caracterı́stica es lineal. Por ejemplo,
las curvas caracterı́sticas de los diodos en su zona activa son no lineales porque sus
puntos de sensibilidad corriente sobre voltaje no son constantes. En cambio, una
conductancia (la inversa de la resistencia) si posee una curva caracterı́stica lineal,
porque sus puntos de sensibilidad corriente sobre voltaje son constantes.
La saturación se manifiesta en un sensor debido a la no linealidad producida por
la disminución de sensibilidad, tı́picamente al principio o al final del rango. En las
zonas de saturación, la medición no es confiable. La zona muerta de un sensor es el
área de valores de la variable medida que no hace variar la indicación del instrumento.
Un sensor posee repetibilidad cuando se puede repetir el valor de la medición de
una variable para una única dirección de medición. La histérisis en un sensor se parece
a la repetibilidad; sin embargo, el proceso de medición es en ambos sentidos. Por
ejemplo, un termómetro posee repetibilidad porque siempre mide 49◦ C en un objeto
de 50◦ C cuando dicho objeto pasa de más frı́o a más caliente. Desafortunadamente,
este termómetro posee una histéresis de ±1◦ C porque en un objeto de 50◦ C mide
49◦ C cuando dicho objeto pasa de más frı́o a más caliente, y mide 51◦ C cuando el
objeto pasa de más caliente a más frı́o.
La exactitud de una medición se refiere a la máxima desviación en % del valor
3.1 Sensores 47

medido, con respecto al valor ideal. Por otro lado, un instrumento de medición es
preciso cuando puede reproducir la lectura medida con una exactitud previamente
determinada. Supongamos que se mide una corriente conocida de 100 mA empleando
5 lecturas, las cuales resultan: 104, 103, 105, 103 y 105 mA. Dado que la desviación
máxima en la medición es 5 mA con respecto al valor real de 100 mA, la exactitud
del instrumento resulta:
5
× 100 = 5 %
100
La precisión se halla calculando primero la media de las lecturas:
105 + 103 + 105 + 103 + 105
= 104 mA
5
y luego determinando la máxima desviación de las lecturas con respecto a dicha
media, en este caso: ± 1 mA, que equivale al 1 % con respecto a la medida real de
100 mA.
En la mayorı́a de los casos, los sensores poseen un comportamiento dinámico
constante o proporcional, pero en otros casos, el comportamiento es similar al de un
proceso de primer orden. Por ejemplo, en un sensor PT 100 empleado para medir la
temperatura, la relación entre la salida resistencia en ohm y la entrada temperatura
en ◦ C es constante, mientras que en un flotador empleado para la medición de nivel,
la relación entre la salida voltaje en V y la entrada nivel en m es una expresión de
primer orden:
voltaje K
= (3.1)
nivel Ts + 1
donde K es la ganancia del sensor, s es la variable de Laplace y T es la constante de
tiempo, la cual se interpreta como el tiempo que demora la medición. La estabilidad
en un sensor se explica como la desviación que sufre la medición cuando se varı́an
ciertos parámetros.
La velocidad de respuesta de un sensor es la capacidad para que la señal de
salida siga sin retraso a las variaciones de la señal de entrada. Una velocidad de
respuesta rápida implica una constante de tiempo T pequeña y viciversa. Por otro
lado, la respuesta en frecuencia de un sensor se determina excitando al sensor con
señales senoidales de amplitud constante y frecuencia variable. √ Si el sensor recibe
excitaciones senoidales, entonces en 3.1: s = jω, donde j = −1 es la unidad de
números imaginarios y ω = 2πf es la frecuencia angular. Luego:
 
K K K
= =√ arctan(−T ω) = M (ω)∠M (ω) (3.2)
T s + 1 s=jω T jω + 1 1 + ω2T 2
K
M (ω) = √ MB (ω) = 20logM (ω) ∠M = arctan(−T ω)
1 + ω2T 2
donde M (ω) es la magnitud de 3.1 y ∠M (ω) es el argumento o fase para cada fre-
cuencia ω. MB (ω) es M expresado en dB (decibelios). El gráfico de MB (ω) vs ω en
escala logarı́tmica es la respuesta en frecuencia en magnitud del sensor representado
en 3.1, mientras que el gráfico ∠M = arctan(−T ω) vs ω en escala logarı́tmica es su
correspondiente respuesta en frecuencia de su ángulo o fase. Tales representaciones se
denominan los gráficos de Bode en magnitud y fase. Un sensor no es estable cuando
la medición experimenta desviaciones en los valores medidos debido a la variación de
ciertos parámetros, tales como K y T (ver (3.2)).
48 El Sistema de Medición

Sensores de Temperatura
Los sensores de temperatura, de acuerdo al principio fı́sico o caracterı́stica con
que operan, se pueden clasificar en:

1. Termómetros de dilatación, tales como los termómetros de vidrio, de bulbo y


bimetálicos.
2. Termómetros sensibles a la resistencia, tales como los termómetros con resisten-
cia metálica y los termistores.
3. Termocuplas o termopares.
4. Medición sin contacto, como son los pirómetros ópticos, de radiación y de dos
colores.
3.1 Sensores 49

Fig. 3.1: Principios de los sensores.


50 El Sistema de Medición

Fig. 3.2: Principios de los sensores.


Capı́tulo 4

Elementos Finales de Control

Este Capı́tulo

4.1. Caracterı́sticas
El ECF (Elemento de Control Final) es un dispositivo que posee la potencia nece-
saria para ejercer cambios en el proceso, cada vez que recibe la señal del controlador.
Por lo general, el EFC consta de dos partes: el actuador, que transforma la señal
del controlador en un comando para el dispositivo manipulador, y, el mecanismo de
ajuste, el cual dosifica el flujo de masa o de energı́a que está siendo manipulado.
Uno de los EFC más empleados en la indutria es la VCA (Válvula de Control
Automático). En una VCA neumática, su actuador (el cabezal de la VCA con su
membrana) recibe la señal estandarizada de 3 a 15 psig (o 0.2 a 1 bar) para desplazar
el eje o vástago que está unido a la membrana. En el extremo libre de este eje
se encuentra el cono u obturador, y a continuación, el asiento de la VCA. Si esta
válvula está siendo usada para controlar el paso de un fluido a través de una tuberı́a,
entonces el mecanismo de ajuste dosifica el caudal que pasa por la VCA aumentando
o disminuyendo la abertura entre el cono y su asiento, en concordancia con la señal
estandarizada que recibe de su actuador.
Dependiendo de la energı́a auxiliar con la que están alimentadas, los actuadores
se pueden clasificar en eléctricos, neumáticos e hidráulicos. Los actuadores eléctricos
más empleados son el motor DC, el motor AC, la bobina con núcleo de hierro móvil, y
el inversor de potencia. Entre los actuadores neumáticos tenemos los de membrana de
simple y doble efecto, el cilindro de membrana, el cilindro (o pistón) de doble y simple
efecto. El cilindro hidráulico y el cilindro hidráulico rotatorio son dos actuadores
hidráulicos representativos. La Fig. 4.1 muestra el esquema de los actuadores antes
mencionados.
Los dispositivos de ajuste también se clasifican de acuerdo a la energı́a auxiliar
que los alimenta. A su vez, los dispositivos de ajuste eléctricos pueden ser continuos
y discontinuos. La resistencia eléctrica, el transformador y el transistor de potencia
son dispositivos continuos, mientras que el contacto, el micro interruptor, el relé, un
tiristor o un triac son discontinuos.
En las válvulas para gas, vapor, lı́quidos o granos, el conjunto obturador–asiento
constituye el dispositivo de ajuste.
52 Elementos Finales de Control

`O_`O_aa `O_`O_ `_`_ O[\O[\ \O[\O[ ^]]^]^ \[\[ XOWXOWXOW XWXWXW


aaa ]^]^]^ WOXXWOXWOWXXWXW Z
a ]^ XWOXW ZYZY
(a) (b) (c) (d) Y
(e)
UOUOUOUOUOVUOUOUOVUOUUVU
PTSONOPNOPON RQTS PNPNPN R
S UOUOUOVUOVUOVUOVUOVUOVUOVUVUVU
TSOTS T
VVOVVOVV w
(f) (g) (h)

Fig. 4.1: Actuadores.

(a) (b) (c) (d)


(e)

(f) (g) (h)

Fig. 4.2: Actuadores.

4.2. La Válvula de Control Automática (VCA)


4.2.1. Dimensionamiento de una VCA
La VCA es uno de los EFC más empleados en el control de procesos tales como
presión, nivel, temperatura, fluidos (lı́quidos, gases, vapor), PH, redox, etc. Existen
tres tipos principales de válvula: de aperura y cierre rápido (válvulas ON–OFF), de
caracterı́stica lineal y de caracterı́stica isoporcentual.
4.2 La Válvula de Control Automática (VCA) 53

La abertura o posición del vástago en una válvula ON–OFF está restringida a


dos posiciones: apertura y cierre, mientras que en las válvulas de caracterı́stica lineal
e isoporcentual, las posición m del vástago responde a una ecuación que es función
de la constante Cv o tamaño de la válvula. Para un mejor entendimiento del tema, a
continuación se deduce la expresión de CV para un fluido que fluye en una VCA.
La porción de la válvula que muestra la Fig. 4.3 corresponde al cono y al asiento
de la misma, por donde fluye un producto de caudal Q, que posee un peso especı́fico
γ y una densidad ρ. El fluido ingresa a válvula con una velocidad V1 , cruzando una
una sección A1 y produciendo una presión P1 . El flujo sale por la abertura vástago–
cono de sección A2 , a una velocidad V2 y generando una presión P2 . El principio de
Bernoulli nos permite formular:

P1 V12 P2 V22
+ + h1 = + + h2 (4.1)
γ 2g γ 2g
Por continuidad:
A2
Q = V 1 A1 = V 2 A2 → V 1 = β 2 V2 β2 = (4.2)
A1
Notar en la Fig. 4.3 que la altura h1 es cero porque coincide con el eje horizontal de
referencia a trazos, mientras que la altura h2 se puede despreciar por ser pequeña.
Reemplazando V1 de (4.2) en (4.1) produce:
s s
(P2 − P1 )2g γH2 O (P2 − P1 )2g γ
V2 = × = GF = (4.3)
γ(1 − β 4 ) γH 2 O GF γ(1 − β 4 )γH2 O γH 2 O

Por consiguiente:
r s
P2 − P 1 2g
Q = V 2 A2 = C v Cv = A 2 (4.4)
GF GF (1 − β 4 )γH2 O

donde la constante Cv , conocida también como tamaño o dimensionamiento de la


válvula, posee la expresión:
s s
2g GF
Cv = A 2 4
=Q (4.5)
GF (1 − β )γH2 O (P2 − P1 )

Esta última expresión se corrige multiplicándola por factores que toman en cuenta
pérdidas, ruido, caracterı́stica del fluido, etc. Notar que cuando P 2 − P1 = GF = 1,
entonces: Q = Cv ; es decir, el caudal iguala al tamaño de la válvula.
Bajo ciertas consideraciones, la constante Cv de la válvula ha sido adoptado por
los fabricantes y usuarios como un coeficiente de dimensionamiento. En este sentido,
esta constante se define como el caudal en galones USA por minuto (gpm) que pasa
a través de la válvula en posición completamente abierta y con una pérdida de carga
(caı́da de presión) de una libra por pulgada cuadrada (psi).
En aquellos paı́ses donde se emplean el sistema métrico, la constante de la válvula
se denomina Kv y se define como el caudal de agua (de 5 a 40◦ C) en m3 /h que pasa
a través de una válvula a una determinada apertura y con una pérdida de carga
54 Elementos Finales de Control

Vástago

Cono
Q, P2 , V 2, A 2
Q, P1 , V1, A 1 h2
Asiento

Fig. 4.3: Cono y asiento en una válvula de control automática.

de de 1 bar (105 Pa). La equivalencia entre los coeficientes Kv y Cv para una VCA
completamente abierta es:

Kv = 0.86 Cv m3 /h Cv = 1,16 Kv gpm (4.6)

El rango de control R de la válvula ((rangeability en inglés) se define por la


relación:
Kvs
R= (4.7)
Kv0
donde Kvs es la constante para válvula completamente abierta, mientras que K v0 es
el mı́nimo valor de la misma. El rango R toma un valor de 30 a 1 en VCAs del tipo
isoporcentual, y de 15 a 1 o de 30 a 1 en VCAs lineales.
La curva caracterı́stica de una VCA lineal está regida por la relación:
m
Cv = Cvmax (4.8)
100
mientras que para una VCA isoporcentual:
m
Cv = Cvmax R 100 −1 (4.9)

donde m es la posición del eje o vástago de la válvula expresado en % y C vmax es el


valor máximo de Cv . El denominado factor CL , que represente la restricción a fluir
ofrecida por la linea (tuberı́a) y por otros elementos del proceso en la linea, se puede
calcular de: r
B
CL = Cvmax (4.10)
1−B
donde B es la razón de caı́da de presión, definida como:

Caı́da de presión mı́nima (válvula abierta)


B= (4.11)
Caı́da de presión máxima (válvula cerrada)

Un factor de flujo combinado, denominado CE , se puede formular como:


CL Cv
CE = q (4.12)
CL2 + Cv2
4.2 La Válvula de Control Automática (VCA) 55

Con las consideraciones anteriores, el caudal Q, que fundamentalmente es propor-


cional a la raı́z cuadrada de la caı́da ∆P = P1 − P2 , se formula como:

Q = CE ∆P (4.13)

La Fig. 4.4 muestra las curvas caracterı́sticas de las válvulas ON–OFF, lineal (ecuación
(4.8)) e isoporcentual (ecuación (4.9)), mientras que la Fig. 4.5 ilustra la forma de
los conos u obturadores.

Fig. 4.4: Curvas caracterı́sticas de las VCAs.

Fig. 4.5: Tipos de conos (obturadores).

4.2.2. Carcterı́stica de una VCA Operando


La Fig. 4.6(a) muestra una bomba que genera un caudal Q a una presión P 0 . La
caı́da de presión en la VCA es ∆P = P1 − P2 , mientras que las pérdidas ∆P1 , ∆P2
y ∆P3 ocurren en otras partes de la linea. Para tal situación, es evidente que:

P0 = ∆P + ∆P1 + ∆P2 + ∆P3


56 Elementos Finales de Control

La experiencia dicta dicta que una caı́da de presión conveniente a considerar en la


VCA serı́a:
P0
∆P ≈
2
En el rango de ∆P = (0.1 a 0.3)P0 , es posible obtener un buen control. Sin embargo,
cuando ∆P < 0.1, no se puede garantizar un buen rendimiento.
Por otra parte, la capacidad de regulación de la VCA debe de mantenerse, aún
cuando la presión nominal en la linea sea máxima. En esta situación, como se ilustra
en la Fig. 4.6(b), pueden ocurrir oscilaciones del caudal a ambos lados del punto de
operación A de la VCA. Esto significa que el caudal QAmax tiene que poder oscilar
a ambos lados de A. Entonces, resulta conveniente que tal punto de operación se
ubique en el rango de 50 % al 80 % de la abertura de la válvula u. Si el punto A se
ubicara en el rango de 20 % al 40 %, entonces es posible obtener un valor adecuado
de la ganancia del sistema de control realimentado.

P1 P2

Presión de la P P1 P2 P3
bomba: P0
(a)

Q Para máxima
presión nominal

Q Amax
Punto adecuado
ubicado al 70%
u [mm]
0% A 100%
(b)

Fig. 4.6: (a) Válvula operando en una linea. (b) Operación de una VCA alrededor
del punto de operación A.
Capı́tulo 5

Control PID SISO

El controlador PID SISO procesa la señal de error e(t), la cual es la diferencia entre
la señal deseada r(t) y la señal controlada y(t) (la salida del sistema), empleando un
algoritmo de control ampliamente difundido en el mundo industrial, cuya forma más
conocida es:
Z
Kc de(t)
u(t) = Kc e(t) + e(t)dt + Kc Td = P (t) + I(t) + D(t)
Ti dt
donde Kc es la ganancia proporcional, Ti es el tiempo integral y Td es el tiempo derivativo.
En la expresión anterior se puede ver claramente que el algoritmo
R PID posee una parte
proporcional: P (t) = Kc e(t), una parte integral: I(t) = K Ti
c
e(t)dt y una derivativa:
D(t) = Kc Td de(t)
dt . Este algoritmo posee muchas variaciones, algunas de las cuales vamos
a explorar en este capı́tulo. Dependiendo de la aplicación, el controlador en cuestión puede
trabajar como P, PI, PD o PID.
Es importante mencionar que el algoritmo PID es el de mayor aplicación industrial
(aproximadamente el 90 %) y su modelo dinámico es lineal y de segundo orden. Se emplea
para controlar sistemas caracterizados por tener una entrada y una salida, como son los
casos del control de presión, nivel, flujo, entre otros.

5.1. Sistema de Control SISO


Un sistema de control SISO realimentado o a lazo cerrado, sin presencia de dis-
turbios, tal como el que se muestra en la Fig. 5.1(a), comprende el proceso con FT
Gp (s) cuya salida y (la señal PV) se desea controlar, un controlador G c (s) que genera
la señal de control u (la señal MV) y el sistema de medición Gm (s) que se ocupa de
sensar y transmitir la señal y. El comparador que genera la señal de error e = r − y,
donde r es la señal de referencia deseada o SP, es parte del controlador.
El controlador mostrado en las Figs. 5.1(b) y (c) ha sido dividido en dos partes:
Gc1 (s) y Gc2 (s). Para algunas configuraciones Gc1 (s) es del tipo PI mientras que
Gc2 (s) es del tipo D, tal como se verá más adelante. Notar que el sistema a controlar
Gp (s) mostrado en las Figs. 5.1(a), (b) y (c) es del tipo SISO porque posee una
entrada: u y una salida: y. Los controladores mostrados en las Figs. 5.1(a) y (b) son
parte de un circuito realimentado. En la Fig. 5.1(c), el controlador G c2 (s) es del tipo
anticipativo, mientras que Gc1 (s) es del tipo de realimentación.
58 Control PID SISO

r e u y
Gc (s) G p(s)

G m (s)

(a)

r e u y
G c1 (s) G p(s)

G c2 (s)

G m (s)

(b)

G a (s)

r u y
e
G c (s) G p(s)

G m (s)

(c)

Fig. 5.1: Sistemas de control realimentados.

El objetivo de control consiste en diseñar una señal de control u, generada por el


algoritmo de control, que sea capaz de estabilizar la salida y del sistema con respecto
a una señal de referencia r. En otras palabras, que la señal de control u sea capaz de
minimizar la señal de error e = r − y, cumpliendo ciertas especificaciones de diseño
previamente establecidas, ya sea en el dominio del tiempo o en el dominio de la
frecuencia.
El sistema de control SISO realimentado mostrado en la Fig. 5.2 toma en cuenta
la acción de los disturbios dy , du y dm actuando en la salida del sistema, en la salida
del controlador y en la salida del transmisor, respectivamente, los cuales no fueron
considerados en el sistema de la 5.1(a). El objetivo de control del sistema en este caso
es múltiple: diseñar una señal de control u que sea capaz de estabilizar la salida y
con respecto a la señal de referencia r, cumpliendo ciertas especificaciones de diseño
(ver sección 5.2) previamente establecidas, rechazando al mismo tiempo la acción de
los disturbios que actúan sobre el sistema.
El filtro de entrada sirve para eliminar las componentes de alta frecuencia, cuya
presencia puede ser dañina durante el funcionamiento del sistema de control reali-
mentado. Por otro lado, para evitar posibles daños en el actuador del elemento final
de control, se debe de incluir un limitador, tal como el mostrado en la Fig. 5.2. La
presencia de dicho limitador puede provocar el efecto denominado windup, el cual
será tratado en la sección 5.7.
5.2 Especificaciones de Diseño 59

du dy
Limitador
r Filtro de e u u u Proceso más y
Controlador elemento
entrada u final de control

Sensor más
transmisor

dm

Fig. 5.2: Sistema de control SISO con filtro de entrada, con limitador de salida y
sujeto a la acción de disturbios.

5.2. Especificaciones de Diseño


Todo sistema de control debe de cumplir ciertas especificaciones de diseño. Estas
especificaciones se establecen tanto en el dominio del tiempo como en el de la fre-
cuencia. las especificaciones más usadas en el dominio del tiempo son: error en estado
estable ess , tiempo de estabilización Ts , porcentaje de sobrenivel P.O. y tiempo de
subida Tr . En el dominio de la frecuencia, las especificaciones de más aplicación son:
ancho de banda ωB , margen de fase Mf y margen de ganancia Mg .

5.2.1. Especificaciones de Diseño en el Dominio del Tiempo


Para explicar las especificaciones de diseño en el dominio del tiempo, se acos-
tumbra emplear el sistema de segundo orden con realimentación unitaria mostrado
en la Fig. 5.3(a). En la Fig. 5.3(b) se observa la respuesta transitoria a un escalón
de entrada, donde ωn es la frecuencia natural de oscilación, ζ < 1 es el coeficiente
de amortiguamiento, A es la magnitud de la entrada tipo escalón r, Mp es el valor
máximo de la salida y, Tr es el tiempo de subida, Tp es el tiempo pico, Ts es el tiempo
de estabilización y ess es el error en estado estable.
El tiempo Ts se define como el tiempo necesario para que la amplitud de la salida
y se mantenga dentro de una banda de magnitud ±δ (2δ en total). Para la respuesta
mostrada en la Fig. 5.3(b), la magnitud de la banda 2δ se mantiene en 2 % de la
magnitud A del set point, luego de transcurridas 4 veces la constante de tiempo τ
del sistema. Esto es:
4
Ts = 4τ τ= (5.1)
ζωn
Para una referencia tipo escalón de magnitud A, el P O (porcentaje de sobrenivel)
del sistema se define como:
Mp − A
PO = × 100 (5.2)
A
El error en estado estable ess = r − yss es la diferencia entre la señal de referencia
r y el valor en estado estacionario yss de la salida. Este error debe de permanecer
dentro de la banda 2δ preestablecida. Para la situación mostrada en la Fig. 5.3(b),
60 Control PID SISO

el error ess se puede determinar empleando el teorema del valor final, teniendo en
cuenta que r(s) = A/s, como sigue:
y(s) ωn2
Gp (s) = = 2 y(s) = Gp (s)r(s)
r(s) s + 2ζωn s + ωn2
A
lı́m y(t) = yss = lı́m sGp (s) =A ess = r − yss = A − A = 0
t→∞ s→0 s
Sin demostración, las relaciones exactas para Tp , Mp y P O se expresan como:
Mp − A √
2
PO = 100 = 100e−ζπ/ 1−ζ (5.3)
 A √ 
2
Mp = A 1 + e−ζπ/ 1−ζ (5.4)
π−θ p
Tr = ωd = ω n 1 − ζ 2 θ = arc cos ζ (5.5)
ωd
π
Tp = (5.6)
ωd

r ω2 y
n
s (s 2 ζ ωn )

(a)

r y

Mp
A
A r ω 2n y
yss e ss
s2 2 ζω n s ω 2n
0 τ 0 T r Tp Ts τ
(b)

Zona de jω
estabilidad Plano s
s1 jω
d
θ
ζω n ωn σ
s2 Zona de
inestabilidad
(c)

Fig. 5.3: Respuesta al escalón de un sistema de segundo orden autoregulado.

La ecuación caracterı́stica del sistema de segundo orden es el denominador de la


FT mostrada en la Fig. 5.3(b):
s2 + 2ζωn s + ωn2 = 0 (5.7)
5.2 Especificaciones de Diseño 61

Sus raı́ces caracterı́sticas o eigenvalues, ilustradas en la Fig. 5.3(c), se expresan como:

s1 = −ζωn + jωd s2 = −ζωn − jωd

De la Fig. 5.3(c) es fácil deducir la relación: θ = arc cos ζ usada en (5.5).


En los sistemas sobreamortiguados, cuyas respuestas al escalón ocurren cuando
ζ ≥ 1, tal como se muestran en las partes superior e inferior izquierda de la Fig.
2.20, el tiempo de subida Tr se define como el tiempo en que se alcanza el 90 % de la
magnitud A de la entrada tipo escalón, y se calcula de:
2.16ζ + 0.16
Tr = 0.3 ≤ ζ ≤ 0.8 (5.8)
ωn
Ejemplo 5.1

La Fig. 5.4 muestra un sistema realimentado. Determinar la ganancia K y el polo


p para que se cumplan las siguientes especificaciones de diseño: el porcentaje de
sobrenivel de la respuesta y(t) a un escalón unitario debe de ser menor del 3 % y el
tiempo para alcanzar el valor estacionario de la respuesta debe de ser menor de 8 s.

r K y

s (s p)

Fig. 5.4: Sistema realimentado del ejemplo 5.1.

Solución: La FT y(s)/r(s) en la Fig. 5.4 se expresa como:

y(s) K ωn2
= 2 = 2 p = 2ζωn K = ωn2
r(s) s + ps + K s + 2ζωn s + ωn2
donde ζ se puede determinar de la condición P O < 3 %, a saber:
√ c ln(100/P O)
2
100e−ζπ/ 1−ζ < P O → ζ > √ c=
1+c 2 π

de donde resulta: ζ < 0.745. Dado que Ts = ζω4n < 8 s, entonces: ωn > (2ζ)−1 = 0.67.
Luego se pueden determinar los parámetros p y K pedidos.

5.2.2. Especificaciones de Diseño en el Dominio de la Frecuencia


La repuesta en frecuencia de un sistema se define como la respuesta estacionaria
del sistema a una señal sinusoide de entrada. Para determinar la respuesta en frecuen-
cia de un sistema que posee una FT G(s) = y(s)/u(s), basta reemplazar la variable
laplaciana s por jω, es decir, G(jω) = y(jω)/u(jω), donde j es la unidad de los
números imaginarios, ω es la frecuencia de la sinusoide de entrada u(jω) = Asenωt,
e y(jω) = Bsen(ωt + φ) es la salida. Si se mantiene constante la amplitud A de la
entrada, para cada frecuencia ω de esta señal, la salida y(jω) puede experimentar
cambios, tanto en su amplitud B como en su fase φ.
62 Control PID SISO

Gráficos de Bode y Nyquist, y Carta de Nichols


El gráfico de Bode en magnitud de una FT G(jω) se obtiene graficando la mag-
nitud |G(jω)|dB = 20 log(G(jω)) expresada en dB (decibelios) versus la frecuencia ω
representada en una escala logarı́tmica (ωlog ). Si la escala logarı́tmica usada es vulgar
(de base 10), entonces ωlog se representa en décadas. En cambio, si es de base 2, ωlog
se representa en octavas. Una escala de frecuencias en décadas podrı́a ser:
ωlog : 0.01 – 0.1 – 1 – 10 – 100 - 1000 - 10000
mientras que una escala en octavas serı́a:
ωlog : 0.25 – 0.5 – 1 – 2 – 4 – 8 – 16 – 32 – 64
El gráfico de Bode en fase de una FT G(jω) se obtiene graficando la fase ∠G(jω)
expresada en grados sexagesimales versus la frecuencia ωlog representada en escala
logarı́tmica de base 10 (décadas) o en escala logarı́tmica de base 2 (octavas).
En general, la FT G(jω) de un sistema se puede representar como G(jω) = u+jv,
donde u es la parte real y v es la parte imaginaria. En un gráfico de Nyquist se gráfica
la parte real u versus la parte imaginaria v de la FT G(jω) del proceso.
El gráfico de |G(jω)|dB versus ω en escala logarı́tmica se denomina la carta de
Nichols que también se emplea en el diseño de sistemas de control vı́a la respuesta
en frecuencia.

Ejemplo 5.2

Elaborar los gráficos de Bode y Nyquist y la carta Nichols del proceso con FT:

ωn2
G(s) =
s2 + 2zωn s + ωn2

donde ωn = 1 y el coeficiente de amortiguamiento z es variable.


Solución: Las Figs. 5.5, 5.6 y 5.7 muestran los gráficos pedidos, los cuales se re-
alizaron ejecutando los programas bode1.m, nyquist1.m y nichols1.m

% bode1.m
clear all; close all; clc; s=tf(’s’);
for z=[0.1:0.4:1.3], G=1/(s^2+2*z*s +1); bode(G), hold on, end
% nyquist1.m
clear all; close all; clc; s=tf(’s’);
for z=[0.1:0.4:1.3], G=1/(s^2+2*z*s +1); nyquist(G), hold on, end
% nichols1.m
clear all; close all; clc; s=tf(’s’);
for z=[0.1:0.4:1.3], G=1/(s^2+2*z*s +1); nichols(G), hold on, end

Especificaciones de Diseño en Frecuencia


La Fig. 5.8(a) muestra la respuesta del proceso autoregulado de segundo orden
a una entrada sinusoide, mientras que la Fig. 5.8(b) ilustra su gráfico de Bode en
magnitud. Sin demostración, el valor pico Mω de la magnitud, el cual se puede emplear
como especificación de diseño, posee la relación:
1
Mω = ζ ≤ 0.7 (5.9)
2ζ(1 − ζ 2 )
5.2 Especificaciones de Diseño 63

Bode Diagram

20
z=0.1
Magnitude (dB)
0 z=0.5

−20
z=0.9
z=1.3
−40

−60

−80
0
z=0.1
z=0.9 z=0.5
−45
z=1.3
Phase (deg)

−90

−135

−180
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)

Fig. 5.5: Gráficos de Bode para el ejemplo 5.2.

Nyquist Diagram

z=0.1

2 z=0.5 z=0.9
Imaginary Axis

−2
z=1.3

−4

−6
−3 −2 −1 0 1 2 3
Real Axis

Fig. 5.6: Gráfico de Nyquist para el ejemplo 5.2.


64 Control PID SISO

Nichols Chart

20

z=0.1
0
Open−Loop Gain (dB)

−20

−40 z=0.5 z=0.9 z=1.3

−60

−80

−100
−180 −135 −90 −45 0
Open−Loop Phase (deg)

Fig. 5.7: Carta de Nichols para el ejemplo 5.2.

La frecuencia ωr en la que ocurre Mω se denomina frecuencia de resonancia y su


expresión es: p
ωr = ωn 1 − 2ζ 2 ζ ≤ 0.7 (5.10)
El ancho de banda del sistema se refiere a la frecuencia ωB para la cual existe una
caı́da de 3 dB, tal como se observa en la Fig. 5.8(b) y se calcula de:

ωB = (−1.196ζ + 1.85)ωn 0.3 ≤ ζ ≤ 0.8 (5.11)

En el sistema realimentado mostrado en la Fig. 5.10(a), las FTs a lazo abierto y


a lazo cerrado se definen como:
y(s) y(s) G(s)
= G(s)H(s) = GH(s) =
e(s r(s) 1 + GH(s)

En el dominio de la frecuencia, tales FTs se expresan como:

y(jω) y(jω) G(jω)


= G(jω)H(jω) = GH(jω) =
e(jω r(jω) 1 + GH(jω)

La ecuación caracterı́stica (EC) del sistema de la Fig. 5.10(b) es su denominador:

1 + GH(jω) = 1 + u(jω) + jv(jω)

donde u(jω) y (jω) son la parte real e imaginaria de GH(jω), respectivamente. Si tal
EC fuera cero, entonces el sistema tomarı́a un valor muy grande. Esta situación es
5.2 Especificaciones de Diseño 65

r(jω)=Asen ωt y(j ω)=Bsen(ωt+φ)


A r(jω) ω2 y(jω) B
n
t (jω)2 2 ζ ωn j ω ωn 2 φ t

(a)

y(jω)/r(jω) dB

(Mω) dB
(b) 0dB
−3dB

0 ωr ωB ω log

Fig. 5.8: (a) Respuesta de un proceso de segundo orden a una sinusoide. (b) Su gráfico
de Bode en magnitud (b).

denominada crı́tica, porque se produce cuando el sistema posee ya un comportamiento


inestable. Un sistema es estable cuando las raı́ces de la EC 1 + GH(s) = 0 poseen
parte real positiva. Las raı́ces nulas provocan también comportamiento inestable del
sistema realimentado.
En general:
p v
GH(jω) = |GH(jω)|∠GH(jω) |GH(jω)| = u2 + v 2 ∠GH(jω) = arctan
u
Se ha mencionado que en el lı́mite de estabilidad, la EC toma la forma:

1 + GH(jω) = 0 GH(jω) = −1

La Fig. 5.9 grafica tal situación, donde u = −1, v = 0, |GH(jω)| = 1 y ∠GH(jω) =


180◦ .

jv

GH(jω) = 180°
1
u
|GH(jω)| = 1

Fig. 5.9: (a) Sistema realimentado. (b), (c) y (d): Márgenes de fase y de ganancia.

El margen de ganancia Mg se define como el recı́proco de la ganancia |GH(jω)|


para la frecuencia en que la fase de GH(jω) alcanza 180o . Dado que GH(jω) = u+jv,
66 Control PID SISO

dicho ángulo ocurre cuando v = 0. El Mg se puede interpretar como un factor por


el cual tiene que aumentarse la ganancia del sistema para que el gráfico de GH(jω)
pase por el punto crı́tico (u, v) = (−1, 0), tal como se muestra en las Figs. 5.10(b),
(c) y (d). Los sistemas estables poseen Mg positivos, mientras que el Mg es negativo
para los sistemas inestables.
El margen de fase Mf se define como el ángulo de fase que debe de girar el
gráfico de GH(jω) = u + jv para que el punto de magnitud |GH(jω)| = 1, pase a
través del punto (u, v) = (−1, 0), tal como se muestran en las Figs. 5.10(b), (c) y (d).
Los sistemas estables poseen Mf positivos, mientras que el Mf es negativo para los
sistemas inestables.

Ejemplo 5.3

Determinar los márgenes de fase y de ganancia del sistema mostrado en la Fig. 5.10(a)
sabiendo que:
1.5
G(s) = H(s) = 0.1
(s + 0.1)(s + 0.3)(s + 0.4)

Solución: Ver programa mfmg1.m y Fig. 5.11.


% mfmg1.m CÁLCULO DE LOS MÁRGENES DE FASE Y DE GANANCIA
clear all; close all; clc; s=tf(’s’);
G = (1.5)/((s+0.1)*(s+0.3)*(s+0.4)); H = 0.1; GH = series(G,H);
[Mg,Mf,wMg,wMf] = margin(GH); % GRÁFICA BODE DE GH
[20*log10(Mg),Mf,wMg,wMf] % [-0.5976 -2.1262 0.4359 0.4499]
% SISTEMA INESTABLE PORQUE Mg EN dB Y Mf EN GRADOS SON NEGATIVOS
margin(GH); print -f -deps mfmg1

5.3. Modos de Control PID


El algoritmo de control PID es la suma de las acciones o modos de control P
(proporcional), I (integral) y D (derivativo). En esta sección abordaremos estos modos
de control. Para un mejor entendimiento del tema, emplearemos un sistema de control
con realimentación unitaria y SP igual a la unidad,cuyo proceso posee la siguiente
FT:
s + Tz
Gp (s) = (5.12)
(s + T1 )(s + T2 )(s + T3 )(s + T4 )(s + T5 )
En este proceso serán aplicadas las acciones de control PID. La acción de control
ON–OFF se trata por separado en la siguiente sección.

5.3.1. La Banda Proporcional BP %


La acción P del controlador se expresa como: u(t) = Kc e(t) (ver Fig. 5.13),
donde u(t) es la señal de salida del controlador (o MV) que se dirige al elemento
final de control (EFC), Kc es la ganancia proporcional del controlador, y e(t), la
entrada al controlador, es el error de desviación entre la señal deseada (o SP) y la
variable controlada (o PV). En muchos casos prácticos no se emplea K c , sino su
5.3 Modos de Control PID 67

r y
G(jω) r G(jω) y

1 G H(jω)
H(jω)
(a)

GH dB GH dB M g negativo
0 dB ω log ωlog
M g positivo
ang GH
−90 ωlog −90
−180 −180 ω log
−270 −270
M f positivo M f negativo
(b)

jv M f negativo jv
M g positivo 1 M g negativo
Mg
1 u γ 1 u
γ φ φ

M f positivo 1
(c) Mg

GH dB GH dB M g negativo
M g positivo
0 dB 0 dB

M f positivo
M f negativo

−270 −180 −90 −270 −180 −90


(d)

Fig. 5.10: (a) Sistema realimentado. (b), (c) y (d): Márgenes de fase y de ganancia.
68 Control PID SISO

Bode Diagram
Gm = −0.598 dB (at 0.436 rad/sec) , Pm = −2.13 deg (at 0.45 rad/sec)

40

20

0
Magnitude (dB)

−20

−40

−60

−80
0

−90
Phase (deg)

−180

−270
−3 −2 −1 0 1
10 10 10 10 10
Frequency (rad/sec)

Fig. 5.11: Márgenes de fase y de ganancia para el ejemplo 5.3.

inversa expresada en porcentaje: BP % = 100/Kc , donde BP % es conocida como la


banda proporcional. Dicha BP se puede definir como la cantidad necesaria de cambio
porcentual en la entrada del controlador para provocar un cambio de rango completo
(100 %) en su salida, debido a la acción del control proporcional.
Es posible ajustar la cantidad de acción proporcional suministrada por el contro-
lador. Este ajuste se refiere al cambio del ancho de la PB %, tal como se ilustra en
la Fig. 5.12, en donde la acción proporcional está representada por la palanca y el
ajuste del ancho de la PB % se realiza desplazando el punto pivote de la palanca.
En la Fig. 5.12(a) el punto pivote está ubicado en el centro de la palanca. Observar
que es necesario que la señal de error, la entrada, haga un recorrido completo (desde
su valor mı́nimo hasta su valor máximo) para mover el EFC (la válvula automática
de control) desde su posición completamente abierta a completamente cerrada. En
este caso, la PB % es 100 % porque se requiere un cambio de 100 % en la entrada para
provocar un cambio de 100 % en la salida (salida de rango completo).
Notar en la Fig. 5.12(b) que un cambio de 100 % en la entrada provoca un cambio
de 50 % en la salida. Por consiguiente, para provocar una salida de rango completo en
la salida, se requiere en teorı́a un cambio de 200 % en la entrada, es decir, una PB %
de 200 %. En un caso real, no es posible cambiar la entrada a 200 % debido a que
100 % es lo máximo que se puede modificar. Por lo tanto, si el EFC es una válvula,
ésta nunca estará ni completamente abierta ni completamente cerrada.
Para obtener una PB % de 50 %, el punto pivote debe de desplazarse hacia la
izquierda del punto medio de la palanca, tal como se observa en la Fig. 5.12(c), en
5.3 Modos de Control PID 69

donde un cambio de 50 % en la entrada es suficiente para provocar un cambio de


100 % (rango completo) en la salida.

Error
¬¦¬¦ ¬ œ ¡œ ¡ œ 
Abertura de válvula
Máx.

®­§®­§ fg gf
100%
Ÿž ŸžŸž
ª©¨«ª© ¨«ª© «ª ¤¥£ ¢¥¤£ ¢¥ ¤£ ¢ 50%

Mín.
Pivote
››› 0%
(a) PB% = 100%

Error
y yy }|}|{z }|}|{z }|}|{z }|}|{z }|}|{z i}|}|{z i}|}|n{z imlk n im lk
Abertura de válvula

sstst
Máx.
}||}{z{z }||}{z{z }||}{z{z }||}{z{z cbb }||}{z{z }||}{z{z j}||}{z{z jj
100%

uuxwv uxwv xw }|}|{z{z}|}|{z{z}|}|{z{z}|}|{z{z}|}|{z{z}|}|{z{z}|}|{z{z qp oqp o


{z {z {z {z {z {z h{z rhr h
50%
Pivote
Mín. 0%
(b) PB% = 200%

Error
•Ž•Ž š™™š • š™™š š™™š š™™š š™™š š™™š š™™š €†… ˆ‡ €†… ˆ‡ €†… Abertura de válvula

˜˜ ™š™š™ –——–—– ed ™š™š™ –——–—– ed ™š™š™ –——–—– ™š™š™ –——–—– ™š™š™ –——–—– ™š™š™ –——–—– ™š™š™ –——–—– ‹Š „ƒ‰‹Š „ƒ‚‰‹Š „ƒ‚‰
Máx. 100%

“‘ ”’“‘ ”“’‘ š™ —– ”“ š™ —– š™ —– š™ —– š™ —– š™ —– š™ —– Œ ~ Œ ~ Œ ~
50%
Pivote
Mín. 0%
(c) PB% = 50%

Fig. 5.12: Cambio en la PB % para modificar la acción proporcional del controlador.

La Fig. 5.13 muestra el diagrama en bloque de un controlador P (proporcional)


caracterizado por su ganancia Kc , la cual se define como la relación de cambios entre
la entrada y la salida:
∆u
U
Kc = ∆e
(5.13)
E
donde ∆e es el cambio en la señal de error, ∆u es cambio en la señal de control, U
es el rango máximo medible (o span) de la salida del controlador y E es el rango
de medición (o span) de la señal controlada. La banda proporcional en porcentaje,
denotada como BP %, se define como la inversa de la ganancia Kc del controlador:
100
PB % = (5.14)
Kc

Ejemplo 5.4

Determinar la banda proporcional de un controlador PID operando en un sistema


de control de temperatura, sabiendo que un cambio de ∆e = 15o C en la entrada del
controlador produjo un desplazamiento de ∆u = 3 mm en el vástago de la válvula
70 Control PID SISO

∆e Controlador ∆u
E Proporcional U

Fig. 5.13: Controlador tipo P (proporcional).

de control. Se sabe además que el desplazamiento máximo del vástago es de U = 40


mm y que el rango de medición de la variable del sistema controlado es de 100 o C a
500o C, lo cual significa que E = 500o C - 100o C = 400o C.

Solución.- La ganancia Kc del controlador para el punto de operación en estudio se


determina de (5.13):
∆u/U 3 mm/40 mm
Kc = = =2
∆e/E 15o C/400o C

mientras que la PB % se calcula de (5.14):

100 100
PB % = = = 50 %
Kc 2

5.3.2. Control Proporcional


La cantidad de acción proporcional que se emplea en un proceso depende de las
caracterı́sticas y variables propias de tal proceso. Por lo tanto, cada proceso va a
requerir una determinada BP %, dentro de la cual va a operar en la mejor forma.
En general podemos decir que si la BP es angosta (Kc suficientemente grande),
entonces un cambio pequeño en e(t) puede provocar que la señal u(t) haga oscilar
la salida y(t), volviendo inestable al sistema de control realimentado, tal como se
observa cuando la BP % es 48.8 (Kc = 2.05) en la Fig. 5.14. Por el contrario, una
BP muy ancha (Kc muy pequeña), genera un cambio a rango completo en e(t),
que a la vez ocasiona que u(t) apenas haga variar la salida y(t), como es el caso
cuando BP %=2000 (Kc = 0.05) en la Fig. 5.14. En conclusión, una BP muy ancha
proporciona poca acción de control proporcional, mientras que cuando la BP es muy
angosta, la acción de control es muy grande.
En muchos casos, la acción proporcional de control es la causante del fenómeno
offset o ess (error en estado estable), el cual se traduce en una desviación permanente
entre las señales SP y PV. En la Fig. 5.14, las flechas con doble punta indican la
magnitud del offset para cada curva. Recordar que el SP es la unidad. Para obtener
los resultados anteriores, ejecutar el programa mcp.m listado abajo.

% mcp.m MODOS DE CONTROL P


clear all; close all; clc;
Kp=2; T1=0.5; T2=1; T3=1.5; T4=2; T5=2.5; Tz=3.5; Tf=100; s=tf(’s’);
Gp=Kp*(s+Tz)/(s+T1)/(s+T2)/(s+T3)/(s+T4)/(s+T5); % PROCESO
for Kc=0.05:1:2.05; P=feedback(Kc*Gp,1); step(P,’k’,Tf); % CONTROL P
hold on; end; hold off; grid; title(’ACCI ÓN PROPORCIONAL’);
xlabel(’TIEMPO’); ylabel(’AMPLITUD’); print -deps -f mcp
5.3 Modos de Control PID 71

ACCIÓN PROPORCIONAL

1.4

1.2
SP
1
Kc=2.05; BP%=48.8
AMPLITUD

0.8

0.6

Kc=1.05; BP%=95.24
0.4

Kc=0.05; BP%=2000
0.2

0
0 10 20 30 40 50 60 70 80 90 100
TIEMPO (sec)

Fig. 5.14: Modo de control proporcional.

5.3.3. Control Integral


La acción de control integral, o control reset, es necesaria cuando la cantidad de
offset en un proceso sujeto al control proporcional es inaceptable. Esta acción de
control se suma a menudo al control proporcional para minimizar el offset o e ss . Ası́,
este modo de control toma el nombre de PI (Proporcional más Integral).
La Fig. 5.16, elaborada con el programa mcpi.m mostrado abajo, muestra tres
curvas de respuesta del sistema de control realimentado, empleando un controlador
PI de la forma:
Z
Kc
u(t) = Kc e(t) + KI e(t)dt KI =
Ti
donde KI es la ganacia integral y Ti es el tiempo reset o integral. Observar que
en todos los casos, el offset desaparece, y, conforme aumenta KI (disminuya Ti ), el
tiempo de estabilización, indicadas por flechas horizontales de dos puntas, disminuye,
pero, el sobrenivel tiende a aumentar. Esto último es más notorio para el caso K I =
0.2.
% mcpi.m MODO DE CONTROL PI CON P CONSTANTE
clear all; close all; clc;
Kp=2; T1=0.5; T2=1; T3=1.5; T4=2; T5=2.5; Tz=3.5; Tf=100; s=tf(’s’);
Gp=Kp*(s+Tz)/(s+T1)/(s+T2)/(s+T3)/(s+T4)/(s+T5); Kc=0.6; % PROCESO
for Ti=3:6:15; KI=Kc/Ti; Gc=Kc+KI/s; PI=feedback(Gc*Gp,1); % CONTROL PI
step(PI,’k’,Tf); hold on; end; hold off; grid; xlabel(’TIEMPO’);
ylabel(’AMPLITUD’); title(’ACCIÓN PROPORCIONAL MÁS INTEGRAL’);
print -deps -f mcpi

5.3.4. Control Derivativo


La acción de control derivativa, o control rate, emplea la razón de cambio de
la señal controlada y(t) de un proceso, para ajustar la salida u(t) del controlador.
72 Control PID SISO

ACCIÓN PROPORCIONAL MÁS INTEGRAL

1.4

1.2

Ti = 3; KI=0.2
1

Ti=9; KI=0.066
AMPLITUD

0.8

Ti=15; KI=0.04
0.6

0.4

0.2

0
0 10 20 30 40 50 60 70 80 90 100
TIEMPO (sec)

Fig. 5.15: Modo de control proporcional más integral.

La magnitud del ajuste está determinada por qué tan rápido es la desviación del
error. Esta acción de control se suma a menudo al control proporcional para corregir
cambios rápidos en la variable controlada. Ası́, este modo de control toma el nombre
de PD (Proporcional más Derivativo).
La Fig. 5.16, elaborada con el programa mcpd.m mostrado abajo, ilustra tres
curvas de respuesta del sistema de control realimentado, empleando un controlador
PD de la forma:
de(t)
u(t) = Kc e(t) + KD K D = K c Td
dt
donde KD es la ganancia derivativa y Td es el tiempo derivativo o rate. Observar que
para todos los casos, el offset es el mismo (y de gran magnitud), ası́ como también lo
es el tiempo de estabilización (flecha horizontal de doble punta). Notar también que
conforme aumenta KD (aumenta Td ), el sobrenivel también crece.
% mcpd.m MODO DE CONTROL PD CON P CONSTANTE
clear all; close all; clc;
Kp=2; T1=0.5; T2=1; T3=1.5; T4=2; T5=2.5; Tz=3.5; Tf=100; s=tf(’s’);
Gp=Kp*(s+Tz)/(s+T1)/(s+T2)/(s+T3)/(s+T4)/(s+T5); Kc=0.6; % PROCESO
for Td=0.1:0.5:1.1; KD=Kc*Td; Gc=Kc+KD*s; PD=feedback(Gc*Gp,1); % CONT PD
step(PD,’k’,Tf); hold on; end; hold off; grid; xlabel(’TIEMPO’);
ylabel(’AMPLITUD’); title(’ACCIÓN PROPORCIONAL MÁS DERIVATIVA’);
print -deps -f mcpd

5.3.5. Control PID


Hemos visto que sólo el control PI es capaz de estabilizar la salida del sistema de
control en su SP. Esto significa que los modos de control P y PD no son adecuados
para controlar el proceso de prueba dado en (5.12). Empleando un control PID, las
posibilidades de controlar la mayorı́a de los procesos industriales se acrecienta, si
está permitido usar todas las combinaciones posibles: P, I, PI, PD y PID.
5.4 Control de Dos Posiciones 73

ACCIÓN PROPORCIONAL MÁS DERIVATIVA

0.7

KD=0.06; Td=0.1
0.6
KD=0.3; Td=0.6

0.5

KD=0.66; Td=1.1
AMPPLITUD

0.4

0.3

0.2

0.1

0
0 10 20 30 40 50 60 70 80 90 100
TIEMPO (sec)

Fig. 5.16: Modo de control proporcional más derivativo.

La Tabla 5.1 muestra la tendencia (a aumentar o disminuir) que tienen los parámet-
ros de diseño, cuando se incrementan las ganancias Kc , Ki o Kd . Es importante anotar
que tal tabla debe de ser aplicada con cuidado, debido a que en un sistema de control
PID, los cambios en en los parámetros de diseño no ocurren por separado, sino tales
cambios pueden estar interconectados. Esto es, cambios en un parámetro de de diseño
pueden afectar el comportamiento de otros.

Tabla 5.1: Variación de los parámetros de diseño cuando se incrementa: K c , Ki o Kd

Parámetro Tiempo de Sobrenivel Ts : Tiempo de ess : Error en


de subida Tr (PO %) estabilización estado estable
Kc Disminuye Aumenta Cambio pequeño Disminuye
Ki Disminuye Aumenta Aumenta Elimina
Kd Cambio pequeño Disminuye Disminuye Cambio pequeño

5.4. Control de Dos Posiciones


La acción de control de dos posiciones se implementa con un dispositivo que
posee dos condiciones de operación: completamente ON (por ejemplo: válvula 100 %
abierta, relé activado) y completamente OFF (ejemplo: válvula cerrada del todo,
relé desactivado). La Fig. 5.17(a) muestra un sistema de control con un controlador
de dos posiciones y una válvula ON–OFF (de apertura y cierre) como el EFC.
En la Fig. 5.17(b), el controlador es el dispositivo no lineal denominado relé ide-
al. Supongamos que queremos mantener la temperatura y(t) de un producto cerca
74 Control PID SISO

de set point, controlando la entrada de vapor por medio de una válvula ON–OFF.
Claramente, cuando y(t) sobrepasa el set point, el controlador genera una señal U min
para que la válvula se cierre. En cambio, si y(t) se encuentra debajo del set point, el
controlador genera una señal Umax para que la válvula se abra. El efecto final es que
la salida controlada y(t) fluctúa alrededor del set point.
En la Fig. 5.17(C), el controlador es un relé con zona muerta de magnitud h 1 − h2
alrededor del set point. Notar que si la variable controlada y(t) se encuentra dentro de
la zona muerta, no ocurre ninguna acción de control. De esta manera la zona muerta
minimiza el desgaste y los daños debido a que se evita el continuo funcionamiento
cı́clico del EFC, por ejemplo, la válvula mostrada en la Fig. 5.17(b).

Set Point e(t) Control de dos


u(t)
°¯°¯ Proceso y(t)
posiciones Válvula
ON−OFF
Sistema de
Instrumentación
u(t) (a) u(t)
Umax Umax
e(t) e(t)
0 h1 h2
Umin Umin
y(t) y(t)
Ymax Ymax

Set Point t Zona t


Muerta

Ymin Ymin

Válvula Válvula
Abierta Abierta
(Umax) (Umax)

t t
Válvula Válvula
Cerrada Cerrada
(Umin) (b) (Umin) (c)

Fig. 5.17: (a): Sistema de control de dos posiciones. (b): Controlador ON–OFF sin
zona muerta, y (c): con zona muerta.

Ejemplo 5.5

Diseñar un controlador de dos posiciones sin zona muerta para controlar el siguiente
proceso:
Kp
Gp (s) = e−τ s
Ts + 1
Solución: La Fig. 5.18 muestra el diagrama Simulink del sistema de control (archivo
onoff1.mdl), mientras que la Fig. 5.19 muestra la salida y(t) controlada y la señal de
5.4 Control de Dos Posiciones 75

control u(t). Este gráfico se obtuvo ejecutando el archivo onoff1data.m, cuyo listado
se muestra abajo. El relay empleado posee los parámetros Umin = 0.8, Umax = 1.2,
Switch On Point = 0 y Switch Off Point = 0. La FT de la válvula se asume que es
una constante incluida en Kp .

e(t) u(t) Kp y(t)

T.s+1
Step Relay Transfer Fcn Transport Scope
Delay
rh
R
Save in format
th uh yh
array
Clock t t u y

Fig. 5.18: Diagrama Simulink para el ejemplo 5.5.

CONTROL ON−OFF DEL PROCESO


1.4

1.2

u(t)
1

set point
0.8
y(t) y u(t)

y(t)
0.6

0.4

0.2

0
0 10 20 30 40 50
TIEMPO [s]

Fig. 5.19: Salida controlada y(t) y señal de control ON–OFF u(t) para el ejemplo 5.7.

% onoff1data.m
clear all; close all; clc;
R=1; Kp=1; T=10; tau=2; Umin=0.8; Umax=1.2; swonpoint=0; swoffpoint=0;
load th; load yh; load uh; load rh;
plot(th,rh,’k’,th,yh,’k’,th,uh,’k’), xlabel(’TIEMPO [s]’), grid
ylabel(’y(t) y u(t)’), title(’CONTROL ON-OFF DEL PROCESO’)
print -f -deps onoff1r, print -s -deps onoff1
76 Control PID SISO

5.5. Estructuras del Controlador PID


El algoritmo de control PID es el más usado en la actualidad por la industria. Se
estima que tal algoritmo se aplica en más del 90 % de las aplicaciones. Sin embargo, no
existe un estándar industrial de tal algoritmo. Existen varias estructuras del algoritmo
PID [29], algunas de las cuales se formulan a continuación.

El controlador PID Ideal


El controlador PID ideal, denominado también controlador no interactivo, algo-
ritmo ISA (Instrument Society of America) o controlador paralelo no interactivo se
formula como:
 Z 
1 t de
u = KC e + e dt + Td
Ti 0 dt
e = r−y (5.15)

donde u es la señal o fuerza de control, y es la salida controlada del sistema (per-


manentemente sujeta a medición), e es la señal de error, r es la señal de referencia
deseada o set :point, Kc es la ganancia proporcional, Ti es la constante de tiempo
integral o simplemente tiempo integral, y Td es la constante de tiempo derivativa, o
simplemente tiempo derivativo.
Cabe anotar que la forma de la señal de error empleada: e = r − y corresponde a
una acción de control inversa. Para una acción de control directa, el error se expresa
como: e = y − r. Nosotros seguiremos usando la primera forma. Por otro lado, el
tiempo integral o tiempo reset Ti se expresa a menudo como la tasa integral o reset
Tr = 1/Ti .
En el dominio de Laplace, (5.15) se expresa como:
 
u(s) 1 Kc
Gc (s) = = Kc 1 + + Td s = K c + + K c Td s (5.16)
e(s) Ti s Ti s

El controlador PID Paralelo


El controlador PID paralelo, denominado también paralelo ideal, no interactivo,
independiente o independiente de la ganancia, es una variación del controlador ideal
de (5.16) y se formula en el dominio de Laplace como:

u(s) 1
Gc (s) = = Kc + + Td s (5.17)
e(s) Ti s

Notar que los parámetros Kc , 1/Ti y Td del controlador PID paralelo dado en (5.17)
corresponden a los parámetros Kc , Kc /Ti y Kc Td del controlador PID ideal de (5.16).
Por consiguiente, (5.17) puede ser siempre reemplazado por (5.16).

El controlador PID Ideal Filtrado


Muchas veces es necesario introducir un filtro para suavizar señales ruidosas,
antes que se apliquen al algoritmo de control. Para estos casos se recomienda usar el
5.5 Estructuras del Controlador PID 77

siguiente filtro de primer orden formulado tanto en el dominio del tiempo como en el
dominio de Laplace:

def (t) 1
T = e(t) − ef (t) ef (s) = e(s) (5.18)
dt 1 + Ts
donde T es la constante de tiempo del filtro. Dado que el ruido en el sistema se
amplifica principalmente por la acción derivativa, entonces T se puede formular pro-
porcional al tiempo derivativo como sigue:

1
T = α Td → ef (s) = e(s) (5.19)
1 + α Td s

Introduciendo en (5.16) el filtro dado en (5.19), se obtiene el siguiente controlador


PID ideal filtrado:
  
u(s) 1 1
Gc (s) = = Kc 1+ + Td s (5.20)
e(s) 1 + αTd s Ti s

El Controlador PID con Parte Derivativa Filtrada


El controlador PID con parte derivativa filtrada, denominada también no inter-
activa, posee la expresión:
!
u(s) 1 Td s
Gc (s) = = Kc 1 + + 3 ≤ N ≤ 10 (5.21)
e(s) Ti s 1 + TNd s

El Controlador PID Clásico


El controlador PID clásico mostrado se denomina también controlador en cascada,
interactivo, serie, interactuante, análogo o comercial y se describe como:
  !
u(s) 1 1 + Td s
Gc (s) = = Kc 1 + 3 ≤ N ≤ 10 (5.22)
e(s) Ti s 1 + TNd s

El Controlador PID Clásico Generalizado


El controlador PID clásico generalizado mostrado, con 3 ≤ N ≤ 10 se formula
como:
! 
u(s) 1 Td s bf 0 + bf 1 s + bf 2 s2
Gc (s) = = Kc 1 + + (5.23)
e(s) Ti s 1 + TNd s 1 + a f 1 s + a f 2 s2

El Controlador PID Dependiente


El controlador PID dependiente se denomina también controlador serie, interac-
tuante o de algoritmo análogo, y se describe como:
  
u(s) 0 1 0
Gc (s) = = Kc 1 + 0 1 + Td s (5.24)
e(s) Ti s
78 Control PID SISO

La expresión dada en (5.24) se puede reordenar como:


0 0
" 0 0
#  
0 Ti + T 1 T i T s 1
d d
Gc (s) = Kc 0 1+ 0 0 + 0 0 = Kc 1 + + Td s (5.25)
Ti Ti + T d s Ti + T d Ti s

La estructura en (5.25) es semejante a la estructura dada en (5.15) con:


0 0 0 0
T +T
0 0 0 T T
Kc = K c i 0 d Ti = T i + T d Td = 0 i d 0 (5.26)
Ti Ti + T d

Resolviendo el sistema de ecuaciones dadas en (5.26) se obtiene:


0
 p 
Kc = 0.5Kc 1 + 1 − 4Td /Ti
0
 p 
Ti = 0.5Ti 1 + 1 − 4Td /Ti
0
 p 
Td = 0.5Td 1 + 1 − 4Td /Ti (5.27)

Cuando Td = Ti /4 en (5.27), los parámetros de sintonización se convierten en:


0 0 0
Kc = 0.5Kc Ti = 0.5Ti Td = 0.5Td

Para Td > TI /4, el controlador dependiente nunca será similar al controlador ideal,
ya que para esta condición los parámetros en (5.27) se vuelven imaginarios.

El Controlador PID Interactivo


El controlador interactivo posee la siguiente estructura (compararla con la estruc-
tura del controlador clásico):
  !
u(s) 1 Td s
Gc (s) = = Kc 1 + (5.28)
e(s) Ti s 1 + TNd s

El Controlador PID Mejorado


El controlador mejorado posee la siguiente estructura (compararla con la estruc-
tura del controlador interactivo):
  !
1 Td s
u(s) = Kc 1 + e(s) − Kc y(s) (5.29)
Ti s 1 + TNd s

El Controlador PID con Dos Grados de Libertad


El controlador con dos grados de libertad, conocido también como controlador
m–PID o ISA–PID, posee la siguiente estructura:
" # " #
1 (1 − β)Td s 1 Td s
u(s) = Kc (1 − α) + + e(s)−Kc 1 + + y(s) (5.30)
Ti s 1 + TNd s Ti s 1 + TNd s
5.6 Métodos de Sintonización de Controladores PID 79

5.6. Métodos de Sintonización de Controladores PID


En un sistema de control realimentado, el controlador PID debe generar la señal
de control que actuando sobre el sistema, provoque que la salida de dicho sistema siga
a una señal de referencia, cumpliendo ciertas especificaciones de diseño previamente
establecidas. Este objetivo de control se logra determinando los valores adecuados
de los parámetros Kc , Ti y Td del controlador. En otras palabras, sintonizando los
parámetros del controlador. Existen diversos métodos de sintonización, algunos de
los cuales vamos a explorar e ilustrar con aplicaciones. La referencia [29] contiene un
lista exhaustiva de las reglas de sintonización de varias estructuras de controladores
PI y PID aplicados a diversos tipos de plantas.

5.6.1. Métodos Basados en la Curva de Reacción


La respuesta de un proceso a un escalón se denomina la curva de reacción. En
un procesos autoregulado, su curva de reacción tiende a un estado estacionario, que
también puede ser el estado cero, tal como ocurre en los procesos descritos por las
siguientes FTs:
Kp Kp
Gp (s) = Gp (s) =
Ts + 1 (T1 s + 1)(T2 s + 1)
En contraposición, los procesos no autoregulados poseen una curva de reacción no
estacionaria, dado que crece continuamente en el tiempo, tal como acontece en los
procesos descritos por las siguientes FTs:
Kp Kp
Gp (s) = Gp (s) =
s(T s + 1) s(T1 s + 1)(T2 s + 1)

Método de la Constante de Tiempo


El método de la constante de tiempo del lazo de control se emplea para procesos
de primer orden dado por la ecuación (??). Los parámetros del controlador PID se
sintonizan con las relaciones siguientes:
1 1
Kc = Ti = T Td = Ti (5.31)
Kp 4
Ejemplo 5.6
Se desea controlar el siguiente proceso empleando el método de la constante de tiem-
po:
Kp
Gp (s) =
Ts + 1
donde Kp = 2 y T = 5. Para el control emplear la configuración de la Fig. 5.1(a).
Solución: Ver el archivo ct1.m. La salida controladas se muestran en la Fig. 5.20.
% ct1.m CONTROL DE UN PROCESO DE PRIMER ORDEN
clear all; close all; clc; Kp=2; T=5; s=tf(’s’); Gp=Kp/(T*s+1); % PROCESO
Kc=1/Kp; Ti=T; Td=T/4; Gc=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gc*Gp,1);
step(PID,’k’,50); grid; xlabel(’TIEMPO’); ylabel(’SALIDA’);
title(’CONTROL PID DE UN PROCESO DE PRIMER ORDEN’);print -deps -f ct1
80 Control PID SISO

CONTROL PID USANDO EL MÉTODO DE LA TANGENTE

1.2

1.1

0.9

0.8
SALIDA

0.7

0.6

0.5

0.4

0.3

0.2
0 5 10 15 20 25 30 35 40 45 50
TIEMPO (sec)

Fig. 5.20: Salida controlada del ejemplo 5.6.

Método de Hartree
La Tabla 5.2 atribuida a Hartree et al. (ver referencias de [29]), se aplica para
controlar procesos que poseen una FT de la forma Gp (s) = Kp e−τ s . El control se
realiza empleando el sistema de control de la Fig. 5.1(a).

Tabla 5.2: Reglas de sintonı́a para controlar sistemas tipo Gp (s) = Kp e−τ s .

Método Controlador Gc (s) Kc Ti Td


  
1+Td s 0.7
Curva de reacción Kc 1 + T1i s Td Kp τ 2.66τ τ
1+ N s

Ejemplo 5.7

Se desea controlar el siguiente proceso empleando la Tabla 5.2:

Gp (s) = Kp e−τ s

donde Kp = 2 y τ = 2. Para el control emplear el sistema de control de la Fig. 5.1(a).


Solución: Usamos la Tabla 5.2 para calcular los parámetros del controlador PID con
N = 3. La Fig. 5.21 muestra el diagrama Simulink del sistema de control (archivo
hartree1.mdl), mientras que la Fig. 5.22 muestra la salida y(t) controlada y la señal
de control u(t). Este gráfico se obtuvo ejecutando el archivo hartree1graf.m, cuyo
listado se muestra abajo. Notar en el diagrama Simulink que los bloques Kc y Gc1 (s)
forman un controlador PI. Además, los bloques rh, yh, uh y th son del tipo To
Workspace y sirven para almacenar datos y estructuras. Como estamos interesados
en crear vectores de datos para luego graficarlos, entonces, luego de hacer doble click
en cada bloque, en la ventana que aparece seleccionar Array en Save Format.
% hartree1graf.m
clear all; close all; clc;
5.6 Métodos de Sintonización de Controladores PID 81

hartree 1.mdl

Ti .s+1 Td .s+1
Kc Kp
Ti .s Td /N.s+1 Scope
r Kc Gc1(s) Gc2(s) Kp tau

rh th uh yh
rh Clock th uh yh

Fig. 5.21: Diagrama Simulink para el ejemplo 5.7.

CONTROL DEL SISTEMA G(s)=Kp*exp(−tau*s)


1.5

1
SALIDA y(t)

0.5

−0.5
0 20 40 60 80 100 120 140 160 180 200
TIEMPO [s]

0.6

0.4
CONTROL u(t)

0.2

−0.2
0 20 40 60 80 100 120 140 160 180 200
TIEMPO [s]

Fig. 5.22: Salida controlada y señal de control para el ejemplo 5.7.

r=1; N=3; Kp=2; tau=2; Kc=0.7/(Kp*tau); Ti=2.66*tau; Td=tau;


load th; load yh; load uh; load rh;
subplot(211), plot(th,rh,th,yh), xlabel(’TIEMPO [s]’),
ylabel(’SALIDA y(t)’), title(’CONTROL DEL SISTEMA G(s)=Kp*exp(-tau*s)’)
subplot(212), plot(th,uh), xlabel(’TIEMPO [s]’), ylabel(’CONTROL u(t)’)
print -f -deps hartree1graf, print -s -deps hartree1
82 Control PID SISO

Método de Ziegler y Nichols


El método de la curva de reacción de Ziegler y Nichols emplea la curva de reacción
de la Fig. 2.18 y se aplica a procesos autoregulados que se pueden modelar como un
proceso de primer orden de ganancia Kp y constante de tiempo T , en cascada con un
tiempo muerto τ :
y(s) Kp
Gp (s) = = e−τ s (5.32)
u(s) Ts + 1
La curva de reacción se emplea para obtener los parámetros τ y T , que luego son
usados para determinar los parámetros Kc , Ti y Td del controlador PID ideal, em-
pleando la Tabla 5.3. Las fórmulas en dicha tabla fueron el producto de intensivos
trabajos experimentales realizados por los investigadores Ziegler y Nichols en 1942
[15].

Tabla 5.3: Método de la curva de reacción de Ziegler y Nichols para determinar los
parámetros Kc , Ti y Td .

100 Kp τ
Tipo Controlador Gc (s) Kc = BP ; a= T Ti Td
P Kc 1/a ∞ 0
 
PI Kc 1 + T1i s 0.9/a 10τ /3 0
 
PID Kc 1 + T1i s + Td s 1.2/a 2τ 0.5τ

PD Kc (1 + Td s) 1.2/a ∞ 0.42τ

En algunos procesos, el tiempo muerto τ es bastante pequeño, por lo que es


dificultosa su cuantificación. Para estos casos, es conocido un método de cálculo que
consiste en localizar en la curva de reacción las tazas de cambio más altas, las cuales
ocurren en los tiempos t1 = τ + T /3 y t2 = τ + T . Estos tiempos corresponden al
28.3 % y 63.2 % del valor máximo de la curva de reacción, tal como se muestra en la
Fig. 5.23. Conociendo t1 y t2 , los parámetros T y τ se determinan de:

3
T = (t2 − t1 ) τ = t2 − T (5.33)
2

Ejemplo 5.8

Se desea controlar el siguiente sistema de quinto orden empleando la técnica de la


curva de reacción de Ziegler y Nichols:

Kp
Gp (s) =
(s + Ta )(s + Tb )(s + Tc )(s + Td )(s + Te )

donde: [Ta , Tb , Tc , Td , Te ] = [0.5, 1, 1.5, 2, 2.5] y Kp = 20.


5.6 Métodos de Sintonización de Controladores PID 83

y
100%

63.2%

28.3%
t
t t2
1

Fig. 5.23: Tazas de cambio más altas de la curva de reacción.

Solución: La ganancia proporcional del proceso Gp (s) se obtiene en el estado esta-


cionario, es decir, cuando s = 0, resultando:
Kp
Kpp = = 5.33
Ta Tb Tc Td Te
Este resultado se puede comprobar en el primer gráfico de la Fig. 5.24, la cual muestra
la respuesta al escalón (la curva de reacción) del sistema con una ganancia en estado
estable de aproximadamente 5.5. De esta curva también se obtienen los parámetros
τ = 1.7 s y T = 6.7 – τ = 5 s del modelo del proceso:
Kpp −sτ
Gp (s) = e
Ts + 1
Con estos valores se calculan los parámetros de los controladores P, PI, PID y PD
empleando la Tabla 5.3. El segundo gráfico de la Fig. 5.24 ilustra la comparación entre
las salidas controladas. Observar que sólo los controladores PI y PID son capaces de
controlar el proceso sin post–sintonı́a. Tales resultados se obtienen ejecutando el
programa zn1.m listado abajo.
% zn1.m CONTROL P, PI, PID Y PD DE UN PROCESO V ÍA LA CURVA DE REACCIÓN
clear all; close all; clc;
Kp=20; Ta=0.5; Tb=1; Tc=1.5; Td=2; Te=2.5; s=tf(’s’);
Gp=Kp/(s+Ta)/(s+Tb)/(s+Tc)/(s+Td)/(s+Te); % PROCESO
subplot(211); step(Gp,’k’); grid;
title(’RESPUESTA AL ESCALÓN’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);
tau=1.7; T=6.7-tau; Kpp=5.5; a=Kpp*tau/T; % DE LA CURVA DE REACCI ÓN
Kc=1/a; Gc1=Kc; P=feedback(Gp*Gc1,1); % CONTROL P
Kc=0.9/a; Ti=10*tau/3; Gc2=Kc*(1+1/Ti/s); PI=feedback(Gp*Gc2,1); % PI
Kc=1.2/a; Ti=2*tau; Td=0.5*tau;
Gc3=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc3,1); % CONTROL PID
Kc=1.2/a; Td=0.42*tau; Gc4=Kc*(1+Td*s); PD=feedback(Gp*Gc4,1); % PD
subplot(212); step(P,’k’,PI,’k’,PID,’k’,PD,’k’); grid; xlabel(’TIEMPO’);
title(’SALIDAS CONTROLADAS’); ylabel(’SALIDA’); print -deps -f zn1

Ejemplo 5.9

Se desea controlar el proceso nivel en un tanque de almacenamiento empleando la


técnica de la curva de reacción de Ziegler y Nichols. El diagrama de bloques del sis-
tema nivel, extraı́do de [16], se muestra en la Fig. 5.25(a), donde las funciones de
84 Control PID SISO

RESPUESTA AL ESCALÓN
AMPLITUD 6

4
Kpp
2

0
0 5 10 15
TIEMPO (sec)

SALIDAS CONTROLADAS

2
PID
1.5
SALIDA

PI
1

0.5

P PD
0
0 20 40 60 80 100 120
TIEMPO (sec)

Fig. 5.24: Respuesta al escalón del sistema (gráfico superior) y respuestas controladas
para el ejemplo 5.8 (gráfico inferior).

transferencia del actuador hidráulico, del tanque y del flotador se formulan respecti-
vamente:
10 3.15 1
GH (s) = GT (s) = GF (s) = 1 τh = 1
s+1 30s + 1 9 s2 + 31 s + 1

Para propósitos de comparación emplear los controladores ideal dado en (5.16), de-
pendiente mostrado en (5.24) y mejorado (ecuación (5.29)). Para simplificar la no-
tación, el sistema de control que emplea un controlador ideal será designado como
control PID, el que emplea un controlador dependiente será conocido como control
PI D, y el que usa un controlador mejorado recibirá la denominación de control
PI Dy. Los controles PID y PI D emplean el diagrama de bloques de la Fig. 5.1(a),
mientras que el control PI Dy usa el diagrama de bloques de la Fig. 5.1(b). Por otro
lado, en el proceso que nos ocupa, el tiempo muerto τ se puede calcular usando la
relación τ = d/v, donde v es la velocidad del flujo que ingresa al tanque y d es es
la longitud de tuberı́a que existe entre la válvula de control de flujo y el punto de
medición del flujo.

Solución: El primer gráfico de la Fig. 5.26 muestra la respuesta al escalón (la curva
de reacción) del sistema, de la cual se obtiene τ = 1 y T = 30 − τ . Con estos valores
se calculan los parámetros del controlador PID empleando la Tabla 5.3. El segundo
5.6 Métodos de Sintonización de Controladores PID 85

Controlador Referencia
Actuador (set point)
v
d

Flotador

r e u y
GC (s) G H(s) e −sτ h GT (s)
Controlador Actuador Tiempo muerto Tanque

ym GF (s)

(a)
Flotador

r e u y
GC (s) G H(s) e −sτ h GT (s)
Controlador Actuador Tanque

ym GF (s)
(b) Flotador

r e u y
G C i(s) G H(s) e −sτ h GT (s)
Controlador Actuador Tanque
proporcional
integral G Cd(s)
Controlador derivativo
ym
GF (s)
(c)

Fig. 5.25: Diagrama de bloques del sistema de control de nivel; (a) Proceso; (b)
estructura para control PID o PI D; (c) estructura para control PI Dy.

gráfico de la Fig. 5.26 ilustra la comparación entre las salidas controladas. Tales
resultados se obtienen ejecutando el programa zn1a.m listado abajo.

% zn1a.m CONTROL PID, PI_D Y PI_Dy EMPLEANDO LA CURVA DE REACCI ÓN


clear all; close all; clc; s=tf(’s’); GH=10/(s+1); GT=3.15/(30*s+1);
GF=1/(s^2/9+s/3+1); tauh=1; [num,den]=pade(tauh,3); Gtau=num/den;
Gpo=GH*Gtau*GT*GF; % Gpo: PROCESO A LAZO ABIERTO INCLUYENDO GF (FLOTADOR)
subplot(211); step(Gpo,’k’); grid % GENERA LA CURVA DE REACCI ÓN
title(’RESPUESTA AL ESCALÓN’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);
tau=1; T=30-tau; % TOMADOS DE LA CURVA DE REACCI ÓN
Gp=GH*Gtau*GT; Kp=31.5; % Kp ES EL PRODUCTO DE 10*31.5
a=Kp*tau/T; Kc=1.2/a; Ti=2*tau; Td=0.5*tau; N=10; % PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,GF); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,GF); % CONT PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Td*s/(1+Td*s/N); Gcd=feedback(Gp,Gcd);
86 Control PID SISO

RESPUESTA AL ESCALÓN

20

15
AMPLITUD

10

0
0 20 40 60 80 100 120 140 160 180
TIEMPO (sec)

SALIDAS CONTROLADAS

2
PI__Dy
1.5
SALIDA

0.5
PID y PI__D
0
0 5 10 15 20 25 30 35 40 45 50
TIEMPO (sec)

Fig. 5.26: Curva de reacción del sistema nivel y respuestas controladas para el ejemplo
5.9 (gráfico inferior).

PI_Dy=feedback(Gci*Gcd,GF); % CONTROL PI_Dy


subplot(212); step(PID,’k’,PI_D,’k’,PI_Dy,’k’); grid; ylabel(’SALIDA’);
title(’SALIDAS CONTROLADAS’); xlabel(’TIEMPO’); print -deps -f zn1a

Método de Chien–Hrones–Reswick
El método de Chien–Hrones–Reswick (CHR) [19] ilustrado en la Fig. 5.27(a), se
aplica a sistemas que aceptan un modelo dinámico como el de la ecuación (5.32). Este
método propone un conjunto de reglas de sintonización para los casos siguientes (ver
Tabla 5.4):

1. Respuesta aperiódica sin sobrenivel en la señal de salida y controlada a cambios


tipo escalón de la entrada de referencia r, sin presencia del disturbio d, y para
un coeficiente de amortiguamiento ζ > 0.8, tal como se muestra en la Fig.
5.27(b).

2. Respuesta aperiódica sin sobrenivel en la salida yd controlada a cambios tipo


escalón del disturbio d, sin presencia de la entrada r, y para un coeficiente de
amortiguamiento ζ > 0.8, tal como se muestra en la Fig. 5.27(c). Observar que
en esta situación existe rechazo al disturbio, dado que yd tiende a cero.
5.6 Métodos de Sintonización de Controladores PID 87

3. Respuesta periódica con sobrenivel del 20 % en la salida controlada y a cambios


tipo escalón de la entrada r, sin presencia del disturbio d, y para un coeficiente
de amortiguamiento de 0.4 < ζ < 0.8, tal como se muestra en la Fig. 5.27(d).

4. Respuesta aperiódica con sobrenivel del 20 % en la salida yd controlada a cam-


bios tipo escalón del disturbio d, sin presencia de la señal r, y para un coeficiente
de amortiguamiento de 0.4 < ζ < 0.8, tal como se muestra en la Fig. 5.27(e).
Observar que en esta situación también existe rechazo al disturbio, ya que y d
tiende a cero.

d
D
r d
t
R r
PID Proceso
e u y
t

(a) y
y
R R
d=0 d=0
t t
(b) (d)
y y
d d
r=0 r=0
D
D
t t

(c) (e)

Fig. 5.27: Método de Chien–Hrones–Reswick.

Ejemplo 5.10

Se desea controlar el proceso nivel del ejemplo 5.9 empleando el método de Chien–
Hrones–Reswick para el caso de rechazo al disturbio (r=0 y d 6= 0) sin presencia de
oscilaciones en la respuesta del sistema (ver Fig. 5.28(a)). Para propósitos de com-
paración emplear los controladores ideal (PID, ecuación (5.16)), dependiente (PI D,
ecuación (5.24)) y mejorado (PI Dy, ecuación (5.29)), empleando las estructuras (b)
y (c) de la Fig. 5.28, respectivamente.
Solución: Los parámetros τ = 1 y T = 30 − τ se obtuvieron con el primer gráfico de
la Fig. 5.26. Con estos valores se calculan los parámetros del controlador empleando
la Tabla 5.4 (caso (c), controlador PID). La Fig. 5.28 ilustra la comparación entre
88 Control PID SISO

Tabla 5.4: Método de Chien–Hrones–Reswick para determinar K C , TI y TD .

Tipo Controlador GC (s) Caso (b): Caso (c): Caso (d): Caso (e):
ζ > 0.8 ζ > 0.8 0.4< ζ < 0.8 0.4< ζ < 0.8
d=0 r=0 d=0 r=0

Kc = 0.3/a Kc = 0.3/a Kc = 0.7/a Kc = 0.7/a


P Kc Ti = ∞ Ti = ∞ Ti = ∞ Ti = ∞
Td = 0 Td = 0 Td = 0 Td = 0

  Kc = 0.35/a Kc = 0.6/a Kc = 0.6/a Kc = 0.7/a


1
PI Kc 1 + Ti s Ti = 1.2T Ti = 4τ Ti = T Ti = 2.3τ
Td = 0 Td = 0 Td = 0 Td = 0

  Kc = 0.6/a Kc = 0.95/a Kc = 0.95/a Kc = 1.2/a


1
PID Kc 1 + Ti s + Td s Ti = T Ti = 2.4τ Ti = 1.4T Ti = 2τ
Td = 0.5τ Td = 0.42τ Td = 0.47τ Td = 0.42τ

las salidas controladas, las cuales se obtienen ejecutando el programa chrd.m listado
abajo.
% chrd.m CONTROL PID, PI_D Y PI_Dy POR EL MÉTODO CHR (RECHAZO AL DISTURBIO)
clear all; close all; clc;
s=tf(’s’); GH=10/(s+1); GT=3.15/(30*s+1); GF=1/(s^2/9+s/3+1);
[num,den]=pade(1,3); Gtau=num/den; Gp=GH*Gtau*GT; Kp=31.5; % Kp=10*31.5
tau=2; T=30-tau; % TOMADOS DE LA CURVA DE REACCI ÓN
a=Kp*tau/T; Kc=0.95/a; Ti=2.4*tau; Td=0.42*tau; N=10; % PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp,Gc1*GF); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp,Gc2*GF); % CONTR PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Td*s/(1+Td*s/N); PI_Dy=feedback(Gp,Gci*GF+Gcd);
step(PID,’k’,PI_D,’k’,PI_Dy,’k’); grid; title(’SALIDAS CONTROLADAS’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f chrd

Método de Cohen–Coon
El método de sintonización desarrollado por los investigadores G.H. Cohen y G.A.
Coon [20] también se aplica a sistemas que aceptan un modelo dinámico como el de
la ecuación (5.32). Las fórmulas de sintonización se muestran en la Tabla 5.5, donde:
Kp τ τ
a= L= (5.34)
T τ +T
Notar que las fórmulas de la Tabla 5.5 se asemejan a las de la Tabla 5.3 cuando L es
suficientemente pequeño.

Ejemplo 5.11

Se desea controlar el sistema nivel descrito en el ejemplo 5.9 empleando el método de


Cohen–Coon. El diagrama de bloques del sistema nivel se muestra en la Fig. 5.25(a).
5.6 Métodos de Sintonización de Controladores PID 89

Actuador Controlador Disturbio d


v
d

(a)
Flotador

d y
G H(s) e −sτ h GT (s)
Actuador Tiempo muerto Tanque
u GF (s)
GC (s)
(b)
Controlador Flotador
r=0

d y
G H(s) e −sτ h GT (s)
Actuador Tanque
G Cd(s)
Control D
(c) G C i(s) GF (s)
Control PI
r=0

Fig. 5.28: Estructuras para el rechazo al disturbio en el control del proceso nivel (Fig.
(a)) empleando controladores PID y PI D (Fig. (b))y PI Dy (Fig. (c)).

SALIDAS CONTROLADAS

1.6

1.4

1.2

0.8
SALIDA

0.6
PI__Dy
0.4
PID y PI__D
0.2

−0.2

−0.4
0 10 20 30 40 50 60 70
TIEMPO (sec)

Fig. 5.29: Rechazo al disturbio empleando controladores tipo PID, PI–D y PI–Dy.

Para propósitos de comparación emplear los controladores PID, PI D y PI Dy. Para


el control PID y PI D emplear el diagrama de bloques de la Fig. 5.25(b), mientras
que para el control PI–Dy usar el diagrama de bloques de la Fig. 5.25(c).
90 Control PID SISO

Tabla 5.5: Método de Cohen y Coon para hallar los parámetros K C , TI y TD .

100
Tipo Controlador GC (s) Kc = BP Ti Td
 
1 0.35L
P Kc a 1 + 1−L ∞ 0
   
1 0.9 0.92L 3.3−3L
PI Kc 1 + Ti s a 1 + 1−L 1+1.2L τ 0
 
1.24 0.13L 0.27−0.36L
PD Kc (1 + Td s) a 1 + 1−L ∞ 1−0.87L τ
   
1.35 0.18L 2.5−2L 0.37−0.37L
PID Kc 1 + T1i s + Td s a 1 + 1−L 1−0.39L τ 1−0.8L τ

Solución: Los parámetros τ = 1 y T = 30 − τ se obtuvieron del primer gráfico de la


Fig. 5.26. Con estos valores se calculan los parámetros del controlador empleando la
Tabla 5.5. La Fig. 5.30 muestra las salidas controladas.

SALIDAS CONTROLADAS

1.8

1.6

1.4

1.2
PI__Dy
SALIDA

0.8
PID y PI__D
0.6

0.4

0.2

0
0 5 10 15 20 25 30 35
TIEMPO (sec)

Fig. 5.30: Respuestas controladas empleando controladores tipo PID, PI D y PI Dy


y el método de Cohen-Coon.

% cohen.m CONTROL PID, PI_D Y PI_Dy EMPLEANDO EL M ÉTODO DE COHEN-COON


clear all; close all; clc;
s=tf(’s’); GH=10/(s+1); GT=3.15/(30*s+1); GF=1/(s^2/9+s/3+1);
[num,den]=pade(1,3); Gtau=num/den; Gp=GH*Gtau*GT; Kp=31.5; % K=10*31.5
tau=1; T=30-tau; % TOMADOS DE LA CURVA DE REACCI ÓN
a=Kp*tau/T; L=tau/(tau+T); Kc=1.35/a*(1+0.18*L/(1-L));
Ti=(2.5-2*L)*tau/(1-0.39*L); Td=(0.37-0.37*L)*tau/(1-0.8*L); N=10; % PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,GF); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,GF); % CONT PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Td*s/(1+Td*s/N); Gcd=feedback(Gp,Gcd);
PI_Dy=feedback(Gci*Gcd,GF); % CONTROL PI-Dy
step(PID,’k’,PI_D,’k’,PI_Dy,’k’); grid; title(’SALIDAS CONTROLADAS’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f cohen
5.6 Métodos de Sintonización de Controladores PID 91

5.6.2. Métodos a Lazo Cerrado


Los métodos de sintonización que emplean la curva de reacción del proceso, se
diseñan a lazo abierto. En cambio, otros métodos de sintonización emplean ciertas
caracterı́sticas que sólo se presentan cuando el proceso está operando a lazo cerrado.
Algunos de estos métodos se describen a continuación.

Método de Samal
El método de sintonización de parámetros de Samal [21] está diseñado para re-
chazar los disturbios que actúan principalmente en la señal de control, tal como se
muestra en la Fig. 5.31(a), donde el rechazo al disturbio se manifiesta porque la señal
de salida y controlada tiende a cero para un tiempo de estabilización T s y un so-
brenivel de magnitud M . El proceso al cual se aplican los parámetros del controlador
PID, poseen un modelo de FT de la forma:

y(s) Kp
Gp (s) = = (5.35)
u(s) (1 + Tn s)n

donde los parámetros n y Tn se determinan de la Tabla 2.6 (ver ejemplo 2.3). En


la Fig. 5.31(b), Vo = Kp Kc es la ganancia a lazo abierto del sistema realimentado,
donde Kc es la ganancia del controlador. En esta figura, los valores de Vo para los
controladores I y PI se leen en el eje Vo de la izquierda, mientras que los valores de
Vo para los controladores P y PID se leen en el eje Vo de la derecha.
En la Fig. 5.31(c), Ti es el tiempo integral. El eje Ti /T ubicado a la izquierda de
esta figura permite determinar Ti para los controladores I, PI y PID, mientras que el
tiempo derivativo Td del controlador se determina empleando la curva PID indicada
como Td /T . La Fig. 5.31(d) permite determinar M conociendo la magnitud D del
disturbio tipo escalón, mientras que la Fig. 5.31(e) se emplea para determinar T s .

Ejemplo 5.12

Se desea controlar el siguiente sistema empleando el método de Samal:

Kp
Gp(s) =
(s + T1 )(s + T2 )(s + T3 )(s + T4 )

donde: [T1 , T2 , T3 , T4 ] = [1, 1.5, 2, 2.5]. Para propósitos de comparación emplear


los controladores PID ideal (ecuación (5.16)), PI D interactivo (ecuación (5.24)) y
PI Dy (PID mejorado, ecuación (5.29)). Para el control PID y PI D emplear el
diagrama de bloques de la Fig. 5.1(b), mientras que para el control PI Dy usar el
diagrama de bloques de la Fig. 5.1(c).
Solución: El gráfico superior de la Fig. 5.32 muestra la respuesta al escalón (la curva
de reacción) del sistema. De esta curva se pueden obtener los parámetros τ = 0.8 s
y T = 3.9 – τ = 3.1 s. Empleando la Tabla 2.6 con τ /T = 0.251, se obtiene n =
3 y Tn /T = 0.270. De la Fig. 5.31(b) se determina Vo = Kc Kp = 3.8, mientras que
de la Fig. 5.31(c) se lee Ti /Tn = 1.75 y Td /Tn =0.7. El gráfico inferior de la Fig.
5.32 ilustra la comparación entre las salidas controladas. Tales resultados se obtienen
ejecutando el programa samal1.m listado abajo.
92 Control PID SISO

d
D
d y
0 t M
r=0 e Kp y D
P, I, PI, PID t
u (1+Tns) n 0 Ts

(a)

5 20 5 5

4 16 4 4
P I
PI
3 12 3 3
Vo Ti
Vo
2 8 Tn 2 2 Td
PID PI Tn
1 4 1 1
PID
0 PID 0 0
1 2 3 4 n 1 2 3 4 n
(b) n (c)

1 Ts 20
M
Kp D I Tn
0.8 16 I

0.6 PI 12
P PI
0.4 PID 8
PID
0.2 4
P
0 0
1 2 3 4 n 1 2 3 4 n
(d) (e)

Fig. 5.31: Método de Samal para hallar los parámetros de un controlador PID.

% samal1.m CONTROL PID, PI_D Y PI_Dy EMPLEANDO EL M ÉTODO DE SAMAL


clear all; close all; clc; Kp=10; Tb=1; Tc=1.5; Td=2; Te=2.5; s=tf(’s’);
Gp=Kp/(s+Tb)/(s+Tc)/(s+Td)/(s+Te); subplot(211); step(Gp,’k’); grid;
title(’RESPUESTA AL ESCALÓN’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);
% tau=0.8; T=3.9-tau=3.1; % tau/T=0.258 => n=3 => Tn/T=0.270
% Gm(s)=Kp/(Tn*s+1)^n % MODELO DEL PROCESO SEG ÚN SAMAL
Tn=0.837; Vo=3.8; Kc=Vo/Kp; Ti=1.75*Tn; Td=0.7*Tn; N=10;% PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,1); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,1); % CONTR PI_D
5.6 Métodos de Sintonización de Controladores PID 93

RESPUESTA AL ESCALÓN

1.5
AMPLITUD

0.5

0
0 1 2 3 4 5 6 7 8 9
TIEMPO (sec)

SALIDAS CONTROLADAS

1.5

1
SALIDA

0.5

0
0 2 4 6 8 10 12 14 16 18 20
TIEMPO (sec)

Fig. 5.32: Respuesta al escalón (Fig. inferior) y respuestas controladas (Fig. superior)
empleando controladores tipo PID, PI D y PI Dy y el método de Samal.

Gci=Kc*(1+1/Ti/s); Gcd=Td*s/(1+Td*s/N); Gcd=feedback(Gp,Gcd);


PI_Dy=feedback(Gci*Gcd,1); % CONTROL PI_Dy
subplot(212); step(PID,’k’,PI_D,’k’,PI_Dy,’k’); grid;ylabel(’SALIDA’);
title(’SALIDAS CONTROLADAS’); xlabel(’TIEMPO’); print -deps -f samal1

Método de la Oscilación Crı́tica de Ziegler y Nichols


El método de la oscilación crı́tica de Ziegler y Nichols [15] emplea la configuración
de un sistema de control a lazo cerrado y se puede aplicar tanto a sistemas que son
modelados con la ecuación (5.32) y a otros no autoregulados, pero que permiten una
respuesta a lazo cerrado en forma de oscilaciones sostenidas, tal como se muestra en
la Fig. 5.33.
Los parámetros Kc , Ti y Td del controlador PID se pueden obtener a partir de tal
respuesta oscilatoria, empleando el siguiente procedimiento:

Fijar los parámetros Ti y Td en ∞ y 0 respectivamente. Incrementar poco a


poco el parámetro Kc hasta obtener una respuesta en forma de oscilaciones
sostenidas (ver la Fig. 5.33).
En dicha respuesta, medir el perı́odo de oscilación crı́tico Tcrit y anotar la
ganancia crı́tica Kcrit (o ganancia lı́mite) para la cual se obtuvo dicho perı́odo.
94 Control PID SISO

Los parámetros Kc , Ti y Td se calculan luego usando la Tabla 5.6.


Es necesario hacer notar que la magnitud de la oscilación sostenida, lo que es equi-
valente a decir la magnitud de variación de la variable de salida, debe ser mantenida
la más pequeña posible para evitar problemas en la variable controlada.

K crit
r u y y
r e
PID Proceso
R R
T crit

t t

Fig. 5.33: Método de la oscilación crı́tica de Ziegler y Nichols.

Tabla 5.6: Método de la oscilación crı́tica de Ziegler y Nichols para determinar los
parámetros Kc , Ti y Td .

100
Tipo Controlador Gc (s) Kc = BP Ti Td
P Kc 0.5Kcrit ∞ 0
 
PI Kc 1 + T1i s 0.45 Kcrit 0.85 Tcrit 0
 
PID Kc 1 + T1i s + Td s 0.6 Kcrit 0.5 Tcrit 0.125 Tcrit

Ejemplo 5.13

Se desea controlar el proceso nivel del problema 5.9 empleando la técnica de las
oscilación crı́tica de Ziegler y Nichols. Para propósitos de comparación emplear los
controladores PID estándar, PI D interactivo y PI Dy mejorado, empleando las es-
tructuras de la Fig. 5.25.

Solución: El primer gráfico de la Fig. 5.34 muestra la respuesta al escalón a manera


de una oscilación sostenida que se obtiene empleando un controlador proporcional
de ganancia GC (s) = Kcrit = 0.85 en la Fig. 5.25(b). Notar que la oscilación posee
un perı́odo igual a Tcrit = 8 s. Con estos valores se calculan los parámetros del
controlador PID empleando la Tabla 5.6. El segundo gráfico de la Fig. 5.34 ilustra la
comparación entre las salidas controladas. Tales resultados se obtienen ejecutando el
programa zn2.m listado abajo.
% zn2.m CONTROL PID, PI_D Y PI_Dy MEDIANTE LA OSCILACI ÓN CRÍTICA
clear all; close all; clc;
s=tf(’s’); GH=10/(s+1); GT=3.15/(30*s+1); GF=1/(s^2/9+s/3+1);
[num,den]=pade(1,3); Gtau=num/den; Gp=GH*Gtau*GT;
Kcrit=3.95; G_c0=feedback(Kcrit*Gp,GF); subplot(211); step(G_c0,’k’,20);
5.6 Métodos de Sintonización de Controladores PID 95

OSCILACIÓN CRÍTICA

2
Tcrit
1.5
AMPLITUD

0.5

0
0 2 4 6 8 10 12 14 16 18 20
TIEMPO (sec)

SALIDAS CONTROLADAS

2
PI__Dy
1.5
SALIDA

0.5
PID y PI__D
0
0 10 20 30 40 50 60
TIEMPO (sec)

Fig. 5.34: Oscilaciones sostenidas (primer gráfico) para Kp = Kcrit y respuestas


controladas (gráfico inferior) para el ejemplo 5.13.

grid; title(’OSCILACIÓN CRÍTICA’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);


Tcrit=4.25; % TOMADOS DE LA OSCILACIÓN SOSTENIDA
Kc=0.6*Kcrit; Ti=0.5*Tcrit; Td=0.125*Tcrit; N=10; % PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,GF); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,GF); % CONT PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Td*s/(1+Td*s/N); Gpcd=feedback(Gp,Gcd);
PI_Dy=feedback(Gci*Gpcd,GF); % CONTROL PI_Dy
subplot(212); step(PID,’k’,PI_D,’k’,PI_Dy,’k’); grid; ylabel(’SALIDA’);
title(’SALIDAS CONTROLADAS’); xlabel(’TIEMPO’); print -deps -f zn2

Ejemplo 5.14

Se desea controlar un proceso no autoregulado que posee la siguiente FT, empleando


la técnica de las oscilaciones sostenidas de Ziegler y Nichols.
1
Gp (s) =
s(s + 1)4
Para propósitos de comparación emplear los controladores PID ideal, PI D interac-
tivo y PI Dy mejorado.

Solución: El primer gráfico de la Fig. 5.35 muestra la respuesta al escalón a manera


de una oscilación sostenida que se obtiene empleando un controlador proporcional
96 Control PID SISO

de ganancia GC (s) = Kcrit = 0.569. Notar que la oscilación posee un perı́odo igual
a τcrit = 15 s. Con estos valores se calculan los parámetros del controlador PID
empleando la Tabla 5.6. El segundo gráfico de la Fig. 5.35 ilustra la comparación
entre las salidas controladas. Tales resultados se obtienen ejecutando el programa
zn2a.m listado abajo.

OSCILACIÓN CRÍTICA

Tcrit
1.5
AMPLITUD

0.5

0
0 5 10 15 20 25 30 35 40 45 50
TIEMPO (sec)

SALIDAS CONTROLADAS

1.5
SALIDA

PI__Dy
1
PID y PI__D
0.5

0
0 10 20 30 40 50 60
TIEMPO (sec)

Fig. 5.35: Oscilaciones sostenidas (primer gráfico) para Kp = Kcrit y respuestas


controladas (gráfico inferior) para el ejemplo 5.18.

% zn2a.m CONTROL PID, PI_D Y PI_Dy MEDIANTE LA OSCILACI ÓN CRÍTICA


clear all; close all; clc; s=tf(’s’); Gp=1/(s*(s+1)^4);
Kcrit=0.569; G_c0=feedback(Kcrit*Gp,1); subplot(211); step(G_c0,’k’,50);
grid; title(’OSCILACIÓN CRÍTICA’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);
Tcrit=15; % TOMADO DE LA OSCILACIÓN SOSTENIDA
Kc=0.6*Kcrit; Ti=0.5*Tcrit; Td=0.125*Tcrit; N=10; % PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,1); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,1); % CONTR PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Kc*Td*s/(1+Td*s/N); Gcd=feedback(Gp,Gcd);
PI_Dy=feedback(Gci*Gcd,1); % CONTROL PI_Dy
subplot(212); step(PID,’k’,PI_D,’k’,PI_Dy,’k’); grid; ylabel(’SALIDA’);
title(’SALIDAS CONTROLADAS’); xlabel(’TIEMPO’); print -deps -f zn2a
5.6 Métodos de Sintonización de Controladores PID 97

Método de la Oscilación Crı́tica de Yu


Las siguientes reglas de sintonización atribuidas a Yu (ver referencias de [29]),
se aplican al control de sistemas que poseen una FT de la forma Gp (s) = Kp e−τ s .
El control se realiza empleando la configuración de la Fig. 5.1(a). El controlador
empleado es el denominado clásico generalizado, cuya FT es:
! 
u(s) 1 Td s bf 0 + bf 1 s + bf 2 s2
Gc (s) = = Kc 1 + +
e(s) Ti s 1 + TNd s 1 + a f 1 s + a f 2 s2

Las reglas son:

Kc = 0.3Kcrit Ti = 2.3τcrit Td = 0

Ejemplo 5.15

Se desea controlar el sistema Gp (s) = Kp e−τ s empleando la técnica de la oscilación


crı́tica y las reglas de sintonización arriba formuladas.
Solución: El primer gráfico de la Fig. 5.36 muestra la respuesta al escalón a manera
de una oscilación sostenida que se obtiene empleando un controlador proporcional
de ganancia GC (s) = Kcrit = 0.45 en la Fig. 5.33. Notar que la oscilación posee un
perı́odo igual a τcrit = 4 s. Con estos valores se calculan los parámetros del controlador
PID empleando:

Kc = 0.3Kcrit Ti = 2.3τcrit Td = 0

El segundo gráfico de la Fig. 5.36 ilustra la salidas controlada. Tales resultados se


obtienen ejecutando el programa yu1.m listado abajo.
% yu1.m CONTROL PI EMPLEANDO LAS REGLAS DE YU CON LA OSCILACI ÓN CRÍTICA
clear all; close all; clc; s=tf(’s’); Kp=2; af1=1; af2=1; bf0=1; bf1=1;
bf2=1; [num,den]=pade(2,3); Gtau=tf(num,den); Gp=Kp*Gtau; % Gp: PROCESO
Kcrit=0.45; G_c0=feedback(Kcrit*Gp,1); subplot(211); step(G_c0,’k’);
grid; title(’OSCILACIÓN CRÍTICA’); xlabel(’TIEMPO’);ylabel(’AMPLITUD’);
Tcrit=4; % TOMADO DE LA OSCILACIÓN CRÍTICA
Kc=0.3*Kcrit; Ti=2.3*Tcrit; Td=0; N=3; % PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N));
Gc2=(bf0+bf1*s+bf2*s^2)/(1+af1*s+af2*s^2); Gc=series(Gc1,Gc2);
PID=feedback(Gp*Gc,1); subplot(212); step(PID,’k’); xlabel(’TIEMPO’);
grid; title(’SALIDA CONTROLADA’); ylabel(’SALIDA’); print -deps -f yu1

Método del Relé


El método de la oscilación crı́tica a lazo cerrado puede ser arriesgado, ya que
en casos reales fuerza a la planta a operar cerca de la inestabilidad. En la práctica,
también, resulta muy dificultoso mantener la amplitud constante. Una variante de este
método se muestra en la Fig. 5.37 [17], en donde se emplea un relé para conseguir una
oscilación sostenida de perı́odo Tcrit pero de pequeña amplitud a, para una ganancia
Kcrit = π4La , donde L es la ganancia del relé. Teniendo como datos Tcrit y Kcrit se
puede ahora usar la Tabla 5.6.
98 Control PID SISO

OSCILACIÓN CRÍTICA

AMPLITUD
0
Tcrit
−5

−10
0 10 20 30 40 50 60
TIEMPO (sec)

SALIDA CONTROLADA

1
SALIDA

0.5

−0.5
0 50 100 150 200 250
TIEMPO (sec)

Fig. 5.36: Oscilaciones sostenidas (primer gráfico) para Kp = Kcrit y respuesta con-
trolada (gráfico inferior) para el ejemplo 5.15.

y a
u
e +L u y t
r
Gp(s)
e
−L
Proceso Tcrit
Relé

Fig. 5.37: Diagrama de bloques del sistema realimentado empleado en el método de


sintonización mediante relé.

Ejemplo 5.16

Se desea controlar un sistema no autoregulado que posee la siguiente FT, empleando


la técnica del relé de Aström y Hägglund:
1
Gp (s) =
s(s + 1)4

Para propósitos de comparación emplear los controladores PID estándar, PI D inter-


activo y PI Dy mejorado. También determinar las ecuaciones de estado del sistema.

Solución: La primera parte del programa relay.m listado abajo, el cual usa el dia-
grama de bloques de la Fig. 5.37(a), permite obtener el primer y segundo gráfico de
la Fig. 5.39 para una magnitud del relé de L = 0.1. El diagrama de bloques de la
5.6 Métodos de Sintonización de Controladores PID 99

Fig. 5.38 se emplea para determinar las cinco ecuaciones de estado del sistema:

ẋ1 = −x1 + x2 ẋ2 = −x2 + x3

ẋ3 = −x3 + x4 ẋ4 = −x4 + x5 ẋ5 = u


De la oscilación sostenida mostrada en el primer gráfico de la Fig. 5.39 se desprenden
los parámetros: a = 0.25 y Tcrit = 15, mientras que el segundo gráfico ilustra la ley
de control u = ±L. Conocido los parámetros a, Tcrit y L, ahora se puede calcular la
ganancia Kcrit y los parámetros PID empleando la Tabla 5.6. El tercer gráfico de la
Fig. 5.39 muestra la comparación entre las salidas controladas. Tales resultados se
obtienen ejecutando la segunda parte del programa relay.m listado abajo.

u x5 1 x4 x3 x2 x1 = y
1 1 1 1
s s+1 s+1 s+1 s+1

Fig. 5.38: Diagrama de bloques del sistema mostrando sus variables de estado.

2
r
SALIDA y

Tcrit
1

a
0
0 10 20 30 40 50 60 70 80
TIEMPO
0.1
CONTROL u

0 +L
−L

−0.1
0 10 20 30 40 50 60 70 80
TIEMPO
SALIDAS CONTROLADAS

2
SALIDA

PI__Dy
1
PID y PI__D
0
0 10 20 30 40 50 60 70 80 90 100
TIEMPO (sec)

1
Fig. 5.39: Respuesta al escalón del sistema de control del sistema Gp (s) = s(s+1) 4

empleando un relé (gráfico superior), ley de control u (gráfico medio) y respuestas


estabilizadas empleando controladores tipo PID, PI D y PI Dy (gráfico inferior).
100 Control PID SISO

% relay.m RESPUESTA A LAZO CERRADO CON UN REL É COMO CONTROLADOR


clear all; close all; clc;
% PROGRAMA PARA PRODUCIR LA OSCILACIÓN SOSTENIDA
x1=0; x2=0; x3=0; x4=0; x5=0; % CONDICIONES INICIALES
T = 0.01; M = 8000; L=0.1;
for k = 1:M
r=1; R(k) = r; e=r-x1; % REFERENCIA ESCALÓN r Y ERROR e
if(e>=0), u=L; else u=-L; end % FUNCIÓN RELÉ
U(k)=u; % LEY DE CONTROL u
x1=x1+T*(-x1+x2); x2=x2+T*(-x2+x3); x3=x3+T*(-x3+x4); x4=x4+T*(-x4+x5);
x5=x5+T*u; X1(k)=x1; % SALIDA DEL PROCESO
end
ejet = linspace(0,M*T,M); subplot(311); plot(ejet,R,ejet,X1); grid
ylabel(’SALIDA y’); xlabel(’TIEMPO’);
subplot(312); plot(ejet,U); ylabel(’CONTROL u’); xlabel(’TIEMPO’)
% PROGRAMA PARA CONTROLAR EL PROCESO Gp(S)
s=tf(’s’); Gp=1/(s*(s+1)^4); % FT DEL PROCESO
a=0.25; Tcrit=15; Kcrit=4*L/(pi*a); % TOMADO DE LA OSCILACI ÓN SOSTENIDA
Kc=0.6*Kcrit; Ti=0.5*Tcrit; Td=0.125*Tcrit; N=10; % PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,1); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,1); %CONTROL PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Kc*Td*s/(1+Td*s/N); Gcd=feedback(Gp,Gcd);
PI_Dy=feedback(Gci*Gcd,1); % CONTROL PI_Dy
subplot(313); step(PID,’k’,PI_D,’k’,PI_Dy); title(’SALIDAS CONTROLADAS’);
xlabel(’TIEMPO’); ylabel(’SALIDA y’); print -deps -f relay

Método de las Oscilaciones Amortiguadas


El método de las oscilaciones amortiguadas propuesto en [18], se conoce también
como el método TDQR (Tuning for Quarter Decay Response) o sintonización para
un decaimiento de un cuarto de la respuesta. Este método se aplica a sistemas que
pueden ser modelados en la forma dada en la ecuación (5.32) y también a otros
sistemas no autoregulados. En ambos casos, la respuesta al escalón a lazo cerrado,
debe ser de modo tal que el segundo máximo sea un cuarto del primer máximo, tal
como se ilustra en la Fig. 5.40, en la cual Ko es la ganancia del controlador para
obtener el decaimiento mostrado y To es el perı́odo correspondiente. Los parámetros
de sintonización del controlador se obtienen luego de la Tabla 5.7.

Ko y To
r r e u y
PID Proceso A
R R

A/4
t t

Fig. 5.40: Método de las oscilaciones amortiguadas de Harriot.

Ejemplo 5.17
5.6 Métodos de Sintonización de Controladores PID 101

Tabla 5.7: Método de las oscilaciones amortiguadas de Harriot para hallar los
parámetros Kc , Ti y Td .

100
Tipo Controlador Gc (s) Kc = BP Ti Td
P Kc Ko ∞ 0
 
PI Kc 1 + T1i s Ko To /1.5 0
 
PID Kc 1 + T1i s + Td s Ko To /1.5 To /6

Se desea controlar el sistema nivel del ejemplo 5.9 empleando la técnica de las oscila-
ciones amortiguadas de Harriot. Para propósitos de comparación emplear los contro-
ladores ideal (PID, ecuación (5.16)), dependiente (PI D, ecuación (5.24)) y mejorado
(PI Dy, ecuación (5.29)), empleando las estructuras (b) y (c) de la Fig. 5.25.
Solución: El primer gráfico de la Fig. 5.41 muestra la respuesta al escalón en donde
el segundo máximo de la oscilación es un cuarto del primer máximo, la cual se obtiene
empleando un controlador proporcional de ganancia GC (s) = Ko = 0.55 en la Fig.
5.25(a). Notar que la oscilación posee un perı́odo igual a To = 10 s. Con estos valores
se calculan los parámetros del controlador PID empleando la Tabla 5.7. El segundo
gráfico de la Fig. 5.41 ilustra la comparación entre las salidas controladas. Tales
resultados se obtienen ejecutando el programa harriot.m listado abajo.
% harriot.m CONTROL PID, PI_D Y PI_Dy MEDIANTE EL M ÉTODO DE HARRIOT
clear all; close all; clc;
s=tf(’s’); GH=10/(s+1); GT=3.15/(30*s+1); GF=1/(s^2/9+s/3+1);
[num,den]=pade(1,3); Gtau=tf(num,den); % TIEMPO MUERTO exp(-tau*s)
Gp=GH*Gtau*GT; % Gp: PROCESO, GH: FLOTADOR
Ko=0.55; G_c0=feedback(Ko*Gp,GF); subplot(211); step(G_c0,’k’,20); grid
title(’OSCILACIÓN SOSTENIDA’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);
To=10; Kc = Ko; Ti=To/1.5; Td=To/6; N=10; % PAR ÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,GF); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,GF); % CONTR PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Kc*Td*s/(1+Td*s/N); Gcd=feedback(Gp,Gcd);
PI_Dy=feedback(Gci*Gcd,GF); % CONTROL PI_Dy
subplot(212); step(PID,’k’,PI_D,’k’,PI_Dy,’k’); xlabel(’TIEMPO’); grid
title(’SALIDAS CONTROLADAS’); ylabel(’SALIDA’); print -deps -f harriot

Ejemplo 5.18

Se desea controlar un sistema no autoregulado que posee la siguiente FT, empleando


la técnica de las oscilaciones amortiguadas de Harriot.
1
Gp (s) =
s(s + 1)4

Para propósitos de comparación emplear los controladores ideal (PID, ecuación (5.16)),
dependiente (PI D, ecuación (5.24)) y mejorado (PI Dy, ecuación (5.29)), emplean-
do las estructuras (b) y (c) de la Fig. 5.25.
102 Control PID SISO

OSCILACIÓN SOSTENIDA

1.5

1
AMPLITUD

A
0.5
A/4
0

−0.5
0 2 4 6 8 10 12 14 16 18 20
TIEMPO (sec)

SALIDAS CONTROLADAS

2
PI__Dy
SALIDA

0 PID PI__D

−1
0 5 10 15 20 25 30 35
TIEMPO (sec)

Fig. 5.41: Oscilaciones amortiguadas (gráfico superior) para K c = Ko y respuestas


controladas (gráfico inferior) para el ejemplo 5.17.

Solución: El primer gráfico de la Fig. 5.34 muestra la respuesta al escalón a manera


de una oscilación sostenida que se obtiene empleando un controlador proporcional de
ganancia GC (s) = Kcrit = 0.569. Notar que la oscilación posee un perı́odo igual a τcrit
= 15 s. Con estos valores se calculan los parámetros del controlador PID empleando
la Tabla 5.6. El segundo gráfico de la Fig. 5.34 ilustra la comparación entre las salidas
controladas. Tales resultados se obtienen ejecutando el programa zn2.m listado abajo.

% harriota.m CONTROL PID, PI_D Y PI_Dy MEDIANTE OSCILACI ÓN AMORTIGUADA


clear all; close all; clc;
s=tf(’s’); Gp=1/(s*(s+1)^4);
Ko=0.3; G_c0=feedback(Ko*Gp,1); subplot(211); step(G_c0,50);
grid; title(’OSCILACIÓN AMORTIGUADA’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);
To=20; % TOMADO DE LA OSCILACIÓN AMORTIGUADA
Kc=Ko; Ti=To/1.5; Td=To/6; N=10; % PARÁMETROS PID
Gc1=Kc*(1+1/Ti/s+Td*s); PID=feedback(Gp*Gc1,1); % CONTROL PID
Gc2=Kc*(1+1/Ti/s+Td*s/(1+Td*s/N)); PI_D=feedback(Gp*Gc2,1); % CONTROL PI_D
Gci=Kc*(1+1/Ti/s); Gcd=Kc*Td*s/(1+Td*s/N); Gcd=feedback(Gp,Gcd);
PI_Dy=feedback(Gci*Gcd,1); % CONTROL PI_Dy
subplot(212); step(PID,’k’,PI_D,’k’,PI_Dy,’k’); title(’SALIDAS CONTROLADAS’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f harriota
5.6 Métodos de Sintonización de Controladores PID 103

OSCILACIÓN AMORTIGUADA

1.5
AMPLITUD

1
A
0.5
A/4

0
0 5 10 15 20 25 30 35 40 45 50
TIEMPO (sec)

SALIDAS CONTROLADAS

1.5
SALIDA

PID
PI−D
0.5

0
0 10 20 30 40 50 60
TIEMPO (sec)

Fig. 5.42: Oscilaciones sostenidas (gráfico superior) para KC = Ko y respuestas con-


troladas (gráfico inferior) para el ejemplo 5.18.

5.6.3. Métodos Basados en la Minimización de un Índice


La Fig. 5.43 muestra un sistema de control SISO realimentado, donde e(s) =
r(s)−y(s) es el error del sistema, r(s) la señal deseada o SP e y(s) la salida controlada
o PV. Además, G(s) es una FT que incluye el controlador, el EFC y el proceso,
mientras que H(s) comprende el sensor y el transmisor. De la Fig. 5.43 se deduce:

1
e(s) = r(s)−y(s) = r(s)−H(s)G(s)e(s); e(s) = r(s); e(t) = L−1 [e(s)]
1 + GH(s)
(5.36)
La idea principal en los métodos de sintonización basados en criterios óptimos, con-

r(s) e(s) y(s)


G(s)

H(s)

Fig. 5.43: Sistema de control SISO realimentado.

siste en minimizar un determinado ı́ndice de rendimiento, en el cual estén involucrados


104 Control PID SISO

tanto el tiempo continuo t como el error e(t). Los ı́ndices de rendimiento más usados
son: ISE (Integral Squared Error), IAE (Integral Absolute Error), IT AE (Integral
Time Absolute Error), IST E (Integral Square Time weighted Error) e IST 2 E (In-
tegral Square Time–Square weighted Error). Las fórmulas de dichos ı́ndices son:
Z ∞ Z ∞ Z ∞
2
ISE = e (t)dt IAE = |e(t)|dt IT AE = t|e(t)|dt
0 0 0
Z ∞ Z ∞
IST E = t2 e(t)dt IST 2 E = t2 e2 (t)dt (5.37)
0 0
donde el error e(t) puede ser de la forma dada en (5.36). Una vez formulado el ı́ndice
de rendimiento, por ejemplo ISE, el siguiente paso consiste en minimizar dicho ı́ndice:
∂ISE
=0
∂z
donde z puede ser una determinada variable o parámetro del cual se desea deter-
minar su valor extremo; por ejemplo, el parámetro Ti de un controlador PID. A
continuación se presentan algunas reglas de sintonización basados en diversos ı́ndices
de rendimiento.

Método de Shinskey
Las reglas de sintonización de la Tabla 5.8, atribuidas Shinskey (control I y PI) y
Nomura et al. (control PID), se aplican a procesos que poseen una FT de la forma:
Gp (s) = Kp e−τ s . El control se realiza empleando la configuración de la Fig. 5.1(a).
Los trabajos de Shinskey Nomura et al. se encuentran en las referencias de [29].

Tabla 5.8: Reglas de sintonı́a para controlar sistemas tipo Gp (s) = Kp e−τ s .

Método Controlador Gc (s) Kc Ti Td


1
Mı́nimo ITAE Ti s Indefinido 1.6Kp τ 0
 
0.4
Mı́nimo ITAE Kc 1 + T1i s Kp 0.5τ 0
 
0.2635
Mı́nimo ITAE Kc 1 + T1i s + Td s Kp 0.361τ 0.1911τ

Ejemplo 5.19

Se desea controlar el sistema con FT Gp (s) = Kp e−τ s , con Kp = 2 y τ = 2 usando el


criterio ITAE y un controlador PI.
Solución: La Fig. 5.44 muestra la respuesta controlada, resultado que se obtienen
ejecutando el programa shinskey.m listado abajo.
% shinskey.m CONTROL PI USANDO ITAE
clear all; close all; clc;
s=tf(’s’); Kp=2; tau=2;
5.6 Métodos de Sintonización de Controladores PID 105

CONTROL DE G(s)=Kp*exp(−tau*s) USANDO ITAE

1.2

0.8

0.6

0.4
SALIDA

0.2

−0.2

−0.4

−0.6

−0.8
0 5 10 15
TIEMPO (sec)

Fig. 5.44: Control PI del sistema Gp (s) = Kp e−τ s usando ITAE (ejemplo 5.19).

[num,den]=pade(tau,3); Gtau=tf(num,den); % TIEMPO MUERTO: exp(-tau*s)


Gp=Kp*Gtau; % Gp: SISTEMA
Kc=0.4/Kp; Ti=0.5*tau; Td=0; % PARÁMETROS PID
Gc=Kc*(1+1/(Ti*s)+Td*s); PID=feedback(Gc*Gp,1); % CONTROL PID
step(PID); title(’CONTROL DE G(s)=Kp*exp(-tau*s) USANDO ITAE’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f shinskey

Método de Wang–Juang–Chan
Las fórmulas de sintonización de de Wang–Juang–Chan (citadas en [24]) se basan
en el criterio de optimización de IT AE y se pueden aplicar a sistemas que aceptan
un modelo dinámico como el de la ecuación (5.32). Estas fórmulas son:

(0.7303 + 0.5307T /τ )(T + 0.5τ )


Kc =
Kp (T + τ )
Ti = T + 0.5τ
0.5τ T
Td = (5.38)
T + 0.5τ

Metodo de Zhuang y Atherton


El método de Zhuang y Atherton [26] minimiza los criterios ISE, IST E e IST 2 E
empleando controladores PI y PID ideales. La Tabla 5.9 muestra las fórmulas de
sintonización que se pueden aplicadar a procesos que aceptan un modelo dinámico
106 Control PID SISO

como el de la ecuación (5.32) y que estén sujetos a cambios tipo escalón en la señal
de referencia del sistema de control, tal como se muestra en la Fig. 5.1(a).

Tabla 5.9: Método de Zhuang y Atherton para determinar Kc , Ti y Td en un contro-


lador ideal.
Rango de τ /T 0.1< τ /T <1 1.1< τ /T <2

Tipo Parámetro ISE ISTE IST2 E ISE ISTE IST2 E

a1

τ b1
PI Kc = Kp T a1 0.980 0.712 0.569 1.072 0.786 0.628
b1 –0.892 –0.921 –0.951 –0.560 –0.559 –0.583
T
PI Ti = a2 +b2 (τ /T ) a2 0.690 0.968 1.023 0.648 0.883 1.007
b2 –0.155 –0.247 –0.179 –0.114 –0.158 –0.167

a1

τ b1
PID Kc = Kp T a1 1.048 1.042 0.968 1.154 1.142 1.061
b1 –0.897 –0.897 –0.904 –0.567 –0.579 –0.583
T
PID Ti = a2 +b2 (τ /T ) a2 1.195 0.987 0.977 1.047 0.919 0.892
b2 –0.386 –0.238 –0.253 –0.220 –0.172 –0.165

τ b3
PID Td = a3 T T a3 0.489 0.385 0.316 0.490 0.384 0.315
b3 0.888 0.906 0.892 0.708 0.839 0.832

Por otro lado, si prescindimos de la ganancia Kc de la parte derivativa del con-


trolador PID mejorado dado en (5.29), el algoritmo de control toma la forma:
Kc Td s
u(s) = Kc e(s) + e(s) − y(s) = P (s) + I(s) + D(s) (5.39)
Ti s 1 + Td s/N
La Tabla 5.10 muestra las reglas de sintonización para el controlador descrito en
(5.49). Tales reglas se pueden aplicar a procesos que aceptan un modelo dinámico
como el de la ecuación (5.32) y que estén sujetos a cambios tipo escalón en la señal
de referencia del sistema de control (ver Fig. 5.1(a)).
Ejemplo 5.20
K
p
Se desea controlar el sistema con FT: Gp (s) = T s+1 e−τ s , donde Kp = 2, τ = 2 y
T = 20. Emplear el criterio ISE, un controlador PID y las reglas de la Tabla 5.9.
Solución: La Fig. 5.45 muestra la respuesta controlada, resultado que se obtienen
ejecutando el programa zh1.m listado abajo.
% zh1.m CONTROL PID USANDO ISE
clear all; close all; clc; s=tf(’s’); Kp=2; tau=2; T=20; % tau/T=0.1
a1=1.048; b1=-0.897; a2=1.195; b2=-0.386; a3=0.489; b3=0.888; N=10;
[num,den]=pade(tau,3); Gtau=tf(num,den); % TIEMPO MUERTO: exp(-tau*s)
Gp=Kp/(T*s+1)*Gtau; % PROCESO A CONTROLAR
Kc=(a1/Kp)*(tau/T)^b1; Ti=T/(a2+b2*(tau/T)); Td=(a3*T)*(tau/T)^b3;
Gc=Kc*(1+1/(Ti*s)+Td*s); PID=feedback(Gc*Gp,1); % CONTROL PID
step(PID,’k’); title(’CONTROL PID USANDO ISE’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f zh1
5.6 Métodos de Sintonización de Controladores PID 107

Tabla 5.10: Método de Zhuang y Atherton para determinar Kc , Ti y Td en un con-


trolador cuya acción derivativa se encuentra en la realimentación.

Rango de τ /T 0.1< τ /T <1 1.1< τ /T <2

Tipo Parámetro ISE ISTE IST2 E ISE ISTE IST2 E

a1

τ b1
PID Kc = Kp T a1 1.260 1.053 0.942 1.295 1.120 1.001
b1 –0.887 –0.930 –0.933 –0.619 –0.625 –0.624
T
PID Ti = a2 +b2 (τ /T ) a2 0.701 0.736 0.770 0.661 0.720 0.754
b2 –0.147 –0.126 –0.130 –0.110 –0.114 –0.116

τ b3
PID Td = a3 T T a3 0.375 0.349 0.308 0.378 0.350 0.308
b3 0.886 0.907 0.897 0.756 0.811 0.813

CONTROL PID USANDO ISE

1.5

0.5
SALIDA

−0.5

−1

−1.5
0 5 10 15 20 25 30 35 40
TIEMPO (sec)

Kp
Fig. 5.45: Control PID del sistema Gp (s) = T s+1 e−τ s usando ISE (ejemplo 5.20).

Método de Kessler
La Tabla 5.11 muestra las fórmulas propuestas por C. Kessler [25] para determinar
los parámetros de un controlador PID basado en criterios óptimos de diseño.

Ejemplo 5.21
108 Control PID SISO

Tabla 5.11: Método de Kessler para hallar los parámetros K c , Ti y Td .

Sistema Gp (s) Tipo Controlador Gc (s) Kc Ti Td


 
K T1
(1+T1 s)
Qp PI Kc 1 + T1I s 2Kp Tσ 4Tσ
µ (1+tµ s)
Tσ = Σµ tµ ; T1 > 4Tσ
 
Kp Q 1 T1
(1+T1 s)(1+T2 s) µ (1+tµ s) PID Kc 1 + Ti s (1 + Td s) 2Kp Tσ 4Tσ T2
Tσ = Σµ tµ ; T1 > 4Tσ
T1 > T 2 > T σ
 
Q Kp PI Kc 1 + 1 1
4Tσ
s µ (1+tµ s) Ti s 2Kp Tσ
Tσ = Σ µ t µ
 
K
Qp 1 1
s(1+T2 s) µ (1+tµ s) PID Kc 1 + Ti s (1 + Td s) 2Kp Tσ 4Tσ T2
Tσ = Σ µ t µ ; T 2 > T σ

La dinámica simplificada de un avión–helicóptero se puede representar mediante la


siguiente FT:
1
Gp(s) =
(1 + 20s)(1 + 10s)(1 + 0,5s)
Controlar dicho sistema empleando el método de Kessler.

Solución: La FT del sistema, que es de tercer orden, se puede formular como:

Kp
Gp(s) = Q
(1 + T1 s)(1 + T2 s) µ (1 + tµ s)

donde: Kp = 1, T1 = 20, T2 = 10, µ = 1, tµ = t1 = Tσ = 0.25, y, T1 > 4Tσ ,


T1 > T2 > Tσ . Este proceso se puede estabilizar con un controlador PID, tal como se
observa en la Fig. 5.46, resultado que se obtiene ejecutando el programa kessler2.m
listado abajo.

% kessler2.m CONTROL PID EMPLEANDO EL MÉTODO DE KESSLER


clear all; close all; clc;
Kp=1; T1=20; T2=10; mu=1; tmu=0.5; Tsigma=tmu; s=tf(’s’);
Gp=Kp/(1+T1*s)/(1+T2*s)/(1+tmu*s); % PROCESO
subplot(211); step(Gp); grid;
title(’RESPUESTA AL ESCALÓN’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);
KC=T1/(2*Kp*Tsigma); TI=4*Tsigma; TD=T2;
Gc=KC*(1+1/TI/s)*(1+TD*s); PID=feedback(Gp*Gc,1); % CONTROL PID
subplot(212); step(PID); grid;
title(’SALIDA CONTROLADA’); xlabel(’TIEMPO’); ylabel(’SALIDA’);
print -deps -f kessler2

Ejemplo 5.22
5.6 Métodos de Sintonización de Controladores PID 109

RESPUESTA AL ESCALÓN

0.8
AMPLITUD

0.6

0.4

0.2

0
0 20 40 60 80 100 120 140 160 180
TIEMPO (sec)

SALIDA CONTROLADA

1.5

1
SALIDA

0.5

0
0 2 4 6 8 10 12
TIEMPO (sec)

Fig. 5.46: Respuesta al escalón (gráfico superior) y respuesta controlada (gráfico in-
ferior) empleando un controlador PID de acuerdo al método de Kessler.

Se desea controlar un sistema posicionador empleando el método de Kessler, sabiendo


que su FT es:
1
Gp(s) =
s(1 + s)(5 + s)

Solución: La FT del sistema se puede reformular como:

0,2 Kp
Gp(s) = = Q
s(1 + s)(1 + 0,2s) s(1 + T2 s) µ (1 + tµ s)

Este sistema, de acuerdo a Kessler, es del tipo PITn con parámetros Kp = 0.2, T2 = 1,
µ = 1, tµ = t1 = Tσ = 0.2, y T2 > Tσ , se puede estabilizar con un controlador PID, tal
como se observa en la Fig. 5.47 (gráfico inferior), resultado que se obtiene ejecutando
el programa kessler1.m listado abajo. Notar que este sistema es no autoregulado, tal
como se observa en gráfico inferior de la Fig. 5.47.
% kessler1.m CONTROL PID EMPLEANDO EL MÉTODO DE KESSLER
clear all; close all; clc;
Kp=0.2; T2=1; mu=1; tmu=0.2; Tsigma=tmu; s=tf(’s’);
Gp=Kp/s/(1+T2*s)/(1+tmu*s); % PROCESO
subplot(211); step(Gp); grid;
110 Control PID SISO

RESPUESTA AL ESCALÓN

300

250
AMPLITUD

200

150

100

50

0
0 500 1000 1500
TIEMPO (sec)

SALIDA CONTROLADA

1.5

1
SALIDA

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
TIEMPO (sec)

Fig. 5.47: Respuesta al escalón (gráfico superior) y respuesta controlada (gráfico in-
ferior) empleando un controlador PID de acuerdo al método de Kessler.

title(’RESPUESTA AL ESCALÓN’); xlabel(’TIEMPO’); ylabel(’AMPLITUD’);


KC=1/(2*Kp*Tsigma); TI=4*Tsigma; TD=T2;
Gc=KC*(1+1/TI/s)*(1+TD*s); PID=feedback(Gp*Gc,1); % CONTROL PID
subplot(212); step(PID); grid;
title(’SALIDA CONTROLADA’); xlabel(’TIEMPO’); ylabel(’SALIDA’);
print -deps -f kessler1

Kp
Método de Xue para Procesos con FT: s
e−τ s
El método de Xue se aplica a procesos que poseen una FT con parte proporcional,
parte integral y tiempo muerto:

Y (s) Kp −τ s
G(s) = = e (5.40)
U (s) s

Debido a la presencia del integrador, los controladores PD y PID resultan ser los
adecuados para controlar tales sistemas. La Tabla 5.12 muestra los valores de los
coeficientes empleados por los parámetros de los controladores PD y PID [27]:
a1
ControladorP D : Kc = Td = a 2 τ
Kp τ
5.6 Métodos de Sintonización de Controladores PID 111

a3
ControladorP ID : Kc = Ti = a 4 τ Td = a 5 τ (5.41)
Kp τ

Tabla 5.12: Parámetros ai para calcular Kc , Ti y Td para el control de sistemas tipo


IPτ (ecuación (5.41)).

Criterio a1 a2 a3 a4 a5
ISE 1.03 0.49 1.37 1.496 0.59
ITSE 0.96 0.45 1.36 1.66 0.53
ISTSE 0.9 0.45 1.34 1.83 0.49

Ejemplo 5.23
Kp
Se desea controlar el sistema con FT Gp (s) = s e−τ s , con Kp = 2, T = 20 y τ = 2
usando el criterio ISE y un controlador PID.
Solución: La Fig. 5.48 muestra la respuesta controlada, resultado que se obtienen
ejecutando el programa zh2.m listado abajo.

CONTROL PID USANDO ISE

0
SALIDA

−1

−2

−3

−4

−5
0 5 10 15 20 25 30 35
TIEMPO (sec)

Kp
Fig. 5.48: Control PID del sistema Gp (s) = s e−τ s (ejemplo 5.23).

% zh2.m CONTROL PID USANDO ISE


112 Control PID SISO

clear all; close all; clc; s=tf(’s’); Kp=2; tau=2; T=20; % tau/T=0.1
a1=1.03; a2=0.49; a3=1.37; a4=1.496; a5=0.59; N=10;
[num,den]=pade(tau,3); Gtau=tf(num,den); % TIEMPO MUERTO: exp(-tau*s)
Gp=Kp/(s)*Gtau; % SISTEMA A CONTROLAR
Kc=a3/(Kp*tau); Ti=a4*tau; Td=a5*tau;
Gc=Kc*(1+1/(Ti*s)+Td*s); PID=feedback(Gc*Gp,1); % CONTROL PID
step(PID,’k’); title(’CONTROL PID USANDO ISE’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f zh2

Kp
Método de Xue para Procesos con FT: s(T s+1)
e−τ s
La FT del siguiente sistema posee parte proporcional, parte integral, parte retardo
de primer orden y tiempo muerto:
y(s) Kp
G(s) = = e−τ s (5.42)
u(s) s(T s + 1)
Debido a la presencia del integrador, los controladores PD y PID resultan los ade-
cuados para controlar tales sistemas. Las fórmulas para determinar los parámetros
del controlador PD son [27]:
2
Kc = Td = T τ (5.43)
3Kp τ
mientras que para el controlador PID, se tiene:
"  0.65 #
1.111T 1 T Ti
Kc = h  i2 Ti = 2τ 1 + Td = (5.44)
Kp τ 2 0.65 τ 4
1 + Tτ

Ejemplo 5.24
Kp
Se desea controlar el sistema con FT Gp (s) = s(T s+1) e−τ s , con Kp = 2, T = 2 y τ =
2.
Solución: La Fig. 5.49 muestra la respuesta controlada, resultado que se obtienen
ejecutando el programa zh3.m listado abajo.
% zh3.m CONTROL PID
clear all; close all; clc; s=tf(’s’); Kp=2; tau=2; T=2;
[num,den]=pade(tau,3); Gtau=tf(num,den); % TIEMPO MUERTO: exp(-tau*s)
Gp=Kp/(s*(T*s+1))*Gtau; % SISTEMA A CONTROLAR
Kc=1.111*T/(Kp*tau^2)/(1+(T/tau^(0.65)))^2; Ti=2*tau*(1+(T/tau)^(0.65));
Td=Ti/4;
Gc=Kc*(1+1/(Ti*s)+Td*s); PID=feedback(Gc*Gp,1); % CONTROL PID
step(PID,’k’); title(’CONTROL PID’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f zh3

Kp
Método de Xue para Procesos con FT: T s−1
e−τ s
La FT del siguiente sistema posee parte proporcional, parte integral, parte retardo
de primer orden inestable y tiempo muerto:
y(s) Kp
G(s) = = e−τ s (5.45)
u(s) Ts − 1
5.6 Métodos de Sintonización de Controladores PID 113

CONTROL PID

1.6

1.4

1.2

1
SALIDA

0.8

0.6

0.4

0.2

−0.2
0 50 100 150
TIEMPO (sec)

Kp
Fig. 5.49: Control PID del sistema Gp (s) = s(T s+1) e−τ s usando ISE (ejemplo 5.24).

Debido a la presencia del integrador y a la raı́z inestable s = 1/T , el controlador


PID parece ser el más adecuado para controlar tales sistemas. Las fórmulas para
determinar los parámetros del controlador PID son [27]:
  τ −0.02   τ γ
a 1  τ  b1  τ  b2
Kc = Ti = a 2 T Td = a 3 T 1 − b 3
Kp T T T T
(5.46)
Los parámetros ai , bi y γ se pueden obtener de la Tabla 5.13 para diferentes criterios.

Tabla 5.13: Parámetros ai para calcular Kc , Ti y Td para el control de sistemas tipo


IPT1 τ inestables (ecuación (5.45)).

Criterio a1 b1 a2 b2 a3 b3 γ
ISE 1.32 0.92 4.00 0.47 3.78 0.84 0.95
ITSE 1.38 0.90 4.12 0.90 3.62 0.85 0.93
ISTSE 1.35 0.95 4.52 1.13 3.70 0.86 0.97

Ejemplo 5.25
Kp
Se desea controlar el sistema con FT Gp (s) = T s−1 e−τ s , con Kp = 2, T = 2 y τ = 2.
114 Control PID SISO

Solución: La Fig. 5.49 muestra la respuesta controlada, resultado que se obtienen


ejecutando el programa zh3.m listado abajo.

CONTROL PI−D USANDO ISTSE

3
SALIDA

−1

−2

−3
0 10 20 30 40 50 60 70
TIEMPO (sec)

Kp
Fig. 5.50: Control PI-D del sistema Gp (s) = s−1 e−τ s usando ISTSE (ejemplo 5.25).

% zh4.m CONTROL PI-D USANDO ISTSE


clear all; close all; clc; s=tf(’s’); Kp=2; tau=2; T=2; N=10;
a1=1.35; b1=0.95; a2=4.52; b2=1.13; a3=3.7; b3=0.86; gamma=0.97;
[num,den]=pade(tau,3); Gtau=tf(num,den); % TIEMPO MUERTO: exp(-tau*s)
Gp=Kp/(T*s-1)*Gtau; % SISTEMA A CONTROLAR
Kc=(a1/Kp)*(tau/T)^b1; Ti=a2*T*(tau/T)^b2;
Td=a3*T*(1-b3*(tau/T)^(-0.02))*(tau/T)^gamma;
Gc=Kc*(1+1/(Ti*s)+Td*s/(1+Td*s/N)); PI_D=feedback(Gc*Gp,1);% CONTROL PI-D
step(PI_D,’k’); title(’CONTROL PI_D USANDO ISTSE’);
xlabel(’TIEMPO’); ylabel(’SALIDA’); print -deps -f zh4

5.7. El Efecto Windup


En toda implementación práctica, la señal de salida del controlador debe de estar
limitada por dos razones. La primera es que su magnitud no debe de exceder el rango
permitido por el sistema de adquisición de datos, y la segunda razón es que su valor
no debe de exceder el rango permitido por el actuador. Por estas razones es que
debemos de introducir un limitador a la salida del controlador. Lamentablemente
este limitador, el cual es un elemento no lineal, es el causante del efecto denominado
en inglés windup (saturación), el cual se explica a continuación.
5.7 El Efecto Windup 115

La Fig. 5.51 muestra el diagrama en Simulink empleado para explicar el efecto


windup. Ejecutando primero el programa windup.mdl y luego el programa windup-
graf.m se obtiene la Fig. 5.52, en donde se observa que cuando ocurre un cambio
tipo escalón en la señal de referencia r(t) (primer gráfico), la señal de error positiva
inicial (1 − y(t)) se hace bastante grande, provocando que la señal de control u(t)
(segundo gráfico) alcance rápidamente el valor lı́mite de saturación u m . A pesar de
que la señal de salida y(t) iguala al valor de referencia en el tiempo t1 , lo cual genera
una señal de error (1 − y(t)) negativa debido al valor grande de la señal y i en la salida
del integrador, la señal de control u(t) permanece en el valor de saturación máximo
um . Esto causa que la salida y(t) se incremente continuamente hasta que se alcance
el tiempo t2 , y la acción negativa de la señal de error comience a tener efecto.
Observar en el primer gráfico de la Fig. 5.52 que el efecto windup provoca un
aumento del sobreimpulso y del tiempo de estabilización en la señal controlada y(t).
Por otro, si el algoritmo PID empleado es del tipo discreto, el fenómeno windup
no es tan notorio, aún cuando la señal de control esté limitada, debido a que el
algoritmo discreto no emplea la suma de los errores para generar el término integral
del controlador. Lo que se emplea es el cálculo recursivo como veremos más adelante.

windup .mdl ILUSTRA EL EFECTO WINDUP

yi
u Scope
y
Step =1 yi
u
1 10
5
1.12s yi u s4 +10s3 +35s2 +50s+24
Kc=5 Ti =1.12 um =3.5
Transfer Fcn
y
t
Clock y
t

Fig. 5.51: Diagrama Simulink para explicar el efecto windup.

Existen diversos métodos para eliminar en gran medida el efecto windup en sis-
temas de control que emplean controladores PID continuos. Uno de estos métodos
se muestra en el diagrama Simulink de la Fig. 5.53, el cual muestra un controlador
PID con mecanismo anti windup. Los parámetros del controlador son los usuales:
tiempo integral Ti , tiempo derivativo Td y ganancia proporcional Kc . La salida y(t)
del sistema controlado y la correspondiente fuerza de control u(t) se muestran en la
Fig. 5.54, las cuales se obtienen ejecutando primero el programa antiwindup.mdl y
luego el programa antiwindupgraf.m.
Por otra parte, cuando el controlador conmuta de manual a automático, el valor
de la señal de control u(t) puede cambiar de un valor a otro, no importando que la
señal de error e sea cero. Este salto debe de evitarse y en este caso se dice que la
conmutación de manual a automático debe de ser bumpless (sin saltos). Para lograr
116 Control PID SISO

EFECTO WIND UP
2

SALIDA y(t)
t1
1

0
0 2 4 6 8 10
TIEMPO [s]
4
CONTROL u(t)

t2
2

0
0 2 4 6 8 10
TIEMPO [s]
INTEGRADOR yi(t)

10

0
0 2 4 6 8 10
TIEMPO [s]

Fig. 5.52: Gráficos para explicar el efecto windup.

1/1.2 tt
rr
REF. Clock tt
rr GANANCIA 1/Ti
1
1/1.2 Scope
s uu

1/Ti INTEGRADOR uu

10
1.3
s4 +10s3 +35s2 +50s+24
Kc SATURACIÓN
SISTEMA A CONTROLAR

1 yy
0.1 du/dt
0.5s+1 yy
FILTRO Td DERIVADOR antiwindup .m CONTROLADOR PID CON MECANISMO
ANTI WINDUP. EL FILTRO SE PUEDE SELECCIONAR
A VOLUNTAD.

Fig. 5.53: Diagrama Simulink que muestra un controlador PID con mecanismo anti
windup.

conmutación sin saltos, el algoritmo de control debe de ejecutarse siempre, aún en el


caso en que la operación del sistema de control se encuentre en modo manual. Esta
corrección se puede realizar en el correspondiente programa en tiempo real.
5.8 El Algoritmo PID Discreto Modificado 117

CONTROLADOR PID CON MECAISMO ANTI WINDUP


1.4

1.2

1
SALIDA y(t)

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
TIEMPO [s]

2.5
CONTROL u(t)

1.5

1
0 1 2 3 4 5 6 7 8 9 10
TIEMPO [s]

Fig. 5.54: Salida controlada y señal de control correspondiente a la Fig. 5.53.

5.8. El Algoritmo PID Discreto Modificado


La forma estándar del algoritmo PID mostrado en (5.15) se puede modificar
introduciendo ciertas caracterı́sticas con la finalidad de que su rendimiento mejore
sustancialmente. Por ejemplo, no podemos evitar la ocurrencia fortuita de cambios
bruscos del error e, los cuales pueden incrementar el término derivativo:

de(t) d
= (r(t) − y(t))
dt dt
Este fenómeno es conocido en inglés como derivative kick (puntapié derivativo) y
su efecto se puede apaciguar si es que utilizamos como señal de entrada únicamente
la señal realimentada y en lugar de e. De esta forma, (5.15) con de(t) dy(t)
dt = − dt se
convierte en:  Z 
1 dy
u = Kc e + edt − Td
Ti dt
Otra modificación importante es filtrar la acción derivativa del controlador PID origi-
nal mediante un filtro de primer (o segundo) orden para disminuir el ruido derivativo.
Esta caracterı́stica limita la amplificación del ruido de medición de alta frecuencia
en la salida del controlador. La señal de control será ası́ menos ruidosa y la ganancia
en alta frecuencia permanecerá dentro de cotas apropiadas. Un término derivativo
práctico, ya que un derivador puro no es realizable, puede aproximarse mediante un
término de primer orden que posee una constante de tiempo Tf , el cual a menudo se
118 Control PID SISO

normaliza con respecto al tiempo derivativo Td . Por consiguiente, el derivador puro


del algoritmo PID se modifica como sigue:
Td s Td
Td s  Tf =
1 + Tf s N
donde N es una constante que varı́a de 3 a 10 y es conocida como la cota de la
ganancia derivativa. Luego, el algoritmo PID toma la forma:
Kc K c Td s
u(s) = Kc e(s) + e(s) − y(s) = P (s) + I(s) + D(s) (5.47)
Ti s 1 + Tf s
Kc K c Td s Td
P (s) = Kc e(s) I(s) = e(s) D(s) = − y(s) Tf =
Ti s 1 + Tf s N
Los términos P , I y D representan las partes proporcional, integral y derivativa del
controlador PID modificado, respectivamente.
Sea k el tiempo discreto, el cual está relacionado con el tiempo continuo t mediante
la relación t = T k, donde T es el tiempo de muestreo o discretización. La parte
proporcional P = Kc e(s) de (5.47) se discretiza directamente, obteniéndose:

P = Kc e(k) (5.48)
Rt
Para la parte integral I(s) = TKics e(s), o lo que es lo mismo: I(t) = Kc
Ti 0 e(t)dt
empleamos la aproximación trapezoidal (ver ejemplo A.46):
k k−1
Kc X [e(i) + e(i − 1)] Kc X [e(i) + e(i − 1)] Kc T [e(k) + e(k − 1)]
I(k) = T = T +
Ti 2 Ti 2 Ti 2
i=1 i=1
Kc T
I(k) = I(k − 1) + [e(k) + e(k − 1)] (5.49)
2Ti
Kc T d s
La parte derivativa D(s) = − 1+T f s
y(s) se puede escribir como:

(1 + Tf s)D(s) = −Kc Td s y(s)

D(t) + Tf Ḋ(t) = −Kc Td ẏ(t)


y aproximando las derivadas Ḋ(t) e ẏ(t) por atraso (desplazamiento de k hacia (k−1)),
se obtiene:
   
D(k) − D(k − 1) y(k) − y(k − 1)
D(k) + Tf = −Kc Td
T T
Despejando D(k), la parte derivativa discreta queda entonces como:
Td Td
D(k) = {D(k − 1) − Kc N [y(k) − y(k − 1)]} Tf = (5.50)
N T + Td N
El algoritmo PID discreto usado en las implementaciones en tiempo real resulta:

u(k) = P (k) + I(k) + D(k) (5.51)


donde P (k), I(k) D(k) se dan en (5.48), (5.49) y (5.50) respectivamente. También
se debe de incluir el efecto del limitador, basado en un modelo con presencia de
saturación con valores máximo y mı́nimo umax y ulow respectivamente:
5.8 El Algoritmo PID Discreto Modificado 119

v = P + I + D;
if(v < ulow), u = ulow; elseif(v > uhigh), u = uhigh; else u = v;

Si el tiempo de muestreo Ts es suficientemente pequeño, entonces se pueden usar las


reglas de sintonı́a para sistemas continuos discutidas anteriormente. Sin embargo, a
pesar de que no son tan usadas como en el caso continuo, existen reglas de sintonı́a
para el caso discreto, tal como las mostradas en las Tablas 5.14 y 5.15. Estas tablas
K
emplean la FT Gp (s) = 1+Tp s e−τ s del sistema y no son válidas si τ /Ts ≈ 0 ni se
deben de aplicar si τ /Ts < 1/4, donde Ts es el tiempo de muestreo.

Tabla 5.14: Método de la curva de reacción para determinar los parámetros PID. K c ,
Ki y Kd .

100
Tipo Controlador Gc (s) Kc = BP Ki = Kc /Ti K d = K c Td
1 T
P Kc Kp τ +Ts 0 0
Ki 0.9 T 0.27 Ts T
PI Kc + s Kp τ +0.5Ts − 0.5Ki Kp (τ +0.5Ts )2 0
Ki 1.2 T 0.6 Ts T 0.5 T
PID Kc + s + Kd s Kp τ +Ts − 0.5Ki Kp (τ +0.5Ts )2 Kp T s

Tabla 5.15: Método de las oscilaciones sostenidas para hallar los parámetros K C , TI
y TD .

100
Tipo Controlador Gc (s) Kc = BP Ki = Kc /Ti K d = K c Td
P KC 0.5Kcrit ∞ 0
Ki
PI Kc + s 0.45 Kcrit − 0.5Ki 0,54 K crit
Tcrit 0
Ki
PID Kc + s + Kd s 0.6 Kcrit − 0,5Ki 1.2 K crit
Tcrit 0.075Kcrit Tcrit
Ts

Ejemplo 5.26

Se desea controlar la posición angular x1 de un manipulador empleando un algoritmo


de control discreto PID. las ecuaciones de estado del manipulador son:

ẋ1 = x2
N B n2 KE nKact
ẋ2 = − x2 − + x2 + u
M M M Ra Ra M

Solución: En el listado del programa pidposfijo.m se describen todos los parámetros


empleados en la ecuación de estado. Ejecutando este programa se obtiene la respuesta
pedida (Fig. 5.55). Ya se han usado parámetros PID previamente determinados.
120 Control PID SISO

0.8

Posición angular (rad)


0.6

0.4

0.2

0
0 10 20 30 40 50 60 70 80 90 100

0.5

0.4
Señal de control u (V)

0.3

0.2

0.1

0
0 10 20 30 40 50 60 70 80 90 100
Tiempo [s]

Fig. 5.55: Posición angular controlada correspondinte al Ejemplo 5.26.

% pidposfijo.m CONTROL DE POSICION PID DEL MANIPULADOR MR1


clear all; close all; clc;
% PARAMETROS DEL PROCESO NO LINEAL (TABLA 3.3)
JL = 3.5e-7; bL = 1e-5; Ro = 0.01; Jm = 1.9062e-6; bm = 1.8338e-6;
g = 9.81; E = 31.035e-3; Ra = 7.38; m = 0.06377; Kact = 14.9;
K = 31.071e-3; n = 19.741; L = 4.64e-3; Lo = 0.776; Mo = 0.045;
B = n^2*bm + bL; Jeff = n^2*Jm +JL;
M = Jeff + (1/3)*m*Lo^2 + Mo*Lo^2 + (2/5)*Mo*Ro^2; N = g*Lo*(Mo+m/2);
% PERIODO DE MUESTREO Y PARAMETROS PID
T = 0.01; Nn = 10; Kp = 0.1; Ti = 0.4; Td = 0.01; Tf=Td/Nn;
% CONDICIONES INICIALES
ep = 0; x1 = 0; x1p=0; x2 = 0; Ip = 0; Dp=0;
% ******** LAZO DEL SISTEMA DE CONTROL *********
Mm = 5000; T = 0.01; Nn = 10; ulow = -5; uhigh = 5;
for k = 1:Mm
r = 1; R(k) = r; e = r - x1;
P = Kp*e; I = Ip + T*Kp*(e+ep)/(2*Ti);
D = (Td/(Nn*T + Td))*Dp - Kp*Td*Nn*(x1 - x1p)/(Nn*T + Td);
v = P + I + D;
if(v < ulow), u = ulow; elseif( v > uhigh), u = uhigh; else u = v;
end
U(k) = u;
% MODELO DE SEGUNDO ORDEN DEL SISTMA (DISCRETIZACION DIRECTA)
x1 = x1 + T*x2; Y(k) = x1;
x2 = x2 + T*( -(N/M)*x1 - (B/M + n^2*K*E/(M*Ra))*x2 + (n*K*Kact/(Ra*M))*u );
ep = e; x1p=x1; Ip=I;
end
% GRAFICOS
ejex = linspace(0,Mm*T,Mm); subplot(2,1,1)
5.8 El Algoritmo PID Discreto Modificado 121

plot(ejex,R,ejex,Y); grid; ylabel(’Posición angular (rad)’)


subplot(2,1,2); plot(ejex,U); grid; ylabel(’Se~nal de control u (V)’)
xlabel(’Tiempo [s]’); print -f -deps pidposfijo
122 Control PID SISO

5.9. Problemas
Problema 5.1

Las FTs Ga (s) hasta Gj (s) corresponden a sistemas a ser controlados. Determinar
para cada una de ellas los siguientes modelos dinámicos aproximados:

Kp −τ s Kp τ
GA (s) = e GB (s) = ; ≥ 0.104
Ts + 1 (Tn s + 1)n T

Kp τ
GC (s) = ; < 0.104
(T1 s + 1)(T2 s + 1) T

2 4 −3s + 2
Ga (s) = Gb (s) = Gc (s) =
(s + 1)3 (s + 1)5 (s + 1)3
2
s − 3s + 6 −10s + 4
Gd (s) = 2 2
Ge (s) = e−s/2
(s + 1)(s + 3s + 6)(s + s + 2) (s + 1)2 (s + 3)3
6 3 3
Gf (s) = Gg (s) = e−s Gh (s) = e−2s
(s + 1)6 (s + 1)(2s + 1) (s + 1)4
7 3s + 6
Gi (s) = e−30s Gj (s) = e−s/10
(17s + 1)(6s + 1)3 (s + 1)(4s + 1)

Problema 5.2

Realizar los controles PID, PI–D y PI-Dy de los sistemas Ga (s) al Gj (s) en el dominio
de s empleando MATLAB. Usar al menos cinco distintas reglas de sintonización para
cada sistema. El objetivo de control es que la señal controlada siga a una referencia
constante.

Problema 5.3

Realizar los controles PID, PI–D y PI–Dy de los sistemas Ga (s) al Gj (s) empleando
SIMULINK. Usar al menos una regla de sintonización, distinta de las otras, para
cada sistema. El objetivo de control es que la señal controlada siga a una referencia
constante.

Problema 5.4

Realizar los controles PID, PI–D y PI–Dy de los sistemas Ga (s) al Gj (s) en el dominio
del tiempo discreto k=t/T (T es el tiempo de muestreo) empleando MATLAB. Usar al
menos tres distintas reglas de sintonización para cada sistema. El objetivo de control
es que la señal controlada (la salida) tienda a cero en presencia de un disturbio tipo
escalón a la entrada del sistema. En esta situación, denominada rechazo al disturbio,
la señal de referencia es nula.

Problema 5.5
5.9 Problemas 123

Realizar los controles PID, PI–D y PI–Dy de los sistemas Ga (s) al Gj (s) empleando
SIMULINK. Usar al menos una regla de sintonización, distinta de las otras, para cada
sistema. El objetivo de control es que la señal controlada (la salida) tienda a cero en
presencia de un disturbio tipo escalón a la entrada del sistema. En esta situación,
denominada rechazo al disturbio, la señal de referencia es nula.

Problema 5.6

Realizar los controles PI o PID según corresponda, de los sistemas G k (s) al Gt (s)
empleando el método de Kessler.
2
Gk (s) = Q
(1 + 20s) (1 + 0.1s)3 (1 + 0.3s)3
9
Gl (s) = Q
(1 + 20s)(1 + 30s) (1 + 0.2s)4 (1 + 0.5s)2
2
Gm (s) = Q
s (1 + s)3 (1 + 2s)2
8
Gn (s) = Q
s(1 + 20s) (1 + 0.1s)3 (1 + 0.3s)3
5
Go (s) =
(1 + 0.1s)(1 + 0.2s)(1 + 30s)(1 + 0.3s)2 (1 + 0.5s)2
3
Gp (s) =
s(1 + s)(1 + 2s)(1 + 40s)(1 + 0.2s)4 (1 + 0.5s)3
6
Gq (s) =
(1 + s)(1 + 2s)(1 + 40s)(1 + 50s)(1 + 0.2s)4 (1 + 0.5s)3
8
Gr (s) =
(s + 10)(s + 9)(s + 2)
4
Gs (s) = Q 2
s (s + 3) (s + 5)(s + 6)
4
Gt (s) = Q 2
s (1 + s) (1 + 2s)(1 + 0.9s)

Problema 5.7

Para el sistema del ejemplo ??, diseñar controladores PID, PI–D y PI–Dy que cum-
plan el siguiente objetivo de control: la señal controlada x1 debe de seguir a la señal
en estado estable x1e con un porcentaje de de sobrenivel menor del 5 %, tiempo de
estabilización menor de 8 s y error en estado estable nulo. Tener en cuenta que para
la situación descrita, y1 = x1 − x1e debe de ser nulo.

Problema 5.8

Para el sistema del ejemplo ??, diseñar controladores PID, PI–D y PI–Dy que cum-
plan el siguiente objetivo de control: la señal controlada y = ω2 debe de seguir una
señal de referencia constante con un porcentaje de de sobrenivel menor del 3 %, tiem-
po de estabilización menor de 4 s y error en estado estable nulo.

Problema 5.9
124 Control PID SISO

Para el sistema del ejemplo ??, diseñar controladores PID, PI–D y PI–Dy que cum-
plan el siguiente objetivo de control: la señal controlada x1 debe de seguir una señal
de referencia constante con un porcentaje de de sobrenivel menor del 3 %, tiempo de
estabilización menor de 4 s y error en estado estable nulo.

Problema 5.10

Para el sistema de la Fig. 2.14(c), diseñar controladores PID, PI–D y PI–Dy que
cumplan el siguiente objetivo de control: la señal controlada ω debe de seguir una
señal de referencia constante con un porcentaje de de sobrenivel menor del 3 %,
tiempo de estabilización menor de 4 s y error en estado estable nulo.

Problema 5.11

Para el sistema de la Fig. ??(b), diseñar controladores PID, PI–D y PI–Dy que
cumplan el siguiente objetivo de control: la señal controlada ω debe de seguir una
señal de referencia constante con un porcentaje de de sobrenivel menor del 3 %,
tiempo de estabilización menor de 10 s y error en estado estable nulo.

Problema 5.12

Para el sistema del ejemplo ??, diseñar controladores PID, PI–D y PI–Dy que cum-
plan el siguiente objetivo de control: la señal controlada q3 debe de seguir una señal
de referencia constante con un porcentaje de de sobrenivel menor del 3 %, tiempo de
estabilización menor de 4 s y error en estado estable nulo.

Problema 5.13

Para el sistema del problema ??, diseñar controladores PID, PI–D y PI–Dy que
cumplan el siguiente objetivo de control: la señal controlada θ debe de seguir una
señal de referencia constante con un porcentaje de de sobrenivel menor del 3 %,
tiempo de estabilización menor de 4 s y error en estado estable nulo.

Problema 5.14

Para el sistema del problema ??, diseñar controladores PID, PI–D y PI–Dy que
cumplan el siguiente objetivo de control: la señal controlada iR debe de seguir una
señal de referencia constante con un porcentaje de de sobrenivel menor del 3 %,
tiempo de estabilización menor de 4 s y error en estado estable nulo.
Capı́tulo 6

Estrategias de Control

En este Capı́tulo se desarrollan y discuten diversas estrategias de control. Algunas de


ellas emplean modos de control PID en sus estructuras, tales como: control en cascada,
control de la razón, control anticipativo, control selectivo, control override, y control de
rango partido. Otras estrategias de control emplean controladores más avanzados como
son el control con autosintonización de parámetros (self–tuning regulator), el controlador
adaptativo con modelo referencial y el controlador adaptativo con reconocimiento de
patrones.

6.1. Control en Cascada


La Fig. 6.1(a) muestra un sistema que comprende un tanque cerrado, en el cual
ingresa un producto que queremos calentar a una temperatura r (el valor deseado
o SP). Para este propósito se emplea el sobrecalentador, el cual recibe la energı́a
térmica que trae consigo el flujo de agua caliente, que también pasa por la VCA
(válvula de control automática) del tipo neumática.
En este lazo de control realimentado simple, la temperatura y, medida con una
termoresistencia (representada con una T que se introduce al tanque), ingresa al
bloque transmisor T1 para ser convertida en una señal estandarizada requerida por el
controlador C, el cual se supone que es electrónico. Este controlador genera la señal
de control u, la cual se transforma gracias al bloque transmisor T 2 , en una señal
neumática estandarizada, requerida por la VCA. La Fig. 6.1(b) muestra el diagrama
de bloques del circuito de control descrito. Observar la presencia de la señal de error
e = r − y en este diagrama. De hecho, el algoritmo de control alojado en el bloque
Controlador, procesa tal señal de error e para generar la señal de control u
En muchas aplicaciones, el control en cascada es una estrategia que mejora sig-
nificativamente el rendimiento de un lazo de control realimentado simple, como el
de la Fig. 6.1(a). Para ello, se requiere crear un nuevo lazo de realimentación, tal
como se muestra en la Fig. 6.1(c), en la cual, con el primer lazo, se desea que la
temperatura y1 del producto siga a una referencia r1 , usando el controlador C1 . Con
el segundo lazo, se desea que el flujo de agua caliente y2 siga a una referencia r2
empleando el controlador C2 . Notar que la salida u1 de C1 es la señal de referencia
r2 del controlador C2 .
La Fig. 6.1(d) muestra el diagrama de bloques del sistema de control en cascada,
126 Estrategias de Control

donde P1 más P2 forman el proceso, M1 y M2 son bloques de medición, y C1 y C2 son


los controladores que procesan los errores e1 = r1 −y1 y e2 = r2 −y2 , respectivamente.
De las dos variables controladas en la Fig. 6.1(c), la temperatura y 1 del producto es
la más importante. El flujo de agua caliente y2 se emplea como una variable para
satisfacer los requerimientos de temperatura del producto.

r Controlador
y C
T1 u r y
e u
Transmisor Controlador Proceso P
T2
Producto Transmisor Medición

Agua caliente
(a) (b)
r1 u 1= r 2 r1 e1 u1 e2 u2 y2 y1
T1 C1 C1 C2 P2 P1
y1 C2
u2 T2 y2 M2
T3 u 1= r 2
Producto M1

Agua caliente
(c) (d)

Fig. 6.1: Circuito de control simple (a) y su diagrama de bloques (b). Circuito de
Control en cascada (c) y su diagrama de bloques (d).

En el control en cascada, el controlador que controla la variable controlada prin-


cipal, C1 en este caso, es conocido como controlador maestro, externo o principal.
El controlador que controla la variable controlada secundaria, C 2 en esta situación,
recibe el nombre de controlador esclavo, interno o secundario. Por lo común se pre-
fiere usar la terminologı́a primario/secundario para referirse a los lazos de control
primario y secundario controlados por los controladores primario C 1 y secundario
C2 , respectivamente. Para sistemas de control con más de dos lazos en cascada, la
extensión es automática.
La filosofı́a de diseño en un sistema de control en cascada consiste en que el lazo de
control secundario debe de ser más rápido (alrededor de cinco veces) que el primario,
lo cual es un requisito que cae por su propio peso. Esta filosofı́a de diseño se puede
generalizar para cualquier cantidad de lazos en cascada. Por ejemplo, en un sistema
con tres lazos de control en cascada, el lazo terciario debe de ser más rápido que el
secundario, y éste tiene que ser más rápido que el primario. Se sugiere el siguiente
procedimiento de diseño:
1. Determinar el modelo dinámico del proceso o planta a controlar.
2. Construir un lazo de control simple y sintonizar el controlador PID empleando
cualquier método. Realizar post–sintonı́a (sintonı́a fina) si fuera necesario.
3. Construir el sistema de control en cascada definiendo los lazos de control pri-
mario y secundario.
6.1 Control en Cascada 127

4. Sintonizar el lazo de control secundario empleando el método de la ganancia


lı́mite o del relé. Realizar post–sintonı́a si fuera necesario.
5. Sintonizar el lazo de control primario empleando el método de la ganancia lı́mite
o del relé. Tener en cuenta que el lazo de control secundario es parte del lazo
de control primario. Realizar post–sintonı́a si fuera necesario.

Ejemplo 6.1

Determinar la respuesta controlada del sistema realimentado simple de la Fig. 6.1(b)


y compararla con la respuesta controlada del sistema de control en cascada ilustrado
en la Fig. 6.1(d), sabiendo que los controladores son del tipo PI, que M1 = M2 = 1,
que r = r1 = 50o C, y que P (s) = P2 (s) × P1 (s), donde:
3 1 0.8
P2 (s) = × P1 (s) =
(0.2s + 1) (3s + 1)(s + 1)) (4s + 1)(s + 1)

Cabe anotar que 3/(0.2s + 1) es la FT de la VCA.

Solución: El modelo dinámico del proceso ha sido proporcionado en el enunciado del


problema. Para controlar el proceso emplearemos el método de la oscilación lı́mite de
Ziegler y Nichols. El gráfico superior de la Fig. 6.2 muestra la respuesta al escalón a
manera de una oscilación sostenida que se obtiene haciendo que el controlador C en la
Fig. 6.1(b) trabaje en modo proporcional con una ganancia Kcrit = 2.18. Notar que la
oscilación posee un perı́odo Tcrit = 12.5. Con tales valores se calculan los parámetros
del controlador PI empleando la Tabla 5.6. El gráfico inferior de la Fig. 6.2 ilustra la
salida y controlada, luego de realizar una postsintonı́a. Tales resultados se obtienen
ejecutando el programa casc1a.m listado abajo.
% casc1a.m CONTROL PI DEL LAZO SIMPLE VÍA LA OSCILACIÓN SOSTENIDA
clear all; close all; clc;
s=tf(’s’); P2=3/((0.2*s+1)*(3*s+1)*(s+1)); P1=0.8/((4*s+1)*(s+1));
P=P1*P2; % P: PROCESO
Kcrit=2.18; G_c=feedback(Kcrit*P,1); subplot(211); step(G_c,40); grid,
title(’OSCILACIÓN SOSTENIDA’), xlabel(’TIEMPOx60’), ylabel(’y(t)’)
Tcrit=12.5; % TOMADO DE LA OSCILACIÓN SOSTENIDA CON Kcrit=2.18
Kc=0.65*0.45*Kcrit; Ti=0.85*Tcrit; % PAR ÁMETROS PI CON POSTSINTONÍA
C=Kc*(1+1/(Ti*s)); SIMPLE=50*feedback(C*P,1); % CONTROL LAZO SIMPLE
subplot(212); step(SIMPLE,60); grid; title(’SALIDA CONTROLADA’);
xlabel(’TIEMPOx60’); ylabel(’TEMPERATURA ◦ C’); print -deps -f casc1a

El diagrama de bloques del sistema de control en cascada se muestra en la Fig.


6.1(d). El lazo de control secundario se realiza como sigue. El primer gráfico de la
Fig. 6.3 muestra la respuesta al escalón a manera de una oscilación sostenida que se
obtiene haciendo que el controlador C2 en la Fig. 6.1(d) trabaje en modo proporcional
con ganancia Kcrit2 = 8.53. Notar que la oscilación posee un perı́odo Tcrit2 = 2.4.
Con tales valores se calculan los parámetros del controlador PI empleando la Tabla
5.6. El segundo gráfico de la Fig. 6.3 ilustra la salida y2 (t) controlada, la cual se logra
realizando post–sintonı́a, tal como se explica en el listado del programa casc1b.m.
El lazo de control primario incluye en su estructura el lazo de control secundario
descrito arriba. El diseño del control PI del lazo primario es similar al del secundario:
se genera una oscilación sostenida (tercer gráfico de la Fig. 6.3) y con los parámetros
Kcrit1 = 3.4 y Tcrit1 = 13 determinados, se calculan los parámetros del controlador
128 Estrategias de Control

OSCILACIÓN SOSTENIDA

1.5
y(t)

0.5

0
0 5 10 15 20 25 30 35 40
TIEMPOx60 (sec)

SALIDA CONTROLADA

60
TEMPERATURA °C

50

40

30

20

10

0
0 10 20 30 40 50 60
TIEMPOx60 (sec)

Fig. 6.2: Oscilaciones sostenidas para Kcrit = 2.18 (gráfico superior) y respuesta
controlada (gráfico inferior) para el caso control con lazo simple del ejemplo 6.1.

C1 . El gráfico inferior de la Fig. 6.3 ilustra la salida y1 controlada, luego de realizar


una postsintonı́a. Todos estos resultados se obtienen ejecutando el programa casc1b.m
listado abajo.
% casc1b.m CONTROL EN CASCADA
clear all; close all; clc;
s=tf(’s’); P2=3/((0.2*s+1)*(3*s+1)*(s+1)); P1=0.8/((4*s+1)*(s+1));
Kcrit2=8.53; Gs1=feedback(Kcrit2*P2,1); % FT LAZO SECUNDARIO CON Kcrit2
subplot(411); step(Gs1,10); grid, ylabel(’y2(t)’), xlabel(’TIEMPOx60’),
title(’OSCILACIÓN DEL LAZO SECUNDARIO’)
Tcrit2=2.4; % TOMADO DE LA OSCILACIÓN SOSTENIDA CON Kcrit2=8.53
Kc2=0.1*0.45*Kcrit2; Ti2=0.85*Tcrit2; C2=Kc2*(1+1/(Ti2*s));
Gs2=feedback(C2*P2,1); subplot(412), step(Gs2), grid, ylabel(’y2(t)’),
xlabel(’TIEMPOx60’), title(’CONTROL DEL LAZO SECUNDARIO’)
Kcrit1=3.2; Gp1=feedback(Kcrit1*Gs2*P1,1); % FT LAZO PRIMARIO CON Kcrit1
subplot(413); step(Gp1,40); grid, title(’OSCILACI ÓN DEL LAZO PRIMARIO’),
xlabel(’TIEMPOx60’), ylabel(’y1(t)’)
Tcrit1=13; % TOMADO DE LA OSCILACIÓN SOSTENIDA CON Kcrit1=3.2
Kc1=0.45*Kcrit1; Ti1=0.8*0.85*Tcrit1; % PAR ÁMETROS PI
C1=Kc1*(1+1/(Ti1*s)); CASCADA=50*feedback(C1*Gs2*P1,1); % CONTROL CASCADA
subplot(414); step(CASCADA); grid, title(’SALIDA CONTROLADA EN CASCADA’),
xlabel(’TIEMPOx60’), ylabel(’TEMPERATURA ◦ C’), print -deps -f casc1b
6.2 Control de la Razón 129

OSCILACIÓN DEL LAZO SECUNDARIO

y2(t)
1

0
0 1 2 3 4 5 6 7 8 9 10
TIEMPOx60 (sec)
CONTROL DEL LAZO SECUNDARIO

2
y2(t)

0
0 5 10 15 20 25
TIEMPOx60 (sec)
OSCILACIÓN DEL LAZO PRIMARIO

2
y1(t)

0
0 5 10 15 20 25 30 35 40
TIEMPOx60 (sec)
SALIDA CONTROLADA EN CASCADA
TEMPERATURA °C

100

50

0
0 10 20 30 40 50 60 70
TIEMPOx60 (sec)

Fig. 6.3: Resultados para el caso control en cascada del ejemplo 6.1.

Observar que el rendimiento del sistema de control en cascada es mejor porque la


temperatura se estabiliza en aproximadamente 22 min (gráfico inferior de la Fig. 6.3),
mientras que para el caso de realimentación simple mostrado en el gráfico inferior de
la Fig. 6.2, se estabiliza en 30 min. Se debe notar también que el perı́odo de oscilación
crı́tica Tcrit1 del lazo primario mostrado en el tercer gráfico de la Fig. 6.3, es mayor
que el Tcrit12 del lazo secundario (primer gráfico de la Fig. 6.3) en una relación:
Tcrit1 13
= = 5.41
Tcrit2 2.4
Este hecho comprueba que el lazo secundario es 5.41 veces más rápido que el lazo
primario.

6.2. Control de la Razón


El control de la razón se refiere generalmente a controlar (mantener) la razón
entre dos flujos (o caudales) lo más constante posible. En el esquema de razón más
difundido, tal como el mostrado en la Fig. 6.4, el flujo q1 correspondiente al lazo no
controlado, es conocido como el flujo salvaje. Por otro lado, el lazo controlado, en
donde se ubica el flujo q2 , es denominado el lazo secundario. El control de la razón
encuentra muchas aplicaciones en la industria. Entre ellas:

Mezcla o fundición de dos o más componentes.


Control de la razón aire–combustible para la combustión.
130 Estrategias de Control

Control de la composición de un producto, técnica bastante utilizada en las


torres de destilación.
Observar en la Fig. 6.4 que los flujos q1 y q2 se miden empleando placas de orificio,
las cuales usan el principio de que el flujo es proporcional a la raı́z cuadrada de la
diferencia de presión producida por la placa. Por otro lado, la filosofı́a de control de
la razón se basa en las relaciones siguientes (ver Fig. 6.4):

r2 = V y 1 e2 = r 2 − y 2 = V y 1 − y 2 (6.1)

El lazo secundario se controla cuando el error e2 tienda a cero. Es decir, cuando:


y2
e2 = V y 1 − y 2 = 0 V = (6.2)
y1

u
V r2
y1 y2

q2
Qemador
q1
Horno

Fig. 6.4: Esquema más difundido del control de la razón.

Ejemplo 6.2

Diseñar y simular el sistema de control que mantenga la razón combustible–aire en


10 en la Fig. 6.4. Esto es: q2 /q1 = V = 10.

Solución: La Fig. 6.5 muestra el diagrama Simulink correspondiente a la Fig. 6.4.


Notar que se ha incluido la FT de la válvula de control. El proceso flujo y2 se modela
como una constante proporcional. Para mantener la razón V en 10, se ha usado un
controlador PI con parámetros P = Kc = 1 e I = Kc /Ti = 4. El flujo de aire y1 ha
sido considerado como un flujo que varı́a en forma sinusoidal para mayor generalidad.
La Fig. 6.6 muestra el resultado de la simulación que se obtiene ejecutando el archivo
razon1graf.m cuyo listado se muestra abajo. Observar que la razón V(t) se mantiene
en el valor 10 previamente establecido.
% razon1graf.m
clear all; close all; clc;
load th; load y1; load y2; load V;
plot(th,y1,th,y2,th,V), xlabel(’TIEMPO [s]’),
ylabel(’RAZÖN V(t)’), title(’CONTROL DE LA RAZÓN V = y2/y1’)
print -f -deps razon1r, print -s -deps razon1s
6.3 Control Anticipativo 131

razon1.mdl
th
y1
Clock th
y1 1
u V
1/y1 V=y2/y1
Aire Inversa

r2 e2 2
PID
10 0.5s+1
Product Scope
Producto PI Controller
Set V y2 Válvula + caudal y 2
y2
y2

Fig. 6.5: Diagrama Simulink correspondiente a la Fig. 6.4.

CONTROL DE LA RAZÓN V = y2/y1


45

40

35

30
RAZÖN V(t)

25

20

15 y2(t)
V = 10
10
y1(t)
5

0
0 200 400 600 800 1000
TIEMPO [s]

Fig. 6.6: Resultado de la simulación correspondiente al Ejemplo 6.2.

6.3. Control Anticipativo


La principal desventaja en los sistemas de control por retroalimentiición radica
en el hecho de que cuando un disturbio ingresa al proceso, éste se propaga por todo
el proceso, forzando que la variable controlada se desvı́e del punto deseado o de
referencia, antes de que aparezca una acción correctiva que compense el efecto de tal
disturbio.
Por cierto, en muchos casos se puede tolerar temporalmente un error entre la señal
controlada y la señal deseada. Sin embargo, existen aplicaciones en donde el error debe
de ser mı́nimo en presencia de disturbios, lo cual no se logra sólo con el control por
realimentación. Para tales situaciones resulta útil el control anticipativo. Con esta
estrategia de control, los disturbios se miden antes de que ingresen al proceso, lo
cual permite calcular por adelantado la señal de control requerida para mantener la
132 Estrategias de Control

variable controlada en el valor deseado y sin la presencia de disturbios.


La Fig. 6.7 muestra el diagrama de bloques de un sistema de control anticipativo
donde Gp (s), Ga (s) y Gd (s) son las funciones de transferencia del proceso, del contro-
lador anticipativo y del disturbio, respectivamente. Además, d, u e y son las señales
disturbio, de control y de salida, correspondientemente. De la Fig. 6.7 se deduce:

y = Gp (s)u + Gd (s)d = Gp (s)Ga (s)d + Gd (s)d = [Gp Ga (s) + Gd (s)] d (6.3)

La ecuación (6.3) ilustra el efecto de la presencia del disturbio d en el sistema. Si


queremos eliminar este efecto en la salida y, entonces esta salida deberı́a de anularse.
Haciendo y = 0 en (6.3):
Gd (s)
0 = Gp Ga (s) + Gd (s) Ga (s) = − (6.4)
Gp (s)
Para tener una idea más clara de la estructura del controlador anticipativo G a (s)
diseñado, asumamos que:
Kp Kd
Gp (s) = e−τp s Gd (s) = e−τd s (6.5)
Tp s + 1 Td s + 1
Por consiguiente:
Gd (s) Kd Tp s + 1 (τp −τd )s
Ga (s) = − =− e (6.6)
Gp (s) K p Td s + 1
La estructura que toma Ga (s) en (6.6) es la del denominado compensador de adelanto–
atraso.

d
Gd(s)

u y
Ga(s) Gp(s)

Fig. 6.7: Sistema de control anticipativo.

El sistema de control anticipativo trabaja bien siempre que Gp (s) y Gd (s) repre-
senten lo más fiel posible al proceso y al disturbio. Evidentemente, en presencia de
errores de modelado, el desempeño del sistema de control anticipativo va a disminuir.
Existen dos casos notables para los que no se debe de emplear el control anticipativo.
El primero ocurre cuando el grado del polinomio del denominador de Gp (s) es mayor
que el grado del polinomio del denominador de Gd (s). Por ejemplo, sean:
1 1
Gp (s) = Gd (s) =
s2 + bs + c s+f
donde a, b, c y f son constantes. El controlador anticipativo se calcula como:
Gd (s) s2 + bs + c
Ga (s) = − =−
Gp (s) s+f
6.3 Control Anticipativo 133

Lamentablemente, el controlador Ga (s) resultante es fı́sicamente no realizable, por lo


tanto no implementable.
El segundo caso ocurre cuando el tiempo muerto τp del modelo de la planta es
mayor que el tiempo muerto τd del modelo del disturbio. Por ejemplo, si:

1 1
Gd (s) = e−s Gp (s) = e−2s
s2 + bs + c s+f

Entonces:
Gd (s) s+f
Ga (s) = − =− 2 es
Gp (s) s + bs + c
Notar que el controlador anticipativo resultante es no implementable fı́sicamente
debido a que su tiempo muerto es positivo.
En un determinado diseño, Ga (s) puede resultar en una función de transferencia
inestable. Esto sucede cuando el modelo Gp (s) del proceso no es de mı́nima fase. Es
decir, cuando posee al menos un cero positivo. Para ilustrar esta situación asumamos
que (notar que Gp (s) es de mı́nima fase):

s−1 1
Gp (s) = Gd (s) =
s+1 4s + 1

que resulta en el siguiente controlador anticipativo inestable:

Gd (s) s+1
Ga (s) = − =−
Gp (s) (s − 1)(4s + 1)

Ejemplo 6.3

Diseñar y simular el sistema de control anticipativo mostrado en la Fig. 6.7 para:

5 3
Gd (s) = Gp (s) =
2s + 1 0.5s + 1

Solución: La Fig. 6.8 muestra el diagrama Simulink correspondiente a la Fig. 6.7.


El controlador anticipativo se determina de:

Gd (s) 2.5s + 5
Ga (s) = − =−
Gp (s) 6s + 3

La Fig. 6.9 muestra el resultado de la simulación que se obtiene ejecutando el archivo


antic1graf.m cuyo listado se muestra abajo. Observar en el gráfico inferior que la
salida controlada y(t) tiende a cero. Es decir, y(t) no está afectada por el disturbio.

% antic1graf.m
clear all; close all; clc; load th; load d; load u; load y;
subplot(211), plot(th,d,th,u), xlabel(’TIEMPO [s]’), ylabel(’d(t),u(t)’),
title(’VARIABLES d(t) y u(t) EN EL CONTROL ANTICIPATIVO’)
subplot(212), plot(th,y), xlabel(’TIEMPO [s]’), ylabel(’y(t)’),
title(’SALIDA CONTROLADA y(t)’)
print -f -deps antic1r, print -s -deps antic1s
134 Estrategias de Control

antic 1.mdl

d
d 5
2s+1 Scope 1
d Gd(s) u
y

−2.5s−5 3
th
6s+3 0.5s+1
Clock th
Ga(s) Gp(s)

Fig. 6.8: Diagrama Simulink correspondiente a la Fig. 6.7.

VARIABLES d(t) y u(t) EN EL CONTROL ANTICIPATIVO


2

1
d(t),u(t)

0
u
d
−1

−2
0 200 400 600 800 1000
TIEMPO [s]
x 10
−3 SALIDA CONTROLADA y(t)
2

0
y(t)

−2

−4

−6
0 200 400 600 800 1000
TIEMPO [s]

Fig. 6.9: Resultado de la simulación correspondiente al Ejemplo 6.3.

Control Anticipativo–Realimentado
El control anticipativo posee la capacidad de eliminar el efecto de los disturbios
medibles que actúan sobre la señal controlada. Por otro lado, el control realimentado
puede rechazar el efecto de los disturbios no medibles sobre la señal controlada,
ası́ como también corregir el efecto de los errores de modelado en el lazo de control.
Cae entonces por su propio peso, que si deseamos sacar ventaja de las bondades
de cada uno de los esquemas descritos, debemos de aplicar simultáneamente control
anticipativo y control realimentado , tal como se ilustra en la Fig. 6.10, donde d 1
es un disturbio medible con FT Gd1(s) conocida, mientras que d2 es un disturbio no
medible pero con FT Gd1(s) también conocida. El disturbio d2 se incluye para dar
mayor generalidad al problema, tal como se trata en el el siguiente ejemplo.
6.3 Control Anticipativo 135

d1 Gd1(s)

G a (s)
r e u y
G c (s) G p (s)

d2 Gd2(s)

Fig. 6.10: Esquema de control anticipativo más control realimentado.

Ejemplo 6.4

Diseñar y simular el sistema de control anticipativo–realimentado mostrado en la Fig.


6.10 cuando:
5e−2s 3e−3s 6e−5s
Gp (s) = Gd1 (s) = Gd2 (s) =
0.8s + 1 5s + 1 9s + 1
Solución: La Fig. 6.11 muestra el diagrama Simulink correspondiente a la Fig. 6.10.
El controlador anticipativo se determina de:
Gd1 (s) 3 0.8s + 1 −s
Ga (s) = − =− × e
Gp (s) 5 5s + 1

La Fig. 6.12 muestra el resultado de la simulación que se obtiene ejecutando el archivo


anticreal1graf.m cuyo listado se muestra abajo. Observar en el gráfico inferior que la
salida controlada y(t) sigue a la referencia r(t) a pesar de la presencia simultánea de
los disturbios d1 (t) y d2 (t). Es decir, y(t) no está afectada por los disturbios debido
a que el sistema de control los está rechaando.

anticreal 1.mdl
th
3
Clock th
d1 5s+1
d1 Gd1(s) Tiempo u
y
muerto : 3

−4.8s−0.6 5
5s+1 0.8s+1
Ga(s) Tiempo Gp(s) Tiempo
Scope
muerto : 1 muerto : 2

6 r
PID
9s+1
r = 10 Gc(s)
Gd1(s)1 Tiempo
muerto : 5
d2

Fig. 6.11: Diagrama Simulink correspondiente a la Fig. 6.10.


136 Estrategias de Control

SALIDA y(t) CONTROLADA


14

12

10

8
y(t)

0
0 20 40 60 80 100 120 140 160 180 200
TIEMPO [s]

CONTROL u(t)
3.5

2.5
u(t)

1.5

0.5
0 20 40 60 80 100 120 140 160 180 200
TIEMPO [s]

Fig. 6.12: Resultado de la simulación correspondiente al Ejemplo 6.4.

% anticreal1graf.m
clear all; close all; clc; load th; load r; load u; load y;
subplot(211), plot(th,y,’k’,th,r,’k’), xlabel(’TIEMPO [s]’), ylabel(’y(t)’),
title(’SALIDA y(t) CONTROLADA’), grid
subplot(212), plot(th,u,’k’), xlabel(’TIEMPO [s]’), ylabel(’u(t)’),
title(’CONTROL u(t)’), grid
print -f -deps anticreal1r, print -s -deps anticreal1s

6.4. Control Override


El control override es una estrategia de control que consiste en mantener las varia-
bles del proceso bajo control dentro de ciertos limites, generalmente para propósitos
de protección. Limitando la variable de un proceso en un valor alto o bajo, evita
que ocurran daños tanto en el proceso como en el producto. Dichas variables se limi-
tan empleando ciertos tipos de conmutadores de selección, tales como el HSS (High
Selector Switch) y el LSS (Low Selector Switch).
La Fig. 6.13 muestra una aplicación del control override en un sistema de bombeo
de producto. Las Figs. 6.13(a) y (b) ilustran el diagrama de instrumentación y el
diagrama de bloques del sistema de control respectivamente, donde PT representa
un transmisor de presión, PIC significa indicación y control de la variable presión y
PY, en este caso, es el conmutador de selección, dado que la letra Y indica realizar
un cálculo o algoritmo relacionado con P (la presión).
6.4 Control Override 137

Observar que existen dos lazos de control de presión, uno para la aspiración y el
otro para la impulsion. En condiciones normales, la presión se controla con el lazo
de impulsion. Si por alguna circunstancia de falla, cae la presión de aspiración de
la bomba por debajo del lı́mite de seguridad, entonces actúa el conmutador selector
para que entre en funcionamiento el lazo de aspiración en lugar del de impulsión.
El conmutador selector trabaja como sigue. En principio, el conmutador selecciona
la mı́nima de las dos señales que le llegan. Además, el set point del controlador
de aspiración tiene que ser inferior a los valores normales de trabajo. En operación
normal, la señal de salida del controlador de impulsion alcanza sus valores de trabajo.
Si la presión de aspiración baja demasiado hasta llegar a ser inferior a su set point,
entonces el controlador de aspiración genera una señal que es inferior a la que sale
del controlador de impulsion. En esta situación, el conmutador hace que entre en
operación el lazo de control de la aspiración. En este caso, el conmutador es del tipo
LSS (Low Selector Switch).

PIC

PIC PY

LAZO 2 LAZO 1

PT
PT
IMPULSION
ASPIRACION
BOMBA

(a)

TRANSMISOR
DE IMPULSION
LAZO 1
CONTROLADOR
DE IMPULSION PROCESO
VALVULA
PRESION
DE CONTROL
CONMUTADOR IMPULSION
SELECTOR PROCESO
VALVULA
PRESION
CONTROLADOR DE CONTROL ASPIRACION
DE ASPIRACION
LAZO 2
TRANSMISOR
DE ASPIRACION
(b)

Fig. 6.13: Estrategia de control overriding aplicado al bombeo.

La Fig. 6.14 muestra otra aplicación del control override aplicado a un generador
de vapor, en donde el conmutador selector LSS hará la conmutación del lazo de
control de presión (Lazo 1) al lazo de control de nivel (Lazo 2), cuando el el nivel del
liquido en el hervidor caiga por debajo del nivel permisible previamente establecido.
Esta conmutación también provoca que se cierre la valvula de control.
138 Estrategias de Control

LIMEA DE DESCARGA LINEA DE VAPOR

PT
LAZO 2 LAZO 1

LT LC PC
LSS

AGUA

CALEFACTOR (a)

TRANSMISOR
DE PRESION
LAZO 1
CONTROLADOR
DE PRESION
VALVULA PROCESO
DE CONTROL PRESION
CONMUTADOR
LSS
VALVULA PROCESO
CONTROLADOR DE CONTROL NIVEL
DE NIVEL
LAZO 2
TRANSMISOR
DE NIVEL
(b)

Fig. 6.14: Estrategia de control overriding aplicado a un generador de vapor.

6.5. Control Selectivo


En ciertas aplicaciones del control de procesos, sólo existe una variable controlada
PV, pero varias variables manipuladas MV. Un ejemplo tı́pico es el encendido y
operación de un horno industrial mediante dos combustibles A y B. La selección de
uno de los combustibles se realiza dependiendo de la disponibilidad de uno de ellos.
Por ejemplo, si el combustible A se quema hasta el lı́mite de su disponibilidad
y cuando tal lı́mite se alcanza, entonces el combustible B debe de ser quemado en
forma suplementaria. El lı́mite de disponibilidad se puede se puede fijar manualmente
o mediante un controlador que detecte la cantidad de combustible almacenada.
Un sistema de control como el descrito debe poseer las siguientes caracterı́sticas:

Capacidad de manipular la variable con limitada disponibilidad en cuanto que


su valor se mantenga debajo de su lı́mite previamente especificado.
Una transición suave cuando se use una u otra variable manipulable, para no
afectar adversamente la variable controlada.

Otro ejemplo de control selectivo se muestra en el sistema de medición múltiple de


la Fig. 6.15, donde los transmisores de flujo FT–1, FT–2 y FT–3 son dedicados para
medir el flujo A, mientras que los transmisores FT–4, FT–5 y FT–6 son para el flujo
B. El objetivo de tales baterı́as de transmisores es el de aumentar la confiabilidad de
la medición, aún en el caso en que falle uno de los transmisores de una baterı́a.
6.6 Control de Rango Partido 139

En el proceso mostrado en la Fig. 6.15, la medición de A y B es crı́tica si se quiere


mantener la relación B/A (obtenida en el bloque de cómputo FY–2) entre ciertos
lı́mites de diseño. Por tal razón, el bloque MS (Media Selector) computa en FY–1 y
en FY–3 el promedio de las mediciones de los flujos A y B, respectivamente. Si alguno
de los dos bloques MS detecta que una medición está fallando, entonces el promedio
de la medición se realiza con los otros dos, evitando de esta manera paradas costosas
del proceso. Los bloques FIC–1 y FIC–2 son los lazos de control de la razón B/A y
del flujo A, respectivamente.

MS
FY
2
FIC
2
FT FT FT
4 5 6 A

Flujo A
FY
B 2
MS B/ A
FY
1
FIC
1
FT FT FT
1 2 3

Flujo B

Fig. 6.15: Estrategia de control selectivo aplicado a un sistema de medición múltiple.

6.6. Control de Rango Partido


El control de rango partido, denominado también de gama partida o split range
en inglés, se aplica cuando se desea que la señal o fuerza de control manipule dos o
más actuadores, por ejemplo, dos válvulas de control. En esta situación, el número
de variables de control es mayor que el número de variables controladas.
Un ejemplo tı́pico es el caso de un reactor, mostrado en la Fig. 6.16 al cual ingresa
un producto gaseoso A, y sale un producto B resultante de la reacción. El objetivo
de control es mantener constante la presión P dentro del reactor mediante la acción
programada de las válvulas VA y VB (ver Fig. 6.16) como sigue. En presencia de
presiones:

1. bajas, VA permanece abierta al 100 % y VB cerrada.


2. altas, VA permanece cerrada y VB abierta.
3. intermedias, la abertura de cada válvula se determina del gráfico de la Fig.
6.16.
140 Estrategias de Control

Selector VA VB
uA uB 100%

Abertura
de válvula
Pr
0% P
P
VA VB 0% 30% 50% 70% 100%
Reactor
u u

Fig. 6.16: Estrategia rango partido aplicado a un reactor.

6.7. Control con Autosintonización de Parámetros


Los sistemas de control adaptativo ajustan su comportamiento a las cambiantes
propiedades del proceso controlado y de las señales que interactúan sobre dicho pro-
ceso. Por el contrario, los sistemas de control fijos, como los estudiados en el Capı́tulo
5 por ejemplo, se caracterizan por la presencia de una ley de control invariable con el
tiempo. La investigación sobre controladores adaptativos se ha centrado en dos gru-
pos principales: controladores adaptativos con un modelo referencial y controladores
con autosintonización (self–tuning regulators). En esta sección nos concentraremos
en este último controlador.
El sistema de control adaptativo con autosintonización mostrado en la figura 6.17
combina en su diseño un método de estimación de parámetros (el de los mı́nimos
cuadrados recursivo), una técnica de estimación de estados (el filtro de Kalman), una
representación lineal del modelo del proceso en el espacio de estado discreto, y una ley
de control: el controlador proporcional–integral óptimo cuadrático con realimentación
de estados.

^x ^
ESTIMADOR θ ESTIMADOR DE
DE ESTADOS PARAMETROS

U ESTIMACION MODELO
DE U LINEAL

+
Y CONTROLADOR CON + PROCESO Y
+ AUTOSINTONIZACION u U NO LINEAL
-
DISTURBIOS

Fig. 6.17: Configuración del sistema de control con autosintonización.

Notar en la Fig. 6.17 que el proceso puede poseer un modelo dinámico no lineal,
pero debe de ser linealizable. Es decir (ver subsección A.6.2), el modelo no lineal
6.8 Control Adaptativo con Modelo Referencial 141

original del proceso:


ẋ = f (X, U) (6.7)
se puede transformar mediante linealización en un modelo lineal en el espacio de
estado continuo de la forma:

ẋ = Ax + Bu) y = Cx (6.8)

donde f es una función vectorial de variables vectoriales X, es el vector de estado, U


es la ley de control, y, A, B y C son las matrices de estado, de control y de salida
del proceso, respectivamente. Observar que la ecuación (6.8) emplea las variables
residuales (o de desviación) x y u. La relación entre estas variables con respecto a
las actuales X y U es:

x=X−X u=U−U (6.9)

donde X y U son los valores en estado estacionario (o de equilibrio) de X y U, res-


pectivamente. La discretización del modelo lineal en (6.8) con un tiempo de muestreo
T , resulta en la siguiente descripción :

x(k + 1) = Gx(k) + Hu(k) y(k) = Cx(k) (6.10)

donde k = t/T es el tiempo discreto. El comando MATLAB:

[G,H,D,C]=c2dm(A,B,C,D,’zoh’);

realiza la conversión requerida.


El objetivo del control en el sistema de control con autosintonización, consiste
en determinar una fuerza de control capaz de minimizar la diferencia entre la salida
del proceso y la señal de referencia, cumpliendo ciertas especificaciones de diseño
previamente establecidas.
El sistema de control con autosintonización mostrado en la Fig. 6.17 opera como
sigue: luego de cada tiempo de muestreo, el vector estimado de parámetros θb se
actualiza empleando los datos proporcionados por la entrada U del proceso y por la
salida Y del mismo. Luego, los elementos de θb se usan para recuperar el modelo lineal
discreto del proceso dada por la ecuación (6.8), lo cual permite estimar el vector de
estado residual del modelo del proceso xb (empleando un filtro de Kalman) y el valor
de equilibrio U de la ley de control actual U. Tales resultados se usan luego para
computar la ley de control residual u y para actualizar la ley de control actual U a
partir de la relación: U = U + u.

6.8. Control Adaptativo con Modelo Referencial


La figura 6.18 ilustra la configuración de un Sistema de Control Adaptativo con
Modelo Referencial (SCAMR) que puede ser empleado en una gran variedad de apli-
caciones. La estructura SCAMR se compone básicamente de un modelo de referencia,
un controlador adaptativo, el sistema a controlar y un mecanismo de adaptación. El
esquema en consideración se denomina un SCAMR paralelo debido a la ubicación
relativa del modelo referencial con respecto al sistema.
142 Estrategias de Control

MODELO
REFERENCIAL
− qd
r
CONTROLADOR u SISTEMA +
ADAPTATIVO NO LINEAL
q

~q
MECANISMO
DE ADAPTACIÓN

Fig. 6.18: Configuración de un Sistema de Control Adaptativo con Modelo Referencial


(SCAMR).

El modelo de referencia, el cual está excitado por una entrada externa r, es un


sistema dinámico auxiliar usado para obtener la respuesta deseada del sistema. Tal
respuesta debe de ser lograda por el SCAMR a pesar de las restricciones generadas
por inexactitudes en el modelado de la estructura del modelo de referencia y el modelo
del proceso.
El mecanismo de adaptación es un conjunto de bloques interconectados usados
para implementar la ley de adaptación. De hecho, tal ley de adaptación es el algoritmo
de control empleado para modificar los parámetros del controlador adaptativo, de
modo tal que el SCAMR permanezca estable y que el error de seguimiento q e = q−qd
converja a cero a pesar de la presencia de parámetros variantes con el tiempo del
sistema y disturbios externos. El método directo de Lyapunov es empleado para
determinar que el SCAMR diseñado garantice convergencia global de las señales
controladas con respecto a sus trayectorias deseadas.
El método de Lyapunov, aplicado a un sistema de control, es capaz de determinar
si tal sistema es asintóticamente estable; es decir, que los estados del sistema de con-
trol convergen rápidamente al estado de equilibrio del sistema. Este método consiste
en formular de una función escalar V (x, t) conveniente, donde x es el vector de esta-
dos del sistema y la t indica que los parámetros de V también pueden ser variantes
con el tiempo. Si la derivada total dV /dt resulta definida negativa (menor que cero),
entonces el método asegura que el sistema posee un comportamiento asintóticamente
estable.
El objetivo de control del SCAMR diseñado consiste en producir una fuerza de
control u que sea capaz de hacer que el vector de salida y del sistema, siga a la respues-
ta deseada yd cumpliendo ciertas especificaciones de diseño, a pesar de la presencia de
incertidumbre paramétrica (parámetros no modelados en el modelo dinámico usado
o con valores inciertos) y no paramétrica (efectos no lineales no tomados en cuenta
en el modelo dinámico tales como fricción de coulumb, saturación, entre otros).
El SCAMR se puede aplicar a sistemas no lineales (preferiblemente) y lineales.
La descripción del modelo puede ser imprecisa; esto es, el modelo dinámico del sis-
tema puede presentar incertidumbres en su estructura o dinámica no modelada en su
representación. Ya que la descripción del sistema permite incertidumbres, el control
6.9 Autosintonización con Reconocimiento de Patrones 143

adaptativo (en general) se puede considerar una aproximación particular de control


robusto.
El objetivo de control del sistema de control diseñado consiste en producir una
fuerza de control u que sea capaz de hacer que el vector de salida y del sistema, siga
a la respuesta deseada yd cumpliendo ciertas especificaciones de diseño, a pesar de
la presencia de incertidumbre paramétrica (parámetros no modelados en el modelo
dinámico usado o con valores inciertos) y no paramétrica (efectos no lineales no
tomados en cuenta en el modelo dinámico tales como fricción de coulumb, saturación,
entre otros).

6.9. Autosintonización con Reconocimiento de Patrones


El sistema de control con autosintonización basado en el reconocimiento de pa-
trones, emplea la respuesta del proceso a un cambio tipo escalón del SP y/o a la acción
de un disturbio, tal como se muestra en la Fig. 6.19(b) y (c), donde el sobrenivel y
el amortiguamiento se definen como:

e3 − e 2 e2
amortiguamiento = sobrenivel = (6.11)
e1 − e 2 e1
Se supone que el proceso Gp (s) a controlar es del tipo primer orden con ganancia Kp ,
constante de tiempo T y tiempo muerto τ :
Kp
Gp (s) = e−τ s (6.12)
Ts + 1
cuyos parámetros se pueden determinar empleando el método de la curva de reacción.
También resulta conveniente calcular el tiempo de espera Wmax , el cual es el tiempo
máximo que el controlador espera para la ocurrencia del segundo pico. Este tiempo
se define como:
Wmax = 5τ (6.13)

Autosintonización vı́a el reconocimiento de patrones consiste fundamentalmente


en la programación de un sistema experto para que lleve a cabo en forma automática,
tal como si lo estuviera haciendo un experto, el procedimiento de sintonización del
controlador Gc (s). Este método de sintonización está presente en el controlador
Foxboro EXACT (760/761).
La fase de reconocimiento de patrones dentro del procedimiento de autosin-
tonización comienza cuando el error e(t) = SP − P V excede un nivel máximo de
ruido previamente especificado, debido a cambios en el SP o en los disturbios. El
programa experto entonces busca los tres picos e1 , e2 y e3 en la respuesta, mide sus
amplitudes y tiempos para calcular el amortiguameiento, el sobrenivel, el perı́odo de
oscilación Tp y el tiempo máximo Wm = 5τ de dicha respuesta. Si los picos e2 y e3
no fueran detectables, entonces el programa de reconocimiento de patrones debe de
estimarlos para usarlos luego en las fórmulas de sintonización. Estas fórmulas son
similares a las de Ziegler y Nichols:
BP = 120Kp τ /T Ti = 1,5τ Td = Ti /6 (6.14)
donde BP es la banda proporcional, y, Ti y Td son los tiempos integral y derivativo,
respectivamente.
144 Estrategias de Control

disturbio
SP e(t) PV
Gc (s) Gp(s)

e(t) (a)
e1

e3

e2
e(t) (b)
e1

e3

t
e2

Tp
(c)

Fig. 6.19: (a) Sistema realimentado. (b) Respuesta a un cambio escalón. (c) Respuesta
a un cambio en el disturbio.

Información Inicial y Pre–Sintonı́a


El controlador necesita tener a priori un conjunto de parámetros, los cuales deben
de ser suministrados por el usuario o ser estimados por el modo Pre–Tune (léase
autosintonización) del controlador Foxboro. Estos parámetros son:

Los valores iniciales de BP , Ti y Td .


La banda de ruido BN . Está programado que el controlador inicia el proced-
imiento de adaptación cuando el error e(t) exceda dos veces BN , la cual se
indica luego cómo determinarla.
Máximo tiempo de espera Wmax .

La banda de ruido NB se determina durante la última fase del modo Pre–Tune.


Primero, la señal de control vuelve al nivel que tenı́a antes de la ocurrencia del
cambio escalón del SP. Con el controlador aún en manual y con la señal de control
mantenida en un valor constante, la salida controlada se pasa a través de un filtro
pasa alto. La banda de ruido BN se calcula luego estimando la amplitud pico a pico
de la salida del filtro pasa alto. Este filtro puede poseer la forma (entre otras):
La BN estimada se emplea para inicializar el término derivativo como sigue:

Calcular la cantidad Z = (3 - 2NB)/2.5;


si Z > 1 entonces fijar Td = Ti /6;
6.9 Autosintonización con Reconocimiento de Patrones 145

si Z < 0 entonces fijar Td = 0;


si 0 < Z < 1 entonces fijar Td = ZTi /6;

También existen una serie de parámetros opcionales, a parte de los requeridos, que
deben de ser proporcionados por el usuario. En caso contrario, el programa usa los
valores por defecto, mostrados entre paréntesis en la siguiente lista:

Máximo amortiguamiento permitido (0.3)


Máximo sobrenivel permitido (0.5)
El factor derivativo (1), el cual multiplica al término derivativo, para dosificar
su influencia. Si este factor derivativo es nulo, entonces el controlador se del
tipo PI.

Lı́mite de cambio (10). Este factor hace que los valores de los parámetros del
controlador caigan entre ciertos lı́mites. Si se usa el valor 10 para el factor
lı́mite de cambio, entonces los valores de los parámetros BP, Ti y Td no serán
más grande que diez veces,k o más pequeños que un décimo de sus valores
iniciales.
Capı́tulo 7

Sı́ntesis de Controladores SISO


y MIMO

Un proceso SISO (Single–Input–Single–Output) está caracterizado por poseer una


salida y una entrada, mientras que un proceso MIMO (Multiple–Input–Multiple–Output)
posee múltiples entradas y múltiples salidas, las cuales no están exentas de presentar
cierto grado de interacción entre ellas. La técnica para modelar esta interacción es emplear
modelos dinámicos multivariables o MIMO.
El problema de sı́ntesis de controladores SISO y MIMO consiste en determinar el
modelo dinámico de la ley de control partiendo de ciertas condiciones y principios previa-
mente establecidos. Esta ley de control puede estar en la forma de una FT (Función de
Transferencia), para el caso SISO, y de una MT (Matriz de Transferencia) para el caso
MIMO.
Este Capı́tulo trata sobre la sı́ntesis (diseño) de controladores SISO empleando el
método de Dahlin, y de controladores MIMO empleando el método de desacoplamiento,
usando desacopladores, y aplicando el criterio de estabilidad de Hurwitz.

7.1. Método de Dahlin


El siguiente procedimiento de sı́ntesis es atribuido a Dahlin [30]. La Fig. 7.1
muestra un sistema SISO realimentado, donde Gc (s), Gp (s) y H(s) representan las
FTs del controlador, el proceso y el sistema de medición, respectivamente, y, r(s),
e(s), y(s) y u(s) constituyen las señales de referencia (SP), error del sistema, salida
controlada (PV) y ley de control, respectivamente. Para el caso H(s) = 1, de la Fig.
7.1 se deduce:
y(s) = Gp (s)u(s) = Gp (s)Gc (s)e(s) = Gp (s)Gc (s)(r(s) − y(s))
Por consiguiente:
1 y(s)/r(s)
Gc (s) = (7.1)
Gp (s) 1 − y(s)/r(s)
Se puede forzar que la señal controlada y(t) sea la curva de reacción de un sistema
de primer orden de ganancia unitaria y constante de tiempo Tc :
y(s) 1
= (7.2)
r(s) Tc s + 1
148 Sı́ntesis de Controladores SISO y MIMO

Sabemos que la constante de tiempo Tc corresponde al al 63.2 % de la magnitud de la


ganancia unitaria El 100 % de esta ganancia unitaria se alcanza en aproximadamente
cuatro veces Tc . Reemplazando (7.2) en (7.1) se obtiene una fórmula para sintetizar
(diseñar) el controlador:
1 1
Gc (s) = (7.3)
Gp (s) Tc s
En lo que sigue, la fórmula de sı́ntesis dada en (7.3) será determinada para el control
de diferentes procesos.

r(s) e(s) u(s) y(s)


Gc (s) Gp(s)

H(s)

Fig. 7.1: Sistema SISO realimentado.

Proceso Proporcional
Cuando Gp (s) = Kp (proceso proporcional), la ecuación (7.3) toma la forma:

Kc 1
Gc (s) = Kc = (7.4)
s K p Tc

Proceso de Primer Orden


Sea el proceso de primer orden:
Kp
Gp (s) = (7.5)
Ts + 1
donde T es la constante de tiempo del proceso y Kp su ganancia. Con Gp (s) dado
por la ecuación (7.7), (7.3) toma la forma:
 
1 T
Gc (s) = Kc 1 + Kc = Ti = T (7.6)
Ti s K p Tc

Proceso de Segundo Orden


Sea el proceso de segundo orden:
Kp
Gp (s) = (7.7)
(T1 s + 1)(T2 s + 1)

donde T1 y T2 son las dos constantes de tiempo del proceso. Con Gp (s) dado por la
ecuación (7.7), (7.3) toma la forma:
 
1 T1
Gc (s) = Kc 1 + (Td s + 1) Kc = Ti = T 1 Td = T 2
Ti s K p Tc
(7.8)
7.1 Método de Dahlin 149

Proceso Integral
Cuando:
Kp
Gp (s) =
s(T s + a)
el cual corresponde a un proceso integral, la ley de control (7.3) toma la forma:
1
Gc (s) = Kc (Td s + 1) Kc = Td = T (7.9)
K p Tc

Proceso Doblemente Integral


Si Gp (s) = Kp /s2 (proceso doblemente integral, como es el caso de un satélite en
órbita, la ecuación (7.3) toma la forma:
1
Gc (s) = Kc s Kc = (7.10)
K p Tc

Procesos con Respuesta Inversa o con Sobrenivel


Sea el proceso con un cero positivo ubicado en 1/T3 y dos polos negativos ubicados
en −1/T1 y −1/T2 :
Kp (1 − T3 s)
Gp (s) = (7.11)
(T1 s + 1)(T2 s + 1)

el cual, dependiendo de sus parámetros, corresponde a un proceso que posee una


respuesta al escalón inversa (parte de su respuesta al inicio es negativa) o con so-
brenivel. Para esta situación conviene forzar que la señal controlada y(t) sea la curva
de reacción de un sistema de adelanto–atraso de ganancia unitaria y de la forma:

y(s) 1 − T3 s
= (7.12)
r(s) Tc s + 1

Sustituyendo (7.11) y (7.12) en (7.1), la ley de control toma la forma:


 
1 T1
Gc (s) = Kc 1 + (Td s+1) Kc = Ti = T 1 Td = T 2
Ti s Kp (Tc + T3 )
(7.13)

Procesos con Tiempo Muerto


Sea el proceso de primer orden con tiempo muerto de la forma:

Kp e−τ s
Gp (s) = (7.14)
(T s + 1)

En este caso conviene forzar que la señal controlada y(t) sea la curva de reacción de
un sistema de de primer orden con tiempo muerto y ganancia unitaria, de la forma:

y(s) e−τ s
= (7.15)
r(s) Tc s + 1
150 Sı́ntesis de Controladores SISO y MIMO

Reemplazando (7.14) y (7.15) en (7.1), la ley de control toma la forma:


 
1 Td s + 1
Gc (s) = Kc 1 + (7.16)
Ti s αTd s + 1

donde:
T τ Tc
Kc = Ti = T Td = α=
Kp (Tc + τ ) 2 Tc + τ

Ejemplo 7.1

Verificar los controladores sintetizados empleando el método de Dahlin.


Solución: La Fig. 7.2 muestra las respuestas controladas, resultadoS que se obtienen
ejecutando el programa dahlin1.m listado abajo. No se ha considerado el caso G p (s) =
Kp /s2 por simple comodidad.

CONTROL DE UN PROCESO PROPORCIONAL CONTROL DE UN PROCESO DE 1er ORDEN

1 1
SALIDA

SALIDA

0.5 0.5

0 0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
TIEMPO [s] (sec) TIEMPO [s] (sec)
CONTROL DE UN PROCESO DE 2do ORDEN CONTROL DE UN PROCESO INTEGRATIVO

1 1
SALIDA

SALIDA

0.5 0.5

0 0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
TIEMPO [s] (sec) TIEMPO [s] (sec)
PROCESO CON RPTA INVERSA O SOBRENIVEL CONTROL DE UN PROCESO CON TIEMPO MUERTO

2 1
SALIDA

SALIDA

1 0.5

0 0

−1 −0.5

−2 −1
0 2 4 6 8 10 12 0 5 10 15
TIEMPO [s] (sec) TIEMPO [s] (sec)

Fig. 7.2: Control de procesos empleando controladores sintetizados por el método de


Dahlin.

% dahlin1.m CONTROL DE PROCESOS: MÉTODO DE DAHLIN


clear all; close all; clc; s=tf(’s’);
Kp=2; T=5; T1=4; T2=6; T3=3; Tc=2; Tt=2;
7.2 Control MIMO vı́a Desacoplamiento 151

Gp1=Kp; Gp2=Kp/(T*s+1); Gp3=Kp/((T1*s+1)*(T2*s+1)); Gp4=Kp/(s*(T*s+1));


Gp5=Kp*(1-T3*s)/((T1*s+1)*(T2*s+1)); [num,den]=pade(Tt,3);
Gtau=tf(num,den); Gp6=Kp*Gtau/(T*s+1);
Kc1=1/(Kp*Tc); Gc1=Kc1/s; DH1=feedback(Gc1*Gp1,1); subplot(321);
step(DH1,’k’); grid; xlabel(’TIEMPO [s]’); ylabel(’SALIDA’);
title(’CONTROL DE UN PROCESO PROPORCIONAL’);
Kc2=T/(Kp*Tc); Ti=T; Gc2=Kc2*(1+1/(Ti*s)); DH2=feedback(Gc2*Gp2,1);
subplot(322); step(DH2,’k’); grid; xlabel(’TIEMPO [s]’);
ylabel(’SALIDA’); title(’CONTROL DE UN PROCESO DE 1er ORDEN’);
Kc3=T1/(Kp*Tc); Ti=T1; Td=T2; Gc3=Kc3*(1+1/(Ti*s))*(Td*s+1);
DH3=feedback(Gc3*Gp3,1); subplot(323); step(DH3,’k’); grid;
xlabel(’TIEMPO [s]’); ylabel(’SALIDA’);
title(’CONTROL DE UN PROCESO DE 2do ORDEN’);
Kc4=1/(Kp*Tc); Td=T; Gc4=Kc4*(Td*s+1); DH4=feedback(Gc4*Gp4,1);
subplot(324); step(DH4,’k’); grid; xlabel(’TIEMPO [s]’);
ylabel(’SALIDA’); title(’CONTROL DE UN PROCESO INTEGRATIVO’);
Kc5=T1/(Kp*(Tc+T3)); Ti=T1; Td=T2; Gc5=Kc5*(1+1/(Ti*s))*(Td*s+1);
DH5=feedback(Gc5*Gp5,1); subplot(325); step(DH5,’k’); grid;
xlabel(’TIEMPO [s]’); ylabel(’SALIDA’);
title(’PROCESO CON RPTA INVERSA O SOBRENIVEL’);
Kc6=T/(Kp*(Tc+Tt)); Ti=T; Td=Tt/2; alfa=Tc/(Tc+Tt);
% Gc6=Kc6*(1+1/(Ti*s))*((Td*s+1)/(alfa*Td*s+1));
Gc6=(T*s+1)/(Kp*(Tc*s+1-Gtau));
DH6=feedback(Gc6*Gp6,1); subplot(326); step(DH6,’k’); grid;
xlabel(’TIEMPO [s]’); ylabel(’SALIDA’);
title(’CONTROL DE UN PROCESO CON TIEMPO MUERTO’);
print -deps -f dahlin1

7.2. Control MIMO vı́a Desacoplamiento


El controlador MIMO a diseñar requiere de la representación lineal en el espacio
de estado (ecuación (7.17)) o en el dominio de Laplace (ecuación (7.19)) del sistema
MIMO. Tal diseño debe de cumplir los siguientes requerimientos:

1. No interacción.
2. Exactitud estática.
3. Estabilidad.

Para explicar cada uno de tales requerimientos, formulemos las ecuaciones de


estado y de salida del sistema MIMO:

ẋ = Ax + Bu y = Cx + Du (7.17)

donde x es el vector de estado de orden n, u es el vector fuerza de control de orden


m e y es el vector de salidas controladas de orden p. La Fig. 7.3 muestra el diagrama
de bloques del sistema de control MIMO, de donde se pueden deducir las siguientes
relaciones:

y(s) = Gp (s)u(s) u(s) = Gc (s)e(s) (7.18)


y(s) = Gp Gc (s)e(s) e(s) = r(s) − y(s) (7.19)
152 Sı́ntesis de Controladores SISO y MIMO

Controlador Proceso
MIMO MIMO
r(s) e(s) u(s) y(s)
G c(s) G p (s)

Fig. 7.3: Diagrama de bloques de un sistema de control MIMO.

donde Gp (s) es la matriz de transferencia del sistema, Gc (s) es la matriz de transfer-


encia del controlador, e(s) es el vector error del sistema y r(s) es el vector de señales
deseadas o set points. En (7.19), el reemplazo de y(s) en e(s) produce:

y(t) = G(s)r(s) G(s) = (I + Go )−1 Go Go (s) = Gp Gc (s) (7.20)

donde G(s) y Go son las matrices de transferencia de lazo cerrado y de lazo abierto
del sistema. La matriz G(s) posee la forma:
 
G11 (s) · · · G1p (s)
 .. .. .. 
G(s) =  . . . 
Gp1 (s) · · · Gpp (s)

En el dominio de Laplace y para condiciones iniciales nulas, el sistema represen-


tado en (7.17) toma la forma:

sx = Ax + Bu x(s) = (sI − A)−1 Bu y(s) = Cx(s) + Du(s)

Reemplazando la expresión de x(s) en la expresión de y(s), se obtiene la matriz de


transferencia Gp (s) del sistema en función de las matrices de su descripción de estado
A, B, C y D:

y(s) = [C(sI − A)−1 B + D]u(s) Gp (s) = C(sI − A)−1 B + D (7.21)

7.2.1. No Interacción
Los elementos ubicados fuera de la diagonal principal de G(s) determinan el grado
de interacción entre las diferentes entradas de referencia ri con respecto a las salidas
yi . Para obtener desacoplamiento completo entre tales entradas y salidas, se requiere
que G(s) sea diagonal, esto es:

Gij = 0 para i 6= j (7.22)

Una condición necesaria y suficiente para no interacción en un sistema de control


MIMO con realimentación unitaria es que la matriz de transferencia a lazo abierto
Go (s) sea diagonal. Este último requerimiento es fácil de probar. De la Fig. 7.3, vimos
que:
G(s) = [I + Go (s)]−1 Go (s)
7.2 Control MIMO vı́a Desacoplamiento 153

Despejamos Go (s):

Go (s) = Gp (s)Gc (s) = G(s)[I − G(s)]−1 (7.23)

Dado que G(s) tiene que ser diagonal por para no interacción, entonces, I − G(s)
también debe de ser diagonal. Por consiguiente, su matriz inversa [I − G(s)] −1 es
también diagonal y de la forma:
 1

1−G11 (s) 0
 1 
 1−G22 (s) 
−1
[I − G(s)] =   
.. 
 . 
1
0 1−Gpp (s)

Por lo tanto, la relación (7.23) resulta en la siguiente matriz diagonal:


 
G11 (s)
0
 1−G11 (s) G22 (s) 
 
 1−G22 (s) 
Go (s) =  ..  (7.24)
 . 
 
Gpp (s)
0 1−Gpp (s)

7.2.2. Exactitud Estática


Nosotros deseamos que para un vector de entrada de referencia constante r(t), es
decir, un vector cuyos elementos sean escalones, el vector de error:

e(t) = r(t) − y(t)

se aproxime a cero cuando t se aproxime a infinito. En el dominio de s, el error resulta:


|r|
e(s) = r(s) − y(s) = r(s) − G(s)r(s) = [I − G(s)]r(s) = [I − G(s)]
s
|r|
donde |r| es la magnitud de r(s), cuya transformada de Laplace es s . Aplicando el
teorema del valor final en la ecuación anterior se obtiene:

lı́m e(t) = lı́m s e(s) = lı́m [I − G(s)] = 0


t→∞ s→0 s→0

Entonces podemos concluir que para exactitud estática (error en estado estable nulo)
se requiere:
lı́m [G(s)] = I (7.25)
s→0

7.2.3. Estabilidad
Para el caso de condiciones iniciales nulas, de (7.26) sabemos que:

y(s) = [C(sI − A)−1 B + D]u(s) Gp (s) = C(sI − A)−1 B + D (7.26)

La inversa de [sI − A)−1 ] se puede expresar como:


Adj (I − A)
[I − A]−1 =
det(I − A)
154 Sı́ntesis de Controladores SISO y MIMO

donde Adj significa adjunta, det es la operación determinante y la ecuación polinómi-


ca:
det(I − A) = 0 (7.27)
es la ecuación caracterı́stica del sistema y es de gran trascendencia por que sus raı́ces
determinan la estabilidad del mismo como sigue. El sistema (7.17) es estable si todas
las raı́ces caracterı́sticas de 7.27 se localizan en el semiplano izquierdo del plano–s.
Si existe al menos una raı́z en el semiplano derecho del plano–s, entonces el sistema
es inestable. Si todas las raı́ces se localizan en el semiplano izquierdo del plano–s,
excepto al menos una que se ubique en el eje imaginario (el eje vertical del plano–s),
entonces el sistema es oscilante, que para fines prácticos también es inestable.
Es importante anotar que el sistema a controlar puede ser inestable, como es el
caso del sistema posición angular de un motr CC. Sin embargo, el sistema de control,
como el mostrado en la Fig. 7.3 (notar que Gp (s) forma parte de este sistem), debe
de tener comportamiento estable. A continuación se deduce la ecuación caracterı́stica
del sistema de control.
De la Fig. 7.3 se obtiene:

y(s) = [I + Go (s)]−1 Go (s)r(s) Go (s) = Gp (s) Gc (s) (7.28)

La inversa de la matriz [I + Go (s)] se puede expresar como:

Adj [I + Go (s)]
[I + Go (s)]−1 =
det[I + Go (s)]

Por consiguiente, la ecuación caracterı́stica del sistema se expresa como:

det[I + Go (s)] = 0 (7.29)

Entonces, el sistema MIMO de la Fig. 7.3 es estable si todas las raı́ces caracterı́sticas
de (7.29) se localizan en el semiplano izquierdo del plano–s. Si existe al menos una
raı́z en el semiplano derecho del plano–s, entonces el sistema es inestable. Si todas
las raı́ces se localizan en el semiplano izquierdo del plano–s, excepto al menos una
que se ubique en el eje imaginario (el eje vertical del plano–s), entonces el sistema es
oscilante, que para fines de operación del sistema controlado, también es inestable.

Ejemplo 7.2 Control PID MIMO del Sistema Tanque Cerrado

Diseñar un controlador PID MIMO basado en la técnica de desacoplamiento para


controlar el nivel y la temperatura del sistema tanque cerrado descrito en la subsección
2.8.4. Las especificaciones de diseño son: 0 % de sobrenivel y error en estado estable
nulo tanto para el nivel como para la temperatura. Tiempos de estabilización menores
de 400 s para el nivel y 1000 s para la temperatura.
Solución: En la subsección 2.8.4 se determinó el modelo dinámico lineal en el espacio
de estado del sistema MIMO tanque, que como sabemos, posee dos entradas y dos
salidas. De acuerdo a (7.26), la matriz de transferencia del sistema se determina de:
 
−1 Gp11 (s) Gp12 (s)
Gp (s) = C(sI − A) B + D =
Gp21 (s) Gp22 (s)
7.2 Control MIMO vı́a Desacoplamiento 155

La forma de la MT (matriz de transferencia) del sistema Gp (s) se obtiene ejecutando


el programa mimopidsimb.m:
 Kp11 Kp11 
  Tp11 s+1 Tp11 s+1
Gp11 (s) Gp11 (s)  
Gp (s) = =  (7.30)
Gp21 (s) Gp21 (s) Kp21 (Tpa s+1) Kp21 (Tpa s+1)
(Tpb s+1)(Tpc s+1) (Tpb s+1)(Tpc s+1)

Para diseñar la matriz de control Gc (s), podemos asumir una matriz G(s) de la
forma:  
1
Tniv s+1 0
G(s) =   (7.31)
1
0 Ttemp s+1

la cual cumple los requerimientos del caso:

1. La matriz es diagonal, por lo tanto satisface el requerimiento de no interacción.


2. Dado que G(0) = I, de acuerdo a (7.25), se satisface el requerimiento de exac-
titud estática.
3. Debido a que los elementos de la diagonal de G(s) son funciones de transferen-
cia de primer orden, cuyas raı́ces caracterı́sticas se ubican en la parte izquierda
del plano s, entonces podemos asegurar que se cumple el requerimiento de es-
tabilidad. Además, cada canal responde exponencialmente con una constante
de tiempo igual a Tniv para el primer canal (control de nivel) y Ttemp (control
de temperatura) para el segundo canal.

Teniendo en cuenta que Go (s) = Gs Gc (s), la matriz de control Gc (s) se obtiene


de la ecuación (7.23):

Gc (s) = Gp (s)−1 G(s)[I − G(s)]−1 (7.32)

La forma de la MT (matriz de transferencia) del controlador Gc (s) resulta de la


ejecución del programa mimopidsimb.m:
     
1 1
Kc11 1 + Tc11 s −K c12 1 + Tc12 s
 
GC (s) = 
     
 (7.33)
1 1
−Kc21 1 + Tc21 s Kc12 1 + Tc12 s

La Fig. 7.4 muestra en detalle la interconexión de todos los bloques del sistema de
control MIMO del sistema tanque cerrado. Observar que el controlador MIMO se
sintetiza con cuatro controladores PI.

Simulación del Sistema de Control en el Dominio de s


El programa mimopidsimb.m, cuyo listado se muestra abajo, también simula el
sistema de control del tanque cerrado. En el resultado de la simulación (Fig. 7.5)
se observa que el nivel (gráfico superior izquierda) y la temperatura (gráfico supe-
rior derecha) controlados, cumplen las especificaciones de diseño establecidas en el
enunciado del ejemplo.
156 Sı́ntesis de Controladores SISO y MIMO

e1 1 u1 K p11
K c11 1+
r1 T c11 s T p11 s+1 y1

1 K p11
K c12 1+
T c12 s T p11 s+1

1 K p21 (T pas+1)
K c21 1+
T c21 s (T pbs+1)(T pcs+1)
r2 y2
1 K p21 (T pas+1)
K c12 1+
e2 T c12 s u2 (T pbs+1)(T pcs+1)

Fig. 7.4: Diagrama de bloques del sistema de control PID MIMO diseñado.

Step Response

From: In(1) From: In(2)


1

0.8
NIVEL
To: Out(1)

0.6

0.4

0.2
Amplitude

0
1

0.8
To: Out(2)

0.6 TEMPERATURA
0.4

0.2

0
0 200 400 600 800 1000 1200 0 200 400 600 800 1000 1200
Time (sec)

Fig. 7.5: Nivel y temperatura del tanque cerrado controlados.

% mimopidsimb.m CONTROL PI MULTIVARIABLE DEL TANQUE


clear all; close all; clc;
% PARÁMETROS DEL TANQUE
C=0.6; D=0.0159; d=0.0065; beta=d/D; E=(1-beta^4)^(-1/2); rhoD=996;
g=9.81; a=C*E*pi*d^2*rhoD*sqrt(2*g)/4; A=0.0314; rhoH=988; Cp=4186.8;
rhoC=998; thetaH=50+270.15; thetaC=20+270.15;
% VALORES ESTACIONARIOS
barh=0.4; bartheta=35+270.15; barqC=2.16e-4; barqH=0.5e-4;
barqD=2.16e-4; Rh=barh/barqD;
% MODELO LINEAL, DONDE: df1/dx1=df1dx1, df1/du2=df1u2, etc.
df1dx1=-a/(2*A*sqrt(barh)); df1dx2=0;
7.2 Control MIMO vı́a Desacoplamiento 157

df2dx1=a*bartheta*barh^(-1.5)/(2*A) ...
- (rhoC*thetaC*barqC+rhoH*thetaH*barqH)/(rhoD*A*barh^2);
df2dx2=-a/(A*sqrt(barh)); df1du1=1/A; df1du2=1/A;
df2du1=rhoC*thetaC/(rhoD*A*barh); df2du2=rhoH*thetaH/(rhoD*A*barh);
AA=[df1dx1 df1dx2;df2dx1 df2dx2]; BB=[df1du1 df1du2;df2du1 df2du2];
CC=[1 0;0 1]; DD = [0 0;0 0]; I = CC; Tniv=60; Ttemp=100; s=tf(’s’);
Gp = CC*inv(s*eye(2) -AA)*BB+DD; G=[1/(Tniv*s+1) 0;0 1/(Ttemp*s+1)];
Gc = inv(Gp)*G*inv(I-G); Go=Gp*Gc; step(feedback(Go,I))
print -deps -f mimopid01
syms s a11 a21 a22 b11 b21 b22 Tniv Ttemp;
AA=[a11 0;a21 a22]; BB=[b11 b11;b21 b22];
Gp = CC*inv(s*eye(2) -AA)*BB+DD; G=[1/(Tniv*s+1) 0;0 1/(Ttemp*s+1)];
Gc = inv(Gp)*G*inv(I-G); pretty(simple(Gp)), pretty(simple(Gc))
% Gc = [-a21 b11 - b22 s + b22 a11 s - a22 ]
% [-------------------------- --------------------]
% [ (-b22 + b21) b11 s Tniv (-b22 + b21) s Ttemp]
% [ ]
% [a21 b11 + b21 s - b21 a11 -s + a22 ]
% [------------------------- --------------------]
% [ (-b22 + b21) b11 s Tniv (-b22 + b21) s Ttemp]
% Gc11= Kc11*(1+1/(Ti11*s)); Gc12= -Kc12*(1+1/(Ti21*s));
% Gc21= -Kc21*(1+1/(Ti21*s)); Gc22= Kc12*(1+1/(Ti22*s));

Simulación del Sistema de Control en el Dominio de t


De la Fig. 7.4 podemos formular las ecuaciones que gobiernan el controlador
MIMO PID:
1 1
u1 = Kc11 (1 + ) e1 − Kc12 (1 + ) e2
Tc11 s Tc12 s
1 1
u2 = −Kc21 (1 + ) e1 + Kc12 (1 + ) e2 (7.34)
Tc21 s Tc12 s
donde:
e1 = r 1 − y 1 e2 = r 2 − y 2
Empleando aproximación rectangular para los términos integrales 1s , la discretización
de (7.34) resulta:
k k
Kc11 X Kc12 X
u1 (k) = Kc11 e1 (k) + T e1 (i) − Kc12 e2 (k) − T e2 (i)
Tc11 Tc12
i=0 i=0
Xk Xk
Kc21 Kc12
u2 (k) = Kc21 e1 (k) + T e1 (i) − Kc12 e2 (k) − T e2 (i)
Tc21 Tc12
i=0 i=0

donde k = t/T es el tiempo discreto y T es el tiempo de muestreo o discretización.


Para el tiempo (k − 1) las expresiones de u1 (k) y u2 (k) toman la forma:
k−1 k−1
Kc11 X Kc12 X
u1 (k − 1) = Kc11 e1 (k − 1) + T e1 (i) − Kc12 e2 (k − 1) − T e2 (i)
Tc11 Tc12
i=0 i=0
k−1
X k−1
X
Kc21 Kc12
u2 (k − 1) = Kc21 e1 (k − 1) + T e1 (i) − Kc12 e2 (k − 1) − T e2 (i)
Tc21 Tc12
i=0 i=0
158 Sı́ntesis de Controladores SISO y MIMO

Teniendo en cuenta que:


k
X k−1
X k
X k−1
X
e1 (i) = e1 (i) + e1 (k) e2 (i) = e2 (i) + e2 (k)
i=0 i=0 i=0 i=0

entonces:
Kc11
u1 (k) − u1 (k − 1) = Kc11 [e1 (k) − e1 (k − 1)] + T e1 (k)
Tc11
Kc12
−Kc12 [e2 (k) − e2 (k − 1)] − T e2 (k)
Tc12
Kc21
u2 (k) − u2 (k − 1) = Kc21 [e1 (k) − e1 (k − 1)] + T e1 (k)
Tc21
Kc12
−Kc12 [e2 (k) − e2 (k − 1)] − T e2 (k) (7.35)
Tc12
Para programación en tiempo real prescindimos del argumento k. Por consiguiente,
las ecuaciones anteriores toman la forma:
Kc11 Kc12
u1 = u1 + Kc11 (e1 − e1p ) + T e1 − Kc12 (e2 − e2p ) − T e2
Tc11 Tc12
Kc21 Kc12
u2 = u2 + Kc21 (e1 − e1p ) + T e1 − Kc12 (e2 − e2p ) − T e2 (7.36)
Tc21 Tc12
donde e1p y e2p son los errores pasados de e1 y e2 respectivamente. La ecuación de
estado del sistema se discretiza como:
x(k) − x(k − 1)
ẋ ∼
= = A x(k) + B u(k)
T
x(k) = x(k − 1) + T (A x(k) + B u(k))
donde:          
x(1) y1 h u1 qC
x= = = u= =
x(2) y2 θ u2 qD
Para programación en tiempo real, la ecuación de estado discreta del sistema toma
la forma:
x = x + T (A x + B u) (7.37)
La simulación del sistema se logra ejecutando el programa pidmimotanque.m, el cual
toma en cuenta las ecuaciones discretas (7.36) y (7.37). El resultado de la simu-
lación se muestra en la Fig. 7.6. Observar que el controlador PID MIMO estabiliza
simultáneamente el nivel y la temperatura cumpliendo las especificaciones de diseño
del caso.
% pidmimotanque.m CONTROL PID MIMO DEL SISTEMA TANQUE CERRADO CON AGUA
clear all; close all; clc;
% PARÁMETROS
C=0.6; D=0.0159; d=0.0065; beta=d/D; E=(1-beta^4)^(-1/2); rhoD=996;
g=9.81; a=C*E*pi*d^2*rhoD*sqrt(2*g)/4; A=0.0314; rhoH=988; Cp=4186.8;
rhoC=998; thetaH=50+270.15; thetaC=20+270.15;
% VALORES ESTACIONARIOS
barh=0.4; bartheta=35+270.15; barqC=2.16e-4; barqH=0.5e-4;
7.2 Control MIMO vı́a Desacoplamiento 159

1
NIVEL [m]
0.5

0
0 500 1000 1500 2000 2500 3000 3500 4000
TIEMPO [s]
AGUA FRÍA [m /s]

0.01
3

0.005

0
0 500 1000 1500 2000 2500 3000 3500 4000
TIEMPO [s]
TEMPERATURA [ºC]

60

40

20
0 500 1000 1500 2000 2500 3000 3500 4000
AGUA CALIENTE [m /s]

TIEMPO [s]
3

−0.005

−0.01
0 500 1000 1500 2000 2500 3000 3500 4000
TIEMPO [s]

Fig. 7.6: Resultado de la simulación del sistema de control PID MIMO del tanque:
nivel y temperatura controladas.

barqD=2.16e-4; Rh=barh/barqD;
% MODELO LINEAL, DONDE: df1/dx1=a11, df1/dx2=a12, etc.
a11=-a/(2*A*sqrt(barh)); a12=0;
a21=a*bartheta*barh^(-1.5)/(2*A) - ...
(rhoC*thetaC*barqC+rhoH*thetaH*barqH)/(rhoD*A*barh^2);
a22=-a/(A*sqrt(barh)); b11=1/A; b12=1/A;
b21=rhoC*thetaC/(rhoD*A*barh); b22=rhoH*thetaH/(rhoD*A*barh);
AA=[a11 0;a21 a22]; BB=[b11 b11;b21 b22]; CC=[1 0;0 1]; DD = [0 0;0 0];
Tniv=60; Ttemp=100;
% PARÁMETROS DEL CONTROLADOR: SE SETERMINAN DE Gc EN mimopidsimb.m
Kc11=b22/((b22-b21)*b11*Tniv); Ti11=b22/(a21*b11-b22*a11);
Kc12=1/((b22-b21)*Ttemp); Ti12=-1/a22; Kc22=Kc12; Ti22=Ti12;
Kc21=b21/((b22-b21)*b11*Tniv); Ti21=b21/(a21*b11-b21*a11);
% CONDICIONES INICIALES
e1p=0; e2p=0; u1=0; u2=0; x = [0.4;20+270.15]; % NIVEL + TEMPERATURA
T = 0.2; M = 20000; % PERIODO DE MUESTREO Y NÚMERO DE MUESTRAS M
for k = 1:M % INICIO DEL LAZO DE CONTROL
if(k >= 0 && k <= M/4), r1 = 0.5; r2=20+273.15; % SE ~
NALES DE REFERENCIA
elseif(k >= M/4 && k <= M/2), r1 = 0.2; r2=40+273.15;
elseif(k >= M/3 && k <= 3*M/4), r1 = 0.4; r2=70+273.15;
elseif(k >= 3*M/4 && k <= M), r1 = 0.3; r2=20+273.15; end
R1(k) = r1; R2(k) = r2;
160 Sı́ntesis de Controladores SISO y MIMO

% CALCULO DEl VECTOR DE CONTROL u(t)


e1 = r1 - x(1); Y1(k) = x(1); e2 = r2 - x(2); Y2(k) = x(2);
u1 = u1 + Kc11*(e1-e1p) + Kc11*T*e1/Ti11 ...
- Kc12*(e2-e2p) - Kc12*T*e2/Ti12; U1(k) = u1;
u2 = u2 - Kc21*(e1-e1p) - Kc21*T*e1/Ti21 ...
+ Kc22*(e2-e2p) + Kc22*T*e2/Ti22; U2(k) = u2; u = [u1;u2];
% MODELO LINEAL (DISCRETIZACION DIRECTA)
x = x + T*(AA*x + BB*u); e1p = e1; e2p = e2;
end
% GRÁFICOS
ejet = linspace(0,M*T,M); subplot(4,1,1), plot(ejet,R1,ejet,Y1),
grid, ylabel(’NIVEL [m]’), xlabel(’TIEMPO [s]’)
subplot(4,1,2), plot(ejet,U1), grid, ylabel(’AGUA FR ÍA [m^3/s]’),
xlabel(’TIEMPO [s]’)
subplot(4,1,3), plot(ejet,R2,ejet,Y2), grid
ylabel(’TEMPERATURA [K]’), xlabel(’TIEMPO [s]’)
subplot(4,1,4), plot(ejet,U2), grid, ylabel(’AGUA CALIENTE [m^3/s]’),
xlabel(’TIEMPO [s]’), print -f -deps pidmimotanque

Ejemplo 7.3 Control MIMO del Sistema de Plataformas

Diseñar un controlador MIMO basado en la técnica de desacoplamiento para controlar


las salidas y1 e y2 del sistema de plataformas propuesto en el problema 2.6 y mostrado
en la Fig. 2.26. Las especificaciones de diseño son: 0 % de sobrenivel, error en estado
estable nulo y tiempo de estabilización menor de 20 s para ambas salidas. Valorar
todos los parámetros de la planta en 1.
Solución: Seleccionemos como variables de estado x1 = y1 , x2 = y2 , x3 = y˙1 y
x4 = y˙2 , como variables de salida y1 = x1 e y2 = x2 y como variables de entrada u1
y u2 , esto es:  
x1    
 x2  y1 u1
x=  x3 
 y = u =
y2 u2
x4
Se puede demostrar (problema 2.6) que las ecuaciones de estado y de salida son:

ẋ = Ax + Bu y = Cx
 
0 0 1 0
 0 0 0 1 
 
A =  − K1 K1 B1
−m B1 
 m1 m1 1 m1 
K1
m2 − (K1m+K
2
2) B1
−m 2
− (B1m+B
2
2)

 
0 0
 
 0 0  1 0 0 0
B=
 m1
 C=
1
0  0 1 0 0
1
0 m2
El programa mimopid02.m, cuyo listado se muestra abajo, simula el sistema de con-
trol pedido. En el resultado de la simulación (Fig. 7.7) se observa que las salidas
controladas y1 (gráfico superior izquierda) e y2 (gráfico superior derecha) controla-
dos, cumplen las especificaciones de diseño requeridas.
7.3 Control MIMO con Desacopladores 161

Step Response

From: In(1) From: In(2)


1

0.8
y1

To: Out(1)
0.6

0.4

0.2
Amplitude

0
1

0.8
y2
To: Out(2)

0.6

0.4

0.2

0
0 20 40 60 0 20 40 60
Time (sec)

Fig. 7.7: Salidas y1 e y2 controlados (Ejemplo 7.3.)

% mimopid02.m CONTROL MULTIVARIABLE DEL SISTEMA DE PLATAFORMAS


clear all; close all; clc;
K1=1; K2=1; B1=1; B2=1; m1=1; m2=1; % PARÁMETROS
% ECUACIÓN DE ESTADO Y DE SALIDA
AA=[0 0 1 0;0 0 0 1;-K1/m1 K1/m1 -B1/m1 B1/m1;K1/m2 -(K1+K2)/m2 -B1/m2...
-(B1+B2)/m2]; BB=[0 0;0 0;1/m1 0;0 1/m2]; CC=[1 0 0 0;0 1 0 0];
DD = [0 0;0 0]; II = eye(4); Tniv=4; Ttemp=4; s=tf(’s’); I=eye(2);
Gp = CC*inv(s*II -AA)*BB+DD; G=[1/(Tniv*s+1) 0;0 1/(Ttemp*s+1)];
Gc = inv(Gp)*G*inv(I-G); Go=Gp*Gc; step(feedback(Go,I))
print -deps -f mimopid02

7.3. Control MIMO con Desacopladores


En la sección anterior, la selección a priori de una matriz de transferencia diagonal
que represente la dinámica del sistema realimentado, resolvió el problema de inter-
acción existente entre las variables de entrada y de salida, es decir, logró desacoplar
al sistema. En esta sección también se va a usar desacoplamiento en el diseño de
un controlador MIMO. Para este caso, los desacopladores van a formar parte de la
configuración del sistema, tal como se observa en la Fig. 7.8, de la cual se obtienen
las siguientes relaciones:

y1 (s) = Gp11 (s)[u1 (s) + D1 (s)u2 (s)] + Gp12 (s)[u2 (s) + D2 (s)u1 (s)]
y2 (s) = Gp22 (s)[u2 (s) + D2 (s)u1 (s)] + Gp21 (s)[u1 (s) + D1 (s)u2 (s)] (7.38)

El objetivo del bloque desacoplador D1 (s) es compensar el efecto de u2 en la salida


y1 , esto es, prevenir cambios en la salida del segundo controlador Gc2 que puedan
afectar la variable controlada del primer lazo. Para cumplir con este requerimiento,
162 Sı́ntesis de Controladores SISO y MIMO

la primera ecuación de (7.38) se puede expresar como:


 
∆y1 (s)
= D1 (s)Gp11 (s) + Gp12 (s) = 0 (7.39)
∆u2 (s) ∆u1 =0
En forma similar, para que el bloque desacoplador D2 (s) compense el efecto de u1 en
la salida y2 , de la segunda ecuación de (7.38) se tiene:
 
∆y2 (s)
= D2 (s)Gp22 (s) + Gp21 (s) = 0 (7.40)
∆u1 (s) ∆u2 =0
Por consiguiente, los bloques desacopladores se calculan de:
Gp12 (s) Gp21 (s)
D1 (s) = − D2 (s) = − (7.41)
Gp11 (s) Gp22 (s)
Las ecuaciones que gobiernan la dinámica del sistema mostrado en la Fig. 7.8 son:

e1 u 1 m1
G c1(s) Gp11(s)
r1 y1

D 1 (s) G p12(s)

D 2 (s) G p21(s)

r2 m2 y2
G c2 (s) G p22(s)
e2 u2

Fig. 7.8: Sistema de control MIMO con desacopladores D1 y D2 .

y1 = Gp11 m1 + Gp12 m2 m 1 = u 1 + D 1 u2 u1 = Gc1 e1


y2 = Gp21 m1 + Gp22 m2 m 2 = D 2 u1 + u 2 u2 = Gc2 e2 (7.42)
Por consiguiente:
       
y1 m1 u1 e1
y= m= u= e=
y2 m2 u2 e2
y(s) = Gp (s)m(s) m(s) = D(s)u(s) u(s) = Gc (s)e(s)
     
Gp11 Gp12 1 D1 Gc1 0
Gp = D= Gc = (7.43)
Gp21 Gp22 D2 1 0 Gc2
y = Go e Go = Gp DGc (7.44)
donde Gp es la matriz de la planta o sistema, D es la matriz de desacoplamiento, Gc
es el controlador PID MIMO y Go es la MT a lazo abierto del sistema. Cabe anotar
que tanto Gc1 (s) como Gc2 (s) son controladores PID, cuyos parámetros Kc , Ti y Td
tienen que ser sintonizados para cada aplicación.
7.3 Control MIMO con Desacopladores 163

Ejemplo 7.4 Control del Sistema de Plataformas usando Desacopladores

Diseñar un controlador MIMO con desacopladores para controlar las salidas y 1 e


y2 del sistema de plataformas propuesto en el problema 2.6 y mostrado en la Fig.
2.26. Las especificaciones de diseño son: 0 % de sobrenivel, error en estado estable
nulo y tiempo de estabilización menor de 20 s para ambas salidas. Valorar todos los
parámetros de la planta en 1.
Solución: El programa mimopid03.m, cuyo listado se muestra abajo, emplea el mod-
elo del sistema de plataformas del Ejemplo 7.3 y simula el sistema de control pedido.
En el resultado de la simulación (Fig. 7.9) se observa que las salidas controladas y 1
(gráfico superior izquierda) e y2 (gráfico superior derecha) controlados, cumplen las
especificaciones de diseño requeridas.

Step Response

From: In(1) From: In(2)


1

0.8
y1(t)
To: Out(1)

0.6

0.4

0.2
Amplitude

0
1

0.8 y2(t)
To: Out(2)

0.6

0.4

0.2

0
0 20 40 60 0 20 40 60
Time (sec)

Fig. 7.9: Salidas y1 e y2 controlados (Ejemplo 7.3.)

% mimopid03.m CONTROL PID MIMO CON DESACOPLADORES DEL SISTEMA PLATAFORMAS


clear all; close all; clc;
K1=1; K2=1; B1=1; B2=1; m1=1; m2=1; % PARÁMETROS
% ECUACIÓN DE ESTADO Y DE SALIDA
AA=[0 0 1 0;0 0 0 1;-K1/m1 K1/m1 -B1/m1 B1/m1;K1/m2 -(K1+K2)/m2 -B1/m2...
-(B1+B2)/m2]; BB=[0 0;0 0;1/m1 0;0 1/m2]; CC=[1 0 0 0;0 1 0 0];
DD = [0 0;0 0]; II = eye(4); Kc1=0.25; Ti1=1; Td1=0; Kc2=1; Ti2=1; Td2=0;
I = eye(2); s=tf(’s’); Gp=CC*inv(s*II -AA)*BB+DD;
D1=-Gp(1,2)/Gp(1,1); D2=-Gp(2,1)/Gp(2,2); D=[1 D1;D2 1];
Gc1=Kc1*(1+1/(Ti1*s)+Td1*s); Gc2=Kc2*(1+1/(Ti2*s)+Td2*s);
Gc=[Gc1 0;0 Gc2]; Go=Gp*D*Gc; step(feedback(Go,I))
print -deps -f mimopid03
164 Sı́ntesis de Controladores SISO y MIMO

7.4. Control MIMO empleando el Criterio de Hurwitz


La Fig. 7.10(a) representa el diagrama de bloques de un sistema de control MIMO,
donde el sistema a controlar Gp (s) es una MT (matriz de transferencia) cuadrada de
orden n y Gc (s) es una matriz diagonal de controladores Gcii , también de orden n.
En una matriz cuadrada, el número m de entradas ui es igual al número de salidas
yi . En el caso que Gp (s) fuera rectangular, el número de entradas m generadas por el
controlador MIMO correspondiente, siempre debe de ser mayor que el número p de
salidas. Sólo en esta situación es posible crear salidas ficticias a fin de hacer cuadrada
a la matriz Gp (s), con la finalidad de poder aplicar el procedimiento de diseño de la
subsección 7.4.1. Las relaciones siguientes se desprenden de la Fig. 7.10(a):

Controlador
P MIMO Sistema
r(s) e(s) u(s) y(s) r(s) −1
y(s)
K G p (s) (I+KG p (s)) KG p (s)

(a) (b)

Fig. 7.10: (a) Sistema de control MIMO con controlador MIMO Gc . (b) Sistema
equivalente.

−1
y(s) = Gp (s)u(s) u(s) = Gc e(s) y(s) = [I + Gp Gc (s)] Gp Gc (s)

donde I es la matriz identidad. La Fig. 7.10(b) muestra la MT del sistema, en la cual:

T(s) = I + Gp Gc (s) (7.45)

es conocida como la matriz retorno de la diferencia. Para que el sistema de la Fig.


7.10(a) o (b) sea estable, los ceros del determinante de T(s) deben de poseer parte real
negativa. Empleando el criterio de Hurwitz (subsección 7.4.2), se pueden determinar
los rangos de los parámetros de cada controlador Gcii de Gc para comportamiento
estable del sistema. A continuación se detalla el procedimiento de diseño.

7.4.1. Procedimiento de Diseño


El procedimiento para diseñar un sistema de control MIMO empleando el criterio
de Hurwitz es como sigue:
1. Formular la matriz T(s) = I + Gp Gc (s) (ver Fig. 7.10(b)), donde:
 
Gp11 (s) · · · Gp1n (s)
 .. .. .. 
Gc (s) = diag[Gc11 , . . . , Gcnn ] Gp (s) =  . . . 
Gpn1 (s) · · · Gpnn (s)

2. Determinar la ecuación caracterı́stica del sistema a lazo cerrado a partir de:

D(s) = det[T(s)] = sn + a1 sn−1 + · · · + an−1 s + an = 0


7.4 Control MIMO empleando el Criterio de Hurwitz 165

3. Emplear el criterio de Hurwitz (ver siguiente subsección) para determinar los


rangos de los elementos de la matriz de ganancia K que garanticen un compor-
tamiento estable del sistema de la Fig. 7.10(a).
4. Simular el sistema controlado empleando las ganancias determinadas por el
criterio de Hurwitz, hasta que las salidas yi controladas cumplen las especifica-
ciones de diseño previamente establecidas.

7.4.2. El Criterio de Hurwitz


El criterio de Hurwitz, que es equivalente al conocido criterio de Routh–Hurwitz,
se basa en la construcción de la matriz Hurwitz a partir de la ecuación caracterı́stica
D(s) del sistema realimentado:

D(s) = sn + a1 sn−1 + a2 sn−2 + a3 sn−3 + · · · + an−1 s + an


 
a1 a3 a5 ... 0 0
 1 a2 a4 ... 0 0 
 
 0 a1 a3 ... 0 0 
 
H= 0 1 a2 ... 0 0 
 
 .. .. .. .. .. .. 
 . . . . . . 
0 0 0 . . . an−2 an
Este criterio de estabilidad establece que para que los ceros de D(s) posean parte real
negativa (requisito indispensable para comportamiento estable del sistema), todos los
menores principales diagonales de H: H1 , H2 , H3 , . . . , Hn , deben de ser positivos,
donde:
 
  a1 a3 a5
a1 a3
H1 = a 1 H2 = det H3 = det  1 a2 a4  Hn = detH
1 a2
0 a 1 a3

Ejemplo 7.5 Control MIMO de un Proceso

Empleando el procedimiento de diseño de la subsección 7.4.1 diseñar un controlador


P MIMO para un sistema con:
  " #
3 −280
K1 0
K= Gp (s) = 0.s05 s(s+6)(s+30)
−200
0 K2 s s(s+6)(s+30)

las especificaciones de diseño para los dos canales (salidas) son: tiempo de estabi-
lización menor de 2 s, error en estado estable nulo y porcentaje de sobrenivel también
nulo.
Solución: Ejecutar el programa pmimo1.m, el cual sigue el procedimiento de diseño
arriba establecido. La Fig. 7.11 muestra que las salidas controladas del sistema
cumplen las especificaciones de diseño para las ganancias K1 = 2 y K2 = –1.5.
Es necesario anotar que con estos valores de las ganancias, se satisfacen simultánea-
mente las condiciones H1 > 0, H2 > 0, H3 > 0 y H4 > 0 establecidas en el criterio
de Hurwitz.
166 Sı́ntesis de Controladores SISO y MIMO

Step Response

From: In(1) From: In(2)


1

0.8
y1(t)
0.6
To: Out(1)

0.4

0.2
Amplitude

1.5

1
To: Out(2)

y2(t)
0.5

0
0 1 2 3 0 1 2 3
Time (sec)

Fig. 7.11: Salidas y1 e y2 controlados (Ejemplo 7.5.)

% pmimo1.m CONTROL P MIMO USANDO LA MATRIZ DE RETORNO DE LA DIFERENCIA


clear all; close all; clc; I = eye(2); syms s K1 K2;
Gp=[3/s -280/(s*(s+6)*(s+30));0.05/s -200/(s*(s+6)*(s+30))];
K=[K1 0;0 K2]; D=det(I+Gp*K); % pretty(D) % D=s^4+a1*s^3+a2*s^2+a3*s+a4
a1=36+3*K1; a2=180+108*K1; a3=-200*K2+540*K1; a4=-586*K1*K2;
H=[a1 a3 0 0;1 a2 a4 0;0 a1 a3 0;0 1 a2 a4]; H1=a1;
H2=det([a1 a3;1 a2]); H3=det([a1 a3 0;1 a2 a4;0 a1 a3]); H4=det(H);
% H1 > 0 => K1 > -12; H2 > 0 CON K = -12 => K2 <3 2.4
% PARA TENER K1 Y K2 EN EL SEMIPLANO IZQUIERDO DE K1 VS K2 SELECCIONAMOS:
% 0 <= K1 <= 12, -32 <= K2 <= 0; TOMEMOS:
K1=2; K2=-1.5; K=[K1 0;0 K2]; s=tf(’s’);
Gp=[3/s -280/(s*(s+6)*(s+30));0.05/s -200/(s*(s+6)*(s+30))];
G=feedback(Gp*K,I); step(G), print -deps -f pmimo1

7.5. Problemas
Problema 7.1 Sistema Tanque Cerrado

Basado en las técnicas descritas en las secciones 7.3 y 7.4, diseñar los controladores
MIMO para controlar el nivel y la temperatura del sistema tanque cerrado descrito
en la subsección ??. Las especificaciones de diseño tanto para el nivel como para
la temperatura son: 0 % de sobrenivel, error en estado estable nulo y tiempos de
estabilización lo más rapido posible.

Problema 7.2 Sistema de Plataformas


7.5 Problemas 167

Basado en la técnica descrita en la sección 7.4, diseñar un controlador P MIMO para


el sistema de plataformas mostrado en la Fig. 2.26 y descrito en el problema 2.6. Las
especificaciones de diseño de las salidas controladas son: 0 % de sobrenivel, error en
estado estable nulo y tiempos de estabilización lo más rapido posible.

Problema 7.3 Manipulador Polar Vertical

Basado en las técnicas descritas en las secciones 7.2, 7.2 y 7.4, diseñar los contro-
ladores PID MIMO para el manipulador polar vertical mostrado en la La Fig. ?? y
descrito en el problema ??. Las especificaciones de diseño de las salidas controladas
son: 0 % de sobrenivel, error en estado estable nulo y tiempos de estabilización lo más
rapido posible.

Problema 7.4 Manipulador Polar Horizontal

Basado en las técnicas descritas en las secciones 7.2, 7.2 y 7.4, diseñar los contro-
ladores PID MIMO para el manipulador polar horizontal mostrado en la La Fig. ??
y descrito en el problema ??. Las especificaciones de diseño de las salidas controladas
son: 0 % de sobrenivel, error en estado estable nulo y tiempos de estabilización lo más
rapido posible.

Problema 7.5 Manipulador Robótico Traslacional–Esférico (MRTE)

Basado en las técnicas descritas en las secciones 7.2, 7.2 y 7.4, diseñar los contro-
ladores PID MIMO para el manipulador robótico traslacional–esférico mostrado en
la Fig. ?? y descrito en el problema ??. Las especificaciones de diseño de las sal-
idas controladas son: 0 % de sobrenivel, error en estado estable nulo y tiempos de
estabilización lo más rapido posible.

Problema 7.6 Manipulador Robótico Esférico (MRE3)

Basado en las técnicas descritas en las secciones 7.2, 7.2 y 7.4, diseñar los contro-
ladores PID MIMO para el manipulador robótico esférico de 3GDL mostrado en la
Fig. ?? y descrito en el problema ??. Las especificaciones de diseño de las salidas
controladas son: 0 % de sobrenivel, error en estado estable nulo y tiempos de estabi-
lización lo más rapido posible.

Problema 7.7 Motor Sı́ncrono de Imán Permanente

Basado en las técnicas descritas en las secciones 7.2, 7.2 y 7.4, diseñar los contro-
ladores PID MIMO para el motor sı́ncrono de imán permanente descrito en el prob-
lema ??. Las especificaciones de diseño de las corrientes iq e id controladas son: 0 %
de sobrenivel, error en estado estable nulo y tiempos de estabilización lo más rapido
posible.

Problema 7.8 Manipulador Robótico Traslacional (MRT)


168 Sı́ntesis de Controladores SISO y MIMO

Basado en las técnicas descritas en las secciones 7.2, 7.2 y 7.4, diseñar los contro-
ladores PID MIMO para el manipulador robótico traslacional mostrado en la Fig. ??
y descrito en la sección ??. Las especificaciones de diseño de las salidas controladas
son: 0 % de sobrenivel, error en estado estable nulo y tiempos de estabilización lo más
rapido posible.

Problema 7.9 Manipulador Robótico Esférico (MRE)

Basado en las técnicas descritas en las secciones 7.2, 7.2 y 7.4, diseñar los contro-
ladores PID MIMO para el manipulador robótico esférico mostrado en la Fig. ?? y
descrito en la sección ??. Las especificaciones de diseño de las salidas controladas
son: 0 % de sobrenivel, error en estado estable nulo y tiempos de estabilización lo
más rapido posible.
Capı́tulo 8

Control Predictivo

En este capı́tulo se desarrolla un procedimiento para diseñar sistemas de control


predictivo SISO basado en modelos. El algoritmo de control predictivo empleado es el
denominado Control Matricial Dinámico (DMC: Dynamic Matrix Control).
Para validar el procedimiento de diseño propuesto, se presentan varios ejemplos de
diseño, empleando leyes del Control Matricial Dinámica, en sus versiones escalar y ma-
tricial.

8.1. Control Predictivo Basado en Modelos


El control predictivo basado en modelos es una metodologı́a de control que usa
el modelo del proceso para calcular y optimizar las predicciones de las acciones de
control y de la salida controlada. Esta metodologı́a se ha desarrollado alrededor de
ciertos principios, dos de los cuales son:

Empleo de un modelo del proceso para pronosticar su salida a controlar en


instantes de tiempo futuro.
Cálculo de una acción de control óptima basada en la minimización de funciones
de costo, posiblemente incluyendo restricciones en las variables manipuladas
controladas.
Los diferentes miembros de la familia del control predictivo basado en modelos
difieren principalmente, valga la redundancia, en el modelo usado para representar el
proceso con sus perturbaciones, y en las funciones de costo a ser minimizadas (con o
sin restricciones).
De la gama de algoritmos de control predictivo existentes, nos ocupamos en par-
ticular del denominado Control Matricial Dinámico. Para validar el procedimiento
de diseño propuesto, se presentan varios ejemplos de diseño.
Es importante resaltar que el control predictivo es de naturaleza abierta y cuen-
ta con muchas contribuciones, tanto en lo académico como también en el mundo
industrial. Muchas aplicaciones del control predictivo son usadas hoy en todos los
campos de la actividad industrial. El buen rendimiento de tales aplicaciones es muy
apreciada; por ello, sigue existtiendo un creciente interés en esta metodologı́a.
170 Control Predictivo

8.2. Principios del Control Predictivo


El control predictivo pronostica la salida de la planta en un escenario de tiempo
de duración N2 (el horizonte de tiempo N2 ). Tal predicción depende de las salidas
y entradas pasadas, pero también del escenario del control futuro. La obtención del
modelo que refleje lo más fielmente posible la evolución dinámica de la planta, es la
llave del éxito en las aplicaciones. La notación usada para derivar los principios del
control predictivo es la siguiente:

t, representa el tiempo discreto (t = 0, 1, 2, . . . ).


u(t), denota la entrada al proceso y constituye la variable manipulada o señal
de control.
y(t), es la salida del proceso y constituye la la variable controlada.
w(t), representa la trayectoria deseada (“set point”).
r(t), denota la trayectoria de referencia.
u(t + k/t), denota los valores futuros de la entrada en el tiempo t + k postulados
en el tiempo t, o simplemente, dado t.
y(t + k/t), denota los valores futuros de la salida basado en las mediciones
disponibles en el tiempo t:

{y(t), y(t − 1), . . . , u(t − 1), u(t − 2), . . .}

y en los valores futuros de la entrada postulados en el tiempo t:

{u(t/t), u(t + 1/t), . . .}

Con relación a la figura 8.1, el principio del control predictivo se caracteriza por
la siguiente estrategia:

En cada tiempo t, la salida del proceso y(t + k) se pronostica sobre un horizonte


k = 1 . . . N2 . Los valores pronosticados se denotan como y(t + k/t) y a N2 se
le denomina el horizonte de predicción. La predicción se realiza mediante el
modelo del proceso, el cual se asume que está disponible. El pronóstico en
cuestión depende de las entradas y salidas pasadas, pero también del escenario
del control futuro u(t + k/t), k = 0, . . . , N2 − 1; es decir, de las acciones de
control que se intentan aplicar a partir del tiempo t.
Una trayectoria de referencia r(t + k/t), k = 1, . . . , N2 , que se inicia en r(t/t) =
y(t) y se define sobre el horizonte de predicción. Esta trayectoria describe la for-
ma de guiar la salida del proceso desde su valor actual y(t) hasta la trayectoria
deseada w(t).
El vector de control u(t + k/t), k = 0, . . . , N2 − 1, se calcula para minimizar
una función de costo especı́fica que depende del error del control predictivo
r(t + k/t) − y(t + k/t), k = 1, . . . , N2 .
Al proceso real sólo se le aplica el primer elemento del vector de control óptimo
calculado u(t + k/t), k = 0, . . . , N2 − 1, mientras que se dejan de lado los
demás elementos de dicho vector. En el próximo instante de muestreo, todas
las secuencias temporales se desplazan para dar cabida a las nuevas mediciones
de la salida y(t + 1) y a las del vector de control u(t + k + 1/t + 1), cuyo primer
8.3 El Modelo del Proceso 171

w(t+k/t)

r(t+k/t) y(t+k/t)

Error
Horizonte de
optimización

k k+N1 k+N2 k=t/ t


(a)
u(t+k/t) Actual
Predictivo
Pasado
Horizonte
de control

k k+Nu −1 k=t/ t
(b)

Fig. 8.1: Estrategia del control predictivo. (a) Señales: deseada (w(t)), de referencia
(r(t)) y de salida predictiva (y(t + k/t)). (b) Señal de control predictivo u(t).

elemento es generalmente diferente al primer elemento del vector u(t + k/t),


previamente calculado. Este principio se denomina estrategia del “horizonte
retroactivo”.

Por consiguiente, la estrategia del control predictivo comprende: el proceso de


predicción a través de un modelo del proceso, la especificación de una trayectoria de
referencia, la estructuración de la futura ley de control, la definición de la función de
costo (y sus restricciones) y el cálculo del escenario de control óptimo. Tal estrategia
puede ser visualizada en el diagrama de bloques mostrado en la Fig. 8.2.

Entradas y
salidas Salidas + Trayectoria de
pasadas predecidas referencia
MODELO -
Entradas
futuras
OPTIMIZADOR

Funcion
’ de costo restricciones

Fig. 8.2: Estrategia del Control Predictivo Basado en Modelos

8.3. El Modelo del Proceso


El proceso SISO, probablemente no lineal, puede modelarse como:

y(t) = x(t) + n(t) (8.1)


172 Control Predictivo

tal como se ilustra en la Fig. 8.3, donde y(t) es la salida medible del proceso, u(t) es
la entrada al proceso (la señal de control), x(t) es la salida del modelo y n(t) es el
disturbio en el proceso.

n
u x y
MODELO

Fig. 8.3: Modelo del proceso bajo perturbaciones.

El Disturbio n(t)

La señal de disturbio n(t) incluye todos los efectos no deseados en la salida y(t).
Esta señal representa el efecto conjunto de todos los disturbios sobre el proceso,
otras entradas no medibles, ruido de medición, errores de modelado, incertidumbres,
etc. Una forma de modelar al disturbio consiste en introducir un ruido blanco e(t)
a un filtro. La salida del filtro, la señal de disturbio n(t) de interés, también es un
ruido pero coloreado. Los conceptos de ruido blanco y ruido coloreado se detallan a
continuación.
El ruido blanco e(t) es una señal aleatoria cuyos valores poseen una media o val-
or esperado nulo y una determinada distribución estadı́stica f (e). Esta distribución
puede ser uniforme, tal como se muestra en la Fig. 8.4 o gaussiana (la famosa cam-
pana). Si analizamos las señales de un ruido blanco en dos bases de tiempo diferentes,
encontraremos que tales valores no guardan correlación estadı́stica alguna entre ellas;
es decir, tales valores no están correlacionados. Sea e un vector de ruido blanco. La
media y la autocorrelación R(τ ) de e se expresan como:

E[e] = 0 R(τ ) = E[eeT ] = σ 2 I

donde τ es una base de tiempos arbitraria, E[.] es el operador estadı́stico esperanza,


I es la matriz identidad y σ 2 es conocida como la varianza. La densidad espectral de
potencia S(ω) del ruido blanco se halla tomando la transformada de Fourier de σ 2 I,
resultando la varianza σ 2 ; es decir, un espectro de frecuencias de magnitud constante
e igual a σ 2 , para un rango de frecuencias con intervalo < +∞, −∞ >, tal como se
muestra en la Fig. 8.4, donde también se ilustran las caracterı́sticas autocorrelación
R(τ ), densidad espectral de potencia S(ω) y distribución f (n) del ruido coloreado.
Cualquier ruido, sea z, que no cumpla las dos caracterı́sticas estadı́sticas del ruido
blanco, se denomina ruido coloreado. Tal como se mencionaba anteriormente, si ten-
emos una fuente generadora de ruido blanco, es fácil obtener ruido coloreado. Basta
pasar el ruido blanco por un filtro. A la salida del filtro tendremos ruido coloreado,
caracterizado por poseer un espectro de frecuencias no uniforme.
Matemáticamente, el disturbio n(t), que es de carácter estocástico, puede ser
modelado mediante un filtro coloreado de la forma:

n(t) C(z −1 )
= (8.2)
e(t) D(z −1 )
8.3 El Modelo del Proceso 173

R(τ ) R(τ )

σ2 Autocorrelación
τ τ
0 0
f(e) f(n)
... ... e n
e Filtro e
0 Ruido Ruido 0
blanco coloreado
uniforme
S(ω) S(ω)
Densudad
... ... espectral
de potencia
ω
0 0 ω

Fig. 8.4: Ruido blanco y ruido coloreado, con sus caracterı́sticas estadı́sticas.

donde z −1 es el operador de desplazamiento, e(t) es un ruido blanco no correlacionado


con media cero, y los polinomios son de la forma:
C(z −1 ) = 1 + c1 z −1 + · · · + cnc z −nc (8.3)
−1 −1 −nd
D(z ) = 1 + d1 z + · · · + d nd z (8.4)
El filtro de disturbio debe diseñarse: para eliminar disturbios en el estado estable
(cuando z = 1), como filtro selectivo (para eliminar una determinada frecuencia)
y para incrementar la robustez del sistema en la presencia de errores de medición.
Estructuras tı́picas de los polinomios del filtro pueden ser:
C(z −1 ) = 1 + cz −1 ; D(z −1 ) = (1 + dz −1 )(1 − z −1 )
Los conceptos de ruido blanco y filtro coloreado se explican en el ejemplo ??. De la
ecuación (8.2) podemos despejar:
C(z −1 )n(t) = D(z −1 )e(t)
El operador de desplazamiento z −1 está relacionado con el tiempo discreto t como
sigue:
[1 + c1 z −1 + · · · + cnc z −nc ]n(t) = n(t) + c1 n(t − 1) + · · · + cnc n(t − nc ) (8.5)
[1 + d1 z −1 + · · · + dnd z −nd ]e(t) = e(t) + d1 e(t − 1) + · · · + dnd e(t − nd ) (8.6)

La Salida x(t) del Modelo


La señal x(t) representa el efecto del proceso en la salida y(t) debido a la entrada
u(t). De nuevo, x(t) no es una señal medible. En general, la relación entre u(t) y x(t)
puede representarse mediante un modelo dinámico genérico de la forma:
x(t) = f (x(t − 1), x(t − 2), . . . , u(t − 1), u(t − 2), . . .) (8.7)
174 Control Predictivo

donde f (.) es una función que puede estructurarse de diversas formas. Es decir,
f (.) puede ser una ecuación de diferencias, una red neuronal o una caja negra con
parámetros a ser estimados. Notar en (8.7) que cuando no se considera n(t), entonces:
x(t) = y(t), x(t − 1) = y(t − 1), y ası́ sucesivamente.

El Modelo CARIMA
El modelo CARIMA, del inglés Controlled Autoregressive Integrated Moving Av-
erage, es un modelo lineal básico y bastante extendido en su aplicación, y es pre-
cisamente el que emplearemos. Tal modelo CARIMA para un determinado proceso
puede ser representado por:
C(z −1 )
A(z −1 )y(t) = B(z −1 )u(t) + e(t) (8.8)
D(z −1 )
donde z es la variable de desplazamiento de la transformada Z, y:

A(z −1 ) = 1 + a1 z −1 + ... + ana z −na (8.9)


−1 −1 −nb
B(z ) = b1 z + ... + bnb z (8.10)

El origen del término CARIMA se debe a que la ecuación de diferencias del modelo
del proceso presenta tres componentes, a saber, la componente salida autoregresiva
A(z −1 )y(t), de donde despejamos y(t):

y(t) = − a1 y(t − 1) − a2 y(t − 2) − ... − ana y(t − na )

el componente promedio temporal de control B(z −1 )u(t), es decir:

+ b0 u(t − 1) + b1 u(t − 2) + ... + bnb u(t − nb − 1)


C(z −1 )
y el componente promedio temporal integrado del error D(z −1 )
e(t):

e(t) + c1 e(t − 1) + c2 e(t − 2) + ... + cnc e(t − nc )


+
D(z −1 )
Por ejemplo, para un proceso de segundo orden sin presencia de perturbaciones; esto
es, con C(z −1 ) = 0, la representación CARIMA toma la forma:
B(z −1 ) b1 z −1 + b2 z −2
y(t) = x(t) = u(t) = u(t) (8.11)
A(z −1 ) 1 + a1 z −1 + a2 z −2
la cual conduce a la ecuación de diferencias:

y(t) = −a1 y(t − 1) − a2 y(t − 2) + b1 u(t − 1) + b2 u(t − 2) (8.12)

El modelo lineal CARIMA más generalizado es de la forma:


B(z −1 ) C(z −1 )
A(z −1 )y(t) = u(t) + e(t) (8.13)
F (z −1 ) D(z −1 )
Notar en (8.13) que la salida y(t) del modelo también cumple que (ver ecuación (8.1)):
B C
y(t) = x(t) + n(t) x(t) = u(t) n(t) = e(t)
AF AD
8.3 El Modelo del Proceso 175

La representación predictiva de la última expresión es:

y(t + k/t) = x(t + k/t) + n(t + k/t) (8.14)

donde:
B C
x(t + k/t) = u(t + k/t) n(t + k/t) = e(t + k/t)
AF AD

Ejemplo 8.1
El modelo lineal de orden dos de un servomotor DC puede ser descrito por las si-
guientes ecuaciones en el espacio de estado:

q̇ = w
ẇ = −c1 q − c2 w + c3 u

donde q es la posición angular y w = dq/dt es la velocidad angular. Asumiendo que


el ruido de medición n(t) en la posición del eje del servomotor (la salida del proceso)
es coloreado y de la forma:
1
n(t) = e(t)
1 − z −1
determine su modelo CARIMA.
Solución: La función de transferencia de pulso del proceso de segundo orden posee
la forma:
q(z) b1 z + b2 b1 z −1 + b2 z −2 B(z −1 )
= 2 = =
u(z) z + a1 z + a2 1 + a1 z −1 + a2 z −2 A(z −1 )
Añadiendo el ruido de medición obtenemos:
B(z −1 ) B(z −1 ) 1
y(z) = u(z) + n(t) = u(z) + e(t)
A(z −1 ) A(z −1 ) 1 − z −1

(1 − z −1 )A(z −1 )y(z) = (1 − z −1 )B(z −1 )u(z) + Ae(z)


donde e(t) es ruido blanco gaussiano con media nula. La ecuación de diferencias del
proceso ruidoso se obtiene despejando y(t) de la última expresión:

y(t) = (1 − a1 )q(t − 1) + (a1 − a2 )q(t − 2) + a2 q(t − 3)+

b1 u(t − 1) + (b2 − b1 )u(t − 2) − b2 u(t − 3) + e(t) + a1 e(t − 1) + a2 e(t − 2)

Ejemplo 8.2

Comparar las respuestas no ruidosa q(t) y ruidosa y(t) del ejemplo anterior. Los
parámetros requeridos se derivan de un proceso de segundo orden cuyas ecuaciones
de estado y de salida son conocidas. La respuesta q(t) se obtiene cuando la entrada al
proceso es una sinusoide u(t), mientras que la ruidosa y(t) se debe a un ruido blanco
gaussiano que se añade a q(t). Asumir un tiempo de muestreo de T = 0.01 s.
Solución: La solución del problema planteado se detalla en el programa ejruido.m.
Los resultados se muestran en la Fig. 8.5. Observar en la Fig. inferior que el ruido
e(t) empleado posee media cero y una función de distribución gaussiana.
176 Control Predictivo

% ejruido.m RESPUESTAS NO RUIDOSA Y RUIDOSA EN UN PROCESO DE 2DO ORDEN


clear all; close all; clc;
% PROCESO CONTINUO DE SEGUNDO ORDEN Y SU MODELO DISCRETO
Ac = [0 1;-14.4007 -1.2707]; Bc = [0;30.4696]; Cc = [1 0]; Dc = [0];
T = 0.01; [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,’zoh’); [num,den]=ss2tf(G,H,C,D);
a1 = den(2); a2 = den(3); b1 = num(2); b2 = num(3);
% CONDICIONES INICIALES NULAS
qp=0; qpp=0; up=0; upp=0;
yp=0; ypp=0; yppp=0; ep=0; epp=0;
% RESPUESTAS DEL PROCESO
MM = 1000; for t=1:MM; u=sin(0.006*t); U(t)=u; % SINUSOIDE DE ENTRADA
q = -a1*qp -a2*qpp + b1*u + b2*up; Q(t)=q; % RESPUESTA NO RUIDOSA
e = 0.1*randn; E(t)=e; % RUIDO BLANCO GAUSSIANO, MEDIA NULA, VARIANZA 0.1
y = (1-a1)*yp + (a1-a2)*ypp + a2*yppp ...
+ b1*u + (b2-b1)*up - b2*upp + e + a1*ep + a2*epp; Y(t)=y;
yppp=ypp; ypp=yp; yp=y; upp=up; up=u; epp=ep; ep=e;
end
% GRAFICOS
ejex = linspace(0,MM*T,MM); subplot(5,1,1); plot(ejex,U); grid
ylabel(’u(t) [V]’); xlabel(’TIEMPO [s]’); subplot(5,1,2);
plot(ejex,Q); grid; ylabel(’q(t) [rad]’); xlabel(’TIEMPO [s]’);
subplot(5,1,3); plot(ejex,Y); grid; ylabel(’y(t) [rad]’)
xlabel(’TIEMPO [s]’); subplot(5,1,4); plot(ejex,E); grid;
ylabel(’e(t) [rad]’); xlabel(’TIEMPO [s]’); subplot(5,1,5); hist(E);
ylabel(’e(t) GAUSS.’); xlabel(’<------ e(t) ------>’);
print -f -deps ejruidor

8.4. El Controlador Predictivo


8.4.1. Objetivo del Controlador
El objetivo del controlador predictivo es determinar el vector de control:

u(t + k/t), k = 0, . . . , N2 − 1

que minimice la siguiente función de costo:


N2
X NX
u −1

J= [r(t + k/t) − y(t + k/t)]2 + λ [∆u(t + k/t)]2 (8.15)


k=N1 k=0

donde :
∆u(t + k/t) = u(t + k/t) − u(t + k − 1/t) (8.16)
con ∆u(t + k/t) = 0 para k ≥ Nu . La trayectoria de referencia está representada por
la ecuación:
r(t + k/t) = αr(t + k − 1/t) + (1 − α)w(t + k/t) (8.17)
evaluada para k = 1, . . . , N2 , con r(t/t) = y(t). Los parámetros de diseño son:

N1 : horizonte de predicción mı́nimo.


N2 : horizonte de predicción máximo; por defecto podemos considerar N 2 =
N1 + 1, . . . , N1 + 10.
8.4 El Controlador Predictivo 177

u(t) [V] 1
0
−1
0 1 2 3 4 5 6 7 8 9 10
TIEMPO [s]
−3
x 10
5
q(t) [rad]

0
−5
0 1 2 3 4 5 6 7 8 9 10
TIEMPO [s]

10
y(t) [rad]

0
−10
0 1 2 3 4 5 6 7 8 9 10
TIEMPO [s]

0.5
e(t) [rad]

0
−0.5
0 1 2 3 4 5 6 7 8 9 10
TIEMPO [s]
e(t) GAUSS.

400
200
0
−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4
<−−−−−− e(t) −−−−−−>

Fig. 8.5: Respuestas del ejemplo 8.2.

Nu : horizonte de control; por defecto considerar Nu = 1.

N1 , . . . , N2 : horizonte de coincidencia; por defecto considerar N1 (tiempo muer-


to).
λ: parámetro de ponderación; por defecto considerar cero.
α: parámetro de filtraje; por defecto considerar cero.
Si la trayectoria deseada w(t) se programa previamente, entonces los valores futuros
w(t+k) se pueden emplear para determinar w(t+k/t). Es decir, w(t+k/t) = w(t+k)
para k = 1, . . . , N2 . Si no deseamos una estrategia de control predictivo en avance, el
valor actual w(t) se puede usar como un valor de predicción w(t + k/t) = w(t) para
k = 1, . . . , N2 .
Es importante observar además que:
1. La trayectoria de referencia dada en (8.17) constituye un filtro de primer orden
para w(t). Este filtro se puede representar mediante la siguiente función de
transferencia:
r(z) 1−α z(1 − α)
= −1
= (8.18)
w(z) 1 − αz z−α

2. El filtro para w(t) se puede implementar fuera del lazo de control, no afectando
de esta manera a la estabilidad del sistema, pero sı́ contribuyendo al rechazo
del ruido.
178 Control Predictivo

La Fig. 8.6 ilustra el objetivo del control predictivo basado en modelos.

N u =4

³±²± µ u
À¾²¿¾ ²ÁÀ ²Âà ŠƲÇÆ È²ÈÉ Ê²ËÊ Ì²ÌÍ Î²ÏΠвÐÑ
u(t+k/t)

´²´ · » ¼²½¼ IJÄ


¶ ¸²¹¸ º²º
o o o o
o o o o
o o o o o o o o o o o o o o o o
o o o o o
o o o
r=w
y y(t+k/t)
N1 N2
PASADO FUTURO
TIEMPO ACTUAL t

Fig. 8.6: Objetivo del control predictivo basado en modelos.

8.4.2. Respuesta Libre y Respuesta Forzada


Conceptualmente, la respuesta futura y(t + k/t) puede ser considerada como el
resultado acumulativo de dos efectos:

y(t + k/t) = ylibre (t + k/t) + yf orz (t + k/t) (8.19)

donde el subı́ndice forz indica forzada. La respuesta libre ylibre (t + k/t) aparece como
consecuencia de los factores siguientes:
El efecto debido a las señales de control pasadas u(t − 1), u(t − 2), . . .
El efecto debido a un escenario de control futuro. Por defecto se tiene u(t/t) =
u(t − 1), u(t + 1/t) = u(t − 1), u(t + 2/t) = u(t − 1), . . .; esto es, ∆u(t/t) =
∆u(t + 1/t) = . . . = ∆u(t + Nu − 1/t) = 0.
El efecto debido a las perturbaciones futuras del ruido n(t + k/t).
Las condiciones iniciales a tomar son: y(t), y(t − 1), . . . , y(t − n), donde n es el orden
del proceso.
La componente forzada yf orz (t+k/t) aparece debido al efecto causado por cambios
consecutivos de la variable manipulada, tanto en el tiempo actual como en el tiempo
futuro. Es decir, originado por las acciones de control ∆u(t/t), ∆u(t + 1/t), . . . ,
∆u(t + Nu − 1/t), con las condiciones iniciales: y(k) = y(k − 1) = · · · = y(k − n) = 0.
La Fig. (Fig. 8.7(c)) muestra el efecto conjunto de las respuestas libre y forzada
en un proceso lineal, donde tales respuestas se pueden sumar gracias a que se cumple
el principio de superposición. Desafortunadamente, el principio de superposición no
es válido para procesos no lineales.
Por consiguiente, el efecto acumulativo de la acción conjunta de los escalones es:

yf orz (t + k/t) = gk ∆u(t/t) + gk−1 ∆u(t + 1/t) + · · · + gk−Nu +1 ∆u(t + Nu − 1/t) (8.20)
8.4 El Controlador Predictivo 179

y
3
Respuestas libre más forzada
2 Señal de referencia

1
Respuesta libre
0 Respuesta forzada
t
u Señales de control para
2 la respuesta lforzada

1
Señales de control para
0 la respuesta libre
t

Fig. 8.7: Respuestas libre y forzada.

donde los parámetros g1 , . . . , gN2 son los coeficientes de la respuesta del sistema al
escalón unitario. Es decir, la respuesta de la salida del sistema a los cambios tipo
escalón unitario en la entrada.
Para un sistema lineal, la respuesta al escalón unitario no depende del punto de
operación. Este punto es fijo y puede ser calculado fuera de lı́nea (“off-line”) usando
el modelo del sistema.
Para un sistema no lineal, como en el caso de una red neuronal, la respuesta al
escalón unitario es diferente para cada punto de operación. Esta respuesta tiene que
ser calculada en cada tiempo de muestreo (“on-line”), aplicando en cada instante de
muestreo un cambio escalón (ficticio) a la entrada actual del proceso y calculando su
efecto en la salida respectiva.
De la ecuación (8.20) se puede obtener la siguiente expresión para la componente
forzada:
Yf orz = GU (8.21)
donde:
 T
Yf orz = yf orz (t + N1 /t) yf orz (t + N1 + 1/t) · · · yf orz (t + N2 /t)
 
g N1 gN1 −1 ... ...
 gN1 +1 g N1 ... ... 
G=
 ...


... ... ...
g N2 gN2 −1 . . . gN2 −Nu +1
 T
U= ∆u(t/t) ∆u(t + 1/t) · · · ∆u(t + Nu − 1/t)
y empleando la ecuación (8.19), podemos escribir:

Y = Ȳ + GU (8.22)
180 Control Predictivo

donde:

Y = [y(t + N1 /t) . . . y(t + N2 /t)]T ; U = [∆u(t/t) . . . ∆u(t + Nu − 1/t)]T

Ȳ = [ylibre (t + N1 /t) . . . ylibre (t + N2 /t)]T ; R = [r(t + N1 /t) . . . r(t + N2 /t)]T

Ejemplo 8.3

Determinar la respuesta libre y los coeficientes gt de la respuesta al escalón para el


proceso servomotor DC descrito en el ejemplo 8.1.
Solución: La ecuación de diferencias del proceso es:

y(t) = −a1 y(t − 1) − a2 y(t − 2) + b1 u(t − 1) + b2 u(t − 2)

Cuando la entrada es u(k) = 1 para todo k ≥ 0, entonces y(k) = g(k) para todo
t ≥ 0. Luego, los coeficientes g(t) se determinan de:

g(t) = −a1 g(t − 1) − a2 g(t − 2) + b1 u(t − 1) + b2 u(t − 2)

Ası́ podemos obtener que g(0) = 0, g(1) = b1 , g(2) = −a1 b1 + b1 + b2 , y:

g(t) = −a1 g(t − 1) − a2 g(t − 2) + b1 + b2 ; t≥3

Por otro lado, la condición para respuesta libre es que:

u(t/t) = u(t + 1/t) = · · · = u(t + N2 /t) = u(t − 1)

Aplicando tal condición en la ecuación de diferencias del proceso, se obtiene:

ylibre (t + 1) = −a1 ylibre (t) − a2 ylibre (t − 1) + b1 u(t) + b2 u(t − 1)


= −a1 ylibre (t) − a2 ylibre (t − 1) + (b1 + b2 )u(t − 1)

8.4.3. La Ley de Control SISO


Con la notación anterior, la función de costo (ecuación (8.15)) resulta:

(R − Y)T (R − Y) + λUT U = [(R − Ȳ) − GU]T [(R − Ȳ) − GU] + λUT U (8.23)

la cual es una forma cuadrática en U, cuya minimización por diferenciación resulta


en la siguiente solución óptima:

U∗ = (GT G + λI)−1 GT (R − Y) (8.24)

Es importante indicar que:

Solamente el primer elemento ∆u(t/t) de U∗ es necesario para computar la


entrada de control actual u(t) = u(t − 1) + ∆u(t/t). El mismo procedimiento se
repite para la nueva medición y(t + 1) en el próximo instante de tiempo t + 1.
Este procedimiento se denomina el principio del “horizonte retroactivo”.
8.4 El Controlador Predictivo 181

La matriz [GT G + λI] a ser invertida tiene dimensión Nu × Nu . Para el caso


por defecto, es decir, para Nu = 1, se obtiene una ley de control escalar (con
muy buenos resultados en muchos casos prácticos) de la forma:
P N2
gk [r(t + k/t) − ylibre (t + k/t)]
∆u(t) = k=N1 PN 2 (8.25)
2
k=N1 gk + λ

Otra aproximación para la estructuración del escenario de control consiste en


el empleo de funciones base de la forma:
X
u(t + k/t) = µ i Bi (8.26)
i

La optimización de la señal de control u(t + k/t) es ahora con respecto a los


parámetros µi .
El control predictivo muestra diferentes propiedades dependiendo de la selección
de N1 , N2 y Nu . Por ejemplo:
Si N1 = n, N2 = 2n − 1, Nu = n y λ = 0, la salida entonces alcanza la
referencia después de n muestras y se mantiene en este estado, proporcionando
una vigorosa acción de control. Este caso es muy apropiada para aplicaciones
que requieran alto rendimiento, como en la robótica.
Si escogemos N1 = Nu = 1, N2 = ∞ y λ = 0, obtendremos una respuesta
transitoria de la variable controlada, caracterizada por un tiempo de subida
rápido y un tiempo de estabilización lento. Este hecho es relevante en el control
de procesos industriales.

Ejemplo 8.4

Determinar la matriz dinámica de control para el proceso del ejemplo 8.1 empleando
los datos siguientes: N1 = 7, N2 = 12, Nu = 6.
Solución: La solución del problema planteado se detalla en el programa lcm1.m
listado a continuación.
% lcm1.m CÁLCULO DE UNA MATRIZ DINÁMICA DE CONTROL
clear all; close all; clc;
% PROCESO CONTINUO DE SEGUNDO ORDEN Y SU MODELO DISCRETO
Ac=[0 1;-14.4007 -1.2707]; Bc=[0;30.4696]; Cc=[1 0]; Dc=[0];
T=0.01; [G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,’zoh’); [num,den]=ss2tf(G,H,C,D);
a1=den(2); a2=den(3); b1=num(2); b2=num(3);
% CONDICIONES INICIALES NULAS
qp=0; qpp=0; up=0; upp=0;
yp=0; ypp=0; yppp=0; ep=0; epp=0;
N1=6; N2 =12; Nu =7; % HORIZONTES DE CONTROL Y DE OPTIMIZACI ÓN
% RESPUESTA AL ESCALON
g(1) = b1; g(2) = -a1*b1 + b1 + b2;
for k=3:12; g(k) = -a1*g(k-1) -a2*g(k-2) + b1 + b2; end
% LUEGO, LA MATRIZ G TIENE LA FORMA:
G = [g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5) 0
g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4) g(N1-5)
182 Control Predictivo

g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3) g(N1-4)


g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2) g(N1-3)
g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1) g(N1-2)
g(N1+5) g(N1+4) g(N1+3) g(N1+2) g(N1+1) g(N1) g(N1-1)
g(N2) g(N2-1) g(N2-2) g(N2-3) g(N2-4) g(N2-5) g(N2-Nu+1)];

8.5. Procedimiento de Diseño


El procedimiento para diseñar un sistema de control predictivo SISO basado en
modelos, empleando la matriz dinámica de control es como sigue:
1. Formular el problema y definir las especificaciones de diseño, incluyendo los
horizontes de control N1 , N2 y Nu .
2. Determinar el modelo CARIMA del proceso. Ver subsección 8.3.
3. Calcular la respuesta libre y la respuesta forzada del proceso. Ver subsección
8.4.2.
4. Determinar la ley de control. Ver subsección 8.4.3.
5. Validar mediante simulación el sistema de control predictivo SISO.

8.6. Ejemplo de Diseño


Control de Velocidad de un Proceso Electromecánico
Los parámetros valorados del proceso mostrado en la figura 8.8 son: momento de
inercia del rotor J = 0.01 kg-m2 /s2 , constante electromotriz Ke = Kt = 0.01 N-m/A,
resistencia total en la armadura R = 12 ohm, condensador C = 0.5 µF, inductancia
de armadura L = 0.5 H, constante torsional Kω = 1.8 N-m/rad. Si vC es el voltaje

IR R L IM
+ Kω
+
v C e
-
-
T ω2
J
ω1

Fig. 8.8: Sistema electromecánico.

en C, las ecuaciones dinámicas que gobiernan el subproceso eléctrico son:


1 vC dIM
IR = (v − vC ); C = IR − IM ; L = vC − e
R dt dt
El torque T del motor y la tensión contraelectromotriz se expresan como:
T = K t IM ; e = K e ω1
donde Kt y Ke son la constantes del motor y contarelectromotriz, respectivamente.
Despreciando pérdidas, el torque T también se formula como:
dω2
J =T
dt
8.6 Ejemplo de Diseño 183

Ası́ mismo, la relación que gobierna el resorte rotacional de constante K ω toma la


forma:
dT
= Kω (ω1 − ω2 )
dt
Seleccionando como variables de estado x1 = vC , x2 = IM y x3 = ω2 , y eligiendo
como salida y = x3 , la representación del proceso en el espacio de estado resulta:

ẋ = Ax + Bu; y = Cx
 1 
− RC − C1 0
Kω −Ke Kω
A= LKω +Kt Ke 0 LKω +Kt Ke

Kt
0 J 0
 1

RC  
B =  0 ; C= 0 0 1
0
Siguiendo el procedimiento de diseño propuesto, en el programa p11pred1.m, cuyo
listado se muestra abajo, se diseña un sistema de control predictivo con fuerza de
control escalar, para controlar la velocidad angular x3 = ω2 del eje del motor mediante
el voltaje de entrada v, el cual puede variar entre ± 100 volt. Las especificaciones de
diseño alcanzadas son: tiempo de estabilización de la señal controlada x 3 , menor que
6 s, respuesta con sobrepico máximo de 5 %, y error en estado estacionario nulo, tal
como se ilustra en la Fig. 8.9.
% p11pred1.m CONTROL DE LA VELOCIDAD DE UN PROCESO ELECTROMEC ÁNICO
clear all; close all; clc;
% MODELO DEL PROCESO EN TIEMPO CONTINUO
J = 0.01; Ke = 0.01; Kt = 0.01; R = 12; C = 0.5; L = 0.5; Kw = 1.8;
Ac = [-1/(R*C) -1/C 0;Kw/(L*Kw+Kt*Ke) 0 -Ke*Kw/(L*Kw+Kt*Ke);0 Kt/J 0];
Bc = [1/(R*C);0;0]; Cc = [0 0 1]; Dc = [0]; T=0.2; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,’zoh’); [numd,dend]=ss2tf(G,H,C,D);
a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4);
% RESPUESTA AL ESCALON
% RESPUESTA AL ESCALON Y MATRIZ GANANCIA GG
g(1) = b1; g(2) =-a1*b1+b1+b2; g(3)=-a1*g(2)-a2*g(1)+b1+b2+b3;
for k=4:10; g(k) =-a1*g(k-1)- a2*g(k-2)-a3*g(k-3)+b1+b2+b3; end;
N1 =1; N2 =10; Nu =1; % HORIZONTES
for k=1:4
yf(k)=0; y(k)=0; r(k)=0; u(k)=0; % CONDICIONES Y PAR ÁMETROS INICIALES
end
du(1)=0; alf = 0.85; lambda = 0; MM=1000;
% LAZO DE CONTROL
for t =4:MM+3
for k=1:N2
W(t+k)= 4*sign(sin(0.01*t)); % TRAYECTORIA DESEADA
r(t+k) = alf*r(t+k-1) + (1-alf)*W(t+k); % TRAYECTORIA DE REFERENCIA
yf(t+k) = -a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end % yf ES LA RESPUESTA LIBRE
% LEY DE CONTROL ESCALAR
du(t) = (...
g(1)*(r(t+1)-yf(t+1))+g(2)*(r(t+2)-yf(t+2))+g(3)*(r(t+3)-yf(t+3))+ ...
184 Control Predictivo

g(4)*(r(t+4)-yf(t+4))+g(5)*(r(t+5)-yf(t+5))+g(6)*(r(t+6)-yf(t+6))+ ...
g(7)*(r(t+7)-yf(t+7))+g(8)*(r(t+8)-yf(t+8))+g(9)*(r(t+9)-yf(t+9))+ ...
g(10)*(r(t+10)-yf(t+10)))/(g(1)^2+g(2)^2+g(3)^2+g(4)^2+g(5)^2+ ...
g(6)^2+g(7)^2+g(8)^2+g(9)^2+g(10)^2+lambda);
u(t) = u(t-1) + du(t);
% LIMITADOR MÁS LA ECUACIÓN DE DIFERENCIAS DEL PROCESO
if(u(t) > 100); u(t)=100; elseif(u(t) < -100); u(t) = - 100; end
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end % FIN DEL LAZO
% GRAFICOS
ejex=linspace(0,MM*T,MM-3);
subplot(2,1,1); plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel(’Velocidad [rad/s]’); xlabel(’Tiempo [s]’); subplot(2,1,2)
plot(ejex,u(4:MM)); grid; xlabel(’Tiempo [s]’);
ylabel(’Voltaje de control [V]’); print -deps -f p11pred1

5
Velocidad [rad/s]

−5
0 20 40 60 80 100 120 140 160 180 200
Tiempo [s]

50
Voltaje de control [V]

−50
0 20 40 60 80 100 120 140 160 180 200
Tiempo [s]

Fig. 8.9: Velocidad angular controlada y el voltaje de control obtenidas ejecutando el


programa p11pred1.m.

El programa p11pred2.m resuelve el mismo problema, pero empleando una fuerza de


control vectorial. El resultado de la simulación se muestra en la Fig. 8.10, el cual
resulta muy similar al obtenido en la Fig. 8.9.

% p11pred2.m CONTROL DE VELOCIDAD USANDO LEY DE CONTROL MATRICIAL


% MODELO DEL PROCESO EN TIEMPO CONTINUO
J = 0.01; Ke = 0.01; Kt = 0.01; R = 12; C = 0.5; L = 0.5; Kw = 1.8;
Ac = [-1/(R*C) -1/C 0;Kw/(L*Kw+Kt*Ke) 0 -Ke*Kw/(L*Kw+Kt*Ke);0 Kt/J 0];
Bc = [1/(R*C);0;0]; Cc = [0 0 1]; Dc = [0]; T=0.2; % TIEMPO DE MUESTREO
% MODELO LINEAL DISCRETO
[G,H,C,D]=c2dm(Ac,Bc,Cc,Dc,T,’zoh’); [numd,dend]=ss2tf(G,H,C,D);
a1=dend(2); a2=dend(3); a3=dend(4); b1=numd(2); b2=numd(3); b3=numd(4);
N1 =1; N2 =10; Nu =5; % HORIZONTES
% RESPUESTA AL ESCALON Y MATRIZ GANANCIA GG
g(1) = b1; g(2) =-a1*b1+b1+b2; g(3)=-a1*g(2)-a2*g(1)+b1+b2+b3;
8.7 Problemas Propuestos 185

for k=4:10; g(k) =-a1*g(k-1)- a2*g(k-2)-a3*g(k-3)+b1+b2+b3; end;


GG=[g(1) 0 0 0 0
g(2) g(1) 0 0 0
g(3) g(2) g(1) 0 0
g(4) g(3) g(2) g(1) 0
g(5) g(4) g(3) g(2) g(1)
g(6) g(5) g(4) g(3) g(2)
g(7) g(6) g(5) g(4) g(3)
g(8) g(7) g(6) g(5) g(4)
g(9) g(8) g(7) g(6) g(5)
g(10) g(9) g(8) g(7) g(6)]; G1 = GG’*GG;
% CONDICIONES INICIALES Y PARÁMETROS DE CONTROL
yf(1)=0; yf(2)=0; yf(3)=0; yf(4)=0;y(1)=0; y(2)=0; y(3) = 0; y(4)=0;
r(1) =0; r(2) =0; r(3)=0; u(1) =0; u(2) =0; u(3)=0; du(1)=0;
alf=0.85; lambda=0.1; I=eye(5,5); MM=1000;
% LAZO DE CONTROL CON HORIZONTES N1 =1; N2 =10; Nu =5;
for t =4:MM+3
for k=1:N2; W(t+k)= 4*sign(sin(0.01*t)); end % TRAYECTORIA DESEADA
for k=1:N2; r(t+k)=alf*r(t+k-1)+(1-alf)*W(t+k); end % REFERENCIA R
R=[r(t+1) r(t+2) r(t+3) r(t+4) r(t+5) ...
r(t+6) r(t+7) r(t+8) r(t+9) r(t+10)]’;
for k=1:N2
yf(t+k)=-a1*yf(t+k-1)-a2*yf(t+k-2)-a3*yf(t+k-3)+(b1+b2+b3)*u(t-1);
end
YF=[yf(t+1) yf(t+2) yf(t+3) yf(t+4) yf(t+5) ...
yf(t+6) yf(t+7) yf(t+8) yf(t+9) yf(t+10)]’; % RESPUESTA LIBRE
% LEY DE CONTROL VECTORIAL
U=inv(G1+lambda*I)*GG’*(R-YF); du=U(1); u(t) = u(t-1) + du;
% LIMITADOR MÁS LA ECUACIÓN DE DIFERENCIAS DEL PROCESO
if(u(t) > 100); u(t)=100; elseif(u(t) < -100); u(t) = - 100; end
y(t+1)=-a1*y(t)-a2*y(t-1)-a3*y(t-2)+b1*u(t)+b2*u(t-1)+b3*u(t-2);
end
% GRAFICOS
ejex=linspace(0,MM*T,MM-3);
subplot(2,1,1); plot(ejex,W(4:MM),ejex,y(4:MM)); grid
ylabel(’Velocidad [rad/s]’); xlabel(’Tiempo [s]’); subplot(2,1,2)
plot(ejex,u(4:MM)); grid; xlabel(’Tiempo [s]’);
ylabel(’Voltaje de control [V]’); print -deps -f p11pred2

8.7. Problemas Propuestos


Problema 8.1 Posición de un Motor DC

El circuito con opamps de la Fig. 2.22 alimenta a un motor DC cuya posición θ


queremos controlar empleando dos sistemas de control predictivo, uno con ley de
control escalar y otro con ley de control matricial. Las salidas controladas deben de
satisfacer ciertas especificaciones de diseño dictadas por el usuario. Diseñe y simule
los sistemas de control pedidos sabiendo que Kp = 5 y que:

θ 1.5
=
Vo s(0.2s + 1)
186 Control Predictivo

Velocidad [rad/s]
0

−5
0 20 40 60 80 100 120 140 160 180 200
Tiempo [s]

40
Voltaje de control [V]

20

−20

−40
0 20 40 60 80 100 120 140 160 180 200
Tiempo [s]

Fig. 8.10: Resultado de la ejecución del programa p11pred2.m.

Problema 8.2 Turbina

La Fig. 8.11 muestra una turbina de agua unido a un generador eléctrico, cuya
FT es:
M (s) 6
=
ω(s) 3,2s + 1
donde M (s) es el momento rotacional generado por la turbina gracias a la acción
del flujo de agua y ω(s) es la velocidad angular del generador. Diseñar y simular dos
sistemas de control predictivo, uno con ley de control escalar y otro con ley de control
matricial, para controlar el momento M (s), cumpliendo determinadas especificaciones
de diseño dictadas por el usuario.

Generador
eléctrico
Turbina

Entrada
de agua
M
ω

Desague

Fig. 8.11: Generador accionado por una turbina de agua.

Problema 8.3 Proceso Mecánico

La Fig. 2.25 muestra una proceso mecánico traslacional, donde M = 2 kg es la


masa de un cuerpo que está accionado por una fuerza u. A esta acción se le oponen
8.7 Problemas Propuestos 187

la fuerza fK = Kx N en el resorte y la fuerza de pérdidas fB = B.8v N en el


amortiguador, donde K = 3.4 N/m es la constante del resorte, B = 0.8 N/m/s es la
constante de pérdidas, v = dx/dt es la velocidad de la masa M y x su posición. Diseñar
y simular dos sistemas de control predictivo, uno con ley de control escalar y otro con
ley de control matricial, para controlar la posición x(t), cumpliendo determinadas
especificaciones de diseño dictadas por el usuario. Recordar que la ecuación dinámica
de este proceso es:
d2 x
M 2 = u − f K − fB
dt

Problema 8.4 Proceso Hidráulico

Diseñar y simular dos sistemas de control predictivo, uno con ley de control escalar
y otro con ley de control matricial, para controlar la posición x 2 (t) de la masa M2 del
proceso hidráulico mostrado en la Fig. 2.28, cumpliendo determinadas especificaciones
de diseño dictadas por el usuario. Se sabe que M1 = 500 kg, A1 = 0.4 m2 , M2 =
2.2M1 , A2 = 2.1A1 , B = B1 = B2 = 12.3 N/m/s, y K 3.8 N/m.

Problema 8.5 Proceso Hı́brido

Diseñar y simular dos sistemas de control predictivo, uno con ley de control es-
calar y otro con ley de control matricial, para controlar el voltaje V (t) del generador
mostrado en la Fig. 2.29, actuando sobre el flujo de agua q1 (t), cumpliendo determi-
nadas especificaciones de diseño dictadas por el usuario. Se sabe que el radio de la
sección del tanque es de 0.7 m, Ra = Rc = 2.4 ohm, La = Lc = 3.5 H, Kb = 2.7
V/rad/s y JT = 5.1 N–m/rad/s2 .

Problema 8.6 Proceso Electromecánico

Diseñar y simular dos sistemas de control predictivo, uno con ley de control es-
calar y otro con ley de control matricial, para controlar la posición angular θ(s) del
sistema electromecánico mostrado en la Fig. 2.30, cumpliendo determinadas especi-
ficaciones de diseño dictadas por el usuario. Cada controlador predictivo a diseñar,
debe sustituir al amplificador de ganancia A. Datos adicionales: R = 4 ohm, L =
0.7 H, KT = 1.8 N–m/rad, B = N/rad/s, M = 20 kg, Km = 0.7 N–m/A, J = 4.8
N–m/rad/s2 y r = 0.1 m.

Problema 8.7 Inclinación de un Avión

La dinámica de un avión puede ser descrita por varios conjuntos acoplados de ecua-
ciones diferenciales no lineales. Sin embargo, bajo ciertas suposiciones, tales ecua-
ciones pueden ser desacopladas y linealizadas para obtener dos conjuntos: las ecua-
ciones longitudinales y las ecuaciones laterales. El control de la inclinación θ del
avión mostrado en la Fig. 8.12 es un problema longitudinal. Asumiendo que el avión
está en su velocidad de crucero (altura y velocidad constantes), entonces la resistencia
de arrastre y la fuerza impulsora se cancelan mientras que el empuje de elevación se
iguala con el peso (ver figura 8.12). Con tales consideraciones, se puede asumir que
188 Control Predictivo

Empuje
x

θ
Impulso α

γ
e
x’
Arrastre

δe
z
Peso
z’

Fig. 8.12: Avión comercial en pleno vuelo.

las ecuaciones longitudinales del movimiento del avión (los datos corresponden a un
avión comercial Boeing) son:
α̇ = −0.313α + 56.7q + 0.232δe
q̇ = −0.0139α − 0.426q + 0.0203δe
θ̇ = 56.7q
donde α es el ángulo de ataque, q es la relación de inclinación, θ es el ángulo de
inclinación y δe es el ángulo del deflector de elevación. La función de transferencia
del proceso es:
θ(s) 1,151s + 0,1774
= 3
δe (s) s + 0,739ss + 0,921s
mientras que sus ecuaciones de estado y de salida son:
      
α̇ −0,313 56.7 0 α 0.232
 q̇  =  −0.0139 −0.426 0   q  +  0.0203  δe
θ̇ 0 56.7 0 θ 0
 
  α
θ= 0 0 1  q 
θ
Diseñar y simular dos sistemas de control predictivo, uno con ley de control escalar y
otro con ley de control matricial, para controlar la inclinación θ del avión mostrado
en la Fig. 8.12, por medio de δe , cumpliendo determinadas especificaciones de diseño
dictadas por el usuario.

Problema 8.8 Tanques en Cascada

La Fig. A.17 muestra dos tanques idénticos colocados en cascada. La sección hori-
zontal A=9 m2 de cada tanque es constante. El objetivo de control es controlar la
altura H2 empleando el flujo Qo . La deducción del modelo linealizado del proceso se
derivó en el ejemplo A.50. Diseñar un controlador predictivo del tipo escalar y otro
del tipo matricial, con los requerimientos siguientes: tiempo de estabilización menor
que 15 s, sobreimpulso menor al 10 % y error en estado estable nulo. Estas condiciones
de diseño deben mantenerse cuando se cambie la referencia (por ejemplo de 3 a 2 m).
Además, el flujo de entrada (la señal de control) no debe sobrepasar los 3 m 3 /s.
8.7 Problemas Propuestos 189

Problema 8.9 Secador de Granos

En el proceso de la Fig. 8.13(a) se desea reducir la humedad h del material a granel


de la tolva. La banda transportadora, que se desplaza a una velocidad v = 1 m/s
constante, introduce el material a un horno de secado. El sensor de humedad detecta
hr a una distancia d = 10 m del horno y proporciona la señal de voltaje vr . El
horno puede modelarse como un proceso de primer orden. La Fig. 8.13(b) muestra
la F.T del proceso. Diseñar dos sistemas de control predictivo basado en modelos,
uno con fuerza de control escalar y otro con fuerza de control matricial. El objetivo
Tolva Controlador
Referencia
Sensor
Horno

d
v

v Deposito
(b)
d/v

u hs hr vr
1 10
e -(d/v)s
s+1 s + 0.5
Horno Tiempo muerto Sensor

Fig. 8.13: Sistema reductor de humedad.

de control es estabilizar la humedad del material en la banda transportadora. Con


fines de modelado del proceso, el tiempo muerto puede ser descrito empleando la
aproximación de Padé de tercer orden (ver ejemplo A.48):

num(s) 1 − Tt s/2 + (Tt s)2 /10 − (Tt s)3 /120


e−T s ≈ =
den(s) 1 + Tt s/2 + (Tt s)2 /10 + (Tt s)3 /120

Las especificaciones de diseño para ambos sistemas de control son: tiempo de estabi-
lización menor que 40 s, error en estado estacionario nulo y porcentaje de sobreimpul-
so menor al 5 %. La selección del tiempo de muestreo y de los horizontes de control
es a conveniencia del diseño.

Problema 8.10 Cañón en la Torreta de un Tanque

Las ecuaciones del modelo linealizado para controlar la posición angular del cañón
ubicado en la la torreta de un tanque mediante un actuador hidráulico son las si-
guientes (ver figura 8.14):

θ̇ = ω
ω̇ = p + dτ
Km Km
ṗ = −Ωm p − q+ ω + dp
J J
q̇ = −Kv Lv q − Kv K∆p Jp + Kv u + dq ; Lv = 1

donde θ es el ángulo de la torreta, ω es la velocidad angular de la torreta, p es la


aceleración angular producida por el actuador hidráulico, q es el desplazamiento de la
190 Control Predictivo

servoválvula, Km = [8.46×106 , 1.96×106 ] (el primer valor corresponde al ángulo de


desplazamiento horizontal de la torreta, mientras que el segundo valor, al ángulo de
elevación) es la ganancia del servomotor, J = [7900, 2070 lbf-ft-s 2 ] es la inercia de la
torreta, Ωm = [45.9, 17.3 rad/s] es la frecuencia natural del motor, Kv = [94.3, 94.3]
es la ganancia de la servo válvula, y K∆p = [6.33×10−6 , 3.86×10−5 ] es el coeficiente
de presión diferencial. Las cantidades dτ , dp y dq representan disturbios que también
incluyen los efectos debido a las no linealidades que no fueron tomadas en cuenta en
el modelo linealizado. Es útil saber que 1 lbf–ft–s2 = 1.355 kg–m2 .

Torreta del tanque

Angulo de
θ ’
elevacion


Azimut: angulo de
posicionamiento horizontal

Fig. 8.14: Vistas lateral y horizontal de la torreta de un tanque.

(a) Diseñar un sistema de control predictivo con fuerza de control escalar y otro
con fuerza de control matricial, para controlar el ángulo de elevación θ con
las especificaciones siguientes: tiempo de estabilización menor que 5 s, mı́nimo
sobreimpulso y error en estado estacionario nulo. Los disturbios tipo escalón
pueden actuar simultáneamente y pueden ser positivos o negativos. El sistema
de control diseñado debe ser capaz de minimizar sus efectos. La selección de los
horizontes de control es a conveniencia del problema planteado.
(b) Lo mismo que (a), pero en este caso para controlar el ángulo azimutal.
Problema 8.11

La Fig. A.2 muestra un carro de masa m = 1000 kg desplazándose con una velocidad
v gracias a la acción de la fuerza u producida por su motor. Si se desprecia la inercia
de las ruedas y se asume que la fuerza de fricción bv, donde b= 50 N-s/m es el
coeficiente de fricción, es lo único que se opone al movimiento del carro, entonces la
dinámica del proceso puede modelarse como (ver ejemplo A.9):
dv
mv̇(t) + bv(t) = u(t); v̇ =
dt
Diseñar un sistema de control predictivo con fuerza de control escalar y otro con
fuerza de control matricial, para controlar la velocidad del móvil con mı́nimo tiempo
de estabilización y mı́nimo sobreimpulso. La señal de referencia puede ser arbitraria
8.7 Problemas Propuestos 191

(problema de seguimiento). La selección de los valores de los horizontes y el tiempo


de muestreo son a conveniencia del problema planteado.
Capı́tulo 9

Control Fuzzy

En este capı́tulo se diseñan varios sistemas de control fuzzy, donde el controlador del
sistema es del tipo fuzzy. Tal controlador se compone de un fuzzyficador que convierte
las variables de entrada en variables fuzzy de entrada, un conjunto de reglas fuzzy para
convertir las entradas fuzzy en salidas fuzzy, y un defuzzificador para generar las señales
de control.
Intensivos trabajos de simulación van a validar los diseños propuestos.

9.1. El Controlador Fuzzy


Con el propósito de desarrollar un controlador fuzzy (difuso o borroso en castel-
lano), primero se debe de identificar el problema. Esto es, definir los objetivos de
control para los cuales desarrollaremos tal controlador. Luego, debemos de diseñar el
sistema de control fuzzy. Para ello podemos usar el sistema de control a lazo cerrado
mostrado en la figura 9.1, donde el controlador convencional del sistema está siendo
reemplazado por un controlador fuzzy. Tal controlador posee tres partes principales:
1. El fuzzyficador (palabra derivada del inglés “fuzzifier”), en donde la entrada
al controlador se convierte en variables de entrada tipo fuzzy, usando para ello
funciones de membresia.
2. El conjunto de reglas fuzzy, en donde las variables fuzzy de entrada son eval-
uadas para generar variables fuzzy de salida. Estas últimas pasan luego al de-
fuzzyficador (palabra derivada del inglés “defuzzifier”).
3. El defuzzificador, el cual toma como base las variables fuzzy de salida para
generar un conjunto de valores de salida: las señales de control.
Las funciones de membresia poseen una forma geométrica caracterı́stica. Por ejem-
plo pueden ser de forma triangular, de forma trapezoidal, o de alguna forma arbitraria,
siempre que pueda ser descrita y evaluada mediante una función.
El conjunto de reglas fuzzy son las sentencias del tipo “if/then” que se definen
en conformidad con los objetivos de control. Tales reglas constituyen la clave del
sistema de control “fuzzy”, ya que ellas deciden el comportamiento del sistema para
diferentes entradas.
Con el fin de generar las señales de control, el defuzzyficador puede hacer uso de
varios métodos, todos relacionados con el procesamiento de las variables fuzzy para
194 Control Fuzzy

generar señales que se puedan implementar en tiempo real. Por ejemplo, es común
tomar el promedio ponderado de las variabes ya procesadas con las reglas fuzzy.

Fig. 9.1: Sistema de control a lazo cerrado, donde el controlador convencional se


reemplaza por un controlador fuzzy.

9.2. Diseño de Sistemas de Control Fuzzy


9.2.1. Control Fuzzy del Manipulador Robótico de 1GDL
Descripción del Proceso
El Manipulador Robótico de 1GDL (MR1), cuyo esquema se muestra en la Fig.
9.2, se compone de un subsistema eléctrico y un subsistema mecánico. El subsistema
eléctrico comprende un servomotor DC con decodificador de posición (encoder en
inglés) incorporado, el cual se emplea para medir la posición angular del brazo del
manipulador en cada instante de tiempo. El servomotor posee una caja de engranajes
para reducir la velocidad en su eje de salida; de esta manera se facilita el control de
posición del manipulador.
El subsistema mecánico consiste de un brazo accionado por el torque rotacional
generado en el eje de salida del servomotor DC (el actuador). En el extremo libre del
brazo robótico se puede acoplar un efector final, el cual puede ser una pinza para asir
objetos, una herramienta para soldar, una herramienta para pintar, etc. En nuestro
caso usaremos una pinza con dos grados de libertad: un grado para rotar la pinza y
otro para abrirla y cerrarla. Para propósitos de modelado, vamos a suponer que el
efector final y su carga se pueden modelar mediante una masa mh variable. La Tabla
9.1 describe las variables y los valores de los parámetros del manipulador mostrado
en la Fig. 9.2.
El sistema MR1 es del tipo SISO ya que sólo posee una entrada: el voltaje de
control u aplicado a la armadura del servomotor, y una salida: la posición angular θ
del brazo.
9.2 Diseño de Sistemas de Control Fuzzy 195

Tabla 9.1: Parámetros y variables del brazo robótico de 1GDL (MR1).

Sı́mbolo Descripción Valor Unidades


u Voltaje de entrada al sistema V
KA Ganancia del amplificador 8.5
Va Voltaje de armadura V
Ra Resistencia de armadura 3.5 Ω
La Inductancia de armadura 0.004 H
ia Corriente de armadura A
Km Constante del torque motor 0.0436 N-m/A
Tm Torque motor N-m
TL Torque de carga N-m
τL Torque causado por pesos de la carga N-m
Tg1 Torque de entrada a los engranajes N-m
Tg2 Torque de salida de los engranajes N-m
Jm Inercia del motor 0.00059 kg-m2
Jg Inercia de los engranajes 0.066 kg-m2
JL Inercia de la carga kg-m2
Bm Constante de fricción del motor 0.00014 N-m/rad/s
Bg Constante de fricción en engranajes 0.0124 N-m/rad/s
BL Constante de fricción en la carga 0.0023 N-m/rad/s
mh Masa del efector final 0.1 kg
mb Masa del brazo 0.4 kg
L Longitud del brazo 0.25 m
rh Distancia al centro de masa del efector 0.02 m
Vb Voltaje contra electromotriz V
Kb Constante contra electromotriz 0.0565 V/rad/s
g Aceleración de la gravedad 9.81 m/s2
N1 , N2 N o de dientes de los engranajes N 2 > N1
n Relación de engranajes (n = N2 /N1 ) 18.5
θm Posición angular del motor rad
θ Posición angular de la carga rad
ω Velocidad angular de la carga rad/s
ωm Velocidad angular del motor ωm = nω rad/s
Kw Constante de elasticidad 0.052 N-m/rad
196 Control Fuzzy

La ia mh
θm mh
ωm
ÕOÔÕOÔÕOÔ ÕOÔÕOÔÕOÔ ÕÔÕÔÕÔ
+ +
×OÖ×OÖ ×OÖ×OÖ ×Ö×Ö
N1
OØØOÙØ ØOØOÙØ ØØÙØ θ L θ
u KA V
_b ÙOÙOÙOÙOÙÙ ω mb
ÒOÒOÒOÒOÓÓ ÒÒÓÓ
L
ÛÚOÛÚOÛOÚ ÛOÚÛOÚÛOÚ ÛÚÛÚÛÚ
_
Tm Bm Tg1 τ
L
Jm BL
N2 T Bg TL J
Ra g2 L
Jg

Fig. 9.2: Esquema del Manipulador Robótico de 1GDL.

Modelo del Subsistema Mecánico


Para modelar el subsistema mecánico del manipulador empleamos la segunda ley
de Newton para los movimientos lineal y rotacional. La aplicación de esta segunda
ley se traduce en una ecuación de balance mecánico. Con respecto a la Fig. 9.2, la
ecuación de balance mecánico en el eje del servomotor articulado al primer engranaje
se formula como:
dθm d 2 θm
Tm = Jm θ̈m + Bm θ̇m + Tg1 θ̇m = θ̈m = (9.1)
dt dt2
donde Jm y Bm representan el momento de inercia y la constante de fricción viscosa
del rotor respectivamente, Tm es el torque del servomotor, Tg1 es el torque de reacción
debido al primer engranaje y θm es la posición angular en el lado del motor. Para los
engranajes de reducción del servomotor podemos formular:
N2 θm
n= = θm = nθ n>1 (9.2)
N1 θ
donde N1 y N2 es el número de dientes de los engranajes y n > 1 es la relación entre
ellos. Para formular la ecuación (9.2) se ha tenido en cuenta que el espacio angular
recorrido por el engranaje de menor radio es n veces mayor que el espacio recorrido
por el engranaje de radio mayor. Por otra parte, el principio de la conservación de la
energı́a establece que el trabajo realizado por el engranaje de la izquierda debe ser
igual al trabajo realizado por el engranaje de la derecha, es decir:

Tg2 θ = Tg1 θm = Tg1 nθ; Tg2 = nTg1 (9.3)

donde Tg2 es el torque de reacción debido al segundo engranaje. El balance mecánico


en el eje articulado al brazo del manipulador produce:

Tg2 = Jg θ̈ + Bg θ̇ + TL (9.4)

donde Jg y Bg representan el momento de inercia y la constante de fricción viscosa


de la caja de reducción respectivamente. El torque de carga TL se formula como (ver
9.2 Diseño de Sistemas de Control Fuzzy 197

Fig. 9.3):

TL = JL θ̈ + BL θ̇ + τL (9.5)
L
τL = mb g senθ + mh g (L + rh )senθ = Q sen θ (9.6)
2
L
Q = mb g + mh g (L + rh )
2
donde JL y BL representan el momento de inercia y la constante de fricción viscosa
de la carga no lineal (brazo más efector final), g es la constante gravitacional, m b
y mh denotan las masas del brazo y del efector final (esta masa también incluye la
masa de la carga en el efector) respectivamente, y rh denota la distancia desde el
extremo del brazo al centro de masa de mh . Notar en (9.6) que el torque τL se debe

rh

θ _L
2
mhg
_L τL
2
mb g

Fig. 9.3: Brazo del manipulador robótico de 1GDL.

a las fuerzas ejercidas por los pesos del brazo y de la esfera. Ası́, el torque m b g L senθ
2
es el producto del peso mb g del brazo por su brazo de palanca L senθ 2 , mientras que
el torque mh g (L + rh )senθ es el producto del peso mh g del efector por su brazo de
palanca (L + rh )senθ.
El momento de inercia JL de la carga es la suma del momento de inercia del brazo
Jb más el momento de inercia del efector Jh . Por otra parte, el teorema de los ejes
paralelos, establece que el momento de inercia de una masa m alrededor de un eje de
rotación que no pasa por su C.M. está dado por:

J = Jo + m a 2 (9.7)

donde Jo es el momento de inercia de m alrededor del eje de rotación que pasa por
su centro de masa y a es la distancia entre los dos ejes. Asumiendo que la masa
mb del brazo se concentra en su C.M., su momento de inercia con relación a un eje
perpendicular que pasa por su C.M. es [1]:
1
Jbo = mb L2 (9.8)
12
Considerando que la masa del brazo está distribuida a lo largo de su longitud y
aplicando el teorema de los ejes paralelos, el momento de inercia Jb con respecto al
198 Control Fuzzy

punto de articulación se formula como:


 2
L 1
Jb = Jbo + mb = mb L2 (9.9)
2 3

Del mismo modo, asumiendo que la masa mh del efector está concentrada en su C.M.,
entonces:
Jh = Jho + mh (L + rh )2 (9.10)

donde Jho es el momento de inercia del efector con relación a un eje de rotación
que pasa por su C.M. Si consideramos por ejemplo, sin perder generalidad, que el
efector es una masa esférica de radio rh , su momento de inercia alrededor de un eje
de rotación que coincide con su diámetro [1] es:

2
Jho = mh rh2 (9.11)
5

Empleando (9.5), (9.6), (9.4), (9.3) y (9.2) en (9.1) y operando se obtiene:

nTm = Jeq θ̈ + Beq θ̇ + τL = Jeq ω̇ + Beq ω + Q senθ (9.12)

donde:
Jeq = n2 Jm + Jg + JL Beq = n2 Bm + Bg + BL

Las expresiones de Q, Jh y Jb (tener en cuenta que JL = Jh + Jb ) se dan en (9.6),


(9.10) y (9.9) respectivamente.

Modelo del Subsistema Eléctrico

El voltaje de armadura Va viene expresado por (ver la descripción de las variables


y parámetros en la Tabla 9.1):

dia
Va = ia Ra + La + Vb (9.13)
dt

donde ia , Ra y La son la corriente, la resistencia y la inductancia en la armadura


del servomotor respectivamente, y Vb es el voltaje de fuerza contra electromotriz
gobernado por la relación:

Vb = Kb ωm = Kb nω = Kb nθ̇ (9.14)

donde Kb es la constante de fuerza contra electromotriz y ωm es la velocidad angular


del motor. El voltaje de armadura Va es:

Va = K A u (9.15)

donde KA es la ganancia del amplificador.


9.2 Diseño de Sistemas de Control Fuzzy 199

Conversión de Energı́a Eléctrica en Mecánica


Sabemos que el torque motor Tm (energı́a mecánica) es proporcional a la corriente
de armadura ia (energı́a eléctrica):
Tm = K m i a (9.16)
donde Km es la constante del motor. Reemplazando (9.12) en ( 9.16) se obtiene la
siguiente ecuación de conversión de energı́a eléctrica a energı́a mecánica:
nKm ia = Jeq θ̈ + Beq θ̇ + τL (9.17)
Por otra parte, igualando (9.13) con (9.15) obtenemos:
dia KA Kb n Ra
= u− ω− ia (9.18)
dt La La La
Empleando (9.16) en (9.12) y despejando ω̇ = dω/dt obtenemos:
dω Q Beq nKm
=− senθ − ω+ ia (9.19)
dt Jeq Jeq Jeq

Ecuación de Estado del Sistema MR1 con La 6= 0


Las ecuaciones (9.18) y (9.19) describen el modelo no lineal del sistema de tercer
orden. Eligiendo en dichas ecuaciones como variables de estado: x1 = θ (posición
angular), x2 = θ̇ (velocidad angular) y x3 = ia (corriente de armadura), se obtiene:
ẋ1 = x2
Q Beq nKm
ẋ2 = − senx1 − x2 + x3
Jeq Jeq Jeq
nKb Ra KA
ẋ3 = − x2 − x3 + u (9.20)
La La La
donde la salida es la posición x1 y la señal de control es u (la tensión de armadura).

Ecuación de Estado Lineal del Sistema MR1 con La ∼


=0
En la Tabla 9.1 podemos observar que la inductancia de armadura La del ser-
vomotor es bastante pequeña, de modo tal que puede despreciarse sin que se pierda
considerable exactitud en los resultados. Considerando el producto ẋ 3 La = 0 en la
tercera ecuación de (9.20) y despejando la corriente de armadura x 3 resulta:
KA nKb
x3 = u− x2 (9.21)
Ra Ra
Reemplazando (9.21) en la segunda ecuación de (9.20), y haciendo senx 1 = x1 , se
obtiene la ecuación de estado lineal de orden dos del manipulador MR1:
ẋ1 = x2
ẋ2 = −a1 x1 − a2 x2 + bu (9.22)
donde:
 
Q Beq Ra + n2 Km Kb nKm KA
a1 = a2 = b=
Jeq Jeq Ra Jeq Ra
200 Control Fuzzy

Diseño del Controlador Fuzzy


Un sistema de control de posición angular convencional tradicionalmente emplea
un controlador PD para controlar la posición del manipulador MR1. Por ello, el
controlador fuzzy empleado es del tipo PD, el cual se logra haciendo que sus entradas
sean el error e(t) y la derivada del error de(t)/dt, y que su salida sea la señal de
control u(t).
En este ejemplo empleamos funciones de membresia del tipo triangular para las
entradas y funciones “singletons” (o únicas) para la salida. El procedimiento de fuzzy-
ficación emplea el método de descomposición mı́nima de las funciones de membresia,
mientras que el procedimiento de defuzzification emplea el método del centroide (pon-
deración de las variables promediadas para obtener un valor.
La figura 9.4 muestra las funciones de membresia para el controlador fuzzy tipo
PD, mientras que la tabla 9.2 presenta el conjunto de reglas del controlador en la
forma de una matriz de memoria asociativa fuzzy (en inglés: “FAM: Fuzzy Asocia-
tive Memory matrix”). En dicha matriz, las letras tienen el siguiente significado:
NL: “Negative Large” (negativo grande), NM: “Negative Medium” (negativo medio),
NS: “Negative Small” (negativo pequeño), ZE: “zero ”(cero), PS: “Positive Small”
(positivo pequeño), PM: “Positive Medium” (positivo medio), PL: “Positive Large”
(positivo grande).
Notar que en las funciones de membresia estamos usando los parámetros de es-
calamiento p para el error, f para la derivada del error y uu para la salida. Estos
parámetros nos van a permitir sintonizar en tiempo real el controlador difuso para
cumplir el objetivo de control. Debemos anotar que los rangos de e(t) y de(t)/dt son
sólo estimaciones. Para el caso de la salida u(t), se debe tener en cuenta que el rango
de salida de − 2.5 V a + 2.5 V se convierten usando LabVIEW al rango de salida de
0 a + 5 V, que corresponden a los valores máximo y mı́nimo que puede soportar el
PIC que estamos usando para generar la señal PWM (“Pulse Width Modulation”)
que requiere el amplificador con configuración H.

El Proceso de Fuzzyfication

El proceso de fuzzyficación emplea básicamente la información de la figura 9.4. Por


consiguiente, primero definimos los rangos de las funciones de membresia del error,
de la derivada del error y de la salida (tablas 9.3, 9.4 y 9.5), donde las abreviaturas en
minúsculas min, nom y max significan mı́nimo, nominal y máximo respectivamente.
El valor nominal siempre se sitúa entre los valores mı́nimo y máximo de la función.
Cabe anotar que esta nomenclatura también se emplea en el programa de simulación
del sistema de control fuzzy.
Para explicar el procedimiento de fuzzyficación, tomemos como ejemplo los dos
primeros tramos de la función de membresia del error e(t), correspondiente a la
función NL(t). Podemos observar que para el rango NLmin ≤ e(t) ≤ NLnom, la
función de membresia correspondiente toma el valor NL = 1, mientras que para el
rango NLnom ≥ e(t) ≥ NLmax, la función de membresia correspondiente toma el
valor genérico:
e(t) + 0.3p
NL(t) = −
0.7p
9.2 Diseño de Sistemas de Control Fuzzy 201

Fig. 9.4: Funciones de membresia para las entradas (error e(t) y de(t)/dt) y para la
salida u(t).

Notar que la expresión de NL(t) es la ecuación de la recta con pendiente negativa


correspondiente al tramo NLnom ≥ e(t) ≥ NLmax.
Del mismo modo podemos deducir todas las ecuaciones correspondiente al pro-
ceso de fuzzyficación de las entradas e(t) y de(t)/dt. Tales ecuaciones se muestran
a continuación en código MATLAB. Notar que sólo para fines de inicialización, se
están añadiendo los valores iniciales nulos de las funciones de membresia.

% FUZZYFICACIÓN DE LAS FUNCIONES DE MEMBRESIA PARA EL ERROR e(t):

NL = 0; if( e >= NLmin & e <= NLnom), NL = +1;


elseif(e >= NLnom & e <= NLmax), NL = -(e+0.3*p)/(0.7*p); end

NM = 0; if(e >= NMmin & e <= NMnom), NM = +(e+1.0*p)/(0.7*p);


elseif(e >= NMnom & e <= NMmax), NM = -(e+0.1*p)/(0.2*p); end
202 Control Fuzzy

Tabla 9.2: Conjunto de reglas del controlador fuzzy mostradas en la forma de una
matriz de memoria asociativa fuzzy (“FAM-matrix”).

de \ e NL NM NS ZE PS PM PL

DNL NX NX NX NX NS XE PX

DNM NX NX NL NL NS PS PX

DNS NX NL NL NM PS PS PX

DZE NX NL NL ZE PL PL PX

DPS NX NS NS PM PL PL PX

DPM NX NS PS PL PL PX PX

DPL NX ZE PS PX PX PX PX

Tabla 9.3: Rango de las funciones de membresia para el error e(t).

NLmin = - 1.2p NLnom = - 1.0p NLmax = - 0.3p

NMmin = - 1.0p NMnom = - 0.3p NMmax = - 0.1p

NSmin = - 0.3p NSnom = - 0.1p NSmax = + 0.0p

ZEmin = - 0.1p ZEnom = + 0.0p ZEmax = + 0.1p

PSmin = + 0.0p PSnom = + 0.1p PSmax = + 0.3p

PMmin = + 0.1p PMnom = + 0.3p PMmax = + 1.0p

PLmin = + 0.3p PLnom = + 1.0p PLmax = + 1.2p

NS = 0; if(e >= NSmin & e <= NSnom), NS = +(e+0.3*p)/(0.2*p);


elseif(e >= NSnom & e <= NSmax), NS = -(e-0.0)/(0.1*p); end

ZE = 0; if(e >= ZEmin & e <= ZEnom), ZE = +(e+0.1*p)/(0.1*p);


elseif(e >= ZEnom & e <= ZEmax), ZE = -(e-0.1*p)/(0.1*p); end

PS = 0; if(e >= PSmin & e <= PSnom), PS = +(e-0.0)/(0.1*p);


elseif(e >= PSnom & e <= PSmax), PS = -(e-0.3*p)/(0.2*p); end

PM = 0; if(e >= PMmin & e <= PMnom), PM = +(e-0.1*p)/(0.2*p);


9.2 Diseño de Sistemas de Control Fuzzy 203

Tabla 9.4: Rango de las funciones de membresia para la derivada del error de(t)/dt.

DNLmin = - 6.0f DNLnom = - 5.0f DNLmax = - 2.0f

DNMmin = - 5.0f DNMnom = - 2.0f DNMmax = - 1.0f

DNSmin = - 2.0f DNSnom = - 1.0f DNSmax = + 0.0f

DZEmin = - 1.0f DZEnom = + 0.0f DZEmax = + 1.0f

DPSmin = + 0.0f DPSnom = + 1.0f DPSmax = + 2.0f

DPMmin = + 1.0f DPMnom = + 2.0f DPMmax = + 5.0f

DPLmin = + 2.0f DPLnom = + 5.0f DPLmax = + 6.0f

Tabla 9.5: Rango de las funciones de membresia para la señal de control u(t).

UNX = - 0.7uu UNL = - 0.6uu UNM = - 0.4uu

UNS = - 0.2uu UZE = 0uu UPS = + 0.2uu

UPM = + 0.4uu UPL = + 0.6uu UPX = + 0.7uu

elseif(e >= PMnom & e <= PMmax), PM = -(e-1.0*p)/(0.7*p); end

PL = 0; if(e >= PLmin & e <= PLnom), PL = +(e-0.3*p)/(0.7*p);


elseif(e >= PLnom & e <= PLmax), PL = +1; end

% FUZZYFICACIÓN DE LAS FUNCIONES DE MEMBRESIA PARA LA DERIVADA DEL ERROR de(t)/dt:

DNL = 0; if( de >= DNLmin & de <= DNLnom), DNL = +1;


elseif(de >= DNLnom & de <= DNLmax), DNL = (-de-2*f)/(3*f); end

DNM = 0; if(de >= DNMmin & de <= DNMnom), DNM = +(de+5*f)/(3*f);


elseif(de >= DNMnom & de <= DNMmax), DNM = (-de-1*f)/f; end

DNS = 0; if(de >= DNSmin & de <= DNSnom), DNS = +(de+2*f)/f;


elseif(de >= DNSnom & de <= DNSmax), DNS = (-de-0.0*f)/f; end

DZE = 0; if(de >= DZEmin & de <= DZEnom), DZE = +(de+1*f)/f;


elseif(de >= DZEnom & de <= DZEmax), DZE = (-de+1*f)/f; end

DPS = 0; if(de >= DPSmin & de <= DPSnom), DPS = +(de+0.0)/f;


elseif(de >= DPSnom & de <= DPSmax), DPS = (de-2*f)/f; end
204 Control Fuzzy

DPM = 0; if(de >= DPMmin & de <= DPMnom), DPM = +(de-1*f)/f;


elseif(de >= DPMnom & de <= DPMmax), DPM = (-de+5*f)/(3*f); end

DPL = 0; if(de >= DPLmin & de <= DPLnom), DPL = +(de-2*f)/(3*f);


elseif(de >= DPLnom & de <= DPLmax), DPL = +1; end

Simulación del Sistema de Control Fuzzy


El programa fuzzyposition.m escrito en código MATLAB y cuyo listado se muestra
abajo, simula el comportamiento del sistema para controlar la posición del brazo
robótico de 1GDL empleando un controlador fuzzy. La figura 9.5 muestra el resultado
de tal simulación.
1

0.8
Posición angular (rad)

0.6

0.4

0.2

0
0 1 2 3 4 5 6

1.4
Señal de control u (voltios)

1.2

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6
Tiempo en segundos

Fig. 9.5: Posición angular controlada en la simulación del sistema de control fuzzy
del brazo robótico de 1GDL, para una señal de referencia fija.

% fuzzyposition.m SIMULACION DEL SISTEMA DE CONTROL DE POSICION FUZZY


clear all; close all; clc;
% PARAMETROS DEL PROCESO
Ra=3.5; Km=0.0436; Kb=Km; KA=8.5; mb=0.4; g=9.81;
L=0.25; mh=0.1; rh=0.02; n=18.5;
Jm=0.00059; Jg=0.066; Bg=0.0124; Bm=0.00014; BL=0.0023;
Jb=mb*L^2/3; Jho=2*mh*rh^2/5; Jh=Jho+mh*(L+rh)^2; JL=Jh+Jb;
Jeq = n^2*Jm + Jg + JL; Beq = n^2*Bm + Bg + BL;
Q = mb*g*L/2 + mh*g*(L+rh);
a1 = Q/Jeq; a2 = (Beq*Ra+n^2*Km*Kb)/(Jeq*Ra); b = n*Km*KA/(Jeq*Ra);
T = 0.001; % PERIODO DE MUESTREO
9.2 Diseño de Sistemas de Control Fuzzy 205

% RANGOS DE LAS FUNCIONES DE MEMEBRESIA PARA EL ERROR e


p=1;
NLmin=-1.2*p; NLnom=-1.0*p; NLmax=-0.3*p;
NMmin=-1.0*p; NMnom=-0.3*p; NMmax=-0.1*p;
NSmin=-0.3*p; NSnom=-0.1*p; NSmax=+0.0*p;
ZEmin=-0.1*p; ZEnom=+0.0*p; ZEmax=+0.1*p;
PSmin=+0.0*p; PSnom=+0.1*p; PSmax=+0.3*p;
PMmin=+0.1*p; PMnom=+0.3*p; PMmax=+1.0*p;
PLmin=+0.3*p; PLnom=+1.0*p; PLmax=+1.2*p;
% RANGOS DE LAS FUNCIONES DE MEMEBRESIA PARA LA DERIVADA DEL ERROR de
f=0.7;
DNLmin=-6.0*f; DNLnom=-5.0*f; DNLmax=-2.0*f;
DNMmin=-5.0*f; DNMnom=-2.0*f; DNMmax=-1.0*f;
DNSmin=-2.0*f; DNSnom=-1.0*f; DNSmax=+0.0*f;
DZEmin=-1.0*f; DZEnom=+0.0*f; DZEmax=+1.0*f;
DPSmin=+0.0*f; DPSnom=+1.0*f; DPSmax=+2.0*f;
DPMmin=+1.0*f; DPMnom=+2.0*f; DPMmax=+5.0*f;
DPLmin=+2.0*f; DPLnom=+5.0*f; DPLmax=+6.0*f;
% SALIDAS (FUERZAS DE CONTROL)
ur = 5; UNX=-0.7*ur; UNL=-0.6*ur; UNM=-0.4*ur; UNS=-0.2*ur; UZE=0*ur;
UPS=0.2*ur; UPM=0.4*ur; UPL=0.6*ur; UPX=0.7*ur;
% CONDICIONES INICIALES
ep = 0; x1 = 0; x2 = 0; I = 0; D = 0;
% ******** LAZO DEL SISTEMA DE CONTROL FUZZY *********
Mm = 12000; A = 0.5;
for k = 1:Mm
% SE~NAL DE REFERENCIA
if(k >= 0 && k <= Mm/4)
r = A;
elseif(k >= Mm/4 && k <= Mm/2)
r = 0.5*A;
elseif(k >= Mm/2 && k <= 3*Mm/4)
r = 1*A;
elseif(k >= 3*Mm/4 && k <= Mm)
r = 0.8*A;
end
R(k)=r; % SET POINT
% CALCULO DE LA SE~NAL DE CONTROL u(t)
e = r - x1; Y(k) = x1; de = (e - ep)/T;
% FUZZYFICATION DE LAS FUNCIONES DE MEMEBRESIA DEL ERROR e
NL = 0; if( e >= NLmin && e <= NLnom), NL = +1;
elseif(e >= NLnom && e <= NLmax), NL = -(e+0.3*p)/(0.7*p); end

NM = 0; if(e >= NMmin && e <= NMnom), NM = +(e+1.0*p)/(0.7*p);


elseif(e >= NMnom && e <= NMmax), NM = -(e+0.1*p)/(0.2*p); end

NS = 0; if(e >= NSmin && e <= NSnom), NS = +(e+0.3*p)/(0.2*p);


elseif(e >= NSnom && e <= NSmax), NS = -(e-0.0)/(0.1*p); end

ZE = 0; if(e >= ZEmin && e <= ZEnom), ZE = +(e+0.1*p)/(0.1*p);


elseif(e >= ZEnom && e <= ZEmax), ZE = -(e-0.1*p)/(0.1*p); end

PS = 0; if(e >= PSmin && e <= PSnom), PS = +(e-0.0)/(0.1*p);


206 Control Fuzzy

elseif(e >= PSnom && e <= PSmax), PS = -(e-0.3*p)/(0.2*p); end

PM = 0; if(e >= PMmin && e <= PMnom), PM = +(e-0.1*p)/(0.2*p);


elseif(e >= PMnom && e <= PMmax), PM = -(e-1.0*p)/(0.7*p); end

PL = 0; if(e >= PLmin && e <= PLnom), PL = +(e-0.3*p)/(0.7*p);


elseif(e >= PLnom && e <= PLmax), PL = +1; end

% FUZZYFICATION DE LAS FUNCIONES DE MEMEBRESIA DE LA DERIVADA DEL ERROR de


DNL = 0; if( de >= DNLmin && de <= DNLnom), DNL = +1;
elseif(de >= DNLnom && de <= DNLmax), DNL = (-de-2*f)/(3*f); end

DNM = 0; if(de >= DNMmin && de <= DNMnom), DNM = +(de+5*f)/(3*f);


elseif(de >= DNMnom && de <= DNMmax), DNM = (-de-1*f)/f; end

DNS = 0; if(de >= DNSmin && de <= DNSnom), DNS = +(de+2*f)/f;


elseif(de >= DNSnom && de <= DNSmax), DNS = (-de-0.0*f)/f; end

DZE = 0; if(de >= DZEmin && de <= DZEnom), DZE = +(de+1*f)/f;


elseif(de >= DZEnom && de <= DZEmax), DZE = (-de+1*f)/f; end

DPS = 0; if(de >= DPSmin && de <= DPSnom), DPS = +(de+0.0)/f;


elseif(de >= DPSnom && de <= DPSmax), DPS = (de-2*f)/f; end

DPM = 0; if(de >= DPMmin && de <= DPMnom), DPM = +(de-1*f)/f;


elseif(de >= DPMnom && de <= DPMmax), DPM = (-de+5*f)/(3*f); end

DPL = 0; if(de >= DPLmin && de <= DPLnom), DPL = +(de-2*f)/(3*f);


elseif(de >= DPLnom && de <= DPLmax), DPL = +1; end
% RULES
w11=min(NL,DNL); w12=min(NM,DNL); w13=min(NS,DNL); w14=min(ZE,DNL);
w15=min(PS,DNL); w16=min(PM,DNL); w17=min(PL,DNL);
w21=min(NL,DNM); w22=min(NM,DNM); w23=min(NS,DNM); w24=min(ZE,DNM);
w25=min(PS,DNM); w26=min(PM,DNM); w27=min(PL,DNM);
w31=min(NL,DNS); w32=min(NM,DNS); w33=min(NS,DNS); w34=min(ZE,DNS);
w35=min(PS,DNS); w36=min(PM,DNS); w37=min(PL,DNS);
w41=min(NL,DZE); w42=min(NM,DZE); w43=min(NS,DZE); w44=min(ZE,DZE);
w45=min(PS,DZE); w46=min(PM,DZE); w47=min(PL,DZE);
w51=min(NL,DPS); w52=min(NM,DPS); w53=min(NS,DPS); w54=min(ZE,DPS);
w55=min(PS,DPS); w56=min(PM,DPS); w57=min(PL,DPS);
w61=min(NL,DPM); w62=min(NM,DPM); w63=min(NS,DPM); w64=min(ZE,DPM);
w65=min(PS,DPM); w66=min(PM,DPM); w67=min(PL,DPM);
w71=min(NL,DPL); w72=min(NM,DPL); w73=min(NS,DPL); w74=min(ZE,DPL);
w75=min(PS,DPL); w76=min(PM,DPL); w77=min(PL,DPL);

u1=(w11*UNX+w12*UNX+w13*UNX+w14*UNX+w15*UNS+w16*UZE+w17*UPX+ ...
w21*UNX+w22*UNX+w23*UNL + w24*UNL + w25*UNS + w26*UPS + w27*UPX + ...
w31*UNX+w32*UNL+w33*UNL + w34*UNM + w35*UPS + w36*UPS + w37*UPX + ...
w41*UNX+w42*UNL+w43*UNL + w44*UZE + w45*UPL + w46*UPL + w47*UPX + ...
w51*UNX+w52*UNS+w53*UNS + w54*UPM + w55*UPL + w56*UPL + w57*UPX + ...
w61*UNX+w62*UNS+w63*UPS + w64*UPL + w65*UPL + w66*UPX + w67*UPX + ...
w71*UNX+w72*UNS+w73*UPS + w74*UPL + w75*UPL + w76*UPX + w77*UPX);
9.2 Diseño de Sistemas de Control Fuzzy 207

ww= w11 + w12 + w13 + w14 + w15 + w16 + w17 + ...


w21 + w22 + w23 + w24 + w25 + w26 + w27 + ...
w31 + w32 + w33 + w34 + w35 + w36 + w37 + ...
w41 + w42 + w43 + w44 + w45 + w46 + w47 + ...
w51 + w52 + w53 + w54 + w55 + w56 + w57 + ...
w61 + w62 + w63 + w64 + w65 + w66 + w67 + ...
w71 + w72 + w73 + w74 + w75 + w76 + w77; WW(k) = ww;
u = u1/(ww+0.0001);
U(k) = u; U1(k) = u1;
% MODELO DE SEGUNDO ORDEN DEL PROCESO (DISCRETIZACION DIRECTA)
x1 = x1 + T*x2;
x2 = x2 + T*( -a1*x1 - a2*x2 +b*u); ep = e;
end
% ***************** FIN DEL LAZO **********************
% GRAFICOS
ejex = linspace(0,Mm*T,Mm); subplot(2,1,1); plot(ejex,R,ejex,Y); grid
ylabel(’POSICIÓN ([rad]’); subplot(2,1,2); plot(ejex,U); grid;
ylabel(’CONTROL u [V]’); xlabel(’TIEMPO [s]’);
print -f -deps fuzzyposition
Apéndice A

Sistemas Continuos

Este Capı́tulo presenta la matemática requerida en los Capı́tulos siguientes. Los tópi-
cos se desarrollan principalmente en el dominio continuo. El tópico discretización directa
se desarrolla en el dominio discreto. Los numerosos ejemplos presentados se resuelven en
unos casos analı́ticamente, en otros con ayuda del software MATLAB y en la mayorı́a de
los casos empleando ambos métodos.
Los temas a tratar son: transformada de Laplace, álgebra de bloques, matrices y
determinantes, variables de estado, discretización directa, sistemas con tiempo muerto,
linealización de sistemas continuos y estabilidad.

A.1. La Transformada Unilateral de Laplace


A.1.1. Definición y Ejemplos
La transformada unilateral de Laplace G(s) de una función g(t) se define como:
Z ∞
G(s) = L[g(t)] = g(t)e−st dt (A.1)
0

donde el número complejo s = σ + jω es la variable Laplaciana. La región de s en la


cual dicha integral converge se denomina Región de Convergencia.
Un sistema representado por la función g(t) se denomina causal cuando su salida
y(t) depende sólo de la entrada presente u(t) y de las entradas pasadas u(t−t i ), donde
t es la variable dependiente tiempo continuo y los ti para i = 0, . . . , n son números
reales positivo que indican retardos de tiempo. La gran mayorı́a de los sistemas reales
son causales.
La Fig. A.1(a) muestra un tanque con agua calentada mediante vapor. La curva de
reacción del sistema temperatura y(t) mostrado en la Fig. A.1(b) se obtiene variando
la abertura u(t) de la válvula de vapor. Este sistema es causal porque, por ejemplo,
la salida y en el tiempo t3 , depende de la entrada u en t3 (la actual) y de las entradas
pasadas en t2 , t1 y t0 .
La transformada unilateral de Laplace es útil para representar en forma algebraica
sistemas causales descritos por ecuaciones diferenciales lineales invariantes con el
tiempo. La Tabla A.1 muestra la transformada unilateral de Laplace de algunas
funciones. Varias de sus propiedades se ilustran en la Tabla A.2.
210 Sistemas Continuos

u
u
Agua
t
y
y
Vapor
t
t0 t1 t2 t3

(a) (b)

Fig. A.1: Ejemplo de sistema causal: temperatura en un tanque.

Ejemplo A.1

Hallar la transformada de Laplace de la función escalón unitario µ(t) definida como:



1 si t ≥ 0
µ(t) =
0 si t < 0

Solución: Usando la definición dada en (A.1) con g(t) = µ(t):


Z ∞ Z ∞  −st ∞
−st −st −e e−∞ − e−0 1
G(s) = L[µ(t)] = µ(t)e dt = (1)e dt = = =
0 0 −s 0 −s s
Ejemplo A.2

Hallar la transformada de Laplace de la función escalón unitario retardado µ(t − T )


donde T es real y positivo. La función µ(t − T ) se define como:

1 si t ≥ T
µ(t − T ) =
0 si t < T

Solución: La transformada de Laplace de µ(t − T ) se halla empleando la propiedad


(5) (desplazamiento en tiempo) de la Tabla A.2 con t0 = T , sabiendo que G(s) = 1/s
por el ejemplo anterior. Esto es:
1 e−T s
L[µ(t − T )] = e−T s G(s) = e−T s =
s s
Ejemplo A.3

Hallar la transformada de Laplace de la función exponencial e−at , donde a y t son


reales y positivos.

Solución: Usando la definición dada en (A.1):


Z ∞ " #∞
−e −(s+a)t 1
L[e−at ] = e−at e−st dt = =
0 s+a s+a
0
A.1 La Transformada Unilateral de Laplace 211

Ejemplo A.4

Hallar la transformada de Laplace de las funciones impulso δ(t) y δ(t − T ) empleando


la siguiente propiedad fundamental:
Z ∞
g(t)δ(t − T )dt = g(T ) (A.2)
0

donde g(t) es una función arbitraria pero continua en t = T . Se sabe además que la
función impulso unitario o delta de Dirac δ(t) y delta de Dirac retardada δ(t − T ) se
definen como:
 
1 si t = 0 1 si t = T
δ(t) = δ(t − T ) = (A.3)
0 si t 6= 0 0 si t 6= T

Solución: Aplicando la propiedad fundamental (A.2) con g(t) = e−st y T = 0 se


obtiene: Z ∞
L[δ(t)] = e−st δ(t − T )dt = e−sT |T =0 = 1
0

Aplicando ahora la propiedad fundamental con g(t) = e−st y retardo T resulta:


Z ∞
L[δ(t − T )] = e−st δ(t − T )dt = e−sT = z −1
0

La relación: z = esT constituye la variable discreta de desplazamiento y se emplea


para el análisis de sistemas lineales discretos con parámetros invariantes con el tiempo.

Ejemplo A.5

Usando matemática simbólica, hallar la transformada de Laplace de las siguientes


funciones:
dg(t)
g1 (t) = aµ(t) g2 (t) = e−at g3 (t) =
dt
Z t
g4 (t) = a sin(t)cos(t)2 g5 (t) = (t2 + cos 2t)
0

donde a es una constante real y positiva, µ(t) es la función escalón unitario definida
en el ejemplo A.1 y g(t) es una función arbitraria dependiente del tiempo.

Solución: El programa laplace1.m resuelve el problema.


% laplace1.m TRANSFORMADA SIMBÓLICA DE LAPLACE
clear all; close all; clc;
syms a t s;
G1 =laplace(a,t,s); % G1 = a/s
G2 = laplace(exp(-a*t),t,s); % G2 = 1/(s+a)
G3 = laplace(diff(sym(’g(t)’))); % G3 = s*laplace(g(t),t,s)-g(0)
G4 = laplace(a*sin(t)*cos(t)^2,t,s); pretty(G4)
% G4 = a*(s^2 + 3)/((s^2 + 9)(s^2+1))
g5 = int(t^2+cos(2*t)); G5 = laplace(g5); % G5 =2/s^4 + 1/(s^2+4)
212 Sistemas Continuos

A.1.2. La Transformada Inversa de Laplace


La transformada inversa de Laplace de una función G(s) se denota como:

g(t) = L−1 [G(s)] (A.4)

Ejemplo A.6

Usando matemática simbólica, hallar la transformada inversa de Laplace de las si-


guientes funciones:

s+3 Aw
G1 (s) = G2 (s) =
s2 (s − a2 ) + w2

donde w es una constante real y positiva.


Solución: El programa laplace2.m resuelve el problema.
% laplace2.m
clear all; close all; clc; syms s w a A
G1=(s+3)/s^2; g1 = ilaplace(G1); % g1 = 1 + 3*t
G2=A*w/((s-a)^2+w^2); g2 = ilaplace(G2); % g2 = A*e^(a*t)*sin(w*t)

Ejemplo A.7

La figura A.2 muestra un móvil de masa m = 1000 kg desplazándose con una velocidad
v gracias a la acción de la fuerza u producida por su motor. Si se desprecia la inercia
de las ruedas y se asume que la fuerza de fricción bv es lo único que se opone al
movimiento, donde b= 50 N–s/m es el coeficiente de fricción, entonces la dinámica
del sistema puede modelarse como:

dv(t)
mv̇(t) + bv(t) = u(t) v̇(t) =
dt
Determine la velocidad v(t) y la aceleración v̇(t) del carro como respuesta a una
fuerza u(t) tipo escalón de 1 N. Considere que la fuerza comienza a actuar para una
velocidad inicial del carro de 2 m/s.

v velocidad
friccion
bv m u

Fig. A.2: Móvil en movimiento.

Solución: Teniendo en cuenta que v(0) = 2 m/s, V (s) = L[v(t)] y U (s) = L[u(t)],
apliquemos la propiedad de derivación (2) de la Tabla A.2 en la ecuación dinámica
del carro:
m(sV (s) − v(0)) + bV (s) = U (s)
A.1 La Transformada Unilateral de Laplace 213

1/m v(0)
V (s) = +
s(s + b/m) s + b/m
donde hemos usado el hecho de que U (s) = 1s debido a que la entrada u es del tipo
escalón. La salida v(t) se determina usando la Tabla A.1. Para el primer término de
V (s) empleamos la fórmula (14) con n = 1, mientras que para el segundo término
empleamos la fórmula (3). Por consiguiente:
1 b b
v(t) = L−1 [V (s)] = (1 − e− m t ) + v(0)e− m t
b
La derivada de v(t) produce la aceleración pedida:
1 b
v̇ = [1 − bv(0)] e− m t
m
Ejemplo A.8

Empleando las propiedades del valor inicial y del valor final de la Tabla A.2, deter-
minar tales valores para la velocidad del móvil del problema anterior.
Solución: El valor inicial de v(t) se determina de:

lı́m v(t) = lı́m sV (s) = v(0)


t→0 s→∞

El valor final v(t) se obtienen de:


1
lı́m v(t) = lı́m sV (s) =
t→∞ s→0 b

A.1.3. La Función de Transferencia


La función de transferencia FT de un sistema SISO (Single Input Single Output)
se define como la relación:
Y (s)
G(s) =
U (s)
donde Y (s) es su salida y U (s) es su entrada, asumiendo que todas las condiciones
iniciales son nulas. La FT se puede interpretar como el sello que caracteriza la dinámi-
ca de un sistema, ya que se expresa en función de los parámetros de dicho sistema.
Distintos sistemas pueden poseer una misma forma de la FT, pero con parámetros
completamente diferentes. Por ejemplo, los sistemas velocidad de un motor DC, nivel
en un tanque de agua con orificio de salida y un móvil con desplazamiento horizontal
poseen la siguiente forma de su FT:

Y (s) K
=
U (s) τs + 1

Ejemplo A.9

Determinar la FT del móvil del ejemplo A.7. Luego determine la velocidad v(t) del
móvil partiendo de su FT, como respuesta a una fuerza u(t) tipo escalón de 1 N.
214 Sistemas Continuos

Solución: La FT del sistema se obtiene aplicando la propiedad de derivación (2) de


la Tabla A.2), con v(0) = 0:

V (s) 1/m
m[sV (s) − v(0)] + bV (s) = (ms + b)V (s) = U (s); =
U (s) s + b/m

Observar que resulta una FT de primer orden. Como la entrada es un escalón unitario,
entonces U (s) = 1s . La salida se determina de:
 
−1 −1 1/m
v(t) = L [V (s)] = L
s(s + b/m)

Usando la fórmula (14) (con n = 0) de la Tabla A.1 resulta:

1 b
v(t) = (1 − e− m t )
b
Ejemplo A.10

Empleando las propiedades del valor inicial y del valor final de la Tabla A.2, deter-
minar tales valores para la velocidad del móvil del problema anterior.
Solución: El valor inicial se determina de:

lı́m v(t) = lı́m sV (s) = 0


t→0 s→∞

El valor final se obtiene de:


1
lı́m v(t) = lı́m sV (s) =
t→∞ s→0 b

A.1.4. Fracciones Parciales


Una función o fracción racional de la forma B(s)
A(s) es propia cuando el grado del
polinomio B(s) del numerador es menor que el grado del polinomio A(s) del nume-
rador. Cualquier función o fracción racional propia de la forma B(s)
A(s) se puede escribir
como una suma de funciones racionales de la forma:
C Cs + D
r = 1, 2., 3, . . .
(as + b)r (as2 + bs + c)r

Si A(s) y B(s) poseen el mismo grado, entonces:

B(s) R(s)
=k+
A(s) A(s)
R(s)
donde k es una constante y la fracción A(s) resulta propia.

Ejemplo A.11
A.1 La Transformada Unilateral de Laplace 215

Tabla A.1: Transformadas unilaterales de Laplace

No G(s) g(t)

(1) 1 δ(t)
1
(2) s µ(t)
1
(3) s+a e−at
ω
(4) s2 +ω 2
sen ωt
s
(5) s2 +ω 2
cos ωt
s cos α−ωsenα
(6) s2 +ω 2
cos(ωt + α)
ω
(7) (s+a)2 +ω 2
e−at senωt
(s+a)
(8) (s+a)2 +ω 2
e−at cosωt
(s+a)cosα−ωsenα
(9) (s+a)2 +ω 2
e−at cos(ωt + α)

1 [1−e−bt (cos at+ ab sen at)]


(10) s[(s+b)2 +a2 ] a2 +b2
n!
(11) sn+1
; n! = n(n − 1) . . . tn
1 tn
(12) (s+a)n+1 n! e−at
s tn+1 at −at
(13) (s+a)n+1 (n+1)! (1 + n )e
h P ν i
(at)
1− n ν=0 e−at
1 ν!
(14) s(s+a)n+1 an+1

s [at−2+(2+at)e−at ]
(15) s2 (s+a)2 a3
1
(16) (s+a)(s+b) (e−at − e−bt )/(b − a)
s
(17) (s+a)(s+b) (be−bt − ae−at )/(b − a)
 
1 1 be−at −ae−bt
(18) s(s+a)(s+b) ab 1 − b−a
1 t 1 1 1 1 −at 1 −bt

(19) s2 (s+a)(s+b) ab − a2 b
− ab2
+ b−a a2
e − b2
e
1 e−at e−bt e−ct
(20) (s+a)(s+b)(s+c) (b−a)(c−a) + (a−b)(c−b) + (a−c)(b−c)
s ae−at be−bt ce−ct
(21) (s+a)(s+b)(s+c) (a−b)(c−a) + (b−a)(c−b) + (c−a)(b−c)
216 Sistemas Continuos

Transformadas unilaterales de Laplace (continuación)

No G(s) g(t)

s2 a2 e−at b2 e−bt c2 e−ct


(22) (s+a)(s+b)(s+c) (b−a)(c−a) + (a−b)(c−b) + (a−c)(b−c)
h i
1 1 bce−at cae−bt abe−ct
(23) s(s+a)(s+b)(s+c) abc 1 − (b−a)(c−a) − (a−b)(c−b) − (a−c)(b−c)
1 1
 −at
(24) (s+a)(s+b)2 (b−a)2
e − [1 + (b − a)t]e−bt
s 1

(25) (s+a)(s+b)2 (b−a)2
−ae−at + [a + (b − a)bt]e−bt
s2 1
 2 −at
(26) (s+a)(s+b)2 (b−a)2
a e − [2ab − b2 + (b − a)b2 t]e−bt
h i
1 1 b2 e−at 2ab−a2 +ab(b−a)t −bt
(27) s(s+a)(s+b)2 ab 2 1 − (b−a) 2 + (b−a) 2 e
1 1
 −bt (cos at + b senat)

(28) s[(s+b)2 +a2 ] 2
a +b 2 1 − e a
2
ωn 2
ωn
(29) s2 +2ζωn s+ωn
2 ζ < 1; ωd e−δt sen ωd t
2
sωn
(30) s2 +2ζωn s+ωn
2 ζ < 1; ωn2 e−δt sen (ωd t − θ)
2
ωn ωn
(31) s(s2 +2ζωn s+ωn
2) ζ < 1; 1 − ωd e−δt sen (ωd t + θ)
2
ωn −t/T1 −T −t/T2
(32) s(s2 +2ζωn s+ωn
2) ζ > 1; 1 − T1 e T1 −T2
2e

p
ωd = ω n 1 − ζ 2

θ = arc cos ζ = arc cos (ωd /ωn )

δ = ζ ωn
1
p
T1,2 = ωn (ζ ± ζ 2 − 1)

Los siguientes tres ejemplos ilustran la expansión en fracciones parciales:

3s + 2 C D E F
2
= + + 2
+
s(4s + 3)(2s + 5) s 4s + 3 (2s + 5) (2s + 5)

7s2 − 2s + 1 Cs + D Es + F H
2 2
= 2 2
+ 2 +
(s + 2s + 4) (s + 1) (s + 2s + 4) s + 2s + 4 s + 1
 
s2 − 9 8 C D
2
=1− =1− +
s −1 (s + 1)(s − 1) s+1 s−1
A manera de ilustración, el valor de H del segundo ejemplo se calcula multiplicando
ambos miembros de la igualdad por el factor (s + 1), para poder aislar H. La relación
resultante se evalúa con la solución de la ecuación (s + 1) = 0; es decir, se evalúa en
A.1 La Transformada Unilateral de Laplace 217

Tabla A.2: Propiedades de la transformada de Laplace

No Descripción Propiedad

(1) Linealidad L[a1 g1 (t) + a2 g2 (t)] = a1 L[g1 (t)] + a2 L[g2 (t)]


= a1 G1 (s) + a2 G2 (s)
h i
(2) Derivación L dg(t) = sG(s) − g(0)
h ndt i
(3) Derivación de orden n L d dtg(t)
n = sn G(s) − sn−1 g(0) − sn−2 dg(0)
dt − · · ·
n−2 n−1
−s dgdtn−2(0) − dgdtn−1(0)
hR i
t
(4) Integral L 0 g(t)dt = G(s) s
(5) Desplazamiento en tiempo L[g(t − t0 )] = e−t0 s G(s)
(6) Desplazamiento en frecuencia L[e−at g(t)] = G(s + a)
(7) Escalamiento L[g(at)] = a1 G( as )
(8) Valor inicial lı́mt→0 g(t) = lı́ms→∞ sG(s)
(9) Valor final lı́mt→∞ g(t) = lı́ms→0 sG(s)
n
(10) Multiplicación por tn L[tn g(t)] = (−1)n d dsG(s)
n
R∞
(11) División entre t L[g(t)/t] = 0 G(t)dt

s = −1 como sigue:
 2 
(7s − 2s + 1)(s + 1) (Cs + D)(s + 1) (Es + F )(s + 1) 10
H= 2 2
− 2 2
+ 2
=
(s + 2s + 4) (s + 1) (s + 2s + 4) s + 2s + 4 s=−1 9

Comando para Expandir Fracciones Racionales


El comando [r,p,k] = residue(B,A) permite expandir una fracción racional en la
forma siguiente:
B(s) r1 r2 rn
= + + ··· + + k(s) (A.5)
A(s) s − p1 s − p2 s − pn
donde p1 , . . . , pn son los n polos que no se repiten, r1 , . . . , rn son los residuos y k(s)
comprime los términos directos. Los coeficientes de los polinomios A(s) y B(s) se
introducen como vectores. Por ejemplo, A(s) = s4 + 5s2 − s − 3 produce el vector:
A = [1 0 5 –1 –3]. Si B(s) A(s) posee polos repetidos, por ejemplo, si su polo pj es de
multiplicidad m, entonces la expansión incluye términos de la forma:
rj rj+1 rj+m−1
+ + ··· +
s − pj (s − pj )2 (s − pj )m
donde rj , . . . , rj+m−1 son los correspondientes residuos. Si en (A.5) el grado de B(s)
es menor que el de A(s), entonces k(s) = 0. Si son iguales, k(s) es una constante.
Todos los polos y los residuos están contenidos en los vectores p y r respectivamente.
218 Sistemas Continuos

Ejemplo A.12
El programa fracp1.m descompone en fracciones parciales las expresiones:
B(s) s2 − 16 N (s) s+6 s+6
= 2 = = 2
A(s) s −1 M (s) (s − 2)2 s − 4s + 4
% fracp1.m DESCOMPOSICION EN FRACCIONES PARCIALES
clear all; close all; clc;
B = [1 0 -16]; A = [1 0 -1]; % PRIMER CASO
[r,p,k] = residue(B,A); % r = [7.5;-7.5]; p = [-1;1]; k = 1
M = [1 6]; N = [1 -4 4]; % SEGUNDO CASO
[rr,pp,kk] = residue(M,N); % rr = [1;8]; pp = [2;2]; kk = 0;
Por consiguiente:
B(s) 7.5 −7.5 N (s) 1 8
= + +1 = +
A(s) s+1 s−1 M (s) s − 2 (s − 2)2
Ejemplo A.13
Hallar la transformada inversa de Laplace de:
B(s) s4 + 2s3 + 3s2 + 2s + 1
G(s) = = 4
A(s) s + 4s3 + 7s2 + 6s + 2
Solución: El programa fracp2.m calcula los vectores r, p y k:
r = [ r1 ; r2 ; rj ; rj+1 ] = [ −0.5i ; 0.5i ; −2 ; 1 ]
p = [ p1 ; p2 ; pj ; pj+1 ] = [(−1 + i) ; (−1 − i) ; −1 ; −1] k=1
Dado que todas las raı́ces en el vector r son distintas:
r1 r2 rj rj+1
G(s) = k + + + +
s − p1 s − p2 s − pj (s − pj )2
−0.5i 0.5i −2 1
= 1+ + + +
s + 1 − i s + 1 + i s + 1 (s + 1)2
Es fácil demostrar que:
−0.5i 0.5i 1 2 1 ωn2
+ = =
s+1−i s+1+i 2 (s2 + 2s + 2) 2 s2 + 2ζωn s + ωn2
√ √
donde, por igualación: ωn = 2, ζ = 1/ 2. Por consiguiente:
1 2 −2 1
G(s) = 1 + + +
2 (s + 2s + 2) s + 1 (s + 1)2
2

Empleando los pares (1), (29), (3) y (12) de la Tabla A.1, con n = 1, se obtiene:
 
−1 −1 ωn2 ωn2 −δt
L [1] = δ(t) L = e sen ωd t
s2 + 2ζωn s + ωn2 ωd
   
1 1
L−1 = e−t L−1 = te−t
s+1 (s + 1)2
donde, ωd = 1 y δ = 1, se calcularon empleando las fórmulas al final de la continuación
de la Tabla A.1. Por consiguiente, juntando los resultados anteriores se obtiene:
g(t) = δ(t) + e−t sen t − 2e−t + te−t
A.1 La Transformada Unilateral de Laplace 219

% fracp2.m DESCOMPOSICIÓN EN FRACCIONES PARCIALES


clear all; close all; clc;
B = [1,2,3,2,1]; % POLINOMIO B(s)
A = [1,4,7,6,2]; % POLINOMIO A(s)
[r,p,k] = residue(B,A);
% r = [-0.5i;0.5i;-2;1]; p = [-1+i;-1-i;-1;-1]; k = 1

Ejemplo A.14

Resolver la siguiente ecuación diferencial:

d2 y(t) dy(t)
2
+ 11 + 24y(t) = e−6t
dt dt
dy(0)
con las condiciones iniciales nulas: dt = 0, y(0) = 0.

Solución: Empleamos la propiedad de derivación de la Tabla A.2:


 
d2 y(t) dy(t)  
L 2
+ 11 + 24y(t) = L e−6t
dt dt

 
2 dy(0) 1
s Y (s) − sy(0) − + 11(sY (s) − y(0)) + 24Y (s) =
dt s+6

1 3/80 1/60 1/48


Y (s) = = + +
(s + 3)(s + 8)(s + 6) s+3 s+8 s+6

3 −3t 1 1
y(t) = e + e−8t + e−6t
80 60 48

A.1.5. Álgebra de Bloques


La Fig. A.3 muestra las transformaciones válidas entre bloques y sus correspon-
dientes diagramas de flujo de señales. Cabe anotar que cada bloque representa una
FT. En un diagrama de flujo de señales, cada bloque se transforma en una linea con
dirección y ganancia, mientras que cada punto de suma o de derivación se transforma
en una señal, la cual se representa por un cı́rculo.
Por ejemplo, en el diagrama de bloques mostrado en la Fig. A.3(f), las señales r,
e e y, se convierten en cı́rculos en su diagrama de flujo de señales, mientras que las
ganancias G y H pasan a ser las lı́neas que conectan los bloques. Notar que estas
lı́neas poseen dirección y ganancia. La FT entre x1 y x2 , mostrada en su diagrama
equivalente, se deriva como sigue:

x1 (s) G(s)
x2 (s) = G(s)e(s) = G(s)(x1 (s) ± H(s)) → =
x2 (s) 1 ∓ GH(s)
220 Sistemas Continuos

u e y u y r e r e
G1 G2 G1 G2 G G
r r
u G1 e G 2 y u y 1/G
G 1G 2 r e
G r e
(a) G
1
r e u r u r (d) r 1/G
G G
y r e
y G u r u
G G
r 1 e G u r G u 1 u y y
u 1/G
1 G r G u
y 1 r 1 e G u
y
(b)
1
r y y
r e e (e) 1/G
G G
r r r e y
G G r G y
r G e r e 1 GH
G H
1
e G r 1 e y r y
e G
G
(c) H (f) 1 GH

Fig. A.3: Diagramas de bloque, sus correspondientes diagramas de flujo de señales y


sus equivalentes.

A.2. Matrices y Determinantes


Una matriz A de orden o dimensión n×m, escrita con letra mayúscula en negrita,
es un arreglo rectangular con sus elementos aij dispuestos en n filas y m columnas.
Es decir:


a11 . . . a1m
 .. 
A = [aij ] =  ... .  i = 1, . . . , n; j = 1, . . . , m
an1 . . . anm

Los elementos de una matriz pueden ser números reales o complejos, funciones, otras
matrices, etc. Cuando n = 1, A se convierte en un vector fila. Cuando m = 1, A
toma la forma de un vector columna. Los vectores se denotan en negrita. Por ejemplo,
los vectores columna x(q) y fila y(q) de orden n y dependiente del argumento q se
representan como:
 
x1 (q)
   
x(q) =  ...  y(q) = y1 (q) · · · yn (q)
xn (q)
A.2 Matrices y Determinantes 221

Dos formas de denotar los correspondientes vectores fila y columna son:


   T
xT (q) = x1 (q) · · · xn (q) ; x(q) = x1 (q) · · · xn (q)
   T
y1 (q) y1 (q)
   
yT (q) =  ...  y(q) =  ... 
yn (q) yn (q)
donde el superı́ndice T indica la operación transpuesta, la cual transforma las colum-
nas en filas y viceversa.

A.2.1. Operaciones con Matrices


Una matriz A con todos sus elementos aij iguales a cero se denomina matriz cero
o nula y se denota como A = 0. Dos matrices A = [aij ] y B = [bij ] son iguales si son
del mismo orden y además [aij ] = [bij ].
La suma de dos matrices, denotada como C = A ± B, sólo es posible si A y B
son del mismo orden:
C = [cij ] = A ± B = [aij ± bij ]
La multiplicación de dos matrices, expresada como C = AB, sólo es posible si el
número de columnas de A es igual al número de filas de B. Si A es de orden n × m
y B es de orden m × r, entonces C debe ser de orden n × r. Los elementos de C se
determinan como sigue:
m
X
cij = aik bkj ; i = 1, 2, . . . , n; j = 1, 2, . . . , m
k=1

Por ejemplo, la siguiente multiplicación es válida: A2×3 B3×1 = C2×1 , tal como se
observa a continuación.
 
  b11    
a11 a12 a13  c11 a11 b11 + a12 b21 + a13 b31
b21  = =
a21 a22 a23 c21 a21 b11 + a22 b21 + a23 b31
b31

Si κ es un escalar, entonces κA resulta una matriz en donde cada elemento queda


multiplicado por κ, a saber:

κA = κ[aij ] = [κaij ]

La multiplicación es asociativa:

ABCD = (AB)(CD) = A(BCD) = (ABC)D

y distributiva:
(A + B)(C + D) = AC + AD + BC + BD
Cuando AB = BA, se dice que A y B son matrices que conmutan. Sin embargo, en
general, la multiplicación no es conmutativa; es decir:

AB 6= BA
222 Sistemas Continuos

Ejemplo A.15

Determinar si las matrices A y B conmutan o no.


   
1 2 3 1 2 3
A= 0 4 −2  B =  0 4 −2 
2 6 −9 2 6 −9

Solución: Dado C = AB y D = BA, basta demostrar que C 6= D, tal como se


ilustra en el siguiente programa.
% conmat.m CONMUTACIÓN DE MATRICES
clear all; close all; clc;
A = [1 2 3;0 4 -2;2 6 -9]; B = [-1 5 0;1 4 -3;0 -6 -2];
C = A*B; % C = [1 -5 -12;4 28 -8;4 88 0]
D = B*A; % D = [-1 18 -13;-5 0 22;-4 -36 30]
% A Y B NO SON CONMUTATIVAS PORQUE C ES DIFERENTE DE D

Si AB = 0, implica que A = 0 o B = 0, o que A y B sean singulares. Las


matrices A y B son singulares si det(A) = 0 y det(B) = 0 donde det es la operación
determinante, la cual se trata más adelante.
Si AB = AC, no necesariamente implica que B = C.
La matriz transpuesta, denotada como AT , es la matriz A con sus filas y columnas
intercambiadas. Por consiguiente:

(AT )T = A; (A + B)T = AT + BT ; (AB)T = BT AT



Un número complejo se designa como s = σ + jω, donde j = −1 es la unidad
de los números imaginarios y tanto σ como ω son números reales. La operación
conjugada, denotada como A∗ , toma la conjugada a todos los elementos complejos
de A. Para la operación conjugada se cumple:

(A∗ )∗ = A; (A + B)∗ = A∗ + B∗ ; (AB)∗ = A∗ B∗

La operación hermitiana de A, denotada como AH , toma la conjugada y luego la


transpuesta (o toma la transpuesta y luego la conjugada) de la matriz A. Es decir:

AH = (A∗ )T = (AT )∗

Por consiguiente:

(AH )H = A; (A + B)H = AH + BH ; (AB)H = BH AH

Si A es una matriz real; es decir, si todos sus elementos son reales, entonces A ∗ = A
y AH = (A∗ )T = AT .

Ejemplo A.16

Dada la matriz real A y la matriz compleja B hallar A∗ , AH , AT , BT , B∗ y BH .


   
1 2 3 1−j 3 3+j
A= 0 4 −2  B= j 4 −2 + j 
2 6 −9 2−j 6+j −9
A.2 Matrices y Determinantes 223

Solución:  
1 0 2
A∗ = A A H = AT =  2 4 6 
3 −2 −9
   
1−j j 2−j 1+j 3 3−j
BT =  3 4 6+j  B∗ =  −j 4 −2 − j 
3 + j −2 + j −9 2+j 6−j −9
 
1+j −j 2+j
H T ∗ 
B = (B ) = 3 4 6−j 
3 − j −2 − j −9

A.2.2. Tipos de Matrices


Si el orden de una matriz A es n × n, entonces A es una matriz cuadrada de
orden n. Esta matriz posee una diagonal principal, o simplemente una diagonal con
elementos aii . La traza de una matriz cuadrada se define como:

traza(A) = a11 + · · · + ann

Una matriz cuadrada se denomina matriz diagonal cuando los elementos que no
pertenecen a su diagonal son todos ceros:
 
d11 0 0 . . . 0
 0 d22 0 . . . 0 
 
D = [dii ] =  . .. .. .. 
 .. . . . 
0 0 0 . . . dnn

Una matriz cuadrada se denomina triangular superior si los elementos debajo de


su diagonal son todos ceros. Si los elementos encima de su diagonal son todos ceros,
entonces la matriz es triangular inferior.
La matriz identidad I, denotada también como In (n es el orden de la matriz), es
una matriz diagonal que sólo posee unos. Si A es cuadrada, AI = IA. En general, se
cumple que:

A es simétrica si: AT = A (A.6)


T
A es antisimétrica si: A = −A (A.7)
H T ∗ ∗ T
A es hermitiana si: A = (A ) = (A ) = A (A.8)
H
A es antihermitiana si: A = −A (A.9)
T T T −1
A es ortogonal si: AA = A A = I, entonces: A = A (A.10)
H H H −1
A es unitaria si: AA = A A = I, entonces: A =A (A.11)
H H
A es normal si: AA =A A (A.12)
κ+1
A es periódica si: A = A; κ es un entero positivo (A.13)
κ
A es nilpotente si: A = 0; κ es un entero positivo (A.14)
−1
A−1 es la inversa de A si: A A=I (A.15)
A es singular si: det(A) = 0 (A.16)
224 Sistemas Continuos

Una matriz compleja cuadrada A puede ser escrita como la suma de una matriz
hermitiana B = 12 (A + AH ) más otra matriz antihermitiana C = 12 (A − AH ). Es
decir:
1 1
A = B + C = (A + AH ) + (A − AH )
2 2
Ejemplo A.17

Demostrar que B = 12 (A + AH ) y C = 12 (A − AH ) son matrices hermitiana y


antihermitiana respectivamente, donde A es la siguiente matriz compleja:
 
1+j 2−j
A=
6+j 5−j

Solución:  
H 1−j 6−j
∗ T
A = (A ) =
2+j 5+j
 
1 H 1 4−j
B = (A + A ) = BH = (B∗ )T = B
2 4+j 5
 
1 H j −2
C = (A − A ) = CH = (C∗ )T = −C
2 2 −j

A.2.3. Determinantes y Matriz Inversa


Determinantes
El determinante de la matriz A = [aij ] de orden 2 es:
 
a11 a12
det = a11 a22 − a12 a21 (A.17)
a21 a22

Para obtener el determinante de una matriz de orden n > 2 podemos emplear el


método de la expansión. Si tomamos como base la primera fila, el determinante de
una matriz A se obtiene de:
n
X
det(A) = (−1)1+j a1j det(A1j ) = (−1)1+1 a11 det(A11 ) + (−1)1+2 a12 det(A12 ) + · · ·
j=1

donde A1j , j = 1, . . . , n es la matriz que resulta luego de eliminar la fila 1 y la


columna j de A. Por ejemplo, el determinante de una matriz de orden n = 3 se
calcula como:
 
a11 a12 a13  
1+1 a 22 a 23
det  a21 a22 a23  = (−1) a11 det +
a32 a33
a31 a32 a33
   
1+2 a21 a23 1+3 a21 a22
(−1) a12 det + (−1) a13 det (A.18)
a31 a33 a31 a32

Con relación a dos matrices cuadradas A y B de orden n:


A.2 Matrices y Determinantes 225

1. Si cada elemento de una fila o columna de A es cero, entonces det(A) = 0.


2. det(A) = det(AT ).
3. Si la constante real κ multiplica una fila o una columna de A, entonces el det(A)
queda multiplicado por κ.
4. Si la matriz B se obtiene intercambiando dos filas o dos columnas de A, entonces
det(B) = −det(A).
5. Si dos filas o columnas de A son iguales, entonces det(A) = 0.
6. Si sumamos un múltiplo de una fila o una columna de A a cualquiera de sus
filas o columnas, el valor del det(A) no cambia.
7. det(AB) = det(BA) = det(A)det(B)
8. Si los eigenvalores de A son λ1 , λ2 , . . . , λn , luego: det(A) = λ1 λ2 . . . λn . La
determinación de los eigenvalores o valores propios de una matriz se trata en la
subsección A.2.4.

Matriz inversa
Si A y B son dos matrices no singulares; es decir, si det(A) 6= 0 y det(B) 6= 0,
entonces:
(AB)−1 = B−1 A−1 ; (AT )−1 = (A−1 )T
1
((A∗ )T )−1 = ((A−1 )∗ )T ; det(A−1 ) =
det(A)
Si A es una matriz no singular de orden 2, vale recordar que:
   
a b −1 1 d −b
A= ; A = (A.19)
c d ad − bc −c a
Del mismo modo, si A es una matriz no singular de orden 3:
 
a b c
A= d e f 
g h i
       
e f b c b c
 det −det det 
  h i   h i   e f  
1  d f a c a c 
−1
A =  −det det −det  (A.20)
det(A) 
  g i   g i   d f 

 d e a b a b 
det −det det
g h g h d e
det(A) = aei + gbf + cdh − gec − ahf − idb

Ejemplo A.18

Comprobar simbólicamente las fórmulas de la inversa y del determinante de A dadas


en (A.20).

Solución: Ejecutar el programa matinv.m mostrado abajo.


226 Sistemas Continuos

% matinv.m INVERSA Y DETERMINANTE DE UNA MATRIZ EN FORMA SIMB ÓLICA


clear all; close all; clc;
syms a b c d e f g h i % COMANDO syms GENERA SÍMBOLOS
A = [a b c;d e f;g h i]; % MATRIZ SIMBÓLICA
invA = inv(A); pretty(invA) % DEVUELVE INVERSA DE A
detA = det(A); pretty(detA) % DEVUELVE DETERMINANTE DE A
% aei - a f h - i d b + d c h + g b f - g c e

La Tabla A.3 muestra los comandos para ejecutar operaciones matriciales con
MATLAB.

Cantidades Complejas
Sea G = Gr + jGi un número o función compleja donde <e[G] = Gr es su parte
real e =m[G] = Gi es su parte imaginaria. El valor absoluto o módulo o magnitud
de G se denota como |G| mientras que el ángulo o argumento de G se expresa como
∠ G. Luego, G se puede formular como:

G = <e[G] + j=m[G] = |G|∠ G (A.21)


p  
=m[G]
|G| = (<e[G])2 + (=m[G])2 ∠ G = arctan
<e[G]
Si G es un vector o matriz compleja con elementos complejos Gij , entonces las ope-
raciones anteriores se ejecutan elemento por elemento; es decir:

<e[G] = <e[Gij ]; =m[G] = =m[Gij ]

G = |G|∠ G = |Gij |∠ Gij ; |G| = |Gij |; ∠ G = ∠ Gij

Ejemplo A.19

Calcular en forma gráfica y usando MATLAB el ángulo y el módulo de:



G = [−1 − j − 3 + 4j 1 − 3j] = [G11 G12 G13 ]

Solución: Los elementos de G corresponden a triángulos notables mostrados en la


Fig. A.4. Ejecutando el programa trnot.m se obtiene la misma solución.

4j

127º
5
−1 1
−3 −60º
2
−135º
2
−j
3j

G 11 = 2 −135º G12 = 5 127º G13 = 2 −60º

Fig. A.4: Triángulos notables para el problema A.19.


A.2 Matrices y Determinantes 227

% trnot.m NÚMEROS COMPLEJOS


clear all; close all; clc;
G11 = -1-j; G12 = -3+4j; G13 = 1-sqrt(3)*j; G = [G11 G12 G13];
anguloG = angle(G)*(180/pi); % (180/pi) CONVIERTE rad A GRADOS
% anguloG = [-135 126.8699 -60]
moduloG = abs(G); % moduloG = [1.4142 5 2]; 1.4142 = sqrt(2)

Tabla A.3: Comandos para cómputo matricial

Operación Código MATLAB


Suma A+B A + B
Resta A−B A - B
Multiplicación AB A*B
Multiplicación κA kappa*A
Conjugada A∗ conj(A)
Transpuesta (A real) AT A’
Transpuesta (A compleja) AT conj(A’); A.’
Hermitiana AH A’
Potencia An A^n
Determinante det(A) det(A)
Inversa A−1 inv(A)
División izquierda A*X = B; X = A\ B
División derecha X*A = B; X = B/A
Valor absoluto |A| abs(A)
Ángulo ∠A angle(A)
Parte real <e[A] real(A)
Parte imaginaria =m[A]
Pn imag(A)
Traza i=1 aii trace(A)
Matriz identidad In eye(n)

Ejemplo A.20

Dada la matriz cuadrada A, calcular B.


 
1−j 2−j 3−j
A =  4j −2 3 + 5j 
6 − j 7 − j 8 + 3j

(A∗ + AT − 0,7jA3 )A−1 AH |A|∠ A <e[A]=m[A]


B=
(2j + 1) traza(A)det(A)
Luego, comprobar que M = 12 (B + BH ) y N = 12 (B − BH ) son sus matrices hermi-
tiana y antihermitiana respectivamente.

Solución: El programa calmat.m calcula la matriz B pedida. Además, por ser her-
mitiana: M = MH , y por ser antihermitiana: N = −NH . Entonces basta comprobar
que M − MH = 0 y que N + NH = 0.
228 Sistemas Continuos

% calmat.m CÁLCULO MATRICIAL COMPLEJO


clear all; close all; clc;
A = [1-j 2-j 3- j;4j -2 3+5j;6-j 7-j 8+3j]; % MATRIZ DATO
B = (conj(A)+conj(A’)-0.7j*A^3)*inv(A)*A’*abs(A)* ...
angle(A)*real(A)*imag(A)/((2*j+1)*trace(A)*det(A));
M = (B + B’)/2; % M ES HERMITIANA PORQUE M=M’ Ó M-M’=0
N = (B - B’)/2; % N ES ANTIHERMITIANA PORQUE M=-M’ Ó M+M’=0

Ejemplo A.21

Multiplicación con Partición de Matrices.– Dos matrices Anm y Bmp (los


subı́ndices indican las dimensiones) pueden ser particionadas como sigue:
   
A n 1 m1 · · · A n 1 mm B m 1 p1 · · · B m 1 pp
 .. ..   .. .. 
A= . . ; B= . . 
A n n m1 · · · A n n mm B m m p1 · · · B m m pp

La condición necesaria para realizar el producto Cnp = Anm Bmp empleando parti-
ciones, es que las columnas de A y las filas de B sean particionadas en la misma
forma. Por lo tanto, n = n1 + · · · + nn , m = m1 + · · · + mm y p = p1 + · · · + pp .

Ejemplo A.22

Empleando la regla descrita determinar si el producto siguiente es válido y si lo es,


obtener C = AB.
  
A22 A23 A21 B22 B23
AB =  A32 A33 A31   B32 B33 
A42 A43 A41 B12 B13

Solución: Podemos notar que para las filas de A: n = 2 + 3 + 4 = 9, mientras que


para las columnas de A: m = 2 + 3 + 1 = 6. Del mismo modo, para las filas de
B: m = 2 + 3 + 1 = 6, mientras que para las columnas de B: p = 2 + 3 = 5. Por
consiguiente, la partición es correcta. La multiplicación ahora es directa:
 
A22 B22 + A23 B32 + A21 B12 A22 B23 + A23 B33 + A21 B13
C =  A32 B22 + A33 B32 + A31 B12 A32 B23 + A33 B33 + A31 B13 
A42 B22 + A43 B32 + A41 B12 A42 B23 + A43 B33 + A41 B13

Ejemplo A.23

Matriz Aumentada.– Si los vectores x, y, v y w son de orden n, m, p y q respec-


tivamente, obtener una sola ecuación diferencial matricial que reemplace a las dos
ecuaciones diferenciales siguientes:
dx dy
= ẋ = Ax + Bv; = ẏ = Cy + Dw
dt dt
dy
donde ddtx = ẋ y dt = ẏ denotan las derivadas de x e y con respecto al tiempo,
respectivamente.
A.2 Matrices y Determinantes 229

Solución: Es importante notar que si x es de orden n, entonces A debe ser de


orden n × n. También, si v es de orden p, entonces B debe ser de orden n × p, y
ası́ sucesivamente. La ecuación pedida se muestra a continuación, donde 0 es la matriz
nula. Las dimensiones de los vectores y matrices se indican con subı́ndices.
       
ẋ A 0 x B 0 v
= +
ẏ 0 C y 0 D w
ẋn×1 = An×n xn×1 + 0n×m ym×1 + Bn×p vp×1 + 0n×q wq×1
ẏm×1 = 0m×n xn×1 + Cm×m ym×1 + 0m×p vp×1 + Dm×q wq×1

A.2.4. Rango, Eigenvectores y Pseudoinversas


Dependencia e Independencia de Vectores
Un conjunto de vectores es linealmente independiente cuando ninguno de ellos se
puede escribir como una combinación lineal de los restantes. Al contrario, tal conjunto
de vectores es linealmente dependiente cuando alguno de ellos se puede escribir como
una combinación lineal de los demás.
Ejemplo A.24
Determinar si los siguientes vectores son o no linealmente dependientes.
     
18 3 4
u =  28  v= 5  w= 6 
29 7 5
Solución: Tal conjunto de vectores es linealmente dependiente si se demuestra que
existen dos constantes α y β no nulas que verifiquen: u = αv + βw; es decir:
       
18 3 4 3α + 4β
 28  = α  5  + β  6  =  5α + 6β 
29 7 5 7α + 5β
Resolviendo este sistema de tres ecuaciones y dos incógnitas resulta: α = 2 y β = 3.
Por lo tanto, el conjunto de vectores u, v y w son linealmente dependientes.
Ejemplo A.25
Determinar si los siguientes vectores son o no linealmente independientes.
     
1 3 4
u= 2   v= 5   
w= 6 
3 7 5
Solución: Tal conjunto de vectores es linealmente independiente si se demuestra que
no existen dos constantes α y β no nulas que verifiquen: u = αv + βw. Si suponemos
que dichas constantes existen, entonces:
       
1 3 4 3α + 4β
 2  = α  5  + β  6  =  5α + 6β 
3 7 5 7α + 5β
El sistema de tres ecuaciones y dos incógnitas resultante es incompatible y sin solu-
ción. Entonces, el conjunto de vectores u, v y w es linealmente independiente.
230 Sistemas Continuos

Rango de una Matriz


Si A es una matriz de orden n × m, su rango, denotado como rango(A), es igual
al número máximo r de sus vectores filas (o columnas) linealmente independientes.
En cualquier matriz, el número de vectores filas linealmente independientes coincide
con el número de vectores columnas linealmente independientes. Por consiguiente, el
valor máximo rmax que puede tener el rango r de una matriz de orden n × m es:
rmax = min(n, m).
Si A es una matriz cuadrada de orden n × n, su rango es n siempre que A sea no
singular; es decir, si det(A) 6= 0. En otro caso, si det(A) = 0, entonces: rango(A) < n.
El rango de una matriz también se puede determinar evaluando los determinantes de
sus mı́nimos cuadrados, tal como se ilustra en el siguiente ejemplo.

Ejemplo A.26

Determinar el rango de las siguientes matrices empleando varios métodos:


   
1 2 3 1 3 2
A= 3 5 7  B= 3 8 9 
4 6 5 1 2 5

Solución: La matriz A de orden n = 3 posee rango completo (r = n = 3) por dos


razones. La primera es que ningún vector fila o vector columna es una combinación
lineal de las restantes. La segunda razón es que A es no singular.
La matriz B de orden n = 3 posee rango r = 2, porque los dos primeros vectores
filas no son linealmente dependientes, pero el tercer vector fila si lo es, debido a que
es igual al segundo vector fila menos el doble del primer vector fila. Por otro lado, se
puede comprobar que det(B) = 0, lo que implica que B no posee rango completo por
ser singular; es decir: rango(B) < n. Los determinantes de los mı́nimos cuadrados de
B son:
 
  1 3 2
1 3
det([1]) = 1 6= 0 det = 1 6= 0 det  3 8 9  = 0
3 8
1 2 5

Por consiguiente, el rango de la matriz B es r = 2 porque el determinante del segundo


mı́nimo cuadrado es diferente de 0, mientras que el determinante del tercer mı́nimo
cuadrado es nulo.

Propiedades del Rango


Si A es una matriz de orden n × m y B es de orden m × k, se cumple:

rango(AB) = rango(AH ) = rango(AH A) = rango(AAH )


rango(AB) = rango(AT ) = rango(AT A) = rango(AAT )
rango(AB) ≤ rango(A); rango(AB) ≤ rango(B)
rango(AB) = rango(A), si A y B son no singulares
rango(AB) = rango(B), si A y B son no singulares
A.2 Matrices y Determinantes 231

Ejemplo A.27

Sean las matrices Anm , Bmp y Cmm . Demostrar numéricamente que:

rango(A) ≤ mı́n(n, m)
rango(A) = rango(AH )
rango(AB) ≤ min(rango(A), rango(B))
rango(CB) = rango(B)

Solución: El siguiente programa presenta las demostraciones pedidas.


% proprango.m PROPIEDADES DEL RANGO
clear all
A=[-1+j 3-5j -5+6j -2+5j;8-9j 4-2j -1+j -4;-2+3j 4-6j -2-5j 7j];
B=[1+j -3-5j;8+9j -4+2j;-2+3j -4-6j;-5-6j -2+5j];
C=[-1+j -2+j 3-j -5-7j;4-2j -1+j -4 2;4-6j -2-5j 7j -j;7j -1 9j 4j];
% DIMENSIONES DE A, B Y C SON (3,4), (2,4) Y (4,4) RESPECTIVAMENTE
rA=rank(A); rAH=rank(A’); rB=rank(B); rAB = rank(A*B); rCB=rank(C*B);
% rA=3=min(3,4); rAH=rA; rB=2; rAB=2=min(rA,rB); rCB=2=rB;

Eigenvalores y Eigenvectores
Un eigenvalor de una matriz de orden n, conocido también como valor propio,
modo, eigenvalue, o raı́z caracterı́stica, es un escalar λ que permite una solución no
trivial de la ecuación:
Ax = λx (A.22)
Factorizando x en (A.22) obtenemos la ecuación caracterı́stica de A:

det(λI − A) = 0 (A.23)

Asociado con cada eigenvalor λi existe un eigenvector ei de magnitud arbitraria que


es solución de (ver (A.22)):
Aei = λi ei (A.24)
La matriz E de eigenvectores para una matriz A de orden n toma la forma:
 
e11 · · · e1n
   .. .. .. 
E = e1 · · · en =  . . . 
en1 · · · enn

ei = |eeii | . Por ejemplo, el vector b


Un eigenvector normalizado se define como: b e1 se
calcula como:
 
e11 q
e1  .. 
b
e1 = e1 =  .  |e1 | = e211 + · · · + e2n1
|e1 |
en1

Ejemplo A.28
232 Sistemas Continuos

Determinar los eigenvalores y eigenvectores del sistema siguiente:


    
ẋ1 1 2 x1
=
ẋ2 4 3 x2

Solución: Los eigenvalores se determinan de (A.23):


   
λ 0 1 2
det(λI − A) = det − = (λ − 1)(λ − 3) − 8 = 0
0 λ 4 3

resultando: λ1 = −1 y λ2 = 5. Los eigenvectores se calculan de (A.24) para λ1 y λ2 :


Ae1 = λ1 e1 y Ae2 = λ2 e2 , obteniéndose:
       
1 e11 1 1 e12 1
e1 = Ae1 = = e2 = Ae2 = =
λ1 −e11 −1 λ2 2e12 2

donde √las soluciones e11 = 1 y e12 = 1 son arbitrarias. Dado que |e1 | = 2 y
|e2 | = 5, los eigenvectores normalizados resultan: b
e1 = e1 /|e1 | y b
e2 = e2 /|e2 |.

Ejemplo A.29

Determinar los eigenvalores y eigenvectores para la matriz A empleando MATLAB.


 
1 2j 4 −3
 −j 5j −4 −3j 
 
 0 −7j −2 −j 
8 6j −4 −9j

Solución: Ejecutar el programa eig1.m.


% eig1.m CÁLCULO DE EIGENVALORES Y EIGENVECTORES
clear all; close all; clc;
A = [1 2j 4 -3;-j 5j -4 -3j;0 -7j -2 -j;8 6j -4 -9j];
[E,D]=eig(A); % E: MATRIZ DE EIGENVECTORES NORMALIZADOS
% D: MATRIZ DIAGONAL DE EIGENVALORES

Ejemplo A.30

Si los λi son los eigenvalores de la matriz A de orden n, comprobar numéricamente:

det(A) = λ1 λ2 . . . λn ; i = 1, . . . , n

Solución: Ver el programa eig2.m.


% eig2.m COMPRUEBA QUE det(A)=L(1)L(2)L(3)L(4)
clear all
A = [1-j 2-j 3-j -3+8j
4j -2 3+5j 4-2j
6-j 7-j 8+3j 3+j
2 -1 j 0];
L = eig(A); % DETERMINA LOS EIGENVALORES DE A
detA = det(A); P = L(1)*L(2)*L(3)*L(4); % SE CUMPLE QUE: det(A) = P
A.2 Matrices y Determinantes 233

Pseudoinversas
El concepto de pseudoinversa de una matriz es la generalización de su inversa y
resulta útil para encontrar una solución en un conjunto de ecuaciones algebraicas en
donde el número de variables desconocidas y el número de ecuaciones linealmente
independientes no son iguales. Sea la ecuación:

Ax = b

donde A es una matriz de orden n × m y de rango n, x es un vector de orden m y b


es un vector de orden n. Se supone que n < m. La solución de tal ecuación está dada
por:
xo = AID b AID = AT (AAT )−1
donde AID es la matriz pseudoinversa derecha (o mı́nima inversa derecha) de A que
cumple la propiedad: AAID = In .
En forma similar, sea la ecuación: Ax = b, donde A es una matriz de orden m×n
y de rango m, x es un vector de orden n y b es un vector de orden m. Se supone que
n > m. La solución de tal ecuación se obtiene de:

xo = AII b AII = (AT A)−1 AT

donde AII es la matriz pseudoinversa izquierda (o mı́nima inversa izquierda) de A


que cumple la propiedad: AII A = Im .
Ejemplo A.31
En pseudoinv.m se resuelven sistemas de ecuaciones empleando pseudoinversas.
% pseudoinv.m SOLUCION DE ECUACIONES USANDO PSEUDOINVERSAS
clear all; close all; clc;
A = [1+i 2+3i 3-i;4-2i 5+i 6]; b = [10-i;20+3i]; % A(2,3)*x(3,1) = b(2,1)
C = [1+i 1-i;1 2+3i;1 4-i]; d = [1;2-3i;3+i]; % C(3,2)*y(2,1) = d(3,1)
MPID = A’*(A*A’)^(-1); % MATRIZ PSEUDOINVERSA DERECHA
x = MPID*b; % VECTOR SOLUCION DE DIMENSIÓN (3,1)
MPII = (C’*C)^(-1)*C’; % MATRIZ PSEUDOINVERSA IZQUIERDA
y = MPII*d; % VECTOR SOLUCION DE DIMENSIÓN (2,1)

Ejemplo A.32

Resolver el siguiente sistema (más incógnitas que ecuaciones):

(5 − j)x1 + (2 + 3j)x2 + (3 − j)x3 + (−1 + 4j)x4 + (−6 + j)x5 = 2 − 9j


4jx1 − 2x2 + (3 + 5j)x3 − 7jx4 + (8 − 2j)x5 = 4 − j
(6 − j)x1 + (7 − j)x2 + (8 − 3j)x3 + (3 − j)x4 + (1 + 4j)x5 = 3 + j
Solución: Ver el programa miqe.m.
% miqe.m SISTEMA DE ECUACIONES: MAS INCÓGNITAS QUE ECUACIONES
clear all; close all; clc;
A = [5-j 2+3j 3-j -1+4j -6+j
4j -2 3+5j -7j 8-2j
6-j 7-j 8-3j 3-j 1+4j];
B = [2-9j;4-j;3+j]; X = A\B;
234 Sistemas Continuos

Ejemplo A.33

Resolver el siguiente sistema (más ecuaciones que incógnitas):

(5 − j)x1 + (2 + 3j)x2 + (3 − j)x3 = 2 − 9j


4jx1 − 2x2 + (3 + 5j)x3 = 4 − j
(6 − j)x1 + (7 − j)x2 + (8 − 3j)x3 = 3 + j
(−1 + 4j)x1 + (−6 + j)x2 + (3 − j)x3 = −3 + 7j
−7jx1 + (8 − 2j)x2 + (1 + 4j)x3 = −9

Solución: Ejecutar el programa meqi.m.


% meqi.m SISTEMA DE ECUACIONES: MAS ECUACIONES QUE INCOGNITAS
clear all; close all; clc;
A = [5-j 2+3j 3-j
4j -2 3+5j
6-j 7-j 8-3j
-1+4j -6+j 3-j
-7j 8-2j 1+4j];
B = [2-9j;4-j;3+j;-3+7j;-9]; X = A\B;

A.2.5. Diagonalización de Matrices y Formas Canónicas


Diagonalización de Matrices
Si A es una matriz de orden n que posee n eigenvalores distintos λi , entonces su
matriz de eigenvectores E = [e1 . . . en ] es unitaria porque: EH = E−1 . Sea Λ una
matriz diagonal formada con los eigenvalores de A. Entonces se cumple:
 
λ1 0 . . . 0
 0 λ2 . . . 0 
 
E−1 AE = Λ =  . .. ..  (A.25)
 .. . . 
0 0 . . . λn

El proceso de diagonalización arriba mencionado permite transformar un sistema


descrito por la denominada ecuación de estado (sección A.3) :

dx
= ẋ = Ax + Bu
dt
en otro sistema descrito por la ecuación:
dx∗
= ẋ∗ = A∗ x∗ + B∗ u
dt
donde: x = Ex∗ es una transformación lineal, A∗ = E−1 AE = Λ y B∗ = E−1 B.
Esta transformación se denomina canónica.
Por otro lado, si A es una matriz de orden n de rango completo que posee eingen-
valores repetidos, entonces A se puede diagonalizar mediante la relación E −1 AE = Λ.
Sin embargo, la matriz de eigenvectores E no es unitaria (EH 6= E−1 ).
A.3 Variables de Estado 235

Ejemplo A.34

Hallar la transformación canónica del siguiente sistema:


   
2 0 1
ẋ = Ax + Bu = x+ u
−1 1 −1
Solución: Ejecutar el programa trancan.m para obtener la siguiente transformación
canónica:
dx∗
= ẋ∗ = A∗ x∗ + B∗ u
dt
 ∗    ∗   
ẋ1 1 0 x1 √0
= + u
ẋ∗2 0 2 x∗2 2
% trancan.m TRANSFORMACIÓN CANÓNICA
clear all; close all; clc;
A = [2 0;-1 1]; B = [1;-1];
[E,D]=eig(A); % E=[e1 e2]: MATRIZ DE EIGENVECTORES
% EIGENVALORES: D = diag(1, 2)
Aast=inv(E)*A*E; Bast=inv(E)*B; % Aast=[1 0;0 2]; Bast=[0;1.4142};

Ejemplo A.35
En el programa siguiente se diagonalizan varias matrices de rango completo.
% diagmat.m DIAGONALIZACION DE MATRICES DE RANGO COMPLETO
clear all; close all; clc;
A1 = [2 2 -1;2 3 0;-1 0 2]; n1 = 3; % rank(A1) = 3 (RANGO COMPLETO)
[E1,D1] = eig(A1); DD1=inv(E1)*A1*E1;
% D1=DD1=diag(4.7093,2.1939,0.0968), RA ÍCES NO REPETIDAS => inv(E1)=E1’
A2 = [-2 -1 -1 -1 2;1 3 1 1 -1;-1 -4 -2 -1 1;-1 -4 -1 -2 1;...
-2 -2 -2 -2 3]; n2 = 5; % rank(A2) = 5 (RANGO COMPLETO)
[E2,D2] = eig(A2); DD2=inv(E2)*A2*E2;
% D2 = DD2 = diag(-1,1.5+0.866i,1.5-0.866i,-1,-1)
% DOS RAÍCES REPETIDAS => inv(E2) ~= E2’
A3 = [-2 3 3 -1 -6 -2;1 0 -1 0 2 1;1 -2 0 1 2 0;1 1 -1 -1 2 1;...
1 -2 -1 1 3 1;1 0 -1 0 2 0]; n3 = 6; % rank(A3)=6 (RANGO COMPLETO)
[E3,D3] = eig(A3); DD3=inv(E3)*A3*E3;
% D3 = diag(-1,-1,1,1,1,-1), TRES RAÍCES REPETIDAS => inv(E3) ~= E3’

A.3. Variables de Estado


A.3.1. Ejemplo de Introducción
El siguiente ejemplo sirve para introducir el concepto de variable de estado. La
Fig. A.5 muestra el sistema tanque con agua, donde el volumen de agua acumulado
se modela como:
dh dh
S = S ḣ = qi − qo ḣ = (A.26)
dt dt
donde S es la sección uniforme del tanque, h es el nivel del liquido, q1 es el flujo de
entrada y qo es el flujo de salida. Considerando que el flujo de salida qo es laminar:
h
qo = (A.27)
Rh
236 Sistemas Continuos

ÝÝÜÝ
ÜÜ qi

àßàßàß
àßàßàß
A

ÞÞ Sensor de presión qo

Fig. A.5: Sistema tanque con agua.

donde Rh es la resistencia hidráulica, la cual se calcula de la relación:


H
Rh = (A.28)
Q
donde H y Q son los valores estacionarios de h y qo , respectivamente. Despejando
ḣ de (A.26) se obtiene la ecuación de estado del sistema, la cual es una ecuación
diferencial de primer orden de la forma:
1 1
ḣ = − h + qi ẋ = A x + B u (A.29)
SRh S
donde x = h es la variable de estado del sistema, u = qi es la variable de entrada,
1
A = − SR h
es la matriz de estado del sistema (en este caso una matriz de orden uno)
1
y B = S es la matriz de distribución de orden uno. La ecuación de salida del proceso
toma la forma:
y = Cx = [1]x (A.30)
donde y es la salida y C es la matriz de salida. Sabiendo que L[ ] es el operador de
Laplace, entonces: L[u] = U (s), L[x] = X(s) = Y (s), L[qi ] = Qi (s) y L[ẋ] = L[ẏ] =
s[Y (s) − y(0)], la FT del sistema con y(0) = 0 resulta de (A.29):
Y (s) Rh
= (A.31)
Qi (s) SRh s + 1
donde el producto SRh es la constante de tiempo del sistema nivel. Por consiguiente,
la FT y las ecuaciones de estado y de salida de un determinado sistema SISO (de
una entrada y una salida), son dos formas de describir la dinámica del sistema. Sin
embargo, la representación en el espacio de estado (variables de estado más ecuaciones
de estado y de salida), es general porque se puede aplicar también a sistemas no
lineales como se verá oportunamente. En cambio, la FT sólo es aplicable a sistemas
lineales.
Para sistemas MIMO lineales y con parámetros invariantes con el tiempo, las
ecuaciones de estado y de salida toman la forma:

ẋ = Ax + Bu y = Cx + Du (A.32)
A.3 Variables de Estado 237

donde los ordenes de los vectores y matrices se ilustran en la siguiente relación:

ẋn×1 = An×n xn×1 + Bn×m um×1 yp×1 = Cp×n xn×1 + Dp×m um×1

A.3.2. Definición de Variables de Estado


El vector de estado x = [x1 . . . xn ]T de un sistema (donde el superı́ndice T indica
transpuesta) es el mı́nimo conjunto de variables, las variables de estado x 1 . . . xn , las
cuales contienen información suficiente acerca de la historia pasada del sistema. Esta
información permite computar todos los futuros estados del sistema, asumiendo por
supuesto, que todas las futuras entradas u son también conocidas, como del mismo
modo lo son las ecuaciones dinámicas que describen dicho sistema. El número n de
variables de estado (el número de ecuaciones diferenciales de primer orden) define el
orden o la dimensión del sistema.
El espacio de estado es el espacio n-dimensional de todos los estados. Cuando el
sistema es de orden n = 2, el espacio de estado es conocido como el plano de fase con
coordenadas x1 y x2 . Los puntos de equilibrio o puntos singulares en el espacio de
estado de un sistema no forzado; es decir, cuando u = 0, se definen como los puntos
en donde los estados del sistema permanecen por siempre. Esto implica, en un caso
general, resolver la ecuación ẋ = 0 cuando u = 0. Para sistemas lineales, el punto de
equilibrio es siempre el origen 0 porque ẋ = Ax = 0 implica que xe = 0, donde el
superı́ndice e indica equilibrio.

Ejemplo A.36

La Fig. A.6 muestra un sistema masa–resorte compuesto por una masa M unida
a un resorte de constante K. Determinar analı́tica y gráficamente su plano de fase
mostrando las correspondientes trayectorias de estado y sus puntos de equilibrio.
Notar que el sistema masa–resorte es no forzado porque no existe fuerza exterior
alguna actuando sobre el mismo.

z
K=1

M=1 z0

Fig. A.6: Sistema mecánico masa–resorte.

Solución: El sistema masa–resorte está gobernado por la siguiente ecuación diferen-


cial lineal de segundo orden:
M z̈ + Kz = 0 (A.33)
Como el sistema es de orden dos, seleccionemos como variables de estado x 1 = z y
x2 = ż. Este modelo dinámico con M = K = 1 produce dos ecuaciones de estado y
una ecuación de salida:

ẋ1 = x2 ẋ2 = −x1 y = x1


238 Sistemas Continuos

Por consiguiente, las ecuaciones de estado y salida del sistema masa–resorte son:
ẋ = Ax y = Cx
     
ẋ1 x1 0 1  
ẋ = x= A= C= 1 0
ẋ2 x2 −1 0
Asumamos que estiramos el resorte hasta que M se encuentre en la posición inicial
z0 . Luego soltamos el resorte, lo cual produce un movimiento oscilatorio que puede
modelarse como z(t) = z0 cos t. Es fácil comprobar que la solución z(t) = z0 cos t
verifica el modelo dinámico dado en (A.33). Usando las variables de estado definidas
anteriormente resulta:
x1 (t) = z0 cos t x2 (t) = −z0 sen t
Elevando al cuadrado y sumando se obtiene:
x21 + x22 = z02 (cos2 t + sen2 t) = z02
La última ecuación representa un cı́rculo de radio z0 . Por consiguiente, las trayectorias
de estado en el plano de fase x1 versus x2 son cı́rculos cuyos radios dependen de la
posición inicial de reposo z0 . tales trayectorias se muestran en la Fig. A.7. Para
obtener dichas trayectorias de fase, ejecutar el programa pfl.m.
Los eigenvalores del sistema masa–resorte se determinan de:
 
λ 1
det(λI − A) = det = λ2 + 1 = 0
−1 λ
Por lo tanto: λ1 = i, λ2 = −i, ambas raı́ces imaginarias, lo cual nos informa del
carácter oscilante de la respuesta del sistema, tal como se discute en la siguiente
sección. El único punto de equilibrio xe = 0 del sistema se determina de:
 e   
x1 0
ẋe = Axe = 0 xe = =
xe2 0
% C2pfl.m PLANO DE FASE EN UN SISTEMA LINEAL
clear all; close all; clc;
g = inline(’[x(2);-x(1)]’,’t’,’x’); % MODELO MATEM ÁTICO
vectfield(g,-1:0.2:1,-1:0.2:1) % RANGOS DE LOS EJES HORIZONTAL Y VERTICAL
hold on
for x20=-1:0.2:1 % SIMULACIÓN PARA ESTAS CONDICIONES INICIALES DE y(2)
[ts,xs]=ode45(g,[0,10],[0;x20]); % [0,10]: SIMULACI ÓN DE 0 A 10 s
plot(xs(:,1),xs(:,2)); grid;
end
hold off, ylabel(’x2(t)’), xlabel(’x1(t)’),
title(’PLANO DE FASE x2(t) VS x1(t)’), print -deps -f C2pfl

A.3.3. Matriz de Transferencia y Estabilidad


Las ecuaciones de estado y de salida multivariables de un Sistema Lineal e Invari-
ante con el Tiempo (SLIT) sujeto a los vectores de disturbio v en los estados y w en
las salidas, los cuales se asumen conocidos, se representan como:
ẋ = Ax + Bu + Ev
y = Cx + Du + Fw (A.34)
A.3 Variables de Estado 239

PLANO DE FASE x1 VS x2

0.8

0.6

0.4

0.2
VELOCIDAD x2

−0.2

−0.4

−0.6

−0.8

−1

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1


POSICIÓN x1

Fig. A.7: Plano de fase mostrando las trayectorias de estado (Ejemplo A.36).

Donde E y F son matrices disturbio también conocidas. El sistema es invariante


con el tiempo porque todas sus matrices son constantes. Si v y/o w fueran vectores
estimados o estadı́sticos, entonces el SLIT en cuestión serı́a estocástico. El sistema
SLIT libre de disturbios se determina haciendo v = w = 0 en (A.34):

ẋ = Ax + Bu
y = Cx + Du (A.35)

La matriz de transferencia (MT) del sistema SLIT se halla aplicando la transformada


de Laplace en (A.35) con x(0) = y(0) = 0 (condiciones iniciales nulas):

sX(s) = AX(s) + BU(s)


Y(s) = CX(s) + DU(s) (A.36)

Despejamos X(s) de la primera relación de (A.36) y la reemplazamos en la segunda


relación. El resultado es:

Y(s) = [C(sI − A)−1 B + D]U(s) = G(s)u(s) (A.37)

donde s es la variable laplaciana, I es la matriz identidad y G(s) es la MT:

G(s) = C(sI − A)−1 B + D

Ejemplo A.37

Determine la MT del sistema siguiente, empleando matemática simbólica:

ẋ1 = −x1 + x2 + 2u1 − u2 ẋ2 = 2x1 − 3x2 + u1 − 2u2

y1 = x1 − 5u2 y2 = −x2 − 3u1


240 Sistemas Continuos

Solución: Las ecuaciones de estado y de salida correspondientes son:

ẋ = Ax + Bu y = Cx + Du
     
x1 y1 u1
x= ; y= ; u=
x2 y2 u2
       
−1 1 2 −1 1 0 0 −5
A= ; B= ; C= ; D=
2 −3 1 −2 0 −1 −3 0
El programa mtrans.m determina la MT pedida. El resultado es:
 
2s+7 5s2 +21s+10
2 − s2 +4s+1
 s +4s+1 
G(s) = C(sI − A)−1 B + D =  
2
− 3ss2 +13s+8
+4s+1
2s+4
s2 +4s+1

% mtransf.m CÁLCULO DE LA MATRIZ DE TRANSFERENCIA


clear all; close all; clc;
syms s;
A=[-1 1;2 -3]; B=[2 -1;1 -2]; C=[1 0;0 -1]; D=[0 -5;-3 0]; I = [1 0;0 1];
G = C*inv(s*I-A)*B + D; pretty(simplify(G))

Estabilidad
Cuando las señales y y u son unidimensionales, la ecuación (A.37) se convierte en
la FT del sistema SLIT y se puede representar como la relación entre dos polinomios
A(s) y B(s) como sigue:

y(s) B(s)
= G(s) = [C(sI − A)−1 B + D] = (A.38)
u(s) A(s)

En general, la ecuación caracterı́stica del sistema SLIT (ecuación (A.35)) se ob-


tiene de:
A(s) = det(sI − A) = 0 (A.39)
Las raı́ces de (A.39) son los eigenvalores de la matriz de estado A, tal como se trató en
(A.23). Los eigenvalores de un sistema SLIT determinan la estabilidad del sistema
alrededor de un punto de equilibrio xe en el espacio de estado como sigue:

El sistema SLIT no forzado ẋ = Ax (ecuación (A.35) con u = 0 es estable, siempre


que todos sus eigenvalores (raı́ces de (A.39)) posean parte real negativa. Cuando al
menos uno de tales eigenvalores posea parte real positiva o cero, entonces el sistema
es inestable.

Notar que todas las funciones de transferencia de la matriz G del ejemplo A.37
poseen un mismo denominador común: el polinomio A(s) = s2 +4s+1. Este polinomio
es también la ecuación caracterı́stica del sistema multivariable, siendo sus eigenvalores
s1 = –3.7321 y s2 = –0.2679. Por consiguiente, tal sistema es estable.
El sistema no forzado ẋ = Ax posee un solo punto de equilibrio: el origen, debido
a que la solución de ẋ = Ax = 0 es xe = 0. Por consiguiente, un SLIT no forzado
es estable, cuando el estado x del sistema tiende al estado de equilibrio xe = 0
A.3 Variables de Estado 241

para cualquier estado inicial finito x(t0 ), donde t0 es el tiempo inicial. Por ejemplo,
el sistema de primer orden ẋ = a x donde a > 0, es inestable porque su solución
x(t) = x(0)eat no tiende al estado de equilibrio xe = 0 cuando t → ∞ para cualquier
estado inicial x(0).

Tipos de Puntos Singulares en SLITs de 2do Orden


Un SLIT de orden dos no forzado se describe mediante la siguiente ecuación
matricial:     
ẋ1 a11 a12 x1
ẋ = = Ax =
ẋ2 a21 a22 x2
Para este sistema, el único punto singular o de equilibrio es xe = 0 (el origen). Los
dos eigenvalores λ1 y λ2 de la matriz de estado A se determinan de su ecuación
caracterı́stica: det(λI − A) = 0. Dependiendo de la ubicación de los eigenvalores
λ1 = σ1 + jω1 y λ2 = σ2 + jω2 en el plano σ versus jω, el punto de equilibrio
correspondiente presenta ciertas caracterı́sticas, tal como se ilustra en la Fig. A.8, en
donde los puntos negros sobre los gráficos jω versus σ representan tales eigenvalores.
Por ejemplo, si λ1 < 0 y λ2 > 0 (caso (c)), las trayectorias en el plano de fase
forman una figura denominada silla de montar. El punto singular silla de montar es
inestable debido a la presencia del eigenvalor positivo. El caso (f), analizado también
en el ejemplo A.36, corresponde a un sistema oscilante porque los eigenvalores son
imaginarios puros. Las trayectorias de estado en este caso forman un punto centro.

A.3.4. Controlabilidad y Observabilidad


Controlabilidad Completa
Se dice que un SLIT continuo es controlable si es que existe un vector u(t) de
orden m realizable y capaz de trasladar el estado x(t) de orden n del sistema, desde un
estado inicial x(t0 ) hacia cualquier estado final x(tN ) en un tiempo finito tN . Si todos
los estados son controlables, se dice que el sistema es completamente controlable o
que posee controlabilidad completa.
Sin demostración se establece que en general, para que el sistema ẋ = Ax + Bu
sea completamente controlable, la siguiente matriz M de orden n × nm:
 
M= B AB · · · An−1 B (A.40)

denominada matriz de controlabilidad, debe ser de rango n. Para ahondar un poco


en el tema de controlabilidad, a continuación se analiza un caso especial.

Caso Especial: Eigenvalores de A no se Repiten


Si los eigenvalores de A son distintos, entonces reemplazando la transformación
lineal x = Ex∗ en ẋ = Ax + Bu, donde E es la matriz de vectores propios (ver
subsección A.2.5), y despejando x∗ se obtiene:

ẋ∗ = E−1 AEx∗ + E−1 Bu = Λx∗ + B∗ u (A.41)


242 Sistemas Continuos

jω x2 jω x2

σ x1 σ x1
λ1 λ 2 λ1 λ 2

(a) (b)
jω x2 jω x2

λ1
σ x1 σ x1
λ1 λ2
λ2
(c) (d)
jω x2 jω x2

λ1
λ1
σ x1 σ x1
λ2
λ2 (f)
(e)

Fig. A.8: Tipos de puntos singulares en un sistema lineal de segundo orden: (a)
nodo estable, (b) nodo inestable, (c) punto silla de montar, (d) foco estable, (e) foco
inestable, (f) punto centro.

       
ẋ∗1 λ1 0 x∗1 b∗11 b∗12 · · · b∗1m u1
 ẋ∗2   λ2  x∗2   b∗21 b∗22 · · · b∗2m  u2 
       
 ..  =  ..  .. + .. .. .. ..  .. 
 .   .  .   . . . .  . 
ẋ∗n 0 λn x∗n b∗n1 b∗n2 ∗
· · · bnm um

De la ecuación (A.41) podemos aseverar que para controlabilidad completa, ninguna


fila de B∗ = E−1 B debe de ser nula. Si por ejemplo, la variable de estado x2 (la cual
está asociada a x∗2 y al eigenvalor λ2 ) es no controlable, entonces la segunda fila de
B∗ tiene que ser nula. Si este es el caso, de la ecuación (A.41) se obtiene:

ẋ∗2 = λ2 x∗2 + 0u1 + 0u2 + · · · + 0um

de donde claramente se observa que ninguna fuerza de control está actuando sobre
la variable x∗2 .

Controlabilidad Completa a la Salida


El sistema SLIT descrito en (A.44) con dimensiones Ann , Bnm , Cpn y Dpm es
completamente controlable en la salida si el rango de la siguiente matriz de orden
p × (n + 1)m iguala al orden p del vector de salida y del sistema:

[CB CAB CA2 B · · · CAn−1 B D] (A.42)


A.3 Variables de Estado 243

Observar que (A.42) requiere la presencia del término Du en la ecuación de salida


dada en (A.35).

Ejemplo A.38

En el programa cont1.m se determina la controlabilidad completa y de la salida de


un SLIT con ecuación de estado ẋ = Ax + Bu y ecuación de salida y = Cx + Du.
% cont1.m CONTROLABILIDAD COMPLETA DE UN SLIT
clear all; close all;clc;
A = [2 2 -1;2 3 0;-1 0 2]; B = [0 2;-1 0;2 1];
C = [1 0 1;-2 3 0]; D = [1 -1;0 3]; % n = 3; p = 2;
M = ctrb(A,B); % M = [A A*B A^2*B]: MATRIZ DE CONTROLABILIDAD
rankM = rank(M); % rankM = 3 = n => SISTEMA COMPLETAMENTE CONTROLABLE
CS = [C*B C*A*B C*A^2*B D]; rankCS = rank(CS);
% rankCS = p = 2 => SISTEMA COMPLETAMENTE CONTROLABLE A LA SALIDA

Observabilidad Completa
Un sistema SLIT es completamente observable si algún estado x(t), incluyendo el
estado inicial x(t0 ), se puede determinar partiendo de la observación de la salida y(t)
en un tiempo finito t0 ≤ t ≤ t1 . La observabilidad completa en un sistema es de suma
importancia porque permite reconstruir las variables de estado no medibles partiendo
del vector medible y(t). Sin demostración se establece la condición de estabilidad
completa. Para que un sistema sea completamente observable, es necesario que el
rango de la denominada matriz de observabilidad N de dimensión np × p :
 
C
 CA   H
 
N= ..  = CH AH CH · · · (AH )n−1 CH (A.43)
 . 
CAn−1

posea rango n (rango completo). En (A.43), el superı́ndice H indica operación hermi-


tiana. Se sabe que si todas las matrices son reales, entonces la operación hermitiana
se reemplaza por la operción transpuesta.
Si existe una transformación lineal x = Ex∗ de modo tal que E−1 AE = Λ, donde
Λ es la matriz diagonal cuyos elementos λi son los eigenvalores de A, entonces (??)
toma la forma:
ẋ∗ = E−1 AEx∗ = Λx∗ x∗ = eΛt x∗ (t0 )
Luego:
  
eλ 1 t 0 x∗1 (t0 )
 eλ 2 t  x∗2 (t0 ) 
∗ Λt ∗   
y = CEx = CEe x (t0 ) = CE  ..  .. 
 .  . 
0 e λn t x∗n (t0 )

Entonces, para que el sistema SLIT sea completamente observable, ninguna de las
columnas de la matriz CE de orden p × n debe de ser nula. Si alguna columna i fuera
nula, entonces no se podrı́a reconstruir completamente el vector de estado x, lo que
se contrapone a la definición de observabilidad completa.
244 Sistemas Continuos

Ejemplo A.39
En el programa observ1.m se determina la observabilidad completa de varios SLITs.
% observ1.m OBSERVABILIDAD COMPLETA DE SLITs
clear all; close all; clc;
A1 = [2 0 0;0 2 0;0 3 1]; B1 = [0 1;1 0;0 1]; C1 = [1 2 1;2 0 3]; n1 = 3;
[E1,D1] = eig(A1); DD1 = inv(E1)*A1*E1; % D1 = diag(2,1,2)
N1 = obsv(A1,C1); % RETORNA MATRIZ DE OBSERVABILIDAD [C1; C1*A1; C1*A1^2]
rankN1=rank(N1); % rankN1=3=n1 => SISTEMA COMPLETAMENTE OBSERVABLE
A2 = [-1 1 -1;0 1 -4;0 1 -3]; B2 = [0 2 1]; C2 = [0 1 -1]; n2 = 3;
[E2,D2] = eig(A2); DD2 = inv(E2)*A2*E2; % D2 = diag(-1,-1,-1)
N2 = obsv(A2,C2); % RETORNA MATRIZ DE OBSERVABILIDAD [C2; C2*A2; C2*A2^2]
rankN2=rank(N2); % rankN2=2<n2 => SISTEMA NO ES COMPLETAMENTE OBSERVABLE
A3 = [2 2 -1;2 3 0;-1 0 2]; B3 = [0 1;1 0;0 1]; C3 = [1 2 1;2 0 3]; n3=3;
[E3,D3] = eig(A3); DD3 = inv(E3)*A3*E3; % D3 = diag(0.0968,2.1939,4.7093)
N3 = obsv(A3,C3); % RETORNA MATRIZ DE OBSERVABILIDAD [C3; C3*A3; C3*A3^2]
rankN3=rank(N3); % rankN3=3=n3 => SISTEMA COMPLETAMENTE OBSERVABLE

A.3.5. Solución de la Ecuación de Estado de SLITs Continuos


En la subsección A.3.3, ecuación (A.35), vimos que la dinámica linealizada de un
sistema (sin la presencia de disturbios) se representa en el espacio de estado mediante
sus ecuaciones de estado y de salida:
ẋ = Ax + Bu; y = Cx + Du (A.44)
La solución de la ecuación de estado anterior, dado un estado inicial x(t 0 ), es:
Z t
A(t−t0 )
x(t) = e x(t0 ) + eA(t−τ ) Bu(τ )dτ
t0
Z t
= Φ(t − t0 )x(t0 ) + Φ(t − τ )Bu(τ )dτ (A.45)
t0

donde:

X Aν (t − t0 )ν A2 (t − t0 )2 A3 (t − t0 )3
Φ(t−t0 ) = eA(t−t0 ) = = I+A(t−t0 )+ + +· · ·
ν! 2! 3!
ν=0
(A.46)
es la matriz de transición o exponencial. La derivada total de e A(t−t 0 ) resulta:
deA(t−t0 ) A3 (t − to )2
= A + A2 (t − to ) + + ···
dt  2! 
A2 (t − t0 )2
= A I + A(t − t0 ) + + +···
2!
= AeA(t−t0 ) = eA(t−t0 ) A (A.47)
Derivando ahora (A.45) con respecto al tiempo t se obtiene:
 Z 
A(t−t0 ) d At t −Aτ
ẋ = Ae x(t0 ) + e e Bu(τ )dτ
dt t0
Z t
A(t−t0 )
= Ae x(t0 ) + Ae At
e−Aτ Bu(τ )dτ + eAt e−At Bu = Ax + Bu
t0
A.3 Variables de Estado 245

De esta forma se demuestra que (A.45) es la solución de la ecuación de estado (A.44).


La representación de la ecuación de estado en el dominio laplaciano toma la forma:

sx(s) − x(t0 ) = Ax(s) + Bu(s)


x(s) = (sI − A)−1 x(t0 ) + (sI − A)−1 Bu(s)
= Φ(s)x(t0 ) + Φ(s)Bu(s) (A.48)

y(s) = Cx(s) + Du(s) = C(sI − A)−1 x(t0 ) + [C(sI − A)−1 B + D]u(s) (A.49)
Comparando (A.48) con (A.45) podemos afirmar que:

Φ(t − t0 ) = eA(t−t0 ) = L−1 [(sI − A)−1 ] (A.50)

La matriz Φ(t − t0 ) se denomina la matriz de transición. Para incluir el tiempo inicial


t0 , las integraciones en L−1 [(sI − A)−1 ] se deben de hacer de t0 a t. La matriz de
transferencia definida en (A.37) también se obtiene haciendo x(t0 ) = 0 en (A.49).

Ejemplo A.40

Graficar la respuesta x(t) del sistema: ẋ = −2x + 5u con x(0) = 3. La entrada u(t)
tiene la forma mostrada en la Fig. A.9.

1 u(t)

t
0 1 2 3 4

Fig. A.9: Entrada u(t) para el ejemplo A.40.

Solución: Emplearemos la solución dada en (A.45) con A = −2 y B = 5. Para


0 ≤ t ≤ 1, u(t) = 0, t0 = 0 y x(t0 ) = 3. Luego:

x(t) = 3e−2t ; x(1) = 3e−2


3−t
Para 1 ≤ t ≤ 3, u(t) = 2 , t0 = 1 y x(t0 ) = x(1). Luego:
Z t
3−τ 5  τ =t
x(t) = 3e−2 e−2(t−1) + e−2(t−τ ) 5 dτ = 3e−2t + e−2t 7e2τ − e2τ τ τ =1
1 2 8

5 5
x(t) = 3e−2t + [7 − t − 6e2(1−t) ]; x(3) = 3e−6 + (4 − 6e−4 )
8 8
Para t ≥ 3 , u(t) = 0, t0 = 3 y x(t0 ) = x(3). Luego:

x(t) = x(3)e−2(t−3)

El gráfico de x(t), obtenido con el programa C2rpta.m se muestra en la Fig. A.10.


246 Sistemas Continuos

2.5

RESPUESTA x(t)

1.5

0.5

0
0 1 2 3 4 5 6 7 8 9 10
TIEMPO EN SEGUNDOS

Fig. A.10: Respuesta x(t) de un SLIT de primer orden a una entrada arbitraria u(t).

% C2rpta.m RESPUESTA DE UN SLIT A UNA ENTRADA ARBITRARIA


clear all; close all; clc;
x_3 = 3*exp(-6)+5*(4-6*exp(-4))/8; k=1; T=10;
for t=0:0.01:T
x(k)=3*exp(-2*t);
if t>1; x(k)= 3*exp(-2*t)+5*(7-t-6*exp(2-2*t))/8; end
if t>3; x(k)= x_3*exp(-2*(t-3)); end
k=k+1;
end
ejex = linspace(0,T,T/0.01); plot(ejex,x(1:T/0.01)); grid
ylabel(’RESPUESTA x(t)’); xlabel(’TIEMPO [s]’); print -deps -f rptarb

Ejemplo A.41

Dado u(t) = 3e−t , determinar la respuesta de un sistema descrito por las siguientes
ecuaciones de estado y de salida:

x˙1 = −7x1 + x2 + 2u; x˙2 = −12x1 − u y = 3x1 − 4x2 − 2u

Condiciones iniciales: x1 (0) = −6, x2 (0) = 1. Graficar la respuesta y(t) y compararla


con las respuestas obtenidas mediante discretización para los tiempos de muestreo de
0.1 s y 0.04 s.
Solución: Es fácil determinar que las ecuaciones de estado y de salida del sistema
poseen la forma ẋ = Ax + Bu y y = Cx + Du respectivamente, donde:
   
−7 1 2
A= ; B=
−12 0 −1
 
  −6
C= 3 −4 ; D = [−2]; x(0) =
1
A.3 Variables de Estado 247

Según la Tabla A.1: u(s) = L[3e−t ] = 3/(s + 1). Luego, x(s) (ecuación (A.48)) e y(s)
(ecuación (A.49)) toman la forma:
 −1  
−1  

s + 7 −1 −6
s + 7 −1 2
x(s) = + u(s)
12 s 12 1
s −1
      
1 s 1 −6 2 3
= 2 +
s + 7s + 12 −12 s + 7 1 −1 s+1
" 2 #
−6s +s−2
(s+1)(s+3)(s+4)
= s2 +77s−14
(s+1)(s+3)(s+4)

" #  
−6s2 +s−2
  (s+1)(s+3)(s+4) 3
y(s) = Cx(s) + Du(s) = 3 −4 s2 +77s−14 −2
(s+1)(s+3)(s+4)
s+1
−22s2 − 305s + 50 6 297/6 −767/2 918/3
= − = + +
(s + 1)(s + 3)(s + 4) s + 1 s+1 s+3 s+4
297 −t −767 −3t 918 −4t
y(t) = e + e + e , t≥0
6 2 3
Las respuestas mostradas en la Fig. A.11 se realizaron con el programa crpta.m.
Notar que se emplea la siguiente aproximación de la derivada:

x(k + 1) − x(k)
ẋ ∼
= = Ax + Bu → x = x + T (Ax + Bu)
T

donde T es el tiempo de muestreo y k = t/T es el tiempo discreto. Para T ≤ 0.04 s,


las respuestas y(t) e y(kT ) prácticamente coinciden. Conforme T aumenta (por ejem-
plo para T = 0.1 s), la diferencia entre y(t) e y(kT ) es más notoria, lo cual nos indica
que los sistemas muestreados dependen de T . Se deja como ejercicio resolver este
ejemplo usando MATLAB.

% crpta.m COMPARACIÓN DE RESPUESTAS PARA DIFERENTES TIEMPOS DE MUESTREO


clear all; close all; clc;
A = [-7 1;-12 0]; B = [2;-1]; Cc = [3 -4]; Dc = [-2];
x = [-6;1]; T1=0.1; T2=0.04; % CONDICION INICIAL Y TIEMPOS DE MUESTREO
for k = 1:100
u(k) = 3*exp(-k*T1); x = x + T1*(A*x + B*u(k)); y1(k) = Cc*x + Dc*u(k);
end
for k = 1:250
u(k) = 3*exp(-k*T2); x = x + T2*(A*x + B*u(k)); y2(k) = Cc*x + Dc*u(k);
end
t = 0:0.1:10; y = 297*exp(-t)/6 - 767*exp(-3*t)/2 + 918*exp(-4*t)/3;
% GRÁFICOS
t=linspace(0,10,101); t1=linspace(0,10,100); t2=linspace(0,10,250);
plot(t,y,t1,y1,’--’,t2,y2,’:’); grid
ylabel(’RESPUESTAS ’); xlabel(’TIEMPO [s]’); print -deps -f crpta

Ejemplo A.42
248 Sistemas Continuos

20

T1 = 0.1 s
10

T2 = 0.04 s
RESPUESTAS

−10
y(t)

−20

−30

−40

−50
0 2 4 6 8 10
TIEMPO [s]

Fig. A.11: Respuestas para el ejemplo A.41.

En el ejemplo anterior sean u1 (t) = 3e−t , u2 (t) = 2u1 (t) y u3 (t) = u1 (t) + u2 (t) y
sean las salidas respectivas y1 (t), y2 (t) e y3 (t). El programa C2prosup.m demuestra
gráficamente (ver figura A.12) los principios de proporcionalidad: y 2 (t) = 2y1 (t), y
de superposición: y3 (t) = y1 (t) + y2 (t).

% C2prosup.m PRINCIPIOS DE PROPORCIONALIDAD Y SUPERPOSICI ÓN


clear all; close all; clc;
A = [-7 1;-12 0]; B = [2;-1]; Cc = [3 -4]; Dc = [-2];
T = 0.04; M = 100; x1 = [0;0]; x2 = x1; x3 = x1;
for k= 1:M
u1(k)=3; x1 = x1 + T*(A*x1 + B*u1(k)); y1(k) = Cc*x1 + Dc*u1(k);
u2(k)=2*u1(k); x2 = x2 + T*(A*x2 + B*u2(k)); y2(k) = Cc*x2 + Dc*u2(k);
u3(k)=u1(k)+u2(k); x3 = x3 + T*(A*x3 + B*u3(k)); y3(k) = Cc*x3 + Dc*u3(k);
end
t=linspace(0,M*T,M); plot(t,y1,t,y2,’--’,t,y3,’:’); grid
ylabel(’RESPUESTAS’), xlabel(’TIEMPO [s]’), print -deps -f C2prosup

Ejemplo A.43

En el sistema de la Fig. A.13 ya se han definido las variables de estado xi del sistema,
las cuales se han fijado a la salida de cada bloque de primer orden. Para este sistema:
(a) Determinar su ecuación de estado y su ecuación de salida. (b) Hallar su matriz
de transferencia. (c) Determinar si el sistema es estable. (d) Hallar la controlabilidad
completa, la controlabilidad completa en la salida y la observabilidad completa del
sistema. (e) Usar (A.50) para determinar su matriz de transición con t 0 = 0. (f) De-
terminar y(t) para x(t0 ) = 0 usando (A.49). (g) Graficar las respuestas y1 (t) e y2 (t)
a entradas tipo escalón unitario.
A.3 Variables de Estado 249

80

70
y3 = y1 + y2
60

50
y2 = 2y1

RESPUESTAS
40

30

20 y1

10

−10

−20
0 0.5 1 1.5 2 2.5 3 3.5 4
TIEMPO [s]

Fig. A.12: Respuestas de un sistema lineal a entradas arbitrarias. Observar que


y2 (t) = 2y1 (t) (proporcionalidad) e y3 (t) = y1 (t) + y2 (t) (superposición)

1 x1
u1 s+1
x4 y1
4
s+4
u2 2 x2
s+2
x5 y2
5
s+5
u3 3
s+3 x3

Fig. A.13: Sistema del ejemplo A.43

Solución: (a) Del diagrama de bloques se puede comprobar que las salidas y1 e y2
poseen las expresiones:
y1 = x 2 + x 3 + x 4 − x 5 + u 3 y2 = x 1 − x 2 + x 5 + u 2 (A.51)
Operando en el bloque que tiene como salida la variable de estado x1 , se obtiene:
1
x1 = (u1 − y1 ) → (s + 1)x1 = ẋ1 + x1 = u1 − y1
s+1
Reemplazando y1 de (A.51) en la última expresión, se obtiene:
ẋ1 = −x1 − x2 − x3 − x4 + x5 − u3 (A.52)
Operando del mismo modo con los otros bloques resultan:
(s + 2)x2 = 2(u2 − x2 ) → ẋ2 = −4x2 + 2u2
250 Sistemas Continuos

(s + 3)x3 = 3(u3 − x5 ) → ẋ3 = −3x3 − 3x5 + 3u3


(s + 4)x4 = 4(x1 + u2 − x2 ) → ẋ4 = 4x1 − 4x2 − 4x4 + 4u2
(s + 5)x5 = 5(x2 + u3 − x3 + x3 ) → ẋ5 = 5x2 − 5x5 + 5x3 (A.53)

Las ecuaciones en (A.52) y (A.53) forman la ecuación de estado ẋ = Ax + Bu


mientras que las ecuaciones en (A.51) forman la ecuación de salida y = Cx + Du,
tal como se muestra a continuación.
      
ẋ1 −1 −1 −1 −1 1 x1 1 0 −1  
 ẋ2   0 −4 0 0 0     
     x 2   0 2 0  u1
 ẋ3  =  0 0 −3 0 −3      
     x 3  +  0 0 3  u2
 ẋ4   4 −4 0 −4 0   x4   0 4 0  u3
ẋ5 0 5 0 0 −5 x5 0 0 5
 
x1  
    x2    u1
y1 1 0 1 1 −1 

 + 0 0 1  u2 
=  x3 
y2 1 −1 0 0 1   0 1 0
x4 u3
x5

La MT G(s) toma la forma (ver archivo va.m):


 
G11 (s) G12 (s) G13 (s)
G(s) =
G21 (s) G22 (s) G23 (s)

s+8 4s4 + 14s3 − 4s2 − 139s − 120


G11 (s) = G12 (s) =
s2 + 5s + 8 (s2 + 5s + 8)(s2 + 9s + 20)(s + 3)

(s2 + 10s + 24)2


G13 (s) =
(s + 5)(s + 3)(s2 + 5s + 8)

s+4 s5 + 15s2 + 93s3 + 291s2 + 510s + 480


G21 (s) = 2
G22 (s) =
s + 5s + 8 (s2 + 5s + 8)(s2 + 9s + 20)(s + 3)

4s3 + 30s2 + 91s + 120


G23 (s) =
(s + 5)(s3 + s2 + 23s + 24)
Los elementos y1 (t) e y2 (t) del vector de salida y (calculados en va.m) resultan:
√ ! √ !
5 13 17 5 51 5 7 111 √ − 5 t 7
y1 = − e−3t + e−5t − e−4t + e− 2 t cos t − 7e 2 sen t
2 4 16 2 16 2 112 2

√ ! √ !
1 39 5 3 183 − 5 t 7 99 √ − 5 t 7
y2 = − e−3t + e−5t − e−4t + e 2 cos t − 7e 2 sen t
2 4 16 2 16 2 112 2

Por otro lado, la Fig. A.14 muestra las respuestas y1 (t) e y2 (t) (Out(1) y Out(2) en
el gráfico) a los escalones u1 = 1, u2 = 1 y u3 = 1 (In(1), In(2) e In(3) en el gráfico)
obtenidas con el comando step de MATLAB. Ejecutar el archivo va.m.
A.3 Variables de Estado 251

% va.m VARIOS CÁLCULOS PARA EL EJEMPLO 2.43


clear all; close all; clc;
% (a) ECUACIONES DE ESTADO Y DE SALIDA
A = [-1 -1 -1 -1 1;0 -4 0 0 0;0 0 -3 0 -3;4 -4 0 -4 0;0 5 0 0 -5];
B = [1 0 -1;0 2 0;0 0 3;0 4 0;0 0 5];
C = [1 0 1 1 -1;1 -1 0 0 1]; D = [0 0 1;0 1 0]; I = eye(5); n = 5; p = 2;
syms s;
% (b) MATRIZ DE TRANSFERENCIA
G = C*inv(s*I-A)*B + D; pretty(simplify(G))
% (c) ESTABILIDAD
[E,DD]=eig(A);
% DD = diag(-2.5000+1.3229i, -2.5000-1.3229i, -3.0000, -5.0000, -4.0000)
% SISTEMA ESTABLE PORQUE LA PARTE REAL DE LAS RA ÍCES SON NEGATIVAS
% (d) CONTROLABILIDAD Y OBSERVABILIDAD
M = ctrb(A,B); % MATRIZ DE CONTROLABILIDAD M = [A A*B A^2*B A^3*C A^4*B]
rankM = rank(M); % rankM = 5 = n => SISTEMA COMPLETAMENTE CONTROLABLE
CS = [C*B C*A*B C*A^2*B C*A^3*B C*A^4*B D]; rankCS = rank(CS);
% rankCS = p = 2 => SISTEMA COMPLETAMENTE CONTROLABLE A LA SALIDA
N = obsv(A,C); % MATRIZ DE OBSERVABILIDAD N=[C; C*A; C*A^2; C*A^3; C*A^4]
rankN=rank(N); % rankN=5=n => EL SISTEMA ES COMPLETAMENTE OBSERVABLE
% (e) MATRIZ DE TRANSICIÓN Phi(t)=L^(-1)[(sI-A)^(-1)]
Phi = ilaplace(inv(s*I-A)); pretty(simplify(Phi))
% (f) RESPUESTAS y1(t) e y2(t)
U = [1/s;1/s;1/s]; Y = G*U; y = ilaplace(Y); pretty(simplify(y))
% (g) GRÁFICOS DE LAS SALIDAS
step(A,B,C,D), print -deps -f va

A.3.6. Formas Canónicas SISO en el Espacio de Estado


La ecuación diferencial que describe a un sistema SISO con parámetros constantes
toma la forma:

dn y(t) dn−1 y(t) dn u(t) dn−1 u(t)


+ a 1 + · · · + a n y(t) = b 0 + b 1 + · · · + bn u(t) (A.54)
dtn dtn−1 dtn dtn−1

La FT correspondiente al sistema (A.54) es:

y(s) b0 sn + b1 sn−1 + · · · + bn b0 + b1 s−1 + · · · + bn s−n


G(s) = = n = (A.55)
u(s) s + a1 sn−1 + · · · + an 1 + a1 s−1 + · · · + an s−n

En (A.38) vimos que la FT también se puede formular como:

y(s)
= G(s) = [C(sI − A)−1 B + D]
u(s)

que corresponde al sistema SLIT en el espacio de estado: ẋ = Ax+Bu; y = Cx+Du.


Tal sistema posee diversas representaciones notables en el espacio de estado. Dichas
representaciones se denominan formas canónicas. La transformación canónica tratada
en el ejemplo A.34 es una de ellas. Otras formas canónicas se describen a continuación.
252 Sistemas Continuos

Step Response

From: In(1) From: In(2) From: In(3)


1.5

0.5
To: Out(1)

−0.5
Amplitude

−1

1.5

1
To: Out(2)

0.5

0
0 1 2 3 0 1 2 3 0 1 2 3
Time (sec)

Fig. A.14: Respuestas y1 (t) e y2 (t) a los escalones u1 = 1, u2 = 1 y u3 = 1 (ejemplo


A.43)
.

Primera Forma Canónica Controlable:


    
0 1 0 ··· 0 x1 0
 0 0 1 ··· 
0 x2   0
    
 .. .. .. 
..  
..  ..
ẋ =  . . . 
. +
. u .
    
 0 0 0 ··· 1   xn−1   0 
−an −an−1 −an−2 · · · −a1 xn 1
 
y = bn − an b0 bn−1 − an−1 b0 ··· b 1 − a 1 b0 x + b 0 u (A.56)

Segunda Forma Canónica Controlable:


    
0 1 0 ··· 0 x1 β1
 0 0 1  ··· 0 x2   β2 
    
 .. .. ..  .. ..   .. 
ẋ =  . . .  . . + . u
    
 0 0 0 ··· 1   xn−1   βn−1 
−an −an−1 −an−2 · · · −a1 xn βn
 
y = 1 0 · · · 0 x + β0 u (A.57)
donde: β0 = b0 , β1 = b1 − a1 β0 , β2 = b2 − a1 β1 − a2 β0 , etc. Generalizando:

βn = bn − a1 βn−1 − · · · − an−1 β1 − an β0
A.3 Variables de Estado 253

Tercera Forma Canónica Controlable:


    
−a1 −a2 ··· −an−1 −an x1 1
 1 0 ··· 0 0   x2 0 
    
 0 1 ··· 0 0    .. .. 
ẋ =   + . . u
 .. .. .. ..    
 . . . .   xn−1   0 
0 0 ··· 1 0 xn 0
 
y= b1 − a 1 b0 b2 − a 2 b0 · · · b n − a n b0 x + b 0 u (A.58)

Primera Forma Canónica Observable:


    
0 0 ··· 0 0 −an x1 bn − a n b0
 1 0 ··· 0 
0  
−an−1 x2 bn−1 − an−1 b0 
    
 .. .. .. 
..  .. .. .. 
ẋ =  . . . . + . . . u
    
 0 0 ··· 1 0 −a2   xn−1   b2 − a 2 b0 
0 0 ··· 0 1 −a1 xn b1 − a 1 b0
 
y = 0 0 · · · 0 1 x + b0 u (A.59)

Segunda forma canónica observable:


    
−a1 1 0 ··· 0 0 x1 b1 − a 1 b0
 −a2 0 1 ··· 0 0  x2   b2 − a 2 b0 
    
 .. .. .. .. .. ..   .. 
ẋ =  . . . . . . + . u
    
 −an−1 0 0 ··· 0 1   xn−1   bn−1 − an−1 b0 
−an 0 0 ··· 0 0 xn bn − a n b0
 
y= 1 0 ··· 0 0 · · · x + b0 u (A.60)

Forma Canónica Diagonal (eigenvalores no repetidos)

Formulando (A.55) como:


X ci n
y(s) b0 sn + b1 sn−1 + · · · + bn−1 s + bn
G(s) = = = b0 +
u(s) (s − p1 )(s − p2 ) · · · (s − pn ) s − pi
i=1

donde las raı́ces pi (los eigenvalores del sistema) son no repetidos, las constantes ci
se pueden hallar en la forma acostumbrada a partir de:

ci = lı́m [(s − pi )G(s)]


s→pi

Luego, la forma canónica diagonal es:


 
ẋ1     
  λ1 0 ··· 0 x1 1
 ẋ2      
 ..   0 λ2 ··· 0  x2   1 
 . = .. .. ..  .. + .. u
   . . .  .   . 
 ẋn−1 
0 0 ··· λn xn 1
ẋn
 
y= c1 c2 ··· cn x + b0 u (A.61)
254 Sistemas Continuos

Forma Canónica de Jordan (eigenvalores repetidos)

Describiremos la forma canónica de Jordan con un ejemplo. Supongamos que


(A.55) toma la forma:

y(s) b0 sn + b1 sn−1 + · · · + bn−1 s + bn B(s)


G(s) = = 3 2
=
u(s) (s − p1 ) (s − p4 ) (s − p6 ) · · · (s − pn ) A(s)
X ci 8
c1 c2 c3 c4 c5
= b0 + + + + + +
(s − p1 )3 (s − p1 )2 s − p1 (s − p2 )2 s − p2 s − pi
i=6

donde los eigenvalores p1 y p2 se repiten tres y dos veces respectivamente, y el resto,


p6 , p7 y p8 no lo son. Las constantes b0 , ci , i = 1, . . . , 8 y los eigenvalores p1 , p2 , p6 , p7
y p8 se calculan empleando el comando [r,p,k] = residue(B,A) (ver ecuación (A.5)).
La forma canónica de Jordan es (notar la ubicación de los ceros y unos en el vector
que multiplica a u):
    
p1 1 0 0 0 0 0 0 x1 0
 0 p 1 1 0 0 0 0 0   x2   0 
    
 0 0 p 1 0 0 0 0 0   x3   1 
    
 0 0 0 p 2 1 0 0 0   x4   0 

ẋ =      
0 0 0 0 p 0 0 0   x5  +  1  u
 2    
 0 0 0 0 0 p 6 0 0   x6   1 
    
 0 0 0 0 0 0 p 7 0   x7   1 
0 0 0 0 0 0 0 p8 x8 1
 
y = c1 c2 c3 c4 c5 c6 c7 c8 c9 x + b 0 u (A.62)
X ci 8
y(s) c1 c2 c3 c4 c5
= b0 + + + + + + (A.63)
u(s) (s − p1 )3 (s − p1 )2 s − p1 (s − p2 )2 s − p2 s − pi
i=6

Ejemplo A.44

En el programa C2forca1.m se determinan varias formas canónicas para:

1 − 2.8s−1 − 0.65s−2 + 6.8s−3 − 4.25s−4 − 1.3s−5 + 1.2s−6


G(s) =
1 + 1.3s−1 − 1.69s−2 − 0.345s−3 + 0.49s−4 + 0.02s−5 − 0.04s−6
% C2forca1.m FORMAS CANÓNICAS
clear all; close all; clc;
b0=1; b1=-2.8; b2=-0.65; b3=6.8; b4=-4.25; b5=-1.3; b6=1.2;
a1=1.3; a2=-1.69; a3=-0.345; a4=0.49; a5=0.02; a6=-0.04;
B = [b0 b1 b2 b3 b4 b5 b6]; % B(s): POLINOMIO DEL NUMERADOR
A =[1 a1 a2 a3 a4 a5 a6]; % A(s): POLINOMIO DEL DENOMINADOR
roots(A); % RAÍCES DE A(s): 0.5, 0.5, 0.5, -0.4, -0.4, -2
% EL SISTEMA ES INESTABLE DEBIDO A LA RAÍZ TRIPLE 0.5
% 2DA FORMA CANÓNICA CONTROLABLE: dx/dt = Acc*x + Bcc*u; y = Ccc*x + Dcc*u
beta0 = b0;
beta1 = b1-a1*beta0;
beta2 = b2-a1*beta1-a2*beta0;
beta3 = b3-a1*beta2-a2*beta1-a3*beta0;
A.3 Variables de Estado 255

beta4 = b4-a1*beta3-a2*beta2-a3*beta1-a4*beta0;
beta5 = b5-a1*beta4-a2*beta3-a3*beta2-a4*beta1-a5*beta0;
beta6 = b6-a1*beta5-a2*beta4-a3*beta3-a4*beta2-a5*beta1-a6*beta0;
Acc = [0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
-a6 -a5 -a4 -a3 -a2 -a1];
Bcc = [beta1;beta2;beta3;beta4;beta5;beta6];
Ccc = [1 0 0 0 0 0]; Dcc =[beta0];
% 1RA FORMA CANÓNICA OBSERVABLE: dx/dt = Aco*x + Bco*u; y = Coo*x + Doo*u
Aoo = [0 0 0 0 0 -a6
1 0 0 0 0 -a5
0 1 0 0 0 -a4
0 0 1 0 0 -a3
0 0 0 1 0 -a2
0 0 0 0 1 -a1];
Aco = [b6-a6*b0;b5-a5*b0;b4-a4*b0;b3-a3*b0;b2-a2*b0;b1-a1*b0];
Cco = [0 0 0 0 0 1]; Dco=[b0];
% FORMA CANÓNICA DE JORDAN: dx/dt = Aj*x + Bj*u; y = Cj*x + Dj*u
[c,p,k] = residue(B,A); % EXPANSIÓN EN FRACCIONES PARCIALES
% c = [-1.89 3.6133 -1.0136 0.1111 -5.8233 -0.5323]’;
% p = [-2 0.5 0.5 0.5 -0.4 -0.4]; k = 1;
c1=c(1); c2=c(2); c3=c(3); c4=c(4); c5=c(5); c6=c(6);
p1=p(1); p2=p(2); p2=p(3); p2=p(4); p3=p(5); p3=p(6);
Aj = [p1 0 0 0 0 0
0 p2 1 0 0 0
0 0 p2 1 0 0
0 0 0 p2 0 0
0 0 0 0 p3 1
0 0 0 0 0 p3];
Bj = [1;0;0;1;0;1];
Cj = [c1 c2 c3 c4 c5 c6]; Dj = [k];

Ejemplo A.45

Conocido el sistema ẋ = Ax + Bu, y = Cx + Du, determinar la ecuación de estado y


la ecuación de salida en su forma canónica de Jordan: ẋ = Aj x+Bj u, y = Cj x+Dj u.
Demuestre que las matrices A y Aj poseen los mismos eigenvalores y que ambas rep-
resentaciones de estado generan la misma función de transferencia.

Solución: El siguiente programa resuelve las preguntas planteadas.


% C2forca2.m FORMA CANONICA DE JORDAN DE dx/dt + A*x + B*u; y = C*x + D*u
clear all; close all; clc;
A = [0 1 0 3;0 -1 1 1;0 0 0 1;0 0 -1 -2];
B = [1;0;-4;0]; C = [1 0 0 0]; D = [-2];
[num,den] = ss2tf(A,B,C,D);
eigA = eig(A); % EIGENVALORES DE A: eigA = [-1, -1, -1, 0]
[c,p,k] = residue(num,den); % EXPANSION EN FRACCIONES
% c = [-8 -8 0 9]’; p = [-1 -1 -1 0]; k = -2;
c1=c(1); c2=c(2); c3=c(3); c4=c(4); p1=p(1); p2=p(2); p3=p(3); p4=p(4);
256 Sistemas Continuos

% dx/dt = Aj*x + Bj*u; y = Cj*x + Dj*u


Aj = [p1 0 0 0;0 p1 1 0;0 0 p1 0;0 0 0 p2];
Bj = [0;1;1;1]; Cj = [c1 c2 c3 c4]; Dj = [k];
[numj,denj] = ss2tf(Aj,Bj,Cj,Dj); % SE VERIFICA: num=numj, den=denj
eigAj = eig(Aj); % EIGENVALORES DE Aj Y A SON IGUALES: [-1, -1, -1, 0]

A.4. Discretización Directa


Discretización de la Integral
Es bastante útil discretizar directamente modelos dinámicos que contengan inte-
grales y derivadas. La integral de una curva e(t); es decir, el área debajo de dicha
curva, se puede aproximar empleando una sumatoria de rectángulos de la forma
T e(iT ) (Fig. A.15(a)) o trapezoides de la forma:
e(T i) + e(T i + T )
T
2
tal como se observa en la Fig. A.15(b), donde T es el tiempo de muestreo. Los
siguientes ejemplos ilustran tal aproximaciones.

e(t) e(t) e(iT+T)


e(iT) e(iT)

T t=iT T t=iT
(a) (b)

Fig. A.15: (a) Aproximación del área bajo la curva e(t) mediante rectángulos. (b)
Mediante trapezoides.

Ejemplo A.46
Determinar la ecuación de diferencias de la siguiente integral usando tanto aproxi-
mación rectangular como trapezoidal.
Z t
u(t) = e(τ )dτ
0
Solución: Si empleamos sumatoria de rectángulos para aproximar el área debajo de
la curva e(t), se obtiene:
k
X k
X k−1
X
u(kT ) ≈ T e(iT ) = T e(iT ) = T e(iT ) + T e(kT ) = u(kT − T ) + T e(kT )
i=0 i=0 i=0

u(kT ) − u(kT − T ) = T e(kT )


u(k) = u(k − 1) + T e(k) (A.64)
A.4 Discretización Directa 257

donde k = t/T es el tiempo discreto. En la expresión (A.64), denotada como la


ecuación discreta de la integral, hemos omitido en el argumento su dependencia con
el tiempo de muestreo T , ya que todos los términos se discretizan empleando dicho
tiempo. Para el otro caso, empleamos sumatoria de trapecios para aproximar el área
debajo de la curva e(t):
k
X k−1
X
e(iT − T ) + e(iT ) e(iT − T ) + e(iT ) e(kT − T ) + e(kT )
u(kT ) ≈ T = T +T
2 2 2
i=1 i=0
e(kT − T ) + e(kT )
= u(kT − T ) + T
2
T
u(kT ) − u(kT − T ) = [e(kT − T ) + e(kT )]
2
T
u(k) = u(k − 1) + [e(k − 1) + e(k)] (A.65)
2

Discretización de la Derivada
Términos que contengan derivadas pueden discretizarse empleando diferencias
por atraso:
de(t) ∆e(kT ) e(kT ) − e(kT − T ) e(k) − e(k − 1)
= ė(t) ≈ = =
dt T T T
dė(t) ∆ė(kT ) ė(t) − ė(t − T ) ∆e(kT ) − ∆e(kT − T )
= ë(t) ≈ = =
dt T T T2
e(k) − e(k − 1) − [e(k − 1) − e(k − 2)] e(k) − 2e(k − 1) + e(k − 2)
= 2
=
T T2
..
. (A.66)

Si la discretización de la derivada se realiza por adelanto, entonces las diferencias son


de la forma:
de(t) ∆e(kT ) e(kT + T ) − e(kT ) e(k + 1) − e(k)
= ė(t) ≈ = =
dt T T T
dė(t) ∆ė(kT ) ė(t + T ) − ė(t) ∆e(kT + T ) − ∆e(kT )
= ë(t) ≈ = =
dt T T T2
e(k + 1) − e(k) − [e(k) − e(k − 1)] e(k + 1) − 2e(k) + e(k − 1)]
= =
T2 T2
..
. (A.67)

Ejemplo A.47

El controlador PID se emplea en más del 90 % de los circuitos de control existentes


en la industria. Este controlador se formula en la ecuación (A.68), donde K c es la
ganancia proporcional, Ti es el tiempo integral y Td es el tiempo derivativo. Deter-
minar la ecuación de diferencias de dicho controlador. En un primer caso emplear
aproximación rectangular y luego usar aproximación trapezoidal.
 Z t 
1 de(t)
u(t) = Kc e(t) + e(t)dt + TD (A.68)
TI 0 dt
258 Sistemas Continuos

Solución: Empleando las relaciones (A.64) y (A.66) en (A.68) se obtiene:


( k
)
T X TD
u(k) = Kc e(k) + e(i) + [e(k) − e(k − 1)]
TI T
i=0
( k−1
)
T X TD
u(k − 1) = Kc e(k − 1) + e(i) + [e(k − 1) − e(k − 2)]
TI T
i=0
Pk Pk−1
Teniendo en cuenta que: i=0 e(i) = i=0 e(i) + e(k), restamos las expresiones
anteriores y despejamos u(k) para obtener la siguiente ecuación de diferencias del
controlador PID:

u(k) = u(k − 1) + q0 e(k) + q1 e(k − 1) + q2 e(k − 2) (A.69)

donde:
   
T TD TD TD
q0 = K c 1 + + ; q1 = −Kc 1 + 2 ; q2 = K c
Ti T T T

Si la integración emplea el método trapezoidal, entonces:


( k   )
1 X e(i − 1) + e(i) TD
u(k) = Kc e(k) + T + [e(k) − e(k − 1)]
TI 2 T
i=1
( k−1   )
1 X e(i − 1) + e(i) TD
u(k − 1) = Kc e(k − 1) + T + [e(k − 1) − e(k − 2)]
TI 2 T
i=1

Restando las expresiones anteriores teniendo en cuenta que:


k
X k−1
X
[e(i − 1) + e(i)] = [e(i − 1) + e(i)] + e(k − 1) + e(k)
i=1 i=1

y despejando u(k) obtenemos una expresión similar a (A.69), donde:


   
TD T TD T TD
q0 = K c 1 + + ; q1 = −Kc 1 + 2 − ; q2 = K c
T 2TI T 2TI T

A.5. Sistemas con Tiempo Muerto


En algunos sistemas industriales, el tiempo muerto se debe de tomar en cuenta
cuando por ejemplo existe un retardo considerable hasta que la señal de control
llegue al actuador. En otro caso, dicho retardo aparece cuando el punto de medición
está lejos de la zona de interés, por ejemplo, cuando en la planta sólo se pueden
instalar sensores lejos de la zona de interés para la medición. Este tiempo muerto
puede existir en la entrada u(t), en la salida y(t) o en el vector de estado x(t) del
sistema, tal como se ilustra a continuación:

ẋ(t) = Ax(t − τx ) + Bu(t − τu ) y(t − τy ) = Cx(t) + Du(t) (A.70)


A.5 Sistemas con Tiempo Muerto 259

Donde τx , τu y τy son los tiempos muertos. En el dominio continuo, el tiempo muerto


τ se modela mediante la siguiente expresión de la transformada de Laplace: e −τ s . Si
τ = d T , donde d = 1, 2, . . . y T es el tiempo de muestreo, y definiendo la unidad de
desplazamiento discreto como: eτ s = z, entonces, en el dominio discreto, el tiempo
muerto toma la forma z −d . Este tiempo muerto puede existir en la entrada, en la
salida o en el vector de estado del sistema, tal como se ilustra a continuación:

x(k + 1) = Gx(k − dx ) + Hu(k − du ) y(k + dy ) = Cx(k) (A.71)

donde los tiempos muertos dk , du y dy toman valores enteros positivos.


Resulta útil emplear la aproximación de Padé para modelar el tiempo muerto en
el dominio continuo:

1 1 num(s)
e−τ s = 1 − sτ + (sτ )2 − (sτ )3 + · · · =
!2 !3 den(s)

Con una aproximación de tercer orden podemos acomodar retardos de fase de hasta
200o (3.5 rad) [12], lo cual es suficiente para capturar el efecto del tiempo muerto en
muchas aplicaciones. Tal aproximación tiene la forma:

num(s) 1 − τ s/2 + (τ s)2 /10 − (τ s)3 /120


e−τ s ≈ =
den(s) 1 + τ s/2 + (τ s)2 /10 + (τ s)3 /120

La principal ventaja de usar una aproximación racional para el tiempo muerto es


transformar el modelo del sistema dado en (A.70) en otro modelo sin tiempos muertos.

Ejemplo A.48

Comparar la respuesta a un escalón del sistema:

y(s) 10 −5.8s
= e
u(s) 2s + 1

con respecto a la respuesta originada por el sistema cuando el tiempo muerto se


aproxima con una relación de Padé de tercer orden. Luego, determinar la ecuación
de estado aproximada del sistema.
Solución: El programa ejpade.m resuelve el problema planteado y los resultados se
ilustran en la Fig. A.16.

% ejpade.m SISTEMAS CON TIEMPO MUERTO D Y CON APROXIMACI ÓN DE PADÉ


clear all; close all; clc; s = tf(’s’); % HABILITA FT
D = 5.8; numD=-D^3*s^3/120+D^2*s^2/10-D*s/2+1;
denD=D^3*s^3/120+D^2*s^2/10+D*s/2+1; % exp(-s*D) = numD/denD
Gp=10/(2*s+1); G1=Gp*exp(-s*D); G2=Gp*(numD/denD); step(G1,G2,’--’)
print -deps -f ejpades; sis=ss(G2); % sis: MODELO EN EL ESPACIO DE ESTADO
260 Sistemas Continuos

Step Response

10

6
Amplitude

exp(−sD)
0
Padé de 3er orden

−2
0 5 10 15 20 25
Time (sec)

Fig. A.16: Comparación de las respuestas a un escalón del sistema y de su modelo


aproximado mediante una aproximación de Padé de tercer orden (ejemplo A.48).

A.6. Linealización de Sistemas Continuos


A.6.1. Caso SISO
El desarrollo de la serie de Taylor permite expandir una expresión no lineal con-
tinua Y = f (X) alrededor de un punto de operación (o estado de equilibrio) X como
sigue:

df (X − X) d2 f (X − X)2
Y = f (X) = f (X) + + + · · · (A.72)
dX (X=X) 1! dX 2 (X=X) 2!
Si la expresión de Y depende de las n variables X1 , . . . , Xn , entonces el desarrollo de
Taylor, despreciando los términos de orden más alto, produce:

∂f
Y = f (X1 , . . . , Xn ) = f (X 1 , . . . , X n ) + (X1 − X 1 )
∂X1 (X1 =X 1 )

∂f ∂f
+ (X2 − X 2 ) + · · · + (Xn − X n ) (A.73)
∂X2 (X2 =X 2 ) ∂Xn (Xn =X n )

Ejemplo A.49
Linealizar la siguiente taza de reacción rA para el punto de operación (T , C A ):
E
rA = k0 e− RT CA
A.6 Linealización de Sistemas Continuos 261

donde k0 , E y R son constantes.


Solución: Aplicando (A.73) con X1 = T y X2 = CA se obtiene:

r A = r A + C 1 t + C 2 cA t=T −T c A = CA − C A
− E
r A = k0 e CA
RT

∂rA ∂rA
C1 = C2 = (A.74)
∂T (T =T ) ∂CA (CA =C A )

Las variables t y cA se denominan variables residuales o de desviación.

A.6.2. Caso MIMO


Un sistema MIMO no Lineal invariante con el tiempo de orden n se puede repre-
sentar como:
Ẋ = f (X, U) Y = g(X, U) (A.75)
         
Ẋ1 f1 (X, U) Y1 g1 (X, U) U1
 ..   ..   ..   ..   
 . = .   . = .  U =  ... 
Ẋn fn (X, U) Yp gp (X, U) Um
donde f (X, U) es la ecuación de estado del sistema, mientras que g(X, U) es la
ecuación de salida. Tanto f como g son funciones vectoriales de las variables vec-
toriales X y U. El desarrollo de Taylor para la ecuación de estado de este sistema,
resulta:  
˙ ∂f (X, U) ∂f (X̄, U)
X = f (X, U) + (X − X) + (U − U) +
∂X ∂U
 
1 ∂ 2 f (X, U) 2 ∂ 2 f (X̄, U) ∂ 2 f (X, U) 2
(X − X̄) + 2 (X − X)(U − U ) + (U − U) + · · ·
2! ∂x2 ∂X∂U ∂U2
Despreciando los términos de orden dos se obtiene:

∂f ∂f
Ẋ = f (X, U) = f (X, U) + (X − X) + (U − U)
∂X (X,U) ∂U (X,U)

∂f ∂f
Ẋ − f (X, U) = ẋ = x+ u (A.76)
∂X (X,U) ∂U (X,U)

Del mismo modo, la ecuación de salida del sistema se puede formular como:

∂g ∂g
y= x+ u (A.77)
∂X (X,U) ∂U (X,U)

Por consiguiente, las formas linealizadas de (A.76) y (A.77) se puede expresar como:

ẋ = Ax + Bu y = Cx + Du (A.78)

donde A es la matriz de estado de orden n × n, B es la matriz de distribución de


orden n × m, C es la matriz de salida de los estados de orden p × n y D es la matriz
de salida de las entradas de orden p × m, x = X − X es el vector residual (o de
desviación) de estados, u = U − U es el vector residual de control, e y = Y − Y es
262 Sistemas Continuos

el vector residual de la salida. Los estados estacionarios o de equilibrio de X y U son


X y U respectivamente, mientras que el estado estacionario del vector de salida Y,
cuando el sistema está controlado, es el vector de referencias o set points R; es decir:
Y = R.
El procedimiento de linealización significa entonces que estamos asumiendo varia-
ciones pequeñas de la dinámica del sistema alrededor del estado estacionario o de
equilibrio. Las matrices A, B, C y D se determinadas evaluando las siguientes ma-
trices jacobianas:
 ∂f1 ∂f1   ∂f1 ∂f1 
∂X1 · · · ∂Xn ∂U1 · · · ∂Um
 ..   .. 
A =  ... ..
. .  B =  ... ..
. . 
∂fn ∂fn ∂fn ∂fn
∂X1 ··· ∂Xn (X,U) ∂U1 ··· ∂Um (X,U)
 ∂h1 ∂h1   ∂h1 ∂h1 
∂X1 ··· ∂Xn ∂U1 ··· ∂Um
 .. .. ..   .. .. .. 
C =  . . .  D= . . .  (A.79)
∂hp ∂hp ∂hp ∂hp
∂X1 ··· ∂Xn (X,U) ∂U1 ··· ∂Um (X,U)

Ejemplo A.50

La Fig. A.17 muestra dos tanques idénticos colocados en cascada. La sección hori-
zontal S=9 m2 de cada tanque es constante. El objetivo de control es estabilizar
(controlar) la altura H2 empleando como fuerza de control el flujo de alimentación
Qo . Determinar el modelo linealizado de este sistema hidráulico, su estabilidad y su
función de transferencia.

Q p
0 0

ρ Tanque
H1
p 1
1 γ
g
Q
p 1
0
ρ
Tanque
H2
p 2
2 γ
Q
2

Fig. A.17: Sistema hidráulico.

Solución: Los flujos de salida Q1 y Q2 de los tanques se pueden modelar como:


p p
Q1 = γ P 1 − P 0 ; Q2 = γ P 2 − P 0
donde P1 , P2 y P0 son las presiones en el fondo de los tanques y en el exterior
respectivamente, y γ=0.4 es una constante que depende de la geometrı́a del orificio.
Si ρ=1.23 kg/m3 es la densidad del lı́quido y g=9.81 m/s2 es la aceleración de la
gravedad:
P1 − P0 = ρgH1 P2 − P0 = ρgH2
A.6 Linealización de Sistemas Continuos 263

El flujo acumulado en cada tanque es:


dH1 dH2
Q0 − Q 1 = S Q1 − Q 2 = S
dt dt
Definiendo las variables de estado X1 = H1 y X2 = H2 y la entrada U = Q0 , y
resolviendo las ecuaciones anteriores para X1 y X2 , obtenemos:

1 γ ρg p
Ẋ1 = U − X1 = f1 (X, U )
S S

γ ρg p p
Ẋ2 = [ X1 − X2 ] = f2 (X, U )
S
y su correspondiente ecuación de salida:

Y = h(X, U ) = X2

Observar que las ecuaciones anteriores poseen las formas dada en (A.75)):

Ẋ = f(X, U ) Y = h(X, U ) = X2

donde la salida Y (la función g) y la entrada U son en este caso escalares, y:


   
Ẋ1 f1
Ẋ = f=
Ẋ2 f2
Definamos las siguientes variables residuales:

x1 = X 1 − X 1 x2 = X 2 − X 2 u=U −U

Conociendo que U = 3 m3 /s, el estado estable del sistema se puede obtener de:
√ q
˙ 1 γ ρg
X1 = U − X1 = 0
S S
√ q q 
˙ γ ρg
X2 = X1 − X2 = 0
S
lo que resulta en:
2
U
X1 = X2 = 2 (A.80)
γ ρg
Aplicando el jacobiano, el sistema linealizado resulta:

ẋ = A x + B u y = h(x, u) = x2 = C x D = [0]

donde:
" #  √
γ ρg 
  ∂f1 ∂f1 − √ 0
x1 2S
√ X̄1
x= ; A= ∂X1
∂f2
∂X2
∂f2 = γ ρg

γ ρg

x2 ∂X1 ∂X2 √ − √
(X 1 ,X 2 ,U ) 2S X1 2S X2
 ∂f1     
∂U 1/S ∂h ∂h
B= ∂f2 = ; C= = [0 1]
∂U
0 ∂X1 ∂X2 (X 1 ,X 2 ,U )
(X 1 ,X 2 ,U )
La estabilidad y la función de transferencia del sistema se computan con el programa
C2tqh.m.
264 Sistemas Continuos

% C2tqh.m SISTEMA HIDRÁULICO


clear all; close all; clc;
S = 9; gamma = 0.4; rho = 1.23; g = 9.81; Qoinf = 3; % PARAMETROS
X1bar = Ubar^2/(gamma^2*rho*g); X2bar = X1bar; % PUNTOS DE EQUILIBRIO
a11 = -gamma*sqrt(rho*g)/(2*S*sqrt(X1bar)); a21 = -a11;
a22 = -gamma*sqrt(rho*g)/(2*S*sqrt(X2bar));
A = [a11 0;a21 a22]; B = [1/S;0]; C = [0 1]; D = [0]; % SISTEMA LINEAL
eigA = eig(A); % EINGENVALORES: -0.0358 Y -0.0358 => SISTEMA ESTABLE
[P,Q] = ss2tf(A,B,C,D); % P = [0 0 0.004]; Q = [1 0.0715 0.0013]
% FUNCION DE TRANSFERENCIA: P(s)/Q(s)=0.004 /(s^2 + 0.0715s + 0.0013)

A.7. Problemas
Problema A.1

Demostrar que AB 6= BA, cuando:


   
1 −1 1 1 2 3
A =  −2 2 −1  B= 2 4 8 
−2 1 0 1 2 3

Problema A.2

Demostrar que AB = AC, lo cual no necesariamente implica que B = C, , cuando:


     
1 −3 2 1 4 1 0 2 1 −1 −2
A =  2 1 −3  B= 2 1 1 1  C =  3 −2 −1 −1 
4 −3 −1 1 −2 1 2 2 −5 −1 0

Problema A.3

En general: (A ± B)2 6= A2 ± 2AB + B2 y A2 − B2 6= (A + B)(A − B). Demostrar


que (A ± B)2 = A2 + B2 cuando:
   
2 −3 −5 −1 3 5
A =  −1 4 5  B =  1 −3 −5 
1 −3 −4 −1 3 5

Problema A.4

Una matriz M es idempotente cuando M2 = M. Demostrar que A2 = A y B2 = B.


   
2 −3 −5 −1 3 5
A =  −1 4 5  B =  1 −3 −5 
1 −3 −4 −1 3 5

Problema A.5

Demostrar que la siguientes matriz es periódica, con perı́odo igual a 2:


 
1 −2 −6
A =  −3 2 9 
2 0 −3
A.7 Problemas 265

Problema A.6
Demostrar que la siguientes matriz es nilpotente:
 
1 −3 −4
A =  −1 3 4 
1 −3 −4
Problema A.7
Dada las matrices:
   
1 1 + i 2 + 3i i 1 + i 2 − 3i
A= 1−i 2 −i  B =  −1 + i 2i 1 
2 − 3i i 0 −2 − 3i −1 0
demostrar que A, iB y A∗ son hermitianas, y que B y B∗ son antihermitianas.
Problema A.8
Empleando matemática simbólica demostrar que:
 n  n 
λ 1 λ nλn−1
=
0 λ 0 λn
Problema A.9
Empleando matemática simbólica demostrar que las matrices:
 2   3 2 
a a 1 bcd a a a 1
 b2 b 1 acd    3 2 1 
A= B =  b b b 
 c2 c 1 abd   c c2
3 c 1 
d2 d 1 abc d3 d2 d 1
poseen el mismo determinante: (a − b)(a − c)(a − d)(b − c)(b − d)(c − d).
Problema A.10
Empleando matemática simbólica hallar la derivada con respecto a x del determinante
de la matriz:  
x 1 2
A =  x2 2x + 1 x3 
0 3x − 2 x + 1 2

Problema A.11
Examine la dependencia o independencia lineal del siguiente conjunto de vectores. Si
el conjunto es dependiente, seleccione el máximo subconjunto linealmente indepen-
diente y exprese cada uno de los vectores dependientes como una combinación lineal
de los independientes.
       
2 4 0 6
 1   2   0   3 
       
x1 =      
 3  ; x2 =  1  ; x3 =  5  ; x4 =  −1 
 
 2   −2   6   −6 
−1 3 −5 7
266 Sistemas Continuos

Problema A.12

Si la matriz A es antisimétrica e I + A es no singular, entonces B = (I − A)(I + A) −1


es ortogonal. Obtenga la matriz ortogonal B de:
 
0 1 2
A =  −1 0 3 
−2 −3 0

Problema A.13

Demostrar que los siguientes vectores son linealmente independientes y mutuamente


ortogonales:

x1 = [1 + i i 1]T ; x2 = [i 1 − i 0]T ; x3 = [1 − i 1 3i]T

Problema A.14

Si la matriz A es antihermitiana e I+A es no singular, entonces B = (I−A)(I+A) −1


es unitaria. Obtenga la matriz unitaria B de:
 
0 i 1+i
A= i 0 i 
−1 + i i 0

Problema A.15

Demostrar que el producto xH Ax es definida positiva y que el producto xH Bx es


semidefinida positiva, donde:
   
1 1+i −1 1 1 + i 1 + 2i
A= 1−i 6 −3 + i  B= 1−i 3 5 
−1 −3 − i 11 1 − 2i 5 10

Problema A.16

Para cada ecuación integro–diferencial, elaborar un programa en MATLAB para


graficar la salida y(t) cuando u(t) es un escalón unitario. Luego, elaborar un pro-
grama en Simulink para visualizar la señal y(t). Todas las condiciones iniciales son
nulas.
p Z t
dy(t)
(a) = + 2y(t) 5y(t) + 4 y(τ )dτ = u(t)
dt 0
d2 y(t) dy(t)
(b) = + y(t) = u(t)
dt2 dt
Z t
dy(t) 2
(c) = − + 2y (t) + 4 y(τ )dτ = u(t)
dt 0
Z t
d2 y(t) 3
(d) = − + 7y (t) − y(τ )dτ = u(t)
dt2 0
A.7 Problemas 267

Problema A.17

Determinar la ecuación de estado y la ecuación de salida de los sistemas:

(a) 2x1 + 3x2 − 5x3 = 4u1 − 3u2 + ẋ1 ; ẋ2 − x1 + 8x2 − 2x3 = −u1
2x2 − 5x3 = −3u1 − 4u2 − ẋ3
y1 = x1 − 3x2 − u2 ; y2 = −3x1 + 7x3 + u1 − 5u2
(b) −x1 − 8x2 + x3 + ẋ1 = u1 ; 2x1 + 4x2 − 2x3 = −3u2 − u2 + ẋ2
2x2 − 5x3 = −3u1 + 3u2 + ẋ3
y1 = 3x1 − x2 + u1 ; y2 = −x1 − 5x3 − 5u2
(c) 6x1 + 7x2 + ẋ1 = 4u2 ; ẋ2 − 3x1 + 5x2 + 62x3 = −u1 − 7u2
x2 − 6x3 = ẋ3 − u1 + 9u2
y1 = 4x1 + x2 − u1 + u2 ; y2 = −3x1 + 7x2 − 5u2
(d) 3x2 − 5x3 + ẋ1 = −3u1 + 3u2 ; ẋ2 − 6x1 + 5x2 − 7x3 = −3u2
x1 − 2x2 − 5x3 + ẋ3 = −3u1
y1 = x1 − u2 + 8u2 ; y2 = −3x2 + 7x3 − 9u1 − 2u2

donde u1 y u2 son las entradas, y1 e y2 son las salidas y x1 , x2 y x3 son las variables
de estado.

Problema A.18

Graficar la corriente i(t) que circula en un circuito serie RLC alimentado por una
baterı́a E de 12 V, sabiendo que R = 100 Ω, C = 1 F, L = 2 H, i(0) = 5 A y di(0)
dt = −5
A/s. Partiendo de la ecuación caracterı́stica del circuito, determine la estabilidad, la
frecuencia natural de oscilación y el coeficiente de amortiguamiento de dicho circuito.

Problema A.19

Una forma de determinar la estabilidad de un SLIT con entrada x(t) y salida y(t)
conociendo su función G(t) de respuesta al impulso δ(t), es evaluando la siguiente
condición para estabilidad: Z ∞
|G(τ )|dτ < ∞
−∞
Rt
Por ejemplo, para un integrador y(t) = 0 x(τ )dτ con y(0) = 0, su respuesta al
Rt
impulso es: y(t) = G(t) = 0 δ(τ )dτ = µ(t), que es la función escalón, la cual es igual
a 1 para t ≥ 1. El sistema es inestable porque:
Z ∞ Z ∞
|G(τ )|dτ = |1|dτ = ∞
−∞ 0

Aplicando este principio, determine G(t) y la estabilidad del sistema: ẏ + 2y = x.

Problema A.20

Hallar la transformada inversa de: G(s) = (s3 + s2 + 2s + 1)/(s3 + 3s2 + 2s + 3).


268 Sistemas Continuos

Problema A.21

Graficar para varios valores del cero c, la respuesta al escalón del sistema:

y(s) K(s + c)
= 2
u(s) s + 3s + 100

Para cada c, seleccionar el valor de K que haga: lı́m y(t)t→∞ = 1.

Problema A.22

Determine la transformada inversa de:


3s3 + 20
G(s) =
s2 (s + 1)

Problema A.23

Determine la matriz de transición, la ecuación caracterı́stica, la estabilidad, la con-


trolabilidad, la observabilidad (el primer elemento del vector de estado v es la salida)
y la FT del sistema siguiente:
   
0 1 3
v̇ = v+ u
0 −2 −4

Problema A.24

Hallar varias ecuaciones de estado y de salida canónicas para el sistema:

y(s) s3 − 2s + 1
= 3
u(s) s − 2s2 + 3s − 4

Problema A.25

Un motor DC empleado en los sistemas de control de posición angular θ y de velocidad


angular θ̇ = ω, se describe mediante la relación: ω̇ = −ω + u, donde u es el voltaje
de entrada al motor que se asume constante y de magnitud A para el intervalo
2T ≤ t ≤ 3T . Hallar θ(t) analı́ticamente.

Problema A.26

El siguiente diagrama de bloques corresponde al sistema de control automático de la


profundidad y de un submarino, el cual se logra generando un ángulo de control a
adecuado. Suponga que el submarino debe de navegar manteniendo una profundidad
de r = −250 m. Empleando Simulink, determinar el valor de K usando el método de
prueba y error que haga que la salida y siga a la referencia r con suficiente rapidez y
con mı́nimo error e = r − y.

Problema A.27
A.7 Problemas 269

r e α (s − 1)
2
1 y
Kc + Kd s
2
s +1 s

Fig. A.18: Sistema de control de la profundidad de un submarino (problema A.26).

h At i
Sabiendo que: dedt = A, hallar la matriz de estado A de un sistema cuya matriz
t=0
de transición es:  −t 
2e cos(t + 0,7) 3e−t cos(t + 1,5)
e−t cos(t − 1,5) 2e−t cos(t − 0,7)

Problema A.28

Las ecuaciones que rigen el calentamiento de un cuarto son:

dTi Ti − T a
qR = q a − q p qR = Ri2 qa = C t qp =
dt Rt

donde Ct = 4184 J/o C es la capacitancia térmica, R = 20 Ω es la resistencia eléctrica,


Rt = 0.1 o C/J es la resistencia térmica, i(t) es una corriente de entrada tipo escalón
de magnitud 0.5 A y de duración 2000 s, cuyo valor inicial es 1 A. Ta es la temperatura
ambiente que actúa como una entrada tipo escalón de duración 6000 s, cuyo valor
inicial es 20 o C y su valor final es 15 o C, qR es el flujo de calor en J/s producido en
R, qp es el flujo de calor en J/s que va al exterior y Ti es la temperatura en o C en
el interior. Elaborar un programa en Simulink para graficar las señales i(t), T a (t) y
Ti (t). Considerar que la temperatura Ti (0) inicial en el integrador es 22 o C.

Problema A.29

En la Fig. A.19, R es un escalón unitario y N es un disturbio escalón de magnitud


0.1R. Emplear Simulink y usar el método de prueba y error para determinar los
parámetros Kc y Ki que hagan que la salida Y siga a la referencia R con suficiente
rapidez.

R Y
10e −3s
Kc + Ki/s
4s+1

2e −2s

Fig. A.19: Sistema realimentado para el problema A.29.

Problema A.30
270 Sistemas Continuos

Graficar las salidas usando Simulink en el siguiente sistema de ecuaciones diferenciales


acopladas:

dT dTa
= A(T − To1 )Fo − B(T − Ta ) = C(Ta − To2 )Fo + D(Ta − T )
dt dt
donde A = C = 0.08, B = D = 0.05. También, Fo = 0.01 m3 /min, To1 = 280K y To2
= 350 K son perturbaciones tipo escalón.

Problema A.31

En la Fig. A.20, R es un escalón unitario y N es un disturbio escalón de magnitud


0.1R. Emplear Simulink y usar el método de prueba y error para determinar los
parámetros Kc y Ki que hagan que la salida Y siga a la referencia R con suficiente
rapidez.

R Y
10e−3t
Kc + Ki/s
4s+1

2e −2t

Fig. A.20: Sistema realimentado para el problema A.31.

Problema A.32

Para el sistema mostrado en la Fig. A.21 investigar empleando Simulink si es posible


hallar las ganancias K1 , K2 y K3 que hagan que y1 siga a r1 y que y2 siga a r3 con
suficiente rapidez.

1 x1
K1
r1 u 1
s+1
x4 y1
4
s+4
r2 u2 2 x2
K2
s+2
x5 y2
5
s+5
r3 3
K3
u3 s+3 x3

Fig. A.21: Sistema del problema A.32


A.7 Problemas 271

Problema A.33

La función de transferencia de un sistema tiene la forma:


y(s) 5s2 − 0.9167s − 0.5417
G(s) = = 3
u(s) s + 0.5833s2 + 0.0417s + 0,0417
Vı́a Simulink determine: (a) su respuesta ye (t) a un escalón unitario, (b) su respuesta
yi (t) al impulso, (c) la salida y(∞) para la parte (b) usando el teorema del valor final,
y (d) varias ecuaciones de estado y de salida canónicas.

Problema A.34

Las poblaciones P1 , P2 y P3 de tres especies en un área restringida está gobernada


por las ecuaciones:

Ṗ1 = 2P1 + 3P2 + 6P3 + c1 u


Ṗ2 = −3P1 + 3P2 + 8P3 + c2 u
Ṗ3 = P1 − 3P2 + 2P3 + c3 u
0 ≤ c1 0 ≤ c2 0 ≤ c3 c < −1 + c2 + c3

Elaborar un programa en MATLAB para graficar las respuestas P 1 (t), P2 (t) y P3 (t).

Problema A.35

Dada la siguiente ecuación de estado:

ẋ(t) = −4x(t) + 2u(t)

graficar x(t) sabiendo que x(0) = 1 y u(t) es la rampa mostrada en la Fig. A.22.

âáâáâá âáâáâá âáâáâá âáâáâá âáâáâá


u(t)
1
âááââááââááââááââááâ
âáâá âáâá âáâá âáâá âáâá
0 1 t

Fig. A.22: Función rampa.

Problema A.36

Para el punto de operación:

x1 = −1, x2 = −1, u1 = −2, u2 = −1

hallar las ecuaciones de estado y de salida lineales del siguiente sistema no lineal y
determinar su estabilidad.

ẋ1 = −2x21 + 3x1 x2 − u31 + u2


272 Sistemas Continuos

ẋ2 = −4x31 + 6x21 x2 − 4u31 − 2u22


y1 = 3x1 − 4u1 + 6u22
y2 = −3x21 + 4x2 + 2u1

Problema A.37

En el sistema de la Fig. A.23: (a) Determinar su ecuación de estado y ecuación de


salida. (b) Hallar su matriz de transferencia. (c) Determinar su estabilidad. (d) Hallar
la controlabilidad completa, la controlabilidad completa a la salida y la observabilidad
completa. (e) Determinar la matriz de transición con t0 = 0. (f) Hallar y1 (t) e y2 (t)
donde u1 (t) y u2 (t) son entrada rampa unitaria. (f) Graficar y1 (t) e y2 (t). Se sugiere
hacer un programa.

u1 x1 y1
1
4
s+1

u2 2 x2 y2
6
s+2

Fig. A.23: Sistema del problema A.37.

Problema A.38

Para los sistemas de control mostrados en la Fig. A.24, elabore los respectivos pro-
gramas en Simulink. Por tanteo, determine los valores de P, I y D que debe de poseer
el bloque PID para que la salida y(t) siga a la señal escalón deseada r(t) en presencia
de la carga (o disturbio) n(t). También debe de verificar que cuando r(t) es nulo, la
salida y(t) debe de tender a cero. La magnitud de r(t) es 10 veces la magnitud de
n(t).

4(s + 1)(s + 2)
(a) G(s) = e−2s
(s + 3)(s + 4)(s + 5)(s + 6)
2(s + 1)
(b) G(s) = e−3s
(s + 3)(s + 4)(s + 5)(s + 6)(s + 8)
s2 + 2s + 1 −s
(c) G(s) = e
(s + 3)4
8
(d) G(s) = e−4s
(s + 3)(s + 4)(s + 5)(s + 6)(s + 7)2 (s + 8)
A.7 Problemas 273

n(t)
r(t) y(t)
PID G(s)

Fig. A.24: Sistema de control con presencia de disturbio.


Apéndice B

Fundamentos de MATLAB y
Simulink

MATLAB es un lenguaje técnico de cómputo de alto nivel e interactivo que puede ser
empleado para el desarrollo de algoritmos, visualización y análisis de datos y computación
numérica. MATLAB se emplea mundialmente en diversas aplicaciones que incluyen proce-
samiento de señales e imágenes, telecomunicaciones, diseño de sistemas de control, prue-
bas y mediciones, modelado y análisis financiero y biologı́a computacional. MATLAB
también cuenta con una colección herramientas (Toolboxes) para propósitos especı́ficos,
disponibles por separado, los cuales permiten resolver ciertas clases de problemas en el
área de su aplicación.
Simulink emplea un lenguaje en bloques y se usa para modelar, simular y analizar
sistemas dinámicos continuos, discretos o hı́bridos (combinación de ambas). El modelo
del sistema puede ser lineal o no lineal y puede tener diferentes partes que se discreticen
o se actualicen a diferentes tiempos de muestreo. Esta herramienta permite validar los
modelos dinámicos existentes o aquellos construidos desde cero.
En este Apéndice, una sección está dedicada a MATLAB y la otra a Simulink.
Todos los archivos de esta publicación se pueden descargar del link DESCARGAS de
www.ctlima.com.

B.1. Fundamentos de MATLAB


B.1.1. El Entorno de Trabajo de MATLAB
Luego de instalar el programa MATLAB, aparece un icono caracterı́stico del mis-
mo en el escritorio. Para iniciar MATLAB hacer doble click en tal ı́cono para hacer
aparecer la Fig. B.1. La interacción de MATLAB con el usuario es a través de ven-
tanas. Las principales son (ver Fig. B.1):
Ventana de comandos (Command Window).- Aquı́ se ejecutan las instrucciones.
Historial de comandos (Command History).- Ventana que muestra el historial
de las instrucciones introducidas a través de la ventana de comandos.
Directorio actual (Current Directory).- Ventana que muestra los directorios y
archivos actuales.
276 Fundamentos de MATLAB y Simulink

Espacio de trabajo (Workspace).- Ventana donde aparecen las variables alma-


cenadas en memoria.
Ventana de figuras.- Las figuras aparecen cuando el usuario las realiza.
Para cerrar el programa, seleccionar en el menú: File − > Exit MATLAB o tipear
quit en la ventana de comandos.
Para obtener información detallada de cualquier tópico relacionado con MAT-
LAB, hacer click en el icono sı́mbolo de interrogación ?, ubicado debajo de la lı́nea
del menú de la Fig. B.1, para que aparezca la ventana Help. En el espacio Search for
de tal ventana, tipear el tópico del que desea información. Por ejemplo, si tipea save
y hace click en Go, entonces la información detallada y ejemplos sobre este comando
aparecerán en la parte derecha de la ventana Help.

Fig. B.1: El entorno de trabajo de MATLAB.

B.1.2. Comandos y Funciones Generales


Tener en cuenta que MATLAB NO HACE la distinción entre mayúsculas y
minúsculas en sus comandos. Se sugiere usar siempre letras minúsculas para los co-
mandos. El sı́mbolo >> que aparece en la ventana de comandos es el prompt de
B.1 Fundamentos de MATLAB 277

MATLAB. Los comandos escritos después del prompt requieren de un ENTER para
que MATLAB los procese. El formato siguiente: >> help roots ENTER , es útil
cuando se desea tener información de un determinado comando. En este caso partic-
ular, luego de presionar la tecla ENTER, la VC (Ventana de Comandos) muestra la
ayuda correspondiente al comando roots. En lo que sigue, la introducción de la tecla
ENTER será sobreentendida.
El comando format long le dice a MATLAB que se quiere trabajar con 15 dı́gitos
para doble precisión y 5 dı́gitos para simple precisión. Por ejemplo, escribiendo en
la VC: >> format long, 1/3, MATLAB devuelve 0.33333333333333, mientras
que >> format, 1/3 devuelve 0.3333.
Las operaciones fundamentales en MATLAB son suma a+b, resta a-b, multipli-
cación a*b, división derecha a/b, división izquierda a\b y exponenciación a^b. La
división izquierda se emplea más con matrices. El resultado de la operación a/b es
igual al resultado de b\a.
El orden de precedencia en las operaciones fundamentales es: ejecutar primero
el paréntesis más interno, luego los exponentes, después la multiplicación o división
(ambos tienen igual presedencia), y finalmente la suma y resta. Ejemplo:

>> 0.7854-(0.7854)^3/(1*2*3)+0.785^5/(1*2*3*4*5)...
-(0.785)^7/(1*2*3*4*5*6*7)

ans =
0.7071

Observar que los tres puntos al final de la primera fila indica que la sentencia continúa
en la siguiente lı́nea.
√ MATLAB √ reconoce a las letras i y j como números imaginarios. Es decir: i =
−1 y j = −1. Por ejemplo, >> 4i - 2j devuelve 0 + 2.0000i, mientras que
>> 8i-j4 devuelve Undefined function or variable ’j4’.
Sabemos que la división sobre cero es infinito, mientras que la división 0/0 es
indeterminada. En notación MATLAB >> 20/0 devuelve Inf , mientras que
>> 0/0 devuelve NaN, donde NaN está por Not a Number.
A continuación se describen otros comandos de utilidad general. Se recomienda
leer el help del comando antes de usarlo.

help help Lista tópicos de ayuda.


what Lista archivos con extensión m, MAT y MEX.
type Lista archivos tipo m.
lookfor Busca archivos m desde el teclado.
which Localiza funciones y archivos.
demo Ejecuta un demo de MatLab.
helpwin Ayuda en lı́nea. Se muestra en la ventana de ayuda.
who Lista las variables actuales.
whos Lista las variables actuales en forma extendida.
load Carga variables del disco al espacio de trabajo.
save Salvar variables del espacio de trabajo al disco.
clear Limpia variables y funciones de la memoria.
clc Despeja (limpia) la ventana de comandos.
278 Fundamentos de MATLAB y Simulink

pwd Muestra el directorio de trabajo actual.


size Muestra el tamaño de una matriz.
length Número de elementos de un vector.
disp Muestra los valores de una matriz o texto.
exist Chequea si están definidas las variables o funciones.
finite(x) Devuelve 1 si x es finito y cero en otro caso.
isinf(x) Devuelve 1 si x es ∞ o −∞, y cero en otro caso.
isnan(x) Devuelve 1 si x es indeterminado y cero en otro caso.
computer Devuelve el tipo de computadora.
version Devuelve la versión actual de MATLAB.
why Devuelve respuestas breves a casi cualquier interrogante.
lasterr Devuelve el último mensaje de error.
diary Guarda el texto de la sesión de trabajo actual.
unix Ejecuta comandos del sistema operativo Unix.
ver Informa sobre la versión de MATLAB, Simulink y Toolboxes.
info Da información acerca de la empresa Mathworks.
whatsnew Informa acerca de lo nuevo de MATLAB.
hostid Identifica el número del servidor host.
date Proporciona la fecha.
clock Proporciona el vector: [año, mes, dı́a, hora, minuto, segundo].
calendar Proporciona el mes en curso.
fix(clock) Proporciona lo mismo que clock.
cd Cambiar el directorio actual de trabajo.
dir Muestra el directorio actual.
delete Borra un archivo u objeto gráfico.

Por ejemplo, ingresando:


>> clear, a = magic(3); b = ones(1, 3)*-5.7; c = [8 6 4];
>> save -ascii mydata.dat
>> clear, load mydata.dat, mydata
mydata =
8.0000 1.0000 6.0000
3.0000 5.0000 7.0000
4.0000 9.0000 2.0000
-5.7000 -5.7000 -5.7000
8.0000 6.0000 4.0000
donde las 3 primeras filas corresponden a la matriz formada por el comando a=magic(3),
la fila 5 se origina por el comando b = ones(1, 3)*-5.7 y la última fila corresponde
al vector c=[8 6 4 2].

B.1.3. Creación de Archivos Tipo m


La forma más conveniente de procesar información en MATLAB es mediante los
archivos m. Un archivo m se genera como sigue:
Crear un directorio de trabajo, en donde deben de estar todos sus archivos de
de trabajo, tales como archivos m, archivos de datos, etc.
B.1 Fundamentos de MATLAB 279

Ubicarse en tal directorio de trabajo creado empleando el browser de MATLAB


(el icono cuadrado con tres puntos ubicado en el extremo superior derecho de
la Fig. B.1.

Hacer click en el icono hoja de papel en blanco ubicado en el extremo superior


izquierdo de la Fig. B.1, para abrir el editor de MATLAB.

Escribir el contenido usando lenguaje MATLAB y guardarlo con un nombre


arbitrario. El programa genera automáticamente la extensión m del archivo.

Hay tres formas de ejecutar el archivo m generado: (1) presionando la tecla F5;
(2) haciendo click en Debug → Run en el menú del editor; (3) haciendo click
en el icono Run and Save del editor, el cual se ubica debajo de la lı́nea que
contiene el menú del editor.

Si el programa posee errores, éstos serán mostrados en la ventana de comandos.


Corregir tales errores y ejecutar el programa. Esta operación puede repetirse
pocas o varias veces dependiendo de la magnitud del programa y experiencia
del programador.

La ejecución de un archivo m se puede parar en cualquier momento presionando


simultáneamente las teclas Ctrl + C.

El siguiente archivo de nombre miarchivom.m contiene información adicional.

% miarchivom.m GENERACIÓN DE UN ARCHIVO m.


% MATLAB NO PROCESA LO QUE ESTÁ A LA DERECHA DEL SÍMBOLO: %
clear all; close all; clc;
% clear: LIMPIA VARIABLES Y FUNCIONES DE LA MEMORIA.
% close: CIERRA FIGURAS.
% clc: LIMPIA LA VENTANA DE COMANDOS (VC) DE MATLAB
% TAMBIÉN ES VÁLIDO ESCRIBIR: clear all, close all, clc
a=7; b=-4; % DATOS, DONDE EL SÍMBOLO ; IMPIDE QUE LA VC
% MUESTRE a Y b LUEGO DE EJECUTAR miarchivom.m
r=a-b; m = a*b; d = a/b; e = a^b; % OPERACIONES ARITMÉTICAS
s=a+b % LA VC DEVUELVE s=3 LUEGO DE EJECUTAR miarchivom.m

En lo que sigue, sólo emplearemos archivos m para explicar mediante numerosos


ejemplos las bondades del lenguaje MATLAB. En tales ejemplos emplearemos tanto
los comandos listados en la subsección B.1.2 ası́ como otros más especializados.

B.1.4. Matemáticas
Funciones Matemáticas Comunes
% funcionesmat.m FUNCIONES MATEMÁTICAS COMUNES
clear all; close all; clc;
% APROXIMACIONES
x1=5.92;
r1=ceil(x1); % r1=6 (ceil REDONDEA HACIA INFINITO)
280 Fundamentos de MATLAB y Simulink

r2=fix (x1); % r2=5 (fix REDONDEA HACIA CERO)


r3=floor (x1); % r3=5 (floor REDONDEA HACIA MENOS INFINITO)
r4=round([19.54646 13.656 -2.1565 0.78]);
% r4=[20 14 -2 1] (round REDONDEA HACIA EL ENTERO MÁS PRÓXIMO)
% TRIGONOMETRÍA
r5=sin(pi/2); % r5=1 (ÁNGULO EN RADIANES)
r6=sind(-90); % r6=-1 (ÁNGULO EN GRADOS)
r7=cosd(60); % r7=0.5 (ÁNGULO EN GRADOS)
r8=asind(1); % r8=90 (ÁNGULO EN GRADOS)
% ALGUNAS OPERACIONES
r9=abs (-7); % VALOR ABSOLUTO, r9=7
r10=sign(10); % SIGNO, r10=10/abs(10)=10/10=1
r11=gcd (9,12); % MÁXIMO COMÚN DIVISOR ENTRE 9 Y 12, r11=3
r12=lcm (10,25); % MÍNIMO COMÚN MÚLTIPLO ENTRE 10 Y 25, r12=50
r13=mod (-12,5); % MÓDULO, SI y~=0, n=floor(x./y)=-3, r13=x-n.*y=3
r14=rem (12,5); % RESTO DE LA DIVISIÓN ENTRE 12 Y 5, r14=2
r15=nthroot (8,3); % RAÍZ CÚBICA DE 8, r15=2
% CON NÚMEROS COMPLEJOS
x=3+4i;
r16=sign(x); % r16=x/abs(x)=(3+4i)/5=0.6+0.8i

Vectores y Matrices

% vectoresymatrices.m VECTORES Y MATRICES. ELEM = ELEMENTOS


clear all; close all; clc;
% CÓMO DEFINIRLOS
x = [5 7 -2 4 -6]; % VECTOR FILA, ELEM SEPARADOS POR ESPACIOS
y = [2,1,3,7]; % VECTOR FILA, ELEM SEPARADOS POR COMAS
z = [0 1 2,3 4,5]; % IDEM, ELEM SEPARADOS POR COMAS Y ESPACIOS
w = [2;1;3;7]; % VECTOR COLUMNA
A = [1 2 3 % A(1)=1, A(3)=2, A(5)=3
4 5 6]; % A(2)=4, A(4)=3, A(6)=6
B = [1 2 3;4 5 6]; % MATRIZ DE 2 FILAS Y 3 COLUMNAS AL IGUAL QUE A
% DIRECCIONAMIENTO
r1=x(2); % r1=7
r2=x(end); % r2=-6
r3=x(2:4); % r3=[7 -2 4]
r4=x(1:3:5); % r4=[5, -2 y -6]
r5=x([3 5 1]); % r5=^[-2, -6, 1]
r6=A(2,1); % r6=4
r7=A(2,:); % r7=[4 5 6]
r8=A(2,2:3); % r8=[5 6] (2da FILA, COLUMNAS DE 2 A LA 3)
r9=A(2,[3 1]); % r9=[6 4}
r10=A([2 1],2:3); % r10=[5 6] (FILAS 2 y 1, COLUMNAS DE 2 A LA 3)
% [2 3]
r11=A(end,[1 3]); % r11=[4 6]
% CONSTRUCCIÓN ABREVIADA DE ALGUNOS VECTORES
B.1 Fundamentos de MATLAB 281

r12=(1:7); % r12=[1 2 3 4 5 6 7]
r13=[1:7]; % r13=[1 2 3 4 5 6 7]
r14=(1:3:10); % r14=[1 4 7 10] (ENTRE 1 Y 10 CON INCREMENTO 3)
r15=(1:4:10); % r15=[1 5 9] (ENTRE 1 Y 10 CON INCREMENTO 4)
r16=(50:-7:1); % r16=[50 43 36 29 22 15 8 1]
r17=linspace(2,6,3); % r17=[2 4 6] (LINEAL ENTRE 2 Y 6, 3 ELEM.)
r18=linspace(2,6,4); % r17=[2.0000 3.3333 4.6667 6.0000]
r19=linspace(2,6); % VECTOR LINEAL ENTRE 2 Y 6 CON 100 ELEM.
r20=logspace(0,2,4); % r20=[1.0000 4.6416 21.5443 100], VECTOR
% LOGARÍTMICAMENTE ESPACIADO 10^0 Y 10^2 CON 4 ELEM. EQUIDISTANTES
r21=logspace (0,2); % VECTOR LOG. ENTRE 10^0 Y 10^2 CON 50 ELEM.
% CONSTRUCCIÓN DE ALGUNAS MATRICES
r22=zeros(3); % MATRIZ CUADRADA DE 3x3 LLENA DE CEROS
r23=zeros(2,5); % MATRIZ 2 x 5 DE CEROS
r24=ones(2,3); % MATRIZ 2 x 3 DE CEROS
r25=rand(2,4); % MATRIZ 2 x 4 DE NÚMEROS ALEATORIOS ENTRE 1 Y 0
% CON DISTRIBUCIÓN UNIFORME
r26=randn (2,5); % MATRIZ 2 x 5 DE NÚMEROS ALEATORIOS, DISTRIBUCIÓN
% NORMAL, MEDIA 0 Y DESVIACIÓN 1: NORMAL(0,1)
r27=eye(2); % MATRIZ IDENTIDAD 2 X 2
r28=eye(4,2); % MATRIZ 4 X 2 DE 1s EN LA DIAGONAL, 0s EN EL RESTO
r29=magic(3); % MATRIZ MÁGICA 3 x 3, CONTIENE NÚMEROS 1 AL 3^2,
% DONDE: SUMA ELEM FILAS = SUMA ELEM COLUMNAS = SUMA ELEM DIAGONAL:
% 8 1 6
% 3 5 7
% 4 9 2
r30=hilb(3); % MATRIZ DE HILBERT 3 x 3
r40=invhilb(3); % INVERSA DE LA MATRIZ DE HILBERT 3 x 3
% OPERACIONES BÁSICAS CON MATRICES
P=[1 2;3 4]; Q=[1 1;0 1]; R=[1+i 2+2i;3+i 4+7i];
r41=P*Q; % r41=[1 3;3 7]
r42=P.*Q; % r42=[1 2;0 4] (MULTIPLICACIÓN ELEMENTO A ELEMENTO)
r43=R’; % CONJUGADA Y TRANSPUESTA DE R Y VICIVERSA
r44=R.’; % TRANSPUESTA DE R
r45=P+2; % SUMA 2 A CADA ELEMENTO DE A
% FUNCIONES PARA OPERAR CON VECTORES
% SEAN LOS VECTORES: x = [x1 x2 x3]; y = [y1 y2 y3];
% PRODUCTO VECTORIAL:
% cross(x,y)=[(x2*y3-y2*x3) -(x1*y3-y1*x3) (x1*y2-y1*x2)]
x1 = [1 2 3]; y1 = [4 5 6]; xcy=cross(x1,y1); % xcy=[-3 6 -3]
% PRODUCTO ESCALAR: dot(x,y)=x1*y4+x2*y5+x3*y6
xdy=dot(x1,y1); % xdy=32
% FUNCIONES PARA EL ANÁLISIS DE MATRICES
v = [1 2 3];
% >> diag (v) % CREA MATRIZ DIAGONAL CON ELEMENTOS 1, 2 Y 3
M = [1 2 3 4; 7 8 9 2; 2 4 6 8];
r46=diag(M); % r46=[1;8;6]: VECTOR CON ELEMENTOS DE LA DIAGONAL
282 Fundamentos de MATLAB y Simulink

r47=size(M); % r47=[3 4]: DIMENSIONES DE M (3 FILAS Y 4 COLUMNAS)


r48=length(M); % DEVUELVE 4 (LA DIMENSIÓN MAYOR DE LA MATRIZ M)
r49=rank(M); % r49=2 (2 ES EL RANGO DE M, VER help rank)
r50=rref(M); % REDUCCIÓN MEDIANTE GAUSS
% r50 =
% 1 0 -1 -4.6667
% 0 1 2 4.3333
% 0 0 0 0 % rank(M)=2 PORQUE EXISTEN DOS FILAS NULAS
r51=tril(M); % CREA MATRIZ TRIANGULAR SUPERIOR
r52=triu(M); % CREA MATRIZ TRIANGULAR INFERIOR
% OTRAS OPERACIONES CON MATRICES
A1=[1 0 0 2
3 4 5 0
2 4 0 0];
r52=find(A1); % DEVUELVE VECTOR COLUMNA DE ÍNDICES [1;2;3,5;6;8;10]
r54=reshape(A1,2,6); % r54: MATRIZ 2 X 6 A PARTIR DE COLUMNAS DE A1
% r54=
% 1 2 4 0 0 0
% 3 0 4 5 2 0
r55=rot90(A1); % A1 GIRA 90o , r55 TOMA LA FORMA:
% 2 0 0
% 0 5 0
% 0 4 4
% 1 3 2
r56=rot90(A1,3); % A1 gira 270o ( 90o x 3 = 270o )
% FORMEMOS LA MATRIA A2:
A2=[A1
2 4 6 3];
r57=funm(A2,@sin); % CALCULA SENO DE CADA ELEMENTO DE A2
r58=expm(A2); % CALCULA MATRIZ EXPONENCIAL DE A2
% DIVISIÓN C/D RESUELVE EL SISTEMA Cx=D Y ES EQUIVALENTE A inv(C)*D.
% DIVISIÓN C\D RESUELVE EL SISTEMA xD=C Y ES EQUIVALENTE A C*inv(D).
% TEXTO
a = ’casa’; b = ’gato’; AA = ’CASA’; % CADENAS DE CARACTERES
r60=a + b; % r60=[202 194 231 208], SUMA ASCII ELEM POR ELEM
r61=a + 0; % r61=[99 97 115 97], REPRESENTACIÓN ASCII DE a
r62=abs(a); % r62=[99 97 115 97], REPRESENTACIÓN ASCII DE a
r63=double(a); % r63=[99 97 115 97], REPRESENTACI ÓN ASCII DE a
r64=setstr([99 97 115 97]); % r64=casa
r65=abs(’a’)-abs(’A’); % r65=32, RESTA MINÚSCULAS MENOS MAYÚSCULAS
r66=setstr (a-32); % r66=CASA (LA DIFERENCIA)
d=5; disp(d); % DEVUELVE 5 EN LA VC
disp(’escribe esto’); % DEVUELVE << escribe esto >> EN LA VC

Polinomios

% polinomios.m POLINOMIOS
B.1 Fundamentos de MATLAB 283

clear all; close all; clc;


% NOTACIÓN: 5x^4 - 9x^3 + 13x^2 + 9x - 14 ==> [1 -9 13 9 -14]
x = [1 -9 13 9 -14]; rx=roots(x); % rx CONTIENE RAÍCES DE x
xx = poly(rx); % DEVUELVE xx GENERADO POR RAÍCES DE rx (xx=x)
p = [1 2 7]; q = [1 3 6];
c = conv(p,q); % c=(z^2+2z+7)(z^2+3z+6)=z^4+5z^3+19z^2+33z+42
% =[1 5 19 33 42]
d = deconv(c,q); % COCIENTE DE DIVIDIR c ENTRE q
dp = polyder(p); % DERIVADA DE POLINOMIO p
dpq = polyder(p,q); % DERIVADA DEL PRODUCTO p*q
ep=polyval(p,[0 1 5]); % EVALÚA p=x^2+2x+7 PARA x=0, x=1 y x=5
em=polyval(p,[0 1 2;-1 -2 -3;4 0 7]); % EVALÚA p PARA CADA FILA
% em=
% 7 10 15
% 6 7 10
% 31 7 70

Operaciones Relacionales y Lógicas


% operaclogicas.m OPERACIONES RELACIONALES Y LÓGICAS
clear all; close all; clc;
% OPERADORES RELACIONALES: < <= > >= == ~=
% OPERADORES LÓGICOS: & (AND) | (OR) ~ (NOT)
% ORDEN DE PRECEDENCIA: ~= == <= >= < >
a =1:9; b=5-a; % a=[1 2 3 4 5 6 7 8 9], b=[4 3 2 1 0 -1 -2 -3 -4]
r1=a<6; % r1=[1 1 1 1 1 0 0 0 0], r(i)=1 SI a<6, 0 si a >= 6
r2=a==b; % r2(i)=1 SI a(i)==b(i) ES VERDADERO, 0 SI ES FALSO
r3=a~=b; % r3(i)=1 SI a(i)~=b(i) ES VERDADERO, 0 SI ES FALSO
r4=(a>b)&(b>-3); % r4(i)=1 SI (a(i)>b(i))&(b(i)>-3), 0 SI ES FALSO
c = [Inf 0 5 -8 NaN 94];
% >> exist(’c’) % DEVUELVE 1 PORQUE c EXISTE
% >> isnan(c) % DEVUELVE 1 SI c(i) ES NaN Y 0 SI NO ES NaN
% >> isinf(c) % DEVUELVE 1 SI c(i) ES Inf Y 0 SI NO ES Inf
% >> isfinite(c) % DEVUELVE 1 SI c(i) ES FINITO Y 0 SI NO LO ES

Creación de Funciones
La forma general de una función de dos variables es:

function[a,b]=nombre_función(x,y)

Por ejemplo, se desea crear la función de nombre calculos para calcular la suma
y la resta de dos números, vectores o matrices (x,y). Los resultados los devuelve en
[a,b]. Los listados del archivo calculos.m y el archivo usacalculo.m para usar calcu-
los.m se muestran a continuación. Sólo es necesario ejecutar el archivo usacalculos.m
para obtener los resultados.

% calculos.m FUNCIÓN calculos


284 Fundamentos de MATLAB y Simulink

clear all; close all; clc;


function[suma,resta] = calculos(x,y)
suma = x + y;
resta = x - y;

% usacalculos.m USA FUNCIÓN CONTENIDA EN calculos.m


clear all; close all; clc;
x = [1 5; 3 -2; 3 7; 4 -1; 0 2]; y = [16 -1; 0 4; 1 5; -1 0; -1 3];
[a,b] = calculos(x,y); a, b
% LA VENTANA DE COMANDO VC DEVUELVE a = x+y, b = x-y

Programación
% programacion.m PROGRAMACIÓN EN MATLAB
clear all; close all; clc;
% SENTENCIA FOR
for x = 1:5
disp(’x toma el valor’) % DEVUELVE x toma el valor PARA CADA x
disp(x) % DEVUELVE EL VALOR DE x
end
% SENTENCIA WHILE
a=3;
while a < 5
disp(’a es menor que 5 porque su valor es:’)
disp(a)
a = a + 1;
end
% SENTENCIA IF
b = 5;
if b == 0 % SE USA == PORQUE ES UNA EXPRESIÓN LÓGICA
disp (’el valor de b es 0’)
elseif b == 1
disp (’el valor de b es 1’)
elseif b == 2
disp (’el valor de b es 2’)
elseif b == 3
disp (’el valor de b es 3’)
else
disp (’b no es ni 0 ni 1 ni 2 ni 3’)
end
% GENERACIÓN DE NÚMEROS PRIMOS MENORES DE 100
disp(’Estos son los números primos menores de 100’)
disp(2)
for i=2:100
n=2;
while n <= sqrt(i)
if rem(i,n)==0
n=i;
B.1 Fundamentos de MATLAB 285

else n=n+1;
end
end
if n~=i disp(i)
end
end

Análisis Numérico y de Datos

% analisisnumerico.m ANÁLISIS NUMÉRICO


clear all; close all; clc;
ds=diff(’sin(7*x) ’); % DEVUELVE DERIVADA RESPECTO A x
dp=diff(’(exp(x)*cos(3*x*y))’,’y’); %DEVUELVE DERIVADA PARCIAL EN y
dd=diff(’(sin (x^2))’,2); % DEVUELVE SEGUNDA DERIVADA RESPECTO A x
ec=feval(’cos’,pi); % EVALÚA EL COSENO EN pi
ep=feval(’cos’, [0 pi/3 pi] ); % EVALÚA EL COSENO EN VARIOS PUNTOS
em=feval(@cos,[0 pi/3 pi] ); % EVALÚA EL COSENO EN VARIOS PUNTOS
fm=fminbnd(@sind,0,360); % VALOR ENTRE 0,360, sind TOMA EL M ÍNIMO
fz=fzero(’sind’,100); % VALOR MÁS PRÓXIMO A 100 DONDE sind=0
fq=quad(’sin’,0,pi); % INTEGRAL DEL SENO DE 0 A pi, APROX. RECT.

% analisisdatos.m ANÁLISIS DE DATOS


clear all; close all; clc;
X = [5 7 9 2 9; 3 1 7 5 1; 3 9 2 7 5; 1 5 5 1 8];
% >> cumprod(X) % DEVUELVE MATRIZ DE PRODUCTOS ACUMULADOS
% >> cumsum(X) % DEVUELVE MATRIA DE SUMAS ACUMULADAS
% >> mean(X) % DEVUELVE LA MEDIA DE CADA COLUMNA
% >> sort(X) % ORDENA LOS VALORES DE CADA COLUMNA
% >> sum(X) % DEVUELVE SUMA DE LOS ELEMENTOS DE CADA COLUMNA
% >> var(X) % DEVUELVE VARIANZA DE LOS ELEMENTOS DE C/COLUMNA
% >> max (X) % DEVUELVE VALOR MÁXIMO DE CADA COLUMNA
% >> min (X) % DEVUELVE VALOR MÍNIMO DE CADA COLUMNA
% >> iqr (X) % DEVUELVE RANGO intercuartı́lico DE CADA COLUMNA
% >> range(X) % DEVUELVE RANGO DE CADA COLUMNA: DIFERENCIA ENTRE
% EL MÁXIMO Y EL MÍNIMO
Y = [5 7 9 2 9 3 1 7 5 1 3 9 2 7 5 1 5 5 1 8];
% >> tabulate(Y) % DEVUELVE:
% Value Count Percent
% 1 4 20.00% (EL NÚMERO 1 APARECE 4 VECES)
% 2 2 10.00% (EL NÚMERO 2 APARECE 2 VECES)
% 3 2 10.00%
% 4 0 0.00%
% 5 5 25.00%
% 6 0 0.00%
% 7 3 15.00%
% 8 1 5.00%
% 9 3 15.00%
286 Fundamentos de MATLAB y Simulink

B.1.5. Gráficos
% graficas2D.m GRÁFICAS EN 2 DIMENSIONES
clear all; close all; clc;
figure(1) % CREA figure(1)
x=[-2 -1 0 1 2 3]; y=[4 1 0 1 4 9]; z=[6 5 3 7 5 2];
w=[-2 -1 0 0.5 1.5 2.5];
plot(x,y,’*’,x,z,’-’), xlabel(’eje x’), ylabel(’eje y’),
title(’x vs y’), grid, text(1,4,’HOLA>&$’), axis([-3 3 -1 10]),
gtext(’AQUÍ COLOCO TEXTO’)
figure(2)
x1 = pi*(-1:0.01:1); y1=x1.*sind(x1); y2=cosd(x1);
y3=sin(x1).*exp(x1); y4=exp(-x1);
subplot(2,2,1), plot(X1,Y1), title (’x1*seno(x1)*’)
subplot(2,2,2), plot(x1,y2), title (’cos(x1)’)
subplot(2,2,3), plot(x1,y3), title (’sen(x1)*exp(x1)’)
subplot(2,2,4), plot(x1,y4), title (’-exp(x1)’)
figure(3)
plot(x1,y1), title (’x1*seno(x1)*’),
hold on
plot (x1,y2), title (’cos(x1)’), plot (x1,y3),
title (’sen(x1)*exp(x1)’), hold off
figure(4)
subplot(221), fplot(’sind(x)’,[0 180]),
title(’sen(x) de 0 a 360 grados’)
subplot(222), fplot(’x^2*sin(1/x)’,[-0.05 0.05]),
title(’x^2 * sin(1/x)’)
subplot(223), ezplot(’exp(x)’) % EASY PLOT DE exp(x)
subplot(224), ezplot(’sin(t)’,’cos(t)’,[0 pi])
figure(5)
subplot(2,1,1), ezplot(’x^2 - y^2 - 1’)
x3=[-2 0 2 0 -2]; y3=[4 8 4 0 4];
subplot(2,1,2), plot(x3,y3), fill(x3,y3,’r’) % r=RED

% graficas3D.m GRÁFICAS EN 3 DIMENSIONES


clear all; close all; clc;
figure(6)
x3=[-2 0 2 0 -2]; y3=[4 8 4 0 4]; z3=[3 5 10 5 3];
subplot(311), fill3(x3,y3,z3,’b’) % plot en 3D, b=blue
subplot(312), ezsurf(’sin(x*y)’,[-2 2 -2 2])
subplot(313), x4=-720:720; y4=sind(x4); z4=cosd(x4); plot3(x4,y4,z4)
figure(7)
x = -10:0.5:10; y = -10:0.5:10;
subplot(3,1,1), [X,Y]=meshgrid(x,y); % CREA MATRICES PARA LA MALLA
Z=sin(sqrt(X .^2 + Y .^2))./ sqrt (X .^ 2 + Y .^ 2 + 0.1);
mesh (X,Y,Z) % DIBUJA LA GRÁFICA
subplot(3,1,2), [X,Y] = meshgrid (-10:0.5:10);
Z=sin(sqrt(X .^2 + Y .^2))./sqrt(X .^ 2 + Y .^2 + 0.1); mesh(X,Y,Z)
B.1 Fundamentos de MATLAB 287

subplot(3,1,3), surf (X,Y,Z)


figure(8)
x = -10:0.5:10; y = -10:0.5:10;
[X,Y] = meshgrid(x,y); % CREA MATRICES PARA HACER LA MALLA
Z = sin(sqrt(X .^2 + Y .^2))./ sqrt (X .^ 2 + Y .^ 2 + 0.1);
subplot(2,2,1), contour (X,Y,Z) % DIBUJA LÍNEAS DEL CONTORNO
subplot(2,2,2), pcolor(X,Y,Z) % TRANSFORMA ALTURA EN COLORES
subplot(2,2,3), surf(X,Y,Z), view(10,70) % AZIMUT 10, ELEVACI ÓN 70
subplot(2,2,4), surf(X,Y,Z), view(10,-12.2), colorbar
% colorbar A~NADE BARRA DE COLOR
% >> surf (X,Y,Z), [az,el]=view % DEVUELVE AZIMUT=-37.5, ELEVAC=30
figure(11)
x=-10:0.5:10; y = -10:0.5:10;
[X,Y] = meshgrid(x,y); % CREA MATRICES PARA HACER LA MALLA
Z=sin(sqrt(X .^2 + Y .^2))./ sqrt (X .^ 2 + Y .^ 2 + 0.1);
subplot(2,1,1),
[C,h]=contour(X,Y,Z); clabel(C,h) % A~NADE ALTURAS A CONTORNOS
subplot(2,1,2),
M = [0 0 0; 1 0 0; 0 1 0; 0 0 1; 1 1 0];
% MATRIZ DE COLORES NEGRO, ROJO, VERDE, AZUL, AMARILLO
colormap(M), surf (X,Y,Z)
figure(12)
t=0:0.001:0.009;
v=900:1025;
[T V]=meshgrid(t,v);
aux1=16*pi^2*(T.^2).*((V-918).^2).*((V-1011).^2);
aux2=aux1+(2*V-1929).^2;
w=T./aux2;
z=35000000*w;
surfl(t,v,z); % SUPERFICIE SOMBREADA 3D CON RAYOS
shading interp; % FIJA MODO shading (SOMBRA) CON INTERPOLACI ÓN
colormap(pink); % FIJA EN pink (ROSADO) EL COLOR DE LA FIGURA
rotate3d; % GIRA LA FIGURA USANDO EL MAUSE
print -f -depsc ultimo % GENERA ultimo.eps EN COLOR

B.1.6. Matemática Simbólica


% simbolica.m MATEMÁTICA SIMBÓLICA
clear all; close all; clc
% DERIVADAS E INTEGRALES
syms x n a b t theta y u;
f1=x^n; r1=diff(f1); % r1=x^n*n/x=n*x^(n - 1), DERIVADA EN x
f2=sin(a*t + b); r2=diff(f2); % r2=a*cos(b + a*t), DERIVADA EN t
f3=exp(i*th); r3=diff(f3); % r3=exp(th*i)*i, DERIVADA EN th
r4=int(f1); % r4=x^(n+1)/(n+1), INTEGRAL INDEFINIDA EN x
f5=y^(-1); r5=int(f5); % r5=1/y, INTEGRAL INDEFINIDA EN y
f6=n^x; r6=int(f6); % r6=n^x/log(n), INTEGRAL INDEFINIDA EN n
288 Fundamentos de MATLAB y Simulink

r7=int(f2); % r7=-cos(b + a*theta)/a, INTEGRAL EN theta


f8=1/(1+u^2); r8=int(f8); % r8=atan(u), INTEGRAL INDEFINIDA EN n
f9=exp(-x^2); r9=int(f9); % r9=(pi^(1/2)*erf(x))/2,
% erf=función error
c=0; d=1; f10 = x^7; r10=int(f10,c,d); % r10=1/8, INTEGRAL DEFINIDA
c=1; d=2; f11 = 1/x; r11=int(f11,c,d); % r11=log(2), INTEGRAL DEFIN.
c=0; d=1; f12 = log(x)*sqrt(x); r12=int(f12, c, d); % r12=-4/9
c=0; d=inf; f13 = exp(-x^2); r13=int(f13, c, d); % r13=pi^(1/2)/2
% SIMPLIFICACIONES Y SUSTITUCIONES
% collect: COLECTA TODOS LOS COEFICIENTES CON LA MISMA POTENCIA DE x
f14=(x-1)*(x-2)*(x-3); r14=collect(f14); % r14=x^3-6*x^2+11*x-6
f15=x*(x*(x-6)+11)-6; r15=collect(f15); % r14=x^3-6*x^2+11*x-6
f16=(1+x)*t + x*t; r16=collect(f16); % r16=(2*t)*x+t
% expand: DISTRIBUYE PRODUCTOS EN SUMAS Y APLICA IDENTIDADES DE SUMAS
f17 = a*(x+y); r17=expand(f17); % r17=a*x + a*y
f18 = (x-1)*(x-2)*(x-3); r18=expand(f18); % r18=x^3-6*x^2+11*x-6
f19 = x*(x*(x-6)+ 11)-6; r19=expand(f19); % r19=x^3-6*x^2+11*x-6
f20 = exp(a + b); r20=expand(f20); % r20=exp(a)*exp(b)
f21 = cos(x + y); r21=expand(f21); % r21=cos(x)*cos(y)-sin(x)*sin(y)
f22 = cos(3*acos(x)); r22=expand(f22); % r22=4*x^3 - 3*x
f23 = 3*x*(x^2-1)+x^3; r23=expand(f23); % r23=4*x^3 - 3*x
% horner: TRANSFORMA UN POLINOMIO SIMBÓLICO EN SU FORMA ENCADENADA
f24 = x^3-6*x^2+11*x-6; r24=horner(f24); % r24=x*(x*(x-6)+11)-6
f25 = 1.1+2.2*x+3.3*x^2; r25=horner(f25);
% r25=x*((33*x)/10+11/5)+11/10
% factor: EXPRESA f COMO UN PRODUCTO DE POLINOMIOS DE GRADO BAJO
f26 = x^3-6*x^2+11*x-6; r26=factor(f26); % r26=(x-3)*(x-1)*(x-2)
f27 = x^3-6*x^2+11*x-5; r27=factor(f27); % r27=x^3-6*x^2+11*x-5
f28 = x^6 + 1; r28=factor(f28); % r28=(x^2 + 1)*(x^4 - x^2 + 1)
% simplify: HERRAMIENTA PODEROSA PARA SIMPLIFICAR
f29 = x*(x*(x-6)+11)-6; r29=simplify(f29); % r29=(x-1)*(x-2)*(x-3)
f30 = (1 - x^2)/(1 - x); r30=simplify(f30); % r30=x + 1
f31 = (1/a^3+6/a^2+12/a+8)^(1/3); r31=simplify(f31);
% r31=((2*a+1)^3/a^3)^(1/3)
f32 = exp(x)*exp(y); r32=simplify(f32); % r32=exp(x + y)
f33 = cos(x)^2 + sin(x)^2; r33=simplify(f33); % r33=1
% simple: ENCUENTRA UNA EXPRESIÓN CON MÍNIMA CANTIDAD DE CARACTERES
% syms a positive x;
f34 = (1/a^3 + 6/a^2 +12/a + 8)^(1/3); r34=simplify(f34);
% r34= (8*a^3 + 12*a^2 + 6*a + 1)^(1/3)/a
f35 = (1/a^3+6/a^2+12/a+8)^(1/3); r35=simple(f35); % r35=1/a+2
f36 = cos(x) + i*sin(x); r36=simplify(f36); % r36=cos(x) + sin(x)*i
f37 = cos(x) + i*sin(x); r37=simple(f37); % r37=exp(x*i)
f38 = cos(x)^2 -sin(x)^2; r38=simple(f38); % r38=cos(2*x)
f39 = cos(x) + i*sin(x); r39=simple(f39); % r39=exp(x*i)
f40 = cos(3*acos(x)); r40=simple(f40); % r40=4*x^3 - 3*x
% pretty: HACE MÁS VISIBLE LAS EXPRESIONES SIMBÓLICAS
B.1 Fundamentos de MATLAB 289

% >> pretty(f34)

El comando pretty(f34) devuelve:


 1/3
1 6 12
+ + +8
a3 a2 a

B.1.7. Simulación de un Sistema de Control


El siguiente programa simula el sistema de control de posición backstepping del
prototipo MRE (Manipulador Robótico Esférico). El modelo dinámico de Lagrange
del MRE deducido en la subsección ??, ecuación (??), posee la forma:
   
q1 u1
M(q)q̈ + P(q, q̇)q̇ + d(q) = u q= u=
q2 u2
donde:
     
M11 0 P11 P12 0
M= P= d=
0 M22 P21 P22 d21

 
Ra 1
M11 = J1 + Jeq + m2 L2 sen2 q2
nKm KA 4
 
Ra 1
M22 = J2 + Jeq + m2 L2
nKm KA 4
 2

Ra n Km Kb
P11 = Beq +
nKm KA Ra
 
Ra 1
P12 = m2 L2 q̇1 senq2 cos q2
nKm KA 2
 
Ra 1
P21 = − m2 L2 q̇1 senq2 cos q2
nKm KA 4
 
Ra n2 K m K b
P22 = Beq +
nKm KA Ra
 
Ra 1
d21 = − m2 L2 gsenq2
nKm KA 2
El diseño de un controlador backstepping emplea el procedimiento descrito en la
sección ??, que en forma breve establece hasta el nivel de simulación:

(1) Definir las especificaciones de diseño y determinar el modelo no lineal del sis-
tema a controlar en la forma dada en (??).
(2) Determinar la ley de control backstepping dada en (??). Para ello, definir el
vector de referencias deseadas qd , formular el vector de error e y el vector q̇r :

e = z1 = q − q d q̇r = q̇d − Kz1

donde K es una matriz diagonal con elementos k positivos. El observador se


expresa como:
ḃ = q̇d + Ld (q − q
q b)
290 Fundamentos de MATLAB y Simulink

b se puede
donde Ld es una matriz diagonal con elemento ` positivos. El vector q
ḃ La ley de control backstepping posee la forma:
calcular integrando q.

ḃ q̇r + d(q) − Kd (q
u = M(q)q̈ + P(q, q) ḃ − q̇r ) − K1 z1

en donde Kd y K1 son matrices diagonales con elementos kd y k1 positivos,


respectivamente.
(3) Simular el sistema de control backstepping empleando los parámetros de sin-
tonización kd , k1 y `d .

La Fig. B.2 muestra el diagrama de flujo empleado en esta publicación para


simular los sistemas de control. El archivo bscmrer.m muestra el programa en código
MATLAB para simular el el control simultáneo de las posiciones de los brazos del
MRE empleando un controlador backstepping. Este archivo, que es autoexplicativo,
emplea el diagrama de flujos de la Fig. B.2. El resultado de la simulación se muestran
en la Fig. B.3.

Inicio

Parámetros del sistema


Parámetros de sintonización
Condiciones iniciales

Lazo de control

k=1

Señales de referencia
Algoritmo de control
Almacenamiento de datos

SI
¿k < N?

NO
Gráficos de resultados

Fig. B.2: Diagrama de flujo para la simulación de un sistema de control.

% bscmrer.m CONTROL BACKSTEPPING DEL MANIPULADOR MRE.


% CASO: REGULACIÓN (REFERENCIA CONSTANTE EN EL TIEMPO)
clear all; close all; clc;
B.1 Fundamentos de MATLAB 291

% DATOS DEL SUB-SISTEMA MECÁNICO


d = 0.01; rd = 0.06; b = 0.25; a = 0.044; La = 0.3; Lh = 0.05;
md = 0.55; mb = 0.9; ma = 0.8; mh = 0.15; g =9.81; n = 12.5;
m1 = md + mb; m2 = ma + mh; L1=(mb*b+md*d)/(mb+md); L2=La+Lh;
Jm = 0.0003; Jg = 0.053; Jd = md*rd^2/2;
Jb = mb*a^2/6; J1 = Jd+Jb; J2 = m2*L2/3; Jeq = n^2*Jm+Jg;
Bm = 0.0001; Bg = 0.01; Beq = n^2*Bm+Bg;
% DATOS DEL SUB-SISTEMA ELÉCTRICO
Km = 0.0421; Kb=0.0564; Larm = 0; Ra = 5.3; KA = 12.5;
% PARÁMETROS DE CONTROL
K = 5; K1=8; Ld=10; Kd=8;
% VALORES INICIALES
q1 = 0; q2 = 0; dq1 = 0; dq2 = 0; qe1 = 0; qe2 = 0;
% TIEMPO DE MUESTREO T (segundos) Y NÚMERO DE ITERACIONES N
T= 0.01; N=4000; A = 1; % A: MAGNITUD DE LAS REFERENCIAS DESEADAS
% LAZO DE CONTROL
for k=1:N;
% REFERENCIAS DESEADAS qd1 Y qd2
if(k >= 0 && k <= N/4), qd1 = 0.5*A; qd2 = 0.1*A;
elseif(k >= N/4 && k <= N/2), qd1 = 0.2*A; qd2 = 0.7*A;
elseif(k >= N/2 && k <= 3*N/4), qd1 = 0.8*A; qd2 = 0.3*A;
elseif(k >= 3*N/4 && k <= N), qd1 = 0.3*A; qd2 = 0.5*A;
end
Qd1(k) = qd1; dqd1 = 0; ddqd1 = 0;
Qd2(k) = qd2; dqd2 = 0; ddqd2 = 0;
% ERROR DE SEGUIMIENTO
e1 = q1 - qd1; e2 = q2 - qd2;
z11 = e1; z22 = e2;
dqr1 = dqd1 - K*z11; dqr2 = dqd2 - K*z22;
% OBSERVADOR
dqe1 = dqd1 + Ld*(q1 - qe1); qe1 = qe1 + T*(dqe1);
dqe2 = dqd2 + Ld*(q2 - qe2); qe2 = qe2 + T*(dqe2);
% CONTROL
M11e = Ra*(J1 + Jeq + m2*L2*sin(qe2)^2/4)/(n*Km*KA);
M22 = Ra*(J2 + Jeq+m2*L2/4)/(n*Km*KA);
P11 = Ra*(Beq + n^2*Km*Kb/Ra)/(n*Km*KA);
P12e = Ra*m2*L2*dqe1*sin(q2)*cos(q2)/(2*n*Km*KA);
P21e = -Ra*m2*L2*dqe1*sin(q2)*cos(q2)/(4*n*Km*KA);
P22 = Ra*Beq + n^2*Km*Kb/Ra/(n*Km*KA);
d11 = 0;
d21e = -Ra*m2*L2*g*sin(qe2)/(2*n*Km*KA);
u1 = M11e*ddqd1+P11*dqr1+P12e*dqr2+d11- Kd*(dqe1-dqr1) - K1*z11;
u2 = M22*ddqd2+P21e*dqr1+P22*dqr2+d21e-Kd*(dqe2-dqr2) - K1*z22;
U1(k) = u1; U2(k) = u2;
% MODELO DEL SISTEMA CONTROLADO
M11 = Ra*(J1 + Jeq + m2*L2*sin(q2)^2/4)/(n*Km*KA);
P12 = Ra*m2*L2*sin(q2)*cos(q2)*dq1/(2*n*Km*KA);
292 Fundamentos de MATLAB y Simulink

P21 = -Ra*m2*L2*dq1*sin(q2)*cos(q2)/(4*n*Km*KA);
d21 = -Ra*m2*L2*g*sin(q2)/(2*n*Km*KA);
dq1 = dq1 + T*(u1 - P11*dq1 - P12*dq2- d11)/M11;
dq2 = dq2 + T*(u2 - P21*dq1 - P22*dq2- d21)/M22;
q1 = q1 + T*dq1; Q1(k) = q1;
q2 = q2 + T*dq2; Q2(k) = q2;
end % FINALIZA EL LAZO DE CONTROL
% GRÁFICOS
ejex=linspace(0,N*T,N); % EJE DE TIEMPO
subplot(411)
plot(ejex,Qd1(1:N),ejex,Q1(1:N)), grid on
ylabel(’POSICIÓN q1 [rad]’)
subplot(412)
plot(ejex,U1(1:N)),grid on
xlabel(’TIEMPO [S]’)
ylabel(’CONTROL u1 [v]’)
subplot(413)
plot(ejex,Qd2(1:N),ejex,Q2(1:N)), grid on
ylabel(’POSICIÓN q2 [rad]’)
subplot(414)
plot(ejex,U2(1:N)), grid on
xlabel(’TIEMPO [S]’)
ylabel(’CONTROL u2 [v]’)
print -f -deps dfsimr % GENERA FIGURA dfsimr.eps

B.2. Fundamentos de Simulink


Simulink se ejecuta dentro del entorno de MATLAB y depende de este programa
para definir y evaluar el modelo a simular y los bloques de parámetros. Simulink tam-
bién usa algunas caracterı́sticas de MATLAB, tales como: definición de las entradas
del modelo, almacenamiento de las salidas del modelo para análisis y visualización,
y realizar operaciones y funciones propias de MATLAB dentro del modelo.
Se recomienda los siguientes 6 pasos para modelar un sistema: (1) definir el sis-
tema, (2) identificar los componenetes del sistema, (3) modelar el sistema con ecua-
ciones, (4) elaborar el diagrama de bloques en Simulink, correr la simulación, y (6)
validar los resultados de la simulación.

B.2.1. Fundamentos del Software Simulink


Para mostrar la biblioteca de bloques (Simulink Library Browser, Fig. B.4):

1. Abrir MATLAB, luego tipear simulink en el prompt.


2. Click el botón Start (extremo inferior izquierdo de la ventana MATLAB) y
luego seleccionar: Simulink > Library Browser.

3. Click en el icono Simulink: ubicado en la barra de menus de MATLAB.


B.2 Fundamentos de Simulink 293

POSICIÓN q1 [rad]
1

0.5

0
0 5 10 15 20 25 30 35 40
CONTROL u1 [v]

50

−50
0 5 10 15 20 25 30 35 40
TIEMPO [S]
POSICIÓN q2 [rad]

0.5

0
0 5 10 15 20 25 30 35 40
CONTROL u2 [v]

50

−50
0 5 10 15 20 25 30 35 40
TIEMPO [S]

Fig. B.3: Resultado de la simulación del sistema de control backstepping del MRE:
las posiciones de los brazos del manipulador siguen las señales de referencia deseada.

Para crear un nuevo modelo, seleccionar en el menú de la ventana Simulink Library


Browser (SLB): File > New > Model. El software abre una ventana vacı́a (Fig. B.5)
en donde construir el modelo.
Para abrir un modelo existente:

1. En el menú de la ventana SLB, seleccionar File > Open. En la ventana Open


buscar el archivo con extensión .mdl a abrir. Ubicado el archivo, seleccionarlo y
click Abrir. El software abre el archivo buscado en una ventana que tiene como
etiqueta el nombre del archivo.
2. En la VC (ventana de comandos) de MATLAB, hacer click en el icono [...]
(tres puntos seguidos) ubicado en la parte superior derecha, para que aparezca
la ventana Buscar carpeta. En esta ventana ubicarse en el directorio donde
está el archivo .mdl. Luego, en el prompt de MATLAB, escribir el nombre del
archivo sin extensión, para que aparezca el modelo buscado.

La ventana SLB, Fig. B.6, muestra la biblioteca de bloques de Simulink instaladas


en su sistema. Los bloques se pueden copiar o arrastrar desde esta ventana a una
ventana vacı́a. Cuando use la ventana SLB, notar lo siguiente:

Los bloques de una biblioteca se pueden ver seleccionando el nombre de la


294 Fundamentos de MATLAB y Simulink

Fig. B.4: Librerı́a de bloques (Simulink Library Browser).

Fig. B.5: Nueva ventana para construir un modelo.


B.2 Fundamentos de Simulink 295

biblioteca en la parte izquierda de la ventana SLB, o haciendo doble click en el


bloque seleccionado.

Cuando se selecciona un bloque, su descripción aparece en la parte inferior de


la ventana SLB.

Para obtener mayor información de un bloque, seleccionar el bloque en la ven-


tana SLB, y en su menú ir hacia Help > Help on the Selected Block.

Los parámetros de un bloque se pueden visualizar y cambiar haciendo click


derecha sobre el bloque.

Se puede buscar un determinado block en la ventana SLB, insertando el nombre

del block en el campo de búsqueda ubicado a la derecha del icono .


Luego, hacer click sobre tal icono.

La forma más rápida de obtener ayuda en un bloque de una biblioteca, es hacer


click derecho y luego seleccionar Help.

Fig. B.6: Biblioteca de bloques en la ventana Simulink Library Browser (SLB).

Simulink proporciona una gran variedad de demos para ilustrar las bondades de
este software. Para ingresar a los demos, hacer click en el botón Start ubicado en el ex-
tremo inferior izquierdo de la ventana MATLAB y luego ir a Start > Simulink > Demos.
296 Fundamentos de MATLAB y Simulink

B.2.2. Creación de un Modelo Simulink


El problema a resolver vı́a Simulink, es controlar la posición angular de un brazo
robótico de 1GDL empleando un controlador por linealización de la realimentación y
un observador de estados. Primero, seleccionar un directorio de trabajo para alojar
los archivos Simulink disnl2.mdl y MATLAB disnl2p.m. La Fig. B.7 muestra el dia-
grama de bloques Simulink que se obtiene tipeando disnl2 en el prompt de MATLAB.
Observar que los bloques Proceso no lineal, Observador no lineal, Conversión de x a
z, Señal u y Señal v, son en realidad subsistemas que alojan, cada uno, una porción
del programa de control.

disnl2_u
u
Mux

gráfico
Señal u Proceso Mux
Señal v no lineal
disnl2_x1
x1
Referencia disnl2_r
r Conversión Observador r
de x a z no lineal

Fig. B.7: Diagrama de bloques del archivo Simulink disnl2.mdl.

Por otro lado, el bloque Referencia r es una señal sinusoide que se arrastra desde su
ubicación en la ventana SLB: Simulink > Sources > Sine Wave (Fig. B.8), hacia
la ventana de trabajo.
Haciendo doble click en cualquier subsistema, aparece una ventana con el con-
tenido del mismo. Por ejemplo, la Fig. B.9 muestra el contenido del subsistema Proce-
so no lineal. Sus componentes se arrastran desde la ventana SLB a la ventana de la Fig.
B.9. Observar en dicha Fig. que los cı́rculos x1, x2 y x3 son las variables de salida del
sistema, mientras que el cı́rculo u es la entrada. La entrada u se genera arrastrando la
elipse In1 ubicada en la ventana SLB: Simulink > Commonly Used Blocks > In1,
mientras que para las tres salidas se requiere arrastrar tres veces la elipse Out1 ubica-
da en la ventana SLB: Simulink > Commonly Used Blocks > Out1. El subsistema
Proceso no lineal se crea seleccionando con el click derecho todo el contenido de
la Fig. B.9 y luego tipeando Ctr + G o seleccionando en el menú de MATLAB:
Edit > Create Subsystem.
Los rectángulos u, x1 y r mostrados en la Fig. B.7, que sirven para almacenar
datos, se crean arrastrando tres veces el rectángulo To File ubicado en la ventana SLB:
Simulik > Sinks > To File. Haciendo doble click en cada rectángulo, se introduce
un nombre a elección por ejemplo, disnl2_u, disnl2_x1 y disnl2_r. En la Fig. B.7,
Scope es un graficador que se obtiene de la ventana SLB: Simulink > Sinks > Scope.
El procedimiento para obtener el resultado de este programa: los gráficos de la salida
x1 controlada u la fuerza de control u, es el siguiente:

1. Ejecutar el archivo disnl2p.m para introducir datos al sistema. El archivo no se


B.2 Fundamentos de Simulink 297

Fig. B.8: Ubicación del bloque Sin Wave.

3 2
x3 x2
1 Kact 1
n*K 1 1
u L.s+R 1
gan 5 s
sum1 subsistema gan 6 M.s+B
x1
eléctrico sum2 subsistema Integrador
mecánico

n*E
gan 2 MATLAB
N
Function
gan 3
seno

Fig. B.9: Contenido del subsistema Proceso no lineal.


298 Fundamentos de MATLAB y Simulink

ejecuta completamente porque recién se van a crear los archivos de datos.

2. correr el programa Simulink disnl2.mdl haciendo click en el triángulo negro


ubicado en la parte superior de la Fig. B.7.

3. Tipear: save disnl2_x1, save disnl2_r, save disnl2_u en el el prompt


de MATLAB. Estos comandos almacenan los datos en los archivos tipo *.mat:
disnl2_x1.mat, disnl2_r.mat y disnl2_u.

4. Ejecutar nuevamente el archivo disnl2p.m para obtener la Fig. B.10

1
Posición (radianes)

0.5

−0.5

−1
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

2.5
Señal de control (voltios)

1.5

0.5

−0.5
0 2 4 6 8 10 12 14 16 18 20
Tiempo en segundos

Fig. B.10: Salida controlada y fuerza de control correspondiente.


Bibliografı́a

[1] Murray R. Spiegel, Mathematical handbook, Shaum’s Outline Series, McGraw-


Hill,Inc., 3ed Edition, New York et. al. 2008.

[2] W. F. Hughes and J. A. Brighton, Theory and Problems of Fluid Dynamics,


Shaum’s outline series, McGraw-Hill, 3ed edition, Inc., 1999.

[3] H. Goldstain, John L. Safko and Charles P. Poole Classical mechanics, 3ed.
Addison Wesley, 2001.

[4] James Curry, Hamiltonian and Lagrangian Mechanics. AuthorHouse, 2005.


ISBN-10: 1420858564. ISBN-13: 978-1420858563.

[5] Katsuhiko Ogata, Sistemas de Control en Tiempo Discreto. Prentice Hall His-
panoamericana S.A., México, segunda edición, 1996

[6] Murray R. Spiegel, Análisis Vectorial, serie de compendios Schaum, McGraw-


Hill México Panamá Bogotá y otras, 1973 (o ediciones más recientes).

[7] Murray R. Spiegel, Cálculo Superior, serie de compendios Schaum, McGraw-Hill


México Panamá Bogotá y otras, 1973 (o ediciones más recientes).

[8] Donald M. Wiberg, Espacio de Estado y Sistemas Lineales, serie de compendios


Schaum, McGraw-Hill México Panamá Bogotá y otras, 1973 (o ediciones más
recientes).

[9] Frank Ayres Jr., Matrices, serie de compendios Schaum, McGraw-Hill México
Panamá Bogotá y otras, 1973 (o ediciones más recientes).

[10] Alan V. Oppenheim y Alan S. Willsky, Señales y Sistemas Prentice-Hall His-


panoamericana, S.A., México-Englewood Cliffs-Londres-Sidney y otras, 1983.

[11] Murray R. Spiegel, Transformada de Laplace, serie de compendios Schaum,


McGraw-Hill México Panamá Bogotá y otras, 1973 (o ediciones más recientes).

[12] A. Rojas-Moreno, Design of Self-tuning Controllers for Processes Having Multi-


ple Unknown Time-varying Delays, Ph.D. Thesis, Utah State University, Logan,
UT, 1995.

[13] Katsuhiko Ogata, Modern Control Engineering (5th Edition), Prentice Hall,
2009.
300 BIBLIOGRAFÍA

[14] TecQuipment Ltd, TE37 Control and Instrumentation Study Station, User
Guide, 2009.

[15] J.G. Ziegler y N.B. Nichols, “Optimum Setting for Automatic Controllers”,
Transactions of the American Society Mechanical Engineering, Vol 64, pp. 759-
768, 1942.

[16] Richard C. Dorf y Robert H. Bishop, Sistemas de Control Moderno (10ma Edi-
ción), Pearson Prentice Hall, 2005.

[17] K.J. Åström y T. Hägglund, “PID Controllers: Theory, Design, and Tuning”.
Instrument Society of America, 1995.

[18] P. Harriot, Process Control, McGrawHill Book Co., 1964.

[19] K.L. Chien, J. A. Hrones, and J. B. Reswick, “On the automatic control of
generalized passive systems”, Trans. ASME, vol. 74, pp. 175-185, 1952.

[20] G. H. Cohen and G. A. Coon, “Theoretical consideration of retarded control,”


Trans. ASME, vol. 75, pp. 827-834, 1953.

[21] Erwin Samal, Grundriss der Praktischen Regelungstechnik (11. durchsehene Au-
flage, R. Oldenbourg Verlag Muenchen Wien 1980.

[22] A. M. Lopez, J. A. Miller, C. L. Smith, and P. W. Murrill, “Tuning controllers


with error-integral criteria,” Instrumentation Technology, vol. 14, pp. 57–62,
1967.

[23] A. Rovira, P. Murrill y C. Smith, “Tuning controllers for setpoint changes”.


Instruments and Control Systems, 42(12): 67–69, diciembre de 1969.

[24] F.S. Wang, W.S. Juang y C.T. Chan,“Optimal tuning of PID controllers for
single and cascade control loops”. Chemical Engineering Communications, Vol.
132, pp 15–34, 1995.

[25] C. Kessler, C., “Das symmetrische Optimum”, part 1, rt, No.11, pp. 395-400 and
part 2, rt, No.12, pp. 432-436, (1958)

[26] M. Zhuang y D. P. Atherton, “Automatic tuning of optimum PID controllers”,


IEE Proceedings–Part D: Control Theory and Applications, Vol. 140, No. 3, pp.
216–224, 1993.

[27] D. Xue, Y. Q. Chen y D. P. Atherton, Linear Feedback Control: Analysis and


Design with Matlab, SIAM, 2007.

[28] C.A. Smith y A.B. Corripio, Control Automático de Procesos, Limusa Noriega
Editores, 1996.

[29] A. O’Dwyer, Handbook of PI and PID Controller Tuning Rules, 3rd edition,
Imperial College Press, 2009.

[30] E. B. Dahlin, “Designing and Tuning Digital Controllers,” Instruments and Con-
trol Systems, V. 41 (June 1968), p. 77.
BIBLIOGRAFÍA 301

[31] National Instruments, NI Developer Suite: NI LabVIEW 8.5 and Device Drivers,
Third Quarter 2008.

[32] Eduardo F. Camacho y Carlos Bordons, Model Predictive Control, Springer-


Verlag London Limited, 2004.

[33] Alberto Isidori, Nonlinear Control Systems, 3ed, Springer-Verlag Berlin, 1995.

[34] A. Barrientos, L. F. Peñin, C. Balaguer, and R. Aracil, Fundamentos de Robótica,


2nd Edition, McGraw-Hill/Interamericana de España, S. A., Madrid, Buenos
aires, Caracas, and others, 2007.

[35] S. Kilicaslan, S.P. BanksLocalización, “A separation theorem for nonlinear sys-


tems”, A journal of IFAC, ISSN 0005-1098, Vol. 45, No . 4, pags. 928-935, 2009.

[36] M. G. Sofonov, Stability and Robustness of Multivariable Feedback Systems, The


MIT Press Cambridge, MA, and London, England, 1980.

[37] Jeffrey B. Burl , Linear Optimal Control, Prentice Hall, 1998.

[38] D. E. Koditschek, “Natural Motion for Robot Arms´´Proc. 23rd I.E.E.E. Conf.
on Decision and Control, Las Vegas, p. 733, 1984.

[39] Jean-Jacques E. Slotine and Weiping Li, Applied Nonlinear Control, Prentice
Hall, 2006, ISBN: 0130408905, ISBN-13: 9780130408907, 978-0130408907.

[40] Asif Sabanovic, Variable Structure Systems: From Principles to Implementation,


The Institution of Engineering and Technology; illustrated edition, 2004.

[41] E. Bailey and A. Arapostathis, “Simple sliding mode control scheme applied to
robot manipulators,” Int. J. Control, vol. 45, No. 4, p. 1197–1209, 1987.

[42] Lin, Y. and E.D. Sontag, Lin, Y. and E.D. Sontag, “A universal formula for
stabilization with bounded controls”, Report 90-10, SYCON-Rutgers Center for
Systems and Control, July 1990.

[43] Jie Yu, Ali Jadbabaie, James Primbs and Yun Huang, “Comparison of nonlinear
control design techniques on a model of the Caltech ducted fan”, Automatica
Volume 37, Issue 12, Pages 1971-1978 , December 2001.

[44] Fang-Shiung Chen and Jung-Shan Lin, “Nonlinear backstepping design of robot
manipulators with velocity estimation feedback,”5th Asian Control Conference,
July 2004, vol. 1, no. 6, pp 351–356. New Jersey 07632, 1989.

[45] M. Vidyasagar, Nonlinear Systems Analysis (Second Edition), Society for Indus-
trial and Applied Mathematics Philadelphia, PA, USA , 2001, ISBN:0898715261.

[46] Joseph La Salle and Solomon Lefschetz, Stability by Liapunov’s Direct Method
With Applications, Academic Press new York, London, 1961.

[47] National Instruments, NI Developer Suite: NI LabVIEW 8.5 and Device Drivers,
Third Quarter 2008.
Índice alfabético

Determinante, 151 Sistema estable e inestable, 168


de una matriz, 151 Sistema PLIT, 183
propiedades, 152 Solución de la ecuación de estado, 170
Discretización directa, 178
Transformada de Laplace
Ecuación caracterı́stica, 168 Fórmulas de, 142
Eigenvalor, 159 inversa, 140
Eigenvector, 159 Propiedades de la, 145
Estabilidad de sistemas, 183 unilateral, 138
Forma canónica Variables de estado, 163
controlable, 174
de Jordan, 176
diagonal, 175
observable, 175
Formas canónicas, 174
Fracciones parciales, 142

Linealización de sistemas, 183

Matrices, 148
diagonalización de, 162
multiplicación de, 148
similares, 162
Matriz
de transferencia, 167
diagonal, 150
eigenvalor de una, 159
identidad, 150
pseudoinversa de una, 160
rango de una, 157
traza de una, 150
triangular inferior, 150
triangular superior, 150

Parámetros, variables y sı́mbolos


del sistema Tanque con Agua, 27
Procesos con tiempo muerto, 181
Puntos singulares en PLITs, 168

Sistema causal, 137

También podría gustarte