Documente Academic
Documente Profesional
Documente Cultură
Simulación
y control
de procesos
por ordenador 2ª edición
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
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.
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
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
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
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
xi
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xii
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
xiii
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xiv
xiv
Simulaci n y control_Primeras.qxp 29/08/2007 12:56 PÆgina xv
Índice general
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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.
3
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 4
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.
5
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 6
6
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 7
Introducción
x (t ) * Ss = c * y (t )
q (t ) = k * y (t )
7
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 8
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
8
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 9
Introducción
9
Simulaci n y control_01.qxp 31/07/2007 13:59 PÆgina 10
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
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
14
Simulaci n y control_02.qxp 31/07/2007 15:59 PÆgina 15
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.
L−1 [Y ( s )]= y (t )
d [y (t )] − s*t
∞
[ ]
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
∞
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
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
5 3
operando sale: A= B = −5 C=
2 2
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
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
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.
v L = L * p * i (t ) VL = L * s * I (s)
vL VL
W = = L* p W= = L*s
i (t ) I ( s)
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
19
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 20
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.
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
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α
21
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 22
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
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
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.
23
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 24
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
24
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 25
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
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
25
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 26
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
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
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
27
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 28
luego: y (0 + )= lim[s * Y ( s ) ]
s →∞
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
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:
28
Simulaci n y control_02.qxp 31/07/2007 16:00 PÆgina 29
Ejemplos:
Valores inicial y final de una función y(t) cuya transformada de Laplace es:
1
Y (s) =
s * (s + a)
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
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.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 )
31
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 32
d
δ (t ) = [u (t )]= p * u (t )
t
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
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
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.
33
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 34
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.
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
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.
34
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 35
Análisis temporal
1 1 −1 1 1 −(1 / T )*t
y (t ) = L−1 = *L = *e
T * s + 1 T s + 1/ T T
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
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
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
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
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
38
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 39
Análisis temporal
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
39
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 40
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
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
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
42
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 43
Análisis temporal
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
-20 0 5 10 15 20 25 30 35
Frecuencia
-40
natural
0,06999999 6,945551872 -60
(Radianes/min)
-80
(wcero)
Tiempo
s 2 = −ξ * w0 + w0 * ξ 2 − 1
s3 = −ξ * w0 − w0 * ξ 2 − 1
43
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 44
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
1 s
luego: y (t ) = L−1 − L−1 2 = 1 − cos( w0 * t )
2
s s + w0
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 )
[ ]
L e − a*t * f (t ) = F ( s + a )
(
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
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
1−ξ 2
46
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 47
Análisis temporal
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
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
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
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
1 w02
y (t ) = L−1 * 2
2
s s + 2 * ξ * w0 * s + w0
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
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.
51
Simulaci n y control_03.qxp 31/07/2007 17:28 PÆgina 52
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.
53
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 54
54
Simulaci n y control_04.qxp 31/07/2007 17:30 PÆgina 55
Diagrama de bloques
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
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
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
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
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 =
Proporcional+integral+derivativo =
58
Simulaci n y control_04.qxp 31/07/2007 17:31 PÆgina 59
Diagrama de bloques
Ejercicios
59
Simulaci n y control_04.qxp 31/07/2007 17:31 PÆgina 60
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)
61
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 62
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 )
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
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
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
63
Simulaci n y control_05.qxp 01/08/2007 9:10 PÆgina 64
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
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
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
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
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
69
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 70
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
A *τw
−
Argumento = Φ = arc tg 1 + τ w
2 2
= arc tg (−τw)
A
1 + τ 2 w2
71
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 72
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
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)
74
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 75
Análisis frecuencial
Fig. 5.6 Plano polar o de Nyquist de la respuesta frecuencial de una transmitancia de primer orden
En la parte imaginaria:
radio ½.
75
Simulaci n y control_05.qxp 01/08/2007 9:11 PÆgina 76
Y de aquí:
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
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
1
W ( s) =
τ s + 2ξτs + 1
2
79
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 80
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
2ξτw 2ξw / w0
Φ = arc tg − 2 2
= arc tg −
2
1−τ w 1 − (w / w0 )
80
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 81
Análisis frecuencial
Y por lo tanto:
Φ = −90º
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
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
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)
100
Ganancia - dB, Desfase - grados
50
0
0,1 1 10 100 1000
Serie1
-50
Serie2
-100
-150
-200
Tiempo (radianes/min)
84
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 85
Análisis frecuencial
Fig. 5.12 Respuesta frecuencial transmisor de presión diferencial Honeywell ST3000. Fuente: TNO
85
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 86
Con: τ = 1/w0;
W0 = Pulsación propia;
ξ = Factor de amortiguamiento.
La parte real de la respuesta frecuencial es:
Y el desfase:
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
87
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 88
88
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 89
Análisis frecuencial
Tiempo Parte
Tiempo Ganancia - Desfase - Parte Real
Tinicial(radianes/min) (radianes/mi imaginaria
(radianes/min) G grados G
n) G
15
10
Eje imaginario
0 Serie1
0 1 2 3 4 5 6
-5
-10
-15
Eje real
89
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 90
W ( jw) * e j *arg( W ( jw )) = W1 ( jw) * W2 ( jw) ...Wn ( jw) * e 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
91
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 92
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
94
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 95
Análisis frecuencial
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
100,000
Ganancia - dBR3, Desfase - ºR3,
Ganancia - dBR1, Desfase - ºR1,
Ganancia - dBR2, Desfase - ºR2,
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)
95
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 96
96
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 97
Análisis frecuencial
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
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
99
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 100
Y de aquí:
100
Simulaci n y control_05.qxp 01/08/2007 9:12 PÆgina 101
Análisis frecuencial
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
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
103
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 104
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.
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.
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
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
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
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
60
40
Ganancia - dB, Desfase -
20
0
grados
109
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 110
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
PV − SP =
∫i d dt
Cd
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
Φ = arc tg ( wτ d )
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
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
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)
115
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 116
116
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 117
Análisis frecuencial
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
1
y el desfase es: Φ = arc tg − + wτ d
wτ i
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
119
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 120
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.
Caudal 1 segundo
Nivel 5 segundos
Temperatura 30 seg a 10 minutos
120
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 121
Análisis frecuencial
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
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
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)
123
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 124
1
P * I = P * 1 + = P * 1 +- 1
= P C1
jw τ i jw τ i
124
Simulaci n y control_05.qxp 01/08/2007 9:13 PÆgina 125
Análisis frecuencial
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
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.
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
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
129
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 130
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
Incremento tiempo
0,04 125,10 -83,18 0,04 14,95 -124,20
(radianes/min)
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)
130
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 131
Análisis frecuencial
Fig. 5.36 Estudio Proceso (proceso + transmisor + válvula control) + Controlador PID
131
Simulaci n y control_05.qxp 01/08/2007 9:14 PÆgina 132
0 - 2 fase de
[w2 (a - 270º)]/[w1(a -180º)] 2-5 >5
pendiente alta
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
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
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.
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
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.
D ( s ) = a0 s n + a1s n −1 + ... + an = 0
137
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 138
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.
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.
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
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.
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
µ
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
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º.
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
142
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 143
Estabilidad
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.
143
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 144
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
Por el criterio del ángulo y siendo s → , los argumentos de los polos p y de los ceros
8
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
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 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.
145
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 146
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.
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).
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
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
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
Á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
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
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.
∞
4. Integral del error cuadrático ponderado en el tiempo (ITSE - Integral of time times error
squared).
∞
151
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 152
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
154
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 155
Estabilidad
155
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 156
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.
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.
157
Simulaci n y control_06.qxp 01/08/2007 9:26 PÆgina 158
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
159
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 160
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
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º
161
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 162
162
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 163
163
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 164
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
165
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 166
166
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 167
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
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
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
170
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 171
171
Simulaci n y control_07.qxp 01/08/2007 9:28 PÆgina 172
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
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
Densidad
Ganancia(KP) 0,21 33,52 0,21 41,21 -151,74
producto(D2)
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
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
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
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
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).
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
∫ (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
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
b − jw * ∫ y (t ) * e − jwt * dt
W ( jw) =
a − jw * ∫ x * e − jwt * dt
179
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 180
180
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 181
∫ y (t ) * e
− st
Y (s) * dt
W ( jw) = =
X ( s) ∫ x(t ) * e
− st
* dt
∫ 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
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
183
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 184
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
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 )
185
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 186
186
Simulaci n y control_08.qxp 01/08/2007 9:29 PÆgina 187
IECP = ∫ (y p (t ) − ym (t ) ) dt
∞ 2
0
IEAPi − IEAPopt
PEPi = * 100
IEAPopt
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.
189
Simulaci n y control_09.qxp 01/08/2007 9:30 PÆgina 190
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
191
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 192
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.
192
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 193
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.
193
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 194
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.
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
∞
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
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
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
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
198
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 199
199
Simulaci n y control_09.qxp 01/08/2007 9:31 PÆgina 200
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
201
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 202
202
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 203
203
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 204
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.
204
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 205
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
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
207
Simulaci n y control_09.qxp 01/08/2007 9:32 PÆgina 208
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
209
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 210
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
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
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
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
214
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 215
215
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 216
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
217
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 218
218
Simulaci n y control_09.qxp 01/08/2007 9:33 PÆgina 219
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
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
221
Simulaci n y control_09.qxp 01/08/2007 9:34 PÆgina 222
Range("A32").Select
Selection.Font.Bold = True
End Sub
222
Simulaci n y control_09.qxp 01/08/2007 9:34 PÆgina 223
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
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
225
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 226
226
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 227
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
Otras curvas características son intrínsecas del tipo de válvula empleado, tales como la
válvula de tajadera y de mariposa.
228
Simulaci n y control_10.qxp 01/08/2007 9:35 PÆgina 229
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
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
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
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.
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
232
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 233
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.
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
∆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:
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.
Q ρ
Kv = *
Cf ∆Pvc
234
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 235
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
235
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 236
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
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
236
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 237
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
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
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
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
240
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 241
241
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 242
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
242
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 243
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
En la figura 10.9 puede verse un programa de cálculo de válvulas de control junto con
varios ejemplos ilustrativos.
Ejercicios
243
Simulaci n y control_10.qxp 01/08/2007 9:36 PÆgina 244
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
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
247
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 248
Simulación y control
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
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
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
253
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 254
Simulación y control
254
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 255
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
256
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 257
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
258
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 259
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
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
262
Simulaci n y control_11.qxp 01/08/2007 9:37 PÆgina 263
.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)
263
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 264
Simulación y control
264
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 265
265
Simulaci n y control_11.qxp 01/08/2007 9:38 PÆgina 266
Simulación y control
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
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
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.
271
Simulaci n y control_12.qxp 01/08/2007 9:46 PÆgina 272
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
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
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
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
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
275
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 276
z →∞
∞
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
de lo cual se deduce:
lim x ( n) = lim x (t ) = lim[( z − 1) * X ( z )]
n→∞ n→ ∞ n→∞
276
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 277
Transformada Z
De la figura se deduce: y (t ) = G ( s ) * X * ( s )
y la función muestreada de salida vale:
O bien:
y ( z ) = x( z ) * G ( z )
277
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 278
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
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
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.
279
Simulaci n y control_12.qxp 01/08/2007 9:47 PÆgina 280
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:
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
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
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:
·
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
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.
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
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:
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:
o sea:
.
X = AX + Bu
286
Simulaci n y control_13.qxp 01/08/2007 9:48 PÆgina 287
Ecuación de estado
Controlador:
Válvula lineal:
Proceso:
Transmisor:
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
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:
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
Podemos generalizar esta solución al caso de una matriz x = eAt * x(0). Y así la
solución es:
·
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
289
Simulaci n y control_13.qxp 01/08/2007 9:49 PÆgina 290
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:
290
Simulaci n y control_13.qxp 01/08/2007 9:49 PÆgina 291
Ecuación de estado
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:
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:
291
Simulaci n y control_13.qxp 01/08/2007 9:49 PÆgina 292
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í:
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
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
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
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
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
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:
300
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 301
Ecuación de estado
con lo cual
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
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:
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
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:
303
Simulaci n y control_13.qxp 01/08/2007 9:51 PÆgina 304
O bien como:
y con la aproximación
Resulta:
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
Caudal 1 segundo
Nivel 5 segundos
Temperatura 30 seg a 10 minutos
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
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
307
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 308
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
309
Simulaci n y control_13.qxp 01/08/2007 9:52 PÆgina 310
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
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
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
316
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 317
) 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.
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.
317
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 318
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.
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
319
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 320
320
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 321
321
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 322
322
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 323
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
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
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
325
Simulaci n y control_14.qxp 01/08/2007 9:55 PÆgina 326
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).
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
327
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 328
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.
328
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 329
329
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 330
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.
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
331
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 332
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:
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
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
333
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 334
Y así:
.
x opt = 1,05 0 * x (0) = 0,525 + 1,05 * p(0)
opt
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:
334
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 335
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.
335
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 336
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
337
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 338
∑ [yd (k + j ) − yp (k + j )]
2
338
Simulaci n y control_14.qxp 01/08/2007 9:56 PÆgina 339
339
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 340
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,
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.
340
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 341
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.
341
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 342
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
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.
343
Simulaci n y control_14.qxp 01/08/2007 9:57 PÆgina 344
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.
345
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 346
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
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
349
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 350
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
351
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 352
'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
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
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))
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))
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)
355
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 356
356
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 357
Simulación de procesos
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 −
357
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 358
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
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
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
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)
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)
365
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 366
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 ( 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:
367
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 368
368
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 369
Simulación de procesos
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
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
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
373
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 374
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
376
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 377
Simulación de procesos
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)
377
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 378
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)
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.
378
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 379
Simulación de procesos
379
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 380
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:
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
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
383
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 384
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
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
387
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 388
388
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 389
Simulación de procesos
389
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 390
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
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)
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
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
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
394
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 395
Simulación de procesos
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
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
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
400
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 401
Simulación de procesos
401
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 402
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
403
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 404
404
Simulaci n y control_15.qxp 01/08/2007 10:01 PÆgina 405
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)
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)
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)
Densidad de
Incremento inicial
los
de [producto A] 0,230000034 2,728209972 0 5,893989563
reactantes -
moles/mol (CA)
Kg/l (DR)
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)
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.
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
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
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
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
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
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
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)
414
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 415
Simulación de procesos
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
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
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.
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
417
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 418
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
=
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) =
Composición del
residuo (XB)
0,030
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
419
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 420
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
421
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 422
422
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 423
Simulación de procesos
423
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 424
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
425
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 426
[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)
426
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 427
Simulación de procesos
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)
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
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
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
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
433
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 434
'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
435
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 436
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
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)
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)
438
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 439
Simulación de procesos
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)
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.
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
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
441
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 442
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
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
445
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 446
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
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)
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)
449
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 450
45,000000
2 - 3 - 4 - 5 - 6 - FONDOS - CAUDAL REFLUJO -
Composiciones DESTILADO - BANDEJAS 1 -
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)
450
Simulaci n y control_15.qxp 01/08/2007 10:02 PÆgina 451
Simulación de procesos
Ejercicios
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
453
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 454
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.
454
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 455
Apéndice - 1
455
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 456
y = y + v *T
x y
v = v + − 2 * s * v − * T
c2 c2
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
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
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
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
458
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 459
Apéndice - 1
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
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
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
461
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 462
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
462
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 463
Apéndice - 1
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
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
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
465
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 466
‘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
1.2
466
Simulaci n y control_APEN-01.qxp 01/08/2007 10:05 PÆgina 467
Apéndice - 1
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
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
1
2.5 V = R *i + * i * dt
C
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
W ( s ) 2 4
L−1 = + * e −[(1 / 2T ) / AT ]*t
s 1 + 2T 1 + 2T
469
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 470
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
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:
472
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 473
Apéndice - 1
4.7
y la curva es:
473
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 474
5.3
- Siendo G = 1,5/2 = 0,75 y g = 20 log G = - 2,5 dB resulta:
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
475
Simulaci n y control_APEN-01.qxp 01/08/2007 10:06 PÆgina 476
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
477
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 478
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:
Y los representamos:
478
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 479
Apéndice - 1
Y los representamos:
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
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.
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
481
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 482
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
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
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 + e1 / 2
Y así: G ( z ) = g (k ) * z − k = + e1 / 2 − 1
1 − e −1 / 2 * z −1
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
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
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
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
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
489
Simulaci n y control_APEN-01.qxp 01/08/2007 10:07 PÆgina 490
15.13 Se verifica:
X (1,1) KB X (1,1) KL
= =
X (7,1) 1 + TB * p L 1 + TL * p
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
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
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
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
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
497
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 498
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
499
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 500
500
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 501
Apéndice - 2
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
503
Simulación y control_APEN-02.qxp 01/08/2007 10:09 Página 504
- 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
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