Sunteți pe pagina 1din 526

Antonio Creus Solé

Simulación
y control
de procesos
por ordenador 2ª edición

Incluye CD ediciones técnicas


Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina i

Simulación
y control de procesos
por ordenador
2ª edición

i
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina iii

Antonio Creus

Simulación
y control de procesos
por ordenador
2ª edición
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina iv

Título: Simulación y control de procesos por ordenador - 2ª edición

Autor:
© Antonio Creus

Editoriales:
© MARCOMBO, EDICIONES TÉCNICAS 2007
MARCOMBO, S.A.
Gran Via de les Corts Catalanes 594
08007 Barcelona (España)

en coedición con:
© ALFAOMEGA GRUPO EDITOR, S.A. 2007
C/ Pitágoras 1139
Colonia del Valle - 03100
México D.F. (México)

Quedan rigurosamente prohibidas, sin la autorización escrita de los titulares del copyright, bajo las
sanciones establecidas en las leyes, la reproducción total o parcial de esta obra por cualquier medio
o procedimiento, incluidos la reprografía y el tratamiento informático, así como la distribución de
ejemplares mediante alquiler o préstamo públicos.

ISBN (por MARCOMBO): 978-84-267-1422-0


ISBN (por ALFAOMEGA GRUPO EDITOR): 978-970-15-1308-8

Impreso en Gráficas Díaz Tudurí


D.L.: BI-
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina v

Agradecimientos

Este libro es una actualización de la obra que fue publicada con el mismo título en el
año 1987. Gracias a la experiencia industrial adquirida durante 28 años en contacto con
fábricas en puestas en marcha y mantenimiento se tiene una visión directa de las dife-
rentes formas con que un proceso reacciona ante perturbaciones o simplemente en el
cambio de un punto de consigna. Esta visión permite comprobar inmediatamente si los
resultados del programa de simulación son fantasías o se aproximan a la realidad.
Esta experiencia debo agradecerla a las empresas CERESTAR y HONEYWELL duran-
te los 25 años de trabajo como responsable de control y automatismos primero 8 años
en CERESTAR viviendo todo un proyecto de construcción, puesta en marcha y mante-
nimiento de una planta industrial y después como delegado de ventas en HONEY-
WELL, visitando multitud de empresas y viviendo una gran variedad de procesos.
Debo agradecer también a la Universitat Politécnica de Catalunya (U.P.C.) los medios
tanto de información como de ayuda de los que he podido disponer en la actualización
del libro, en particular en lo referente a la informática de simulación.
Asimismo en el libro original del año 1987 utilicé un ordenador Commodore y necesi-
taba varios minutos para tener un punto de la curva de simulación en el caso de una
columna de destilación. El BASIC que entonces utilicé ha pasado al Visual Basic de
EXCEL con una programación orientada a objetos totalmente diferente. En este sentido
debo agradecer a Enrique Alvarez (Quique) su ayuda para aprender de nuevo a pro-
gramar en un lenguaje parecido pero totalmente diferente al BASIC inicial del año 1987.
Agradezco a mi mujer Carmen y a mi hija Ariadna su ayuda, su paciencia y su com-
prensión por el tiempo que he dejado de dedicarles a lo largo de las muchas horas
empleadas en escribir este libro.

v
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina vi
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina vii

Prólogo

El autor ha empleado en la confección de este libro un ordenador personal TOSHIBA


Quosmio G20 con EXCEL y el lenguaje VBA incorporado, el programa PAINT para la
captura de imágenes, el programa PHOTOSHOP para los cambios de tamaño del lien-
zo y de la propia imagen y Microsoft Work para el texto. Las consultas a Internet han
sido muy fructíferas para actualizar los conocimientos sobre simulación.
El libro contiene una serie de programas escritos en el lenguaje Visual Basic de EXCEL,
escogido por ser el de más amplia difusión. En los programas se incluyen algunas acla-
raciones de las sentencias para que sean más fácilmente comprendidos por las perso-
nas que no han tenido experiencia previa en programación.
El objetivo del libro es iniciar al lector en la simulación y el control de Procesos bajo dos
puntos de vista: el del control mediante ecuaciones diferenciales y el del control exami-
nado mediante ecuaciones de estado.
En el primero, una vez asimilados los capítulos preliminares, se examinan, los contro-
ladores PID (proporcional + integra+l derivativo) actuando en realimentación o según
otros tipos de control y aplicados a procesos simples como la presión y el caudal en una
tubería, el nivel en un tanque y la temperatura en un intercambiador de calor.
En la segunda parte se examinan las técnicas modernas de control, utilizando las ecua-
ciones de estado, que como verá el lector, son una potente herramienta para el estudio,
no ya de los procesos industriales sino de cualesquiera fenómenos que puedan trasla-
darse al espacio de estado. Los procesos estudiados se han simplificado en lo posible,
conservando sus características propias y obteniéndose así una expresión matemática
función de sus parámetros. De este modo, la ejecución de los programas implica, auto-
máticamente, la demanda de dichos parámetros por parte del ordenador, con la consi-
guiente elección por el lector de cualesquiera valores que posibilitan un fácil cambio en
las características del proceso. De este modo, se dispone de una gran versatilidad en el
estudio y en el entrenamiento del control de procesos.
El libro está dirigido al jefe u operador de proceso, a ingenierías de proceso, al estu-
diante y a personas relacionadas directa o indirectamente con los procesos industriales.
La obra consta de quince capítulos y un Apéndice.
En el primer capítulo se examinan los conceptos de interés en el estudio analítico del
control de procesos.
En el segundo capítulo se estudian ejemplos de aplicación basándose en el estudio
dinámico de la transmitancia y usando las transformadas de Laplace.

vii
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina viii

En el tercer capítulo se realiza el análisis temporal con las respuestas ante un impulso
y ante un escalón de los sistemas de primero y de segundo orden.
En el capítulo cuarto se estudia la descomposición de los elementos del proceso en blo-
ques, con el fin de obtener un bloque resultante que posibilite el estudio del comporta-
miento global del sistema.
El análisis frecuencial figura en el quinto capítulo estudiándose la respuesta de los sis-
temas de primero y de segundo orden y de los controladores.
Los diversos criterios de estabilidad absoluta y relativa se encuentran en el capítulo
sexto.
En el capítulo séptimo se analiza la estabilidad de un bucle o lazo de control con la
obtención del valor de las acciones del controlador mediante la respuesta frecuencial
de los elementos del proceso.
En el capítulo octavo se estudia el análisis e identificación de procesos.
En el capítulo noveno se analizan los métodos prácticos de ajuste de las acciones del
controlador para lograr la estabilidad del sistema y se incluyen programas de simula-
ción y control de un intercambiador de calor, de la presión y caudal en una tubería y
del nivel de un tanque, que permiten la aplicación de dichos métodos a los procesos
simples simulados.
El capítulo décimo trata de las válvulas de control, de sus características de selección,
y de su cálculo, incluyéndose el programa correspondiente.
El capítulo undécimo describe varios tipos de control de aplicación en la industria que
complementan y mejoran el clásico control de realimentación.
La segunda parte se inicia en el capítulo duodécimo con la transformada Z que en sín-
tesis es análoga a la transformada de Laplace pero aplicada a sistemas discretos.
En el capítulo decimotercero se estudia el espacio de estado. Esta es la parte más impor-
tante de la obra, por presentar la forma de obtener las ecuaciones que definen el esta-
do de un proceso. Su comprensión es esencial, puesto que si es bien asimilada, permi-
tirá al lector la simulación de un proceso industrial por complicado que sea y con la
profundidad que desee; sólo estará limitado por el tiempo disponible para la creación
del programa, o por el conocimiento suficiente del proceso, o por la memoria o la rapi-
dez de ejecución del ordenador que utilice.
El capítulo decimocuarto examina las técnicas de estabilidad de Liapunov y los siste-
mas óptimos de control.
El capítulo decimoquinto estudia la simulación y control de procesos típicos en la
industria, tales como el secadero flash, el secadero rotativo, el secadero túnel, el evapo-
rador de triple efecto, el reactor discontinuo y la columna de destilación. Esta última es
controlada en retroalimentación, en control anticipativo (feedforward) y según el con-
trol digital directo (DDC).

viii
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina ix

Un Apéndice dedicado al código de representación de los instrumentos de control en


los diagramas de flujo y a una exposición resumida sobre las técnicas utilizadas en el
texto de integración, resolución númerica, linealización, métodos de convergencia y
operaciones con matrices típicas de los programas de simulación de procesos, comple-
tan la obra. También se incluye en esta parte la resolución de los problemas propues-
tos, referencias y un pequeño glosario de los términos empleados en control y en len-
guaje VBA (Visual Basic).
Se acompaña el libro con un CD en que hay grabados los programas de la obra en len-
guaje VBA de EXCEL. Los programas no están compilados sino abiertos de modo que
el lector puede ampliarlos o modificarlos de la forma que desee.

ix
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina x
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xi

ÍNDICE

PRIMERA PARTE - TÉCNICAS CLÁSICAS DE CONTROL

Capítulo 1. Introducción
1.1 Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Servomecanismos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Sistemas de control en anillo abierto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Sistemas de control en anillo cerrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Función de transferencia o transmitancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Capítulo 2. Estudio dinámico de la transmitancia


2.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Transformada de Laplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Transmitancias de sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Resistencia eléctrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2 Bobina eléctrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.3 Condensador eléctrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.4 Pistón hidraúlico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.5 Nivel de un tanque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.6 Sistema térmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.7 Sistema manométrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.8 Oscilación amortiguada de un muelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.9 Reactor encamisado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.10 Válvula de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.11 Batería de dos reactores perfectamente agitados . . . . . . . . . . . . . . . . . . . . . . 26
2.4 Propiedades adicionales de la transformada de Laplace . . . . . . . . . . . . . . . . . 27
2.4.1 Teorema del valor inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.2 Teorema del valor final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4.3 Teorema del retardo puro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Capítulo 3. Análisis temporal


3.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Funciones elementales de excitación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Escalón unidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 Impulso unidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.3 Rampa unidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.4 Función parabólica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.5 Función senoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Respuesta impu1sional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Respuesta indicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5 Respuesta ante una entrada en rampa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.6 Análisis temporal de los sistemas de primer orden . . . . . . . . . . . . . . . . . . . . . 34

xi
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xii

Simulación y control de procesos por ordenador

3.7 Análisis temporal de los sistemas de segundo orden . . . . . . . . . . . . . . . . . . . 40


Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Capítulo 4. Diagramas de bloques


4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 Bloques en serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3 Bloques en paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4 Bloques en retroalimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5 Bloques en cadenas cruzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Capítulo5. Análisis frecuencial


5.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.2 Representación de la ganancia y del desfase y aplicación a una función
de transferencia de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.1 Plano de Bode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.2 Plano polar o de Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2.3 Plano de Black . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 Representación de la respuesta frecuencial de la función de retardo y = e-Ts 76
5.4 Respuesta frecuencial de una transmitancia de segundo orden . . . . . . . . . . . 79
5.4.1 Plano de Bode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4.2 Plano polar o de Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.5 Análisis frecuencial de transmitancias compuestas . . . . . . . . . . . . . . . . . . . . . 90
5.6 Respuesta frecuencial de los controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.6.1 Control proporcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.6.2 Control proporcional + integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.6.3 Control proporcional+derivado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.6.4 Control proporcional + integral + derivado . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.6.5 Control PID en el diagrama de Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.7 Consideraciones de aplicación de las acciones de control . . . . . . . . . . . . . . . 131
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

Capítulo 6. Estabilidad
6.1 Estabilidad absoluta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.1.1 Criterio de raíces de la ecuación característica . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.1.2 Criterio de Routh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.1.3 Criterio de Hurwitz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.1.4 Criterio de fracciones continuas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.1.5 Criterio de Bode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.1.6 Criterio de Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.1.7 Criterio del lugar geométrico de raíces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.2 Estabilidad relativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.2.1 Criterio de Bode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.2.2 Estudio del lazo cerrado de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Ejercicios ........................................................ 157

xii
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xiii

Índice general

Capítulo 7. Análisis y evaluación de un lazo de control


7.1 Método analítico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.1.1 Análisis de la estabilidad en modo manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.1.2 Análisis de la estabilidad mediante el ordenador . . . . . . . . . . . . . . . . . . . . . . . . 167

Capítulo 8. Análisis e identificación de procesos


8.1 Respuesta indicial ante una entrada en escalón . . . . . . . . . . . . . . . . . . . . . . 176
8.2 Respuesta frecuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.2.1 Razóm de amortiguamiento a partir de los picos de resonancia . . . . . . . . . . . . 180
8.3 Respuesta impulsional ......................................... 181
8.4 Respuesta impulsional de realimentación de relé . . . . . . . . . . . . . . . . . . . . . . 183
8.5 Método de control P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
8.6 Parámetros del modelo del proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Capítulo 9. Selección y ajuste de las acciones de control


9.1 Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.2 Método de tanteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.3 Sintonización en lazo cerrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.3.1 Método de ganancia límite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.4 Sintonización en lazo abierto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.4.1 Método de curva de respuesta de Ziegler &Nichols . . . . . . . . . . . . . . . . . . . . . . 191
9.4.2 Método de la curva de reacción de Cohen-Coon . . . . . . . . . . . . . . . . . . . . . . . 192
9.5 Métodos de ajuste de reducción del error . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.6 Método de autoajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.7 Otros métodos de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.8 Simulación y control de procesos simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

Capítulo 10. Elementos finales de control


10.1 Válvulas de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
10.1.1 Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
10.2 Curvas características de la válvula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
10.2.1 Características de caudal inherentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
10.2.2 Características de caudal efectivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.3 Cálculo de la válvula de control. Coeficientes Cv, Kv, Kc y Cf. Líquidos . . . . . 231
10.4 Cálculo de la válvula de control para gases . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.5 Cálculo de la válvula de control para vapores . . . . . . . . . . . . . . . . . . . . . . . . 235
10.6 Ejemplos de cálculo de válvulas de control . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

Capítulo 11. Otros tipos de control


11.1 Control en cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.2 Control de relación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.3 Control de gama partida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.4 Control selectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.5 Control anticipativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

xiii
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xiv

Simulación y control de procesos por ordenador

11.6 Control de procesos discontinuos (batch) . . . . . . . . . . . . . . . . . . . . . . . . . . . 263


11.7 Control adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
11.8 Control distribuido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

SEGUNDA PARTE - TECNICAS ACTUALES

Capítulo 12. Transformada Z


12.1 Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
12.2 Transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
12.3 Respuesta impu1sional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
12.4 Respuesta indicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
12.5 Teoremas del valor inicial y final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
12.6 Funciones de transferencia de pulsos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
12.6.1 Inversión de la transformada z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
12.6.2 Función de transferencia de pulsos en lazo cerrado . . . . . . . . . . . . . . . . . . . 278
12.7 Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
12.8 Ecuación del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

Capítulo 13. Ecuación de estado


13.1 Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
13.2 Ejercicios de formulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
13.3 Resolución de la ecuación de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
13.3.1 Resolución manual de un ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
13.3.2 Resolución con el ordenador del control de presión en una tubería . . . . . . . . 300
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

Capítulo 14. Estabilidad y sistemas de control


14.1 Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
14.2 Técnicas de Liapunov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
14.3 Correctores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
14.4 Control robusto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
14.5 Control linealizador global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
14.6 Control estadístico del proceso (SPC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
14.7 Control multivariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
14.8 Sistemas óptimos de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
14.9 Sistemas de control adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
14.10 Control predictivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
14.11 Sistemas expertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
14.12 Control por redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
14.13 Control por lógica difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
14.14 Resumen y conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

xiv
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xv

Índice general

Capítulo 15. Simulación de procesos


15.1 Secadero tipo «flash» o de evaporación rápida . . . . . . . . . . . . . . . . . . . . . . . 345
15.2 Secadero rotativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
15.3 Secadero túnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
15.4 Evaporador de triple efecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
15.5 Reactor discontinuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
15.6 Columna de destilación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

Apéndice - 1
A.1 Código de identificación de instrumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
A.2 Métodos numéricos en simulación digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
A.2.1 Integración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
A.2.2 Resolución numérica de una ecuación diferencial . . . . . . . . . . . . . . . . . . . . . . . 454
A.2.3 Linealización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
A.2.4 Métodos de convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
A.2.5 Operaciones con matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
A.3. Lenguaje Visual Basic de EXCEL (VBA – Visual Basic for Applications) . . . . . . 461
A.4 Resolución de los problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466

Apéndice - 2
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Instrucciones de uso del CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

El autor ha empleado en la confección de este libro un ordenador personal TOSHIBA Quosmio


G20 con EXCEL y el lenguaje VBA incorporado, el programa PAINT para la captura de imágenes,
el programa PHOTOSHOP para los cambios de tamaño del lienzo y de la propia imagen y Mi-
crosoft Work para el texto. Las consultas a Internet han sido muy fructíferas para actualizar los
conocimientos sobre simulación.
El libro contiene una serie de programas escritos en el lenguaje Visual Basic de EXCEL, esco-
gido por ser el de más amplia difusión. En los programas se incluyen algunas aclaraciones de las
sentencias para que sean más fácilmente comprendidos por las personas que no han tenido
experiencia previa en programación.
El objetivo del libro es iniciar al lector en la simulación y el control de Procesos bajo dos pun-
tos de vista: el del control mediante ecuaciones diferenciales y el del control examinado median-
te ecuaciones de estado.
En el primero, una vez asimilados los capítulos preliminares, se examinan, los controladores
PID (proporcional + integra+l derivativo) actuando en realimentación o según otros tipos de
control y aplicados a procesos simples como la presión y el caudal en una tubería, el nivel en un
tanque y la temperatura en un intercambiador de calor.

xv
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xvi

En la segunda parte se examinan las técnicas modernas de control, utilizando las ecuaciones
de estado, que como verá el lector, son una potente herramienta para el estudio, no ya de los
procesos industriales sino de cualesquiera fenómenos que puedan trasladarse al espacio de esta-
do. Los procesos estudiados se han simplificado en lo posible, conservando sus características
propias y obteniéndose así una expresión matemática función de sus parámetros. De este
modo, la ejecución de los programas implica, automáticamente, la demanda de dichos paráme-
tros por parte del ordenador, con la consiguiente elección por el lector de cualesquiera valores
que posibilitan un fácil cambio en las características del proceso. De esta forma, se dispone de
una gran versatilidad en el estudio y en el entrenamiento del control de procesos.
El libro está dirigido al jefe u operador de proceso, a ingenierías de proceso, al estudiante y a
personas relacionadas directa o indirectamente con los procesos industriales.
La obra consta de quince capítulos y un Apéndice.
PRIMERA PARTE: En el primer capítulo se examinan los conceptos de interés en el estudio analí-
tico del control de procesos.
En el segundo capítulo se estudian ejemplos de aplicación basándose en el estudio dinámi-
co de la transmitancia y usando las transformadas de Laplace.
En el tercer capítulo se realiza el análisis temporal con las respuestas ante un impulso y ante
un escalón de los sistemas de primero y de segundo orden.
En el capítulo cuarto se estudia la descomposición de los elementos del proceso en bloques,
con el fin de obtener un bloque resultante que posibilite el estudio del comportamiento global
del sistema.
El análisis frecuencial figura en el quinto capítulo estudiándose la respuesta de los sistemas de
primero y de segundo orden y de los controladores.
Los diversos criterios de estabilidad absoluta y relativa se encuentran en el capítulo sexto.
En el capítulo séptimo se analiza la estabilidad de un bucle o lazo de control con la obten-
ción del valor de las acciones del controlador mediante la respuesta frecuencial de los elemen-
tos del proceso.
En el capítulo octavo se estudia el análisis e identificación de procesos.
En el capítulo noveno se analizan los métodos prácticos de ajuste de las acciones del contro-
lador para lograr la estabilidad del sistema y se incluyen programas de simulación y control de
un intercambiador de calor, de la presión y caudal en una tubería y del nivel de un tanque, que
permiten la aplicación de dichos métodos a los procesos simples simulados.
El capítulo décimo trata de las válvulas de control, de sus características de selección, y de su
cálculo, incluyéndose el programa correspondiente.
El capítulo undécimo describe varios tipos de control de aplicación en la industria que com-
plementan y mejoran el clásico control de realimentación.
La SEGUNDA PARTE se inicia en el capítulo duodécimo con la transformada Z que en síntesis es
análoga a la transformada de Laplace pero aplicada a sistemas discretos.
En el capítulo decimotercero se estudia el espacio de estado. Esta es la parte más importan-
te de la obra, por presentar la forma de obtener las ecuaciones que definen el estado de un pro-

xvi
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xvii

ceso. Su comprensión es esencial, puesto que si es bien asimilada, permitirá al lector la simula-
ción de un proceso industrial por complicado que sea y con la profundidad que desee; sólo esta-
rá limitado por el tiempo disponible para la creación del programa, o por el conocimiento sufi-
ciente del proceso, o por la memoria o la rapidez de ejecución del ordenador que utilice.
El capítulo decimocuarto examina las técnicas de estabilidad de Liapunov y los sistemas ópti-
mos de control.
El capítulo decimoquinto estudia la simulación y control de procesos típicos en la industria,
tales como el secadero flash, el secadero rotativo, el secadero túnel, el evaporador de triple efec-
to, el reactor discontinuo y la columna de destilación. Esta última es controlada en retroalimen-
tación, en control anticipativo (feedforward) y según el control digital directo (DDC).
Un Apéndice dedicado al código de representación de los instrumentos de control en los dia-
gramas de flujo y a una exposición resumida sobre las técnicas utilizadas en el texto de integra-
ción, resolución númerica, linealización, métodos de convergencia y operaciones con matrices
típicas de los programas de simulación de procesos, completan la obra. También se incluye en
esta parte la resolución de los problemas propuestos, referencias y un pequeño glosario de los
términos empleados en control y en lenguaje VBA (Visual Basic).
Se acompaña el libro con un CD en que hay grabados los programas de la obra en lenguaje
VBA de EXCEL. Los programas no están compilados sino abiertos de modo que el lector puede
ampliarlos o modificarlos de la forma que desee.

xvii
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xviii
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 1

Primera parte

Técnicas clásicas
de control
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 2
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 3

Capítulo 1

Introducción

1.1 Generalidades
Todo proceso industrial es controlado básicamente por tres tipos de elementos: el trans-
misor (TI), el controlador (TIC o TRC) y la válvula o elemento final de control, según
puede verse en la figura 1.1.
El lector encontrará en el Apéndice, el significado de la simbología con que se identifi-
can los instrumentos.
La figura 1.1 corresponde al típico intercambiador de calor, en el que un fluido de cale-
facción (vapor) calienta un producto de entrada hasta una temperatura en la salida que
es transmitida por TT y controlada e indicada por TIC (o controlada y registrada por
TRC) a través de una válvula de control V. Esta deja pasar el vapor de calefacción sufi-
ciente para mantener la temperatura del fluido caliente en un valor deseado o punto de
consigna que es prefijado en el controlador TIC o TRC.

Fig. 1.1 Proceso industrial típico

La combinación de los componentes transmisor-controlador-válvula de control-proce-


so, que actúan conjuntamente, recibe el nombre de sistema y cumple el objetivo de
mantener una temperatura constante en el fluido caliente de salida del intercambiador.
Cada uno de los componentes anteriores considerados aisladamente es también un sis-
tema, puesto que cada uno cumple un objetivo determinado. Por ejemplo, el transmi-
sor convierte los valores de la temperatura en señales neumáticas, electrónicas o digi-
tales; el controlador mantiene la señal de entrada constante para cada punto de
consigna o valor deseado fijado por el operador, mediante la variación de la señal de
salida a la válvula de control; la válvula de control convierte la señal de entrada neu-
mática, electrónica o digital a posición de su vástago y, por tanto, gobierna el caudal de
vapor con que alimenta el serpentín del intercambiador de calor; el proceso cumple el

3
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 4

Simulación y control de procesos por ordenador

objetivo de calentar el fluido caliente de salida, mediante el vapor de entrada, y lo hace


a través de un serpentín, del que se elimina continuamente el condensado con un pur-
gador. Nótese que en cada uno de los sistemas anteriores se ha considerado una entra-
da y una salida; por ejemplo, en el caso de la válvula de control, la entrada es la señal
procedente del controlador y la salida es el caudal de vapor al serpentín; y en el caso
del proceso, la entrada es el caudal de vapor que pasa a través de la válvula y la salida
es la temperatura del fluido caliente.
Estos sistemas se representan mediante un rectángulo llamado bloque, con la variable
o variables de entrada constituidas por flechas que entran en el rectángulo, y la varia-
ble o variables de salida representadas por flechas que salen del rectángulo. De este
modo, el sistema de la figura 1.1 quedaría representado según se ve en la figura 1.2.
La señal «perturbaciones» en el bloque del proceso se refiere a las variables que –apar-
te del caudal del vapor de agua– pueden afectar al proceso; por ejemplo, el mal funcio-
namiento del purgador de vapor, las variaciones de caudal o de temperatura del fluido
de entrada, los cambios de temperatura exteriores al intercambiador, el posible recubri-
miento, con el tiempo, de la pared del serpentín que está en contacto con el fluido, con
la consiguiente alteración en la transmisión del calor de condensación del vapor, las
variaciones de presión del vapor producidas por el consumo variable de vapor en los
sistemas próximos al considerado, o por otras causas, etc.

Fig.1.2 Diagrama de bloques de un proceso industrial típico

El sistema de control anterior pertenece a los denominados servosistemas. En su signi-


ficado más amplio, el servosistema responde a un sistema de mando y control automá-
tico de aparatos basado en la anulación de las desviaciones que existan entre el valor
instantáneo de la magnitud a regular y el valor prescrito para la misma.
Un caso particular de los servosistemas son los controladores o reguladores; en ellos, la
respuesta o señal de salida tiende fundamentalmente a contrarrestar las perturbaciones
que afectan a la variable o magnitud de entrada. Este es el caso del TIC o TRC de la
figura 1.1. En estos aparatos, la magnitud de entrada se fija en un valor constante (que

4
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 5

Introducción

es el punto de consigna del controlador) o en un valor variable con el tiempo según una
ley programada (se trata entonces de controladores programadores). Otro caso particu-
lar son los servomecanismos.

1.2 Servomecanismos
El servomecanismo es un servosistema, o sistema de control, que mantiene una igual-
dad entre la señal de entrada y la señal de salida, con independencia de las variaciones
de la entrada en función del tiempo. La magnitud de salida se expresa generalmente por
el movimiento de un mecanismo mecánico, mientras que la variable de entrada puede
variar ampliamente siguiendo o no un programa dado. El servomecanismo puede fijar
en el espacio un órgano móvil en función de la posición de otro (por ejemplo, las rue-
das delanteras de un automóvil en función de la posición del volante de la dirección).
Se diferencia, pues, del control automático industrial en que su señal de salida sigue a
la de entrada y ésta varía ampliamente, mientras que en aquél se mantiene constante la
señal de entrada con independencia de las perturbaciones exteriores. En la figura 1.3
pueden verse varios ejemplos típicos de servomecanismos.

Fig. 1.3 Ejemplos de servomecanismos

1.3 Sistemas de control en lazo abierto


En el ejemplo anterior del intercambiador de calor de la figura 1.1, si se pasa el contro-
lador TIC o TRC (ver en el Apéndice el código correspondiente) a manual, el operador
podrá gobernar directamente la válvula de control accionando la rueda correspondien-
te del instrumento controlador TIC o TRC, y verá en este aparato la temperatura con-
seguida obtenida del transmisor TT. En el caso de que el operario se limite a accionar
la válvula y comprobar la temperatura conseguida, sin realizar ninguna otra operación,
tal como puede verse en la figura 1.4a, se dice que el sistema de control con que traba-
ja el operario es en lazo abierto, ya que la señal de salida del controlador queda inte-
rrumpida y deja de cerrarse el lazo de control.

5
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 6

Simulación y control de procesos por ordenador

1.4 Sistemas de control en lazo cerrado


En cambio, si el operador desea mantener una temperatura constante, efectuará en
cada instante una comparación entre la temperatura que nota, o que ve en el instru-
mento TIC (fig. 1.4b) con la que desea (llamada punto de consigna) y, de acuerdo con
la diferencia o error, calculará la posición que debe dar a la válvula. Como pasa cierto
tiempo desde que los efectos de corrección de la válvula se notan en la temperatura de
salida, es claro que el operador tardará en apreciar estos cambios y, sólo entonces podrá
saber si su corrección ha sido o no la adecuada. En este punto efectuará una segunda
corrección que al cabo de algún tiempo dará lugar a otro cambio en la temperatura. Si
ésta todavía no es la adecuada, el operador efectuará una tercera y así sucesivamente.

Fig. 1.4 Ejemplos de diagramas de bloques

Esta serie de operaciones de comparación, cálculo y corrección que ha realizado el ope-


rario, las efectúan los instrumentos de control de forma automática, mediante el trans-
misor (TT), el comparador y el controlador (TIC o TRC) y la válvula de control. Las
señales correspondientes circulan por un circuito cerrado llamado bucle, lazo o lazo
cerrado de control.
Para que el lector comprenda estos dos tipos de control, se representan en la figura 1.5
varios tipos de control en lazo abierto y en lazo cerrado que se encuentran típicamente
en la industria y en la vida real.

6
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 7

Introducción

Fig. 1.5 Controles en lazo abierto y en lazo cerrado

1.5 Función de transferencia o transmitancia


Al examinar la figura 1.2, se plantea inmediatamente la posible relación existente entre
las variables de entrada y las de salida. Al cociente entre las expresiones matemáticas
de las variables de salida y de entrada en función del tiempo se le denomina función
de transferencia o transmitancia y se representa por el símbolo W(p) o W(s).
a) Transmitancia de una palanca con una relación de brazos de 2 a 1 (figura 1.6a). Si
la señal de entrada es x Kg y la señal de salida es y Kg y la palanca está en equili-
brio, se verifica:
2 * y = 1* x
Luego:
tan cia = W = y / x = 1 / 2
Transmitancia
Transmi
b) Transmitancia de una válvula de control (figura 1.6b), en la que suponemos que
existe una relación lineal entre la señal neumática de entrada x(t) y el desplaza-
miento del vástago y(t), y entre el movimiento del vástago y(t) y el caudal de sali-
da q(t), gracias a la forma del obturador.

Despreciando la histéresis mecánica y el retardo dinámico producidos por los


rozamientos entre el vástago y la estopada, por la fuerza que ejerce el fluido sobre
el obturador, y por la aceleración de la masa móvil servomotor-vástago-obturador,
resultan como ecuaciones del equilibrio estático del conjunto:

x (t ) * Ss = c * y (t )
q (t ) = k * y (t )

Con: c = constante elástica del resorte;


K = constante de proporcionalidad de la válvula (se considera lineal).

7
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 8

Simulación y control de procesos por ordenador

q (t ) s * k
Luego: W = Transmi tan cia =
Transmitancia =
x (t ) c
c) Transmitancia de una resistencia eléctrica (figura 1.6c). Considerando la señal de
entrada v(t) resulta:
v (t ) = i (t ) * R
i (t ) 1
Transmitancia
W = Transmi tan cia = =
v(t ) R

v (t )
Y si la entrada fuera i(t) resultaría: W = Transmi tan cia =
Transmitancia =R
i (t )
d) Transmitancia de un resorte (figura 1.6d) al que se comprime con una fuerza F(t) y
que posee una constante elástica c. Se desprecia la masa del resorte.

F ( t ) = c * y (t )

Transmitancia
y (t ) 1
W = Transmi tan cia = =
Fi (t ) c

Es importante que el lector comprenda y asimile perfectamente el concepto de transmi-


tancia. Para que le sea más fácil su comprensión, podríamos generalizarlo a todos los
órdenes de la vida, siempre que, naturalmente, las variables implicadas sean suscepti-
bles de ser expresadas matemáticamente. Y así, por ejemplo, tendríamos:
- Transmitancia de un automóvil donde la señal de entrada es la posición del pedal
del acelerador y la señal de salida es la velocidad instantánea alcanzada (figura
1.6e). Ésta dependería de la masa del coche, de la pendiente y del estado de la
carretera, de la velocidad del viento y de su dirección frontal, lateral o posterior,
del rendimiento del motor y de la transmisión, de la forma aerodinámica del ve-
hículo, etc. Evidentemente, existiría una relación entre las variables de entrada y
de salida, aunque fuera bastante complicada.
Análogamente, podríamos considerar la transmitancia de un barco y de un avión
(figura 1.6f y 1.6g).
- Transmitancia de una persona en posición erecta a la que se empuja frontalmente
(figura 1.6h). Podemos considerar como señal de entrada la fuerza f y como señal
de salida el desplazamiento x que realiza para no caer. La transmitancia depende-
rá del lugar de aplicación de la fuerza, del peso de la persona, de sus reflejos, de la
base de sustentación, etc.
- Transmitancia de una rueda con neumático (figura 1.6i). La señal de entrada es la
fuerza vertical f(t) sobre el eje de la rueda, y la salida es la deformación x(t) de la
misma. La transmitancia dependerá del estado de la superficie, del movimiento

8
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 9

Introducción

continuo o acelerado de la rueda, de la presión interna del neumático, del estado


de la cubierta, etc.

Fig. 1.6 Ejemplos sencillos de transmitancias

En la figura 1.7 pueden verse varios ejemplos de aplicación de transmitancias en la


industria química.

9
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 10

Simulación y control de procesos por ordenador

Fig. 1.7 Ejemplos de transmitancias en la industria química

10
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 11

Introducción

Ejercicios

1.1 Dibujar el flujo de señales de un sistema que controla el rumbo de un velero que
navega con una deriva constante respecto al viento.
1.2 Dibujar la circulación de señales que tiene lugar al coger un objeto con la mano.
1.3 Indicar si el mantenimiento de la velocidad de un automóvil en una autopista a
menos de 120 km/h, que es la velocidad máxima autorizada, se realiza por parte
del conductor mediante un control en lazo abierto o cerrado.
1.4 ¿Qué clase de control (lazo abierto o cerrado) efectúa un jugador al ejecutar una
falta de penalty para lograr el gol?
1.5 Una canoa automóvil sin gobierno, ¿trabaja en lazo abierto o en lazo cerrado?
1.6 Dígase si es un servomecanismo o es un servosistema la posición que adopta el
timón de una canoa automóvil al ser accionado el volante anterior.
1.7 ¿Qué tipo de control (en lazo abierto o en lazo cerrado) forma un reloj acciona-
do por pesas?
1.8 Dibujar el diagrama de bloques de un submarino que navega a una profundidad
controlada constante.
1.9 Determinar la transmitancia del mecanismo de la figura. (Se trata de una bicicle-
ta y se considera que la señal de entrada es la fuerza f de pedaleo del ciclista y la
señal de salida es la fuerza F de desplazamiento de la rueda).

1.10 Dibujar el diagrama de bloques de la circulación de señales que tiene lugar cuan-
do un ciclista se inclina para tomar correctamente una curva.
1.11 Dígase la forma con que trabaja (lazo abierto o lazo cerrado) un calentador eléc-
trico cuyo termostato está averiado, habiendo quedado en la avería en la posi-
ción de «conectado».
1.12 El operador de un proceso que sitúa un controlador en la posición «manual»,
¿con qué tipo de lazo trabaja (abierto o cerrado)?
1.13 El operador de un proceso que acciona un controlador en la posición «automáti-
co», ¿con qué tipo de lazo trabaja (abierto o cerrado)?

11
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 12
Simulaci n y control_02.qxp 31/07/2007 15:59 PÆgina 13

Capítulo 2

Estudio dinámico
de la transmitancia

2.1 Introducción
En el capítulo 1 se ha estudiado el concepto de transmitancia, habiéndose aplicado a
ejemplos sencillos, tanto en dispositivos generales (palanca, válvula de control, resis-
tencia eléctrica,...) como en elementos de la industria química (intercambiador de calor,
tanque, caldera de vapor,…), y en algunos de estos ejemplos se ha determinado la
transmitancia de forma simplificada. El estudio que se ha realizado es preliminar y ha
tenido por objeto empezar a familiarizar al lector con las múltiples variedades de trans-
mitancias que pueden existir desde el punto de vista estático para que, una vez bien
entendida su esencia, pueda seguir y estudiar las transmitancias en régimen dinámico,
es decir, las que tienen en cuenta el tiempo.
Sentadas estas bases, la determinación de la transmitancia deja de ser tan sencilla como
la estudiada hasta ahora. En un caso general, las señales de entrada y salida a la trans-
mitancia se expresarán mediante ecuaciones diferenciales lineales, es decir, formadas
por la suma de términos de primer grado con relación a las variables independientes.

d nx d n −1 x dmy d m −1 y
a0 n
+ a1 n −1 + ... + an x = b0 m + b1 m −1 + ... + bm y (1)
dt dt dt dt
Estas ecuaciones están expresadas en el llamado dominio temporal, es decir en función
del tiempo t.
Representando la función derivada respecto al tiempo por el operador diferencial p =
d/dt, resulta:
(a0 p n + a1 p n −1 + ... + an ) x = (b0 p m + b1 p m −1 + ... + pm ) y

Ecuación en función del operador p que, como luego se verá, está expresada en el lla-
mado dominio de frecuencias.
De aquí resulta:
y (t ) a0 p n + a1 p n −1 + ... + an N ( p)
= m m −1
=W = (2)
x(t ) b0 p + b1 p + ... + pm D( p)
Expresión que es una relación en función del tiempo entre las señales de salida y de
entrada y que recibe el nombre de Transmitancia o Función de Transferencia del sistema.

13
Simulaci n y control_02.qxp 31/07/2007 15:59 PÆgina 14

Simulación y control de procesos por ordenador

En la expresión anterior, N(p) representa el numerador de la transmitancia y D(p)


representa el denominador, ambos en función del operador p. En el caso de que la señal
de entrada o de excitación del sistema sea nula, x(t) = 0 y el sistema evoluciona libre-
mente de acuerdo con la expresión siguiente:

D ( p ) = b0 p m + b1 p m −1 + ... + bm = 0
que se llama ecuación característica y cuyas raíces son p1, p2, p3, … pi y se denominan po-
los de la transmitancia. Las raíces del numerador N(p) igualado a cero se denominan
ceros de la transmitancia.
De este modo, la ecuación característica puede expresarse como:
b0 ( p − p1 )( p − p2 )( p − p3 )...( p − pi )...( p − pm ) = 0

o bien, siendo en general pi raíces imaginarias, la expresión anterior pasa a ser:

D( p) = x(t ) = c1e p1*t + c1e p2 *t + .... + c1e pi *t + ... + c1e pm *t = 0


Para que el sistema sea estable, la curva x(t) debe ser de evolución amortiguada al cre-
cer el tiempo y, por tanto, las raíces pi deben tener su parte real negativa, ya que enton-
ces el término general c1e pit = c1e ( − r + ji )t → 0 en el tiempo. Esta es una de las condicio-
nes de estabilidad que se verá más adelante en el capítulo correspondiente.

2.2 Transformada de Laplace


La transformada de Laplace es una herramienta matemática de aplicación cómoda para
la resolución de ecuaciones diferenciales. De la misma forma con que se procedía antes
de la aparición del ordenador, para efectuar operaciones complejas utilizando logarit-
mos, a base de buscar el logaritmo resultante de la expresión correspondiente y des-
pués su antilogaritmo en las tablas, la transformada de Laplace cambia las ecuaciones
diferenciales a expresiones algebraicas que, una vez resueltas –mucho más fácilmente
que las propias ecuaciones diferenciales– permiten, utilizando sólo las tablas de las fun-
ciones transformadas, determinar la antitransformada y, por tanto, la solución de la
ecuación diferencial.
La transformada de Laplace se define por la expresión:

L[y (t ) ]= Y ( s ) = lim ∫ y (t ) * e − st dt
0+

s es una variable compleja, s = σ + jw ;

σ y w son variables reales y j = − 1 ;


0+ representa un valor muy pequeño que tiende a cero, y es de signo positivo.
Así pues, aplicar una transformada de Laplace a una ecuación diferencial equivale a
pasar del dominio del tiempo t a la variable compleja σ + jw en el dominio de las s.

14
Simulaci n y control_02.qxp 31/07/2007 15:59 PÆgina 15

Estudio dinámico de la transmitancia

Para que al lector le sea más fácil comprenderlo, intente imaginarse que en lugar de
vivir en nuestro mundo habitual en el que todos los fenómenos, tanto físicos como quí-
micos, los referimos al tiempo utilizando como patrones los relojes, pasara a habitar
otro mundo totalmente distinto en el que la referencia fuera una variable compleja s
medida por patrones s en lugar de los relojes. Si consigue situarse en esta posición ima-
ginaria, todos los razonamientos y conceptos que siguen y que están basados en la
transformada de Laplace, le resultarán perfectamente comprensibles conceptualmente.

Fig. 2.1 Dominios t y s

Una vez se ha obtenido la solución de la expresión algebraica en función de la variable


s, bastará buscar la antitransformada de Laplace con el fin de obtener la solución de la
ecuación diferencial en el dominio del tiempo. Se expresa del modo siguiente:

L−1 [Y ( s )]= y (t )

Las propiedades de la transformada de Laplace son las siguientes:


x Linealidad: L( y1 + y 2 ) = L( y1 ) + L( y 2 )
x Permutabilidad:: L[k * y (t )]= k * L[y (t ) ]

d [y (t )] − s*t

x Derivada: L[y ' (t )]= ∫ * e dt


0+
dt
d [y (t )]
Llamando u = e − s*t y dv = * dt e integrando por partes, resulta:
dt
∞ ∞
[ ]
L[y ' (t )]= (u * v )− ∫ v * du = e − s*t * y (t ) − ∫ y (t ) * (s * e − s*t )dt =
0+ 0+

= − y (0 + )+ s * ∫ y (t ) * e − s*t dt = s * Y ( s ) − y (0 + )
0+

esta última, aplicada reiteradamente a una derivada enésima, daría:

[ ]
L y n (t ) = s n * Y ( s ) − s n −1 * y (0 + ) − s n − 2 * y ' (0 + )− ... − y n −1 (0 + )
y con las condiciones iniciales supuestas nulas resulta:

[ ]
L y n (t ) = s n * Y ( s )

15
Simulaci n y control_02.qxp 31/07/2007 15:59 PÆgina 16

Simulación y control de procesos por ordenador


t ∞
∞  t − s *t
 ∞
e − s*t
Integral L y (t ) dt =  y (t ) dt  * e − s*t dt =  y (t ) dt * e Y (s)
x
∫+ ∫+  ∫+  ∫
0
 −
−s  0
∫+ − s * y(t )dt = s
0 0 0  0

Es decir, la transformada de Laplace convierte la operación de derivar en una multipli-


cación por la variable s y la operación de integrar en una división por la misma varia-
ble s, siempre que naturalmente las condiciones iniciales sean nulas.
Análogamente, la transformada de una constante sería:
∞ ∞
k
L(k ) = ∫ k * e − s*t dt =k * ∫ e − s*t dt =
0+ 0+
s

En la tabla 2.1 se encuentran resueltas las transformadas de las funciones más co-
munes.

Ejemplo:
d2y dy
Resolver la ecuación diferencial + 3 * + 2 y − 5 = 0 para las condiciones inicia-
les y (0 + ) = −1, y ' (0 + ) = 2 . dt 2 dt

La transformada de Laplace es:


d2y dy
2
= s 2 * Y ( s ) − s * y (0 + )− (0 + )= s 2 * Y ( s ) + s − 2
dt dt
dy
= s * Y ( s ) − y (0 + )
dt
5
luego: s 2 * Y ( s) + s − 2 + 3 * s * Y (s) + 3 + 2 * Y ( s) − =0
s
5 − s − s2 A B C
Y (s) = = + +
s * ( s + 1) * ( s + 2) s s + 1 s + 2

5 3
operando sale: A= B = −5 C=
2 2

luego la antitransformada es:

 5/ 2 5 3/ 2  5 3 − 2t
L−1 [Y ( s )]= L−1  − + −t
 = − 5*e + *e
 s s + 1 s + 2  2 2

5 3
y (t ) = − 5 * e −t + * e − 2 t
2 2
Consideramos de nuevo la expresión (1) como ecuación diferencial lineal que relaciona
las señales de entrada y de salida a un sistema definido por la transmitancia W.

16
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 17

Estudio dinámico de la transmitancia

Tabla 2.1 Tabla de transformadas de Laplace

Aplicando la transformada de Laplace a los dos miembros y considerando valores ini-


ciales nulos en la función y en sus derivadas resulta:

a 0 s n X + a1 s n−1 X + ... + a n X = b0 s m Y + b1 s m −1Y + ... + bmY

Y a s n + a1 s n −1 + ... + a n
y de aquí: = 0 m
X b0 s + b1 s m −1 + ... + bm

expresión que es equivalente a la (2) sin más que cambiar el operador diferencial p en
el dominio del tiempo por la variable compleja s en el dominio de las s. Así pues, al ser
las dos expresiones equivalentes, la función de transferencia o transmitancia se puede

17
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 18

Simulación y control de procesos por ordenador

expresar también por el cociente de las transformadas de Laplace, siempre que se man-
tengan nulas las condiciones iniciales en la variable y en sus derivadas.

2.3 Transmitancias de sistemas


Examinemos, a continuación, algunos ejemplos de búsqueda de transmitancias de sis-
temas mediante los dos métodos: en el dominio del tiempo t y en el dominio de las s.

2.3.1 Resistencia eléctrica


Considerando como señal de entrada la intensidad i y como señal de salida la tensión
v resulta:
v
v = i*R W = =R
i

o bien, considerando las señales de entrada y de salida invertidas, se obtendría:


i 1
W = =
v R

con ambas transmitancias expresadas en los sistemas t y s.

2.3.2 Bobina eléctrica


di
Sea i la señal de entrada y v la señal de salida. Se verifica: v L = L *
dt
Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace

v L = L * p * i (t ) VL = L * s * I (s)

vL VL
W = = L* p W= = L*s
i (t ) I ( s)

Con señales de entrada y de salida invertidas, las transmitancias correspondientes


serán las inversas.

2.3.3 Condensador eléctrico


Sean i la señal de entrada y v la señal de salida. Existe la relación:

1 dVc 1
vc = i * dt = *i
C dt C

18
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 19

Estudio dinámico de la transmitancia

Fig. 2.2 Ejemplos de transmitancias de sistemas

19
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 20

Simulación y control de procesos por ordenador

Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
1 1 I ( s)
p * vc = * i (t ) Vc = *
C C s
vc 1 Vc 1
W = = W= =
i (t ) C * p I ( s) C * s

En caso de invertir las señales de entrada y de salida, las transmitancias serían las
inversas de las obtenidas.

2.3.4 Pistón hidraúlico


Sea un fluido hidráulico incompresible y consideramos como señal de entrada el cau-
dal q(t) y como señal de salida el correspondiente desplazamiento y ( t) del vástago del
pistón.
La equivalencia entre estas señales es:
q (t ) * dt = A * dy
dy q (t )
=
dt A
Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
q (t ) 1
p* y = s * Y (s) =* Q( s )
A A
y (t ) 1 Y ( s) 1
W= = W= =
q (t ) p * A Q( s) s * A
1 1
q (t ) → → y (t ) Q( s ) → → Y (s)
p* A s* A

2.3.5 Nivel de un tanque


La señal de entrada es el caudal de aportación al tanque y la señal de salida es la varia-
ción del nivel correspondiente.
Si qe =qs el nivel no varía y se verifica q s = k h
Si esta igualdad deja de verificarse, la ecuación pasa a:

q e * dt = A * dh + k h * dt
dh
O bien: qe = A * +k h
dt
que es una ecuación diferencial no lineal difícil de resolver. De aquí que sea necesario
introducir valores incrementales en la ecuación anterior, resultando de este modo:

20
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 21

Estudio dinámico de la transmitancia

Dominio t Dominio s
dh dh
∆q e = A * ∆ + ∆q s = AQ * + ∆h * (tgα ) hallando la transformada de Laplace
dt dt y considerando la figura 2.2e, resulta:
Ya que qs en función de h viene ∆q e = A * s * ∆H + H * (tgα )
representado en la figura 2.2e. De aquí: de donde:
d∆h 1 ∆h h 1 1 / tgα
I = A* * + * (tgα ) = =
dt ∆q e ∆q e Qe tgα + A * s 1 + s * A / tgα
Utilizando el operador p que es una transmitancia de primer
orden
d∆h ∆h
I = A* p * + * (tgα )
∆q e ∆q e
De aquí:
1
∆h 1 tgα
= =
∆q e tgα + A * p A* p
1+
tgα

2.3.6 Sistema térmico


Consideramos que la señal de entrada es la temperatura ambiente Ta y que la señal de
salida es la temperatura T del mercurio del termómetro.
Igualando el calor que atraviesa el vidrio con el calor absorbido por el mercurio tene-
mos (siendo k el coeficiente de transferencia de calor):
y de aquí, según sea el dominio en que trabajemos, resulta:
k * (Ta − T )* dt = m * ce * dT
dT k
= * (Ta − Td )
dt m * c e
Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
k k
p *T = * (Ta − T ) s * T (s) = [Ta − T ( s)]
m * ce m * ce
T k / m * ce 1 k
W = = = s * T (s) = [Ta − T ( s)]
Ta p + k / m * ce 1 + p * m * ce / k m * ce

Que es una transmitancia de primer orden.


Las funciones de transferencia examinadas hasta ahora vienen regidas por una ecua-
ción diferencial lineal de primer orden y por esta razón se las califica como sistemas

21
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 22

Simulación y control de procesos por ordenador

lineales de primer orden. Se caracterizan por la denominada constante de tiempo T del


sistema, que es el coeficiente de la primera derivada. Esta constante es una medida de
la «agilidad» del sistema para seguir las evoluciones de la señal de entrada. Más ade-
lante, al estudiar el análisis temporal de los sistemas de primer orden, se comentará
este punto con más detalle.
Los sistemas de segundo orden se caracterizan porque su comportamiento dinámico
viene definido por una ecuación diferencial lineal de segundo orden.
Figuran a continuación varios ejemplos.

2.3.7 Sistema manométrico


En un sistema de vasos comunicantes se aplica súbitamente una presión P, lo que pro-
voca un movimiento dinámico de la masa del líquido.
Igualando la fuerza aplicada a la masa que se ha acelerado resulta:
dh d 2h
A * (P − 2 * h * γ )− R * A * = A*l *γ * 2
siendo: dt dt
A= sección del tubo;
γ= longitud del líquido en el tubo;
g= peso específico del líquido;
P= presión aplicada;
R= fuerza de rozamiento del líquido en el tubo.
1 d 2h R dh P
La expresión anterior pasa a: * 2 + * +h=
2 dt 2 * γ dt 2*γ
O bien utilizando los coeficientes:
W0 = 1/T = pulsación propia o frecuencia natural
ξ = factor de amortiguamiento
1 1 2 *ξ R
Con las equivalencias: = =
w0 2 * γ
2
w0 2*γ

1 d 2 h 2 * ξ dh P
Resulta: * 2 + * +h=
2
w0 dt w0 dt 2 *γ

Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
1 2 *ξ P 1 2 *ξ P( s)
* p2 * h + * p*h + h = * s 2 * H (s) + * s * H ( s) + H (s) =
2
w0 w0 2*γ 2
w0 w0 2 *γ
luego: luego:
P 2 *γ P(s) 2 *γ
= =
h 1 2 *ξ H (s) 1 2 *ξ
2
* p2 + * p +1 2
* s2 + * s +1
w w0 w w0
Que es una transmitancia de segundo orden.

22
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 23

Estudio dinámico de la transmitancia

2.3.8 Oscilación amortiguada de un muelle


La fuerza aplicada sobre la masa equivale a:
d 2x dx
f = m* 2
+ A* + K * x
dt dt

siendo:
A = coeficiente de amortiguamiento
K = constante elástica del resorte
Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
f = m * p2 * x + A* p * x + k * x F ( s) = m * s 2 * X ( s) + A * s * X ( s) + k * X ( s)

luego: luego:
x 1 X ( s) 1
= 2
= 2
f m* p + A* p + k F (s) m * s + A * s + k

se acostumbra a considerar las ecuaciones anteriores con las equivalencias:


m A
T2 = 2 *ξ *T =
k K

con lo cual pasan a:


x 1/ k X ( s) 1/ K
= 2 = 2 2
f T * p + 2 *ξ *T * p + 1
2
F (s) T * s + 2 * ξ * T * s + 1

siendo:
T = constante de tiempo;
ξ = factor de amortiguamiento.
Más adelante, al estudiar el análisis temporal de los sistemas de segundo orden, se
comentarán otros aspectos de estos sistemas.

2.3.9 Reactor encamisado


Para obtener la ecuación diferencial correspondiente, igualamos las calorías cedidas
por el fluido térmico de calentamiento que circula a través de las paredes de la camisa
del tanque, con las necesarias para calentar el producto de entrada y elevar así la tem-
peratura del fluido en el reactor. De este modo resulta: .
q1* ρ1 * ce * (T1 − T2 ) * dt = q 2* ρ 2 * c e * (−T3 − T ) * dt + M * ce * dT

habiendo supuesto que la temperatura del fluido térmico es constante, y siendo:


q1 = caudal de fluido térmico;
p1 = densidad del fluido térmico;

23
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 24

Simulación y control de procesos por ordenador

T1 = temperatura del fluido térmico a la entrada del reactor;


T2 = temperatura del fluido térmico a la salida del reactor;
T3 = temperatura del producto de entrada;
T= temperatura del producto en el tanque;
q2 = caudal del producto de entrada;
p2 = densidad del producto de entrada;
Ce = calor específico del producto de entrada y del fluido térmico (como simpli-
ficación se consideran iguales);
M = masa del producto contenido en el reactor.
Se considera que la temperatura del producto contenido en el reactor es uniforme, gra-
cias a una perfecta agitación conseguida mediante un agitador incorporado al reactor.
Despreciando el término q 2 ρ 2 c e T 3 ya que podemos suponer que el valor de T3 es pró-
ximo a 0°C, la ecuación anterior se transforma en:
q1* ρ1 * ce * (T1 − T2 ) * dt = q 2* ρ 2 * ce * T * dt + M * c e * dT

dT
luego: q1* ρ1 * (T1 − T2 ) = q 2* ρ 2 * T + M *
dt
Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
q1* ρ1 * (T1 − T2 ) = q 2* ρ 2 * T + M * p * T Q1* ρ1 * (T1 − T2 ) = q 2* ρ 2 * T ( s ) + M * s * T ( s )

luego: luego:
ρ1 * (T1 − T2 ) ρ1 * (T1 − T2 )
T ρ1 * (T1 − T2 ) q2 * ρ 2 T (s) q2 * ρ 2
= = =
q1 q 2 * ρ 2 + M * p M Q1 M
1+ *p 1+ *s
q2 * ρ 2 q2 * ρ 2

2.3.10 Válvula de control


En este caso, y a diferencia del ejemplo representado en la figura 1.6b, consideraremos
que las condiciones son de equilibrio dinámico. Despreciamos los rozamientos del vás-
tago en la estopada y la fuerza ejercida por el fluido sobre el obturador.
En condiciones estáticas se verifica P* A = K r * l. Y si esta presión P es aplicada súbita-
mente, resulta:
d 2l dl
P* A = m* + Kr *l + R * a *
dt 2 dt
siendo:
m = masa de las partes móviles (diafragma, resorte, vástago y obturador)
Kr = constante elástica del resorte;

24
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 25

Estudio dinámico de la transmitancia

R = rozamiento del conjunto (estopada y obturador);


P = presión de entrada;
A = área útil del diafragma;
a = sección media del vástago y del obturador.
Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
P * A = R * a * p *l + Kr *l + m * p2 *l P ( s ) * A = R * a * s * L( s ) + K r * L( s ) + m * s 2 * L( s )

l (t ) A L( s) A
= 2 =
P (t ) m * p + R * A * p + K r P(s) m * s 2 + R * A * s + K r

y considerando:
T = constante de tiempo 1/w0 (w0 es la frecuencia natural);
ξ = factor de amortiguamiento;
2
con T = m/kr , 2 * ξ *T = R*a/k r
resulta:
l (t ) A / kr L( s) A / kr
= 2 = 2
P (t ) T * p + 2 * ξ * T * p + 1
2
P(s) T * s + 2 * ξ * T * s + 1
2

Si la válvula es de característica lineal se verifica q = k*l y la transmitancia en el domi-


nio s pasa a ser:
Q( s) Q( s ) L( s) A * k / kr
= * = 2
P ( s) L( s ) P ( s ) T * s + 2 * ξ * T * s + 1
2

a*l
Si la válvula es de característica de igual porcentajes se verifica q = b * e cuya transfor-
mada de Laplace es:
1
Q(s) = b * * L( s)
s−a

Q( s) Q( s ) L( s ) b * A / kr
luego: = * = 2
P ( s) L( s ) P ( s) (T * s + 2 * ξ * T * s + 1) * ( s − a )
2

que es una transmitancia de tercer orden.


El lector puede consultar el capítulo correspondiente a válvulas de control para obte-
ner más información. Sin embargo, señalemos los siguientes datos adicionales:
El factor de amortiguamiento ξ es como mínimo de 1, siendo un valor representativo
0,7. La frecuencia natural de la válvula de control w0 varía de:
1 a 60 cpm (6 a 380 rad/min) para válvulas sin posicionador;
50 a 70 cpm (300 a 440 rad/min) para válvulas con posicionador;

25
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 26

Simulación y control de procesos por ordenador

y dentro de estos márgenes wo es tanto más grande cuanto menor inercia tenga el ser-
vomotor en su movimiento (por ejemplo, en válvulas pequeñas).
En la válvula de igual porcentaje, la rangeability (rango o intervalo de operación) o rela-
ción entre el caudal máximo y el mínimo controlables es de R = 50, por lo cual el cau-
dal mínimo controlable es del 2%. Luego:
q min = b = 0,02

por otro lado, el caudal máximo corresponde a l = 1 y es:


q max
q max = q min * e a = e a = 50 a = ln 50 = 3,912
q min

2.3.11 Batería de dos reactores perfectamente agitados


Se verifican las siguientes ecuaciones de balance de materiales:

dc
Q * c 0 − Q1 * c1 (t ) = VR1 *
dt
dc
Q1 * c1 (t ) − Q2 * c 2 (t ) = VR 2 *
dt

siendo:
Q = caudal de entrada;
Q1 = caudal de salida del primer reactor;
Q2 = caudal de salida del segundo reactor;
C0 = concentración inicial del producto;
C1 = concentración del producto a la salida del primer reactor;
c(t) = concentración final del producto a la salida del segundo reactor;
VR1 , VR2 = volumen del primero y segundo reactores.

Resulta así:

V R1 dc1 Q V R 2 dc Q
* + c1 (t ) = c 0 (t ) * * + c(t ) = c1 (t ) * 1
Q1 dt Q1 Q2 dt Q2

Dominio t Dominio s
empleando el operador p hallando la transformada de Laplace
V R1 Q V R1 Q
* p * c1 + c1 (t ) = c 0 (t ) * * s * C1 + C1 ( s ) = C 0 ( s ) *
Q1 Q1 Q1 Q1

VR 2 Q VR 2 Q
* p * c + c(t ) = c1 (t ) * 1 * s * C + C ( s ) = C1 ( s ) * 1
Q1 Q2 Q1 Q2

26
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 27

Estudio dinámico de la transmitancia

y de aquí: y de aquí:
c1 Q / Q1 C1 Q / Q1
= =
c0 V C0 V
1 + p * R1 1 + s * R1
Q1 Q1
c Q1 / Q2 C1 Q1 / Q2
= =
c1 V C V
1 + p * R2 1 + s * R2
Q1 Q1

O sea llamando VR1/Q1 =T1 y VR2/Q2 =T2 y suponiendo que Q = Q2 resulta:


c 1 1 C 1 1
= * = *
c0 1 + p * T1 1 + p * T2 C 0 1 + s * T1 1 + s * T2

que es una transmitancia de segundo orden resultante de la asociación en serie de dos


sistemas de primer orden.
El lector podría obtener una transmitancia de orden n a base de coordinar en serie reac-
tores perfectamente agitados, con lo cual obtendría la función de transferencia:
C 1 1 1 1
= * * * .... *
C 0 1 + s * T1 1 + s * T2 1 + s * T3 1 + s * Tn
En todos los ejemplos anteriores se ve claramente que es fácil pasar de transmitancias
del dominio t al s sin más que cambiar el símbolo p por la variable compleja s, y consi-
derando naturalmente que las variables de entrada y de salida cambian también de
dominio. Análogamente, se procedería a la inversa para pasar del dominio s al t.

2.4 Propiedades adicionales de la transformada


de Laplace
Entre las propiedades adicionales de la transformada de Laplace figuran las siguientes:

2.4.1 Teorema del valor inicial


Permite conocer el valor de una función en el origen sin necesidad de calcular su anti-
transformada y sustituir en ella la variable independiente por 0.
Se sabe que, conocida la función y(t), la transformada de Laplace de su derivada es:

dy dy
L = s * Y ( s ) − y (0 + ) = lim ∫ * e − s*t dt
dt 0+
dt
Y tomando límites para s → ∞ resulta:

[ ]
lim s * Y ( s ) − y (0 + ) = lim ∫
dy − s*t
* e dt = 0
+ dt
s→∞
0

27
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 28

Simulación y control de procesos por ordenador

luego: y (0 + )= lim[s * Y ( s ) ]
s →∞

2.4.2 Teorema del valor final


De una forma análoga a la anterior se desea saber el valor de una función en el infini-
to, y no es posible o bien no se desea calcular su antitransformada.
Procediendo como antes se busca la transformada de Laplace de su derivada y se
toman límites para s → 0, con lo cual resulta:

s→∞
[ ]
lim s * Y ( s ) − y (0 + ) = lim ∫
s →0
dy − s*t
dt
* e dt = [y (t )]0+ = y (∞) − y (0 + )

0+

luego: y (∞ ) = lim[s * Y ( s )]
s→ 0

2.4.3 Teorema del retardo puro


Cumple la igualdad: L( y (t − T ) = e − s*T * Y ( s )siendo el retardo puro la función y mmm
= e − s*T
y T una constante.
En efecto, según el desarrollo de Taylor se verifica:
dy T 2 d 2 y T 3 d 3 y
y (t − T ) = y (t ) − T * + * − * + ....
dt 2! dt 2 3! dt 3

y
T2
[
L[y (t − T )]= Y ( s ) − T * s * Y ( s ) − y (0 + ) + ] 2!
[ ]
* s 2 * Y ( s ) − s * y (0 + ) − y ' (0 + ) − ...

Si se impone que las condiciones iniciales sean nulas en la función primitiva y en sus
derivadas, resulta:
 T2 2 T3 3 
L[y (t − T )]= Y ( s ) * 1 − T * s + *s − * s + ...  = Y ( s ) * e −T *s
 2! 3! 
La transformada de Laplace de la función e − a*t * f (t ) es:

[ ]
L e − a*t * f (t ) = F ( s + a )
o bien, deshaciendo la transformación:

L−1 [F ( s + a)]= e − a*t * f (t ) = e − a*t * L−1 [F ( s )]


que puede considerarse homónima del teorema del retardo puro, cambiando los domi-
nios t y s.

28
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 29

Estudio dinámico de la transmitancia

Ejemplos:
Valores inicial y final de una función y(t) cuya transformada de Laplace es:
1
Y (s) =
s * (s + a)

Aplicando el teorema del valor inicial, se obtiene:


1
y (0 + ) = lim s * = 0 (valor inicial )
s→∞ s * (s + a)

Aplicando el teorema del valor final, se obtiene:


1 1
y (∞) = lim s * = (valor final )
s →0 s * (s + a) a

Si se deseara conocer la forma de arranque de la curva en el origen, se procedería del


modo siguiente:
1
En el dominio t: y (t ) =
p * ( p + a)
en el instante inicial t → 0, se producen variaciones rápidas de la derivada y puede
suponerse que ésta tiende a infinito p → . Luego:
8

1 1 1
y (t ) = lim = lim 2 = 2
t →0 p * ( p + a) t → 0 p + a* p p

lo que indica que en el origen la curva se comporta como si fuera equivalente a la fun-
ción:
1 1
y= o Y=
p2 s2

Ejercicios

d 2 y dy
2.1 Resolver la ecuación 2 * − − y − 1 = 0 diferencial para las condiciones ini-
dt 2 dt
ciales y(0+)= 1; y(0+)= 1/2.
2.2 Determinar la transmitancia en
los sistemas t y s del circuito eléc-
trico de la figura. Se considerará
como señal de entrada la intensi-
dad i y como señal de salida la
diferencia de potencial V.

29
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 30

Simulación y control de procesos por ordenador

2.3 Resolver la ecuación diferencial – 9*y=0 para las condiciones iniciales y(0+)= 1.
2.4 Determinar la transmitancia de un tanque dotado de un agitador y que está lleno
de agua, y es alimentado con una solución en agua a la concentración co(t); el
líquido resultante a la concentración c(t) se escapa por la parte superior del tan-
que de acuerdo con la figura.

2.5 Determinar la transmitancia del circuito RC de la figura. La señal de entrada es


V y la señal de salida es i.

2.6 Determinar el valor inicial de una función cuya transmitancia es


2* s −1
Y (s) =
s * ( s + 3)

2.7 Determinar el caudal final de paso de una válvula de control lineal, sabiendo que
ξ = 1, T = 0,01 minutos, A = 500 cm2, K = 1, Kr = 15 mm/100 kg, carrera total de la
válvula 25 mm y que la señal de salida del controlador aplicada súbitamente es
de 0,6 bar (9 psi).
2.8 Determinar la concentración final alcanzada en una batería de dos reactores per-
fectamente agitados con los valores siguientes:
T1 = 45 minutos, T2 = 1 hora, co = 20 moles/m3.

30
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 31

Capítulo 3

Análisis temporal

3.1 Introducción
Para analizar el comportamiento de los sistemas es conveniente determinar su función
de transferencia. Esta determinación se realiza de modo experimental a base de estu-
diar la respuesta del sistema a una perturbación de función conocida y, a ser posible,
sencilla y fácil de reproducir. Sabemos que la relación entre la transmitancia y las seña-
les de entrada y de salida es:
Y ( s)
w=
X ( s)

y de aquí: Y ( s ) = X ( s ) *W ( s )

y que: y (t ) = L−1 [X ( s ) *W ( s )]= L−1 [Y ( s )]

X(s) se conoce porque es la transformada de Laplace de la perturbación x(t)·y(t) se


obtiene experimentalmente, registrándose normalmente en forma de gráfico.
Luego el problema es determinado. Su resolución práctica puede hacerse por tanteo, a
base de suponer distintas funciones W(s) y calcular la señal de salida y(t) para cada una
de ellas. Se van ajustando progresivamente los datos experimentales y los calculados
para y(t) hasta definir suficientemente la transmitancia W(s).

Fig. 3.1 Funciones elementales de excitación

31
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 32

Simulación y control de procesos por ordenador

Aunque teóricamente cualquier perturbación de función conocida sería aplicable, se


suelen utilizar señales elementales típicas, tales como el impulso unidad, el escalón, la
rampa unidad, la función parabólica y la función senoidal.
Y, aunque en la práctica las señales a analizar siempre son mucho más complejas,
siempre será posible su descomposición en señales fundamentales elementales con lo
cual, la respuesta será la suma de las respuestas ante estas funciones elementales de
excitación.

3.2 Funciones elementales de excitación


3.2.1 Escalón unidad u(t)
Tiene la expresión:
t=0 u(t) = φ
t=0 u(t) = 1
En la figura 3.1a puede verse su representación gráfica.

3.2.2 Impulso unidad


Es la derivada de un escalón imperfecto
1 1
u (t ) = *t u ' (t ) =
T T

Cuando α → 90ºC, T → 0, 1/T → , pero el área continúa siendo la unidad. El impulso


8

unidad se representa por el símbolo δ (t) y su expresión es:

d
δ (t ) = [u (t )]= p * u (t )
t

3.2.3 Rampa unidad


Integrando respecto al tiempo la función unidad resulta:
t
r (t ) = ∫ u (t ) * dt = t * u (t )
0

d [r (t )]
Derivando se tiene = u (t ) y p * r (t ) = u (t )
dt
u (t ) (t )
Luego r (t ) = y como u (t ) =
p p
(t )
Resulta r (t ) =
p2

32
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 33

Análisis temporal

3.2.4 Función parabólica


Integrando r(t) se obtiene
t
t2
o(t ) = ∫ r (t ) * dt = * u (t )
0
2

d [o(t )]
y derivando: = t * u (t )
dt
t * u (t ) r (t ) u (t ) (t )
o(t ) = = = 2 = 3
p p p p

3.2.5 Función senoidal


Se utiliza en el análisis frecuencial y se verá más adelante en el capítulo 5.
Figura a continuación el estudio de las características de las respuestas obtenidas al
excitar los sistemas con las funciones elementales estudiadas.

3.3 Respuesta impulsional


La respuesta impulsional de un sistema es la que se obtiene al excitarlo con un impul-
so unidad.
Sea la señal de entrada o de excitación al sistema x(t) = δ (t) (impulso unidad).
Como δ (t) es 0, excepto entre 0 y T que vale 1/T se obtiene:
∞ T T
1 1  e − s*t1  1  1 e − s*t 
X ( s ) = ∫ δ (t ) * e − s*t
dt = lim ∫ * e − s*t dt = lim −  = lim − s * s  =
T →0 T T s  0 T →0 T
0+ 0   
1 − (1 − s * T + ...)
= lim =1
T →0 s *T

Y ( s)
Luego. W ( s) = = Y ( s)
X (s)
y deshaciendo la transformación resulta: y (t ) = L−1 [W ( s )]
Así pues, la respuesta impulsional de un sistema es igual a la antitransformada de Laplace de
la transmitancia del sistema.

3.4 Respuesta indicial


Es la función que se obtiene en la salida al excitar la entrada con un escalón unidad u(t).
En el sistema de transmitancia 1/s excitado con un impulso unidad, la señal de sali-
da es:

33
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 34

Simulación y control de procesos por ordenador

1
y (t ) = L−1   = u (t )
s

1
Luego: δ (t ) U ( s ) W ( s ) → Y ( s )
→ s →
Así pues, la respuesta indicial de un bloque de transmitancia W(s) es la respuesta
impulsional que nos da un bloque funcional cuya transmitancia es W(s)/s, es decir, es
igual a la antitransformada de Laplace de la transmitancia del sistema dividida por s.

3.5 Respuesta ante una entrada en rampa


Es la función que se obtiene en la salida al excitar la entrada con una rampa unidad.
Como la rampa unidad es la integral respecto al tiempo del escalón unidad resulta:
t
r (t ) = ∫ u (t ) * dt = t * u (t )
0

1
La transformada de Laplace de la función rampa unidad es: L[u (t )]=
s
∞ ∞
1
luego: L[r (t )]= ∫ e − s*t * r (t )dt = ∫ t * e − s*t * u (t )dt = = R(s)
0+ 0+
s2

luego: r (t ) → W ( p ) → y (t ) R(s) → W ( s) → Y (s)

Y (s) Y ( s)
W ( s) = =
R(s ) 1 / s 2

W ( s)
luego: Y (s) =
s2
W (s) 
y, deshaciendo la transformación y (t ) = L−1 
2 
 s 
Así pues, la respuesta ante una entrada en rampa unidad es igual a la antitransformada
de Laplace de la división de la transmitancia del sistema por s2.

3.6 Análisis temporal de los sistemas de


primer orden
Los sistemas de primer orden tienen por transmitancia general la forma:
1
W ( p) = en el dominio t
T * p +1
1
W ( s) = en el dominio s
T * s +1

34
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 35

Análisis temporal

La respuesta impulsional es:

 1  1 −1  1  1 −(1 / T )*t
y (t ) = L−1  = *L   = *e
 T * s + 1 T  s + 1/ T  T

La representación de esta curva de respuesta puede efectuarse por el método conven-


cional, es decir, sustituyendo t por valores característicos, tales como t = 0, t = T, t = ∞,
etc., y determinando los valores correspondientes de y(t), o bien es posible utilizar un
programa en lenguaje Visual Basic de EXCEL e introducirlo en un ordenador que lo eje-
cute y nos dibuje la curva de respuesta (figura 3.2).

Programa de Respuesta impulsional de una transmitancia de 1º orden

Option Explicit
Private Sub RespImpulsional_Click() 'cmdCreateTable_Click()
Dim T As Single, T1 As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim n As Integer, contador As Integer, w As Single, p As Single
Dim RespImpulsTransm1Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Respuesta Impulsional Transmitancia 1º Orden"
Range("C2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A12").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- min:"): Cells(3, 1) = t0 'Tiempo inicial
tf = InputBox("Valor final de t (tf)- min:"): Cells(5, 1) = tf 'Tiempo final

35
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 36

Simulación y control de procesos por ordenador

Dt = InputBox("Incremento de t (Dt)- min:"): Cells(7, 1) = Dt 'Incremento tiempo


n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
T1 = InputBox("Constante de Tiempo (T1)- min:"): Cells(11, 1) = T1 'Constante de
Tiempo T1
'Borra las celdas de la simulación anterior
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Impulsional
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(13, 1) = p
Cells(p + 3, 2) = w
RespImpulsTransm1Orden = (1 / T1) * Exp(-(1 / T1) * w)
Cells(p + 3, 3) = RespImpulsTransm1Orden
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(13, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 2), Cells(p + 3, 3)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus carateristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA IMPULSIONAL TRANSMITANCIA 1º ORDEN"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Respuesta impulsional"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
With ActiveChart.Parent
.Left = 200:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A14").Select
ActiveCell.FormulaR1C1 = ""
Range("A14").Select
Selection.Font.Bold = True
End Sub

36
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 37

Análisis temporal

Respuesta
Impulsional
Tinicial Tiempo
Transmitancia
1º Orden

0 0 0,200000003
RESPUESTA IMPULSIONAL TRANSMITANCIA 1º ORDEN
Tfinal 0,01 0,199600399
10 0,02 0,199201599 0,25

Respuesta impulsional
Incremento 0,2
0,03 0,198803589
tiempo

0,01 0,04 0,198406383 0,15


Serie1
Nº de puntos 0,05 0,198009968 0,1

1001 0,05999999 0,197614342 0,05

Constante de
0,06999999 0,197219506 0
tiempo
0 2 4 6 8 10 12
5 0,07999999 0,19682546
Tiempo
Valor de p -
nº de 0,08999999 0,196432203
periodos
999,013367 0,09999999 0,196039736

Fig. 3.2 Respuesta impulsional de una transmitancia de 1º orden

La respuesta indicial que normalmente se utiliza es:

1 1  A B 
y (t ) = L−1  *  = L−1  + 
 s T * s + 1  s T * s +1

1 A B
= +
s * (T * s + 1) s T * s + 1
1=A A=1
0 = A*T+B B = -T
luego:
1 1  1  1 
y (t ) = L−1  −  = L−1   − L−1   = u (t ) − e
− (1 / T )*t
= 1 − e −(1 / T )*t
 s T * s + 1 s  s + 1/ T 

que puede verse en la figura 3.3 conjuntamente con el programa correspondiente. A


señalar que para:
t = T resulta y(T) = 1 – e-1 = 1-1/e = 0,632;
t = ? resulta y(?) = 1 - 0 = 1.
T recibe el nombre de constante de tiempo del sistema, y es el tiempo que transcurre
para que ante una perturbación la respuesta llegue al 63,2% del valor final. Es una
medida de la agilidad propia del sistema para seguir las evoluciones o los cambios de
la señal de entrada.

Programa de respuesta indicial de una transmitancia de 1º orden

Option Explicit
Private Sub RespIndicial_Click() 'cmdCreateTable_Click()
Dim T As Single, T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single

37
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 38

Simulación y control de procesos por ordenador

Dim w As Single, p As Single, Sigma As Single


Dim n As Integer, contador As Integer, k As Integer
Dim RespIndicialTransm1Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Respuesta indicial Transmitancia de 1º Orden"
Range("C2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A12").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0):"): Cells(3, 1) = t0 'Tiempo inicial
tf = InputBox("Valor final de t (tf):"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt):"): Cells(7, 1) = Dt 'Incremento tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
T1 = InputBox("Constante de Tiempo (T1):"): Cells(11, 1) = T1 'Constante de Tiempo T1
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo - Respuesta Indicial
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(13, 1) = p
Cells(p + 3, 2) = w
RespIndicialTransm1Orden = 1 - (Exp(-(1 / T1) * w))
Cells(p + 3, 3) = RespIndicialTransm1Orden
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object

38
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 39

Análisis temporal

Dim datos As String


n = Cells(9, 1): p = Cells(13, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 2), Cells(p + 3, 3)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus carateristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA INDICIAL TRANSMITANCIA DE 1º ORDEN"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Respuesta indicial"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
With ActiveChart.Parent
.Left = 200:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A15").Select
ActiveCell.FormulaR1C1 = ""
Range("A15").Select
Selection.Font.Bold = True
'ActiveChart.HasLegend = False
'ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
End Sub

Respuesta
indicial
Tinicial Tiempo
Transmitancia
de 1º Orden
0 0 0
RESPUESTA INDICIAL TRANSMITANCIA DE 1º ORDEN
Tfinal 0,01 0,001998001
10 0,02 0,00399201 1
0,9
Incremento
0,03 0,005982036 0,8
tiempo
Respuesta indicial

0,7
0,01 0,04 0,007968085 0,6
Nº de 0,5 Serie1
0,05 0,009950166 0,4
puntos
0,3
1001 0,05999999 0,011928286 0,2
Constante 0,1
0,06999999 0,013902455 0
de tiempo
0 2 4 6 8 10 12
5 0,07999999 0,015872678 Tiempo
Valor de p -
nº de 0,08999999 0,017838966
periodos
999,013367 0,09999999 0,019801324

Fig. 3.3 Respuesta indicial de un sistema de 1º orden

39
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 40

Simulación y control de procesos por ordenador

La constante de tiempo del sistema de primer orden puede determinarse gráficamente


del modo siguiente:
dy A − (1 / T )*t
Derivando la respuesta indicial obtenida anteriormente resulta: = *e
dt T
Y buscando el límite de la derivada para t infinitamente pequeño resulta:
dy A
lim =
t →0 dt T

que es el valor de la tangente en el origen. Luego tg ϕ = A / T.


Así pues, la constante de tiempo del sistema de primer orden puede determinarse tra-
zando la tangente a la curva en el origen y midiendo la distancia horizontal desde el
origen hasta el punto de corte con la asíntota de la curva. En la figura 3.4 puede verse
la determinación gráfica de la constante de tiempo.

Fig. 3.4 Constante de tiempo

El tiempo de respuesta ante una entrada en escalón se define como el tiempo que tarda
la respuesta en alcanzar un porcentaje del 90 % al 95 % del valor final.
Y así: 0,9 = 1 − e − (1 / T )*t t 90% = 2,3 * T

0,95 = 1 − e − (1 / T )*t t 95% = 2,99 * T

3.7 Análisis temporal de los sistemas de


segundo orden
Los sistemas de segundo orden vienen representados por la expresión general:
1
W ( p) = en el dominio t
T 2 * p2 + 2 *ξ *T * p +1
1
W ( s) = 2 2 en el dominio s
T * s + 2 *ξ *T * s +1
Siendo ξ = factor de amortiguamiento. Llamando w0 = 1/ T = pulsación propia o frecuen-
cia natural sin amortiguación del sistema resulta:
w02
W ( s) =
s 2 + 2 * ξ * w * s + w02
Generalmente se utiliza una señal de entrada en escalón. Sin embargo, por su interés
particular estudiaremos la respuesta de la transmitancia de segundo orden ante una

40
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 41

Análisis temporal

señal de entrada de impulso unidad; ello nos permitirá extraer algunas conclusiones
sobre los criterios de estabilidad a aplicar en los procesos industriales.

 w02   w0 1 − ξ 2 
y (t ) = L−1  2  = L−1   * w0 =
2 
 s + 2 * ξ * w0 * s + w0 

(
 ( s + ξ * w0 ) + w0 1 − ξ 2
2
)
2  1−ξ 2

=
w0
1−ξ 2
(
* e −ξ *w0 *t * sen w0 1 − ξ 2 )
2

Determinaremos la respuesta impulsional para un factor de amortiguamiento ξ < 1.


En la figura 3.5 puede verse el programa en lenguaje Visual Basic de la respuesta
correspondiente así como la parte inicial de la tabla de valores y la curva de respuesta
impulsional.

Programa de la respuesta impulsional de una transmitancia de 2º orden

Option Explicit
Private Sub RespImpTransm2Orden_Click() 'cmdCreateTable_Click()
Dim T1 As Single, wcero As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, p As Single, Sigma As Single
Dim n As Integer, contador As Integer, k As Integer
Dim ImpulsionalTransm2Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Respuesta Impulsional Transmitancia 2º orden"
Range("C2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Frecuencia natural (Radianes/min) (wcero)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select

41
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 42

Simulación y control de procesos por ordenador

ActiveCell.FormulaR1C1 = "Factor de amortiguamiento (sigma)"


Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0):"): Cells(3, 1) = t0 'Tiempo inicial
tf = InputBox("Valor final de t (tf):"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt):"): Cells(7, 1) = Dt 'Incremento tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
wcero = InputBox("Frecuencia natural (wcero)- Radianes/min:"): Cells(11, 1) = wcero
'Frecuencia natural
SigmaF: Sigma = InputBox("Factor de amortiguamiento (sigma):"): Cells(13, 1) = Sigma
'Factor de amortiguamiento
If Sigma > 1 Then Beep: Cells(13, 1) = "Sigma debe ser <1": GoTo SigmaF: 'Avisa del
error
On Error GoTo 0
'Borra las celdas de la simulación anterior
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = ""
contador = contador + 1
Wend
'Valores de Tiempo-Respuesta ImpTransm2Orden
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(15, 1) = p
Cells(p + 3, 2) = w
ImpulsionalTransm2Orden = (wcero / Sqr(1 - Sigma ^ 2)) * (Exp(-Sigma * w)) *
(Sin(w * (Sqr(1 - Sigma ^ 2))))
Cells(p + 3, 3) = ImpulsionalTransm2Orden
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(15, 1)
datos = Range(Cells(3, 2), Cells(p + 3, 3)).Address 'rango a graficar
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA IMPULSIONAL TRANSMITANCIA 2º Orden"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Respuesta impulsional"

42
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 43

Análisis temporal

.Axes(xlValue, xlPrimary).HasTitle = True


End With
With ActiveChart.Parent
.Left = 200:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A18").Select
ActiveCell.FormulaR1C1 = ""
Range("A18").Select
Selection.Font.Bold = True
End Sub

Respuesta
Impulsional
Tinicial Tiempo
Transmitancia
2º orden
0 0 0
Tfinal 0,01 0,998983979
30 0,02 1,995872259
RESPUESTA IMPULSIONAL TRANSMITANCIA 2º Orden
Incremento
0,03 2,990569353
tiempo 100

0,01 0,04 3,982980251 80


60
Respuesta impulsional

Nº de puntos 0,05 4,973010063 40


20
3001 0,05999999 5,96056509 0
Serie1

-20 0 5 10 15 20 25 30 35
Frecuencia
-40
natural
0,06999999 6,945551872 -60
(Radianes/min)
-80
(wcero)
Tiempo

100 0,07999999 7,927876472


Factor de
amortiguamiento 0,08999999 8,907445908
(sigma)
0,1 0,09999999 9,884169579
Valor de p 0,10999998 10,85795307
2999,05908 0,11999998 11,82870674

Fig. 3.5 Respuesta impulsional de una transmitancia de 2º orden

Veamos ahora la entrada en escalón que es la generalmente utilizada.


1 w02 
La respuesta indicial es: L−1  * 2 
 s s + 2 * ξ * w0 * s + w0
2

Para descomponer este término en fracciones simples, es necesario determinar las raí-
ces del denominador.
s1 = 0 s 2 + 2 * ξ * w0 * s + w02 = 0

s 2 = −ξ * w0 + w0 * ξ 2 − 1

s3 = −ξ * w0 − w0 * ξ 2 − 1

pudiéndose dar los siguientes casos:


a) Sistema sin amortiguamiento (fig. 3.6a). ξ =0, con lo cual se obtiene:

43
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 44

Simulación y control de procesos por ordenador

1 w2 
y (t ) = L−1  * 2 0 2 
 s s + w0 
w02 A B*s +C
2 2
= + 2
s + w0 s s + w02

y de aquí: w02 = A * w02 A=1


0=C C=0
0=A+B B = -1

1  s 
luego: y (t ) = L−1   − L−1  2  = 1 − cos( w0 * t )
2 
s  s + w0 

Fig. 3.6 Respuesta indicial de sistemas de 2º orden

b) Sistema subamortiguado ξ < I con raíces imaginarias conjugadas.


La respuesta es:
1 w02 
y (t ) = L−1  * 2 
 s s + 2 * ξ * w0 * s + w0
2

Descomponemos la transmitancia en fracciones
1 w02 A B*s +C
* 2 = + 2
s s + 2 * ξ * w0 * s + w02 s s + 2 * ξ * w0 * s + w02

44
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 45

Análisis temporal

A=1

B = -1
C = 2*ξ*w0
luego:

1   
s + 2 * ξ * w0 −1  1 s + 2 * ξ * w0 =

−1
y (t ) = L  − 2  =L  −
2 
 s s + 2 * ξ * w0 * s + w0   s ( s + ξ * w ) 2 + w * (1 − ξ 2 )
 0 0 ( )
2 


 w0 1 − ξ 2 
1 s + ξ * w0 ξ * w0 
= L−1  − − *


s (
( s + ξ * w0 ) + w0 * (1 − ξ )
2 2
2
)
( s + ξ * w0 ) + w0 * (1 − ξ )
2 2
2
(
w0 1 − ξ 2 ) 

y como la transformada de Laplace de la función e-a*t * f( t) es:

[ ]
L e − a*t * f (t ) = F ( s + a )

L−1 [F ( s + a)]= e − a*t * f (t ) = e¨*L−1 [F ( s )]


resulta:

(
y (t ) = 1 − e −ζ *w0 *t * cos w0 1 − ξ 2 * t − ) ξ
1− ξ 2
( )
* e −ζ *w0 *t * sen w0 1 − ξ 2 * t =


(
= 1 − e −ζ *w0 *t cos w0 1 − ξ 2 * t −

ξ
1−ξ 2
) 
* sen w0 1 − ξ 2 * t 

( )
que es de tipo oscilatorio amortiguado según puede verse en la figura 3.6b. Esta
respuesta puede ponerse en otra forma:
 sen w * 1 − ξ 2 * t + Φ 
y (t ) = 1 − e −ξ *w*t *  0 
 1−ξ 2 
 

1− ξ 2
Con Φ = arc tg luego:
ξ

1− ξ 2
tg Φ = sen Φ = 1 − ξ 2 cos Φ = ξ
ξ
Esta senoide amortiguada tiene las siguientes características:

Velocidad angular w = w0 * 1 − ξ 2

1−ξ 2
Frecuencia f = w0 *
2 *π

45
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 46

Simulación y control de procesos por ordenador

2 *π
Período T= .
w0 * 1 − ξ 2
π
El rebase máximo existirá al cabo de un semiperíodo T = y vale
w0 * 1 − ξ 2
ξ *w0 *π
−  π 
−e w0 * 1−ξ 2
* sen  w0 * 1 − ξ 2 * + Φ
 w0 * 1 − ξ 2 
  = e −ξ *π 1−ξ 2

1−ξ 2

El pico siguiente de la curva corresponderá a un período y medio, es decir,


3*π
para t = y vale:
w0 * 1 − ξ 2
ξ *w0 *π
−  π 
−e w0 * 1−ξ 2
* sen  w0 * 1 − ξ 2 * + Φ
 w0 * 1 − ξ 2 
  = e −ξ *3*π 1−ξ 2

1−ξ 2

La relación de amortiguación entre el rebase máximo y el siguiente pico vale:


ξ *π
− 2*ξ *π
1− ξ 2 −
−e 1− ξ 2
ξ *3*π
=e

1− ξ 2
e
2*ξ *π
Si esta relación es de 4:1, ξ vale 1−ξ 2 obteniéndose ξ = 0,215.
4=e
e − ξ * w0 * t
La envolvente de esta curva de respuesta es: 1 +
1− ξ 2
Como medidas de la rapidez de respuesta se encuentran:
X Tiempo de retardo Td = tiempo requerido para que la respuesta alcance el 50%
del valor final.
X Tiempo de respuesta Ts = tiempo necesario para que la respuesta permanezca
constantemente dentro de un intervalo especificado de su valor final y es usual-
mente del 2% al 5%.
X Tiempo de subida Tr = tiempo que se requiere para que la respuesta ascienda
del 10% al 90 % del valor final
X Constante de tiempo predominante τ = tiempo requerido para que la envolven-
te de la respuesta alcance el 63,2% del valor final.

46
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 47

Análisis temporal

X Tiempo de establecimiento Te = tiempo requerido para que la respuesta alcan-


ce y se mantenga dentro de un margen determinado del valor final que normal-
mente es del 5% al 10%.
En la figura 3.7 se analiza la respuesta indicial para una transmitancia de 2º orden
mediante un programa en lenguaje Visual Basic, en forma similar a la efectuada en la
respuesta impulsional.

Programa de la respuesta indicial para una transmitancia de 2º orden

Option Explicit
Private Sub RespIndicialTransm2Orden_Click() 'cmdCreateTable_Click()
Dim T As Single, T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, Sigma As Single, p As Single, wcero As Single
Dim n As Integer, contador As Integer, k As Integer
Dim arcotangenteFi As Single
Dim IndicialTransm2Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Respuesta Indicial Transmitancia 2º Orden"
Range("C2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Frecuencia natural (Radianes/min)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguamiento (sigma)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de períodos"
Range("A14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0):"): Cells(3, 1) = t0 'Tiempo inicial

47
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 48

Simulación y control de procesos por ordenador

tf = InputBox("Valor final de t (tf):"): Cells(5, 1) = tf 'Tiempo final


Dt = InputBox("Incremento de t (Dt):"): Cells(7, 1) = Dt 'Incremento tiempo
n = Int(((tf - t0) / (Dt)) + 1): Cells(9, 1) = n 'Número de puntos
wcero = InputBox("Frecuencia natural (wcero)- Radianes/min:"): Cells(11, 1) = wcero
'Frecuencia natural
SigmaF: Sigma = InputBox("Factor de amortiguamiento (sigma):"):Cells(13,
1) = Sigma 'Factor de amortiguamiento
If Sigma > 1 Then Beep: Cells(13, 1) = "Sigma debe ser <1": GoTo SigmaF: 'Avisa
del error
On Error GoTo 0
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta IndicialTransm2Orden
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(15, 1) = p
Cells(p + 3, 2) = w
arcotangenteFi = Atn((Sqr(1 - Sigma ^ 2)) / Sigma)
IndicialTransm2Orden = 1 - (Exp(-Sigma * wcero * w)) * (Sin(wcero * (Sqr(1 -
Sigma ^ 2)) * w + arcotangenteFi)) / (Sqr(1 - Sigma ^ 2))
Cells(p + 3, 3) = IndicialTransm2Orden
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(15, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 2), Cells(p + 3, 3)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus carateristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA INDICIAL TRANSMITANCIA 2º Orden"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Respuesta"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
With ActiveChart.Parent
.Left = 200:
.Top = 20:
End With
'El programa termina en una celda vacía

48
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 49

Análisis temporal

Range("A17").Select
ActiveCell.FormulaR1C1 = ""
Range("A17").Select
Selection.Font.Bold = True
'ActiveChart.HasLegend = False
'ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
End Sub

Respuesta
Indicial
Tinicial Tiempo
Transmitancia
2º Orden

0 0 4,6757E-09
Tfinal 0,01 4,997E-05
30 0,02 0,00019973 RESPUESTA INDICIAL TRANSMITANCIA 2º Orden

Incremento
0,03 0,00044907 2
tiempo 1,8
0,01 0,04 0,00079777 1,6
1,4
Respuesta

Nº de puntos 0,05 0,00124559 1,2


1 Serie1
3001 0,05999999 0,00179229 0,8
0,6
Frecuencia 0,4
natural 0,06999999 0,00243761 0,2
(Radianes/min) 0
0 5 10 15 20 25 30 35
1 0,07999999 0,00318131
Tiempo
Factor de
amortiguamiento 0,08999999 0,0040231
(sigma)
0,1 0,09999999 0,0049627
Valor de p - nº de
0,10999998 0,00599983
períodos
2999,05908 0,11999998 0,00713419

Fig. 3.7 - Programa de la respuesta indicial para una transmitancia de 2º orden

c) Sistema con amortiguamiento crítico ξ = 1 (fig. 3.6c).


En este caso, la respuesta es:

1 w02  1 w02 
y (t ) = L−1  * 2  = L−1  * 
2 
 s s + 2 * ξ * w0 * s + w0   s ( s + w0 ) 
A * (s + w0 ) + B * s + C * s * (s + w0 )
2
w02 A B C
= + + =
s * (s + w0 ) s (s + w0 ) s + w0
2 2
s * ( s + w0 ) 2

w02 = A * w02 A=1

0 = B + C * w0 + A * 2 * w B = -w0
0 = A+C C = -1
luego:
1 w0 1 
y (t ) = L−1  − 2
−  = 1 − e − w0 *t * (1 + w0 * t )
 s ( s + w0 ) s + w0 
que es una respuesta uniformemente creciente de forma exponencial.

49
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 50

Simulación y control de procesos por ordenador

d) Sistema sobreamortiguado ξ > 1 y raíces reales (fig. 3.6d).

1 w02 
y (t ) = L−1  * 2 
2 
 s s + 2 * ξ * w0 * s + w0 

Las raíces del denominador son:


s1 = 0

s2 = −ξ * w0 + w0 * ξ 2 − 1

s3 = −ξ * w0 − w0 * ξ 2 − 1
luego:

1 w02 A B C
* 2 = + +
s s + 2 * ξ * w0 * s + w0
2
s s + ξ * w0 − w0 ξ − 1 s + ξ * w0 − w0 ξ 2 − 1
2

Igualando numeradores y efectuando operaciones resulta:


[
w02 = A * ξ * wo2 − wo2 * (ξ 2 − 1) ]
[ ] [
0 = A * 2 * ξ * w0 + B * ξ * w0 + w0 * ξ 2 − 1 + C * ξ * w0 − w0 * ξ 2 − 1 ]
0 = A+ B+C
Y de aquí resulta:
A =1
ξ + ξ 2 −1
B=−
2 * ξ 2 −1
ξ − ξ 2 −1
C=+
2 * ξ 2 −1

luego:
1 ξ + ξ 2 − 1 1 ξ − ξ 2 −1 1 
y (t ) = L−1  − *
( + *
) =
 s 2 * ξ 2 − 1 s + w0 * ξ − ξ 2 − 1 2 * ξ 2 − 1 s + w0 * ξ + ξ 2 − 1  ( )
ξ + ξ 2 −1 − w0 * ξ − ξ 2 −1 *t ξ − ξ 2 −1 − w0 * ξ + ξ 2 −1 *t
= 1− *e  
+ *e  

2 * ξ 2 −1 2 * ξ 2 −1

Que es una curva de respuesta aperiódica sin oscilación, con una velocidad de
crecimiento que disminuye a medida que aumenta el coeficiente de amorti-
guamiento.

50
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 51

Análisis temporal

Ejercicios
3.1 Determinar la respuesta obtenida al cerrar un circuito eléctrico en serie compues-
to por una resistencia R, un condensador de capacidad C que está cargado ini-
cialmente y una bobina de coeficiente de auto inducción L.
3.2 Determinar la transmitancia de un instrumento transductor de presión de campo
de medida 0-100 bar, sabiendo que al aplicársele un escalón de 1 bar se obtiene
la respuesta de la figura.

3.3 Determinar las respuestas impu1sional, indicia1 y en rampa de un controlador


proporcional de transmitancia unidad.
3.4 Determinar la respuesta indicial de una batería de dos reactores perfectamente
agitados según la figura.

3.5 Determinar la respuesta indicial del tanque de la figura, considerando como


señal de entrada el punto de consigna del controlador de nivel LIC de acción
proporcional con ganancia 2 (Banda proporcional 50%) y como señal de salida la
que va a la válvula de control procedente del LIC. Las transmitancias del trans-
misor y de la válvula de control son la unidad.

51
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 52

Simulación y control de procesos por ordenador

3.6 Dibujar la respuesta impulsional de una transmitancia de primer orden


1/(T1*s+1) con constante de tiempo T1 = 0,5 minutos y comprobarla con un orde-
nador.
3.7 Un termopar (elemento de temperatura que genera milivoltios de fuerza electro-
motriz) está situado en una tubería dentro de una sonda y sometido a un inter-
valo de temperaturas de trabajo de 0 a 350 °C. Sabiendo que su transmitancia es
1/(1 +sT1) y que su constante de tiempo es T1 = 0,2 minutos, determinar su res-
puesta indicial y representarla, comprobando la curva obtenida con un ordena-
dor.
3.8 Determinar y dibujar la respuesta indicial de un proceso cuya transmitancia es
1/(2s2 + 3s + 1).
3.9 En un ensayo realizado en un controlador proporcional de transmitancia 2, la
variable de proceso que se está simulando pasa del 20% al 40%. Determinar y
dibujar la curva de respuesta correspondiente.
3.10 Un controlador proporcional + derivado de transmitancia 0,5(1 +2s) es sometido
a una variación en impulso en su variable de proceso. Determinar y dibujar la
curva de respuesta correspondiente.

52
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 53

Capítulo 4

Diagrama de bloques

4.1 Introducción
Un sistema puede contener varias transmitancias de más o menos complejidad o bien
incluso una sola. Podemos analizar un sistema en una planta química estudiándolo
como una sola transmitancia o bien descomponiéndolo en una serie de transmitancias,
según cuales sean las señales de entrada y de salida consideradas.
Por ejemplo, en la figura 4.1a,b,c se muestran los diagramas de bloques correspondien-
tes a:
X Control de nivel de un tanque.
X Control de temperatura de un intercambiador.
X Control de caudal en una tubería.

Un proceso industrial que englobara los tres anteriores dispuestos en serie tendría un
diagrama de bloques relativamente complejo. En caso de que fuera necesario obtener
el bloque total, sería necesario descomponer el proceso en bloques más pequeños y
operar con ellos para resolver, paso a paso, el problema.
Estos bloques pueden estar en serie (posición LIC y V de la figura 4.1a), o bien en para-
lelo (posición V1 tubería 1 y posición V2 tubería 2 de la figura 4.1c), o bien en realimen-
tación (figura 4.1b), e incluso a veces, adoptan formas especiales tal como en la figura
4.1d.
Veamos cómo resolver cada una de estas disposiciones.

4.2 Bloques en serie

Sabemos que: y/x = W1 z/y = W2


luego: z z y
= * = W1 *W2
x y x

Así pues, la transmitancia o función de transferencia resultante de dos o más bloques


en serie es igual al producto de las transmitancias de cada uno de los bloques dispues-
tos en serie.

53
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 54

Simulación y control de procesos por ordenador

Fig. 4.1 Ejemplos de diagramas de bloques

54
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 55

Diagrama de bloques

4.3 Bloques en paralelo

Como W1 = y1/x
W2 = y0/x
Y = y 1 + y0

Y de aquí: y y1 + y0 y1 y0
= = + = W1 + W0
x x x x
Es decir
X→ W1 W2 →y

La transmitancia de dos o más bloques en paralelo es igual a la suma de las transmi-


tancias de cada uno de los bloques dispuestos en paralelo.

4.4 Bloques en realimentación

De la figura se deduce:

y
µ=
x−β*y

Luego: y = µ *x − µ *β * y y * (1 + µ * β ) = µ * x

y µ
=
x 1+ µ * β

Y por tanto:

55
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 56

Simulación y control de procesos por ordenador

4.5 Bloques en cadenas cruzadas


Estos bloques no están dispuestos ni en serie ni en paralelo, ni en realimentación, sino
que presentan un cruzamiento de las cadenas.

Convendría trasladar la salida de D hacia el nudo 1, y de este modo, el diagrama que-


dará reducido a dos realimentaciones. En el diagrama se han colocado los valores de
las entradas y las salidas, y se ha dibujado el diagrama equivalente, indicándose con
trazos discontinuos los cambios realizados.

Debe verificarse que las señales a la entrada a C sea la misma en ambos casos. Luego:

 y  y 
D * y + A* x + B *  = A* x + B * + D * Z * y 
 C  C 

1
Luego: Z=
A
En forma análoga determinaríamos el valor de la transmitancia T, en la cual se ha tras-
ladado el punto de arranque de 4 a 5.

56
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 57

Diagrama de bloques

Debe verificarse que las señales a la entrada de C sean iguales. Luego:

 y
D * y + A *  x + B *  = A * (x + B * Z * y )+ D * y
 C

1
Luego: Z=
C
En consecuencia, tanto si se traslada el punto de arranque de la señal de entrada, como
si se cambia el punto de ataque de la señal de salida, el bloque tiene una transmitancia
que es la inversa de la transmitancia del bloque afectado que se sobrepasa.

4.6 Ejemplo
Con estas reglas es fácil obtener el bloque equivalente en un diagrama de bloques.
Como ejercicio desarrollaremos la simplificación del esquema de bloques del proceso
de la figura 4.1e.
El correspondiente diagrama de bloques es:

En el diagrama se han colocado los valores de las unidades de las variables de entrada
y de salida para una más fácil comprensión.
Los datos de que se dispone son:
Transmitancia del tanque + bomba + tubería = T
Transmitancia del intercambiador = I1 e I2
(I1 señal de entrada – m3/h de líquido)
(I2 señal de entrada - Tm/h de vapor)
Transmitancia de la tubería = t1 y t2
(t1 señal de entrada – m3/h)
(t2 señal de entrada - pH
Transmitancia de los controladores:

57
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 58

Simulación y control de procesos por ordenador

Nota: A señalar que, tal como se verá más adelante, las transmitancias de los controla-
dores son:
Proporcional = KP (KP es la ganancia)

Proporcional + Integral =

(Ti es la constante de tiempo de la acción integral en minutos/repetición)

Proporcional+integral+derivativo =

(Td es la constante de tiempo de la acción derivativa en minutos de anticipo)

Transmitancia de los transmisores y válvulas = 1


Así pues, el diagrama de bloques inicial, considerando que el punto de consigna de la
temperatura está en el 50% de la escala (valor 0,5) se transforma en:

58
Simulaci n y control_04.qxp 31/07/2007 17:31 PÆgina 59

Diagrama de bloques

Ejercicios

4.1 Obtener el bloque resultante de:

4.2 Determinar el bloque resultante de

4.3 Dado el proceso de la figura, dibujar el diagrama de bloques y obtener el bloque


resultante.

4.4 En el control de temperatura de la figura se añade un segundo intercambiador


en paralelo. Dibujar el correspondiente diagrama de bloques y simplificarlo.

59
Simulaci n y control_04.qxp 31/07/2007 17:31 PÆgina 60

Simulación y control de procesos por ordenador

4.5 En el proceso de la figura se encuentran unidos en serie un control de nivel y un


control de temperatura. Dibujar el diagrama de bloques correspondiente.

4.6 En el proceso de la figura existe un control de nivel, un control de temperatura


y un control de caudal. Dibujar el correspondiente diagrama de bloques y sim-
plificarlo.

4.7 Dibujar el diagrama de bloques del reactor de la figura, sabiendo que el control
de temperatura es en cascada, es decir, el controlador de temperatura TRC del
producto manda el punto de consigna del controlador de temperatura del vapor.

60
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 61

Capítulo 5

Análisis frecuencial

5.1 Introducción
Hasta el momento se han descrito las respuestas ante una entrada en impulso y en esca-
lón, es decir, las respuestas impulsional e indicial. Existe otro tipo de ensayo que puede
efectuarse en el propio proceso y en los instrumentos de control, y que consiste en
introducir como señal de entrada una función senoidal; la respuesta obtenida se deno-
mina respuesta frecuencial. Determinemos matemáticamente esta respuesta.
Sea una transmitancia W:
X(t) → W (p) → y(t)

Siendo la señal de entrada o de excitación una función senoidal, tendrá la forma:

en la que w es la velocidad angular del movimiento senoidal desarrollado por un punto


al girar a dicha velocidad describiendo una circunferencia de radio A.
El movimiento senoidal (fig. 5.1) se genera proyectando el movimiento uniforme del
punto en la circunferencia sobre un sistema de coordenadas: en abscisas se encuentra
el tiempo y en ordenadas figura la proyección vertical del punto en cada instante.
Existirá la equivalencia:

Fig. 5.1 Movimiento senoidal

61
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 62

Simulación y control de procesos por ordenador

Siendo la transformada de Laplace X(s) de !a señal de entrada:


A* w
X ( s ) = L( A * sen wt ) =
s2 + w2

Y expresándose la transmitancia como:


N ( s)
W ( s) =
D( s)

Y si las raíces del denominador o polos de la transmitancia obtenida al igualar a cero


D(s) son p1, p2, p3,… pi, … resulta:

B C N N ( s)
W ( s) = + + ... + =
s + p1 s + p2 s + pi D ( s )
Luego:
N (s) A * w B C N P Q
Y (s) = * 2 2
= + + ... + + + =
D( s) s + w s + p1 s + p2 s + pi s + jw s − jw

=
[B * ( s + p )...(s + p ) * (s
2 i
2
+ w 2 ) + C * ( s + p1 )...( s + pi ) * ( s 2 + w 2 ) + ... + P * D ( s ) * ( s − jw) + Q * D ( s ) * ( s + jw) ]
D( s) * ( s 2 + w2 )

No es necesario determinar los términos B, C,.. N, ya que siendo la antitransformada


de Y(s)

 P Q 
y (t ) = B * e − p1 *t + C * e − p2 *t + ... + N * e − pi *t + L−1  + 
 s + jw s − jw 

Y siendo el sistema estable, cuando el tiempo tiende a infinito, se anularían todos los
términos: B * e − p1 *t , C * e − p2 *t , ..... N * e − pi *t ,...

Luego:
Para s = jw N ( jw) * A( w) = Q * D ( jw) * 2 jw

Para s = - jw N ( − jw) * A( w) = − P * D ( − jw) * 2 jw

Y de aquí:
N ( jw) A A *W ( jw)
Q= * =
D( jw) 2 j 2j

N (− jw) A − A * W (− jw)
P=− * =
D(− jw) 2 j 2j

62
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 63

Análisis frecuencial

Luego: − A * W (− jw) A * W ( jw)


Y (s) = +
2 j * (s + jw) 2 j * (s − jw)
Y buscando la antitransformada
A * W (− jw) − jwt A * W ( jw) jwt
y (t ) = L−1 [Y ( s )]= − *e + *e
2j 2j

W(jw) y W(-jw) son valores complejos de módulo W(jw) y argumento Φ y - Φ respecti-


vamente, según puede verse en la figura 5.2.

Fig. 5.2 Representación de transmitancias

A A e j (wt *Φ ) − e − j (wt *Φ )
y (t ) = − * W ( jw) * e − jΦ * e − jwt + * W ( jw) * e jΦ * e jwt = A * W ( jw) *
2j 2j 2j

Finalmente: y (t ) = A * W ( jw) * sen ( wt + Φ )


Esta es la respuesta frecuencial ante una señal de entrada o de excitación senoidal y
puede verse que es otra señal senoidal de módulo A*W(jw) y argumento (wt + Φ).
Comparando la respuesta con la señal de entrada x(t) = A*sen (wt) se deducen las
siguientes conclusiones:
A * W ( jw)
El cociente de módulos = W ( jw) es la ganancia del sistema, es decir:
A
amplitud señal de salida
W (jw) = Ganancia del sistema = G = --------------------------------------------------------------
amplitud señal de entrada

Y la diferencia de argumentos (wt + Φ) – wt = Φ es:

Φ = arg W (jw) = desfase entre la señal de salida y la de entrada

63
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 64

Simulación y control de procesos por ordenador

Nótese que en estas expresiones de ganancia y de desfase, la variable s de la transmi-


tancia en el dominio s se ha sustituído por jw. Análogo resultado se obtendría sustitu-
yendo el operador p en el dominio t por jw.
En la figura 5.3 puede verse la representación gráfica de la respuesta frecuencial.

Fig. 5.3 Respuesta frecuencial

Existe la siguiente equivalencia entre la velocidad angular w en radianes/minuto y la


frecuencia f en ciclos/minuto.

5.2 Representación de la ganancia y del desfase


y aplicación a una función de transferencia
de primer orden
Los valores de la ganancia y del desfase pueden representarse de varias formas: en el
plano de Bode, en el plano polar o de Nyquist y en el plano de Black.

5.2.1 Plano de Bode


En el plano de Bode se representan separadamente la ganancia y el desfase, ambos en
función de la frecuencia, expresada ésta en coordenadas logarítmicas.

amplitud señal de salida


La ganancia, que es la relación = G = ----------------------------------------------------------
amplitud señal de entrada

se representa en el diagrama en decibelios (dB) con la letra g, existiendo la equiva-


lencia: g(dB) = 20 log G
Con el fin de facilitar el paso de G a g y viceversa, se incluye la tabla 5.1.

64
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 65

Análisis frecuencial

65
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 66

Simulación y control de procesos por ordenador

El desfase se representa en grados o en radianes y en una escala lineal.


En la figura 5.4 puede verse un ejemplo de la respuesta frecuencial de una transmitan-
cia. El lector comprobará que a las frecuencias de 5, 10, 100 y 1000 rad/min las ondas de
entrada y de salida están representadas en la figura 5.4b, y que el diagrama de Bode
permite la representación cómoda de la respuesta de una transmitancia ante una onda
senoidal para un amplio margen de frecuencias. En el plano de Bode se emplean ade-
más los siguientes términos:
Década = Conjunto de frecuencias comprendidas entre dos frecuencias
límites cuyo cociente es 10.
Octava = Conjunto de frecuencias comprendidas entre dos frecuencias
límites cuyo cociente es 2..

Fig. 5.4 Representación de una respuesta frecuencial en el diagrama de Bode.

La pendiente de una recta se representa como la hipotenusa de un triángulo rectángu-


lo de base una década y de altura dB. Así se expresa en dB/década (figura 5.4).
Por ejemplo, una función de transferencia con elemento de primer orden W = 1/(1 + t·s)
daría la siguiente respuesta frecuencial, sustituyendo s por jw:
1 1 − τjw 1 − τjw 1 τw
W= = = = − j*
1 + τjw (1 + τjw) * (1 − τjw) (1 + τ w ) 1 + τ w
2 2 2 2
1 + τ 2 w2

luego: 2 2
 1   τw  1
G = módulo de W ( jw) =  2 2 
+ 2 2 
=
1+τ w  1+τ w  1 + τ 2 w2
Y haciendo τ = 1/w0 resulta:
1 1
G= y g = 20 * log
1 + ( w / w0 ) 2 1 + ( w / w0 ) 2

66
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 67

Análisis frecuencial

(
 − τw / 1 + τ 2 w2
Φ = arg W ( jw) = arc tg 
) 2

( )  = arc tg (−τw)
 1/ 1 + τ w
2 2

 − w
O bien: Φ = arc tg  
 w0 
Veamos las asíntotas de ambas curvas
Si w → , G = 1, g = 20 * log 1 = 0 que es una recta.
8

Si w → , G = 0, g = 20 * log 0 = - que es indeterminado. Para resolver esta indeter-


8

8
minación se calcula el valor de la expresión de la ganancia en el infinito; como el 1 es
despreciable frente a (w/w0)2 resulta:

 − w w
Φ = arc tg   g = −20 * log = −20 * log w + 20 * log w0
 w0  w0
La ecuación g = −20 * log w + 20 * log w0
es una recta de pendiente -20 dB/década y que corta en el origen (w = 0) en:
g=20*log wo, Φ = -90º
Estas dos asíntotas

se cortan en el punto w = wo y para este valor se tiene:

Con el fin de facilitar la representación de la respuesta frecuencial en el diagrama de


Bode, es conveniente disponer los datos determinados según la marcha de los cálculos
anteriores, en una tabla con el siguiente cuadro de valores:
w G g(dB) Asíntotas F Asíntotas
0 1 0 0
→0 1 0 g=0 Φ=0
w0 1/? 2 -3 - 45º
? 0 -? - 90º
→? w0/w 20*log w 0/w g=-20 log w + 20 log w 0 - 90º Φ = - 90º

Y a partir de los mismos pueden dibujarse las curvas de ganancia y de desfase corres-
pondientes. El programa y los resultados en lenguaje Visual Basic de Excel de la res-
puesta frecuencial de una transmitancia de 1º orden puede verse en la figura 5.5.

67
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 68

Simulación y control de procesos por ordenador

Programa de respuesta frecuencial de una transmitancia de 1º orden

Option Explicit
Private Sub RespFrecuencialTransm1Orden_Click() 'cmdCreateTable_Click()
Dim T1 As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, Sigma As Single, j As Single, p As Single
Dim A As Single
Dim funcionx As Single, funciony As Single, funcionG As Single
Dim funciondb As Single, funcionArg As Single
Dim n As Integer, contador As Integer, k As Integer
Dim arcotangente As Single, gananciaentrada As Single
Dim IndicialTransm2Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Módulo de la senoide de entrada"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Ganancia senoide de entrada"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select

68
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 69

Análisis frecuencial

ActiveCell.FormulaR1C1 = "Constante de Tiempo (minutos)"


Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A16").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A = InputBox("Módulo de la senoide de entrada (A):"): Cells(11, 1) = A 'Módulo de
la senoide de entrada
gananciaentrada = 20 * Log(A) / Log(10#): Cells(13, 1) = gananciaentrada
T1 = InputBox("Constante de Tiempo (T1)- Minutos:"): Cells(15, 1) = T1 'Constante
de Tiempo
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Transmitancia 1º orden
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(17, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 4) = w
funcionG = A / Sqr(1 + (T1 * w) ^ 2)
funciondb = 20 * Log(funcionG) / Log(10#)
funcionArg = Atn(-T1 * w) * (180 / 3.14)
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 5) = funciondb 'Ganancia en decibelios
Cells(p + 3, 6) = funcionArg 'Desfase en grados sexagesimales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(17, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With

69
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 70

Simulación y control de procesos por ordenador

With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL TRANSMITANCIA 1º Orden"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
radianes"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 370:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A20").Select
ActiveCell.FormulaR1C1 = ""
Range("A20").Select
Selection.Font.Bold = True
End Sub

70
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 71

Análisis frecuencial

Fig. 5.5 Respuesta frecuencial de una transmitancia de 1º orden

5.2.2 Plano polar o de Nyquist


En este plano, los valores de la ganancia G y del desfase Φ se disponen en única curva.
El sistema de coordenadas es polar y cada punto de la curva define un módulo (distan-
cia al origen) que equivale a la ganancia G, y un argumento (ángulo con respecto al eje
de origen) que es igual al desfase anotándose sobre cada punto la frecuencia determi-
nada a que corresponde. La función queda definida desde w= 0 a w= .
8

En el caso de una transmitancia de primer orden de módulo A, se tiene:


A A * (1 − τjw) A * (1 − τjw) A A *τw
W= = = = − j*
1 + τjw (1 + τjw) * (1 − τjw) (1 + τ w ) 1 + τ w
2 2 2 2
1 + τ 2 w2
El módulo y el argumento son:
2 2
 A   A *τw  A
G = módulo de W ( jw) =  2 2 
+ 2 2 
=
1+τ w  1+τ w  1 + τ 2 w2

 A *τw 
− 
Argumento = Φ = arc tg  1 + τ w
2 2
 = arc tg (−τw)
 A 
 
 1 + τ 2 w2 

El lugar geométrico de los extremos del vector de módulo G y argumento Φ al variar la


frecuencia w de 0 radianes/minuto a es el diagrama de Nyquist.
8

En el programa anterior de la respuesta frecuencial en el diagrama de Bode teníamos


los valores de la ganancia y el desfase por lo que bastará calcular sus proyecciones en
el eje real e imaginario y representarlas para tener el diagrama de Nyquist (figura 5.6).

71
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 72

Simulación y control de procesos por ordenador

Programa respuesta frecuencial transmitancia de 1º orden en diagrama de Nyquist

Option Explicit
Private Sub RespFrecuencialTransm1OrdenNyquist_Click() 'cmdCreateTable_Click()
Dim T1 As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, Sigma As Single, p As Single
Dim A As Single, ParteReal As Single, ParteImaginaria As Single
Dim funcionG As Single, funcionArg As Single
Dim n As Single, contador As Integer, k As Integer
Dim gananciaentrada As Single
Dim IndicialTransm2Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Parte Real G"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Parte Imaginaria G"
Range("G2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Módulo Transmitancia 1º orden"

72
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 73

Análisis frecuencial

Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Constante de Tiempo (minutos)"
Range("A14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A = InputBox("Módulo transmitancia 1º orden (A):"): Cells(13, 1) = A 'Módulo
Transmitancia 1º orden
T1 = InputBox("Constante de Tiempo (T1)- Minutos:"): Cells(15, 1) = T1 'Constante
de Tiempo
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) Or.
Abs(Cells(contador + 3, 7)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = ""
Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = "": Cells(contador + 3,
7) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Transmitancia 1º orden en el diagrama
de Nyquist
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 5) = w
funcionG = A / Sqr(1 + (T1 * w) ^ 2) 'Relación amplitudes
funcionArg = Atn(-T1 * w) * (180 / 3.14) 'grados
ParteReal = funcionG * Cos(Atn(-T1 * w)) 'Parte real vector de módulo G y
argumento funcionArg (grados)
ParteImaginaria = funcionG * Sin(Atn(-T1 * w)) 'Parte imaginaria del vector de
módulo G y argumento funcionArg (grados)
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 4) = funcionArg
Cells(p + 3, 6) = ParteReal
Cells(p + 3, 7) = ParteImaginaria
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 6), Cells(p + 3, 7)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas

73
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 74

Simulación y control de procesos por ordenador

With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL TRANSMITANCIA 1º Orden -
DIAGRAMA DE NYQUIST"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Vector (Ganancia -
Desfase) - Frecuencia w"
.Axes(xlValue, xlPrimary).HasTitle = True
'.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 430:
.Top = 20:
End With (sigue)

Tinicial Tiempo Tiempo Parte


Desfase - Parte Real
(radianes (radianes Ganancia - G (radianes Imagina-
grados G
/min) /min) /min) ria G
4,9998750 -
0,01 0,01 4,99993753 -0,28662181 0,01
7 0,02499937
Tfinal
-
(radianes 0,11 4,99245453 -3,14969277 0,11 4,9849205
0,27417064
/min)
0,2100000 4,9454760 -
100 4,9726634 -5,99713326 0,21000001
1 6 0,51927501
Increment
o tiempo 4,8826932 -
0,31 4,94099855 -8,81520176 0,31
(radianes 9 0,75681746
/min)
4,7983493 -
0,1 0,41 4,89813709 -11,5910025 0,41
8 0,98366159
Nº de 0,5099999 4,6947255 -
4,84495878 -14,312808 0,50999999
puntos 9 1 1,19715488
0,6100000 4,5744609 -
1000 4,78249979 -16,9703102 0,61000001
1 8 1,39521062
Valor de
0,7100000 4,4403986 -
p - nº de 4,71189928 -19,5547771 0,71000004
4 9 1,57634163
periodos
998,99047 0,8100000 -
4,6343503 -22,0591316 0,81000006 4,2954402
9 6 1,73965347
Módulo
Transmi- 0,9100000 -
4,55105257 -24,4779472 0,91000009 4,142416
tancia 1º 9 1,88479948
orden
1,0100001 3,9839842 -
5 4,46317387 -26,8073692 1,01000011
1 3 2,01191235
Constante
1,1100001 3,8225567 -
de Tiempo 4,37181711 -29,045002 1,11000013
3 3 2,12151933
(minutos)
1,2100001 3,6602549 -
0,5 4,27799892 -31,1897526 1,21000016
6 6 2,21445441

74
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 75

Análisis frecuencial

'El programa termina en una celda vacía


Range("A20").Select
ActiveCell.FormulaR1C1 = ""
Range("A20").Select
Selection.Font.Bold = True
End Sub

Fig. 5.6 Plano polar o de Nyquist de la respuesta frecuencial de una transmitancia de primer orden

La curva corresponde a una circunferencia. De la expresión de la transmitancia, se


tiene:
En la parte real:

En la parte imaginaria:

Y elevando al cuadrado y reordenando resulta la ecuación: X2 + Y2 - X = 0

O sea: que es una semicircunferencia negativa de centro (1/2, 0) y

radio ½.

5.2.3 Plano de Black


El plano de Black consiste en dos ejes de coordenadas: el desfase se representa en el eje
de abscisas, la ganancia en dB se representa en el eje de ordenadas y los valores de w se
disponen sobre la curva (cada punto equivale a una determinada frecuencia). Como
antes, la representación de la función de transferencia de primer orden W = 1/(1 + τ s)
puede verse en la figura 5.7, habiendo utilizado los mismos valores de la tabla anterior.

75
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 76

Simulación y control de procesos por ordenador

Fig.5.7 Plano de Black de la respuesta frecuencial de una transmitancia de primer orden.

5.3 Representación de la respuesta frecuencial


de la función de retardo y = e-Ts
Sustituyendo en la función s por jw resulta:

Y de aquí:

Obtenemos la siguiente tabla de valores:

En la figura 5.8 puede verse la representación correspondiente junto con el programa


en Visual Basic de Excel.

Programa de respuesta frecuencial de la función de retardo

Option Explicit
Private Sub RespFrecuencialFuncionRetardo_Click() 'cmdCreateTable_Click()
Dim T1 As Single, t0 As Single
Dim Dt As Single, tf As Single
Dim w As Single, Sigma As Single
Dim j As Single, p As Single
Dim A As Single
Dim funcionx As Single, funciony As Single, funcionG As Single
Dim funciondb As Single, funcionArg As Single, funcionZ As Single
Dim n As Integer, contador As Integer, k As Integer
Dim arcotangente As Single
Dim IndicialTransm2Orden As Single
'Títulos en celdas

76
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 77

Análisis frecuencial

Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Constante de Tiempo (minutos)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A12").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
T1 = InputBox("Constante de Tiempo (T1)- Minutos:"): Cells(13, 1) = T1 'Constante
de Tiempo
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3, 4) =
"": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = ""

77
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 78

Simulación y control de procesos por ordenador

contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta a la Funcion de Retardo
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(13, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 4) = w
funcionx = Cos(-T1 * w)
funciony = Sin(-T1 * w)
funcionG = Sqr(funcionx ^ 2 + funciony ^ 2) 'funciong (G) = 1
funciondb = 20 * Log(funcionG) / Log(10) 'ganancia (dB) = 20 log G = 0
funcionZ = Tan(-T1 * w)
If Sgn(funcionx) = 1 Then funcionArg = -T1 * w * (180 / 3.14) 'funcionArg=arc
(funcionZ)= arctan(tan(-T1*w))=-T1*w
If Sgn(funcionx) = -1 Then funcionArg = -180 - T1 * w * (180 / 3.14)
If Sgn(funcionx) = 0 Then funcionArg = 0
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 5) = funciondb 'Ganancia en decibelios
Cells(p + 3, 6) = funcionArg 'Desfase en grados sexagesimales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(13, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus carateristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL FUNCION DE RETARDO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
grados"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 370:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A15").Select
ActiveCell.FormulaR1C1 = ""

78
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 79

Análisis frecuencial

Range("A15").Select
Selection.Font.Bold = True
End Sub

Fig. 5.8 Respuesta frecuencial función de retardo

5.4 Respuesta frecuencial de una transmitancia


de segundo orden
El elemento de segundo orden típico es:

1
W ( s) =
τ s + 2ξτs + 1
2

79
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 80

Simulación y control de procesos por ordenador

Con: τ = 1/w0;
W0 = Pulsación propia;
ξ= Factor de amortiguamiento.
Para determinar la respuesta frecuencial sustituimos s por jw.
1 1 − τ 2 w 2 − 2ξτjw
W= = =
− τ 2 w 2 + 2ξτjw + 1 (1 − τ 2 w 2 + 2ξτjw) * (1 − τ 2 w 2 − 2ξτjw)

1 − τ 2 w2 2ξτw
= − j*
(1 − τ 2
w ) + 4ξ
2 2 2 2
j w 2
(1 − τ 2
w 2 2
) + 4ξ 2
j 2 w2
Luego:
1
G=
(1 − τ 2
w 2 2
) + (2ξτw) 2

O bien si τ = 1/w0 resulta:


1
G=
2
  w 
2
  2
1 −    +  2ξ w 
  w0    w0 
 

 2ξτw   2ξw / w0 
Φ = arc tg  − 2 2 
= arc tg  − 
2 
 1−τ w   1 − (w / w0 ) 

5.4.1 Plano de Bode


Para representar la respuesta en el diagrama de Bode, confeccionamos el siguiente cua-
dro de valores:

w G g(dB) Asíntotas Φ Asíntotas


0 1 0 0
→0 1 0 g=0 Φ=0
w0 1/2ξ - 20 log(2 ξ) - 90º
? 0 -? 0º
2 g=-40 log w + 4 0 log Arc tg
→? (w0/w) 20*log (w0/w)
w0 (2ξw0/w

Las asíntotas son las siguientes:


Si w → 0, G=1 g=0 Φ = arc tg 0 = 0
Si w → , G=0 g = 20 log 0 = - , que es indeterminado.
8

Resolviendo esta indeterminación resulta:

80
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 81

Análisis frecuencial

Y por lo tanto:

Que es una recta de pendiente -40 dB/década y que corta en el origen (w = 1) en


g=40*log w0
Las dos asíntotas: g=0
g = -40*logw+40*logw 0
se cortan en el punto w = W0 g = 20*log (1/2 ξ )

Φ = −90º

Fig. 5.9 Diagrama de Bode de una transmitancia de segundo orden

En la figura 5.9 puede verse la representación de la respuesta frecuencial. Para definir


la curva se han determinado algunos valores adicionales. Por ejemplo, los máximos y
mínimos:
−3 / 2
 2
2
   w
1   w      w  2ξ 
2 2
w   w  
G = 1 −    +  2ξ   * 21 −    *  − 2  + 2 2ξ  * 
2   w0    w0      w0    w   w0  w0 
  0

Que igualada a 0 da: w=0

, que es la frecuencia de resonancia para la cual la relación

de amplitudes alcanza un máximo de:


En la figura 5.10 el programa y una aplicación en Visual Basic de Excel.

Programa de respuesta frecuencial de transmitancia de segundo orden

Option Explicit
Private Sub RespFrecuencialTransmitancia2ºOrden_Click() 'cmdCreateTable_Click()
Dim T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, Sigma As Single

81
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 82

Simulación y control de procesos por ordenador

Dim j As Single, p As Single


Dim A As Single
Dim funcionx As Single, funciony As Single, funcionG As Single
Dim funcionZ As Single, funciondb As Single, funcionArg As Single
Dim n As Integer, contador As Integer, k As Integer
Dim arcotangente As Single
Dim IndicialTransm2Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Módulo senoide de entrada"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Constante de Tiempo (minutos)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguamiento - sigma"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A16").Select
Selection.Font.Bold = True

82
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 83

Análisis frecuencial

'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A = InputBox("Módulo de la senoide del sistema:"): Cells(11, 1) = A 'Módulo de la
senoide de entrada
T1 = InputBox("Constante de Tiempo (T1)- Minutos:"): Cells(13, 1) = T1 'Constante
de Tiempo
Sigma = InputBox("Factor de amortiguamiento - sigma:"): Cells(15, 1) = Sigma
'Factor de amortiguamiento
'Borra las celdas de la curva anterior
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 5)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Transmitancia 2º orden
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(17, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 4) = w
funcionx = A * (1 - (T1 * w) ^ 2) / ((1 - (T1 * w) ^ 2) ^ 2 + (2 * Sigma * T1
* w) ^ 2)
funciony = -A * (2 * Sigma * T1 * w) / ((1 - (T1 * w) ^ 2) ^ 2 + (2 * Sigma *
T1 * w) ^ 2)
funcionG = A / (Sqr((1 - (T1 * w) ^ 2) ^ 2 + (2 * Sigma * T1 * w) ^ 2))
funciondb = 20 * Log(funcionG) / Log(10)
funcionZ = -(2 * Sigma * T1 * w) / (1 - (T1 * w) ^ 2) 'funciony / funcionx
If Sgn(funcionx) = 1 Then funcionArg = (Atn(funcionZ)) * (180 / 3.14)
If Sgn(funcionx) = -1 Then funcionArg = -180 + (Atn(funcionZ)) * (180 / 3.14)
If Sgn(funcionx) = 0 Then funcionArg = 0
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 5) = funciondb 'Ganancia en decibelios
Cells(p + 3, 6) = funcionArg 'Desfase en grados sexagesimales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(17, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"

83
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 84

Simulación y control de procesos por ordenador

End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL TRANSMITANCIA DE 2º ORDEN"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
grados"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With (sigue)

Tiempo Ganancia - Tiempo Ganancia Desfase -


Tinicial(radianes/min)
(radianes/min) G (radianes/min) en dB grados
-
0,1 0,1 40,000351 0,1
32,041275 0,03439521
-
Tfinal(radian es/min) 0,2 40,0014114 0,2
32,0415077 0,06879225
-
1000 0,30000001 40,0031738 0,30000001
32,0418892 0,10319296
Incremento tiempo -
0,40000001 40,0056458 0,40000001
(radianes/min) 32,0424271 0,13759917
-
0,1 0,5 40,0088234 0,5
32,0431137 0,17201272
-
Nº de puntos 0,60000002 40,0127029 0,60000002
32,0439568 0,20643543
-
9999 0,70000005 40,0172958 0,70000005
32,0449562 0,24086915
Módulo senoide de -
0,80000007 40,0225906 0,80000007
entrada 32,0461044 0,27531573
-
40 0,9000001 40,028595 0,9000001
32,0474052 0,30977699
Constante de Tiempo -
1,00000012 40,0353088 1,00000012
(minutos) 32,0488625 0,34425476
-
0,03 1,10000014 40,0427322 1,10000014
32,0504723 0,37875095
Factor de
amortiguamiento - 1,20000017 40,0508652 1,20000017 -
sigma 32,0522385 0,41326734
-
0,1 1,30000019 40,0597115 1,30000019
32,0541573 0,44780585
Valor de p - nº de -
1,40000021 40,0692673 1,40000021
periodos 32,0562286 0,48236826
-
9998,02832 1,50000024 40,0795364 1,50000024
32,0584526 0,51695651

RESPUESTA FRECUENCIAL TRANSMITANCIA DE 2º ORDEN

100
Ganancia - dB, Desfase - grados

50

0
0,1 1 10 100 1000
Serie1
-50
Serie2
-100

-150

-200
Tiempo (radianes/min)

Fig.5.10 Programa y resultados de la respuesta frecuencial de una transmitancia de 2º orden

84
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 85

Análisis frecuencial

'Cambia el gráfico de posición


With ActiveChart.Parent
.Left = 370:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A19").Select
ActiveCell.FormulaR1C1 = ""
Range("A19").Select
Selection.Font.Bold = True
End Sub

En la figura 5.11 puede verse la respuesta en el plano de Black.

Fig. 5.11 Respuesta frecuencial en el plan de Black de una transmitancia de 2º orden

En la figura 5.12 se representa la respuesta frecuencial de un transmisor de presión


diferencial comercial.

Fig. 5.12 Respuesta frecuencial transmisor de presión diferencial Honeywell ST3000. Fuente: TNO

5.4.2 Plano polar o de Nyquist


En este plano, estudiado en la respuesta frecuencial de una transmitancia de primer
orden, los valores de la ganancia G y del desfase Φ se disponen en única curva en un
sistema de coordenadas polar. Cada punto de la curva define un módulo (distancia al
origen) que equivale a la ganancia G, y un argumento (ángulo con respecto al eje de ori-
gen) que es igual al desfase anotándose sobre cada punto la frecuencia determinada a
que corresponde. La función queda definida desde w= 0 a w= con el elemento de
8

segundo orden típico

85
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 86

Simulación y control de procesos por ordenador

Con: τ = 1/w0;
W0 = Pulsación propia;
ξ = Factor de amortiguamiento.
La parte real de la respuesta frecuencial es:

La parte imaginaria de la respuesta frecuencial es:

El módulo del vector:

Y el desfase:

Se observa que para w = 0: G = 1 y Φ = 0;


Para w = 1/t: G = 1/2ξ y Φ = - π/2;
Para w → : G = 0, y Φ = - π.
8

Modificando el programa anterior de la respuesta frecuencial en el diagrama de Bode,


incluyendo las proyecciones en el eje real (de las X) y en el eje imaginario (de las Y), se
obtienen los siguientes resultados:

Programa respuesta frecuencial de una transmitancia de 2º orden en el diagrama


de Nyquist

Option Explicit
Private Sub RespFrecuencialTransmitancia2ºOrdenNyquist_Click() 'cmdCreateTable_Click()
Dim T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, Sigma As Single
Dim j As Single, p As Single, ParteReal As Single, ParteImaginaria As Single
Dim A As Single, funcionx As Single, funciony As Single
Dim funcionG As Single, funcionZ As Single, funcionArg As Single
Dim n As Single, contador As Integer, k As Integer
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select

86
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 87

Análisis frecuencial

ActiveCell.FormulaR1C1 = "Desfase - grados"


Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Parte Real G"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Parte imaginaria G"
Range("G2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Módulo transmitancia 2º orden"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Constante de Tiempo (minutos)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguamiento - sigma"
Range("A16").Select
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A = InputBox("Módulo transmitancia 2º orden:"): Cells(13, 1) = A 'Módulo transmi-
tancia 2º orden
T1 = InputBox("Constante de Tiempo (T1)- Minutos:"): Cells(15, 1) = T1 'Constante
de Tiempo
Sigma = InputBox("Factor de amortiguamiento - sigma:"): Cells(17, 1) = Sigma
'Factor de amortiguamiento

87
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 88

Simulación y control de procesos por ordenador

'Borra las celdas de la curva anterior


contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 5)) Or
Abs(Cells(contador + 3, 5)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = "": Cells(con-
tador + 3, 7) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Transmitancia 2º orden
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 5) = w
funcionx = A * (1 - (T1 * w) ^ 2) / ((1 - (T1 * w) ^ 2) ^ 2 + (2 * Sigma * T1
* w) ^ 2)
funciony = -A * (2 * Sigma * T1 * w) / ((1 - (T1 * w) ^ 2) ^ 2 + (2 * Sigma *
T1 * w) ^ 2)
funcionG = A / (Sqr((1 - (T1 * w) ^ 2) ^ 2 + (2 * Sigma * T1 * w) ^ 2))
funcionZ = -(2 * Sigma * T1 * w) / (1 - (T1 * w) ^ 2) 'funciony / funcionx
funcionArg = (Atn(funcionZ)) * (180 / 3.14)
'If Sgn(funcionx) = 1 Then funcionArg = (Atn(funcionZ)) * (180 / 3.14)
'If Sgn(funcionx) = -1 Then funcionArg = 180 - (Atn(funcionZ)) * (180 / 3.14)
'If Sgn(funcionx) = 0 Then funcionArg = 0
ParteReal = funcionG * Cos(funcionArg * (3.14 / 180)) 'Parte real vector de
módulo G y argumento funcionArg (grados)
ParteImaginaria = funcionG * Sin(funcionArg * (3.14 / 180)) 'Parte imaginaria
del vector de módulo G y argumento funcionArg (grados)
'If Sgn((1 - (T1 * w) ^ 2)) = -1 Then ParteImaginaria = -funcionG *
Sin(funcionArg * (3.14 / 180))
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 4) = funcionArg
Cells(p + 3, 6) = ParteReal
Cells(p + 3, 7) = ParteImaginaria
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 6), Cells(p + 3, 7)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL TRANSMITANCIA DE 2º ORDEN
- DIAGRAMA DE NYQUIST"

88
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 89

Análisis frecuencial

.Axes(xlCategory, xlPrimary).HasTitle = True


.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Eje real"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Eje imaginario"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 430:
.Top = 20:
End With (sigue)

Tiempo Parte
Tiempo Ganancia - Desfase - Parte Real
Tinicial(radianes/min) (radianes/mi imaginaria
(radianes/min) G grados G
n) G

0,01 0,01 2,00000787 -0,022930 0,01 2,00000763 -0,00080001


Tfinal(radianes/min) 0,11 2,00094914 -0,252349 0,11 2,00092983 -0,00880835
500 0,21000001 2,00346327 -0,482368 0,21000001 2,00339246 -0,01685823
Incremento tiempo
0,31 2,00756216 -0,713534 0,31 2,00740671 -0,0249879
(radianes/min)
0,1 0,41 2,01326466 -0,946405 0,41 2,01299024 -0,03323653

Nº de puntos 0,50999999 2,02059746 -1,181554 0,50999999 2,0201683 -0,04164471

5000 0,61000001 2,02959538 -1,419569 0,61000001 2,0289731 -0,05025494


Valor de p - nº de
0,71000004 2,04030108 -1,661063 0,71000004 2,03944468 -0,05911217
periodos
4999,21289 0,81000006 2,05276656 -1,906679 0,81000006 2,05163121 -0,06826439
Módulo transmitancia
0,91000009 2,06705332 -2,157090 0,91000009 2,06559014 -0,07776332
2º orden
2 1,01000011 2,08323264 -2,413016 1,01000011 2,08138728 -0,08766515
Constante de Tiempo
1,11000013 2,10138726 -2,675220 1,11000013 2,0990994 -0,09803141
(minutos)
0,2 1,21000016 2,12161231 -2,944525 1,21000016 2,11881399 -0,10892999
Factor de
amortiguamiento - 1,31000018 2,14401603 -3,221817 1,31000018 2,14063072 -0,1204363
sigma
0,1 1,41000021 2,16872168 -3,50805 1,41000021 2,16466212 -0,1326346

RESPUESTA FRECUENCIAL TRANSMITANCIA DE 2º ORDEN -


DIAGRAMA DE NYQUIST

15

10
Eje imaginario

0 Serie1
0 1 2 3 4 5 6
-5

-10

-15
Eje real

Fig. 5.13 Respuesta frecuencial de una transmitancia de 2º orden en el plano de Nyquist

89
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 90

Simulación y control de procesos por ordenador

'El programa termina en una celda vacía


Range("A19").Select
ActiveCell.FormulaR1C1 = ""
Range("A19").Select
Selection.Font.Bold = True
End Sub

Puede verse que los puntos límites del diagrama son:


τw = 0 A=1 Φ = 0 (punto en el eje real positivo)
τw = A=0 Φ = -180º (punto en el eje imaginario)
8

5.5 Análisis frecuencial de transmitancias


compuestas
La determinación de la respuesta frecuencial de transmitancias compuestas, es decir,
de sistemas cuya función de transferencia equivale al producto de transmitancias ele-
mentales, se lleva a cabo fácilmente en el plano de Bode.
Las características de representación en el plano de Bode son ideales para el análisis fre-
cuencial de dichos sistemas. En efecto, sean W1 (s), W2 (s), …, Wn (s) las transmitan-
cias elementales correspondientes.
Dibujando en el diagrama de Bode sus ganancias g1, g2, …. gn y sus desfases Φ1, Φ12
… , Φn, resulta:
W ( s ) = W1 ( s ) * W2 ( s ) * ... * Wn ( s )

La respuesta frecuencial es:


W ( jw) = W1 ( jw) * W2 ( jw) * ... * Wn ( jw)

Cada una de las transmitancias individuales puede expresarse en la forma:


W1 ( jw) = W1 ( jw) * e j *arg( W1 ( jw ))
W2 ( jw) = W2 ( jw) * e j *arg( W2 ( jw ))
------------------
Wn ( jw) = Wn ( jw) * e j *arg(W n ( jw ))
y por tanto,

W ( jw) * e j *arg( W ( jw )) = W1 ( jw) * W2 ( jw) ...Wn ( jw) * e j *[arg( W1 ( jw )) + arg( W2 ( jw )) + ...+ arg(Wn ( jw )) ]

y tomando logaritmos resulta:


log W ( jw) + j * arg W ( jw) = log W1 ( jw) + log W2 ( jw) + ... + log Wn ( jw) + j * [arg(W1 ( jw)) + arg(W2 ( jw)) + ...
+ arg(Wn ( jw))]

90
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 91

Análisis frecuencial

igualando partes reales y partes imaginarias resulta:

log W ( jw) = log W1 ( jw) + log W2 ( jw) + ... + log Wn ( jw)

arg W ( jw) = arg(W1 ( jw)) + arg(W2 ( jw)) + ... + arg(Wn ( jw))

y multiplicando por 20 la penúltima expresión y teniendo en cuenta que la ganancia en


decibelios equivale a g = 20 log G, siendo G la ganancia en amplitudes resulta:
g = g1 + g 2 + ... + g n
Φ1 = Φ1 + Φ 2 + ... + Φ n
De este modo bastará, para cada frecuencia, sumar los valores de la ganancia y del des-
fase de las transmitancias elementales para obtener la ganancia y el desfase de la trans-
mitancia compuesta.
En la figura 5.14 puede ver un programa que determina la suma de 3 transmitancias de
1º orden.

Programa de suma de transmitancias de 1º orden


Option Explicit
Private Sub RespFrecuencialTransmitanciaprimerOrden3Reactores_Click()
'cmdCreateTable_Click()
Dim T1 As Single, T2 As Single, T3 As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, Sigma As Single
Dim j As Single, p As Single
Dim A As Single
Dim G1inicial As Single, G2inicial As Single, G3inicial As Single
Dim funcionG1 As Single, funcionG2 As Single, funcionG3 As Single
Dim funciondB1 As Single, funciondB2 As Single, funciondB3 As Single
Dim funcionArg1 As Single, funcionArg2 As Single, funcionArg3 As Single
Dim funciondBsuma123 As Single, funcionArgsuma123 As Single
Dim n As Integer, contador As Integer, k As Integer
Dim arcotangente As Single
Dim IndicialTransm2Orden As Single
'Títulos en celdas
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "G1 - Reactor 1"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "G2 - Reactor 2"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "G3 - Reactor 3"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"

91
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 92

Simulación y control de procesos por ordenador

Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "dB1 Reactor 1"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Grados1 - Desfase Reactor 1"
Range("I2").Select
Selection.Font.Bold = True
Range("J2").Select
ActiveCell.FormulaR1C1 = "dB2 Reactor 2"
Range("J2").Select
Selection.Font.Bold = True
Range("K2").Select
ActiveCell.FormulaR1C1 = "Grados2 - Desfase Reactor 2"
Range("K2").Select
Selection.Font.Bold = True
Range("L2").Select
ActiveCell.FormulaR1C1 = "dB3 - Reactor 3"
Range("L2").Select
Selection.Font.Bold = True
Range("M2").Select
ActiveCell.FormulaR1C1 = "Grados3 - Desfase Reactor 3"
Range("M2").Select
Selection.Font.Bold = True
Range("N2").Select
ActiveCell.FormulaR1C1 = "dB123 - Ganancia Reactores 1+2+3"
Range("N2").Select
Selection.Font.Bold = True
Range("O2").Select
ActiveCell.FormulaR1C1 = "Grados 123 - Desfase Reactores 1+2+3"
Range("O2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Ganancia inicial Reactor 1 - G1inicial"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Constante de Tiempo Reactor 1 (minutos1)"

92
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 93

Análisis frecuencial

Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Ganancia inicial Reactor 2 - G2inicial"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Constante de Tiempo Reactor 2 (minutos2)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Ganancia inicial Reactor 3 - G3inicial"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Constante de Tiempo Reactor 3 (minutos3)"
Range("B12").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
G1inicial = InputBox("Ganancia inicial Reactor 1 (G1inicial):"): Cells(3, 2) =
G1inicial 'Ganancia inicial Reactor 1
T1 = InputBox("Constante de Tiempo (T1)- Minutos:"): Cells(5, 2) = T1 'Constante
de Tiempo Reactor 1
G2inicial = InputBox("Ganancia inicial Reactor 2 (G2inicial):"): Cells(7, 2) =
G2inicial 'Ganancia inicial Reactor 2
T2 = InputBox("Constante de Tiempo (T2)- Minutos:"): Cells(9, 2) = T2 'Constante
de Tiempo Reactor 2
G3inicial = InputBox("Ganancia inicial Reactor 3 (G3inicial):"): Cells(11, 2) =
G3inicial 'Ganancia inicial Reactor 3
T3 = InputBox("Constante de Tiempo (T3)- Minutos:"): Cells(13, 2) = T3 'Constante
de Tiempo Reactor 3
'Borra las celdas de la curva anterior
contador = 0
While Abs(Cells(contador + 3, 3)) Or Abs(Cells(contador + 3, 4)) Or Abs(Cells(con-
tador + 3, 5)) Or Abs(Cells(contador + 3, 6)) Or Abs(Cells(contador + 3, 7)) > 0
Cells(contador + 3, 3) = "": Cells(contador + 3, 4) = "": Cells(contador + 3,
5) = "": Cells(contador + 3, 6) = "": Cells(contador + 3, 7) = "": Cells(con
tador + 3, 8) = ""
Cells(contador + 3, 9) = "": Cells(contador + 3, 10) = "": Cells(contador + 3,
11) = "": Cells(contador + 3, 12) = "": Cells(contador + 3, 13) = "":
Cells(contador + 3, 14) = "": Cells(contador + 3, 15) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Transmitancia 2º orden
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 3) = w: Cells(p + 3, 7) = w
funcionG1 = G1inicial / Sqr(1 + (T1 * w) ^ 2)
funciondB1 = 20 * Log(funcionG1) / Log(10#)
funcionArg1 = Atn(-T1 * w) * (180 / 3.14)
funcionG2 = G2inicial / Sqr(1 + (T2 * w) ^ 2)
funciondB2 = 20 * Log(funcionG2) / Log(10#)
funcionArg2 = Atn(-T2 * w) * (180 / 3.14)

93
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 94

Simulación y control de procesos por ordenador

funcionG3 = G3inicial / Sqr(1 + (T3 * w) ^ 2)


funciondB3 = 20 * Log(funcionG3) / Log(10#)
funcionArg3 = Atn(-T3 * w) * (180 / 3.14)
funciondBsuma123 = funciondB1 + funciondB2 + funciondB3
funcionArgsuma123 = funcionArg1 + funcionArg2 + funcionArg3
Cells(p + 3, 4) = funcionG1 'Ganancia Reactor 1 (amplitud salida/amplitud
entrada)
Cells(p + 3, 5) = funcionG2 'Ganancia Reactor 2 (amplitud salida/amplitud
entrada)
Cells(p + 3, 6) = funcionG3 'Ganancia Reactor 3 (amplitud salida/amplitud
entrada)
Cells(p + 3, 8) = funciondB1 'Ganancia Reactor 1 en decibelios
Cells(p + 3, 9) = funcionArg1 'Desfase Reactor 1 en grados sexagesimales
Cells(p + 3, 10) = funciondB2 'Ganancia Reactor 2 en decibelios
Cells(p + 3, 11) = funcionArg2 'Desfase Reactor 2 en grados sexagesimales
Cells(p + 3, 12) = funciondB3 'Ganancia Reactor 3 en decibelios
Cells(p + 3, 13) = funcionArg3 'Desfase Reactor 3 en grados sexagesimales
Cells(p + 3, 14) = funciondBsuma123 'Ganancia Reactor 1+2+3 en decibelios
Cells(p + 3, 15) = funcionArgsuma123 'Desfase Reactor 1+2+3 en grados sexage
simales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 7), Cells(p + 3, 15)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL TRANSMITANCIA DE 2º ORDEN"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dBR1, Desfase
- ºR1, Ganancia - dBR2, Desfase - ºR2, Ganancia - dBR3, Desfase - ºR3,
Ganancia - dBR123, Desfase - ºR123"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 920:
.Top = 20:
End With

94
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 95

Análisis frecuencial

'El programa termina en una celda vacía


Range("A19").Select
ActiveCell.FormulaR1C1 = ""
Range("A19").Select
Selection.Font.Bold = True
End Sub

Ganan -
Grados
cia Grados1 Grados2 Grados3 dB123 -
Tinicial Tiempo 123 -
inicial G2 - G3 - Tiempo dB1 - dB2 - dB3 - - Ganancia
(radia - (radia - G1 - Desfase
Reac- Reactor Reactor (radianes/ Reactor Desfase Reactor Desfase Reactor Desfase Reacto-
nes nes Reactor 1 Reacto-
tor 2 3 min) 1 Reactor 2 Reactor 3 Reactor res
/min) /min) res
1-G1 1 2 3 1+2+3
1+2+3
inicial
0,01 10 0,010 10,000 20,000 29,999 0,010 20,000 -0,057 26,021 -0,229 29,542 -0,401 75,563 -0,688
Consta
nte de
Tfinal(ra Tiempo
dianes/ Reac- 0,110 9,999 19,981 29,911 0,110 19,999 -0,631 26,012 -2,521 29,517 -4,405 75,528 -7,557
min) tor 1
(minu -
tos1)
1000 0,1 0,210 9,998 19,930 29,681 0,210 19,998 -1,204 25,990 -4,804 29,450 -8,367 75,438 -14,374
Gananc
Incre-
ia
mento
inicial
tiempo
Reac- 0,310 9,995 19,848 29,318 0,310 19,996 -1,777 25,954 -7,072 29,343 -12,250 75,293 -21,098
(radia -
tor 2 -
nes/
G2
min)
inicial
0,1 20 0,410 9,992 19,736 28,836 0,410 19,993 -2,349 25,905 -9,318 29,199 -16,022 75,097 -27,689
Consta
nte de
Tiempo
Nº de
Reac- 0,510 9,987 19,596 28,254 0,510 19,989 -2,921 25,844 -11,536 29,021 -19,657 74,854 -34,114
puntos
tor 2
(minu -
tos2)
0,40000
10000 0,610 9,981 19,430 27,590 0,610 19,984 -3,492 25,769 -13,719 28,815 -23,134 74,568 -40,346
001
Gananc
ia
Valor de inicial
p - nº de Reac- 0,710 9,975 19,239 26,865 0,710 19,978 -4,063 25,684 -15,863 28,584 -26,441 74,246 -46,367
periodos tor 3 -
G3
inicial
9999,029
30 0,810 9,967 19,026 26,097 0,810 19,972 -4,633 25,587 -17,961 28,332 -29,568 73,890 -52,163
3
Consta
nte de
Tiempo
Reac- 0,910 9,959 18,794 25,303 0,910 19,964 -5,202 25,480 -20,012 28,063 -32,514 73,508 -57,728
tor 3
(minu -
tos3)
0,69999
1,010 9,949 18,544 24,496 1,010 19,956 -5,770 25,364 -22,010 27,782 -35,278 73,102 -63,058
999

RESPUESTA FRECUENCIAL 3 TRANSMITANCIAS DE 1º ORDEN

100,000
Ganancia - dBR3, Desfase - ºR3,
Ganancia - dBR1, Desfase - ºR1,
Ganancia - dBR2, Desfase - ºR2,

Ganancia - dBR123, Desfase -

50,000
Serie1
0,000 Serie2
0,010 0,100 1,000 10,000 100,000 1.000,000 Serie3
-50,000
ºR123

Serie4
-100,000
Serie5
-150,000 Serie6
-200,000 Serie7
Serie8
-250,000

-300,000
Tiempo (radianes/min)

Fig. 5.14 Programa de respuesta frecuencial de suma de transmitancias de 1º orden

95
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 96

Simulación y control de procesos por ordenador

5.6 Respuesta frecuencial de los controladores


Describiremos los controladores de acción proporcional, integral y derivativa, primero
desde el punto de vista de concepto, después de su funcionamiento simple y básico
electrónico con algunos comentarios sobre las características de las señales en el control
PID con ordenador y, finalmente, una vez deducida su función de transferencia, deter-
minaremos su respuesta frecuencial. No comentaremos la instrumentación neumática
ya que actualmente está en desuso, pues, aparte de una menor exactitud no permite
guardar históricos de los valores de las variables, si bien, todavía existen algunas
pequeñas fábricas que la continúan utilizando. Asimismo, con relación a la instrumen-
tación digital detallaremos las fórmulas de cálculo discreto que utilizan y los valores de
los periodos de exploración o discretización de las variables que deben ser bien escogi-
dos para evitar captar valores erróneos en la exploración (scanning).

5.6.1 Control proporcional


En el sistema de control proporcional, existe una relación lineal entre el valor de la
variable controlada y la posición del elemento final de control, es decir, el movimiento
de la válvula es la copia igual o semejante de la curva correspondiente de la variable.
En la figura 5.15 pueden verse estas consideraciones; se observará que la curva que des-
cribe la válvula de control se ha dibujado en forma inversa a la de la variable, para
resaltar que el controlador envía una señal a la válvula que es contraria a la de la varia-
ble, para así compensarla y conducirla al valor de control o a un valor estable.

Fig. 5.15 Control proporcional.

La relación que existe entre la posición de la válvula o el elemento final de control y la


variable puede verse en la figura 5.16. Antes de sacar conclusiones sobre dicha figura
convendrá definir los siguientes parámetros:

96
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 97

Análisis frecuencial

Fig. 5.16 Banda proporcional y ganancia.

La ganancia del controlador proporcional es la relación que existe entre la variación de


la señal de salida y el error que la produce, es decir, es la variación en la señal de entra-
da. Así, en la figura puede verse que, en el caso de la recta a la ganancia es 1, en la recta
b la ganancia correspondiente es 2 , en la recta c es de 5, en la recta d es de 0,5 y, final-
mente, en la recta e es de 0,2.
En lugar de ganancia, algunos controladores emplean la denominada banda proporcio-
nal que es la inversa de la ganancia, según la fórmula:

y cuya definición es:


Banda proporcional es el porcentaje de variación de la variable controlada necesaria para
provocar una carrera completa del elemento final de control. Por ejemplo, en el caso
de un instrumento de escala 0-200 °C, en el que basta una variación de temperatura de
50 °C para dar lugar a una carrera completa de la válvula de control, la correspondien-
te banda proporcional es de 50

variación señal de salida 200 - 0


La ganancia correspondiente sería: ---------------------------------------------------------- = --------------- = 4
variación señal de entrada 50

100 100
Con lo que se comprueba que: Banda proporcional % ---------------------- = ------------ = 25%
ganancia 25

97
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 98

Simulación y control de procesos por ordenador

De hecho es común actualmente trabajar exclusivamente en los instrumentos con la


ganancia, de modo que si en alguna parte del texto no se habla de la banda pro-
porcional, el lector puede realizar la conversión con la fórmula ya indicada:
BP%=100/ganancia.
El offset es una característica indeseable inherente al control proporcional. Consiste en
la estabilización de la variable en un valor no coincidente con el punto de consigna.
Inicialmente parece un contrasentido que la variable no se estabilice en el punto de con-
signa, ya que da la impresión que el controlador, no controla, puesto que, aparentemen-
te, lo lógico es que al fijar un punto de consigna la variable vuelva al mismo después
de una perturbación. El lector al razonar así, cae en el error de considerar que el con-
trolador trabaja en la misma forma en que lo haría el propio lector si el controlador
estuviera en manual; es decir, si controlase manualmente el proceso, nunca va a produ-
cir offset, puesto que si lo observa lo eliminará inmediatamente cambiando la posición
de la válvula de control y sin darse cuenta de ello, ya que en su vida habitual nunca
observa el offset.
Por ejemplo, en la conducción de un automóvil a velocidad constante, aunque varíen
las condiciones de la marcha, el conductor mantendrá una velocidad constante a base
de variar la posición del pedal del gas, no cayendo en la cuenta de que la mayor parte
de las veces la posición de dicho pedal se aparta totalmente de la simple copia de la
velocidad del coche; evidentemente, a 100 km/h en un llano bien pavimentado y con el
viento por detrás, la posición del pedal del gas es distinta a la correspondiente a la subi-
da de una pendiente con la carretera en malas condiciones y con el viento de cara, con
lo cual no se respeta el control proporcional que es una sola posición del pedal del gas
para cada velocidad.
Veamos con dos ejemplos sencillos el porqué se produce el offset debido a las caracte-
rísticas propias del controlador proporcional.

Fig. 5.17 Control de nivel

Sea el control de nivel de la figura 5.17, realizado mediante una válvula autorregulado-
ra de flotador en la que el flotador está ligado a la válvula mecánicamente.

98
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 99

Análisis frecuencial

En el supuesto de que el caudal de salida sea igual al caudal de aportación, el nivel se


mantendrá en un valor estable que suponemos es igual al punto de consigna. Si en un
momento determinado aumenta el caudal de salida por una mayor demanda, el nivel
bajará hasta estabilizarse en un nuevo valor, tal que el caudal mayor de entrada por la
nueva posición de la válvula de control iguale al caudal de salida. Debido al enlace
mecánico entre la válvula y el flotador, el mayor caudal de aportación sólo puede obte-
nerse con un descenso del nivel que equivaldrá al offset.

Fig. 5.18 Control de temperatura en un intercambiador

En el intercambiador de calor de la figura 5.18, suponemos que inicialmente la tempe-


ratura coincide con el punto de consigna de 100 °C. Al cabo de un tiempo se presenta
un cambio de carga, originado, por ejemplo, por un aumento en el consumo de fluido
caliente, por apertura simultánea de mayor número de válvulas de consumo. Nótese
que la temperatura no vuelve al valor de consigna, sino que la misma se estabiliza a los
90 °C. Es obvio que la temperatura final difiere de la primitiva, puesto que si así no
fuera, por las características del control proporcional, la posición de la válvula sería la
inicial, lo cual es imposible ya que en esta posición se ha presentado la disminución de
temperatura inicial y existiría el absurdo de mantener la misma temperatura de salida
con la válvula de control en la misma posición, dando el mismo paso de caudal de
vapor tanto para el consumo de agua caliente en el régimen inicial como para el
aumento de este consumo.
La desviación puede eliminarse reajustando manualmente el punto de consigna; no
obstante, si vuelven a cambiar las condiciones de servicio volverá a presentarse el off-
set. De aquí que el control proporcional sólo puede aplicarse si las condiciones de ser-
vicio no varían y son estables o si la presencia del offset en la variable es perfectamen-
te admisible, tal como ocurre, por ejemplo, en el caso del control de nivel de un tanque
intermedio en un proceso de fabricación; no importará demasiado que el nivel se esta-
bilice en el 45% aunque el punto de consigna sea el 50% del nivel del tanque.
Existiendo una relación constante entre la señal de salida y la señal de entrada del con-
trolador proporcional, la ecuación correspondiente es:
y = KP * x
siendo KP la ganancia del controlador proporcional que en este caso es, además, la
transmitancia.
En el control por ordenador la expresión correspondiente es:
y(kT) = KP * e(p*Dt)

99
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 100

Simulación y control de procesos por ordenador

O bien: y(t) = KP * e(t)


Siendo: KP = ganancia
e = error (diferencia entre el punto de consigna SP (set point) y la
variable medida PV (process variable));
Dt = período de muestreo;
p = número de periodos de muestreo;
p*Dt = tiempo transcurrido desde el inicio de los cálculos.
En la figura 5.19 puede verse el esquema básico del controlador proporcional elec-
trónico.

Fig. 5.19 Controlador básico electrónico.

En el controlador electrónico, la señal de salida Vo es proporcional al error (punto de


consigna - variable). En efecto, siendo ib e ia muy débiles en comparación con las res-
tantes intensidades del circuito, se verifican las ecuaciones:

Y de aquí:

que varía cambiando la posición del cursor del potenciómetro R1 R2.


Determinemos la respuesta frecuencial del controlador proporcional. Sustituyendo s
por jw, queda la propia transmitancia KP como un número complejo con un módulo de
valor KP y de ganancia en decibelios g = 20 log KP y de desfase Φ = 0.
En la figura 5.20 puede verse la representación de la respuesta frecuencial en el diagra-
ma de Bode.

100
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 101

Análisis frecuencial

Programa de la respuesta frecuencial del controlador proporcional

Option Explicit
Private Sub RespFrecuencialControladorP_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single
Dim n As Single, p As Single
Dim funcionG As Single, funciondb As Single, funcionArg As Single
Dim contador As Integer, KP As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - relación de amplitudes (G)"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB (g)"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Ganancia Controlador - KP"
Range("A12").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final

101
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 102

Simulación y control de procesos por ordenador

Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento


tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
KP = InputBox("Ganancia Controlador(KP):"): Cells(13, 1) = KP
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Controlador Proporcional
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 4) = w
funcionG = KP
funciondb = 20 * Log(funcionG) / Log(10#)
funcionArg = 0
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 5) = funciondb 'Ganancia en decibelios
Cells(p + 3, 6) = funcionArg 'Desfase en grados sexagesimales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
grados"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 370:
.Top = 20:

102
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 103

Análisis frecuencial

End With
'El programa termina en una celda vacía
Range("A15").Select
ActiveCell.FormulaR1C1 = ""
Range("A15").Select
Selection.Font.Bold = True
End Sub

Fig. 5.20 Respuesta frecuencial del controlador proporcional

5.6.2 Control proporcional + integral


En el control integral, el elemento final se mueve de acuerdo con una función integral
en el tiempo de la variable controlada, es decir, el movimiento de la válvula correspon-
de a la suma de las áreas de desviación de la variable con relación al punto de consig-
na. Por tanto queda eliminado el offset típico de la acción proporcional, ya que si se pre-

103
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 104

Simulación y control de procesos por ordenador

senta, el controlador integra el área de desviación, moviendo la válvula lo necesario


para volver la variable al punto de consigna.
En la figura 5.21 pueden verse las curvas de acción proporcional e integral de la válvu-
la de control correspondientes a la forma de la variable de la figura.
La acción integral viene definida por el denominado tiempo de acción integral que es el
intervalo de tiempo en que, ante una señal de entrada en escalón, la parte de la señal
de salida debida a la acción integral iguala a la parte debida a la acción proporcional.
Se expresa en minutos por repetición (o en su inversa repeticiones por minuto en los ins-
trumentos antiguos).

Fig. 5.21 Curvas de acción proporcional e integral

En la figura 5.22 pueden verse una recta de pendiente negativa que es la integración del
área de la desviación, producida por un escalón, entre la variable y el punto de consig-
na. A mayor pendiente negativa, menor valor numérico de la acción integral (τi =minu-
tos/repetición) pero, mayor intensidad de la acción integral.

Fig. 5.22 Tiempos de acción integral

104
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 105

Análisis frecuencial

En la figura 5.23 puede verse el esquema básico del controlador proporcional + integral
electrónico.

Fig.5.23 Esquema controlador proporcional+ integral electrónico

En el controlador electrónico, la acción integral puede generarse en el amplificador


operacional mediante un condensador y una resistencia conectados según la figura
5.23. Siendo ib una intensidad débil comparada con la intensidad de corriente ii, se veri-
ficarán las ecuaciones siguientes:
− ∫ ii dt
V0 =
Ci
PV − SP = ii * Ra
t t
1 1
V0 = ∫
R a * ii 0
( PV − SP) = − * ∫ ( PV − SP) *dt
τi 0

La acción integral se ajustará variando la resistencia Ra.


 1
La transmitancia del controlador integral es: KP *  + 
 τi 
ya que la integral e.dt es la inversa de la derivada y ésta podría expresarse como 1/p en
el dominio del tiempo o, bien, en la forma 1/s en el dominio de las s.
 1   1 
Y su respuesta frecuencial: KP *  +  = KP * 1 − j * 
 jwτ i   wτ i 
1
La ganancia (relación de amplitudes salida/entrada) es: G = KP * 1 +
w τ i2
2

 1 
La ganancia en decibelios sería: g = 20 * log KP * 1 + 2 2 
 w τi 
 
 1 
Y el argumento es : Φ = arc tg  − 
 wτ i 

105
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 106

Simulación y control de procesos por ordenador

En el control por ordenador, la expresión del controlador PI es la siguiente:

 T
t

y (t ) = KP * e(t ) + * ∫ e(t )
 KI 0 

siendo: KP = ganancia;
e(t) = error (diferencia entre el punto de consigna SP (set point) y la varia-
- ble medida PV (process variable));
T = período de muestreo;
t = tiempo transcurrido desde el inicio de los cálculos;
KI = Tiempo de la acción integral.
Diferenciando a ambos lados, resulta:
 T 
y (t ) − y (t − 1) = KP * e(t ) − e(t − 1) + * e(t )
 KI 
T
O bien, y (t ) = y (t − 1) + KP * [e(t ) − e(t − 1)]+ KP * * e (t )
KI
T
y (t ) = y (t − 1) + KP * [e(t ) − e(t − 1) ]+ * e (t )
TR
KI
Siendo: = TTR (tiempo de la acción integral en mnutos/repetición)
KP

La respuesta frecuencial del controlador puede verse en la figura 5.24.

Programa de la respuesta frecuencial del controlador proporcional + integral (PI)

Option Explicit
Private Sub RespFrecuencialControladorPI_Click() 'cmdCreateTable_Click()
Dim T1 As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, p As Single
Dim KP As Single, TR As Single
Dim funcionG As Single, funciondb As Single, funcionArg As Single, funcionZ As
Single
Dim n As Integer, contador As Integer
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("D2").Select
Selection.Font.Bold = True

106
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 107

Análisis frecuencial

Range("E2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Ganancia Controlador (KP)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral- min/rep (TR)"
Range("A14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
KP = InputBox("Ganancia Controlador Proporcional(KP):"): Cells(13, 1) = KP
TR = InputBox("Tiempo de acción integral (TR):"): Cells(15, 1) = TR
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Controlador Proporcional
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 4) = w
funcionG = KP * Sqr(1 + (1 / (w * TR) ^ 2))
funciondb = 20 * Log(funcionG) / Log(10#)

107
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 108

Simulación y control de procesos por ordenador

funcionZ = -1 / (w * TR)
funcionArg = (Atn(funcionZ)) * (180 / 3.14)
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 5) = funciondb 'Ganancia en decibelios
Cells(p + 3, 6) = funcionArg 'Desfase en grados sexagesimales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL +
INTEGRAL"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
grados"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 370:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A17").Select
ActiveCell.FormulaR1C1 = ""
Range("A17").Select
Selection.Font.Bold = True
End Sub

108
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 109

Análisis frecuencial

Tiempo Tiempo
Tinicial(radiane Ganancia - Ganancia en Desfase -
(radianes/ (radianes/
s/min) G dB grados
min) min)
0,01 0,01 200,01001 0,01 46,0210342 -89,4724197
Tfinal(radianes/
0,11 18,2914867 0,11
min) 25,244979 9 -83,7651672
1000 0,21000001 9,73154354 0,21000001 19,7636337 -78,1798553
Incremento
tiempo 0,31 6,75450277 0,31
(radianes/min) 16,5918674 -72,8134766
0,1 0,41 5,27213049 0,41 14,439723 -67,740715
Nº de puntos 0,50999999 4,4021244 0,50999999 12,873246 2 -63,0103607
10000 0,61000001 3,84054661 0,61000001 11,6878605 -58,6465378
Valor de p - nº
0,71000004 3,45469713 0,71000004
de periodos 10,7681999 -54,6529541
9999,0293 0,81000006 3,17751956 0,81000006 10,0417643 -51,0183868
Ganancia
Controlador 0,91000009 2,97158766 0,91000009
(KP) 9,45977116 -47,7219963
2 1,01000011 2,8144598 1,01000011 8,98790073 -44,7376251
Tiempo de
acción integral - 1,11000013 2,69193029 1,11000013
min/rep (TR) 8,6012764 -42,0370255
1 1,21000016 2,59461999 1,21000016 8,28147507 -39,5919724

RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL +


INTEGRAL

60
40
Ganancia - dB, Desfase -

20
0
grados

0,01 0,1 Serie1


-20 1 10 100 1000
Serie2
-40
-60
-80
-100
Tiempo (radianes/min)

Fig. 5.24 Respuesta frecuencial del controlador proporcional + integral (PI)

De la curva de respuesta pueden sacarse las siguientes conclusiones:


X En perturbaciones de baja frecuencia, el efecto de la acción integral es importante:
aumenta la ganancia y baja el desfase (mímo de 90º) de la curva de respuesta fre-
cuencial del proceso.

109
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 110

Simulación y control de procesos por ordenador

X En perturbaciones de alta frecuencia el efecto de la acción integral es despreciable:


no aumentan apreciablemente ni la ganancia ni el desfase.
X El tiempo de acción integral en minutos/repetición es la inversa de la w en
radianes/minuto correspondiente al cruce de las asíntotas de ganancia o al des-
fase de -45°.

5.6.3 Control proporcional + derivado


En la regulación derivada existe una relación lineal continua entre la velocidad de
variación de la variable controlada y la posición del elemento final de control, es decir,
la válvula se mueve proporcionalmente a la derivada o a la pendiente de la variable. En
la figura 5.25 pueden verse estas características.

Fig. 5.25 Control proporcional + derivado

La acción derivada se opone, pues, a todos los cambios de la variable, tanto más cuan-
to más importantes éstos sean (a más pendiente de variación mayor señal envía la
acción derivada al elemento final de control) y, de este modo, posee un gran efecto de
estabilización si bien no elimina el offset característico del sistema de posición propor-
cional. Por este motivo, la acción derivada suele emplearse conjuntamente con la acción
integral.
Para definir la acción derivada se considera el tiempo de acción derivada como el interva-
lo en que avanza la posición de la válvula de control, gracias a la acción derivada, con
respecto a la posición que adoptaría por sólo la acción proporcional. En la figura 5.25
puede verse el significado de "τd". Se observará que en el instante 3 la posición de la
válvula por la acción proporcional sería V1 y por la acción proporcional + derivada es
V2; la diferencia V1 - V2 es el tiempo "τd" expresado en unidades llamadas «minutos de
anticipo».
En la figura 5.26 puede verse el esquema típico del controlador proporcional + deriva-
do electrónico.

110
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 111

Análisis frecuencial

Fig. 5.26 Esquema del controlador proporcional+ derivado

En el controlador electrónico la acción derivativa se consigue colocando un condensa-


dor Cd a la entrada inversora y una resistencia Rd en paralelo entre la salida y la entra-
da inversora. Las ecuaciones correspondientes son:
V0 = ii * Rd

PV − SP =
∫i d dt
Cd

Derivando esta última ecuación resulta:

y sustituyendo en la primera:
En los instrumentos electrónicos, si la señal de entrada varía rápidamente (cambio rá-
pido en el punto de consigna o bien una señal con ruido), se produce una respuesta vio-
lenta en la salida. Para evitarlo se intercala un condensador en paralelo con la resisten-
cia derivativa, tal como puede verse en la figura 5.26. La impedancia del condensador
depende inversamente del grado de variación de tensión que se le aplica; una variación
rápida de tensión en el condensador presenta una baja impedancia a través de la resis-
tencia derivativa y por lo tanto disminuye el tiempo de acción derivada.
En el control por ordenador, la expresión correspondiente es:

Siendo:
KP = ganancia;
e(t) = error (diferencia entre el punto de consigna SP y la variable medida PV);
Dt = período de muestreo;
t = tiempo transcurrido desde el inicio de los cálculos;
KD = Tiempo acción derivada.

111
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 112

Simulación y control de procesos por ordenador

Diferenciando a ambos lados, resulta:


KD
y (t ) − y (t − 1) = KP * [e(t ) − e(t − 1)]+ KP * * d [e(t ) − e(t − 1) ] =
T
KP * KD
= KP * [e(t ) − e(t − 1)]+ * [e(t ) − e(t − 1) − (e(t − 1) − e(t − 2)) ] =
T
Siendo TD = KP * KD = Tiempo de la acción derivada en minutos de anticipo.
La acción derivada que realiza el ordenador digital tiene el inconveniente del tiempo
de muestreo. La señal recibida a través de los transmisores y convertidores analógico-
digitales, está formada por un cierto número de dígitos, según sea la resolución del
convertidor A/D. Como la acción derivada calcula la velocidad de variación entre dos
muestreos sucesivos, lógicamente esta velocidad será infinita cuando las dos señalesc
onsecutivas no sean iguales.
La solución es la incorporación de filtros, si bien ello trae como consecuencia una cier-
ta degradación en el comportamiento de la acción derivativa.
La transmitancia del controlador derivativo es: KP*(1+sτd)
Y la respuesta frecuencial es:
G = 1 + w 2τ d2 g = 20 * log 1 + w 2τ d2

Φ = arc tg ( wτ d )

En la figura 5.27 puede verse la respuesta frecuencial en el diagrama de Bode con el


programa correspondiente.

Programa de respuesta frecuencial del controlador proporcional + derivado (PD)

Option Explicit
Private Sub RespFrecuencialControladorPD_Click() 'cmdCreateTable_Click()
Dim T1 As Single, t0 As Single, Dt As Single, tf As Single
Dim w As Single, p As Single, KP As Single, TD As Single
Dim funcionG As Single, funciondb As Single, funcionArg As Single, funcionZ As Single
Dim n As Single, contador As Integer
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB"
Range("E2").Select

112
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 113

Análisis frecuencial

Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Ganancia Controlador (KP)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - min (TD)"
Range("A14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
KP = InputBox("Ganancia Controlador Proporcional(K):"): Cells(13, 1) = KP
TD = InputBox("Tiempo de acción derivada (TD):"): Cells(15, 1) = TD
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Controlador Proporcional
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 4) = w
funcionG = KP * Sqr(1 + (w * TD) ^ 2)
funciondb = 20 * Log(funcionG) / Log(10#)
funcionZ = w * TD
funcionArg = (Atn(funcionZ)) * (180 / 3.14)
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)

113
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 114

Simulación y control de procesos por ordenador

Cells(p + 3, 5) = funciondb 'Ganancia en decibelios


Cells(p + 3, 6) = funcionArg 'Desfase en grados sexagesimales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL +
DERIVADO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
radianes"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 370:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A17").Select
ActiveCell.FormulaR1C1 = ""
Range("A17").Select
Selection.Font.Bold = True
End Sub

114
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 115

Análisis frecuencial

Tiempo Tiempo
Tinicial(radian Ganancia Ganancia Desfase
(radianes/ (radianes/
es/min) -G en dB - grados
min) min)
0,01 0,01 4,00 0,01 12,05 2,86
Tfinal(radiane
0,11 4,57 0,11 13,19 28,83
s/min)
1000 0,21 5,80 0,21 15,27 46,42
Incremento
tiempo
0,31 7,38 0,31 17,36 57,20
(radianes/mi
n)
0,1 0,41 9,12 0,41 19,20 64,03
Nº de puntos 0,51 10,96 0,51 20,79 68,62
10000 0,61 12,84 0,61 22,17 71,88
Valor de p 0,71 14,75 0,71 23,38 74,31
9999,0293 0,81 16,69 0,81 24,45 76,17
Ganancia
Controlador 0,91 18,63 0,91 25,41 77,64
(KP)
4 1,01 20,59 1,01 26,27 78,84
Tiempo de
acción
1,11 22,56 1,11 27,07 79,83
derivada - min
(TD)
5 1,21 24,53 1,21 27,79 80,66

RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL +


DERIVADO

100,00
90,00
Ganancia - dB, Desfase -

80,00
70,00
60,00
grados

Serie1
50,00
Serie2
40,00
30,00
20,00
10,00
0,00
0,01 0,10 1,00 10,00 100,00 1.000,00
Tiempo (radianes/min)

Fig. 5.27 Respuesta frecuencial del controlador PD

Varias conclusiones pueden deducirse de las figuras representadas:


a) En perturbaciones de baja frecuencia, el efecto de la acción derivada es desprecia-
ble: no aumentan apreciablemente ni la ganancia ni el desfase.
b) En perturbaciones de alta frecuencia el efecto de la acción derivada es importante:
aumentan la ganancia y el desfase de dichas perturbaciones.

115
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 116

Simulación y control de procesos por ordenador

c) El tiempo de la acción derivada en minutos de anticipo es la inversa de la w en


radianes/minuto, correspondiente al cruce de las asíntotas de la curva de ganancia
o bien al punto de desfase de +45°.
La acción derivada tiene el inconveniente de que ante una señal de entrada en escalón
o de pendiente pronunciada, el valor tan elevado de la derivada del error da lugar a
una respuesta violenta del elemento final de control. Basta observar la fórmula corres-
pondiente para entender este hecho. En particular, este fenómeno se presenta al cam-
biar el punto de consigna del controlador; a no ser que el operador sea muy cuidadoso
en el cambio y lo haga de forma muy suave, se presentará una respuesta brusca en la
válvula de control. Para evitar este inconveniente, se utilizan instrumentos denomina-
dos de acción derivada modificada que contienen un condensador en el instrumento
electrónico y una sentencia adicional en el programa en los instrumentos digitales, y
que origina una respuesta más suave que la acción derivativa normal.

5.6.4 Control proporcional + integral + derivado


Este controlador incorpora las tres acciones (proporcional + integral + derivada) y suma
en cada instante los valores correspondientesa cada una de ellas.
En la figura 5.28 puede verse la representación de una variable, las curvas de las accio-
nes proporcional, integral y derivativa y su suma, que es la que realmente acciona la
válvula de control.

Fig. 5.28 Control proporcional + integral + derivativo (PID)

En la figura 5.29 puede verse un controlador electrónico PID.

116
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 117

Análisis frecuencial

Fig. 5.29 Controlador electrónico PID

Cuyo diagrama de bloques es:

P0  1 
con la función de transferencia: = K (1 + sτ d ) 1 + 
ε  sτ 1 
La respuesta frecuencial es:
P0  1   τd   1 
= K (1 + jwτ d ) 1 +  = K 1 +  + j.K  wτ d − 
ε  jwτ i   τi   wτ i 

1
2 2 wτ d −
 τ   1  wτ i
de aquí: g = 20 log K 1 + d  +  wτ d −  φ = arc tg
 τi   wτ i  τd
1+
τi
La ecuación general del controlador PID es la siguiente:
 1 de(t ) 
y (t ) = KP * e(t ) + * ∫ e(t ) dt + τ d * 
 τi dt 
 1   1 
KP * 1 + + jwτ d  = KP * 1 − j * + jwτ d 
 jwτ i   wτ i 
y la ganancia es:
2 2
 1   1 
G = KP * 1 +  − + wτ d  g = 20 * log KP 1 +  − + wτ d 
 wτ i   wτ i 

117
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 118

Simulación y control de procesos por ordenador

 1 
y el desfase es: Φ = arc tg  − + wτ d 
 wτ i 

En la figura 5.31 puede verse el programa y la representación de la respuesta frecuen-


cial del controlador PID en el diagrama de Bode.
En el control por ordenador, la expresión correspondiente es:

 T
t
KD de 
y (t ) = KP * e(t ) +


KI 0
e(t ) + *  + y ( 0)
T dt 

Siendo:
KP = ganancia;
e(t) = error (diferencia entre el punto de consigna SP y la variable medi-
da PV);
T= período de muestreo;
t= tiempo transcurrido desde el inicio de los cálculos;
KI = tiempo de la acción integral;
KD = tiempo acción derivada;
y(0) = nivel de base de la señal de control.
Esta expresión corresponde al llamado control PID posicional, ya que la señal de control
se calcula a partir de un nivel de base y(0).
El control PID posicional recalcula el valor completo de la posición de la válvula en cada
período de muestreo, y lo convierte a una señal analógica para aplicarlo al posiciona-
dor de la válvula de control, o bien el posicionador incorpora dicho convertidor.
Para evitar el ruido en los datos muestreados pueden utilizarse los cuatro últimos valo-
res leídos en el término de/dt de la acción derivada cuya expresión queda en la forma:
de 1
= * (en − en −3 + 3 * en −1 − 3 * en − 2 )
dt 6 * ∆t
Diferenciando a ambos lados de la expresión general del controlador, o restando dos
cálculos sucesivos del algoritmo de posición, resulta:
 T KD 
y (t ) − y (t − 1) = KP * [e(t ) − e(t − 1) ]+ * e(t ) + * [e(t ) − e(t − 1) − (e(t − 1) − e(t − 2))]
 KI T 
KP * T KP * KD
y (t ) = y (t − 1) + KP * [e(t ) − e(t − 1)]+ * e (t ) + * [e(t ) − 2 * e(t − 1) + e(t − 2))]
KI T
T TD
∆y (t ) = + KP * [e(t ) − e(t − 1)]+ * e (t ) + * [e(t ) − 2 * e(t − 1) + e(t − 2))]
TR T
Siendo:
KP = ganancia;
e(t) = error (diferencia entre el punto de consigna SP y la variable medida
PV = SP - PV);

118
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 119

Análisis frecuencial

T= período de muestreo;
t= tiempo transcurrido desde el inicio de los cálculos;
TR = KI/KP = tiempo de la acción integral en minutos/repetición;
TD = KP*KD = tiempo acción derivada e minutos de anticipo.
Que corresponde al llamado controlador PID de velocidad o expresión incremental o expre-
sión de texto porque la señal de salida del controlador es el valor o la cantidad que se
añade a la señal de salida para alcanzar el punto de consigna, es decir, que si el error es
nulo, esta señal de salida será cero.
Utilizando los cuatro últimos valores leídos en el término de/dt de la acción derivada,
para eliminar el ruido, la expresión anterior pasaría a:
T TD
∆y (t ) = + KP * [e(t ) − e(t − 1)]+ * e (t ) + * [e(t ) + 2 * e(t − 1) − 6 * e(t − 2) + 2 * e(t − 3) + e(t − 4)
TR 6 *T
Por otro lado, la expresión ∆y(t) se llama ecuación del controlador PID de tipo A.
Tiene el inconveniente de que el término derivativo contiene el punto de consigna, lo
que puede dar lugar a cambios indeseables en la señal de salida del controlador, si cam-
bia el punto de consigna. Sustituyendo el error por e = SP – PV.
de d ( SP ) d ( PV )
= −
dt dt dt
Y considerando que en condiciones normales de funcionamiento, el punto de consigna
SP permanece constante, sin cambios, el error equivale a:
de d ( PV )
=−
dt dt
T TD
y (t ) = y(t − 1) + KP * [e(t ) − e(t − 1)]+ * e(t ) − * [PV (t ) − 2 * PV (t − 1) + PV (t − 2))]
TR T
Llamada ecuación del controlador PID de tipo B.
Y si se elimina el error e(t) de los términos proporcional y derivativo, resulta:
T TD
y (t ) = y (t − 1) − KP * [PV (t ) − PV (t − 1)]+ * e (t ) − * [PV (t ) − 2 * PV (t − 1) + PV (t − 2))]
TR T

Llamada ecuación del controlador PID de tipo C.


Y siendo una ecuación de tipo incremental en la que puede sustituirse:
∆y (t ) = y (t ) − y (t − 1)
Resulta:
T TD
∆y (t ) = − KP * [PV (t ) − PV (t − 1)]+ * e(t ) − * [PV (t ) − 2 * PV (t − 1) + PV (t − 2))]
TR T
Los controladores PID de tipo C son los preferidos, ya que actúan sobre la variable del
proceso en lugar de la señal de error. En otras palabras, proporcionan el sistema más
estable con el menor pico de las oscilaciones en la señal.

119
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 120

Simulación y control de procesos por ordenador

El orden de selección es:


Controlador Tipo C → Controlador Tipo B → Controlador Tipo A
La selección del periodo de muestreo es importante. El muestreo debe ser lo mas rápi-
do posible pero teniendo en cuenta que un periodo de tiempo T muy pequeño repre-
senta:
1. Aumenta el coste de los componentes, que deben ser de calidad y muy nume-
rosos.
2. Un control distribuído se degrada de modo significativo si existe un gran número
de entradas y salidas de las señales.
3. Un muestreo rtápido implica que las señales de alta frecuencia, tales como el ruido,
serán capturados con la señal, lo que no es beneficioso para el lazo de control.
Por el contrario, un periodo de muestreo T demasiado largo, puede dar lugar a un fenó-
meno llamado aliasing o solapamiento de señales, que se refiere a una situación de
muestreo en la que no pueden distinguirse dos señales diferentes (figura 5.30).

Fig. 5.30 Fenómeno de solapamiento de señales (aliasing)

En general, una señal con una banda de frecuencia en la que fm es la mayor frecuencia,
podrá recontruirse sin distorsión a partir de muestras de la señal tomadas a una fre-
cuencia fs > 2 fm. La experiencia indica que el periodo de muestreo es aproximadamen-
te un 10% de la constante de tiempo dominante del sistema.
Como orientación general se recomiendan los siguientes periodos de muestreo.

Tabla 5.3 Periodos de muestreo de señales de procesos químicos


Variable Periodo

Caudal 1 segundo
Nivel 5 segundos
Temperatura 30 seg a 10 minutos

Nota: La experiencia indica que es aproximadamente un 10% de


la constante de tiempo dominante del sistema

120
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 121

Análisis frecuencial

Programa de la respuesta frecuencial del controlador PID

Option Explicit
Private Sub RespFrecuencialTransm1Orden_Click() 'cmdCreateTable_Click()
Dim T1 As Single, t0 As Single, Dt As Single, tf As Single
Dim w As Single, p As Single
Dim KP As Single, TR As Single, TD As Single
Dim funcionG As Single, funciondb As Single, funcionArg As Single, funcionZ As
Single
Dim n As Single, contador As Integer
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Ganancia Controlador (KP)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - min/rep (TR)"
Range("A14").Select
Selection.Font.Bold = True

121
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 122

Simulación y control de procesos por ordenador

Range("A16").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos(TD)"
Range("A16").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
KP = InputBox("Ganancia Controlador Proporcional(KP):"): Cells(13, 1) = KP
TR = InputBox("Tiempo de acción integral (TR):"): Cells(15, 1) = TR
TD = InputBox("Tiempo de acción derivada (TD):"): Cells(17, 1) = TD
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) > 0
Cells(contador + 3, 3) = "": Cells(contador + 3, 2) = "": Cells(contador + 3,
3) = "": Cells(contador + 3, 4) = "": Cells(contador + 3, 5) = "": Cells(con
tador + 3, 6) = ""
contador = contador + 1
Wend
'Valores de Tiempo-Respuesta Frecuencial Controlador Proporcional´+ Integral +
Derivativo
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 4) = w
funcionG = KP * Sqr(1 + ((1 / (w * TR)) + w * TD) ^ 2)
funciondb = 20 * Log(funcionG) / Log(10#)
funcionZ = (-1 / (w * TR)) + w * TD
funcionArg = (Atn(funcionZ)) * (180 / 3.14)
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 5) = funciondb 'Ganancia en decibelios
Cells(p + 3, 6) = funcionArg 'Desfase en grados sexagesimales
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True

122
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 123

Análisis frecuencial

.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL +


INTEGRAL + DERIVADO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
grados"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 370:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A19").Select
ActiveCell.FormulaR1C1 = ""
Range("A19").Select
Selection.Font.Bold = True
End Sub

Desfase
Tiempo Ganancia Tiempo Ganancia
Tinicial(radianes/min) -
(radianes/min) -G (radianes/min) en dB
grados
0,01 0,01 500,13 0,01 53,98 -89,47
Tfinal(radianes/min) 0,11 46,82 0,11 33,41 -83,61
1000 0,21 26,39 0,21 28,43 -77,07

Incremento tiempo
0,31 19,87 0,31 25,96 -69,04
(radianes/min)

0,1 0,41 17,04 0,41 24,63 -58,33


Nº de puntos 0,51 15,72 0,51 23,93 -43,27
10000 0,61 15,15 0,61 23,61 -22,76
Valor de p 0,71 15,00 0,71 23,52 0,66
9999,0293 0,81 15,12 0,81 23,59 21,09
Ganancia Controlador
0,91 15,43 0,91 23,77 35,81
(KP)
5 1,01 15,86 1,01 24,01 45,87
Tiempo de acción
integral - min/rep 1,11 16,39 1,11 24,29 52,86
(TR)
1 1,21 16,98 1,21 24,60 57,92
Tiempo de acción
derivada - 1,31 17,64 1,31 24,93 61,72
minutos(TD)
2 1,41 18,34 1,41 25,27 64,68

123
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 124

Simulación y control de procesos por ordenador

Fig. 5.31 Respuesta frecuencial del controlador PID

5.6.5 Control PID en el diagrama de Nyquist


Veamos la respuesta frecuencial de los controladores representada en el diagrama de
Nyquist. Sea:
P = Función de transferencia del controlador de acción proporcional de Ganancia G0.
C = Función de transferencia del controlador de ganancia 1.
Veamos la deducción del producto de estas funciones de transferencia en el diagrama
de Nyquist.
El producto de las funciones de transferencia del controlador de acción proporcional P
y del controlador I (con ganancia proporcional igual a 1 y acción integral τi) en el dia-
grama de Nyquist es:

 1 
P * I = P * 1 +  = P * 1 +- 1 
 = P C1
 jw τ i   jw τ i
 

Fig. 5.32 Respuesta frecuencial en el diagrama de Nyquist

124
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 125

Análisis frecuencial

El vector P es OA y el C1 es OB y están representados en la figura 5.32. Evidentemente,


su producto es el producto de módulos y su argumento la suma de argumentos. Por
tanto, el módulo resultante puede determinarse en la figura 5.32 por semejanza de los
triángulos OAB y OA'B'. De esta semejanza se deduce:
OA AB
=
OA' A' B '
es decir:
1 1 / w.τ i
=
P A' B'

de donde:
2
1 2 P 1
A' B ' = P * y OB ' = P + = P * 1+ = P * C1
wτ i wτ2
i
2
w τ i2
2

Por tanto, el vector PC1 tendrá por módulo el vector hipotenusa del triángulo forma-
do por el vector P y con el ángulo en el origen O trazado a partir de P. Como C1 es el
vector de acción integral con ganancia proporcional 1, para pasar a PI bastará multipli-
car por el vector de ganancia proporcional G0 constante para todas las frecuencias y con
argumento 0 correspondiente a la acción proporcional. Se obtendrá así el vector PI =
OB' del controlador proporcional + integral.
En forma análoga se procede en el caso de la función de transferencia PD, según puede
verse en la misma figura 5.32. Se verifica:

PC = P * 1 * (1 + jwτ d ) = P + P * 1 * jwτ d
Habiendo considerado la ganancia igual a la unidad.
En el caso de un controlador PID la función de transferencia PC vale:
1  1  1
PC = P * 1 * (1 + + jwτ d ) = P + P * 1 *  jwτ d − j *  = P − P *1 *
 + P * 1 * jwτ d
jwτ i  w τi  w τi

Y puede verse su determinación en la figura 5.32, en la que debe señalarse que la mag-
nitud relativa de la acción integral con relación a la derivada dependerá de la magni-
tud de wτd y 1/wτi. El punto de corte de ambas curvas vendrá dado por la frecuencia
w=1/(τi.τd.)
Por otro lado, la influencia relativa de cada acción P, I, D en el diagrama de Nyquist
puede verse en la figura 5.33 (página siguiente).

125
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 126

Simulación y control de procesos por ordenador

Fig. 5.33 Influencia de las acciones PID en el diagrama de Nyquist

En la figura 5.34 (página siguiente) pueden verse las respuestas freecuenciales de los
controladores P, PI, PD, PID.
En la figura 5.35 puede verse el programa de respuesta frecuencial del controlador PID
en el diagrama de Nyquist para una acción derivada modificada.

Programa de respuesta frecuencial del controlador PID en el diagrama de Nyquist

Option Explicit
Private Sub RespFrecuencialControladorPIDNyquist_Click() 'cmdCreateTable_Click()
Dim T1 As Single, t0 As Single, Dt As Single, tf As Single
Dim w As Single, p As Single
Dim KP As Single, TR As Single, TD As Single
Dim funcionG As Single, funcionArg As Single, funcionZ As Single
Dim n As Single, contador As Integer
Dim ParteReal As Single, ParteImaginaria As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Ganancia - G"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Parte Real G"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Parte Imaginaria G"
Range("G2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"

126
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 127

Análisis frecuencial

Fig. 5.34 Respuesta frecuencial del controlador PID (diagramas Bde y Nyquist)

127
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 128

Simulación y control de procesos por ordenador

Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Ganancia Controlador (KP)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - min/rep (TR)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos(TD)"
Range("A16").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
KP = InputBox("Ganancia Controlador Proporcional(KP):"): Cells(13, 1) = KP
TR = InputBox("Tiempo de acción integral (TR):"): Cells(15, 1) = TR
TD = InputBox("Tiempo de acción derivada (TD):"): Cells(17, 1) = TD
'Borra las celdas de la curva anterior
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) Or Abs(Cells(contador + 3, 5)) Or Abs(Cells(contador + 3, 6)) Or
Abs(Cells(contador + 3, 7)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3, 6) = "": Cells(con-
tador + 3, 7) = ""
contador = contador + 1
Wend
'Valores de Tiempo-Respuesta Frecuencial Controlador Proporcional´+ Integral +
Derivativo
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w: Cells(p + 3, 5) = w
funcionG = KP * Sqr((1 + (TD / TR) ^ 2 + (w * TD - (1 / w * TR)) ^ 2))
funcionZ = (w * TD - (1 / (w * TR))) / (1 + (TD / TR))
funcionArg = (Atn(funcionZ)) * (180 / 3.14)
ParteReal = funcionG * Cos(funcionArg * (3.14 / 180)) 'Parte real vector de

128
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 129

Análisis frecuencial

módulo G y argumento funcionArg (grados)


ParteImaginaria = funcionG * Sin(funcionArg * (3.14 / 180)) 'Parte imaginaria
del vector de módulo G y argumento funcionArg (grados)
Cells(p + 3, 3) = funcionG 'Ganancia (amplitud salida/amplitud entrada)
Cells(p + 3, 4) = funcionArg 'Desfase en grados sexagesimales
Cells(p + 3, 6) = ParteReal
Cells(p + 3, 7) = ParteImaginaria
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 6), Cells(p + 3, 7)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL +
INTEGRAL + DERIVADO - DIAGRAMA DE NYQUIST"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Vector (Ganancia -
Desfase) - Frecuencia w"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 440:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A19").Select
ActiveCell.FormulaR1C1 = ""
Range("A19").Select
Selection.Font.Bold = True
End Sub

129
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 130

Simulación y control de procesos por ordenador

Parte
Tiempo Ganancia - Desfase - Tiempo Parte
Tinicial(radianes/min) Imaginaria
(radianes/min) G grados (radianes/min) Real G
G
0,01 0,01 500,03 -88,33 0,01 15,00 -499,80

Tfinal(radianes/min) 0,02 250,05 -86,61 0,02 14,99 -249,60

100 0,03 166,74 -84,89 0,03 14,97 -166,07

Incremento tiempo
0,04 125,10 -83,18 0,04 14,95 -124,20
(radianes/min)

0,01 0,05 100,13 -81,47 0,05 14,93 -99,01


Nº de puntos 0,06 83,49 -79,76 0,06 14,89 -82,15
10000 0,07 71,61 -78,07 0,07 14,86 -70,05
Valor de p - nº de
0,08 62,70 -76,37 0,08 14,81 -60,93
periodos
9998,294922 0,09 55,79 -74,69 0,09 14,76 -53,80
Ganancia
0,10 50,26 -73,02 0,10 14,71 -48,06
Controlador (KP)
5 0,11 45,74 -71,35 0,11 14,65 -43,33
Tiempo de acción
integral - min/rep 0,12 41,98 -69,70 0,12 14,59 -39,37
(TR)
1 0,13 38,81 -68,05 0,13 14,53 -35,99
Tiempo de acción
derivada - 0,14 36,09 -66,42 0,14 14,46 -33,07
minutos(TD)
2 0,15 33,74 -64,80 0,15 14,38 -30,52

RESPUESTA FRECUENCIAL CONTROLADOR PROPORCIONAL +


INTEGRAL + DERIVADO - DIAGRAMA DE NYQUIST

1.200,00
Vector (Ganancia - Desfase) -

1.000,00
800,00
Frecuencia w

600,00
400,00
Serie1
200,00
0,00
-200,000,00 2,00 4,00 6,00 8,00 10,00 12,00 14,00 16,00
-400,00
-600,00
Tiempo (radianes/min)

Fig. 5.35 Respuesta frecuencial del controlador PID en el diagrama de Nyquist

130
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 131

Análisis frecuencial

5.7 Consideraciones de aplicación de las acciones


de control
Veamos algunas consideraciones interesantes en la aplicación de las acciones propor-
cional + integral + derivativa en el control de procesos partiendo de la respuesta fre-
cuencial de las mismas.
El estudio de la elección de cada acción de control se inicia con el de la acción derivada.
En la figura 5.36 pueden verse tres posibles formas de respuesta frecuencial a, b, c del
proceso, transmisor y válvula de control en el diagrama de Bode sólo a falta de añadir
la respuesta frecuencial del controlador.

Fig. 5.36 Estudio Proceso (proceso + transmisor + válvula control) + Controlador PID

El papel que juega la acción derivada es aumentar la frecuencia correspondiente al lími-


te de estabilidad, es decir, si w1, w2 son las velocidades angulares a -180º y -270º de des-
fase sin la acción derivada y w’1, w’2 son las correspondientes con la acción derivada.
En la figura puede verse que la frecuencia correspondiente al límite de estabilidad de
-180º aumenta en a1, a2, o a3, según sea la curva de fase del proceso, y aumenta tanto
más cuanto mayor sea la pendiente en dB/década del desfase. Como guía se aceptan los
siguientes criterios resumidos en la tabla 5.4.
El valor conveniente de la acción derivada τd en minutos de anticipo varía probable-
mente entre 1/2 a 1/3 del período de oscilación del proceso Pu. Este vale Pu (minutos)
= 2π/wu , con wu = velocidad angular a -180º de desfase.
Atendiendo al método de ganancia límite desarrollado por Ziegler & Nichols en 1941,
método que se basa en obtener la primera oscilación continua del proceso en lazo cerra-
do al crear intencionalmente pequeños cambios en el punto de consigna, aumentando
cada vez más de forma gradual la ganancia con las acciones integral y derivativa en
cero o en su valor mínimo, se obtiene la llamada ganancia límite (gu). La velocidad angu-
lar wu correspondiente en radianes/minuto se obtiene para el desfase de -180°, que es
el causante de la oscilación continua (véase el estudio sobre el límite de estabilidad en el
capítulo 6).

131
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 132

Simulación y control de procesos por ordenador

Tabla 5.4 Criterios de aplicación de la acción derivada


Criterios de aplicación de la acción derivada

0 - 2 fase de
[w2 (a - 270º)]/[w1(a -180º)] 2-5 >5
pendiente alta

< 5 dB, ganancia casi


Diferencia en dB 5 - 20 dB > 20 dB
horizontal

w1 a baja frecuencia - w2 (a -180º)

No necesaria útil necesaria

El período de esta oscilación vale Pu (minutos)= 2π/wu


Según Ziegler & Nichols en controladores con acción derivada se cumple:

Pu
τ d (min
minutos
utos de anticipo) =
de anticipo
8
Con el fin de conseguir una influencia marcada de la acción derivada en la Frecuencia
de -180°del proceso, se hace coincidir este desfase con el valor de + 50° de la curva de
fase del control derivativo (recuerde que en la respuesta frecuencial, el cruce de las
asíntotas de la curva de ganancia coincide con el valor + 45 ° del desfase y que la velo-
cidad angular correspondiente wd es la inversa de τd, o sea τd ( minutos de anticipo)
= 1/wd.
El papel que juega la acción integral es eliminar el offset característico de la acción pro-
porcional y contribuye a disminuir la frecuencia correspondiente al límite de estabili-
dad (desfase -180°), lo cual empeora la estabilidad del proceso. Al objeto de que este
empeoramiento sea mínimo, se procura que la acción integral aumente la ganancia y
disminuya el desfase a frecuencias bajas e intermedias, con el fin de influir al mínimo
en la disminución de frecuencia límite wu correspondiente al desfase de -180°.
Se considera como valor de compromiso basado en la experiencia el de -10°, que no
afecta seriamente la frecuencia límite wu correspondiente a -180º y que, sin embargo,
da una alta ganancia a frecuencias intermedias. Así pues, se hace coincidir este desfase
de –180º con el desfase de -10° de la respuesta frecuencial de la acción integral. Una vez
situada ésta, el desfase de -45º o bien el cruce de las asíntotas determinan la velocidad
angular wi y de aquí:
1
τ i (min/
min repetición) =
τi
La acción integral se sitúa después de la derivativa y fija la curva de fase final, ya que
la adición de la acción proporcional no cambia el desfase, por ser éste cero.
Estimaremos seguidamente la conveniencia de la acción integral basada en el probable
offset. Su valor puede obtenerse ante una desviación determinada entre la variable y el
punto de consigna o ante un cambio en las condiciones del proceso. Cuando la onda

132
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 133

Análisis frecuencial

senoidal de entrada tiene frecuencia cero, es decir se trata de un escalón, la ganancia


correspondiente será la referida a condiciones de régimen permanente; o sea, no será
dinámica.
El valor estimado del offset será el % de la diferencia entre el valor nivelado y la con-
dición de offset nulo:
1
1 + (KP * 0,5 * g u )

Siendo:
KP = ganancia estática deducida a frecuencia cero o estimada por el nivela-
lamiento de la curva de ganancia en dB del diagrama de Bode
gu = ganancia límite correspondiente a la ganancia para el desfase de -180°

Según el método de Ziegler &Nichols los valores de la acción integral son los siguientes:
X En controladores con acción proporcional + integral
Pu
τ i (min/
min/ repetición) =
1,2
X En controladores con acción proporcional + integral + derivada
Pu
τ i (min/
min/ repetición) =
2
La acción proporcional tiene desfase cero y su ganancia es una recta paralela al eje de fre-
cuencias (g = O), con lo cual hará subir o bajar la ganancia obtenida al sumar las curvas
derivada e integral a la curva de respuesta frecuencial del proceso.
De este modo permitirá satisfacer las condiciones finales de estabilidad relativa:
-180º -5 dB
-140º 0 dB
con la condición de que antes de aplicarla, se haya conseguido previamente con la deri-
vada y la integral una diferencia de 5 dB entre las ganancias correspondientes a -140° y
-180° respectivamente.
Hasta ahora el lector ha estado inmerso en la teoría del control PID y es posible quizás,
que esté un poco confuso y no haya asimilado plenamente el significado de las accio-
nes de control explicadas. Haremos un alto en la exposición y procuraremos analizar
dicho significado de forma simple para que la comprensión sea total.
Citaremos un ejemplo ilustrativo basado en lo que hoy en día nos es totalmente fami-
liar, la conducción de un vehículo automóvil.
Imaginemos un vehículo automóvil con uno, dos o tres conductores, cada uno con un
volante y un pedal del gas, comunicándose éstos en una sola palanca que acciona el car-
burador, es decir sumando sus posiciones. Se supone que el coche puede ir desde 0

133
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 134

Simulación y control de procesos por ordenador

km/h hasta un máximo de 200 km/h, que cada conductor tiene el mismo punto de con-
signa de 100 km/h, que observan la variable (velocidad) en el dial del cuentakilómetros
y que uno es proporcional, otro integral y el tercero es derivativo, y que en caso de cho-
que, el coche queda parado con integridad de los conductores.
Definiremos varias situaciones:
a) El coche con velocidad uniforme de 10,0 km/h choca contra un puente.
b) El coche se precipita por un puente y se supone que el indicador de velocidad sigue
la real del vehículo.
c) El coche sube una cuesta.
d) El coche desciende por una bajada.
En la figura 5.37 pueden verse las curvas correspondientes a los supuestos anteriores.

Fig. 5.37 Acciones PID en el movimiento de un coche

134
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 135

Análisis frecuencial

Ejercicios

5.1 Determinar la respuesta frecuencial de una función cuya transmitancia vale 1/(1
+ 5s).
5.2 Representar la respuesta frecuencial de la función anterior en el diagrama de
Bode.
5.3 En un sistema se ha ensayado una señal de entrada senoidal de amplitud 2 cm y
de frecuencia 10 ciclos/minuto, y se ha comprobado que la señal de salida tiene
una amplitud de 1,5 cm y que el desfase entre ambas es de 60°. Dibujar los pun-
tos correspondientes en el diagrama de Bode.
5.4 El diagrama de Bode de la figura corresponde a un ensayo realizado en un ins-
trumento de control. A la frecuencia de 10 ciclos/minuto dibujar la onda de exci-
tación y la de salida.

5.5 Representar en el plano polar la respuesta frecuencial de una función cuya trans-
mitancia es 1/(1 +3s).
5.6 Representar en el plano de Black la respuesta frecuencial de la función anterior.
5.7 Representar en el diagrama de Bode la función de retardo y = e-2s.
5.8 Un sistema caracterizado por una transmitancia de segundo orden tiene los valo-
res siguientes: t = 0,6; ξ= 1. Determinar su respuesta frecuencial y representarla
en el diagrama de Bode.
5.9 Determinar la respuesta frecuencial de dos reactores conectados en serie y per-
fectamente agitados.
5.10 Dibujar en el diagrama de Bode la respuesta frecuencial de un controlador pro-
porcional de ganancia 4.
5.11 Dibujar en el diagrama de Bode la respuesta frecuencial de un controlador de
acción proporcional + integral de ganancia 0,5 y de 0,2 minutos/repetición.

135
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 136

Simulación y control de procesos por ordenador

5.12 Dibujar en el diagrama de Bode la respuesta frecuencial de un controlador PID


de valores. Ganacia = 2, acción integral = 0,1 minutos/repetición, acción deriva-
da = 10 minutos de anticipo.
5.13 Dígase cual es el control mas idóneo en los siguientes procesos: caudal, presión,
nivel, temperatura.

136
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 137

Capítulo 6

Estabilidad
Se entiende por estabilidad la capacidad que tiene un sistema para amortiguar con el
tiempo y anular totalmente las oscilaciones de la respuesta ante una perturbación.
Podemos considerar dos tipos de estabilidad: absoluta y relativa.
En la estabilidad absoluta, la variable vuelve al punto de consigna o a un valor estable
después de una perturbación, sin importar el tiempo que esté oscilando hasta anular-
se. Es decir, los criterios correspondientes no indican lo próximo que esté el sistema de
la inestabilidad.
En la estabilidad relativa, la variable vuelve al punto de consigna o a un valor estable
después de una perturbación en un tiempo limitado, con la condición de que cada osci-
lación tenga un cuarto de la amplitud de la oscilación precedente.

6.1 Estabilidad absoluta


6.1.1 Criterio de raíces de la ecuación característica
El sistema de control es estable si las raíces del denominador (ecuación característica)
de la transmitancia tienen partes reales negativas.
En efecto, sea la transmitancia del lazo cerrado de control. La ecuación carac-
terística es:

D ( s ) = a0 s n + a1s n −1 + ... + an = 0

y es equivalente a la respuesta del sistema con excitación o entrada nula D(s) = 0.


Si las raíces son s1, s2, …, sn, la ecuación puede expresarse

D ( s ) = a0 (s − s1 )(s − s2 )....(s − sn ) = Ae s1 t + Be s2 t + ... + Ne sn t

Se llega a la misma conclusión considerando que la respuesta impulsional de la trans-


mitancia W es:
 A B N 
L−1 [W ( s ) ]= L−1  + + ... +  = Ae s1 t + Be s2 t + ... + Ne sn t
 s − s1 s − s2 s − sn 
y que debe ser nula para que el sistema sea estable.
Para que la expresión se anule cuando el tiempo tiende a infinito, es necesario que los
valores reales de s1, s2,… sn sean negativos, ya que de este modo cada uno de los su-
mandos tiende a cero y la curva de respuestas nula. Si las raíces s1, s2,… sn fueran posi-
tivas, cada uno de los términos ,Aes1, Aes2, ...,Aesn aumentarían con el tiempo.

137
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 138

Simulación y control de procesos por ordenador

Si las raíces son complejas con una parte real y una imaginaria S = a + bj también exis-
tirá su valor conjugado s = a - bj y, por tanto, la respuesta impulsional de la transmitan-
cia W contendrá términos tales como:

L−1 [W ( s )]= e ( a + bj )*t + ... = e a*t * (e jbt + e − jbt )+ ... = e at * 2 * cos bt + ...
que es una respuesta oscilatoria con una amplitud exponencial eat; para que disminu-
ya con el tiempo es necesario que la parte real a sea negativa. Si la parte real fuera 0, la
respuesta no se anula con el tiempo sino que se mantiene en un valor limitado.
Así pues, la respuesta será estable si todas las raíces de la ecuación característica tienen
la parte real negativa.
Si estas raíces se representan en el plano imaginario de s deben estar a la izquierda del
mismo.

6.1.2 Criterio de Routh


El criterio de raíces de la ecuación característica es satisfactorio siempre que puedan
determinarse dichas raíces en el polinomio de la ecuación. Esta determinación es tanto
más difícil y laboriosa cuanto mayor sea el grado del polinomio. El criterio de Routh es
un método que permite eliminar el cálculo de las raíces y asegura si cualquiera de las
raíces es positiva o tiene partes reales que son positivas, en cuyo caso el sistema es ines-
table.
n n −1
Se escribe la ecuación característica: D ( s ) = a0 s + a1s + ... + an −1 + an .
Siendo el primer coeficiente a0 positivo, y se forma una tabla con filas de coeficientes.
El número de filas es el grado de la ecuación más 1, es decir, si el grado es n habrá n +
1 filas.
1 a0 a2 a4 . .
2 a1 a3 a5 . .
3 b1 b2 b3 . .
4 c1 c2 c3 . .
5 d1 d2 . . .
. . . . . .
. 0 . . . .

a1 a3 a1 a5
a0 a2 a1a2 − a0 a3 a0 a4 a1a4 − a0 a5
En la que: b1 = = b2 = =
a1 a1 a1 a1
b1 b3 b1 b3
a1 a3 b1a3 − a1b2 a1 a5 b1a5 − a1b3
c1 = = c2 = =
b1 b1 b1 b1

138
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 139

Estabilidad

c1 c2 c1 c3
b b c b −b c b b c b −bc
d1 = 1 2 = 1 2 1 2 d2 = 1 3 = 1 3 1 3
c1 c1 c1 c1
El sistema es estable si todos los elementos de la primera columna de la tabla de coefi-
cientes son positivos. Cuando esto se cumple, las raíces de la ecuación característica tie-
nen la parte real negativa. Si hay cambios de signo, su número indica el número de raí-
ces con parte real positiva.
Ejemplo:
Sea la transmitancia de un lazo cerrado de control con denominador:
s3 + 6 s2 + 12 s + 8 = 0
Formando la fila de coeficientes:
1 12 0
6 8 0
32 / 3 0
8
Ya que:
6 8 6 0 32 / 3 0
1 12 6 *12 − 8 32 1 0 6 8 8 * 32 / 3
b1 = = = b2 = =0 c1 = = =8
6 6 3 6 32 / 3 32 / 3
El sistema es estable porque los coeficientes de la primera columna tienen el mismo
signo positivo.

6.1.3 Criterio de Hurwitz


Tomando como base la ecuación característica se forman una serie de determinantes,
los que deben ser positivos para que las raíces de la ecuación característica tengan las
partes reales negativas, es decir para que el sistema sea estable.
Estos determinantes son:

an −1 an − 3 an − 5
∆1 = an −1 an −1 an − 3
∆2 = ∆ 3 = an an − 2 an − 4
an a n − 2
0 an −1 an − 3

an −1 an − 3 an − 5 an − 7 an − 9
an −1 an − 3 an − 5 an − 7
an an − 2 an−4 an − 6 a n −8
an an − 2 an − 4 an − 6
∆4 = ∆5 = 0 an −1 an − 3 an − 5 an − 7
0 an −1 an − 3 an − 5
0 an an − 2 an−4 an − 6
0 0 an − 2 an − 4
0 0 an −1 an − 3 an − 5

139
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 140

Simulación y control de procesos por ordenador

Y así sucesivamente.
Ejemplo:
Sea la ecuación característica de la transmitancia en lazo cerrado:
s3 + 8 s2 + 14 s + 24 = O
Se forman los determinantes:

8 24 0 0
8 24 0
8 24 1 14 0 0
∆1 = 8 ∆ 2 = = 88 ∆ 3 = 1 14 0 = 2.112 ∆4 = =0
1 14 0 8 24 0
0 8 24
0 1 14 0
Como todos los determinantes son positivos, el sistema es estable.

6.1.4 Criterio de fracciones continuas


Se descompone la ecuación característica en dos partes:

D1 ( s ) = an s n + an − 3 s n − 3 + ...
D2 ( s ) = an −1s n −1 + an − 4 s n − 4 + ...
El cociente D1(s)/D2(s) equivale a:

 aa   aa 
 an − 2 − n n − 3  * s n − 2 +  an − 4 − n n − 5  * s n − 4 + ...
D1 ( s ) an s  a n −1   an −1  1
= + = h1s +
D2 ( s ) an −1 Q( s ) 1
h1s +
1
h2 s +
1
h3 s +
...hn s
y todos los coeficientes h1, h2, ... deben ser positivos para que las raíces de la ecuación
característica tengan la parte real negativa y el sistema sea estable.
Ejemplo:
Sea la ecuación característica:
D( s ) = s 3 + 6s 2 + 12s + 8
D1 ( s ) = s 3 + 12 s
2
D2 ( s ) = 6s +8

8 32s
12s − s
D1 ( s ) s 3 + 12s 1 6 1 1 1
= = s+ = s + 23 = s +
D2 ( s ) 6s 2 + 8 6 6s 2 + 8 6 6s + 8 6 9 1
s+
16 (4 / 3) s
Como todos los coeficientes de s son positivos, el sistema es estable.

140
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 141

Estabilidad

6.1.5 Criterio de Bode


Sea el lazo

µ
La transmitancia en lazo cerrado es: W (s ) =
1 + µβ
µ ( jw)
y la respuesta frecuencial es: [W ( s )0]=
1 + µ ( jw) β ( jw)
Con inestabilidad cuando el denominador tiende a cero, ya que entonces la onda senoi-
dal de respuesta tendrá también un módulo y un argumento que tenderán a infinito.
Así pues, la inestabilidad se alcanza para la condición: 1 + µ ( jw) β ( jw) = 0

o bien: µ ( jw) β ( jw) = −1


Nótese que esta expresión corresponde a la transmitancia del sistema en lazo abierto.
A esta transmitancia le corresponde una ganancia: µ ( jw) β ( jw) = 1

y un desfase: Φ[µ ( jw) β ( jw)]= 180 º

Así pues, la condición crítica de estabilidad absoluta se alcanza cuando la respuesta fre-
cuencial del bucle de control en el diagrama de Bode sea tal que la ganancia total en dB
sea cero y el desfase sea de –180º.

6.1.6 Criterio de Nyquist


En el diagrama de Nyquist, cada punto de la curva define un módulo y un argumento
a una frecuencia determinada de la respuesta frecuencial. En este diagrama, el límite de
estabilidad que da lugar a una oscilación automantenida del bucle abierto de control
(proceso + controlador) queda establecido por la regla siguiente:
Recorriendo el diagrama de Nyquist desde w = 0 a w = el punto -1 debe quedar a la izquier-
8

da de la curva.
A medida que la curva se aproxima al punto - 1 (lo cual ocurre al aumentar la ganan-
cia del controlador) la respuesta es cada vez menos amortiguada, pasa a oscilación al
cruzar este valor y llega a amplificarse cuando lo rebasa. Es decir, el punto (-1, -180°)
corresponde a la oscilación automantenida del proceso + controlador (figura 6.1 en la
página siguiente). Esta regla está basada en la condición de inestabilidad deducida
anteriormente para el diagrama de Bode.

141
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 142

Simulación y control de procesos por ordenador

Fig. 6.1 Criterio de Nyquist

6.1.7 Criterio del lugar geométrico de raíces


En el sistema de control:

La transmitancia en lazo abierto es:


N ( s) ( s − z1 ) * ( s − z2 )...
K * P( s) = K * =K*
D( s ) ( s − p1 ) * ( s − p2 )...

Con polos p1, p2, p3,… y ceros z1, z2, z3,…


La transmitancia en lazo cerrado vale:
K K K * D( s)
= =
1 + K * P( s ) 1 + K [N ( s ) / D( s )] D( s ) + K * N ( s )
Las raíces del denominador cumplen la ecuación.
D(s) + K * N ( s) = 0 (1)
Y reciben el nombre de raíces del lazo cerrado de valores s1, s2, s3, …
De la expresión (1) se deduce:

142
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 143

Estabilidad

K * [N ( s ) / D ( s )]= −1 = 1 / 180 º o bien, K * P ( s ) = 1 / 180º

Las condiciones para que un punto determinado s1 = 0 + jw pertenezca al lugar geomé-


trico de raíces (o polos del lazo cerrado) son las siguientes:
Criterio del ángulo: Arg P ( s ) = 180 + 360 * l = ( 2l + 1)
con: l = 0, 1, 2,
y: ( s − z1 ) − [( s − p1 )( s − p2 )...] = ( 2l + 1)

Criterio de magnitud: K = [D ( s1 ) / N ( s1 )]

De la expresión (1) se deduce que las curvas se inician para K = 0 con raíces p1, p2,
p3 , … de D(s) = 0 y terminan para K = ∞ con raíces z1, z2, z3 , … de N(s) = 0.

8
Al objeto de una mayor claridad en la exposición, estudiaremos la aplicación de este
criterio a un ejemplo.

La curva se inicia para p1 = -1, p2 =-3, p3 = -8 y termina con z = ∞.


Aplicando el criterio del ángulo, el punto S debe cumplir

− [(s + 1)+ (s + 3)+ (s + 8)]= 180 º


y el mismo se encuentra por tanteo. Si el número de polos y de ceros es excesivo, el tan-
teo es difícil y engorroso, lo cual constituye una de las limitaciones del método.
Determinado S se aplica el criterio de magnitud y se miden los vectores SA, SB y SC y
se encuentra el valor de K:
K = SA x SB x SC
A partir de éste se encuentra S y su conjugado S'.
El número de lugar geométrico de raíces es el número de polos en lazo abierto, ya que
este coincide con el número de lugares en lazo cerrado. En el ejemplo es de 3.
Para determinar qué partes del eje real están situadas sobre el lugar geométrico de raí-
ces, se aplica una regla que indica que éstos quedan a la izquierda de un número impar
de polos y ceros finitos.
En efecto, para cualquier polo o cero real el ángulo es de 00 a 1800 según el punto en
cuestión esté a la derecha o a la izquierda del polo o cero. En nuestro ejemplo, el lugar
geométrico de raíces sobre el eje real se encuentra entre:
-1 a -3 y -8 a
8

143
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 144

Simulación y control de procesos por ordenador

Para encontrar el punto de arranque de la rama correspondiente sobre el eje real, supo-
nemos que s está muy próximo al eje real, con lo cual el valor de K corresponde a s = 0
sin parte imaginaria y por el criterio de magnitud el valor de:
K = D(σ)/N(σ).
El valor de K es un máximo para los polos que parten del eje real o un mínimo para los
polos que llegan al eje real. Luego:

dK d  (σ + p1 )(σ + p2 ) d D(σ )
= = =0
dσ dσ  (σ + z1 )(σ + z1 )  dσ N (σ )
con lo cual derivando resulta:
(σ + p2 )(σ + p3 )+ (σ + p1 )(σ + p3 ) = (σ + z2 )(σ + z3 )+ (σ + z1 )(σ + z3 )
D(σ ) N (σ )

1 1 1 1 1 1
+ + + ... = + + + ...
σ + p1 σ + p2 σ + p3 σ + z1 σ + z 2 σ + z3
O sea: n
 1  m  1 
∑   = ∑ 
i =1  σ + pi 

i =1  σ + zi 

en el ejemplo, los valores correspondientes son:


1 1 1
+ + =0
σ +1 σ + 3 σ + 8
Ecuación que resuelta da: σ1 = -1,9; σ2 =-6; este último se descarta por no satisfacer
el criterio de raíces sobre el eje real.
Interesa ahora determinar las asíntotas de las curvas en el infinito s → .
8

Por el criterio del ángulo y siendo s → , los argumentos de los polos p y de los ceros
8

z son aproximadamente iguales al arg(s). Luego:


 N (s) 
Arg   = ( z − p) * arg( s ) = ( z − p ) = (2l + 1) con l = 0, 1, 2,
 D( s) 

y de aquí: σc =
(2l + 1)
p−z

En el ejemplo: σ c =
(2l + 1)*180 60º ,180º ,300 º
3−0
El centro de estas asíntotas se encuentra de la forma siguiente:
De la ecuación de las raíces del denominador (1):

s n + a1s n −1 + a2 s n − 2 + ... + an
+ Kn = 0
s m + b1s m −1 + b2 s m − 2 + ... + bm

144
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 145

Estabilidad

O bien: s n − m + (a1 − b1 ) s n − m −1 + (a2 − b2 ) s n − m − 2 + ... + K = 0

Y como D(s) = 0 con el coeficiente de sn la unidad resulta: a1 = p1 + p2 + ... = pi


N(s) = 0 con el coeficiente de sm la unidad resulta: b1 = z1 + z2 + ... = zi

y de aquí: a1 − b1 = pi − zi

Para valores grandes de K las p - z raíces se aproximan a las rectas asíntotas y su suma
es igual a a1 – b1 a lo largo de las asíntotas, incluido el punto de corte de las mismas con
el eje real, el cual será:
a1 − b1 pi − zi
σc = =
p−z p−z
en el ejemplo: σc = -12/3 = -4.
Para determinar los puntos de corte del lugar geométrico de raíces con el eje imagina-
rio, se hace s = jw en la ecuación característica (1).

Y así la magnitud de K es K = D ( jw) / N ( jw)


( jw + 1) * ( jw + 3) * ( jw + 8) + k = 0
K = − ( jw + 1) * ( jw + 3) * ( jw + 8) + k = 0

y de aquí: w=0 K = - 24
w = 35 = ±5,9 K = 396
A partir de este valor, el sistema se vuelve inestable ya que las raíces complejas pasan
a ser de parte real positiva.

Fig. 6.2 Aplicación del lugar geométrico de raíces

145
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 146

Simulación y control de procesos por ordenador

Se ha visto, pues, que el criterio del lugar geométrico de raíces puede ser útil en la pre-
dicción de la estabilidad absoluta, pero tiene el inconveniente de que carece de una
representación visualizable y fácilmente comprensible desde el punto de vista del con-
trol de procesos, por lo cual se prefiere utilizar los métodos de respuesta frecuencial
basados en la técnica de diseño de los amplificadores de realimentación.

6.2 Estabilidad relativa


6.2.1 Criterio de Bode
Al estudiar los criterios de estabilidad absoluta se ha visto que el criterio del diagrama
de Bode se cumple para todas las curvas de ganancia y de desfase con valores de
ganancia menores de la unidad y de desfase inferiores a -180°.
Con el fin de definir los valores de estabilidad relativa se consideran los términos:
X Margen de ganancia es el valor de la ganancia en dB del sistema en lazo abierto para
la frecuencia correspondiente a un desfase de -180°.
X Margen de fase es el desfase en grados del sistema en lazo abierto correspondiente
a la frecuencia en que la ganancia vale 0 dB (o bien G = 1).
La estabilidad relativa se cumple cuando el margen de ganancia es negativo y el mar-
gen de fase es positivo, para la transmitancia W(s) en lazo abierto. Es decir, que la con-
dición de estabilidad en lazo cerrado se alcanza imponiendo que sea estable el sistema
en lazo abierto.
Se suele considerar un margen de ganancia de - 5 dB y un margen de fase de 40° admi-
tiéndose variaciones de 6 a 20 dB y de 25º a 60° respectivamente (figura 6.3).

Fig. 6.3 Estabilidad relativa en el diagrama de Bode

Este criterio está basado en la integral del valor absoluto del error (punto de consigna
– variable) , que es la base del método de tanteo que se verá más adelante. De he-
cho, un proceso puede asimilarse de forma aproximada a una transmitancia de segun-
do orden. Partiendo de este supuesto, determinaremos el área encerrada por la curva
de recuperación del proceso con relación al punto de consigna ante una perturbación
en forma de impulso o escalón, para comprobar si esta área es la mínima que se pre-

146
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 147

Estabilidad

senta cuando se considera que un proceso está bien controlado si su curva de recupe-
ración es de 4/1 (método de tanteo).

Programa de área de recuperación y amortiguamiento de la respuesta impulsional de una


transmitancia de 2º orden

Option Explicit
Private Sub RespImpTransm2OrdenAreaAmortiguacion_Click() 'cmdCreateTable_Click()
Dim T1 As Single, wcero As Single, IRECUP As Single, Amortiguacion As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, p As Single, Sigma As Single
Dim n As Integer, contador As Integer, k As Integer
Dim ImpulsionalTransm2Orden As Single
'Títulos en celdas
Range("B2").Select
ActiveCell.FormulaR1C1 = "Tiempo"
Range("B2").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Respuesta Impulsional Transmitancia 2º orden"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Área de recuperación (variable - punto de consigna"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Total Área recuperación"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Amortiguación"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Frecuencia natural (Radianes/min) (wcero)"
Range("A12").Select
Selection.Font.Bold = True

147
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 148

Simulación y control de procesos por ordenador

Range("A14").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguamiento (sigma)"
Range("A14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0):"): Cells(3, 1) = t0 'Tiempo inicial
tf = InputBox("Valor final de t (tf):"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt):"): Cells(7, 1) = Dt 'Incremento tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
wcero = InputBox("Frecuencia natural (wcero)- Radianes/min:"): Cells(13, 1) = wcero
'Frecuencia natural
SigmaF: Sigma = InputBox("Factor de amortiguamiento (sigma):"): Cells(15, 1) =
Sigma 'Factor de amortiguamiento
If Sigma > 1 Then Beep: Cells(13, 1) = "Sigma debe ser <1": GoTo SigmaF: 'Avisa
del error
On Error GoTo 0
'Borra las celdas de la simulación anterior
contador = 0
While Abs(Cells(contador + 3, 2)) Or Abs(Cells(contador + 3, 3)) Or Abs(Cells(con-
tador + 3, 4)) > 0
Cells(contador + 3, 2) = "": Cells(contador + 3, 3) = "": Cells(contador + 3,
4) = ""
contador = contador + 1
Wend
'Valores de Tiempo-Respuesta ImpTransm2Orden
IRECUP = 0
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 2) = w
ImpulsionalTransm2Orden = (wcero / Sqr(1 - Sigma ^ 2)) * (Exp(-Sigma * w)) *
(Sin(w * (Sqr(1 - Sigma ^ 2))))
Cells(p + 3, 3) = ImpulsionalTransm2Orden
If p <> 0 Then IRECUP = IRECUP + (Abs(Cells(p + 3, 3) - Cells(p + 2, 3))) *
Dt 'Área recuperación
Cells(p + 3, 4) = IRECUP
Next w
Cells(3, 5) = IRECUP
Amortiguacion = Exp((-2 * 3.14 * Sigma) / (Sqr(1 - Sigma ^ 2)))
Cells(3, 6) = Amortiguacion
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
datos = Range(Cells(3, 2), Cells(p + 3, 3)).Address 'rango a graficar
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With

148
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 149

Estabilidad

With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "RESPUESTA IMPULSIONAL TRANSMITANCIA 2º Orden"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Respuesta impulsional - Área
recuperación - Amortiguación"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
With ActiveChart.Parent
.Left = 390:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A18").Select
ActiveCell.FormulaR1C1 = ""
Range("A18").Select
Selection.Font.Bold = True
End Sub

Área de
Respuesta
recuperación
Impulsional Total Área
Tinicial Tiempo (variable - Amortiguación
Transmitancia recuperación
punto de
2º orden
consigna
0 0 0 0 0,02968927 0,25094241
Tfinal 0,01 0,009978364 9,97836E-05
30 0,02 0,019912917 0,000199129
Incremento
0,03 0,029802857 0,000298029
tiempo
0,01 0,04 0,039647389 0,000396474
Nº de puntos 0,05 0,049445719 0,000494457
3001 0,05999999 0,059197076 0,000591971
Valor de p 0,06999999 0,068900682 0,000689007
2999,05908 0,07999999 0,078555778 0,000785558
Frecuencia
natural
0,08999999 0,08816161 0,000881616
(Radianes/min)
(wcero)
1 0,09999999 0,097717427 0,000977174
Factor de
amortiguamiento 0,10999998 0,10722249 0,001072225
(sigma)
0,215 0,11999998 0,11667607 0,001166761

149
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 150

Simulación y control de procesos por ordenador

RESPUESTA IMPULSIONAL TRANSMITANCIA 2º Orden

0,8
recuperación - Amortiguación
Respuesta impulsional - Área

0,6

0,4

0,2
Serie1
0
0 5 10 15 20 25 30 35
-0,2

-0,4

-0,6
Tiempo

Fig. 6.4 Área de recuperación y amortiguación de la respuesta impulsional


de una transmitancia de 2º orden – Amortiguación 0,25

Para los datos: Frecuencia natural (Radianes/min) (wcero) = 1


Factor de amortiguamiento (sigma) = 0,215
El área de recuperación es: 0,02968927 y el valor de la amortiguación es: 0,25094241 que
coincide prácticamente con el valor de 1:4, o sea la relación entre el pico de la onda con
el pico siguiente de 4:1. Ensayando otro valor del factor de amortiguamiento 0,5 se
obtiene una menor área de recuperación 0,013054, pero una amortiguación de 0,02662.

Área de
Respuesta
recuperación
Impulsional Total Área
Tinicial Tiempo (variable - Amortiguación
Transmitancia recuperación
punto de
2º orden
consigna
0 0 0 0 0,01305409 0,02662886
Tfinal 0,01 0,00995 9,95E-05
30 0,02 0,019800005 0,000198
Incremento
0,03 0,029550033 0,0002955
tiempo
0,01 0,04 0,039200105 0,000392001
Nº de puntos 0,05 0,048750255 0,000487503
3001 0,05999999 0,058200527 0,000582005
Valor de p 0,06999999 0,0675509 8 0,00067551
2999,05908 0,07999999 0,076801673 0,000768017
Frecuencia
natural
0,08999999 0,085952677 0,000859527
(Radianes/min)
(wcero)
1 0,09999999 0,095004074 0,000950041
Factor de
amortiguamiento 0,10999998 0,103955954 0,001039559
(sigma)
0,5 0,11999998 0,112808414 0,001128084

150
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 151

Estabilidad

RESPUESTA IMPULSIONAL TRANSMITANCIA 2º Orden

0,6
recuperación - Amortiguación
Respuesta impulsional - Área

0,5
0,4

0,3

0,2 Serie1

0,1

0
0 5 10 15 20 25 30 35
-0,1

-0,2
Tiempo

Fig. 6.5 Área de recuperación y amortiguación de la respuesta impulsional


de una transmitancia de 2º orden – Amortiguación 0,026

A la vista de estos resultados se concluye que el método de tanteo es una solución de


compromiso entre la vuelta rápida al punto de consigna (con con el riesgo de ondas
oscilatorias no tolerables que ello puede implicar) y el retorno lento (ideal para gastar
menos energía en la recuperación) pero que presenta mayores oportunidades a la pre-
sencia de nuevas perturbaciones antes de que la variable se haya estabilizado.
Otros sistemas basados en la reducción del error son:
1. Integral del valor absoluto del error (IAE- Integral of Absolute value of Error). Se emplea
con buenos resultados en procesos con pequeñas desviaciones que se mantienen
durante largo tiempo.

IAE = ∫ e(t ) .dt


0

2. Integral del error cuadrático (ISE- Integral Square Error) que da mas importancia a las
grandes desviaciones (el error está elevado al cuadrado).

∫ [e(t )] .dt
2
ISE =
0

3. Integral del valor absoluto del error ponderado en el tiempo (ITAE- Integral of Time weigh-
ted Absolute value of Error) . que da mas importancia a las desviaciones que se man-
tienen durante largo tiempo, es decir, a las respuestas demasiado oscilantes.

ITAE = ∫ t * e(t ) .dt


0

4. Integral del error cuadrático ponderado en el tiempo (ITSE - Integral of time times error
squared).

ITSE = ∫ t * [e(t )] .dt


2

151
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 152

Simulación y control de procesos por ordenador

En el capítulo 9 pueden verse los programas correspondientes.

6.2.2 Estudio del lazo cerrado de control


En el criterio de Bode de estabilidad relativa estudiado anteriormente, se considera que
la respuesta frecuencial representada en el diagrama de Bode del bucle en lazo abierto
debe pasar por los puntos -140°, 0 dB y -180°, 5 dB y que el límite de estabilidad se
encuentra en el punto -180°, 0 dB (criterio de estabilidad absoluta).
Aplicando este criterio se obtendrán unos valores de las acciones P + 1 + D, que, en la
mayoría de los casos, asegurarán la estabilidad del sistema en lazo cerrado. Sin embar-
go, a veces, es interesante determinar la respuesta frecuencial en lazo cerrado a partir
de la respuesta frecuencial en lazo abierto para verificar el tipo de estabilidad absoluta
del sistema. Nótese que en lazo abierto, con la válvula en posición fija y el controlador
en manual, una perturbación cíclica producirá una oscilación en la variable, y esta osci-
lación dependerá de la frecuencia de la perturbación.
En lazo cerrado, una perturbación cíclica producirá también una oscilación de la des-
viación entre la variable y el punto de consigna. Cada oscilación es la señal de entrada
del controlador, el cual da una señal de salida hacia la válvula de control; ésta adopta
una nueva posición, dando lugar a una nueva señal de entrada hacia el controlador.
Evidentemente, la desviación de la variable será distinta del caso en lazo abierto, ya que
el controlador opera con la desviación como su señal de entrada.
La comparación directa entre las respuestas en lazo abierto y lazo cerrado permite
determinar la bondad del controlador en la eliminación de las perturbaciones en fun-
ción de la frecuencia.

Fig. 6.6 Curva PC de función de transferencia en bucle abierto


La curva de respuesta en lazo cerrado del conjunto proceso + controlador puede obte-
nerse a partir del diagrama de Nyquist del bucle abierto de control (controlador + pro-
ceso). Si P es la función de transferencia del proceso y C la del controlador y conside-
ramos la figura 6.6, resulta como función de transferencia del bucle cerrado:

x PC x
Módulo = arg = arg PC − arg (1 + PC )
s 1 + PC s

152
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 153

Estabilidad

De este modo pueden determinarse varios puntos y obtener así, uniéndolos, la función
de transferencia en lazo cerrado.
Sin embargo, el procedimiento es un poco laborioso, por lo cual se utilizan los círculos
M y N, que son lugares geométricos de los puntos de magnitud constante de fase cons-
tante respectivamente.
La construcción de estos círculos se efectúa del modo siguiente:
Sea P un punto de la curva PC de función de transferencia en bucle abierto de la figu-
ra 6.6. En el triángulo OPA se verifica:

OP x2 + y2
=m=
AP (1 − x )2 + y 2
expresión que desarrollada y transformada da:
2 2
 m2   m2 
 x + 2  + y 2 =  2 
 m −1  m −1
que es la ecuación de un círculo de radio m/(m2 -1) y de centro [-m2 /(m2-1),0] y corres-
ponde al lugar geométrico de los puntos de magnitud constante m = OP/AP en bucle
cerrado (figura 6.6).
En forma análoga, se deduciría el lugar geométrico de los puntos de fase constante en
bucle cerrado, obteniéndose una familia de círculos que pasan por los puntos 0 y -1 del
eje real con los siguientes datos:
1
centro [− 1 / 2, 1 / 2 * cot g ( a − b)] y radio
2 * seno (α − β )

En la figura 6.7 pueden verse estos círculos, cuyos puntos de corte con el diagrama de
Nyquist proporcionan la amplitud y la fase en función de la frecuencia, por lo que per-
miten dibujar la curva de respuesta en lazo cerrado y representarla si se desea en el dia-
grama de Bode.
Hay que señalar que si el diagrama de Nyquist se representa en coordenadas cartesia-
nas en lugar de coordenadas polares, se obtiene el ábaco de Nichols. En ordenadas se
encuentra la amplitud en dB y en abscisas la fase para la respuesta en lazo abierto. Las
curvas M y N se dibujan en el mismo diagrama y permiten obtener fácilmente la res-
puesta en lazo cerrado (figura 6.8) observando las coordenadas curvas correspondientes.
La comparación directa entre las respuestas en lazo abierto y lazo cerrado permite
determinar la bondad del controlador en la eliminación de las perturbaciones en fun-
ción de la frecuencia. Esta diferencia puede verse, de forma manifiesta, en las curvas
llamadas de relación de desviación (deviation ratio, DR) que en ordenadas tienen:
Amplitud desviación en lazo cerrado (con control )
DR =
Amplitud desviación en lazo abierto (sin control )
y en abscisas la frecuencia en escala logarítmica.

153
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 154

Simulación y control de procesos por ordenador

Fig. 6.7 Círculos M y N

154
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 155

Estabilidad

Fig. 6.8 Abaco de Nichols

155
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 156

Simulación y control de procesos por ordenador

Estas curvas pueden deducirse del diagrama de Bode o del ábaco de Nichols restando
las ganancias en dB y pasando la diferencia a cociente de magnitudes, es decir:

Gc
dBc = 20 * log
Ga
siendo, dBc, Gc, y dBa, Ga las ganancias (en dB) y magnitudes en lazos cerrado y abier-
to respectivamente. En la figura 6.9 se representa una curva típica en la cual se obser-
varán tres zonas separadas por la línea DR= 1.
En la zona A el controlador reduce los efectos de las perturbaciones, ya que el instru-
mento disminuye los picos de las desviaciones por debajo de lo que serían si se intro-
dujera la señal fluctuante en el lazo y se permitiera simplemente que la variable medi-
da oscilara. Cuanto mayor sea el campo de valores de frecuencia de la zona A tanto
mejor será la actuación del controlador.
En la zona B, el controlador amplifica el tamaño de la desviación, y exagera los efectos
de las perturbaciones.
En la zona C, el controlador se limita prácticamente a no influir en el tamaño de las des-
viaciones y no tiene ningún efecto sobre las mismas.

Fig. 6.9 Curva de relación de desviación


Por otro lado, un controlador proporcional tendrá un offset de valor 1/(1 + P0C0) que
disminuirá con el aumento de la ganancia y aumentará con la disminución de la ganan-
cia. Un controlador de acción P+I no tendrá offset (el aumento del tiempo de acción
integral disminuye la zona A, disminuye la zona B y aumenta el pico de resonancia de
la zona B. Un controlador con acción P + D tiene un offset igual al de la acción propor-
cional sola, y un aumento del tiempo de la acción derivada da lugar a un aumento de
la zona A, al de la zona B y aumenta el pico de resonancia.

156
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 157

Estabilidad

Ejercicios
6.1 Indicar si el sistema de transmitancia 1/(s2 – s -2) tiene o no estabilidad absoluta.
6.2 Un sistema de control de nivel tiene una transmitancia resultante en lazo cerra-
do de 2/(S4 + 3s3 - 2s2 + s + 1). Utilizando el criterio de Routh, indicar si tiene esta-
bilidad absoluta.
6.3 Un sistema tiene una transmitancia de denominador s3 - 5s2 + 10s - 5. Averiguar
si tiene o no estabilidad absoluta aplicando el criterio de fracciones continuas.
6.4 Un control de caudal consta de un controlador proporcional (FIC) de Trans-
mitancia K , de un transmisor de caudal (FIT) de transmitancia 1/(1+ s), de una
válvula de control V de transmitancia 1/(1 + 2s) y de un tanque de proceso de
transmitancia 1/(1 + 3s). Indicar para qué valor de la ganancia el sistema está en
el límite de estabilidad absoluta aplicando el criterio de Bode.
6.5 Utilizando el método del lugar geométrico de raíces, indicar si el diagrama de
bloques adjunto, perteneciente a un control de temperatura, tiene o no estabili-
dad absoluta.

6.6 Mediante el ordenador, averiguar el área absoluta comprendida entre la respues-


ta indicial de una transmitancia de segundo orden y el eje de abscisas cuando la
amortiguación es de 0,7.
6.7 En el diagrama de Bode de la figura, correspondiente a un control de tempera-
tura, indicar el grado de estabilidad relativa, así como el grado de proximidad a
la estabilidad absoluta. Suponiendo que la curva de desfase permanezca fija,
dibujar una curva paralela a la de ganancia con el fin de conseguir la mejor curva
de estabilidad relativa.

6.8 Utilizando el ábaco de Nichols, dibujar la curva de respuesta en lazo cerrado


correspondiente a la de lazo abierto de la figura adjunta.

157
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 158

Simulación y control de procesos por ordenador

6.9 Tomando como base el ejercicio anterior, dibujar la curva de relación de desvia-
ción y deducir las conclusiones oportunas sobre la influencia del controlador,
según sean las frecuencias de las perturbaciones que puedan presentarse en el
proceso.

158
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 159

Capítulo 7

Análisis y evaluación
de un lazo de control

7.1 Método analítico


Sea el reactor encamisado de la figura 7.1 que es controlado por el regulador de tempe-
ratura TIC y por la válvula de control V. El agente de control es un fluido térmico
(downtherm).

Fig. 7.1 Reactor encamisado


El reactor es utilizado en esta aplicación para calentar un producto y suponemos que
la temperatura de calentamiento queda fuera de los límites de la posible reacción exo-
térmica del mismo, es decir, el reactor actúa en este caso realmente como un intercam-
biador de calor.
La función de transferencia del reactor, considerando como señal de entrada el caudal
de entrada del fluido q1 y como señal de salida la temperatura T del tanque) es:
ρ1 (T1 − T2 )
T q2 ρ 2
=
Q1 1 + M * s
q2 ρ 2

según se dedujo en el estudio simplificado de la transmitancia del reactor encamisado


del apartado 2.3.9. Estudiemos el caso particular de un reactor de forma cilíndrica de
diámetro 3 m y altura 4 m con los siguientes datos adicionales:

159
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 160

Simulación y control de procesos por ordenador

Fluido térmico (Downtherm A)


ce = 0,56 kcal/kg, °C a 200°C
Temperatura de entrada T1 = 200 °C
Temperatura de salida T2 = 150 °C
Caudal de entrada q1 = 5 m3/min
Densidad ρ1 = 1,06 g/cm3
Producto: Anilina
ce = 0,5 kcal/kg 0C
Temperatura de salida igual a la homogénea del tanque = T
Volumen del producto contenido en el tanque = π*(32/4)*4 = 28,3 m3 (se trata
de un reactor de 3 m de diámetro por 4 m de altura)
Caudal de entrada del producto q2 = 3 m3/min
Densidad r2 = 1,022 g/cm3
De aquí resulta:

1,06 * (200 − 150 )


T 3 *1,022 17,3
= =
Q1 29 1 + 9,46 * s
1+ *s
3 *1,022
que es una transmitancia de primer orden de ganancia 20 log 17,3 = 24,7 dB y constan-
te de tiempo τ = 9,46 minutos, w0 = 0,105 rad/min.
El termopar tiene una transmitancia de primer orden con frecuencia natural W0 = 500
radianes/minuto y constante de tiempo τ = 1/w0 = 0,002 minutos.

Suponemos una válvula de control de igual porcentaje de ecuación

q = 0,02 * e 3,912*l
Siendo q = caudal;
l = posición vástago de la válvula.
Su transmitancia fue estudiada en el ejemplo del apartado 2.3.10 y es de segundo orden
de la forma
ganancia válvula de igual porcentaje
T 2 s 2 + 2Ts + 1
siendo: T = constante de tiempo;
ξ = factor de amortiguamiento.
La frecuencia natural oscila entre 20 y 70 cpm, es decir su equivalente de 125 a 450
radianes/minuto. En nuestro caso escogeremos el valor de Wo = 400 radianes/minuto (T
= 0,0025 min).

160
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 161

Análisis y evaluación de un lazo de control

El factor de amortiguamiento suele ser la unidad.


La ganancia de la válvula de igual porcentaje es dq/dl = 3,912*q, es decir, su valor depen-
de del caudal. Suponiendo que el caudal normal de trabajo oscila entre el 60% y el 80%
del caudal máximo, la ganancia correspondiente será:
q2 − q1 0,02 * e 3,912*0,8 − 0,02 * e3,912*0, 6
g= = = 1,241
l2 − l1 0,8 − 0,6
g = 20 log 1,241 = 1,875 dB
Al estar el termopar situado a una distancia de 1 metro de la salida del reactor existe
un tiempo de retardo determinado por la velocidad del líquido en la tubería de salida.
Si esta velocidad es de 1 m/s, este tiempo vale 1 segundo, por lo cual la función de retar-
do es:

y = e −T *s o sea y = e −0,016*s
Su representación puede verse en el apartado 5.3 y se caracteriza por tener g = 0 dB y
desfase Φ = -wT y por pasar por los puntos:

W
Φ
(radianes/minuto)
0 0
1 -0,016 rad = 0º

πνιµ/δαρ 89 = Τ2/ -π/2 = 1,57 rad = 90º

πνιµ/δαρ 691 = Τ/ -π = -3,14 rad = -180º

Obtenida la respuesta frecuencial del conjunto válvula de control + proceso + termopar


+ retardo, a la que llamamos PROCESO, falta sumar en el diagrama de Bode la res-
puesta frecuencial del controlador, con objeto de satisfacer los criterios de estabilidad
relativa (figura 7.2 en la página siguiente).
Las operaciones pueden realizarse de modo manual o utilizando el ordenador.

7.1.1 Análisis de la estabilidad en modo manual


Se efectúa por tanteo, dibujando en papel vegetal semilogaritmico (para facilitar la
tarea) las curvas de representación de las respuestas frecuenciales de las acciones deri-
vativa, integral y proporcional.
Aplicaremos primero la acción derivada, utilizando la tabla 7.1 para ver si es conve-
niente su aplicación.

161
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 162

Simulación y control de procesos por ordenador

Fig. 7.2 Análisis de la estabilidad en el diagrama de Bode

162
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 163

Análisis y evaluación de un lazo de control

Fig. 7.2 Análisis de la estabilidad en el diagrama de Bode (continuación)

Tabla 7.1 Criterios de aplicación de la acción derivada

W-2700 = 160 rad/min W-1800 = 68 rad/min

2,3 indica que la acción derivada es útil

dB-1800 = - 33 dB(baja frecuencias) = 30 (estimado)


dB(baja frecuencias) - dB(-1800) = 30 - (-33) = 63 dB que indica que la acción derivada es nece-
saria; no obstante, la estimación hecha de 30 dB a baja frecuencia y el hecho de que haya
algo de retardo, invalidan en cierto modo este último criterio. De todos modos, según
w
la relación anterior − 270 º = 2,3 la acción derivada es útil.
w−180 º
Valores posibles de la acción derivada:

163
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 164

Simulación y control de procesos por ordenador

a) El período de oscilación a -180° del proceso es 2π 2π


Pu = = = 0,09 min utos
wu 68

Pu 0,09
y según el criterio de Ziegler & Nichols = τd =
= 0,01 min utos
8 8
b) Situando como primer tanteo el valor de desfase de +500 de la respuesta frecuen-
cial de la acción derivada con el valor de – 180° o del PROCESO y sumando las dos
curvas se encuentran los valores:
-140° - 30,5 dB
-180° - 32 dB -30,5 - (-32) = 1,5 dB
que no cumplen la diferencia de 5 dB del criterio de estabilidad relativa, y como inicial-
mente la diferencia era de:
-140° - 27,5 dB
-180° - 33 dB -27,5 - (-33) = 5,5 dB
debemos realizar un segundo tanteo con una acción derivada más pequeña, y así ensa-
yamos el valor de Wd = 60 con una τd = 1/60 = 0,016 minutos de anticipo.
Los nuevos valores obtenidos son:
-140° - 30 dB
-180° - 32,5 dB - 30 - (-32,5) = 2,5 dB
que todavía no llega a 5 dB.
Reducimos más la acción derivada y tanteamos ahora el valor Wd = 100 con una τd =
1/100 = 0,01 minutos de anticipo. resultando
-140° - 29 dB
-180° - 35,5 dB - 290 - (-35,5) = 6,5 dB
teniendo en cuenta que la adición de la acción integral aumentará algo esta diferencia,
por la acción integral desestabilizadora, consideramos una acción derivada de:
Wd = 80 con una τd = 1/80 = 0,0125 minutos de anticipo.
Tantearemos seguidamente la acción integral. Con el fin de tener una mayor claridad
en el dibujo, trasladamos la curva resultante PROCESO + derivada a otro gráfico.
Lógicamente, al ser una regulación de temperatura, consideramos que el control inte-
gral es necesario para evitar el offset. No obstante, podríamos determinar el valor apro-
ximado del offset a partir de la expresión:

1 1
= = 16,6%
 50  50
1 +  K 0 *  1 + 31,6 *
 PBu  316

que es el porcentaje del offset sobre el cambio del punto de consigna a partir de offset
nulo, es decir, igualdad entre la variable y el punto de consigna, siendo:

164
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 165

Análisis y evaluación de un lazo de control

K0 = antilog (30/20) = 31,6


A – 180°: -10 dB = 20 log G
y de aquí: G= 031; PBu =100/0,31 = 316%
Valores posibles de la acción integral:
a) Según el criterio de Ziegler & Nichols, el período de oscilación a -180° era de:
Pu = 2/wu =0,09 minutos y τi = Pu/2 = 0,09/2 = 0,04 minutos/repetición
b) Con 10 rad/min como segundo tanteo (10º de desfase de la acción integral
con el valor de -180° del PROCESO + derivada da como resultado):
-140° - 27,5 dB
-180° 33 dB - 27,5 - (-33) = 5 dB
lo cual corresponde ya prácticamente a nuestro objetivo: conseguir una diferencia
de 5 dB entre las ganancias corrrespondientes a -140° y -180° para que así, con la
aplicación final de la acción proporcional, obtengamos una estabilidad relativa.
Así tenemos una acción integral de: Wi = 10 rad/min
τi = 1/10 = 0,6 min/repetición
Veamos ahora cuál debe ser el valor de la acción proporcional.
Los valores de ganancia para los dos fases de -140° y -180° (la curva de desfase perma-
nece inalterable por la acción proporcional) son respectivamente de -27,5 dB y -33 dB.
Bastará, pues, una acción proporcional de 27,5 dB para obtener los puntos de estabili-
dad relativa
-140° 0 dB
-180° -5,5 dB
Así pues:
G = antilog (27,5/20) = 23,7
BP = 100/23,7 = 4,2% ~ 4%
Determinemos ahora la respuesta frecuencial del sistema en lazo cerrado, utilizando el
ábaco de Nichols de la figura 6.7. A partir de las curvas de respuesta frecuencial de
ganancia y de desfase en lazo abierto de la figura 7.2c, obtenemos 6 puntos a las fre-
cuencias de 5, 10, 20, 50, 70 y 100 rad/min, deduciéndose los valores correspondientes
en lazo cerrado, y formándose la siguiente tabla:
w
Punto g(dB) Ö (grados) DR
(rad/min)
Abierto Cerrado Abierto Cerrado dBc-dBa DR
1 5 27 0,5 ? 175º ? 0º ? 26,5 0,04
2 10 15 1,4 ? 150º ? 5º ? 13,6 0,2
3 20 7 2 ? 132º ? 25º ? 5 0,56
4 50 ? 1 5 ? 144º ? 80º 6 2
5 70 ? 3,5 2 ? 150º ? 110º 5,5 1,8
6 100 ? 5 0 ? 160º ? 140º 5 1,7

165
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 166

Simulación y control de procesos por ordenador

Determinemos ahora la curva de relación de desviación (figura 7.3) de acuerdo con la


tabla anterior.

Fig. 7.3 Curva de relación de desviación

166
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 167

Análisis y evaluación de un lazo de control

En la figura puede verse que a frecuencias inferiores a 40 rad/min el controlador redu-


ce perfectamente las perturbaciones aperiódicas inferiores a esta frecuencia que pueden
presentarse en el proceso.
En cambio es incapaz de reducir, y más bien empeora, las perturbaciones aperiódicas
de frecuencia mayor que 40 rad/min.

7.1.2 Análisis de la estabilidad mediante el ordenador


Utilicemos ahora el ordenador para dibujar las curvas de los elementos del sistema de
control y obtener automáticamente los valores de las acciones PID para cumplir con los
criterios de estabilidad relativa.
En la figura 7.4 puede verse el programa de estabilidad relativa del reactor con dos
ensayos, el primero dando los valores del controlador g = 1; TI = 10.000 minutos/repe-
tición, o sea la acción integral prácticamente es nula, TD = 0 minutos, con el fin de
encontrar la ganancia límite y la frecuencia de oscilación que permiten calcular según
el criterio de Ziegler & Nichols los valores P, I y D del controlador. Asimismo, el mismo
programa calcula el margen de ganancia y el margen de fase.
Recordemos que se suele considerar un margen de ganancia de -5 dB y un margen de
fase de 40° admitiéndose variaciones de 6 a 20 dB y de 25° a 60° respectivamente.

Programa de estabilidad relativa del reactor – Cálculo de las acciones PID s/ Ziegler
& Nichols

Option Explicit
Private Sub EstabilidadRelativaReactor_Click() 'cmdCreateTable_Click()
Dim w As Single, sigma As Single
Dim t0 As Single, Dt As Double, tf As Single, n As Single, p As Single, L As
Single
Dim contador As Integer, S1 As Single, C1 As Single
Dim D1 As Single, D2 As Single, T1 As Single, T2 As Single, Q2 As Single
Dim C2 As Single, C3 As Single, T3 As Single, S As Single, V As Single
Dim KP As Single, TR As Single, TD As Single, E1 As Single
Dim E As Single, EI As Single, PR As Single, controlador As Single
Dim X As Single, X1 As Single, X2 As Single, X3 As Single, X4 As Single, X5 As
Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single, Y6 As
Single
Dim Z1 As Single, Z2 As Single, Z3 As Single, Z4 As Single
Dim A As Single, A1 As Single, A2 As Single, A3 As Single, A4 As Single, A5 As
Single
Dim proceso3 As Single, retardo3 As Single, termopar3 As Single, valvula3 As
Single
Dim G As Single, GdB As Single, G1dB As Single, G2dB As Single, G3dB As Single,
G4dB As Single, G5dB As Single
Dim PeriodoOscilacion As Single, GananciaLimite As Single, ZN As Single
Dim margenganancia As Single, margenfase As Single, F140 As Single, F180 As
Single, G140 As Single, G180 As Single
'Títulos en celdas
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("C2").Select
Selection.Font.Bold = True

167
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 168

Simulación y control de procesos por ordenador

Range("D2").Select
ActiveCell.FormulaR1C1 = "Ganancia señal de salida/señal de entrada"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Tiempo (radianes/min)"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Ganancia en dB"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Desfase - grados"
Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Ziegler & Nichols - Ganancia"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Ziegler & Nichols - Minutos/repetición"
Range("I2").Select
Selection.Font.Bold = True
Range("J2").Select
ActiveCell.FormulaR1C1 = "Ziegler & Nichols - Minutos de anticipo"
Range("J2").Select
Selection.Font.Bold = True
Range("K2").Select
ActiveCell.FormulaR1C1 = "Margen de ganancia"
Range("K2").Select
Selection.Font.Bold = True
Range("L2").Select
ActiveCell.FormulaR1C1 = "Margen de fase"
Range("L2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial(radianes/min)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal(radianes/min)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (radianes/min)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Densidad fluido térmico(D1)"
Range("A12").Select
Selection.Font.Bold = True

168
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 169

Análisis y evaluación de un lazo de control

Range("A14").Select
ActiveCell.FormulaR1C1 = "Densidad producto(D2)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Temperatura entrada fluido térmico (T1)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Temperatura salida fluido térmico (T2)"
Range("A18").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Caudal entrada producto (Q2)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Volumen tanque(V)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula (C2)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S1)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Retardo (C1)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del termopar(T3)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Ganancia(KP)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral- min/rep (TR)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos(TD)"
Range("B18").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- radianes/min:"): Cells(3, 1) = t0 'Tiempo
inicial
tf = InputBox("Valor final de t (tf)- radianes/min:"): Cells(5, 1) = tf 'Tiempo
final
Dt = InputBox("Incremento de t (Dt)- radianes/min:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
D1 = InputBox("Densidad fluido térmico(D1):"): Cells(13, 1) = D1
D2 = InputBox("Densidad producto(D2):"): Cells(15, 1) = D2
T1 = InputBox("Temperatura entrada fluido térmico (T1):"): Cells(17, 1) = T1
T2 = InputBox("Temperatura salida fluido térmico (T2):"): Cells(19, 1) = T2

169
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 170

Simulación y control de procesos por ordenador

Q2 = InputBox("Caudal entrada producto (Q2):"): Cells(3, 2) = Q2


V = InputBox("Volumen tanque(V):"): Cells(5, 2) = V
C2 = InputBox("Constante de tiempo de la válvula (C2):"): Cells(7, 2) = C2
S1 = InputBox("Factor de amortiguación de la válvula (S1):"): Cells(9, 2) = S1
C1 = InputBox("Retardo (C1):"): Cells(11, 2) = C1
T3 = InputBox("Constante de tiempo del termopar(T3):"): Cells(13, 2) = T3
KP = InputBox("Ganancia(KP):"): Cells(15, 2) = KP
TR = InputBox("Tiempo de acción integral- min/rep (TR):"): Cells(17, 2) = TR
TD = InputBox("Tiempo de acción derivada - minutos(TD):"): Cells(19, 2) = TD
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 3)) Or Abs(Cells(contador + 3, 4)) Or Abs(Cells(con-
tador + 3, 5)) Or Abs(Cells(contador + 3, 6)) Or Abs(Cells(contador + 3, 7)) > 0
Cells(contador + 3, 3) = "": Cells(contador + 3, 4) = "": Cells(contador + 3,
5) = "": Cells(contador + 3, 6) = "": Cells(contador + 3, 7) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Respuesta Frecuencial Controlador Proporcional
ZN = 0
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 3) = w: Cells(p + 3, 5) = w
'Proceso (reactor)
X1 = ((T1 - T2) / Q2) / (1 + (V / Q2) * w ^ 2)
Y1 = -((T1 - T2) / Q2) * (V / Q2) * w / (1 + (V / Q2) * w ^ 2)
proceso3 = Sqr(X1 ^ 2 + Y1 ^ 2)
G1dB = 20 * Log(proceso3) / Log(10#)
Z1 = Y1 / X1
A1 = (Atn(Z1)) * (180 / 3.14)
'Retardo en la captación de temperatura del termopar
retardo3 = 1: G2dB = 0
A2 = (-C1 * w) * (180 / 3.14)
'Termopar
X3 = 1 / (1 + (T3 * w) ^ 2)
Y3 = -T3 * w / (1 + (T3 * w) ^ 2)
termopar3 = Sqr(X3 ^ 2 + Y3 ^ 2)
G3dB = 20 * Log(termopar3) / Log(10#)
Z3 = Y3 / X3
A3 = (Atn(Z3)) * (180 / 3.14)
'Valvula
X4 = (1 - (C2 * w) ^ 2) / ((1 - (C2 * w) ^ 2) ^ 2 + 4 * (S1 * C2 * w) ^ 2)
On Error GoTo 0
Y4 = -2 * S1 * C2 * w / ((1 - (C2 * w) ^ 2) ^ 2 + 4 * (S1 * C2 * w) ^ 2)
valvula3 = Sqr(X4 ^ 2 + Y4 ^ 2)
G4dB = 20 * Log(valvula3) / Log(10#)
Z4 = Y4 / X4
A4 = (Atn(Z4)) * (180 / 3.14)
'Controlador
controlador = KP * Sqr(1 + ((-1 / (w * TR)) + w * TD) ^ 2)
G5dB = 20 * Log(controlador) / Log(10#)
A5 = (Atn((-1 / (w * TR)) + w * TD)) * (180 / 3.14)
G = proceso3 + retardo3 + termopar3 + valvula3 + controlador
GdB = G1dB + G2dB + G3dB + G4dB + G5dB
A = A1 + A2 + A3 + A4 + A5
On Error GoTo 0
Cells(p + 3, 4) = G 'Ganancia en señal salida/señal entrada
Cells(p + 3, 6) = GdB 'Ganancia en decibelios
Cells(p + 3, 7) = A 'Desfase en grados sexagesimales
If Int(Cells(p + 3, 7)) = -180 Then PeriodoOscilacion = w: GananciaLimite =
Exp(GdB * Log(10#) / 20)

170
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 171

Análisis y evaluación de un lazo de control

If Int(Cells(p + 3, 6)) = 0 Then margenfase = 180 + Cells(p + 3, 7)


If Int(Cells(p + 3, 7)) = -180 Then margenganancia = Exp(-Cells(p + 3, 6) *
Log(10#) / 20)
If Abs(A) > 250 Then w = tf
Next w
Cells(3, 8) = GananciaLimite / 2
Cells(4, 8) = GananciaLimite / 2.2: Cells(4, 9) = 1 / (PeriodoOscilacion * 1.2)
Cells(5, 8) = GananciaLimite / 1.7: Cells(5, 9) = 1 / (PeriodoOscilacion * 2):
Cells(5, 10) = 1 / (PeriodoOscilacion * 8)
Cells(3, 11) = margenganancia
Cells(3, 12) = margenfase
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 5), Cells(p + 3, 7)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "ESTABILIDAD RELATIVA REACTOR"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo
(radianes/min)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ganancia - dB, Desfase -
grados"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory).ScaleType = xlScaleLogarithmic
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 430:
.Top = 200:
End With
'El programa termina en una celda vacía
Range("A21").Select
ActiveCell.FormulaR1C1 = ""
Range("A21").Select
Selection.Font.Bold = True
End Sub

171
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 172

Simulación y control de procesos por ordenador

Tiempo Ganancia señal Tiempo Ganan


Tinicial(radian Caudal entrada Desfase
(radianes/ de salida/señal (radianes/ cia en
es/min) producto (Q2) - grados
min) de entrada min) dB
0,10 3,000 0,10 24,94 0,10 26,42 -44,16
Tfinal(radiane Volumen
0,11 25,56 0,11 26,67 -46,96
s/min) tanque(V)
100,00 28,300 0,12 26,16 0,12 26,91 -49,52
Incremento
Constante de
tiempo
tiempo de la 0,13 26,75 0,13 27,14 -51,85
(radianes/mi
válvula (C2)
n)
0,01 0,020 0,14 27,30 0,14 27,35 -53,99
Factor de
amortiguación
Nº de puntos 0,15 27,82 0,15 27,54 -55,94
de la válvula
(S1)
9.990,00 0,700 0,16 28,31 0,16 27,71 -57,74
Valor de p - nº
Retardo (C1) 0,17 28,75 0,17 27,87 -59,39
de periodos
2.100,04 0,100 0,18 29,15 0,18 28,01 -60,92
Densidad Constante de
fluido tiempo de l 0,19 29,52 0,19 28,14 -62,33
térmico(D1) termopar(T3)
1,060 0,003 0,20 29,84 0,20 28,25 -63,64
Densidad
Ganancia(KP) 0,21 30,12 0,21 28,34 -64,85
producto(D2)
1,022 1,000 0,22 30,36 0,22 28,42 -65,98
Temperatura Tiempo de
entrada fluido acción integ ral- 0,23 30,56 0,23 28,49 -67,04
térmico (T1) min/rep (TR)
200,000 10.000,000 0,24 30,73 0,24 28,54 -68,03
Temperatura Tiempo de
salida fluido acción derivada 0,25 30,86 0,25 28,58 -68,96
térmico (T2) - minutos(TD)
150,000 0,000 0,26 30,96 0,26 28,61 -69,83

Ziegler
Ziegler & Ziegler & Nichols - &
Margen de Margen de
Nichols - Minutos/repetició Nichols -
ganancia fase
Ganancia n Minutos
anticipo
0,69 0,72074121 -35,058548
0,63 0,07
0,82 0,04 0,01

ESTABILIDAD RELATIVA REACTOR

50,00
Ganancia - dB, Desfase - grados

0,00
0,10 1,00 10,00 100,00
-50,00

-100,00 Serie1
-150,00 Serie2

-200,00

-250,00

-300,00
Tiempo (radianes/min)

172
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 173

Análisis y evaluación de un lazo de control

Efectuando otros ensayos de tanteo seleccionamos el siguiente:


Tiempo Ganancia señal Tiempo
Tinicial(radianes/ Caudal entrada Ganancia Desfase
(radianes/ de salida/señal (radianes/
min) producto (Q2) en dB - grados
min) de entrada min)
0,10 3,000 0,10 33,17 0,10 45,72 -132,66
Tfinal(radianes/m Volumen
0,11 32,95 0,11 45,15 -135,31
in) tanque(V)
100,00 28,300 0,12 32,86 0,12 44,64 -137,73
Incremento Constante de
tiempo tiempo de la 0,13 32,85 0,13 44,17 -139,92
(radianes/min) válvula (C2)
0,01 0,020 0,14 32,90 0,14 43,73 -141,90
Factor de
Nº de puntos amortiguación de 0,15 32,98 0,15 43,33 -143,72
la válvula (S1)
9.990,00 0,700 0,16 33,08 0,16 42,94 -145,37
Valor de p - nº de
Retardo (C1) 0,17 33,18 0,17 42,57 -146,87
periodos
2.836,06 0,100 0,18 33,29 0,18 42,22 -148,25
Constante de
Densidad fluido
tiempo del 0,19 33,38 0,19 41,87 -149,51
térmico(D1)
termopar(T3)
1,060 0,003 0,20 33,46 0,20 41,54 -150,67

Densidad
Ganancia(KP) 0,21 33,52 0,21 41,21 -151,74
producto(D2)

1,022 0,240 0,22 33,56 0,22 40,88 -152,73


Temperatura Tiempo de acció n
entrada fluido integral- min/rep 0,23 33,58 0,23 40,56 -153,63
térmico (T1) (TR)
200,000 0,260 0,24 33,58 0,24 40,25 -154,48
Temperatura Tiempo de acción
salida fluido derivada - 0,25 33,55 0,25 39,94 -155,25
térmico (T2) minutos(TD)
150,000 0,060 0,26 33,51 0,26 39,63 -155,98

Ziegler
&
Ziegler &
Ziegler & Nichols - Nichols - Margen de Margen
Nichols -
Minutos/repet ición Minutos ganancia de fase
Ganancia
de
anticipo
0,15 3,34967566 27,358139

0,14 0,05

0,18 0,03 0,01

ESTABILIDAD RELATIVA REACTOR

100,00
Ganancia - dB, Desfase - grados

50,00

0,00
0,10 1,00 10,00 100,00
-50,00
Serie1
-100,00
Serie2
-150,00

-200,00

-250,00

-300,00
Tiempo (radianes/min)

Fig. 7.4 Programa de estabilidad relativa del reactor – Cálculo de las acciones PID s/ Ziegler & Nichols
173
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 174
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 175

Capítulo 8

Análisis e identificación
de procesos
En los ejemplos estudiados en los primeros capítulos de este libro se dedujeron los
modelos matemáticos de procesos gracias a su sencillez y a las simplificaciones efectua-
das. En muchos casos es difícil obtener una función matemática del proceso suficien-
temente exacta como para que los resultados que se obtengan después en la planta
industrial sean prácticamente los esperados, es decir, los resultados deducidos analíti-
camente a priori, ya que se ha supuesto antes que todos los parámetros eran conocidos
y, obligatoriamente, se han considerado aproximaciones.
En lugar de estudiar el modelo matemático del proceso puede acudirse a su análisis
experimental, en el caso de que el mismo esté ya en operación. De este modo, muchos
datos que no eran conocidos inicialmente en el modelo matemático, se revelarán clara-
mente en los ensayos dinámicos que se efectúen, aparte de que podrán comprobarse los
resultados y las predicciones que se realizaron inicialmente al estudiar el modelo mate-
mático del proceso.
Los métodos de identificación de procesos para el ajuste de los controladores se estu-
diarán en el capítulo siguiente siendo en lazo abierto (curva de reacción) y en lazo ce-
rrado (oscilación mantenida o continua de Ziegler & Nichols).
Los modelos de los procesos se consideran de orden reducido, siendo los mas utilizados
los de primer o segundo orden con tiempo muerto, cuya función de transferencia es:
KP * e − t*s
Primer orden más tiempo muerto G (s) =
1+τ * s
KP * e − t*s
Segundo orden sobreamortiguado + retardo G (s) =
(1 + τ 1 * s ) * (1 + τ 2 * s )

KP * e − t*s
Segundo orden subamortiguado + retardo G (s) =
τ * s 2 + 2 * ξ *τ * s + 1

Varios sistemas existen para realizar el análisis experimental del proceso que permiten
obtener un sistema de 1º y 2º orden con un retardo que identifique al proceso. Este es
normalmente estable en lazo abierto, si bien se han hecho intentos para identificar pro-
cesos integradores, es decir inestables en lazo abierto. Ejemplos de los mismos se
encuentran en la industria química en tanques con líquidos y gases, sistemas inventa-
riables de materias primas o de materiales, etc. Debido a su dificultad, son raros los
métodos que identifican el proceso de forma simple y que lo derivan a funciones de

175
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 176

Simulación y control de procesos por ordenador

transferencia para obtener las fórmulas o reglas de autosintonización del controlador


acoplado al proceso.

8.1 Respuesta indicial ante una entrada


en escalón
Esta es la forma más directa para determinar el modelo matemático del proceso.
Con el controlador en manual, se cambia la posición de la válvula de control y se regis-
tra la curva de respuesta correspondiente. Esta curva debe aproximarse al modelo más
próximo de respuesta indicial de un sistema con una determinada función de transfe-
rencia. Se consideran los siguientes modelos de función de transferencia:
e − s* D
a) Elemento de primer orden y tiempo de retardo W = g 0 *
1 + s *τ 1
En la que:
W = Función de transferencia del proceso
g0 = Ganancia estática del proceso
D = Tiempo de retardo
τ1 = Constante de tiempo

Fig.8.1 Respuesta indicial de un proceso de primer orden con retardo puro

La aplicación de una señal de entrada al proceso dará lugar a una respuesta según
la figura 8.1, deducida de la determinación matemática de la antitransformada de
Laplace de la función de transferencia dividida por s.
Obtenida experimentalmente esta curva en el proceso será posible deducir las
constantes del mismo. Para ello se traza una tangente en el punto de inflexión, y
según las medidas resultantes se deducen los siguientes valores:
Ganancia estática = g0 = ∆b/∆a;
Tiempo de retardo = D;
Constante de tiempo = τ1.

176
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 177

Análisis e identificación de procesos

b) Dos elementos de primer orden y un retardo con la función de transferencia com-


binada g 0 * e − s*D
W=
(1 + s *τ 1 )* (1 + s *τ 2 )
La respuesta indicial puede verse en la figura 8.2, En esta figura, trazada la tangen-
te en el punto de inflexión se deducen los valores: ∆b
g0 =
∆a
y en primera aproximación τ1 = τ'1, D = D',
despreciándose la segunda constante de tiempo y aproximándose el proceso a un
elemento de primer orden y un retardo según la figura 8.2.
Si se desea mayor aproximación se aplican las fórmulas empíricas siguientes:
3ae − 1 1 − ae τ 1τ 2
τ 1 = τ '1 τ 2 = τ '1 D = D '−
1 + ae 1 + ae τ 1 + 3τ 2
en las que e = 2,72 y a = porcentaje de P0 que equivale al segmento diferencia entre
P0 y el valor de la curva en el tiempo D’ + τ’1.

Fig. 8.2 Respuesta indicial de un proceso formado por dos elementos de primer orden y un retardo

177
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 178

Simulación y control de procesos por ordenador

Para la obtención de las curvas de respuesta puede utilizarse un ordenador con placas
de entrada y salida de datos, o bien un registrador digital que permite registrar un
gran número de variables de modo gráfico o en hojas electrónicas tipo Excel, utilizan-
do generalmente un pen-drive de registro para llevar las variables a un ordenador
(figura 8.3).

Fig. 8.3 Registrador digital de variables de proceso. Fuente: Honeywell

A partir de la respuesta ante una entrada en escalón, es posible obtener la respuesta fre-
cuencial. En efecto, si W(s) es la transmitancia resulta:

∫ (dy / dt ) * e
− s*t
* dt
Y ( s) s * Y ( s)
W ( s) = = = 0

X (s) s * X (s )
∫ (dx / dt ) * e
− s*t
* dt
0

y la respuesta frecuencial se obtiene sustituyendo s por jw.


∫ (dy / dt ) * e
− jw*t
* dt
W ( jw) = 0

∫ (dx / dt ) * e
− jw*t
* dt
0
integrando por partes resulta:

178
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 179

Análisis e identificación de procesos

u = e − jwt dv = ( dy / dt ) * dt

du = − jw * e − jwt * dt v= y

(y * e ) + jw * ∫ y * e
− jw ∞
0
− jwt
* dt − y (0) + jw * ∫ y * e − jwt * dt
W ( jw) = =
(x * e ) + jw * ∫ x * e
− jw ∞
0
− jwt
* dt − x (0) + jw * ∫ x * e − jwt * dt

Expresión que por cambio de ejes a x = a e y = b, pasa a:

b − jw * ∫ y (t ) * e − jwt * dt
W ( jw) =
a − jw * ∫ x * e − jwt * dt

habiendo hecho y*(t) = b - y(t)


x*(t) = a-x(t)

La expresión W(jw) puede calcularse resolviendo las integrales por la transformación


de Fourier, según se verá en el estudio de la respuesta impulsional que figura más
adelante.

8.2 Respuesta frecuencial


Para obtener la respuesta frecuencial es necesario variar senoidalmente con el tiempo
la posición de la válvula de control, lo cual puede conseguirse mediante generadores
de ondas digitales, electrónicos, neumáticos o mecánicos con sus convertidores corres-
pondientes.
Una vez el proceso está estabilizado, se establecen las curvas senoidales de entrada y
de salida y se registran. Ensayadas un cierto número de ondas senoidales de distinta
frecuencia puede obtenerse el diagrama de Bode correspondiente.
De la curva de ganancia en decibelios se deducirá:
X Ganancia en régimen permanente a frecuencia cero.
X Constantes de tiempo en los puntos de intersección de asíntotas (figura 8.4). Si
estas asíntotas tienen pendientes de ±20 dB/década se tratará de una transmitancia
de primer orden, y si está pendiente varía entre ±20 dB/década y ±40 dB/década, la
transmitancia será de segundo orden con un denominador cuadrático.

El coeficiente de retardo o de amortiguación de esta transmitancia de segundo orden


se obtendrá midiendo el pico de resonancia.
La ganancia de la transmitancia se deducirá leyendo el valor de la ganancia a bajas fre-
cuencias en el diagrama de Bode.

179
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 180

Simulación y control de procesos por ordenador

Fig. 8.4 Respuesta frecuencial de transmitancias y diferencia entre curvas de fase

8.2.1 Razón de amortiguamiento a partir de los


picos de resonancia
A partir de estos datos deducidos de la curva, se determina la función de transferencia
aproximada. Se dibuja la respuesta frecuencial en el diagrama de Bode y se compara la
curva de fase con la experimental. Si existe diferencia entre las mismas será debido
al tiempo de retardo (figura 8.4). En efecto, si la transmitancia es de la forma [N(s)
/ D(s)]*e-Ts su respuesta frecuencial vale [N(s)/D(s)]*e-Tjw y como e-Tjw tiene como argu-
mento una variación de fase constante de valor -T, la visualización de la curva de fase de-
berá dar una modificación constante de su valor y, medida ésta, tendremos el retardo T.
El sistema es útil pero tiene el inconveniente de que debe emplearse mucho tiempo
para efectuar un número suficiente de ensayos, ya que las constantes de tiempo domi-
nantes en las plantas industriales pueden oscilar de minutos a horas, por lo cual un solo
ensayo puede requerir medio día o un día entero, y una serie completa de ensayos,
posiblemente, varias semanas.
También es posible que la planta, por sus características, no admita las ondas senoida-
les cíclicas que se generan en los ensayos (ejemplo, un proceso exotérmico).
Todo este proceso se ve facilitado por los registradores digitales que no utilizan papel
y que permiten registrar a voluntad toda una serie de parámetros, grabarlos en histó-
ricos con la posibilidad de revisarlos cuando se quiera y cuantas veces se quiera.

180
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 181

Análisis e identificación de procesos

8.3 Respuesta impulsional


Los ensayos con impulsos permiten obtener las curvas de respuesta frecuencial en un
tiempo mucho menor que en los ensayos efectuados de respuesta frecuencial.
Según indica la figura 8.5 se introduce como señal de entrada en el proceso un impul-
so x(t) y se registra la respuesta y(t).

Fig. 8.5 Respuesta impulsional

La transmitancia del proceso valdrá:

∫ y (t ) * e
− st
Y (s) * dt
W ( jw) = =
X ( s) ∫ x(t ) * e
− st
* dt

La respuesta frecuencial la encontraremos sustituyendo en la transmitancia el valor s


por jw, y así:

∫ y (t ) * e ∫ y (t ) * (cos wt − jsen wt )* dt =
− jwt
Y (s) * dt
W ( jw) = = =
X ( s) ∫ x(t ) * e ∫ x(t ) * (cos wt − jsen wt )* dt
− jwt
* dt

=
∫ y(t ) * cos wt * dt − j ∫ y(t ) * sen wt * dt = A − jB = (A − jB )* (C + jD ) =
∫ x(t ) * cos wt * dt − j ∫ x(t ) * sen wt * dt C − jD (C − jD )* (C + jD )
=
(AC + BD )+ j * (AD − BC ) AC + BD
= 2
AD − BC
+ j* 2
2 2 2
C +D C +D C + D2
Siendo:
A = ∫ y (t ) * cos wt * dt

B = ∫ y (t ) * sen wt * dt

C = ∫ x (t ) * cos wt * dt

D = ∫ x (t ) * cos wt * dt

181
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 182

Simulación y control de procesos por ordenador

con los valores de ganancia y de desfase de:


2
 AC + BD   AD − BC 
Ganancia (dB) = 20 * log  2 2 
+ 2 2 
 C +D   C +D 
AD − BC
Desfase Φ = arc tg
AC + BD
Así, para una frecuencia w pueden calcularse con el ordenador las integrales A, B, C y
D, determinándose un punto de ganancia y desfase en el diagrama de Bode.
Se cambia la frecuencia y se repiten las operaciones de integración un número suficien-
te de veces para obtener la respuesta frecuencial del proceso en el margen de interés.
Veamos un resumen de la forma como el ordenador realiza los cálculos. La integral
transformada de Fourier es:
ty tn
N
FIT = ∫ y (t ) * e − jwt
* dt =∑ ∫ y (t ) * e
− jwt
* dt
0 n =1 t n −1

Fig. 8.6 Integral transformada de Fourier

y aproximando la curva comprendida entre tn-1 y tn a una recta PQ de pendiente (figu-


ra 8.6): y n − y n −1
= tg α
t n − t n −1

y ecuación: y (t ) − y n −1 (t ) = (t − t n −1 ) * tg α
que sustituida en la integral transformada de Fourier anterior y después de integrar
por partes se obtiene la expresión:
N 
   e − jwt − 1 e − jwt   e − jw − 1 1  
FIT = ∑ e − jwt * n − 1 y n  −  − y n −1 *  −  
n −1 
   w 2
t jw   wt
2
jw  
que puede programarse fácilmente en un ordenador.

182
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 183

Análisis e identificación de procesos

Si el impulso de entrada es la unidad, la integral transformada de Fourier vale:



[
FIT = ∫ ∂ (t ) * e − jwt * dt = (e − jwt )0 = 1 ]

pero en la práctica, no es posible alcanzar el impulso unidad de área 1 y anchura nula,


aparte de que quizás no sea suficiente para perturbar la planta.
Por consiguiente, en caso de un impulso rectangular de anchura D y altura h resulta:

FIT = ∫ y (t ) * e − jwt * dt = h ∫ e − jwt * dt = −


h
jw
[(
* e − jwt )]
D
0 =
h
jw
( )  sen wD 
* 1 − e − jwD = h * 
h
 − j * * (1 − cos wD )
 w  w

y cuando w = 2π/D resulta FIT = hD/2π que es un valor muy pequeño.


Al objeto de que los ruidos y señales parásitas de la planta no influyan en la respuesta,
se procura que la anchura D del impulso sea suficiente para que la perturbación obte-
nida sea comparativamente muy superior.

8.4 Respuesta impulsional de realimentación


de relé
Este método llamado de realimentación de relé de Aström y Hägglund puede emple-
arse para seleccionar los ajustes del controlador o bien para identificar un modelo del
proceso.
Se basa en la excitación del circuito del proceso mediante un relé, registrándose los
valores de la señal de salida y con relación al tiempo y obteniendo de este modo series
de datos que después, mediante regresión polinómica, pueden convertirse a una ecua-
ción polinómica de grado elevado (véase el programa de la columna de destilación en
el capítulo 15 de simulación de procesos).
La excitación del proceso mediante un relé representa una secuencia de respuestas
indiciales del proceso y de su tiempo de retardo (figura 8.7).
El método tiene la ventaja de no llevar el sistema al límite de la estabilidad (como es el
caso del método de oscilación continua de Ziegler & Nichols) y se basa en que un pro-
ceso con un retardo de fase de por lo menos 180o a altas frecuencias, si es sometido al
control de un relé, oscilará con un periodo de oscilación igual al periodo crítico.
4*d
En la señal de salida del relé, la amplitud de la primera armónica es: .
T
4*d 4*d'
La ganancia crítica es: K ca = =
π * a π * a'
a’ = Nueva amplitud de la señal de salida en una nueva oscilación al variar la
amplitud d de la señal del relé.
d’ = periodo de una nueva oscilación al variar la amplitud d de la señal del relé.

183
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 184

Simulación y control de procesos por ordenador

Fig. 8.7 Método de realimentación de relé

Y el período de la oscilación es: Ta = Tc.


Y de aquí pueden aplicarse las fórmulas de Ziegler & Nichols para obtener los valores
de las acciones PID del controlador.
Para identificar el modelo del proceso se procede del modo siguiente:
Obtenida y registrada la oscilación continua, se toma entonces un periodo de la oscila-
ción y se descomponen las señales de salida y y del tiempo t en dos partes, una estacio-
naria periodica (ys, us) y otra transitoria (∆y(t), ∆u(t)). Y así:

y (t ) = y s (t ) + ∆y (t )
u (t ) = us (t ) + ∆u (t )

184
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 185

Análisis e identificación de procesos

En el caso de que las condiciones iniciales sean nulas y que no existan perturbaciones
se cumple que la función de transferencia del sistema es:

Y ( s) ∆Y ( s ) + Ys ( s )
G (s) = =
U ( s ) ∆U ( s ) + U s ( s )

Donde:
∆Y(s) = transformada de Laplace de ∆y(t);
∆U(s) = transformada de Laplace de ∆u(t);
Ys(s) = transformada de Laplace de ys(t);
Us(s) = transformada de Laplace de us(t).
Si en el tiempo t = Te, y(t) y u(t) han entrado en una oscilación continua, y después del
tiempo t = Te, ∆y(t), ∆u(t) son casi iguales a cero, el cálculo de ∆Y(jwl), para l = 1, 2, ...
m, se efectúa mediante la transformada de Fourier (FFT) en la forma siguiente:
N −1
∆Y ( jwl = FFT (∆y (kT ) ) = T * ∑ ∆y ( KT ) * e − jwl kT para l = 1, 2, ... m
k =0

Siendo:
y(kT), k = 0, 1, …, N-1 las muestras de y(t);
T = intervalo de muestreo
N 2πl
Los valores de: ( N − 1) * T = Te , m= , wl = , Ys ( jwl )
2 NT
Se calculan con la integral digital:
Nc
1
Ys ( jwl ) =
1 − e − jwl I
∑ y (kT ) * e
k =0
s
− jwl kT
*T para l = 1, 2, ... m,

Tc − T
En la que: Nc =
T
con Tc = período de la oscilación estacionaria debida al ensayo de relé
∆U(jwl) y Us(jwl) se calculan de modo semejante.
De este modo, se tiene:
∆Y ( jwl ) ∆Y ( jwl ) + Ys ( jwl )
G ( jwl ) = = para l = 1, 2, ... m,
∆U ( jwl ) ∆U ( jwl ) + U s ( jwl )

Si el proceso está afectado de ruido, es necesario instalar un filtro de baja frecuencia, o


bien si el ruido ocasiona una conmutación intermitente del relé es necesario utilizar un
relé con histéresis.

185
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 186

Simulación y control de procesos por ordenador

8.5 Método de control P


El método de identificación de oscilación mantenida de Ziegler y Nichols tiene la des-
ventaja de llevar el sistema hasta el límite de la estabilidad con lo que, la operación del
proceso puede ser inestable si hay perturbaciones externas. Por otro lado el método de
curva de reacción del proceso, aunque solo requiere una prueba, tiene el inconvenien-
te de realizarla en lazo abierto, sin ningún control sobre el proceso.
El método de identificación de control P, se basa en la identificación del proceso a par-
tir de la curva de respuesta indicial (en escalón) del sistema dotado de un controlador
proporcional.

Fig. 8.8 Método de control P

Existen varios métodos basados en de control P. Son los siguientes:


X Método de Yuwana y Seborg. El proceso se identifica como un modelo de primer
orden más tiempo muerto.
X Método de Jutan y Rodríguez. El proceso se aproxima a uno de primer orden para
el tiempo muerto.
X Método de Lee. El proceso se aproxima a uno de primer orden mas tiempo muer-
to y utiliza los polos de la función de transferencia para que coincidan con los de
la función identificada para la respuesta subamortiguada con control P.

186
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 187

Análisis e identificación de procesos

8.6 Parámetros del modelo del proceso


Siendo el error de predicción de un modelo la diferencia entre la salida de la planta y la
indicada por el modelo, se definen los siguientes índices de desempeño:
X Integral del error absoluto de predicción:

IEAP = ∫ y p (t ) − ym (t ) dt
0

con yp(t) = Señal de salida de la planta;


con ym(t) = Señal de salida del modelo de la planta;
X Integral del error cuadrático de predicción:

IECP = ∫ (y p (t ) − ym (t ) ) dt
∞ 2
0

Que da más peso a las desviaciones grandes que a las pequeñas.


El porcentaje del error de predicción permite comparar la bondad de los modelos y se
basa en minimizar el criterio IEAP. Su valor es:

IEAPi − IEAPopt
PEPi = * 100
IEAPopt

Con: IEAPi = IEAP para un procedimiento de identificación determinado:


IEAPopt = IEAP para el modelo optimizado de la planta.

187
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 188
Simulaci n y control_09.qxp 01/08/2007 9:30 PÆgina 189

Capítulo 9

Selección y ajuste
de las acciones de control

9.1 Generalidades
Hasta ahora se han estudiado métodos analíticos de selección de los valores de las
acciones de control basados en obtener la estabilidad relativa del sistema definido por
el modelo matemático correspondiente.
A continuación examinaremos los métodos prácticos experimentales que se utilizan, y,
en lo posible, indicaremos su fundamento, que muchas veces responde al resultado y
conclusiones de los cálculos matemáticos realizados anteriormente.
El criterio aplicado generalmente es el de razón de amortiguamiento, cuya justificación ya
se ha comentado en páginas anteriores, pero que no obstante repetiremos. Este criterio
es un compromiso entre la estabilidad de la respuesta del controlador y la rapidez de
retorno de la variable a un valor estable: una relación mayor de 1/4 dará mayor estabi-
lidad (el valor 0,606 da una mínima área de recuperación), pero prolongará el tiempo
de normalización de la variable, mientras que una relación menor de 1/4 devolverá la
variable más rápidamente a su punto de consigna o a un valor estable, pero perjudica-
rá la estabilidad del sistema (si la variable se registra se observarán ciclos sucesivos y
rápidos).
El criterio de rebasamiento mínimo intenta que la variable no sobrepase el punto de con-
signa, lo cual interesa, por ejemplo, en el arranque de los procesos exotérmicos.
El criterio de amplitud mínima tiene por objeto que la variable retorne al punto de con-
signa en el mínimo de tiempo posible. Se aplica en el caso de procesos exotérmicos con
el punto de consigna próximo a la temperatura de disparo de la reacción.
En la figura 9.1 de la página siguiente pueden verse estos tipos de criterios de esta-
bilidad.

9.2 Método de tanteo


Es el método general más utilizado por los instrumentistas. Se basa en poner en mar-
cha el proceso con el instrumento en automático y después provocar perturbaciones
para cada ganancia tanteada (las acciones integral y derivada, caso de que las tenga el
instrumento, se fijan en su valor mínimo). Cada perturbación se efectúa generalmente
por cambio del punto de consigna y vuelta al mismo valor. La estabilidad deseada se

189
Simulaci n y control_09.qxp 01/08/2007 9:30 PÆgina 190

Simulación y control de procesos por ordenador

Fig.9.1 Criterios de estabilidad

obtiene cuando la recuperación del proceso tiene lugar con la relación de amortigua-
ción de 4/1.
Seguidamente se tantea la acción integral hasta obtener una eliminación en un tiempo
razonable del offset.
A continuación, se ensayan valores de la acción derivada hasta obtener un valor tal que
se eliminen uno o varios ciclos de la curva de recuperación.
En la figura 9.2 pueden verse varias curvas típicas de ensayo de valores de las acciones
PID.
Como las acciones de control se influyen mutuamente entre sí, es necesario realizar un
tanteo adicional final.
Si la ganancia del lazo de control varía con la cantidad de producto fabricado, los valo-
res obtenidos de las acciones variarán con el valor de la variable de control, por lo cual
puede ser necesario seleccionar los valores de menor sensibilidad, o bien puede ser
necesario cambiar la característica de la válvula de control (es decir, pasarla de lineal a
igual porcentaje o viceversa).
Señalemos que en el tiempo necesario para realizar correctamente el método de tanteo
influye la experiencia del instrumentista; tanto es así que, en caso de no disponer de
suficiente tiempo, tal como ocurre en la puesta en marcha de la planta, son útiles los
valores que se detallan en la tabla 9.1, ya que permiten el arranque de la planta, aun-
que las condiciones no sean las óptimas.

190
Simulaci n y control_09.qxp 01/08/2007 9:30 PÆgina 191

Selección y ajuste de las acciones de control

Fig. 9.2 Curvas de ajuste de las acciones PID (Fuente: Expertune)

191
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 192

Simulación y control de procesos por ordenador

Tabla 9.1 - Valores de las acciones de control

9.3 Sintonización en lazo cerrado


9.3.1 Método de ganancia límite
Desarrollado por Ziegler & Nichols en 1941, se basa en aumentar gradualmente la
ganancia con los ajustes de integral y derivada en su valor más bajo, mientras se crean
perturbaciones en el proceso, hasta que la variable empieza a oscilar de modo continuo.
Esta primera ganancia que da lugar a la oscilación se denomina ganancia crítica o lími-
te (Kc). Su inversa es la banda proporcional límite (PBu - Proporcional Band Ultimate). Se
anota el período de la oscilación Pc (figura 9.3).

Fig. 9.3 Método de ganancia límite

En la tabla 9.4 pueden verse los valores de los ajustes de control que producen la res-
puesta de 4/1 ante una perturbación.

Tabla 9.4 - Método de ganancia límite -


Valores de las acciones de control (Ziegler & Nichols)

192
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 193

Selección y ajuste de las acciones de control

Una limitación que presenta este método es que no siempre la oscilación de la variable
generada en la planta es admisible; en muchos casos puede dar lugar a que el proceso
se vuelva incontrolable, en particular en el caso de reactores exotérmicos, y en otros
casos representa llevar la planta a situaciones en las que la variable de proceso sale fuera
de los límites de calidad de fabricación del producto durante el tiempo del ensayo.

9.4 Sintonización en lazo abierto


9.4.1 Método de curva de respuesta de Ziegler & Nichols
El método de curva de respuesta o de Ziegler & Nichols en lazo abierto se basa en pro-
ducir la respuesta ante una entrada en escalón provocada por el cambio de posición de
la válvula de control. Esta respuesta obtenida se analiza trazando una tangente en el
punto de inflexión de la curva y midiendo los valores R y L. (figura 9.4).

Fig. 9.4 Método de curva de respuesta

Si R es la pendiente de la tangente, L el tiempo en minutos entre el inicio del escalón y


el punto de corte de la tangente con el valor inicial de la variable y ∆P es el tanto por
ciento de variación de la posición de la válvula de control que introduce el escalón en
el proceso, se aplican las fórmulas de la tabla 9.5.

Tabla 9.5 - Método de curva de respuesta –


Valores de las acciones de control (Ziegler & Nichols)

193
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 194

Simulación y control de procesos por ordenador

El problema básico que presenta este método es que aproxima el proceso a uno de pri-
mer orden de una sola constante de tiempo, lo cual no es siempre el caso, si bien es muy
frecuente obtener una curva de respuesta en forma de S. Por otro lado, interesa que la
curva se obtenga en un registrador digital que permite, sin gasto alguno de papel, obte-
ner las lecturas de la variable de acuerdo con un muestreo de tiempo seleccionable en
el instrumento y la lectura del gráfico en el ordenador o la obtención de una base de
datos en EXCEL que permite el manejo preciso de los mismos.

9.4.2 Método de la curva de reacción de Cohen-Coon


El ajuste de Ziegler y Nichols para la curva de reacción es muy sensible a variaciones
del cociente L/∆p, por lo que Cohen y Coon desarrollaron una modificación de los valo-
res anteriores para compensar esta limitación.

Tabla 9.6 - Método de la curva de reacción de Cohen-Coon

9.5 Métodos de ajuste de reducción del error


En general la respuesta de una variable de proceso toma valores positivos y negativos
con relación al punto de consigna, dando lugar a errores de signo positivo y negativo.
Por lo tanto la reducción del valor de estos errores conducirá a la estabilidad del pro-
ceso y a un mínimo gasto de energía en la recuparación. Los métodos que se aplican
son:
1. Integral del valor absoluto del error (IAE- Integral of Absolute value of Error). Se
emplea con buenos resultados aún cuando la magnitud del error sea menor de la
unidad.

IAE = ∫ e(t ) .dt
0

2. Integral del error cuadrático (ISE- Integral Square Error). Se emplea siempre que la
magnitud del error no sea menor de la unidad.

194
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 195

Selección y ajuste de las acciones de control


ISE = ∫ [e(t ) ] .dt
2

3. Integral del error cuadrático ponderado en el tiempo (ITSE - Integral of time times error
squared).

ITSE = ∫ t * [e(t )] .dt
2

4. Integral del valor absoluto del error ponderado en el tiempo (ITAE- Integral of Time
weighted Absolute value of Error). Se emplea cuando la magnitud del error es < 1
pero además perdura en el tiempo de forma que éste trabaja como un factor de
peso variable.

ITAE = ∫ t * e(t ) .dt
0

En general estos criterios están restringidos a tiempos de retardo pequeños y medios


que cumplen la condición:
Tiempo de retardo del proceso
0< ≤1
Constante de tiempo del proceso

Como ejemplo, veamos la aplicación de uno de estos criterios al control de temperatu-


ra de la figura 9.5 en el que se ha anulado el retardo.

Criterios IAE, ISE, ITSE, ITAE aplicados al control de temperatura de un reactor

Option Explicit
Private Sub ControlTemperaturaReactorIAE_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Double, tf As Single, n As Single, p As Single, L As
Single
Dim w As Single, contador As Integer
Dim D1 As Single, D2 As Single, T1 As Single, T2 As Single, Q2 As Single
Dim C2 As Single, C3 As Single, T3 As Single, S As Single, V As Single
Dim KP As Single, TR As Single, TD As Single, E1 As Single
Dim X As Single, E As Single, EI As Single, PR As Single
Dim IAE As Single, ISE As Single, ITSE As Single, ITAE As Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single, Y6 As
Single
'Títulos en celdas
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Temperatura Reactor"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Válvula de control"
Range("E2").Select
Selection.Font.Bold = True

195
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 196

Simulación y control de procesos por ordenador

Range("F2").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - variable)"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "IAE - Integral valor absoluto error"
Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "ISE - Integral del error cuadrático"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "ITSE - Integral del error cuadrático ponderado en el
tiempo"
Range("I2").Select
Selection.Font.Bold = True
Range("J2").Select
ActiveCell.FormulaR1C1 = "ITAE - Integral del valor absoluto del error ponderado en
el tiempo"
Range("J2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Densidad fluido térmico (D1)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Densidad del producto (D2)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Temperatura entrada fluido térmico (T1)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Temperatura salida fluido térmico (T2)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Caudal entrada producto (Q2)"
Range("A18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Volumen del tanque (V)"

196
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 197

Selección y ajuste de las acciones de control

Range("A20").Select
Selection.Font.Bold = True
Range("A22").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula (C2)"
Range("A22").Select
Selection.Font.Bold = True
Range("A24").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("A24").Select
Selection.Font.Bold = True
Range("A26").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del termopar (T3)"
Range("A26").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Ganancia (KP)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral- min/rep (TR)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos (TD)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de períodos"
Range("B8").Select
Selection.Font.Bold = True
'Valores iniciales
Range("B10").Select
ActiveCell.FormulaR1C1 = "Punto de consigna (X)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable (E)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Integral del error (EI)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador (Y1)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Caudal de la válvula (Y2)"
Range("B18").Select
Selection.Font.Bold = True
Range("B20").Select
ActiveCell.FormulaR1C1 = "Función derivada del caudal (Y3)"
Range("B20").Select
Selection.Font.Bold = True
Range("B22").Select
ActiveCell.FormulaR1C1 = "Temperatura del reactor (Y4)"
Range("B22").Select
Selection.Font.Bold = True
Range("B24").Select

197
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 198

Simulación y control de procesos por ordenador

ActiveCell.FormulaR1C1 = "Temperatura de captación del termopar (Y5)"


Range("B24").Select
Selection.Font.Bold = True
Range("B26").Select
ActiveCell.FormulaR1C1 = "Señal de salida del termopar (Y6)"
Range("B26").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
D1 = InputBox("Densidad fluido térmico (D1):"): Cells(11, 1) = D1
D2 = InputBox("Densidad del producto (D2):"): Cells(13, 1) = D2
T1 = InputBox("Temperatura entrada fluido térmico (T1):"): Cells(15, 1) = T1
T2 = InputBox("Temperatura salida fluido térmico (T2):"): Cells(17, 1) = T2
Q2 = InputBox("Caudal entrada producto (Q2):"): Cells(19, 1) = Q2
V = InputBox("Volumen del tanque (V):"): Cells(21, 1) = V
C2 = InputBox("Constante de tiempo de la válvula (C2):"): Cells(23, 1) = C2
S = InputBox("Factor de amortiguación de la válvula (S):"): Cells(25, 1) = S
T3 = InputBox("Constante de tiempo del termopar (T3):"): Cells(27, 1) = T3
KP = InputBox("Ganancia(KP):"): Cells(3, 2) = KP
TR = InputBox("Tiempo de acción integral- min/rep (TR):"): Cells(5, 2) = TR
TD = InputBox("Tiempo de acción derivada - minutos (TD):"): Cells(7, 2) = TD
'Valores iniciales
X = InputBox("Punto de consigna(X):"): Cells(11, 2) = X
E = InputBox("Error (Consigna - Variable(E):"): Cells(13, 2) = E
EI = InputBox("Integral del error(EI):"): Cells(15, 2) = EI
Y1 = InputBox("Señal de salida del controlador(Y1):"): Cells(17, 2) = Y1
Y2 = InputBox("Caudal de la válvula(Y2):"): Cells(19, 2) = Y2
Y3 = InputBox("Función derivada del caudal (Y3):"): Cells(21, 2) = Y3
Y4 = InputBox("Temperatura del reactor (Y4):"): Cells(23, 2) = Y4
Y5 = InputBox("Temperatura de captación del termopar(Y5):"): Cells(25, 2) = Y5
Y6 = InputBox("Señal de salida del termopar(Y6):"): Cells(27, 2) = Y6
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 3)) Or Abs(Cells(contador + 3, 4)) Or Abs(Cells(con-
tador + 3, 5)) Or Abs(Cells(contador + 3, 6)) Or Abs(Cells(contador + 3, 7)) Or
Abs(Cells(contador + 3, 8)) Or Abs(Cells(contador + 3, 9)) Or Abs(Cells(contador +
3, 10)) > 0
Cells(contador + 3, 3) = "": Cells(contador + 3, 4) = "": Cells(contador + 3,
5) = ""
Cells(contador + 3, 6) = "": Cells(contador + 3, 7) = "": Cells(contador + 3,
8) = ""
Cells(contador + 3, 9) = "": Cells(contador + 3, 10) = ""
contador = contador + 1
Wend
'Proceso
IAE = Abs(X - Y6) 'Valor inicial de IAE (Integral of Absolute value of Error)
ISE = (X - Y6) ^ 2 'Valor inicial de ISE (Integral del error cuadrático)
ITSE = 0 'Valor inicial de ITSE (Integral del error cuadrático ponderado en el
tiempo)
ITAE = 0 'Valor inicial de ITAE Integral del valor absoluto del error pondera-
do en el tiempo
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(9, 2) = p
Cells(p + 3, 3) = w
E = X - Y6

198
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 199

Selección y ajuste de las acciones de control

EI = EI + E * Dt 'EI = Integral del error con su signo


IAE = IAE + Abs(E) * Dt 'Integral del valor absoluto del error
ISE = ISE + E ^ 2 * Dt 'Integral del error cuadrático
ITSE = ITSE + w * E ^ 2 * Dt 'Integral del error cuadrático ponderado en el
tiempo
ITAE = ITAE + w * Abs(E) 'Integral del valor absoluto del error ponderado en
el tiempo
E1 = (1 / T3) * (Y6 - Y5)
E = E + E1 * Dt
Y1 = KP * E + ((KP * EI) / TR) + KP * TD * E1
If Y1 > 1 Then Y1 = 1
If Y1 < 0 Then Y1 = 0
Y3 = Y3 + Dt * (1 / (C2) ^ 2) * (Y1 - Y2 - 2 * S * C2 * Y3)
Y2 = Y2 + Dt * Y3
If Y2 > 1 Then Y2 = 1
If Y2 < 0 Then Y2 = 0
Y4 = Y4 + (Dt / (D2 * V)) * (Y2 * D1 * (T1 - T2) - Y4 * D2 * Q2)
Y5 = Y4
Y6 = Y6 + Dt * (1 / T3) * (Y5 - Y6) 'Señal de salida del termopar
Cells(p + 3, 4) = Y6 'Temperatura del reactor - Señal de salida del termopar
Cells(p + 3, 5) = Y1 'Válvula de control - señal de salida del controlador
Cells(p + 3, 6) = E 'Error (Consigna - Variable)
Cells(p + 3, 7) = IAE 'Integral del valor absoluto del error
Cells(p + 3, 8) = ISE 'Integral del error cuadrático
Cells(p + 3, 9) = ITSE 'Integral del error cuadrático ponderado en el tiempo
Cells(p + 3, 10) = ITAE 'Integral del valor absoluto del error ponderado en el
tiempo
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(9, 2)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 3), Cells(p + 3, 9)).Address 'rango a graficar - el gráfi
co de ITAE no se representa
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL DE TEMPERATURA REACTOR"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperatura - Válvula de
control - Error - IAE -ISE - ITSE - ITAE"
.Axes(xlValue, xlPrimary).HasTitle = True

199
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 200

Simulación y control de procesos por ordenador

End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 700:
.Top = 22:
End With
'El programa termina en una celda vacía
Range("A32").Select
ActiveCell.FormulaR1C1 = ""
Range("A32").Select
Selection.Font.Bold = True
End Sub

200
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 201

Selección y ajuste de las acciones de control

Fig. 9.5 Criterios IAE–ISE–ITSE-ITAE aplicados al control de temperatura de un reactor.


El criterio ITAE corresponde al segundo gráfico

9.6 Método de autoajuste


Los pasos necesarios para ajustar un controlador al proceso no son cómodos. Según sea
la variable, el tiempo necesario para el ajuste idóneo puede variar de minutos a sema-
nas, dependiendo del proceso. En control de presión y caudal puede ser minutos, en
nivel horas y en control de temperatura en procesos con retardo como es el caso de un
horno rotativo de la industria del cemento, semanas.
De aquí que la mayoría de fabricantes de instrumentos ofrecen la opción de autoajuste
en sus controladores.
La mayor parte guardan la información correspondiente al arranque hasta alcanzar el
punto de consigna y aprenden de las curvas características de respuesta del ciclo de
arranque, calculando y ajustando directamente los valores de las acciones de control.
Este aprendizaje continúa en los ciclos subsiguientes y, si es necesario reajustan los
parámetros PID hasta alcanzar los ajustes óptimos (figura 9.6).

201
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 202

Simulación y control de procesos por ordenador

Fig. 9.6 Controlador autoajustable

Otros fabricantes incorporan al controlador un algoritmo de autoajuste de las acciones.


Éste excita el proceso con varios impulsos de entrada y recogidas las respuestas tempo-
rales correspondientes, el aparato aplica una integral transformada de Fourier para
convertir la respuesta temporal a frecuencial que, analizada, proporciona los valores
adecuados de la banda proporcional y las acciones integral y derivativa. El propio ins-
trumento introduce en la memoria del microprocesador los valores calculados.
Existen en el mercado librerías de programas de controladores autoajustables, tales
como Simulink que utiliza lenguajes de programación de Matlab.

Tabla 9.7 – Ejemplo de algoritmos de controladores individuales

Fuente: Zlin University – Checoeslovaquia

202
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 203

Selección y ajuste de las acciones de control

9.7 Otros métodos de ajuste


Los métodos descritos hasta ahora de tanteo y de ganancia límite son de lazo cerrado
(es decir, se provocan perturbaciones con el instrumento en automático conectado al
lazo de control) mientras que el de curva de respuesta es un método de lazo abierto (es
decir, el instrumento está en manual).
Otros métodos de lazo cerrado son:
Oscilaciones amortiguadas en el que con sólo la banda proporcional se tantea, obtenien-
do una curva de recuperación de 4/1 y se aplican fórmulas para las acciones integral y
derivada.
Los métodos de Chindambara (1970) y de Kraus y Myron (1984) (figura 9.7) están basados
en el método de ganancia límite. Analizan la señal de error obtenida ante cambios en el
punto de consigna o en la carga del proceso y son fácilmente programables en el orde-
nador del proceso.

Fig. 9.7 Métodos de Chindambara y de Kraus y Myron

En el método de Chindambara se dan valores aproximados a las acciones del controlador


y se aplican las fórmulas siguientes para obtener de forma iterativa los nuevos valo-
res PID.
g n +1 = g n * (0,5 + 2,27 * R ) BPn
Controlador P: BPn +1 =
0,5 + 2,27 * R

g n +1 = g n * (0,5 + 2,27 * R ) BPn


Controlador P+I: BPn +1 =
0,5 + 2,27 * R
P
TI = min/rep
1,2 * 1 + R 2
BPn
Controlador P+I+D: g n +1 = g n * (0,5 + 2,27 * R ) BPn +1 =
0,5 + 2,27 * R
P P
TI = min/rep TD = min
2
1,2 * 1 + R 8* 1+ R2

203
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 204

Simulación y control de procesos por ordenador

siendo:
1 a
R= ln un valor relacionado con la relación de amortiguación
2 * 3,14 b
(si R = 22 se tiene una relación de amortiguación de 0,25);
a y b son las áreas de las ondas cortadas por la recta de consigna (o de modo
simplificado las longitudes de las crestas),
P = período de la oscilación amortiguada en minutos.
En el método de Kraus y Myron se intenta obtener el mínimo tiempo de subida fijando
limitaciones en el amortiguamiento b/a y en la primera recuperación a/∆PC. Las fórmu-
las de Ziegler y Nichols dan: TI = P/1,2 (o P/2 en PID) y TD = P/8 que aplicados al con-
trolador darán un nuevo amortiguamiento b/a y recuperación a/∆PC que no deben
sobrepasar los límites anteriores. Si lo hacen, el controlador varía su ganancia para
cumplir con esta condición y, por lo tanto, calcula nuevos valores de TI y TD.
Si al aplicar estos métodos el proceso entra en oscilación, la perturbación consiguiente
puede invalidar la aplicación, si el proceso no lo permite.
Existe una búsqueda continua de nuevos métodos de ajuste de las acciones de control
en los procesos industriales. Esta búsqueda está orientada a investigaciones en el pro-
pio proceso a través, bien de entradas provocadas o bien de las perturbaciones norma-
les experimentadas. Es típico analizar un ciclo de recuperación tomando parámetros
determinados como son la ganancia del proceso, la constante de tiempo y el retardo
ante una perturbación en escalón, simplemente moviendo el punto de consigna. De
este modo, si se asimila el proceso a uno de primer orden con retardo, puede determi-
narse la transmitancia en lazo cerrado con un controlador PID y valorar cuál será la res-
puesta indicial mediante un programa ejecutado en el ordenador. Esta respuesta, apro-
ximada a la respuesta práctica obtenida, dará los ajustes necesarios en el proceso para
obtener la estabilidad relativa.

9.8 Simulación y control de procesos simples


Figuran a continuación los programas de simulación de procesos simples tales como
los controles de presión y caudal en una tubería, nivel en un tanque y temperatura en
un intercambiador. En estos programas el ordenador pide los datos del proceso, por lo
cual es posible analizar su comportamiento y controlabilidad, así como la aplicación de
las técnicas de ajuste descritas anteriormente (tanteo, ganancia límite y curva de res-
puesta). De este modo, sin necesidad de hacer experiencias en la propia planta, el lec-
tor puede entrenarse en el control de procesos, no sólo variando sus parámetros intrín-
secos, sino también cambiando los valores de las acciones del controlador.
En esencia, las características analíticas de los procesos estudiados son similares. Se ha
supuesto que son elementos de primer orden con una constante de tiempo típica de
cada uno de ellos y que también lo son los instrumentos. En el caso del tanque, al ser
la variación de nivel de segundo orden se ha considerado una ecuación linealizada de
acuerdo con la relación caudal de salida/altura que, naturalmente, variará según las
condiciones de servicio seleccionadas.

204
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 205

Selección y ajuste de las acciones de control

En los programas se ha utilizado el método de integración numérica de Euler, para que


el ordenador obtenga valores sucesivos de la curva (Apéndice A.2.2). La aplicación de
este método, si bien tiene la ventaja de su sencillez obliga a tomar unos intervalos de
tiempo muy pequeños por lo cual el estudio prolongado del proceso comporta unos
tiempos de ejecución largos.
En las figuras 9.8, 9.9, 9.10 y 9.11 pueden verse los programas y varios ejemplos de
simulación.
El control de temperatura del reactor fue estudiado analíticamente desde el punto de
vista de estabilidad en el capítulo 7.

Control de presión
Option Explicit
Private Sub ControlPresion_Click() 'cmdCreateTable_Click()
Dim T1 As Single, t0 As Single, Dt As Single, tf As Single, n As Single
Dim w As Single, sigma As Single, contador As Integer
Dim C2 As Single, S As Single, A As Single, TG As Single, KP As Single, TR As
Single, p As Single
Dim X As Single, E As Single, EI As Single, PR As Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single
'Títulos en celdas
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Presión"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Válvula de control"
Range("E2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula (C2)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("A12").Select

205
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 206

Simulación y control de procesos por ordenador

Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del proceso (PR)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del transmisor de Presión (T1)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Ganancia (KP)"
Range("A18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral- min/rep (TR)"
Range("A20").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("B18").Select
Selection.Font.Bold = True
'Valores iniciales
Range("B2").Select
ActiveCell.FormulaR1C1 = "Punto de consigna (X)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable (E)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Integral del error (EI)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador (Y1)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Caudal de la válvula (Y2)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Función derivada del caudal (Y3)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Presión del proceso (Y4)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Señal de salida del transmisor (Y5)"
Range("B16").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo

206
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 207

Selección y ajuste de las acciones de control

n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos


C2 = InputBox("Constante de tiempo de la válvula(C2):"): Cells(11, 1) = C2
S = InputBox("Factor de amortiguación de la válvula(S):"): Cells(13, 1) = S
PR = InputBox("Constante de tiempo del proceso (PR):"): Cells(15, 1) = PR
T1 = InputBox("Constante de tiempo del transmisor de Presión (T1):"): Cells(17, 1)
= T1
KP = InputBox("Ganancia(KP):"): Cells(19, 1) = KP
TR = InputBox("Tiempo de acción integral- min/rep (TR):"): Cells(21, 1) = TR
'Valores iniciales
X = InputBox("Punto de consigna(X):"): Cells(3, 2) = X
E = InputBox("Error (Consigna - Variable(E):"): Cells(5, 2) = E
EI = InputBox("Integral del error(EI):"): Cells(7, 2) = EI
Y1 = InputBox("Señal de salida del controlador(Y1):"): Cells(9, 2) = Y1
Y2 = InputBox("Caudal de la válvula(Y2):"): Cells(11, 2) = Y2
Y3 = InputBox("Función derivada del Caudal(Y3):"): Cells(13, 2) = Y3
Y4 = InputBox("Presión (Y4):"): Cells(15, 2) = Y4
Y5 = InputBox("Señal de salida del transmisor(Y5):"): Cells(17, 2) = Y5
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 4, 4)) Or Abs(Cells(contador + 4, 5)) Or Abs(Cells(con-
tador + 4, 6)) > 0
Cells(contador + 4, 4) = "": Cells(contador + 4, 5) = "": Cells(contador + 4,
6) = ""
contador = contador + 1
Wend
'Proceso (control de Nivel)
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(19, 2) = p
Cells(p + 3, 3) = w
EI = EI + E * Dt
E = X - Y5
Y1 = KP * E + (KP * EI) / TR
If Y1 > 1 Then Y1 = 1
If Y1 < 0 Then Y1 = 0
Y3 = Y3 + Dt * (1 / (C2) ^ 2) * (Y1 - Y2 - 2 * S * C2 * Y3)
Y2 = Y2 + Dt * Y3
If Y2 > 1 Then Y2 = 1
If Y2 < 0 Then Y2 = 0
Y4 = Y4 + Dt * (1 / PR) * (Y2 - Y4)
Y5 = Y5 + Dt * (1 / T1) * (Y4 - Y5)
Cells(p + 3, 4) = Y5 'Presión
Cells(p + 3, 5) = Y1 'Señal de salida del controlador
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(19, 2)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 3), Cells(p + 3, 5)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas

207
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 208

Simulación y control de procesos por ordenador

With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL DE PRESIÓN"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Presión - Válvula de
control"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 350:
.Top = 23:
End With
'El programa termina en una celda vacía
Range("A25").Select
ActiveCell.FormulaR1C1 = ""
Range("A25").Select
Selection.Font.Bold = True
End Sub
(ver figura 9.8)

Control de caudal
Option Explicit
Private Sub ControlCaudal_Click() 'cmdCreateTable_Click()
Dim T1 As Single, t0 As Single, Dt As Single, tf As Single, n As Single
Dim w As Single, sigma As Single, contador As Integer
Dim C2 As Single, S As Single, A As Single, TG As Single, KP As Single, TR As
Single, p As Single
Dim X As Single, E As Single, EI As Single, PR As Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single
'Títulos en celdas
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Caudal"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Válvula de control"
Range("E2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select

208
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 209

Selección y ajuste de las acciones de control

Fig. 9.8 Control de presión

209
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 210

Simulación y control de procesos por ordenador

Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula (C2)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del proceso (PR)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del transmisor de caudal (T1)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Ganancia (KP)"
Range("A18").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral- min/rep (TR)"
Range("B18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A20").Select
Selection.Font.Bold = True
'Valores iniciales
Range("B2").Select
ActiveCell.FormulaR1C1 = "Punto de consigna (X)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable (E)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Integral del error (EI)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador (Y1)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Caudal de la válvula (Y2)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Función derivada del caudal (Y3)"

210
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 211

Selección y ajuste de las acciones de control

Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Caudal de la tubería (Y4)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Señal de salida del transmisor (Y5)"
Range("B16").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
C2 = InputBox("Constante de tiempo de la válvula(C2):"): Cells(11, 1) = C2
S = InputBox("Factor de amortiguación de la válvula(S):"): Cells(13, 1) = S
PR = InputBox("Constante de tiempo del proceso (PR):"): Cells(15, 1) = PR
T1 = InputBox("Constante de tiempo del transmisor de caudal (T1):"): Cells(17, 1)
= T1
KP = InputBox("Ganancia(KP):"): Cells(19, 1) = KP
TR = InputBox("Tiempo de acción integral- min/rep (TR):"): Cells(19, 2) = TR
'Valores iniciales
X = InputBox("Punto de consigna(X):"): Cells(3, 2) = X
E = InputBox("Error (Consigna - Variable(E):"): Cells(5, 2) = E
EI = InputBox("Integral del error(EI):"): Cells(7, 2) = EI
Y1 = InputBox("Señal de salida del controlador(Y1):"): Cells(9, 2) = Y1
Y2 = InputBox("Caudal de la válvula(Y2):"): Cells(11, 2) = Y2
Y3 = InputBox("Función derivada del caudal(Y3):"): Cells(13, 2) = Y3
Y4 = InputBox("Caudal de la tubería(Y4):"): Cells(15, 2) = Y4
Y5 = InputBox("Señal de salida del transmisor(Y5):"): Cells(17, 2) = Y5
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 4, 4)) Or Abs(Cells(contador + 4, 5)) Or Abs(Cells(con-
tador + 4, 6)) > 0
Cells(contador + 4, 4) = "": Cells(contador + 4, 5) = "": Cells(contador + 4,
6) = ""
contador = contador + 1
Wend
'Proceso (control de caudal en tubería)
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(21, 1) = p
Cells(p + 3, 3) = w
EI = EI + E * Dt
E = X - Y5
Y1 = KP * E + (KP * EI) / TR
If Y1 > 1 Then Y1 = 1
If Y1 < 0 Then Y1 = 0
Y3 = Y3 + Dt * (1 / (C2) ^ 2) * (Y1 - Y2 - 2 * S * C2 * Y3)
Y2 = Y2 + Dt * Y3
If Y2 > 1 Then Y2 = 1
If Y2 < 0 Then Y2 = 0
Y4 = Y4 + Dt * (1 / PR) * (Y2 - Y4)
Y5 = Y5 + Dt * (1 / T1) * (Y4 - Y5)
Cells(p + 3, 4) = Y5 'Caudal de la tubería
Cells(p + 3, 5) = Y1 'Señal de salida del controlador
Next w
Call grafico

211
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 212

Simulación y control de procesos por ordenador

End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(21, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 3), Cells(p + 3, 5)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL DE CAUDAL"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Caudal - Válvula de con-
trol"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 350:
.Top = 23:
End With
'El programa termina en una celda vacía
Range("A23").Select
ActiveCell.FormulaR1C1 = ""
Range("A23").Select
Selection.Font.Bold = True
End Sub
(ver figura 9.9)

Control de nivel
Option Explicit
Private Sub ControlNivel_Click() 'cmdCreateTable_Click()
Dim T1 As Single, t0 As Single, Dt As Single, tf As Single, n As Single
Dim w As Single, sigma As Single, contador As Integer
Dim C2 As Single, S As Single, A As Single, TG As Single, KP As Single, TR As
Single, p As Single
Dim X As Single, E As Single, EI As Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single
'Títulos en celdas
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("C2").Select

212
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 213

Selección y ajuste de las acciones de control

Fig. 9.9 Control de caudal

Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Nivel"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select

213
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 214

Simulación y control de procesos por ordenador

ActiveCell.FormulaR1C1 = "Válvula de control"


Range("E2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula (C2)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Sección del tanque (A)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Caudal salida/Altura (TG)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del transmisor de Nivel (T1)"
Range("A18").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Ganancia (KP)"
Range("B18").Select
Selection.Font.Bold = True
Range("B20").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral- min/rep (TR)"
Range("B20").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A20").Select
Selection.Font.Bold = True
'Valores iniciales
Range("B2").Select
ActiveCell.FormulaR1C1 = "Punto de consigna (X)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable (E)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select

214
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 215

Selección y ajuste de las acciones de control

ActiveCell.FormulaR1C1 = "Integral del error (EI)"


Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador (Y1)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Caudal de la válvula (Y2)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Función derivada del caudal (Y3)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Nivel (Y4)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Señal de salida del transmisor (Y5)"
Range("B16").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
C2 = InputBox("Constante de tiempo de la válvula(C2):"): Cells(11, 1) = C2
S = InputBox("Factor de amortiguación de la válvula(S):"): Cells(13, 1) = S
A = InputBox("Sección del tanque (A):"): Cells(15, 1) = A
TG = InputBox("Caudal salida/Altura (TG):"): Cells(17, 1) = TG
T1 = InputBox("Constante de tiempo del transmisor de Nivel (T1):"): Cells(19, 1) =
T1
KP = InputBox("Ganancia(KP):"): Cells(19, 2) = KP
TR = InputBox("Tiempo de acción integral- min/rep (TR):"): Cells(21, 2) = TR
'Valores iniciales
X = InputBox("Punto de consigna(X):"): Cells(3, 2) = X
E = InputBox("Error (Consigna - Variable(E):"): Cells(5, 2) = E
EI = InputBox("Integral del error(EI):"): Cells(7, 2) = EI
Y1 = InputBox("Señal de salida del controlador(Y1):"): Cells(9, 2) = Y1
Y2 = InputBox("Caudal de la válvula(Y2):"): Cells(11, 2) = Y2
Y3 = InputBox("Función derivada del Caudal(Y3):"): Cells(13, 2) = Y3
Y4 = InputBox("Nivel (Y4):"): Cells(15, 2) = Y4
Y5 = InputBox("Señal de salida del transmisor(Y5):"): Cells(17, 2) = Y5
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 4, 4)) Or Abs(Cells(contador + 4, 5)) Or Abs(Cells(con-
tador + 4, 6)) > 0
Cells(contador + 4, 4) = "": Cells(contador + 4, 5) = "": Cells(contador + 4,
6) = ""
contador = contador + 1
Wend
'Proceso (control de Nivel)
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(21, 1) = p
Cells(p + 3, 3) = w
EI = EI + E * Dt
E = X - Y5

215
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 216

Simulación y control de procesos por ordenador

Y1 = KP * E + (KP * EI) / TR
If Y1 > 1 Then Y1 = 1
If Y1 < 0 Then Y1 = 0
Y3 = Y3 + Dt * (1 / (C2) ^ 2) * (Y1 - Y2 - 2 * S * C2 * Y3)
Y2 = Y2 + Dt * Y3
If Y2 > 1 Then Y2 = 1
If Y2 < 0 Then Y2 = 0
Y4 = Y4 + Dt * (1 / A) * (Y2 - Y4 * TG)
Y5 = Y5 + Dt * (1 / T1) * (Y4 - Y5)
Cells(p + 3, 4) = Y5 'Nivel
Cells(p + 3, 5) = Y1 'Señal de salida del controlador
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(21, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 3), Cells(p + 3, 5)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL DE NIVEL"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Nivel - Válvula de con-
trol"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 350:
.Top = 23:
End With
'El programa termina en una celda vacía
Range("A25").Select
ActiveCell.FormulaR1C1 = ""
Range("A25").Select
Selection.Font.Bold = True
End Sub
(ver figura 9.10)

216
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 217

Selección y ajuste de las acciones de control

Fig. 9.10 Control de nivel

Control temperatura reactor


Option Explicit
Private Sub ControlTemperaturaReactor_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Double, tf As Single, n As Single, p As Single, L As
Single

217
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 218

Simulación y control de procesos por ordenador

Dimw As Single, contador As Integer


DimD1 As Single, D2 As Single, T1 As Single, T2 As Single, Q2 As Single
DimC2 As Single, C3 As Single, T3 As Single, S As Single, V As Single
DimKP As Single, TR As Single, TD As Single, E1 As Single
DimX As Single, E As Single, EI As Single, PR As Single
DimY1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single, Y6 As
Single
Dim Zp(20000) As Single
'Títulos en celdas
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("C2").Select
Selection.Font.Bold = True
Range("D2").Select
ActiveCell.FormulaR1C1 = "Temperatura Reactor"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Válvula de control"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Temperatura Reactor sin retardo"
Range("F2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Densidad fluido térmico (D1)"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Densidad del producto (D2)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Temperatura entrada fluido térmico (T1)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Temperatura salida fluido térmico (T2)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Caudal entrada producto (Q2)"
Range("A18").Select

218
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 219

Selección y ajuste de las acciones de control

Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Volumen del tanque (V)"
Range("A20").Select
Selection.Font.Bold = True
Range("A22").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula (C2)"
Range("A22").Select
Selection.Font.Bold = True
Range("A24").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("A24").Select
Selection.Font.Bold = True
Range("A26").Select
ActiveCell.FormulaR1C1 = "Retardo - minutos (C3)"
Range("A26").Select
Selection.Font.Bold = True
Range("A28").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del termopar (T3)"
Range("A28").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Ganancia (KP)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral- min/rep (TR)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos (TD)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de períodos"
Range("B8").Select
Selection.Font.Bold = True
'Valores iniciales
Range("B10").Select
ActiveCell.FormulaR1C1 = "Punto de consigna (X)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable (E)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Integral del error (EI)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador (Y1)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Caudal de la válvula (Y2)"
Range("B18").Select
Selection.Font.Bold = True
Range("B20").Select
ActiveCell.FormulaR1C1 = "Función derivada del caudal (Y3)"

219
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 220

Simulación y control de procesos por ordenador

Range("B20").Select
Selection.Font.Bold = True
Range("B22").Select
ActiveCell.FormulaR1C1 = "Temperatura del reactor (Y4)"
Range("B22").Select
Selection.Font.Bold = True
Range("B24").Select
ActiveCell.FormulaR1C1 = "Temperatura de captación del termopar (Y5)"
Range("B24").Select
Selection.Font.Bold = True
Range("B26").Select
ActiveCell.FormulaR1C1 = "Señal de salida del termopar (Y6)"
Range("B26").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
D1 = InputBox("Densidad fluido térmico (D1):"): Cells(11, 1) = D1
D2 = InputBox("Densidad del producto (D2):"): Cells(13, 1) = D2
T1 = InputBox("Temperatura entrada fluido térmico (T1):"): Cells(15, 1) = T1
T2 = InputBox("Temperatura salida fluido térmico (T2):"): Cells(17, 1) = T2
Q2 = InputBox("Caudal entrada producto (Q2):"): Cells(19, 1) = Q2
V = InputBox("Volumen del tanque (V):"): Cells(21, 1) = V
C2 = InputBox("Constante de tiempo de la válvula (C2):"): Cells(23, 1) = C2
S = InputBox("Factor de amortiguación de la válvula (S):"): Cells(25, 1) = S
C3 = InputBox("Retardo - minutos (C3):"): Cells(27, 1) = C3
T3 = InputBox("Constante de tiempo del termopar (T3):"): Cells(29, 1) = T3
KP = InputBox("Ganancia(KP):"): Cells(3, 2) = KP
TR = InputBox("Tiempo de acción integral- min/rep (TR):"): Cells(5, 2) = TR
TD = InputBox("Tiempo de acción derivada - minutos (TD):"): Cells(7, 2) = TD
'Valores iniciales
X = InputBox("Punto de consigna(X):"): Cells(11, 2) = X
E = InputBox("Error (Consigna - Variable(E):"): Cells(13, 2) = E
EI = InputBox("Integral del error(EI):"): Cells(15, 2) = EI
Y1 = InputBox("Señal de salida del controlador(Y1):"): Cells(17, 2) = Y1
Y2 = InputBox("Caudal de la válvula(Y2):"): Cells(19, 2) = Y2
Y3 = InputBox("Función derivada del caudal (Y3):"): Cells(21, 2) = Y3
Y4 = InputBox("Temperatura del reactor (Y4):"): Cells(23, 2) = Y4
Y5 = InputBox("Temperatura de captación del termopar(Y5):"): Cells(25, 2) = Y5
Y6 = InputBox("Señal de salida del termopar(Y6):"): Cells(27, 2) = Y6
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 3, 3)) Or Abs(Cells(contador + 3, 4)) Or Abs(Cells(con-
tador + 3, 4)) > 0
Cells(contador + 3, 3) = "": Cells(contador + 3, 4) = "": Cells(contador + 3,
4) = ""
contador = contador + 1
Wend
'Proceso
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(9, 2) = p
Cells(p + 3, 3) = w
E = X - Y6
EI = EI + E * Dt
E1 = (1 / T3) * (Y6 - Y5)
E = E + E1 * Dt

220
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 221

Selección y ajuste de las acciones de control

Y1 = KP * E + ((KP * EI) / TR) + KP * TD * E1


If Y1 > 1 Then Y1 = 1
If Y1 < 0 Then Y1 = 0
Y3 = Y3 + Dt * (1 / (C2) ^ 2) * (Y1 - Y2 - 2 * S * C2 * Y3)
Y2 = Y2 + Dt * Y3
If Y2 > 1 Then Y2 = 1
If Y2 < 0 Then Y2 = 0
Zp(p) = Y4
L = p - C3 / Dt
If L > 0 Then Y5 = Zp(L) Else Y4 = Zp(1): Y5 = Y4: Y6 = Y6 + Dt * (1 / T3) *
(Y5 - Y6)
If L > 0 Then Y4 = Y4 + (Dt / (D2 * V)) * (Y2 * D1 * (T1 - T2) - Y4 * D2 *
Q2)
If L > 0 Then Y6 = Y6 + Dt * (1 / T3) * (Y5 - Y6) 'Señal de salida del ter-
mopar
Cells(p + 3, 4) = Y6 'temperatura - señal de salida del termopar
Cells(p + 3, 5) = Y1 'Válvula de control - señal de salida del controlador
Cells(p + 3, 6) = Y4 'Temperatura del reactor - SinRetardo
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(9, 2)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 3), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL DE TEMPERATURA REACTOR"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperatura - Válvula de
control"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 430:
.Top = 22:
End With
'El programa termina en una celda vacía
Range("A32").Select
ActiveCell.FormulaR1C1 = ""

221
Simulaci n y control_09.qxp 01/08/2007 9:34 PÆgina 222

Simulación y control de procesos por ordenador

Range("A32").Select
Selection.Font.Bold = True
End Sub

222
Simulaci n y control_09.qxp 01/08/2007 9:34 PÆgina 223

Selección y ajuste de las acciones de control

Fig. 9.11 Control de temperatura

Ejercicios

9.1 Indicar de acuerdo con las características del proceso, el tipo de control mas idó-
neo a utilizar:
X Caudal en una tubería.
X Nivel en un tanque intermedio del proceso.
X Temperatura en un intercambiador de calor.
X Nivel en una caldera de vapor.
X Presión en la tubería de vapor de alimentación de un intercambiador.
X Densidad en un evaporador continuo.
9.2 Al aplicar el método de ganancia límite en el control de temperatura de un inter-
cambiador de calor, se encuentra que la temperatura empieza a oscilar de modo
continuo para una ganancia de 3. Sabiendo que esta oscilación, examinada en el
registro del controlador, es de 3 oscilaciones en 15 minutos, determinar los ajus-
tes de las tres acciones del controlador.
9.3 Al aplicar el método de curva de respuesta a un control de caudal PI, se registra
la curva de la figura adjunta. Sabiendo que la válvula de control ha variado su

223
Simulaci n y control_09.qxp 01/08/2007 9:34 PÆgina 224

Simulación y control de procesos por ordenador

posición de una señal de 0,4 bar (6 psi) a 0,8 bar (12 psi), determinar los valores
de las acciones PI del controlador.
9.4 Indicar cuál o cuáles son los motivos que pueden aconsejar la utilización de un
instrumento controlador autoajustable en un proceso de control de temperatura.
9.5 Indicar los valores aproximados más idóneos en la puesta en marcha de una
planta, para los tipos de control siguientes:
X caudal - presión;
X nivel;
X temperatura.

224
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 225

Capítulo 10

Elementos finales de control

10.1 Válvulas de control


10.1.1 Generalidades
En el lazo de control la válvula realiza una importante misión: variar el caudal del flui-
do de control que modifica la variable de proceso controlada. Su función es tan impor-
tante como la del propio controlador.
En la figura 10.1 puede verse una válvula de control típica.
La válvula se compone de los siguientes elementos:
Servomotor que puede ser neumático, eléctrico, digital o hidráulico. El servomotor neu-
mático posiciona el vástago de la válvula según el equilibrio entre un resorte calibrado
y la señal neumática de 0,2 – 1 bar (3 - 15 psi), mientras que el servomotor eléctrico lo
hace por medio de un motor eléctrico posicionado por un circuito todo-nada o flotan-
te o bien proporcional. El servomotor digital contiene usualmente un posicionador
dígito–neumático que acciona un servomotor neumático. El servomotor hidráulico con-
siste en una bomba de accionamiento eléctrico que suministra fluido hidráulico a una
servoválvula que dirige el fluido hidráulico a los dos lados de un pistón actuador hasta
conseguir, mediante una realimentación, la posición exacta de la válvula.
El servomotor neumático es el más empleado por sus características sobresalientes de
robustez, par motor elevado, simplicidad, fiabilidad y precio competitivo.
La válvula por su construcción interna y por su servomotor puede ser de «acción direc-
ta», cuando al quedarse sin aire (o sin corriente) queda abierta, y de «acción inversa»,
cuando al quedarse sin aire (o sin corriente) queda cerrada.
Las partes internas de la válvula son las piezas internas desmontables que están en con-
tacto directo con el fluido. Se suele dar este nombre al obturador y a los asientos y, en
conjunto, forman el órgano de control del caudal del fluido.
El cuerpo de la válvula contiene en su interior el fluido y debe resistir las condiciones
de servicio que impone y, por otro lado, incorpora los medios de fijación a la tubería en
la que está intercalada (bridas o conexiones roscadas).
La tapa de la válvula une el cuerpo al servomotor, contiene la empaquetadura para
impedir el escape del fluido y, a su través, desliza el vástago del obturador accionado
por el motor.

225
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 226

Simulación y control de procesos por ordenador

Fig. 10.1 Válvula de control representativa. Fuente: Honeywell

10.2 Curvas características de la válvula


Desde el punto de vista del control de procesos interesa estudiar las posibles variacio-
nes de ganancia de la válvula de control de acuerdo con su grado de abertura, ya que
el conocimiento de las variaciones de la ganancia del proceso según sus condiciones de
servicio aconsejará escoger uno u otro tipo de característica de la válvula.

10.2.1 Características de caudal inherentes


Las curvas de caudal inherentes representan a presión diferencial constante la relación
entre el porcentaje de caudal máximo (abscisas) y la carrera del obturador de la válvu-
la (ordenadas). En la figura 10.2 pueden verse las curvas características más habituales.
En el obturador con característica lineal la curva es una línea recta y tiene por ecuación:
q=k*l
En la que:
q = caudal a pérdida de carga constante;
k = constante;
l = carrera de la válvula.
En el obturador con característica isoporcentual o de igual porcentaje cada incremento de
carrera del obturador produce un cambio en el caudal que es proporcional al caudal
que fluía antes de la variación. La ecuación correspondiente es:
dq
= a*q
dl

226
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 227

Elementos finales de control

Fig. 10.2 Curvas características inherentes

dq
de aquí resulta: = a * dl
q
e integrando: q = b * e al
en la que a y b son constantes y e es la base de los logaritmos neperianos.
Aquí puede intervenir el concepto denominado Rangeability o capacidad de control entre
márgenes de caudal de la válvula que es:
qmax
=R
qmin

Y así:
Para l = 0, q = qmin = b
Para l = 1, q=qmax = qmin *ea =b*ea
q 1
quedando: = * Rl
qmin R
En el obturador con característica parabólica la ecuación es:
q=k*l2

227
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 228

Simulación y control de procesos por ordenador

Otras curvas características son intrínsecas del tipo de válvula empleado, tales como la
válvula de tajadera y de mariposa.

10.2.2 Características de caudal efectivas


Las características de caudal inherentes anteriores consideran una presión diferencial
constante a través de la válvula, lo cual no corresponde a veces a la realidad de la
industria. Por ejemplo, el caso representado en la figura 10.3, de una bomba centrífuga,
la válvula de control y la tubería.
El grado de abertura de la válvula hace variar la presión de impulsión de la bomba y
la pérdida de carga absorbida por la válvula. Sea r la relación entre la pérdida de pre-
sión de la válvula, abierta ésta totalmente, y la pérdida de carga del sistema (línea + vál-
vula). Para cada valor de r puede construirse una curva característica efectiva que se
apartará de la curva inherente y que coincidirá con ella cuando r = 1, es decir, cuando
la presión absorbida queda totalmente disponible para la válvula.

Fig. 10.3 Circuito bomba - tubería

En la figura 10.4 el caudal que pasa a través de la válvula corresponde a la ecuación:


Q v=K v *A* ∆ p
en la que:
Qv = caudal que pasa a través de la válvula;

228
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 229

Elementos finales de control

k = constante;
A = área de paso;
∆p = presión diferencial a través de la válvula.
Si Kv es el caudal que circula para una presión diferencial de 1 bar resulta:
K v= k * A y Q v=K v * ∆ p

Fig. 10.4 Sección de válvula de control.

En la figura 10.4 pueden establecerse las siguientes relaciones:


H = H1 + H 2

Q = K v H 1 = K1 H 2 = K e H
Kv Ke H1
qi = qe = r=
K v max K e max H
de aquí:
2
Qmax
H K2 1
r = 1 = 2 v max 2 = 2
H Qmax Qmax  K v max 
+ 1 +  
K v2max K 12  K1 
Q Q Kv K v max
Ke = = = K e max =
H H1 + H 2 K 
2
K 
2

1 +  v  1 +  v max 
 K1   K1 
y de aquí, haciendo operaciones, resulta:
1
qe =
r
1− r +
q i2

229
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 230

Simulación y control de procesos por ordenador

que es una familia de curvas características efectivas en función del valor de r y de la


característica inherente qi.
En una válvula de característica lineal qi = k * l resultando:
1
qe =
r
1− r +
K *l2
2

Si la característica es isoporcentual con R (rangeability) = 50 resulta:


1
qe =
r
1− r +
0,0004 * 50 2 l
Estas dos familias de curvas están representadas en la figura 10.3, y más adelante, en el
capítulo correspondiente a la ecuación de estado se estudiará como ejemplo de resolu-
ción la válvula lineal.
Observe el lector que si baja la pérdida de carga disponible para la válvula (r disminu-
ye), la característica isoporcentual se desplaza hacia la forma lineal, y que la caracterís-
tica lineal pasa gradualmente a una curva característica de apertura rápida.
Por consiguiente, las conclusiones que pueden sacarse de este estudio son las siguientes:
a) la característica efectiva de la válvula debe ser tal que el lazo de control tenga una
ganancia constante para todas las variaciones de carga del proceso. Esto es imposi-
ble en la práctica desde el punto de vista de construcción de la válvula, ya que ha-
bría que variar su característica continuamente (sí podría lograrse con un conver-
tidor muy especial situado entre la señal de salida del controlador y la válvula).
Para seleccionar la característica de la válvula, es necesario compensar las condi-
ciones particulares de servicio de cada proceso,teniendo en cuenta que la válvula
de característica lineal tiene una ganancia constante para todos los intervalos de
caudal, mientras que la válvula con característica de igual porcentaje tiene una
ganancia proporcional al caudal. El cambio de curva característica se realiza cam-
biando las características del posicionador con levas especiales que suministra el
fabricante, obien por medios electrónicos o digitales (la sustitución de la válvula
no sería práctica).
X Control de presión
Si la presión diferencial es constante se emplea la característica lineal.
En fluidos compresibles (gases y vapores) si las variaciones de presión diferencial
a través de la válvula son inferiores a la relación 2:1 utilizar la característica lineal,
y si son superiores emplear la característica de igual porcentaje.
En líquidos emplear la característica de igual porcentaje.

X Control de caudal
En caso de caudales con escala de raíz cuadrada (placa-orificio o diafragma) utili-
zar una característica lineal.

230
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 231

Elementos finales de control

Si los medidores de caudal tienen escala lineal (rotámetro, medidor magnético de


caudal...) emplear la característica lineal para variaciones de presión diferencial
menores que 2:1 y utilizar la característica de igual porcentaje para variaciones de
presión mayores que 2:1.

X Control de nivel
Emplear la característica lineal si la presión diferencial es menor que 2:1 y la carac-
terística de igual porcentaje si la presión diferencial es mayor que 2:1.

X Control de temperatura
Para variaciones de presión diferencial menores que 2:1 se emplean las válvulas de
característica lineal, mientras que se utilizan las válvulas de característica de igual
porcentaje si la presión diferencial es mayor que la relación 2:1.

10.3 Cálculo de la válvula de control.


Coeficientes Cv, Kv, Kc y Cf. Líquidos
El coeficiente Cv empleado inicialmente en Estados Unidos es el caudal de agua en
galones USA por minuto que pasa a través de la válvula en posición completamente
abierta y con una pérdida de carga de 1 psi.
El coeficiente Kv es el caudal de agua (de 5 a 30 °C) que pasa a través de la válvula en
posición completamente abierta y con una pérdida de carga de 1 bar.
Las equivalencias entre estos coeficientes son:
Kv = 0,86 Cv (m3/h);
Cv = 1,17 Kv (gpm).
En la figura 10.4 puede verse una sección de una válvula de control típica.
En el caso de un líquido, suponiendo la velocidad en el punto 1 (entrada de la válvula)
despreciable frente a la correspondiente en el punto 2 (espacio entre el obturador y el
asiento) resulta:
en la que:

v = β 2 gh
β = coeficiented e resistencia;
v = velocidad del fluido;
g = 9,81 m/s2;
h = altura de presión en m;
y siendo el caudal en m3/s igual a la sección F (en m2) x velocidad v (en m/s) resulta:

p
q = F * β 2 gh = F * β 2 g * * 10 m 3 / s
ρ

231
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 232

Simulación y control de procesos por ordenador

y como por definición, el coeficiente de válvula Kv corresponde a un caudal de agua (1


kg/dm3) en m3/h para una pérdida de carga de 1 bar resulta, sustituyendo en la ecua-
ción anterior:
∆p 3
Q = Kv m /h
ρ
y de aquí:
∆p 3
Kv = Q m /h
ρ
en la que:
Q = caudal máximo, en m3/h;
r = peso específico, en kg/dm3 o g/cm3;
∆p = pérdida de carga, en bar para el caudal máximo
La pérdida de carga ∆p a través de la válvula es función de la pérdida de carga total de
la línea donde está instalada. En la práctica suele considerarse un 30% de la pérdida
total del sistema, si bien criterios de ahorro de energía aconsejan considerar una pérdi-
da de carga del 10% al 15%, ya que de este modo la bomba de impulsión de la línea es
más pequeña y al trabajar a menor presión gasta menos energía.
El caudal Q suele considerarse el 25% mayor del caudal real máximo si las condiciones
de servicio son perfectamente conocidas y el 50% si son aproximadas.

Fig. 10.5 Factor de corrección de viscosidad

232
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 233

Elementos finales de control

Cuando la viscosidad del líquido es superior a 20 centistokes (CS) o 100 Saybolt (SSU),
es necesario utilizar un coeficiente de compensación de viscosidad que multiplica el
coeficiente Kv y que puede encontrarse en la figura 10.5, según el factor R siguiente:

40680 * Q
R=
K v * CS
Cuando aumenta gradualmente la pérdida de carga a través de la válvula, el líquido
que fluye baja su presión y cuando ésta se hace igual o inferior a su presión de vapor,
se alcanza un punto crítico en la vena contraída (que corresponde al espacio entre el
obturador y el asiento) a partir del cual el líquido se convierte en vapor; si al salir de la
válvula, la presión del fluido es todavía inferior a su presión de vapor se tendrá el fenó-
meno denominado de vaporización o flashing, mientras que si es inferior se presentará
el fenómeno de cavitación. Se han realizado innumerables ensayos con válvulas de con-
trol, y en la figura 10.6 puede verse el efectuado con agua tomando como abscisas ∆p
y como ordenadas el caudal.

Fig. 10.6 Curva de ensayo caudal - ∆p para el agua

La primera parte de la curva corresponde a una línea recta dependiente K v = Q ∆p. Esta
línea recta se convierte en curva a partir del inicio de la cavitación, cuando las burbu-
jas de vapor formadas en el seno del líquido en el punto de menor presión se colapsan
y pasan de nuevo al estado líquido al aumentar la presión aguas abajo. El punto de
cavitación incipiente viene definido por el coeficiente de cavitación Kc igual a:

∆p
Kc =
p1 − p v
en la que:
p1 = presión absoluta anterior a la válvula en bar;
Pv = presión absoluta del vapor del líquido en la entrada;
∆p = pérdida de carga a través de la válvula en bar.

233
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 234

Simulación y control de procesos por ordenador

La cavitación produce un ruido parecido al de arena saltando dentro de un recipiente


metálico y da lugar al desgaste de las partes internas de la válvula de control. De aquí
que es esencial prevenir su aparición o, bien, en caso de no poder evitarla, incorporar
materiales especiales resistentes a la erosión en las partes internas.
La cavitación no se presenta si se cumple la condición:

∆p ≤ K c * (P1 − Pv )
Observando la figura 10.6, se ve que al aumentar la pérdida de carga a través de la vál-
vula baja la pendiente de la curva hasta que ésta se convierte en plana, lo que corres-
ponde al fenómeno denominado caudal crítico o choked flor (caudal estrangulado). En la
misma figura puede verse que se presenta una recuperación de presión; si ésta es
importante (como ocurre en válvulas con formas internas suaves de baja pérdida de
carga) es fácil alcanzar las condiciones de caudal crítico. Esta característica de las vál-
vulas de control se define a partir del coeficiente denominado factor de caudal crítico Cf.
La condición de caudal crítico se obtiene cuando se cumple la condición:

∆p ≥ ∆Ps = C 2f * (P1 − Pvc )

en la que:
∆Ps = pérdida de carga a través de la válvula, necesaria para producir caudal es-
trangulado;
Pvc = presión en la vena contraída
En la tabla 10.1 pueden verse valores representativos para distintos tipos de válvulas
de los coeficientes Kc y Cf.

Tabla 10.1 - Factores Kc y Cf

Si la válvula trabaja en condiciones de caudal crítico, como este caudal es entonces


independiente de la presión diferencial real que exista a través de la válvula, ésta se
comporta como si la presión diferencial de cálculo fuera,C 2f * ∆Pvc es decir, como si su
capacidad de caudal hubiera disminuido, por lo cual es necesario que su tamaño sea
mayor. De aquí que es necesario dividir la fórmula de cálculo de líquidos por el coefi-
ciente Cf pasando ésta a:

Q ρ
Kv = *
Cf ∆Pvc

234
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 235

Elementos finales de control

una fórmula que da Pvc es:


 P1 
∆Pv = P1 −  0,96 − 0,28 *  * Pv

 Pvc 

10.4 Cálculo de la válvula de control para gases


Es aplicable la misma fórmula que para líquidos con la salvedad de considerar el cau-
dal y la densidad en las condiciones de servicio. Si se parte de considerar la densidad
promedio entre las correspondientes a las presiones de entrada y de salida a la válvu-
la, y en el caso de que la presión de trabajo sea superior a 7 bar, se aplica el factor de
corrección de compresibilidad Z para tener en cuenta el hecho de que el gas deja de ser
perfecto, y se obtiene la fórmula:

Qn G * Ts * Z
Kv = *
328 ∆p * ( P1 + P2 )

Como los gases son fluidos compresibles, cuando la válvula se somete a una presión
diferencial creciente, aumentan su velocidad hasta que llegan a alcanzar la velocidad
del sonido, y a partir de este momento aunque aumente todavía más la presión dife-
rencial a través de la válvula, las ondas sónicas generadas en el seno del gas no pueden
desplazarse a mayor velocidad y el caudal permanece constante pasando a lo que se
llama caudal crítico.
Este caudal crítico viene definido por el anterior coeficiente Cf , y las condiciones críti-
cas se alcanzan para:
∆p ≥ Pm = 0,5 * C 2f * P1

Para estas condiciones críticas se emplea la misma fórmula anterior dividida por Cf.:

Qn * G * Ts * Z
Kv =
284 * P1 * C f

10.5 Cálculo de la válvula de control


para vapores
Los vapores son fluidos en estado próximo a la saturación, por lo cual se expresan en
unidades de peso en lugar de volumen.
Partiendo de la fórmula de cálculo para gases y transformándola se obtienen las fór-
mulas:
W V + V2
Para condiciones subcríticas: K v = * 1
1420 ∆p

235
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 236

Simulación y control de procesos por ordenador

W V + V2
Para condiciones críticas (V2 corresponde a P1/2): K v = * 1
1004 * C f P1
O sea para: ∆p ≥ 0,5 * C 2f * P1

En el caso del vapor de agua las fórmulas correspondientes son:


W V + V2
Para condiciones subcríticas: K v = * 1
1420 ∆p

W V + V2
Para condiciones críticas (V2 corresponde a P1/2): K v = * 1
1004 * C f P1
O sea para: ∆ p> 0,5*C 2f *P1

10.6 Ejemplos de cálculo de válvulas de control


En la figura 10.7 puede verse un esquema típico de un proceso industrial con un tan-
que y un intercambiador de calor.

Fig. 10.7 Tanque e intercambiador de calor

El control del proceso se realiza mediante:


X Tanque. Control de nivel del producto almacenado en el tanque (válvula de con-
trol V1).
X Tanque. Control de presión de gas inerte sobre el producto almacenado en el tan-
que (válvula de control V2).
X Intercambiador de calor. Control de temperatura del producto de salida mediante
la válvula de control de vapor V3.

En la figura 10.8 se encuentra el programa de cálculo de válvulas de control.

236
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 237

Elementos finales de control

Programa de cálculo de válvulas de control

Option Explicit
Private Sub RespImpulsional_Click() 'cmdCreateTable_Click()
Dim T As Single, T1 As Single, contador As Integer
Dim t0 As Single, Dt As Single, tf As Single, TS As Single, Z As Single
Dim n As Integer, w As Single, p As Single, C As Single, QN As Single, dG As
Single
Dim L As String, VA As String, V As String, G As String, V1 As Single, V2 As
Single
Dim Q As Single, D As Single, DP As Single, Kc As Single, Cf As Single, P1 As
Single, P2 As Single
Dim PV As Single, Pvc As Single, Cavitacion As Single, Kvcritico As Single, Kv As
Single
'Borra las celdas de la simulación anterior
contador = 0
While contador < 25
Cells(contador + 2, 1) = "": Cells(contador + 2, 2) = "": Cells(contador + 2,
3) = "": Cells(contador + 2, 4) = ""
contador = contador + 1
Wend
'Títulos en celdas
L = InputBox("Válvula para líquidos (L):"): If L = "L" Then Cells(2, 1) = "Liquidos"
If Cells(2, 1) = "Liquidos" Then Liquidos Q, D, DP, Kc, Cf, P1, PV, Pvc, Cavitacion,
Kvcritico, Kv
VA = InputBox("Válvula para vapor de agua (VA):"): If VA = "VA" Then Cells(2, 2) =
"Vapor agua"
If Cells(2, 2) = "Vapor agua" Then VaporAgua Q, D, DP, Kc, Cf, P1, PV, Pvc,
Cavitacion, Kvcritico, Kv, w, C, P2
V = InputBox("Válvula para vapores (V):"): If V = "V" Then Cells(2, 3) = "Vapores"
If Cells(2, 3) = "Vapores" Then Vapores Q, D, DP, Kc, Cf, P1, PV, Pvc, Cavitacion,
Kvcritico, Kv, w, V1, V2, P2
G = InputBox("Válvula para gases (G):"): If G = "G" Then Cells(2, 4) = "Gases"
If Cells(2, 4) = "Gases" Then Gases Q, D, DP, Kc, Cf, P1, P2, PV, Pvc, Cavitacion,
Kvcritico, Kv, QN, dG, TS, Z
'El programa termina en una celda vacía
Range("A25").Select
ActiveCell.FormulaR1C1 = ""
Range("A25").Select
Selection.Font.Bold = True
End Sub
'LIQUIDOS
Function Liquidos(Q, D, DP, Kc, Cf, P1, PV, Pvc, Cavitacion, Kvcritico, Kv)
Range("A3").Select
ActiveCell.FormulaR1C1 = "Caudal en m3/h (Q)"
Range("A3").Select
Selection.Font.Bold = True
Range("A5").Select
ActiveCell.FormulaR1C1 = "Densidad en gr/cm3 (D)"
Range("A5").Select
Selection.Font.Bold = True
Range("A7").Select
ActiveCell.FormulaR1C1 = "Presión diferencial en bar (PD)"
Range("A7").Select
Selection.Font.Bold = True
Range("A9").Select
ActiveCell.FormulaR1C1 = "Coeficiente de cavitación (Kc)"
Range("A9").Select
Selection.Font.Bold = True

237
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 238

Simulación y control de procesos por ordenador

Range("A11").Select
ActiveCell.FormulaR1C1 = "Factor de caudal crítico (Cf)"
Range("A11").Select
Selection.Font.Bold = True
Range("A13").Select
ActiveCell.FormulaR1C1 = "Presión de entrada, bar abs (P1)"
Range("A13").Select
Selection.Font.Bold = True
Range("A15").Select
ActiveCell.FormulaR1C1 = "Presión de vaporización, bar abs(Pv)"
Range("A15").Select
Selection.Font.Bold = True
Range("A17").Select
ActiveCell.FormulaR1C1 = "Presión en la vena contraída, bar abs (Pvc)"
Range("A17").Select
Selection.Font.Bold = True
Range("A21").Select
ActiveCell.FormulaR1C1 = "Kv"
Range("A21").Select
Selection.Font.Bold = True
Q = InputBox("Caudal en m3/h (Q):"): Cells(4, 1) = Q
D = InputBox("Densidad en gr/cm3 (D):"): Cells(6, 1) = D
DP = InputBox("Presión diferencial bar (PD):"): Cells(8, 1) = DP
Kc = InputBox("Coeficiente de cavitación (Kc):"): Cells(10, 1) = Kc
Cf = InputBox("Factor de caudal crítico (Cf):"): Cells(12, 1) = Cf
P1 = InputBox("Presión de entrada, bar abs (P1):"): Cells(14, 1) = P1
PV = InputBox("Presión de vaporización, bar abs (Pv):"): Cells(16, 1) = PV
Pvc = InputBox("Presión en la vena contraída, bar abs(Pvc):"): Cells(18, 1) = Pvc
Cavitacion = Kc * (P1 - PV)
If DP >= Cavitacion Then Cells(19, 1) = "Existe cavitación"
If DP < Cavitacion Then Cells(19, 1) = "No existe cavitación"
If DP >= (Cf ^ 2) * (P1 - Pvc) Then Cells(20, 1) = "Existe caudal crítico": Kvcritico
= (1 / Cf) * Q * (Sqr(D / DP)): Cells(22, 1) = Kvcritico
If DP < (Cf ^ 2) * (P1 - Pvc) Then Kv = Q * Sqr(D / DP): Cells(22, 1) = Kv
End Function
'VAPOR DE AGUA'
Function VaporAgua(Q, D, DP, Kc, Cf, P1, PV, Pvc, Cavitacion, Kvcritico, Kv, w, C, P2)
Range("B3").Select
ActiveCell.FormulaR1C1 = "Caudal en Kg/h (w)"
Range("B3").Select
Selection.Font.Bold = True
Range("B5").Select
ActiveCell.FormulaR1C1 = "Grado de recalentamiento (C)"
Range("B5").Select
Selection.Font.Bold = True
Range("B7").Select
ActiveCell.FormulaR1C1 = "Presión de entrada bar abs (P1)"
Range("B7").Select
Selection.Font.Bold = True
Range("B9").Select
ActiveCell.FormulaR1C1 = "Presión de salida bar abs (P2)"
Range("B9").Select
Selection.Font.Bold = True
Range("B11").Select
ActiveCell.FormulaR1C1 = "Factor de caudal crítico (Cf)"
Range("B11").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Kv"
Range("B14").Select

238
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 239

Elementos finales de control

Selection.Font.Bold = True
w = InputBox("Caudal en Kg/h (w):"): Cells(4, 2) = w
C = InputBox("Grado de recalentamiento (C):"): Cells(6, 2) = C
P1 = InputBox("Presión de entrada bar abs (P1):"): Cells(8, 2) = P1
P2 = InputBox("Presión de salida bar abs (P2):"): Cells(10, 2) = P2
Cf = InputBox("Factor de caudal crítico (Cf):"): Cells(12, 2) = Cf
If (P1 - P2) >= 0.5 * P1 * (Cf) ^ 2 Then Cells(13, 2) = "Existe caudal crítico":
Kvcritico = (1 / Cf) * w * (1 + 0.0013 * C) / (13.85 * P1): Cells(15, 2) = Kvcritico
If (P1 - P2) < 0.5 * P1 * (Cf) ^ 2 Then Cells(13, 2) = "No existe caudal crítico": Kv
= w * (1 + 0.0013 * C) / (16 * Sqr((P1 - P2) * (P1 + P2))): Cells(15, 2) = Kv
End Function
'VAPORES
Function Vapores(Q, D, DP, Kc, Cf, P1, PV, Pvc, Cavitacion, Kvcritico, Kv, w, V1, V2,
P2)
Range("C3").Select
ActiveCell.FormulaR1C1 = "Caudal en Kg/h (w)"
Range("C3").Select
Selection.Font.Bold = True
Range("C5").Select
ActiveCell.FormulaR1C1 = "Densidad volumétrica a la presión de entrada P1 (V1)"
Range("C3").Select
Selection.Font.Bold = True
Range("C7").Select
ActiveCell.FormulaR1C1 = "Densidad volumétrica a la presión de salida P2 (V2)"
Range("C7").Select
Selection.Font.Bold = True
Range("C9").Select
ActiveCell.FormulaR1C1 = "Presión de entrada bar abs (P1)"
Range("C9").Select
Selection.Font.Bold = True
Range("C11").Select
ActiveCell.FormulaR1C1 = "Presión de salida bar abs (P2)"
Range("C11").Select
Selection.Font.Bold = True
Range("C13").Select
ActiveCell.FormulaR1C1 = "Factor de caudal crítico (Cf)"
Range("C13").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Kv"
Range("C16").Select
Selection.Font.Bold = True
w = InputBox("Caudal en Kg/h (w):"): Cells(4, 3) = w
V1 = InputBox("Densidad volumétrica a la presión de entrada P1 (V1):"): Cells(6, 3) =
V1
V2 = InputBox("Densidad volumétrica a la presión de salida P2 (V2):"): Cells(8, 3) = V2
P1 = InputBox("Presión de entrada bar abs (P1):"): Cells(10, 3) = P1
P2 = InputBox("Presión de salida bar abs (P2):"): Cells(12, 3) = P2
Cf = InputBox("Factor de caudal crítico (Cf):"): Cells(14, 3) = Cf
If (P1 - P2) >= 0.5 * P1 * (Cf) ^ 2 Then Cells(15, 3) = "Existe caudal crítico":
Kvcritico = (w / (1004 * Cf)) * Sqr(V1 + V2) / (P1 - P2): Cells(17, 3) = Kvcritico
If (P1 - P2) < 0.5 * P1 * (Cf) ^ 2 Then Cells(15, 3) = "No existe caudal crítico": Kv
= (w / (1004 * Cf)) * Sqr(V1 + V2) / (P1 - P2): Cells(17, 3) = Kv
End Function
'GASES
Function Gases(Q, D, DP, Kc, Cf, P1, P2, PV, Pvc, Cavitacion, Kvcritico, Kv, QN, dG,
TS, Z)
Range("D3").Select
ActiveCell.FormulaR1C1 = "Caudal en m3/h (QN)"
Range("D3").Select

239
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 240

Simulación y control de procesos por ordenador

Selection.Font.Bold = True
Range("D5").Select
ActiveCell.FormulaR1C1 = "Densidad relativa respecto al aire (dG)"
Range("D5").Select
Selection.Font.Bold = True
Range("D7").Select
ActiveCell.FormulaR1C1 = "Temperatura en grados Kelvin (TS)"
Range("D7").Select
Selection.Font.Bold = True
Range("D9").Select
ActiveCell.FormulaR1C1 = "Factor de compresión (Z)"
Range("D9").Select
Selection.Font.Bold = True
Range("D11").Select
ActiveCell.FormulaR1C1 = "Presión de entrada bar abs (P1)"
Range("D11").Select
Selection.Font.Bold = True
Range("D13").Select
ActiveCell.FormulaR1C1 = "Presión de salida bar abs (P2)"
Range("D13").Select
Selection.Font.Bold = True
Range("D15").Select
ActiveCell.FormulaR1C1 = "Factor de caudal crítico (Cf)"
Range("D15").Select
Selection.Font.Bold = True
Range("D18").Select
ActiveCell.FormulaR1C1 = "Kv"
Range("C18").Select
Selection.Font.Bold = True
QN = InputBox("Caudal en m3/h (QN):"): Cells(4, 4) = QN
dG = InputBox("Densidad relativa respecto al aire dG (dG):"): Cells(6, 4) = dG
TS = InputBox("Temperatura en grados Kelvin TS (TS):"): Cells(8, 4) = TS
Z = InputBox("Factor de compresión Z (Z):"): Cells(10, 4) = Z
P1 = InputBox("Presión de entrada bar abs (P1):"): Cells(12, 4) = P1
P2 = InputBox("Presión de salida bar abs (P2):"): Cells(14, 4) = P2
Cf = InputBox("Factor de caudal crítico (Cf):"): Cells(16, 4) = Cf
If (P1 - P2) >= 0.5 * P1 * (Cf) ^ 2 Then Cells(17, 4) = "Existe caudal crítico":
Kvcritico = (QN / (284 * Cf * P1)) * Sqr(dG * TS * Z): Cells(19, 4) = Kvcritico
If (P1 - P2) < 0.5 * P1 * (Cf) ^ 2 Then Cells(17, 4) = "No existe caudal crítico": Kv
= (QN / 328) * Sqr(dG * TS * Z / ((P1 - P2) * (P1 + P2))): Cells(19, 4) = Kv
End Function

Los datos de partida son los siguientes:


Válvula V1:
Caudal máximo de la bomba de impulsión (según las tablas de características del
fabricante) = 30 m3/h.
Altura máxima del líquido en el tanque con relación al plano de la bomba = 6 m.
Densidad del líquido = 1,2 g/cm3.
Presión máxima de impulsión de la bomba = 3 bar.
Pérdida de carga de la tubería desde la bomba hasta el punto de descarga en el tan-
que de recepción = 1 bar.

240
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 241

Elementos finales de control

Fig. 10.8 Cálculo de válvulas de control

Presión interna del tanque = 3 bar.


Coeficientes de la válvula: Kc = 0,5; Cf = 0,8.
Presión de vaporización del líquido = 0,3 bar absolutos
Presión de vapor en la vena contraída = 0,5 bar absolutos
Válvula V2:
Fluido = Nitrógeno.
Presión del tanque de alimentación de nitrógeno = 12 bar.
Presión interna del tanque = 3 bar.
Temperatura del nitrógeno = 10 °C.
Densidad relativa del nitrógeno = 0,97.
Coeficientes de la válvula: : Kc = 0,7; Cf = 0,9.
Factor de compresibilidad del nitrógeno = 0,95.
Consumo máximo de nitrógeno según datos experimentales = 50 m3 N/hora.

241
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 242

Simulación y control de procesos por ordenador

Válvula V3:
Caudal de vapor de agua saturado estimado según cálculos realizados
mediante el proyecto del intercambiador = 800 kg/hora.
Presión de entrada del vapor = 9 bar.
El agua condensada del vapor se elimina mediante un purgador termodinámico
que se caracteriza por trabajar con el doble de presión a la entrada que a la salida.
Pérdida de carga del intercambiador de vapor = 1 bar.
Pérdida de carga de la tubería comprendida entre el purgador y el tanque de recu-
peración de condensados de la caldera de vapor = 1 bar.
Diferencia de alturas entre el purgador y el nivel del tanque de recuperación de
condensados = 25 m.
Coeficientes de la válvula = Kc = 0,9; Cf = 0,5.
El cálculo se efectúa del modo siguiente:
X Válvula V1
De acuerdo con los datos se obtiene:
P1 (pres. entrada) = 3 + 3 + 0,6 x 1,2 = 6,7 bar.
P2 (pres. salida) = 1 bar
luego
P = 5,7 bar
Como 5,7 bar > Kc *(P1 – Pv)=0,5 * (7,7 - 0,3) = 3,7, existe cavitación, por lo cual
las partes internas de la válvula deberán estar preparadas para este servicio
duro, o bien será necesario cambiar las condiciones de servicio para que no se
presente el fenómeno de la cavitación.
Existen condiciones de caudal crítico, ya que:
∆P = 5,7 bar >0,82 * (7,7 - 0,5) = 4,6 bar

30 * 1,25 1,2
Luego: Kv = * = 23,9
0,8 4,6

X Válvula V2
Existen condiciones de caudal crítico, ya que:
∆P = 12 – 3 = 9 bar > 0,5 * 0,92 * 13 = 5,2 bar

50 *1,25 0,97 * 283 * 0,95


Kv = =5
284 * 0.9 * 13

242
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 243

Elementos finales de control

X Válvula V3
∆P = 9 – [(2,5+1)*2+1] = 9 – 8 = 1 bar
no existe caudal crítico ya que: ∆P < 0,5 * 0,52 *13 = 1,625 bar

w * (1 + 0,0013 * C ) 800 *1,5


Luego: Kv = = = 17
16 ∆P * (P1 + P2 ) 16 1 * (10 + 9 )

En la figura 10.9 puede verse un programa de cálculo de válvulas de control junto con
varios ejemplos ilustrativos.

Ejercicios

10.1 Determinar el coeficiente Kv de una válvula de control de caudal instalada en


una tuberia con una presión en la entrada de 6 bar y una pérdida de carga de 1
bar. Por los datos facilitados se sabe que el caudal máximo aproximado es de
5000 l/hora y que el fluido es agua.
10.2 En el intercambiador de calor de la figura se dispone de los siguientes datos:
Fluido térmico de densidad = 0,8 g/cm3.
Caudal máximo de la bomba = 10 m3/h.
Presión de impulsión de la bomba = 3 bar.
Pérdida de carga del intercambiador = 1 bar.
Diferencia de alturas entre el nivel del depósito y el plano de la bomba = 6 m.
Kc = 0,5; Pv =0,05 bar abs. a 150 °C; Pvc = 0,1 bar abs.
Determinar:
a) Coeficiente de la válvula Kv.
b) Presión de impulsión de la bomba necesaria para que se inicien las condi-
ciones de cavitación con la válvula abierta hacia el intercambiador.
c) Presión de impulsión de la bomba necesaria para que se inicien las condi-
ciones de caudal crítico con la válvula abierta hacia el intercambiador.

243
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 244

Simulación y control de procesos por ordenador

10.3 Según los siguientes datos del intercambiador de la figura:


Fluido de calefacción: vapor de agua saturado a 25 bar
Caudal máximo aproximado = 1500 kg/h.
Purgador termodinámico.
Diferencia de alturas entre el purgador y el tanque de recuperación de conden-
sados = 12 m.
Pérdida de carga en la tubería de condensados = 1,5 bar.
Determinar:
a) Coeficiente de la válvula Kv para que absorba el 15% de la presión dispo-
nible en la instalación.
b) Coeficiente de la válvula Kv para que absorba el 30%.

10.4 Determinar el Kv de una válvula de control para aire a 300 °C (densidad relati-
va = 1) sabiendo que el caudal máximo aproximado es de 10.000 Nm3/hora, que
la presión de entrada a la válvula es de 5 bar y que la presión de salida es de 3 bar.
Datos de la válvula: Kc = 0,3; Cf = 0,7.
Indicar además cuál debería ser la presión de entrada para que las condiciones
fueran de caudal crítico, y cuál sería entonces el coeficiente de la válvula.
10.5 Amoníaco gas a 40 °C fluye a través de una válvula de control con un caudal
máximo aproximado de 5.000 kg/h y con una presión a la entrada de 3 bar (volu-
men específico = 0,6 m3/kg. Determinar:
a) Presión del amoníaco a la salida de la válvula para que se inicien las condi-
ciones de caudal crítico.
b) Coeficiente de la válvula en las condiciones anteriores (se sabe que a las pre-
siones de 1,6, 1,7, 1,8, 1,9, 2 los volúmenes específicos del amoníaco son 0,745,
0,74, 0,73, 0,72, 0,7).
c) Coeficiente de la válvula si la presión de salida es de 1,5 bar (volumen espe-
cífico = 0,75 m3/kg).
Datos: Cf = 0,8.

244
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 245

Elementos finales de control

10.6 Determinar el coeficiente Kv de una válvula de control con los siguientes datos:
Fluido = cloro gas a 25 °C.
Caudal máximo exacto = 150 kg/h.
Presión en la entrada = 5 bar abs (volumen específico = 0,1 m3/kg).
Presión en la salida = 1,5 bar abs (volumen específico = 0,12 m3/kg).
Cf = 0,8.

245
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 246
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 247

Capítulo 11

Otros tipos de control


Los sistemas de control examinados hasta ahora son del tipo de control en realimenta-
ción, en los que se consigue una estabilización del proceso a través de una circulación
continua de señales en el lazo de control; cada vez se compara la variable con el punto
de consigna, y, en función del error y de las características que posee el controlador, se
sitúa la válvula en una posición determinada. El problema que presenta este tipo de
control es la necesidad de que exista una señal de error para que el controlador actúe
iniciando la corrección, lo cual repercute desfavorablemente tanto más cuanto mayor
retardo posea el sistema.
De aquí que se utilicen otros sistemas de control complementarios, que se tratan en los
siguientes apartados.

11.1 Control en cascada


Cuando se producen perturbaciones en la carga que alteran la estabilidad de la varia-
ble controlada del proceso, es útil introducir un lazo de control adicional que compense
dichas alteraciones. Idealmente, este segundo lazo de control debe eliminar inmediata-
mente estas perturbaciones antes de que entren dentro del proceso y lo descompensen.
En la figura 11.1 puede verse el esquema de funcionamiento.
Suponemos que la temperatura del horno se mantiene en el punto de consigna. Si en
un momento determinado, la presión del vapor cambia de forma incontrolada, el cau-
dal a través de la válvula seguirá la misma variación (la abertura de la válvula no ha
variado todavía). Al cabo de un cierto tiempo, que depende de las características del

Fig. 11.1 Control en cascada

247
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 248

Simulación y control

proceso, el controlador recibirá las variaciones de temperatura y reajustará la posición


de la válvula. Como las perturbaciones en la presión del vapor son totalmente al azar,
y existe un retardo entre el accionamiento de la válvula y el nuevo valor de la presión,
será muy difícil mantener la presión de vapor en el punto de consigna.
El control en cascada de la figura funciona del modo siguiente:
La señal de salida del controlador de temperatura (primario) actúa como punto de con-
signa de un segundo controlador (secundario) cuya variable es el caudal o la presión
del vapor (variable secundaria) y cuya señal de salida acciona la válvula de control de
vapor. De este modo, la influencia de las perturbaciones en la presión del vapor sobre
el proceso es abortada antes de que pueda entrar dentro del proceso.
En la figura 11.2 puede verse el programa en VBA de Excel y el resultado de una simu-
lación. Hagamos algunas aclaraciones al programa. Obsérvese que permite la selección
determinada de una perturbación en escalón y la elección de un tiempo de retardo en
la captación de la temperatura. La perturbación permite comprobar la bondad del con-
trol en cascada por comparación con el control normal en el momento en que la varia-
ble está estabilizada o en vías de recuperación al punto de consigna. El tiempo de retar-
do (C3) se logra guardando en una columna los valores del control sin retardo en la
captación de la variable (temperatura) y entregando estos valores a la temperatura de
salida del producto.

Programa de control en cascada

Option Explicit
Private Sub ControlCascadaTempCaudalIntercambiador_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Double, tf As Single, n As Single, p As Single
Dim w As Single, contador As Integer, L As Single
Dim D1 As Single, D2 As Single, CEP As Single, PC As Single, Q2 As Single
Dim FT As Single, PR As Single, T1 As Single, T2 As Single, T3 As Single
Dim C2 As Single, S As Single, V As Single
Dim KP1 As Single, TR1 As Single, TD1 As Single
Dim KP2 As Single, TR2 As Single, C3 As Single, H As Single, HT As Single, DP As
Single
Dim X As Single, E As Single, E0 As Single, EI As Single, E1 As Single
Dim E2 As Single, ZI As Single, Z1 As Single, Z2 As Single, Z3 As Single, Z4 As
Single, Z5 As Single
Dim Y1 As Single, Y4 As Single, Y5 As Single, Y6 As Single
Dim Zp(20000) As Single
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Temperatura -Variable primaria"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Caudal - variable secundaria"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select

248
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 249

Otros tipos de control

ActiveCell.FormulaR1C1 = "Válvula de control"


Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Perturbación en escalón"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Temperatura sin retardo"
Range("I2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Densidad vapor - Kg/m3 (D1)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Densidad producto - Kg/m3 (D2)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Calor específico del producto - Kc/m3 (CEP)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Calor de condensación del vapor - Kc/Kg (PC)"
Range("A18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Caudal entrada producto m3/min(Q2)"
Range("A20").Select
Selection.Font.Bold = True
Range("A22").Select
ActiveCell.FormulaR1C1 = "Volumen del serpentín - m3 (V)"
Range("A22").Select
Selection.Font.Bold = True
Range("A24").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del transmisor de caudal - minutos
(FT)"
Range("A24").Select
Selection.Font.Bold = True

249
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 250

Simulación y control

Range("A26").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la tubería - minutos (PR)"
Range("A26").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula - minutos (C2)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Retardo - minutos (C3)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del termopar - minutos (T3)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Ganancia TRC (KP1)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral TRC - min/rep (TR1)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada TRC - minutos (TD1)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Ganancia FRC (KP2)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral FRC - min/rep (TR2)"
Range("B18").Select
Selection.Font.Bold = True
Range("B20").Select
ActiveCell.FormulaR1C1 = "Valor de la perturbación en escalón(H)"
Range("B20").Select
Selection.Font.Bold = True
Range("B22").Select
ActiveCell.FormulaR1C1 = "Tiempo de inicio de la perturbación en escalón- minutos
(HT)"
Range("B22").Select
Selection.Font.Bold = True
Range("B24").Select
ActiveCell.FormulaR1C1 = "Duración de la perturbación en escalón - minutos (DP)"
Range("B24").Select
Selection.Font.Bold = True
'Valores iniciales - Integración de Euler
Range("C2").Select
ActiveCell.FormulaR1C1 = "Punto de consigna (X)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable) TRC (E0)"

250
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 251

Otros tipos de control

Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Integral del error TRC (EI)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Derivada del error TRC (E1)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador TRC (Y1)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable) FRC (E2)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Integral del error FRC (ZI)"
Range("C14").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador FRC (Z1)"
Range("C16").Select
Selection.Font.Bold = True
Range("C18").Select
ActiveCell.FormulaR1C1 = "Caudal de la válvula (Z2)"
Range("C18").Select
Selection.Font.Bold = True
Range("C20").Select
ActiveCell.FormulaR1C1 = "Función derivada del caudal (Z3)"
Range("C20").Select
Selection.Font.Bold = True
Range("C22").Select
ActiveCell.FormulaR1C1 = "Temperatura del intercambiador (Y4)"
Range("C22").Select
Selection.Font.Bold = True
Range("C24").Select
ActiveCell.FormulaR1C1 = "Temperatura de captación del termopar (Y5)"
Range("C24").Select
Selection.Font.Bold = True
Range("C26").Select
ActiveCell.FormulaR1C1 = "Señal de salida del termopar (Y6)"
Range("C26").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
D1 = InputBox("Densidad vapor - Kg/m3 (D1):"): Cells(13, 1) = D1
D2 = InputBox("Densidad del producto - Kg/m3 (D2):"): Cells(15, 1) = D2
CEP = InputBox("Calor específico del producto - Kc/m3 (CEP):"): Cells(17, 1) = CEP
PC = InputBox("Calor de condensación del vapor - Kc/Kg (PC):"): Cells(19, 1) = PC
Q2 = InputBox("Caudal entrada producto m3/min (Q2):"): Cells(21, 1) = Q2
V = InputBox("Volumen del serpentín - m3 (V):"): Cells(23, 1) = V
FT = InputBox("Constante de tiempo del transmisor de caudal - minutos (FT):"):

251
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 252

Simulación y control

Cells(25, 1) = FT
PR = InputBox("Constante de tiempo de la tubería - minutos (PR):"): Cells(27, 1) =
PR
C2 = InputBox("Constante de tiempo de la válvula - minutos (C2):"): Cells(3, 2) =
C2
S = InputBox("Factor de amortiguación de la válvula (S):"): Cells(5, 2) = S
C3 = InputBox("Retardo - minutos (C3):"): Cells(7, 2) = C3
T3 = InputBox("Constante de tiempo del termopar - minutos (T3):"): Cells(9, 2) =
T3
KP1 = InputBox("Ganancia TRC (KP1):"): Cells(11, 2) = KP1
TR1 = InputBox("Tiempo de acción integral TRC - min/rep (TR1):"): Cells(13, 2) =
TR1
TD1 = InputBox("Tiempo de acción derivada TRC - minutos (TD1):"): Cells(15, 2) =
TD1
KP2 = InputBox("Ganancia FRC (KP2):"): Cells(17, 2) = KP2
TR2 = InputBox("Tiempo de acción integral FRC - min/rep (TR2):"): Cells(19, 2) =
TR2
H = InputBox("Valor de la perturbación (H):"): Cells(21, 2) = H
HT = InputBox("Tiempo de inicio de la perturbación - minutos (HT):"): Cells(23, 2)
= HT
DP = InputBox("Duración de la perturbación - minutos (DP):"): Cells(25, 2) = DP
'Valores iniciales
X = InputBox("Punto de consigna(X):"): Cells(3, 3) = X
E0 = InputBox("Error (Consigna - Variable) TRC (E0):"): Cells(5, 3) = E0
EI = InputBox("Integral del error TRC (EI):"): Cells(7, 3) = EI
E1 = InputBox("Derivada del error TRC (E1):"): Cells(9, 3) = E1
Y1 = InputBox("Señal de salida del controlador primario TRC (Y1):"): Cells(11, 3)
= Y1
E2 = InputBox("Error (Consigna - Variable) FRC (E2):"): Cells(13, 3) = E2
ZI = InputBox("Integral del error FRC (ZI):"): Cells(15, 3) = ZI
Z1 = InputBox("Señal de salida del controlador FRC (Z1):"): Cells(17, 3) = Z1
Z2 = InputBox("Caudal de la válvula(Z2):"): Cells(19, 3) = Z2
Z3 = InputBox("Función derivada del caudal (Z3):"): Cells(21, 3) = Z3
Y4 = InputBox("Temperatura del intercambiador (Y4):"): Cells(23, 3) = Y4
Y5 = InputBox("Temperatura de captación del termopar(Y5):"): Cells(25, 3) = Y5
Y6 = InputBox("Señal de salida del termopar(Y6):"): Cells(27, 3) = Y6
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 4, 4)) Or Abs(Cells(contador + 4, 5) Or Abs(Cells(conta-
dor + 4, 6)) Or Abs(Cells(contador + 4, 7)) Or Abs(Cells(contador + 4, 5))) > 0
Cells(contador + 3, 4) = "": Cells(contador + 3, 5) = "": Cells(contador + 3,
6) = ""
Cells(contador + 3, 7) = "": Cells(contador + 3, 8) = "": Cells(contador + 3,
9) = ""
contador = contador + 1
Wend
'Valores de Tiempo-Temperatura-Caudal Control en Cascada
'Proceso
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
E0 = X - Y6 'Error
EI = EI + E * Dt 'Integral del error
E1 = (1 / T3) * (Y6 - Y5) 'Derivada del error
E0 = E0 + E1 * Dt
'Controlador primario TRC
Y1 = KP1 * E0 + ((KP1 * EI) / TR1) + KP1 * TD1 * E1 'Señal salida controlador
TRC
'Controlador secundario FRC (Proporcional + Integral)
E2 = Y1 - Z5 'Error FRC

252
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 253

Otros tipos de control

ZI = ZI + E2 * Dt 'Integral del error FRC


Z1 = KP2 * E2 + (KP2 * ZI) / TR2 'Señal de salida controlador FRC
Z3 = Z3 + Dt * (1 / (C2) ^ 2) * (Z1 - Z2 - 2 * S * C2 * Z3) 'Derivada del
caudal
Z2 = Z2 + Dt * Z3 'Caudal de la válvula
Z4 = Z4 + Dt * (1 / PR) * (Z2 - Z4) 'Tubería
Z5 = Z5 + Dt * (1 / FT) * (Z4 - Z5) 'Transmisor de caudal
If Z4 < 0 Then Z4 = 0: Z2 = 0: Z1 = 0
If Z4 > 1 Then Z4 = 1: Z2 = 1: Z1 = 1
If w >= t0 + HT And w < t0 + HT + DP Then Z2 = Z2 + H: Cells(p + 3, 8) = H
'señal de perturbación, H = valor, HT = tiempo de inicio, DP = Duración
If Val(H) = 0 Then Cells(p + 3, 8) = 0
Y4 = Y4 + (Dt / (D2 * V * CEP)) * (Z2 * D1 * PC - Y4 * D2 * Q2 * CEP)
'Temperatura intercambiador
Zp(p) = Y4
L = p - C3 / Dt
If L > 0 Then Y5 = Zp(L) Else Y5 = Zp(1): Y6 = Y5
If L > 0 Then Y6 = Y6 + Dt * (1 / T3) * (Y5 - Y6) 'Señal de salida del ter-
mopar
Cells(p + 3, 5) = Y6 'Señal de salida del termopar (temperatura - variable
primaria)
Cells(p + 3, 6) = Z5 'señal transmisor caudal (caudal - variable secundaria)
Cells(p + 3, 7) = Z1 'señal de salida del FRC (controlador secundario) a la
válvula de control
Cells(p + 3, 9) = Y4 'Temperatura intercambiador - SinRetardo
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 9)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL EN CASCADA TEMPERATURA REACTOR"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperatura TRC (pri-
maria) - Caudal FRC (secundaria) - Válvula de control - Perturbación en
escalón - Variable Temperatura sin retardo"
.Axes(xlValue, xlPrimary).HasTitle = True
End With

253
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 254

Simulación y control

'Cambia el gráfico de posición


With ActiveChart.Parent
.Left = 650:
.Top = 22:
End With
'El programa termina en una celda vacía
Range("A32").Select
ActiveCell.FormulaR1C1 = ""
Range("A32").Select
Selection.Font.Bold = True
End Sub

254
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 255

Otros tipos de control

Fig. 11.2 Programa y resultado de un ensayo de simulación de control en cascada

11.2 Control de relación


El control de relación regula la relación entre dos variables, las que suelen ser dos cau-
dales de fluidos. En la figura 11.3 puede verse un esquema de control de relación con
su diagrama de flujo.

Fig.11.3 Control de relación

El punto de consigna del instrumento controlador de relación puede ser manual o bien
ajustable desde otro instrumento (como si fuera el controlador secundario en un mon-
taje en cascada. Un ejemplo de este segundo caso ocurre en el control de pH de la mez-
cla de un producto y un ácido.
Invitamos al lector a crear un programa que le permita conseguir un control de relación
(ver los ejercicios al final del capítulo). Observe que, al fin y al cabo, es un instrumento
controlador normal, con la única diferencia de que el punto de consigna no es un valor
absoluto sino que es la relación entre dos variables, es decir, habrá que situar un divi-
sor que haga estas funciones.

255
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 256

Simulación y control

11.3 Control de gama partida


El instrumento controlador actúa sobre dos o más válvulas de control en forma secuen-
cial o solapada, gracias a que las válvulas efectúan una carrera completa con sólo una
parte (de aquí el nombre de gama partida) de la señal de control de 3-15 psi, mediante
resortes especiales o montando posicionadotes adosados a las válvulas (figura 11.4).
Invitamos al lector a resolver el ejercicio de programación al final del capítulo. Además
en el apartado 15.5 puede verse un control de gama partida examinado desde el punto
de vista del espacio de estado.

Fig. 11.4 Control de gama partida

11.4 Control selectivo


Se emplea para limitar el valor de la variable de proceso. El instrumento es ajustable y
puede ser selector de señal máxima o mínima. La simulación de este tipo de control
equivale a la ejecución de las sentencia <IF ... THEN...> que transfiere la acción del orde-
nador a una u otra variable, es decir, a la válvula de control o al controlador correspon-
diente. Un ejemplo típico lo constituye el funcionamiento de una caldera de vapor con
varios combustibles alternativos y una estación de bombeo accionada normalmente por
la presión de impulsión pero que, ante un fallo en la alimentación, es controlada por la
presión de aspiración.

11.5 Control anticipativo


El control anticipativo (feedforward), denominado también control de prealimentación y
control en adelanto, al contrario que el control de realimentación, no espera a tener una
señal de error para actuar sino que responde directamente a las perturbaciones en la
variable o las variables de entrada sin permitir que su variación afecte a la variable con-
trolada en la salida del proceso. Su aplicación es atractiva, y es teóricamente posible
que compense totalmente las perturbaciones. Pero para que este tipo de control actúe
con eficacia es necesario disponer de un modelo del proceso suficientemente exacto, lo
que requiere un conocimiento cuantitativo y exhaustivo del proceso; esto no es siem-
pre posible, y más bien se tiende a una simplificación del modelo. De este modo, y sin
considerar factores desconocidos (pérdidas, corrimiento de la calibración de los instru-
mentos, etc.), el control anticipativo actúa en lazo abierto, es decir, directamente sobre
la válvula de control, pero sin tener en cuenta la variable controlada. Necesariamente

256
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 257

Otros tipos de control

se van a producir desviaciones en el valor de dicha variable. Para compensar éstas, se


emplea como complemento un control en realimentación (figura 11.5).
De acuerdo con el modelo del proceso (que puede ser tan sencillo como un simple fac-
tor que multiplica la variable más importante del sistema; ejemplo: el caudal del flui-
do de entrada, un ordenador o bien, de forma sencilla, un instrumento con acción pro-
porcional + derivativa) efectúa los cálculos que dan la señal de control correcta a la
válvula de control según sean las condiciones de carga del proceso. La acción correc-
tora se toma sobre la válvula de control cuando se capta la perturbación, pero no tiene
por que ser inmediata sino que debe contener un bloque de retardo, o bien además un
bloque de adelanto-retardo para compensar la dinámica del proceso, lo que es útil
cuando éste es complejo, tal como es el caso de una columna de destilación. Es decir,
desde el punto de vista de análisis frecuencial equivaldría en elementos de primer
orden a (1 +sL)/(l + sR) con L y R las constantes de tiempo de adelanto y de retardo res-
pectivamente.
En todos los programas expuestos hasta el momento, ha sido necesario establecer un
modelo del proceso, es decir, una expresión matemática que relacionara la variable con-
trolada con la variable manipulada por la válvula de control; esta misma expresión
puede ser utilizada para escribir el algorítmo de control, debiendo fijar los tiempos de
adelanto y de retardo de acuerdo con la lógica y las características del proceso.

Fig 11.5 Control anticipativo

Así puede verse en la figura 11.6 en varios ejemplos.

Programa de control anticipativo

Option Explicit
Private Sub ControlAnticipativoRealimentacionReactor_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Double, tf As Single, n As Single, p As Single
Dim w As Single, contador As Integer, L As Single

257
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 258

Simulación y control

Dim D1 As Single, D2 As Single, CEP As Single, PC As Single, Q0 As Single, Q3 As


Single
Dim FT As Single, PR As Single, T1 As Single, T2 As Single, T3 As Single, TP As
Single
Dim C2 As Single, S As Single, V As Single, A As Single, VA As Single
Dim KP1 As Single, TR1 As Single, TD1 As Single, KF As Single, Q4 As Single, Q5 As
Single
Dim KP2 As Single, TR2 As Single, C3 As Single, H As Single, HT As Single, DP As
Single
Dim X As Single, E As Single, E0 As Single, EI As Single, E1 As Single
Dim Z1 As Single, Z2 As Single, Z3 As Single
Dim Y1 As Single, Y4 As Single, Y5 As Single, Y6 As Single, TV As Single
Dim Y4ConRetardo As Single, Y5ConRetardo As Single, Y6ConRetardo As Single
Dim Y4SinRetardo As Single, Y5SinRetardo As Single, Y6SinRetardo As Single
Dim Zp(20000) As Single
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Temperatura"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Caudal"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Válvula de control"
Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Perturbación senoidal"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Temperatura sin retardo"
Range("I2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True

258
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 259

Otros tipos de control

Range("A12").Select
ActiveCell.FormulaR1C1 = "Densidad vapor - Kg/m3 (D1)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Densidad producto - Kg/m3 (D2)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Calor específico del producto - Kc/m3 (CEP)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Calor de condensación del vapor - Kc/Kg (PC)"
Range("A18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Caudal entrada producto m3/min(Q0)"
Range("A20").Select
Selection.Font.Bold = True
Range("A22").Select
ActiveCell.FormulaR1C1 = "Volumen del serpentín - m3 (V)"
Range("A22").Select
Selection.Font.Bold = True
Range("A24").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del transmisor de caudal - minutos
(FT)"
Range("A24").Select
Selection.Font.Bold = True
Range("A26").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la tubería - minutos (PR)"
Range("A26").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula - minutos (C2)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Retardo - minutos (C3)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del termopar - minutos (T3)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo Temp/Caudal producto - minutos (TP)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Ganancia TRC (KP1)"
Range("B10").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral TRC - min/rep (TR1)"
Range("B14").Select

259
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 260

Simulación y control

Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada TRC - minutos (TD1)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Ganancia Control anticipativo (KF)"
Range("B18").Select
Selection.Font.Bold = True
'Valores iniciales - Integración de Euler
Range("B20").Select
ActiveCell.FormulaR1C1 = "Punto de consigna (X)"
Range("B20").Select
Selection.Font.Bold = True
Range("B22").Select
ActiveCell.FormulaR1C1 = "Error (Consigna - Variable) TRC (E0)"
Range("B22").Select
Selection.Font.Bold = True
Range("B24").Select
ActiveCell.FormulaR1C1 = "Integral del error TRC (EI)"
Range("B24").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Derivada del error TRC (E1)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador TRC (Y1)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Señal de salida del controlador FRC (Z1)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Amplitud perturbación senoidal caudal producto (A)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Factor velocidad angular perturbación (VA)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Salida bloque adelanto-retardo (Q4)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Salida bloque ganancia (Q5)"
Range("C14").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Caudal de la válvula (Z2)"
Range("C16").Select
Selection.Font.Bold = True
Range("C18").Select
ActiveCell.FormulaR1C1 = "Función derivada del caudal (Z3)"
Range("C18").Select
Selection.Font.Bold = True
Range("C20").Select
ActiveCell.FormulaR1C1 = "Temperatura del intercambiador (Y4)"

260
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 261

Otros tipos de control

Range("C20").Select
Selection.Font.Bold = True
Range("C22").Select
ActiveCell.FormulaR1C1 = "Temperatura de captación del termopar (Y5)"
Range("C22").Select
Selection.Font.Bold = True
Range("C24").Select
ActiveCell.FormulaR1C1 = "Señal de salida del termopar (Y6)"
Range("C24").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
D1 = InputBox("Densidad vapor - Kg/m3 (D1):"): Cells(13, 1) = D1
D2 = InputBox("Densidad del producto - Kg/m3 (D2):"): Cells(15, 1) = D2
CEP = InputBox("Calor específico del producto - Kc/m3 (CEP):"): Cells(17, 1) = CEP
PC = InputBox("Calor de condensación del vapor - Kc/Kg (PC):"): Cells(19, 1) = PC
Q0 = InputBox("Caudal entrada producto m3/min (Q0):"): Cells(21, 1) = Q0
V = InputBox("Volumen del serpentín - m3 (V):"): Cells(23, 1) = V
FT = InputBox("Constante de tiempo del transmisor de caudal - minutos (FT):"):
Cells(25, 1) = FT
PR = InputBox("Constante de tiempo de la tubería - minutos (PR):"): Cells(27, 1) =
PR
C2 = InputBox("Constante de tiempo de la válvula - minutos (C2):"): Cells(3, 2) =
C2
S = InputBox("Factor de amortiguación de la válvula (S):"): Cells(5, 2) = S
C3 = InputBox("Retardo - minutos (C3):"): Cells(7, 2) = C3
T3 = InputBox("Constante de tiempo del termopar - minutos (T3):"): Cells(9, 2) =
T3
TP = InputBox("Constante de tiempo Temp/Caudal producto - minutos (TP):"):
Cells(11, 2) = TP
KP1 = InputBox("Ganancia TRC (KP1):"): Cells(13, 2) = KP1
TR1 = InputBox("Tiempo de acción integral TRC - min/rep (TR1):"): Cells(15, 2) =
TR1
TD1 = InputBox("Tiempo de acción derivada TRC - minutos (TD1):"): Cells(17, 2) =
TD1
KF = InputBox("Ganancia Control anticipativo (KF):"): Cells(19, 2) = KF
'Valores iniciales - Integración de Euler
X = InputBox("Punto de consigna(X):"): Cells(21, 2) = X
E0 = InputBox("Error (Consigna - Variable) TRC (E0):"): Cells(23, 2) = E0
EI = InputBox("Integral del error TRC (EI):"): Cells(25, 2) = EI
E1 = InputBox("Derivada del error TRC (E1):"): Cells(3, 3) = E1
Y1 = InputBox("Señal de salida del controlador TRC (Y1):"): Cells(5, 3) = Y1
Z1 = InputBox("Señal de salida del controlador FRC (Z1):"): Cells(7, 3) = Z1
A = InputBox("Amplitud perturbación senoidal caudal producto (A):"): Cells(9, 3) =
A
VA = InputBox("Factor velocidad angular perturbación (VA):"): Cells(11, 3) = VA
Q4 = InputBox("Salida bloque adelanto-retardo (Q4):"): Cells(13, 3) = Q4
Q5 = InputBox("Salida bloque ganancia (Q5):"): Cells(15, 3) = Q5
Z2 = InputBox("Caudal de la válvula (Z2):"): Cells(17, 3) = Z2
Z3 = InputBox("Función derivada del caudal (Z3):"): Cells(19, 3) = Z3
Y4 = InputBox("Temperatura del intercambiador (Y4):"): Cells(21, 3) = Y4
Y5 = InputBox("Temperatura de captación del termopar(Y5):"): Cells(23, 3) = Y5
Y6 = InputBox("Señal de salida del termopar(Y6):"): Cells(25, 3) = Y6
'Borra las celdas de respuestas anteriores
contador = 0

261
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 262

Simulación y control

While Abs(Cells(contador + 4, 4)) Or Abs(Cells(contador + 4, 5)) Or Abs(Cells(con-


tador + 4, 6)) Or Abs(Cells(contador + 4, 7)) Or Abs(Cells(contador + 4, 8)) Or
Abs(Cells(contador + 4, 9)) > 0 Cells(contador + 4, 4) = "": Cells(contador + 4,
5) = "": Cells(contador + 4, 6) = "": Cells(contador + 4, 7) = "": Cells(contador
+ 4, 8) = "": Cells(contador + 4, 9) = ""
contador = contador + 1
Wend
'Tabla de valores de Tiempo-Temperatura-Caudal Control anticipativo del proceso
TV = V / Q0
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
E0 = X - Y6
EI = EI + E * Dt
E1 = (1 / T3) * (Y6 - Y5)
E0 = E0 + E1 * Dt
Y1 = KP1 * E0 + ((KP1 * EI) / TR1) + KP1 * TD1 * E1'Controlador primario TRC
(PID)
'Controlador anticipativo y perturbación – Q3- transmisor de caudal, Q1 – Bloque ade-
lanto-retardo
Q3 = Q3 + Dt * (1 / FT) * (Q0 + A * Sin(VA * w) - Q3)
Q4 = Q4 + Dt * (Q3 - Q4 + (TP * Dt * (Q0 + A * Sin(VA * w) - Q3) / FT) / TV)
Q5 = Q4 * KF 'señal de salida del bloque ganancia
Z1 = Y1 + Q5 'señal de salida del controlador de temperatura TRC
Z3 = Z3 + Dt * (1 / (C2) ^ 2) * (Z1 - Z2 - 2 * S * C2 * Z3) 'derivada del
caudal
Z2 = Z2 + Dt * Z3 'Caudal válvula
If Z1 < 0 Then Z1 = 0: Z2 = 0
If Z1 > 1 Then Z1 = 1: Z2 = 1
Y4 = Y4 + (Dt / (D2 * V * CEP)) * (Z2 * D1 * PC - Y4 * D2 * (Q0 + A * Sin(VA
* w)) * CEP)
Zp(p) = Y4
L = p - C3 / Dt
If L > 0 Then Y5 = Zp(L) Else Y5 = Zp(1): Y6 = Y5
If L > 0 Then Y6 = Y6 + Dt * (1 / T3) * (Y5 - Y6) 'Señal de salida del ter-
mopar
Cells(p + 3, 5) = Y6 'Señal de salida del termopar (temperatura - variable
primaria)
Cells(p + 3, 6) = Q3 'señal de salida del transmisor de caudal
Cells(p + 3, 7) = Q5 'señal salida bloque de ganancia a la válvula
Cells(p + 3, 8) = A * Sin(VA * w) 'señal perturbación senoidal
Cells(p + 3, 9) = Y4 'Temperatura Intercambiador - sin retardo con el proceso
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
Dim S As Single, V As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 9)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
With graf

262
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 263

Otros tipos de control

.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL ANTICIPATIVO DE TEMPERATURA DE UN REAC-
TOR"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperatura - Caudal -
Válvula de control - Perturbación senoidal - Temperatura sin retardo"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 600:
.Top = 20:
End With
'El programa termina en una celda vacía
Range("A32").Select
ActiveCell.FormulaR1C1 = ""
Range("A32").Select
Selection.Font.Bold = True
End Sub
(ver figuras en la página siguiente)

11.6 Control de procesos discontinuos (batch)


El controlador para procesos discontinuos elimina la acción integral durante el tiempo
de paro del proceso entre la descarga al final de una operación y la siguiente carga. De
este modo evita la consiguiente acumulación de la acción integral con el efecto perjudi-
cial para el proceso de un arranque con grandes oscilaciones en la variable, debido a
que la válvula de control sólo empieza a cerrar cuando la variable cruza el punto de
consigna (figura 11.7). En los programas realizados hasta ahora, ha figurado la llama-
da integral del error que es exactamente esta acumulación. Si en cualquiera de estos
programas se sitúa algún valor de esta integral, podrá observarse el efecto que tiene
sobre el control del proceso; éste tarda más tiempo en volver a su punto de consigna o
a una estabilización de la variable.

Fig. 11.7 Control de procesos discontinuos

263
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 264

Simulación y control

Figura 11.6 Programa y resultado de simulación de un control anticipativo de temperatura

264
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 265

Otros tipos de control

11.7 Control adaptativo


El control adaptativo se basa en utilizar como controlador un modelo del proceso que
«adapta» sus parámetros a los valores actuales medidos de las variables del proceso. De
este modo, es el propio modelo que internamente informa al controlador, el que actúa
sobre la válvula de control, y es en el propio modelo donde pueden introducirse los
ajustes de control deseados. Para determinar las características del modelo es necesario
realizar un análisis de la respuesta indicial del proceso para obtener su ganancia y el
retardo. Este conocimiento permite establecer los valores de la ganancia del controla-
dor necesarios para que su respuesta esté relacionada con las características del proce-
so. En otras palabras, el controlador se «adapta» continuamente al proceso.
En la figura 11.8 puede verse un esquema del control adaptativo.
Este tipo de control es especialmente útil en la mayoría de los procesos industriales, ya
que su propia naturaleza es la no linealidad en las condiciones de servicio cuando éstas
son muy amplias; es normal que el ajuste de los controladores en estos procesos deba
ser variado si se desea obtener una perfecta estabilidad relativa. Tal ocurre en la regu-
lación de la composición, el control de temperatura y de presión de vapor, y en proce-
sos que se caracterizan en general por un tiempo de retardo considerable. Mencione-
mos que los controladores autoajustables pertenecen a la clase de los controladores
adoptivos.

Fig. 11.8 Diagrama de bloques del control adaptativo

En procesos no lineales tales como el control del pH se utiliza el control de ganancia


adaptativa. Se caracteriza porque la ganancia del controlador proporcional es aumen-
tada proporcionalmente a la desviación de la variable con relación al punto de consig-
na; es decir, si la desviación es alta, la ganancia es también elevada, pero a medida que
la variable retorna a su punto de consigna, disminuye la ganancia hasta un límite pre-
fijado.
Las sentencias correspondientes del programa se establecen fácilmente:
‘Control de ganancia adaptativa. KP = ganancia
E = V - SP
If E< = 5 Then KP = 1
If E > = 0.5 Then KP = 5

Obsérvese que si la desviación es mayor o igual al 50%, la ganancia pasa a ser 5.


Evidentemente son posibles otros valores o funciones. Por otro lado, es también posi-
ble escribir otras sentencias que tengan en cuenta el cuadrado del error o la velocidad
de variación del error u otras condiciones.

265
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 266

Simulación y control

11.8 Control distribuido


Esta forma de control digital responde a una filosofía particular del control global de la
planta. Su objeto es, por un lado, la distribución del control de las variables en varias
unidades «inteligentes» de control y, por otro, que estas unidades estén «distribuidas a
lo largo de la planta, conectadas a un cable de tráfico de las señales.
También, la circulación de señales por este cable se efectúa atendiendo a su importan-
cia (se las separa en varios niveles de preferencia). Este sistema tiene la ventaja de pre-
venir el riesgo ante averías del sistema de control, haciendo que éste se degrade gra-
dualmente según el tipo de averías que se presenten.
Las variables de la planta son controladas desde varias unidades de control dispuestas
cada una en cada edificio de la fábrica. Un cable transportador de señales digitales une
estas unidades y, en un punto cualquiera del mismo, se empalma la conexión al panel
de control dispuesto en la sala de control central del proceso. De este modo, se dispo-
ne con facilidad de los datos almacenados en cada controlador. Por otro lado, también
es posible incorporar controladores lógicos programables (PLC) al sistema, constitu-
yendo así un control completo de la planta.
El operador dispone de un teclado, a través del que se puede seleccionar cualquier lazo
de control y averiguar su estado, siendo posible cambiar las acciones de control y tener
información del estado del sistema para uso del departamento de mantenimiento.

Fig. 11.9a Control distribuido

La centralización global del control de las variables de la planta hace que este tipo de
control sea el más indicado cuando el número de lazos empieza a ser importante.
Lógicamente, puede acoplarse al conjunto un ordenador que efectúe funciones adicio-
nales de optimización y de contabilización y ahorro de energía.

266
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 267

Otros tipos de control

Fig. 11.9b Control distribuido

En la figuras 11.9a y 11.9b puede verse un esquema del control distribuido.

Ejercicios

11.1 En un horno de secado se observa que aparecen al azar unas pequeñas oscilacio-
nes en la temperatura controlada de los gases de secado del producto.
El horno quema fuel-oil. Razonar cuál puede ser la causa de estas perturbaciones
e idear un sistema que las evite o las compense para, de este modo, conseguir un
buen control de la temperatura. Dibujado el esquema de control correspondien-
te, deducir el diagrama de bloques y asignar valores a las transmitancias corres-
pondientes (suponiendo que las del transmisor y de la válvula sean la unidad)
con el fin de obtener un modelo del proceso que permita su simulación en el
ordenador.
11.2 En el programa de control en cascada de la figura 11.1, escribir el programa que
genere una perturbación senoidal de inicio, duración y amplitud determinados.
11.3 En un control de relación entre dos caudales se fija un punto de consigna de 1,2.
Dibujar el diagrama de bloques y escribir el programa base, suponiendo que la
transmitancia de la válvula es la unidad, que la constante de tiempo de la tube-
ría es 0,05 y que el controlador de relación es proporcional, de ganancia K.
11.4 Dibujar el diagrama de bloques de un control en adelanto aplicado a un inter-
cambiador de calor, y en el que en forma sencilla se considera como variable de
carga el caudal del producto a calentar a una temperatura determinada. Consi-
derando que la transmitancia del controlador anticipativo (feedforward) es 2*(1 +
2s) y que las transmitancias del transmisor y de la válvula de control valen la
unidad, determinar el bloque equivalente y diseñar un programa que de forma
simplificada pueda simular en un ordenador el control del proceso.

267
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 268

Simulación y control

11.5 Un reactor exotérmico discontinuo dispone de un controlador para procesos dis-


continuos (batch controller) cuyo algoritmo de control es 2*[1 +(1/1 +2s)] que reci-
be la señal de un transmisor de temperatura y la envía a una válvula de control.
Determinar el bloque resultante durante el paro del proceso entre dos cargas
consecutivas y el bloque correspondiente mientras el proceso está en marcha. Se
sabe que las transmitancias del transmisor de temperatura y de la válvula son la
unidad.
11.6 Un proceso constituido por dos intercambiadores en serie dispone de un contro-
lador de temperatura PID de valores: BP = 50%; BI = 2 rep/min.; BD = 0,5 minu-
tos. Dibujar el esquema de control que permita utilizar uno o los dos intercam-
biadores y que, además, impida que la temperatura del producto a la salida de
los dos intercambiadotes sobrepase el valor de 120 °C.
Escribir el programa que permita la transición de puesta en marcha de uno a los
dos intercambiadores.
11.7 Escribir el programa simplificado que permita el accionamiento de una alarma
cuando la desviación de la variable con relación al punto de consigna sea del
20%. El controlador es PID.
11.8 Escribir el programa que permita el cierre de una válvula de control cuando la
variable alcanza el límite del 90% de su valor máximo del campo de medida.
Dibujar el diagrama de flujo correspondiente, sabiendo que se trata de un con-
trol de temperatura de un intercambiador.
11.9 Establecer las sentencias del control adaptativo de un control de nivel con
acción proporcional para que la ganancia varíe linealmente desde el valor 4 al 1,
para unas desviaciones respectivas entre la variable y el punto de consigna del
0,2 al 0,8.
11.10 Escribir el programa que tenga en cuenta el cuadrado del error en un controla-
dor proporcional.
11.11 Escribir el programa que tenga en cuenta la velocidad de variación del error en
un controlador PI.

268
Simulaci n y control_12.qxp 01/08/2007 9:46 PÆgina 269

Segunda parte

Técnicas actuales
Simulaci n y control_12.qxp 01/08/2007 9:46 PÆgina 270
Simulaci n y control_12.qxp 01/08/2007 9:46 PÆgina 271

Capítulo 12

Transformada Z

12.1 Generalidades
La transformada Z se utiliza en sistemas con señales discretas o discontinuas, Es decir,
sistemas en los que se muestrea cada cierto tiempo el valor de una señal. Un ejemplo
sería la medición periódica de la densidad del líquido de un tanque extrayendo la
muestra por apertura manual o automática de una válvula colocada en el tanque, reco-
giendo el líquido con un recipiente y midiendo su densidad con un areómetro o anali-
zándola en el laboratorio. Otro ejemplo ilustrativo sería la medición de la composición
en la primera bandeja m de una columna de destilación, mediante la extracción de la
muestra cada t minutos y su medición con un cromatógrafo. Y, finalmente, un ejemplo
muy representativo es el manejo de las señales de proceso con un ordenador digital en
forma de adquisición de datos o, bien, bajo el control supervisorio de puntos de con-
signa (SPC), o el control digital directo (DDC). En la figura 12.1 pueden verse estos
ejemplos.

Fig. 12.1 Ejemplos de señales discretas o discontinuas

271
Simulaci n y control_12.qxp 01/08/2007 9:46 PÆgina 272

Simulación y control de procesos por ordenador

Obsérvese que el muestreador convierte la señal continua x(t) en impulsos uniforme-


mente espaciados x*(t), representando el asterisco la función x(t) muestreada. En la
figura 12.2, correspondiente al control de composición de la primera bandeja de una
columna de destilación, el muestreador toma las muestras cada t segundos y está cerra-
do un tiempo, que es pequeño comparado con el tiempo de muestreo. Las señales inter-
mitentes que va recogiendo el muestreador son demasiado “ruidosas” para ser utiliza-
das después por un instrumento analógico, por lo cual son convertidas a señales en
escalón a través de un dispositivo que las enclava, es decir, las retiene en su último
valor, llamado dispositivo de retención. El conjunto muestreador -dispositivo de reten-
ción convierte la función continua de entrada x(t) en escalones uniformemente espacia-
dos x*(t).

Fig. 12.2 Muestreador y dispositivo de retención

La forma más sencilla del elemento de retención es la llamada de orden cero, en la cual
la señal de salida se mantiene constante durante todo el intervalo de muestreo y es
igual a la magnitud del pulso en el inicio del intervalo. Así pues, el incremento de la
señal de salida del elemento de retención es la diferencia entre dos escalones consecu-
tivos:
x(t) = x(nT)(t) - x(nT)(t - T)
y la transformada de la señal de salida es:
x(s) = [x(nT)/s) - [x(nT)/s)*e-Ts = x(nT)*[(1 – e-Ts)/s)
y como: x*(t) = c(nT)*dt resulta:
x*(s) = x(nT)
luego la función de transferencia de un elemento de retención de primer orden es:
x ( s ) 1 − e −Ts
G (s) = =
x * ( s) s

El transmisor DT mide el valor x*(t) de la muestra y lo transmite al controlador DRC,


que a su vez actúa sobre la válvula V que modifica el reflujo de la columna. Como ya
se ha dicho, el verdadero valor de la muestra se toma sólo al inicio del período de
muestreo T, de tal modo que en la señal x*(t) se ha perdido parte de la información de
x(t). A señalar que el período de muestreo debe ser al menos el doble que el correspon-
diente al crítico del sistema, entendiendo por período crítico el que contenga las seña-

272
Simulaci n y control_12.qxp 01/08/2007 9:46 PÆgina 273

Transformada Z

les de perturbación que puedan afectar al sistema; de este modo no se perderá la infor-
mación necesaria para controlar bien el sistema y compensar las perturbaciones que se
presenten.
Ocurre que el muestreo de una función continua, tal como una función senoidal de
frecuencia w0, contiene un componente primario de frecuencia w0 y de otros comple-
mentarios de frecuencias w0 + ws, a w0 + 2ws, w0 + 3ws, etc. Si la función continua con-
tiene varias ondas senoidales de frecuencias distintas y el período de muestreo es alto,
bastará colocar un filtro que elimine las componentes complementarias. Pero si el perí-
odo de muestreo es bajo, existirá un solape entre los componentes complementarios y
la señal primaria, y el filtrado de la señal muestreada no podrá recuperar la señal ori-
ginal.
Los períodos de muestreo adecuados en los controladores digitales de los procesos
industriales dependen de las perturbaciones en la variable medida. Se recomiendan los
valores en segundos de 5 en la presión, 1 en el caudal, 10 en el nivel y 20 en la tempe-
ratura, e incluso valores inferiores si el controlador es de acción derivativa. Otro crite-
rio para elegir el tiempo de muestreo es determinar primero el tiempo (T95%) de res-
puesta indicial del proceso para alcanzar el 95% de su valor final. El tiempo de
muestreo debe estar comprendido entre los valores:
(1/15)*T(95%)< Tm < (1/4)*T(95%)
La señal muestreada x*(t) puede considerarse como el producto del impulso unidad
d(t) y del valor instantáneo de la señal continua x(t) en el momento de la toma de la
muestra. Así:
para t = 0 x*(t) = x(0)*d(t)
para t = T x*(t) = x(T)*d(t - T)
para t = 2T x*(t) = x(2T)*d(t -2T)

Y generalizando x * (t ) = ∑ x(nT ) * d (t − nT ) como expresión en el dominio del tiempo.
n=0
En el dominio de las s, la transformada de Laplace es:

X * ( s ) = x ( nT ) * L[d (t − nT )]= ∑ x ( nT ) * e − nTs
n =0

y sustituyendo s por jw determinaremos la respuesta frecuencial



X * ( jw) = ∑ x ( nT ) * e − jnTw
n =0

12.2 Transformada Z
Para obtener las respuestas a varias entradas en los sistemas muestreados se utiliza la
transformada Z definida por la relación:
z = eTs

273
Simulaci n y control_12.qxp 01/08/2007 9:46 PÆgina 274

Simulación y control de procesos por ordenador

De este modo, la expresión de la transformada de Laplace de la función muestreada


x*(s) queda:

X ( z ) = X * ( s ) = ∑ x ( nT ) * z − n
n =0

X(z) recibe el nombre de transformada z de x*(t) y también puede representarse como



Z [x (t )]= Z [x * (t )]= X ( z ) = ∑ x (nT ) * z − n
n =0

puesto que en la transformada z sólo se consideran los valores de la señal en los instan-
tes de muestreo.
Como Z es una serie de potencias podría ocurrir que no convergiera para todo valor de
Z, de modo que se define la región de convergencia (ROC) de una transformada z
como:
ROC = {z ∈ C Z {x[n ]}existe}

O en otros términos, es: ROC = ∑ x[n]* r
n = −∞
−n
<∞

Toda X(z) lleva asociada una ROC, ya que podría ocurrir que dos secuencias distintas
produzcan una X(z) idéntica con diferentes ROC.
Cuando x(n) está definida desde n = - ∞ hasta ∞ la transformada Z se llama bilateral,
mientras que si el intervalo de n es n = 0 hasta ∞ se llama unilateral. La transformada Z
unilateral es de gran utilidad en el análisis de sistemas causales que en su inicio no se
encuentran en reposo.
En forma análoga a la operación con transformadas de Laplace de la teoría clásica, se
puede pasar con facilidad del dominio del tiempo al dominio de las z.
En efecto, la transformada en z de una función muestreada f( t) es:

Z [f * (t ) ]= F ( z ) = f (0) + f (T ) * z −1 + f ( 2T ) * z − 2 + ... + f ( nT ) * z − n + ... = ∑ f ( nT ) * z − n
n=0

Por otro lado:


∞  ∞
L[f * (t )]= L ∑ f (nT ) * d (t − nT ) = ∑ f (nT ) * L[d (t − nT )]= f (nT ) * e − nTs
 n =0  n =0
Expresiones que son equivalentes.

12.3 Respuesta impulsional


Aplicando la transformada z a una función impulso unitario f(t) = d(t), resulta:

F ( z ) = f (0) + f (T ) * z −1 + f (2T ) * z −2 + ... + f (nT ) * z − n

274
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 275

Transformada Z

y como el muestreador dará una función f*(t) que, es igual al impulso unidad d(t) en la
primera muestra y que es cero en los restantes muestreos, resulta:
F ( z ) = Z [d (t ) ]= 1

Es decir, que la respuesta impulsional trabajando con transformadas z , o bien, en otros


términos, la transformada en z del impulso unidad, es la unidad.

12.4 Respuesta indicial


Aplicando la transformada z del escalón unidad se tiene:
1 z
F ( z ) = ∑ f ( nT ) * z − n = f (0) + f (T ) * z −1 + f ( 2T ) * z − 2 + ...+ = 1 + z −1 + z − 2 + ... = −1
=
1− z z −1
ya que las funciones f(nT) son iguales a la unidad por tratarse de un escalón unitario.
En la tabla 12.1 pueden verse las transformadas en z y las transformadas de Laplace de
las funciones más comunes.

Tabla 12.1 - Transformadas en z y de Laplace


de las funciones mas comunes

275
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 276

Simulación y control de procesos por ordenador

12.5 Teoremas del valor inicial y final


Como: X ( z ) = x(n) * z − n = x(0) + x(1) * z −1 + x(2) * z −2 + ...
Si hacemos que z → resulta: x (0) = lim X ( z )
8

z →∞

que es el teorema del valor inicial.



Sea: Z [x(n)]= X ( z ) = ∑ x(n) * z − n
n=0


o bien: Z [x(n + 1)]= z * X ( z ) − z * x(0) = ∑ x(n + 1) * z − n
n =0

Y por consiguiente:
∞ ∞
z * X ( z ) − z * x(0) − X ( z ) = ( z − 1) * X ( z ) − z * x(0) = ∑ x(n + 1) * z − n −∑ x(n) * z − n
n =0 n =0

Y de aquí:

( z − 1) * X ( z ) = z * x(0) + ∑ [x(n + 1) − x(n)]* z − n
n =0

y aplicando límites cuando z → , resulta:


8

lim[( z − 1) * X ( z ) ] = x (0) + x (∞) − x(0) = x(∞)


z →1

de lo cual se deduce:
lim x ( n) = lim x (t ) = lim[( z − 1) * X ( z )]
n→∞ n→ ∞ n→∞

que es el teorema del valor final.


Veamos dos ejemplos que ilustrarán estos teoremas.
El lector observará que hasta ahora la transformada z es matemáticamente la transfor-
mada de Laplace con un cambio en la variable. Debe tener en cuenta que el uso de las
tablas es similar al de las tablas de las transformadas de Laplace. La transformada z de
la función de transferencia de un elemento o series de elementos da una transformada
z de salida, que puede invertirse en el dominio del tiempo con la señal de salida corres-
pondiente ya sea intermitente o continua, pero que en este último caso sólo tendrá vali-
dez en los instantes de muestreo.

276
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 277

Transformada Z

12.6 Funciones de transferencia de pulsos


La transformada z de una función de transferencia se denomina función de transferen-
cia de pulsos. En la figura 12.3 puede verse una función continua x (t), un muestreador
que da una función discreta x*(t), la transmitancia a analizar G(s), una función continua
y(t) que es muestreada ficticiamente cada T unidades de tiempo, dando una función
discreta y*(t).

Fig. 12.3 Función de transferencia de pulsos.

De la figura se deduce: y (t ) = G ( s ) * X * ( s )
y la función muestreada de salida vale:

y * ( x) = X * ( s ) * L−1 [G ( s )]* (nT ) * d (t − nT )

Donde L-1[(Gs)] es la respuesta impulsional de la transmitancia G(s). De aquí se ob-


tiene:
y * (s) = X * ( s) * G * (s)

O bien:
y ( z ) = x( z ) * G ( z )

Téngase presente que la transformada z no siempre es directamente compatible con la


transformada de Laplace. Por ejemplo, en el caso de elementos en serie, y a menos que
los dispositivos de muestreo no estén perfectamente sincronizados, la transformada z
del conjunto de elementos no es el producto de las transformadas z de cada elemento.

12.6.1 Inversión de la transformada z


Para invertir la transformada z y pasar al dominio del tiempo, se utilizan dos métodos:
El desarrollo de X(z) en fracciones parciales que es análogo al método empleado en las
transformadas de Laplace, y que consiste en simplificar la transformada z, es decir X(z),
en fracciones parciales que sean simples y puedan encontrarse en la tabla de transfor-
madas z. La expresión obtenida es una función continua de nT y sus valores son correc-
tos en los instantes del muestreo, ya que no existe información entre estos instantes.
Sea, por ejemplo, la transformada z siguiente:
z
X ( z) =
( z − 2) * ( z − 3)

El desarrollo en fracciones parciales da

277
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 278

Simulación y control de procesos por ordenador

X ( z) A B −1 1
= + = 2 + 2
z z − 2 z − 3 z − 5z + 6 z − 5z + 6
y así:
−z z
X ( z) = +
z −2 z −3

y de la tabla de transformadas z resulta:


x(kT) = - 2k + 3k con k = 0, 1, 2, 3,...
X(0) = 0, X(T) = 1, x(2T) = 5, x(3T) = 19, ...
El desarrollo de X(z) en potencias de z mediante la división del numerador por el deno-
minador. De este modo se obtiene:
X(z) = X(0) + X(T) * z-1 + X(2T) * z-2 + ... + X(nT) * z-n
El método es útil porque da inmediatamente los primeros términos de los instantes ini-
ciales del muestreo que habitualmente son los más interesantes. Téngase presente que
los errores cometidos en la división son acumulativos.
Resolviendo el mismo ejemplo anterior con este método se efectúa la división del nu-
merador por el denominador, después de transformarlos a potencias con exponente
negativo y se tiene:
z −1
= z −1 + 5 z − 2 + 19 z −3 + 65 z − 4
1 − 5 z −1 + 6 z − 2

serie de la que se deduce:


x(0) = 0, x(T) = 1, x(2T) = 5, x(3T) = 19, ...

12.6.2 Función de transferencia de pulsos en lazo cerrado


Sea un controlador continuo de función de transferencia G(s) aplicado a un Proceso
continuo PR(s) en el que englobamos la válvula de control y el propio Proceso; el trans-
misor es el que dispone de un equipo de toma de muestras de la señal transmitida, que
es enviada al controlador (figura 12.4).

Fig. 12.4 Control continuo de señales muestreadas

De la figura se deduce:
y ( s ) = G ( s ) * PR ( s ) * [x − GT ( s ) * TR *]+ PR ( s ) * p

278
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 279

Transformada Z

Expresión que en los instantes de muestreo y = y*, x = x*, y p = p*, equivale a:


y * ( s ) = G ( s ) * PR ( s ) * x * + PR ( s ) * p − G ( s ) * PR ( s ) * GT ( s) * TR *

y pasando al dominio de las z resulta:


G ( z ) * PR( z ) * x * PR( z ) * p *
y( z) = +
1 + G ( z ) * PR( z ) * GT ( z ) * TR ( z ) 1 + G ( z ) * PR( z ) * GT ( z ) * TR( z )
ecuación equivalente a la obtenida en el control continuo con transformadas de Lapla-
ce, pero con las siguientes diferencias.
No es posible escribir la relación entre la salida y y la entrada x, ya que ahora los valo-
res de las variables de entrada están limitados por las funciones de transferencia del
proceso y del controlador en las transformadas de pulsos.

12.7 Estabilidad
Como los denominadores son equivalentes a los de las transformadas de Laplace en
control continuo, pueden aplicarse los mismos criterios de estabilidad absoluta pero,
debido a las diferencias esenciales de las transformadas, se aplicarán diferentes condi-
ciones para la estabilidad.
La estabilidad del sistema vendrá dada por la valoración de las raíces de la ecuación
característica.
1 + G( z) * H ( z) = 0
Todas las raíces zi de la ecuación característica deben cumplir |zi|<1, es decir, deben
quedar dentro de un círculo unitario.
A las transformadas en z pueden aplicárseles los mismos criterios de estabilidad relati-
va utilizados en el dominio frecuencial de los sistemas de control continuos, entre ellos
el criterio de estabilidad de Nyquist y el del lugar geométrico de raíces.
Hay que señalar que los mismos límites prácticos de operación con el método de trans-
formadas de Laplace se aplican al método de transformada z. Es decir, existe una limi-
tación práctica de estudio porque ambos métodos estudian los procesos con sólo una
entrada y una salida, cuando en la realidad existen múltiples entradas y salidas interre-
lacionadas, por lo que su estudio se limita a las variables más importantes y es, como
máximo, una resolución cualitativa del problema por ser necesario utilizar simplifica-
ciones. Cuanto más complicado sea un caso, más aproximada y más cualitativa será la
solución obtenida. En los estudios que seguirán de las ecuaciones de estado, se verá un
examen que será más completo cuantas más ecuaciones se utilicen para definir el esta-
do del sistema.

12.8 Ecuación del controlador


Como parte final de la transformada z veamos la ecuación del controlador PID.

279
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 280

Simulación y control de procesos por ordenador

En los sistemas muestreados, la señal de salida obtenida puede ser manejada por un
controlador continuo (utilizado, por ejemplo, en el análisis de composición de una
columna de destilación por cromatografia), que ya ha sido estudiado, y por medio de
un controlador de pulsos empleado en los sistemas de control digital.
El controlador de pulsos, en el instante T del muestreo número n determina el error e(t)
= e(nT)= en entre la variable y el punto de consigna.
En el muestreo anterior el error era en-1 = e[(n-l)T].
La señal de salida yn del controlador es el llamado algoritmo de control o ecuación lla-
mada de diferencias finitas:

y (nT ) = a 0 e(nT ) + a1e(nT − T ) + a 2 e(nT − 2T ) + ... + a m e(nT − mT ) −

− b1 m(nT − T ) − b2 m(nT − 2T ) − ... − bn e(nT − mT )


La determinación de dichos coeficientes puede realizarse analizando el proceso y utili-
zando métodos parecidos a los empleados en las transformadas de Laplace (técnicas de
lugar geométrico de raíces y de respuesta frecuencial en el plano z que no estudia-
remos).
Muchos algoritmos de control son aproximaciones a las ecuaciones de los controlado-
res convencionales. El algoritmo del controlador incremental empleado en las ecuacio-
nes de estado (ver el capítulo siguiente) tiene por expresión:

T TD
y (t ) = KP * [e(nT ) − e(n − 1)T ]+ * e(nT ) + * [e( nT ) − 2 * e[(n − 1)T ]+ e[(n − 2)T ]]
TR T

280
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 281

Transformada Z

Ejercicios

12.1 Dígase cuál debe ser el valor mínimo del tiempo de muestreo en un control digi-
tal directo de la temperatura de un intercambiador de calor, sabiendo que exis-
ten perturbaciones de frecuencia inferior al valor de 100 radianes/minuto.
12.2 Dibujar el esquema de un controlador digital que controla la temperatura de un
intercambiador de calor en cascada con el caudal del vapor de calefacción.
12.3 Resolver la ecuación diferencial 2 * x (k+2) + x * (k+1) - 3 * x (k) con las condicio-
nes iniciales x(0) = 0, x(1) = 2.
1
12.4 Determinar la transformada z de: X ( s ) =
s * ( s + 2)
12.5 Utilizando el método de fracciones parciales, determinar la transformada inver-
sa de: X ( z ) = 2 5 z
z − 6z + 5
−z
12.6 Determinar la transformada inversa de X ( z ) = 2
z − 2z − 3
2
12.7 Escribir la transformada z de un controlador de función de transferencia
1 + 2s
12.8 Dígase si tienen o no estabilidad relativa un sistema con elemento de retención
de primer orden con realimentación unidad y de transformada z:
3
X ( z) = 2
z − z − 1,4

12.9 Escribir la ecuación de un controlador digital incremental de ganancia 2, acción


integral de 2 minutos/repetición y acción derivativa de 2 minutos de anticipo.

281
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 282
Simulaci n y control_13.qxp 01/08/2007 9:47 PÆgina 283

Capítulo 13

Ecuación de estado

13.1 Generalidades
En la teoría clásica de control se consideraba un sistema con una única señal de entra-
da y una única señal de salida, relacionadas ambas por la transmitancia o función de
transferencia. Ello no deja de ser una simplificación de la realidad, ya que si observamos
cualquier fenómeno físico, siempre deberemos considerar en un análisis profundo la
existencia de múltiples señales de entrada y de salida. Por ejemplo, en el caso del con-
trol de temperatura de un producto en un intercambiador de calor calentado median-
te un fluido térmico existen como señales de entrada los caudales y densidades del pro-
ducto y del fluido térmico y como señales de salida la temperatura del fluido térmico
y además otras variables que normalmente no se consideran como el depósito de
incrustaciones en el serpentín, el flujo turbulento en el interior del intercambiador, el
retardo de captación de la temperatura, etc. De aquí que la temperatura del producto
podrá definirse por un sistema de ecuaciones función del tiempo y con la existencia,
como se ve, de varias entradas y varias salidas.
El ejemplo puede ampliarse al control de otras variables (presión, caudal, nivel, etc.),
pero su interés reside más bien en el estudio de procesos complejos, por ejemplo, seca-
deros, evaporadores, de simple, doble y triple efecto, reactores y como caso más com-
plejo, el análisis de columnas de destilación. En estos casos, el lector apreciará clara-
mente la dificultad del estudio por la teoría clásica; abordarlos requeriría una excesiva
sobresimplificación con la consecuencia de la obtención de resultados que, como máxi-
mo, nos darían valores de tendencia cualitativa del problema. Por tanto, el método clá-
sico debe descartarse en el estudio de estos procesos complejos, debiendo utilizarse la
teoría del espacio de estado, aplicada al campo de los fenómenos físicos.
El concepto de espacio de estado abarca los sistemas físicos cuyo comportamiento cam-
bia con el tiempo y que se caracterizan porque, conocidas las funciones de entrada pa-
ra un tiempo mayor que el inicial (t > = t0) y el estado del sistema en función del tiem-
po t = t0 quedan definidas las funciones de salida para t > = t0.
Las variables de estado son el conjunto más pequeño de variables que definen el estado
del sistema en cualquier instante.
El vector de estado tiene como componentes las variables de estado y define unívocamen-
te el estado del sistema.
La ecuación de estado quedará definida pues por un conjunto de ecuaciones diferencia-
les lineales que describan la dinámica del sistema para cualquier tiempo t > = t0 , cono-

283
Simulaci n y control_13.qxp 01/08/2007 9:48 PÆgina 284

Simulación y control de procesos por ordenador

cidos el vector de estado en el instante inicial (t =t0) y la entradas al sistema en los tiem-
pos posteriores t > = t0 , y que será necesario trasladar a una forma vectorial-matricial.
La ecuación diferencial típica de un sistema dinámico es de la forma:

Siendo u la señal de entrada y definiendo n variables de estado x1, x2, … xn, en la forma:

Con lo que la ecuación del sistema pasa a:

O en forma matricial y representando las derivadas por la variable con un punto en su


parte superior para así facilitar la representación.

·
O en forma simbólica: X = AX + Bu

284
Simulaci n y control_13.qxp 01/08/2007 9:48 PÆgina 285

Ecuación de estado

que recibe el nombre de ecuación de estado


donde:
·
X es un vector de derivadas de las variables de estado de orden n
A(t) es una matriz cuadrada de n x n elementos de constantes, parámetros o
características físicas o dinámicas del sistema
X(t) es un vector matriz de las variables de estado x de orden n
B(t) es una matriz de constantes de orden n de la señal de entrada
u(t) es la matriz de entradas del sistema
En general, las ecuaciones de estado de los sistemas dinámicos consistirán en ecuacio-
nes diferenciales lineales de primer orden, en las que el tiempo es la variable indepen-
diente y que están en la forma:

con las n variables de estado x1, x2, ... xn que definen el estado del sistema en cualquier
instante, y con las entradas u al sistema, y siendo t la variable independiente.

13.2 Ejercicios de formulación


Para que el lector entienda la formulación de la ecuación de estado efectuaremos una
serie de ejercicios para así dominar la técnica básica de análisis de la variable de esta-
do. Los ejercicios a efectuar serán de dificultad progresiva y estarán basados en los
ejemplos ya estudiados en la primera parte de esta obra.
Estudiemos primero el caso de la oscilación amortiguada de un muelle del apartado
2.3.8. Recordemos que la ecuación diferencial era:

que trasladamos a formas simultáneas de primer orden, definiendo para ello una nueva
variable, la velocidad v(t). Y así:

o bien:

285
Simulaci n y control_13.qxp 01/08/2007 9:48 PÆgina 286

Simulación y control de procesos por ordenador

En este sistema de dos ecuaciones x(t) y v(t) son las variables de estado, f(t) es la entra-
da al sistema y t es la variable independiente.
Estas dos ecuaciones pueden llevarse a la forma matricial:

que en notación matricial es la ecuación de estado

Veamos ahora el control manual de una válvula de control de característica lineal.


La transmitancia de la válvula de control lineal en función del operador p era:

en la que:
x1= Señal de entrada a la válvula (equivale a la señal neumática 3-15 psi o 0,2-
1 kg/cm2 o a la señal electrónica 4-20 mA c.c. procedentes del instrumento
controlador sea en automático o en manual);
x2 = Caudal de salida de la válvula;
C2 = Constante de tiempo de la válvula;
s= factor de amortiguación de la válvula.
De la igualdad anterior se deduce, siendo el operador p = d/dt:

que es la ecuación diferencial del movimiento de la válvula y llamando v2 = dx2/dt


resultan:

Ecuaciones que en forma matricial pasan a:

o sea:
.
X = AX + Bu

286
Simulaci n y control_13.qxp 01/08/2007 9:48 PÆgina 287

Ecuación de estado

Compliquemos y hagamos un poco más interesante el estudio. Sea ahora el control de


presión de una tubería realizado mediante el típico lazo de control transmisor-contro-
lador-válvula de control-tubería.
Las transmitancias de estos componentes del lazo son:

Controlador:

Válvula lineal:

Proceso:

Transmisor:

De aquí se deduce el sistema de ecuaciones de estado:

siendo x1, x2, v2, x3, x4 las variables de estado y u es la señal de entrada (el punto de
consigna del controlador). Pasamos ahora a la notación matricial:

287
Simulaci n y control_13.qxp 01/08/2007 9:48 PÆgina 288

Simulación y control de procesos por ordenador

Que es la ecuación de estado:

13.3 Resolución de la ecuación de estado


Veamos ahora la forma de resolver la ecuación de estado. Existen dos métodos básicos
para resolverla: el de la transformada de Laplace y el de la solución en el dominio del
tiempo.
El primer método busca la transformada de Laplace de la ecuación de estado para
obtener:

Seguidamente, o bien traza el gráfico de señales con las variables y entradas como
nodos) y aplica la llamada regla de Mason de la ganancia, o bien determina una solu-
ción por matrices, ambas de la forma:

Se busca después la antitransformada para obtener

El segundo método no trabaja con transformadas de Laplace, sino que supone una
solución en función del tiempo, que, con una aproximación dada, debe cumplir para
todo el dominio del tiempo.
El primer método se vuelve verdaderamente engorroso cuando el sistema es de orden
elevado, por lo cual se prefiere emplear la solución en el dominio del tiempo, que
puede ser adaptada fácilmente para su utilización en el ordenador.
·
Iniciemos la solución de la ecuación matricial X = AX + Bu en el dominio del tiempo con
una ecuación diferencial escalar:

En condiciones iniciales:

288
Simulaci n y control_13.qxp 01/08/2007 9:49 PÆgina 289

Ecuación de estado

que sustituida da:


e igualando los coeficientes de las potencias de t

Por otro lado, el valor b0 se determina haciendo t = 0 en la solución supuesta.


Y así: b0 =x(0)
Luego la solución en condiciones iniciales es:

Podemos generalizar esta solución al caso de una matriz x = eAt * x(0). Y así la
solución es:
·

siendo A una matriz cuadrada, I la matriz identidad y

eAt puede escribirse como una matriz con el mismo número de filas y de columnas que
la matriz A. La evaluación de eAt podría hacerse fácilmente en un ordenador para cada
valor de t, con la observación de que debería comprobarse la convergencia obtenida de
la matriz eAt según sea el número de términos escogido.
Obtengamos ahora la solución completa de la ecuación de estado. Multiplicando la
ecuación de estado por eAt resulta:

O sea

que integrada entre 0 y t da:

289
Simulaci n y control_13.qxp 01/08/2007 9:49 PÆgina 290

Simulación y control de procesos por ordenador

y multiplicando los dos miembros por eAt y reordenando resulta:

y cambiando la variable de integración:

Supongamos que queremos calcular x(t) en un tiempo particular t = T. Resulta:

en esta expresión x(0) es una matriz de condiciones iniciales dadas y u(t) es una matriz
de entradas dadas.
Si las entradas son constantes durante todo el tiempo t entonces:
U(t) = u(0) para 0 < t < T
y, por tanto, Bu(0) es una matriz de constantes de modo que puede ser sacado de la inte-
gral. Y así:

que se transforma a:

Con llamada matriz “fi”.

llamada matriz “delta”.

Ahora sustituímos el tiempo 0 por t0 y determinamos la solución al cabo de T segun-


dos. Luego:

y si consideramos las soluciones digitales cada T segundos obtenemos:


para t0 =0
para t0 = T
para t0 =2T
y generalizando para t0 = kT
llamada «ecuación de diferencias».

290
Simulaci n y control_13.qxp 01/08/2007 9:49 PÆgina 291

Ecuación de estado

Resumiendo, la solución general es:

donde:

y:

En el caso de que una vez resuelta la ecuación de estado, convenga obtener el estado
de variables que son distintas de las escogidas como estados, se procede del modo
siguiente:
Se escribe el valor de las nuevas variables, llamadas de salida, en función de las varia-
bles de estado y de las entradas y se define su matriz de salida. Esta, en forma análoga
a la ecuación de estado, es igual a:

Siendo C y D las matrices de coeficientes de las variables de estado y de las entradas


del vector y. De este modo, para cada valor de los vectores x y u, le corresponderá otro
del vector y.

13.3.1 Resolución manual de un ejemplo


Veamos la aplicación a un ejemplo sencillo para la total comprensión de la solución
antes de empezar a programarla en un ordenador.
Sea el ejemplo de la válvula de control lineal, es decir que el caudal tiene una relación
lineal con la carrera. La matriz de estado era:

Haciendo c2=1 (constante de tiempo) y s=0,5 (factor de amortiguación), para que las
operaciones sean mas fáciles, lo que correspondería a una válvula con servomotor eléc-
trico, tendremos:

El valor adecuado de T está comprendido entre 1 y la expresión (suma módulos elemen-


tos matriz A)*T, que en nuestro ejemplo es 0,33 < T < 3,3, por lo que escogemos T = 1. Y

291
Simulaci n y control_13.qxp 01/08/2007 9:49 PÆgina 292

Simulación y control de procesos por ordenador

el número de términos de las series de Φ y de ∆ entre 2 y 2* (suma módulos elementos


matriz A)*T, lo que en nuestro ejemplo es entre 2 y 2*3*1=6.
Calculemos Φ de forma progresiva hasta comprobar que las matrices obtenidas conver-
gen de forma suficiente.

Estimamos suficiente la convergencia de este último resultado. Busquemos ahora el


resultado de (∆T).

Análogamente a Φ (T) la serie de ∆(T) converge. Nos quedamos con el último término
encontrado.
Calculemos ahora .
Supongamos que inicialmente la válvula está cerrada y en reposo, y que enviamos
desde el controlador la señal 0,6 bar (9 psi) o 16 mA c.c., según sea neumático o electró-
nico, es decir, u = 0,5. Y así:

Iniciemos el cálculo en t0 = 0, u(t0) =u(0)=x1=0,5. Dado t0 =1:

292
Simulaci n y control_13.qxp 01/08/2007 9:50 PÆgina 293

Ecuación de estado

lo cual indica que al cabo de 1 minuto, la válvula pasará a una posición del 16,6% de su
carrera y que su velocidad será del 27,08% de su velocidad máxima.
Para t0 = 2

Ahora la válvula está en 32,36% y tiene una velocidad del 11,43%.


Para t0 = 3

La válvula está en el 44,34% con una velocidad del 10,9%.


Para t0 =4

La válvula ha pasado al 52,07% con lo cual ha sobrepasado el punto deseado del 50%,
y tiene una velocidad todavía positiva del 4,4%.
Para t0 = 5

Nótese que ahora la velocidad de la válvula es negativa, lo cual indica que oscilará alre-
dedor del punto de equilibrio y que el valor de x tenderá a:
0,5
x=
0
En la figura 13.1 puede verse el programa correspondiente en VBA (Visual Basic de
Excel) junto con las tablas de valores y el gráfico del movimiento de la válvula para dos
casos, uno correspondiente a una válvula motorizada eléctrica de c2 = 1 y s = 0,5, y el
otro referido a una válvula neumática con c2 = 0,02 y s = 0,7.

Option Explicit
Private Sub ControlManualValvulaVEstado_Click() 'cmdCreateTable_Click()
Dim T1 As Single
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, Sigma As Single
Dim ID(2, 2), MA(2, 2), MB(2, 1), MC(2, 1), MP1(2, 2), MP2(2, 2), MP3(2, 2)
Dim MP4(2, 2), MD1(2, 1), MD2(2, 1), MD3(2, 1), MD4(2, 1), MX(2, 1), MX1(2, 1),
MX2(2, 1)
Dim j As Integer, i As Integer, L As Integer, p As Single
Dim A As Single, C2V As Single, S As Single

293
Simulaci n y control_13.qxp 01/08/2007 9:50 PÆgina 294

Simulación y control de procesos por ordenador

Dim Pinicio As Single, Vinicio As Single, Pdeseada As Single


Dim funcionx As Single, funciony As Single, funcionG As Single
Dim funciondb As Single, funcionArg As Single, funcionZ As Single
Dim n As Integer, contador As Integer, k As Integer
Dim arcotangente As Single
Dim IndicialTransm2Orden As Single
'Funciones del control manual (P=D/DT)
'Válvula lineal - Def FNV(P)=1/(C2V*P)^2+2*S*C2V*P+1)
'Ecuaciones de estado - DX2/DT-V2, DV2/DT*(1/C2V^2)*(-X2-2SC2VV2+Pdeseada)
'Los coeficientes de las variables de estado y de la entrada son
'valores medios de operación de la válvula.
'X2, V2 = Variables de estado - Pdeseada = Variables de entrada, son perturbaciones
'(incrementos alrededor del punto de operación)
'Solución - Dominio del tiempo - MX(((K+1)Dt)=PHI+MX(KT)+DELTA*Pdeseada(KT)
'Dt debe ser tal que la serie PHI = ID*AT*A^2(Dt^2/2,
'converja con números que el ordenador pueda manejar
'Programa para MX((k+1)Dt)=PHI*MX(K*Dt)+DELTA*Pdeseada(K*Dt)
'K = Índice del tiempo, Dt = Incremento del tiempo, Pdeseada(K*Dt)= Entrada
'Condiciones iniciales - K=0, Pdeseada(K*Dt) y MX(2,1) a especificar
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Posición de la Válvula"
Range("E2").Select
Selection.Font.Bold = True
'Range("F2").Select
' ActiveCell.FormulaR1C1 = "Velocidad de la Válvula"
' Range("F2").Select
' Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula - minutos (C2V)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"

294
Simulaci n y control_13.qxp 01/08/2007 9:50 PÆgina 295

Ecuación de estado

Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Posición inicial de la válvula (Pinicio)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Velocidad inicial de la válvula (Vinicio)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Posición deseada de la válvula (Pdeseada)"
Range("B10").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
C2V = InputBox("Constante de tiempo de la válvula - minutos (C2V):"): Cells(3, 2)
= C2V
S = InputBox("Factor de amortiguación de la válvula (S):"): Cells(5, 2) = S
Pinicio = InputBox("Posición inicial de la válvula (Pinicio):"): Cells(7, 2) =
Pinicio
MX(1, 1) = Pinicio
Vinicio = InputBox("Velocidad inicial de la válvula (Vinicio):"): Cells(9, 2) =
Vinicio
MX(2, 1) = Vinicio
Pdeseada = InputBox("Posición deseada de la válvula(Pdeseada):"): Cells(11, 2) =
Pdeseada
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0
ID(2, 1) = 0: ID(2, 2) = 1
'Entrada de filas y columnas matriz MA(2,2)
MA(1, 1) = 0: MA(1, 2) = 1
MA(2, 1) = -(1 / (C2V) ^ 2): MA(2, 2) = -2 * S / C2V
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MB(2,1)
MB(1, 1) = 0: MB(2, 1) = 1 / ((C2V) ^ 2)
For j = 1 To 2
MC(j, 1) = MB(j, 1) * Dt
Next j
'Cálculo de PHI
L = 1
For j = 1 To 2: For i = 1 To 2
MP1(j, i) = 0
For k = 1 To 2
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 2: For i = 1 To 2
MP3(j, i) = 0
For k = 1 To 2

295
Simulaci n y control_13.qxp 01/08/2007 9:50 PÆgina 296

Simulación y control de procesos por ordenador

MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)


Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 2
MD1(j, 1) = 0
For k = 1 To 2
MD1(j, 1) = MD1(j, 1) + MA(j, k) * (Dt / (L + 1)) * MC(k, 1)
Next k: Next j
For j = 1 To 2
MD2(j, 1) = MC(j, 1) + MD1(j, 1)
Next j
For L = 2 To 4
For j = 1 To 2
MD3(j, 1) = 0
For k = 1 To 2
MD3(j, 1) = MD3(j, 1) + MA(j, k) * (Dt / (L + 1)) * MD1(k, 1)
Next k: Next j
For j = 1 To 2
MD4(j, 1) = MD2(j, 1) + MD3(j, 1)
Next j
For j = 1 To 2
MD1(j, 1) = MD3(j, 1)
MD2(j, 1) = MD4(j, 1)
Next j: Next L
'Borra las celdas de respuestas anteriores
contador = 0
While Abs(Cells(contador + 4, 4)) Or Abs(Cells(contador + 4, 5)) > 0 'Borra colum-
nas tiempo-posición
'While Abs(Cells(contador + 4, 4)) Or Abs(Cells(contador + 4, 5)) Or
Abs(Cells(contador + 4, 6))> 0'Borra columnas tiempo-posición-velocidad
Cells(contador + 4, 4) = "": Cells(contador + 4, 5) = ""
contador = contador + 1
Wend
'Pinicio válvula = Cells(7, 2), Vinicio válvula = Cells(9, 2), Pdeseada válvula =
Cells(11, 2)
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
For j = 1 To 2
MX1(j, 1) = 0
For i = 1 To 2
MX1(j, 1) = MX1(j, 1) + MP4(j, i) * MX(i, 1)
Next i
MX2(j, 1) = MX1(j, 1) + MD4(j, 1) * Pdeseada
If MX2(1, 1) > 1 Then MX2(1, 1) = 1
If MX2(1, 1) < 0 Then MX2(1, 1) = 0
Cells(3 + p, 5) = MX2(1, 1) ' Posición de la válvula
'Cells(3 + p, 6) = MX2(2, 1)' Velocidad de la válvula

296
Simulaci n y control_13.qxp 01/08/2007 9:50 PÆgina 297

Ecuación de estado

Next j
For j = 1 To 2
MX(j, 1) = MX2(j, 1)
Next j
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim n As Integer, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 5)).Address 'gráfico de posición de la
válvula
'datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'gráfico de posición y
velocidad de la válvula
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL MANUAL VÁLVULA"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Posición - Velocidad de
la válvula"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 400:
.Top = 40:
End With
'El programa termina en una celda vacía
Range("A13").Select
ActiveCell.FormulaR1C1 = ""
Range("A13").Select
Selection.Font.Bold = True
End Sub

297
Simulaci n y control_13.qxp 01/08/2007 9:50 PÆgina 298

Simulación y control de procesos por ordenador

Fig. 13.1a Respuesta de una válvula de control eléctrica lineal (servomotor eléctrico)

298
Simulaci n y control_13.qxp 01/08/2007 9:50 PÆgina 299

Ecuación de estado

Fig. 13.1b Respuesta de una válvula de control neumática lineal (servomotor neumático)

299
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 300

Simulación y control de procesos por ordenador

13.3.2 Resolución con el ordenador del control de presión


en una tubería
En la figura 13.2 puede verse el diagrama de flujo del sistema. Las ecuaciones corres-
pondientes se expusieron anteriormente y también se dedujo la ecuación de estado

siendo x1, x2, v2, x3, x4 las variables de estado y u la señal de entrada (el punto de con-
signa del controlador). La ecuación de la válvula era:

Como el caso usual es que la válvula de control absorba parte de la presión disponible
en la tubería, su curva característica pasa a ser la llamada característica efectiva y la
ecuación de la válvula cambia a:

Expresión que no es lineal. Para linealizarla aplicamos el método de las perturbaciones


alrededor del punto de operación (ver Apéndice). Considerando el desarrollo en serie
de Taylor alrededor del valor medio de operación de x1 (designado con x1) con sólo la
primera derivada parcial del término derecho de la expresión

300
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 301

Ecuación de estado

Y tomando ahora el valor de perturbación

y considerando que v2 = dx2 / dt resulta:

Y en condiciones de régimen permanente

con lo cual

Para abreviar la notación en lo que sigue suprimiremos la letra p de perturbación.


Hay que señalar que resaltar que los valores obtenidos son perturbaciones, es decir,
incrementos relativos al punto de operación de la válvula, y que, por tanto, son valores
que difieren de los representados hasta ahora en las técnicas clásicas, que eran valores
absolutos. Además, así lo consideraremos en lo que sigue, siendo necesario linealizar y
aplicar el método de las pequeñas perturbaciones alrededor del punto de operación
para obtener las ecuaciones diferenciales de primer orden de las variables de estado.
En el capítulo de respuesta frecuencial se expusieron las fórmulas del controlador PID.
Por su interés se citan de nuevo aquí.
En el control por ordenador, la expresión correspondiente es:

Siendo:
KP = ganancia;
e= error (diferencia entre el punto de consigna SP y la variable medida PV);
T= período de muestreo;
t= tiempo transcurrido desde el inicio de los cálculos;
KI = tiempo de la acción integral;
KD = tiempo acción derivada;
y(0) = nivel de base de la señal de control.

301
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 302

Simulación y control de procesos por ordenador

Esta expresión corresponde al llamado control PID posicional, ya que la señal de control
se calcula a partir de un nivel de base y(0).
Para evitar el ruido en los datos muestreados pueden utilizarse los cuatro últimos valo-
res leídos en el término de/dt de la acción derivada cuya expresión queda en la forma:

El control PID posicional recalcula el valor completo de la posición de la válvula en


cada período de muestreo y lo convierte a una señal analógica para aplicarlo al posicio-
nador de la válvula de control, o bien el posicionado incorpora dicho convertidor.
Diferenciando a ambos lados de la expresión general del controlador, o restando dos
cálculos sucesivos del algoritmo de posición, resulta:

Siendo:
KP = ganancia;
e = error (diferencia entre el punto de consigna SP y la variable medida PV = SP
- PV);
T = período de muestreo;
t = tiempo transcurrido desde el inicio de los cálculos;
TR=KI/KP = tiempo de la acción integral en minutos/repetición;
TD=KP*KD = tiempo acción derivada e minutos de anticipo.
Que corresponde al llamado controlador PID de velocidad o expresión incremental o expre-
sión de texto porque la señal de salida del controlador es el valor o la cantidad que se
añade a la señal de salida para alcanzar el punto de consigna, es decir, que si el error es
nulo, esta señal de salida será cero.
Utilizando los cuatro últimos valores leídos en el término de/dt de la acción derivada,
para eliminar el ruido, la expresión anterior pasaría a:

Por otro lado, la expresión ∆y(t) se llama ecuación del controlador PID de tipo A.
Tiene el inconveniente de que el término derivativo contiene el punto de consigna, lo
que puede dar lugar a cambios indeseables en la señal de salida del controlador, si cam-
bia el punto de consigna. Sustituyendo el error por e = SP – PV:

302
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 303

Ecuación de estado

Y considerando que en condiciones normales de funcionamiento, el punto de consigna


SP permanece constante, sin cambios, el error equivale a:

Llamada ecuación del controlador PID de tipo B.


Y si se elimina el error e(t) de los términos proporcional y derivativo, resulta:

Llamada ecuación del controlador PID de tipo C.


Y siendo una ecuación de tipo incremental en la que puede sustituirse:

Resulta:

Los controladores PID de tipo C son los preferidos, ya que actúan sobre la variable del
proceso en lugar de la señal de error. En otras palabras, proporcionan el sistema más
estable con el menor pico de las oscilaciones en la señal.
El orden de selección es:
Controlador Tipo C → Controlador Tipo B → Controlador Tipo A
Otra forma de cálculo para que el error e(t) no interviniera en el término integral sería
restar las expresiones de la ecuación de dos tiempos consecutivos, con lo que:

Restando ambas expresiones resulta:

303
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 304

Simulación y control de procesos por ordenador

O bien como:

y con la aproximación
Resulta:

Lo que indica que en el programa deben tomarse los resultados de la


variable de proceso 3 períodos de tiempo antes PV(t-2), PV(t-1), PV(t)
para calcular el incremento de la señal de salida.
Otra forma mas simple es considerar que en el inicio la variable se desvía poco del
punto de consigna y como en la ecuación se consideran valores incrementales se tiene:

con lo que la expresión del controlador tipo C equivale a:

En los controladores, el algoritmo de velocidad no tiene una referencia interna y en


caso de presentarse una perturbación amplia y de larga duración, permite oscilaciones
sostenidas.
La selección del periodo de muestreo es importante. El muestreo debe ser lo mas rápi-
do posible pero teniendo en cuenta que un periodo de tiempo T muy pequeño repre-
senta:
1 - Aumenta el coste de los componentes, que deben ser de calidad y muy numerosos.
2 - Un control distribuído se degrada de modo significativo si existe un gran número
de entradas y salidas de las señales.
3 - Un muestreo rápido implica que las señales de alta frecuencia, tales como el ruido,
serán capturados con la señal, lo que no es beneficioso para el lazo de control.

Por el contrario, un periodo de muestreo T demasiado largo, puede dar lugar a un sola-
pamiento de señales, fenómeno llamado “aliasing”, que se refiere a una situación de
muestreo en la que no pueden distinguirse dos señales diferentes.
En general, una señal con una banda de frecuencia en la que fm es la mayor frecuencia,
podrá recontruirse sin distorsión a partir de muestras de la señal tomadas a una fre-
cuencia fs > 2 fm. La experiencia indica que el periodo de muestreo es aproximadamen-
te un 10% de la constante de tiempo dominante del sistema.

304
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 305

Ecuación de estado

Fig. 13.2 Solapamiento de señales (Aliasing)

Como orientación general se recomiendan los siguientes periodos de muestreo.

Tabla 5.3 - Periodos de muestreo de señales de procesos químicos

Períodos de muestreo de señales de procesos químicos


Variable Periodo

Caudal 1 segundo
Nivel 5 segundos
Temperatura 30 seg a 10 minutos

Nota: La experiencia indica que es aproximadamente un 10% de la constante de


tiempo dominante del sistema

Así pues, la utilización de la ecuación incremental del controlador nos ahorra una ecua-
ción de estado, ya que el controlador nos relaciona ahora una variable de estado (que
es la señal de salida del transmisor de presión) con una entrada (que es la señal que ali-
menta la válvula de control). Por otro lado, al ser las ecuaciones de estado independien-
tes del controlador, es posible efectuar varios ensayos del comportamiento del proceso
ante valores distintos de las acciones del controlador, sin necesidad de que el ordena-
dor calcule de nuevo las matrices. Quedarán así cuatro ecuaciones de estado con una
entrada que dependerá de las condiciones del controlador.
Las nuevas ecuaciones de estado son:

siendo x1, x2, v2, x3, x4 las variables de estado y u es la señal de entrada (el punto de
consigna del controlador). Pasamos ahora a la notación matricial.

305
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 306

Simulación y control de procesos por ordenador

En la figura 13.3 puede verse el programa correspondiente en VBA (Visual Basic de


Excel) y un ejemplo de curva de respuesta.

Programa de control de presión de válvula lineal (absorbe parte presión de la tubería)

Option Explicit
Private Sub ControlPresionValvulaLinealVEstado_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Single, tf As Single, w As Single
Dim n As Integer, C2V As Single, S As Single
Dim RDP As Single, OCV As Single, T1TUB As Single
Dim T2TRANS As Single, KP As Single, TR As Single
Dim j As Integer, i As Integer, k As Integer, L As Integer, Contador As Integer
Dim p As Single, V As Single, H As Integer
Dim DeltaCaudalValv As Single, DeltaVariacCaudalV As Single, DeltaPresTuberia As
Single, DeltaTransmPresion As Single, DeltaConsigna As Single
Dim ID(5, 5), MA(5, 5), MB(5, 2), MC(5, 5), MP1(5, 5), MP2(5, 5), MP3(5, 5), U(5,
2), Z(3)
Dim MP4(5, 5), MD1(5, 5), MD2(5, 5), MD3(5, 5), MD4(5, 5), MX(5, 5), MX1(5, 5),
MX2(5, 5)
'Funciones del lazo de control (P=D/DT)
'Controlador - KP*(1+(1/(TR*p))), Ecuación controlador tipo C: Delta[y(t)]=-KP*[PV(t)-
'PV(t-1)]-(1/TR)*T*PV(t)
'Controlador - U(1, 1) = -KP * (MX(4, 1) - Z(2)) - (Dt / TR) * MX(4, 1)
'Válvula lineal - 1/((C2V*p)^2+2*S*C2V*p+1)
'Proceso - 1/(1+T1TUB*p)
'Transmisor - 1/(1+T2TRANS*p)
'Ecuaciones de estado
'DX2/DT=V2
'DV2/DT = (1/C2^2)*(-X2-2*S*C2V*V2+(RDP/(OCV)^3)*(1-RDP+(RDP/(OCV^2)))^-1,5)*X1
'RDP es la relación DP Válvula/DP instalación, OCV es el valor medio de operación de
'la carrera de la válvula
'DX3/DT=(1/T1)*(X2-X3)
'DX4/DT=(1/T2)*(X3-X4)
'Para evitar confusiones con otras variables T1TUB=T1, T2TRANS=T2
'Los coeficientes de las variables de estado y de la entrada son
'valores medios de operación de la válvula.
'X2, V2, X3, X4 = Variables de estado - U(K*T) = Vector de entrada
'son perturbaciones(incrementos alrededor del punto de operación)
'Solución - Dominio del tiempo - X((K+1)Dt =PHI * X(KT)+DELTA*U(KT)
'PHI = Matriz de transición, X(K*T) = Vector de estado
'DELTA = Matriz de fuerza
'Dt debe ser tal que la serie PHI = ID*AT*A^2(Dt^2/2),
'converja con números que el ordenador pueda manejar (1<SUMA Â(I,J)^*T<10)
'Títulos en celdas
Range("D2").Select

306
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 307

Ecuación de estado

ActiveCell.FormulaR1C1 = "Tiempo (minutos)"


Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Presión tubería"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Válvula de control"
Range("E2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la válvula - minutos (C2V)"
Range("A12").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Factor de amortiguación de la válvula (S)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Presión diferencial Válvula/Presión Instalación(RDP)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Valor medio de operación de carrera de la válvula (OCV)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo de la tubería - minutos (T1TUB)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del transmisor de presión - minutos
(T2TRANS)"
Range("B12").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Ganancia del controlador de presión - (KP)"

307
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 308

Simulación y control de procesos por ordenador

Range("B12").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de caudal de la válvula - MX(1,1)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de variación de caudal (derivada) de
la válvula - MX(2,1)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de presión en la tubería - MX(3,1)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de señal de salida del transmisor de
presión - MX(4,1)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del punto de consigna de la presión
(U(1,1))"
Range("C12").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
C2V = InputBox("Constante de tiempo de la válvula - minutos (C2V):"): Cells(13, 1)
= C2V
S = InputBox("Factor de amortiguación de la válvula (S):"): Cells(3, 2) = S
RDP = InputBox("Relación de presiones diferenciales Válvula/Instalación(RDP)):"):
Cells(5, 2) = RDP
OCV = InputBox("Valor medio de operación de carrera de la válvula (OCV):"):
Cells(7, 2) = OCV
T1TUB = InputBox("Constante de tiempo de la tubería - minutos (T1TUB):"): Cells(9,
2) = T1TUB
T2TRANS = InputBox("Constante de tiempo del transmisor de presión - minutos
(T2TRANS):"): Cells(11, 2) = T2TRANS
KP = InputBox("Ganancia del controlador de presión - (KP):"): Cells(13, 2) = KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(3,
3) = TR
DeltaCaudalValv = InputBox("Incremento inicial de caudal de la válvula -
MX(1,1):"): MX(1, 1) = DeltaCaudalValv: Cells(5, 3) = MX(1, 1)
DeltaVariacCaudalV = InputBox("Incremento inicial de variación de caudal (derivada)
de la válvula - MX(2,1):"): MX(2, 1) = DeltaVariacCaudalV: Cells(7, 3) = MX(2, 1)
DeltaPresTuberia = InputBox("Incremento inicial de presión en la tubería -
MX(3,1):"): MX(3, 1) = DeltaPresTuberia: Cells(9, 3) = MX(3, 1)
DeltaTransmPresion = InputBox("Incremento inicial de señal de salida del transmisor
de presión - MX(4,1):"): MX(4, 1) = DeltaTransmPresion: Cells(11, 3) = MX(4, 1)

308
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 309

Ecuación de estado

DeltaConsigna = InputBox("Entrada - Incremento Punto de consigna de la presión -


U(1,1):"): U(1, 1) = DeltaConsigna: Cells(13, 3) = U(1, 1)
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0: ID(1, 3) = 0: ID(1, 4) = 0
ID(2, 1) = 0: ID(2, 2) = 1: ID(2, 3) = 0: ID(2, 4) = 0
ID(3, 1) = 0: ID(3, 2) = 0: ID(3, 3) = 1: ID(3, 4) = 0
ID(4, 1) = 0: ID(4, 2) = 0: ID(4, 3) = 0: ID(4, 4) = 1
'Entrada de filas y columnas matriz MA(4,4)
MA(1, 1) = 0: MA(1, 2) = 1: MA(1, 3) = 0: MA(1, 4) = 0
MA(2, 1) = -(1 / (C2V) ^ 2): MA(2, 2) = -2 * S / C2V: MA(2, 3) = 0: MA(2, 4) = 0
MA(3, 1) = 1 / T1TUB: MA(3, 2) = 0: MA(3, 3) = -1 / T1TUB: MA(3, 4) = 0
MA(4, 1) = 0: MA(4, 2) = 0: MA(4, 3) = 1 / T2TRANS: MA(4, 4) = -1 / T2TRANS
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MB(4,1)
MB(1, 1) = 0
MB(2, 1) = (RDP / (OCV ^ 3)) * (1 - RDP + (RDP / (OCV ^ 2))) ^ -1.5 / ((C2V) ^ 2)
MB(3, 1) = 0: MB(4, 1) = 0
For j = 1 To 4
MC(j, 1) = MB(j, 1) * Dt
Next j
'Cálculo de PHI
L = 1
For j = 1 To 4: For i = 1 To 4
MP1(j, i) = 0
For k = 1 To 4
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 4: For i = 1 To 4
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 4: For i = 1 To 4
MP3(j, i) = 0
For k = 1 To 4
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 4: For i = 1 To 4
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 4: For i = 1 To 4
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 4
MD1(j, 1) = 0
For k = 1 To 4
MD1(j, 1) = MD1(j, 1) + MA(j, k) * (Dt / (1 + L)) * MC(k, 1)
Next k: Next j
For j = 1 To 4
MD2(j, 1) = MC(j, 1) + MD1(j, 1)
Next j
For L = 2 To 4
For j = 1 To 4
MD3(j, 1) = 0

309
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 310

Simulación y control de procesos por ordenador

For k = 1 To 4
MD3(j, 1) = MD3(j, 1) + MA(j, k) * (Dt / (L + 1)) * MD1(k, 1)
Next k: Next j
For j = 1 To 4
MD4(j, 1) = MD2(j, 1) + MD3(j, 1)
Next j
For j = 1 To 4
MD1(j, 1) = MD3(j, 1)
MD2(j, 1) = MD4(j, 1)
Next j: Next L
'Borra las celdas de respuestas anteriores
Contador = 0
While Abs(Cells(Contador + 3, 4)) Or Abs(Cells(Contador + 3, 6)) <> 0
Cells(Contador + 3, 4) = "": Cells(Contador + 3, 5) = "": Cells(Contador + 3,
6) = ""
Contador = Contador + 1
Wend
'Datos para dibujar la curva de respuesta
H = 0
For w = t0 To tf Step Dt
If H = 2 Or H > 2 Then H = 0
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
'H = 0
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID tipo C, Delta (t) = -
KP*[PV(t)-PV(t-1)] - (1/TR)*T*PV(t)
If w = t0 Then Z(2) = 0
If w <> t0 Then U(1, 1) = -KP * (MX(4, 1) - Z(2)) - (Dt / TR) * (MX(4, 1))
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID
U(1, 1) = -KP * (MX(4, 1) - Z(2)) - (Dt / TR) * (MX(4, 1))
For j = 1 To 4
S = 0
For k = 1 To 4
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, 1) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
'Presión en la tubería, Caudal en la válvula = Posición de la válvula
Cells(3 + p, 5) = MX(4, 1): Cells(3 + p, 6) = -MX(1, 1)
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, V As Single
Dim U(5, 1), Z(3), MP4(5, 5), MD4(5, 2), MX(4, 2)
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete

310
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 311

Ecuación de estado

End If
'Presión tubería, Posición válvula de control
datos = Range(Cells(3, 4), Cells(p + 3, 6)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CONTROL PRESIÓN TUBERÍA"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "PRESIÓN - VÁLVULA"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 460:
.Top = 22:
End With
'El programa termina en una celda vacía
Range("A15").Select
ActiveCell.FormulaR1C1 = ""
Range("A15").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MX(), MD4(), U(), Z(), H)
Dim j As Integer, k As Integer, i As Integer, S As Single, V As Single
H = H + 1
j = 1: S = 0
For k = 1 To 4
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

311
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 312

Simulación y control de procesos por ordenador

Fig. 13.3 Curva de respuesta de control de presión de una tubería

312
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 313

Ecuación de estado

Ejercicios

13.1 Dígase si las ecuaciones de estado del programa del control manual de la válvu-
la necesitan o no ser linealizadas.
13.2 Modificar el programa del control manual de la válvula para que aparezca en la
pantalla del monitor un mensaje fijo cuando la válvula sobrepasa el 75 % de su
carrera.
13.3 En el problema anterior, completar el programa para que el mensaje desaparez-
ca cuando la válvula esté por debajo del 75ñ% de su carrera.
13.4 En el programa de control manual de la válvula escribir una sentencia que simu-
le que la válvula ha quedado agarrotada.
13.5 Determinar la ecuación de estado de una válvula con características de igual por-
centaje.
13.6 Escribir la ecuación de estado de un transmisor de caudal con placa orificio o
diafragma como elemento primario.
13.7 Escribir la ecuación de estado de la variación de nivel en un tanque de sección A,
altura h, y caudales de entrada y salida qe y qs respectivamente.
13.8 Indicar cuáles son los valores idóneos del incremento de tiempo T de cálculo del
ordenador, si la matriz A de la ecuación de estado es:

13.9 Indicar el número de iteraciones necesario para que las matrices Φ y ∆ de un sis-
tema de ecuaciones de estado con matriz A igual a la del problema anterior con-
verjan suficientemente.

313
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 314
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 315

Capítulo 14

Estabilidad y sistema de control

14.1 Generalidades
A los sistemas lineales e invariantes en el tiempo pueden aplicárseles las técnicas de
estabilidad dadas en la primera parte de la obra: Routh, Nyquist, Bode, etc. Pero estos
criterios no sirven cuando el sistema es no lineal y/o lineal pero variable en el tiempo.
Lógicamente, podrían resolverse las ecuaciones de estado y encontrar las variables de
estado para varios valores de las acciones de control y, de acuerdo con la respuesta
obtenida, aplicar los criterios ya explicados de estabilidad relativa de tanteo, de ganan-
cia límite, de curva de respuesta, etc. Sin embargo, esto obliga a resolver las ecuaciones
de estado para varios valores de operación de las variables, ya que en la mayor par-
te de los casos se habrán linealizado las ecuaciones y, esta linealización sólo será válida
para el entorno de los valores medios de operación especificados.. Por tanto, será nece-
sario ensayar las ecuaciones de estado para múltiples condiciones de operación para
estar seguros de la estabilidad en todos los campos de las variables, lo cual siempre es
laborioso y emplea bastante tiempo. Veremos varios criterios que nos indicarán si el sis-
tema es o no estable, pero sin necesidad de resolver las ecuaciones de estado.
Las técnicas especiales que permiten el control de este tipo de procesos se denominan
técnicas de control avanzado. En los años 70 se referían a las técnicas que se apartaban
de las realizadas con los controladores clásicos neumáticos o electrónicos analógicos
PID, y de las aplicaciones del control de relación, cascada y en adelanto (feedforward).
Hoy en día, el control avanzado es sinónimo de implementación del proceso con tecno-
logías basadas en ordenadores o microprocesadores. Es una tecnología multidisciplinar
en la que intervienen ingeniería de control, procesamiento de señales, estadística, inte-
ligencia artificial e ingeniería del hardware y del software y en particular una compren-
sión del comportamiento de la planta unida a la aplicación juiciosa de las tecnologías
de control actuales.
La utilidad del control avanzado reside en la contestación a la pregunta: dado el esta-
do actual del proceso, ¿qué acciones hay que tomar para alcanzar las especificaciones
deseadas? Si se dispone de un modelo exacto del proceso, y existe el modelo inverso,
la dinámica del proceso puede ser anulada por el modelo inverso. Sin embargo, es difí-
cil disponer de un buen control ya que todos los modelos contienen errores y no siem-
pre puede obtenerse un modelo invertido y que sea controlable.
El control avanzado precisa pues de un modelo del proceso con la suficiente informa-
ción para predecir las consecuencias de cambios en las condiciones de operación del
proceso.

315
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 316

Simulación y control de procesos por ordenador

El modelo de comportamiento dinámico puede establecerse con ecuaciones diferencia-


les, pudiendo darse casos en los que no es factible su desarrollo debido a problemas de
tiempo y económicos provocados por el poco conocimiento del proceso o bien por su
complejidad que impide la resolución de las ecuaciones diferenciales. En este caso se
acude a modelos llamados de caja negra utilizando datos del proceso recogidos en la
planta. Este tipo de modelo puede ser lineal (funciones de transferencia y series de
datos) o no lineal (circuitos neuronales y series de datos). Es el mas frecuentemente uti-
lizado ya que puede replicar suficientemente las tendencias dinámicas de los objetivos
del proceso.
Los modelos cualitativos (lógica difusa) se utilizan cuando no es posible un tratamien-
to matemático debido a la naturaleza discontinua del proceso.
En otra técnica de modelos se emplea la descripción del proceso en términos estadísti-
cos (probabilística y correlación).
Existen diversos sistemas de control avanzado:
) Correctores de retardo del proceso, útiles en el caso de intercambiadores de gran
capacidad.
) Control robusto que es la tolerancia o insensibilidad del controlador ante los cam-
bios o perturbaciones que puedan presentarse en las condiciones de trabajo del
proceso
) Control linealizador global.
) Control estadístico que trabaja en tiempo real con las leyes de probabilidad de las
variables y que gracias a los cálculos de la media, la desviación estándar y otros
valores determina la tendencia de las variables aleatorias que pueden conducir a
problemas de control o a cambios en la calidad de los productos fabricados.
) Control multivariable en el que se compensa la influencia mutua de diversas entra-
das y salidas del proceso.
) Control óptimo en el que el sistema cumple una ley de control tal, que la salida del
controlador hace mínima la función objetivo (por ejemplo conseguir una rápida
aproximación al punto de consigna y un mínimo rebasamiento de la variable
manipulada).
) Control adaptativo en el que el sistema de control ajusta automáticamente sus pará-
metros para compensar los cambios que puedan producirse en el proceso.
) Control predictivo que, mediante modelos dinámicos del proceso, se anticipa y
prevé las situaciones futuras del proceso en base al conocimiento de los datos
pasados y los actuales.
) Sistemas expertos que mediante una base de conocimientos se integran en el siste-
ma de control de la planta para asistir al operador en la detección y en la solución
de los casos en que el proceso sale fuera de control.
) Control por redes neuronales que es una forma de control que imita el funcionamien-
to de las neuronas del sistema nervioso.

316
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 317

Estabilidad y sistema de control

) Control por lógica difusa que utiliza operadores para describir un sistema mediante
reglas, haciendo mas humano el control y siendo adecuado para el control de pro-
cesos no lineales y con un comportamiento variable en el tiempo.
La estructura general del control avanzado puede verse en la figura 14.1.

Fig. 14.1 Estructura del control avanzado

La señal de salida del modelo predictivo ypr se resta a la del proceso yp, y el error resul-
tante E, modifica el mecanismo de compensación para cambiar la estrategia actual del
control, actuando sobre el controlador y sobre el generador de trayectoria. Éste, a su
vez, genera un valor del punto de consigna yr diferente del punto de consigna (S.P. = set
point) que el operador ha fijado en el sistema.
El generador de trayectoria se encarga de ir al valor deseado de la variable del proceso
en las mejores condiciones posibles. Es una función de los criterios establecidos y pro-
porciona la gran robustez del control predictivo trabajando prácticamente en el límite
de estabilidad.

Fig. 14.2 Niveles jerárquicos del control avanzado

317
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 318

Simulación y control de procesos por ordenador

Dentro del control avanzado pueden establecerse los niveles de jerarquía (fig. 14.2):
) Optimización aplicable generalmente a los procesos individuales. Típicamente con-
siste en un control con restricciones que conduce una variable a su valor óptimo
hasta que el sistema alcanza un límite (o restricción), o bien llega al valor óptimo.
) Supervisión que va desde un simple lazo de control hasta complejos algoritmos de
control multivariable. La mayor parte de las funciones de control avanzado se
encuentran en este nivel. El control supervisor es beneficioso en los siguientes
casos:
1. Posibles pérdidas económicas ante retardos en la respuesta del proceso a las
perturbaciones.
2. Ajustes frecuentes de las acciones de control.
3. Dificultades en establecer las mejores condiciones de operación para una pro-
ducción definida.
4. Pérdidas de fabricación no evidentes al operador por fallos de ajuste de la ins-
talación ante las perturbaciones.

Como ejemplos generales, se expone a continuación una descripción breve de algunas


de estas aplicaciones referidas a Calderas de vapor, a Reactores y al Control de proce-
sos en base estadística.

Calderas de vapor
En las calderas de vapor (fig. 14.3) el sistema compensa en circuito cerrado las pertur-
baciones que se presentan en la operación de la caldera, para reducir el consumo de
combustible. Dispone de un elemento de simulación y optimización de la caldera que
recibe todos los datos de operación y los datos económicos de funcionamiento, y deter-
mina la forma óptima de operación, calculando los puntos de consigna de los controla-
dores. El sistema permite la operación on-line, es decir el funcionamiento en tiempo
real de la caldera, y off-line, es decir un estudio del comportamiento del sistema ante
ensayos de funcionamiento. De este modo, el control avanzado contesta a la pregunta
¿Qué pasaría si...?

Reactores
Los reactores se utilizan típicamente en plantas de polietileno y en procesos de polime-
rización (figura 14.4). En las plantas de polietileno, se utilizan modelos matemáticos
multivariables. Los sistemas de control avanzado, predicen los productos que se fabri-
can y los controlan mediante la variación de los productos entrantes.
El modelo adoptado del proceso y las condiciones de operación predicen las propieda-
des del producto final que va a fabricarse, lo que permite al sistema el cálculo de las
condiciones requeridas para mantener las propiedades deseadas en el producto final.
Algunas variables, tales como las desviaciones en el rendimiento del catalizador, las
variaciones en el intercambio calorífico, etc., que no pueden modelizarse, se tienen en
cuenta cada vez que el modelo se actualiza.

318
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 319

Estabilidad y sistema de control

Fig. 14.3 Control avanzado de una caldera de vapor

Fig. 14.4 Control avanzado de reactores

Los sistemas de control avanzado se aplican a procesos determinados y su objeto es


obtener el mejor control del proceso particular que se estudie en la planta. Presentan
los siguientes beneficios:

319
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 320

Simulación y control de procesos por ordenador

) Ahorro de energía del 5%.


) Aumento de un 3% a un 5% de la capacidad de fabricación de la planta.
) Reducción de los costes de operación de la planta de un 3% a un 5%.
) Mejora del porcentaje de recuperación de productos de un 3% a un 5%.
) Tiempo de retorno de la inversión de uno a cinco años.
) El rendimiento global mejora de un 5% al 35%.
En el futuro, puede afirmarse que la tecnología digital evolucionará integrando total-
mente la información de la planta con un flujo de información continuo entre las diver-
sas áreas de la planta (fabricación, mantenimiento, laboratorio y gestión). La aplicación
de los instrumentos neumáticos y electrónicos analógicos quedará limitada a pequeñas
plantas, ya que frente a la instrumentación digital tienen una peor relación costo/pres-
taciones y no disponen de la facilidad de comunicación entre instrumentos que posee
la señal digital, ni de la facilidad de almacenar y grabar datos históricos de la planta.

14.2 Técnicas de Lyapunov


·
Si en la ecuación de estado general X=A(t)*X+B(t)*u la entrada u = 0, la ecuación de
·
estado pasa a la forma X=A(t)*X.
El estado de equilibrio del sistema definido por la ecuación de estado con entrada cero
·
X=A(t)*X para x = xe es aquél en el que para cualquier valor del tiempo t se cumple
A(t)*xe = 0.
Por ejemplo, una tubería con caudales de entrada y salida x1 y x2 y con constantes de
tiempo respectivas T1 y T2 tiene por ecuación de estado:
. 1 1
x2 = − * x2 + * x1
T1 T2

Si la entrada es 0, pasa a: cuya solución es:

x2 (t) = - x2 (0)* e-(1/T1)*Tiempo

Físicamente la idea correspondería a una tubería con un caudal de entrada que en un


instante deterrminado se hace constante, y con un caudal de salida x2 (o valor de equi-
1 *Tiempo tienda a 0 para cualesquier instante posterior.
librio), tal que el valor de - ------
T1
La estabilidad en el sentido de Lyapunov tiene la siguiente definición:
El estado de equilibrio x· = 0 de x· = A(t)*x es estable en el sentido de Lyapunov, si para
e e
todo tiempo inicial t0 y cualquier número e > 0 existe un d > 0 tan pequeño como se
quiera (que depende de t0 y de e), tal que si x0 < d entonces x < e para todo tiempo pos-
terior t > t0.

320
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 321

Estabilidad y sistema de control

En el ejemplo sencillo anterior diríamos:


El estado de equilibrio x· = A(t)*xe = 0 es estable en el sentido de Lyapunov si, siendo x0 =
-x (0)*e-(1/T1)*t0 < d, entonces -x (0)*e-(1/T1)*t0 < e para todo tiempo posterior t > t0.
Otro ejemplo lo constituye una válvula de control accionada a distancia con entrada x1
= 0, de ecuaciones de estado:
.
x2 = v2
1
v2 = * ( − x2 − 2 * s * C 2 * v2 )
C22
. 0 1 x
x = 1 2s * 2
− 2 −
v2 C2 C 2 v2

Con solución x [(k+1)T]= Φ ( T)*x(kt).


El estado de equilibrio x· = A(t)*xe es estable en el sentido de Lyapunov si, siendo X0 =
Φ ( T 0)*x(T 0) < d. Entonces Φ ( T)*x(T) < e para todo tiempo posterior t > t0.
Como se ve, la definición puede aplicarse a cualquier conjunto de ecuaciones de es-
tado.
La definición puede imaginarse suponiendo dos círculos concéntricos de centro xe y
radios respectivos d = x 0 - x e y e = x(t) -x e en el tiempo inicial, la curva de la variable sale
del primer círculo y termina, bien en el segundo o en el de partida. Si sale del segundo
existe inestabilidad (figura 14.5).

Fig. 14.5 Círculos de estabilidad en el sentido de Liapunov

En otras palabras, el estado X es estable en sentido Lyapunov si las trayectorias que


salen de un entorno E(d) de X no se alejan y permanecen en un entorno S(e) de x, a
medida que crece t.
Se dice que el sistema es asintóticamente estable cuando es estable en el sentido de
Liapunov y además x(t) → 0 cuando t → ∞, es decir, cuando sale del primer círculo y
vuelve al mismo. Así pues, siempre que pueda demostrarse que un sistema sea asintó-
ticamente estable, quedará establecida su estabilidad. El método de Liapunov, en forma

321
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 322

Simulación y control de procesos por ordenador

parecida al ejemplo de energía decreciente de un sistema mecánico que alcanza un esta-


do de equilibrio de energía, establece:
Si un sistema tiene un estado de equilibrio asintóticamente estable, una función de
energía ficticia o función de Lyapunov baja de valor hasta tomar su valor mínimo en el
estado de equilibrio.
La función de Lyapunov se denomina V(x,t) o V(x) y debe satisfacer las siguientes con-
diciones para todo tiempo t > to y toda x próxima al origen:
1 - Existen V(x) o V(x,t) y sus derivadas parciales y son continuas.
2 - V(0) = 0 o bien V(0,t) = 0.
3 - V(x) > 0 o V(x,t) > 0 para x # 0.
dV dx
4 - dv = dV * dx + dV < 0 o * <para
0 x#0
dt dx dt dt dx dt
No existen métodos generales para encontrar una función de Lyapunov, por lo cual es
posible que la función sea asintóticamente estable, pero al no poder encontrar la fun-
ción de Lyapunov, no puede demostrarse su estabilidad. Por otro lado, si el sistema es
inestable no existe función de Lyapunov. La ventaja del método de Lyapunov es que no
es necesario resolver la ecuación de estado para determinar la estabilidad. En el ejem-
plo de la tubería de ecuación de estado x = -(1/T1)*x de solución x (t) = -x(0)*e-(1/T1)*t, con-
sideremos la función V(x) = x2 y veamos si es o no una función de Lyapunov.
1 - V(x) = x2, dV/dx = 2*x son continuas.
2 - V(0)=0.
3 - V(x) > 0 para x # 0.
dV dx  1  2 * x2
4- = 2 * x * = 2 x *  − * x  = − <para
0 todo x # 0.
dt dt  T1  T1
Luego V(x) = x2 es una función de Lyapunov y, por tanto, el sistema es asintóticamente
estable.
Este ejemplo puede ser generalizado a cualquier sistema de ecuaciones de estado.
Tal como se ha dicho antes, el problema es encontrar o generar funciones de Lyapunov.
Para ello utilizaremos las siguientes matrices:
Matriz transpuesta A’ de A es aquella en que los elementos simétricos con relación a la
diagonal se transponen.
Matriz hermética es aquella matriz compleja A que es igual a la matriz conjugada trans-
puesta A*. Por ejemplo:
1 1+ 2 j
1− 2 j 2
Es una matriz hermética, ya que es igual a la conjugada transpuesta de:

322
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 323

Estabilidad y sistema de control

1 1− 2 j
1+ 2 j 2
En el caso de sistemas lineales generales x· = A*x con un único estado de equilibrio en
el origen x = 0 , parta que éste sea asíntoticamente estable, es condición necesaria y sufi-
ciente que, con una matriz hermética Q positiva definida, exista una matriz hermética
positiva definida P, tal que se cumpla:
A* * P + P * A = -Q
En estas condiciones, una función de Lyapunov será V(x) = x* * P * x. Por ejemplo, en
el caso de la válvula de control accionada a distancia.
. 0 1 x
x = 1 2s * 2
− 2 −
v2 C2 C 2 v2

En que el estado de equilibrio es el origen, se elige la función de Lyapunov V(x) = x’ *


P * x y la matriz Q = I (matriz identidad), determinándose P de A’ * P + P * A = -1. Es
decir:
1
0 − 0 1
C 22 p11
*
p12 p11
+
p12
*− 1 2s = − 1 0
2 s p12 p 22 p12 p 22 − 0 −1
1 − C2 2 C2
C2

con lo que deben cumplirse las ecuaciones:


 1   1 
0 * p11 +  − 2 
* p12 + p11 * 0 + p12 *  − 2 
= −1
 C2   C2 
 2s   1 
1 * p11 +  −  * p12 + p12 * 0 + p12 *  − 2 
=0
 C2   C2 
 1   2s 
0 * p12 +  − 2 
* p 22 + p11 * 1 + p12 *  − =0
 C2   C2 
 2s   2s 
1 * p12 +  −  * p 22 + p12 * 1 + p 22 *  −  = −1
 C2   C2 
Que resueltas dan:
1 + C 22 C 22
p11 = s * C 2 + p12 =
4 * s * C2 2

C 22 C 2 * (1 + C 2 2 )
p 21 = p 22 =
2 4* s

323
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 324

Simulación y control de procesos por ordenador

con lo que la matriz hermítica P es:


1 + C 22 C 22
p11 p12 s * C2 +
= 4 * s * C2 2
p12 p 22 C 22 C 2 * (1 + C 2 2 )
− −
2 4s
que debe ser mayor que cero para que el estado de equilibrio en el origen sea asintóti-
camente estable. Aplicando el criterio de Silvestre (una matriz hermética está positiva-
mente definida si todo menor principal de Q es positiva). Así, como:
1 + C 22
s *C2 + >0
4 * s *C2
 1 + C 2 2  C 2 * (1 + C 2 2 ) C 24
 s * C 2 + * − >0
 4 * s * C 2  4*s 4

nos indica que existe estabilidad en el origen.

14.3 Correctores
Cuando el retardo del proceso es grande, tal como ocurre en un intercambiador de
calor de gran capacidad (serpentín muy largo), el control PI o PID clásico no puede rea-
lizar una regulación aceptable debido a que cuando la válvula de control se mueve, los
cambios que introduce en el proceso tardan un tiempo en ser captados por el elemen-
to primario y por lo tanto en el controlador, por lo que éste mueve la válvula a una
nueva posición que es posible que no sea la adecuada para las nuevas condiciones de
servicio que existan en aquel momento.
Utilizando técnicas digitales es posible eliminar el retardo del proceso. Uno de los tipos
de control empleados es el corrector de Smith que utiliza un corrector de tiempo muerto
(fig. 14.6).
La función de transferencia del conjunto proceso + corrector es:
Gs .e−τ s K (1 − e −T2 s ) Gs .e −τ s K K (e −T2 s )
E ( s) = + = + −
1+θ s 1 + T1s 1 + θ s 1 + T1s 1 + T1s
Por identificación del proceso se determinan Gs, θ y τ. y de aquí K = Gs, T1 = θ, T2 = τ,
con lo que: Gs
F (s) =
1+θ s
expresión en la que ha desaparecido el retardo del proceso. El sistema es válido siempre
que el modelo del proceso sea de primer orden con retardo. Como inconveniente cabe
señalar que en el controlador aparece la medida compensada en lugar de la variable real.
El corrector por modelo interno de referencia tiene interés porque fija la trayectoria de la
medida ante un cambio en la consigna, con el objeto de obtener una respuesta en tiem-
po mínimo y sin rebasamiento.

324
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 325

Estabilidad y sistema de control

Fig. 14.6 Corrector de Smith y de modelo de referencia

14.4 Control robusto


Una característica interesante del controlador es la denominada robustez, concepto que
indica la tolerancia o insensibilidad del controlador ante los cambios o perturbaciones
que puedan presentarse en las condiciones de trabajo del proceso. Esencialmente el
control robusto tiene por objetivo el control de plantas de características dinámicas des-
conocidas sometidas a perturbaciones desconocidas (figura 14.7).

Fig. 14.7 Planta apta para control robusto

325
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 326

Simulación y control de procesos por ordenador

La robustez obliga a cuantificar las incertidumbres de los errores del modelo del pro-
ceso debidas al comportamiento no lineal o variable en el tiempo. Si este objetivo se
logra, se dispone de una descripción del proceso en todas las condiciones de operación
posibles, lo que permite diseñar un controlador robusto que va a mantenerse estable y
conseguir que el proceso trabaje dentro de especificaciones.
La robustez es un compromiso entre el objetivo del comportamiento deseado del pro-
ceso y el logro de la estabilidad en condiciones de incertidumbre del proceso. En otras
palabras, la dificultad esencial que presenta es la síntesis de una ley de control que
mantenga dentro de tolerancias limitadas los efectos sobre el proceso de la incertidum-
bre (ruido, perturbaciones, errores del modelo del proceso) del sistema.
Las técnicas que se han desarrollado para el control robusto de la planta abarcan el con-
trol adaptativo (el sistema intenta que la salida y la entrada sean lo más próximas posi-
ble y al mismo tiempo aprende los parámetros del proceso), estimación de los paráme-
tros, aplicación de las técnicas de Lyapunov y el control difuso (fuzzy control).

Fig. 14.8 Robustez

En la figura 14.8 puede verse un ejemplo de gráfico de robustez en el que se aprecia que
la curva retardo-ganancia es la curva límite de estabilidad del proceso, separándola en
dos zonas, la inestable y la estable. Con una cruz se representa el valor original de la
ganancia relativa y el retardo relativo, es decir 1,1. Como se considera aceptable un fac-
tor de seguridad de 2 en la ganancia relativa y el retardo relativo, el programa traza
también un polígono punteado que representa estos límites. Por simple observación del
gráfico del ejemplo, se comprueba que un aumento de la ganancia del 75% conduce a
la inestabilidad, por lo cual cabría utilizar otros métodos de ajuste que proporcionaran
mejores resultados en la estabilidad.

326
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 327

Estabilidad y sistema de control

14.5 Control linealizador global


En procesos altamente no lineales, el control adaptativo no puede captar de forma sufi-
cientemente rápida los cambios de trayectoria del proceso. Pueden utilizarse controla-
dores no lineales especiales, controladores por redes neuronales y controladores no
lineales de modelo mecanicista basados en conceptos de geometría diferencial. Estos
últimos emplean series de Taylor para linealizar los modelos no lineales antes de apli-
car los controladores de modelo lineal. En la figura 14.9 se muestra este tipo de control.

Fig. 14.9 Controlador linealizador global

14.6 Control estadístico del proceso (SPC)


El control estadístico del proceso monitoriza el comportamiento de las variables aleatorias
que pueden conducir a problemas de control o a variaciones en la calidad de los pro-
ductos fabricados. La filosofía del control estadístico nace en 1931 cuando Walter A.
Shewhart estableció el criterio "Las desviaciones fuera de límites de un proceso que
sigue una rutina normal de fabricación, indican que el proceso ha quedado afectado
gravemente y que ya no es económico hasta que no se elimine la causa de la anomalía.
La fijación de los límites de control viene dada por las fórmulas:
Límite superior de control de la variable (UCLx) = X+A2·R
Límite inferior de control de la variable (LCLx) = X-A2·R
Límite superior de control del margen de aviso (UCLτ) = D4·R
Límite inferior de control del margen de aviso (LCLτ) = D3·R
donde:
X = Promedio subgrupos de la variable.
R = promedio subgrupos de margen de la variable.
A y D son constantes cuyo valor depende del tamaño del subgrupo y que se
determinan estadísticamente.
El comportamiento anormal del proceso puede verse por distintas tendencias (desvia-
ción en un sentido o recurrente, estratificación de los puntos, etc.) del proceso que se
muestran en intervalos de tirmpo regulares y que pueden verse mediante herramien-
tas gráficas.

327
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 328

Simulación y control de procesos por ordenador

Los gráficos de Shewhart representan una característica del proceso con relación al
tiempo y trabajan con la media de la característica y con límites de aviso y de control.
Si el gráfico adopta una distribución normal, la probabilidad de que un valor se en-
cuentre fuera de los límites de aviso es del 2,5% y que supere los límites de control
del 0,1%.
Los gráficos de Shewhart detectan las situaciones de la variable de proceso fuera del
control estadístico mediante las reglas:
) Un punto que supera los límites de control del proceso.
) 2 puntos consecutivos que superen los límites de control del proceso, siendo la
probabilidad de que ocurra 0,025 * 0,025 * 100 = 0,06%
) 7 o mas puntos consecutivos que estén a un lado de la media, siendo la probabili-
dad de 0,57 * 100 = 0,8%. Indica que se ha desplazado la media del proceso.
) 5 o 6 puntos consecutivos situados en la misma dirección, lo que es indicación de
una tendencia.
Los gráficos de suma acumulativa (CuSum) representan la suma algebraica de varias
características del proceso con relación al tiempo. Estas características pueden ser:
) La variable directa.
) La diferencia entre la variable y un objetivo ((Xi – Xobjetivo)
) La variable menos la media (Xi – µ)
) Diferencia entre variables sucesivas (Xi – Xi-1).
Estos gráficos son excelentes para detectar cambios en la media de la variable. De este
modo, cuando se presenta una tendencia clara de la variable, el gráfico indica un movi-
miento muy pronunciado y señala el tiempo en que ocurrió.
En la figura 14.10 pueden verse los gráficos de Shewhart y Suma acumulativa.
Los beneficios que proporciona este sistema abarcan: evitar paros de la planta, impedir
dentro de lo posible que las variables salgan fuera de control, asistir al Departamento
de Mantenimiento en los programas de mantenimiento preventivo y proporcionar al
cliente registros o certificados de la bondad de los productos que adquiere.

14.7 Control multivariable


Un proceso es multivariable cuando posee varias entradas y varias salidas importantes
que se influyen mutuamente, es decir, si cualquier cambio en una de las entradas pro-
voca una variación en varias señales de salida.
Un ejemplo simple lo constituye un mezclador de agua caliente y agua fría, donde al
variar el caudal de agua caliente cambia la temperatura y el caudal de salida, y al variar
el caudal de agua fría cambia también la temperatura y el caudal de salida. Se instalan
dos controladores de caudal, uno de agua caliente y el otro de agua fría, y se obtiene el
diagrama de bloques de la figura 14.11.

328
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 329

Estabilidad y sistema de control

Fig. 14.10 Control en Base Estadística (gráficos de Shewhart y Suma acumulativa)

Fig. 14.11 Control multivariable

329
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 330

Simulación y control de procesos por ordenador

Un caso más complejo lo constituye una columna de destilación, donde una variación
del caudal de reflujo provoca cambios en los productos de cabeza y de fondo, mientras
que cambios en el calor añadido en fondo dan lugar asimismo a variaciones en los pro-
ductos de cabeza y de fondo. En la figura 14.12 puede verse la columna de destilación
y una comparación entre el control distribuido y el multivariable en el mantenimiento
de las especificaciones de un producto.

Fig. 14.12 Columna destilación y comparación control distribuido y multivariable.


Fuente: GE Industrial Systems

Los lazos del ejemplo no pueden controlarse con un controlador clásico PID, de modo
que es necesario acudir a lo que se denomina control multivariable. Su objetivo es com-
pensar las perturbaciones en las variables y desacoplar las mismas, es decir, si por ejem-
plo cambia el punto de consigna de una de las variables, sólo ésta debe quedar afecta-
da, sin modificar o perturbar las restantes. En la figura 14.13 puede verse el diagrama
de bloques de un control multivariable dotado de desacoplador.

330
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 331

Estabilidad y sistema de control

Para buscar la función de transferencia del desacoplador debe cumplirse:


) Una variación en la señal de entrada I1 no debe influir en O2.
) La influencia de la transmitancia H21(s) sobre O2 se compensa mediante la función
de transferencia D21(s) que enlaza U2(s) con I1(s).
) Una variación en la señal de entrada I2(s) no debe provocar ninguna reacción en O1.

Fig. 14.13 Control multivariable con desacoplador

Los parámetros pueden identificarse por cálculo de las funciones de transferencia, o


bien del modo siguiente: se mantiene I2(s) constante y se varía I1(s) y se registra el valor
de O1 de donde se deducen los parámetros del proceso + desacoplador 1. Análoga-
mente se procede con la entrada I1(s).

14.8 Sistemas óptimos de control


Cuando se diseña un sistema de control se establece que el mismo cumpla con las espe-
cificaciones de funcionamiento exigidas. Estas pueden obedecer a varios criterios; por
ejemplo, una respuesta temporal determinada (ante un impulso, ante un escalón, etc.),o
bien una desviación específica entre la variable y su punto de consigna, es decir, un
error que cumple condiciones determinadas.
En la primera parte de la obra se han expuesto sistemas prácticos de ajuste de contro-
ladores a un proceso, hablándose de estabilidad relativa cuando el cociente de amorti-
guamiento es de 1:4 (relación de amplitud de ondas sucesivas de la respuesta), e indi-

331
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 332

Simulación y control de procesos por ordenador

cándose que esta relación era un compromiso entre la rapidez de la vuelta a la norma-
lidad y el área mínima absoluta encerrada por la curva de respuesta con relación al
punto de consigna.
Examinados desde un punto de vista general, los criterios de error (consigna-variable)
que pueden seguirse son:

Estudiaremos el error cuadrático en un control de realimentación (figura 14.14).

Fig. 14.14 Control de realimentación óptimo


·
El sistema está definido por la ecuación de estado x=Ax+Bu. La expresión que define
el llamado índice de funcionamiento cuadrático (performance index), que equivale al
error cuadrático más la energía consumida por el control, es:
t
1
2
1 1
[
J = x T (t1) * Sx(t1) + ∫ x T (t )Q(t ).x(t )dt + u T (t ) R(t )u (t )dt
2 t0
]
Con: t0 < t < t1
S = Matriz simétrica de n*n semidefinida positiva
Q(t) = Matriz simétrica semidefinida positiva de n*n que varía con el tiempo y
que debe ser definida por el usuario.
R( t) = Matriz simétrica de m*m definida positiva que refleja el coste del control,
es decir la energía utilizada, y que debe ser definida por el usuario.
Añadiendo la expresión p T (t ) *  Ax + Bu − x  = 0 siendo p(t) una función n–vectorial
.

 
del tiempo llamada multiplicador de Lagrange, resulta:
t
1 T 1 1 .

J= x (t1) * Sx(t1) + ∫  x T (t )Q(t ).x(t ) + p T * Ax + p T * Bu − p T * x  dt
2 2 t0  

que puede descomponerse en tres sumandos J1, J2 y J3, que deben ser mínimos para
que J sea mínimo.

[
J 1 = (1 / 2) * x T (t1) * Sx (t1) − x T (t1) * p (t1) + x T (t 0 ) * p (t 0 ) ]
t1
1  T dp 
J2 = ∫ 
2 t0 
x (t )Q(t ).x(t ) + x T Ap + x T *  dt
dt 

332
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 333

Estabilidad y sistema de control

J3 =
11 T
2 t∫0
[
u Ru + u T B T p dt ]
Para que J1, J2, J3 sean mínimos deben ser nulas sus derivadas respecto a x(t1), con lo
cual:
p (t1) = S * x opt (t1)
dp / dt = − R −1 * B T * p
u opt = − R −1 B T p

La última ecuación es la que nos indica el control óptimo. De estas ecuaciones transfor-
madas puede determinarse p, a partir de las ecuaciones de estado.
Por ejemplo, en el caso del control de presión de una tubería, suponiendo que la trans-
mitancia del transmisor de presión y de la válvula de control es la unidad, la ecuación
de estado del sistema queda reducida a:
. 1 1
x=− * x + *u
T1 T1

siendo T1 la constante de tiempo de la tubería.


Si consideramos que el índice de funcionamiento cuadrático es:
t
1 1  2 u2 
2 t∫0 
J = x 2 (t1) +  x + dt
4 

Con T = 1, S = 2, A = -1/T1, B = 1/T1, R = 1/4, Q = 1. Y si la constante de tiempo de la tube-


ría suponemos que es T1 = 1 minuto con objeto de simplificar los cálculos que siguen,
resultan como ecuaciones de estado para la determinación de p:

p (t1) = 2 * x opt (t1)


. 1 1
x = − * x + *u
T1 T1
Y resolviendo esta ecuación de estado con el ordenador, o bien manualmente resulta,
realizando los cálculos a mano:
1 −4
A=
−1 −1
φ1 = I + AT φ 2 = I + AT 2 + A 2 * (T 2 / 2!)
φ 3 = I + AT 2 + A 2 * (T 2 / 2!) + A3 * (T 3 / 3!)

Y estimando suficiente la convergencia de φ ( 3):


1,05 0
φ (3) =
0 1,05

333
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 334

Simulación y control de procesos por ordenador

Y así:
.
x opt = 1,05 0 * x (0) = 0,525 + 1,05 * p(0)
opt

p 0 1,05 p(0) 1,05 * p(0)


Y de aquí:
x opt (1) = 0,525 + 1,05 * 2 * x opt (0) = 0,525 + 2,1 * x opt (0)
p (1) = 1,05 + 4,2 * x opt (0)
Con lo cual:

u opt = − R −1 * B T * p = −4,2 − 16,8 * x opt (0)

es decir, que esta es la salida óptima que debe dar el controlador de ganancia k, y al
mismo tiempo es la entrada óptima al sistema en el instante 1.
Para determinar el valor de K (ganancia del controlador de realimentación) que varía
con el tiempo, debe hacerse mínimo el índice de funcionamiento J. Sin embargo, existe
otro método para deducir directamente la ganancia K(t) (matriz). Llamando p(t) =
P(t)*xopt(t), siendo P(t) una matriz hermitiana de n *n a calcular, resulta:

u opt = − R −1 * B T * P(t ) * x opt = K * x opt


Es decir: K = − R −1 * B T * P
De las ecuaciones de estado de determinación de p resulta:
. .
P* x opt + P * x opt = −Q * x opt − AT * P(t ) * x opt
. .
P* x opt + P * ( A x opt − BR −1 B T P * x opt ) = −Q * x opt − AT * P * x opt
y de aquí:
.
− P = Q + AT * P + PA − PBR −1 B T P

que es la ecuación matricial de Ricati que permite determinar el valor de la matriz P.


Esta ecuación puede resolverse en un ordenador, o bien analíticamente en los casos
sencillos. Así, en el ejemplo de control de presión anterior, se verifica:
.
P = 1− 2* P − 4* P2
cuya resolución analítica nos da:
dP 0,9  P(t ) − 0,3 P(t ) + 0,8 
t − t1 = = *  ln − 
4 * ( P − 0,3) * ( P + 0,8) 8  P(t1) − 0,3 P(t1) + 0,8 

y como P(t1) = 2, haciendo operaciones resulta:

0,3 + 0,48 * e 8,8*( t −1)


P (t ) =
1 − 0,6 * e 8,8*( t −1)

334
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 335

Estabilidad y sistema de control

En los procesos industriales los sistemas de lazo cerrado son con frecuencia invarian-
tes en el tiempo, con t1→ ∞, A, B, R y Q constantes y S = 0 con un bloque realimentador
constante K y convirtiéndose entonces la ecuación matricial de Ricatti en:
.
0 = Q + AT * P + P * A − P * B * R −1 B T P

Siendo P(t0) el límite de P cuando t1→ , o sea que es un estado de equilibrio. El valor

8
de K se encuentra resolviendo la ecuación de Ricatti correspondiente.
En el ejemplo del control de presión anterior se verifica: 0 = 1- 2* P - 4* p 2 .
Que resuelta da: L = - R -1*B T*P =- 4* 1* 0, 309=- 1, 236.

14.9 Sistemas de control adaptativo


El control adaptativo es el sistema de control que ajusta automáticamente sus parámetros
para compensar los cambios que puedan producirse en el proceso. De este modo, inten-
ta resolver el control de procesos no lineales que el controlador clásico PID no resuel-
ve satisfactoriamente. Este ajuste típico de tanteo, curva de respuesta, ganancia límite,
etc. propio del controlador PID sería necesario efectuarlo con una cierta periodicidad
para que el control de la planta fuera óptimo. Esto ocurre en procesos donde las condi-
ciones de operación cambian con mucha frecuencia.
El sistema de control adaptativo ajusta automáticamente sus parámetros para compen-
sar los cambios que puedan producirse en el proceso, es decir, el sistema de control es
«adaptado» al proceso. El control adaptativo permite, en los procesos no lineales tal
como el de pH, ajustar las acciones PID a los parámetros del proceso cuando éste cam-
bia con frecuencia de condiciones de trabajo. Los sistemas adaptativos son básicamen-
te no lineales. Este ajuste se calcula mediante un modelo del proceso que se compara
con el proceso real, obteniéndose una diferencia o error entre las características de la
respuesta del modelo y las del proceso real. Esta señal de error es introducida en el
algoritmo de control adaptativo, el cual da una señal de salida que ajusta ya los pará-
metros del controlador (figura 14.15).

Fig. 14.15 Diagrama del control adaptativo

335
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 336

Simulación y control de procesos por ordenador

El sistema que forma la planta puede representarse por la ecuación de estado:


·
x p = Ax p +B u+D d
En la que D es una matriz constante y d es un vector de perturbaciones de p*1 elemen-
tos y consideando que el controlador es de realimentación:
u = K*x p
que sustituida en la planta da:
·
x· p = A p x p + D d con A p =A + B K
Por otro lado, la ecuación del modelo es:
x· m =A m x m +D m d
y el error entre el modelo y la planta es: e =x m - x p que debe hacerse mínimo mediante
el ajuste de K.
Así pues: e· = A + e (A -A )* x +( D - D ) * d
m m p p m p

Se elige una función de Lyapunov que tenga una forma cuadrática definida, Con V(e)=
eT * P * e + término cuadrático(P,sij, vij) , sij, vij las ganancias del control adaptativo. P co-
rresponde a la matriz hermítica positiva definida incluida en la ecuación matricial de
Lyapunov (condición necesaria y suficiente para que el estado de equilibrio en el ori-
gen sea asintóticamente estable), y así debe satisfacerse:
A’m* P+P * A m =- Q
Si escogemos Q = I (matriz identidad), la determinación de P tiene lugar en forma aná-
loga a la que se describió en el ejemplo de la válvula de control accionada a distancia
en el apartado 14.2.
A continuación, se aplica el método directo de Lyapunov para asegurar que la función
V escogida es una función de Lyapunov. Y así:
. n n 1 .  n n  1 . 
V = −e T * e + 2∑ ∑  s a ij + x pj * e T * pi  * aij + 2∑ ∑  v l ij + d j * e T * pi  * l ij
 
i =1 j =1  ij  i =1 j =1  ij 
Para que V sea negativa semidefinida, basta que los términos entre paréntesis sean
nulos:
1 . 
 a ij + x pj * e T * pi  * aij = 0
s 
 ij 
 1 . 
 l ij + d j * e T * pi  * lij = 0
v 
 ij 

De estas ecuaciones se deducen los valores de los algoritmos del control adaptativo.

336
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 337

Estabilidad y sistema de control

14.10 Control predictivo


El control predictivo está basado en el uso de modelos dinámicos del proceso estableci-
dos de tal forma que permiten anticiparse y predecir las situaciones futuras del proce-
so, con el objeto de utilizar esta información para modificar la estrategia actual del con-
trol. En cierta forma, se comporta igual que un operario con experiencia que a la vista
de los datos pasados y los actuales, actúa sobre el elemento final de control con el fin
de obtener valores futuros de la variable controlada.
El control predictivo aparece en la década de los años 80, y el controlador trabaja como
un inverso del modelo del proceso (modelo lineal) siendo capaz, por su robustez, de
solucionar el control de la mayoría de los procesos no lineales.

Fig. 14.16 Representación gráfica del control predictivo

Fig. 14.17 Curvas componentes del control predictivo

Siendo la señal de salida general de un proceso en el instante K de:


n
y (k ) = ∑ ai.U (k − i )
i =1

337
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 338

Simulación y control de procesos por ordenador

La salida prevista en el instante futuro k + m para una entrada impulsional es:


k k +m

y (k + m) = ∑ ai.U (k − i ) + ∑ ai.U (k + m − i )
i =1 i =1

La interpretación gráfica puede verse en la figura 14.16, y las curvas correspondientes


en la figura 14.17.
Para simplificar el estudio consideramos que los valores de u(k) desde el instante k
hasta el instante k + m son constantes e iguales a Uf. De este modo, la señal de salida
prevista de y(k + m) con relación a la y(k) es:
 k + m  n k +m
y  ∑
= ai.U ( k − i ) + ∑ ai.U f
 k  i =1 i =1

El objetivo es que la predicción en el instante k + m sea igual al valor deseado. Luego


Uf debe satisfacer la condición:
 k

 yd ( k + m ) − ∑ ai.u (k − i ) 
Uf =  i =1 
∑ aj
La ley de control, generará la predicción yp [(k + j)/k] y corresponderá a los valores de
la señal de salida del controlador que hagan mínima la función objetivo del error de
predicción:

∑ [yd (k + j ) − yp (k + j )]
2

a lo largo del horizonte de predicción.


Una vez calculada la predicción, en el siguiente intervalo de muestreo, el valor real
diferirá normalmente de la predicción establecida, con lo que hay que realizar una
nueva corrección en el horizonte de predicción. Una vez efectuada la corrección se cal-
cula nuevamente la ley de control y se procede repetidamente con las secuencias indi-
cadas.
El sistema, pues, procede de modo dinámico realizando los cálculos anteriores en todo
el horizonte de predicción.
En la figura 14.18 puede verse el diagrama de bloques del control predictivo. Sin duda
la aplicación del control predictivo comporta unos recursos humanos y tecnológicos
importantes por lo que será necesario aplicar criterios de evaluación que permitan fun-
damentar la decisión en su aplicación.
Entre los mismos figuran:
) Control complejo con perturbaciones considerables y dinámica cambiante.
) Proceso altamente no lineal, multivariable y con restricciones.
) Retardos importantes.
) Robustez deseable.

338
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 339

Estabilidad y sistema de control

Fig. 14.18 Diagrama de bloques del control predictivo

14.11 Sistemas expertos


Los sistemas expertos se integran en el sistema de control de la planta para asistir al ope-
rador en la detección y en la solución de los casos en que el proceso sale fuera de con-
trol. El sistema experto contiene una base de conocimientos extraída de expertos, de tal
forma que detecta y diagnostica los problemas potenciales que pueden presentarse en
el control de procesos de una planta industrial, pudiendo tomar decisiones inteligentes
y justificar su mecanismo de razonamiento de una forma inteligible.
En la figura 14.19 puede verse la arquitectura de un sistema experto on-line.
La elaboración del "paquete experto" es laboriosa. Es necesario adquirir el conocimien-
to que del proceso disponen los operadores de la planta y los ingenieros proyectistas,
para incorporarlo al sistema experto. Este conocimiento se basa fundamentalmente en
las señales de alarma que el operador humano capta antes de presentarse las situacio-
nes anómalas en el proceso que dan lugar a toda clase de fenómenos perjudiciales como
son: paro de la planta, destrucción del producto, explosiones, desprendimientos de
productos peligrosos, etc.
El diseño de los diagramas de flujo y las configuraciones del control de la planta (pre-
sentaciones visuales, procesos simulados) requieren trabajar con un lenguaje de pro-
gramación que permita al proyectista una gran versatilidad. Se utilizan las estaciones
de trabajo en LISP (o en PROLOG) complementadas por herramientas de cálculo nu-
mérico que utilicen FORTRAN, PASCAL o C. De este modo, estas estaciones permiten
la obtención del conocimiento cualitativo y cuantitativo que exige el sistema experto.
En general, un sistema experto dispone de:
a) Base de conocimientos del proceso que puede estar representada de varias formas: re-
glas de producción, lógica de predicados, redes semánticas, marcos y restricciones.

339
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 340

Simulación y control de procesos por ordenador

b) Un motor de inferencia que controla y usa las bases del conocimiento del proceso.
c) Sistema de explicación que lista las reglas que se utilizaron durante la ejecución,

Fig. 14.19 Componentes del sistema experto

Entre las aplicaciones típicas que estos sistema expertos pueden realizar se incluyen el
control de nivel del fondo y la optimización del rendimiento en destilado de las colum-
nas de destilación. El beneficio que el sistema experto aporta a la planta es la reducción
de los tiempos de paro y, lo que es más importante, la disminución de la probabilidad
de que el funcionamiento anómalo de la planta conduzca a situaciones catastróficas.

14.12 Control por redes neuronales


Es una forma de control que imita el funcionamiento de las neuronas del sistema ner-
vioso. La red neuronal puede aprender y ser un sistema experto que extraiga datos
automáticamente sin precisar de reglas. La forman un conjunto de elementos, las neu-
ronas, que están conectadas entre sí en una forma semejante a la del cerebro humano.
La señal procedente de las diversas entradas o “dendritas” genera excitación en la sali-
da o “axón” de la neurona, siempre que se sobrepase un determinado umbral de carác-
ter bioquímico. Cada conexión neuronal (sinapsis) entre las salidas de unas neuronas
(axones) y las entradas de otras neuronas (dendritas), se caracteriza por un valor lla-
mado peso que puede ser excitador (positivo) o inhibidor (negativo) del elemento del
proceso.

340
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 341

Estabilidad y sistema de control

Cada neurona suma los pesos de las demás neuronas que la estimulan y el resultado
de la suma recibe el nombre de función de activación (funciones sigmoide unipolar y
bipolar, tangentes hiperbólica y lineal). Cuando los ajustes de pesos se realizan desde
las capas precedentes, se usa el término propagación de retroceso. Las redes neuronales
pueden distribuirse en capas (de entrada, ocultas y de salida) conectadas entre sí hacia
adelante o en conexionado total (cada salida de una capa pasa a través de cada nodo en
la siguiente capa).
El algoritmo de retropropagación del error presenta repetidamente los datos de entra-
da a la red neuronal. En cada presentación, la salida de la red neuronal se compara con
la salida deseada y el posible error se realimenta a la red ajustando los pesos de las neu-
ronas, de tal modo que el error disminuye en cada iteración y el modelo neuronal se
aproxima cada vez más a la salida deseada. Este proceso se denomina “aprendizaje”.
En la figuras 14.20a y 14.20b puede verse un esquema de la red neuronal y el circuito
de retropropagación que permite el aprendizaje.
Un sistema que se presta al control por redes neuronales es el control de pH. Es difícil
tener un buen control por retroalimentación con un controlador PID, ya que el proceso
es altamente no lineal. Mediante el modelo predictivo del proceso y el del controlador,
el módulo de aprendizaje es capaz de llegar al punto de consigna en varias pruebas.

Fig. 14.20a Esquema de una red neuronal

341
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 342

Simulación y control de procesos por ordenador

Fig. 14.20b Esquema de una red neuronal

14.13 Control por lógica difusa


La lógica difusa fue desarrollada por Zadeh en 1965 y es adecuada para el control de
procesos no lineales y con un comportamiento variable en el tiempo.
Mientras en el control digital la señal de salida es un conjunto de bits con dos valores
o señales posibles, SI o NO, TODO o NADA, 1 o 0, la lógica difusa o borrosa utiliza ope-
radores para describir un sistema mediante reglas. Por ejemplo, aplicada al control de
temperatura de un producto, afirmaría “el producto está un poco caliente”, o “algo frío”,
o “muy caliente” o “justo lo caliente que deseamos”. La lógica difusa hace mucho más
humano el control, pues tiene muchos puntos en contacto con el lenguaje corriente.
Un simple instrumento muy utilizado en la industria que puede considerarse de lógi-
ca difusa es el termostato. Trabaja con dos reglas de decisión (IF (SI) - THEN (ENTON-
CES), que pertenecen a un modelo linguístico de proposición difusa:
(1) SI la temperatura es inferior al punto de consigna ENTONCES da calor
(IF temperatura < consigna THEN contacto cerrado (da calor).
(2) SI la temperatura es superior al punto de consigna ENTONCES no da
calor (IF temperatura > consigna THEN contacto abierto (no da calor).

Fig. 14.21 Control por lógica difusa del aire acondicionado de una habitación

342
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 343

Estabilidad y sistema de control

En la figura 14.21 puede verse un ejemplo de control por lógica difusa, la relación que
existe entre la temperatura de una habitación y las velocidades del motor del ventila-
dor de aire acondicionado, considerando constante su temperatura.
Un algoritmo de lógica difusa que describe la respuesta de un controlador PID es:
IF y(t) es A AND y(t) es B AND u(t) es C THEN ÿ(t) es D
con
u(t) = señal de entrada;
y(t) = señal de salida;
y(t) = señal de salida derivada;
ÿ(t) = señal de salida de segunda derivada;
A, B, C y D = reglas de lógica difusa de funciones µ (Y), µ (Y), µ (U), µ (Ÿ);
.
donde: Y, Y , U, Ÿ son los universos de las variables.
La regla de lógica difusa es:
R=A x B xCxD
µ (Y, Y, U, Y) = min {µ (Y), µ (Y), µ (U) µ, (Y)}
Y componiendo las dos expresiones resulta, como salida del modelo:
y’ (t + T) = R° (u’(t) x y’(t) x y’ (t))
El control por lógica difusa, aunque está siendo utilizado desde hace 20 años, todavía
no está reconocido totalmente en algunos sectores del control industrial. Existe un área
de solape entre el control por lógica difusa y los circuitos neuronales.

14.14 Resumen y conclusiones


En este capítulo, el lector se habrá dado cuenta de las dificultades que entrañan las téc-
nicas modernas de control en la estabilidad de los sistemas. Los ejemplos presentados
pretenden ser sólo casos muy sencillos que ilustren el inicio del camino a seguir.
Realmente, antes de aplicar estas técnicas es necesario tener muy claro lo que se preten-
de conseguir, es decir, el objetivo a alcanzar en la planta, para así simular el proceso con
las simplificaciones convenientes y obtener un modelo del mismo. Este es un trabajo
muy laborioso, que cada vez más es multidisciplinario, es decir, requiere la colabora-
ción de técnicos con experiencia en diversas materias: en el propio proceso, en mate-
máticas, en informática, etc.
En el capítulo siguiente el lector podrá examinar la simulación de diversos procesos,
uno de los cuales, como más representativo, es la columna de destilación en la que figu-
ran tres programas de control: el clásico control de retroalimentación, el control de pre-
alimentación (feedforward), y el control D.D.C. A estos procesos podrían aplicárseles las
técnicas expuestas en este capítulo, pero, ello requeriría un estudio muy amplio y labo-
rioso que sale fuera del alcance de esta obra.

343
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 344

Simulación y control de procesos por ordenador

Ejercicios

14.1 Escribir las ecuaciones del estado de equilibrio del control de presión en una
tubería.
14.2 Demostrar que la válvula de control accionada a distancia es asintóticamente
estable.
14.3 Tantear, ensayando una función de Lyapunov, si el estado de equilibrio del con-
trol de presión de una tubería es asintóticamente estable.
14.4 Demostrar, utilizando una matriz hermítica, en qué condiciones es asintótica-
mente estable el estado de equilibrio del control de presión de una tubería, con
los siguientes datos: c2=0,02, s=0,7, T1 =0,01, T2 =0,003.
14.5 En el sistema de ecuación de estado x = -x-u encontrar un controlador de retroa-
limentación óptimo que haga mínimo el criterio de funcionamiento
J=(1/2) : x 2 + (1/2)·r, (3. x 2 + u2)dt
14.6 En el sistema anterior de ecuación de estado
t
11
J=
2 t∫0
(3 * x 2 + u 2 )dt
14.7 En el control adaptativo escribir la expresión de la ley de control prealimentación
-retroalimentación de la señal de entrada.
14.8 Escribir la expresión del control adaptativo del punto de consigna de losc ontro-
ladoresd e una planta en que el control es S .P. C. (control de puntos de consigna).

344
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 345

Capítulo 15

Simulación de procesos
En este capítulo se estudiará la simulación y el control de varios procesos industriales
típicos, que para el lector pueden ser el punto de partida en la simulación de otros pro-
cesos distintos o más complicados.

15.1 Secadero tipo «flash» o de evaporación rápida


Un secadero flash o de evaporación rápida consiste en un tubo vertical por el que circu-
la el producto en forma de polvo húmedo a secar y el aire o los gases calientes proce-
dentes, bien de un calentador de aire o bien de la mezcla directa de aire y de los gases
de la combustión de fuel-oil o de gas natural. Durante el corto tiempo de recorrido de
las partículas húmedas del producto (de 2 a 10 segundos) se separa el agua que las
embebe. En general, el tiempo necesario para el secado se encuentra por métodos ana-
líticos y empíricos y depende del grado de secado requerido (realmente sólo se elimi-
na la humedad grosera). Establecido este tiempo, se fija la longitud del secadero. Su
diámetro dependerá de la capacidad de producción requerida. En la figura 15.1 puede
verse este tipo de secadero. Veamos cuáles serán las ecuaciones correspondientes.
a) Velocidad de secado de las partículas
Debido a la brevedad del tiempo de estancia del sólido pulverulento húmedo en el
secadero y a las temperaturas medias de los gases de la combustión, el secado es a
«velocidad constante». Los gases calientes transmiten su calor a la superficie hú-
meda y fría del sólido, por lo que se eleva la temperatura del agua de la superficie

y se evapora tomando su calor latente del gas caliente (condiciones adiabáticas), es


decir, la vaporización se efectúa a la temperatura de saturación adiabática. ←

Fig. 15.1 Secadero flash (evaporación instántanea). Fuente: GEA Barr-Rosin

345
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 346

Simulación y control de procesos por ordenador

Suponiendo que la transferencia de calor es por convección, la temperatura del


sólido está a la temperatura del bulbo húmedo de la mezcla del aire y de los gases
de combustión.
La velocidad de secado corresponde a la ecuación de transferencia de calor, que es:

dMP h
= * (TG − TH
W))
dt LA
siendo
MP = contenido de agua del sólido, kg/kg sólido seco;
h = coeficiente de transferencia de calor kcal/m2-°C;
TG = temperatura media de los gases, °C;
TW = temperatura húmeda del sólido o temperatura del bulbo húmedo que es
una constante, °C;
LA = calor latente de vaporización del agua del sólido a la temperatura TM
kcal/kg.
El coeficiente de transferencia de calor h depende del tamaño y forma de las partí-
culas, de la turbulencia y de la velocidad del aire. Una expresión experimental,
válida para una temperatura de los gases de 45° a 150° C y para un flujo de gases
perpendicular a la superficie de la partícula es:
0, 37
 VA * 3600 
h= 
 VG 
Siendo:
VA = velocidad de los gases en m/s;
VG = volumen específico de los gases en m3/kg, que es:

 1 MG 
VG =  +  * R * (273 + TG )
 29 18 
con:
R = constante de los gases perfectos = 0,082.
De todos modos, siempre es preferible llevar a cabo mediciones experimentales de
la velocidad de secado del producto en cuestión con el tamaño y fragmentación
que tendrá después en la realidad.
Linealizando la expresión obtenida por la sustitución de h en la expresión de la
velocidad de secado resulta:

  3600 *VA 
−0, 63
− 3600 *VA * F 3 TG − TW 1  3600 *VA 
0 , 37

MP = 0,37 *   * 2
* + *  
  F4  F4 LA LA  F 4  

346
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 347

Simulación de procesos

Siendo:
 1 MG   1 MG 
F3 =  + * R F 4 = F 3 * ( 273 + TG ) * R + * R
 29 18   29 18 
b) Balance energético
La variación de entalpía del secadero equivale a:
d ( LS * A * (1 / VG ) * H d [(CF + MP ) * TW * MP ]
+ =
dt dt
= WA * (0,312 + 0,358 * MA)* TG + WF * (CF + MF )* TF −
− WO * (CF + MO )* TO − WE * (0,312 + 0,358 * YE )* TE =
Siendo:
LS = longitud del secadero;
A = secciónd el tubo del secadero;
CF = calor específico del sólido,
TW = temperatura del bulbo húmedo;
MG = humedad media del gas (kg/kg) referida al gas seco,
TF = temperatura del sólido en la alimentación;
WF, MF = caudal (kg/s) y humedad (kg/kg) del sólido seco en la entrada;
WO, MO = caudal y humedad del sólido seco a la salida;
WA, MA = caudal y humedad gases secos a la entrada,
WE, ME = caudal y humedad de los gases secos a la salida;
H = entalpía = (0,24 + 0,46* MG)* TG + 597,2 * MG.
De este modo, se obtienen las ecuaciones de balance energético que linealizadas
dan:
TG ' = (1 / FS ) * (WA + (0,24 + 0,46 * MA)* TA + (F1 − TW * F 6 * TG )*WF +
+ (2 * TF * WF − 2 * TW * WF )* MP − TW * F 6 * WF * TG ]
siendo:
F1 = TF * (CF + 2 * MP − MO )− TW * (CF − 2 * MP + MF )

[ ]
F 5 = 1 /( F 4) 2 * [LS * A * (0,24 + 0,46 * MG )* F 3 * (273 − 597,2 * MG )]

F 6 = F 7 + F8

[
F 7 = −0,37 * (3600 * VA / F 4)
−0 , 63
]* 3600 * VA * F 3 * (TG − TW )/[(F 4 )* LA]
2

F 8 = [(3600 * VA / F 4 )0,37 ]/ LA

347
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 348

Simulación y control de procesos por ordenador

Consideraremos como variables de estado:


MP = humedad media del sólido;
TG = temperatura media de los gases.
y como variables de entrada:
T A = temperatura de los gases a la entrada;
WF = caudal en kg/s del sólido seco.
Nótese que las variables de estado escogidas son valores medios de la humedad y
temperatura existentes en el tubo de secado. En una instalación industrial de este
tipo, ante la dificultad de medir la humedad del sólido a la salida del secadero (no
existen instrumentos lo suficientemente rápidos) se controla tomando como varia-
ble la temperatura a la salida, pues se infiere que está ligada a la humedad del pro-
ducto. El lector observará que en el programa, en la ecuación del controlador incre-
mental se ha considerado la temperatura media de los gases como variable X(2, 1)
y la señal de salida U(1,1) como la temperatura de los gases de entrada, y realmen-
te es así ya que en un secadero real la válvula de control se sitúa en el quemador
de combustible. En la figura 15.2 puede verse el programa de resolución de las
ecuaciones de estado y un ejemplo ilustrativo.

Programa de secadero flash (evaporación rápida)

Option Explicit
Private Sub SecaderoFlashVEstado_Click() 'cmdCreateTable_Click()
Dim T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, sigma As Single
Dim n As Integer, C2V As Single, S As Single
Dim RDP As Single, OCV As Single, T1TUB As Single
Dim T2TRANS As Single, KP As Single, TR As Single, TD As Single
Dim DeltaTempGases As Single, DeltaCaudalSolido As Single
Dim A As Single, WA As Single, VA As Single, TEF As Single, CF As Single
Dim MF As Single, MO As Single, TA As Single, WF As Single, MP As Single, TG As
Single
Dim j As Integer, i As Integer, k As Integer, L As Integer, Contador As Integer
Dim p As Single, V As Single, H As Integer
Dim R As Single, LA As Single, TW As Single, LS As Single, MAH As Single, MG As
Single
Dim F1 As Single, F2 As Single, F3 As Single, F4 As Single, F5 As Single
Dim F6 As Single, F7 As Single, F8 As Single
Dim Z1 As Single, Z2 As Single
Dim ID(3, 3), MA(3, 3), MB(3, 3), MC(3, 3), MP1(3, 3), MP2(3, 3), MP3(3, 3), U(3,
3), Z(3)
Dim MP4(3, 3), MD1(3, 3), MD2(3, 3), MD3(3, 3), MD4(3, 3), MX(3, 2), MX1(3, 3),
MX2(3, 2)
'Control de humedad por válvula de control de los gases de combustión
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
'Funciones del secadero
'Controlador incremental - L = KP*(E+(1/R)*EDT+TD*(DE/DT)
'Controlador Ecuación tipo C: Delta[y(t)]=-KP*[PV(t)-PV(t-1)]-(1/TR)*T*PV(t)-
(TD/T)*[PV(t)-2*PV(t-1)+PV(t-2)]

348
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 349

Simulación de procesos

'Controlador - U(1, 1) = -KP * (MX(4, 1) - Z(2)) - (Dt / TR) * (SP-MX(4, 1)-


(TD/T)*[PV(t)-2*PV(t-1)+PV(t-2)])
'Válvulas con dinámica despreciable frente al tiempo de reacción del secadero
'Ecuaciones
'Velocidad de secado, Entalpía
'(MP)' = (VA*3600/VG)^0,3)*(TG-TW)/LA
'LS*A*(H/VG)'+((CF+MP)*TW*WF)'=WA*((Hentrada)+(WF*CF+WF*MF)*(TEF-(WO*CF+WO*MO)*TO-
WE*(Hsalida)
'siendo H=(0,24+0,46*MG)*TG+597,2*MG
' VG=((1/29)*(MG/18))*R*(273+TG)
'Ecuaciones de estado
'Los coeficientes de las variables de estado y de las entradas son valores medios de
operación del secadero
'MP, TG variables de estado y TA, WF variables de entrada
'son perturbaciones(incrementos alrededor del punto de operación)
'MP = Humedad media de las partículas, TG = Temperatura media de los gases
'TA = Temperatura de los gases de entrada, WF = Caudal del sólido seco
'Ecuaciones de estado
'MP ' = F6 * TG
'TG ' = (1/F5)*(WA*(0,24+0,46*MAH)*TA+(F1-TW*F6*TG)*WF+(2*TEF*WF-2*TW*WF)*MP-TW*F6*WF*TG
'PHI = Matriz de transición, X(K*T) = Vector de estado
'Dt debe ser tal que la serie PHI = ID*AT*A^2(Dt^2/2),
'converja con números que el ordenador pueda manejar (1<SUMA Â(I,J)^*T<10)
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Humedad del producto"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Temperatura media de los gases de secado"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Válvula de control = Temperatura gases calientes a la
entrada"
Range("G2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True

349
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 350

Simulación y control de procesos por ordenador

Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Sección del tubo del secadero - m2 (A)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Caudal en peso de los gases secos a la entrada - Kg/seg
(WA)"
Range("A14").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Velocidad de los gases - m/seg (VA)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Temperatura de entrada del producto sólido - ºC (TEF)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Calor específico del producto sólido - Kc/Kg-ºC (CF)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Humedad de entrada del producto sólido - Kg/Kg (MF)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Humedad final del sólido - Kg/Kg (MO)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Temperatura de operación de los gases a la entrada - ºC
(TA)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Caudal de operación del sólido seco - Kg/s (WF)"
Range("B14").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la humedad de las partículas -
Kg/Kg (MP)=(MX(1,1))"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la temperatura media de los gases
de secado - ºC (TG)=(MX(2,1))"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la temperatura de los gases a la
entrada - ºC (TA)=(U(1,1))"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select

350
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 351

Simulación de procesos

ActiveCell.FormulaR1C1 = "Incremento inicial del caudal del sólido seco - Kg/seg WF


=(U(2,1))"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Ganancia del controlador de temperatura - (KP)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos - (TD)"
Range("C14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A = InputBox("Sección del tubo del secadero - m2 (A):"): Cells(13, 1) = A
WA = InputBox("Caudal en peso de los gases secos a la entrada - Kg/seg (WA):"):
Cells(15, 1) = WA
VA = InputBox("Velocidad de los gases - m/seg (VA):"): Cells(3, 2) = VA
TEF = InputBox("Temperatura de entrada del producto sólido - ºC (TEF):"): Cells(5,
2) = TEF
CF = InputBox("Calor específico del producto sólido - Kc/Kg-ºC (CF):"): Cells(7, 2)
= CF
MF = InputBox("Humedad de entrada del producto sólido - Kg/Kg (MF):"): Cells(9, 2)
= MF
MO = InputBox("Humedad final del sólido - Kg/Kg (MO):"): Cells(11, 2) = MO
TA = InputBox("Temperatura de operación de los gases a la entrada - ºC (TA):"):
Cells(13, 2) = TA
WF = InputBox("Caudal de operación del sólido seco - Kg/s (WF):"): Cells(15, 2) =
WF
MP = InputBox("Incremento inicial de la humedad de las partículas - Kg/Kg (MP) =
(MX(1,1)):"): Cells(3, 3) = MP: MX(1, 1) = MP
TG = InputBox("Incremento inicial de la temperatura media de los gases de secado -
ºC (TG) = MX(2,1)):"): Cells(5, 3) = TG: MX(2, 1) = TG
DeltaTempGases = InputBox("Entrada - Incremento inicial de la temperatura de los
gases - ºC (U(1,1):"): U(1, 1) = DeltaTempGases: Cells(7, 3) = U(1, 1)
DeltaCaudalSolido = InputBox("Entrada - Incremento inicial del caudal del sólido
seco - Kg/seg (U(2,1):"): U(2, 1) = DeltaCaudalSolido: Cells(9, 3) = U(2, 1)
KP = InputBox("Ganancia del controlador de temperatura - (KP):"): Cells(11, 3) =
KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(13,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(15, 3) = TD
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0
ID(2, 1) = 0: ID(2, 2) = 1
'Entrada de filas y columnas matriz MA(2,2)
'VG = Volumen específico del gas caliente
'R = Constante de los gases perfectos = 0,082
'LA = calor latente de vaporización de agua del sólido

351
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 352

Simulación y control de procesos por ordenador

'TW = Temperatura húmeda del sólido = temperatura del bulbo húmedo = constante
'LS = longitud del secadero
R = 0.082: LA = 580: TW = 120: LS = 30
MAH = 0.05: MG = 0.12
F3 = ((1 / 29) + (MG / 18)) * R: F4 = F3 * (273 + TG)
F5 = LS * A * (0.24 + 0.46 * MG) * F3 * (273 - 597.2 * MG) / (F4 ^ 2)
F7 = -0.37 * ((3600 * VA / F4) ^ (-0.63)) * 3600 * VA * F3 * (TG - TW) / ((F4 ^
2) * LA)
F8 = ((3600 * VA / F4) ^ (0.37)) / LA
F6 = F7 + F8
MA(1, 2) = F6
MA(2, 1) = 2 * WF * (TEF - TW) / F5
MA(2, 2) = -TW * WF * F6 / F5
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MB(2,2)
F1 = TEF * (CF + 2 * MP - MO) - TW * (CF - 2 * MP + MF)
MB(2, 1) = WA * (0.24 + 0.46 * MAH) / F5
MB(2, 2) = F1 / F5
For j = 1 To 2: For i = 1 To 2
MC(j, i) = MB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1
For j = 1 To 2: For i = 1 To 2
MP1(j, i) = 0
For k = 1 To 2
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 2: For i = 1 To 2
MP3(j, i) = 0
For k = 1 To 2
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 2: For i = 1 To 2
MD1(j, i) = 0
For k = 1 To 2
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MD2(j, i) = MC(j, i) + MD1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 2: For i = 1 To 2

352
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 353

Simulación de procesos

MD3(j, i) = 0
For k = 1 To 2
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MD4(j, i) = MD2(j, i) + MD3(j, i)
Next i: Next j
For j = 1 To 2: For i = 1 To 2
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de la curva anterior
Contador = 0
While Abs(Cells(Contador + 4, 4)) Or Abs(Cells(Contador + 4, 5)) > 0
Cells(Contador + 4, 4) = "": Cells(Contador + 4, 5) = "": Cells(Contador + 4,
6) = "": Cells(Contador + 4, 7) = ""
Contador = Contador + 1
Wend
H = 0
'Datos para dibujar la curva de respuesta
H = 0
For w = t0 To tf Step Dt
If H = 2 Or H > 2 Then H = 0
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID
If w = t0 Then Z(2) = 0
If w <> t0 Then U(1, 1) = -KP * (MX(2, 1) - Z(2)) - (Dt / TR) * MX(2, 1) - (TD /
Dt) * (MX(2, 1) - 2 * Z(2) + Z(1))
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID
'Controlador incremental PID
U(1, 1) = -KP * (MX(2, 1) - Z(2)) - (Dt / TR) * MX(2, 1) - (TD / Dt) * (MX(2, 1)
- 2 * Z(2) + Z(1))
For j = 1 To 2
S = 0
For k = 1 To 2
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 2
V = V + MD4(j, i) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
' MX(2,1) = Humedad partículas, MX(2,2) = Temperatura media gases secado
' U(1,1) = Posición válvula de control = Temperatura gases calientes a la entrada
Cells(3 + p, 5) = MX(1, 1): Cells(3 + p, 6) = MX(2, 1): Cells(3 + p, 7) =
U(1, 1)
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, V As Single
Dim U(2, 1), Z(2), MP4(2, 2), MD4(2, 2), MX(2, 1)
Dim n As Single, p As Single, chartsTemp As Object, graf As Object

353
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 354

Simulación y control de procesos por ordenador

Dim datos As String


n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 7)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "SECADERO FLASH"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "INCREMENTOS HUMEDAD -
TEMPERATURA GASES- VÁLVULA DE CONTROL DE TEMPERATURA"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 520:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A19").Select
ActiveCell.FormulaR1C1 = ""
Range("A19").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MX(), MD4(), U(), Z(), H)
Dim j As Integer, k As Integer, i As Integer, S As Single, V As Single
H = H + 1
j = 1: S = 0
For k = 1 To 2
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 2
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

354
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 355

Simulación de procesos

Válvula de
Incremento inicial
Temperatura control =
Velocidad de los de la humedad de Humedad
Tinicial Tiempo media de los Temperatura
gases - m/seg las partículas - del
(minutos) (minutos) gases de gases
(VA) Kg/Kg producto
secado calientes a la
(MP)=(MX(1,1 ))
entrada

0 2,700 0,100000001 0,00 0,0996 -0,1425 0,100

Incremento inicial
Temperatura de
de la temperatura
Tfinal entrada del
media de los gases 0,10 0,0983 -0,2724 0,383
(minutos) producto sólido -
de secado - ºC
ºC (TEF)
(TG)=(MX(2,1))

15 15 0 0,20 0,0962 -0,3897 0,641

Incremento inicial
Calor específico
Incremento de la temperatura
del producto
tiempo de los gases a la 0,30 0,0935 -0,4943 0,873
sólido - Kc/Kg-ºC
(minutos) entrada - ºC
(CF)
(TA)=(U(1,1))

0,100 0,200 0 0,40 0,0901 -0,5862 1,079


Incremento inicial
Humedad de
del caudal del
entrada del
Nº de puntos sólido seco - 0,50 0,0862 -0,6657 1,259
producto sólido -
Kg/seg WF
Kg/Kg (MF)
=(U(2,1))
150 2 0 0,60 0,0819 -0,7331 1,413

Humedad final del Ganancia del


Valor de p sólido - Kg/Kg controlador de 0,70 0,0771 -0,7886 1,543
(MO) temperatura - (KP)

149,000 0,005 1 0,80 0,0721 -0,8328 1,649


Sección del Temperatura de Tiempo de acción
tubo del operación de los integral -
0,90 0,0668 -0,8662 1,732
secadero - m2 gases a la entrada minutos/repetición
(A) - ºC (TA) - (TR)
1,000 300 0,100 1,00 0,0614 -0,8892 1,794
Caudal en peso
Caudal de
de los gases Tiempo de acción
operación del
secos a la derivada - minutos 1,10 0,0558 -0,9026 1,834
sólido seco - Kg/s
entrada - - (TD)
(WF)
Kg/seg (WA)
2,700 0,5 0 1,20 0,0502 -0,9069 1,855

SECADERO FLASH

2,0000
INCREMENTOS HUMEDAD - TEMPERATURA

1,5000
GASES- VÁLVULA DE CONTROL DE

1,0000
TEMPERATURA

0,5000 Serie1
Serie2
0,0000 Serie3
0,00 2,00 4,00 6,00 8,00 10,00 12,00 14,00 16,00

-0,5000

-1,0000

-1,5000
Tiempo (minutos)

Fig. 15.2 Programa y ejemplo de un secadero flash

355
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 356

Simulación y control de procesos por ordenador

15.2 Secadero rotativo


Un secadero rotativo consiste en un cilindro hueco de gran longitud que gira sobre su
eje y que tiene una ligera inclinación hacia la salida del producto. El cilindro al girar
levanta y arrastra el producto húmedo hacia la descarga gracias a unos tabiques inter-
nos y a su inclinación, y lo seca gracias a una contracorriente de aire caliente (o de una
mezcla de aire caliente y gases de combustión). El tiempo de residencia del producto
depende de varios factores: la inclinación del cilindro, su velocidad de giro, tamaño y
densidad de las partículas del producto y de la velocidad del fluido de secado. En la
figura 15.3 puede verse un diagrama de flujo del secador rotativo con un control de
retroalimentación de la temperatura de salida del producto, que acciona una válvula de
control del fluido de calefacción (vapor o combustible).

Fig. 15.3 Secadero rotativo. Fuente: JND Technologies

Existen dos zonas de secado dentro del secadero rotativo:


Zona de precalentamiento donde el sólido se calienta hasta alcanzar la temperatu-
ra de bulbo húmedo o de saturación adiabática. Es poco importante, pues produce
poca variación y en nuestro estudio la ignoraremos.
Zona de velocidad constante de evaporación donde se evapora el agua libre y la
temperatura húmeda del sólido permanece invariable (correspondería al secadero
flash ya estudiado).

356
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 357

Simulación de procesos

Las ecuaciones correspondientes al secadero rotativo son las siguientes:


a) Velocidad de secado del sólido
dMP h
= * (TG − TW )
dt LA

siendo
MP = contenido de agua del sólido seco (kg/kg)
h = coeficiente de transferencia de calor kcal/m2, °C
TG = temperatura del aire caliente
TW = temperatura húmeda del sólido = temperatura bulbo húmedo = constante
LA = calor latente de vaporización del agua del sólido, kcal/kg
El valor de h es experimental. Consideraremos ahora que el aire fluye paralelo a la
superficie de secado, con lo cual la expresión difiere de la escogida en el secadero
flash:
0,024 * (VA * 3600 / VG ) * (TG − TW )
0 ,8
h=
LA

b) Balance energético
En la zona de secado constante, y análogamente al secadero flash, la variación de
entalpía del secadero equivale a:
d [LS * A * ( H / VG )] d [(CF + MP ) * TW * WF ]
+ =
dt dt
= WA * [(0,24 + 0,46 * MG ) * TG + 597,2 * MG ]+ WF * (CF + MF )* TF −

− WO * (CF + MO )* TO − WE * [(0,24 + 0,46 * ME ) * TG + 597,2 * ME ]


siendo
VG = Volumen específico del gas caliente,
 1 MG 
es decir: VM =  +  * 0,082 * (273 + T
 29 18 
con:
A = área transversal media del producto = sección secadero;
WF = caudal kg/h del sólido seco a la entrada del secadero;
MF = humedad del producto (kg agua/kg sólido seco) a la entrada del secadero;
WO = caudal kg/h del sólido seco a la salida del secadero;
MO = humedad del producto (kg agua/kg sólido seco) a la salida del secadero;
WE = caudal kg/h del aire caliente a la salida del secadero;
ME = humedad del aire (kg agua/kg aire seco) a la salida del secadero.

357
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 358

Simulación y control de procesos por ordenador

Las variables de estado escogidas son las siguientes:


MP = humedad media del producto dentro del secadero (kg/kg);
TG = temperatura media de los gases en el interior del secadero.
Y las entradas son:
TA = temperatura de los gases de entrada;
WF = caudal del producto seco a la entrada.
Aquí la ecuación del controlador incremental difiere ligeramente de la del secadero
flash. Como la variable de entrada en el proceso real es la temperatura del producto,
consideraremos desde el punto de vista de la simulación que nuestra variable es la
humedad media del producto X(1,1). La señal de salida del controlador es U(1,1), es
decir, la temperatura de los gases de entrada, lo que equivale en la realidad a la señal
que el controlador envía a la válvula del quemador de combustible. Obsérvese también
que, tal como se han supuesto las condiciones de servicio para la deducción de las ecua-
ciones de estado, un aumento de caudal del producto WF=[U(2,1)] repercute inmedia-
tamente en todo el secadero, afectando a la humedad del producto.
En la figura 15.4 puede verse el programa y un ejemplo del secadero rotativo.

Programa de secadero rotativo

Option Explicit
Private Sub SecaderoRotativoVEstado_Click() 'cmdCreateTable_Click()
Dim T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, sigma As Single
Dim n As Integer, C2V As Single, S As Single
Dim RDP As Single, OCV As Single, T1TUB As Single
Dim T2TRANS As Single, KP As Single, TR As Single, TD As Single
Dim A As Single, WA As Single, VA As Single, TEF As Single, CF As Single
Dim MF As Single, MO As Single, TA As Single, WF As Single, MP As Single, TG As
Single
Dim j As Integer, i As Integer, k As Integer, L As Integer, Contador As Integer
Dim p As Single, V As Single, H As Integer
Dim R As Single, LA As Single, TW As Single, LS As Single, MAH As Single, MG As
Single
Dim F1 As Single, F2 As Single, F3 As Single, F4 As Single, F5 As Single
Dim F6 As Single, F7 As Single, F8 As Single
Dim ID(3, 3), MA(3, 3), MB(3, 3), MC(3, 3), MP1(3, 3), MP2(3, 3), MP3(3, 3), U(3,
2), Z(3)
Dim MP4(3, 3), MD1(3, 3), MD2(3, 3), MD3(3, 3), MD4(3, 3), MX(3, 2), MX1(3, 2),
MX2(3, 2)
'Control de humedad por válvula de control de los gases de combustión
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
'Funciones del secadero
'Controlador incremental - L = KP*(E+(1/R)*EDT+TD*(DE/DT)
'Válvulas con dinámica despreciable frente al tiempo de reacción del secadero
'Ecuaciones
'Velocidad de secado, Entalpía
'(MP)' = 0,0204*(VA*3600/VG)^0,8)*(TG-TW)/LA

358
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 359

Simulación de procesos

'LS*A*(H/VG)'+((CF+MP)*TW*WF)'=WA*((Hentrada)+(WF*CF+WF*MF)-(WO*CF+WO*MO)*TO-
WE*(Hsalida)
'siendo H=(0,24+0,46*MG)*TG+597,2*MG
' VG=((1/29)*(MG/18))*R*(273+TG)
'Ecuaciones de estado
'Los coeficientes de las variables de estado y de las entradas son valores medios de
operación del secadero
'MP, TG variables de estado y TA, WF variables de entrada
'son perturbaciones(incrementos alrededor del punto de operación)
'MP = Humedad media de las partículas, TG = Temperatura media de los gases
'TA = Temperatura de los gases de entrada, WF = Caudal del sólido seco
'Ecuaciones de estado
'MP ' = F6 * TG
'TG ' = (1/F5)*(WA*(0,24+0,46*MAH)*TA+(F1-TW*F6*TG)*WF+(2*TEF*WF-2*TW*WF)*MP-TW*F6*WF*TG
'PHI = Matriz de transición, X(K*T) = Vector de estado
'Dt debe ser tal que la serie PHI = ID*AT*A^2(Dt^2/2),
'converja con números que el ordenador pueda manejar (1<SUMA Â(I,J)^*T<10)
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Humedad del producto"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Temperatura media de los gases de secado"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Temperatura gases calientes a la entrada = Posición de la
válvula de control"
Range("G2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Sección del tubo del secadero - m2 (A)"
Range("A12").Select

359
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 360

Simulación y control de procesos por ordenador

Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Caudal en peso de los gases secos a la entrada - Kg/seg
(WA)"
Range("A14").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Velocidad de los gases - m/seg (VA)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Temperatura de entrada del producto sólido - ºC (TEF)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Calor específico del producto sólido - Kc/Kg-ºC (CF)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Humedad de entrada del producto sólido - Kg/Kg (MF)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Humedad final del producto sólido - Kg/Kg (MO)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Temperatura de operación de los gases a la entrada - ºC
(TA)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Caudal de operación del producto sólido seco - Kg/s (WF)"
Range("B14").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la humedad del producto - Kg/Kg
(MP)=(MX(1,1))"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la temperatura media de los gases
de secado - ºC (TG)=(MX(2,1))"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento inicial de la temperatura de los
gases - ºC (TA)=(U(1,1))"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento inicial del caudal del producto
sólido seco - Kg/seg WF =(U(2,1))"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Ganancia del controlador de temperatura - (KP)"
Range("C10").Select

360
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 361

Simulación de procesos

Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos - (TD)"
Range("C14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A = InputBox("Sección del tubo del secadero - m2 (A):"): Cells(13, 1) = A
WA = InputBox("Caudal en peso de los gases secos a la entrada - Kg/seg (WA):"):
Cells(15, 1) = WA
VA = InputBox("Velocidad de los gases - m/seg (VA):"): Cells(3, 2) = VA
TEF = InputBox("Temperatura de entrada del producto sólido - ºC (TEF):"): Cells(5,
2) = TEF
CF = InputBox("Calor específico del producto sólido - Kc/Kg-ºC (CF):"): Cells(7, 2)
= CF
MF = InputBox("Humedad de entrada del producto sólido - Kg/Kg (MF):"): Cells(9, 2)
= MF
MO = InputBox("Humedad final del producto sólido - Kg/Kg (MO):"): Cells(11, 2) =
MO
TA = InputBox("Temperatura de operación de los gases a la entrada - ºC (TA):"):
Cells(13, 2) = TA
WF = InputBox("Caudal de operación del producto sólido seco - Kg/s (WF):"):
Cells(15, 2) = WF
MP = InputBox("Incremento inicial de la humedad del producto - Kg/Kg (MP) =
(MX(1,1)):"): Cells(3, 3) = MP: MX(1, 1) = MP
TG = InputBox("Incremento inicial de la temperatura media de los gases de secado -
ºC (TG) = MX(2,1)):"): Cells(5, 3) = TG: MX(2, 1) = TG
U(1, 1) = InputBox("Incremento inicial de la temperatura de los gases a la entrada
- ºC (U(1,1):"): Cells(7, 3) = U(1, 1)
U(2, 1) = InputBox("Incremento inicial del caudal del producto sólido seco -
Kg/seg (U(2,1):"): Cells(9, 3) = U(2, 1)
KP = InputBox("Ganancia del controlador de temperatura - (KP):"): Cells(11, 3) =
KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(13,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(15, 3) = TD
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0
ID(2, 1) = 0: ID(2, 2) = 1
'Entrada de filas y columnas matriz MA(2,2)
'VG = Volumen específico del gas caliente
'R = Constante de los gases perfectos = 0,082
'LA = calor latente de vaporización de agua del sólido
'TW = Temperatura húmeda del sólido = temperatura del bulbo húmedo = constante
'LS = longitud del secadero
R = 0.082: LA = 580: TW = 120: LS = 20
MAH = 0.05: MG = 0.12
F3 = ((1 / 29) + (MG / 18)) * R: F4 = F3 * (273 + TG)
F5 = LS * A * (0.24 + 0.46 * MG) * F3 * (273 - 597.2 * MG) / (F4 ^ 2)

361
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 362

Simulación y control de procesos por ordenador

F7 = -0.1632 * ((3600 * VA / F4) ^ (-0.2)) * 3600 * VA * F3 * (TG - TW) / ((F4 ^


2) * LA)
F8 = 0.0204 * ((3600 * VA / F4) ^ (0.8)) / LA
F6 = F7 + F8
MA(1, 2) = F6
MA(2, 1) = 2 * WF * (TEF - TW) / F5
MA(2, 2) = -TW * WF * F6 / F5
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MB(2,2)
F1 = TEF * (CF + 2 * MP - MO) + TW * (MF - CF - 2 * MP)
MB(2, 1) = WA * (0.24 + 0.46 * MAH) / F5
MB(2, 2) = F1 / F5
For j = 1 To 2: For i = 1 To 2
MC(j, i) = MB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1
For j = 1 To 2: For i = 1 To 2
MP1(j, i) = 0
For k = 1 To 2
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 2: For i = 1 To 2
MP3(j, i) = 0
For k = 1 To 2
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 2: For i = 1 To 2
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 2: For i = 1 To 2
MD1(j, i) = 0
For k = 1 To 2
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MD2(j, i) = MC(j, i) + MD1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 2: For i = 1 To 2
MD3(j, i) = 0
For k = 1 To 2
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 2: For i = 1 To 2
MD4(j, i) = MD2(j, i) + MD3(j, i)

362
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 363

Simulación de procesos

Next i: Next j
For j = 1 To 2: For i = 1 To 2
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de la curva anterior
Contador = 0
While Abs(Cells(Contador + 4, 4)) Or Abs(Cells(Contador + 4, 5)) > 0
Cells(Contador + 4, 4) = "": Cells(Contador + 4, 5) = "": Cells(Contador + 4,
6) = "": Cells(Contador + 4, 7) = ""
Contador = Contador + 1
Wend
H = 0
'Datos para dibujar la curva de respuesta
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
H = 0
ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
If w = t0 Then Z(2) = 0
U(1, 1) = -KP * (MX(2, 1) - Z(2) + (Dt / TR) * MX(2, 1) + (TD / Dt) * (MX(2, 1) -
2 * Z(2) + Z(1)))
ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
'Controlador incremental PID
U(1, 1) = -KP * (MX(2, 1) - Z(2) + (Dt / TR) * MX(2, 1) + (TD / Dt) * (MX(2, 1) -
2 * Z(2) + Z(1)))
For j = 1 To 2
S = 0
For k = 1 To 2
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 2
V = V + MD4(j, i) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
' MX(1,1) = Humedad partículas: MX(2,1) = Temperatura media gases secado
' U(1,1) = Posición válvula de control = Temperatura gases calientes a la entrada
Cells(p + 3, 5) = MX(1, 1): Cells(p + 3, 6) = ((MX(2, 1)) / MF) * 100: Cells(p +
3, 7) = U(1, 1)
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, V As Single
Dim U(2, 1), Z(2), MP4(2, 2), MD4(2, 2), MX(2, 1)
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If

363
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 364

Simulación y control de procesos por ordenador

datos = Range(Cells(3, 4), Cells(p + 3, 7)).Address 'rango a graficar


Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "SECADERO ROTATIVO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "INCREMENTOS HUMEDAD -
TEMPERATURA GASES SECADO - VALVULA DE CONTROL"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 520:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A19").Select
ActiveCell.FormulaR1C1 = ""
Range("A19").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MX(), MD4(), U(), Z())
Dim H As Integer, j As Integer, k As Integer, i As Integer, S As Single, V As
Single
H = H + 1
j = 1: S = 0
For k = 1 To 2
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 2
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

364
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 365

Simulación de procesos

Temperatura gases
Temperatura
Incremento inicial de la Humedad calientes a la
Velocidad de los gases - Tiempo media de los
Tinicial (minutos) humedad del producto - del entrada = Posición
m/seg (VA) (minutos) gases de
Kg/Kg (MP)=(MX(1,1)) producto de la válvula de
secado
control
0 0,300 0 0,00 -0,000150 -654,7374 0,0000
Incremento inicial de la
Temperatura de entrada
temperatura media de
Tfinal (minutos) del producto sólido - ºC 0,10 -0,000589 -1.277,2369 0,2645
los gases de secado - ºC
(TEF)
(TG)=(MX(2,1))
60 15 0 0,20 -0,001304 -1.865,8389 0,5160
Entrada - Incremento
Calor específico del
Incremento tiempo inicial de la temperatura
producto sólido - 0,30 -0,002278 -2.419,1245 0,7538
(minutos) de los gases - ºC
Kc/Kg-ºC (CF)
(TA)=(U(1,1))
0,1000 0,6000 0 0,40 -0,003496 -2.935,9138 0,9773
Entrada - Incremento
Humedad de entrada del
inicial del caudal del
Nº de puntos producto sólido - Kg/Kg 0,50 -0,004940 -3.415,2600 1,1861
producto sólido seco -
(MF)
Kg/seg WF =(U(2,1))
600 0,01 0,1 0,60 -0,006593 -3.856,4426 1,3798
Humedad final del Ganancia del
Valor de p producto sólido - Kg/Kg controlador de 0,70 -0,008437 -4.258,9644 1,5580
(MO) temperatura - (KP)
599,9966 0,0800 4 0,80 -0,010456 -4.622,5400 1,7206
Tiempo de acción
Sección del tubo Temperatura de
integral -
del secadero - m2 operación de los gases a 0,90 -0,012631 -4.947,0913 1,8675
minutos/repetición -
(A) la entrada - ºC (TA)
(TR)
2,00 300,00 10 1,00 -0,014945 -5.232,7358 1,9986
Caudal en peso de
Caudal de operación del Tiempo de acción
los gases secos a
producto sólido seco - derivada - minutos - 1,10 -0,017380 -5.479,7808 2,1140
la entrada -
Kg/s (WF) (TD)
Kg/seg (WA)

1,00 0,50 0 1,20 -0,019918 -5.688,7080 2,2138

SECADERO ROTATIVO

3.000,000000
INCREMENTOS HUMEDAD - TEMPERATURA
GASES SECADO - VALVULA DE CONTROL

2.000,000000

1.000,000000

0,000000
0,00 10,00 20,00 30,00 40,00 50,00 60,00 70,00
-1.000,000000
Serie1
-2.000,000000 Serie2
Serie3
-3.000,000000

-4.000,000000

-5.000,000000

-6.000,000000

-7.000,000000
Tiempo (minutos)

Fig. 15.4 Programa y ejemplo de secadero rotativo

15.3 Secadero túnel


El secadero túnel, también llamado horno túnel en el caso de temperaturas elevadas
como en la industria cerámica, consiste en un conducto de gran longitud donde el
material se coloca sobre bandejas o carretillas que se desplazan lentamente efectuándo-
se el recorrido del secadero en algunas horas. El flujo de aire caliente suele ser en con-
tracorriente.
Estudiaremos el caso de un horno túnel para la cocción de material cerámico. En la ope-
ración del horno, se suministra al producto una cantidad de calor por medio de los gases
calientes procedentes de la combustión de gas natural o fuel oil, con lo que se desarro-
llan procesos internos físico-químicos que transforman el material (zona de cocción).

365
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 366

Simulación y control de procesos por ordenador

Fig. 15.5 Horno túnel

En la figura 15.5 puede verse un esquema del horno. Obsérvese que tiene tres zonas
diferenciadas:
Zona de precalentamiento donde entran las vagonetas cargadas con el material, y
donde la temperatura va aumentando hasta llegar a la siguiente zona.
Zona de cocción donde, idealmente, la temperatura del material y de las vagonetas es
constante e igual a la de las paredes del horno. Es en esta zona donde se encuentran
ubicados los quemadores de calentamiento.
Zona de enfriamiento donde el conjunto del material y las vagonetas se enfría hasta
que, también idealmente, la temperatura del conjunto al salir del horno es la tempe-
ratura ambiente.
El control se efectúa en la zona de cocción donde, a través de la señal captada por un
elemento de temperatura, un controlador actúa sobre la válvula o válvulas de combus-
tible (suele ser gas natural por las ventajas que presenta, entre otras su fácil regulación,
su homogeneidad de características y su limpieza).
Al simular el horno, consideraremos sólo las zonas de precalentamiento (con velocidad
de secado constante) y la de cocción (con velocidad de secado decreciente).
Las ecuaciones correspondientes del horno túnel son las siguientes:

366
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 367

Simulación de procesos

a) Balance de humedad
En la zona de precalentamiento:
La velocidad de secado es constante y la ecuación es idéntica a la del secadero ro-
tativo:

d ( MP) 0,024 * (VA * 3600 / VG ) * (TG − TW )


0 ,8
=
dt LA
siendo las variables indicadas valores medios de la zona de precalentamiento.
Zona de velocidad de secado decreciente (zona de cocción):
Considerando que el movimiento de la humedad sigue las leyes del flujo capilar
(fórmula de Poiseuille), la velocidad de secado varía linealmente con la humedad
del sólido, tomando como referencia la humedad crítlca alcanzada en el período
anterior de velocidad de secado constante. Se tiene pues la expresión:

d ( MR ) MR
= −( MP ' ) *
dt MC
Siendo:
MP' = Velocidad de secado constante;
MR = Humedad del sólido en el período decreciente;
MC = Humedad crítica alcanzada en el período de secado de velocidad cons-
tante.
b) Balance energético
Consideramos que la energía empleada en la reacción de cocción del material cerá-
mico es de un 20% de la energía empleada en el calentamiento del horno.
No tenemos en cuenta la variación de energía empleada en el calentamiento de las
vagonetas que transportan el producto.
Suponemos que el calentamiento del producto en las vagonetas se efectúa princi-
palmente por radiación de la llama de los mecheros y de los gases calientes, sin
considerar el calor de convección aportado por los gases.
Despreciamos las pérdidas a través de las paredes y las entradas de aire parásito
durante la apertura de las puertas de acceso o de salida del material.
Consideramos que la variación de entalpía dentro del horno en la zona de preca-
lentamiento es la siguiente:

LS*A* (H/ VG )' + [(CF + MP)*TW*WF] ' = WA*[( 0 ,24 + 0 ,46*MG)*TA +

+ 597 ,2*MA] + WF*(CF + MF)*TF- WO *(CF + MO)*TO -

- WE* [( 0 ,24 + 0,46*ME)*TE + 597 ,2*ME ]

367
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 368

Simulación y control de procesos por ordenador

En la zona de cocción, el balance energético se basa en la variación de temperatu-


ra del producto y la radiación aportada por la llama y por los gases calientes, con-
siderando, que aunque el producto también es calentado por las paredes de refrac-
tario del horno, éstas están a una temperatura constante sin variación.

[WF*( CF + MR)*TR]' -(ER*SS*TR 4 ) -(GG*GT 3 )' =


= EG * SS * TL4 + (1 - EG) * EP * SS * TP 4 - ER * SS * TP 4 +
+ GG*GT 3*( 1-CR)- CR*WF- W A*[( 0,24 + 0,46*MA)*TA +
+ 597,2 * MA] + WB * [(0,24 + 0,46 * MB) * TB + 597,2 * MB] + WF * (CF + MC) *
* TW - WF * (CF + MS) * TR
En todas estas ecuaciones, los símbolos tienen el siguiente significado:
Zona de precalentamiento:
Producto a la entrada WF, MF, TF: caudal, humedad, temperatura.
Producto en el interior WF, MP, TW.
Producto a la salida WO = WF, MO = MC, TO.
Gases a la entrada (la circulación es en contracorriente) WA , MA, TA.
Gases en el interior WA, MG, TG.
Gases a la salida WE, ME, TE.
Zona de cocción:
Producto a la entrada Wo = WF, MO = MC, CF, TO.
Producto en el interior WF, MR, CF, TR.
Producto a la salida WS = WF, MS, TS.
Gases a la entrada WB, MB, TB.
Gases en el interior WB, GM, GT.
Gases a la salida WA, MA, TA.
CF = Calor específico del producto
SS = Constante ecuación espectral de Stefan-Boltzmann = 5,675*10-8.
ER y GG = Emisividad del producto y de los gases.
CR = Fracción calor de reacción del producto.
Las variables de estado escogidas son:
MP = Humedad media del producto en la zona de precalentamiento.
TG = Temperatura media de los gases en la zona de precalentamiento.
MR = Humedad media del producto en la zona de cocción.
TR = Temperatura del producto en la zona de cocción.
Las variables de entrada:
TA = Temperatura de los gases en la zona de precalentamiento.

368
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 369

Simulación de procesos

WF = Caudal del producto seco.


TL = Temperatura de la llama de los mecheros en la zona de cocción.
GT = Temperatura media de los gases en la zona de cocción.
La linealización de las ecuaciones anteriores por el método de las pequeñas Per-
turbaciones es bastante laboriosa. Las ecuaciones linealizadas y el programa con
un ejemplo de aplicación se encuentran en la figura 15.6.

Programa de horno túnel

Option Explicit
Private Sub HornoTunelVEstado_Click() 'cmdCreateTable_Click()
Dim T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, sigma As Single
Dim n As Integer, C2V As Single, S As Single, MHC As Single, CR As Single
Dim RDP As Single, OCV As Single, T1TUB As Single, MS As Single
Dim T2TRANS As Single, KP As Single, TR As Single, TD As Single, GT As Single, TPR
As Single
Dim A As Single, WA As Single, VA As Single, TEF As Single, CF As Single, TL As
Single
Dim MF As Single, MO As Single, TA As Single, WF As Single, MP As Single, TG As
Single
Dim SS As Double, EG As Single, EP As Single, ER As Single, MR As Single, TP As
Single
Dim FX As Single, FY As Single, FZ As Single
Dim j As Integer, i As Integer, k As Integer, L As Integer, Contador As Integer
Dim p As Single, V As Single, H As Integer
Dim R As Single, LA As Single, TW As Single, LS As Single, MAH As Single, MG As
Single
Dim F1 As Single, F2 As Single, F3 As Single, F4 As Single, F5 As Single
Dim F6 As Single, F7 As Single, F8 As Single, F9 As Single
Dim ID(5, 5), MA(5, 5), MB(5, 5), MC(5, 5), MP1(5, 5), MP2(5, 5), MP3(5, 5), U(5,
2), Z(3)
Dim MP4(5, 5), MD1(5, 5), MD2(5, 5), MD3(5, 5), MD4(5, 5), MX(5, 2), MX1(5, 2),
MX2(5, 2)
'Control de temperatura en zona de cocción por válvula de control de la llama de los
gases
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
'Funciones del secadero
'Controlador incremental - L = KP*(E+(1/R)*EDT+TD*(DE/DT)
'Válvulas con dinámica despreciable frente al tiempo de reacción del horno
'Ecuaciones
'Velocidad de secado, Entalpía en zona de precalentamiento
'(MP)' = 0,0204*(VA*3600/VG)^0,8)*(TG-TW)/LA
'LS*A*(H/VG)'+((CF+MP)*TW*WF)'=WA*((Hentrada)+(WF*CF+WF*MF)*TF-(WO*CF+WO*MO)*TO-
WE*(Hsalida)
'siendo H=(0,24+0,46*MG)*TG+597,2*MG
' VG=((1/29)*(MG/18))*R*(273+TG)
'Ecuaciones de humedad y entalpía en la zona de cocción
'MR'=-MP'*(MR/MHC) Velocidad de secado decreciente
'(WF*(CF+MR)*TPR)'-(ER*SS*TPR^4)'-(GG*GT^3)'=
'=((EG*SS*TL^4+(1-EG)*EP*SS*TP^4-ER*SS*TP^4)*GG*(GT^3))*(1-CR)-
'-CR*WF-WA*((0,24+0,46*MAH)*TA+597,2*MAH)+WB*((0,24+0,46*MB)*TB+597,2*MB+
'(WF*CF+WF*MHC)*TW-(WF*CF+WF*MS*TPR

369
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 370

Simulación y control de procesos por ordenador

'Ecuaciones de estado. Los coeficientes de las variables de estado y de las entradas


son valores medios de operación del secadero
'MP, TG , MR, TPR variables de estado y TA, WF, TL, GT variables de entrada
'son perturbaciones(incrementos alrededor del punto de operación)
'MP = Humedad media del producto, TG = Temperatura media de los gases en la zona de
precalentamiento
'MF = Humedad del producto en la entrada en la zona de precalentamiento
'MR = Humedad media del producto en la zona de cocción, TPR = Temperatura del producto
'TA = Temperatura de los gases entre las zonas de precalentamiento - cocción, WF =
Caudal del producto seco
'TL = Temperatura de la llama del gas en la zona de cocción, GT = Temperatura media de
los gases en la zona de cocción
'Ecuaciones de estado
'MP ' = F6 * TG
'TG ' = (1/F5)*(WA*(0,24+0,46*MAH)*TA+(F1-TW*F6*TG)*WF+(2*TEF*WF-2*TW*WF)*MP-TW*F6*WF*TG
'MR' =-(MR*(F7+F8)/MHC)*TG-(F8*(TG-TW)/MHC)*MR
'TPR'=(-FY*TPR*TG-FZ*TPR*MR-(FY*TG+FZ*MR+(A*SS*TPR^3*(1-CR)-WF*(CF-MS))/FX)*TPR-
'-(WA*(0,24+0,46*MAH)/FX)*TA-
'- ((-FZ*TPR*MR/WF)-(FY*TPR*TG/WF)+(((TW*(CF+MHC)-TPR*(CF+MS))/FX)*WF+
'+ (4*SS*TL^3*(1-CR))/FX)*TL+(3*GT^2*((1-CR)/FX)*GT
'PHI = Matriz de transición, X(K*T) = Vector de estado
'Dt debe ser tal que la serie PHI = ID*AT+A^2(Dt^2/2!),
'converja con números que el ordenador pueda manejar (1<SUMA Â(I,J)^*T<10)
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Humedad del producto en zona de cocción - MX(3, 1)"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Temperatura entrada del producto en zona de cocción -
MX(4, 1)"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Válvula de control = Temperatura llama mecheros - U(3,
1)"
Range("G2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True

370
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 371

Simulación de procesos

Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Sección del tubo del secadero - m2 (A)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Longitud de la zona de precalentamiento - m (LS)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Humedad de entrada en la zona de precalentamiento - Kg/Kg
(MF)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Caudal en peso de los gases secos a la entrada - Kg/seg
(WA)"
Range("A18").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Velocidad de los gases - m/seg (VA)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Temperatura de entrada del producto - ºC (TEF)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Calor específico del producto sólido - Kc/Kg-ºC (CF)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Temperatura media de operación de los gases entre zonas -
ºC (TA)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Caudal de operación del producto - Kg/s (WF)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Temperatura de operación de la llama de los mecheros -
ºC (TL)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Temperatura de operación de los gases en la zona de coc-
ción - ºC (GT)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la humedad del producto en la zona
de precalentamiento - Kg/Kg (MP)=MX(1,1)"
Range("B16").Select
Selection.Font.Bold = True

371
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 372

Simulación y control de procesos por ordenador

Range("B18").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la temperatura media de los gases
entre zonas - ºC (TG) = MX(2,1)"
Range("B18").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la humedad del producto en la zona
de cocción - Kg/Kg (MR)=MX(3,1)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la temperatura de entrada del pro-
ducto - ºC (TPR) = MX(4,1)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de la temperatura de operación de
los gases en la zona de precalentamiento - Kg/Kg (TA)=U(1,1)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de operación del sólido
seco - Kg/s (WF) = U(2,1)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de la temperatura de operación de la
llama de los mecheros - ºC (TL) = U(3,1)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de la temperatura de operación de
los gases en la zona de cocción - ºC (GT) = U(4,1)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Ganancia del controlador - (KP)"
Range("C14").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"
Range("C16").Select
Selection.Font.Bold = True
Range("C18").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos - (TD)"
Range("C18").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A = InputBox("Sección del tubo del secadero - m2 (A):"): Cells(13, 1) = A
LS = InputBox("Longitud de la zona de precalentamiento - m (LS):"): Cells(15, 1) =
LS
MF = InputBox("Humedad de entrada en la zona de precalentamiento - Kg/Kg (MF):"):
Cells(17, 1) = MF

372
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 373

Simulación de procesos

WA = InputBox("Caudal en peso de los gases secos a la entrada - Kg/seg (WA):"):


Cells(19, 1) = WA
VA = InputBox("Velocidad de los gases - m/seg (VA):"): Cells(3, 2) = VA
TEF = InputBox("Temperatura de entrada del producto - ºC (TEF):"): Cells(5, 2) =
TEF
CF = InputBox("Calor específico del producto sólido - Kc/Kg-ºC (CF):"): Cells(7, 2)
= CF
TA = InputBox("Temperatura media de operación de los gases entre zonas - ºC
(TA):"): Cells(9, 2) = TA
WF = InputBox("Caudal de operación del producto - Kg/s (WF):"): Cells(11, 2) = WF
TL = InputBox("Temperatura de operación de la llama de los mecheros - ºC (TL):"):
Cells(13, 2) = TL
GT = InputBox("Temperatura de operación de los gases en la zona de cocción - ºC
(GT):"): Cells(15, 2) = GT
MX(1, 1) = InputBox("Incremento inicial de la humedad del producto en la zona de
precalentamiento - Kg/Kg (MP)=MX(1,1):"): Cells(17, 2) = MX(1, 1)
MX(2, 1) = InputBox("Incremento inicial de la temperatura media de los gases entre
zonas - ºC (TG) = MX(2,1):"): Cells(19, 2) = MX(2, 1)
MX(3, 1) = InputBox("Incremento inicial de la humedad del producto en la zona de
cocción - Kg/Kg (MR)=MX(3,1):"): Cells(3, 3) = MX(3, 1)
MX(4, 1) = InputBox("Incremento inicial de la temperatura de entrada del producto
- ºC (TPR) = MX(4,1):"): Cells(5, 3) = MX(4, 1)
U(1, 1) = InputBox("Entrada - Incremento de la temperatura de operación de los
gases en la zona de precalentamiento - Kg/Kg (TA)=U(1,1):"): Cells(7, 3) = U(1, 1)
U(2, 1) = InputBox("Entrada - Incremento del caudal de operación del sólido seco -
Kg/s (WF) = U(2,1):"): Cells(9, 3) = U(2, 1)
U(3, 1) = InputBox("Entrada - Incremento de la temperatura de operación de la
llama de los mecheros - ºC (TL) = U(3,1):"): Cells(11, 3) = U(3, 1)
U(4, 1) = InputBox("Entrada - Incremento de la temperatura de operación de los
gases en la zona de cocción - ºC (GT) = U(4,1):"): Cells(13, 3) = U(4, 1)
KP = InputBox("Ganancia del controlador - (KP):"): Cells(15, 3) = KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(17,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(19, 3) = TD
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0: ID(1, 3) = 0: ID(1, 4) = 0
ID(2, 1) = 0: ID(2, 2) = 1: ID(2, 3) = 0: ID(2, 4) = 0
ID(3, 1) = 0: ID(3, 2) = 0: ID(3, 3) = 1: ID(3, 4) = 0
ID(4, 1) = 0: ID(4, 2) = 0: ID(4, 3) = 0: ID(4, 4) = 1
'Entrada de filas y columnas matriz MA(4,4)
'R = Constante de los gases perfectos = 0,082
'LA = calor latente de vaporización de agua del sólido
'TW = Temperatura húmeda del sólido = temperatura del bulbo húmedo = constante
'MHC = Humedad del producto a la salida
'LS = longitud del secadero. MHC = Humedad crítica. MO = Humedad del producto a la
entrada. CR = Fracción calor de reacción del producto
'MAH = . MG = . MS = . CR =
'SS= Constante de Stefan Boltzman=5,675*10^(-8)
R = 0.082: LA = 580: TW = 120: MHC = 0.14: MO = 0.2
MAH = 0.05: MG = 0.12: MS = 0.05: CR = 0.2
SS = 0.00000004879: EG = 0.2: EP = 0.5: ER = 0.6
TG = 200: MR = 0.1: TPR = 900: 'MP = 0.25
F3 = ((1 / 29) + (MG / 18)) * R: F4 = F3 * (273 + TG)
F5 = LS * A * (0.24 + 0.46 * MG) * F3 * (273 - 597.2 * MG) / (F4 ^ 2)
F7 = -0.01632 * ((3600 * VA / F4) ^ (-0.2)) * 3600 * VA * F3 * (TG - TW) / ((F4 ^
2) * LA)
F8 = 0.0204 * ((3600 * VA / F4) ^ (0.8)) / LA
F6 = F7 + F8
F9 = (4 * SS * ((TP + 273) ^ 3) * (1 - CR) / 1.163) * (EP * (1 - EG) - ER)

373
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 374

Simulación y control de procesos por ordenador

FX = WF * (CF + MR) + ER * SS * ((TPR + 273) ^ 3)


FY = MR * F6 * WF / (MHC * FX)
FZ = MR * F8 * (TG - TW) * WF / (MHC * FX)
MA(1, 2) = F6
MA(2, 1) = 2 * WF * (TEF - TW) / F5
MA(2, 2) = -TW * WF * F6 / F5
MA(3, 2) = -(MR / MHC) * F6
MA(3, 3) = -(F8 / MHC) * (TG - TW)
MA(4, 2) = -FY * TPR: MA(4, 3) = -FZ * TPR
MA(4, 4) = -FY * TG - FZ * MR - (4 * SS * ((TPR + 273) ^ 3) * (1 - CR) - WF * (CF
+ MS)) / FX
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MB(4,4)
F1 = TEF * (CF + 2 * MP - MO) + TW * (MF - CF - 2 * MP)
MB(2, 1) = WA * (0.24 + 0.46 * MAH) / F5
MB(2, 2) = F1 / F5
MB(4, 1) = -WA * (0.24 + 0.46 * MAH) / (WF * (CF + MR))
MB(4, 2) = (-FZ * TPR * MR / WF) - (FY * TPR * TG / WF) + (TW * (CF + MHC) - TPR
* (CF + MS)) / FX
MB(4, 3) = 4 * SS * ((TL + 273) ^ 3) * (1 - CR) / FX
MB(4, 4) = 3 * ((GT + 273) ^ 2) * (1 - CR) / FX
For j = 1 To 4: For i = 1 To 4
MC(j, i) = MB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1
For j = 1 To 4: For i = 1 To 4
MP1(j, i) = 0
For k = 1 To 4
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 4: For i = 1 To 4
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 4: For i = 1 To 4
MP3(j, i) = 0
For k = 1 To 4
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 4: For i = 1 To 4
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 4: For i = 1 To 4
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 4: For i = 1 To 4
MD1(j, i) = 0
For k = 1 To 4
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 4: For i = 1 To 4
MD2(j, i) = MC(j, i) + MD1(j, i)
Next i: Next j

374
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 375

Simulación de procesos

For L = 2 To 4
For j = 1 To 4: For i = 1 To 4
MD3(j, i) = 0
For k = 1 To 4
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 4: For i = 1 To 4
MD4(j, i) = MD2(j, i) + MD3(j, i)
Next i: Next j
For j = 1 To 4: For i = 1 To 4
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de respuestas anteriores
Contador = 0
While Abs(Cells(Contador + 4, 4)) Or Abs(Cells(Contador + 4, 5)) > 0
Cells(Contador + 4, 4) = "": Cells(Contador + 4, 5) = "": Cells(Contador + 4,
6) = "": Cells(Contador + 4, 7) = ""
Contador = Contador + 1
Wend
H = 0
'Datos para dibujar la curva de respuesta
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
H = 0
ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
If w = t0 Then Z(2) = 0
If w <> t0 Then U(3, 1) = -KP * (MX(4, 1) - Z(2) + (Dt / TR) * MX(4, 1) + (TD /
Dt) * (MX(4, 1) - 2 * Z(2) + Z(1)))
ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
'Controlador incremental PID
U(3, 1) = -KP * (MX(4, 1) - Z(2) + (Dt / TR) * MX(4, 1) + (TD / Dt) * (MX(4, 1) -
2 * Z(2) + Z(1)))
For j = 1 To 4
S = 0
For k = 1 To 4
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
Cells(p + 3, 5) = MX(3, 1) 'Humedad del producto en la zona de cocción
Cells(p + 3, 6) = MX(4, 1) 'Temperatura de entrada del producto en la zona de coc-
ción
Cells(p + 3, 7) = U(3, 1) 'Temperatura de operación de la llama de los mecheros =
Válvula de control
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, V As Single
Dim U(2, 1), Z(2), MP4(2, 2), MD4(2, 2), MX(2, 1)

375
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 376

Simulación y control de procesos por ordenador

Dim n As Single, p As Single, chartsTemp As Object, graf As Object


Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 7)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "HORNO TÚNEL"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "INCREMENTOS HUMEDAD DEL
PRODUCTO - TEMPERATURA ENTRADA PRODUCTO - VALVULA DE CONTROL"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 520:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A23").Select
ActiveCell.FormulaR1C1 = ""
Range("A23").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MX(), MD4(), U(), Z())
Dim H As Integer, j As Integer, k As Integer, i As Integer, S As Single, V As Single
H = H + 1
j = 1: S = 0
For k = 1 To 4
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

376
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 377

Simulación de procesos

Humedad Temperatura Válvula de


Incremento inicial de la del entrada del control =
Velocidad de Tiempo
Tinicial humedad del producto producto en producto en Temperatura
los gases - (minuto
(minutos) en la zona de cocción - zona de zona de llama
m/seg (VA) s)
Kg/Kg (MR)=MX(3,1) cocción - cocción - mecheros -
MX(3, 1) MX(4, 1) U(3, 1)
0 2 0 0,00 0,00000 -0,03779 0,00000
Temperatura Incremento inicial de la
Tfinal de entrada del temperatura de entrada
0,01 -0,00001 -0,06357 0,05673
(minutos) producto - ºC del producto - ºC (TPR)
(TEF) = MX(4,1)
30 20 0 0,02 -0,00002 -0,08117 0,09542
Entrada - Incremento
Calor
de la temperatura de
Incremento específico del
operación de los gases
tiempo producto 0,03 -0,00002 -0,09320 0,12182
en la zona de
(minutos) sólido -
precalentamiento -
Kc/Kg-ºC (CF)
Kg/Kg (TA)=U(1,1)
0,0100 0,3000 0 0,04 -0,00003 -0,10144 0,13987
Temperatura
media de Entrada - Incremento
Nº de operación de del caudal de operación
0,05 -0,00004 -0,10709 0,15222
puntos los gases del sólido seco - Kg/s
entre zonas - (WF) = U(2,1)
ºC (TA)
3001 800 0,05 0,06 -0,00005 -0,11098 0,16070
Entrada - Incremento
Caudal de
de la temperatura de
operación del
Valor de p operación de la llama de 0,07 -0,00007 -0,11368 0,16653
producto -
los mecheros - ºC (TL)
Kg/s (WF)
= U(3,1)
2999,059082 1 0 0,08 -0,00008 -0,11556 0,17056
Temperatura Entrada - Incremento
Sección del
de operación de la temperatura de
tubo del
de la llama de operación de los gases 0,09 -0,00009 -0,11689 0,17337
secadero -
los mecheros en la zona de cocción -
m2 (A)
- ºC (TL) ºC (GT) = U(4,1)
2 1500 0 0,10 -0,00010 -0,11784 0,17534
Temperatura
Longitud de
de operación
la zona de
de los gases Ganancia del
precalentam 0,11 -0,00012 -0,11853 0,17674
en la zona de controlador - (KP)
iento - m
cocción - ºC
(LS)
(GT)
100 900 1 0,12 -0,00013 -0,11905 0,17776
Incremento
inicial de la
Humedad de
humedad del
entrada en Tiempo de acción
producto en la
la zona d e integral -
zona de 0,13 -0,00014 -0,11944 0,17851
precalentam minutos/repetición -
precalentamie
iento - (TR)
nto - Kg/Kg
Kg/Kg (MF)
(MP)=MX(1,1
)
4 0 10 0,14 -0,00016 -0,11976 0,17908

Incremento
Caudal en inicial de la
peso de los temperatura
Tiempo de acción
gases secos media de los
derivada - minutos - 0,15 -0,00017 -0,12002 0,17953
a la entrada gases entre
(TD)
- Kg/seg zonas - ºC
(WA) (TG) =
MX(2,1)

4 0 0,005 0,16 -0,00019 -0,12025 0,17990

377
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 378

Simulación y control de procesos por ordenador

HORNO TÚNEL
0,25000
INCREMENTOS HUMEDAD DEL PRODUCTO

0,20000
TEMPERATURA ENTRADA PRODUCTO -

0,15000
VALVULA DE CONTROL

0,10000

0,05000 Serie1
0,00000 Serie2
0,00 5,00 10,00 15,00 20,00 25,00 30,00 35,00 Serie3
-0,05000

-0,10000

-0,15000

-0,20000
Tiempo (minutos)

Fig. 15.6 Programa y ejemplo de un horno túnel

En la ecuación del controlador puede observarse que la variable es X(4,1) = TR, que es
la temperatura media del producto y que la salida es U(3,1) = TL o temperatura de la
llama de los mecheros en la zona de cocción. De hecho, en un horno real se instalan ter-
mopares o pirómetros de radiación en la zona de cocción, que captan la temperatura
radiada por las paredes, la llama y los gases. Por el tiempo tan prolongado de estancia
del producto en el horno (más de 6 a 12 horas), su temperatura equivale perfectamen-
te a la captada por el pirómetro. Igual que en los programas anteriores un aumento en
la entrada de vagonetas cargadas (WF) se traduce en la simulación en un aumento en
el número de vagonetas en todo el horno, por lo cual si el lector introduce esta pertur-
bación en la entrada WF = U(2,1), debe tener en cuenta este punto.

15.4 Evaporador de triple efecto


En la figura 15.7 puede verse un diagrama de flujo de un evaporador de triple efecto.

378
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 379

Simulación de procesos

Fig. 15.7 Evaporador de triple efecto. Fuente: Swenson evaporators

Los símbolos empleados en el diagrama son los siguientes:


Primeras letras:
W: Caudal.
D: Densidad.
T: Temperatura.
E: Calor específico.
C: Concentración soluto en peso/peso disolución.
P: Presión.
L: Calor de vaporización.
Segundas letras
F: Alimentación.
S: Vapor de alimentación.
A: Vapor ler efecto.
B: Vapor 2° efecto.
C: Vapor 3er efecto.
1: Cuerpo evaporador 1 er efecto.
2: Cuerpo evaporador 2° efecto.
3: Cuerpo evaporador 3er efecto.
y otros símbolos:
A1, A2, A3, son áreas de transferencia de calor en los efectos.
U = Coeficiente de transferencia de calor.
LS = Calor latente del vapor.
Partiremos de los siguientes supuestos:
Se desprecian los calores de disolución de sólidos en líquidos.

379
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 380

Simulación y control de procesos por ordenador

Se considera vapor saturado en todos los efectos.


El condensado se elimina sin pérdidas de calor.
Los coeficientes de transferencia de calor son constantes.
Son nulas las pérdidas de soluto en el vapor.
Se desprecian los tiempos de transporte entre efectos.
Se consideran:
Entalpía líquido = calor específico * temperatura absoluta
Entalpía vapor = calor específico * temperatura absoluta + calor de vaporización
Calor de condensación en la calandria (serpentín) de un efecto = calor latente de
vaporización en el efecto anterior. Así L1 = LA: L2=LB
Las ecuaciones de balance de caudales, de continuidad y de balance de energía (ental-
pía) para los tres efectos son las siguientes:
1er efecto:
dV 1
= WF-WA-WG
dt
d(V 1*C1 )
= WF.CF- WG. C1
dt
d (V 1* T 1)
E1* = EF *WF * TF − E1*WG * T 1 − WA * ( E1* T 1 + LA) + WS * LS
dt
2o efecto:
dV 2
= WG-WB-WH
dt
d(V 2*C 2 )
= WG.C1- WH.C 2
dt
d (V 2 * T 2)
E2* = E1*WG * T 1 − E 2 *WH * T 2 − WB * ( E 2 * T 2 + LB ) + WA * L1
dt
3er efecto:
dV 3
= WH-WC-WI
dt
d(V 3*C 3 )
= WF.C 2- WI.C 3
dt
En estas ocho ecuaciones existen las siguientes relaciones entre algunas de sus varia-
bles:
U * A1* (TS − T 1)
WA =
606,5 − 0,695 * T 1
U * A2 * (T 1 − T 2)
WB =
606,5 − 0,695 * T 2

380
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 381

Simulación de procesos

U * A1 * (T 2 − T 3)
WC =
606,5 − 0,695 * T 3
Suponemos que el nivel de cada efecto está controlado por un controlador proporcio-
nal. De aquí que podamos establecer las siguientes relaciones entree el caudal de sali-
da y el contenido de cada efecto:
WG = Kl*V1 WH = K2*V2 WI = K3*V3
LA = 606,5 - 0,695 -T1 LB = 606,5 - 0,695 - T2 LC = 606,5 - 0,695 - T3
Y consideramos que en todos los efectos, los calores específicos son la unidad, es decir:
E1 = E2 = E3 = EF = 1
Disponemos pues de nueve ecuaciones, y elegiremos nueve variables de estado que
son:
V1, C1, T1: Contenido (kg), Concentración (kg/kg), Temperatura del primer efect.o
V2, C2, T2: Contenido (kg), Concentración (kg/kg), Temperatura del segundo efecto.
V3, C3, T3: Contenido (kg), Concentración (kg/kg), Temperatura del tercer efecto.
Y cuatro entradas:
WF = Caudal del producto de entrada.
CF = Concentración del producto de entrada (~g/kg).
TF = Temperaturad el productod e entrada.
WS = Caudal de vápor de entrada.
Linealizamos las ecuaciones anteriores por el método de las pequeñas perturbaciones
alrededor del punto de operación obteniendo las ecuaciones de estado:

V1' = WF - Kl * Vl + (U * Al * F12 / FS) * T1

Cl' = (WF/ Vl) * CF + [(CF - Cl)/ Vl] * WF - (Kl * Vl/ Cl)Cl - U * Al * F12 * Cl/(FS * V1) * T1
T 1' = (l/V1) * [-K1* Vl - 606,5 * LS * WS * F12 - (T1 * U * A1 - F12 / FS) * T1 +
+ (TF - T1) * WF + (TF - T1) * WF + WF * TF - LS * T1 * F1 * WS]
V2' = Kl * V1 - K2 * V2 - U * A2 * F2 * T1 + (U * A2 * F2 2 / F1) * T2
C2' = (1/ V2) * [Kl * (Cl - C2) * V1 + Kl * V1 * C1 + U * A2 * F2 * C2 * T1 -
- K2 * V2 * C2 - (U * A2 * C2 * F2 2 / F1) * T2]
T2' = (l/V2) * {K1 * (T1 - T2) * -V1 + Kl * Vl * T1] +
+ (-K2 * V2 - U * A2 * F2 2 * [606,5 * (T1 - 2 * T2) + 0,695 * T2 2 ]) - (T2 * U * A2 * F2 2 / F1) * T 2

V 3' = K 2 * V 2 − K 3 * V 3 − U * A3 * F 3 * T 2 + (U * A3 * F 3 2 / F 2) * T 3
C3' = (l/V3) * [K2 * (C2 - C3) * V2 + K2 * V2 * C2 + U * A3 * F3 * C3 * T2 -
- K3 * V3 * C3 - (U * A3 * C3 * F3 2 /F2) * T3]

381
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 382

Simulación y control de procesos por ordenador

T3' = (1/ V3) * {K2 * {T2 - T3) * V2 + (K2 * V2 - U * A3 * T3 * F3 +

+ T3 * U * A3 * F3) * T2 + (-K3 * V3 - U * A3 * F3 2 * [606,5 * (T 2 − 2 * T 3) +


+ 0,695 * T3 2 ]) - (T3 * U * A3 * F3 2 / F 2) * T 3}

En la ecuación del controlador, la variable es X(8,1) = C3, que es la concentración del


tercer efecto, y la válvula de control es U(4,1) = WS, es decir, el caudal de vapor de cale-
facción del evaporador.
En la figura 15.8 puede verse el programa y un ejemplo de ejecución en el que se intro-
duce como perturbación un aumento del 10% en la alimentación del evaporador.

Programa del evaporador triple efecto

Option Explicit
Private Sub EvaporadorTripleEfectoVEstado_Click() 'cmdCreateTable_Click()
Dim T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, sigma As Single
Dim n As Integer, C2V As Single, S As Single, MHC As Single, CR As Single
Dim A1 As Single, A2 As Single, A3 As Single, K1 As Single, K2 As Single, K3 As
Single
Dim RDP As Single, OCV As Single, T1TUB As Single, MS As Single, CTC As Single
Dim TAF As Single, WS As Single, TS As Single, FS As Single
Dim V1 As Integer, C1 As Integer, V2 As Integer, C2 As Integer, T2 As Integer, V3
As Integer, C3 As Integer, T3 As Integer
Dim T2TRANS As Single, KP As Single, TR As Single, TD As Single, GT As Single
Dim A As Single, WA As Single, VA As Single, TEF As Single, CF As Single, TL As
Single
Dim MF As Single, MO As Single, TA As Single, WF As Single, MP As Single, TG As
Single
Dim SS As Double, EG As Single, EP As Single, ER As Single, MR As Single, TP As
Single
Dim FX As Single, FY As Single, FZ As Single
Dim j As Integer, i As Integer, k As Integer, L As Integer, Contador As Integer
Dim p As Single, V As Single, H As Integer
Dim R As Single, LA As Single, TW As Single, LS As Single, MAH As Single, MG As
Single
Dim F1 As Single, F2 As Single, F3 As Single, F4 As Single, F5 As Single
Dim F6 As Single, F7 As Single, F8 As Single, F9 As Single
Dim ID(10, 10), MA(10, 10), MB(10, 5), MC(10, 5), MP1(10, 10), MP2(10, 10),
MP3(10, 10), MP4(10, 10)
Dim MD1(10, 5), MD2(10, 5), MD3(10, 5), MD4(10, 5)
Dim MX(10, 2), MX1(10, 2), MX2(10, 2), U(5, 2), Z(3)
'Evaporador de triple efecto
'Control de densidad por válvula de control en el vapor de calefacción
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
'Funciones del evaporador
'Controlador incremental - L = KP*(E+(1/R)*EDT+TD*(DE/DT)
'Válvulas con dinámica despreciable frente al tiempo de reacción del evaporador
'Ecuaciones de los tres efectos
'Balance de caudales, Continuida, Entalpía de los tres efectos.

382
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 383

Simulación de procesos

'V1'=WF-WA-WG siendo WA = (CTC*A1*(TS-T1)/(606,5 - 0,695*T1)


'(V1*C1)'=WF*CF-WG*C1 siendo WG = K1 * V1
'E1*(V1*T1)'=EF *WF*TAF-E1*WG*T1-WA*(E1*T1*LA)*WS*LS
'V2'=WG-WB-WH siendo WB=CTC*A2*(T1-T2)/(606,5-0,695*T2)
'(V2*C2)'=WG*C1-WH*C2 siendo H=K2*V2
'E2+(V2*T2)'=E1*VG*T1-E2*WH*T2-WB*(E2*T2+LB)+CTC*A2*(T1-T2)
'V3'=WH-WC-WI siendo WC=CTC*A3+(T2-T3)/(606,5-0,695*T3)
'(V3*C3)'=WH*C2-WI*C3 siendo WI=K3*V3
'E3+(V3*T3)'=E2*WH*T2-E3*WI*T3-WC*(E3*T3+LC)+CTC*A3*(T3-T2)
'LA=606,5-0,695*T1, LB=606,5-0,695*T2, LC=606,5-0,695*T3
'E1=E2=E3=EF=1
'Ecuaciones de estado. Los coeficientes de las variables de estado y de las entradas
son valores medios de operación del evaporador
'V1, C1, T1, V2, C2, T2, V3, C3, T3 variables de estado y WF, CF, TAF, WS variables de
entrada
'son perturbaciones(incrementos alrededor del punto de operación)
'VX = Producto en el efecto X, CX = [Soluto] en Kg/Kg de solución, TX = Temperatura de
efecto
'WF = Caudal de entrada, CF = [Entrada], TAF = Temperatura de entrada, WS = Caudal de
vapor
'Ecuaciones de Estado
'V1'=WF-K1*V1+(CTC*A1*F1^2/FS)*T1
'C1'=(WF/V1)*CF+((CF-C1)/V1)*WF-(K1*V1/V1)*C1-CTC*A1*F1^2*C1/(FS*V1)*T1
'T1'=(1/V1)*((K1*V1-606,5*LS*WS*F1^2-
(T1+CTC*A1F1^2/FS)*T1*(TAF-T1)*WF+(TAF-T1)*WF+WF*TAF-LS*T1*F1*WS)
'V2'=K1*V1-K2*V2-CTC*A2*F2*T1+(CTC*A2*F2^2/F1)*T2
'C2'=(1/V2)*K1*(C1-C2)*V1+K1*V1*C1+CTC*A2*F2*C2*T1-K2*V2*C2-(CTC*A2*C2*F2^2/F1)*T2
'T2 '=(1/V2)*K1*(T1-T2)*V1+K1*V1*T1+ (-K2*V2-CTC*A2*F2^2*(-606,5*(T1-2*T2)+ 0,695*T2^2)-
(T2+CTC*A2*F2^2/F1)*T2
'V3'=K2*V2-CTC*A3*F3*T2-K3*V3+(CTC*A3*F3^2/F2)*T3
'C3'=(1/V3)*(K2*(C2-C3)*V2+K2*V2*C2+C3*CTC*A3*F3*T2-K3*V3*C3-(C3*CTC*A3*F3^2/(F2*V3)*T3
'T3 '=(1/V3)*K2*(T2-T3)*V2+(K2*V2-CTC*A3t3*F3+T3*CTC*A3*F3)*T2+(K3*V3-
CTC*A3*F3^2*(606,5*(T2-2*T3))+0,695*T3^2)-(T3+CTC*A3*F3^2))*T3
'PHI = Matriz de transición, X(K*T) = Vector de estado
'Dt debe ser tal que la serie PHI = ID*AT+A^2(Dt^2/2!),
'converja con números que el ordenador pueda manejar (1<SUMA Â(I,J)^*T<10)
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "[Producto] en el 1º Efecto"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "[Producto] en el 2º Efecto"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "[Producto] en el 3º Efecto"
Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Caudal de vapor = Posición válvula de control"
Range("H2").Select
Selection.Font.Bold = True
Range("A2").Select

383
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 384

Simulación y control de procesos por ordenador

ActiveCell.FormulaR1C1 = "Tinicial (minutos)"


Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Calor latente del vapor - Kc/Kg-ºC (LS)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Coeficiente de transferencia de calor (CTC)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Área de transferencia de calor del 1º Efecto - m2 (A1)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Área de transferencia de calor del 2º Efecto - m2 (A2)"
Range("A18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Área de transferencia de calor del 3º Efecto - m2 (A3)"
Range("A20").Select
Selection.Font.Bold = True
Range("A22").Select
ActiveCell.FormulaR1C1 = "Factor Controlador de nivel 1 (K1)"
Range("A22").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Factor Controlador de nivel 2 (K2)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Factor Controlador de nivel 3 (K3)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Caudal de operación de la alimentación Kg/min - (WF)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "[Alimentación] en peso - Kg/Kg (CF)"
Range("B8").Select
Selection.Font.Bold = True

384
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 385

Simulación de procesos

Range("B10").Select
ActiveCell.FormulaR1C1 = "Temperatura de operación de la alimentación - ºC (TAF)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Caudal de operación del vapor - Kg/min (WS)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de peso en el 1º efecto Kg
(V1)=MX(1,1)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de [producto] en el 1º efecto Kg/Kg
(C1)=MX(2,1)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de temperatura en el 1º efecto - ºC
(T1)=MX(3,1)"
Range("B18").Select
Selection.Font.Bold = True
Range("B20").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de peso en el 2º efecto Kg
(V2)=MX(4,1)"
Range("B20").Select
Selection.Font.Bold = True
Range("B22").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de [producto] en el 2º efecto Kg/Kg
(C2)=MX(5,1)"
Range("B22").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de temperatura en el 2º efecto - ºC
(T2)=MX(6,1)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de peso en el 3º efecto Kg
(V3)=MX(7,1)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de [producto] en el 3º efecto Kg/Kg
(C3)=MX(8,1)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de temperatura en el 3º efecto - ºC
(T3)=MX(9,1)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de la alimentación en peso del pro-
ducto del 1º efecto - Kg/min (WF)=U(1,1)"
Range("C10").Select
Selection.Font.Bold = True

385
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 386

Simulación y control de procesos por ordenador

Range("C12").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de [producto] en el 1º efecto -
Kg/Kg (CF) = U(2,1)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de la temperatura de la
alimerntación del 1º efecto - ºC (TAF) = U(3,1)"
Range("C14").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de vapor - Kg/min
(WS)=U(4,1)"
Range("C16").Select
Selection.Font.Bold = True
Range("C18").Select
ActiveCell.FormulaR1C1 = "Ganancia del controlador - (KP)"
Range("C18").Select
Selection.Font.Bold = True
Range("C20").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"
Range("C20").Select
Selection.Font.Bold = True
Range("C22").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos - (TD)"
Range("C22").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
LS = InputBox("Calor latente del vapor - Kc/Kg-ºC (LS):"): Cells(13, 1) = LS
CTC = InputBox("Coeficiente de transferencia de calor (CTC):"): Cells(15, 1) = CTC
A1 = InputBox("Área de transferencia de calor del 1º Efecto - m2 (A1):"):
Cells(17, 1) = A1
A2 = InputBox("Área de transferencia de calor del 2º Efecto - m2 (A2):"):
Cells(19, 1) = A2
A3 = InputBox("Área de transferencia de calor del 3º Efecto - m2 (A3):"):
Cells(21, 1) = A3
K1 = InputBox("Factor Controlador de nivel 1 (K1):"): Cells(23, 1) = K1
K2 = InputBox("Factor Controlador de nivel 2 (K2):"): Cells(3, 2) = K2
K3 = InputBox("Factor Controlador de nivel 3 (K3):"): Cells(5, 2) = K3
WF = InputBox("Caudal de operación de la alimentación Kg/min - (WF):"): Cells(7,
2) = WF
CF = InputBox("[Alimentación] en peso - Kg/Kg (CF):"): Cells(9, 2) = CF
TAF = InputBox("Temperatura de operación de la alimentación - ºC (TAF):"):
Cells(11, 2) = TAF
WS = InputBox("Caudal de operación del vapor - Kg/min (WS):"): Cells(13, 2) = WS
MX(1, 1) = InputBox("Incremento inicial de peso en el 1º efecto Kg
(V1)=MX(1,1):"): Cells(15, 2) = MX(1, 1)
MX(2, 1) = InputBox("Incremento inicial de [producto] en el 1º efecto Kg/Kg
(C1)=MX(2,1):"): Cells(17, 2) = MX(2, 1)
MX(3, 1) = InputBox("Incremento inicial de temperatura en el 1º efecto - ºC
(T1)=MX(3,1):"): Cells(19, 2) = MX(3, 1)
MX(4, 1) = InputBox("ncremento inicial de peso en el 2º efecto Kg (V2)=MX(4,1):"):
Cells(21, 2) = MX(4, 1)

386
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 387

Simulación de procesos

MX(5, 1) = InputBox("Incremento inicial de [producto] en el 2º efecto Kg/Kg


(C2)=MX(2,1):"): Cells(23, 2) = MX(5, 1)
MX(6, 1) = InputBox("Incremento inicial de temperatura en el 2º efecto - ºC
(T2)=MX(6,1):"): Cells(3, 3) = MX(6, 1)
MX(7, 1) = InputBox("ncremento inicial de peso en el 3º efecto Kg (V3)=MX(7,1):"):
Cells(5, 3) = MX(7, 1)
MX(8, 1) = InputBox("Incremento inicial de [producto] en el 3º efecto Kg/Kg
(C3)=MX(8,1):"): Cells(7, 3) = MX(8, 1)
MX(9, 1) = InputBox("Incremento inicial de temperatura en el 3º efecto - ºC
(T3)=MX(9,1):"): Cells(9, 3) = MX(9, 1)
U(1, 1) = InputBox("Entrada - Incremento de la alimentación en peso del producto
del 1º efecto - Kg/min (WF)=U(1,1):"): Cells(11, 3) = U(1, 1)
U(2, 1) = InputBox("Entrada - Incremento de [producto] en el 1º efecto - Kg/Kg
(CF) = U(2,1):"): Cells(13, 3) = U(2, 1)
U(3, 1) = InputBox("Entrada - Incremento de la temperatura de la alimentación del
1º efecto - ºC (TAF) = U(3,1):"): Cells(15, 3) = U(3, 1)
U(4, 1) = InputBox("Entrada - Incremento del caudal de vapor - Kg/min
(WS)=U(4,1):"): Cells(17, 3) = U(4, 1)
KP = InputBox("Ganancia del controlador - (KP):"): Cells(19, 3) = KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(21,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(23, 3) = TD
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0: ID(1, 3) = 0: ID(1, 4) = 0: ID(1, 5) = 0: ID(1, 6) =
0: ID(1, 7) = 0: ID(1, 8) = 0: ID(1, 9) = 0
ID(2, 1) = 0: ID(2, 2) = 1: ID(2, 3) = 0: ID(2, 4) = 0: ID(2, 5) = 0: ID(2, 6) =
0: ID(2, 7) = 0: ID(2, 8) = 0: ID(2, 9) = 0
ID(3, 1) = 0: ID(3, 2) = 0: ID(3, 3) = 1: ID(3, 4) = 0: ID(3, 5) = 0: ID(3, 6) =
0: ID(3, 7) = 0: ID(3, 8) = 0: ID(3, 9) = 0
ID(4, 1) = 0: ID(4, 2) = 0: ID(4, 3) = 0: ID(4, 4) = 1: ID(4, 5) = 0: ID(4, 6) =
0: ID(4, 7) = 0: ID(4, 8) = 0: ID(4, 9) = 0
ID(5, 1) = 0: ID(5, 2) = 0: ID(5, 3) = 0: ID(5, 4) = 0: ID(5, 5) = 1: ID(5, 6) =
0: ID(5, 7) = 0: ID(5, 8) = 0: ID(5, 9) = 0
ID(6, 1) = 0: ID(6, 2) = 0: ID(6, 3) = 0: ID(6, 4) = 0: ID(6, 5) = 0: ID(6, 6) =
1: ID(6, 7) = 0: ID(6, 8) = 0: ID(6, 9) = 0
ID(7, 1) = 0: ID(7, 2) = 0: ID(7, 3) = 0: ID(7, 4) = 0: ID(7, 5) = 0: ID(7, 6) =
0: ID(7, 7) = 1: ID(7, 8) = 0: ID(7, 9) = 0
ID(8, 1) = 0: ID(8, 2) = 0: ID(8, 3) = 0: ID(8, 4) = 0: ID(8, 5) = 0: ID(8, 6) =
0: ID(8, 7) = 0: ID(8, 8) = 1: ID(8, 9) = 0
ID(9, 1) = 0: ID(9, 2) = 0: ID(9, 3) = 0: ID(9, 4) = 0: ID(9, 5) = 0: ID(9, 6) =
0: ID(9, 7) = 0: ID(9, 8) = 0: ID(9, 9) = 1
'Entrada de filas y columnas matriz MA(9,9)
'R = Constante de los gases perfectos = 0,082
'LA = calor latente de vaporización de agua del sólido
'TW = Temperatura húmeda del sólido = temperatura del bulbo húmedo = constante
'MHC = Humedad del producto a la salida
'LS = longitud del secadero. MHC = Humedad crítica. MO = Humedad del producto a la
entrada. CR = Fracción calor de reacción del producto
'MAH = . MG = . MS = . CR =
'SS= Constante de Stefan Boltzman=5,675*10^(-8)
TS = 170: V1 = 2000: C1 = 0.15: T1 = 150: V2 = 2000: C2 = 0.2: T2 = 85: V3 =
2000: C3 = 0.5: T3 = 60
F1 = 1 / (606.5 - 0.695 * T1)
F2 = 1 / (606.5 - 0.695 * T2)
F3 = 1 / (606.5 - 0.695 * T3)
FS = 1 / (606.5 - 0.695 * TS)
F6 = -CTC * A2 * (F2 ^ 2) * (606.5 * (T1 - 2 * T2) + 0.695 * (T2 ^ 2)) / V2
F9 = -CTC * A3 * (F3 ^ 2) * (606.5 * (T2 - 2 * T3) + 0.695 * (T3 ^ 2)) / V3
MA(1, 1) = -K1: MA(1, 3) = CTC * A1 * (F1 ^ 2) / FS

387
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 388

Simulación y control de procesos por ordenador

MA(2, 2) = -K1: MA(2, 3) = -CTC * A1 * (F1 ^ 2) * C1 / (FS * V1)


MA(3, 3) = (-K1 * V1 - 606.5 * LS * WS * (F1 ^ 2) - (T1 * CTC * A1 * (F1 ^ 2) /
FS)) / V1
MA(4, 1) = K1: MA(4, 3) = -CTC * A2 * F2: MA(4, 4) = -K2: MA(4, 6) = CTC * A2 *
(F2 ^ 2) / F1
MA(5, 1) = K1 * (C1 - C2) / V2: MA(5, 2) = K1 * V1 / V2: MA(5, 3) = CTC * A2 * F2
* C2 / V2
MA(5, 5) = -K2: MA(5, 6) = -CTC * A2 * C2 * (F2 ^ 2) / (V2 * F1)
MA(6, 1) = K1 * (T1 - T2) / V2: MA(6, 3) = K1 * V1 / V2
MA(6, 6) = (-K2 + F6 - T2 * CTC * A2 * (F2 ^ 2) / (F1 * V2))
MA(7, 4) = K2: MA(7, 6) = -CTC * A3 * F3: MA(7, 7) = -K3: MA(7, 9) = CTC * A3 *
(F3 ^ 2) / F2
MA(8, 4) = K2 * (C2 - C3) / V3: MA(8, 5) = K2 * V2 / V3: MA(8, 6) = C3 * CTC * A3
* F3 / V3
MA(8, 8) = -K3: MA(8, 9) = -C3 * CTC * A3 * (F3 ^ 2) / (F2 * V3)
MA(9, 4) = K2 * (T2 - T3) / V3: MA(9, 6) = (K2 * V2 - CTC * A3 * T3 * F3 + T3 *
CTC * A3 * F3) / V3
MA(9, 9) = (-K3 + F9 - T3 * V * A3 * (F3 ^ 2) / (F2 * V3))
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MB(9,4)
MB(1, 1) = 1
MB(2, 1) = (CF - C1) / V1: MB(2, 2) = WF / V1
MB(3, 1) = (TAF - T1) / V1: MB(3, 3) = WF / V1: MB(3, 4) = -LS * T1 * F1 / V1
For j = 1 To 9: For i = 1 To 4
MC(j, i) = MB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1
For j = 1 To 9: For i = 1 To 9
MP1(j, i) = 0
For k = 1 To 9
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 9: For i = 1 To 9
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 9: For i = 1 To 9
MP3(j, i) = 0
For k = 1 To 9
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 9: For i = 1 To 9
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 9: For i = 1 To 9
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 9: For i = 1 To 4
MD1(j, i) = 0
For k = 1 To 9
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 9: For i = 1 To 4

388
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 389

Simulación de procesos

MD2(j, i) = MC(j, i) + MD1(j, i)


Next i: Next j
For L = 2 To 4
For j = 1 To 9: For i = 1 To 4
MD3(j, i) = 0
For k = 1 To 9
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 9: For i = 1 To 4
MD4(j, i) = MD2(j, i) + MD3(j, i)
Next i: Next j
For j = 1 To 9: For i = 1 To 4
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de respuestas anteriores
Contador = 0
While Abs(Cells(Contador + 4, 4)) Or Abs(Cells(Contador + 4, 5)) > 0
Cells(Contador + 4, 4) = "": Cells(Contador + 4, 5) = "": Cells(Contador + 4,
6) = "": Cells(Contador + 4, 7) = "": Cells(Contador + 4, 8) = ""
Contador = Contador + 1
Wend
H = 0
'Datos para dibujar la curva de respuesta
For w = t0 To tf Step Dt
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
H = 0
ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
If w = t0 Then Z(2) = 0
U(4, 1) = -KP * (MX(8, 1) - Z(2) + (Dt / TR) * MX(8, 1) + (TD / Dt) * (MX(8, 1) -
2 * Z(2) + Z(1)))
ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
'Controlador incremental PID
U(4, 1) = -KP * (MX(8, 1) - Z(2) + (Dt / TR) * MX(8, 1) + (TD / Dt) * (MX(8, 1) -
2 * Z(2) + Z(1)))
For j = 1 To 9
S = 0
For k = 1 To 9
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
'[producto] *1000 en efectos 1º, 2º, 3º, Caudal vapor de calefacción (Kg/h)
Cells(p + 3, 5) = MX(2, 1) * 1000: Cells(p + 3, 6) = MX(5, 1) * 1000: Cells(p
+ 3, 7) = MX(8, 1) * 1000: Cells(p + 3, 8) = U(4, 1)
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, V As Single
Dim U(2, 1), Z(2), MP4(2, 2), MD4(2, 2), MX(2, 1)

389
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 390

Simulación y control de procesos por ordenador

Dim n As Single, p As Single, chartsTemp As Object, graf As Object


Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 8)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "EVAPORADOR TRIPLE EFECTO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "[PRODUCTOS]*1000 de 1º
EFECTO, 2º EFECTO, 3º EFECTO - VÁLVULA DE CONTROL"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 700:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A28").Select
ActiveCell.FormulaR1C1 = ""
Range("A28").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MX(), MD4(), U(), Z())
Dim H As Integer, j As Integer, k As Integer, i As Integer, S As Single, V As
Single
H = H + 1
j = 1: S = 0
For k = 1 To 9
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

390
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 391

Simulación de procesos

Caudal
de vapor
Incremento inicial de
Factor [Producto] [Producto] [Producto] =
Tinicial temperatura en el 2º Tiempo
Controlador de en el 1º en el 2º en el 3º Posición
(minutos) efecto - ºC (minutos)
nivel 2 (K2) Efecto Efecto Efecto válvula
(T2)=MX(6,1)
de
control
0 0,1000 0 0 0,004758 0,000664 0,000089 0,000000
Factor Incremento inicial de
Tfinal
Controlador de peso en el 3º efecto 1 0,009063 0,001655 0,000279 0,000000
(minutos)
nivel 3 (K3) Kg (V3)=MX(7,1)
60 0,1000 0 2 0,012959 0,002904 0,000582 0,000000
Caudal de Incremento inicial de
Incremento
operación de la [producto] en el 3º
tiempo 3 0,016484 0,004353 0,001003 0,000000
alimentación efecto Kg/Kg
(minutos)
Kg/min - (WF) (C3)=MX(8,1)
1 25 0 4 0,019673 0,005953 0,001543 -0,000001
Incremento inicial de
[Alimentación]
temperatura en el 3º
Nº de puntos en peso - Kg/Kg 5 0,022559 0,007662 0,002199 -0,000001
efecto - ºC
(CF)
(T3)=MX(9,1)
61 0,1000 0 6 0,025171 0,009444 0,002966 -0,000002
Entrada -
Temperatura de Incremento de la
operación de la alimentación en peso
Valor de p 7 0,027534 0,011271 0,003836 -0,000002
alimentación - del producto del 1º
ºC (TAF) efecto - Kg/min
(WF)=U(1,1)
60 40 ,1 8 0,029672 0,013117 0,004800 -0,000003
Entrada -
Calor latente Caudal de
Incremento de
del vapor - operación del
[producto] en el 1º 9 0,031606 0,014962 0,005848 -0,000003
Kc/Kg-ºC vapor - Kg/min
efecto - Kg/Kg (CF)
(LS) (WS)
= U(2,1)
660 10 0 10 0,033356 0,016791 0,006969 -0,000004
Entrada -
Incremento
Incremento de la
Coeficiente de inicial de peso
temperatura de la
transferencia en el 1º efecto 11 0,034940 0,018588 0,008154 -0,000005
alimerntación del 1º
de calor (C TC) Kg
efecto - ºC (TAF) =
(V1)=MX(1,1)
U(3,1)
40 0 0 12 0,036373 0,020345 0,009391 -0,000006
Área de Incremento Entrada -
transferencia inicial de Incremento del
de calor del [producto] en el caudal de vapor - 13 0,037670 0,022051 0,010671 -0,000007
1º Efecto - 1º efecto Kg/Kg Kg/min
m2 (A1) (C1)=MX(2,1) (WS)=U(4,1)
60 0 0 14 0,038844 0,023701 0,011983 -0,000007
Área de Incremento
transferencia inicial de
Ganancia del
de calor del temperatura en 15 0,039905 0,025290 0,013320 -0,000008
controlador - (KP)
2º Efecto - el 1º efecto - ºC
m2 (A2) (T1)=MX(3,1)
50 0 0,5 16 0,040866 0,026815 0,014671 -0,000009
Área de Incremento
Tiempo de acción
transferencia inicial de peso
integral -
de calor del en el 2º efecto 17 0,041735 0,028274 0,016030 -0,000010
minutos/repetición -
3º Efecto - Kg
(TR)
m2 (A3) (V2)=MX(4,1)
30 0 2,5 18 0,042522 0,029665 0,017389 -0,000011
Incremento
Factor
inicial de Tiempo de acción
Controlador
[producto] en el derivada - minutos - 19 0,043233 0,030987 0,018741 -0,000012
de nivel 1
2º efecto Kg/Kg (TD)
(K1)
(C2)=MX(5,1)
0,1000 0 0 20 0,043877 0,032243 0,020081 -0,000013

391
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 392

Simulación y control de procesos por ordenador

EVAPORADOR TRIPLE EFECTO


0,060000

0,050000
[PRODUCTOS]*1000 de 1º EFECTO, 2º
EFECTO, 3º EFECTO - VÁLVULA DE

0,040000
CONTROL

0,030000 Serie1
Serie2
0,020000 Serie3
Serie4
0,010000

0,000000
0 10 20 30 40 50 60 70

-0,010000
Tiempo (minutos)

Fig. 15.8 Programa de evaporador de triple efecto

15.5 Reactor discontinuo


El reactor discontinuo opera sin intercambio de materia con el exterior. Se alimenta ini-
cialmente con los reactantes y una vez ha terminado la reacción se vacía el reactor. En
nuestro caso suponemos que la reacción es exotérmica, por lo cual el reactor es calen-
tado al principio con vapor y después, si la temperatura de los componentes supera un
límite determinado, es refrigerado con agua. De este modo, a la camisa del reactor lle-
gan dos tuberías, una de vapor y otra de agua, cada una con su correspondiente válvu-
la de control accionadas por un r controlador y con un montaje de margen partido, es
decir, las dos válvulas no pueden estar abiertas a la vez y se reparten la señal de salida
del controlador. Es decir, la válvula de vapor trabaja de 0,2 – 0,6 bar (3-9 psi) y la vál-
vula de agua lo hace de 0,06 – 1 bar (9-15 psi) (figura 15.9).
Ecuaciones de la reacción:
La velocidad de la reacción entre los dos reactantes A y B viene dada por la ecuación
de Arrhenius:
K = A*e-E/RT
Con:

K = velocidad de la reacción;
A = factor de actividad (constante);
E = energía de activación en kcaVmol;
R = constante de los gases perfectos;
T = temperatura absoluta.
Mientras dura la reacción se gasta el producto A y se produce el producto B.
Se supone que la densidad del contenido del reactor es constante, así como el volumen
del reactor.
La velocidad de variación del contenido del producto A dentro del tanque es, conside-
rando que es una reacción de primer orden:

392
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 393

Simulación de procesos

Fig. 15.9 Reactor discontinuo. Fuente: Anhui Herrman Impex Co

dCA
V* = −V * K1 * CA
dt
Siendo:
K1 = A1*e-E1/RT la velocidad de reacción del producto A.
La velocidad de variación del contenido del producto B dentro del tanque es:

dCB
V* = V * K1 * CA − V * K 2 * CB
dt
Siendo:
K2 = A1*e-E2/RT la velocidad de reacción del producto B.
La ecuación de intercambio calorífico entre los reactantes contenidos en la camisa del
reactor es:
dX 3
DR * V * CP * = − L1 * V * K1 * CA − L 2 * K 2 * CB − H * A * ( X 3 − TP )
dt

Las ecuacionesd e intercambio calorífico en la camisa son:


Para el vapor de calefacción:
dDS H * A * (TV − TP )
VC * = 16 * KV * X 1 * ( PS − PC ) + ( PS + PC ) −
dt HS − HC

Para el agua de refrigeración:

dTC
1000 * VC * 1 * = KA * X 2 * 1 * (T 1 − TC ) + HA * (TP − TC )
dt

393
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 394

Simulación y control de procesos por ordenador

La ecuación de transmisión de temperatura a través del elemento térmico es:


dX 4 1
= + ( X 3 − X 4)
dt T2

El significado de los símbolos utilizados es el siguiente:


CA = Concentración del producto A en moles/m3.
CB = Concentración del producto B en moles/m3.
X1 = Señal recibida por la válvula de vapor = caudal vapor (kg/min).
X2 = Señal recibida por la válvula de agua = caudal agua (kg/min).
X3 = Temperatura de los reactantes, °C.
X4 = Señal de temperatura enviada por el elemento de temperatura al controlador.
X5 = Señal de salida del controlador.
T2 = Constante de tiempo del elemento de temperatura en minutos.
PC = Presión en el interior de la camisa del reactor.
TC = Temperaturad el ag.uad e refrig.eraciónd e la camisa.
TP = Temperatura de la pared del reactor.
VC = Volumen de la camisa del reactor.
DS = Densidad del vapor en el interior de la camisa.
WS = Caudal de vapor.
PS = Presión del vapor en la entrada, bar absolutos.
T1 = Temperatura de entrada del agua de refrigeración.
L1, L2 = Calor de reacción de los productos A y B.
A1, A2 = Factores de actividad de los productos A y B.
E1, E2 = Energía de activación de los productos A y B.
V = Volumen del reactor.
H = Coeficiente global de transferencia de calor kcal/m2-h-°C.
A = Area de intercambio calorífico, m2.
DR = Densidad de los reactantes, kg/m3.
CP = Calor específico de los reactantes.
HS, HC = Entalpías del vapor y del condensado.
KV, KA = Coeficientes de las válvulas de vapor y de agua.
Escogemos las variables de estado siguientes:
CA = Moles/mol producto A.
CB = Moles/mol producto B.
X3 = Temperatura del reactor.
DS = Densidad del vapor de calefacción.
TC = Temperatura del agua de la camisa.

394
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 395

Simulación de procesos

X4 = Señal de salida del termopar.


Y las entradas
X1 = Caudal de la válvula de vapor.
X2 = Caudal de agua de refrigeración.
PS = Presión del vapor.
TP = Temperatura de la pared del reactor.
Linealizando las ecuaciones anteriores resultan las siguientes ecuaciones de estado:

CA' = -Kl* CA-Kl* CA *[El/(R*(X 3 + 273 )2 )]*X 3


siendo: K1 = Al*EXP{-E 1/[R*(X 3 + 273 )]}
CB' = -Kl* CA-K 2* CB *[El/(R*(X 3 + 273 ) 2 )]*(K1*CA*E1-K 2*CB*E 2 )*X 3

siendo: K 2 = A2*EXP{-E 2 /[R*(X 3 + 273 )]}


X 3' = [-L1/(DR*CP)]* Kl*CA-[L 2 /(DR*CP)]* K 2*CB-
- (S1 + S 2 + S 3 ) *X 3 + [H*A/(DR* V*CP)]*TP
siendo: S1 = L1*E1*K1*CA/[DR*CP*R*(X 3 + 273 ) 2 ]
S 2 = L 2*E 2*K 2*CB/[DR*CP*R*(X 3 + 273 ) 2 ]
S 3 = H*A/(DR*V* CP)
DS = ( 16*KV/VC)*PS 2 − PC 2*X 1 + [ 16*KV*X 1*PS) /
/(VC*PS 2 − PC 2 )]*PS + [H*A/[(HS − HC)*VC]*X 3]
TC = [KA*(T 1 − TC)/VC]*X 2 − [(X 2*KA/VC) +
+ H*A/ 1000*VC)] + TC + [H*A/( 1000*VC)]*TP
X 4' = ( 1/T 2 )*X 3 − ( 1/T 2 )*X 4

Programa del Reactor discontinuo

Option Explicit
Private Sub ReactorDiscontinuoVEstado_Click() 'cmdCreateTable_Click()
Dim T1 As Single 'Tiempo en abscisas
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, sigma As Single
Dim n As Integer, C2V As Single, S As Single, MHC As Single, CR As Single
Dim X1 As Single, X2 As Single, X3 As Single, X4 As Single, X5 As Single
Dim E1 As Single, E2 As Single, L1 As Single, L2 As Single, DR As Single, CP As
Single
Dim PS As Single, CA As Single, CB As Single, HS As Single, HC As Single, VC As
Single
Dim TS As Single, TAC As Single, DS As Single, TC As Single
Dim A1 As Single, A2 As Single, A3 As Single, K1 As Single, K2 As Single, K3 As
Single

395
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 396

Simulación y control de procesos por ordenador

Dim RDP As Single, OCV As Single, T1TUB As Single, MS As Single, CTC As Single
Dim TAF As Single, WS As Single, FS As Single, S1 As Single, S2 As Single, S3 As
Single
Dim PC As Single, KV As Single, KA As Single, T2 As Single
Dim KP As Single, TR As Single, TD As Single, GT As Single
Dim A As Single, WA As Single, VA As Single, TEF As Single, CF As Single, TL As
Single
Dim MF As Single, MO As Single, TA As Single, WF As Single, MP As Single, TG As
Single
Dim SS As Double, EG As Single, EP As Single, ER As Single, MR As Single, TP As
Single
Dim FX As Single, FY As Single, FZ As Single
Dim j As Integer, i As Integer, k As Integer, L As Integer, Contador As Integer
Dim p As Single, V As Single, H As Integer
Dim R As Single, LA As Single, TW As Single, LS As Single, MAH As Single, MG As
Single
Dim F1 As Single, F2 As Single, F3 As Single, F4 As Single, F5 As Single
Dim F6 As Single, F7 As Single, F8 As Single, F9 As Single
Dim ID(7, 7), MA(7, 7), MB(7, 5), MC(7, 5), MP1(7, 7), MP2(7, 7), MP3(7, 7),
MP4(7, 7)
Dim MD1(7, 5), MD2(7, 5), MD3(7, 5), MD4(7, 5)
Dim MX(7, 2), MX1(7, 2), MX2(7, 2), U(5, 2), Z(3)
'Reactor discontinuo
'Control por margen partido mediante dos válvulas de vapor y agua
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
'Funciones del reactor
'Controlador incremental - L = KP*(E+(1/R)*EDT+TD*(DE/DT)
'Válvulas con dinámica despreciable frente al tiempo de reacción del evaporador
'Variación de A - V*CA'=-V*CA*K1
'Variación de B - V*CB'=-V*CA*K1 - V*CB*K2
'Ecuaciones de intercambio calorífico entre reactantes y camisa
'DR*V*CP*X3'=-L1*V*K1*CA-L2*V*K2*CB-H*A*(X3-TP)
'Ecuaciones de intercambio calorífico en la camisa
'Vapor - VC*DS'=16*KV*X1*(SQR(PS-PC)*(PS+PC))-(H*A*(TV-TP)/(HS-HC)
'Agua -VC*TAC'=KA*X2*(T1-TAC)+H*A*(TP-TAC)/1000
''Termopar - X4'=(1/T2)*(X3-X4)
'Ecuaciones de estado. Los coeficientes de las variables de estado y de las entradas
'son valores medios de operación del reactor
'K=Ecuación de Arrhenius = EXP(-E/(R*Temperatura absoluta)
'CA,CB,X3,DS,TAC,X4 Variables de estado y Xl, X2, PS, TP variables de entrada
'son perturbaciones (incrementos alrededor del punto de operación)
'CA=[Moles/Mol] de producto A, CB=[Moles/Mol] de producto B en el reactor
'X3=Temperatura del reactor, DS=Densidad del vapor en la camisa, TAC = Temperatura de
agua en la camisa
'X4=Señal de salida del termopar, X1=Válvula de vapor, X2 = Caudal de la válvula de
agua
'PS=Presión de vapor, TP = Temperatura de la pared, KV y KA = Coeficientes de las
válvulas de vapor y de agua
'Ecuaciones de estado
'A -CA '= -K1*CA-K1*CA*(E1/(R*(X3+273)^2))*X3
'siendo K1=A1*EXP(-E1/(R*(X3+273)))
'B- CB'=K1*CA-K2*CB+(1/(R-(X3+273)^2))*(K1*CA*E1-K2*CB*E2)*X3
'siendo K2=A2*EXP(-E2/(R*(X3+273)))
'Reactor - X3'=(-L1/(DR*CP))*K1*CA-(L2/(DR*CP))*K2*CB-(S1+S2+S3)*X3+(H*A/(DR*V*CP))*TP
'siendo S1=L1*E1*K1*CA/(DR-CP*R*(X3+273)^2)
'S2=L2*E2*K2*CB/(DR*CP*R-(X3+273)^2), S3=H*A/(DR*V*CP)
'DS'=(16*KV/VC)*SQR(PS^2-PC^2)*X1+((16*KV*X1*PS)/(VC*SQR(PS^2-PC^2)))*PS+(H*A)/((HS-

396
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 397

Simulación de procesos

HC)*VC)*X3
'TAC '=(KA*(T1-TAC)/VC)*X2-((X2*KA/VC)+H*A/(1OOO*VC))*TAC+(H*A/(1OOO*VC))*TP,
X4'=(1/T2)*X3-(1/T2)*X4
'PHI = Matriz de transición, X(K*T) = Vector de estado
'Dt debe ser ta1 que 1a serie PHI = ID*AT+A^2(Dt^2/2!),
'converja con números que e1 ordenador pueda manejar (1<SUMA Â(I,J)^*T<10)
'Títulos en celdas
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Temperatura Reactor"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Caudal vapor de calefacción"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Caudal agua de refrigeración"
Range("G2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Factor de activación de A (A1)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Factor de activación de B (A2)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Energía de activación de A - Kc/mol (E1)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Energía de activación de B - Kc/mol (E2)"
Range("A18").Select

397
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 398

Simulación y control de procesos por ordenador

Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Calor de reacción de A - Kc/mol (L1)"
Range("A20").Select
Selection.Font.Bold = True
Range("A22").Select
ActiveCell.FormulaR1C1 = "Calor de reacción de B - Kc/mol (L2)"
Range("A22").Select
Selection.Font.Bold = True
Range("A24").Select
ActiveCell.FormulaR1C1 = "Volumen del reactor - m3 (V)"
Range("A24").Select
Selection.Font.Bold = True
Range("A26").Select
ActiveCell.FormulaR1C1 = "Densidad de los reactantes - Kg/l (DR)"
Range("A26").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Calor específico de los reactantes - Kc/Kg-ºC (CP)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Coeficiente de transferencia de calor (H)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Área de transferencia de calor - m2 (A)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Entalpía del vapor de entrada (HS)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Entalpía del condensado (HC)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Volumen de la camisa - m3 (VC)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Temperatura del agua de refrigeración - ºC (T1)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo del termopar - minutos (T2)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Caudal de operación del vapor Kg/min - (X1)"
Range("B18").Select
Selection.Font.Bold = True
Range("B20").Select
ActiveCell.FormulaR1C1 = "Caudal de operación del agua de refrigeración - Kg/min
(X2)"
Range("B20").Select
Selection.Font.Bold = True

398
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 399

Simulación de procesos

Range("B22").Select
ActiveCell.FormulaR1C1 = "Presión de operación del vapor - bar (PS)"
Range("B22").Select
Selection.Font.Bold = True
Range("B24").Select
ActiveCell.FormulaR1C1 = "Temperatura de operación de la pared del reactor - ºC
(TP)"
Range("B24").Select
Selection.Font.Bold = True
Range("B26").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de [producto A] moles/mol (CA)"
Range("B26").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de [producto B] moles/mol (CB)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de temperatura en el reactor - ºC
(X3)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de densidad del vapor de calefacción
(DS)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la temperatura de agua de la camisa
- ºC (TC)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Incremento inicial de la señal de salida del termopar -
(X4)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de vapor - m3/min
(X1)=U(1,1)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de agua de refrigeración
- m3/min (X2) = U(2,1)"
Range("C14").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de la presión de vapor - bar (PS) =
U(3,1)"
Range("C16").Select
Selection.Font.Bold = True
Range("C18").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento de la temperatura de la pared - ºC
(TP)=U(4,1)"
Range("C18").Select
Selection.Font.Bold = True
Range("C20").Select

399
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 400

Simulación y control de procesos por ordenador

ActiveCell.FormulaR1C1 = "Ganancia del controlador - (KP)"


Range("C20").Select
Selection.Font.Bold = True
Range("C22").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"
Range("C22").Select
Selection.Font.Bold = True
Range("C24").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos - (TD)"
Range("C26").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
A1 = InputBox("Factor de activación de A (A1):"): Cells(13, 1) = A1
A2 = InputBox("Factor de activación de B (A2):"): Cells(15, 1) = A2
E1 = InputBox("Energía de activación de A - Kc/mol (E1):"): Cells(17, 1) = E1
E2 = InputBox("Energía de activación de B - Kc/mol (E2):"): Cells(19, 1) = E2
L1 = InputBox("Calor de reacción de A - Kc/mol (L1):"): Cells(21, 1) = L1
L2 = InputBox("Calor de reacción de B - Kc/mol (L2):"): Cells(23, 1) = L2
V = InputBox("Volumen del reactor - m3 (V):"): Cells(25, 1) = V
DR = InputBox("Densidad de los reactantes - Kg/l (DR):"): Cells(27, 1) = DR
CP = InputBox("Calor específico de los reactantes - Kc/Kg-ºC (CP):"): Cells(3, 2)
= CP
H = InputBox("Coeficiente de transferencia de calor (H):"): Cells(5, 2) = H
A = InputBox("Área de transferencia de calor - m2 (A):"): Cells(7, 2) = A
HS = InputBox("Entalpía del vapor de entrada (HS):"): Cells(9, 2) = HS
HC = InputBox("Entalpía del condensado (HC):"): Cells(11, 2) = HC
VC = InputBox("Volumen de la camisa - m3 (VC):"): Cells(13, 2) = VC
T1 = InputBox("Temperatura del agua de refrigeración - ºC (T1):"): Cells(15, 2) =
T1
T2 = InputBox("Constante de tiempo del termopar - minutos (T2):"): Cells(17, 2) =
T2
X1 = InputBox("Caudal de operación del vapor Kg/min - (X1):"): Cells(19, 2) = X1
X2 = InputBox("Caudal de operación del agua de refrigeración - Kg/min - (X2):"):
Cells(21, 2) = X2
PS = InputBox("Presión de operación del vapor - bar (PS):"): Cells(23, 2) = PS
TP = InputBox("Temperatura de operación de la pared del reactor - ºC (TP):"):
Cells(25, 2) = TP
CA = InputBox("Incremento inicial de [producto A] moles/mol (CA):"): Cells(27, 2) =
CA: MX(1, 1) = CA
CB = InputBox("Incremento inicial de [producto B] moles/mol (CA):"): Cells(3, 3) =
CB: MX(2, 1) = CB
X3 = InputBox("Incremento inicial de temperatura en el reactor - ºC (X3):"):
Cells(5, 3) = X3: MX(3, 1) = X3
DS = InputBox("Incremento inicial de densidad del vapor de calefacción (DS):"):
Cells(7, 3) = DS: MX(4, 1) = DS
TC = InputBox("Incremento inicial de la temperatura de agua de la camisa - ºC
(TC):"): Cells(9, 3) = TC: MX(5, 1) = TC
X4 = InputBox("Incremento inicial de la señal de salida del termopar - (X4):"):
Cells(11, 3) = X4: MX(6, 1) = X4
U(1, 1) = InputBox("Entrada - Incremento del caudal de vapor - m3/min
(X1)=U(1,1):"): Cells(13, 3) = U(1, 1)
U(2, 1) = InputBox("Entrada - Incremento del caudal de agua de refrigeración -

400
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 401

Simulación de procesos

m3/min (X2) = U(2,1):"): Cells(15, 3) = U(2, 1)


U(3, 1) = InputBox("Entrada - Incremento de la presión de vapor - bar (PS) =
U(3,1):"): Cells(17, 3) = U(3, 1)
U(4, 1) = InputBox("Entrada - Incremento de la temperatura de la pared - ºC
(TP)=U(4,1):"): Cells(19, 3) = U(4, 1)
KP = InputBox("Ganancia del controlador - (KP):"): Cells(21, 3) = KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(23,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(25, 3) = TD
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0: ID(1, 3) = 0: ID(1, 4) = 0: ID(1, 5) = 0: ID(1, 6) =
0
ID(2, 1) = 0: ID(2, 2) = 1: ID(2, 3) = 0: ID(2, 4) = 0: ID(2, 5) = 0: ID(2, 6) =
0
ID(3, 1) = 0: ID(3, 2) = 0: ID(3, 3) = 1: ID(3, 4) = 0: ID(3, 5) = 0: ID(3, 6) =
0
ID(4, 1) = 1: ID(4, 2) = 0: ID(4, 3) = 0: ID(4, 4) = 1: ID(4, 5) = 0: ID(4, 6) =
0
ID(5, 1) = 0: ID(5, 2) = 1: ID(5, 3) = 0: ID(5, 4) = 0: ID(5, 5) = 1: ID(5, 6) =
0
ID(6, 1) = 0: ID(6, 2) = 0: ID(6, 3) = 1: ID(6, 4) = 0: ID(6, 5) = 0: ID(6, 6) =
1
'Entrada de filas y columnas matriz MA(6,6)
'R = Constante de los gases perfectos = 0,082
'LA = calor latente de vaporización de agua del sólido
'TW = Temperatura húmeda del sólido = temperatura del bulbo húmedo = constante
'MHC = Humedad del producto a la salida
'LS = longitud del secadero. MHC = Humedad crítica. MO = Humedad del producto a la
entrada. CR = Fracción calor de reacción del producto
'MAH = . MG = . MS = . CR =
'SS= Constante de Stefan Boltzman=5,675*10^(-8)
R = 1.99: PC = 7: CA = 30000: CB = 10000: X2 = 0.2: KV = 10: KA = 6: X3 = 100: DS
= 3.6: TAC = 60: X4 = 0.5
K1 = A1 * Exp(-E1 / (R * (X3 + 273)))
K2 = A2 * Exp(-E2 / (R * (X3 + 273)))
S1 = L1 * E1 * K1 * CA / (DR * CP * R * (X3 + 273) ^ 2)
S2 = L2 * E2 * K2 * CB / (DR * CP * R * (X3 + 273) ^ 2)
S3 = H * A / (DR * V * CP)
MA(1, 1) = -K1: MA(1, 3) = -K1 * CA * (E1 / (R * (X3 + 273) ^ 2))
MA(2, 1) = K1: MA(2, 2) = -K2: MA(2, 3) = (K1 * CA * E1 - K2 * CB * E2) / (R *
(X3 + 273) ^ 2)
MA(3, 1) = -L1 * K1 / (DR * CP): MA(3, 2) = -L2 * K2 / (DR * CP): MA(3, 3) = -S1
- S2 - S3
MA(3, 5) = S3
MA(4, 3) = H * A / ((HS - HC) * VC)
MA(5, 5) = -(X2 * KA / VC) - H * A / (1000 * VC)
MA(6, 3) = 1 / T2: MA(6, 6) = -1 / T2
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MB(6,4)
MB(3, 3) = H * A / (DR * V * CP)
MB(4, 1) = (16 * KV / VC) * (Sqr(PS ^ 2 - PC ^ 2))
MB(4, 3) = (16 * KV * X1 * PS) / (VC * Sqr(PS ^ 2 - PC ^ 2))
MB(5, 2) = (T1 - TAC) * KA / VC: MB(5, 4) = H * A / (1000 * VC)
For j = 1 To 6: For i = 1 To 4
MC(j, i) = MB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1

401
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 402

Simulación y control de procesos por ordenador

For j = 1 To 6: For i = 1 To 6
MP1(j, i) = 0
For k = 1 To 6
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 6: For i = 1 To 6
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 6: For i = 1 To 6
MP3(j, i) = 0
For k = 1 To 6
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 6: For i = 1 To 6
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 6: For i = 1 To 6
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 6: For i = 1 To 4
MD1(j, i) = 0
For k = 1 To 6
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 6: For i = 1 To 4
MD2(j, i) = MC(j, i) + MD1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 6: For i = 1 To 4
MD3(j, i) = 0
For k = 1 To 6
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 6: For i = 1 To 4
MD4(j, i) = MD2(j, i) + MD3(j, i)
Next i: Next j
For j = 1 To 6: For i = 1 To 4
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de respuestas anteriores
Contador = 0
While Abs(Cells(Contador + 4, 4)) Or Abs(Cells(Contador + 4, 5)) > 0
Cells(Contador + 4, 4) = "": Cells(Contador + 4, 5) = "": Cells(Contador + 4,
6) = "": Cells(Contador + 4, 7) = ""
Contador = Contador + 1
Wend
H = 0
'Datos para dibujar la curva de respuesta - X5 = Señal de salida del controlador,
U(1,1) = Caudal vapor, U(2,1) = Caudal agua
For w = t0 To tf Step Dt

402
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 403

Simulación de procesos

p = (w - t0) / Dt: Cells(11, 1) = p


Cells(p + 3, 4) = w
H = 0
ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
If w = t0 Then Z(2) = 0: U(1, 1) = X5: U(2, 1) = 0: GoTo 10 ' Calefacción
If w <> t0 Then X5 = -KP * (MX(6, 1) - Z(2) + (Dt / TR) * MX(6, 1) + (TD /
Dt) * (MX(6, 1) - 2 * Z(2) + Z(1)))
If X5 > 1E+20 Then U(2, 1) = -X5: U(1, 1) = 0: If Sgn(U(2, 1)) = -1 Then U(2, 1)
= 0: GoTo 10 'Refrigeración
If X5 >= 0.5 Then U(1, 1) = X5: U(2, 1) = 0: GoTo 20 'Calefacción
If X5 < 0.5 Then U(2, 1) = -X5: U(1, 1) = 0: If Sgn(U(2, 1)) = -1 Then U(2, 1) =
0 'Refrigeración
20 ControlPID MP4(), MX(), MD4(), U(), Z() 'Control PID
X5 = -KP * (MX(6, 1) - Z(2) + (Dt / TR) * MX(6, 1) + (TD / Dt) * (MX(6, 1) - 2 *
Z(2) + Z(1)))
If X5 >= 0.5 Then U(1, 1) = X5: U(2, 1) = 0: GoTo 10 'Calefacción
If X5 < 0.5 Then U(2, 1) = -X5: U(1, 1) = 0: If Sgn(U(2, 1)) = -1 Then U(2, 1) =
0 'Refrigeración
10
For j = 1 To 6
S = 0
For k = 1 To 6
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, 1) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
Cells(p + 3, 5) = MX(6, 1) 'Temperatura reactor-camisa - señal de salida del
termpar
Cells(p + 3, 6) = U(1, 1) 'caudal vapor calefacción - posición válvula de
vapor
Cells(p + 3, 7) = U(2, 1) 'caudal agua refrigeración - posición válvula agua
refrigeración
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, V As Single
Dim U(2, 1), Z(2), MP4(2, 2), MD4(2, 2), MX(2, 1)
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 7)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers

403
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 404

Simulación y control de procesos por ordenador

.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns


.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "REACTOR DISCONTINUO"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "TEMPERATURA REACTOR-
CAMISA, CAUDAL VAPOR CALEFACCIÓN, CAUDAL AGUA REFRIGERACIÓN"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 520:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A30").Select
ActiveCell.FormulaR1C1 = ""
Range("A30").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MX(), MD4(), U(), Z())
Dim H As Integer, j As Integer, k As Integer, i As Integer, S As Single, V As
Single
H = H + 1
j = 1: S = 0
For k = 1 To 6
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

404
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 405

Calor específico Incremento inicial Caudal Caudal agua


Tinicial Tiempo Temperatura
de los reactantes de [producto B] vapor de de
(minutos) (minutos) Reactor
- Kc/Kg-ºC (CP) moles/mol (CB) calefacción refrigeración
0 0,899999976 0 0 0,207210034 0 0
Coeficiente de Incremento inicial
Tfinal
transferencia de de temperatura en 0,01 0,403039187 0 0,455862075
(minutos)
calor (H) el reactor - ºC (X3)
15 500 0,200000003 0,02 0,588050365 0 0,886686206
Incremento inicial
Incremento Área de
de densidad del
tiempo transferencia de 0,029999999 0,762778938 0 1,293710828
vapor de
(minutos) calor - m2 (A)
calefacción (DS)
1 6 0 0,039999999 0,927734137 0 1,678113699
Incremento inicial
Nº de Entalpía del vapor de la temperatura
0,049999997 1,083400369 0 2,041015148
puntos de entrada (HS) de agua de la
camisa - ºC (TC)
16 665 0 0,059999995 1,230238318 0 2,383480787
Incremento ini cial
Entalpía del de la señal de
Valor de p 0,069999993 1,36868608 0 2,706524372
condensado (HC) salida del
termopar - (X4)
1499,02478 193 0 0,079999991 1,499160409 0 3,011109352
Entrada -
Factor de Incremento del
Volumen de la
activación caudal de vapor - 0,089999989 1,622057796 0 3,298152924
camisa - m3 (VC)
de A (A1) m3/min
(X1)=U(1,1)
35 12 0 0,099999987 1,737755179 0 3,568527222
Entrada -
Temperatura del Incremento del
Factor de
agua de caudal de agua de
activación 0,109999985 1,846611142 0 3,823061466
refrigeración - ºC refrigeración -
de B (A2)
(T1) m3/min (X2) =
U(2,1)
50 25 0 0,119999982 1,948966622 0 4,062544346
Energía de Constante de Entrada -
activación tiempo del Incremento de la
0,12999998 2,045146227 0 4,287726402
de A - termopar - presión de vapor -
Kc/mol (E1) minutos (T2) bar (PS) = U(3,1)
40000 0,20 0 0,139999986 2,135458231 0 4,499321461

Entrada -
Energía de Caudal de
Incremento de la
activación operación del
temperatura de la 0,149999991 2,220196009 0 4,69800806
de B - vapor Kg/min -
pared - ºC
Kc/mol (E2) (X1)
(TP)=U(4,1)

60000 0,300000012 0 0,159999996 2,299638748 0 4,884431362

Caudal de
Calor de
operación del
reacción de Ganancia del
agua de 0,170000002 2,374051809 0 5,059205055
A - Kc/mol controlador - (KP)
refrigeración -
(L1)
Kg/min (X2)

-10000 0,20 2,00 0,180000007 2,443687677 0 5,222913742

Calor de Tiempo de acción


Presión de
reacción de integral -
operación del 0,190000013 2,508786201 0 5,376112938
B - Kc/mol minutos/repetición
vapor - bar (PS)
(L2) - (TR)

-15000 12 0,10 0,200000018 2,569575787 0 5,5193295 48

Temperatura de
Volumen del Tiempo de acción
operación de la
reactor - m3 derivada - minutos 0,210000023 2,626273632 0 5,653066635
pared del reactor
(V) - (TD)
- ºC (TP)

6 70 0,00 0,220000029 2,679086208 0 5,777801991

Densidad de
Incremento inicial
los
de [producto A] 0,230000034 2,728209972 0 5,893989563
reactantes -
moles/mol (CA)
Kg/l (DR)

900 0 0,240000039 2,773831367 0 6,002061844


Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 406

Simulación y control de procesos por ordenador

REACTOR DISCONTINUO

8
TEMPERATURA REACTOR-CAMISA, CAUDAL
VAPOR CALEFACCIÓN, CAUDAL AGUA

6
REFRIGERACIÓN

5
Serie1
4 Serie2
Serie3
3

0
0 2 4 6 8 10 12 14 16
Tiempo (minutos)

Fig. 15.10 Programa y ejemplo de simulación de un reactor discontinuo

En la figura 5.10 puede verse el programa del reactor y un caso particular en el que se
ha presentado un aumento del 1% en la temperatura de los reactantes, observándose
que inicialmente actúa el agua de refrigeración, seguida del vapor de calefacción, y que
al final del tiempo de estudio, vuelve a actuar la válvula de refrigeración.
En la ecuación del controlador, la variables es X(6,1) = X4 = señal de salida del termo-
par y la salida es X5 que puede ser dirigida hacia U(1,1) = válvula de vapor, o bien hacia
U(2,1) = válvula de agua de refrigeración, según sea el valor del incremento de X5.

15.6 Columna de destilación


Una columna de destilación separa en dos fracciones una mezcla de dos o más líqui-
dos. Los componentes menos densos y los más volátiles se encuentran en la parte supe-
rior o cabeza de la columna, mientras que los más densos y menos volátiles pasan a la
parte inferior o fondos de la columna (figura 15.11).

Fig. 15.11 Columna de destilación. Fuente: Wikipedia

406
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 407

Simulación de procesos

La separación entre los componentes se realiza entre las fases líquido y vapor en los lla-
mados platos o bandejas de la columna que están dispuestos en vertical, y que nume-
raremos a partir de la cabeza. Típicamente, cada bandeja tiene un nivel constante de
líquido, con lo cual el líquido sobrante cae a la bandeja inferior a través de la primera.
De este modo, existe un equilibrio entre los componentes que abandonan la bandeja
(líquido que rebosa y el vapor producido), y los componentes que entran en la misma
(líquido que rebosa de la bandeja superior y el vapor producido en la bandeja inferior).
La operación general de la columna tiene lugar de la forma siguiente:
La alimentación (mezcla de los componentes a separar) es introducida en la columna
de alimentación, con lo cual el vapor producido sube y borbotea a través de la bandeja
superior (o anterior), mientras que el líquido fluye a la bandeja inferior (o siguiente). A
medida que el vapor de cada bandeja asciende se va enriqueciendo con los componen-
tes más volátiles, mientras que el líquido al descender a la siguiente bandeja se va enri-
queciendo con los componentes más pesados. Esta sucesión de acontecimientos da
lugar a que el primer plato en la cabeza de la columna es muy rico en componentes
volátiles, y el último lo es en componentes pesados.
El vapor que abandona la cabeza de la columna es condensado y extraído como pro-
ducto destilado y una parte es introducida como reflujo en la primera bandeja, y de este
modo se mantiene un flujo interno de líquido que mantiene cargadas las bandejas.
En el fondo de la columna el líquido es extraído mientras que una parte es recirculada
a través del hervidor. Esta extracción es la justa para mantener un nivel constante en
fondos.
Las variables que regulan el funcionamiento de la columna son principalmente, caudal,
composición y temperatura de la alimentación, calor añadido en el hervidor, caudal de
destilado y el caudal de fondos.
Estudiemos la dinámica de la columna.
Suponemos:
Válvulas de control con dinámica despreciable frente al tiempo de reacción de la
columna.
Válvula y transmisor englobados en el proceso.
La mezcla es líquida y entra a su temperatura de ebullición.
El caudal de vapor que asciende dentro de la columna se considera constante e
igual al producido en el hervidor.
El líquido que rebosa en cada bandeja (reflujo) permanece constante.
Se desprecian las pérdidas de calor.
La presión de operación es constante.
El número de moles de cada producto en cada bandeja permanece constante.
El control de composición se realiza en la primera bandeja. Este es el lugar ideal pues-
to que los vapores tienen la misma composición que el destilado. Sin embargo, y tal
como puede verse en los ejemplos de ejecución del programa de la figura 15.14, relati-

407
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 408

Simulación y control de procesos por ordenador

vo a un caso particular de simulación (mezcla etanol-agua), su variación ante un cam-


bio de carga es muy pequeña, por lo cual para medirlas es necesario, o bien utilizar un
cromatógrafo (que es muy sensible, pero que toma un timepo largo para medir la com-
posición), o bien, en el caso de medir la temperatura como medida inferencial de la
composición (la temperatura está ligada con el equilibrio líquido-vapor), debe utilizar-
se una sonda de resistencia que sea capaz de medir los cambios de temperatura tan
pequeños que se producen. Otra posibilidad sería medir la temperatura en otra bande-
ja, pero si bien las variaciones son más amplias y, por tanto, más fáciles de medir con
un simple terrnopar (incluso con un termómetro), no siguen una línea paralela con las
variaciones de composición en la primera bandeja y, por tanto, el destilado variará de
composición, siendo necesario producir un destilado más puro para continuar fabri-
cando dentro de especificaciones.
Consideraremos para la simulación una mezcla etanol-agua, una columna con seis ban-
dejas, la alimentación en la sexta y, tal como hemos indicado, el control de composición
en la primera bandeja por variación del reflujo.
Las ecuaciones correspondientes son:
.
Bandeja nº1: M 1* X 1 = L * XD − L * X 1 + V * Y 2 − V * Y 1
.
y como XD = Y1, resulta: M 1* X 1 = L * Y 1 − L * X 1 + V * Y 2 − V * Y 1
.
Bandeja nº2: M 2 * X 2 = L * X 1 − L * X 2 + V *Y 3 − V *Y 2
.
Bandeja nº3: M 3 * X 3 = L * X 2 − L * X 3 + V *Y 4 − V *Y 3
.
Bandeja nº4: M 4 * X 4 = L * X 3 − L * X 4 + V *Y 5 − V *Y 4
.
Bandeja nº5: M 5 * X 5 = L * X 4 − L * X 5 + V *Y 6 − V *Y 5
.
Bandeja nº6: M 6 * X 6 = L * X 5 − ( L + LF ) * X 6 + V * YB − V * Y 6 + LF * XF
.
Rehervidor: MB * X B = ( L + LF ) * X 6 − LB * XB − V * YB
.
Y como: MB * X B = ( L + LF ) * X 6 − (l + lf ) * XB + V * XB − V * YB

siendo:
MI = moles etanol líquido en bandeja 1.
MB = moles etanol líquido en rehervidor.
XI = (moles/mol) etanol líquido en bandeja 1.
XB = (moles/mol) etanol líquido en fondos.
XD = (moles/mol) etanol líquido en destilado.
YI = (moles/mol) etanol vapor en bandeja 1.
L = caudal reflujo moles/segundo.
V = caudal vapor moles/segundo.

408
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 409

Simulación de procesos

LF = caudal mezcla alimentación moles/segundo.


XF = (moles/mol) etanol en alimentación.
Tomaremos como variables de estado las composiciones en las 6 bandejas y en fondos
X1, X2, X3, X4, X5, X6, XB y como variables de entrada el reflujo L, el caudal de vapor
V, el caudal de alimentación LFy la concentración de etanol en la alimentación XF.
Como las ecuaciones no son lineales es necesario linealizarlas para obtener las ecuacio-
nes de estado.
Para ello obtenemos la primera derivada de los términos no lineales y sustituímos en la
misma las variables por sus valores medios de operación, mientras que en el resto de la
ecuación sustituimos las variables por sus perturbaciones, es decir, los valores que se
desvían de sus promedios de operación.
Procediendo de este modo, obtenemos las siguientes ecuaciones de estado:
. _ _ _ _ _ _ _ _
X 1 = [-( L - L*K1 + V *K1 )*X 1 + ( Y l - X 1 )*L - ( Y l - Y 2 )* V + V *K 2 * X 2 ]/M 1
. _ _ _ _ _ _ _ _
X 2 = [ L*X 1 − ( L + V *K 2 )*X 2 + ( X 1 − X 2 )*L - ( Y 2 - Y 3 )* V + V *K 3 * X 3 ]/M 2
. _ _ _ _ _ _ _ _
X 3 = [ L*X 2 − ( L + V *K 3 )*X 3 + ( X 2 − X 3 )*L - ( Y 3 - Y 4 )* V + V *K 4 * X 4 ]/M 3
. _ _ _ _ _ _ _ _
X 4 = [ L*X 3 − ( L + V *K 4 )*X 4 + ( X 3 − X 4 )*L - ( Y 4 - Y 5 )* V + V *K 5 * X 5 ]/M 4
. _ _ _ _ _ _ _ _
X 5 = [ L*X 4 − ( L + V *K 5 )*X 5 + ( X 4 − X 5 )*L - ( Y 5 - Y 6 )* V + V *K 6 * X 6 ]/M 5
. _ _ _ _ _ _ _ _
X 6 = [ L*X 5 − ( L − LF − V *K 6 )*X 6 + ( X 5 − X 6 )*L - ( Y 6 - YB )* V +
_ _ _ _
+ V *KB * XB + ( XF − X 6) * LF + LF * XF]/M 6
. _ _ _ _ _ _ _ _
X B = [ ( L + LF )*X 6 - ( L + LF − V + V * KB) * XB + ( X 6− XB) * L +
_ _ −
+ ( X 6− XB) * LF − (YB− XB) * V ] / MB

En estas ecuaciones linealizadas, existen los símbolos K que son las constantes de equi-
librio de la mezcla etanol-agua, es decir, equivalen a:
KI = YI / XI

Con:
YI = (moles/mol) etanol vapor en la bandeja 1.
XI = (moles/mol) etanol líquido en la bandeja 1.
El cálculo de las constantes de equilibrio lo realizamos por el método de McCabe-Thiele
determinando con un programa la curva polinomial que se acerca con suficiente apro-
ximación a los siguientes datos de composición de la mezcla binaria etanol-agua:

409
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 410

Simulación y control de procesos por ordenador

X Y X Y X Y
0,01 0,103 0,3 0,573 0,65 0,723
0,03 0,235 0,35 0,592 0,7 0,753
0,05 0,325 0,4 0,613 0,75 0,783
0,1 0,444 0,45 0,632 0,8 0,818
0,15 0,496 0,5 0,652 0,85 0,856
0,2 0,529 0,55 0,673 0,87 0,873
0,25 0,552 0,6 0,697 0,8943 0,8943

En la figura 15.12 puede verse el programa correspondiente con el que se determina


una función polinomial de octavo grado. A partir de la misma, otro programa (figura
15.13) permite obtener las intersecciones de las rectas de operación en las zonas de rec-
tificación y de agotamiento con la curva polinómica de las composiciones de la mezcla
y encontrar, por tanto, las constantes de equilibrio.

Programa de ajuste polinomial mezcla etanol - agua

Option Explicit
Private Sub AjustePolinomialEtanolAguaVEstado_Click() 'cmdCreateTable_Click()
'Ajuste polinomial por mínimos cuadrados de la mezcla etanol-agua
Dim G As Integer, n As Single, X As Single, j As Integer, k As Integer, i As Integer
Dim S As Single, Z As Double, p As Single, Q As Single, fila As Single, Y As Single
Dim A() As Double, R() As Double, T() As Double
Dim XX(0 To 200, 0 To 101) As Double, YY(0 To 200, 0 To 101) As Double
Dim Constante As Single, polinomio As Single, Rs As Single
Dim Coef1 As Single, Coef2 As Single, Coef3 As Single, Coef4 As Single, Coef5 As
Single, Coef6 As Single, Coef7 As Single, Coef8 As Single
Dim SumaCuadradosErrores As Single
Range("F2").Select
ActiveCell.FormulaR1C1 = "Composición de la mezcla binaria"
Range("F2").Select
Selection.Font.Bold = True
Range("F3").Select
ActiveCell.FormulaR1C1 = "X"
Range("F3").Select
Selection.Font.Bold = True
Range("G3").Select
ActiveCell.FormulaR1C1 = "Y"
Range("G3").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Polinomio de ajuste"
Range("H2").Select
Selection.Font.Bold = True
Range("H3").Select
ActiveCell.FormulaR1C1 = "Polinomio"
Range("H3").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Error"
Range("I2").Select
Selection.Font.Bold = True
Range("I3").Select
ActiveCell.FormulaR1C1 = "Y - Polinomio"

410
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 411

Simulación de procesos

Range("I3").Select
Selection.Font.Bold = True
Range("J2").Select
ActiveCell.FormulaR1C1 = "Error al cuadrado"
Range("J2").Select
Selection.Font.Bold = True
Range("J3").Select
ActiveCell.FormulaR1C1 = "(Y - Polinomio)^2"
Range("J3").Select
Selection.Font.Bold = True
Range("F25").Select
ActiveCell.FormulaR1C1 = "Suma de los cuadrados de los errores"
Range("F25").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Grado del Polinomio"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A4").Select
Selection.Font.Bold = True
'Pedir datos
G = InputBox("Grado del polinomio (G):"): Cells(3, 1) = G
n = 21: Cells(5, 1) = n
ReDim A(2 * G + 2) As Double, R(G + 2, G + 3) As Double, T(G + 3) As Double
'ENTRADA DE COORDENADAS(XX() =Fracción molar de etanol en el líquido, YY () =Fracción
molar de etanol en el vapor
XX(1, 1) = 0.01: YY(1, 1) = 0.103: XX(8, 1) = 0.3: YY(8, 1) = 0.573: XX(15, 1) = 0.65:
YY(15, 1) = 0.723
XX(2, 1) = 0.03: YY(2, 1) = 0.235: XX(9, 1) = 0.35: YY(9, 1) = 0.592: XX(16, 1) = 0.7:
YY(16, 1) = 0.753
XX(3, 1) = 0.05: YY(3, 1) = 0.325: XX(10, 1) = 0.4: YY(10, 1) = 0.613: XX(17, 1) =
0.75: YY(17, 1) = 0.783
XX(4, 1) = 0.1: YY(4, 1) = 0.444: XX(11, 1) = 0.45: YY(11, 1) = 0.632: XX(18, 1) =
0.8: YY(18, 1) = 0.818
XX(5, 1) = 0.15: YY(5, 1) = 0.496: XX(12, 1) = 0.5: YY(12, 1) = 0.652: XX(19, 1) =
0.85: YY(19, 1) = 0.856
XX(6, 1) = 0.2: YY(6, 1) = 0.529: XX(13, 1) = 0.55: YY(13, 1) = 0.673: XX(20, 1) =
0.87: YY(20, 1) = 0.873
XX(7, 1) = 0.25: YY(7, 1) = 0.552: XX(14, 1) = 0.6: YY(14, 1) = 0.697: XX(21, 1) =
0.8943: YY(21, 1) = 0.8943
'Tabla de coordenadas
For X = 1 To n
Cells(X + 3, 6) = XX(X, 1): Cells(X + 3, 7) = YY(X, 1)
Next X
'Formación de sistemas de ecuaciones
A(1) = n
For j = 2 To 2 * G + 1
For X = 1 To n
A(j) = A(j) + XX(X, 1) ^ (j - 1)
Next X
Next j
For k = 1 To G + 1
For X = 1 To n
R(k, G + 2) = T(k) + (YY(X, 1)) * (XX(X, 1)) ^ (k - 1)
T(k) = T(k) + YY(X, 1) * XX(X, 1) ^ (k - 1)
Next X
Next k
For X = 1 To n

411
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 412

Simulación y control de procesos por ordenador

T(G + 2) = T(G + 2) + YY(i, 1) ^ 2


Next X
'Resolución de sistemas de ecuaciones
For j = 1 To G + 1
For k = 1 To G + 1
R(j, k) = A(j + k - 1)
Next k
Next j
For j = 1 To G + 1
k = j
For i = 1 To G + 2
S = R(j, i)
R(j, i) = R(k, i)
R(k, i) = S
Next i
Z = 1 / R(j, j)
For i = 1 To G + 2
R(j, i) = Z * R(j, i)
Next i
For k = 1 To G + 1
If k = j Then GoTo 10
Z = -R(k, j)
For i = 1 To G + 2
R(k, i) = R(k, i) + Z * R(j, i)
Next i
10
Next k
Next j
'Constantes y coeficientes ecuación polinómica
fila = 1: Cells(fila + 1, 2) = "Constante": Cells(fila + 1, 3) = R(1, G + 2):
Constante = R(1, G + 2) 'Constante
For j = 1 To G
Cells(2 + j, 2) = "Coeficiente": Cells(2 + j, 3) = j: Cells(2 + j, 4) = "Grado de
la función": Cells(2 + j, 5) = R(j + 1, G + 2)
If j = 1 Then Coef1 = R(2, G + 2)
If j = 2 Then Coef2 = R(3, G + 2)
If j = 3 Then Coef3 = R(4, G + 2)
If j = 4 Then Coef4 = R(5, G + 2)
If j = 5 Then Coef5 = R(6, G + 2)
If j = 6 Then Coef6 = R(7, G + 2)
If j = 7 Then Coef7 = R(8, G + 2)
If j = 8 Then Coef8 = R(9, G + 2)
Next j
fila = j
'Suma de los cuadrados de los errores
For fila = 4 To 24
SumaCuadradosErrores = SumaCuadradosErrores + Cells(fila, 10)
Next fila
'Análisis aproximación polinómica
'Coeficiente de correlación de Spearman (Rs)
Cells(fila, 10) = SumaCuadradosErrores
Rs = 1 - (6 * SumaCuadradosErrores / (n ^ 3 - n))
Cells(6, 1) = "Coeficiente de correlación - Rs": Cells(7, 1) = Rs
Cells(8, 1) = "Coeficiente de determinación - Rs^2": Cells(9, 1) = Rs ^ 2
Cells(10, 1) = "Correlación"
Cells(11, 1) = "R = 1 Perfecta"
Cells(12, 1) = "0,9 < Rs < 1 = Excelente"
Cells(13, 1) = "0,8 < Rs < 0,9 = Buena"
Cells(14, 1) = "0,5 < Rs < 0,8 = Regular"
Cells(15, 1) = "Rs < 0,5 = Mala"

412
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 413

Simulación de procesos

p = 0
For p = 1 To 21 Step 1
X = XX(p, 1)
polinomio = Constante + Coef1 * X + Coef2 * X ^ 2 + Coef3 * X ^ 3 + Coef4 * X
^ 4 + Coef5 * X ^ 5 + Coef6 * X ^ 6 + Coef7 * X ^ 7 + Coef8 * X ^ 8
Cells(3 + p, 8) = polinomio: Cells(3 + p, 9) = YY(p, 1) - polinomio: Cells(3 +
p, 10) = (YY(p, 1) - polinomio) ^ 2
Next p
Call grafico
40
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, QV As Single
Dim U(2, 1) As Single, Z(2) As Single, MP4(2, 2) As Single, MD4(2, 2) As Single,
MX(2, 1) As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
'n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(4, 6), Cells(24, 8)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CURVA POLINOMIAL MEZCLA BINARIA ETANOL-AGUA"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X (Concentración
molar etanol líquido)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Y (Concentración molar
etanol vapor) - Polinomio"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 800:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A25").Select
ActiveCell.FormulaR1C1 = ""
Range("A25").Select
Selection.Font.Bold = True
End Sub

413
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 414

Simulación y control de procesos por ordenador

CURVA POLINOMIAL MEZCLA BINARIA ETANOL-AGUA

0,9
Y (Concentración molar etanol vapor) -

0,8

0,7

0,6
Polinomio

Serie1
0,5
Serie2
0,4

0,3

0,2

0,1

0
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
X (Concentración molar etanol líquido)

Fig. 15.12 Programa de regresión polinomial

414
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 415

Simulación de procesos

Se han tomado los siguientes datos de partida:


Relación de reflujo = 0,85.
Composición del destilado XD = 0,8.
Composición de la alimentación XF = 0,18.
Composición del residuo XB = 0,03.

Programa de constantes de equilibrio etanol – agua – V1

Option Explicit
Private Sub ConstantesEquilibrioEtanolAguaV1VEstado_Click() 'cmdCreateTable_Click()
'Cálculo de constantes de equilibrio mezcla etanol - agua
'Función polinómica ajustada de octavo grado
'Relación de reflujo=0,85, XD=0,8, XF=0,18, XB=0,03
' Método de Newton-Raphson (X(N+1)=X(N) + (Y/Y')
Dim X As Single, X1 As Single, Y As Single, N1 As Single, N2 As Single, D1 As Single,
D2 As Single, p As Single, fila As Single
'Títulos en celdas
Range("A2").Select
ActiveCell.FormulaR1C1 = "Relación de reflujo"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Valor de Y"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Composición del destilado (XD)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Composición de la alimentación (XF)"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Composición del residuo (XB)"
Range("A10").Select
Selection.Font.Bold = True
Cells(7, 1) = 0.8: Cells(9, 1) = 0.18: Cells(11, 1) = 0.03
'Pedir datos
X = InputBox("Relación de reflujo (X):"): Cells(3, 1) = X: Y = X: Cells(5, 1) = Yp
= 0
10 'Inicio del programa
Constantes X, X1, N1, N2, D1, D2, Y, p, fila
If X1 > 0.18 Then Cells(p - 1, 2) = "Zona de rectificación "
If Sgn(X1) = -1 Then Cells(p - 1, 2) = "FONDOS": Cells(p - 1, 3) = "XB=": Cells(p
- 1, 4) = " 0.03": Cells(p - 1, 5) = "K=Y/XB=": Cells(p - 1, 6) = "7.83333333": GoTo
20 'Salir del programa
If X1 < 0.18 Then Cells(p - 1, 2) = "Zona de agotamiento":
Cells(p - 1, 3) = "X1 =": Cells(p - 1, 4) = X1: Cells(p - 1, 5) = "K=Y/X1 =":
Cells(p - 1, 6) = Y / X1: fila = p
If X1 > 0.18 Then Y = 0.85 * X1 + 0.12: X = X1: Constantes X, X1, N1, N2, D1, D2,
Y, p, fila: p = fila: GoTo 10
If X1 < 0.18 Then Y = 1.62 * X1 - 0.0186: X = X1: Constantes X, X1, N1, N2, D1,
D2, Y, p, fila: p = fila: GoTo 10
20 'Salida del programa
End Sub

415
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 416

Simulación y control de procesos por ordenador

Function Constantes(X, X1, N1, N2, D1, D2, Y, p, fila)


Do While p < 1000: 'Abs(X - X1) > 0.00001 And X - X1 <> 0
p = p + 1
N1 = 0.0253 - Y + 8.717 * X - 69.644 * X ^ 2 + 320.596 * X ^ 3 - 878.05 * X ^ 4 +
1461.341 * X ^ 5
N2 = -1446.653 * X ^ 6 + 782.796 * X ^ 7 - 178.155 * X ^ 8
D1 = 8.05 - 110.834 * X + 592.221 * X ^ 2 - 1376.528 * X ^ 3 + 976.075 * X ^ 4
D2 = 1333.926 * X ^ 5 - 2552.424 * X ^ 6 + 1140.56 * X ^ 7
X1 = X - ((N1 + N2) / (D1 + D2))
If Abs(X - X1) < 0.00001 Then Exit Do
X = X1
Loop
End Function

K=Y/X1
Relación de reflujo Zona de rectificación X1 = 0,767385 1,042501
=
K=Y/X1
0,800 Zona de rectificación X1 = 0,726641 1,062804
=
K=Y/X1
Valor de Y Zona de rectificación X1 = 0,773879 1,033753
=
K=Y/X1
0,800 Zona de rectificación X1 = 0,740083 1,050960
=
Composición del K=Y/X1
Zona de rectificación X1 = 0,693632 1,079924
destilado (XD) =
K=Y/X1
0,800 Zona de rectificación X1 = 0,624274 1,136661
=
Composición de la K=Y/X1
Zona de rectificación X1 = 0,497066 1,308945
alimentación (XF) =
K=Y/X1
0,180 Zona de rectificación X1 = 0,232776 2,330590
=
Composición del K=Y/X1
Zona de agotamiento X1 = 0,048894 6,501036
residuo (XB) =
K=Y/X1
0,030 Zona de agotamiento X1 = 0,004188 14,470949
=
FONDOS XB= 0,030000 K=Y/XB= 7,833333

Fig. 15.13a Programa para el método de McCabe-Thiele

Ejecutando el programa con los datos deducidos en el programa anterior del ajuste
polinomial de la mezcla etanol – agua, obtenemos 10 bandejas. En aras de la simplifi-
cación de los programas de la columna de destilación que se exponen seguidamente,
seleccionamos una columna con 7 bandejas. Para ello escogemos otros valores de la
ecuación polinomial que ajustan muy bien la curva pero que nos permiten bajar el
número de bandejas a 7. El polinomio ajustado es:
polinomio = 0.0330415 + 8.0494 * X - 55.4168 * X ^ 2 + 197.4071 * X ^ 3 - 344.1324 * X ^ 4
+ 195.2151 * X ^ 5 + 222.3209 * X ^ 6 - 364.6317 * X ^ 7 + 142.5698 * X ^ 8
De este modo, ejecutamos de nuevo el programa de constantes de equilibrio etanol –
agua, con los nuevos datos.

Programa de constantes de equilibrio etanol – agua – V2

Option Explicit
Private Sub ConstantesEquilibrioEtanolAguaV2VEstado_Click() 'cmdCreateTable_Click()
'Cálculo de constantes de equilibrio mezcla etanol - agua

416
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 417

Simulación de procesos

'Función polinómica ajustada de octavo grado


'Relación de reflujo=0,85, XD=0,8, XF=0,18, XB=0,03
' Método de Newton-Raphson (X(N+1)=X(N) + (Y/Y')
Dim X As Single, X1 As Single, Y As Single, N1 As Single, N2 As Single, D1 As Single,
D2 As Single, p As Single, fila As Single
'Títulos en celdas
Range("A2").Select
ActiveCell.FormulaR1C1 = "Relación de reflujo"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Valor de Y"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Composición del destilado (XD)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Composición de la alimentación (XF)"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Composición del residuo (XB)"
Range("A10").Select
Selection.Font.Bold = True
Cells(7, 1) = 0.8: Cells(9, 1) = 0.18: Cells(11, 1) = 0.03
'Pedir datos
X = InputBox("Relación de reflujo (X):"): Cells(3, 1) = X: Y = X: Cells(5, 1) = Y
p = 0
10 'Inicio del programa
Constantes X, X1, N1, N2, D1, D2, Y, p, fila
If X1 > 0.18 Then Cells(p - 1, 2) = "Zona de rectificación "
If Sgn(X1) = -1 Then Cells(p - 1, 2) = "FONDOS": Cells(p - 1, 3) = "XB=": Cells(p
- 1, 4) = " 0.03": Cells(p - 1, 5) = "K=Y/XB=": Cells(p - 1, 6) = "7.83333333":
GoTo 20 'Salir del programa
If X1 < 0.18 Then Cells(p - 1, 2) = "Zona de agotamiento":
Cells(p - 1, 3) = "X1 =": Cells(p - 1, 4) = X1: Cells(p - 1, 5) = "K=Y/X1 =":
Cells(p - 1, 6) = Y / X1: fila = p
If X1 > 0.18 Then Y = 0.85 * X1 + 0.12: X = X1: Constantes X, X1, N1, N2, D1, D2,
Y, p, fila: p = fila: GoTo 10
If X1 < 0.18 Then Y = 1.62 * X1 - 0.0186: X = X1: Constantes X, X1, N1, N2, D1,
D2, Y, p, fila: p = fila: GoTo 10
20 'Salida del programa
End Sub
Function Constantes(X, X1, N1, N2, D1, D2, Y, p, fila)
Do While p < 1000: 'Abs(X - X1) > 0.00001 And X - X1 <> 0
p = p + 1
N1 = 0.033 - Y + 8.05 * X - 55.417 * X ^ 2 + 197.407 * X ^ 3 - 344.132 * X ^ 4 +
195.215 * X ^ 5
N2 = 222.321 * X ^ 6 - 364.632 * X ^ 7 + 142.57 * X ^ 8
D1 = 8.05 - 110.834 * X + 592.221 * X ^ 2 - 1376.528 * X ^ 3 + 976.075 * X ^ 4
D2 = 1333.926 * X ^ 5 - 2552.424 * X ^ 6 + 1140.56 * X ^ 7
X1 = X - ((N1 + N2) / (D1 + D2))
If Abs(X - X1) < 0.00001 Then Exit Do
X = X1
Loop
End Function

417
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 418

Simulación y control de procesos por ordenador

K=Y/X1
Relación de reflujo Zona de rectificación X1 = 0,767385 1,042501
=
K=Y/X1
0,800 Zona de rectificación X1 = 0,726641 1,062804
=
K=Y/X1
Valor de Y Zona de rectificación X1 = 0,676495 1,090392
=
K=Y/X1
0,800 Zona de rectifica ción X1 = 0,603949 1,150794
=

Composición del K=Y/X1


Zona de rectificación X1 = 0,442175 1,432366
destilado (XD) =

K=Y/X1
0,800 Zona de agotamiento X1 = 0,140928 3,518463
=

Composición de la K=Y/X1
Zona de agotamiento X1 = 0,026280 7,979525
alimentación (XF) =

0,180 FONDOS XB= 0,030000 K=Y/XB= 7,833333

Composición del
residuo (XB)

0,030

Fig. 15.13b Programa para el método de McCabe-Thiele

El control efectuado en la simulación es de realimentación; se ha realizado con un con-


trolador incremental PID con variable la composición de la primera bandeja y actuan-
do directamente sobre el reflujo. Las demás variables se han considerado bajo control,
sin ninguna relación con el reflujo (figura 15.14).
Como es lógico, el control de realimentación es lento en reaccionar ante los cambios en
el caudal de alimentación; debe primero captar una variación en la composición de la
primera bandeja para actuar, y esta variación tarda en detectarse por la lentitud de reac-
ción de la columna.

Programa de columna de destilación etanol - agua

Option Explicit
Private Sub ColumnaDestilacionEtanolAguaVEstado_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, XF As Single, LF As Single, L As Single, n As Integer, S As
Single
Dim X1 As Single, X2 As Single, X3 As Single, X4 As Single, X5 As Single, X6 As
Single, XB As Single
Dim K1 As Single, K2 As Single, K3 As Single, K4 As Single, K5 As Single, K6 As
Single, KB As Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single, Y6 As
Single, YB As Single
Dim M1 As Single, M2 As Single, M3 As Single, M4 As Single, M5 As Single, M6 As
Single, MB As Single
Dim KP As Single, TR As Single, TD As Single
Dim A As Single
Dim j As Integer, i As Integer, k As Integer, RL As Single, XD As Single, Contador
As Integer
Dim p As Single, QV As Single, V As Single, H As Integer

418
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 419

Simulación de procesos

Dim DeltaX1 As Single, DeltaX2 As Single, DeltaX3 As Single, DeltaX4 As Single,


DeltaX5 As Single, DeltaX6 As Single, DeltaXB As Single
Dim EntradaRL As Single, EntradaQV As Single, EntradaLF As Single, EntradaXF As
Single
Dim ID(7, 7), MA(7, 7), MBB(7, 4), MC(7, 4), MP1(7, 7), MP2(7, 7), MP3(7, 7),
MP4(7, 7)
Dim MD1(7, 4), MD2(7, 4), MD3(7, 4), MD4(7, 4)
Dim MX(7, 1), MX1(7, 1), MX2(7, 1), U(4, 1), Z(2)
'Control por balance de energía con potencia constante del hervidor
'Si se desea control con reflujo constante cambiar la entrada de la SENTENCIA 2460 Y
2510 A U(2,1) EN LUGAR DE U(l,l) 00
'6 bandejas con alimentación en la sexta - Control de composición en"
'la primera bandeja (Variaciones de composición superiores EN LA 5ª"
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
' Funciones de la columna
'Controlador incremental-RL=KP*(E+(1/TR)*EDT+TD*(DE/DT))
'Valvulas con dinámica despreciable frente al tiempo de reacción
' de la columna. La válvula y el transmisor están englobados en el proceso.
'Bandeja 1- M1*X1'=RL*XD-RL*X1+QV*Y2-QV*Y1 y como XD=Y1 resulta:
' Bandeja 1- M1*X1'=RL*Y1-RL*X1+QV*Y2-QV*Y1
'BANDEJA 2- M2*X2'=RL*X1-RL*X2+QV*Y3-QV*Y2
'BANDEJA 3- M3*X3'=RL*X2-RL*X3+QV*Y4-QV*Y3
'BANDEJA 4- M4.X4'=RL*X3-RL*X4+QV*Y5-QV*Y4
'BANDEJA 5- M5.X5'=RL*X4-RL-X5+QV*Y6-QV.Y5
'BANDEJA 6- M6*X6'=RL*X5-(RL+LF)*X6+QV*YB-QV*Y6+LF*XF
'REHERVIDOR- MB*XB'=(RL+LF)*X6-LB*XB-QV*YB y como LB=LF+RL-QV resulta
'REHERVIDOR- MB.XB'=(RL+LF)*X6-(RL+LF)*XB+QV*XB-QV*YB
'Ecuaciones de estado linealizadas - B~Bandeja, R=Rehervidor
'Los coeficientes de las variables de estado y de las entradas son valores medios de
operación de la columna. Y = Composición del vapor
' MI=Moles etanol líquido en la bandeja I, K = Constantes de equilibrio
' X1, X2, X3, X4, X5, X6, XB, Variables de estado y RL, QV, LF, XF Variables de
entrada
' son perturbaciones (incrementos alrededor del punto de operación)
' XI=[Moles/Mol] etanol en la bandeja I, XB=[Moles/Mol etanol en el rehervidor
' RL=Reflujo moles/seg, QV = Caudal vapor (moles/seg)
' LF=Caudal alimentación (moles/seg), XF=[Moles/Mol] etanol en la alimentación
' B-1- X1'=(-(RL-RL*K1+QV*K1)*X1+(Y1-X1)*RL-(Y1-Y2)*QV+QV*K2*X2)/M1
' B-2- X2'=(RL*X1-(RL+QV*K2)*X2+(X1-X2)*RL-(Y2-Y3)*QV+QV*K3*X3)/M2
' B-3- X3'=(RL*X2-(RL+QV*K3)*X3+(X2-X3)*RL-(Y3-Y4)*QV+QV*K4*X4)/M3
' B-4- X4'=(RL*X3-(RL+QV*K4)*X4+(X3-X4)*RL-(Y4-Y5)*QV+QV*K5*X5)/M4
' B-5- X5'=(RL*X4-(RL+QV*K5)*X5+(X4-X5)*RL-(Y5-Y6)*QV+QV*K6*X6)/M5
' B-6- X6'=(RL*X5-(RL+LF-QV*K6)*X6+(X5-X6)*RL-(Y6-YB)*QV+QV*KB*XB+(XF-X6)*LF+LF*XF)/M6
' R- XB'=((RL+LF)*X6-(RL+LF-QV+QV*KB)*XB+(X6-XB)*RL+(X6-XB)*LF-(YB-XB)*QV)/MB
' XF=[Moles/mol] etanol en la alimentación
' Solución en el dominio del tiempo - X((K+1)*T)=PHI*X(KT)+DELTA*U(KT)
' PHI=Matriz de transición, X(K*T)=Vector de estado. DELTA=Matriz de fuerza.
'T debe ser tal que la serie PHI=ID+AT+A^2(T^2/2!) converja con números que el orde-
nador pueda manejar (l<Suma ^A(I.J)^)*T<10)
'COMPOSICIONES DESTILADO, BANDEJAS 1, 2, 3, 4, 5, 6, REFLUJO RL, BANDEJA 6, RESIDUO"
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Composición destilado"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 1"
Range("F2").Select

419
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 420

Simulación y control de procesos por ordenador

Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 2"
Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 3"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 4"
Range("I2").Select
Selection.Font.Bold = True
Range("J2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 5"
Range("J2").Select
Selection.Font.Bold = True
Range("K2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 6"
Range("K2").Select
Selection.Font.Bold = True
Range("L2").Select
ActiveCell.FormulaR1C1 = "Composición destilado fondos"
Range("L2").Select
Selection.Font.Bold = True
Range("M2").Select
ActiveCell.FormulaR1C1 = "Caudal Reflujo"
Range("M2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Reflujo (moles/seg) - (RL)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Caudal vapor (moles/seg) - (QV)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Caudal alimentación (moles/seg) - (LF)"
Range("A16").Select
Selection.Font.Bold = True
Range("B2").Select

420
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 421

Simulación de procesos

ActiveCell.FormulaR1C1 = "[Etanol] en alimentación (moles/mol) - (XF)"


Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
1 - (X1)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
2 - (X2)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
3 - (X3)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
4 - (X4)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
5 - (X5)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
6 - (X6)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en fondos - (XB)"
Range("B16").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de reflujo - moles/seg
(RL) = U(1,1)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de vapor - moles/seg
(QV) = U(2,1)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de alimentación -
moles/seg (LF) = U(3,1)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento [etanol] en alimentación - moles/seg
(XF) = U(4,1)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Ganancia del controlador - (KP)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select

421
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 422

Simulación y control de procesos por ordenador

ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"


Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos - (TD)"
Range("C14").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
' Programa para X((K+1)*T)=PHI*X(KT)+DELTA*U(KT)
' K=Indice del tiempo, T=Incremento del tiempo, U(K*T)=Entrada
' Condiciones iniciales - K=O, U(K.T) y MX(7,1) a especificar
' Mezcla etanol-agua en bandejas y rehervidor, K=Constantes de equilibrio.
' X=[Moles/Mol] etanol líquido, Y=[Moles/Mol] etanol vapor, M=Moles de etanol líquido
K1 = 1.0425: K2 = 1.0628: K3 = 1.0904: K4 = 1.1508: K5 = 1.4324: K6 = 3.5185: KB =
7.8333
X1 = 0.7674: X2 = 0.7276: X3 = 0.6765: X4 = 0.6039: X5 = 0.4422: X6 = 0.1409: XB =
0.03
Y1 = 0.8: Y2 = 0.7722: Y3 = 0.7376: Y4 = 0.695: Y5 = 0.6334: Y6 = 0.4957: YB = 0.235
M1 = 153: M2 = 150: M3 = 148: M4 = 145: M5 = 124: M6 = 58: MB = 200
'Valores medios de operación de las variables de entrada
RL = InputBox("Reflujo (moles/seg) - (RL):"): Cells(13, 1) = RL
QV = InputBox("Caudal vapor (moles/seg) - (QV):"): Cells(15, 1) = QV
LF = InputBox("Caudal alimentación (moles/seg) - (LF):"): Cells(17, 1) = LF
XF = InputBox("[Etanol] en alimentación (moles/mol) - (XF):"): Cells(3, 2) = XF
'Incrementos iniciales
DeltaX1 = InputBox("Incremento inicial composición etanol en líquido bandeja 1 -
MX(1,1):"): MX(1, 1) = DeltaX1: Cells(5, 2) = MX(1, 1) 'X1
DeltaX2 = InputBox("Incremento inicial composición etanol en líquido bandeja 2 -
MX(2,1):"): MX(2, 1) = DeltaX2: Cells(7, 2) = MX(2, 1) 'X2
DeltaX3 = InputBox("Incremento inicial composición etanol en líquido bandeja 3 -
MX(3,1):"): MX(3, 1) = DeltaX3: Cells(9, 2) = MX(3, 1) 'X3
DeltaX4 = InputBox("Incremento inicial composición etanol en líquido bandeja 4 -
MX(4,1):"): MX(4, 1) = DeltaX4: Cells(11, 2) = MX(4, 1) 'X4
DeltaX5 = InputBox("Incremento inicial composición etanol en líquido bandeja 5 -
MX(5,1):"): MX(5, 1) = DeltaX5: Cells(13, 2) = MX(5, 1) 'X5
DeltaX6 = InputBox("Incremento inicial composición etanol en líquido bandeja 6 -
MX(6,1):"): MX(6, 1) = DeltaX6: Cells(15, 2) = MX(6, 1) 'X6
DeltaXB = InputBox("Incremento inicial composición etanol en fondos - MX(7,1):"):
MX(7, 1) = DeltaXB: Cells(17, 2) = MX(7, 1) 'XB
'Entradas
EntradaRL = InputBox("Entrada - Incremento del caudal de reflujo - moles/seg (RL)
= U(1,1):"): U(1, 1) = EntradaRL: Cells(3, 3) = U(1, 1): 'RL = U(1, 1)
EntradaQV = InputBox("Entrada - Incremento del caudal de vapor - moles/seg (QV) =
U(2,1):"): U(2, 1) = EntradaQV: Cells(5, 3) = U(2, 1): 'QV = U(2, 1)
EntradaLF = InputBox("Entrada - Incremento del caudal de alimentación - moles/seg
(LF) = U(3,1):"): U(3, 1) = EntradaLF: Cells(7, 3) = U(3, 1): 'LF = U(3, 1)
EntradaXF = InputBox("Entrada - Incremento [etanol] en alimentación - moles/seg
(XF) = U(4,1):"): U(4, 1) = EntradaXF: Cells(9, 3) = U(4, 1): 'XF = U(4, 1)
'Controlador PID
KP = InputBox("Ganancia del controlador - (KP):"): Cells(11, 3) = KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(13,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(15, 3) = TD
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0: ID(1, 3) = 0: ID(1, 4) = 0: ID(1, 5) = 0: ID(1, 6) =
0: ID(1, 7) = 0

422
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 423

Simulación de procesos

ID(2, 1) = 0: ID(2, 2) = 1: ID(2, 3) = 0: ID(2, 4) = 0: ID(2, 5) = 0: ID(2, 6) =


0: ID(2, 7) = 0
ID(3, 1) = 0: ID(3, 2) = 0: ID(3, 3) = 1: ID(3, 4) = 0: ID(3, 5) = 0: ID(3, 6) =
0: ID(3, 7) = 0
ID(4, 1) = 0: ID(4, 2) = 0: ID(4, 3) = 0: ID(4, 4) = 1: ID(4, 5) = 0: ID(4, 6) =
0: ID(4, 7) = 0
ID(5, 1) = 0: ID(5, 2) = 0: ID(5, 3) = 0: ID(5, 4) = 0: ID(5, 5) = 1: ID(5, 6) =
0: ID(5, 7) = 0
ID(6, 1) = 0: ID(6, 2) = 0: ID(6, 3) = 0: ID(6, 4) = 0: ID(6, 5) = 0: ID(6, 6) =
1: ID(6, 7) = 0
ID(7, 1) = 0: ID(7, 2) = 0: ID(7, 3) = 0: ID(7, 4) = 0: ID(7, 5) = 0: ID(7, 6) =
0: ID(7, 7) = 1
'Entrada de filas y columnas matriz MA(7,7)
MA(1, 1) = -(RL - RL * K1 + QV * K1) / M1
MA(1, 2) = QV * K2 / M1
MA(2, 1) = RL / M2: MA(2, 2) = (-RL - QV * K2) / M2: MA(2, 3) = QV * K3 / M2
MA(3, 2) = RL / M3: MA(3, 3) = (-RL - QV * K3) / M3: MA(3, 4) = QV * K4 / M3
MA(4, 3) = RL / M4: MA(4, 4) = (-RL - QV * K4) / M4: MA(4, 5) = QV * K5 / M4
MA(5, 4) = RL / M5: MA(5, 5) = (-RL - QV * K5) / M5: MA(5, 6) = QV * K6 / M5
MA(6, 5) = RL / M6: MA(6, 6) = (-RL - LF - QV * K6) / M6: MA(6, 7) = QV * KB / M6
MA(7, 6) = (RL + LF) / MB: MA(7, 7) = (-RL - LF + QV - QV * KB) / MB
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MBB(7,4)
MBB(1, 1) = (Y1 - X1) / M1: MBB(1, 2) = (Y2 - Y1) / M1
MBB(2, 1) = (X1 - X2) / M2: MBB(2, 2) = (Y3 - Y2) / M2
MBB(3, 1) = (X2 - X3) / M3: MBB(3, 2) = (Y4 - Y3) / M3
MBB(4, 1) = (X3 - X4) / M4: MBB(4, 2) = (Y5 - Y4) / M4
MBB(5, 1) = (X4 - X5) / M5: MBB(5, 2) = (Y6 - Y5) / M5
MBB(6, 1) = (X5 - X6) / M6: MBB(6, 2) = (YB - Y6) / M6
MBB(7, 1) = (X6 - XB) / MB: MBB(7, 2) = (XB - YB) / MB
MBB(6, 3) = (XF - X6) / M6: MBB(7, 3) = (X6 - XB) / MB
MBB(6, 4) = LF / M6
For j = 1 To 7: For i = 1 To 4
MC(j, i) = MBB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1
For j = 1 To 7: For i = 1 To 7
MP1(j, i) = 0
For k = 1 To 7
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 7: For i = 1 To 7
MP3(j, i) = 0
For k = 1 To 7
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1

423
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 424

Simulación y control de procesos por ordenador

For j = 1 To 7: For i = 1 To 4
MD1(j, i) = 0
For k = 1 To 7
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD2(j, i) = MC(j, i) + MD1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 7: For i = 1 To 4
MD3(j, i) = 0
For k = 1 To 7
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD4(j, i) = MD2(j, i) + MD3(j, i)
Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de respuestas anteriores
Contador = 0
While Abs(Cells(Contador + 3, 4)) > 0 Or Abs(Cells(Contador + 3, 5)) > 0 Or
Abs(Cells(Contador + 3, 6)) > 0 Or Abs(Cells(Contador + 3, 7)) > 0
Cells(Contador + 3, 4) = "": Cells(Contador + 3, 5) = "": Cells(Contador + 3,
6) = "": Cells(Contador + 3, 7) = ""
Cells(Contador + 3, 8) = "": Cells(Contador + 3, 9) = "": Cells(Contador + 3,
10) = "": Cells(Contador + 3, 11) = ""
Cells(Contador + 3, 12) = "": Cells(Contador + 3, 13) = ""
Contador = Contador + 1
Wend
'Datos para dibujar la curva de respuesta
H = 0
For w = t0 To tf Step Dt
If H = 2 Or H > 2 Then H = 0
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
H = 0
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID
If w = t0 Then Z(2) = 0
If w <> t0 Then U(1, 1) = -KP * (MX(1, 1) - Z(2)) - (Dt / TR) * MX(1, 1) - (TD /
Dt) * (MX(1, 1) - 2 * Z(2) + Z(1))
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID
'Controlador incremental PID
U(1, 1) = -KP * (MX(1, 1) - Z(2)) - (Dt / TR) * MX(1, 1) - (TD / Dt) * (MX(1, 1)
- 2 * Z(2) + Z(1))
For j = 1 To 7
S = 0
For k = 1 To 7
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
'XD, X1, X2, X3, X4, X5, X6, XB, RL
Cells(p + 3, 5) = K1 * MX(1, 1) * 1000: XD = K1 * MX(1, 1) '[moles/mol]
etanol líquido en destilado

424
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 425

Simulación de procesos

Cells(p + 3, 6) = MX(1, 1) * 1000: X1 = MX(1, 1) '[moles/mol] etanol líquido


en bandeja 1
Cells(p + 3, 7) = MX(2, 1) * 1000: X2 = MX(2, 1) '[moles/mol] etanol líquido
en bandeja 2
Cells(p + 3, 8) = MX(3, 1) * 1000: X3 = MX(3, 1) '[moles/mol] etanol líquido
en bandeja 3
Cells(p + 3, 9) = MX(4, 1) * 1000: X4 = MX(4, 1) '[moles/mol] etanol líquido
en bandeja 4
Cells(p + 3, 10) = MX(5, 1) * 1000: X5 = MX(5, 1) '[moles/mol] etanol líquido
en bandeja 5
Cells(p + 3, 11) = MX(6, 1) * 1000: X6 = MX(6, 1) '[moles/mol] etanol líquido
en bandeja 6
Cells(p + 3, 12) = MX(7, 1) * 1000: XB = MX(7, 1) '[moles/mol] etanol líquido
en fondos
Cells(p + 3, 13) = U(1, 1): RL = U(1, 1) 'Caudal Reflujo en moles/segundo
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, QV As Single
Dim U(2, 1) As Single, Z(2) As Single, MP4(2, 2) As Single, MD4(2, 2) As Single,
MX(2, 1) As Single
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 13)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "COLUMNA DE DESTILACIÓN ETANOL-AGUA"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "COMPOSICIONES - DESTILA-
DO - BANDEJAS 1- 2 - 3 - 4 - 5 - 6 – FONDOS - REFLUJO"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 980:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A28").Select
ActiveCell.FormulaR1C1 = ""
Range("A28").Select
Selection.Font.Bold = True
End Sub

425
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 426

Simulación y control de procesos por ordenador

Function ControlPID(MP4(), MX(), MD4(), U(), Z(), H) 'Control PID


Dim j As Integer, k As Integer, i As Integer, S As Single, V As Single
H = H + 1
j = 1: S = 0
For k = 1 To 7
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

[Etanol] Entrada -
Compo- Compo- Compo- Compo- Compo- Compo-
T en Increme nto Compo-
Compo- sición sición sición sición sición sición
inicial alimenta - del caudal de Tiempo sición Caudal
sición destilado destilado destilado destilado destilado destilado
(minu - ción reflujo - (minutos) destilado Reflujo
destilado bandeja bandeja bandeja bandeja bandeja bandeja
tos) (moles/m moles/seg fondos
1 2 3 4 5 6
ol) - (XF) (RL) = U(1,1)

0,0000000 0,0000000 0,0001054 0,0024654 0,0934400 1,4672648 6,3132066 0,6097422 0,00000


0,00 0,1800 0,0000 0,00
0 0 6 8 5 9 7 2 000
Increpen -
to inicial Entrada -
composi - Incremento
Tfinal
ción del caudal de 0,0000678 0,0000651 0,0017962 0,0316489 0,5156818 4,0299391 9,4441270 1,1080162 0,00000
(minu - 5,00
etanol en vapor - 8 2 1 0 0 7 8 5 066
tos)
líquido moles/seg
bandeja 1 (QV) = U(2,1)
- (X1)
1.200,0 0,0006161 0,0005910 0,0096699 0,1237827 1,2699079 6,8405671 11,278277 1,4941513 0,00000
0,0000 0,0000 10,00
0 7 5 4 7 5 1 40 5 205
Increpen -
to inicial Entrada -
Incre-
composi - Incremento
mento -
ción del caudal de 0,0026801 0,0025708 0,0309288 0,3036012 2,2985804 9,5895462 12,526066 1,7920796
tiempo 15,00 0,00000
etanol en alimentación - 0 4 4 6 1 0 78 9
(minu - 959
líquido moles/seg
tos)
bandeja 2 (LF) = U(3,1)
- (X2)
-
0,0080125 0,0076859 0,0735401 0,5838262 3,5341427 12,170736 13,470752 2,0254476
5,00 0,0000 0,0000 20,00 0,00007
5 0 2 4 3 31 72 1
698
Increpen -
to inicial Entrada -
compos i- Incremento
-
Nº de ción [etanol] en 0,0189794 0,0182057 0,1449081 0,9676246 4,9155850 14,556002 14,234438 2,2121741
25,00 0,00027
puntos etanol en alimentación - 9 5 3 0 4 62 90 8
826
líquido moles/seg
bandeja 3 (XF) = U(4,1)
- (X3)
-
0,03835 17 0,0367882 0,2510914 1,4514187 6,3925242 16,746433 14,874542 2,3645510
241,00 0,0000 0,0500 30,00 0,00072
4 4 5 6 4 26 24 7
301
Increment
Valor o inicial
de p - composici Ganancia del -
0,0690653 0,0662497 0,3964 442 2,0272536 7,9248509 18,752647 15,420057 2,4905355
nº de ón etanol controlador - 35,00 0,00154
7 6 6 3 4 40 30 0
perio- en líquido (KP) 252
dos bandeja 4
- (X4)
-
0,1139960 0,1093487 0,5835451 2,6845676 9,4810113 20,586648 15,886038 2,5950162
240,00 0,0000 10,0000 40,00 0,00287
2 0 5 9 9 94 78 4
820
Increpen -
to inicial Tiempo de
Refl.-
composi- acción
jo -
ción integral - 0,1757708 0,1686051 0,8132987 3,4114313 11,036068 22,258535 16,279962 2,6807944
(moles 45,00 0,00487
etanol en minutos/ 9 6 0 1 92 39 54 8
/seg) 037
líquido repetición -
- (RL)
bandeja 5 (TR)
- (X5)
-
0,2566272 0,2461652 1,0851293 4,1953649 12,569981 23,775386 16,604904 2,7492950
2,8000 0,0000 0,1000 50,00 0,00764
0 0 8 5 58 81 17 0
881
Increpen -
to inicial
Caudal Tiempo de
composi -
vapor acción -
ción 0,3583170 0,3437094 1,3972106 5,0238494 14,066205 25,141147 16,861345 2,8010656
(moles derivada - 55,00 0,01132
etanol en 8 4 0 9 98 61 29 8
/seg) minutos - 551
líquido
- (QV) (TD)
bandeja 6
- (X6)
-
0,4820533 0,4624013 1,7466970 5,8846292 15,510650 26,356994 17,048315 2,8361330
3,30 0,0000 1,0000 60,00 0,01598
7 0 7 5 63 63 05 0
971
Increpen -
Caudal
to inicial
alimen
composi - -
-tación 0,6284897 0,6028678 2,1299397 6,7658720 16,890911 27,421924 17,164165 2,8542485
ción 65,00 0,02170
(moles 9 4 9 0 10 59 50 2
etanol en 498
/seg)
fondos -
- (LF)
(XB)
-
0,7977265 0,7652052 2,5426759 7,6562466 18,195781 28,333372 17,207122 2,8550660
2,50 0,0000 70,00 0,02850
1 6 7 6 71 12 80 6
802

426
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 427

Simulación de procesos

COLUMNA DE DESTILACIÓN ETANOL-AGUA

40,00000000
COMPOSICIONES DESTILADO - BANDEJAS 1-

35,00000000
2 - 3 - 4 - 5 - 6 - FONDOS - REFLUJO

30,00000000
Serie1
25,00000000
Serie2
20,00000000 Serie3
Serie4
15,00000000
Serie5
10,00000000
Serie6
5,00000000 Serie7
Serie8
0,00000000
Serie9
0,00 200,00 400,00 600,00 800,00 1000,00 1200,00 1400,00
-5,00000000

-10,00000000

-15,00000000
Tiempo (minutos)

Fig. 15.14 Programa de columna de destilación etanol - agua

El problema puede resolverse con un control anticipativo (feedforward) que incorpora


bloques de retardo y de adelanto-retardo (lead-lag) para compensar el tiempo muerto
de reacción de la columna. La señal obtenida es típicamente el punto de consigna del
reflujo, el destilado y el residuo, suponiendo que cada uno de ellos tuviera control de
caudal. En nuestra simulación consideraremos un control de prealimentación sobre el
caudal de alimentación, con un bloque de adelanto-retardo un bloque de retardo y un
sumador que sume la señal anterior a la señal de salida del controlador para actuar
sobre el reflujo L.
La función de transferencia entre la composición de la primera bandeja X(1,1) y la ali-
mentación LF = U(3,1) es:
X (1,1) KF
=
LF 1 + TF * s
y la correspondiente entre la composición de la primera bandeja X(1,1) y el reflujo L =
(1,1) es:
X (1,1) KL
=
L 1 + TL * s
en las que:
KF, KL = ganancia alimentación y reflujo/composición 1ª bandeja;
TF, TL = constantes de tiempo bloques anteriores.
Con lo cual la ecuación del bloque adelanto-retardo es:

L KF 1 + TL * s
= *
LF KL 1 + TF * s
Por observación de la figura 15.15 se deducen las siguientes modificaciones del progra-
ma de la columna de destilación:

427
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 428

Simulación y control de procesos por ordenador

F3 = -KP * (MX(1, 1) - Z(2)) - (Dt / TR) * MX(1, 1) –


- (TD / Dt) * (MX(1, 1) - 2 * Z(2) + Z(1))
F4 = F2 + F3
F2 = F1 + [Bloque retardo]
La construcción de este bloque de retardo se efectúa disponiendo un contador indepen-
diente H en el ordenador. De este modo, siendo p el número de períodos de tiempo que
transcurren desde el arranque del programa:
HF(p) = F1
If (C3 / Dt) > p Then F2 = F1
If (C3 / Dt) <= p Then L = p - (C3 / Dt): F2 = HF(L)
Las lecturas de F2 serán iguales a las de F1 pero estarán desplazadas un tiempo C3.
El valor de F1 (señal de salida F1 del bloque adelanto-retardo) es:
F1 = U(3,1)+[(LF*KF-F1*KL)/KL*TF] + [KF*TL/(KL*TF)]*LF
Y le añadimos una señal senoidal de pequeña amplitud y gran longitud de onda [A *sen
(VA* w)], con VA = velocidad angular, para simular las variaciones del caudal de alimen-
tación LF con relación a los valores medios de operación.
También podrían añadirse perturbaciones en escalón totalmente al azar y que el propio
ordenador puede introducir. La sentencia en este caso sería:
Int((H – L +1)*Rnd+L)
Siendo H y L los límites superior e inferior del número aleatorio generado. El ordena-
dor podría generar tres números aleatorios para establecer el inicio, el final y el valor
de la perturbación.
Si deseamos volver al control normal de retroalimentación, bastará dar el valor 0 a la
señal F2.; y si quisiéramos tener exclusivamente un control anticipativo, anularía-
mos F3.
En la figura 15.15 puede verse el diagrama de flujo y el programa correspondiente.

Programa de control anticipativo de una columna de destilación

Option Explicit
Private Sub ColumnaDestilacionEtanolAguaFeedforwardVEstado_Click()
'cmdCreateTable_Click()
Dim t0 As Single, tf As Single, Dt As Single
Dim w As Single, L As Integer, n As Integer, S As Integer
Dim X1 As Single, X2 As Single, X3 As Single, X4 As Single, X5 As Single, X6 As
Single, XB As Single
Dim K1 As Single, K2 As Single, K3 As Single, K4 As Single, K5 As Single, K6 As
Single, KB As Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single, Y6 As
Single, YB As Single
Dim M1 As Single, M2 As Single, M3 As Single, M4 As Single, M5 As Single, M6 As

428
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 429

Simulación de procesos

Single, MB As Single
Dim KP As Single, TR As Single, TD As Single, KF As Single
Dim CTF As Single, KL As Single, TL As Single, A As Single, VA As Single, C3 As
Single
Dim RL As Single, QV As Single, LF As Single, XF As Single
Dim j As Integer, i As Integer, k As Integer, XD As Single, Contador As Integer
Dim p As Single, V As Single, H As Integer
Dim DeltaX1 As Single, DeltaX2 As Single, DeltaX3 As Single, DeltaX4 As Single,
DeltaX5 As Single, DeltaX6 As Single, DeltaXB As Single
Dim EntradaRL As Single, EntradaQV As Single, EntradaLF As Single, EntradaXF As
Single
Dim FS As Single, LK As Single, FM As Single, F1 As Single, F2 As Single, F3 As
Single, F4 As Single
Dim ID(8, 8), MA(8, 8), MBB(8, 5), MC(8, 5), MP1(8, 8), MP2(8, 8), MP3(8, 8),
MP4(8, 8)
Dim MD1(8, 5), MD2(8, 5), MD3(8, 5), MD4(8, 5)
Dim MX(8, 2), MX1(8, 2), MX2(8, 2), U(5, 2), HF(20000), Z(3)
'Control por balance de energía con potencia constante del hervidor
'Control en adelanto (feedforward) - Retroalimentación
'6 bandejas con alimentación en la sexta - Control de composición en"
'la primera bandeja (Variaciones de composición superiores en la 5ª"
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
'Funciones de la columna
'Controlador incremental-RL=KP*(E+(1/TR)*EDT+TD*(DE/DT))
'Valvulas con dinámica despreciable frente al tiempo de reacción
'de la columna. La válvula y el transmisor están englobados en el proceso.
'BANDEJA 1- M1*X1'=RL*XD-RL*X1+QV*Y2-QV*Y1 y como XD=Y1 resulta:
'BANDEJA 1- M1*X1'=RL*Y1-RL*X1+QV*Y2-QV*Y1
'BANDEJA 2- M2*X2'=RL*X1-RL*X2+QV*Y3-QV*Y2
'BANDEJA 3- M3*X3'=RL*X2-RL*X3+QV*Y4-QV*Y3
'BANDEJA 4- M4.X4'=RL*X3-RL*X4+QV*Y5-QV*Y4
'BANDEJA 5- M5.X5'=RL*X4-RL-X5+QV*Y6-QV.Y5
'BANDEJA 6- M6*X6'=RL*X5-(RL+LF)*X6+QV*YB-QV*Y6+LF*XF
'REHERVIDOR- MB*XB'=(RL+LF)*X6-LB*XB-QV*YB y como LB=LF+RL-QV resulta
'REHERVIDOR- MB.XB'=(RL+LF)*X6-(RL+LF)*XB+QV*XB-QV*YB
'Control anticipativo (feedforward) con bloque adelanto-retardo y bloque retardo
'(KL/KF)*(1+CTF*P)/(1+TL+P), Contador N
'Perturbación senoidal en el caudal de reflujo
'Ecuaciones de estado linealizadas - B~Bandeja, R=Rehervidor
'Los coeficientes de las variables de estado y de las entradas son valores medios de
operación de la columna. Y = Composición del vapor
' MI=Moles etanol líquido en la bandeja I, K = Constantes de equilibrio
' X1, X2, X3, X4, X5, X6, XB, Variables de estado y RL, QV, LF, XF Variables de
entrada
' son perturbaciones (incrementos alrededor del punto de operación)
' XI=[Moles/Mol] etanol en la bandeja I, XB=[Moles/Mol etanol en el rehervidor
' RL=Reflujo moles/seg, QV = Caudal vapor (moles/seg)
' LF=Caudal alimentación (moles/seg), XF=[Moles/Mol] etanol en la alimentación
' B-1- X1'=(-(RL-RL*K1+QV*K1)*X1+(Y1-X1)*RL-(Y1-Y2)*QV+QV*K2*X2)/M1
' B-2- X2'=(RL*X1-(RL+QV*K2)*X2+(X1-X2)*RL-(Y2-Y3)*QV+QV*K3*X3)/M2
' B-3- X3'=(RL*X2-(RL+QV*K3)*X3+(X2-X3)*RL-(Y3-Y4)*QV+QV*K4*X4)/M3
' B-4- X4'=(RL*X3-(RL+QV*K4)*X4+(X3-X4)*RL-(Y4-Y5)*QV+QV*K5*X5)/M4
' B-5- X5'=(RL*X4-(RL+QV*K5)*X5+(X4-X5)*RL-(Y5-Y6)*QV+QV*K6*X6)/M5
' B-6- X6'=(RL*X5-(RL+LF-QV*K6)*X6+(X5-X6)*RL-(Y6-YB)*QV+QV*KB*XB+(XF-X6)*LF+LF*XF)/M6
' R- XB'=((RL+LF)*X6-(RL+LF-QV+QV*KB)*XB+(X6-XB)*RL+(X6-XB)*LF-(YB-XB)*QV)/MB
' XF=[Moles/mol] etanol en la alimentación
' Solución en el dominio del tiempo - X((K+1)*T)=PHI*X(KT)+DELTA*U(KT)
' PHI=Matriz de transición, X(K*T)=Vector de estado. DELTA=Matriz de fuerza.
'T debe ser tal que la serie PHI=ID+AT+A^2(T^2/2!) converja con números que el orde-

429
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 430

Simulación y control de procesos por ordenador

nador pueda manejar (l<Suma ^A(I.J)^)*T<10)


'COMPOSICIONES DESTILADO, BANDEJAS 1, 2, 3, 4, 5, 6, REFLUJO RL, BANDEJA 6, RESIDUO"
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Composición destilado"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 1"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 2"
Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 3"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 4"
Range("I2").Select
Selection.Font.Bold = True
Range("J2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 5"
Range("J2").Select
Selection.Font.Bold = True
Range("K2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 6"
Range("K2").Select
Selection.Font.Bold = True
Range("L2").Select
ActiveCell.FormulaR1C1 = "Composición destilado fondos"
Range("L2").Select
Selection.Font.Bold = True
Range("M2").Select
ActiveCell.FormulaR1C1 = "Caudal Reflujo"
Range("M2").Select
Selection.Font.Bold = True
Range("N2").Select
ActiveCell.FormulaR1C1 = "Caudal alimentación"
Range("N2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"

430
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 431

Simulación de procesos

Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de periodos"
Range("A12").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Ganancia Composición/Caudal alimentación - (KF)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo Composición/Caudal alimentación -
(CTF)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Ganancia Composición/Reflujo - (KL)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Constante de tiempo Composición/Reflujo - (TL)"
Range("A18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Amplitud perturbación senoidal caudal reflujo - (A)"
Range("A20").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "Factor velocidad angular perturbación senoidal caudal
reflujo - (VA)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Bloque retardo - minutos - (C3)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Reflujo (moles/seg) - (RL)"
Range("B6").Select
Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Caudal vapor (moles/seg) - (QV)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Caudal alimentación (moles/seg) - (LF)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "[Etanol] en alimentación (moles/mol) - (XF)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
1 - (X1)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
2 - (X2)"

431
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 432

Simulación y control de procesos por ordenador

Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
3 - (X3)"
Range("B18").Select
Selection.Font.Bold = True
Range("B20").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
4 - (X4)"
Range("B20").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
5 - (X5)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
6 - (X6)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en fondos - (XB)"
Range("C6").Select
Selection.Font.Bold = True
Range("C8").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de reflujo - moles/seg
(RL) = U(1,1)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de vapor - moles/seg
(QV) = U(2,1)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de alimentación -
moles/seg (LF) = U(3,1)"
Range("C12").Select
Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento [etanol] en alimentación - moles/seg
(XF) = U(4,1)"
Range("C14").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Ganancia del controlador - (KP)"
Range("C16").Select
Selection.Font.Bold = True
Range("C18").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral - minutos/repetición - (TR)"
Range("C18").Select
Selection.Font.Bold = True
Range("C20").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada - minutos - (TD)"
Range("C20").Select
Selection.Font.Bold = True
'Pedir datos

432
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 433

Simulación de procesos

t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-


cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
' Programa para X((K+1)*T)=PHI*X(KT)+DELTA*U(KT)
' K=Indice del tiempo, T=Incremento del tiempo, U(K*T)=Entrada
' Condiciones iniciales - K=O, U(K.T) y MX(7,1) a especificar
' Mezcla etanol-agua en bandejas y rehervidor, K=Constantes de equilibrio.
' X=[Moles/Mol] etanol líquido, Y=[Moles/Mol] etanol vapor, M=Moles de etanol líquido
K1 = 1.0425: K2 = 1.0628: K3 = 1.0904: K4 = 1.1508: K5 = 1.4324: K6 = 3.5185: KB =
7.8333
X1 = 0.7674: X2 = 0.7266: X3 = 0.6765: X4 = 0.6039: X5 = 0.4422: X6 = 0.1409: XB =
0.03
Y1 = 0.8: Y2 = 0.7722: Y3 = 0.7376: Y4 = 0.695: Y5 = 0.6334: Y6 = 0.4957: YB =
0.235
M1 = 153: M2 = 150: M3 = 148: M4 = 145: M5 = 124: M6 = 58: MB = 200
'Control en adelanto (feedforward) y perturbaciones en la alimentación
KF = InputBox("Ganancia Composición/Caudal alimentación - (KF):"): Cells(13, 1) =
KF
CTF = InputBox("Constante de tiempo Composición/Caudal alimentación - (CTF):"):
Cells(15, 1) = CTF
KL = InputBox("Ganancia Composición/Reflujo - (KL):"): Cells(17, 1) = KL
TL = InputBox("Constante de tiempo Composición/Reflujo - (TL):"): Cells(19, 1) = TL
A = InputBox("Amplitud perturbación senoidal caudal alimentación - (A):"):
Cells(21, 1) = A
VA = InputBox("Factor velocidad angular perturbación senoidal caudal alimentación -
(VA):"): Cells(3, 2) = VA
C3 = InputBox("Bloque retardo - minutos - (C3):"): Cells(5, 2) = C3
'Valores medios de operación de las variables de entrada
RL = InputBox("Reflujo (moles/seg) - (RL):"): Cells(7, 2) = RL
QV = InputBox("Caudal vapor (moles/seg) - (QV):"): Cells(9, 2) = QV
LF = InputBox("Caudal alimentación (moles/seg) - (LF):"): Cells(11, 2) = LF
XF = InputBox("[Etanol] en alimentación (moles/mol) - (XF):"): Cells(13, 2) = XF
'Incrementos iniciales
DeltaX1 = InputBox("Incremento inicial composición etanol en líquido bandeja 1 -
MX(1,1):"): MX(1, 1) = DeltaX1: Cells(15, 2) = MX(1, 1) 'X1
DeltaX2 = InputBox("Incremento inicial composición etanol en líquido bandeja 2 -
MX(2,1):"): MX(2, 1) = DeltaX2: Cells(17, 2) = MX(2, 1) 'X2
DeltaX3 = InputBox("Incremento inicial composición etanol en líquido bandeja 3 -
MX(3,1):"): MX(3, 1) = DeltaX3: Cells(19, 2) = MX(3, 1) 'X3
DeltaX4 = InputBox("Incremento inicial composición etanol en líquido bandeja 4 -
MX(4,1):"): MX(4, 1) = DeltaX4: Cells(21, 2) = MX(4, 1) 'X4
DeltaX5 = InputBox("Incremento inicial composición etanol en líquido bandeja 5 -
MX(5,1):"): MX(5, 1) = DeltaX5: Cells(3, 3) = MX(5, 1) 'X5
DeltaX6 = InputBox("Incremento inicial composición etanol en líquido bandeja 6 -
MX(6,1):"): MX(6, 1) = DeltaX6: Cells(5, 3) = MX(6, 1) 'X6
DeltaXB = InputBox("Incremento inicial composición etanol en fondos - MX(7,1):"):
MX(7, 1) = DeltaXB: Cells(7, 3) = MX(7, 1) 'XB
'Entradas
EntradaRL = InputBox("Entrada - Incremento del caudal de reflujo - moles/seg (RL)
= U(1,1):"): U(1, 1) = EntradaRL: Cells(9, 3) = U(1, 1): 'RL = U(1, 1)
EntradaQV = InputBox("Entrada - Incremento del caudal de vapor - moles/seg (QV) =
U(2,1):"): U(2, 1) = EntradaQV: Cells(11, 3) = U(2, 1): 'QV = U(2, 1)
EntradaLF = InputBox("Entrada - Incremento del caudal de alimentación - moles/seg
(LF) = U(3,1):"): U(3, 1) = EntradaLF: Cells(13, 3) = U(3, 1): 'LF = U(3, 1)
EntradaXF = InputBox("Entrada - Incremento [etanol] en alimentación - moles/seg
(XF) = U(4,1):"): U(4, 1) = EntradaXF: Cells(15, 3) = U(4, 1): 'XF = U(4, 1)

433
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 434

Simulación y control de procesos por ordenador

'Controlador PID
KP = InputBox("Ganancia del controlador - (KP):"): Cells(17, 3) = KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(19,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(21, 3) = TD
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0: ID(1, 3) = 0: ID(1, 4) = 0: ID(1, 5) = 0: ID(1, 6) =
0: ID(1, 7) = 0
ID(2, 1) = 0: ID(2, 2) = 1: ID(2, 3) = 0: ID(2, 4) = 0: ID(2, 5) = 0: ID(2, 6) =
0: ID(2, 7) = 0
ID(3, 1) = 0: ID(3, 2) = 0: ID(3, 3) = 1: ID(3, 4) = 0: ID(3, 5) = 0: ID(3, 6) =
0: ID(3, 7) = 0
ID(4, 1) = 0: ID(4, 2) = 0: ID(4, 3) = 0: ID(4, 4) = 1: ID(4, 5) = 0: ID(4, 6) =
0: ID(4, 7) = 0
ID(5, 1) = 0: ID(5, 2) = 0: ID(5, 3) = 0: ID(5, 4) = 0: ID(5, 5) = 1: ID(5, 6) =
0: ID(5, 7) = 0
ID(6, 1) = 0: ID(6, 2) = 0: ID(6, 3) = 0: ID(6, 4) = 0: ID(6, 5) = 0: ID(6, 6) =
1: ID(6, 7) = 0
ID(7, 1) = 0: ID(7, 2) = 0: ID(7, 3) = 0: ID(7, 4) = 0: ID(7, 5) = 0: ID(7, 6) =
0: ID(7, 7) = 1
'Entrada de filas y columnas matriz MA(7,7)
MA(1, 1) = -(RL - RL * K1 + QV * K1) / M1
MA(1, 2) = QV * K2 / M1
MA(2, 1) = RL / M2: MA(2, 2) = (-RL - QV * K2) / M2: MA(2, 3) = QV * K3 / M2
MA(3, 2) = RL / M3: MA(3, 3) = (-RL - QV * K3) / M3: MA(3, 4) = QV * K4 / M3
MA(4, 3) = RL / M4: MA(4, 4) = (-RL - QV * K4) / M4: MA(4, 5) = QV * K5 / M4
MA(5, 4) = RL / M5: MA(5, 5) = (-RL - QV * K5) / M5: MA(5, 6) = QV * K6 / M5
MA(6, 5) = RL / M6: MA(6, 6) = (-RL - LF - QV * K6) / M6: MA(6, 7) = QV * KB / M6
MA(7, 6) = (RL + LF) / MB: MA(7, 7) = (-RL - LF + QV - QV * KB) / MB
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MBB(7,4)
MBB(1, 1) = (Y1 - X1) / M1: MBB(1, 2) = (Y2 - Y1) / M1
MBB(2, 1) = (X1 - X2) / M2: MBB(2, 2) = (Y3 - Y2) / M2
MBB(3, 1) = (X2 - X3) / M3: MBB(3, 2) = (Y4 - Y3) / M3
MBB(4, 1) = (X3 - X4) / M4: MBB(4, 2) = (Y5 - Y4) / M4
MBB(5, 1) = (X4 - X5) / M5: MBB(5, 2) = (Y6 - Y5) / M5
MBB(6, 1) = (X5 - X6) / M6: MBB(6, 2) = (YB - Y6) / M6
MBB(6, 3) = (XF - X6) / M6: MBB(6, 4) = LF / M6
MBB(7, 1) = (X6 - XB) / MB: MBB(7, 2) = (XB - YB) / MB: MBB(7, 3) = (X6 - XB) /
MB
For j = 1 To 7: For i = 1 To 4
MC(j, i) = MBB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1
For j = 1 To 7: For i = 1 To 7
MP1(j, i) = 0
For k = 1 To 7
MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 7: For i = 1 To 7
MP3(j, i) = 0
For k = 1 To 7
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 7

434
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 435

Simulación de procesos

MP4(j, i) = MP2(j, i) + MP3(j, i)


Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 7: For i = 1 To 4
MD1(j, i) = 0
For k = 1 To 7
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD2(j, i) = MC(j, i) + MD1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 7: For i = 1 To 4
MD3(j, i) = 0
For k = 1 To 7
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD4(j, i) = MD2(j, i) + MD3(j, i)
Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de respuestas anteriores
Contador = 0
While Abs(Cells(Contador + 3, 4)) > 0 Or Abs(Cells(Contador + 3, 5)) > 0 Or
Abs(Cells(Contador + 3, 6)) > 0 Or Abs(Cells(Contador + 3, 7)) Or
Abs(Cells(Contador + 3, 8)) > 0 Or Abs(Cells(Contador + 3, 9)) > 0 Or
Abs(Cells(Contador + 3, 10)) > 0
Cells(Contador + 3, 4) = "": Cells(Contador + 3, 5) = "": Cells(Contador + 3,
6) = "": Cells(Contador + 3, 7) = ""
Cells(Contador + 3, 8) = "": Cells(Contador + 3, 9) = "": Cells(Contador + 3,
10) = "": Cells(Contador + 3, 11) = ""
Cells(Contador + 3, 12) = "": Cells(Contador + 3, 13) = "": Cells(Contador +
3, 14) = ""
Contador = Contador + 1
Wend
'Datos para dibujar la curva de respuesta
H = 0
For w = t0 To tf Step Dt
If H = 2 Or H > 2 Then H = 0
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID
If w = t0 Then Z(2) = 0
If w <> t0 Then F3 = -KP * (MX(1, 1) - Z(2)) - (Dt / TR) * MX(1, 1) - (TD / Dt) *
(MX(1, 1) - 2 * Z(2) + Z(1))
ControlFeedforward LK, KF, F1, F2, F3, F4, KL, CTF, TL, A, VA, p, w, C3, Dt, U(), HF()
'Control anticipativo
ControlPID MP4(), MX(), MD4(), U(), Z(), H 'Control PID
'Controlador incremental PID

435
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 436

Simulación y control de procesos por ordenador

F3 = -KP * (MX(1, 1) - Z(2)) - (Dt / TR) * MX(1, 1) - (TD / Dt) * (MX(1, 1) - 2 *


Z(2) + Z(1))
ControlFeedforward LK, KF, F1, F2, F3, F4, KL, CTF, TL, A, VA, p, w, C3, Dt, U(), HF()
' Control anticipativo
For j = 1 To 7
S = 0
For k = 1 To 7
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
'K1*MX(1,1), X1, X2, X3, X4, X5, X6, RL,XB
Cells(p + 3, 5) = K1 * MX(1, 1) * 1000 'XD = K1 * MX(1, 1) '[moles/mol]
etanol líquido en destilado
Cells(p + 3, 6) = MX(1, 1) * 1000 'X1 = MX(1, 1) '[moles/mol] etanol líquido
en bandeja 1
Cells(p + 3, 7) = MX(2, 1) * 1000 'X2 = MX(2, 1) '[moles/mol] etanol líquido
en bandeja 2
Cells(p + 3, 8) = MX(3, 1) * 1000 'X3 = MX(3, 1) '[moles/mol] etanol líquido
en bandeja 3
Cells(p + 3, 9) = MX(4, 1) * 1000 'X4 = MX(4, 1) '[moles/mol] etanol líquido
en bandeja 4
Cells(p + 3, 10) = MX(5, 1) * 1000 'X5 = MX(5, 1) '[moles/mol] etanol líquido
en bandeja 5
Cells(p + 3, 11) = MX(6, 1) * 1000 'X6 = MX(6, 1) '[moles/mol] etanol líquido
en bandeja 6
Cells(p + 3, 12) = MX(7, 1) * 1000 'XB = MX(7, 1) '[moles/mol] etanol líquido
en fondos
Cells(p + 3, 13) = U(1, 1) 'RL = U(1, 1) 'Caudal Reflujo en moles/segundo
Cells(p + 3, 14) = U(3, 1) 'LF = U(3, 1) 'Caudal Alimentación en moles/segundo
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, QV As Single
Dim U(2, 1), Z(2), MP4(2, 2), MD4(2, 2), MX(2, 1)
Dim n As Single, p As Single, chartsTemp As Object, graf As Object
Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 14)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart

436
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 437

Simulación de procesos

.HasTitle = True
.ChartTitle.Characters.Text = "COLUMNA DE DESTILACIÓN ETANOL-AGUA - Control
Anticipativo (feedforward)"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Composiciones DESTILADO
- BANDEJAS 1 - 2 - 3 - 4 - 5 - 6 - FONDOS - CAUDAL REFLUJO - CAUDAL
ALIMENTACIÓN"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 950:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A28").Select
ActiveCell.FormulaR1C1 = ""
Range("A28").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MX(), MD4(), U(), Z(), H) 'Control PID
Dim j As Integer, k As Integer, i As Integer, S As Single, V As Single
H = H + 1
j = 1: S = 0
For k = 1 To 2
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 2
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function
Function ControlFeedforward(LK, KF, F1, F2, F3, F4, KL, CTF, TL, A, VA, p, w, C3, Dt,
U(), HF())
Dim FS As Single, FM As Single, j As Integer, k As Integer, i As Integer, S As
Single, V As Single, L As Single
FS = (LK * KF - F1 * KL) / (KL * CTF)
FM = KF * TL / (KL + CTF)
F1 = U(3, 1) + FS + FM * A * Cos(VA * w)
HF(p) = F1
If (C3 / Dt) > p Then F2 = F1
If (C3 / Dt) <= p Then L = p - (C3 / Dt): F2 = HF(L)
F4 = F2 + F3
U(1, 1) = F4
End Function

437
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 438

Simulación y control de procesos por ordenador

Factor
velocidad Increpen -
Compo- Compo- Compo- Compo- Compo- Compo-
angular to inicial Compo-
Tiem- Compo- sición sición sición sición sición sición
T inicial perturba - composi - sición Caudal Caudal
po sición desti- desti- desti- desti- desti- desti-
(minu - ción ción etanol desti- Refl.-
e- alimen -
(mi- desti- lado lado lado lado lado lado
tos) senoidal en líquido lado jo tación
nutos) lado bande- bandej bandej bandej bandej bandej
caudal bandeja 5 fondos
ja 1 a2 a3 a4 a5 a6
reflujo - - (X5)
(VA)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0080
0,00 0,02 0,00 0,00 0
9 9 1 6 7 7 4 763 1798
Increpen -
to inicial
Bloque
T final composi -
retardo - 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0078
(minu - ción etano l 5,00 0
minutos - 9 9 1 6 7 5 2 727 9416
tos) en líquido
(C3)
bandeja 6
- (X6)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0077
1.200,00 30,00 0,00 10,00 0
9 8 1 6 7 4 0 693 8176

Increpen -
Incre-
to inicial
mento Reflujo
composi - 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0075
tiempo (moles/ 15,00 0
ción etanol 9 8 0 6 6 2 7 635 8472
(minu- seg) - (RL)
en fondos -
tos)
(XB)

0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0073


5,00 2,80 0,00 20,00 0
8 8 0 5 5 0 2 555 1188
Entrada –
Increpen -
Caudal to del
Nº de vapor caudal de 0,00000 0,00000 0,00001 0,00001 0,00011 0,00152 0,00628 0,00037 0,0069
25,00 0
puntos (moles/ reflujo - 8 8 0 5 4 6 7 452 6598
seg) - (QV) moles/
seg (RL) =
U(1,1)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0079
241,00 3,30 0,00 30,00 0
9 9 1 6 7 6 3 741 4221
Entrada –
Increpen -
Caudal
to del
Valor de alimenta -
caudal de 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0079
p - nº de ción 35,00 0
vapor - 9 9 1 6 7 5 2 728 0038
periodos (moles/se
moles/seg
g) - (LF)
(QV) =
U(2,1)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0077
240,00 2,50 0,00 40,00 0
9 8 1 6 7 4 0 693 8189
Entrada –
Ganan -
Increpen -
cia [Etanol]
to del
Compo- en
caudal de
sición/ alimenta - 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0075
alimenta - 45,00 0
Caudal ción 9 8 0 6 6 2 7 635 8491
ción -
alimen - (moles/
moles/
tación - mol) - (XF)
seg (LF) =
(KF)
U(3,1)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0073
1,0000 0,18 0,00 50,00 0
8 8 0 5 5 0 2 555 1214

Cons- Entrada –
tante de Increpen - Increpen -
tiempo to inicial to [etanol]
Compo- composi - en
0,00000 0,00000 0,00001 0,00001 0,00011 0,00152 0,00628 0,00037 0,0069
sición/ ción etanol alimenta - 55,00 0
8 8 0 5 4 6 7 453 663
Caudal en líquido ción -
alimen - bandeja 1 - moles/
tación - (X1) seg (XF) =
(CTF) U(4,1)

0,00000 0,00000 0,00000 0,00001 0,00011 0,00152 0,00628 0,00037 0,0065


30,00 0,00 0,05 60,00 0
7 7 9 4 3 2 0 33 5087
Increpen -
Ganan -
to inicial
cia Ganancia
composi -
Compo- del contro - 0,00000 0,00000 0,00000 0,00001 0,00011 0,00151 0,00627 0,00037 0,0060
ción etanol 65,00 0
sición/ lador - 7 7 8 3 1 8 2 188 6998
en líquido
Reflujo - (KP)
bandeja 2 -
(KL)
(X2)
0,00000 0,00000 0,00000 0,00001 0,00011 0,00151 0,00626 0,00037 0,0055
1,00 0,00 25,00 70,00 0
6 6 8 2 0 2 2 028 2845
Cons- Increpen -
Tiempo de
tante de to inicial
acción
tiempo composi -
integral - 0,00000 0,00000 0,00000 0,00001 0,00010 0,00150 0,00625 0,00036 0,0049
Compo- ción etanol 75,00 0
minutos/ 6 5 7 1 8 7 2 852 3168
sición/ en líquido
repetición
Reflujo - bandeja 3 -
- (TR)
(TL) (X3)
0,00000 0,00000 0,00000 0,00001 0,00010 0,00150 0,00624 0,00036 0,0042
5,00 0,00 0,50 80,00 0
5 5 6 0 6 0 1 661 8564
Ampli-
Increpen -
tud
to inicial Tiempo de
pertur -
composi - acción
bación 0,00000 0,00000 0,00000 0,00000 0,00010 0,00149 0,00623 0,00036 0,0035
ción etanol derivada - 85,00 0
senoidal 4 4 5 9 4 4 0 457 9678
en líquido minutos -
caudal
bandeja 4 - (TD)
reflujo -
(X4)
(A)
0,00000 0,00000 0,00000 0,00000 0,00010 0,00148 0,00621 0,00036 0,0028
0,05 0,00 1,00 90,00 0
3 3 4 7 2 7 8 243 7199

438
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 439

Simulación de procesos

COLUMNA DE DESTILACIÓN ETANOL-AGUA - Control Anticipativo (feedforward)

0,010000
Composiciones DESTILADO - BANDEJAS 1 - 2

0,008000
3 - 4 - 5 - 6 - FONDOS - CAUDAL REFLUJO -

0,006000 Serie1
Serie2
CAUDAL ALIMENTACIÓN

0,004000
Serie3
0,002000 Serie4
Serie5
0,000000
Serie6
0,00 200,00 400,00 600,00 800,00 1000,00 1200,00 1400,00
-0,002000 Serie7
Serie8
-0,004000
Serie9
-0,006000 Serie10

-0,008000

-0,010000
Tiempo (minutos)

Fig. 15.15 Control anticipativo (feedforward) columna de destilación etanol-agua

Una vez visto este programa, el próximo paso es el control por ordenador de varias
variables de la columna, en forma similar a la que se realiza en la industria en el con-
trol digital directo (DDC). En la figura 15.16 puede verse el diagrama de flujo corres-
pondiente.

Teniendo en cuenta que tenemos cuatro entradas L, V, LF, XF, utilizaremos dos varia-
bles L y V considerando que las otras dos LF y XF son libres. El ordenador tendrá por
algoritmo de control:
CP = KC(EC-Z(2)9 - (T/TR)*EC-(TD/T)*[EC-2*Z(2)+Z(1)]
siendo
KC = Ganancia.
TR = Acción integral en min/rep.
TD = Acción derivada en minutos.
EC = Error (consigna-medida) de la variable controlada.
Y deberá transferir el control alternativamente a las variables de entrada de reflujo y
vapor.

Las sentencias son:


If (w / 2) <> Int(w / 2) Then EC = SV: CP = U(2, 1): KC = KQ: RC = RS: DC
= DS: Impar = 1 'Nº impares - Reflujo
If (w / 2) = Int(w / 2) Then EC = MX(1, 1): CP = U(1, 1): KC = KP: RC =
TR: DC = TD: Par = 1 'Nº pares - Vapor
SV = U(2, 1) + A * Sin(VA * w)’ Perturbación senoidal en el vapor

Siendo:
KP, TR, TD las acciones de control del lazo de reflujo
KQ, RS, DS las acciones de control del lazo de caudal de vapor

439
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 440

Simulación y control de procesos por ordenador

Programa de control DDC de la columna de destilación etanol – agua (reflujo y vapor)

Option Explicit
Private Sub ColumnaDestilacionEtanolAguaDDCVEstado_Click() 'cmdCreateTable_Click()
Dim t0 As Single, Dt As Single, tf As Single
Dim w As Single, XF As Single, LF As Single, L As Integer, n As Integer, S As
Single
Dim X1 As Single, X2 As Single, X3 As Single, X4 As Single, X5 As Single, X6 As
Single, XB As Single
Dim K1 As Single, K2 As Single, K3 As Single, K4 As Single, K5 As Single, K6 As
Single, KB As Single
Dim Y1 As Single, Y2 As Single, Y3 As Single, Y4 As Single, Y5 As Single, Y6 As
Single, YB As Single
Dim M1 As Single, M2 As Single, M3 As Single, M4 As Single, M5 As Single, M6 As
Single, MB As Single
Dim KP As Single, TR As Single, TD As Single, Par As Integer, Impar As Integer
Dim A As Single, VA As Single, KQ As Single, RS As Single, DS As Single, SV As
Single, EC As Single
Dim CP As Single, KC As Single, RC As Single, DC As Single
Dim j As Integer, i As Integer, k As Integer, XD As Single, Contador As Integer
Dim p As Single, RL As Single, QV As Single, V As Single, H As Integer
Dim DeltaX1 As Single, DeltaX2 As Single, DeltaX3 As Single, DeltaX4 As Single,
DeltaX5 As Single, DeltaX6 As Single, DeltaXB As Single
Dim EntradaRL As Single, EntradaQV As Single, EntradaLF As Single, EntradaXF As
Single
Dim ID(8, 8), MA(8, 8), MBB(8, 5), MC(8, 5), MP1(8, 8), MP2(8, 8), MP3(8, 8),
MP4(8, 8)
Dim MD1(8, 5), MD2(8, 5), MD3(8, 5), MD4(8, 5)
Dim MX(8, 2), MX1(8, 2), MX2(8, 2), U(5, 2), Z(3)
'Control por balance de energía con potencia constante del hervidor
'Control DDC caudal de vapor y composición 1ª bandeja
'6 bandejas con alimentación en la sexta - Control de composición en"
'la primera bandeja (Variaciones de composición superiores EN LA 5ª"
'Linealización por el método de las pequeñas perturbaciones alrededor del punto de
operación
' Funciones de la columna
'Controlador incremental-RL=KP*(E+(1/TR)*EDT+TD*(DE/DT))
'Valvulas con dinámica despreciable frente al tiempo de reacción
'de la columna. La válvula y el transmisor están englobados en el proceso.
'Bandeja 1- M1*X1'=RL*XD-RL*X1+QV*Y2-QV*Y1 y como XD=Y1 resulta:
' Bandeja 1- M1*X1'=RL*Y1-RL*X1+QV*Y2-QV*Y1
'BANDEJA 2- M2*X2'=RL*X1-RL*X2+QV*Y3-QV*Y2
'BANDEJA 3- M3*X3'=RL*X2-RL*X3+QV*Y4-QV*Y3
'BANDEJA 4- M4.X4'=RL*X3-RL*X4+QV*Y5-QV*Y4
'BANDEJA 5- M5.X5'=RL*X4-RL-X5+QV*Y6-QV.Y5
'BANDEJA 6- M6*X6'=RL*X5-(RL+LF)*X6+QV*YB-QV*Y6+LF*XF
'REHERVIDOR- MB*XB'=(RL+LF)*X6-LB*XB-QV*YB y como LB=LF+RL-QV resulta
'REHERVIDOR- MB.XB'=(RL+LF)*X6-(RL+LF)*XB+QV*XB-QV*YB
'Control DDC accionando el vapor U(2,1) y el reflujo U(1,1)
'Perturbación senoidal en el caudal de vapor
'Ecuaciones de estado linealizadas - B~Bandeja, R=Rehervidor
'Los coeficientes de las variables de estado y de las entradas son valores medios de
operación de la columna. Y = Composición del vapor
'MI=Moles etanol líquido en la bandeja I, K = Constantes de equilibrio
'X1, X2, X3, X4, X5, X6, XB, Variables de estado y RL, QV, LF, XF Variables de entrada
' son perturbaciones (incrementos alrededor del punto de operación)
' XI=[Moles/Mol] etanol en la bandeja I, XB=[Moles/Mol etanol en el rehervidor
' RL=Reflujo moles/seg, QV = Caudal vapor (moles/seg)

440
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 441

Simulación de procesos

' LF=Caudal alimentación (moles/seg), XF=[Moles/Mol] etanol en la alimentación


' B-1- X1'=(-(RL-RL*K1+QV*K1)*X1+(Y1-X1)*RL-(Y1-Y2)*QV+QV*K2*X2)/M1
' B-2- X2'=(RL*X1-(RL+QV*K2)*X2+(X1-X2)*RL-(Y2-Y3)*QV+QV*K3*X3)/M2
' B-3- X3'=(RL*X2-(RL+QV*K3)*X3+(X2-X3)*RL-(Y3-Y4)*QV+QV*K4*X4)/M3
' B-4- X4'=(RL*X3-(RL+QV*K4)*X4+(X3-X4)*RL-(Y4-Y5)*QV+QV*K5*X5)/M4
' B-5- X5'=(RL*X4-(RL+QV*K5)*X5+(X4-X5)*RL-(Y5-Y6)*QV+QV*K6*X6)/M5
' B-6- X6'=(RL*X5-(RL+LF-QV*K6)*X6+(X5-X6)*RL-(Y6-YB)*QV+QV*KB*XB+(XF-X6)*LF+LF*XF)/M6
' R- XB'=((RL+LF)*X6-(RL+LF-QV+QV*KB)*XB+(X6-XB)*RL+(X6-XB)*LF-(YB-XB)*QV)/MB
' XF=[Moles/mol] etanol en la alimentación
' Solución en el dominio del tiempo - X((K+1)*T)=PHI*X(KT)+DELTA*U(KT)
' PHI=Matriz de transición, X(K*T)=Vector de estado. DELTA=Matriz de fuerza.
'T debe ser tal que la serie PHI=ID+AT+A^2(T^2/2!) converja con números que el orde-
nador pueda manejar (l<Suma ^A(I.J)^)*T<10)
'CAUDAL REFLUJO - Composiciones DESTILADO - BANDEJAS 1 - 2 - 3 - 4 - 5 - 6 - FONDOS -
CAUDAL ALIMENTACIÓN - CAUDAL VAPOR
Range("D2").Select
ActiveCell.FormulaR1C1 = "Tiempo (minutos)"
Range("D2").Select
Selection.Font.Bold = True
Range("E2").Select
ActiveCell.FormulaR1C1 = "Composición destilado"
Range("E2").Select
Selection.Font.Bold = True
Range("F2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 1"
Range("F2").Select
Selection.Font.Bold = True
Range("G2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 2"
Range("G2").Select
Selection.Font.Bold = True
Range("H2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 3"
Range("H2").Select
Selection.Font.Bold = True
Range("I2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 4"
Range("I2").Select
Selection.Font.Bold = True
Range("J2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 5"
Range("J2").Select
Selection.Font.Bold = True
Range("K2").Select
ActiveCell.FormulaR1C1 = "Composición destilado bandeja 6"
Range("K2").Select
Selection.Font.Bold = True
Range("L2").Select
ActiveCell.FormulaR1C1 = "Composición destilado fondos"
Range("L2").Select
Selection.Font.Bold = True
Range("M2").Select
ActiveCell.FormulaR1C1 = "Caudal Reflujo"
Range("M2").Select
Selection.Font.Bold = True
Range("N2").Select
ActiveCell.FormulaR1C1 = "Caudal Alimentación (LF)"
Range("N2").Select
Selection.Font.Bold = True

441
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 442

Simulación y control de procesos por ordenador

Range("O2").Select
ActiveCell.FormulaR1C1 = "Caudal Vapor - perturbación senoidal (SV =
U(2,1)+senoide)"
Range("O2").Select
Selection.Font.Bold = True
Range("A2").Select
ActiveCell.FormulaR1C1 = "Tinicial (minutos)"
Range("A2").Select
Selection.Font.Bold = True
Range("A4").Select
ActiveCell.FormulaR1C1 = "Tfinal (minutos)"
Range("A4").Select
Selection.Font.Bold = True
Range("A6").Select
ActiveCell.FormulaR1C1 = "Incremento tiempo (minutos)"
Range("A6").Select
Selection.Font.Bold = True
Range("A8").Select
ActiveCell.FormulaR1C1 = "Nº de puntos"
Range("A8").Select
Selection.Font.Bold = True
Range("A10").Select
ActiveCell.FormulaR1C1 = "Valor de p - nº de períodos"
Range("A10").Select
Selection.Font.Bold = True
Range("A12").Select
ActiveCell.FormulaR1C1 = "Amplitud perturbación senoidal caudal reflujo - (A)"
Range("A12").Select
Selection.Font.Bold = True
Range("A14").Select
ActiveCell.FormulaR1C1 = "Factor velocidad angular perturbación senoidal caudal
reflujo - (VA)"
Range("A14").Select
Selection.Font.Bold = True
Range("A16").Select
ActiveCell.FormulaR1C1 = "Reflujo (moles/seg) - (RL)"
Range("A16").Select
Selection.Font.Bold = True
Range("A18").Select
ActiveCell.FormulaR1C1 = "Caudal vapor (moles/seg) - (QV)"
Range("A18").Select
Selection.Font.Bold = True
Range("A20").Select
ActiveCell.FormulaR1C1 = "Caudal alimentación (moles/seg) - (LF)"
Range("A20").Select
Selection.Font.Bold = True
Range("B2").Select
ActiveCell.FormulaR1C1 = "[Etanol] en alimentación (moles/mol) - (XF)"
Range("B2").Select
Selection.Font.Bold = True
Range("B4").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
1 - (X1)"
Range("B4").Select
Selection.Font.Bold = True
Range("B6").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
2 - (X2)"
Range("B6").Select

442
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 443

Simulación de procesos

Selection.Font.Bold = True
Range("B8").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
3 - (X3)"
Range("B8").Select
Selection.Font.Bold = True
Range("B10").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
4 - (X4)"
Range("B10").Select
Selection.Font.Bold = True
Range("B12").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
5 - (X5)"
Range("B12").Select
Selection.Font.Bold = True
Range("B14").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en líquido bandeja
6 - (X6)"
Range("B14").Select
Selection.Font.Bold = True
Range("B16").Select
ActiveCell.FormulaR1C1 = "Incremento inicial composición etanol en fondos - (XB)"
Range("B16").Select
Selection.Font.Bold = True
Range("B18").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de reflujo - moles/seg
(RL) = U(1,1)"
Range("B18").Select
Selection.Font.Bold = True
Range("C2").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de vapor - moles/seg
(QV) = U(2,1)"
Range("C2").Select
Selection.Font.Bold = True
Range("C4").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento del caudal de alimentación -
moles/seg (LF) = U(3,1)"
Range("C4").Select
Selection.Font.Bold = True
Range("C6").Select
ActiveCell.FormulaR1C1 = "Entrada - Incremento [etanol] en alimentación - moles/seg
(XF) = U(4,1)"
Range("C6").Select
Selection.Font.Bold = True
'Acciones controlador
Range("C8").Select
ActiveCell.FormulaR1C1 = "Ganancia del control de composición - (KP)"
Range("C8").Select
Selection.Font.Bold = True
Range("C10").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral del control de composición -
minutos/repetición - (TR)"
Range("C10").Select
Selection.Font.Bold = True
Range("C12").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada del control de composición -
minutos - (TD)"
Range("C12").Select

443
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 444

Simulación y control de procesos por ordenador

Selection.Font.Bold = True
Range("C14").Select
ActiveCell.FormulaR1C1 = "Ganancia del caudal de vapor - (KQ)"
Range("C14").Select
Selection.Font.Bold = True
Range("C16").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción integral del caudal de vapor -
minutos/repetición - (RS)"
Range("C16").Select
Selection.Font.Bold = True
Range("C18").Select
ActiveCell.FormulaR1C1 = "Tiempo de acción derivada del caudal de vapor - minutos
- (DS)"
Range("C18").Select
Selection.Font.Bold = True
'Pedir datos
t0 = InputBox("Valor inicial de t (t0)- minutos:"): Cells(3, 1) = t0 'Tiempo ini-
cial
tf = InputBox("Valor final de t (tf)- minutos:"): Cells(5, 1) = tf 'Tiempo final
Dt = InputBox("Incremento de t (Dt)- minutos:"): Cells(7, 1) = Dt 'Incremento
tiempo
n = Int((tf - t0) / (Dt)) + 1: Cells(9, 1) = n 'Número de puntos
' Programa para X((K+1)*T)=PHI*X(KT)+DELTA*U(KT)
' K=Indice del tiempo, T=Incremento del tiempo, U(K*T)=Entrada
' Condiciones iniciales - K=O, U(K.T) y MX(7,1) a especificar
' Mezcla etanol-agua en bandejas y rehervidor, K=Constantes de equilibrio.
' X=[Moles/Mol] etanol líquido, Y=[Moles/Mol] etanol vapor, M=Moles de etanol líquido
K1 = 1.0425: K2 = 1.0628: K3 = 1.0904: K4 = 1.1508: K5 = 1.4324: K6 = 3.5185: KB =
7.8333
X1 = 0.7674: X2 = 0.7266: X3 = 0.6765: X4 = 0.6039: X5 = 0.4422: X6 = 0.1409: XB =
0.03
Y1 = 0.8: Y2 = 0.7722: Y3 = 0.7376: Y4 = 0.695: Y5 = 0.6334: Y6 = 0.4957: YB =
0.235
M1 = 153: M2 = 150: M3 = 148: M4 = 145: M5 = 124: M6 = 58: MB = 200
'Control DDC - Perturbación del vapor
A = InputBox("Amplitud perturbación senoidal caudal vapor - (A):"): Cells(13, 1) = A
VA = InputBox("Factor velocidad angular perturbación senoidal caudal vapor -
(VA):"): Cells(15, 1) = VA
'Valores medios de operación de las variables de entrada
RL = InputBox("Reflujo (moles/seg) - (RL):"): Cells(17, 1) = RL
QV = InputBox("Caudal vapor (moles/seg) - (QV):"): Cells(19, 1) = QV
LF = InputBox("Caudal alimentación (moles/seg) - (LF):"): Cells(21, 1) = LF
XF = InputBox("[Etanol] en alimentación (moles/mol) - (XF):"): Cells(3, 2) = XF
'Incrementos iniciales
DeltaX1 = InputBox("Incremento inicial composición etanol en líquido bandeja 1 -
MX(1,1):"): MX(1, 1) = DeltaX1: Cells(5, 2) = MX(1, 1) 'X1
DeltaX2 = InputBox("Incremento inicial composición etanol en líquido bandeja 2 -
MX(2,1):"): MX(2, 1) = DeltaX2: Cells(7, 2) = MX(2, 1) 'X2
DeltaX3 = InputBox("Incremento inicial composición etanol en líquido bandeja 3 -
MX(3,1):"): MX(3, 1) = DeltaX3: Cells(9, 2) = MX(3, 1) 'X3
DeltaX4 = InputBox("Incremento inicial composición etanol en líquido bandeja 4 -
MX(4,1):"): MX(4, 1) = DeltaX4: Cells(11, 2) = MX(4, 1) 'X4
DeltaX5 = InputBox("Incremento inicial composición etanol en líquido bandeja 5 -
MX(5,1):"): MX(5, 1) = DeltaX5: Cells(13, 2) = MX(5, 1) 'X5
DeltaX6 = InputBox("Incremento inicial composición etanol en líquido bandeja 6 -
MX(6,1):"): MX(6, 1) = DeltaX6: Cells(15, 2) = MX(6, 1) 'X6
DeltaXB = InputBox("Incremento inicial composición etanol en fondos - MX(7,1):"):
MX(7, 1) = DeltaXB: Cells(17, 2) = MX(7, 1) 'XB
'Entradas

444
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 445

Simulación de procesos

EntradaRL = InputBox("Entrada - Incremento del caudal de reflujo - moles/seg (RL)


= U(1,1):"): U(1, 1) = EntradaRL: Cells(19, 2) = U(1, 1): 'RL = U(1, 1)
EntradaQV = InputBox("Entrada - Incremento del caudal de vapor - moles/seg (QV) =
U(2,1):"): U(2, 1) = EntradaQV: Cells(3, 3) = U(2, 1): 'QV = U(2, 1)
EntradaLF = InputBox("Entrada - Incremento del caudal de alimentación - moles/seg
(LF) = U(3,1):"): U(3, 1) = EntradaLF: Cells(5, 3) = U(3, 1): 'LF = U(3, 1)
EntradaXF = InputBox("Entrada - Incremento [etanol] en alimentación - moles/seg
(XF) = U(4,1):"): U(4, 1) = EntradaXF: Cells(7, 3) = U(4, 1): 'XF = U(4, 1)
'Acciones Controlador DDC
KP = InputBox("Ganancia del controlador - (KP):"): Cells(9, 3) = KP
TR = InputBox("Tiempo de acción integral - minutos/repetición - (TR):"): Cells(11,
3) = TR
TD = InputBox("Tiempo de acción derivada - minutos - (TD):"): Cells(13, 3) = TD
KQ = InputBox("Ganancia del controlador - (KQ):"): Cells(15, 3) = KQ
RS = InputBox("Tiempo de acción integral - minutos/repetición - (RS):"): Cells(17,
3) = RS
DS = InputBox("Tiempo de acción derivada - minutos - (DS):"): Cells(19, 3) = DS
'Programa para PHI - Condiciones iniciales
ID(1, 1) = 1: ID(1, 2) = 0: ID(1, 3) = 0: ID(1, 4) = 0: ID(1, 5) = 0: ID(1, 6) =
0: ID(1, 7) = 0
ID(2, 1) = 0: ID(2, 2) = 1: ID(2, 3) = 0: ID(2, 4) = 0: ID(2, 5) = 0: ID(2, 6) =
0: ID(2, 7) = 0
ID(3, 1) = 0: ID(3, 2) = 0: ID(3, 3) = 1: ID(3, 4) = 0: ID(3, 5) = 0: ID(3, 6) =
0: ID(3, 7) = 0
ID(4, 1) = 0: ID(4, 2) = 0: ID(4, 3) = 0: ID(4, 4) = 1: ID(4, 5) = 0: ID(4, 6) =
0: ID(4, 7) = 0
ID(5, 1) = 0: ID(5, 2) = 0: ID(5, 3) = 0: ID(5, 4) = 0: ID(5, 5) = 1: ID(5, 6) =
0: ID(5, 7) = 0
ID(6, 1) = 0: ID(6, 2) = 0: ID(6, 3) = 0: ID(6, 4) = 0: ID(6, 5) = 0: ID(6, 6) =
1: ID(6, 7) = 0
ID(7, 1) = 0: ID(7, 2) = 0: ID(7, 3) = 0: ID(7, 4) = 0: ID(7, 5) = 0: ID(7, 6) =
0: ID(7, 7) = 1
'Entrada de filas y columnas matriz MA(7,7)
MA(1, 1) = -(RL - RL * K1 + QV * K1) / M1
MA(1, 2) = QV * K2 / M1
MA(2, 1) = RL / M2: MA(2, 2) = (-RL - QV * K2) / M2: MA(2, 3) = QV * K3 / M2
MA(3, 2) = RL / M3: MA(3, 3) = (-RL - QV * K3) / M3: MA(3, 4) = QV * K4 / M3
MA(4, 3) = RL / M4: MA(4, 4) = (-RL - QV * K4) / M4: MA(4, 5) = QV * K5 / M4
MA(5, 4) = RL / M5: MA(5, 5) = (-RL - QV * K5) / M5: MA(5, 6) = QV * K6 / M5
MA(6, 5) = RL / M6: MA(6, 6) = (-RL - LF - QV * K6) / M6: MA(6, 7) = QV * KB / M6
MA(7, 6) = (RL + LF) / MB: MA(7, 7) = (-RL - LF + QV - QV * KB) / MB
'Programa para DELTA - Condiciones iniciales
'Entrada de filas y columnas matriz MBB(7,4)
MBB(1, 1) = (Y1 - X1) / M1: MBB(1, 2) = (Y2 - Y1) / M1
MBB(2, 1) = (X1 - X2) / M2: MBB(2, 2) = (Y3 - Y2) / M2
MBB(3, 1) = (X2 - X3) / M3: MBB(3, 2) = (Y4 - Y3) / M3
MBB(4, 1) = (X3 - X4) / M4: MBB(4, 2) = (Y5 - Y4) / M4
MBB(5, 1) = (X4 - X5) / M5: MBB(5, 2) = (Y6 - Y5) / M5
MBB(6, 1) = (X5 - X6) / M6: MBB(6, 2) = (YB - Y6) / M6
MBB(6, 3) = (XF - X6) / M6: MBB(6, 4) = LF / M6
MBB(7, 1) = (X6 - XB) / MB: MBB(7, 2) = (XB - YB) / MB: MBB(7, 3) = (X6 - XB) / MB
For j = 1 To 7: For i = 1 To 4
MC(j, i) = MBB(j, i) * Dt
Next i: Next j
'Cálculo de PHI
L = 1
For j = 1 To 7: For i = 1 To 7
MP1(j, i) = 0
For k = 1 To 7

445
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 446

Simulación y control de procesos por ordenador

MP1(j, i) = MP1(j, i) + ID(j, k) * MA(k, i) * (Dt / L)


Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP2(j, i) = ID(j, i) + MP1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 7: For i = 1 To 7
MP3(j, i) = 0
For k = 1 To 7
MP3(j, i) = MP3(j, i) + MP1(j, k) * MA(k, i) * (Dt / L)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP4(j, i) = MP2(j, i) + MP3(j, i)
Next i: Next j
For j = 1 To 7: For i = 1 To 7
MP1(j, i) = MP3(j, i)
MP2(j, i) = MP4(j, i)
Next i: Next j
Next L
'Comprobar el grado de convergencia de PHI
'Cálculo de DELTA
L = 1
For j = 1 To 7: For i = 1 To 4
MD1(j, i) = 0
For k = 1 To 7
MD1(j, i) = MD1(j, i) + MA(j, k) * (Dt / (1 + L)) * MC(k, i)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD2(j, i) = MC(j, i) + MD1(j, i)
Next i: Next j
For L = 2 To 4
For j = 1 To 7: For i = 1 To 4
MD3(j, i) = 0
For k = 1 To 7
MD3(j, i) = MD3(j, i) + MA(j, k) * (Dt / (L + 1)) * MD1(k, i)
Next k: Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD4(j, i) = MD2(j, i) + MD3(j, i)
Next i: Next j
For j = 1 To 7: For i = 1 To 4
MD1(j, i) = MD3(j, i)
MD2(j, i) = MD4(j, i)
Next i: Next j
Next L
'Borra las celdas de respuestas anteriores
Contador = 0
While Abs(Cells(Contador + 3, 4)) > 0 Or Abs(Cells(Contador + 3, 5)) > 0 Or
Abs(Cells(Contador + 3, 6)) > 0 Or Abs(Cells(Contador + 3, 7)) Or
Abs(Cells(Contador + 3, 8)) > 0 Or Abs(Cells(Contador + 3, 9)) > 0
Cells(Contador + 3, 4) = "": Cells(Contador + 3, 5) = "": Cells(Contador + 3,
6) = "": Cells(Contador + 3, 7) = ""
Cells(Contador + 3, 8) = "": Cells(Contador + 3, 9) = "": Cells(Contador + 3,
10) = "": Cells(Contador + 3, 11) = ""
Cells(Contador + 3, 12) = "": Cells(Contador + 3, 13) = "": Cells(Contador +
3, 14) = "": Cells(Contador + 3, 15) = ""
Contador = Contador + 1
Wend
'Datos para dibujar la curva de respuesta
H = 0

446
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 447

Simulación de procesos

For w = t0 To tf Step Dt
If H = 2 Or H > 2 Then H = 0
p = (w - t0) / Dt: Cells(11, 1) = p
Cells(p + 3, 4) = w
SV = U(2, 1) + A * Sin(VA * w)’ Perturbación senoidal en el vapor
Impar = 0
If (w / 2) <> Int(w / 2) Then EC = SV: CP = U(2, 1): KC = KQ: RC = RS: DC = DS:
Impar = 1 'Nº impares - Reflujo
If (w / 2) = Int(w / 2) Then EC = MX(1, 1): CP = U(1, 1): KC = KP: RC = TR: DC =
TD: Par = 1 'Nº pares - Vapor
ControlPID MP4(), MD4(), MX(), U(), Z(), H 'Control PID
If w = t0 Then Z(2) = 0
'Controlador incremental DDC
If w <> t0 Then CP = -KC * (EC - Z(2)) - (Dt / RC) * EC - (DC / Dt) * (EC - 2 *
Z(2) + Z(1))
ControlPID MP4(), MD4(), MX(), U(), Z(), H 'Control PID
'Controlador incremental DDC
CP = -KC * (EC - Z(2)) - (Dt / RC) * EC - (DC / Dt) * (EC - 2 * Z(2) + Z(1))
If Impar = 1 Then U(2, 1) = CP: Impar = 0
If Par = 1 Then U(1, 1) = CP: Par = 0
For j = 1 To 7
S = 0
For k = 1 To 7
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
MX(j, 1) = S + V
Next j
'Destilado, X1, X2, X3, X4, X5, X6,XB,RL,CP,SV
Cells(p + 3, 5) = K1 * MX(1, 1) * 1000: XD = K1 * MX(1, 1) '[moles/mol]
etanol líquido en destilado
Cells(p + 3, 6) = MX(1, 1) * 1000: X1 = MX(1, 1) '[moles/mol] etanol líquido
en bandeja 1
Cells(p + 3, 7) = MX(2, 1) * 1000: X2 = MX(2, 1) '[moles/mol] etanol líquido
en bandeja 2
Cells(p + 3, 8) = MX(3, 1) * 1000: X3 = MX(3, 1) '[moles/mol] etanol líquido
en bandeja 3
Cells(p + 3, 9) = MX(4, 1) * 1000: X4 = MX(4, 1) '[moles/mol] etanol líquido
en bandeja 4
Cells(p + 3, 10) = MX(5, 1) * 1000: X5 = MX(5, 1) '[moles/mol] etanol líquido
en bandeja 5
Cells(p + 3, 11) = MX(6, 1) * 1000: X6 = MX(6, 1) '[moles/mol] etanol líquido
en bandeja 6
Cells(p + 3, 12) = MX(7, 1) * 1000: XB = MX(7, 1) '[moles/mol] etanol líquido
en fondos
Cells(p + 3, 13) = U(1, 1): RL = U(1, 1) 'Caudal Reflujo en moles/seg
Cells(p + 3, 14) = U(3, 1) 'Caudal Alimentación
Cells(p + 3, 15) = U(2, 1) 'Caudal Vapor y perturbación senoidal
Next w
Call grafico
End Sub
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, k As Integer
Dim S As Single, QV As Single
Dim U(2, 1), Z(2), MP4(2, 2), MD4(2, 2), MX(2, 1)

447
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 448

Simulación y control de procesos por ordenador

Dim n As Single, p As Single, chartsTemp As Object, graf As Object


Dim datos As String
n = Cells(9, 1): p = Cells(11, 1)
'Eliminar gráfico anterior
Set chartsTemp = ActiveSheet.ChartObjects
If chartsTemp.Count > 0 Then
chartsTemp(chartsTemp.Count).Delete
End If
datos = Range(Cells(3, 4), Cells(p + 3, 14)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos), PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "COLUMNA DE DESTILACIÓN ETANOL-AGUA - Control
D.D.C."
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Tiempo (minutos)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Composiciones DESTILADO
- BANDEJAS 1 - 2 - 3 - 4 - 5 - 6 - FONDOS - CAUDAL REFLUJO - CAUDAL
ALIMENTACIÓN - CAUDAL VAPOR"
.Axes(xlValue, xlPrimary).HasTitle = True
End With
'Cambia el gráfico de posición
With ActiveChart.Parent
.Left = 1010:
.Top = 15:
End With
'El programa termina en una celda vacía
Range("A28").Select
ActiveCell.FormulaR1C1 = ""
Range("A28").Select
Selection.Font.Bold = True
End Sub
Function ControlPID(MP4(), MD4(), MX(), U(), Z(), H) 'Control PID
Dim j As Integer, k As Integer, i As Integer, S As Single, V As Single
H = H + 1
j = 1: S = 0
For k = 1 To 7
S = S + MP4(j, k) * MX(k, 1)
Next k
V = 0
For i = 1 To 4
V = V + MD4(j, i) * U(i, 1)
Next i
Z(H) = S + V
End Function

448
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 449

Simulación de procesos

Factor
velocidad Increpen -
Compo- Compo- Compo- Compo- Compo- Compo-
angular to inicial Compo-
Tiem- Compo- sición sición sición sición sición sición
T inicial perturba - composi - sición Caudal Caudal
po sición desti- desti- desti- desti- desti- desti-
(minu - ción ción etanol desti- Refle- alimen -
(mi- desti- lado lado lado lado lado lado
tos) senoidal en líquido lado jo tación
nutos) lado bande- bande- bande- bande- bande- bande-
caudal bandeja 5 fondos
ja 1 ja 2 ja 3 ja 4 ja 5 ja 6
reflujo - - (X5)
(VA)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0080
0,00 0,02 0,00 0,00 0
9 9 1 6 7 7 4 763 1798
Increpen -
to inicial
Bloque
T final composi -
retardo - 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0078
(minu - ción etano l 5,00 0
minutos - 9 9 1 6 7 5 2 727 9416
tos) en líquido
(C3)
bandeja 6
- (X6)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0077
1.200,00 30,00 0,00 10,00 0
9 8 1 6 7 4 0 693 8176

Increpen -
Incre-
to inicial
mento Reflujo
composi - 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0075
tiempo (moles/ 15,00 0
ción etanol 9 8 0 6 6 2 7 635 8472
(minu- seg) - (RL)
en fondos -
tos)
(XB)

0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0073


5,00 2,80 0,00 20,00 0
8 8 0 5 5 0 2 555 1188
Entrada –
Increpen -
Caudal to del
Nº de vapor caudal de 0,00000 0,00000 0,00001 0,00001 0,00011 0,00152 0,00628 0,00037 0,0069
25,00 0
puntos (moles/ reflujo - 8 8 0 5 4 6 7 452 6598
seg) - (QV) moles/
seg (RL) =
U(1,1)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0079
241,00 3,30 0,00 30,00 0
9 9 1 6 7 6 3 741 4221
Entrada –
Increpen -
Caudal
to del
Valor de alimenta -
caudal de 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0079
p - nº de ción 35,00 0
vapor - 9 9 1 6 7 5 2 728 0038
periodos (moles/se
moles/seg
g) - (LF)
(QV) =
U(2,1)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00630 0,00037 0,0077
240,00 2,50 0,00 40,00 0
9 8 1 6 7 4 0 693 8189
Entrada –
Ganan -
Increpen -
cia [Etanol]
to del
Compo- en
caudal de
sición/ alimenta - 0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0075
alimenta - 45,00 0
Caudal ción 9 8 0 6 6 2 7 635 8491
ción -
alimen - (moles/
moles/
tación - mol) - (XF)
seg (LF) =
(KF)
U(3,1)
0,00000 0,00000 0,00001 0,00001 0,00011 0,00153 0,00629 0,00037 0,0073
1,0000 0,18 0,00 50,00 0
8 8 0 5 5 0 2 555 1214

Cons- Entrada –
tante de Increpen - Increpen -
tiempo to inicial to [etanol]
Compo- composi - en
0,00000 0,00000 0,00001 0,00001 0,00011 0,00152 0,00628 0,00037 0,0069
sición/ ción etanol alimenta - 55,00 0
8 8 0 5 4 6 7 453 663
Caudal en líquido ción -
alimen - bandeja 1 - moles/
tación - (X1) seg (XF) =
(CTF) U(4,1)

0,00000 0,00000 0,00000 0,00001 0,00011 0,00152 0,00628 0,00037 0,0065


30,00 0,00 0,05 60,00 0
7 7 9 4 3 2 0 33 5087
Increpen -
Ganan -
to inicial
cia Ganancia
composi -
Compo- del contro - 0,00000 0,00000 0,00000 0,00001 0,00011 0,00151 0,00627 0,00037 0,0060
ción etanol 65,00 0
sición/ lador - 7 7 8 3 1 8 2 188 6998
en líquido
Reflujo - (KP)
bandeja 2 -
(KL)
(X2)
0,00000 0,00000 0,00000 0,00001 0,00011 0,00151 0,00626 0,00037 0,0055
1,00 0,00 25,00 70,00 0
6 6 8 2 0 2 2 028 2845
Cons- Increpen -
Tiempo de
tante de to inicial
acción
tiempo composi -
integral - 0,00000 0,00000 0,00000 0,00001 0,00010 0,00150 0,00625 0,00036 0,0049
Compo- ción etanol 75,00 0
minutos/ 6 5 7 1 8 7 2 852 3168
sición/ en líquido
repetición
Reflujo - bandeja 3 -
- (TR)
(TL) (X3)
0,00000 0,00000 0,00000 0,00001 0,00010 0,00150 0,00624 0,00036 0,0042
5,00 0,00 0,50 80,00 0
5 5 6 0 6 0 1 661 8564
Ampli-
Increpen -
tud
to inicial Tiempo de
pertur -
composi - acción
bación 0,00000 0,00000 0,00000 0,00000 0,00010 0,00149 0,00623 0,00036 0,0035
ción etanol derivada - 85,00 0
senoidal 4 4 5 9 4 4 0 457 9678
en líquido minutos -
caudal
bandeja 4 - (TD)
reflujo -
(X4)
(A)
0,00000 0,00000 0,00000 0,00000 0,00010 0,00148 0,00621 0,00036 0,0028
0,05 0,00 1,00 90,00 0
3 3 4 7 2 7 8 243 7199

449
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 450

Simulación y control de procesos por ordenador

COLUMNA DE DESTILACIÓN ETANOL-AGUA - Control D.D.C.


50,000000

45,000000
2 - 3 - 4 - 5 - 6 - FONDOS - CAUDAL REFLUJO -
Composiciones DESTILADO - BANDEJAS 1 -

CAUDAL ALIMENTACIÓN - CAUDAL VAPOR

40,000000

35,000000 Serie1

30,000000
Serie2
Serie3
25,000000
Serie4
20,000000 Serie5
15,000000 Serie6
10,000000 Serie7
Serie8
5,000000
Serie9
0,000000
Serie10
0,00 200,00 400,00 600,00 800,00 1000,00 1200,00 1400,00
-5,000000
Tiempo (minutos)

Fig. 15.16 Control D.D.C. de una columna de destilación etanol - agua

450
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 451

Simulación de procesos

Ejercicios

15.1 Determinar la ecuación de estado del movimiento de una partícula de producto


en el tubo de secado de un secadero flash.
15.2 Determinar la ecuación de estado de continuidad de las partículas en el tubo de
secado de un secadero flash.
15.3 Modificar el programa del secadero rotativo para introducir un retardo entre la
entrada del producto y su llegada a la toma de temperatura por el termopar o
por el pirómetro de radiación.
15.4 Indicar en el programa del secadero túnel, el efecto de la radiación emitida por
las paredes del horno en la zona de cocción.
15.5 Indicar el efecto de las vagonetas de transporte de material dentro del horno.
15.6 Qué efecto tendría en el programa del horno túnel la apertura de las puertas de
entrada de las vagonetas.
15.7 En el programa del evaporador de triple efecto, el controlador capta la concen-
tración C3 = X(8, 1) del tercer efecto y actúa sobre el caudal de vapor de calefac-
ción WS = U(4,1). Indicar las modificaciones a realizar para que C3 actúe sobre la
entrada del producto.
15.8 En el programa del evaporador de triple efecto, indicar las modificaciones a rea-
lizar para que C3 actúe sobre la salida del producto final.
15.9 Incluir en el programa del reactor discontinuo las sentencias adecuadas para que
aparezca en la pantalla un mensaje cuando actúe la válvula del agua de refrige-
ración.
15.10 La reacción exotérmica no controlada es uno de los mayores peligros de los reac-
tores exotérmicos. Antes de la aplicación de los microprocesadores, se llegaba a
la conclusión de que el mejor control era el manual, a cargo de un operario con
años de experiencia en el reactor. Escribir las sentencias adecuadas para simular
la actuación del operario.
15.11 Indicar las modificaciones a realizar en el programa de la columna de destilación
si se desea controlar la columna a través de la composición de la segunda ban-
deja.
15.12 Incluir en el programa de la columna de destilación las sentencias adecuadas para
que aparezca en la pantalla un mensaje de alarma intermitente cuando la varia-
ción en la composición de la primera bandeja supera un límite determinado.
15.13 Completar el programa de la columna de destilación con control de presaliment-
sación (feedforward) para que se consideren adicionalmente las variaciones de
composición del residuo.
15.14 Incluir en el programa de la columna de destilación con control DDC las senten-
cias necesarias para incluir como tercera variable a controlar el caudal del pro-
ducto a la entrada LF=U(3,1).

451
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 452
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 453

Apéndice - 1

A.1 Código de identificación de instrumentos


En la tabla A.1 figura el código de identificación de instrumentos de uso generalizado
en la industria.

Tabla A.1 Código de identificación de instrumentos ISA-S5.1-84 (R 1992)

453
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 454

Simulación y control de procesos por ordenador

A.2 Métodos numéricos en simulación digital


A.2.1 Integración
La determinación del área encerrada por una función puede calcularse por varios méto-
dos.
La regla de los trapezoides divide la curva de la función en trapecios con altura igual al
incremento escogido D según la figura A.1. El área será igual a la suma de las áreas de
estos trapecios, es decir:
FNA( x ) + FNA( x + D )
área = *D
2

Y en conjunto:
1 1 1
A= * ( y1 + y 2) * D + * ( y 2 + y 3) * D + ... + [y ( n − 1) + yn ]* D
2 2 2

Los resultados son tanto más exactos cuanto mas pequeño sea el intervalo D escogido.
Este es el método que emplearemos por su sencillez.
La regla de Simpson sustituye la curva por arcos de parábola cuadrática o cúbica con
la siguiente fórmula:
1
A = * [y1 + 4 * y 2 + 2 * y 3 + 4 * y 4 + 2 * y 5 + ... + 4 * y ( n − 1) + y ( n) ]* D
3

Con el mismo intervalo D se tiene más precisión que con la regla trapezoidal.

A.2.2 Resolución numérica de una ecuación diferencial


Existen muchos métodos de resolución de una ecuación diferencial, muchos de ellos
muy complejos, pero explicaremos esencialmente dos; entendemos que los restantes
son demasiado complicados para su uso práctico.
El estudio se efectuará en ecuaciones diferenciales de primer orden.

Fig. A.1 Integración

454
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 455

Apéndice - 1

De no ser este el caso, es fácil pasar cualquier ecuación diferencial de orden n a n de


primer orden, definiendo para ello nuevas variables. Por ejemplo, la ecuación diferen-
cial de una válvula de control de característica lineal es:
d2y dy
x = c2 2
+ 2 * s * c2 * + y
dt dt

Con y = caudal de salida;


X = señal de entrada al servomotor;
C2, s = coeficientes.
dy
Definiendo v=
dt
dv
Resulta: x = c2 + 2 * s * c2 * v + y
dt
dy
O sea: =v
dt
dv x y
= − 2* s *v −
dt c2 c2

Que ya es una ecuación diferencial de primer orden.


Método de Euler: Es el mas sencillo de resolución. Analizando la figura A.2 será mas
fácil su comprensión.
Representando la función dy/dt = f(y,t) y conocidos los valores tn, yn calculamos el valor
correspondiente a un incremento ∆t según la pendiente dy/dt.
El nuevo valor de y es:
yn +1 − yn  dy 
= 
t − tn  dt t =tn

A partir de los valores iniciales conocidos t0, y0 se encuentra


 dy 
y1 = y0 +   * ∆t
 dt t =tn
Y los sucesivos con iguales incrementos de ∆t.
Los valores obtenidos serán tanto mas próximos a la curva real cuanto mas pequeño sea
∆t. Esta es una de las limitaciones del método que obliga a tomar ∆t muy pequeño para
obtener una solución próxima a la real. Sin embargo, debido a su sencillez este es el
método que utilizaremos en la obra.
Por ejemplo, el programa de la válvula anterior sería:

455
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 456

Simulación y control de procesos por ordenador

y = y + v *T
 x y
v = v +  − 2 * s * v −  * T
 c2 c2 

Ejecutado desde t = t0 hasta t = tax o sea t = t + T.

Fig. A.2 Método de Euler

Método de Runge-Kutta: Las ecuaciones son mas complejas. En el caso de un cuarto


orden se tiene la expresión:
1
y n +1 = y n + * (K1 + 2 * K 2 + 2 * K 3 + K 4 )
6

Siendo:
K1 = ∆t * f (y n , t n )

 1 1 
K 2 = ∆t * f  y n + K1, t n + t 
 2 2 

 1 1 
K 3 = ∆t * f  x n + K 2, t n + t 
 2 2 
K 4 = ∆t * f (x n + K 3, t n + t )

Así para un punto dado yn, tn se escoge un incremento dado ∆t al calcular K1, K2, K3,
K4 y, por último, se obtienen el valor yn+1.
El método da mas exactitud en el cálculo permitiendo utilizar un ∆t más grande que
con el método de Euler. Sin embargo, es mas laborioso y, al tener 4 derivadas parciales,
el ordenador emplea mas tiempo que con el método de Euler. Así pues si no se requie-
re una gran exactiotud en el cálculo, el método de Euler es el mas adecuado por su sen-
cillez.

456
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 457

Apéndice - 1

A.2.3 Linealización
La linealización es la conversión de ecuaciones diferenciales no lineales a lineales, para
lo cual la función real es aproximada a una función lineal mediante el truncamiento de
la serie después de la primeras derivadas parciales, es decir, se desprecian los términos
posteriores.
La función es desarrollada en serie de Taylor alrededor de los valores medios de ope-
ración o de régimen permanente, los cuales son representados por una línea o barra
colocada sobre la variable.
De este modo, y ante un caso general de una sola variable, tal como puede verse en la
figura A.3:

( )
 −   dy  d2y
y = f ( x) = f  x  +   − x − x +  2  *
( ) +  d
x−x
2 3
y ( ) + ... = f (X )+  dy  * (x − x )
x−x
3

   dx  x 2!  dx 3  − * 3! dx
 dx  x−  x   −x

Fig. A.3 Linealización

El desarrollo puede aplicarse fácilmente a una función de varias variables. Por ejemplo,
en el caso de una válvula de igual porcentaje, la ecuación diferencial correspondien-
te es:
dv
c2 * + 2 * s * c 2 * v + y = x * 50 x −1
dt
con
y = caudal de salida;
x = señal de entrada al servomotor;
v = dy/dt = velocidad de la válvula.
La linealización del segundo término es:

( )( )
x * 50 x −1 + 50 x + x * 3,912 * 50 x −1 * x − x
habiendo prescindido de los términos derivativos superiores a la primera derivada.

457
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 458

Simulación y control de procesos por ordenador

La linealización está unida a las llamadas variables de perturbación, es decir, a la conside-


ración de los valores de las variables que se apartan del valor medio de la operación o
del régimen permanente del proceso, en lugar de contemplar de la forma clásica los
valores absolutos de las variables.
De este modo, designando por xp las desviaciones (perturbaciones) con relación al valor
medio de operación o de régimen permanente x tendremos la equivalencia
x = x+ xp

En el ejemplo de la válvula de igual porcentaie tendremos:

c2 *
(
d v +vp ) ( ) ( )
+ 2 * s * c 2 * v + v p + y + y p = x * 50 x −1 + 50 x −1 + x * 3,912 * 50 x −1 * x p
dt
En condiciones de régimen permanente, la ecuación anterior es:
2 * s * c 2 * v + y = x * 50 x −1

que sustituida en la ecuación y siendo una constante resulta


d (v p )
c2 *
dt
( )
+ 2 * s * c 2 * (v p )+ y p = 50 x −1 + x * 3,912 * 50 x −1 * x p

y como al utilizar esta técnica de linealización nos referiremos siempre a xp, se acostum-
bra a prescindir del índice p, con lo cual la ecuación queda:

c2 *
dy
dt
( )
+ 2 * s * c 2 * v + y = 50 x −1 + x * 3,912 * 50 x −1 * x

Nótese que la linealización (con variables de perturbación) es la primera derivada del


término no lineal sustituyendo la variable por su valor medio de operación, En esta
forma procederemos directamente, en las diversas ecuaciones no lineales que encontre-
mos.

A.2.4 Métodos de convergencia


La determinación de los puntos de corte de una recta con una curva, por ejemplo en el
caso del diagrama de McCabe - Thiele utilizado en destilación para la búsqueda de las
composiciones de los platos de una columna, o lo que es lo mismo, la búsqueda de la
solución de un sistema de ecuaciones algebraicas, requiere el empleo de algún método
iterativo de tanteo (prueba-error) basado en la suposición de una solución y su ensayo
para ver si el sistema la cumple, y en caso de que no sea así, el tanteo de otra y así suce-
sivamente hasta encontrar una aproximación suficiente a la solución real, siempre que,
naturalmente, el método iterativo converja.
El método de Newton-Raphson sustituye la curva por la pendiente en el punto que se tan-
tea y extrapola su corte con la recta y = 0 (figura A,4).
En el punto de ensayo x0 y0 la recta tangente tiene por ecuación:

458
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 459

Apéndice - 1

Fig. A.4 Método de Newton-Raphson.

y − y0
= f ' (x 0 )
x − x0
Y de aquí,
y − y0
x − x0 =
f ' ( x0)
El valor de x1 es, para y = 0.
y0 f ( x0 )
x1 = x 0 − = x0 −
f ' ( x0) f ' ( x0 )

El siguiente paso es pues encontrar el punto de corte de la tangente en (x1, y1) con la
recta y = 0. y así la ecuación de la tangente es:
y − y1
x − x0 = = f ' ( x1 )
x − x1
y el nuevo valor
y1 f ( x1 )
x 2 = x1 − = x1 −
f ' ( x1) f ' ( x1 )
y la iteración general da el algoritmo de convergencia.
f ( xn )
x n +1 = x n −
f ' ( xn )
Este es el método más empleado, si bien puede haber problemas de convergencia de la
solución si la aproximación inicial es escasa y la función es no lineal en grado extremo.
Otros métodos de convergencia son: el de semintervalo que parte de un valor inicial x0
y va sumando incrementos de tiempo ∆t hasta que dos valores sucesivos de la función
son de signo opuesto. A continuación las iteraciones van hacia atrás en ∆t/2 hasta que
la diferencia cambia de signo, y así sucesivamente.
El de convergencia explícita o sustitución sucesiva que supone un valor de una varia-
ble y utiliza las ecuaciones a resolver para calcular de nuevo dicha variable. De la com-
paración de los dos valores se supone otro valor y se procede en forma sucesiva.

459
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 460

Simulación y control de procesos por ordenador

A.2.5 Métodos con matrices


Siguen a continuación las operaciones básicas descritas en el libro, que se realizan con
matrices.
Matriz es un conjunto rectangular de elementos dispuestos en filas y columnas. Si el
número de filas n es igual al de columnas, la matriz es cuadrada de orden n.
Vector es una matriz de una sola columna.
La matriz identidad o unidad I tiene los elementos de la diagonal principal iguales a la
unidad y el resto son ceros. Así:
1 0 . . . 0
0 1 . . . 0
I= . . . . . .
. . . . 1 0
. . . . . 1

La suma y resta de matrices se efectúa sumando o restando los elementos correspon-


dientes, teniendo en cuenta que deben de tener el mismo número de filas y de colum-
nas. Así
1 2 3 −3 −4 −5 −2 −2 −2
4 5 6 + −1 − 2 − 3 = 3 3 3
7 8 9 3 4 5 10 12 14

La multiplicación de una matriz por un escalar se efectúa multiplicando todos los ele-
mentos de la matriz por el escalar. Así.
1 2 3 2 4 6
4 5 6 * 2 = 8 10 12
7 8 9 14 16 18

La multiplicación de dos matrices A * B se puede efectuar siempre que el número de


columnas de la primera matriz sea igual al número de filas de la segunda. Un elemen-
to del producto es igual a:
cij = ajk * bki
Siendo:
M = número de columnas de la primera matriz;
A = número de filas de la segunda matriz B;
ajk = elemento fila j columna k matriz producto C;
bki = elemento fila k columna i matriz producto C;
j = número de filas de la matriz A,
i = número de columnas de la matriz B.
En general A * B ≠ B * A por lo que hay que mantener el orden de las matrices al mul-
tiplicarlas. Por ejemplo:

460
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 461

Apéndice - 1

1 2 3 1 0 2
A= 4 5 6 B = 2 3 −2
7 8 9 0 1 2

Así:
m
a11b11 + a12 b21 + a13 b31 a11b12 + a12 b22 + a13 b32 a11b13 + a12 b23 + a13b33
A * B = C = ∑ a jk * bki = a 21b11 + a 22 b21 + a 23 b31 a 21b12 + a 22 b22 + a 23 b32 a 21b13 + a 22 b23 + a 23 b33
k =1
a31b11 + a32 b21 + a33 b31 a31b12 + a32 b22 + a33 b32 a31b13 + a32 b23 + a33 b33

1*1 + 2 * 2 + 3 * 0 1 * 0 + 2 * 3 + 3 * 1 1 * 2 + 2 * ( −2) + 3 * 2 5 9 4
A * B = 4 * 1 + 5 * 2 + 6 * 0 4 * 0 + 5 * 3 + 6 * 1 4 * 2 + 5 * (−2) + 6 * 2 = 14 21 10
7 * 1 + 8 * 2 + 9 * 0 7 * 0 + 8 * 3 + 9 * 1 7 * 2 + 8 * ( −2) + 9 * 2 23 33 16

A.3 Lenguaje Visual Basic de Excel (VBA – Visual


Basic for Applications)
Visual Basic es un lenguaje de programación desarrollado por Alan Cooper para Mi-
crosoft, cuya primera versión fue presentada en 1991 para simplificar la programación
mediante un ambiente de desarrollo completamente gráfico con interfaces gráficas y
programación.
Visual Basic for Applications (VBA) es una extensión propia del lenguaje que permite
codificar módulos (a veces llamados macros) para las aplicaciones de Microsoft Office.
Es por tanto un término medio entre la programación tradicional, formada por una
sucesión lineal de código estructurado y la programación orientada a objetos.
Los programas se guardan en módulos en un libro de trabajo de Excel pero se editan o
visualizan en el editor de Visual Basic. Una de las formas de activarlo es presionar las
teclas ALT + F11.
Las variables utilizadas en Visual Basic son:
Tipo de Bytes
Tipo de dato
Variable usados
Byte 1 0 a 255
Boolean 2 Variable Lógica, puede ser Verdadera (True) o Falsa (False)
Integer 2 Número entero, entre -32.768 y 32.767

Long 4 Número entero, entre -2.147.483.648 y 2.147.483.647

-3.402823E38 a -1.401298E -4545 (para valores negativos) y


Single 4
1.4012298E -45 a 3.42823E38 (para valores positivos)
Números con decimales - 1.79769313486232e308 a +
Double 8
1.79769313486232e308
Currency 8 Dinero
Date 8 Del 1 Enero, 0100 hasta 31 de diciembre, 9999
String Cadena de texto de longitud variable o fija
Variant Cualquier número u objeto
Object 4 Hace referencia a un Objeto

461
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 462

Simulación y control de procesos por ordenador

Matriz es un grupo de elementos del mismo tipo que tienen un nombre común y se
declara con DIM o Public como cualquier variable.
Las variables pueden ser Locales, Públicas o Estáticas.
Las variables locales se declaran dentro de un procedimiento y dejan de existir una vez que
el procedimiento termina su ejecución. Se definen a través de la sentencia Dim.
Ejemplo:
Dim i As Integer, sigma As Single, texto As String

Las variables públicas están disponibles para todos los procedimientos de los módulos
VBA de un proyecto y se definen con la sentencia Public. Ejemplo:
Public fila As integer

Las variables estáticas conservan su valor una vez terminado un procedimiento y se defi-
nen con la sentencia Static. Ejemplo:
Static fila As integer

Option Explicit es una sentencia que se coloca en general en la primera linea en el pro-
grama. Es muy útil ya que ayuda al programador forzando la declaración de variables
en el código y evitando errores tipográficos. Es altamente recomendable utilizarla.
Un procedimiento es una serie de sentencias que se encuentran dentro de un módulo y
que se declaran con la sentencia Sub y pueden ser Privado, Público o Estático.
Un procedimiento privado sólo es accesible por otros procedimientos dentro del mismo
módulo. Ejemplo:
Private Sub Procedimiento(argumento1,argumento2,.....)
[código]
End Sub

Un procedimiento público es accesible por todos los procedimientos de todos los módu-
los VBA de un proyecto. Ejemplo:
Public Sub Procedimiento(argumento1,argumento2,.....)
[código]
End Sub

El procedimiento estático conserva las variables una vez terminada su ejecución. Ejemplo:
Static Sub Procedimiento(argumento1,argumento2,.....)
[código]
End Sub

La instrucción Exit Sub permite terminar la ejecución de un procedimiento. Ejemplo:


Sub Procedimiento(argumento1,argumento2,.....)
If condición1 Then [código]
Else Exit Sub
End If
[código]
End Sub

462
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 463

Apéndice - 1

La sentencia Call se utiliza cuando se requiere llamar a un procedimiento al cual hay


que pasarle un argumento, por ejemplo:
Call grafico
'Grafico
Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
'Caracteristicas
With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos),
PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With

Range es el objeto que representa las celdas o rangos de celdas de EXCEL. Ejemplo:
Range("D2").Select
ActiveCell.FormulaR1C1 = "Temperatura Reactor"
Range("D2").Select
Selection.Font.Bold = True

Cells es el objeto que representa una celda de EXCEL. Ejemplo:


Cells(2,4) Hace referencia a la celda “D2”
Cells(2,”D”) Hace referencia a la celda “D2”

Estructuras de flujo condicional


If......Else…..Then
If permite introducir condiciones en la ejecución del código. Ejemplo:
If Y2 > 1 Then Y2 = 1 ’Y2 corresponde a la señal de salida de un controlador
hacia la válvula, por lo que no puede ser mayor de 1. La
unidad puede representar 1 bar o 15 psi , es decir la
máxima señal real.

If...Then
Se usa para ejecutar una o más instrucciones de forma condicional. La sintaxis gene-
ral es:
If condición Then inst_verdaderas [Else inst_falsas]

Select Case
La estructura Select Case es útil para elegir entre tres o más opciones. Ejemplo:
Sub Nombre
a = InputBox ("Entre un número positivo o negativo")
Select Case a
Case Is > 0
Msg = "Número Positivo"’ Mensaje
Case Is < 0
Msg = "Número negativo"
End Select
End Sub

463
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 464

Simulación y control de procesos por ordenador

Bucles (flujo repetitivo)


For … Next
Es una sentencia de iteración que se ejecuta un número determinado de veces. Ejemplo:
For contador = 1 To 10 Step 0,01
[Instrucciones]
[Exit For]
[instrucciones]
Next [contador]

Do...Until
El bucle se ejecuta hasta que la condición llegue a ser verdadera. Ejemplo:
Do Until condicion]
[instrucciones]
[Exit Do]
[instrucciones]
Loop

Do...While
Do While se ejecuta mientras se verifica una condición especificada y si es falsa el pro-
grama continúa. Ejemplo:
Do [While condicion]
[instrucciones]
[Exit Do] ‘ permite salir del bucle si se cumple una condición
[instrucciones]
Loop

While....Wend
Ejecuta una acción hasta que se cumpla una condición determinada. Ejemplo:
While condición
<código>
Wend

Funciones

Sub
Es una función que no devuelve ningún valor.

Function
Es un conjunto de comandos que realizan una función que se ha de ejecutar más de una
vez con diferentes parametros y que devuelve un solo valor. Ejemplo:
Function Constantes(X, X1, N1, N2, D1, D2, Y, p, fila)
Do While p < 1000
p = p + 1
N1 = 0.033 - Y + 8.05 * X
N2 = 222.321 * X ^ 6 - 364.632 * X ^ 7
D1 = 8.05 - 110.834 * X
D2 = 1333.926 * X ^ 5 - 2552.424 * X ^ 6 + 1140.56 * X ^ 7
X1 = X - ((N1 + N2) / (D1 + D2))
If Abs(X - X1) < 0.00001 Then Exit Do

464
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 465

Apéndice - 1

X = X1
Loop
End Function

InputBox()
Permite hacer preguntas al usuario para que introduzca información.

Label (Etiqueta)
Identifica un área en el código

GoTo
Transfiere el programa hacia una etiqueta (label). Ejemplo:
10 'Inicio del programa
Constantes X, X1, N1, N2, D1, D2, Y, p, fila
If Sgn(X1) = -1 Then Cells(p - 1, 2) = "FONDOS": Goto 20 ‘
Salida del programa
If X1 > 0.18 Then Constantes X, X1, N1, N2, D1, D2, Y, p, fila: p = fila: GoTo
10
If X1 < 0.18 Then Constantes X, X1, N1, N2, D1, D2, Y, p, fila: p = fila: GoTo
10
20 'Salida del programa

Gráficos
Los gráficos disponibles en EXCEL son:
- ActiveChart.ChartType = xlColumnClustered – Barras verticales
- ActiveChart.ChartType = xlBarClustered - Barras horizontals
- ActiveChart.ChartType = xlLineMarkers – Lineas
- ActiveChart.ChartType = xlPie – Sectores Circulares
- ActiveChart.ChartType = xlXYScatter
- ActiveChart.ChartType = xlAreaStacked
- ActiveChart.ChartType = xlDoughnut – Sector circular en forma de donut
- ActiveChart.ChartType = xlRadarMarkers – Radar en polígono
- ActiveChart.ChartType = xlCylinderColClustered – Cilindros verticals
- ActiveChart.ChartType = xlConeColClustered – Conos verticals
- ActiveChart.ChartType = xlPyramidColClustered – Pirámides verticales

En el libro se ha utilizado el de dispersión que relaciona dos o mas variables entre sí


(tiempo de la simulación con una variable o bien varias variables) (ChartType =
xlXYScatterSmoothNoMarkers), definiéndose el rango de las celdas a graficar con:
datos = Range(Cells(3, 4), Cells(p + 3, 8)).Address 'rango a graficar
Por ejemplo:
'Grafico
‘Sub grafico()
Dim H As Integer, j As Integer, i As Integer, KP As Integer
datos = Range(Cells(3, 4), Cells(p + 3, 8)).Address 'rango a graficar
Set graf = Charts.Add 'grafico y sus caracteristicas
'Caracteristicas

465
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 466

Simulación y control de procesos por ordenador

‘With graf
.Name = "Grafico"
.ChartType = xlXYScatterSmoothNoMarkers
.SetSourceData Source:=Sheets("Hoja1").Range(datos),
PlotBy:=xlColumns
.Location Where:=xlLocationAsObject, Name:="Hoja1"
End With
End Sub

Errores de ejecución
La instrucción On error GoTo activa el control de los errores de ejecución y desvía el flujo
de ejecución a un bloque de código de tratamiento de errores.
El control de errores se interrumpe con la instrucción On Error GoTo 0.
Ejemplo:
Sub nombre_del_procedimiento()
On Error GoTo Etiqueta ´Inicio del control
(Instrucciones con control de errores)
On errorGoTo 0 ´Fin del control
Exit Sub ´Fuerza el final del procedimiento
MsgBox “operación cancelada” ‘– por ejemplo
Resume Next ´Fin el bloque
End Sub

A.4 Resolución de los problemas propuestos


1.1

1.2

466
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 467

Apéndice - 1

1.3 Anillo cerrado


1.4 Anillo abierto
1.5 Anillo abierto
1.6 Servomecanismos
1.7 Anillo abierto
1.8

1.9 Igualando momentos:


f*20 = f1*l0
f1*5 = F*25
Señal de salida F 10
Transmitancia = -------------------------------- = ------ = ------ = 0,4
Señal de entrada f 25
1.10

1.11 Anillo abierto.


1.12 Anillo abierto.
1.13 Anillo cerrado.
2.1 Tomando transformadas de Laplace, sustituyendo las condiciones iniciales y des-
pejando Y(s) resulta:

1+ 2* s2 A B C
Y (s) = = + +
2 * s 3 − s 2 − s 2s s − 1 1
s+
2
Reduciendo a común denominador e igualando numeradores resulta A = - 2, B = 1, C = 1,
con lo que la antitransformada de Laplace de las fracciones obtenidas da:

y (t ) = −1 + e t + e − (1 / 2)

467
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 468

Simulación y control de procesos por ordenador

2.2
di 1
V = i*R + L* + * i * dt
dt C
Derivando:
dV di d 2i 1
= R * + L * 2 + *i
dt dt dt C

y tomando transformadas de Laplace y efectuando operaciones resulta:


V 1
= R + L*s +
I C*s

2.3 Procediendo en forma análoga a la del problema 2.1 se obtiene:


y (t ) = L−1 [Y ( s )]= e 9t

2.4 Balance de materiales


dc
Q * c 0 (t ) − Q1 * c (t ) = V * = V * p * C (t )
dt
haciendo operaciones resulta:
c(t ) 1
=
c0 (t ) V *C
1+ *p
Q

1
2.5 V = R *i + * i * dt
C

Derivando y aplicando transformadas de Laplace:


1 1
=
V 1
R+
Cs

 2* s −1 
2.6 y (0 + )= lim  s * =2
 s * ( s + 3) 

 500 
 
2.7 y (0 + )= lim  s * 5 * 2
15
 = 40,8 l / min
 0,01 + 2 * 1 * 0,01 * s + 1
 

 C0 
C (∞) = lim  = C 0 = 20
s → 0 (1 + sT 1) * (1 + sT 2 )
2.8
 

468
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 469

Apéndice - 1

W  R 1  1
3.1 L−1   = L−1  + L + 2  = R + L * dt + * t
s s Cs  C

3.2 - En el gráfico se ve que la constante de tiempo es 2,1 segundos = 0,035 minutos.


1
Así: W =
1 + 0,035 * s

3.3 L -1(1) = d(t), L-1(1Is)= 1, L-1 (1/s2)= t


3.4 Descomponiendo en fracciones parciales la transmitancia:
1 A B C
= + +
s (1 + sT 1)(1 + sT 2) s 1 + sT 1 1 + sT 2

Igualando numeradores y efectuando operaciones resulta:


W  T1 T2
L−1  1 + * e −(1 / T 1)*t − * e − (1 / T 2 )*t
s
  T 2 − T 1 T 2 − T 1

3.5 Llamando T = 1/(tg α) y siendo el bloque equivalente del sistema:


2 * (1 + s * A * T )
W ( s) =
1 + 2 *T + s * A *T

Dividiendo por s, descomponiendo en fracciones parciales y buscando la antitransfor-


mada de Laplace resulta:

W ( s )  2 4
L−1   = + * e −[(1 / 2T ) / AT ]*t
 s  1 + 2T 1 + 2T

3.6 L−1 [1 / (1 + Ts )]= y (t ) = e −0,5*x

Utilizando el programa de la respuesta impulsional de una transmitancia de primer


orden se obtendrá la curva de la figura:

3.7 Dividiendo la transmitancia por s, descomponiendo en fracciones parciales y bus-


cando la antitransformada se obtiene:

469
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 470

Simulación y control de procesos por ordenador

y (t) = 1 - 0,2* e-0.2*t

La curva puede obtenerse mediante el programa de respuesta indicial de la transmitan-


cia de 2º orden entrando el valor de 0,2 minutos.
3.8 - Las raíces del denominador son 2s2 + 3s + 1 = 0 (s1 = - 0,5, s2 = -1)
Dividiendo por s, descomponiendo en fracciones parciales y buscando la antitransfor-
mada resulta: y (t) = 1 - 2* e-0.5*t + e-0.5*t

3.9 Como L-1 (2/s) = 2, resulta:

3.10 Como resulta:


 1 
L−1   = 2*e
− 2*t

 0,5 * (
1 + 2 s )

470
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 471

Apéndice - 1

4.1 Existiendo una realimentación con tres bloques en serie, y llamando N = 1/tgα, la
transmitancia resultante es:
C * (1 + s * A * N )
W =
1 + C * V * LT * N + S * A * N

4.2

C
W =
1 + C * P * V * FT

4.3

4.4

471
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 472

Simulación y control de procesos por ordenador

4.5

Siendo:
O1 = TT*(f1 – PV*V2*o2)
e2 = s2 + TT*(f1 – PV*V2*o2)
o2 = c2.[s2 + TT*(f1 – PV*V2*o2)
resulta:

4.6
El bloque resultante será el producto de los tres bloques (en realimentación) con los
puntos de consigna definidos:

Las transmitancias de los procesos son:


P-1 relaciona el caudal de entrada con el nivel del tanque.
P-2 relaciona el nivel del tanque con el caudal de salida del mismo.
P-3 relaciona el caudal de paso de la válvula V2 y el captado por el transmisor FT.
P-4 relaciona el caudal de paso de la válvula V2 y la variación de temperatura cap-
tada por el transmisor TT.
P-5 relaciona el caudal de paso por la válvula V3 y la temperatura captada en TT.

472
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 473

Apéndice - 1

4.7

Las transmitancias de los procesos son:


P-1 relaciona el caudal de vapor de la válvula con la temperatura de la camisa del
reactor.
P-2 relaciona la temperatura de la camisa con la temperatura del producto.
5.1 Sustituyendo s por jw y efectuando operaciones:
1 1 5w
= 2
− j*
1 + 5 jw 1 + 25 w 1 + 25 w 2

La ganancia y el desfase son:


1
G= Φ = arc tg (− 5w)
1 + 25 w 2

5.2 Dando valores a w resulta:

y la curva es:

473
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 474

Simulación y control de procesos por ordenador

5.3
- Siendo G = 1,5/2 = 0,75 y g = 20 log G = - 2,5 dB resulta:

5.4 De la figura se deduce que la ganancia es 12 dB y el desfase -60, luego: G = antilog


(12/20) = 3,98. Escogemos arbitrariamente la amplitud de entrada. Y así:

5.5 Sustituyendo s por jw, la ganancia y el desfase son:


(
G = 1 / 1 + 9w 2 ) Φ = Arc tg ( −3w) y la curva es:

5.6

474
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 475

Apéndice - 1

5.7
y = e-2jw = cos(-2w)+j * sen(-2w)
G = 1, g = 0, Φ = arc tg (-2w) = -2w

5.8 Sustituyendo valores, descomponiendo en fracciones parciales y haciendo opera-


ciones, resulta:
1
G= Φ = Arc tg (− 0,5 2 w 2 )
(1 − 0,5 2
w2 ) + w2
2

5.9 La transmitancia de los dos reactores es:


c 1 1
= *
c0 1 + sT 1 1 + sT 2

Sustituyendo s por jw y haciendo operaciones resulta:


1
G=  w * (T 1 + T 2 ) 
(1 − w 2
* T 1 * T 2 ) + w 2 * (T 1 + T 2 )
2 2 Φ = Arc tg  − 2 
 1 − w * T1 * T 2 
5.10 La ganancia es constante G = 4, g = 20 log4 = 12, y el desfase es 0. Así:

475
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 476

Simulación y control de procesos por ordenador

5.11 La transmitancia del controlador es 0,5*[1 +(1/2s)]. Sustituyendo s por jw y hacien-


do operaciones.
 1   1 
G = 0,5 2 * 1 + Φ = Arc tg  − 
2 
 16w   2w 

5.12 La transmitancia es W(s) =K*[1 + (l/jwti) + jwtd].


Sustituyendo s por jw y haciendo operaciones.
2
 1   1 
G = 2 1+  + 10 w  Φ = Arc tg  − + 10 w 
 0,1w   0,1w 

5.13 En líneas generales:


Y Caudal PI
Y Nivel P
Y Presión PI
Y Temperatura PID

6.1 Las raíces de la ecuación característica son s2- s -2 = 0, s1 = 2;, s2= -1, por lo cual al
tener una raíz de parte real positiva no es estable.
6.2
a0 = 1, a1 = 3, a2 = - 2, a3 = 1, a4 = 1

476
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 477

Apéndice - 1

3 1 3 0
1 −2 7 1 1
b1 = =− b2 = =1
3 3 3
−7/3 1 − 7/3 0
3 1 16 3 0
c1 = = b2 = =0
− 7/3 7 −7/3
La columna de elementos es:
1
3
-7/3
16/7
y al tener un elemento negativo el sistema de control no tiene estabilidad absoluta.
6.3 El cociente entre s3 +10s y -5s2 - 5 nos da:

D1( s ) s 3 + 10 s 1 9s 1 1
= =− s+ =− s+
D 2( s ) − 5s 2 − 5 5 − 5s 2 − 5 5 5 5
− s−
9 9s
Como los coeficientes son negativos, el sistema es inestable.
6.4 Según el criterio de Bode, la transmitancia en lazo abierto es:
1
= −1
(1 + s )* (1 + 3s )* (1 + 2s )
Para que se verifique esta condición, la ganancia y el desfase deben ser:

K 2 * (1 − 11w 2 ) + 36 w 2 (w 2 − 1) 6w * (w 2 − 1)
2 2

G= =1 Φ = Arc tg = −180
(1 + w 2 )* (1 + 9w 2 )* (1 + 4w 2 ) K * (1 − 11w 2 )
Para que se cumplan estas condiciones K = 1.
6.5 Raíces del denominador (s-1)(s+2)(s+10) + K*10 = 0, son s = 1, s =-2, s=-10.
Las curvas se inician para K = 0 en 1, - 2, - 10 y terminan para K = . Los puntos de arran-
8

que del lugar geométrico en el eje real son:


1 1 1
+ + =0
s − 1 s + 2 s + 10

y de aquí s= -6,23 que se descarta, y s= -0,42.


Los ángulos de las asíntotas son:
σ = (2*l+ 1)*180/(3 - 0), es decir, 60°, 180°, 300°.

477
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 478

Simulación y control de procesos por ordenador

Los puntos de corte del lugar geométrico de raíces con el eje imaginario son:
( jw − 1)* ( jw + 2)* ( jw + 10)+ K = 0
para w = 0, K = -20 y de aquí w= +8 = +2,82 y K= -108.
y el dibujo correspondiente es:

− 2*sigma *3,14 / 1− sigma 2


6.6 Como la amortiguación es U = e , de aquí se deduce tomando lo-
garitmos neperianos y sustituyendo U por 0,7 que sigma = 0,055.
Por otro lado, el programa de área de recuperación y amortiguamiento de la respues-
ta impulsional de una transmitancia de 2º orden, al tantear e introducir el valor de 0,055
nos da como factor de amortiguamiento el valor 0,055
6.7 En la curva se aprecia que -140° → 0 dB, -180° → -5dB.
G = antilog (- 5/20) = 0,56. La curva es de estabilidad relativa y no es necesario dibujar
otra curva.
6.8 Escogemos cuatro puntos.

Y los representamos:

478
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 479

Apéndice - 1

6.9 Los valores correspondientes a los anteriores son:

Y los representamos:

9.1 PI, P, PI o PID, PI, PI, PI.


9.2 BP = 1,7 * 30 = 51%.
BI = Pu/2 = 5/2 = 2,5 min/rep.
BD = Pu/8 = 5/8 = 0,625 minutos.
9.3
∆P (6 / 12) *100
Ganancia = 0,909 * = 0,909 * = 1,13
R*L (40 / 2) * 2
L 2
min/rep = Min / rep = = = 6,6
0,3 3

9.4 El hecho de que el proceso controlado no sea lineal y que varía de características
con frecuencia y que sea un proceso cuyo control es importante.
9.5
Caudal – ganancia = 5, 0,1 min/rep
Presión – ganancia = 5, 1 min/rep
Nivel – ganancia = 2
Temperatura – ganancia = 1,25 a 5, 1 min/rep, 0,5 min anticipo
10.1
1
Kv = 5 * 1,5 * = 7,5
1

479
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 480

Simulación y control de procesos por ordenador

10.2
a) Al ser una válvula de tres vías, calcularemos la válvula totalmente abierta hacia el
intercambiador y hacia el by-pass. Así:
0,8 0,8
Kv = 10 *1,25 * = 7,1 Kv = 10 *1,25 * =6
3,48 − 1 3,48
b) Las condiciones de cavitación se inician para ∆p > Kc *(P1 - Pv).
P-2 = 0,5*(P - 0,05), P=3,95 bar
c) Las condiciones de caudal crítico se inician para ∆p > C 2f *(P1 - Pvc).
P – 2 = 0,82*(P - 0,1), P=5,37 bar
10.3 Pérdida de carga de la válvula = (15/100)*12 = 1,8 bar, y como 1,8 < 13/2 aplicamos
la fórmula:
1500 *1,5
Kv = = 21,7
16 * 1,8 * (13 + 10,2 )

Pérdida de carga de la válvula = (30/100)*12 = 3,6 bar, y como 3,6 < 13/2 aplicamos la
fórmula:
1500 * 1,5
Kv = = 16
16 * 3,6 * (13 + 8,4 )

10.4 Como ,∆p > C 2f * P1 = 0,5*0,72 *6 = 1,47 estamos en condiciones de caudal crítico.

10.000 * 1,5 1 * (300 + 273) * 10,8


Kv = * = 182
328 6

Para que se inicien las condiciones de caudal crítico P1 -4 = 0,5*0,72*P1 . Como P1 = 5,3
bar absolutos resulta:
10.000 *1,5 1 * (300 + 273) *10,8
Kv = * = 206
328 5,3
10.5 El caudal crítico se inicia en P > 0,5*0,82*P1 =1,28 y la presión posterior debe ser
menor de 3 - 1,28 = 1,72 bar
5.000 * 1,5 0,6 + 0,74
Kv = * = 4,32
1004 4
5.000 * 1,5 0,6 + 0,75
Kv = * = 5,04
1004 4

10.6 P = 5 -1,5 = 3,5 > 0,5*0,82*5 = 6,6 con lo que estamos en condiciones de caudal crí-
tico. Y así:

480
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 481

Apéndice - 1

150 * 1,5 0,1 + 0,12


Kv = * = 0,047
1004 5
11.1 Posiblemente las perturbaciones sean debidas a irregularidades de la presión del
fuel-oi1 por variaciones de viscosidad. Para compensarlas se emplea el control en cas-
cada con variable secundaria el caudal de fuel-oil.
Las transmitancias son:
 1   1 
TRC = K1 * 1 +  FRC = K 2 * 1 + 
 s * τ i 1  s *τ i 2 
1 1
Tuberia caudal = Horno (válvula − TE ) =
1 + 0,1 * s 1+ 2* s

11.2 En el programa la perturbación en escalón es:


H = InputBox("Valor de la perturbación (H):"):Cells(21, 2) = H
HT = InputBox("Tiempo de inicio de la perturbación - minutos (HT):"): Cells(23, 2)
= HT
DP = InputBox("Duración de la perturbación - minutos (DP):"): Cells(25, 2) = DP
If w >= t0 + HT And w < t0 + HT + DP Then Z2 = Z2 + H: Cells(p + 3, 8) = H

Se sustituye H por la expresión: H= A *SIN(V A *W), DP y HT no cambian.


11.3
E = 1,2 - (FI/F2)
Y1 = K*(1,2 - (FI/F2))
F2/F1 = 1/(1 + 0.05*p)
‘F2 = 20*Y1 - 20*Y2, según Euler
F2 = F2 + (20*Y1 - 20*F2)*T
11.4 El control es en lazo abierto. ‘

Y/F'= 2*(1 + 2*p)


‘Y = 2*F + F'
F = A*SIN(VA*W)
For W = B To C Step T
Y = 2*A*Sin(VA*W) + 4*VA*cos(VA*W)

481
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 482

Simulación y control de procesos por ordenador

11.5 Como el operario no pasa a manual durante el paro del proceso, los dos bloques
sólo difieren en el bloque del controlador, ya que la acción integral queda eliminada y
el controlador pasa a tener una ganancia de 2.
11.6

VP es una válvula de solenoide de tres vías que al ser accionada por TA deja las válvu-
las Y3 e Y4 sin aire (cierran).
If Y2 > 0.5 Then 20 Else Goto 40
20
Y4=Y2:Y3=1
Goto 50
40
Y3=Y2:Y4=1
50

11.7
20
If Abs(E) >0.2 Then 20 Else Goto 40
Cells (10,3) = “ALARMA TEMPERATURA”
40

11.8
30
If Yl > 0.9 Then 20 Else Goto 30
20
Y2=0

11.9 Como

resulta KP = 4 - 5*(E-0,2)
11.10
‘E= V-SP
y = KP*E^2

11.11
EO = X - Y6
EI = EI + E*T
Y1 = Kl*EO + (Kl*EI/RI)
40 I = (W-B)/T

482
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 483

Apéndice - 1

Z(I) = Y2
L = I - (I/T)
Y3=Z(L)
V = (Y3 - Y2)/T ‘Velocidad de variación/error

12.1 Período muestreo = 2* (Período crítico) = 2*15,9 = 31 ciclos/minuto.


12.2

12.3 - La transformada z es:


2z2 X(z) - 2z2x(0) - 2zx(1) + zX(z) - zx(0) - 3X(z) = 0
Sustituyendo valores
 
X ( z) 4 4  −1 1 
= 2 = * − 
z 2z + z − 3 5  z +1 z − 2 
 3

4  2 
k

z (k ) = * − (− 1) −   
k
y de aquí resulta:
5   3  
12.4
1 1
1
X (s) = = 2− 2
s (s + 2) ) s s + 2
(1 / 2) z (1 / 2) z
z ( x) = −
z −1 z − eT
12.5
X ( z ) (6 / 5) (6 / 5)
= −
z z −5 z −1
 z   z 
z −1 *  =5
k
z −1 *   =1
 z −5  z −1
Luego:
x(kT)=(6/5)*(-1+5k k = 0, 1, 2, 3,... x(0) = 0
x(0)=0
x(T) = 24/5

483
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 484

Simulación y control de procesos por ordenador

x(2T) = 144/5
...........
12.6 Buscando las raíces del denominador, descomponiendo en fracciones parciales
X(z)lz resulta:
(1 / 4) z (1 / 4) z
X ( z) = − −
z −3 z +1
y:
x(kT) = (1/4) .(-3k +1k*cos kp)
x(0) = -1/4
x(T)= (1/4) *(-3 + cos p) = -1
x(2T) = (1/4)*.(9 + cos p) = 10/4
........................
12.7 Con un elemento de retención de orden cero (1- e-s)/s se obtiene:

 1  1 1  
G ( s ) = (1 − e − s )*  −  +  
 s  S 2  
 
 1 1 e −s
e −s 
g (t ) = L−1 [G ( s )]= L−1  − * − + =
 s s+1 s
s +
1
 
 2 2

= (1 − e − (1 / 2)*t )* f (t ) − (1 − e − (1 / 2)*t )* f (t − 1) = −e − (1 / 2 )*k + e − (1 / 2 )*( k −1)

− 1 + e1 / 2
Y así: G ( z ) = g (k ) * z − k = + e1 / 2 − 1
1 − e −1 / 2 * z −1

12.8 La ecuación característica es z2 + 3z - 1,4 + 1 = 0.


con raíces z1 = - 1,38, y z2 = - 1,13, con lo cual el sistema es inestable por tener las raí-
ces mayores de la unidad.
12.9
x = - 2*[V -Z(2) + (T/2)*V] + (2/T)*[V -2*Z(2) + Z(1)]
siendo V la variable, Z(1) = valor de la señal de variable V en el muestreo anterior y Z(2)
en el antepenúltimo muestreo.
13.1 Son ecuaciones diferenciales de primer orden y no necesitan ser linealizadas.
13.2
If X(1,1) = > 0.75 Then Cells (10,5)="VALVULA>75 % carrera"

484
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 485

Apéndice - 1

13.3 Añadir
If X(1,1) < 0.75 Then Cells (10,5)=""

13.4 IF X(1,1)>A Then X(1,1) = A, así a pesar de variar la señal que se envía a la válvu-
la, ésta estará fija en la pantalla.
13.5 La transmitancia es:
x2 50 x1−1
=
x1 (c 2 * p )2 + 2 * s * c 2 * p + 1

con lo que se obtiene la expresión:


d 2 x2 dx 2
c2 2 * 2
+ 2 * s * c2 * + x 2 = x1 * 50 x1−1
dt dt

que linealizada (véase Apéndice A.2.3) da:


. . −
c 2 * v 2+ 2 * s * c 2 * v 2+ x 2 = x1 * 50 x −1 + x1 * x* 3,912 * 50 x −1−1

13.6 La señal enviada por una placa-orificio es , siendo h la presión diferen-


cial provocada por la placa-orificio. Linealizando:
. k 1 k
Q = − * * h −( 3 / 2) * h = *h
2 2 4 * h −3

13.7 El caudal de salida del tanque es proporcional a la raíz cuadrada del nivel. Luego:
A * h = qe − k h

qe  k 
que linealizada da: h = −  *h
A  2h 

13.8 La suma absoluta de los elementos de la matriz es 65,13. Por tanto, T puede estar
comprendido entre 0,015 y 0,15 minutos (1 < 65, 13*T < l0).
13.9 Una vez seleccionado T:
2 < Nº iteraciones < 2.(suma absoluta elementos matriz A)* T
14.1
.
x1 0 0 0 − KP / T 2 ( KP / T 2) − ( KP / R) x1
.
x2 0 0 1 0 0 x2
.
v2 = 1 / c2
2
− 1 / c2 2 − 2s / c 2 0 0 * v2
.
x3 0 1 / T1 0 − 1 / T1 0 x3
.
x4 0 0 0 1/ T 2 − 1/ T 2 x4

485
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 486

Simulación y control de procesos por ordenador

14.2 Siendo las ecuaciones de estado

Se elige V(x) = x22 + v22 y se comprueban las condiciones de Liapunov:


.
 2  4
V ( x) = 2 * x 2 * v 2 −  * x 2 * v 2  − * s * c 2 * v 2 2
 c2  c2
V(0 )= 0
V(x) > 0 para v2#0, x2#0
Como c2 es un número igual o menor que 1, V(x) < 0.
14.3 Ensayemos la función de Liapunov V(x) = x12 + x22 + x32 + x42.
1. Existe V(x) y sus derivadas parciales y son continuas.
2. V(0) = 0
3. V(x) > 0 para todo x#0.
. . . . . .
4. V = 2 x1* x 1 + +2 x 2 * x 2 + 2 v 2 * v 2 + 2 x3 * x 3 + 2 x 4 * x 4 =
2 KP 2 KP 2 KP 2
=− * x1* x3 + * x1* x 4 + * x1* x 4 + 2 * v 2 * x1 =
T2 T2 R c2
4s 2 2 2 2
= − * v 2 2 + * x 2 * x 3 − * x3 2 + * x3 * x 4 − * x42
c2 T1 T1 T2 T2
De la expresión se desprenden las dificultades de selección de la función correcta de
Liapunov. Puede verse que interesa que la velocidad v2 sea baja (o sea la válvula tenga
la inercia suficiente) para que en conjunto el valor de V sea menor de cero.
14.4 En la ecuación A*P + P*A = - Q escogemos Q = I(matriz identidad).
De este modo:
0 0 1 / c 22 0 0
2
0 0 − 1 / c2 1 / T1 0
0 1 − 2s / c 2 0 0 *
− KP / T 2 0 0 − 1 / T1 1/ T 2
− KP / T 2 − ( KP / R) 0 0 0 −1/ T 2

p11 p12 p13 p14 p15 p11 p12 p13 p14 p15
p 21 p 22 p 23 p 24 p 25 p 21 p 22 p 23 p 24 p 25
* p31 p32 p33 p34 p35 + p31 p32 p33 p34 p35 *
p 41 p 42 p 43 p 44 p 45 p 41 p 42 p 43 p 44 p 45
p51 p52 p53 p54 p55 p51 p52 p53 p54 p55

486
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 487

Apéndice - 1

KP
0 0 0 −
T2 −1 0 0 0 0
0 0 1 0
1 1 2s 0 −1 0 0 0
− 2 − 0
* c22 c2 c2 = 0 0 −1 0 0
1 1 0 0 0 −1 0
0 0 −
T1 T1
1 0 0 0 0 −1
0 0 0
T2

Haciendo operaciones e igualando términos se obtiene un sistema de ecuaciones que


resuelto para el caso particular de valores: c2 = 0,07, s = 0,7, T1 = 0,01, T2 = 0,003 da:
p11 = - p15/KP
p12 = p21 = - s-c2-(1-c22)/(4-s*c2) = - 17,864
p22 = - s-c2 + (1 - c22)/(4-s*c2) = 17,836
p31 = p13 = - c22/2 = - 0,0002
p32 = p23 = - c22/2 = - 0,0002
p33 = c2*(1-c22)/(4*s) = 0,00714
p41 =p14 = 0
p42 =p24 = - 2*T1 = - 0,02
p43 = p34 = 0
p44= -59,213*KP - 0,0002*(KP/R ) - 0,1
p15 =p51 =(R/2KP)*[1-1,299*(-1 +200*p44)]
p55 = 0,0015*{1 +2*[333*KP - (KP/R)]*p15}
Para que la matriz P sea positiva definida debe verificarse el teorema de Silvester (una
matriz está positivamente definida si todo menor principal es positivo).
El lector se dará cuenta de las dificultades de verificación de la estabilidad del estado
de equilibrio, en particular si, en lugar de referimos al sencillo control de presión de
una tubería, nos adentramos en procesos complejos.
14.5 Al ser A= -1, B = 1, Q = 3, R = 1, S = 2, la ecuación de Ricatti es:
-P = 3 - 2P – p2
y de aquí:

dP 1/ 4 1/ 4
dt = 2
= −
P + 2P − 3 P −1 P + 3
y de aquí: Sacando antilogaritmos, como p(t1) = 2.x(t1) resulta:

1 P (t ) − 1 1 P (t ) + 3
t1 − t 2 = ln − ln
8 P (t ) − 1 8 P (t ) + 3

487
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 488

Simulación y control de procesos por ordenador

1 + (3 / 5)* e8*( t −1)


P(t ) =
1 − (1 / 5)* e8*(t −1)
14.6 Al ser A = -1, B = 1, Q = 3, R = 1 la ecuación de Ricatti es:
0 = 3 - 2P – P2 con P(0) = s = 0 y las raíces son P = 1, P = - 3.
Entonces:
k = -R-1*BT*P = -1*1*1 = -1
siendo K la ganancia de realimentación y KA la ganancia anticipativa (feedforward) de
las perturbaciones.
14.8
u = K*xp + KA * d + Ksp *ysp
siendo K la ganancia con relación a las desviaciones del punto de consigna e ysp las
variaciones del punto de consigna.
15.1 Una partícula en el seno del flujo de gases calientes experimenta una resistencia
R = k*v2r + k* (va - v1)2
siendo
k una constante;
va la velocidad de los gases;
v1 la de la partícula.
Por otro lado, la ecuación del movimiento instantáneo de la partícula es:
d2y
= k * (v a − v1 ) − mg + E
2
m* 2
dt
siendo m la masa de la partícula. Resulta así:
. k 2k * v a k * v a2 E
y= * v12 − * v1 − g + +
m m m m
15.2

d (v1 * ds )
A* = wf * (1 + mf ) − wo * (1 + mo) − we * ye
dt
con
A = sección tubo secado;
ds = densidad partícula;
wf = kg/min sólido seco a la entrada del secadero;
mf = humedad producto kg/kg a la entrada del secadero;
wo = kg/min sólido seco a la salida del secadero;
mo = humedad producto a la salida del secadero;

488
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 489

Apéndice - 1

we = kg/min humos secos a la salida del secadero;


ye = humedad humos secos a la salida del secadero.
Linealizando la ecuación anterior:
. wf wo we * ye
v 1 * ( ds ) ' + ds * (v1) ' = − −
A A A
y sustituyendo v1' de la expresión del problema anterior:
. 1 − 2k −
ds= * v 1 * (wf − wo − we * ye )+ ds * * v 1 *
A m
− −
 2k −  − −
 ds
*  v a − v 1 * v1 − ds * * v 1 *  v a − v 1 * va − g * −
  m   v1

15.3 Añadiendo un contador que almacene en la memoria del ordenador la humedad


del producto durante un tiempo L = (n° intervalos cálculo) * T:
J = (W - B)/T
H(J) = U(l,l) ‘ Temp.gases F1 =H(J)
L = J - (N/T)
F2 = H(L)

15.4 El valor de la radiación es: EP * SS * TP4


siendo:
SS = 0,00000004879
y EP, TP la emisividad y temperatura de la pared.
15.5 - Aunque en el programa del horno túnel se ha considerado el conjunto vagonetas
+ producto, como si tuvieran las mismas características, realmente, sus calores especí-
ficos difieren ligeramente.
Por este motivo, el término (CF + MR)*TR* WF
lo desglosaríamos en: (CF+MR)*TR*WF + CV*TR* WV
siendo:
CV = calor específico vagonetas;
WV = kg/s promedio de las vagonetas en el horno túnel.
15.6 Se trataría de una perturbación periódica. Situaríamos un incremento de U(1,1)
de duración definida N*T y variado cada cierto tiempo. Deberían modificarse las sen-
tencias de incrementos de la entrada U(KT).

10 IF W > M*T Then 20 Else Goto 40


20
IF W < (M+N)*T THEN 30 Else Goto 40
30
U(1,1) = PT ‘ – Valor perturbación
40 ‘ –Seguimiento normal del programa

489
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 490

Simulación y control de procesos por ordenador

15.7 En la ecuación del controlador incremental debería cambiarse la entrada U(4,1) =


WS por U(1,1) = WF.
15.8 Se situaría un controlador de nivel adicional en el primer efecto que actuara sobre
el caudal de entrada del producto
WF = K1* V1, WG = K2* V2, WH = K3* V3.
La señal de salida del controlador debería ser WI = U(5,1), siendo U(5,1) una entrada
adicional. Así pues, sería necesario modificar las ecuaciones de estado para incluir esta
entrada.
15.9 Cambiar la sentencia U(2,1)= -X5 a:
U(2,1)= -X
U(1,1)=0:Cells (5,10) = “VÁLVULA AGUA REFRIGERACIÓN"

15.10 Las sentencias son:


TA=.6:AA=1 ‘ –TEMP. ALARMA Y PENDIENTE LA ACTUACIÓN DEL OPERADOR
‘- PENDIENTE TEMP PRODUCTO
30
IF X(6,1) > TA Then 30 Else Goto 80
J =(W - B)/T
H(J) = F1
L = J - 1
H(L) = F2
80
PN = (F1 - F2)/T
If PN > AA Then U(2,1) = -X5:U(1,1) = 0

15.11 Sustituir X(1,1) por X(2,1).


15.12 Las sentencias son:
AA = 0.1 ‘ -ALARMA VARIACIÓN COMPOSICIÓN
J = (W - B)/T
H(J) = F1
L = J - 1
H(L) = F2
CA = (F1 - F2)/T
IF CA > AA Then 80 Else Goto 100
80
Cells (10, 12) = "VARIACIÓN COMPOSICIÓN ALTA"
100

15.13 Se verifica:

X (1,1) KB X (1,1) KL
= =
X (7,1) 1 + TB * p L 1 + TL * p

con KB y TB la ganancia y la constante de tiempo entre el fondo y la cabeza de la columna.


Haciendo operaciones en forma análoga a la del programa de control anticipativo (feed-
forward), y considerando que la salida del sumador F4 será la suma de tres señales F2,
F3, F5, resulta:

490
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 491

Apéndice - 1

XB * KB − F 5 * KL KB * TL
F 5' = + * XB '
KL * TB KL * TB
F 4 = F 2 + F3 + F5

15.14 En forma análoga a la realizada en el control DDC de dos variables, se incluiría


LF= U(3,1) en forma secuencial detrás de las otras dos variables. Podría variarse LF en
cada incremento de tiempo T para simular condiciones de variación sea en forma senoi-
dal o en forma de escalones.

491
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 492
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 493

Apéndice - 2

Glosario

Ábaco de Nichols. Equivale al diagrama de Nyquist tomando coordenadas cartesianas


en lugar de coordenadas polares.
Alcance (span). Es la diferencia algebraica entre los valores superior e inferior del
campo de medida del instrumento. Ejemplo: en el campo 100-300 oC vale 200 oC.
Amplificador operacional. Amplificador de c.c. de alta ganancia que constituye la base
de los controladores electrónicos.
Banda proporcional. Porcentaje de variación de la variable controlada necesario para
provocar una carrera completa del elemento final de control. Es el recíproco de la
ganancia.
Bit. Unidad de información o dígito binario.
Calibración. Ajuste de la salida de un instrumento a valores deseados dentro de una
tolerancia especificada para valores particulares de la señal de entrada.
Campo de medida (range). Espectro o conjunto de valores de la variable medida que
están comprendidos dentro de los límites superior e inferior de la capacidad de
medida o de transmisión del instrumento. Viene expresado estableciendo los dos
valores extremos. Ejemplo: 0 - 150 oC 100-300 oC, 0-50 bar.
Caudal crítico. Caudal en condiciones determinadas que se caracteriza porque la velo-
cidad media del fluido es independiente de la presión aguas abajo.

Computador. Aparato que recibe información de entrada y que la procesa dando una ←
información de salida según un programa preestablecido.
Computador digital. Computador en el que la información se representa en forma
numérica.
Constante de tiempo. Es el valor τ en la expresión A− t /τ de la respuesta a una excitación
del sistema o bien en las expresiones 1 + sτ; 1 +jwτ ;1/(1 + sτ); 1/(1 + jwτ) en las que:
s = variable compleja; t = tiempo; j = √-1 ; w = frecuencia.
En un sistema de primer orden, ante una excitación de impulso o escalón, es el
tiempo, necesario para completar el 63,2% del cambio total en la respuesta.
Control adaptativo. Controlador que ajusta automáticamente sus parámetros para
compensar los cambios que puedan producirse en el proceso. Existe el controlador
adaptativo de modelo de referencia y el controlador adaptativo autosintonizable.

493
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 494

Simulación y control de procesos por ordenador

Control anticipativo. Sistema de control en el que se miden una o más variables de


entrada al proceso que pueden perturbar la variable controlada y se toma una
acción de corrección en la variable manipulada a través del elemento final de con-
trol. Este tipo de control puede combinarse con otros tipos de control, usualmente
con el de realimentación, para reducir las desviaciones de la variable controlada.
Control avanzado. Técnicas que se apartan del control convencional PID y que se apli-
can en procesos muy complejos, no lineales, con retardos importantes y acopla-
miento entre las variables. Se emplean en general para mejorar el rendimiento eco-
nómico del proceso.
Control de gama partida. Sistema de control en el que una variable manipulada tiene
preferencia con relación a otra u otras del proceso. Se consigue usualmente hacien-
do que los elementos finales de control actúen cada uno para una parte de la gama
de valores de salida del controlador.
Control de procesos discontinuos. Sistema de control en el que se elimina automática-
mente la acumulación de la acción integral que tiene lugar en un controlador pro-
porcional más integral cuando la variable controlada cae por debajo del punto de
consigna durante un tiempo suficiente.
Control de realimentación. Sistema de control en el que se compara una variable medi-
da con un valor deseado (punto de consigna) y la señal de error obtenida actúa de
tal modo que reduce la magnitud de este error.
Control de relación. Sistema de control en el que una variable de proceso es controla-
da en una razón dada con relación a otra variable.
Control derivativo. Forma de control en la que existe una relación lineal continua entre
la velocidad de variaci6n de la variable controlada y la posición del elemento final
de control.
Control digital directo (DDC). Sistema de control que realiza un aparato digital que
establece directamente las señales que van a los elementos finales de control.
Control distribuido. Control digital realizado «distribuyendo» el riesgo del control
único por ordenador en varios controladores o tarjetas de control de tipo univer-
sal con algoritmos de control seleccionables por software. Los transmisores electró-
nicos de campo, las tarjetas de control y la estación del operador están unidos
mediante una vía de comunicaciones en forma de cable coaxial y cada componen-
te se ubica en el lugar más idóneo de la planta.
Control en cascada. Sistema de control en el que la señal de salida de un controlador
(primario) es el punto de consigna de otro controlador (secundario).
Control estadístico del proceso (SPC). Monitoriza el comportamiento de las variables
aleatorias que pueden conducir a problemas de control o a variaciones en la cali-
dad de los productos fabricados, aplicando técnicas estadísticas.
Control integral. Forma de control en la qué el elemento final se mueve de acuerdo con
una función integral en el tiempo de la variable controlada.

494
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 495

Apéndice - 2

Control integrado. Sistema de sistemas existentes o que puedan añadirse a una planta,
conectados mediante una red de datos y cuyo objetivo es conseguir una informa-
ción del conjunto de todos los niveles de decisión de la planta y al mismo tiempo
tener una individualidad en cada uno de los sistemas. El buen control automático
de la planta permite obtener los datos y resultados necesarios para el control físi-
co y la gestión de la producción.
Control multivariable. Tipo de control que compensa las perturbaciones en las varia-
bles del proceso y desacopla las mismas, de tal modo que si, por ejemplo, se cam-
bia el punto de consigna de una de las variables sólo ésta queda afectada sin modi-
ficar o perturbar las restantes.
Control óptimo. Sistema de control que cumple la llamada ley de control, es decir, la
señal de salida del controlador hace mínima la función objetivo de diseño y los
resultados deben ser óptimos.
Control planificado. Adapta los parámetros del controlador en función del punto de
operación en procesos no lineales.
Control linealizador global. Linealización global en el espacio abarcado por los esta-
dos del proceso para aplicar técnicas lineales a una planta pseudolineal.
Control por lógica difusa (fuzzy). La lógica difusa o borrosa es una forma de control
que utiliza operadores para describir un sistema mediante reglas que utilizan tér-
minos como «el producto está un poco caliente», o «algo frío», o «muy caliente» o
«justo lo caliente que deseamos».
Control por redes neuronales. Forma de control que imita el funcionamiento de las
neuronas del sistema nervioso. La señal procedente de las diversas entradas o
«dendritas» genera excitación en la salida o «axón» de la neurona, siempre que se
sobrepase un determinado umbral. Cada conexión neuronal (sinapsis) se caracte-
riza por un valor llamado peso que puede ser excitador (positivo), o inhibidor
(negativo) del elemento del proceso.
Control predictivo. Basado en el uso de modelos dinámicos del proceso establecidos de
tal forma que permiten anticiparse y predecir las situaciones futuras del proceso con
el objeto de utilizar esta información para modificar la estrategia actual de control.
Control proporcional. Forma de control en la que existe una relación lineal entre el
valor de la variable controlada y la posición del elemento final de control.
Control Robusto. Tolerancia o insensibilidad del controlador ante los cambios o per-
turbaciones que puedan presentarse en las condiciones de trabajo del proceso.
Control selectivo. Sistema de control en el que se selecciona automáticamente uno de
varios controladores según el valor de sus variables de entrada, generalmente con
el objeto de evitar daños en el proceso o en el producto.
Control supervisor. Sistema de control en el cual los bucles de control operan indepen-
dientemente sujetos a acciones de corrección intermitente a través de sus puntos
de consigna.

495
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 496

Simulación y control de procesos por ordenador

Control todo-nada. Forma de control en que el elemento final de control adopta dos
posiciones fijas.
Controlador. Instrumento que compara la variable controlada con un valor deseado y
ejerce automáticamente una acción de corrección de acuerdo con la desviaci6n.
Controlador de acción directa. Controlador en el que la señal de salida aumenta (o dis-
minuye) al aumentar (o disminuir) la señal de entrada.
Controlador de acción inversa. Controlador en el que la señal de salida disminuye (o
aumenta) al aumentar (o disminuir) la señal de entrada.
Controlador programable. Instrumento basado en microordenador que realiza funcio-
nes de secuencia y enclavamiento de circuitos y, como complemento, funciones de
control PID.
Controlador universal. Basado en microprocesador sustituye al controlador conven-
cional miniatura de panel. Realiza funciones de control PID, dispone de niveles de
seguridad de protección de datos, acepta entradas universales (termopares, sondas
de resistencia, mA, mV y voltios) y tiene varias opciones de comunicaciones.
Convertidor. Instrumento que recibe una señal estándar y la envía modificada en
forma de señal de salida estándar.
Correctores. Aparatos que eliminan el retardo del proceso. Entre ellos se encuentran el
corrector de Smith y el corrector de modelo de referencia.
Decibelio. Unidad sin dimensiones que expresa el cociente de dos valores de potencia.
Equivale a diez veces el logaritmo en base 10 del cociente de potencias, con la
potencia de referencia seleccionada arbitrariamente en 10-16 vatios/ cm2.
Deriva. Variación de la señal de salida que se presenta en un período de tiempo deter-
minado mientras se mantienen constantes la variable medida y todas las condicio-
nes ambientales. Viene expresada en tanto por ciento del alcance. Ejemplo: 0,2% de
100 = ± 0,2o centígrados (campo 50-150 oC).
Diafragma. Elemento sensible formado por una membrana colocada entre dos volúme-
nes. La membrana es deformada por la presión diferencial que le es aplicada.
Diagrama de Bode. Es la representación de la función de transferencia tomando como
abscisas la frecuencia en base logarítmica y en ordenadas la ganancia expresada en
20 log (relación de amplitudes) y el desfase expresado en grados.
Diagrama de Nyquist. Representación de la función de transferencia en coordenadas
polares en que cada punto de la curva define un módulo y un argumento a una fre-
cuencia determinada.
Display. Presentación visual de una señal.
Elemento final de control. Recibe la señal del controlador y modifica el caudal del flui-
do o agente de control. La válvula de control es el elemento final típico.
Elemento primario. Convierte la energía de la variable medida en una forma adecua-
da para la medida.

496
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 497

Apéndice - 2

Emisividad. Relación entre el grado de variación de energía radiante de una parte


opaca pulida de un cuerpo y el correspondiente a la misma área de un cuerpo
negro, ambos a la misma temperatura.
Energía radiante. Energía formada por ondas electromagnéticas.
Ensayo dinámico. Ensayo realizado para acumular información correspondiente al
comportamiento total y respuesta frecuencial del instrumento.
Error. Diferencia algebraica entre el valor leído o transmitido por el instrumento y el
valor real de la variable medida.
Estabilidad. Capacidad de un instrumento para mantener su comportamiento duran-
te su vida útil y de almacenamiento especificadas.
Exactitud (accuracy). Cualidad de un instrumento de medida por la que tiende a dar
lecturas próximas al verdadero valor de la magnitud medida.
En otras palabras, es el grado de conformidad de un valor indicado a un valor
estándar aceptado o valor ideal, considerando este valor ideal como si fuera el ver-
dadero.
Fiabilidad. Medida de la probabilidad de que un instrumento continúe comportándo-
se dentro de límites especificados de error a lo largo de un tiempo determinado y
bajo condiciones especificadas.
Fluido o agente de control. Es el proceso, energía o material correspondiente a la varia-
ble manipulada.
Foundation Fielbus (FF). Organización sin ánimo de lucro formada por los casi 120
proveedores y usuarios más importantes de automatización y control de procesos.
Protocolo de bus de datos digital, serie y multipunto entre dispositivos de campo
y/o sistemas de un entorno industrial, diseñado para obtener mas información
sobre el proceso y sobre el propio instrumento, y establecer reglas de rendimiento,
seguridad y detección de errores.
Frecuencia. Número de ciclos por unidad de tiempo. Es el recíproco del período.
Función de transferencia. Relación matemática, gráfica o tabular entre las expresiones
función del tiempo de las señales de salida y de entrada a un sistema o elemento.
Equivale también al cociente de las transformadas de Laplace de las funciones de
respuesta y de excitación.
Ganancia. Es la relación de magnitudes entre la señal de salida resultante y la señal de
entrada de excitación.
HART (Highway Addressable Remote Transducer). Protocolo de comunicaciones híbri-
do que modula en frecuencia una señal de ± 0.5 mA de amplitud superpuesta a la
señal analógica de salida del transmisor de 4-20 mA c.c. Codifica en forma senoi-
dal los estados lógicos 1 y 0 con las frecuencias de 1.200 Hz para el 1 y 2.200 Hz
para el 0. Como la señal promedio de una onda senoidal es cero, no se añade nin-
gún componente de c.c. a la señal analógica de 4-20 mA c.c.

497
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 498

Simulación y control de procesos por ordenador

Histéresis. Diferencia máxima en los valores de salida del instrumento para el mismo
valor cualquiera del campo de medida cuando la variable recorre toda la escala en
los dos sentidos ascendente y descendente. Viene expresada en tanto por ciento del
alcance. Ejemplo: ± 0,3% de 50 = ± 0,15 bar (campo 0-50 bar).
Impulso. Variación finita de una cantidad cuyo valor es normalmente constante.
Incertidumbre de la medida (uncertainty). Resultado de una operación de calibración,
en la que se compara el instrumento a calibrar con un aparato patrón para averi-
guar si el error se encuentra dentro de los límites dados por el fabricante del ins-
trumento. Como el aparato patrón no permite medir exactamente el valor verda-
dero (también tiene un error) y como además en la operación de comparación
intervienen diversas fuentes de error, no es posible caracterizar la medida por un
único valor, lo que da lugar a la llamada incertidumbre de la medida o incertidum-
bre (uncertainty).
Lazo abierto de control. Es el camino que sigue la señal sin realimentación.
Lazo cerrado de control. Camino que sigue la señal desde el controlador hacia la vál-
vula, al proceso y realimentándose a través del transmisor hacia un punto de suma
con el punto de consigna.
Memoria. Aparato en el que puede introducirse información y extraerse más adelante.
Micra. Unidad de longitud igual a 10-6 metros.
Multiplexado. Transmisión simultánea de dos o más señales a través de un canal
único. Los dos métodos básicos de multiplexado implican la separación de señales
por división del tiempo o de la frecuencia.
Octava. Intervalo entre dos frecuencias con la relación 2 a 1.
Offset. Desviación permanente que existe en régimen en el control proporcional cuan-
do el punto de consigna está fijo.
OPC. Significa OLE (Object Linking and Embeding - enlace e incrustación de objetos) para
Control de Procesos (Process Control) y es un estándar abierto para compartir datos
entre dispositivos de campo y aplicaciones de ordenador.
OSI (Open Systems Interconnections). Protocolo de comunicaciones, propuesto por
ISO (Organización Internacional de Normalización) y formado por varios niveles.
Uno de ellos, el de usuario, normaliza las funciones básicas de todos los instru-
mentos de tal manera que aparatos de distintos fabricantes son intercambiables.
Pirómetro de infrarrojos. Capta la radiación espectral del infrarrojo, invisible al ojo
humano, y puede medir temperaturas menores de 700ºC, abarcando desde valo-
res inferiores a 0 oC hasta mas de 2.000 oC.
Precisión. Cualidad de un instrumento por la que tiende a dar lecturas muy próximas
unas a otras, es decir, es el grado de dispersión de las mismas.
Proceso o sistema controlado. Engloba las funciones realizadas por el equipo en el cual
es controlada la variable, sin incluir los instrumentos de control.

498
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 499

Apéndice - 2

Proceso continuo. Proceso en el cual entran componentes y salen productos en cauda-


les sin restringir y durante largos períodos de tiempo.
Proceso discontinuo. Proceso que se lleva a cabo con una cantidad dada de material
dentro de un reactor sin que se cargue material adicional durante la operación.
PROFIBUS. Red de comunicaciones abierta, muy popular en Europa, estándar e inde-
pendiente de fabricantes (interoperable). Dispone de tres perfiles de usuario: PRO-
FIBUS FMS, PROFIBUS DP y PROFIBUS PA (automatización de procesos incluso
en áreas con riesgo de explosión, comunicación con equipos de campo).
Programador. Instrumento que ajusta su propio punto de consigna o bien el punto de
consigna de otro instrumento controlador de acuerdo con un programa prefijado.
Punto de consigna. Variable de entrada en el controlador que fija el valor deseado de
la variable controlada.
Puede fijarse manual o automáticamente, o bien programarse.
Radiación. Emisión y propagación de energía en forma de ondas a través del espacio o
a través de un material.
Realimentación. Parte de la señal de salida de un sistema que vuelve a la entrada.
Receptor. Recibe la señal procedente del transmisor y la indica o registra.
Relación de desviación. Curvas de respuesta del proceso que en ordenadas tienen
como valor la razón entre la amplitud de la desviación en lazo cerrado (con con-
trol) y la misma en lazo abierto (sin control) y en abscisas la frecuencia en escala
logarítmica. Permiten determinar la bondad del controlador en la eliminación de
las perturbaciones según la frecuencia.
Repetibilidad. Capacidad de reproducción de los valores de salida del instrumento al
medir repetidamente valores idénticos de la variable en las mismas condiciones de
servicio y en el mismo sentido de variación recorriendo todo el campo. Viene
expresada en tanto por ciento del alcance. Ejemplo: ± 0,1% de 150 = ± 0,15° centí-
grados (campo 50 a 100 oC).
Resolución. Magnitud de los cambios en escalón de la señal de salida al ir variando
continuamente la medida en todo el campo. Viene expresada en tanto por ciento
de la salida de toda la escala. Grado en que pueden discriminarse valores aproxi-
madamente iguales de una cantidad.
Respuesta ante una entrada en rampa. Respuesta de un sistema al excitarlo con una
rampa unidad.
Respuesta dinámica. Igual a respuesta frecuencial.
Respuesta frecuencial. Variación con la frecuencia de la relación de amplitudes señal
de salida/variable medida (y de la diferencia de fases entre la salida y la variable
medida) para una medida de variación senoidal aplicada a un instrumento dentro
de un campo establecido de frecuencias de la variable medida. Se especifica usual-
mente como «dentro de ...%, de ... a... Hz».

499
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 500

Simulación y control de procesos por ordenador

Respuesta impulsional. Respuesta de un sistema al excitarlo con un impulso unidad.


Respuesta indicial. Respuesta de un sistema al excitarlo con un escalón unidad.
Robustez. Tolerancia o insensibilidad del controlador ante los cambios o perturbacio-
nes que puedan presentarse en el proceso.
Ruido. Cualquier perturbación eléctrica o señal accidental no deseadas que modifica la
transmisión, indicación o registro de los datos deseados.
Señal. Salida o información que emana de un instrumento. Información representativa
de un valor cuantificado.
Señal de salida. Señal producida por un instrumento que es función de la variable me-
dida.
Señal de salida analógica. Señal de salida del instrumento que es una función continua
de la variable medida.
Señal de salida digital. Señal de salida del instrumento que representa la magnitud de
la variable medida en forma ce una serie de cantidades discretas codificadas en un
sistema de notación. Se distingue de la señal de salida analógica.
Sistema experto. Contiene una base de conocimientos extraída de expertos, de tal
forma que detecta y diagnostica los problemas potenciales que pueden presentar-
se en el control de procesos de una planta industrial, pudiendo tomar decisiones
inteligentes y justificar su mecanismo de razonamiento de una forma inteligible.
Temperatura ambiente. Temperatura que prevalece en un ambiente dado.
Temperatura de servicio. Campo de temperaturas en el cual se espera trabaje el instru-
mento dentro de límites de error especificados.
Termistor. Resistencia cuyo valor varía con la temperatura en una forma definida de-
seada.
Termopar. Par de conductores de materiales distintos unidos entre sí que generan una
fuerza electromotriz cuando las dos uniones están a distintas temperaturas.
Termorresistencia. Hilo de material cuya resistencia varía con la temperatura, general-
mente en forma lineal.
Tiempo de acción derivada. Equivale al tiempo en minutos con que la acci6n derivada
se anticipa al efecto de la acción proporcional en el elemento final de control.
Tiempo de acción integral. Equivale a minutos por repetici6n de la acci6n proporcio-
nal. También se acostumbra a expresar en el recíproco, repeticiones por minuto.
Tiempo muerto. Retraso definido entre dos acontecimientos relacionados entre sí.
Transductor. Recibe una señal de entrada función de una o más cantidades físicas y la
convierte modificada o no a una señal de salida.
Transformada de Laplace. En una funci6n del tiempo y(t) se define como,

L [y (t )] = Y ( s ) = ∫ y (t ).e
− st
dt
+
0

500
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 501

Apéndice - 2

en la que s = σ + jw (número complejo con parte real σ y parte imaginaria j = −1; w =


frecuencia; t = tiempo.
Transmisor. Capta la variable de proceso a través del elemento primario y la convierte
a una señal de transmisión estándar.
Transmitancia. Ver Función de Transferencia.
Unión de medida. La unión de medida de un termopar es la unión que está a la tem-
peratura que desea medirse.
Unión de referencia. La unión de referencia de un termopar es la unión que está a la
temperatura conocida o de referencia.
Variable controlada. Dentro del bucle de control es la variable que se capta a través del
transmisor y que origina una señal de realimentación.
Variable manipulada. Cantidad o condición del proceso variada por el elemento o ele-
mentos finales de control.
Variable medida. Cantidad, propiedad o condición física que es medible.
Vida útil de servicio. Tiempo mínimo especificado durante el cual se aplican las carac-
terísticas de servicio continuo o intermitente del instrumento sin que se presenten
cambios en su comportamiento más allá de tolerancias especificadas.

501
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 502
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 503

REFERENCIAS

- Norma ISA-S 5.1-1984 (R 1992) Instrumentation Symbols and Identification.


- Simulación y control de procesos por ordenador, Antonio Creus, Marcombo Boixareu
Editores, ISBN: 84-267-0637-1, 1987.
- Process Modeling, Simulation and Control for Chemical Engineers –Luyben McGraw-Hill
1989.
- Instrumentación Industrial –7ª edición– A. Creus, Ed, Marcombo 2005.
- Identificación de procesos sobreamortiguados utilizando técnicas de lazo cerrado - Víctor
M. Alfaro, 2001 San José. Costa Rica.
- Ecuaciones para Controladores PID Universales – Víctor M. Alfaro Ruíz San José. Costa Rica.
- Robust Process Identification from Relay Tests in the Presence of Nonzero Inicial Conditions
and Disturbance – Qing-Guo Wang, and All, National University of Singapore.
- On-Line Process Identification and Autotuning for Integrating Processes Hee Jin Kwak and
All, University of Science and Technology, Korea.
- Control de Procesos Industriales, control distribuido, Cesar de Prada - Dpto. de Ingeniería
de Sistemas y Automática –Facultad de Ciencias, Universidad de Valladolid– INGENIERIA
QUIMICA - MARZO 1997.
- PID Control –Kart Johan Aström– 2002.
- PID Control Toolset –User Manual– Nacional Instrumets LabView – Noviembre 2001.
- Adaptive PID Controller Using Ziegler Nichols based Self-Tuning Method’s Parameters for
Programmable Logic Controllers - T. Yucelen at all, Istanbul Technical University, Proceedings
of 5th Internacional Symposium on Intelligent Manufacturing Systems, May 2006.
- Ingeniería de control moderna. K. Ogata. Prentice-Hall, Méjico, 1998.
- Manuales de Matlab y Simulink. Mathworks Inc.
- Feedback Control Theory – John Doyle et all – MacMillan Publishing C. 1990.
- Discretised PID Controllers - Part of a set of study notes on Digital Control – by M. Tham
- AVR221:Discrete PID controller – ATMEL 8-bit AVR Microcontrollers-Application Note.
- Control Neuronal de una Torre de Destilación Metanol –Agua - Miguel Angel Torres Alberto
et all– Univ. de Oriente, Santiago de Cuba, Cuba.
- ExperTune Library – 1999-2006 ExperTune, Inc.
- Lecture 9: Digital Control Algorithms and Their Implementation, Peyman Gohari – ELEC
6061 Winter 2006.
- Frequency Response Analysis and Design.

503
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 504

Simulación y control de procesos por ordenador

- Harry Nyquist -. Feb. 7, 1889, Nilsby, Sweden, the biographies of Nyquist available in the
Internet.
- Mathematics of Sampled Data Systems –Part of a set of study notes on Digital Control– M.
Tham.
- Nyquist plot of a frequency response –Course on Dynamics of multidisplicinary and contro-
lled Systems– Christian Schmid 2005-05-09.
- Utilización de Microsoft Excel para obtener el lugar de raíces y simular un sistema automá-
tico de control –David Mauricio Maya and all– Universidad Pontificia Bolivariana Facultad de
Ingeniería Química , Medellín, Colombia.
- Proportional-Integral-Derivative Control – Dr M.J. Willis Dept. of Chemical and Process
Engineering, University of Newcastle - 1998.
- PID controller design on Internet: Cech Martin, Schlegel Miloš - Department of Cybernetics,
University of West Bohemia in Pilsen.
- Open Loop Tuning Rules - Based on approximate process models – APCO Inc.
- Control en tiempo real de un horno para aplicaciones químicas –Pablo M. Savanco
Universidad Tecnológica Nacional– Córdoba, Argentina.
- Automatización de Procesos Industriales –Jose Mari González de Durana – Dpto ISA ,
Vitoria– marzo 2002.
- Proyecto de Regulación Automática, 2º Ingeniería Técnica Industrial, Óscar Machuca Gó-
mez – Universidad de Sevilla.
- Análisis y Diseño de Sistemas de Control mediante la Respuesta en Frecuencia – Álvaro
Mesa García at all, Sistemas de Control, Curso: 2004/2005.
- Journal of Undergraduate Research , Volume 7, Issue 6 – July/August 2006 Development
and Application of the Proportional-Integral-Derivative Control Algorithm. Eric M. Schwartz,
Member, IEEE.
- The PID Control Algorithm:How it works, how to tune it, and how to use it. 2nd ed.-
Process Control Solutions, Rochester, NY.
- Sistemas de Control Muestreados – SCTR, curso 2004-2005.
- Self-tuning Controllers Simulink Library - Vladimir Bobal at all –Department of Control
Theory– Faculty of Applied Informatics University in Zlin - Czech Republic.
- FAQ on PID Controller Tuning – Ron Gram. abril 2005.
- PID controller - Wikipedia.
- Introducción a MatLab y su Aplicación al Análisis y Control de Sistemas – Manuel Vargas,
Manuel Berenguer - Universidad de Sevilla – Octubre 2003.
- Development and Application of the Proportional-Integral-Derivative Control Algorithm -
Eric M. Schwartz, Member, IEEE – Journal of Undergraduate Research Volume 7, Issue 6 -
July/August 2006.

504
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 505

Apéndice - 2

- Seminari CoDAlab - Técnicas LMI en Teoría de Control - Gisela Pujol - EUETIB-UPC , Mayo
2006.
- La fabricación de los materiales cerámicos – Xavier Elías, Universidad Pontificia Bolivariana
at all, Medellín, marzo 2001, Colombia.
- Modelling and Predictive Control of Milk Pasteurisation in a Plate Heat Exchanger –Moha-
med Tarek Khadir at all– Control System Group School of Electronic Engineering, Dublin City
University - Irlanda.
- SPC Control Estadístico del Proceso –Paola Von Versen Espinosa– Piedras Negras, Coah.,
México.
- Catálogos de Honeywell – 2006.
- Manual de Cálculo de Válvulas de Control de Masoneilan.
- ANSI/ISA-75.01-1985 Flow Equations for Sizing Control Valves.
- Empleo de sistemas expertos en línea en control de procesos, J. C. Taunton, Automática e
Instrumentación, marzo 1988.
- Incorporating statistical Process Control within a Distributed Control System –C. L. Mamzick
y T. W. Tucker– Control Engineering, julio 1988.
- SCADA Systems Merging with Distributed Control, George J. Blickley, Control Engineering,
febrero 1988.
- Tuning of PID Controls of Different Structures, A. Kaya y T. J. Scheib Control Engineering,
julio 1988.
- Control de procesos no lineales: aplicación al caso de pH, Ignacio Serra, César de Prada y
Pastora Vega, Automática e Instrumentación n.o 206, octubre 1990.
- Las redes neuronales en el control de procesos. El controlador neuronal predictivo, José
Manuel Nistal Bartolomé, enero 1991.
- Manual, feedforward, feedback control provide process control –Paul Murrill– Intech Tutorial
– Junio 1998.
- Mesa Redonda sobre Soluciones globales en lugar de Sistemas de Control –Automática e
Instrumentación– abril 2002.
- Control multivariable –Revista Control Engineering– 2002.
- Optimize process regulation Phillip D.Schnelle,Jr., Kenneth D.Jackson and Julie F.Smith
DuPont Co. – 2002.
- Control Chart Properties – Quality America - 2002.
- Defining Control Limits –Quality America Inc– 2002.
- Doris Sáez. Apuntes I: Control predictivo basado en modelos. Marzo, 2002
- DC1000 – Familia UDC 100- Series General Purpose UNIVERSAL DIGITAL CONTROLLERS –
Honeywell.

505
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 506

Simulación y control de procesos por ordenador

- What is MVC - Model Predictive-Adaptive Control Technology - Siemens 2003.


- Ziegler-Nichols Tuning Rules And Limitations - John Gerry – Expertune – 2003.
- Which Tuning Method Should You Use? –by Tom Kinney and John Gerry–, P.E. Sep. 16,
2004.
- l. G. Ziegler y N. B. Nichols, Optimum Settings for automatic controllers, trans ASME, vol.
65, págs. 443-444 (1943).
- ISA RP26: Dynamic response testing of Process control Instrumentation.
- ANSI/ISA-88.00 – Batch Control.
- ANSI/ISA-TR75.25.02-2000 – Control Valve Response Measurement from Step Inputs.
- ISA-51.1-1979 - (R1993) – Process Instrumentation Terminology.
- ISA-5.1-1984 (R1992) - Instrumentation Symbols and Identification.
- ISA-5.3-1983 – Graphic Symbols for Distributed Control/Shared Display Instrumentation,
Logic, and Computer Systems.
- ISA-5.4-1991 - Instrument Loop Diagrams.
- ISA-5.5-1985 - Graphic Symbols for Process Displays.
- A Simplified Technique of Control System Engineering, G. K. Tucker y D. M. Wills, Honeywell
Inc., 1962.
- Adaptive Control, Karl Johan Astrom, Bjorn Wittenmark, Lund Institute of Technology,
Addisoq Wesley Publishing Company 1989.
- Software para control robusto, Benedicto Calle, Automática e Instrumentación, abril 1990.
- Control avanzado –Seminario Regulación Automática de Procesos– IPA, José Ma. Nistal
Bartolomé, marzo 1992.
- Programación con VBA –EXCEL 2003– Walkenbach,J (2004).
- Instituto Tecnol.

506
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 507
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 508

S-ar putea să vă placă și