DE UNA - Repositorio Digital - EPN: Página de inicio
Transcript of DE UNA - Repositorio Digital - EPN: Página de inicio
DE UNA
COLUMNA DE DEST I LACIE ON
PATRICIO RODRIGO PUGA CADENA
TESIS PREVIA A LA OBTENCIÓN DEL TITULO
DE INGENIERO ELÉCTRICO EN LA ESPECIALIZACION DE
ELECTRÓNICA Y CONTROL
DICIEMBRE DE 1991
CERTIFICO QUE EL PRESENTE TRABAJO
HA SIDO REALIZADO EN SU TOTALIDAD
POR EL SR. PATRICIO PUGA CADENA.
IG .^MARGBDI BARRAGA,N'
DIRECTOR DE TESIS
Mi sincero agradecimiento y gratitud
al Ing_ Marco Barragán por sus valiosos
conocimientos y tiempo dedicados a la
dirección de este trabajo.
Un reconocimiento especial a todas
agüellas personas que colaboraron en su
realización.
A MIS
M D
CAPITULO I
INTRODUCCIÓN
Página
1.1 IMPORTANCIA DEL TEF1A * • 1
1.2 ALCANCE Y OBJETIVOS DEL TRABAJO 3
1.3 ORGANIZACIÓN DE LA TESIS .4
CAPITULO II
GENERALIDADES
2.1 PRINCIPIOS FUNDAMENTALES 5
2.1.1 Vaporización y Condensación 5
2.1.2 Constante de Equilibrio K 6
2.1.3 Volatilidad • 7
2.1.4 Punto de Burbuja y Punto de Rocío 8
2.1.5 Equilibrio Líquido - Vapor 9
2.2 DESTILACIÓN 13
-—- - 2.2.1 Fraccionamiento o Rectificación 14
2.2.2 Columna de Destilación 14
CAPITULO III
MODELACIÓN DE LA COLUMNA DE DESTILACIÓN
3.1 GENERALIDADES 26
3.1.1 Ecuaciones de Balance 28
3.1.2 Ecuaciones Algébricas 31
3.1.3 Ecuaciones Opcionales 35
3.1.4 Solución de J as~ Ecuaciones del Modelo 36
3.1.5 Solución de los Procedimientos 37
3.1.5.1 Variables a ser especificadas 38
3.1.5.2 Descomposición de los Procedimientos 38
3.1.5.3 Solución del Procedimiento de Equilibrio 40
3.1.5.4 Solución del Procedimiento de la Hidráulica 42
3.2 MODELACIÓN DE LA PLANTA . 44
3.3 LIMEALIZACION DEL SISTEMA 62
3.4 DISCRETIZACIOH DEL MODELO LINEAL 70
CAPITULO IV
CONTROL DE LA COLUMNA
4.1 INTRODUCCIÓN 73
4.2 ESTILACIÓN DE ESTADO . , ...... ..... . 75
4.2.1 Filtro de Kalman 75
4.3 FORMULACIÓN DEL PROBLEMA DEL CONTROL 81
4.3.1 Caso Determinístico -. 82
4.3.2 Efecto de las Perturbaciones 88
4.4 COMPENSADOR , 89
4.5 VARIABLE DE CONTROL 92
CAPITULO V
SIMULACIÓN DEL PROCESO
5.1 INTRODUCCIÓN 94
5.2 ESTRUCTURA DEL PROGRAMA ?4
5.3 ALGORITMOS 95
5.4 SIMBOLOGIA DE LAS OPCIONES 98
5.5 MÉTODO DE INTEGRACIÓN NUMÉRICA 98
5.ó SOLUCIÓN DE LAS ECUACIONES DE EQUILIBRIO 99
5.7 GENERACIÓN DE LAS PERTURBACIONES 101
5.8 SELECCIÓN DEL PERIODO DE DISCRETIZACION 102
5.9 SUBRUTINAS 104
CAPITULO VI
EJEMPLO Y RESULTADOS
6.1 EJEMPLO , 112
6.2 RESULTADOS ' ....". 115
6.2.1 Sistema no-lineal sin perturbaciones 115
6.2.2 Sistema no-lineal con perturbaciones 116
6.2.3 Sistema lineal sin perturbaciones , 118
6.2.4 Sistema lineal con perturbaciones 119
6.2.5 Control de la Columna 120
CAPITULO VII
CONCLUSIONES Y RECOMENDACIONES
150
APÉNDICE A:
riAMUAL DE USO . DEL PROGRAMA 196
APÉNDICE B:
LISTADO DEL PROGRAMA , 207
BIBLIOGRAFÍA 273
1
X TUX.O X
ON
1.1 IMPORTANCIA JDSL TEMA-
La separación de mezclas liquidas por medio de la
destilación es la operación unitaria más utilizada en
ingeniería química. Más del 30% de los procesos en la
industria petro-química lo utilizan, sobre todo en la
refinación del petróleo.
Esta operación tiene un interés especial, tanto por su
importancia real en la industria como por las peculiaridades
inherentes a ser un proceso multi-etapa, que cubre un amplio
espacio teórico dentro del ámbito de los procesos de
transferencia de materia y.energía.
La simulación de estados transitorios de procesos
químicos complejos permite al ingeniero predecir el desempeño
de la planta cuando las condiciones se hayan hecho totalmente
estacionarias. La mayoría de las plantas grandes se diseñan
para el funcionami'ento de estado estacionario y la simulación
de estas operaciones puede facilitar los estudios de la
sensibilidad de la planta a cambios de las variables y
parámetros; estos últimos se pueden ajustar mediante técnicas
2
de optimización, para determinar las mejores condiciones de
funcionamiento.
La simulación transitoria o dinámica en cambio permite
estudiar un conjunto distinto de condiciones. Por lo general,
los problemas importantes se presentan en los períodos de
puesta en marcha y parada de las plantas, o durante el paso de
una alimentación a otra. Los procedimientos propuestos para la
planta, en estos campos, se pueden simular y mejorar. Es
posible estudiar estrategias de control y simular la respuesta
de la planta a las perturbaciones. Estas últimas pueden ser
accidentales, como las que se presentarían al fallar
repentinamente un componente; es importante determinar si el
sistema de control de la planta puede afrontar o no el
problema. Los transtornos pueden ser también intencionales
como, por ejemplo, cuando se le impone a una unidad una
condición diferente de alimentación. Los modelos de simulación
transitoria pueden resultar particularmente valiosos para
adiestrar a operarios de la planta, esperando que comiencen a
funcionar nuevas instalaciones.
En el caso de una columna de destilación, la simulación
estática permite realizar balances de calor y masa para un
instante particular de tiempo; esto implica que las
condiciones de operación de todas las unidades así como los
flujos de alimentación se conozcan, que sus valores están
fijos y que los retardos de tiempo entre las unidades se
desprecien ya que no se consideran cambios dinámicos en el
sistema. Los modelos matemáticos son, en estos casos,
3
algébricos y muy fáciles de formular.
El propósito de la simulación dinámica es diferente. La
simulación comienza en un instante dado y permite calcular los
flujos de masa y energía mientras éstos cambian con el tiempo.
Los cálculos se hacen a intervalos discretos muy pequeños de
tiempo y durante un lapso dado.
1.2 ALCANCE Y OBJETIVOS DEL TRABAJO.
El propósito de esta tesis es el de constituir un
material de ayuda para la implementación de la simulación
digital dinámica.
Las áreas que cubre este trabajo son básicamente:
Modelación, Simulación, Control Moderno, Control No-lineal,
Sistemas Estocásticos, Control Discreto y Control de Procesos.
Se desarrollará un modelo generalizado para la simulación
dinámica de una columna de destilación que permita predecir
satisfactoriamente su funcionamiento real. Luego se
linealizará el modelo alrededor del punto de operación de la
columna, se discretizará el modelo lineal, se simulará el
funcionamiento del sistema para los casos lineal y no lineal;
con y sin perturbaciones. Finalmente, se implementará un
control de tipo estocástico lineal.
1,3 ORGANIZACIÓN DE LA TESIS.
La tesis está divida en siete capítulos y dos apéndices.
En el capítulo II se exponen conceptos básicos
relacionados con el proceso físico gue se va a simular. En el
capítulo III se hace el desarrollo matemático del modelo del
sistema, su linealización y discretización. En el capítulo IV
se trata del control de la planta. En el capítulo V se detalla
la estructura y funcionamiento del programa implementado para
la simulación. En el capítulo VI se presenta un ejemplo de
simulación de una columna de destilación con los resultados
entregados por el programa en sus diferentes opciones. En el
capítulo VII se exponen las conclusiones y sugerencias
derivadas del trabajo. Finalmente se detalla en apéndices el
manual de uso del programa y su listado.
XX
2.1 PRINCIPIOS FUNDAMENTALES.
A continuación se exponen algunos conceptos básicos
utilizados a lo largo de la tesis.
2.1.1 VAPORIZACIÓN Y CONDENSACIÓN.
La destilación fraccionada envuelve diversas operaciones
básicas que se suceden simultáneamente, de las cuales las más
importantes son la vaporización y la condensación.
Por vaporización se entiende el paso de la fase lívida a
la de vapor; y, por condensación, el proceso inverso. A una
presión dada, la vaporización de un elemento puro se produce a
una temperatura constante, sin que se modifique la composición
de sus vapores; en una mezcla, por el contrario, ocurre con un
aumento de temperatura y modificándose la composición de los
vapores.
2-. 1.2 CONSTANTE DE EQUILIBRIO K.
Cuando se aplica calor a un compuesto puro en estado
líquido y a una presión constante, con la elevación de la
temperatura el líquido tiende a pasar a la fase de vapor, cuya
composición es idéntica a la fase líquida. En el caso de
mezclas, en cambio, la fase de vapor se presenta con mayor
concentración de componentes más volátiles que la fase
líquida, la cual a su vez es más rica en elementos menos
volátiles que el vapor. Cuando la proporción de las moléculas
que pasan a la fase de vapor es igual a la de las moléculas
que pasan a la fase líquida, se considera que el sistema está
en equilibrio de fases.
De este modo, la constante o rasón ideal de equilibrio de
un sistema vapor-líquido se puede definir [Itef. 23 como la
relación entre la fracción de un componente en la fase líquida
y la del vapor, es decir:
*i=- (2-1)x¡
donde:
Kx = Razón de equilibrio para el elemento i de la mezcla.
y± = Fracción molar en la fase de vapor del elemento i de
la mezcla.
xi ~ Fracción molar en la fase líquida del elemento i de
la mezcla.
2.1.3 VOLATILIDAD.
En general, el término volatilidad se emplea' para
comparar la presión de vapor de dos o más sustancias puras, de
modo que la sustancia de mayor presión de vapor, a una
determinada temperatura, es la más volátil. Tratándose de
mezclas, la presión de vapor apenas define la mayor o menor
facilidad de separación de los componentes, teniendo en cuenta
que la presión de vapor de cada uno de los elementos de la
mezcla es influenciado por la presencia de los demás. De este
modo, se define la volatilidad de un elemento en una mezcla
[R&f. 4J como la razón entre su presión parcial de vapor y su
fracción molar en la fase liquida, cuando el vapor y el
líquido están en equilibrio:
a, = — (2.2)*i
donde:
o,-». - Volatilidad del elemento i de la mezcla.
Pi = Presión de vapor del componente i,
xi = Fracción molar del elemento i en la fase liquida.
Como la volatilidad de un elemento no permanece
constante, pues depende de la naturaleza y cantidad de los
demás componentes de la mezcla, se utiliza la definición de
"volatilidad relativa" £Jtef. 4J, que relaciona las
volatilidades de dos componentes o sus z^azones de equilibrio:
Ki" (2"3)
donde:
aci— 3) - Volatilidad relativa del elemento i al elemento j de
la mezcla.
CUL = Volatilidad del elemento i de la mezcla.
03 = Volatilidad del elemento 3 de la mezcla.
Ki - Razón de equilibrio para el elemento i de la mezcla.
Kj - Razón de equilibrio para el elemento ó de la mezcla.
2.1.4 PUNTO DE BURBUJA Y PUNTO DE ROCIÓ.
Los puntos en los cuales la vaporización y la
condensación de una sustancia se inician, se denominan punto
de burbuja y punto de roció, respectivamente. [Ref. 1]
El punto de burbuja de una mezcla se define como la
condición en la cual la fase liquida está en equilibrio con
una cantidad despreciable de su vapor, de modo que cualquier
aumento de temperatura o disminución de presión, por pequeño
que sea, producirá la vaporización. Similarmente, el punto de
rocío se define como la condición en la cual el vapor está en
equilibrio con una cantidad infinitesimal de líquido, de
suerte que cualquier disminución de temperatura o aumento de
presión, por pequeña que sea, producirá la condensación. Entre
estos dos puntos, la mezcla estará entre O y 100% vaporizada.
2.1.5 EQUILIBRIO LIQUIDO - VAPOR.
Generalmente se encuentran graficados datos
experimentales de equilibrio llquido-vapor, siendo los de
mayor importancia aquellos que relacionan temperatura-
composición; y composición vapor-líquido. [Ref. 3J
La complejidad de estos diagramas de equilibrio está
determinada por el número de variables presentes en el
sistema, tales como: composición, temperatura, presión, etc.
- Diagrama Temperatujra-Composición.
Este esquema se lo obtiene a presión constante y permite
conocer las composiciones tanto en la fase liquida como en la
de vapor de uno de los elementos que conforman la mezcla,
cuando ésta se encuentra a una determinada temperatura.
Para una mezcla binaria, a una presión constante dada, se
puede establecer el diagrama temperatura — composición
mostrado en la figura 2_1.
Con referencia a esta figura, temperaturas de la mezcla
inferiores a Te indican que el sistema está únicamente en
estado liquido. A temperaturas superiores a TA el sistema está
totalmente vaporizado. Así, el punto O representa una mezcla
totalmente vaporizada, el punto P representa la coexistencia
10
de las dos fases (líquido y vapor) y el punto Q representa la
existencia únicamente de líquido.
Los puntos de la curva ABC dan la composición de la fase
líquida (x) en la mezcla; los puntos de la curva ADC dan la
composición del vapor (y). La curva ABC se llama "curva de
puntos de "burbuja", mientras que la ADC se llama "curva de
puntos de roclo". La diferencia entre las curvas ABC y ADC es
la que permite la separación de una mezcla.
El punto C da la temperatura de ebullición del elemento
más volátil de la mezcla, mientras que el punto A, la del
menos volátil.
Temperatura
O
Composición
FIGURA 2.1
Diagrama Temperatura-Composición.
11
- Diagrama de Equilibrio y-x.
Este gráfico representa la composición del vapor (y) vs.
la composición del liquido (x) del elemento más volátil de la
mezcla, a presión constante, tal como lo muestra la figura 2.2
[Ref. 3] •
_ X
FIGURA 2.2
Diagrama de Equilibrio
Si las composiciones y, x para el componente más volátil
son iguales, se tiene la diagonal a 45°. La curva A representa
el típico diagrama para un sistema en donde un mismo elemento
es el más volátil en todo el rango de concentraciones. La
curva B es el caso de algunos sistemas (etanol-agua por
ejemplo), donde el elemento que es más volátil a valores bajos
de x, es menos volátil que el otro elemento a valores altos de
x. El punto donde la curva B cruza la diagonal de 45° da las
ya =
y puesto que:
componentes 1 y 2 respectivamente.
Fracciones molares gaseosas en la mezcla de los
componentes 1 y 2 respectivamente.
v_ = 1 - V. (2-5)
y
(2.6)
13
se tiene que:
y (2.7)
1 + («(1-2) - !)•*!
Ecuación con la cual puede calcularse la curva de
equilibrio.
2.2 DESTILACIÓN.
La destilación es "un importante proceso de la industria
química, muy utilizada en operaciones de separación y
purificación de diversas mezclas. [Ref. 6]
Este mecanismo consiste en la separación de los elementos
o componentes de una mezcla, por vaporización parcial de la
misma, en base a la diferencia que existe entre las
composiciones de liquido y vapor para un mismo elemento.
El liquido se vaporiza mediante calor, parcial o
totalmente en un calderin, para luego condensarse parcial o
totalmente en un condensador. Las fracciones obtenidas
generalmente se someten a sucesivas vaporizaciones y
condensaciones hasta obtener un producto que tenga la
composición deseada.
La composición del vapor en una mezcla depende de la
composición del líquido, así como también de las condiciones
de temperatura y presión a las que se efectúa la vaporización.
14
La destilación es un método de separación aplicable
únicamente a los casos donde todos los componentes estén
presentes en las dos fases.
2,2.1 FRACCIONAMIENTO O RECTIFICACIÓN.
Un simple proceso - de destilación comprende la
vaporización y la condensación, esto es, los vapores generados
por la ebullición de un liquido son enviados directamente a un
condensador en el cual son completamente condensados. [Ref. 3J
La rectificación es el proceso de destilación más
empleado, cuyo principio es el de poner a circular vapor en
contracorriente con el liquido, estableciéndose un intimo
contacto entre ellos. Este proceso envuelve varias operaciones
sucesivas de vaporización y condensación, cuyo mecanismo se
explicará a -continuación.
2.2.2 COLUMNA DE DESTILACIÓN.
Considérense los calderines Ri, R2 y Ra mostrados en la
figura 2.3, a los cuales se les puede entregar calor por
cualquier medio; y los condensadores d, Cz> y Ca. Si se
alimenta en forma continua al calderin Rx una mezcla liquida
(a una razón F) , al ser calentada, los componentes más
volátiles se desprenden en forma de vapor a una razón Vi, en
15
la cual la concentración de elementos de puntos de ebullición'
más bajos (es decir, los más volátiles), será mayor que en el
liquido de alimentación F. Estos vapores que provienen de Rx
(a una razón Vx) son condensados en Ci e introducidos en el
calderin Rs, cuya temperatura Ta es inferior a la temperatura
Tu. existente en Rx. En el calderin RE, al ser calentados, los
elementos de puntos de ebullición más bajos nuevamente 'se
vaporizan, generando vapores a la razón Vs>, que tienen mayor
concentración de elementos más volátiles que los generados en
Vx, al mismo tiempo que la parte que no se vaporizó a la
temperatura TE, retorna a Rx en forma liquida y a una razón LE
que es más concentrada en elementos de puntos de ebullición
más altos o menos volátiles. Continuando, los vapores que
fluyen a la razón VE, provenientes del calderin RE, son
condensados en Cs e ingresan al tercer calderin Ra, cuya
temperatura Ta es inferior a Ts, donde se repite la misma
operación realizada en el calderin RE. Los elementos más
volátiles suben en forma de vapor a una razón Va, son
condensados en Cs y retirados. continuamente en condiciones más
o menos concentradas, al mismo tiempo que, por la base de Rx,
se genera un liquido, residuo de la destilación, a la razón
Lx, rico en elementos de menor volatilidad, es decir de puntos
de ebullición más altos, contenidos en el líquido de
alimentación.
En la práctica, el proceso de separación por destilación
fraccionada se lo realiza en torres o columnas de
fraccionamiento, cuyo funcionamiento se basa en el mecanismo
descrito anteriormente. En estas torres, los calderines son
16
sustituidos por bandejas o platos, incorporadas unas sobre
otras, formando un único conjunto. Un sistema asi constituido
proporciona mejor aprovechamiento térmico ya que elimina la
disipación de calor debido a los condensadores.
PRODUCTO DEL
TOPE O DESTILADO
F ALIMENTACIÓN
PRODUCTODE LA BASE
FIGURA 2.3
Destilación Fraccionada^
En la figura 2-4 se muestra un esquema de una torre de
fraccionamiento. Llamando: a las bandejas como ri-1, n y n-t-1; a
los flujos líquidos que abandonan cada bandeja como Lcn-i>, Ln
17
y L c XV-KL ) ; a los flujos de vapor que abandonan cada bandeja
como Vcn-i), Vn y Venero; a las composiciones líquidas en
cada bandeja como xcn-D, Xn y x.( »-*-:!_:>; a las composiciones de
vapor en cada bandeja como yc*i— 1>3 yn y yczi-*-i); el mecanismo
de funcionamiento se explica a continuación.
PLATO n
Ln-l , xn-l
I , /n+1
V n ,y n
A
Vn-1,yn-l
PLATO n
PLATO n -1
FIGURA 2.4
Torre de destilación con bandejas de flujo cruzado.
Consideremos la bandeja n, la cual recibe un líquido de
composición X(ñ-*-i) de la bandeja rH-1 y un vapor de composición
18
ycn-x) de la bandeja n—1, al mismo tiempo que entrega un vapor
de composición yn a la bandeja n+1 y un liquido de composición
Xn a la bandeja n-1. El líquido de composición xcn-t-i;> recibido
por la bandeja n es más rico en componentes volátiles que el
de composición Xrx encontrado en esta bandeja; y a su vez, el
vapor de composición ycn-i) que entra a la bandeja n, es menos
rico en componentes volátiles que el vapor de composición yn
que de ella sale.
Tomando en cuenta el líquido de composición Xn y el vapor
de composición yn, pertenencientes a la bandeja n, y que están
en equilibrio, cuando el líquido ' de composición xcn o.) y el
vapor de composicicón ycn-no entran en contacto en la bandeja
n, una parte de los componentes más volátiles del líquido
^ . n - • „ 4. • „ _ ,xcn-t-ij se va^onsa, al mismo L/iem^o que una par u e de sus
componentes menos volátiles, que constituyen el vapor de
composición ycn-zo, se condensan para restablecer las
composiciones Xn y y«., y en consecuencia, el equilibrio del
sistema- Este mismo fenómeno se repite en cada una de las
bandejas constitutivas de la torre, estableciéndose un
mecanismo por el cual, los componentes más volátiles son
transferidos desde el flujo líquido que desciende hacia el
vapor que asciende, e, inversamente, los componentes menos
volátiles del flujo de vapor son transferidos al flujo
líquido, generándose en cada bandeja, un verdadero intercambio
de calor, ya que el calor necesario para lograr la
vaporización de los elementos más volátiles es entregado por
la condensación de los componentes menos volátiles contenidos
en el vapor. Naturalmente, para que tenga lugar este proceso,
19
es necesario que haya un gradiente de temperatura a lo largo
de la torre, de modo que la temperatura existente en las
bandejas crezca desde el tope hacia la base. Este gradiente de
temperatura es generado y mantenido por el "reflujo", es
decir, haciendo retornar al último plato de la columna una
parte del producto destilado generado por la misma torre,
luego de haber sido condensado, y cuya temperatura es
generalmente inferior a la del líquido contenido en la última
bandeja.
La energía necesaria para producir el fraccionamiento es
introducida al sistema, en forma de calor., por la carga de
alimentación y frecuentemente también por un calderín, y
removida tanto por los productos acabados como por el reflujo,
Además de la columna, un sistema de fraccionamiento se
conforma de otros equipos necesarios para su funcionamiento.
La figura 2.5 muestra, esquemáticamente, un sistema
típico de fraccionamiento, constituido por la columna de
destilación T, el condensador C, el tanque de reflujo TD, el
calderín CD y la.bomba de reflujo BR.
La carga de alimentación (F) de la torre de destilación
es introducida en cualquier punto entre el tope y la base de
la torre, y este punto marca una división en la columna: la
región superior al punto de introducción de la carga de
alimentación se llama "zona de rectificación", y la inferior,
"zona de agotamiento o estrangulación".
ZONA DE RECTIFICACIÓN <
F
AUMENTACIÓN
COLUMNA DEDESTILACIÓN
T
TANQUE DEREFLUJO
TD
PRODUCTO
DEL TOPE
PRODUCTO, DE LA BASE
FIGURA 2.5
Elementos constitutivos de una torre de destilación.
22
inferiores, se denominan "reflujo interno".
Una parte del producto condensado en C y almacenado en el
tanc^ue de reflujo Tu es bombeado para ser introducido
nuevamente en la columna constituyendo lo que se llama
"reflujo" (R). El resto sale como producto de la destilación y
se lo llama "producto del tope" (D).
Asimismo, el flujo liquido que abandona el primer plato
de la columna es parcialmente vaporizado en el calderín, y la
fase gaseosa (VB) es realimentada a la columna . La fase
liquida que queda en el caldrin sale como producto de la
destilación y se lo llama "producto de la base" (B). Este
producto tiene una composición molar liquida XB (vector que
representa las fracciones molares liquidas de los elementos de
la mezcla en el producto de la base).
Tanto el reflujo (R) como el producto del tope (D) tienen
la misma composición molar liquida xr>, (vector que representa
las fracciones molares liquidas de cada uno de los elementos
de la mezcla en el producto del tope).
*
La finalidad de realimentar el reflujo a la torre es la
de evitar que los elementos que se desean obtener como
producto de la base pasen al producto del tope. De este modo,
el reflujo desciende a través de las bandejas de la torre y va
condensando a los constituyentes pesados. El reflujo que no ha
sido vaporizado, juntamente con los elementos que se
condensan, pasan de la zona de rectificación a la de
24
•fluctuaciones de temperatura, etc., la torre usualmente está
equipada con un número real de bandeo as superior al obtenido
por el cálculo. [Ref. 8]
Para un número dado de bandejas, cuanto mayor es el
reflujo, más eficiente será la separación o fraccionamiento
pero mayor la cantidad de calor requerido. [R&£. 7]
Las bandejas de una columna de destilación se diseñan de
diversas maneras, encontrándose: bandej as perforadas, bandej as
con casquetes de borboteo., etc. [Ref, 1]
BANDEJAo PLATO
VERTEDERO
ó WEIR
RANURAS
o O O O l O D O Ü O l f o 00 O Q \0 O 0t \ Q O O
FIGURA 2.6
Esquema del plato de'una torre de destilación con casquetes de borboteo.
25
Los platos, en sus diferentes diseños, suministran el
contacto entre liquido y vapor, y les obliga a seguir caminos
determinados a través de la columna. Un esquema de una bandeja
típica se muestra en la figura 2.6.
Este es resumen del aspecto físico relativo al
funcionamiento de la columna de destilación. En el siguiente
capítulo se formularán las relaciones matemáticas que
permitirán la modelación de la columna.
26
X X X
DE LuA, OOLOMNL¿Y DE
3.1 GENERALIDADES.
El funcionamiento real de una columna de destilación rara
vez puede ser predecido satisfactoriamente si se excluyen
simultáneamente los efectos de transferencia de masa y calor
en cada bandeja. La hidráulica de los platos también es _ un
factor importante para predecir el funcionamiento dinámico.
Debido a sus efectos en los cálculos de transferencia de masa
y energía, las propiedades físicas de los compuestos también
son importantes.
El modelo a desarrollarse consta de un conjunto de
ecuaciones diferenciales ordinarias; obtenidas del balance de
masa'y energía en cada plato de la columna de destilación; y
de un conjunto de relaciones algébricas (llamadas
procedimientos), que permiten representar las propiedades
físicas de los compuestos, la hidráulica de los platos y la
transferencia de masa y calor.
Las variables que aparecen en el lado derecho de las
ecuaciones diferenciales ordinarias se las llama variables
27
.diferenciales mientras que el resto de variables, excepto el
tiempo, se las llama variables algébricas o variables de
procedimiento. El tiempo es la variable independiente.
A continuación se presenta una metodología general para
modelar una "torre de destilación para una mezcla
multicomponente; en donde se harán las siguientes
suposiciones:
1. La retención molar de vapor en cada plato es
despreciable comparada con la retención molar de líquido.
2. El líquido y el vapor que abandonan un plato están en
equilibrio térmico (.es decir a la misma temperatura),
pero no en equilibrio de.fases.
3. La definición de la "Eficiencia de thrrphree" para una
bandeja se aplica para cada plato.
4. El líquido y el vapor están perfectamente mezclados en
cada bandeja.
^
La suposición (1) es muy razonable" puesto que en la
mayoría de sistemas, la densidad del vapor es
considerablemente menor que la densidad del líquido. La
suposición de la eficiencia de los platos con Murphree y la
mezcla perfecta de líquido y vapor son necesarias para reducir
la complejidad del problema. Los modelos sin considerar
mezclas perfectas en los platos son muy complejos e involucran
28
derivadas parciales.
3.1.1 ECUACIONES DE BALANCE.
Un plato típico (plato n), de una columna de destilación,
con alimentación líquida y de vapor y con salida de producto,
se muestra en la figura 3.1 [Ref. 11]
FIGURA 3.1
Plato típico de una columna de destilación.
29
Se -utiliza la siguiente simbologia: [Raf.
FLOJO(moles/hora)
COMPOSICIÓN(fracción molar)
TEMPERATURA
Alimentación líquidaal plato n.
Alimentación de va-por al plato n.
Flujo liquido queabandona el platon+1,
L C n-t-l) X <; n-t-l T C n-»-l
Flujo de vapor queabandona el platon.
Flujo de vapor queabandona el platon-1.
Producto liquidoque sale del platon.
Fluj o líquido queabandona el plato n.
donde:
30
n = Número del plato.
J - Elemento de la mezcla.
Balance total de masa en el plato n_
Se tiene una ecuación por cada plato
donde:
Mn = Masa contenida en el plato n.
- Balance de masa de cada componente en el plato n.
Se tienen (D— 1) ecuaciones por cada plato, donde o
representa a un elemento de la mezcla. Si se tienen Nj
elementos que conforman la mezcla, entonces j = 1, 2, , . , Nj .
(3.2)
donde el producto Mn.xcn,j) representa la masa del elemento
contenida en el plato n.
- Balance de energía en el plato n _
Se tiene una ecuación por cada plato.
31
ig = VD-V» + F-- * + -!)•-«
donde :
Un - Energía interna almacenada en el plato n.
hn - Entalpia del líquido que abandona el plato n.
Hn - Entalpia del vapor que abandona el plato n.
= Entalpia de la alimentación liquida que entra
al plato n.
= Entalpia de la alimentación de vapor que entra
al plato n.
3.1.2 ECUACIONES ALGÉBRICAS.
El conjunto de ecuaciones algébricas comprende tres
partes: la primera contiene definición de variables, la
segunda establece correlaciones para predecir las propiedades
físicas y la tercera describe relaciones para la hidráulica de
los platos. [Re£. 19]
— Ecuaciones de definición,
- La masa total retenida en un plato n (Mn) y la energía
total almacenada en esa masa (Un) por definición son:
32
"„=£ MÍ (3.4)/-I
donde Mi representa la masa del elemento i de la mezcla de N
componentes, en el plato .n; y
U. = h.M, (3.5)n n n
- La sumatoria de las fracciones molares de los Nj
componentes de la mezcla en cada bandeja, tanto líquidas como
de vapor, dan la unidad:
£*,=í-l i-l
de modo que:
0.7)M*
y
"'-TI.
- La eficiencia de Murphree se define como:
(3_9)
33
en donde:
E(n,j> - Eficiencia de Murphree para el componente a en
el plato n,
ycn.j) - Fracción molar de vapor del componente j que
abandona el plato n.
y^Cn.j) - Fracción molar de vapor del componente o que
está en equilibrio de...-.fase con el liquido
contenido en el plato n.
ye»—i,j> ~ Fracción molar de vapor del componente J que
entra al plato n (que es el que abandona el
plato n-1)
$— Relaciones de propiedades f ¿sicas _
- La relación de equilibrio térmico entre la fase de
vapor y la fase líquida del compuesto i en el plato n se
representa por:
»S; en dónde la razón de equilibrio (Kcn,i>) es una función de las
fracciones molares (xn, y«) , de la temperatura (Tn) y de la
presión (Pn):
* fe*
34
- Las entalpias de las fases líquida (hn) y de vapor
en el plato n, se definen como una función de la temperatura,
presión y composición en dicho plato:
(3.13)
- La masa molecular de cada fase se determina por:
£i-l
í-l
donde :
McL.n) = Masa molecular de la fase líquida de la mésela
en el plato n.
Mcv.ro = Masa molecular de la fase de vapor de la mésela
en el plato n.
,MCL,Í) = Masa molecular de la fase líquida del compuesto
i de la mésela en el plato n.
= Masa molecular de la fase de vapor del
compuesto i de la mezcla en el plato n.
— Relaciones hidráulicas.
35
- La presión en el plato n (Pn) viene determinada por:
p - p - —L. - (3.16)" * NT
donde :
pB = Presión en la base de la columna.
Ps - Presión en el tope de la columna,
NT = Número de platos que tiene la columna.
- El flujo liquido que abandona el plato n (Ln.) es una
función de la geometría de la columna y del líquido retenido
en ella:
L = fíM , geometría del plato) (3.17)
3.1-3 ECUACIONES OPCIONALES.
— Tanque de reflujo y calderln.
La acumulación de líquido en el tanque de reflujo y en el
calderín se toma en cuenta a través del balance de masa de
cada componente. Para el tanque de reflujo se tiene:
36
donde :
.) - Masa del elemento i de la mezcla contenida en el
tanque de reflujo.
> " Composición liquida del elemento i de la mezcla en
el tanque de reflujo.
R = Reflujo.
D = Producto del tope.
= Flujo de vapor que abandona el plato del tope (NT)
de la columna.
y para el calderín:
(3.19)
donde:
i.dO = Masa del elemento i de la mezcla contenida en la
base de la columna.
x) - Composición liquida del elemento i de la mezcla en
la base de la columna.
B = Producto de'la base.
La ~ Flujo liquido que abandona el plato 1.
„ VB = Flujo de vapor que abandona el calderin.
3.1.4 SOLUCIÓN DE LAS ECUACIONES DEL MODELO.
El número de ecuaciones (ODEs y procedimientos) depende
del tipo de problema que se vaya a resolver y del modelo que'
se utilice, Un modelo generalizado será el más detallado y
consecuentemente cubrirá casi todas las ecuaciones descritas
37
previamente. Formas simplificadas del modelo general se pueden
obtener asumiendo una razón constante de cambio de energía
contenida en cada plato o una retención molar constante en la
columna.
Para cada problema y su modelo correspondiente, el número
de ODEs requeridas para ser resueltas será definido.
Arrancando de un estado inicial, y asumiendo que las variables
diferenciales son conocidas, la solución de las ecuaciones
diferenciales ordinarias y de los procedimientos que
representan el modelo involucra la siguiente secuencia:
(a) Determinación de las variables algebraicas y
diferenciales.
(b) Determinación de los valores de las variables
diferenciales- al tiempo tj - tc^—15 -4- £tj y
repitiendo desde (a) para o = 1» 2, ...
De este modo, en cada tiempo tj, un conjunto de ODEs y
procedimientos son resueltos 'simultáneamente.
3.1.5 SOLUCIÓN DE LOS PROCEDIMIENTOS.
Los procedimientos incluyen a las relaciones algebraicas
requeridas para.determinar todas las variables algebraicas de
las ODEs. Esto es, propiedades físicas de los compuestos,
hidráulica de los platos y ecuaciones opcionales. El conjunto
de procedimientos que representan el modelo se descomponen en
38
subconjuntos para facilitar la solución numérica y reducir los
requerimientos de computación.
3.1.5.1 VARIABLES A SER ESPECIFICADAS.
Tres tipos de variables deben ser especificadas: las
condiciones iniciales de las variables diferenciales; las
condiciones físicas (de diseño), tales como: geometría de los
platos, configuración de la columna, etc.; y las variables
algebraicas de entrada/salida, tales como: flujo de
alimentación, su composición y estado. Todas las otras
variables algebraicas .son consideradas como variables
manipuladas, cuyo valor en estado estable debe ser
especificado.
3.1.5.2 DESCOMPOSICIÓN DE LOS PROCEDIMIENTOS.
El punto de partida de todos los cálculos es el valor de
las variables diferenciales al tiempo tj. El primer conjunto
de procedimientos debe ser por lo tanto aquel que relaciona
estas variables- Utilizando las ecuaciones de definición, se
puede determinar .en cada plato la retención molar total
líquida, la composi-ción y la entalpia de la fase líquida.
Cuando los cambios dinámicos de energía interna en las
bandejas son despreciables comparados con los efectos del
calor latente, la ecuación (3_3) se transforma en una ecuación
algebraica. En este caso, la. entalpia de la fase líquida sera
40
propiedades físicas han sido determinadas para todos los
platos, se puede emplear el subconjunto de procedimientos para
hallar la hidráulica de los platos. En este caso, se
determinan los flujos líquidos y de vapor que abandonan cada
bandeja.
3.1.5,3 SOLUCIÓN DEL PROCEDIMIENTO DE EQUILIBRIO,
Dos tipos de problemas se deben resolver, según el modelo
que se utilice. Para el primer modelo se tiene:
Dado La composición de la fase líquida y su entalpia.
Determinar La composición de equilibrio de la fase de vapor,
temperatura y presión.
Para el segundo modelo, el problema a resolverse es:
Dado La composición de la fase líquida y la presión.
Determinar La composición de equilibrio de la fase de vapor y
la temperatura.
x
La técnica de solución paso a paso de este procedimiento,
aplicable a ambos casos es:
Paso J. Se asume una temperatura inicial (y una presión
para el caso del primer modelo).
Pa.00 2 En el caso del primer modelo, se determina la
41
entalpia de la fase líquida, dados la presión,
%" temperatura y composiciones líquidas en cada
plato y se sigue al paso 3. Si se trata del
segundo modelo, se va al paso 5.
Paso 3 Si abs[hcaiculada - hx-eai] < ERROR 1, entonces
se va al paso 5, de otro modo, sigue al paso 4.
£"•' fh. representa la entalpia de la fase líquida) .
Paso 4 Se da otro valor a la temperatura y se repite
desde el paso 2,
Paso 5 Dados temperatura, presión y composición
líquida en cada bandeja, se calculan las/ ^ \
constantes de equilibr*io K c n , ± ) y de allí se
calculan las composiciones en equilibrio de la
fase de vapor ycn..*.) mediante ' la relación
yCn-a.) - K-Cn, ±-) -XCn , i ) -
Paso 6 Si absCSycrx,^) - 1] £ ERROR2 entonces se va al
"paso 7, de otro modo, termina el procedimiento.%
Paso 7 En el caso del primer modelo, se estima otro
valor de presión y se repite desde el paso 2.
Para el caso del segundo modelo, se estima otro
valor de temperatura y se repite desde el paso
5.
0'O el método de Newton-Raphson o el de la Secante se
- 42
pueden utilizar para hallar la temperatura y la presión ya que
se requieren procesos iterativos.
3,1.5.4 SOLUCIÓN DEL PROCEDIMIENTO DE LA HIDRÁULICA.
Las -relaciones empleadas para determinar las variables
hidráulicas son principalmente empiricas. Si la presión en
cada plato permanece constante respecto del tiempo; los f luj os
de vapor son determinados a partir de la transformación de la
ecuación (3.3) en algebraica.
Para el caso del primer modelo, el problema a plantarse
es:
Dado La retención molar total y la caída de presión en
las bandejas.
Determinar Los flujos líquidos y de vapor que abandonan las
bandejas.
Para el caso del segundo modelo, el problema planteado
es: '
Dado La retención molar total en las bandejas.
Determinar Los flujos líquidos y. de vapor que abandonan las
bandejas.
Los flujos líquidos a lo largo de toda la columna no son
los mismos, dinámicamente. Ellos dependen sobre todo de la
44
3.2 MODELACIÓN DE LA PLANTA.
Con el esquema general dado anteriormente, se
desarrollará el modelo de la columna de destilación, el cual
presenta las siguientes peculiaridades:
- La mezcla a destilarse está conformada por dos
elementos (mezcla binaria).
- Existe un plato definido en el que se introduce una
mezcla de alimentación liquida y gaseosa.
- El líquido en las bandejas está perfectamente mezclado.
- El vapor retenido en las bandejas es despreciable
frente al líquido contenido en las mismas.
- El vapor y el líquido contenidos en un plato, están en
equilibrio térmico (a la misma temperatura), pero no en
equilibrio de fases. La eficiencia de Murphree se utiliza
• para hallar la composición actual del vapor.
- La presión de operación de la columna es constante en
cada plato y varía linealmente a lo largo de la cdlumna.
- Las dinámicas del líquido de enfriamiento y del vapor
•son despreciables en el calderín y en el condensador.
45
La- hidráulica de los platos se calcula mediante la
fórmula de vertedero de Francis.
- Los cambios dinámicos de energía interna en las
bandejas son despreciables si se comparan con los efectos
del calor latente, de modo que la ecuación de energía en
cada bandeja es sólo algébrica.
- Las retenciones molares en el calderín y en el tanque
de reflujo se mantienen constantes mediante el cambio en '
los productos de la base y del tope, respectivamente.
El reflujo y el calor entregado al calderín se
mantienen constantes.
En la figura 3_3 se muestra un esquema de. la columna de
destilación binaria con las variables que intervienen en el
proceso.
La nomenclatura utilizada en el desarrollo del modelo 'es
la siguiente:/•
FL = Flujo líquido de alimentación [moles/hora].
Fv " Flujo de vapor de alimentación [moles/hora].
Lm = Flujo líquido que abandona el plato n
[moles/hora].
LVn = Caudal líquido que abandona el plato n
[pies3/hora]
46
C
\o NT-1
tt(
Plato NS
^NT,yHT '
f vNT ^\ i r\ RJ | MNT
LKI!VNT-1
MNT-I ' i í1LNT-1
iti
VNS-H
, * | MNS-MNS-Hl |FY,yF
vf V^ ,> MNS t i
1 uN5VNS-1
I , MHS-I
• ¿ i - "' VNS-2-N5-1 i
V.
Plato MT
Plato NSil
Plato NS-1
J< '
M D - X D
i '
^ , . ... _«. — ,., .
R,^D D . X D
Plato 2
3.3
Columna de destilación binaria.
47
Vw - Flujo de vapor que abandona el plato n
[moles/hora].
VB - Flujo de vapor que entrega el calderln
[moles/hora].
R = Reflujo [moles/hora].
B = Producto de la base [moles/hora].
D = Producto del tope [moles/hora].
QB = Calor entregado al calderln [BTU].
TB - Temperatura de equilibrio en el calderln [°F] ,
TD = Temperatura de equilibrio en el tanque de
reflujo [°F],
Tn ~ Temperatura de equilibrio en el plato n [°F].
= Temperatura del liquido de alimentación [°F] .
~ Temperatura del vapor de alimentación C°F] ,
PB = Presión en el calderín [psi].
Ps = Presión en el tope de la columna [psi].
Pr> - Presión en el tanque de reflujo [psi] .
Pn - Presión en el plato n [psi].
POcn.i) - Presión de vapor del elemento i en el plato n
[psi].
Mn = Masa contenida en el plato n [moles].^
MB ~ Masa contenida en el calderin [moles].
Mr> - Masa contenida en el tanque de reflujo [moles].
MVn - Volumen de la mezcla contenida en el plato n
[pies3]
NT = Número total de platos en la columna.
NS = Número de platos en la zona de agotamiento.
Nj - Número de componentes de la mezcla (para el
48
caso del modelo a desarrollarse Nj~2).
n = Número del plato (numerados de abajo hacia
arriba) .
= Composición molar liquida del elemento más
volátil de la mezcla, en la alimentación
- Composición molar liquida del elemento más
volátil de la mezcla gue abandona el plato n
[p.u.].
X(n, ±) - Composición molar líquida del elemento i que
abandona el plato n [p.u.]. Cuando se refiere
al elemento más volátil, esta expresión se
transforma en x«.
XB - Composición molar liquida del elemento más
volátil de la mezcla en el producto de la base
[p-u.],
xr> = Composición molar liquida del elemento más
volátil de la mezcla en el tanque de reflujo
[p.-u.].
y** - Composición molar de vapor del elemento más
volátil de la mezcla, en la alimentación
' [p.u-].
yn = • Composición molar de vapor del elemento más
volátil de la mésela, que abandona el plato n
[p.u.].
ycn.x) = Composición molar de vapor del elemento i que
abandona el plato n [p.u.]. Cuando se refiere
al elemento más volátil, esta expresión se
transf orma en yn -
49
ye - Composición molar de vapor del elemento más
volátil de la mezcla, que abandona el calderín
[p.-u.].
yr> = Composición molar de vapor del elemento más
volátil de la mezcla, en el tanque de reflujo
[p-u.].
y n = Composición molar de vapor (que estaría en
equilibrio de fase con el líquido) del elemento
más volátil de la mezcla, en el plato n
[p-u,].
y*(rL,i;> = Composición molar de vapor (que estaría en
equilibrio de fase con el líquido) del elemento
i en el plato n [p.u.]. Cuando se refiere al
elemento más volátil, esta expresión se
transforma en y^n.
,i) = Eficiencia de Murphree.para el elemento i de la
mezcla, en el plato n [p.u.].
= Entalpia del líquido que abandona el plato n
[BTU/mol].
= Entalpia del líquido de alimentación [BTU/mol] .
HLs = Entalpia del líquido contenido en el calderín
[BTU/mol].
HLr> = Entalpia del líquido contenido en el tanque de
reflujo [BTU/mol].
HVn = Entalpia del vapor que abandona el plato n
[BTU/mol].
HVj? = Entalpia del vapor de alimentación [BTU/mol].
HVn = Entalpia del vapor que abandona el calderín
51
= Diámetro de la columna. En la zona de
agotamiento vale DS y en la de rectificación
vale DR [pulg].
WHS - Altura del vertedero de los platos en la zona
de agotamiento [pulg].
WLS = Longitud del vertedero de los platos en la zona
de agotamiento [pulg].
DS - Diámetro de la columna en la zona de
agotamiento [pulg].
WHR = Altura del vertedero de los platos en la zona
de rectificación [pulg].
WLR - Longitud del vertedero de los platos en la zona
de rectificación [pulg].
DR - Diámetro - de la columna en la zona de
rectificación [pulg].
HFOWn = Altura sobre el vertedero alcanzada por el
liquido en el plato n [pies].
AVPi = Constante de equilibrio del elemento i de la
mezcla para el cálculo de la presión de vapor.
BVPi - Constante de equilibrio del elemento i de la
mezcla para el cálculo de la presión de vapor.
A continuación, • y utilizando las expresiones
desarrolladas en las secciones anteriores, se presenta el
modelo de la columna parte por parte.
52
CONDENSADOR Y
TANQUE DE REFLUJO-
Balance -total de masa:
dt
Balance de masa para el
compuesto más volátil:
(3-21)
- (R + D)JCD (3 .22)at
PLATO SUPERIOR (n = NT)
Balance total de masa:
(3.23)
dt- V' t¿
Balance de masa para el
compuesto más volátil:
53
— (M x = RJCD + (wr-iy wr-i) (3.24)
Balance de energía:
O = R.HL- = = . D -D-C^-L) (3 25)
PLATO n (NS+2 < n < NT-1)
Balance total de masa:
dM
Balance de maaa para el
compuesto más volátil:
(3-26)
(3.27)
Balance de energía :
PLATO SUPERIOR AL DE
ALIMENTACIÓN (n = NS+1)
54
- L .HL - V .HVn n n*" r n
3 . 26
Ba.lance total de masa:
dM,C3.29)
Balance de masa para el
compuesto más volátil:
„o.
Balance de energía:
\ .
55
PLATO DE ALIMENTACIÓN
(n - NS)
Balance total de masa:
dt *
Balance de masa para el
compuesto más volátil:
(3 '32)
Balance de energía:
d— NS-NS = O - Lw+1yflLÍMJ+1) + ^ ( w s - i ) - - ! ) (3 34)
PLATO n (2 < n < NS-1)
Balance total de masa:
(3-35)
56
Balance de' masa para el
compuesto más volátil:
Balance de energía:
PRIMER PLATO (n=l)
Balance total de masa:
dM
(3,36)
á_n. w __. ^n+i; ^n+tj ^n_^ ^n_^ (3.37)
dtl-.=L2+V,,-LL-Ví 0-38)
Balance de masa para el
compuesto más volátil:
VryB - IlJCl - Fi.yt (3.39)
57
Balance de energía:
d/1) = O = .#¿2 + V^B - L^HL^ - VrHVl (3.40)
CALDERIN.
Balance "total de masa:
Balance de masa para el
compuesto más volátil:
Balance de energía:
d
(3.41)
— (MgX¿ = L^ - BJCB - VB.yB (3.42)
- O = L..HL, - BJÍLB - VB.HVB + QB (3 .43)
59
>ft DENSIDAD.
DENSA= DENS (3.50)
ECUACIONES DE EQUILIBRIO.
dondí
[ByP + - -l ' r, + 46oj (3.51)
pn
72, + 460
,^ F 0 v( o-5 2 )
E y " w > s l ( 3-5 3 )i-l
VP1,10g-
460). ^- < 3 - 5 4 >T*7 rl' íJ- J. i ~ í¿¡
(3.55)
60
En estas ecuaciones, conocidos la presión en la bandeja n
(Pn)> las fracciones molares líquidas (X(n,du)) y las contantes
de cada elemento de la mezcla (BVPi. y AVPi) , se calcula la
temperatura de equilibrio en el plato (Tn) , las presiones de
vapor de los componentes puros (POcn, :io ) y las fracciones
molares de vapor que están en equilibrio de fase con el
líquido (y*cn,i)).
Debido a la naturaleza de estas ecuaciones, es necesario
un proceso iterativo para su solución, lo cual se tratará en
el capítulo V. • . .
Como se dijo al inicio de esta sección, la mezcla
líquido-vapor que se tiene en cada 'bandeoa está en equilibrio
térmico, pero no en equilibrio de fases. Por lo tanto, las
fracciones molares de vapor que se obtienen de la solución de
las ecuaciones de equilibrio, no son las que existen en cada
plato. Únicamente en el calderín y en el tanque de reflujo se
considera que existe equilibrio de fases.
En el caso de que la eficiencia de la bandeja fuera del
100%, entonces, la mezcla estaría en equilibrio de fases y las
fraceiones molares de vapor calculadas serían las reales. Pero
para eficiencias menores al 100%, es necesario determinar las
fracciones molares de vapor rea]es que existen en la mezcla.
Para ello se utiliza la definición de eficiencia de Murphree:
62
3.3 LINEALIZACION DEL SISTEMA.
De las ecuaciones obtenidas en el modelo anterior , se
observa que el sistema es no-lineal.
Los estados del sistema son las fracciones molares
liquidas del compuesto más volátil de la mezcla binaria, tanto
en los .platos de la columna como en el calderin y el tanque de
reflujo.
Se linealizará . el sistema alrededor del punto de
equilibrio de la columna, es decir , alrededor de las
fracciones molares . liquidas desequilibrio.
La nomenclatura utilizada en esta sección es la
siguiente :
- El valor de equilibrio de una variable se lo denota por
medio de una barra sobre la letra que la representa, por
ejemplo:
- La desviación de una variable de su punto de equilibrio
.se la representa anteponiendo el símbolo "ó" a la misma,
por ejemplo:
63
Si se tiene un sistema cuya entrada es B(-fc) y cuya salida
es g(t), la relación entre ellas está dada por: [Ref. 13]
g=M (3.62)
La ecuación (3.62) puede desarrollarse en serie de Taylor
alrededor de la condición normal de operación de la siguiente
manera:
+ (S - S) + — .--.0 - S) + ... (3.63)ds 2! ds2
donde las derivadas son evaluadas en el punto de equilibrio.
Si la variación de la entrada con respecto a su condición
normal de operación es pequeña , se pueden despreciar- los
términos de orden superior, con lo que se tendría:
g = g + K.(s - í) (3.64)
donde:
g -J(s) (3.65)
y
K = - ; s=s (3.66)ds
64
Aplicando el mismo método para el caso de tener más
entradas, por ejemplo:
g = /(s13 s2, ...)
(3.67)
se tendría:
g -g = Kr(s} - í,) + K^SI -sj + ... (3.63)
donde:
i = A*, S, -O . (3.69)
(3.70)
JT - -2 " * i"151!' " '" (3.71)
Aplicando estos criterios al conjunto de ecuaciones del
modelo de la columna, se obtiene:
fA.Aí + fi.Att (3.72)
donde:
AV
7V
NV
iy
BASE.
PLATO 1.
66
VB-
E*i - * J(3 .76)
[LJ .
[x, - y,] . A V,
[Xj - Xj] .
(3 .77)
PLATO n (2 £ n < NS)
' AX( D (3. 78)
67
PLATO DE ALIMENTACIÓN (n-NS)
*MS ~_^W
+ IÍ'CNS+I)+ [FJ .
^ (3.79)
PLATO n=
A Y^"
. AxF (3 .80)
68
PLATO n (NS+2 < n < NT)
-c-
PLATO n-NT
" (3.82)
' TANQUE DE REFLUJO.
(3.83)
69
La relación entre la composición líquida y de vapor en
una bandeja n, para mezclas binarias., se dedujo en el capítulo
2 y corresponde a la ecuación (2,7) que dice:
a - - (3_84)1 + [«[«,(1-2)] - I]-*,
en donde acn, cx-2) :i representa la volatilidad relativa del
elemento 1 respecto del elemento 2 de la mezcla, en el plato
n.
Trabajando con las ecuaciones (3_51), (3_52) y (3_53), y
consierando mezcla binaria, se llega a una expresión similar a
la ecuación (3.84), en donde :
AVf.[BVP,
1PO Tm+ 460
' - - ( 3 . O O )^ '
Linealizando la ecuación (3_84) se halla el valor de las
constantes Kn involucradas en los resultados del modelo
lineal:
(3.86)
70
donde:
(3_8r)
3.4 DISCRETIZACION DEL MODELO LINEAL.
Para un sistema estocástico lineal continuo en el tiempo,
definido por las ecuaciones de estado (3.88) y (3-89):
(3.89)
donde -Cy/(t)> y {e/(t)> son secuencias de vectores aleatorios,
normales e independientes, con valor esperado igual a cero y
covariancia:
>] = dl &(Í-T) (3.90)
)] = C!2 Ó(Í-T) (3.91)
es decir, {y_'(t)> y { '(t)> son de tipo ruido blanco continuo
en el tiempo.
Se quiere discretizar este sistema, es decir, que se
cumplan las relaciones:
(3.92)
(3.93)
donde k"e [O, 1, 2, ... N-l]
Las ecuaciones que permiten pasar del sistema continuo al
discreto son: [Ref~. 27]
A- = £'A./ (3.94)
Af
(3.95)
Ar
(3.96)
(3.97)
Para la resolución de estas ecuaciones - se utiliza el
siguiente algoritmo: tJRef. 12'J
= í (3.98)
X TOLO
CONTROL I>E
4.1 INTRODUCCIÓN.
El objetivo básico en la Ingeniería de Control es el de
mantener a un sistema o proceso dentro de un comportamiento
deseado, para lo cual se emplea la realimentación. Desde el
punto de vista del control óptimo estocástico, esto significa
que, dado un proceso y un criterio de control, se debe
determinar la ley que haga mínimo el valor esperado de dicho
criterio. [Ref. 9]
Normalmente, la fi-nalidad del control en una torre de
destilación es mantener el proceso en un estado estable
deseado (a lo que se llama "regulación"), a pesar de la
presencia de perturbaciones, que en la columna son
considerables; o, mover el proceso de un estado a otro, de la
manera más rápida posible.
La solución de este último problema tiene que ver con la
teoría de control de tiempo mínimo, con restricción en las
variables de control y aplicando un modelo no lineal de
variables de estado.
74
El objetivo de este capitulo es aplicar la teoría del
control estocástico al primer problema planteado, es decir, la
regulación.
Para cumplir este objetivo, se utiliza el modelo lineal
de la columna desarrollado en el capitulo anterior. Además,
considerando que hay errores en la modelación y perturbaciones
debidas a la presencia de sensores, transmisores, actuadores o
en la planta misma, se.- introducen pequeñas variaciones
estocásticas de tipo gaussiano para 'representarlas.
En la columna de destilación, el vector de estado lo
conforman las fracciones molares liquidas del compuesto más
volátil de la mésela en cada una de las bandejas. Como la
columna puede tener- un número considerable de platos (de 8 a
15 generalmente), es necesario estimar los estados, pues no
hay la seguridad de que se tengan sensores que permitan
conocer las fracciones molares liquidas en cada bandeja.
Normalmente, la composición líquida de una mésela se la
determina indirectamente a través de la medición de su
temperatura. En una columna de destilación, los sensores de
• temperatura se suelen colocar en el plato inmediatamente
inferior al del tope y en el primer plato, y a partir de esta
información, más la medida de las variables de entrada, se
puede estimar el resto de los estados.
75
4.2 ESTIMACIÓN DE ESTADO.
Se -utiliza el llamado Filtro de Kalman, que es un
estimador de estado óptimo para sistemas estocásticos.
4.2.1 FILTRO DE KAI24AN. [Ref. 9]
Es un algoritmo que permite estimar el estado de un
sistema estocástico a partir de mediciones de entradas y
salidas, sin importar el número de estados que existan o si el
sistema está pobremente definido.
Si se tiene una planta con n estados, p entradas, q
salidas y definida por:
*(*+D = ¿D¿(*) + aDK(*) + *(*) (4.D
tf*) = CDX(k) + fi(*) (4.2)
donde:
= Vector de estado, de orden n x 1.
Ar> = Matriz n x n.
Br> - Matriz n x p.
£¿D - Matriz q x n.
iU'k) = Vector de entradas, orden p x 1.
= Vector de observaciones, orden g x 1.
- Vector de error de la planta, orden n x 1.
e(k) = Vector de error en la medición, orden q x 1.
77
(4.9)
donde K(k) se denomina matriz ganancia de Kalman.
Se define a la covariancia del error de estimación como:
(4.10)
De la definición, del ' ea^ror ' dé estirriación (ecuación
( 4 . 7 ) ) , se-tiene que: ;;.--• / * , ..-- r - -.-" .*-
n (4.11)
que desarrollando resulta:'
(4.12)
(4-13)
Con estos resultados se puede calcuiar la covariancia del
error de estimación:
1 % ¿rr/i . iYi (4.14)
79
no depende de &(k); y el término:
(K(k) - ¿
.C.T } • (K(k) -
depende de J£(k) y tiene una forma cuadrática como:
E = Z.£.Zr
donde :
y
(4.22)
í2 - {£ + £.£(*).C ) (4-23)
De la forma como están definidas las matrices, fi. será
definida positiva; y, por lo tanto, para que E(k+l) sea minima
es necesario que:
1 } = fi (4.24)
de donde se puede hallar el valor de
(4.25)
80
Entonces, el valor mínimo de E(k4-l) será:
(4.26)
en donde el término:
(4.27)
representa el error de propagación a través del sistema
dinámico; £o_ representa .el incremento del error debido a la
perturbación en el sistema; y
(4.28)
representa la disminución del error debido a la información
obtenida de la medición.
Resumiendo los .resultados encontrados, se tiene el
siguiente algoritmo para generar una estimación óptima de los
estados:
£(0) = C (4.29)
81
(4.30)
(4.31)
4.3 FORMULACIÓN DEL PROBLEMA DEL CONTROL. [Ref. 9J
Se considera al sistema gobernado por las ecuaciones de
diferencias estocásticas:
(4.32)
(4.33)
donde k e T = [ - - - , -1, O, 1, 2, --.], x(k) es el vector de
estado de orden nxl; u(k) es el vector de variables de
control de orden p x 1; x(k) es el vector de salidas de orden
r x 1; y? 3¿(k) y fi(k) son secuencias de variables aleatorias«
normales e independientes con valor esperado cero y
covariancias:
(4.34)
criterio, es decir, se quiere minimizar J.
J° = min J (4,40)
es decir,. J° es- el mínimo 'de J dado por algún valor del vector
de control u.. . _-• - '->*_. ^--,'V- -:-" • / - '. í:- -'-"
Además, se define:
(4.41)k-i
Para hallar la ley de control óptimo, se debe determinar
de modo que J sea mínimo.
"Dé -la ecuación (4-41) se obtiene:
V* =C4.42)
El intervalo final vendrá dado por:
(4.43)
85
J
Analizando este resultado, como £2 es definida positiva,
semidefinida positiva, y su producto en una forma
cuadrática también lo es, se puede asegurar que:
(4.49)
lo que garantiza que estamos trabajando en el mínimo.
De la ecuación (4.47), se tiene:
(4.50)
=-fí
VB.TD.S.<ff).RD(4.51)
) = fl
de donde resulta que:
(4.52)
86
Se define L(N-l) como:
1) = - [fl£.S(tf)J2n + Í2J"1 JftSCAO-An (4.53)
De la forma como se han definido las matrices, Jj(N—1)
existe.
Remplazando el valor de ü(N—1) en la ecuación (4.45)
resulta que:
U (4.54)
y
Síff-l) = [AD + £^
~ O] (4,55)
La importancia de este resultado es que J°CN-I) tiene- la
misma forma que J°N .y, por lo tanto:
r
JOT-Q = ír(^-2).£(^-2) jfff-2) C 4.56)
donde:
(4 .57)
88
Resolviendo sucesiva y recursivamente las ecuaciones
(4.60) y (4-64) se obtiene, tanto el mínimo del criterio en el
instante deseado, como la ley de control óptimo. Esta solución
se la hace recorriendo el tiempo en sentido inverso hasta el
momento k, y con la condición final de:
(4.66)
4.3-2 EFECTO DE LAS PERTURBACIONES,
Para el caso en que el sistema no es determinístico, es
decir, cuando x.(k) es una variable estocástica, se puede tener
una estimación de x(k), que es una función de las mediciones
de entradas y salidas hechas en el sistema.
En este caso, J es una función de variables de tipo
estocástico. Per lo tanto, no tiene mucho sentido el buscar el
mínimo de J, sino que se utiliza como criterio óptimo el
mínimo del valor esperado de J; es decir:
J° = mili,» £[J] ' (4,67)
Se puede probar [JRef. 9] que el compensador en este caso
está formado por un filtro y un controlador, o lo gue se llama
"filtro óptimo de Kalman", cuya salida es la entrada del
controlador de ganancia L(k) _ Si en estas condiciones, se
89
tiene un estimado óptimo del estado del sistema, la ley de
control óptimo vendrá dada por:
(4.68)
Además, como consecuencia del principio de "equivalencia-
de certeza", L(k) es la misma que en el caso deterministico
[Eef. 9]
Se puede notar una similitud entre los resultados del
estimador de estado y la ley de control óptimo. De hecho, es
posible demostrar que el problema del control es el problema
dual del de estimación [JRef. 9J, Por ejemplo, en el caso del
control óptimo el cálculo de las matrices £.(k) y L(k) se lo
hace con el tiempo recorriendo en sentido inverso; mientras
que en el estimador, el cálculo de E(k) y £(k) se lo hace con
el tiempo recorriendo hacia adelante.
4.4 COMPENSADOR,
^Como resultado de la estimación de estado y de la
formulación del problema del control, se puede construir el
compensador, tal como se muestra en la figura 4_1, la cual
constituye un algoritmo para la simulación total del sistema.
Las matrices involucradas en la estimación de estado
(K.(k) y E(k)), se calculan con las ecuaciones obtenidas en
páginas anteriores, es decir:
90
£(0) = í (4.69)
(4.70)
(4.71)
Las matrices relacionadas con el controlador óptimo
y ¿(k)), según se encontró anteriormente, se las calcula de la
siguiente manera :
= QQ (4.72)
(4.73)
(4.74)
La ley de control vendrá dada por:
U(k) = !#).£($ ' (4.75)
Es necesario indicar que para la implementación de'estos
algoritmos, en el caso de la columna de destilación, el vector
de estado lo conforman las variaciones de las fracciones
molares liquidas del elemento más volátil de la -mésela,
alrededor del punto de equilibrio, por lo tanto, los
parámetros de control estarán modificándose alrededor de. sus
valores de estado estable.
91
ESTIMADOR DE ESTADO
FIGURA 4.1
de bloquea del sistema con el estimador de estado
y el control.
92
4.5 VARIABLES DE CONTROL.
Como se explicó en el capítulo anterior, el objetivo del
control en la columna de destilación es el de mantener las
fracciones molares líquidas dentro de sus valores de
equilibrio a pesar de la presencia de perturbaciones.
Existen tres variables que podrían servir como parámetros
de control. Estas variables son: el flujo de alimentación, la
cantidad de calor que se entrega al calderín (que permite
modificar el flujo de vapor en. la columna) y el reflujo (que
permite modificar el flujo líquido en la columna). De éstas,
sólo dos son físicamente las más adecuadas por razones que se
expondrán a continuación-y que están sujetas a comprobación.
Una de las principales fuentes de perturbación en la
columna es la que se genera en la alimentación. Esto- se debe a
las variaciones del caudal de _ alimentación, de la composición
molar de la mésela que entra a la columna y también de la
temperatura y presión' de la mésela, lo que hace que el flujo
de alimentación no sea un parámetro adecuado para el control.
Quedan, por lo tanto, como parámetros adecuados para el
control el reflujo y el calor entregado al calderín. En la
simulación, se puede comprobar por ejemplo, que un incremento
en el reflujo produce un aumento en la composición molar
líquida del elemento más volátil de la mésela en todas las
bandejas. En cambio, un aumento en la cantidad de calor
93
•entregado al calderin produce una disminución en dicha
fracción molar.
94
SIMXJIJL^VOZEON DEL DPIROOESO
5,1 INTRODUCCIÓN.
La simulación se ha realisado -en el compilador Quiek
Basic versión 4.5 ya que el lenguaje Basic es uno de los más
difundidos a nivel de microcomputadores, es de propósito
general, tiene extensiones para gráficos, color y sonido, y
presenta facilidades para cálculos (funciones incorporadas),
manejo de archivos y pantalla.
5.2 ESTRUCTURA DEL PROGRAMA.
El programa desarrollado permite la simulación de la
plantea en las siguientes opciones:
- Sistema no-lineal, sin perturbaciones.
- Sistema no-lineal, con perturbaciones.
- Sistema lineal, sin perturbaciones.
- Sistema lineal, con perturbaciones.
- Sistema controlado.
95
Cada una de estas opciones necesitan para su ejecución de
datos de condiciones iniciales y de otros parámetros, los
cuales son solicitados por el programa.
A continuación se indican, a breves rasgos, los
algoritmos implementados en cada una de las opciones.
5.3 ALGORITMOS.
- Sistema no-lineal sin. perturbaciones.
1_ Lectura de datos: geometría de la columna, propiedades
*' físicas de los elementos de la mésela, alimentación y
i condiciones iniciales.
2_ Cálculo de retenciones molares iniciales y presiones en
cada bandeja.
3_ Cálculo de temperaturas y composiciones del vapor
utilizando los datos de equilibrio vapor-líquido.
4. Cálculo de las entalpias de las dos fases.
^ 5. Cálculo de los f luj os de vapor que abandonan las
bandejas, utilizando la ecuación de energía.
6. Evaluación de todas las derivadas.
7. Integración.
8_ Cálculo de los nuevos flujos líquidos que abandonan las
bandejas.
9. Ir al paso 3 y repetir.
9.
96
— Sistema lineal sin perturbaciones _
1- Ingreso de condiciones' iniciales.
2. Evaluación de derivadas.
3. Integración.
4. Ir al paso 2 y repetir.
Para los casos del sistema no-lineal con perturbaciones y
el sistema lineal con perturbaciones, los algoritmos son los
mismos que los respectivos anteriores,. pero añadiendo la
generación de las perturbaciones.
Para el caso del sistema controlado, el algoritmo es. el
mismo que para el sistema no-lineal con perturbaciones, pero
se debe considerar al estimador de estado y " la generación de
la ley de control. Además, para implementar esta opción, se
verifica si el sistema es controlable .y observable.
Cuando se simula el sistema no-lineal con y sin
perturbaciones, es posible obtener resultados gráficos de la
variación en el tiempo de la composición del elemento más
volátil de la .mezcla en las dos fases; de la temperatura en
cada bandeja; de los flujos líquidos y de vapor que abandonan
cada plato; de la masa contenida en cada bandeja; del reflujo
y del flujo de productos que entrega la columna.
Para el caso del sistema con control, además de las
variables anteriores, es posible graficar los estados
97
estimados y las variables de control.
Como la planta se linealiza alrededor del punto de
operación en estado estable, para el caso del sistema lineal
con y sin perturbaciones, sólo se gráfica la composición del
elemento más volátil de la mezcla en las dos fases.
La primera corrida del programa permite: simular el
sistema no-lineal sin perturbaciones; calcular los puntos de
equilibrio natural de la columna; linealizar el sistema y
calcular los valores propios. Esto se debe a que no se'
determinan explícitamente los puntos de equilibrio natural de
la columna sino que se los halla con la simulación. Esto tiene
el objetivo básico de ahorrar memoria y tiempo de ejecución
del programa.
Por lo tanto, es necesario que en esta corrida se den
datos de tiempo adecuados tanto para los incrementos como para
el tiempo final de simulación. Normalmente, incrementos de
tiempo del orden de 10~5 [horas] y lapsos de 10-i [horas] son
adecuados para una correcta simulación del funcionamiento de
la codumna hasta llegar a la estabilidad. En el caso de que el
incremento de tiempo, alguna condición inicial, o algún
parámetro de la planta, no sean los adecuados, el sistema se
hará inestable y el programa advertirá al usuario de esta
situación para que los modifique en una nueva corrida.
98
5.4 SIMBOLOGIA DE LAS OPCIONES.
Para conocer el tipo de sistema que se está simulando, se
incluye en la parte superior izquierda de los gráficos unas
siglas que los identifican y que son las siguientes:
NL/SP : Sistema no-lineal, sin perturbaciones.
NL/CP : Sistema no-lineal, con perturbaciones.
L/SP : Sistema lineal, sin perturbaciones.
L/CP : Sistema lineal, con perturbaciones.
CONTROL : Sistema controlado.
5.5 MÉTODO DE INTEGRACIÓN NUMÉRICA.
Como se requiere precisión en la integración de las
ecuaciones involucradas en la simulación, el método de Runge
Kutta de cuarto orden es adecuado para cumplir con este
objetivo.
Para una ecuación diferencial ordinaria definida por:
— = /(x,í) (5.1)dt
el algoritmo de Runge Kutta es el siguiente: [Ref. 11]
99
(5.2)'
+ 2 + 2*3 + ¿4
5_6 SOLUCIÓN DE LAS ECUACIONES DE EQUILIBRIO.
Como se vio en el capítulo 3, las ecuaciones involucradas
en el equilibrio térmico y de fases en una bandeja son no
lineales y trascendentes.
El método dé Newton-Raphson es probablemente el más
popular mecanismo de solución de sistemas de ecuaciones no-
lineales, o con funciones trascende'ntes.
Este método se lo utiliza en el presente trabajo, para
hallar la composición de vapor y la temperatura de equilibrio
en una bande¿a, cuando se dan como datos la presión y la
composición líquida. [Ref~ 11]
Para la solución se define la función:
100
f _JT -
donde:
T
P
Temperatura.
Presión.
(T) ( 5 . 3 )
f<T . )
FIGURA 5.1
Representación gráfica del método de Ne&ton-Raph&on.
Se quiez^e encontrar el valor de T tal que la función
sea cero, es decir, se busca la raíz de
Es necesario dar un valor de prueba para T (llamado To)
Luego se evalúa la función en To, es decir, f(To).
101
A continuación se evalúa la derivada de la función en To,
y de la figura 5_1 se obtiene:
:/(To) (5 .4 )<ro) r, - To
Resolviendo para Ti da:
, e c >(5.5)
To. en la ecuación (5.5). es el nuevo valor de temperatura
de prueba.
™ Generalizando la ecruación (5_5), se obtiene el siguiente
algoritmo de convergencia recursivo:
T , s: T ~ — ( *S R1n+1 n i ^ o . o ;
A
donde:
_ TnH-i ~ Nuevo valor de temperatura de prueba.p,
Tn - Valor anterior de temperatura de prueba.
fn " Valor de fcx? en T=Tn..
f'n " Valor de la derivada de f evaluada en Tn.
5.7 GENERACIÓN DE LAS PERTURBACIONES.
Para generar una variable aleatoria con distribución
102
normal se utiliza el Teorema del Limite Central [Ref- 281 <3.ue
dice:
A5 = O
FOR o = 1 TO 12
A5 - A5 + RND
NEXT ó
X5 - D5*(A5-6)+E5
donde:
D5 = Desviación Standard,
E5 = Valor esperado.
X5 - Variable aleatoria con distribución normal.
RND - Función Random del Quick Basic que genera
números aleatorios comprendidos entre 1 y -1
con distribución normal.
5.8 SELECCIÓN DEL PERIODO DE DISCRETIZACION.
Tanto para escoger el incremento de tiempo en la
simulación de la planta, como para determinar el periodo
adecuado para la discretización de las ecuaciones .de estado,
es necesario conocer los valores propios de la matriz del
sistema lineal.
En la figura 5.2 se muestra un diagrama del plano
complejo que representa los valores propios de la matriz del
sistema lineal, donde:
O) rI* rri (5 .7 )
Además, se cumple que:
, < i; < ... < TL x n
(5 .8)
Llamando Ti al periodo dado por el eje imaginario y TK al
dado por el eje real, debe cumplirse que:
«(5.9)
JW
JW]
JW2
ti
FIGURA 5.2
Plano Complejo,
104
El .período adecuado de muestreo (T), 'debe ser mucho menor,
que la menor constante de tiempo del sistema, es decir:
T < TR (5.10)
y
r <
5.9 SUBRUTINAS.
La función que cumple cada una de ellas es la siguiente:
SUB PRESENTACIÓN
Muestra en pantalla la presentación del programa. '
SUB EQUILIBRIO
Dados la presión y fracción molar liquida en una bandeja,
determina la temperatura y la fracción molar de vapor en
equilibrio.
SUB MWDENS
Dados la fracción molar líquida y el peso molecular de los
componentes, determina la densidad y el peso molecular de la
mésela.
105
SÜB ENTH
Dados las fracciones molares de la fase liquida y gaseosa, y
la temperatura de la mésela; determina las entalpias de las
dos fases.
SUB HIDRAULIC
Dados la fracción molar liquida, la masa de la mezcla
contenida en la bandeja, la altura y longitud del vertedero, y
el diámetro de' la columna; determina el flujo liquido que
abandona el plato.
SUB LINEAL
Dados los valores en estado estable de la planta, determina
las matrices del sistema lineal.
SUB VALPROP
Dada la matriz del sistema lineal, determina los valores
propios de la misma.
SUB RA1ZPOLI2
Permi'te encontrar los ceros de un polinomio.
SUB FP
Permite evaluar la derivada de una función compleja.
SUB FZ
Permite evaluar un polinomio complejo utilizando el método de
Horner.
106
SUB ARCHIVOS
Dados los valores generados en la corrida de alguna de las
opciones del programa, abre archivos en una unidad del
computador y almacena los datos.
SUB RECARCHIV
Dado un tipo de sistema seleccionado, abre los archivos
creados para recuperar los datos generados para ese sistema.
SUB SUSPENSIÓN
Avisa al usuario que la simulación se ha detenido ya que algún
parámetro de la planta ha adquirido un valor físicamente
imposible.
SUB LIMITES
Permite determinar los valores máximo y mínimo de un conjunto
de datos numéricos.
SUB CUADRO
Permite construir una pantalla de presentación.
SUB DIBUJO
Dados los valores que- ha adquirido una variable, los gráfica
en una escala apropiada,
SUB GENERA
Dados el valor esperado de una variable, y su desviación
standard, determina la variable con distribución normal.
107
SUB K1234
Permite determinar los coeficientes de la fórmula de Runge
Kutta para integración numérica.
SUB SUMM
Permite hallar la suma de dos matrices de orden dado.
SOB TRANSPUESTA
Permite hallar la mat-riz transpuesta de una dada.
SUB COPIAM
Asigna el valor de una matriz a otra.
SUB MATESC
Multiplica un escalar por una matriz.
SUB MATMAT
Multiplica dos matrices.
SUB MATICEN
Crea una matriz identidad del orden solicitado.
SUB EAT
Determina la matriz transición de estado.
SUB MATFI
Dadas las matrices del sistema continuo y el período de
muéstreo 3 determina las matrices diseretizadas.
108
SUB MENGEN
Muestra el menú que solicita el tipo de sistema que se quiere
simular, o entrar a los resultados,
SUB RESULTADOS
Muestra el menú para optar por los resultados de alguna de las
opciones que se han corrido.
SUB TABLA
Indica los valores en estado estable de las variables de la
planta.
SUB GRAFIC01
Muestra un menú de opciones de resultados de la planta.
SUB GRAFICO2
Muestra un menú de opciones de resultados de la planta.
SUB GRÁFICOS
Muestra un menú de opciones de resultados de la planta.
SUB CONTROLABLE
Determina la controlabilidad del sistema.
«
SUB OBSERVABLE
Determina la observabilidad del sistema.
110
SUB FLUJOS
Muestra un menú para indicar el número del plato del cual se
quiere graficar el fluj o de vapor que lo abandona.
SUB MASAPLATO
Muestra un menú para optar por un plato del cual se quiere
graficar la masa contenida en el mismo.
SUB ESTADO
Muestra un menú para escoger el estado estimado que se quiere
graficar.
SUB NUMPLAT1
Gráfica la" composición líquida en un plato.
SUB NUMPLAT2
Gráfica la composición de vapor en un plato.
SUB NUMPLATEM
Gráfica la temperatura en un plato.
SUB REF
Gráfica el reflujo.
SUB VAP
Gráfica el flujo de vapor que abandona el calderín.
111
SUB VN
Gráfica el flujo de vapor que abandona un plato
SUB LN
Gráfica el flujo líquido que abandona un plato.
SUB MAS
Gráfica la masa retenida en un plato.
112
OAJE>IETULO VI
E JEMDPLO Y IRJS SULTAJDO S
6.1 EJEMPLO.
Como ejemplo para la simulación, se ha tomado una mezcla
binaria de combustibles livianos, que se destilan en una
columna, cuyas características son las siguientes: [Ref. 19J
PROPIEDADES FÍSICAS DE LA COLUMNA_
Número total de bandejas — 8
Número de bandejas en la zona de agotamiento - 3
Altura del weir en la zona de agotamiento = 0.75 [pulg]
Altura del weir en la zona de rectificación = 1.25 [pulg]
Diámetro de la torre en la zona de agotamiento = 72 [pulg]
Diámetro de la torre en la zona de rectificación = 72 [pulg]
Longitud del weir en la zona de agotamiento - 48 [pulg]
Longitud del weir en la zona de rectificación - 48 [pulg]
113
PROPIEDADES FÍSICAS DE LA MEZCLA. [Pef. 13
Compuesto 1 (más liviano)
Peso Molecular
Densidad
Calor de vaporización
Temperatura de ebullición
Calor específico del vapor
Calor específico del líquido
Presión de vapor a la temperatura TI
Temperatura TI
Presión de vapor a la temperatura T2
Temperatura T2
50 [g/mol]
0.64 [g/cm3]
90 [BTU/lb]
95 [oF]
0,4 [BTU/lb.OF]
0.6 [BTU/lb-0F]
14.7 [psi]
95 [OF]
500 [psi]
200 [°F]
Compuesto 2 (más pesado)
Peso Molecular
Densidad
Calor de vaporización
Temperatura de ebullición
Calor específico del vapor
Calor específico del líquido
Presión de vapor a la temperatura TI
Temperatura TI
Presión de vapor a la temperatura T2
Temperatura T2
130 [g/mol]
1.12 [g/cm3]
80 [BTÜ/lb]
170 [OF]
0.3 [BTU/lb.o?]
0.4 [BTU/lb.°F]
14,7 [psi]
170 [OF]
150 [psi]
300 [OF
114
DATOS DE ALIMENTACIÓN A LA COLUMNA,
Flujo liquido de alimentación
Flujo de vapor de alimentación •
Temperatura de la alimentación
Fracción molar liquida del elemento
más volátil de la mésela
Fracción molar de vapor del elemento
más voltil de la mezcla
760 [moles/hora]
40 [moles/hora]
112 [°F]
50 %
70 %
CONDICIONES DE FUNCIONAMIENTO DE LA COLUMNA.
Presión en la base de la columna
Presión en la bandeja del tope
Presión en el tanque de reflujo
Cantidad de calor que se entrega
al calderin
Reflujo
Eficiencia de los platos
16 [psi]
14.8 [psi]
14.7 [psi]
3.7 x 106
320 [moles/hora]
70 %
CONDICIONES DE OPERACIÓN EN ESTADO ESTABLE.
Flujo de producto del tope
Flujo de producto de la base
Composición liquida del elemento más
volátil en el producto del tope
390 [moles/hora]
410 [moles/hora]
98 %
115
Composición liquida del elemento más
volátil en el producto de la base = 5 %
6.2 RESULTADOS.
A continuación se presentan las condiciones iniciales
utilizadas para simular cada una de las diferentes opciones
del programa:
6.2.1 SISTEMA NO-LINEAL SIN PERTURBACIONES [NL/SP].
— Composición inicial liquida del elemento más volátil:
PLATO FRACCIÓN MOLAR Cpu]
Base 0.10
1 0.35
2 0.40
3 0.50
4 0.50
5 0.50
6 0.55
7 . 0 . 6 5
8 0.70
Tanque de reflujo 0.75
116
— Flujo liquido inicial que abandona el plato:
FLOJO [moles/hora]
800
870
910
200
220
250
290
330
— Datos de tiempo:
DELTA ~ 8 x 10~e Choras]
TSTOP = 0.8 [lloras]
6,2.2 SISTEMA NO-LINEAL CON PERTOEBACIONES [NL/CP3_
— Composición inicial liquida del elemento más volátil:
FRACCIÓN MOLAR
0.10
0.35
0.40
0.50
117
4 0.50
5 . 0.50
6 0.55 .
, 7 0.65
8 0.70
Tanque de reflujo - 0.75
1— Flujo liquido inicial que abandona el plato:
PLATO FLUJO [moles/hora]
1 800
2 870
.§ 3 910
4 200
5 220
6 250
7 290
I 8 330
- Covariancia del error de la planta (£1):
ESTADO COVARIANCIA
Base 20
1 20
2 20
3 25
118
4 25
5 25
6 25
7 25
8 25
Tanque de reflujo 25
• -
¡ — Datos de tiempo:
DELTA . = 8 x 10-B [horas]
TSTOP = 0.8 Choras]
é6_2.3 SISTEMA LINEAL SIN PERTURBACIONES [L/SP] _
- Composición inicial liquida del elemento más volátil:
i'' PLATO FRACCIÓN MOLAR
Base 0.10-t
1 0.35
2 0.40
3 0.50
4 0.50
5 0.50
6 0.55
7 0.65
*- 8 0.70
119
Tanque de reflujo 0.75
' — Dat; o a de "t iempo:
DELTA = 8 x 10-6 [horas]
g|, TSTOP = 0.8 [horas]
6.2.4 SISTEMA LINEAL CON PERTÜEBACIONES [L/CP].
— Composición inicial líquida del elemento más .volátil:
PLATO FRACCIÓN MOLAR [pu]
Base O.10
1 0.35
2 0. 40
3 0.50
4 0.50
5' 0.50
6 _ 0.55
7 0.65
8 . 0.70
Tanque de reflujo 0.75
120
- Covariancia del error de la planta (£1):
ESTADO COVARIANCIA
i Base 20
1 20
2 20v
(§' 3 25
4 25
! 5 25
6 25
7 25
8 25
Tanque de reflujo 25
— Datos de tiempo:
DELTA = 8 x 10-* [horas]
TSTOP = 0.8 [horas]
6.2.5 CONTROL DEL SISTEMA [CONTROL].
- Composición inicial líquida del elemento más volátil:
PLATO EXACCIÓN MOLAR Cpu]
Base 0.10
1 0.35
121
^ 2 0.40
3 0.5.0
4 0.50¡
! 5 0.50
6 0.55
7 0.65v
$< 8 0.70
Tanque de reflujo 0.75
— Flujo lígiaido inicial que abandona el plato:
PLATO FLUJO [moles/hora]M
1 800
2 870
3 910
4 200
5 . 220
6 250
7 290
8 330
- Covariancia del error de la planta (Cl):
122
2 20
3 25
4 25
5 25
6 25
7 25
8 25
Tanque de reflujo 25
Covariancia del error en la medición de los estados
observados (£2):
ESTADO COVARIANCIA
1 0,05
7 0,05
- Covariancia del estado inicial real (£0):
ESTADO COVARIANCIA
Base 0.01
1 0.01
- 2 0.01
3 0.01
4 0.01
5 0.01
e o.oi
123
7 0.01
8 . 0.01
Tanque de reflujo 0.01
— Matrices de ponderación:
Q0(0,0) = 1
Q0(2,2) = 1
Q0(3,3) = 1
Q0(4,4) = 1
Q0(5,5) = 1
Q0(6,6) - 1
Q0(7,7) = 1
Q0(8,8) = 1
Q0(9,9) = • 1
Ql(O,O) = O
Ql(2,2) = O
Ql(3,3) =' O
Ql(4,4) = O
Ql(5,5) = O
Ql(6,6) - O
Ql(7,7) = 1
Ql(8,8) = O
Ql(9,9) = O
124
Q2(0,0) = 1E-04
Q2(l,l) - 2E-04
Composición inicial liquida esperada, del €ilemento más
volátil, para el estimador de estado:
PLATO FRACCIÓN MOLAR [pu]
Base 0.15
1 0.40
2 0.45
3 0.45
4 0.45
5 0.45
6 0.50
7 0.60
8 0.60
Tanque de reflujo ' 0.60
- Covariancia del estado inicial del modelo:
ESTADO COVARIANCIA
Base 0.01
1 0.01
2 0.01
3 0.01
4 0.01
125
5 0,01
6 0.01
7 0.01
8 0.01
Tanque de reflujo 0.01
— Datos de tiempo:
DELTA = 8 x 10-5 [horas]
TSTOP = 0.8 [horas]
PERIODO = 8 x 10-s [horas]
A continuación se muestran los resultados gráficos de las
fracciones molares liquidas en cada una de las bandejas,
obtenidos de la simulación de las diferentes opciones del
programa. Se debe indicar que el programa implementado permite
graficar otras variables '(como composición de vapor,
temperatura, masa contenida en las bandejas, flujos liquidos,
flujos de vapor, producto del .tope, producto de la base),
cuyos resultados no se incluyen aquí.
126
' *-g g "W B **•"-"
CS3
GT-.«r--3 -* — icxac — oc*
OO CXIurr» «Ü5£* eso - — « »-«-« •- >— .OO O=3 OO CVI *— I
Í í
127
Ü~Si-—É
6 ""¿-E 8 ^aJ
CE*
re;CDCi
rrs
a° « -a
c-o roí c-o c-ao sro E-O rx^ iro
9ST
NL/SP
07?CD
.U-L
-J..-
L-J
—.—
...
28 x
O co rH
Cl
VSi
l3
iMM
iíatU
ÉiB
aíit
Mtu
MÉ
iMm
aiam
ytun
uaitm
auui
wttr
imtim
onH
tuan
ixiiM
Uiu
iitM
UM
UH
MII
OIM
I M
IMM
na>m
uu K
MB
Maa
tMM
úMim
M
\tm
U
MI
1UJ
MD
BH
BH
IHW
U
8'fl
*->• \
L/SP
Lll
B. 0,872
CO
8,944
L e..I
I
L-L
1P2S
x 115
,20 se
g
L/CF 8,6
35
8,878
8 8,
Ü3 to
•••«
JiM
ML
ran
^m
Mlw
M
15x
115,28
seg
J U
V
u U
m
•II
BII
*•
OJ
Cu
co H
51«••
n«*»ali
»«M
I IM
•!
C8I
n iim
135
LTT-
Jx:
1Jl
l--J
PT :3Í
.Iía
aU
)•
•
CD co
aB
«|
UJM
MJ>||
||a|M
BM
IüM
Uill
lMN
É41»U
taate
llirM
IM^
HIM
tMM
I «M
I*
,Wlt
U*
UM
llM
UttM
UIU
—
a*at
ma*
40*i
te
itm**
t(612
ifofó's
n *
K|M
ro
¿81 jen Btt'B
OD CO H
01•-T--P
-I—i—
i—i—
rrZS
I'Í
ora 13
ÍH O
Z'filI
U u
jl r I
1
CO
u mau
a u
i i«E
=ai
a!H
ttM ta
n iw
j mi v
atau
tum
mam
tai t
aaau
aHia
a lu
irm
UBI
MII
UIIM
IMM
MIW
IMii
ti.)
M
MM
UU
IMin
HM
Mim
iMU
iHM
UM
MH
lWU
UII
»t
IIéi
"T""
"!'
•O.ilM
Il
MI
ÍTZ IS! ¿IE 85£'8
m
•r
CS=H
!!i
i;
1i
c_n i
ii
ii1i
• 1i!1i
5* CT~i !!1!
i1131i!1
«- g-» 1
" 1i!
5ii
1
" ~i 1 =
.--- ~~_--"
-.-••
- Ii
- Ii
-i._
.
¡_ S
!i- .'l
_ i"i•.
- 1i_ i
I"1- 1I9
~ .«i
-~ f.
- Sr- !•i- i
<*>
NL/SP
U FU
TO 2
(pu)
38? 361
¡,347
._-_
__-„
_„—
_
_
;
15 28
x 115
,28 se
j
x
.' "
S.
CN]
w m
IOM
J I!
L/J
I VV
V
8,345
8,32?
co
1
M
.J-n^
J^«rL™
J.*«L
TmJ,«
«L
m,iwJ^«¿
iroJ
wL
1 hn (•
nin
ÍM •»
nR
Hn •>
tvi n
n !•
• M
t IO
TVH
win
wiB
raK
nn
IMM
HM
RM
V^H
II
H "\2
flseg
.
144
•3E-M
MI
«T--3
E
-I
I-gi-iIEe
-if
I_!
i-u-i i
E
\11
~l
LO r1 H
X (17
SI
« »
M H
c~~_*
«oc*
i -«.^ :•a _aI «•r i1 I^ i1 ai1 3r 5
2 5_
Í ii .8
r ri _r8- ii ri irxi ",8- "!Í 3"i Sr 2,i ii. i
3 aI- "!i "iI i
r-i
r— i —
iSI i —
i — r=
r"T-n
— i —
i — r™
i —C»
'B '8
E OM
TI
V
V I
AJ T
A
U
Ak¿
JS/1N
148
cs>
i
X.
«T--3Í
-s1TI-Í
• I
'i i! 4
1 ii\i
^
L/SP
EL PLf
llO 3
(pu)
_-.
J I
510
-L. 15
CD
20 x
115,28
sej
511
! I
•MM
MM
I^lH
MiM
O IO H
Í3/I
S BZ
'ÍU
u 31
-* "
l*
m
•U
NÍ. M
•
1-1 m
¡T 3 ft«
lJ^^
HOI3I
S(
•
I!I -!
r
i
•
i
SST
153
•
H
SI
"*
I."u
•
nmra
L/SP 8,4
14
Ül
Oí
-L. 15
x ilS
Jseg
51
•
•
CD m H
TT
H
157
•3=*
l_1I1_l
_IsIiI
j111-111
1
J
-!
•
II1-If
I
j I
W,
BIIM
, LlDU
IDfi D
EL M
IDO
(pn)
434
iuu>
w\tw
mtm
mm
mm
mim
nmi*
ii
•ran
a i.
•t.1
i.
/- V
\ \
yi.
.1 ',,'
en co
I»
NL/SP
EL PÍO
5 (pu
)
5« 8,52? 512
h-1
en CD
J I
515
20 x
115,28
seg
íMÍZ
'STI
x
O CD H
v5
••••«•••I IB
MM
MM
WM
MU
UM
HM
HIH
IWW
MK
MH «•
MH
MM
MM
HW
BM
IM M
i MIM
MIH
HM
IHM
MH
MM
MM
HM
lMM
IlH
MM
MiH
IiM
MM
MH
MaM
MIM
•MB
MI
M«H
I
M.
u •
i
fi»'8
£15 TES'Í
ÍK'I
•#
m
L/SP
531 8,435
O)
J l
L 1
L _.
. J.
1 J
I 1
I -1-
015
x 115
,38 se
g
(N CD H
xi
i
ri
1 T
-—_•
"
.-•i.
¿3/1
i«t
551 514 4)5iii
^
II1!
ll-J
O) co
164
II
JIIJi._-tJ
-i
-!1I
i
-fIi
NL/SP 8,7
1? .
8,675
0,544
J—L
-.
ELPL
Ü6
(pu)
H O Oí
I—L,
x 115
,28 se
?
I
*=£«
i-
í-tIi9
iI
I11
iii
i_ I1
99T
* L/SP 8,7
18 .
B.Í73
ELPL
ÍP6
(pu)
en
115,28
seg
L/CP
COMPOS
ICIÓN
DEL LI
QUIDO
El FU
TO (
(pu)
Í35 0,55?
0,544
H O) co
J
1
I I
L_
I J
I I
2G x
115,20
seg
ir
i-
i_
i
ii-3!_i
691
««ere
n «
K
o t> H
NL/SF 0,7
18 695
ELFM
I07
(pu)
«.«
—1
1528
x
00
510
M^
1528
x 115
,28 se
g
*
L/SP
ELPM
I07
(FU)
m 695
H --]
CO
,—.
x 115
,28
L/CP
752
flI __
I _
I1 _
I _
I _
1 _
_ I
1815
28 x
115
175
cu-
«T--3
E
!!IiIi
í3|
i"
•1,•!11
í
•1i1
|
í•i"1|
1ifii"«i•
M_
^~~-— --___
""-
s — i ~"~T~~— —
~
_
-
-I
Ji
Ji1
]ii
— !
íiI
í
-111~íI-1It-1
-11f1-1I;
-_
vf ]iM
^
co c^ H
•un
M
UÍ
H? 958 'í
j oiy
nfjf
11
I-
I
¿¿T
i
i
f
"l
178
M"?
I_
\18i[irii!1
1i
|
E
~!
"
-
i!
1!|
1
í1
1 _í d _*LII!!i
~*~.
!1
-1, f4i
1""--—_ J— — •• — _ .í i 1 TT~~ ~ —
!- — • .-•II.
•**•
CS3
O CD r-\3
HOI3I
SMKM
ÍÍ/I
'm
tmm
m*M
<*»*
m*m
**m
t*M
mi*
™*»
CO
,—-«
-.-—
-•"-
u——
u——
1
Í69 918
•IM
I mt m
m*t
nm m
mm
mam
mm
mtm
mu*
mtm
iám
tmtm
mm
mtm
imit
IMM
HI
IHM
IMtl
,
_i-
Ii
I!•
S8T
183
cu-
ur?
II-
«^ — I
185
186
187
-i
t
r¿
J
188
•3L»WO
O- »P»a
-1
-I
I
I
-I
-I
_I
-I
CPT-.
Ir
L
I
I
{
t-
i
I
I
I
r
691
(Mole
s/hopa
)
321,61
315,75
317,8
9
A
/
MU
RO»
'i W
mM
I ,'
co O
15x
115,2
8 seg
191
De los datos propuestos para la simulación y los
resultados obtenidos, se pueden hacer los siguientes
comentarios:
- La columna de destilación presenta una estabilidad natural
en su funcionamiento.
- Hay menores tiempos de establecimiento para las
composiciones de las bandejas que se encuentran en los
extremos de la columna. Esto se debe a que están más cercanas
a los intercambiadores de calor (calderin y condensador).
- Los valores en estado estable, obtenidos de la simulación de
la columna, muestran una gran cercanía con los datos de
diseño, tal como lo muestra el siguiente cuadro:
PARÁMETRO VALOR DE DISEííO VALOR CALCULADO % ERROR
Flujo de productodel tope[moles/hora]
Flujo de productode la base[moles/hora]
Composición líquidadel elemento másvolátil en elproducto del tope
Composición líquidadel elemento másvolátil en elproducto de la base
390
410
98
392,98
407,09
98,03
5.63
0.76
0.72
0.03
11.19
192
A continuación se presentan algunos comentarios respecto
del control de la columna.
- Se han simulado 10.000 instantes de tiempo, esto es,
aproximadamente 48 minutos de tiempo real del sistema, en cada
una de las cinco opciones.
- Como se puede ver, de la función objetivo escogida
(determinada por las matrices fio y fih.) , el control tiende a
minimizar las desviaciones de las fracciones molares liquidas
en las badejas 1 y NT—1, y el error terminal en todas.
- El control es eficaz en las bandejas referidas anteriormente
(1 y NT—1), esto es, las desviaciones de las fracciones
molares líquidas son menores que en el resto de las bandej as.
- No se consigue un control absoluto en todas las bandejas.
Probablemente esto se debe a que al controlar las desviaciones
de las fracciones molares liquidas en las dos bandejas
seleccionadas, se producen desviaciones en las otras. Sin
embargo, esto está de acuerdo con el criterio seleccionado ? es
decir, sólo interesa el error terminal en los demás estados.
- Para lapsos pequeños de simulación, sólo existe control en
las bandej as en donde están los sensores. Esto puede deberse a
que las señales de control son función de la señal de los
sensores, de la función objetivo y de la dinámica del sistema.
193
- La matriz de covariancias del error de estimación (E(k) ) no
depende de las observaciones realizadas, por lo tanto, el
valor de ECk) y también el de J£(k) pueden ser computados
previamente. Si el filtro óptimo es implementado en un
computador "en linea", se tiene la posibilidad de ahorrar
tiempo de computación pre-calculando las matrices E(k) y
y almacenando
- En el control óptimo, la matriz de realimentación L(k)
depende sólo de la dinámica del sistema ( AD, Ex>) y de los
parámetros de la función de pérdida (fío, fií, £2) , pero no
depende de las características de los disturbios; por lo
tanto, se puede computar previamente las matrices L(k) y £(k) ,
y almacenar L(k) .
- Es conocido que a veces la estrategia óptima de control es
muy sensible . Sería recomendable , por eo emplo , modificar las
matrices de ponderación, con lo que podría mejorar el control,
pues puede hallarse una estrategia de control que sea la más
óptima de las óptimas.
194
X TULO
CON OX.US X OÍSTE S Y RE OOMENDAGX O1SÍE
- Se ha presentado, en este trabaj o, un material que
constituye una ayuda en la operación de columnas de
destilación, mediante el empleo de la ingeniería de control,
aplicada a procesos industriales.
- Este trabajo muestra cómo el funcionamiento real de una
columna de destilación puede ser simulado dinámicamente,
utilizando un modelo matemático que incluye, simultáneamente,
los efectos de transferencia de masa y calor, y la hidráulica
de las bandejas. La aplicación de este modelo en la operación
de una columna puede permitir la predicción •de muchos
problemas que se observan en el campo de la operación, tales
como la respuesta en lazo abierto y cez^rado, estudios de
operabilidad, estabilidad, etc.
- . Este trabajo, a través del programa de simulación
implementado, pretende ser de ayuda en los siguientes
aspectos: tener evidencias respecto al grado total de
flexibilidad de la planta, ver cómo actúa el sistema en un
rango de diferentes condiciones de alimentación y de variación
de sus parámetros, ver el grado de conflabilidad de la planta
195
frente a posibles fallas naturales de los equipos, conocer
condiciones de operación imposibles u operación peligrosa,
estudiar estrategias de control, ver la respuesta de la planta¡
frente a perturbaciones, etc.
- La teoría y los algoritmos del control presentados', sirven
para cualquier caso de sistemas lineales sometidos a ruido
aditivo gaussiano.
- El control estocástico lineal muestra que hay una gran
diferencia
determinada
entre si*stemas de lazo abierto y cerrado. El
funcionamiento del sistema depende de la validez de la
información en el tiempo en que la señal de control es
Por ejemplo, un retardo en la medición de los
estados observados puede producir un deterioro en el
funcionamiento del control.
- Si el compensador óptimo es implementado en un computador
en línea, se puede tener la posibilidad de ahorrar tiempo de
computación
estimación
, pre-calculando las matrices involucradas en la
y el control, ya que? de los algoritmos obtenidos,
que dichas matrices no dependen ni de lasse observa
observaciones, ni de las características de los disturbios.
- El control óptimo implementado en la columna muestra que se
puede obtener una buena regulación a pesar de la presencia dei
perturbaciones. El diseño y los costos de implementación para!
el sistema de control óptimo deben ser competitivos coni
relación a los sistemas de control clásicos.
196
CE
El
la i
debe
trabajando
opciones.
programa
información
alimentar
DE USO DEL
está escrito de modo que entrega al usuario
suficiente como para que pueda saber qué datos
al computador, en qué tipo de sistema está
o qué información puede obtener de las diferentes
El programa está almacenado en el diskette con el nombrei
COLOMKA.KXE. Además, es necesario disponer de otro diskette
para el almacenamiento de los datos generados por el programa
y para la ley de control.
Como se explicó en el capitulo V, la primera corrida del
programa
perturbaciones, calcular los puntos de equilibrio natural de
la columna
la planta,
permite simular el sistema no-lineal sin
y la lineali2ación del sistema. Como en este caso
no se tiene información sobre la menor constante de tiempo de
es necesario dar valores de incrementos de tiempo
pequeños (del orden de 10~5 horas) para que el modelo funcione
adecuadamente.
Luego de una pantalla de presentación, el programa
solicita el ingreso de datos de: geometría de la columna;,
I 197
alimentación, propiedades físicas de la mésela, condiciones de
funcionamiento y condiciones iniciales; de la siguiente
manera:
INGRESO DE DATOS DE LA COLUMNA
NUMERO TOTAL DE PLATOS
NUMERO DE PLATOS EN LA ZONA DE AGOTAMIENTO
ALTURA DEL WEIR EN LA ZONA DE AGOTAMIENTO [pulg]
ALTURA DEL WEIR EN LA ZONA DE RECTIFICACIÓN [pulg]
DIÁMETRO EN LA ZONA DE AGOTAMIENTO [pulg]
DIÁMETRO EN LA ZONA DE RECTIFICACIÓN [pulg]
LONGITUD DEL WEIR EN LA ZONA DE AGOTAMIENTO [pulg]
LONGITUD DEL WEIR EN LA ZONA DE RECTIFICACIÓN [pulg]
INGRESO DE LAS PROPIEDADES FÍSICAS DE LA MEZCLA
COMPUESTO No.
PESO MOLECULAR Ce/mol]
DENSIDAD [g/cnT3]
CALOR DE VAPORIZACIÓN [BTU/lb]
TEMPERATURA DE EBULLICIÓN [°F]
CALOR
CALOR
ESPECIFICO DEL VAPOR [BTU/lb.°F]
(ESPECIFICO DEL LIQUIDO [Bru/ib,°F]
PRESIÓN DE VAPOR A LA TEMPERATURA TI [pai]
TKMPERATORA TI [°F]
198
PRESIÓN DE VAPOR A LA TEMPERATURA T2 [psi]
TEMPERATURA T2 [°F]
INGRESO DE LOS DATOS DE ALIMENTACIÓN
FLUJO LIQUIDO DE ALIMENTACIÓN [moles/hora]
FLUJO DE VAPOR DE ALIMENTACIÓN [moles/hora]
TEMPERATURA DE LA ALIMENTACIÓN [°F]
FRACCIÓN MOLAR LIQUIDA DEL ELEMENTO MAS VOLÁTIL [pu]
FRACCIÓN MOLAR DE VAPOR DEL ELEMENTO MAS VOLÁTIL [pu]
INGRESO DE LAS CONDICIONES DE FUNCIONAMIENTO DE LA COLUMNA
PRESIÓN EN EL PLATO SUPERIOR DE LA COLUMNA [psi] -
PRESIÓN EN LA BASE DE LA COLUMNA [psi]
PRESIÓN KN EL TANQUE DE REFLUJO [psi] =
CANTIDAD DE CALOR QUE ENTRA AL CALDERIN [xlE6 BTU] =
REFLUJO [moles/hora] =
EFICIENCIA DE LOS PLATOS [pu] =
MASA RETENIDA EN LA BASE DE LA COLUMNA [moles] =
MASA RETENIDA KN EL TANQUE DE REFLUJO [moles] =
Luego, la primera información que aparece en pantalla es
la siguiente:
199
SIMULACIÓN DEL SISTEMA NO-LINEAL SIN PERTURBACIONES
CALCÓLO DE LOS PUNTOS DE EQUILIBRIO NATURAL DE LA COLUMNA
LINEALIZACION DEL SISTEMA NO-LINEAL
PRESIONE UNA TECLA PARA CONTINUAR
Luego, el programa solicita el ingreso de datos de
tiempo:
INGRESO DE DATOS DE TIEMPO
DELTA Choras] -
TSTOP [horas] =
Donde DELTA representa el incremento de tiempo y TSTOP el
tiempo final de simulación. Una vez que se han dado estos
valores, el programa inicia la simulación, y además, en la
parte inferior de la pantalla, se muestra el tiempo en el gue
se encuentra la simulación.
Terminada de correr esta parte del programa, el
computador consulta al usuario si desea ver los valores
propios de la matriz linealisada:
200
Desea ver los valores propios del sistema lineal (S/N) ?
En caso de responder afirmativamente, en la pantalla se
indicarán estos resultados en una lista como la siguiente:
VALORES PROPIOS
No. REAL (I/hora) IMAG (2Tt/hora)
1
2 -
PRESIONE UNA TECLA PARA CONTINUAR
Inmediatamente aparece en pantalla el menú principal•que
permite escoger el tipo de sistema que se desea simular:
201
** MEMO PRINCIPAL **
ESCOJA EL TIPO DE SISTEMA
1. NO LINEAL SIN PERTURBACIONES
2. NO LINEAL CON PERTURBACIONES
3. LINEAL SIN PERTURBACIONES
4J LINEAL CON PERTURBACIONES
5. CONTROL
6. RESULTADOS
7. FIN DEL PROGRAMA
Al escoger una de las opciones entre 1 y 5, si ésta ya
fue corrida, se da un mensaje de la siguiente forma:
YA SE CORRIÓ ESTA OPCIÓN Y YA HAY RESULTADOS
SI SE CORRE OTRA VEZ ESTA OPCIÓN, SE PERDERÁN LOS RESULTADOS
GENERADOS EN LA CORRIDA ANTERIOR
Desea correr esta opción con otros datos (S/N) ?
Si se contesta negativamente, se retorna al MENÚ
PRINCIPAL, en caso contrario, se desencadenará un proceso que
se indicará más adelante.
Si del MENÚ PRINCIPAL se toma la opción (6) que
202
corresponde a RESULTADOS, aparece en pantalla lo siguiente
** RESULTADOS GRÁFICOS **
1. NO LINEAL SIN PERTURBACIONES
2- NO LINEAL CON PERTURBACIONES
3. LINEAL SIN PERTURBACIONES
4. LINEAL CON PERTURBACIONES
5. CONTROLADO
6- VALORES EN ESTADO ESTABLE
7. REGRESO A MENÚ GENERAL
La opción (6) muestra los valores de equilibrio de las
fracciones molares liquidas y de vapor del elemento más
volátil que abandonan los platos, temperatura, presión, flujos
líquidos y de vapor, y masas en estado estable en cada
bandeja.
Si se escoge una de las opciones 1 a 5, y si ésta no ha
sido corrida todavía, aparecerá en pantalla como aviso, lo
siguiente:
TODAVÍA NO SE CORRE ESTA OPCIÓN
NO HAY RESULTADOS DEL SISTEMA SOLICITADO.
PRESIONE UNA TECLA PARA CONTINUAR
203
Y se retorna al menú de RESULTADOS GRÁFICOS. Si la opción
escogida ya se corrió anteriormente, entonces se podrán ver
sus resultados. Para las opciones (1) y (2) aparecerá un menú
como el siguiente:
** MENÚ DE GRÁFICOS (1) **
1. COMPOSICIÓN
2. TEMPERATURA
3. PRODUCTOS
4. REFLUJO
5. MASA EN LOS PLATOS
6. OTRAS OPCIONES
7. RETORNO A RESULTADOS
La opción (6) que corresponde a OTRAS OPCIONES mostrará
el siguiente menú:
** MENÚ DE GRÁFICOS (2) **
1. FLUJOS DE VAPOR
2. FLUJOS LÍQUIDOS
3. MENÚ ANTERIOR
4. RETORNO A RESULTADOS
204
Si en el menú de RESULTADOS GRÁFICOS se escogen las
opciones (3) o (4), es decir, SISTEMA LINEAL SIN
PERTURBACIONES o SISTEMA LINEAL CON PERTURBACIONES, aparecerá
en pantalla el siguiente menú:
** MENÚ BE GRÁFICOS **
1. COMPOSICIÓN
2. RETORNO A RESULTADOS
Si en el menú de RESULTADOS GRÁFICOS se escoge la opción
(5) que corresponde a CONTROLADO, aparecerá una pantalla como
la siguiente:
** MENÚ DE OPCIONES **
1. ESTADOS ESTIMADOS
2. CALOR ENTREGADO AL CALDERIN
3. VARIABLES DE LA PLANTA
4. RETORNO A RESULTADOS
En cualquiera de los menús de RESULTADOS GRÁFICOS, la
elección de alguno de ellos producirá lo siguiente:
205
La opción de COMPOSICIÓN permite ver las fracciones
molares que abandonan la base, algún plato o el tanque de
reflujo, tanto del líquido como del vapor, del elemento más
volátil de la mezcla.
La opción de TEMPERATURA permite conocer la variación de
la temperatura en la base, algún plato o el tanque de reflujo
de la columna, según lo que se escoja.
La opción de PRODUCTOS gráfica el producto del tope o el
de la base, según lo que se desee.
La opción de MASA EN LOS PLATOS permite graficar la
variación de la masa de la mésela contenida en alguna bandeja
de la columna.
Las opciones de FLUJOS DE VAPOR y FLUJOS LÍQUIDOS
permiten ver los flujos que abandonan algún plato
seleccionado.
En las opciones de RESULTADOS para el sistema controlado,
la elección de VARIABLES DE LA PLANTA producirá el mismo menú
que el de MENÚ DE GRÁFICOS (1) y ' MENÚ DE GRÁFICOS (2)
indicados anteriormente. En cambio, la alternativa de ESTADOS
ESTIMADOS permite graficar el estado estimado deseado.
En el MENÚ PRINCIPAL, si se desea correr nuevamente la
opción (1) o la opción (3), es decir, SISTEMA NO LINEAL SIN
206
PERTURBACIONES y SISTEMA LINEAL SIN PERTURBACIONES,
respectivamente, se deberá especificar si se quiere utilizar
las mismas condiciones iniciales, caso contrario, se indicarán
las nuevas, y se impondrán el DELTA y TSTOP deseados. Si se
desea correr la opción (2) o la (4), que corresponden a
SISTEMA NO LINEAL CON PERTURBACIONES y SISTEMA LINEAL CON
PERTURBACIONES, respectivamente, se deberá especificar además
la matriz de covariancia del ruido de la planta. Para correr
la opción (5) que corresponde a CONTROL, se deberá indicar:
condiciones iniciales para simulación, matriz de covariancia
del ruido de la planta, error en la medición de los estados
observados, matriz de covariancia del estado inicial real,
matrices de ponderación para el control (fio, fix y fia). Además
se debe especificar si el estado inicial del modelo estimado
es igual al valor esperado del estado inicial real. En caso de
no ser asi, se debe ingresar los valores esperados del estado
inicial del modelo y la matriz de covariancia del estado
inicial del modelo. En esta misma opción de CONTROL, se debe
indicar el periodo de muestreo deseado para la discretisación
de la planta y la implementación del control.
207
B
LIESTADOO DEL
DECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREtí$ , U/o .,
DECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLAREDECLARE
SUBSUBSUBSUBSUBSUBSUBD$,SUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUB
CONTROLABLE ( A ! ( ) , B ! () )DETERMINANTE (A9!(), N%, DT#)OBSERVABLE (A! (), C! ())EAT (T5! , AA! (), FI ! O )PRESENTACIÓN ( )ESTADO (SIST$)DIBUJO (N3%, TPRINT!, NI%, MAX!, MIN!, G!()E$)TABLA ()VALPROP (AV!(), REALEO, IMAG#( ) )ENTH (T! , X! , Y! , HL! , HV ! )MWDENS (X!, MWA!., DENSA!)EQUILIBRIO (X!, P!, Y!, T!)HIDRAULIC (Mí, X!, WHÍ , WL ! , DCOL! , L! )LIMITES (N4%, N3%, MAX!, MIN!, G!())CUADRO (NJ1%, NJ2%, NJ3%, N¿4%, Nj5%3 Nj6%)MENCOMP (SIST$)MENTEMP (SIST$)MENPROD (SIST$)REF (SIST$)VAP (SIST$)MAS (NDP%7 SIST$)NUMPLATEM (NPP%, SIST$)SUSPENSIÓN (TIM! , S$)MASAPLATO (SIST$)FLUJOS (SIST$)MENFLUJ (SIST$)MENFLUJLIQ (SIST$)LN (NDP%5 SIST$)VN (NDP%, SIST$)
FUNCTION FG! (DAT! )SUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUBSUB
K1234 (DAT! , VARI! )MENGEN ( )RESULTADOS ( )MATIDEN (I! O , N2%)MATESC (Al! (}", Nl%, N%, E!, RT ! () )MATMAT (N%, Nl%, N2%, N3%, Al ! () , A2 ! () , RTSUMM (N2%, N3%, Bl ! () , B2 ! ( ) , RT ! ( ) )MATFI (T5!, AA ! () , BB ! () , AD!(), BD ! () )COPIAM (N%, Nl%, CCC1!(), CCC2 ! ( ) )LINEAL (AL! (}, BL! ( ))MMPY (a5#(), BSít(), C#( ) , N%)RAIZPOLI2 (N%, COEFítO, PREALttO, PIMAGttf»
A$5
( ) )
íti
208
DECLARE SÜB FP (N0%, C#(), X#, Y#,DECLARE SUB FZ (M0%3 C#(), X#, Y#, UR#, Víf)DECLARE SUB ARCHIVOS ()DECLARE SUB RECARCHIV (NM%)DECLARE SUB GRAFIC01 (SIST$)DECLARE SUB GRAFIC02 (SIST$)DECLARE SUB MENPLAT2 (SIST$)DECLARE SUB MENPLAT1 (SIST$)DECLARE SUB NUMPLAT2 (NPP%; SIST$)DECLARE SUB NUMPLAT1 (NPP%, SIST$)DECLARE SUB TRANSPUESTA (Nl%, N2%, MAT!(), MATT!())DECLARE SUB GENERA (D5!, E5!, X5!}DECLARE SUB GRÁFICOS (SIST$)DEFINT N *COMMON SHARED NT, NS, MW( ) , DENSO, Cl ( ) , C2 ( ) , C3(), BPT()3AVP(), BVP()COMMOÑ SHARED Gl(), G2(), G3(), G4(), G5( ) , G6(), G7(}, G10(),GE()COMMOÑ SHARED NTC, TPRINT, DELTA, NIND, NREV(), Kl()COMMOÑ SHARED TE(), XE(), YE(), ME(), P(), PB3 PDCOMMOÑ SHARED LE(), VE(), FLE? DLE, BE, RE, FVE, TFLECOMMOÑ SHARED WLS, WLR; DS, DR, WHS, WHR
CALL PRESENTACIÓN
'Ingreso de datos de la columna
datos:CLS 2LÓCATE 2, 25: PRINT "INGRESO DE DATOS DE LA COLUMNA"LÓCATE 5, 6: INPUT "NUMERO TOTAL DE PLATOS
= ", NTLÓCATE 7, 6: INPUT "NUMERO DE PLATOS EN LA ZONA DE AGOTAMIENTO
- ", NSzar:IF NS + 1 >= NT THEN GOTO zarLÓCATE 9, 6: INPUT "ALTURA DEL WEIR EN LA ZONA DE AGOTAMIENTO[pulg] = ", WHSLÓCATE 11, 6: INPUT "ALTURA DEL WEIR EN LA ZONA DERECTIFICACIÓN [pulg] = ", WHRLÓCATE 13, 6: INPUT "DIÁMETRO EN LA ZONA DE AGOTAMIENTO [pulg]
= ", DSLÓCATE 15, 6: INPUT "DIÁMETRO EN LA ZONA DE RECTIFICACIÓN[pulg] = ", DRLÓCATE 17, 6: INPUT "LONGITUD DEL WEIR EN LA ZONA DEAGOTAMIENTO [pulg] = ", WLSLÓCATE 19, 6: INPUT "LONGITUD DEL WEIR EN LA ZONA DERECTIFICACIÓN [pulg] = ", WLRLÓCATE 22, 18: INPUT "Están correctos los datos (S/N) ? ", R$IF R$ - "N" OR R$ = "n" THEN GOTO datos
DIM LV(NT), L(NT), P(NT)DIM HL(NT + 1), HV(NT + 1), V(NT)5 DM(NT), DXM(NT), XM(NT)DIM T(NT + 1), X(NT + 1), Y(NT + 1), LO(NT)DIM MV(NT), M(NT + 1), MW(2), DENS(2), BPT(2)DIM AVP(2), BVPC2), Cl(2), C2(2), C3(2)DIM XI(NT + 1), XIO(NT + 1)
209
DIM G1(NT, 25), G2(4, 25), G3(NT + 2, 25), G4(NT + 1, 25)DIM G5(NT, 25), G6(NT, 25), G7(3, 25), G10(NT, 25)DIM NREV(6)DIM TE(NT 4- 1), XE(NT 4- 1), YE(NT + 1), ME(NT 4- 1)DIM LE(NT), VE(NT), CC1(NT + 1, NT + 1)DIM A(NT 4- 1, NT 4- 1), B(NT 4- 1, 1), C(l, NT + 1)DIM AD(NT +1, NT + 1), BD(NT 4- 1, -1)DIM Kl(NT)DIM DX(NT 4- 1), DDX(NT 4- 1)DIM ZZ3(1, 1), ZZ4(1, 1), PP(NT 4- 1, NT + 1)DIM k(NT 4- 1, 1)DIM XI(NT 4- 1, O)DIM GE(NT + 1, 25), DX1(NT 4- 1, 0)DIM SO(NT -h 1, NT + 1), T3(l, NT 4- 1), T4(NT + 1, 1), T8(l, 1)DIM T5(NT + 1, NT + 1), T6(l, 1), T7(l, NT + 1), LO(1, NT + 1)DIM TT3(NT + 1, NT + 1), TT6(NT + 1, NT + 1), TT7(NT + 1, 1)DIM TT8(NT + 1, NT 4- 1)DIM TT9(NT 4-1, NT 4- 1), ü(l, 0), BU(NT + 1, O)DIM CCO(NT + 1), CC1D(NT 4-1, NT 4- 1) , CC2(1, 1), CC3(NT 4- 1)DIM M2CNT 4- 1), W(NT 4- 1), EE(1)DIM QO(NT 4- 1), Q1(NT 4- 1, NT 4- 1), Q2(l, 1)DIM REALít(NT 4-2), IMAG#(NT + 2)
'Lectura de las propiedades físicas de la mezcla
propl:CLS 2LÓCATE 1, 15: PRINT "INGRESO DE LAS PROPIEDADES FÍSICAS DE LAMEZCLA"EOR N = 1 TO 2
LÓCATE 4, 30: PRINT "COMPUESTO "; NLÓCATE 6> 6: INPUT "PESO MOLECULAR [g/mol]
- ", MW(N)LÓCATE 8, 6: INPUT "DENSIDAD [g/cnTS]
1 1 , DENS(N)LÓCATE 10, 6: INPUT "CALOR DE VAPORIZACIÓN [BTU/lb]
= ", HVAPLÓCATE 12, 6: INPUT "TEMPERATURA DE EBULLICIÓN [°F]
- ", BPT(N)LÓCATE 14, 6: INPUT "CALOR ESPECIFICO DEL VAPOR [BTU/lb.°F]
", HCAPVLÓCATE 16, 6: INPUT "CALOR ESPECIFICO DEL LIQUIDO
[BTU/lb.°F] = ", HCAPLLÓCATE 18, 6: INPUT "PRESIÓN DE VAPOR A LA TEMPERATURA TI
[psi] = ", VP1LÓCATE 20, 6: INPUT "TEMPERATURA TI [°F]
"5 TILÓCATE 22, 6: INPUT "PRESIÓN DE VAPOR A LA TEMPERATURA T2
[psi] = ", VP2LÓCATE 24, 6: INPUT "TEMPERATURA T2 [°F]
- ", T2DENS(N) = 62.372 * DENS(N)AVP(N) = (TI 4- 460) * (T2 4- 460) * LOG(VP2 / VP1) / (TI -
T2)BVP(N) - LOG(VP2) - AVP(N) / (T2 4- 460)C2(N) = HCAPV * MW(N)C3(N) = HCAPL * MW(N)
210
C1(N) = BPT(N) * (C3(N) - C2(N)) + HVAP * MW(N)CLS 2
NEXT NLÓCATE 5, 22: INPÜT "Están correctos los datos (S/N)? ", R$IF R$ - "N" OR R$ = "n" THEN GOTO propl
'Lectura de los datos de alimentación
ooo:CLS 2LÓCATE 3, 21: PRINT "INGRESO DE LOS DATOS DE ALIMENTACIÓN"LÓCATE 7, 8: INPÜT "FLUJO LIQUIDO DE ALIMENTACIÓN [moles/hora]
- ", FLELÓCATE 9, 8: INPÜT "FLUJO DE VAPOR DE ALIMENTACIÓN[moles/hora] = ", FVELÓCATE 11, 8: INPÜT "TEMPERATURA DE LA ALIMENTACIÓN [°F]
= ", TFLEfrt:LÓCATE 13, 8: INPÜT "FRACCIÓN MOLAR LIQUIDA DEL ELEMENTO MASVOLÁTIL [pu] - ", XFELÓCATE 15, 8: INPÜT "FRACCIÓN MOLAR DE VAPOR DEL ELEMENTO MASVOLÁTIL [pu] = ", YFEIF XFE >= 1! OR YFE >= 1 OR XFE <= O! OR YFE <= O! THEN GOTOfrtLÓCATE 19, 20: INPÜT "Están correctos los datos (S/N) ? ", ASIF A$ = "N" OR A$ = "n" THEN GOTO ooo
'Lectura de las condiciones de funcionamiento
cond:CLS 2LÓCATE 2, 9: PRINT "INGRESO DE LAS CONDICIONES DEFUNCIONAMIENTO DE LA COLUMNA"LÓCATE 5, 8: INPÜT "PRESIÓN EN LA BASE DE LA COLUMNA [psi]
= ", PBLÓCATE 7, 8: INPÜT "PRESIÓN EN EL PLATO SUPERIOR DE LA COLUMNA[psi] = ", PSIF PS > PB THEN GOTO condLÓCATE 9, 8: INPÜT "PRESIÓN EN EL TANQUE DE REFLUJO [psi]
- ", PDIF PS < PD THEN GOTO condLÓCATE 11, 8: INPÜT "CANTIDAD DE CALOR QUE ENTRA AL CALDERIN[xlE6 BTU] = ", QBELÓCATE 13, 8: INPÜT "REFLUJO [moles/hora]
= ", REsp:LÓCATE 15, 8: INPÜT "EFICIENCIA DE LOS PLATOS [pu]
= ", EFFIF EFF > 1! OR EFF <- O THEN GOTO spLÓCATE 17, 8: INPÜT "MASA RETENIDA EN LA BASE DE LA COLUMNA[moles] = ", M(0)LÓCATE 19, 8: INPÜT "MASA RETENIDA EN EL TANQUE DE REFLUJO[moles] = ", M(NT + 1)LÓCATE 23, 19: INPÜT "Están correctos los datos (S/N) ? ", R$IF R$ = "N" OR R$ ~ "n" THEN GOTO cond
211
'Cálculo de las presiones en cada plato
FOR N - 1 TO NTP(N) = (PB - (N * (PB - PS)) / NT)
NEXT NCLS 2LÓCATE 5, 14: PRINT "SIMULACIÓN DEL SISTEMA NO-LINEAL SINPERTURBACIONES"LÓCATE 8, 11: PRINT "CALCULO DE LOS PUNTOS DE EQUILIBRIONATURAL DE LA COLUMNA"LÓCATE 11, 22: PRINT "LINEALIZACION DEL SISTEMA NO LINEAL"LÓCATE 19, 24: PRINT "PRESIONE -UNA TECLA PARA CONTINUAR"fl:IF INKEY$ = "" THEN GOTO fl
'Lectura de las composiciones iniciales
P0:CLS 2LÓCATE 2, 16: PRINT "INGRESO DE LAS FRACCIONES MOLARESLIQUIDAS"LÓCATE 4, 14: PRINT "INICIALES DEL ELEMENTO MA-S VOLÁTIL DE LAMEZCLA"Pl:LÓCATE 8, 9: INPUT "Composición inicial liquida que abandonala base = ", XIO(O)IF XIO(O) >= 1! OR XIO(O) <= O! THEN GOTO plFOR N - 1 TO NTP2:
LÓCATE (8 + N), 9: PRINT "Composición del liquido queabandona el plato "; N; : INPUT " = ", XIO(N)IF XIO(N) >= 1! OR XIO(N) <= O! THEN GOTO p2
NEXT NP3:LÓCATE (8 + N), 9: INPUT "Composición del liquido que abandonael tanque de reflujo = ", XIO(NT 4- 1)IF XIO(NT + 1) >= 1! OR XIO(NT +1) <= O! THEN GOTO p3LÓCATE (12 + N)5 19: INPUT "Están correctos los datos (S/N) ?
IF A$ - "N" OR A$ = "n" THEN GOTO pO
'Lectura de los flujos iniciales
zO:CLS 2LÓCATE 3, 18: PRINT "INGRESO DE LOS FLUJOS LÍQUIDOS INICIALES"LÓCATE 5, 26: PRINT "QUE ABANDONAN LOS PLATOS"FOR N - 1 TO NT
LÓCATE (9 + N), 6: PRINT "Flujo liquido [moles/hora] queabandona el plato "; N; : INPUT " = ", LO(N)
NEXT NLÓCATE (12 + N), 19: INPUT "Están correctos los datos (S/N) ?" , A$IF A$ - "N" OR A$ = "n" THEN GOTO zOCLS 2LÓCATE 2, 18: PRINT "SISTEMA NO-LINEAL SIN PERTURBACIONES" .
212
'Cálculo de temperaturas iniciales
FOR N = O TO NT + 1T(N) - ABS(BPT(2) - N * (BPT(2) - BPT(l)) / NT)
NEXT NNIND - 1FOR N = O TO NT + 1
X(N) = XIO(N)NEXT N
'Actualización de datos
actuall:
"Sistema no-lineal con y sin perturbaciones
R = REIF NREV(l) - O THEN GOTO resIF NREV(l) - 1 THEN
IF NIND = 1 THENFOR N = O TO NT + 1
VV(N) = O!NEXT NCLS 2LÓCATE 4, 20: PRINT "SISTEMA NO LINEAL SIN PERTURBACIONES"
ELSEIF NIND = 2 THENCLS 2LÓCATE 4, 20: PRINT "SISTEMA NO LINEAL CON PERTURBACIONES11
END IF
'Ingreso de condiciones iniciales
rep4:LÓCATE 9S 6: INPUT "Desea condiciones iniciales originales
para simulación (S/N) ? ", D$IF D$ = "n" OR D$ = "N" THEN
tir:CLS 2LÓCATE 5, 4INPUT "Composición inicial liquida que abandona la base
= ", X(0)FOR N - 1 TO NT
LÓCATE (5 + N), 4PRINT "Composición inicial liquida que abandona elplato "; N; : INPUT " = ", X(N)
NEXT NLÓCATE (5 + N), 4INPUT "Composición inicial liquida que abandona el tanquede reflujo = ", X(NT + 1)LÓCATE (8 4- N), 20: INPUT "Están correctos los datos (S/N)? ", A$IF A$ = "n" OR A$ = "N" THEN GOTO tir
dar:CLS 2FOR N ~ 1 TO NT
LÓCATE (4 + N), 2
213
PRINT "Flujo liquido [moles/hora] que abandona el plato"; N; : INPUT " = ", LO(N)
NEXT NLÓCATE (7 + N), 20: INPUT "Están correctos los datos (S/N)? ", A$IF A$ - "n" OR A$ = "N" THEN GOTO dar
ELSEIF D$ = "s" OR D$ = "S" THENFOR N = O TO NT + 1
X(N) - XIO(N)NEXT N
ELSEIF D$ <> "n" OR D$ <> "N" OR D$ <> "s" OR D$ <> '"S" THENGOTO rep4
END IFEND IFres:IF NIND - 2 THENret:CLS 2LÓCATE 2, 12: PRINT "INGRESO DE LA MATRIZ DE COVARIANCIAS DELOS RUIDOS"LÓCATE 4, 9: PRINT "INGRESE LA MATRIZ DE COVARIANCIAS DELRUIDO DE LA PLANTA"FOR N = O TO NT + 1
LÓCATE (7 + N), 24PRINT "Cl("; N; ","; N; ") = "; : INPUT " ", CClfN, N)
NEXT NLÓCATE (9 + N), 20: INPUT "Están correctos los datos (S/N) ?" , A$IE A$ - "n" OR AS = "N" THEN GOTO ret
END IFCLS 2
CALL ENTHCTFLE, XFE3 YFE, HLF, HVF)
"Cálculo de retenciones iniciales
FOR N = 1 TO NSXX - X(N)CALL MWDENS(XX, MWA, DENSA)LV(N) = LO(N) * MWA / DENSAL(N) - LO(N)HFOW - (LV(N) / (999 * WLS)) " (2/3)MV(N) = (HFOW + WHS / 12) * 3.1416 * (DS ~ 2) / (4 * 144)M(N) = MV(N) * DENSA / MWA
NEXT NFOR N = (NS + 1) TO NT
XX - X(N)CALL MWDENS(XX? MWA3 DENSA)LV(N) - LO(N) * MWA / DENSAL(N) = LO(N)HFOW - (LV(N) / (999 * WLR)) " (2/3)MV(N) - (HFOW + WHR / 12) * 3.1416 * (DR ~ 2} / (4 * 144)M(N) = MV(N) * DENSA /'MWA
NEXT NXM(0) = M(0) * X(0)
214
FOR N = 1 TO NTXM(N) - M(N) * X(N)
NEXT N
'Ingreso de datos de tiempo
nolin:CLS 2SCREEN 2LÓCATE 3, 25: PRINT "INGRESO DE DATOS DE TIEMPO"IF NIND = 1 AND NREV(l) = O THENLÓCATE 6, 3: INPUT "DELTA [Horas] = ", DELTALÓCATE 8, 3: INPUT "TSTOP [Horas] = ", TSTOPIF DELTA >- TSTOP THEN GOTO nolinGOTO paf:
END IFLÓCATE 6, 7PRINT "La menor constante de tiempo de la planta es ";PRINT ÜSING "##.##### [horas].11; TMINLÓCATE 8, 5PRINT "El incremento de tiempo DELTA debe ser mucho menor aesta constante."LÓCATE 11, 3: INPÜT "DELTA [Horas] = " , DELTALÓCATE 13, 3: INPUT "TSTOP [Horas] = ", TSTOPIF DELTA >- TSTOP OR DELTA >= TMIN THEN GOTO nolinpaf:TPRINT1 = TSTOP / 25!IF TPRINT1 <= DELTA THEN TPRINT = DELTAIF TPRINT1 > DELTA THEN TPRINT - TPRINT1TIME = OTFLAG = ONTC = -1LAZ01:IF NIND = 1 THEN GOTO SALTO
"Perturbaciones
FOR N - O TO NT + 1D5 - SQR(CC1(N, N))CALL GENERA(D5, O, VV(N))
NEXT NSALTO:CALL EQUILIBRIO(X(0), PE, Y(0), T(0))CALL ENTH(T(0), X(O), Y(0), HL(0), HV(0))FOR N = 1 TO NS
XX = X(N)CALL EQUILIBRIO(XX, P(N)3 YY, T(N))Y(N) - (YY - Y(N - 1)) * EFF + Y(N - 1)YY - Y(N)CALL ENTH(T(N), XX, YY, HL(N), HV(N))
NEXT NXX = X(NS + 1)CALL EQUILIBRIO(XX, P(NS + 1), YY3 T(NS + 1))IF FVE = O THENYAV = Y(NS)
ELSE YAV - (YFE * FVE + Y(NS) * V(NS)) / (V(NS) + FVE)END IF
215
Y(NS + 1) = (YY - YAV) * EFE + YAVYY - Y(NS + 1)CALL ENTH(T(NS +1), XX, YY, HL(NS + 1), HV(NS + 1))FOR N = (NS + 2) TO NT
XX = X(N)CALL EQUILIBRIO(XX, P(N), YY, T(N))Y(N) = (YY - Y(N - 1)) * EFF -f Y(N - 1)YY = Y(N)CALL ENTH(T(N), XX, YY, HL(N), HV(N))
NEXT NCALL EQUILIBRIO(X(NT + 1), PD, Y(NT 4- 1), T(NT + 1))CALL ENTH(T(NT + 1), X(NT + 1), Y(NT + 1), HL(NT + 1), HV(NT +D)
'Cálculo de los flujos de vapor
V(0) = (QBE * 1000000 - L(l) * (HL(0) - HL(1))) / (HV(0) -HL(0))B - L(l) - V(0)IF B < O THENCALL SUSPENSIÓN(TIME, "EL PRODUCTO DE LA BASE")GOTO men
END IFV(l) - (HL(2) * L(2) + HV(0) * V(0) - HL(1) * L(l)) / HV(1)IF V(l) < O THENCALL SUSPENSIÓN(TIME, "EL FLUJO DE VAPOR")GOTO men
END IFFOR N = 2 TO (NS - 1)
V(N) = (HL(N 4- 1) * L(N + 1) 4 HV(N - 1) * V(N - 1) - HL(N)* L(N)) / HV(N)IF V(N) < O THENCALL SUSPENSIÓN(TIME, "EL FLUJO DE VAPOR")GOTO men
END IFNEXT NV(NS) = (HL(NS 41)* L(NS 41)4 HV(NS - 1) * V(NS - 1) -
HL(NS) * L(NS) 4 HLF * FLE) / HV(NS)IF V(NS) < O THENCALL SUSPENSIÓN(TIME, "EL FLUJO DE VAPOR")GOTO men
END IFV(NS + 1) = (HL(NS 42)* L(NS 4 2) + HV(NS) * V(NS) 4 HVF *
FVE - HL(NS + 1) * L(NS + 1)) / HV(NS + 1)IF V(NS 4 1) < O THENCALL SUSPENSIÓN(TIME, "EL FLUIDO DE VAPOR")GOTO men
END IFFOR N = (NS + 2) TO (NT - 1)
V(N) - (HL(N + 1) * L(N + 1) + HV(N - 1) * V(N - 1) - HL(N)* L(N)) / HV(N)
IF V(N) < O THENCALL SUSPENSIÓN(TIME, "EL FLUIDO DE VAPOR")GOTO men
END IFNEXT N
216
V(NT) = (HL(NT + 1) * R + HV(NT - 1) * V(NT - 1) - HL(NT) *• L(NT)) / HV(NT)
IF V(NT) < O THENCALL SUSPENSIÓN(TIME, "EL FLUIDO DE VAPOR")GOTO men
END IFDL - V(NT) - R
¡ IF DL < O THENCALL SUSPENSIÓN(TIME, "EL PRODUCTO LIQUIDO")GOTO men
END IF
'Evaluación de derivadas
DM(0) - L(l) - B - V(0)FOR N - 1 TO (NS - 1)
DM(N) = L(N + 1) + V(N - 1) - L(N) - V(N)NEXT NDM(NS) - L(NS + 1) + FLE 4- V(NS - 1) - L(NS) - V(NS)DM(NS + 1) - L(NS-+ 2) + FVE + V(NS) - L(NS + 1) - V(NS + 1)FOR N = (NS + 2) TO (NT - 1)
DM(N) = L(N + 1) + V(N - 1) - L(N) - V(N)NEXT NDM(NT) = R + V(NT - 1) - L(NT) - V(NT)DXB = (X(l) * L(l) - Y(0) * V(0) - X(0) * B) / M(0) + W(0)FOR NI - 1 TO (NS - 1)
DXM(Nl) = X(N1 + 1) * L(N1 + 1) + Y(N1 - 1) * V(N1 - 1) -X(N1) * L(N1) - V(N1) * Y(N1) + M(N1) * W(N1)NEXT NIDXM(NS) = X(NS + 1) * L(NS + 1) + Y(NS - 1) * V(NS - 1) -
X(NS) * L(NS) - V(NS) * Y(NS) + FLE * XFE + M(NS) *W(NS)
DXM(NS + 1) = X(NS + 2) * L(NS 4- 2) + Y(NS) * V(NS) - X(NS +1) * L(NS + 1) - V(NS + 1) * Y(NS + 1) + FVE *YFE + M(NS + 1) * W(NS + 1)
FOR N2 = (NS + 2) TO (NT - 1)DXM(N2) ~ X(N2 + 1) * L(N2 + 1) + Y(N2 - 1) * V(N2 - 1} -
X(N2) * L(N2) - V(N2) * Y(N2) + M(N2) * VV(N2)NEXT N2DXM(NT) = X(NT + 1) * R + Y(NT - 1) * V(NT - 1) - X(NT) *
L(NT) - Y(NT) * V(NT) + M(NT) * VV(NT)DXD - (V(NT) * Y(NT) - (R + DL) * X(NT + 1)) / M(NT + 1) +
VV(NT + 1)datl:IF TIME > TSTOP THEN
'Creación de archivos de datos
CALL ARCHIVOSIF NREV(l) = O THEN
'Asignación de valores en estado estable
TE(0) - T(0)FOR N = 1 TO NT
TE(N) = T(N)NEXT N
217
TE(NT + 1) = T(NT + 1)FOR N = O TO NT + 1
XE(N) = X(N)NEXT NFOR N = O TO NT + 1
YE(N) = Y(N)NEXT NME(0) = M(0)FOR N - 1 TO NT
ME(N) = M(N)NEXT NME(NT + 1} = M(NT + 1)FOR N = 1 TO NT
LE(N) = L(N)NEXT NVE(0) = V(0)FOR N = 1 TO NT
VE(N) = V(N)NEXT NBE = BDLE = DL
'Resolución del modelo lineal
CALL LINEAL(A(), B())C(0, NT - 1) - 1C(l, 1). = 1CALL VALPROP(A(), REALtf(), IMAGtf())NREV(l) = 1MAYORR = O!MAYORI = O!FOR N = 1 TO NT + 2
IF REAL#(N) > O! THENCLS 2LÓCATE 4, 25PRINT "EL SISTEMA LINEAL ES INESTABLE"LÓCATE 6, 5PRINT "EXISTEN POLOS CON PARTE REAL POSITIVA"LÓCATE 20, 10PRINT "PRESIONE UNA TECLA PARA CONTINUAR"
www:IF INKEY$ = "" THEN GOTO www
. END IFIF ABS(REALtf(N)) > MAYORR THEN MAYORR = ABS(REAL#(N))
NEXT NFOR N = 1 TO NT + 2
IF ABS(IMAG#(N)) > MAYORI THEN MAYORI - ABS(IMAGtt(N))NEXT NTMINR = 1! / MAYORRIF MAYORI = 01 THENTMIN = TMINR
ELSETMINI = 2! * 3.1416 / MAYORIIF TMINR < TMINI THENTMIN = TMINR
ELSETMIN = TMINI
218
END IFEND IF
END IFmen:CALL MENGENIF NIND = 1 OR.NIND = 2 THEN GOTO actuallIF NIND - 3 OR NIND - 4 THEN GOTO sistemalinealIF NIND = 5 THEN GOTO control
END IFIF TIME < TFLAG THENGOTO 210
ELSE
'Asignación de variables para gráficos
LÓCATE 21, 3: PRINT USING "Tiempo = #.#### [horas]"; TIMENTC - NTC 4- 1FOR N = 1 TO NT
G3(N, NTC) - T(N)NEXT NG3(NT + 1, NTC) = T(0)G3(NT + 2, NTC) = T(NT + 1)FOR N = 1 TO NT
G1(N, NTC) = X(N)NEXT NFOR N = 1 TO NT
G4(N, NTC) - V(N)G5(N, NTC) - L(N)G6(N, NTC) = M(N)
NEXT NG4(NT + 1, NTC) ~ V(0)G2(l, NTC) = X(0)G2(2, NTC) = X(NT + 1)G2(3; NTC) = Y(NT + 1)G2(4, NTC) = Y(0)G7(l, NTC) - BG7(2, NTC) = DLG7(35 NTC) = RFOR N - 1 TO NT
G10(N, NTC) = Y(N)NEXT N
END IF
TFLAG = TFLAG + TPRINT
'Integración por Runge
210 :TIME = TIME + DELTAFOR N = 1 TO NT
CALL K1234(DM(N); M(N))IF M(N) < O THENCALL SUSPENSIÓN(TIME, "LA MASA EN UN PLATO")GOTO men
END IFNEXT NCALL K1234(DXB, X(0))
219
IF X(0) < O THEN X(0) - OIF X(0) > 1 THEN X(0) = 1FOR NI - 1 TO NT
CALL K1234(DXM(N1), XM(N1))X(N1) = XM(Nl) / M(N1)IF X(N1) > 1 THEN X(N1) = 1IF X(N1) < O THEN X(N1) = O
NEXT NICALL K1234(DXD, X(NT +1))IF X(NT + 1} < O THEN X(NT + 1). = OIF X(NT + 1) > 1 THEN X(NT + 1) = 1
'Cálculo de los nuevos flujos líquidos
FOR N - 1 TO NSXX = X(N)CALL HIDRAULIC(M(N), XX, WHS, WLS3 DS, L(N))
NEXT NFOR N = (NS 4- 1) TO NT
XX = X(N)CALL HIDRAULIC(M(N) , XX, WHR, WLR? DR, L(N) }
NEXT NGOTO LAZ01:
'Sistema lineal
sistemalineal:
'Sistema lineal con o sin perturbaciones
CLS 2IF NIND = 3 THENLÓCATE 3, 23: FRINT "SISTEMA LINEAL SIN PERTURBACIONES"
ELSEIF NIND = 4 THENLÓCATE 3, 23: PRINT "SISTEMA LINEAL CON PERTURBACIONES"
END IF
'Ingreso de condiciones iniciales
rep3:LÓCATE 6, 19: PRINT "Desea condiciones iniciales originales"LÓCATE 8, 18: INPUT "para la simulación de la planta (S/N) ?" , D$IF D$ = "n" OR D$ = "N" THENsir:CLS 2LÓCATE 5, 2INPUT "Composición inicial líquida que abandona la base
= ", X(0)FOR N = 1 TO NT
LÓCATE (5 + N), 2PRINT "Composición inicial líquida que abandona el plato11 ; N; : INPUT " = ", X(N)
NEXT NLÓCATE (5 + N), 2
220
INPUT "Composición inicial líquida que abandona el tanque dereflujo = ", X(NT + 1)LÓCATE (8 + N), 18: INPÜT "Están correctos los datos (S/N) ?", A$IF A$ = "n" OR A$ = "N" THEN GOTO sir
ELSEIF D$ = "s" OR D$ = "S" THENFOR N = O TO NT 4- 1
X(N) = XIO(N)NEXT N
ELSEIF D$ <> "n" OR D$ <> "N" OR D$ <> "s" OR D$ o "S" THENGOTO rep3
END IF
'Actualización de datos
FOR N = O TO NT + 1DX(N) = X(N) - XE(N)
NEXT NIF NIND = 4 THENoir:CLS 2LÓCATE 2, 13: PRINT "INGRESO DE LA MATRIZ DE COVARIANCIAS DELOS RUIDOS";LÓCATE 4, 11: PRIMT "INGRESE LA MATRIZ DE COVARIANCIAS DELRUIDO DE LA PLANTA "FOR N = O TO NT + 1
LÓCATE (8 + N), 28: PRINT "Cl("; N; ","; N; ") - "; :INPUT "", CC1(N, N)
NEXT NLÓCATE (11 + N), 20: INPUT "Están correctos los datos (S/N)? ", A$IF A$ - "n" OR A$ = "N" THEN GOTO oir
ELSEIF NIND = 3 THENFOR N - O TO NT + 1
W(N) = ONEXT N
END IF
"Ingreso de datos de tiempo
repS:CLS 2SCREEN 2LÓCATE 3, 25: PRINT "INGRESO DE DATOS DE TIEMPO"LÓCATE 6, 7PRINT "La menor constante de tiempo de la planta es ";PRINT USING "##,##### [horas]."; TMINLÓCATE 8, 6PRINT "El incremento de tiempo DELTA debe ser mucho menor aesta constante."LÓCATE 12, 6: INPUT "DELTA [Horas] = ", DELTALÓCATE 14, 6: INPUT "TSTOP [Horas] = ", TSTOPIF DELTA >= TSTOP OR DELTA >= TMIN THEN GOTO repSTPRINT1 = TSTOP / 25!IF TPRINT1 <= DELTA THEN TPRINT = DELTAIF TPRINT1 > DELTA THEN TPRINT = TPRINT1TIME = O!
221
TFLAG = O!NTC - OLAZ02:IF NIND - 3 THEN GOTO salto2
"Perturbaciones
FOR N - O TO NT 4D5 = SQR(CC1(N.CALL GENERA(D5.
NEXT Nsalto2:DDX(O) - ((-LE(1)
FOR N = 1DDX(N)
NEXT NDDX(NS) -
1
TO NS -= (K1(NVE(N -4 1) *
N))O, W(N))
4 VE(0) - Kl(0ME(0) 4 W(0)1- 1) * VE(N -1) + VE(N) -DX(N 4 1)) /
VE(0)) * DX(0) + LE(1) *
1) * DX(NK1(N) *ME(N) +
1)VE(N))W(N)
+ (-LE(N + 1) -* DX(N) + LE(N
(K1(NS - 1) * VE(NS - 1) * BX(NS - 1) + (-LE(NS + 1)- FLE - VE(NS - 1) 4- VE(NS) - Kl(NS) * VE(NS)) *DX(NS) + LE(NS + 1) * DX(NS + 1)) / ME(NS) + W(NS)
DDX(NS + 1} = (Kl(NS) * VE(NS) * DX(NS) + (-LE(NS + 2} - FVE -VE(NS) + VE(NS + 1) - K1(NS + 1) * VE(NS + 1)) *DX(NS + 1) + LE(NS + 2) * DX(NS + 2)) / ME(NS +1) + W(NS + 1)
FOR N = HS + 2 TO NT - 1DDX(N) = (K1(N - 1) * VE(N - 1) * DX(N - 1) +
VE(N - 1) + VE(N)4- 1) * DX(N -i- 10)
NEXT NDDX(NT) = (K1(NT - 1) * VE(NT - 1) * DX(NT -
- 1) + VE(NT) - Kl(NT) * VE(NT)) */ ME(NT) + VV(NT)* VE(NT) * DX(NT) - VE(NT) * DX(NT+ 1) + W(NT 4- 1)
datl
1) * DX(N - 1)K1(N) * VE(N)}ME(N)
(~LE(NDX(N)
+ 1} -LE(N
DDX(NT +DX(NT + 1))1) - (Kl(NT)
/ ME(NT
1) + (-RE - VE(NTDX(NT) + RE *
4- 1))
IF TIMEIF TIME
TSTOPTFLAG
THENTHEN
GOTOGOTO 420
'Asignación de valores para gráficos
LÓCATE 17, 6: PRINT USING "Tiempo - #.#### [horas]FOR N = 1 TO NT
G1(N, NTC) - X(N)NEXT NFOR N - 1 TO NT
G10(N, NTC) = Y(N).NEXT NG2(l, NTC) = X(0)G2(2, NTC) = X(NT + 1)G2(3S NTC) = Y(NT + 1)G2(4, NTC) - Y(0)NTC = NTC + 1TFLAG = TFLAG + TPRINT
TIME
Integración por Runge
222
420 :TIME = TIME + DELTAFOR N = O TO NT + 1
CALL K1234(DDX(N), DX(N))X(N) = DX(N) + XE(N)IF X(N) < O THEN X(N) = OIF X(N) > 1 THEN X(N) - 1
NEXT NGOTO LAZ02
'Sistema controlado
control:CLS 2LÓCATE 2, 17: PRINT "SISTEMA NO LINEAL CON PERTURBACIONES Y SUCONTROL"LÓCATE 5, 5: PRINT "SE ESTA VERIFICANDO LA CONTROLABILIDAD YOBSERVABILIDAD DEL SISTEMA"CALL OBSERVABLE(A(), C())CALL CONTROLABLE(A(}, B())
'Ingreso de condiciones iniciales
CLS 2LÓCATE 2, 17: PRINT "SISTEMA NO LINEAL CON PERTURBACIONES Y SUCONTROL"rep5:LÓCATE 7, 1: INPUT "Desea condiciones iniciales originalespara simulación de la planta (S/N) ", D$IF D$ = "n" OR D$ = "N" THENpir:CLS 2LÓCATE 5, 5INPUT "Composición inicial liquida que abandona la base- ", X(0)FOR N = 1 TO NT
LÓCATE (5 + N), 5PRINT "Composición inicial liquida que abandona el plato11; N; : INPUT " = ", X(N)
NEXT NLÓCATE (5 + N), 5INPUT "Composición inicial líquida que abandona el tanque dereflujo = ", XCNT + 1)LÓCATE (8 + N), 20: INPUT "Están correctos los datos (S/N) ?", A$IF A$ - "n" OR A$ = "N" THEN GOTO pir
xir:CLS 2FOR N - 1 TO NT
LÓCATE (4 + N), 10PRINT "Flujo líquido que abandona el plato "; N; : INPUT
1 1 , LO(N)NEXT NLÓCATE (7 + N), 20: INPUT "Están correctos los datos (S/N) ?", A$IF A$ = "n" OR A$ = "N" THEN GOTO xir
223
ELSEIF D$ = "s" OR D$ - "S" THENFOR N - O TO NT + 1
X(N) - XIO(N)NEXT N
ELSEIF D$ <> "n" OR D$ <> "N" OR D$ <> "s" OR D$ <> "S" THENGOTO rep5
END IFARRIBAR = X(NT - 1)ABAJOR - X(l)wir:CLS 2LÓCATE 2, 13: PRINT "INGRESO DE LAS MATRICES DE COVARIANCIASDE LOS RUIDOS"LÓCATE 4, 11: PRINT "INGRESE LA MATRIZ DE COVARIANCIAS DELRUIDO DE LA PLANTA "FOR N = O TO NT + 1
LÓCATE (8 4- N), 26PRINT "C1C11; N; ", "; N; ") = "; : INPUT "", CC1(N, N)
NEXT NLÓCATE (11 4- N), 20: INPUT "Están correctos los datos (S/N) ?
IF A$ = "n" OR A$ = "N11 THEN GOTO wirrer:CLS 2LÓCATE 4, 13: PRINT "INGRESE EL ERROR EN LA MEDICIÓN DE LOSESTADOS OBSERVADOS"FOR N - O TO 1
LÓCATE (7 + N), 26PRINT "C2("; N; ","; N ; " } = " ; : INPUT "", CC2(N, N)
NEXT NLÓCATE (10 + N), 20: INPUT "Están correctos los datos (S/N) ?
IF A$ = "n" OR A$ = "N" THEN GOTO rerbir:CLS 2LÓCATE 2, 22: PRINT "INGRESE LA MATRIZ DE COVARIANCIAS"LÓCATE 4, 26: PRINT " DEL ESTADO INICIAL REAL"LÓCATE 7, 5INPUT "Covariancia de la composición en la base- ", CCO(O)FOR N = 1 TO NT
LÓCATE (7 + N), 5PRINT "Covariancia de la composición en el plato "; N; "= "; : INPUT "", CCO(N)
NEXT NLÓCATE (7 + N), 5INPUT "Covariancia de la composición en el tanque de reflujo- ", CCO(NT 4- 1)LÓCATE (10 4- N), 20: INPUT "Están correctos los datos (S/N) ?
IF A$ = "n" OR AS - "N" THEN GOTO bir
"Ingreso de la matriz de ponderación QO
bis:CLS 2LÓCATE 2, 13: PRINT "INGRESO DE LA MATRIZ DE PONDERACIÓN QO"
225
IF A$ - "n" OR A$ = "N" THEN GOTO tisgir:CLS 2LÓCATE 2, 21: PRINT "INGRESE LA MATRIZ DE COVARIANCIAS "LÓCATE 4, 21: PRINT " DEL ESTADO INICIAL DEL MODELO "LÓCATE 8, 6INPUT "Covariancia de la composición en la base- ", CC3(0)FOR N = 1 TO NT
LÓCATE (8 + N), 6PRINT "Covariancia de- la composición en el plato "; N;= "; : INPÜT "", CC3(N)
NEXT NLÓCATE (8 + N), 6INPUT "Covariancia de la composición en el tanque de reflujo= ", CC3(NT 4- 1)LÓCATE (11 + N), 20: INPUT "Están correctos los datos (S/N)? ", A$IF A$ - "n" OR A$ = "N" THEN GOTO gir
'Generación del estado inicial estimado para el modelo
FOR N = O TO NT + 1D5 = SQR(CC3(N))E5 = M2(N)CALL GENERA(D5, E5, X5)X1(N, 0) = X5
NEXT NELSEIF Q$ = "S" OR QS = "s" THEN
FOR N - O TO NT + 1X1(N, O) = X(N)
NEXT NEND IFARRIBAE = XI(NT - 1, 0)ABAJOE = Xl(l, O)CALL ENTH(TFLE, XFE, YFE, HLF, HVF)
Cálculo de retenciones iniciales
FOR N = 1 TO NSXX = X(N)CALL MWDENS(XX, MWA, DENSA)LV(N) = LO(N) * MWA / DENSAL(N) = LO(N)HFOW = (LV(N) / (999 * WLS)) ~ (2 /MV(N) = (HFOW + WHS / 12) * 3,1416 >M(N) - MV(N) * DENSA / MWA
NEXT NFOR N = (NS 4- 1) TO NT
XX = X(N)CALL MWDENS(XX, MWA, DENSA)LV(N) = LO(N) * MWA / DENSAL(N) = LO(N)HFOW - (LV(N) / (999 * WLR) ) " (2 /MV(N) - (HFOW + WHR / 12) * 3,1416 üM(N) = MV(N) * DENSA / MWA
NEXT N
3)t (DS
3)K (DR
2) / (4 * 144)
2) / (4 * 144)
226
XM(0) = MC01 * X(0)FOR N = 1 TO NT
XM(N) - M(N) * X(N)NEXT N
"Condiciones iniciales
FOR N = O TO NT + 1PP(N, N) = CCO(N)
NEXT N
'Ingreso de datos de tiempo
nolin2:CLS 2SCREEN 2LÓCATE 3r 25: PRINT "INGRESO DE DATOS DE TIEMPO"LÓCATE 6, 7PRINT "La menor constante de tiempo de la planta es " ;PRINT USING "##.##### [horas]."; TMINLÓCATE 8, 5PRINT "El incremento de tiempo DELTA debe ser mucho menor aesta constante."LÓCATE 11, 3: INPUT ''DELTA [Horas] = " , DELTALÓCATE 13, 3: INPUT "TSTOP [Horas] = ", TSTOPIF DELTA >= TSTOP OR DELTA >- TMIN THEN GOTO nolin2TPRINT1 = TSTOP / 25!IF TPRINT1 <- DELTA THEN TPRINT = DELTAIF TPRINT1 > DELTA THEN TPRINT = TPRINT1
'Discretisación de las ecuaciones de estado
CLS 2LÓCATE 2, 17: PRINT "DISCRETIZACION DE LAS ECUACIONES DEESTADO"LÓCATE 5, 7PRINT "La menor constante de tiempo de la planta es " ;PRINT USING "##.##### [horas]."; TMINLÓCATE 7, 9PRINT "El período de maestreo debe ser mucho menor a estaconstante. "LÓCATE 10, 9: INPUT "Período de muestreo [horas] = ", PERIODOIF PERIODO > TSTOP THEN GOTO qqq .IF PERIODO < DELTA THENLÓCATE 13, 13PRINT "No es posible que el período sea menor al incremento1LÓCATE 14, 17PRINT "de tiempo para la simulación de la planta real"LÓCATE 20, 22PRINT "PRESIONE UNA TECLA PARA CONTINUAR"
eee:IF INKEYS = "" THEN GOTO eeeGOTO qqq
END IF
227
'Ajuste del periodo escogido para que sea múltiplo de DELTA
N = PERIODO / DELTAPERIODO - N * DELTACLS 2LÓCATE 10, 14: PRINT "EL COMPUTADOR ESTA CALCULANDO LASMATRICES DISCRETIZADAS"CALL MATFKPERIODO, A(), B(), AD(), BD())CALL EAT(PERIODO / 2, A(), TT3())CALL MATMAT(NT + 1, NT -I- 1, NT + 1, NT + 1, TT3()3 CC1(),CC1DO)CALL TRANSPUESTA(NT + 1, NT + 1, TT3(), TT3())CALL MATMAT(NT + lr NT + 1, NT + 1, NT + 1, CC1D(), TT3(),CC1DO)CALL MÁTESC(CC1D(), NT + 1, NT + 1, PERIODO, CC1D())
'Generación de las matoices L0(k) y S0(k)
"Cálculo de la matriz LO
CLS 2LÓCATE 10, 17: PRINT "EL COMPUTADOR ESTA CALCULANDO LA LEY DECONTROL"NUMREGft = 1NUMITER - (TSTOP / PERIODO) + 2CALL TRANSPUESTA(NT + 1, 1, BD(), T3())CALL TRANSPUESTA(NT 4- 1, NT + 1, AD(), TT3())FOR N = O TO NT + 1
SO(N, N) - QO(N)NEXT NCLS 2LÓCATE 10, 5: PRINT "INSERTE UN DISKETTE EN LA UNIDAD B PARAGENERAR LA LEY DE CONTROL"LÓCATE 15, 20: PRINT "PRESIONE UNA TECLA CUANDO ESTE LISTO"disk:IF INKEY$ = "" THEN GOTO diskOPEN "B:MATRIZL.DAT" FOR RANDOM AS #1FOR N = 1 TO NUMITER
CALL MATMAT(NT 4- 1, NT 4- 1, NT 4- 1, 1, S0(), BD( ) , T4( ) )CALL MATMAT(NT 4- 1, NT + 1, NT 4- 1, NT + 1, S0( ) , AD() ,T5())CALL MATMAT(1, NT + 1, NT 4- 1, 1, T3( ) , T4(), T6( ) )CALL MATMATd, NT + 1, NT + 1, NT + 1, T 3 ( ) , T 5 ( ) , T7 ( ) )CALL SUMM(1, 1, Q 2 ( ) , T 6 ( ) , ' T 6 ( ) )DEN - 1 / ( T S Í O , O) * T6(l , 1) --16(0, 1) * T6(l, O ) )T8(0 ? 0) = T6(l , 1) * DENT8(0 ? 1) = -16(0, 1) * DENTBd, O) = -T6(l, 0) * DENT8(l, 1) = T6(0, 0) * DENCALL MATMAT(1; 1, 1, NT 4- 1, T8 ( ) , T7 ( ) , LO ( ) )FOR NI = O TO 1
FOR N2 = O TO NT + 1PUT #1, NUMREGtt, L O ( N I , N 2 )NUMREGtf = NUMREGtt + 1
NEXT N2NEXT NI
228
'Cálculo de la matriz S
CALL MATMAT(NT + 1, NT + 1, NT + 1, NT + 1, TT3(), T5(),TT6())CALL MATMAT(NT + 1, NT + 1, NT + 1, 1, TT3(), T4(), TT7( ) )CALL SUMM(NT + 1, NT + 1, TT6(), Ql(), TT8())CALL MATMAT(NT + 1, 1, 1, NT + 1, TT7( ) , L0(), TT9())CALL MATESC(TT9(), NT + 1, NT + 1, -1, TT9())CALL SUMM(NT + 1, NT + 1, TT8(), TT9(), S0())
NEXT NGLOSE #1
TIME = OTFLAG = OTFLAG1 = ONTC = -1Ul = OU2 = OR = REQB = QBECLS 2LÓCATE 3, 26: PRINT "CONTROL DE LA COLUMNA"LÓCATE 6, 4: PRINT USING "DELTA [horas] = #.#####"; DELTALÓCATE 8, 4: PRINT USING "TSTOP [horas] = #.#####"; TSTOPOPEN "BiMATRIZL.DAT" EOR RANDOM AS #1LAZOS:
'Generación de perturbaciones
FOR N - O TO NT -t- 1D5 = SQR(CC1(N, N))CALL GENERA(D5, O, VV(N))
NEXT NFOR N = O TO 1
D5 = SQR(CC2(N, N))CALL GENERA(D53 O, EE(N))
NEXT NCALL EQUILIBRIO(X(0), PB, Y(0), T(0))CALL ENTH(T(0)5 X(0), Y(0), HL(0)3 HV(0))FOR N = 1 TO NS
XX = X(N)CALL EQUILIBRIO(XX, P(N), YYS T(N))Y(N) = (YY - Y(N - 1)) * EFF + Y(N - 1)YY = Y(N)CALL ENTH(T(N), XX, YY, HL(N), HV(N)) .
NEXT NXX = X(NS + 1)CALL EQUILIBRIOCXX, P(NS + 1), YY, T(NS + 1))IF FVE - O THEN YAV = Y(NS) ELSE YAV - (YFE * FVE + Y(NS)V(NS)) / (V(NS) + FVE)Y(NS + 1) = (YY - YAV) * EFF + YAVYY = Y(NS + 1)CALL ENTH(T(NS + 1), XX, YY, HL(NS + 1), HV(NS + 1))FOR N - (NS + 2) TO NT
XX = X(N)CALL EQUILIBRIO(XX, P(N), YY, T(N))
229
Y(N) = CYY - Y(N - 1)) * EFF 4- Y(N - 1)YY = Y(N)CALL ENTH(T(N), XX, YY, HL(N), HV(N))
NEXT N -CALL EQUILIBRIO(X(NT + 1), PD; Y(NT 4- 1), T(NX + 1))CALL ENTH(T(NT + 1), X(NT 4- 1), Y(NT + 1), HL(NT + 1), HV(NT 4-D)
'Cálculo de los flujos de vapor
V(0) = (QB * 1000000 - L(l) * (HL(0) - HL(1))) / (HV(0) -HL(0))
B - L(l) - V(0)IF B < O THENCALL SUSPENSIÓN(TIME, "EL PRODUCTO DE LA BASE")GOTO men
END IFV(l) = (HL(2) * L(2) 4- HV(0) * V(0) - HL(.l) * L(l)) / HV(1)IF V(l) < O THENCALL SUSPENSIÓN(TIME, "EL FLUJO DE VAPOR")GOTO men
END IEFOR N = 2 TO (NS - 1)
V(N) = (HL(N 4- 1) * L(N + 1)4- HV(N - 1) * V(N - 1) - HL(N)* L(N)) / HV(N)
IF V(N) < O THENCALL SUSPENSIÓN(TIME, "EL FLUJO DE VAPOR")GOTO men
END IFNEXT NV(NS) = (HL(NS 4- 1) * L(NS + 1) 4- HV(NS - 1) * V(NS ~ 1) -
HL(NS) * L(NS) + HLF * FLE) / HV(NS)IF V(NS) < O THENCALL SUSPENSIÓN(TIME, "EL FLUJO DE VAPOR")GOTO men
END IFV(NS 4- 1) = (HL(NS + 2) * L(NS 4-2)4- HV(NS) * V(NS) 4- HVF *
FVE - HL(NS 4- 1) * L(NS 4- 1)) / HV(NS 4- 1)IF V(NS + 1) < O THENCALL SUSPENSIÓN(TIME, "EL FLUIDO DE VAPOR")GOTO men
END IFFOR N - (NS + 2) TO (NT - 1)
V(N) = (HL(N + 1) * L(N + 1) 4- HV(N - 1) * V(N - 1) - HL(N)* L(N)) / HV(N)
IF V(N) < O THENCALL SUSPENSIÓN(TIME, "EL FLUIDO DE VAPOR")GOTO men
END IFNEXT NV(NT) - (HL(NT 4- 1) * R 4- HV(NT - 1) * V(NT - 1) - HL(NT) *
L(NT)) / HV(NT)IF V(NT) < O THENCALL SUSPENSIÓN(TIME, "EL FLUIDO DE VAPOR")GOTO men
END IFDL = V(NT) - R
230
IF DL < O THENCALL SUSPENSION(TIME, "EL PRODUCTO LIQUIDO")GOTO men
END IF
"Evaluación de derivadas
DM(0) = L(l) - B - V(0)FOR N = 1 TO (NS - 1)
DM(N) = L(N + 1) + V(N - 1) - L(N) - V(N)NEXT NDM(NS) ~ L(NS + 1) + FLE + V(NS - 1) - L(NS) - V(NS)DM(NS + 1) = L(NS + 2) + FVE + V(NS) - L(NS -f 1) - V(NS + 1)FOR N = (NS + 2) TO (NT - 1)
DM(N) = L(N + 1) + V(N - 1) - L(N) - V(N)NEXT NDM(NT) - R + V(NT - 1) - L(NT) - V(NT)DXB = (X(l) * L(l) - Y(0) * V(0) - X(0) * B) / M(0) + VV(0)FOR NI - 1 TO (NS - 1)
DXM(Nl) = X(N1 + 1} * L(N1 + 1) 4- Y(N1 - 1) * V(N1 - 1) -X(N1) * L(N1) - V(N1) * Y(N1) + VV(N1) * M(N1)
NEXT NIDXM(NS) = X(NS + 1) * L(NS + 1) + Y(NS - 1) * V(NS - 1) -
X(NS) * L(NS) - V(NS) * Y(NS) + FLE * XFE + W(NS) *M(NS)
DXM(NS + 1} = X(NS + 2) * L(NS + 2) 4- Y(NS) * V(NS) - X(NS +1) * L(NS + 1) - V(NS + 1) * Y(NS + 1) + FVE *YFE + VV(NS + 1) * M(NS + 1)
FOR N2 = (NS + 2) TO (NT - 1)DXM(N2) = X(N2 + 1) * L(N2 + 1) + Y(N2 - 1) * V(N2 - 1) -
X(N2) * L(N2) - V(N2) * Y(N2) + W[N2) * M(N2)NEXT N2DXM(NT) = X(NT + 1) * R + Y(NT - 1) * V(NT - 1) - X(NT) *
L(NT) - Y(NT) * V(NT) + W(NT) * M(NT)DXD - (V(NT) * Y(NT) - (R + DL) * X(NT + 1)) / M(NT + 1) +
VV(NT + 1)IF TIME > TSTOP THEN
'Recuperación de archivos de datos
GLOSE #1CALL ARCHIVOSGOTO men
END IFIF TIME < TFLAG THEN GOTO 400
"Asignación de valores para gráficos
LÓCATE 11, 4: PRINT USING "Tiempo [horas] = #.####"; TIMENTC - NTC + 1FOR N = 1 TO NT
G3(N, NTC) - T(N)NEXT NG3(NT + 1, NTC) - T(0)G3(NT + 2, NTC) - T(NT + 1)
231
FOR N - 1 TO NTG1(N, NTC) -
NSXT NFOR N = 1 TO NT
G4(N, NTC) -G5(N, NTC) =G6(N; NTC) -
NEXT NG4(NT + 1,G2(l, NTC)G2(2, NTC)
NTC)NTC)NTC)NTC)NTC)NTC)= 1
X(N)
V(N)L(N)M(N)
NTC) = V ( 0 )= X ( 0 )- X(NT 4-= Y(NT 4-= Y ( 0 )= QB= B= DL- R
TO NT
1)1)G2(3,
G2(4,G7(0,G7(l,G7(2,G7(3?FOR N
G10(N,NEXT N'Del estimadorFOR N = O TO NT
GE(N, NTC) =NEXT NTFLAG = TFLAG +400 :IF TIME < TFLAG1
NTC) = Y(N)
4- 1X1(N, 0)
TPRINT
THEN GOTO 333
'Generación de datos para el modelo
'Cálculo de la matriz K(k)
CALLCALLCALLCALLCALLDEN -ZZ4(0ZZ4(0ZZ4(1ZZ4(1CALLCALL
TRANSPUESTA (1MATMAT(NT 4- 1MATMAT(1, NTMATMATC1, NTSUMMC1, 1, CC1 / (ZZ3(0,
, 0) = ZZ3(1,, 1) = -ZZ3(0, 0) - -ZZ3(1, 1) = ZZ3(0,MATMAT(NT + 1MATMAT(NT 4- 1
??4-4-20
y
3
5
7
(
)
1
0
NTNT1,1,),#) 11)0)) »NT1,
+ 1,4- 1,
NT +NT 4-ZZ3( )ZZ3(1
n DEN* DEN* DEN
fí DEN4- 1,1, 1,
C(NT1,1,??
NTT
),4-NT1,ZZ31)
+T6(
T1
(-
1)
T6( )), NT4- 1,TTB( )))ZZ3(
J "L 5
9 ZZ4
4- 1,C( ) ?
, TT
0, 1
TT3(O, :
6
)
)k
ADO, PP(), TT3())PP(), TT8O):), zzso)* ZZ3(1, 0))
TT6(), TT6())
'Cálculo de la matriz P
CALLCALLCALLCALLCALLCALLCALL
TRANSPUESTA (NT + 1 , NTMATMAT(NT 4-1, 1, 1, NTMATESC(T5()? NT 4- 1, NTSUMM(NT 4-MATMATCNTMATMAT(NTSUMMCNT +
1,4- 14- 1
1,
4- 1, ADO, TT3(
4- 1* -1/T5O)NT + 1, AD()7, NT 4-, NT 4-NT + 1,
1,1,
, T5
NT -NT -O,
T5(4- 1,*• 1,
T5())
), T5())NTNT
CC1D( ),
+ 1,4- 1,PP(
T5(),T5(),
})
PPO,TT3()
T5()), T5())
"Cálculo de los estados estimados
232
FOR N = O TO NT + 1DX1(N7 O) = X1(N
NEXT NCALL MATMAT(NT + 1, 1, 1, O, BD( ) ,CALL MATMAT(NT + 1, NT + 1, NT -i- 1YYY(0, O) = ARRIBAR - ARRIBAEYYY(1, O) = ABAJOR - ABAJOECALL MATMAT(NT 4- 1,CALL SUMM(NT 4- 1, OCALL SUMM(NT 4- 1, OFOR N = O TO NT 4- 1
X1(N, O) = DX1(N, O) + XE(N)IF X1(N, 0) < O THEN X1(N, 0)IF X1(N, 0) > 1 THEN X1(N, O)
.NEXT NARRIBAE - XI (NT - 1, O)ABAJOE = Xl(l, 0)
0) - XE(N)
1, 1, O, k( )TT7 ( ) , T4( )BU( ) , DX1 ( )
ü( ) , BU( ) )O, AD( ) , DX1(), TT7 ( ) )
YYY( ) ,DX1())DX1())
= O= 1
T4())
'Cálculo del control
'Recuperación de L0(k)
FOR NI - 1 TO O STEP -1FOR N2 = NT + 1 TO O STEP -1
GET #1, (NUMREGtf - 1), LO(N1, N2)NUMREGtt ~ NUMREGíí - 1
NEXT N2NEXT NICALL MATMATUUl = -ü(0, 0)U2 = -U(l, 0)R = RE + UlV(0) = V(0) + Ü2QB = (V(0) * (HV(0) - HL(0)) +
1000000!R > 1.05 * RE THEN R = 1.05R < .95 * RE THEN R = . 95 * REQB > 1.1 * QBE THEN QB = 1 . 1 * QBEQB < .9 * QBE THEN QB - .9 # QBE
NT + 1 , NT + 1, O, LO ( ) , DX1(), U())
(HL(0) -
IFIFIFIF
RE
TFLAG1 =333 :
TFLAG1 + PERIODO
'Integración por Runge
TIME = TIME + DELTAFOR N - 1 TO NT
CALL K1234(DM'(N), M(N})IF M(N) < O THENCALL SUSPENSION(TIME,GOTO men
END IFNEXT NCALL K1234(DXB, X(0))IF X(0) < O THEN X(0) = OIF X(0) > 1 THEN X(0) = 1
LA MASA EN UN PLATO")
233
FOR NI = 1 TO NTCALL K1234(DXM(N1), XM(N1))X(N1) = XM(N1) / M(N1)IF X(N1) > 1 THEN X(N1) - 1IF X(N1) < O THEN X(N1) = O
NEXT NICALL K1234(DXD, X(NT 4- 1))IF X(NT + 1) < O THEN X(NT + 1) = OIF X(NT + 1) > 1 THEN X(NT 4- 1) = 1ARRIBAR - X(NT - 1) + EE(0)ABAJOR = X(l) + EE(1)
'Cálculo de los nuevos flujos líquidos
FOR N - 1 TO NSXX - X(N)CALL HIDRAULIC(M(N), XX, WHS, WLS, DS, L(N))
NEXT NFOR N = (NS + 1) TO NT
XX = X(N)CALL HIDRAULIC(M(N)3 XX, WHR, WLR, DR, L(N))
NEXT NGOTO LA203:END
SUB AECHIVOSDIM U(25)IF NIND = O THEN GOTO finOCLS 2LÓCATE 10, 5: PRINT "INSERTE UN DISKETTE EN LA UNIDAD A PARAALMACENAR DATOS GENERADOS"LÓCATE 15, 20: PRINT "PRESIONE UNA TECLA CUANDO ESTE LISTO"diskl:IF INKEY$ = "" THEN GOTO disklIF NIND = 1 THENOPEN "AzNTCNS.DAT" FOR OUTPUT AS #1WRITE #1, NTCGLOSE #1OPEN "A:TNS.DAT" FOR OUTPUT AS #1WRITE #1, TPRINTGLOSE #1OPEN "A:G1NS.DAT" FOR OUTPUT AS #1FOR N - 1 TO NT
FOR N2 = O TO 25U(N2) = G1(N, N2)
' NEXT N2WRITE #1, U(0), U(l), U(2), U(3), U(4), U(5), U(6), ü(7),ü(8), ü(9), U(10), ü(ll), U(12), U(13), U(14), U(15),U(16), U(17)s U(18), ü(19), U(20)? U(21), U(22), ü(23),U(24), U(25)
NEXT NGLOSE #1OPEN "A:G2NS.DAT" FOR OUTPUT AS #1FOR N2 = O TO 25
U(N2) - G2(l, N2)NEXT N2
234"
WRITE #1, U(0), 0(1), 0(2), 0(3), O(4), O(5), 0(6), O(7),0(8), 0(9), 0(10), 0(11), ü(12), 0(13), 0(14), 0(15), U(16),0(17), 0(18), U(19), 0(20), 0(21), U(22), ü(23), 0(24),U(25)FOR N2 = O TO 25
Ü(N2) = G2(2, N2)NEXT N2WRITE ttl, 0(0), 0(1), 0(2), 0(3), ü(4), U(5), O(6)s ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), U(14), U(15)>, O(16),U(17), 0(18), 0(19), 0(20)3 0(21), ü(22), U(23), O(24),0(25)FOR N2 - O TO 25
Ü(N2) = G2(33 N2)NEXT N2WRITE #1, 0(0), ü(l), 0(2), U(3), U(4), O(5), U(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), O(14), 0(15), 0(16),0(17), 0(18), 0(19), 0(20), 0(21), ü(22), 0(23), ü(24),O(25)FOR N2 - O TO 25
0(N2) - G2(4, N2)NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), ü(4), U(5), O(6), 0(7),0(8), ü(9), 0(10), 0(11), 0(12), 0(13), ü(14), 0(15), 0(16),0(17), 0(18), ü(19)? ü(20); 0(21), 0(22), O(23), 0(24),0(25)GLOSE #1OPEN "A:G3NS.DAT" FOR OÜTPOT AS #1FOR N - 1 TO NT + 2
FOR N2 = O TO 250(N2) = G3(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), O(4), 0(5), ü(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), ü(21), ü(22), 0(23),0(24), O(25)
NEXT NCLOSE #1OPEN "A:G4NS,DAT" FOR OOTPOT AS #1FOR N = 1 TO NT 4- 1
FOR N2 = O TO 25O(N2) = G4(N, N2)
NEXT N2WRITE #1, 0(0), 0(1)5 0(2), 0(3), O(4), 0(5), 0(6), O(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), U(21), U(22), 0(23),0(24), 0(25)
NEXT NCLOSE #1OPEN "A:G5NS.DAT" FOR OOTPÜT AS #1FOR N ~ 1 TO NT
FOR N2 - O TO 25Ü(N2) = G5(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), ü(4), 0(5), 0(6), O(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), ü(14), ü(15),0(16), 0(17), 0(18), 0(19), ü(20)s O(2l), ü(22), 0(23),O(24), O(25)
235
NEXT NGLOSE #1OPEN "A:G6NS.DAT" FOR OUTPUT AS 4tlFOR N = 1 TO NT
FOR N2 = O TO 25U(N2) = G6(N, N2)
NEXT N2WRITE #1, U(0), ü(l), U(2), 0(3), U(4), 0(5), ü(6), U(7),U(8), 0(9), 0(10), 0(11), ü(12), 0(13), 0(14), ü(15),0(16), 0(17), 0(18), 0(19), U(20), ü(21), U(22)3 U(23),U(24)3 U(25)
NEXT NGLOSE #1OPEN "A:G7NS.DAT" FOR OUTPUT AS #1FOR N = 1 TO 3
FOR N2 = O TO 25U(N2) - G7(N, N2)
NEXT N2WRITE #1, U(0), Ü(l), ü(2), ü(3), U(4), U(5), ü(6), ü(7),U(8), ü(9), ü(10), U(ll), U(12)? U(13), U(14), ü(15),ü(16)s U(17), U(18), ü(19), U(20), U(21), U(22)5 U(23)3U(24), U(25)
NEXT NGLOSE #1OPEN "A:G10NS,DAT" FOR OUTPUT AS #1FOR N ~ 1 TO NT
FOR N2 = O TO 25U(N2) - G10(N, N2)
NEXT N2WRITE #1, U(0), ü(l), ü(2), U(3), ü(4), ü(5), U(6), ü(7),UC8), ü(9)s U(10), U(ll), U(12)? ü(13), ü(14)s U(15),ÜC16), ÜC17), ÜC18), U(19), U(20), ü(21), U(22)3 U(23),U(24)3 U(25)
NEXT NGLOSE #1
ELSEIF NIND = 2 THENOPEN "A:NTCNC.DAT" FOR OUTPUT AS #1WRITE #1, NTCGLOSE #1OPEN "ArTNC.DAT" FOR OUTPUT AS #1WRITE #1, TPRINTGLOSE #1OPEN "A:G1NC.DAT" FOR OUTPUT AS #1FOR N = 1 TO NT
FOR N2 = O TO 25U(N2) = G1(N, N2)
NEXT N2WRITE #1, U(0), U(l), U(2), ü(3), U(4), U(5), U(6), U(7),ü(8), ÜC9), UC10), U(ll), U(12), ü(13), U(14), U(15)7ü(16), U(17), U(18), U(19), U(20), ü(21), 0(22), U(23),U(24), U(25)
NEXT NGLOSE #1OPEN "A:G2NC.DAT" FOR OUTPUT AS #1FOR N2 = O TO 25
U(N2) = G2(l, N2)NEXT N2
G G
G S
I•
*~
^
•— >
id
CO H
C
D M
>£x
CO
—
H•
' —
' «
tx]
« -
G 3
*
^-^
•— N
CD
-CO
M —
Oí -J
- G
•-_-
- ^_
--
^->
- G
0
G M
-•
OH
— G
CO
- ^
"•— •*
\— l
- G
*— '
.— -^
V
G M
— H
G
CD
- C
O•—
•
•G
"*
í— \ M
G
^ C
O^
ro—
co
o-
—>—
-J
- f —
'
— G
G M
—•
CO
A
to v_
- ^_ -
1 1 u
w
• " C
U G
•— N í".
G H
Oí
^~N fí^ ' '
co •»
— ' -
co-
v-'
GG
-—
•
en
G
M ^
— -
•- O
l-e
o-
G•-—
• • .-—
.-g
^0
02
;O
hj
t"1 M
£u P
d O
X
2;
^
2;
CQ H
G G
C :£
t?j
O
23
t?d
^~^'
— N-'
~Ntd
X
Í*J
:
2¡
CO
M C
D M
HG
II >
tt ^
cn
^ h
3^-
^ 25
. .
i— i
v .
^_^
« (rc
j2;
2;
ro i-
1 Q
-
-CO
CO
O
í G
**
—
II
í-3 2
; G
G--
> M
O Q
^^
CD
-II
0
• C
O M
—53 ü
O
í 0
-
GQ
H H
3 >
—
—
^O
í O
H
-
G O
'— •
:
^-s
v^2:
CO
G
H
--
Oí
fxj
^ O
0
H —
G25
td
03-
-^ro
*•—
' M
<— *
O
" G
"•—
*CU
x~
s -
H
G M
hd
— H
GG
H
— —
H
CD
- C
O•— '
•— '
Í£>
—
f — ! "
CO
'-NG
H G
^
' —
CO '
— •«
M
co
^ e
oO
-
v-.
-^^
->-
G — G
G H
^•-—
« C
O
CO •
— - v
-^[
l „
u
-_-•
- G
Gf—
>. ^—
%G
H O
í•
•-— '
K)
•— ' «
CO
-^-
^ CU
G -
^^^
en
^ O
l-CO '
—C
O-
GV
^
^-N -J
brj
O O
25
O ^
Tj f
1 M
W W
O X
2
brj
2:C
OH
CG
Gí:
[xj
Q
5-Zi
M
^-^
-^^
'-*•
tdX
íd
:
SC
OH
CD
MH
G
II > *
h
£^
CO
^h
3^5
5
•• M
^
— - fcrj
*-y
f-y
NT
i i
rr~\
u^L
j j¿
j l\J
1
VJJ
-
ro c
o A
G
3*
»— •
II H
2;
G G
•""•
MO
O
^-^
CD
-11
0
• C
O H
—55
O
01 <
J-
G
^ O
H
-
G O
-•
—,
-{
-;
^-,
-^^
55 C
O
G
H-1
"-
Oí M
bj
*-N o
O
H—
G55
W
00- ^
to
^
MG
X
—S U
H
G M
I"d
^^ t—
1 G
G
H-
— —
H
CD
- C
O
í>
- G
yen
^G
H G
ít
-^^ r
o •• —
••M
ro
-v_x
coO
- v-
*•^
«
" G —
GG H
^•^
^ C
O >
t-co
^-^
-^^
f— l
\
U
v_>
- G
G^—
> ^—
v
G H
O
í
ro *—
- -
co-
^
G-
G •
^-^
en
G M
^-
^O
l-CO
'-—
•C
O-
G>
-
r^s
-J
tej O
OO
^d
tr1td
t?d
o2
br
| 25
Cn
M
O 2
5 M
X
W
=H
G
II >
*^-
s 25
' •
H
25 s
ro M
Qro
co
co—
> II
HJ
2¡
O Q
11 0
2;
OQ
H H
>Cu
O
Hs~
^ -|-
~
55 t
O-
Oí
CO O
Ü2¡
ídco •—
o G H h3 G h~
3
D3
CQ • j— i
G G
G &
55
-•— . /
— s '
•— N
id t?d
CO H
C
O M
X
oí
-Q— ' H
H G
s. -
v^ ^
t?d
'N
--
23 2
5G *
co
coG
-^*
H1
•—
'^-
N C
D-
|—i -
— -
]|C
D-
G
—
^
Q-
G o
ro
x— •
-' ^^
í^j
t_i -
> ^
*-N
OH
^ G
CD -
«^
25
->
h-1
CO
X—
N «
G H
^ H
GCO
•-— '
•i
o-
ro^~
- •^
- G
-. —
-G
H G
•"" r
o '^
cov^
eo
J-t
y
v^-
«^_^
> *J
- G
.- — i
G H
—^
CO
CO ^
-^ ^
-*ro
- -
s_>
- G
Ge-
--. •• —
CU
H
Oí
•"•
s—
'CO
* — '
-eo
-^
G
u t —
, ••
••^
en
G H
^-
^-v
C
J1 -
[O
-'^- G
• — *
•-— •
- G
-0
-—v •—
1 l u
en
brj G
G G
2
5O
'"
•"""••
• -^
^ id
M
id r
o M
co
HH
xui
-o v
_- n
9 i-3
25 -
— s-'
-
t?j
ro
- 25
G
tO
11
G—
H.->
C
D -
O
h-1 —
CD
- G
1-3
—
—O
-
G 0
.".
**^
co
G f
-1-
Oí
-^ O
M—
G
CD
- -^
* <
)— i
- G
•—
'^— . u
G H
^ H
GCO
—
o-
rov_
^ — '
- G
-^ —
G
H G
^~^
ro *
~^C
O--
' CO
H1 -
•— '
>• — '
«-
CU f s , —
1
G H
—•
CO ^
to —
—co
- -
' — '
- G
G.—
s f~
\ H1 e
n
r-^.
fe.
s_
^
[O^-
co-
—
G
^ e
nG H
^^é
n-
eo—
ffc-
*• G
•^—
>
t N
- G
-J
<-N
v—
'
] 1 u
en
brj
G G
G £
J 25
O '"
""-
'- id
MW
ro
M C
D M
x
G
Oí
-O —
H
f-3--,
25
^-*
^-^
- M
2:
CO
25
CO
G *
C
O—
• II
G '"
•* i-
1^
C
D-
II 0
H
1 —
CD
- G
Q 1-
3
—
^ro
o
- G
o^— ,
^-N
V
'
co r
o
G H
"-
en
^^
o
i i ,
,
f i
25
CO
- CO
—
l-
1
v— '
" G
x-'
^-s
«
G H
-- h
- G
CO *
-— • ^
~^o
- ro
^-^
^~j
- G
-f~
N
G M
G^^
C
O
"CO
•— '
CO
J— l
«
'^
V
«
- G f—
( —
Cj
(_i
í— ,
^ c
o ^
to <
^-> "
^co
- -
"--
- G
G- —
% f-
^.
a H
oí
--N
t£
h. •
-'
ro ^— ' -
co-
—
G-
G '~
>^
en
G M
1— '
*~^>
ai -
ro **—
*^
-
G^ —
x—
>-
G -
<!'-N
^S
t 1 u
en
^ G
G G
SI
O ^
^ '~>
^—
* id
id c
o M
CD
MG
O
í -J^
1-3
'- 2
5 s —
*—
> -
t?J
25 C
OCO
G *
—
u
G-^
H^
CD
-II 0
M
--'
03
- G
Q
¡-3
—
—co
O
- G
O^^
^-N
••
•
CO C
O
G I-
1 «
-a
i ^>
oH
— G
25
CD
- -^
CO
^--
Hv_
> «
G *
— -
-~s
-J
G M
_, 1
l
J~(
ro • —
' ^— >
o-
ro•
/ v_^
- G
-^
ro
G
G
CO
•"•
co --
"^
enro
>— '
co
[ L u
>
.
* '
-
G, —
iG
M —
^ c
o
ro i— ' *
— *
co-
--. — -
G G
^— , -
• — >
G
H1 O
í'—
•• ft»
^-*
ro ^— '
-co
-^
G
- G
-^^
^ e
nG
í-1
^— '
^— >
Ql M
ro *— '
^ - G
*~~s
s~
*
- G
~^
^-N
v
•
1
1 u
en
237
NEXT NGLOSE #1OPEN "A:G6NC.DAT" FOR OUTPUT AS #1FOR N - 1 TO NT
FOR N2 = O TO 25U(N2) = G6(N, N2)
NEXT N2WRITE #1, U(0), 0(1), 0(2), 0(3), ü(4), ü(5), ü(6), U(7),U(8)s 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), ü(21), 0(22), 0(23),U(24), 0(25)
NEXT NGLOSE #1OPEN "A:G7NC.DATn FOR OUTPUT AS #1FOR N = 1 TO 3
FOR N2 = O TO 25U(N2) - G7(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), ü(4), 0(5), ü(6), ü(7)s0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15),0(16), 0(17), 0(18), 0(19), U(20)3 ü(21)s 0(22), U(23),U(24)3 0(25)
NEXT NGLOSE #1OPEN "A:G10NC.DAT" FOR OUTPUT AS #1FOR N = 1 TO NT
FOR N2 = O TO 25Ü(N2) = G10(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), ü(4), ü(5), 0(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15),0(16), 0(17), 0(18), 0(19), 0(20), ü(21), U(22), U(23),U(24), 0(25) '
NEXT NGLOSE #1
ELSEIF NIND = 3 THENOPEN "A:NTCLS.DAT" FOR OUTPUT AS #1WRITE #1, NTCGLOSE tiOPEN "AiTLS.DAT" FOR OUTPUT AS #1WRITE #1, TPRINTGLOSE #1OPEN "ArGlLS.DAT" FOR OUTPUT AS #1FOR N - 1 TO NT
FOR N2 = O TO 25Ü(N2) - G1(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), ü(4), 0(5), 0(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), U(22), U(23),U(24)7 0(25)
NEXT NGLOSE #1OPEN "A:G2LS.DAT" FOR OUTPUT AS ttlFOR N2 = O TO 25
Ü(N2) = G2(l, N2)NEXT N2
238
WRITE #1, ü(0), 0(1), 0(2), 0(3), 0(4), ü(5), ü(6), U(7),0(8), 0(9), U(10), Uíll), 0(12), U(13), 0(14), 0(15), U(16),0(17), 0(18), 0(19), 0(20), U(21), ü(22), O(23), 0(24),0(25)FOR N2 = O TO 25
U(N2) = G2(2, N2)NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), 0(6), O(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15), 0(16),0(17), 0(18), 0(19), 0(20), 0(21), ü(22), 0(23), U(24),0(25)FOR N2 - O TO 25
Ü(N2) = G2(3, N2)NEXT N2WRITE #1, 0(0), 0(1), U(2), 0(3), 0(4), ü(5), 0(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15), 0(16),0(17), 0(18), 0(19), U(20), 0(21), O(22), 0(23), 0(24),0(25)FOR N2 - O TO 25
Ü(N2) = G2(4, N2)NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), 0(6), 0(7),0(8), 0(9), U(10), 0(11), 0(12), U(13), O(14), 0(15), 0(16),0(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23), ü(24),0(25)GLOSE #1OPEN "ArG10LS.DAT" FOR OÜTPÜT AS #1FOR N = 1 TO NT
FOR N2 = O TO 25Ü(N2) = G10(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), O(4), U(5), O(6), 0(7),0(8), 0(9), 0(10), 0(11), U(12), 0(13), ü(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), ü(21), 0(22), 0(23),0(24), 0(25)
NEXT NGLOSE #1
ELSEIF NIND = 4 THENOPEN "A:NTCLC.DAT" FOR OÜTPÜT AS ttlWRITE #1, NTCGLOSE ttlOPEN "A:TLC,DAT" FOR OÜTPOT AS tiWRITE #1, TPRINTGLOSE #1OPEN "A:G1LC,DAT" FOR OÜTPÜT AS #1FOR N = 1 TO NT
FOR N2.= O TO 25U(N2) = G1(N, N2)
NEXT N2WRITE #1, U(0), 0(1), 0(2), U(3), U(4), 0(5), U(6), U(7),0(8), 0(9), 0(10), U(ll), 0(12), U(13), 0(14), U(15),U(16), 0(17), ü(18), 0(19), 0(20), ü(21), ü(22), ü(23),0(24), U(25)
NEXT NGLOSE ttlOPEN "ArG2LC.DAT" FOR OÜTPOT AS #1FOR N2 - O TO 25
U(N2) = G2(l, N2)
239
NEXT N2WRITE #1, U(0), ü(l), ü(2), ü(3), U(4), U(5), 0(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), ü(14), ü(15), ü(16),0(17), 0(18), 0(19), 0(20), 0(21), ü(22), ü(23), 0(24),0(25)FOR N2 = O TO 25
Ü(N2) = G2(2, N2)NEXT N2WRITE ttl, 0(0), 0(1), 0(2), 0(3), ü(4), ü(5), 0(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15), 0(16),0(17), 0(18), 0(19), 0(20), 0(21), U(22), U(23), ü(24),0(25)FOR N2 = O TO 25
Ü(N2) = G2(3, N2)NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), ü(4), ü(5), 0(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15), 0(16),0(17), 0(18), 0(19), 0(20), 0(21), ü(22), ü(23), 0(24),U(25)FOR N2 - O TO 25
U(N2) = G2(4, N2)NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), U(4), ü(5), U(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15), 0(16),0(17), 0(18), 0(19), U(20), 0(21), ü(22), 0(23), U(24),0(25)GLOSE #1OPEN "A:G10LC.DAT" FOR OUTPUT AS #1FOR N = 1 TO NT
FOR N2 - O TO 25U(N2) = G10(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), ü(4),"ü(5), 0(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), U(20), 0(21), U(22), O(23),U(24)3 0(25)
NEXT NGLOSE ttl
ELSEIF NIND = 5 THENOPEN "ArNTCC.DAT" FOR OUTPUT AS #1WRITE #1, NTCGLOSE #1OPEN "A:TC,DAT" FOR OUTPUT AS #1WRITE #1, TPRINTGLOSE #1OPEN "AiGlC.DAT" FOR OUTPUT AS #1FOR N - 1 TO NT
FOR N2 = O TO 25U(N2) = G1(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), ü(6), ü(7),ü(8), ü(9), 0(10), 0(11), 0(12), ü(13), 0(14), 0(15),ü(16), 0(17), ü(18), ü(19), U(20), ü(21), U(22)5 U(23)50(24), 0(25)
NEXT NGLOSE #1OPEN "A:G2C.DAT" FOR OUTPUT AS #1
CD- i
1--N
-^
fr- D
-
"• '
/—
S
D
- —
CM
-LO
— H
DCD
*~
••>
_-• ' —
)
r.
D
—-C
O-
— C
M
LO H
D>• —
• * —
D D
-
- -C
M
— —
CM
^ c
o
— H
DD
*"— '
i — \
' s
" <
— 1
CO —
CM
O
^C
M
^
D H
DCN
] —
'- D
"
CN
] -O
^^C
MD
H •*
—;T
1 J
J
" "
"-->
.
^—
s £3
r.
CM
H
—rs
•-•
-e
nD
---
HLO
"
O
CM H
- H
D
O
CN
] O
D
"
D
"CO
0
II
— H
-0)
1!
—
H
DCM
CM
#:
DCM
53 %
5S —
p¿
) -^
—D
H
EH
^t>
LO
K
X M
CO
H C
MO
[x
| C
rí -—
•
fe
2: &
D D
D
CD
CD
C
D
o
o-
H
- H
- H
v-
^ .
v_
^ --.
t— J
— i
J
£3
— O
jt>
D
- C
- D
"
C-
D
- ^C
N
--M
M•^
— '
^~
*>
"
' í'
*
^-^
'
\\O
*
"
- LO
V
-^
D
"
D
n "
D
"^
<-
"•* H
D
'- H
D-^
CM
^C
M
^C
M
CD
cD
- LO
v —
-
LO
*• —
- LO
"-— '
•--'
D
"
••— -•
D
-'^
•'H
D
<-^
HD
**
^ H
D
D'^
1
D'^
sC
D' —
C
D1—
• C
D1-^
- -C
M
-CM
*•— ' D
"
"- — D
"
"— ' D
"
-'^•C
M
-'--•
•CM
r~ j
^-^
r-
-\^
j— j
^^
^_^
^
f
^^^ ^^
-CO
"C
O
-CO
L
OH
D
UD
HD
-<-^
CM
-^
-CM
--
^C
M
^^-
^—
'
LO
HD
L
OH
D
LO
HD
^
^" — '
"^ **
* — '
**— '
s —
- * —
f -
- H
-
- i
i — •.
i— \t
i — •.
i — \
i — ,
i — •.
_ ,
'
--C
M
--C
M
-"C
M
^H
D
^-H
D'
-->.-—
C
M
*"* ••
f~
CM
'"" -
^^"
CM
D
s— '
D
^— '
-íjH c
O ^
-^
^ C
O ^
— ••
" C
O v—
' D
-
D
-v- '
H D
"•— ' H
D
>-^
H D
«
^-^
,% <^
sD
* — '
D
^-^
D
v — '
<~^*
- O
^^
> -
oD
"
D
" D
-
CO
— C
M C
O—
CM
—
"H
—
* H
—
*, H
*t
D' H
S"
5
'~ír
H*-
>'
SC
O'^
CM
C
O>
-^C
M
CO
«-"
CM
"
^v—
' C
M s —
•• —
CM
1^-'
" — C
M ^
— '
CD
-
ÜD
- C
O
n '"i
rnD
HD
D
HD
D
HO
<c
í—
s /-N
^
,-N
^h^
T l
^T
1
CM
-
CD
C
M -
O3
CM
-O
C
M^
O
CN
]-
0
pí
H D
" P
4 H
S'
Sv — ' ' —
s C
M
"-— '
f~^-
CM
*^
^ ''
CM
EH
" ' '
EH
-
- '
r rD
H1-^
D
H •
«— '
DH
-^-
D
'-N
'-N D
"
D
•— s
'—• D
ft
f~)
-— v
HD
H
D
HD
OC
MH
—
OC
MH
<-
^ O
CM
^-^
^ n
*
^^
'-í
^^
"^
rv
' 2;
-^
" C
O
53 ^
"0
3
53
CM
H—
C
MH
—
CM
H—
O
CM
LO
- O
^
O H
lO
•»
O
O
lO
"22
5"^
2
^
S"^
2
^
^
^
fecM
S
-HD
fe
CM
S:
-HD
fe
C
MS
LO
- O
^-
LO
- O
^t
O"
0 ^
i
OC
OO
D-
- O
5*
cT
D*
* =
OL
fíCM
CM
-H
D
CM
co
-HD
C
M ^
-H
D
H H
EH
O
^
— —
H
HH
O
C.
^^
^
H E
H O
OC
M
OD
^
OC
M
OD
^_
- O
CM
OD
^
fi
o
u ^^^,
«
o
n D
H C
M
0^
01
1
Olí
n£¡^
>
°"
-"
""C
Í °"
^C
l ^
C
MC
Mít
iD
^
"c
MC
M^
D0
0
SH
Uc
7c
x]
CM
CM
ÍtD
C
MC
M^
D
CM
CM
ttD
tt<
II
D" H
H —
CD ?
¿
ÜII^
DH
H—
CD
?
¿¿
'll^
^F
HC
M2
ÜJ
2Ü
- C
MlZ
líS
^
CM
2Ü
52
" -
PH
XM
CO
HC
MI2
-
CU
XM
CD
i— i
f\ r^
-
(V
b?
S^
—
fe
» '^
~, s
~~ • ¿
¡ * —
fx
] r,
^-s
'^-2
!;<
_^
p¿]
-.-—
v-—
-fx
] 2
ÜO
td
C¿
•*--
•'-•— '
— •
Cd
!2O
td
C¿
'— •
-^s
•• M
" ^•r
:~í
MD
EH
£H
'^'[
>-L
O
DE
nE
H'—
C'-
iO
DE
nE
H'^
ít>
-LO
C0
2j
fe
2ü
S:D
OD
EH
C/l
!2!;
fe
2
üf3
:'~
}'~
t'~
~)r
— j
rn
rT
'r
^PH
X
^H
CO
HC
MC
rí
XlH
CO
HC
MC
EÍ
XH
QD
HC
MO
fe
Pn
íx
^O
WP
n
b^
OM
Crí
fe
5
3Í5
:D
DD
fe
iZi^
DD
Dfe
S
&^
DD
DO
Ofe
2¡O
Ofe
5
2Ü
Ofe
241
WRITE #1, 0(0), 0(1), 0(2), 0(3), U(4), 0(5), 0(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15),ü(16), U(17), 0(18), 0(19), 0(20), O(21), O(22), O(23),0(24), 0(25)
NEXT NGLOSE #1OPEN "A:G6C.DAT" FOR OUTPUT AS #1FOR N = 1 TO NT
FOR N2 - O TO 25Ü(N2) = G6(N, N2).
NEXT N2WRITE #1, UCO), ü(l), U(2), ü(3), ü(4), U(5), 0(6), U(7),0(8), ü(9)s 0(10).. 0(11),, 0(12), 0(13), ü(14), ü(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), O(22), O(23),0(24), 0(25)
NEXT NGLOSE #1OPEN "A:G7C.DAT" FOR OOTPOT AS ttlFOR N = O TO 3
FOR N2 = O TO 25Ü(N2) = G7(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), ü(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), O(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23),0(24), 0(25)
NEXT NGLOSE #1OPEN "A:G10C.DAT" FOR OÜTPÜT AS #1FOR N - 1 TO NT
FOR N2 = O TO 25Ü(N2) - G10(N, N2)
NEXT N2WRITE #1, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), 0(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), ü(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23),0(24), 0(25)
NEXT NGLOSE #1
END IFfinO:END SÜB
SÜB CONTROLABLE (A( ) , B( } )DIM BlfNT + 1, 1), MCI(NT + 1, 1), MC(NT +1, 2 * NT + 3)FOR NI = O TO 1
FOR NF = O TO NT + 1MC(NF, NI) = B(NF, NI)
NEXT NFNEXT NICALL COPIAM(NT + 1, 1, B(), Bl())FOR NC = 1 TO NT + 1
CALL MATMAT (NT + 1, NT 4- 1, NT + 1, 1, A(), Bl ( ) , MC1())FOR NI - O TO 1
FOR NK = O TO NT + 1MC(NK, 2 * NC -4- NI) - MC1(NK, NI)
242
NEXT NKKEXT NICALL COPIAM(NT + 1, 1, MC1(), Bl())
NEXT NCCALL DETERMINANTE(MC(), NT + 1, VALORA)IF VALOR* = O THENLÓCATE 16, 25: PRINT "EL SISTEMA NO ES CONTROLABLE"ERD
ELSELÓCATE 16, 25: PRINT "EL SISTEMA SI ES CONTROLABLE"
END IFEND SÜB
SUB COPIAM (N, NI, CCC1(), CCC2())FOR N3 = O TO N
FOR N4 = O TO NICCC2(N3; N4) - CCCKN3, N4)
NEXT N4NEXT N3END SÜB
SUB CUADRO (NJ1, NJ2, NJ3, Nj4, NJ5, Nj6)LOCÁIS NJ3, Nj4: PRINT CHR$(201); STRING$(N¿5, 205); CHR$(1B7)FOR H - NJ3 + 1 TO No 6
LÓCATE N, No4: PRINT CHR$(186); SPC(Nj5); CHR$(186)NEXT NLÓCATE Nj6 + 1, NO 4: PRINT CHR$(200); STRING$(N¿5, 205);CHR$(188)END SUB
SUB DETERMINANTE (A9(), N, DT#)NK1 - ODTíf = 11550 :NL1 = NK1AMA = ABS(A9(NL1, NK1))NLF1 = NK11580 :NL1 = NL1 + 1AMB = ABS(A9(NL1, NK1))IF AMA >- AMB THEN GOTO 1630NLF1 = NL1AMA = AMB1630 :IF NLI < N THEN GOTO 1580IF NLF1 <> NK1 THEN GOTO 1670signe = 1GOTO 17601670 :signo - -1FOR KJ1 - NK1 TO N
S = A9(NK1, NJ1)A&^NKl, NJ1) = A9(NLF13 NJl)A9ÍNLF1, NJ1) = S
NEXT HJ1IF A&CNK1, NK1) o O THEN GOTO 1760DT« = OGOTO fi2
243
1760 :DT# - signo * A9(NK1, bíKl) * DT#NK2 - NK1 + 1FOR NI1 = NK2 TQ N
FOR NJ1 = NK2 TO NA9(NI1, NJ1) - A9CNI1, NJ1) - A9(NI1, NK1 ) * A9(NK13
NJ1) / A9(NK1, NK1)NEXT NJ1
NEXT NI1NK1 = NK2IF NK1 < N THEN GOTO 1550DT# = DTíf * A9(N3 N)fi2:END SÜB
SUB DIBUJO CN3, TPRINT, NI, MAX, MIN, G( ) , A$, B$, C%, D$, E$)CLS 2SCREEN 2VIEW (100, 30)-(600, 125), 03 OWINDOW (O, MIN)-(TPRINT * (N3 + 1), MAX)IF 0% = O OR C% = NT + 1 OR C% = NT + 2 THENLÓCATE 1, 15: PRINT B$ ; : PRINT D$
ELSELÓCATE 1, 15: PRINT B$; : PRINT 0%; : PRINT D$
END IFLÓCATE 2, 3: PRINT A$LINE (O, MIN)-(0, 1.8 * MAX)NL1 = 5LÓCATE 17, 12PRINT OFOR NL2 = 20 TO 53 STEP 10.5
IF NL1 >= 10 THENLÓCATE 17, 1.22 * NL2 : PRINT NL1
ELSELÓCATE 17, 1.25 * NL2 : PRINX NL1
END IFNL1 - NL1 4- 5
NEXT NL2LÓCATE 17, 66: PRINT USING "x ###.## seg" ; TPRINT * 3600NL - 16LINE (O, MIN)-( (TPRINT * N3), MIN)FOR TN2 = MIN TO MAX STEP (MAX - MIN) / 4
LINE (O, TN2)-((.01 * TPRINT * N3), TN2 )IF MAX <=-10 THEN LÓCATE NL, 6: PRINT USING "##.###"; TN2IF MAX > 10 THEN LÓCATE NL, 5: PRINT USING "####.##"; TN2NL - NL - 3
NEXT TN2LÓCATE 21, 20: PRINT "PRESIONE EL ESPACIADOR PARA IRGRAFICANDO"PSET (O, G(NI, O) )FOR NI = O TO N3 - 1: LÓCATE 23, 27: PRINT "
LÓCATE 23, 24: PRINT E$; : PRINT USING "####.#### seg " ; NI* TPRINT * 3600; : PRINT ") =";PRINT USING " ######.#### "; G(NI, Ni)GOSUB esperaLINE -(TPRINT * NI, G(NI, NI))
244
NEXT NILÓCATE 21, 15: PRINT "
LÓCATE 21, 26: PRINT "PRESIONE "C^ PARA CONTINUARregreso: IF INKEY$ = "C" OR INKEY$ - "c" THEN CLS 2: GOTOfgrap ELSE GOTO regresoespera:IF INKEY$ = " " THEN RETURN ELSE GOTO esperafgrap:END SUB
NT 4- 1), I1(NT + 1 , NT + 1)SUB EAT (T5, AA(), TT5())DIM AR(NT + 1, NT + 1), FI(NT + 1DIM BRCHT + 1, NT + 1)CALL MATIDEN(I1(), (NT + 1))CALL MATIDEN(FK), (NT + 1))FOR KNT - 100 TO 2 STEP -1
CALL MATESC(AA(), NT + 1, NT 4- 1, T5 / KNT, AR( ) )CALL MATMAT(NT + 1 , NT -f 1 , NT + 1 , NT + 1 , ARO, FI () ,TT5( ))CALL SUMM(NT + 1 , NT + 1, Il( ) , TT5(), TT5()}CALL COPIAM(NT + 1, NT + 1, TT5(), FIO)
NEXT KNTCALL MATESC(AA(), NT + 1 , NT + 1, T5 , ARO)CALL MATMAT(NT + 1 , NT + 1, NT + 13 NT + 1, ARO, FIO, TT5() )CALL SUMM(NT + 1 , NT + 1, Il(), TT5 () , TT5())END SUB
SUB ENTHHL = (XH V - Y *END SUB
(T, X, Y, HL, HV)C3(l) + (1 - X) * C3(2)) * T(Cl(l) + C2(l) * T) + (1 - Y) (Cl(2) +C2(2) * T)
SUB EQUILIBRIO (X, P, Y5 T)DIM P0(2), YEQ(2), XEQ(2)XEQ(l) = XXEQ(2) = 1 - XNLAZO = O10 :NLAZO = NLAZO + 1IF NLAZO > 100 THEN GOTO 30SUMY - OFOR N = 1 TO 2
PO(N) = EXP(BVP(N) + AVP(N) / (T + 460))YEQ(N) = PO(N) * XEQ(N) / PSUMY = SUMY -f YEQ(N)
NEXT NIF ABS(SUMY - 1) < .00001 THEN 15F = SUMY * P - PFSLOPE = OTSQ - (T + 460) ~ 2FOR N - 1 TO 2
FSLOPE = FSLOPE - AVP(N) * XEQ(N) * PO(N) / TSQNEXT NT = T - F / FSLOPEGOTO 1030 :
245
PRINT "NO HAY CONVERGENCIA": STOP15 :Y = YEQ(l)END SUB
SUB ESTADO (SIST$)menuO:CLS 2SCREEN 2NKl = O: NK2 = 15: NK3 = 4: NK4 - 12: NK5 = 56: NK6 = 21CALL CUADRO(NKl, NK2, NK3, NK4, NK5, NK6)NKl - 15: NK2 = O: NK3 = 5: NK4 = 14: NK5 - 52: NK6 - 6CALL CUADRO(NKl, NK2, NK3, NK4, NK5, NK6)LÓCATE 6, 19
1 ** COMPOSICIÓN LIQUIDA ESTIMADA10, 26: PRINT "INGRESE EL NUMERO DEL
'INGRESE'INGRESE'INGRESE16,
18,= "b
20:21:20:34:' OR
PRINTPRINTPRINTINPUTZ$ -;NTC,
##"PLATO"
(B) PARA EL PRODUCTO DE LA BASE"(D) PARA EL PRODUCTO DEL TOPE"(O) PARA RETORNAR AL ANTERIOR"
"Opción: ", Z$"B" THENO, MAX, MIN, GE())
PRINTLÓCATELÓCATELÓCATELÓCATELÓCATEIF Z$CALL LIMITESCALLEST.GOTO
END IFIF Z$ - "d" OR Z$ = "D" THENCALL LIMITES(NTC, NT + 1, MAX, MIN, GE())CALL DIBUJO(NTC, TPRINT, NT + 1, MAX, MIN"COMP. EST. LIQUIDA DEL PRODUCTO DEL TOPE
DIBUJO(NTC, TPRINT, O, MAX, MIN,LIQUIDA DEL PRODUCTO DE LA BASE"merruO
GE()O,
SIST$5 " COMP.
GE( ) ,NT 4-
SIST$,1, " (pu)
GOTO memiOEND IFNZ = VAL(Z$)IF NZ = O THEN GOTO fieIF (NZ > O AND NZ <= NT) THENCALL LIMITES(NTC, NZ, MAX, MIN, GE())CALL DIBUJO(NTC, TPRINT, NZ, MAX, MIN, GE(), SIST$, " COMPESTIM. DEL LIQUIDO QUE ABANDONA EL PLATO", NZ, " (pu)",
GOTO menuOEND IFfie:END SUB
FUNCTION FG (DAT)FG - DELTA * DAT
END FUNCTION
SUB FLUJOS (SIST$)menú?:CLS 2NKl = 0: NK2 = 18: NK3 = 3: NK4 = 12: NK5 = 54: NK6 = 17CALL CUADRO(NKl, NK2, NK3, NK4, NK5, NK6)NKl - 11: NK2 - 18: NK3 = 4: NK4 - 14: NK5 = 50: NK6 - 5CALL CUADRO(NKl, NK2, NK3, NK4, NK5, NK6)LÓCATE 5, 24
246
PRINT "** GRÁFICO DE FLUJOS **"LÓCATE 10, 16: PRINT "1.- FLUJO DE VAPOR QUE ABANDONA UNPLATO"LÓCATE 12, 16: PRINT "2.- FLUJO DE VAPOR QUE ABANDONA ELCALDERIN (VB)MLÓCATE 14, 16: PRINT "3.- MENÚ ANTERIOR"siga?:Z$ = INKEY$IF Z$ - "" THENGOTO siga?
ELSEZ - VAL(Z$)ON 2 GOTO flujovapor, vaporbase, retorno
END IFGOTO menú?flujovapor:CALL MENFLUJ(SIST$)GOTO menú?vaporbase:CALL VAP(SIST$)GOTO menú?retorno:END SUB
SUB FP (NO, CR(), X, Y, Ul, VI) STATICDEFINT -I-MDEFDBL A-H, 0-ZUl = NOVI - OFOR j - 1 TO NO - 1
T = Ul * X - VI * Y + (NO - j) * CR(j)VI - VI * X + Ul * YUl - T
NEXT óEND SUB
SUB FZ (NO, CR(), X, Y, UR, V) STATICUR - 1V = OFOR 3 - 1 TO NO
T = .UR * X - V * Y + CR(á)V = V * X + U R * YUR - T
NEXT óEND SUB
SUB GENERA (D5, K5, X5)'DISTRIBUCIÓN NORMAL - MÉTODO DEL LIMITE CENTRAL-'D5 = DESVIACIÓN STANDARD'E5 = VALOR ESPERADO'X5 VARIABLE ALEATORIA CON DISTRIBUCIÓN NORÍ IALA5 = OEOR N - 1 TO 12
A5 = A5 + RNDNEXT NX5 = D5 * (A5 - 6) 4- E5END SUB
247
SÜB GRAFIC01 (SIST$)menú:CLS 2NK1 = O: NK2 = 18: NK3 = 1: NK4 = 12: NK5 = 54:CALL CUADRO (NK1, NK2 , NK3, NK4, NK5 , NK6)NK1 = 11: NK2 = 18: NK3 - 1: NK4 = 12: NK5 = 54:CALL CUADRO (NK1, NK2 , NK3, NK4, NK5 , NK6)LÓCATE 2, 23
MENÚ DE GRÁFICOS (1) **"
NK6 = 21
NK6 - 2
PRINT " **LÓCATE 6, íLÓCATE 8, :
5: PRINT "1.-5: PRINT '25:25:25:25:25:
PRINTPRINTPRINTPRINTPRINT
'2.-"3.-"4.-"5.-"6.-"7.-
COMPOSICIÓN "TEMPERATURA"PRODUCTOS "REFLUJO"MASA EN LOS PLATOS"OTRAS OPCIONES"RETORNO A MENÚ DE OPCIONES"
LÓCATE 10:LÓCATE 12:LÓCATE 14:LÓCATE 16:LÓCATE 18,siga:Z$ = INKEY$IF Z$ = "" THENGOTO siga
ELSEZ = VAL(Z$)ON Z GOTO composición, temperatura, productos, reflujo,
masasplat, otras, salidaEND IFGOTO menúcomposición:CALL MENCOMP(SIST$)GOTO menútemperatura:CALL MENTKMP(SIST$)GOTO menúproductos:CALL MENPROD(SIST$)GOTO menúreflujo:CALL REF(SIST$)GOTO menúmasasplat:CALL MASAPLATO(SISTS)GOTO menúotras:GOTO otromenuotromenu:menuB:CLS 2NK1 = O: NK2 = 18: NK3 - 1: NK4 = 12: NK5 = 54: NK6 = 16CALL CUADRO(NK13 NK2, NK3, NK4, NK5, NK6)NK1 = 11: NK2 - 18: NK3 = 1: NK4 = 12: NK5 = 54: NK6 = 2CALL CUADRO(NK1, NK2, NK33 NK4, NK5, NK6)LÓCATE 2, 22PRINT " ** MENÚ DE GRÁFICOS (2) **"LÓCATE 7, 23: PRINT "1.- FLUJOS DE VAPOR"LÓCATE 9, 23: PRINT "2.- FLUJOS LÍQUIDOS"LÓCATE 11, 23: PRINT "3.- MENÚ ANTERIOR"LÓCATE 13, 23: PRINT "4.- RETORNO A MENÚ DE OPCIONES"siga2:
248
Zl$ = INKEY$IF Zl$ - "" THENGOTO siga2
ELSEZl = VAL(Z1$)ON Zl GOTO flujosvapor, flujosliquidos, menuant, salida
END IFflujosvapor:CALL FLUJOS(SIST$)GOTO menuSflúaosliquidos:CALL MENFLUJLIQ(SIST$)GOTO merm6menuant:GOTO menú:salida:END SUB
SÜB GRAFIC02 (SIST$)graf2:CLS 2NK1 = 0: NK2 = 18: NK3 = 4: NK4 = 12: NK5 = 54: NK6 = 13CALL CUADRO(NK1, NK2, NK3, NK43 NK5, NK6)NK1 = 11: NK2 - 18: NK3 = 4: NK4 = 12: NK5 = 54: NK6 = 5CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)LÓCATE 55 24PRINT " * MENÚ DE GRÁFICOS *#"LÓCATE 9, 27: PRINT "1.- COMPOSICIÓN "LÓCATE 11, 27: PRINT "2,- RETORNO A RESULTADOS"sig2:ZS = INKEY$IF Z$ = "" THENGOTO sig2
ELSEZ = VAL(Z$)ON Z GOTO composicion2, salida2
END IFGOTO graf2composicion2:CALL MENCOMP(SIST$)GOTO graf2salida2:END SUB
SUB GRÁFICOS (SIST$)mu:CLS 2NK1 = 0: NK2 = 18: NK3 = 1: NK4 - 12: NK5 = 54: NK6 - 15CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)NK1 - 11: NK2 - 18: NK3 - 1: NK4 = 12: NK5 = 54: NK6 = 2CALL CUADRO(NK1, NK2, NK3? NK4, NK5, NK6)LÓCATE 2, 24PRINT " ** MENÚ DE OPCIONES **"LÓCATE 6, 24: PRINT "1.- ESTADOS ESTIMADOS "LÓCATE 8, 24: PRINT "2.- CALOR ENTREGADO AL CALDERIN"LÓCATE 10, 24: PRINT "3,- VARIABLES DE LA PLANTA"LÓCATE 12, 24: PRINT "4.- RETORNO A RESULTADOS"
249
sg:Z$ = INKEY$IF Z$ = "" THENGOTO sg
ELSEZ = VAL(Z$)ON Z GOTO estados, ley, variables, salidaS
END IEGOTO muestados:CALL ESTADO(SIST$)GOTO muley:CALL LIMITES(NTC, O, MAX, MIN, G7())CALL DIBUJO(NTC, TPRINT, O., MAX, MIN, G7(), SIST$, " CALORENTREGADO AL CALDERIN", NT + 1, " (x 1CT6 BTU)", "QB(")GOTO muvariables:CALL GRAFIC01(SIST$)GOTO musalidaS:END SUB
2!) - WH / 12!
SUB HIDRAULIC (M7 X, WH, WL, DCOL, L)CALL MWDENS(X, MWA, DENSA)CONTS = 183.2 * M * MWA / (DENSA * DCOL "IF CONTS <= O THEN GOTO 12L = DENSA * WL * 999! * CONTS ~ 1.5 / MWAGOTO 2212 :L - O!22 :END SUB
SOB K1234 (DAT, VARI)Kl = FG(DAT)K2 = FG(DAT 4- Kl / 2)K3 = FG(DAT + K2 / 2)K4 - FG(DAT + K3)VARI - VARI + (Kl + 2 * K2 + 2 * K3 + K4) / 6END SUB
SUB LIMITES (N4, N3, MAX, MIN, G( ) )MIN = 1E+10MAX = OFOR NI = O TO N4 - 1 .
IF MAX <= G(N3, NI) THEN MAX = G(N3, NI)IF MIN >= G(N3, NI) THEN MIN - G(N3, NI)
NEXT NIIF MIN = MAX THEN MIN = .5 * MIN: MAX - 1.5 * MAXEND SUB
SUB LINEAL (AL(), BL())FOR N = O TO NT
SI = EXP(BVP(1) +S2- = EXP(BVP(2) +K1(N) = (SI / 52)
AVP(l) / (TE(N) 4- 460!))AVP(2) / CTE(N) -4- 460! ))/ (1! + ((SI / S2) - 1!) XE(N))
250
NEXT NAL(0, O) = (-LE(l) + VE(0) - Kl(0) * VE(0)) / ME(0)AL(0, 1) = LE(1) / ME(0)FOR N = 1 TO NS - 1
AL(N, N - 1) = K1(N - 1) * VE(N - 1) / ME(N)AL(N, N) = (-LE(N + 1) - VE.fN - 1) + VE(N) - K1(N) * VE(N))
/ ME(N)AL(N, N + 1) = LE(N + 1) / ME(N)
NEXT NAL(NS, NS - 1) = K1(NS - 1) * VE(NS - 1) / ME(NS)AL(NS, NS) - (-LE(NS + 1) - FLE - VE(NS - 1) + VE(NS) - Kl(NS)
* VE(NS)) / ME(NS)AL(NS, NS + 1) = LE(NS + 1) / ME(NS)AL(NS + 1, NS) = Kl(NS) * VE(NS) / ME(NS + 1)AL(NS + 1, NS + 1) = (-LE(NS + 2) - FVE - VE(NS) + VE(NS + 1)
- K1(NS 4- 1) * VE(NS + 1)) / ME(NS + 1)AL(NS + 1, NS + 2) = LE(NS + 2) / ME(NS + 1)EOR N = NS + 2 TO NT - 1
AL(N, N - 1) = K1(N - 1) * VE(N - 1) / ME(N)AL(N3 N) = (-LE(N + 1) - VE(N - 1) + VE(N) - K1(N) * VE(N))
/ ME(N)AL(N, N + 1} = LE(N + 1) / ME(N)
NEXT NAL(NT, NT - 1) = K1(NT - 1) * VE(NT - 1) / ME(NT)AL(NT? NT) - (-RE - VE(NT - 1) 4- VE(NT) - Kl(NT) # VE(NT)) /
ME(NT)AL(NT3 NT + 1) = RE / ME(NT)AL(NT -l- 1, NT) - Kl(NT) * VE(NT) / ME(NT + 1)AL(NT + 1, NT + 1) = (-VE(NT)) / ME(NT + 1)FOR N - O TO NT
BL(N3 0) - (XE(N + 1) - XE(N)) / ME(N)NEXT NBL(0, 1) = (XE(0) - YE(0)) / ME(0)FOR N = 1 TO NT
BL(N, 1) - (YE(N - 1) - YE(N)) / ME(N)NEXT NBL(NT + 1, 1) = (YE(NT) - XE(NT + 1)) / ME(NT + 1)END SÜB
SÜB LN (NDP, SIST$)CALL LIMITES (NTC, NDP7 MAX3 MIN, G5())CALL DIBUJO (NTC, TPRINT, NDP , MAX, MIN, G5 ( ) , SIST$, " FLUJOLIQUIDO QUE ABANDONA EL PLATO", NDP, "(moles/hora)", "L( " )END SÜB
SÜB MAS (NDP, SIST$)CALL LIMITESCNTC, NDP, MAX, MIN, G6())CALL DIBUJO ( NTC , TPRINT, NDP, MAX, MIN, G6(), SIST$, "MASA EN EL PLATO", NDP, " (moles) ", "M(")
END SÜB
SÜB MASAPLATO (SIST$)menu2 :CLS 2NK1 ~ 6: NK2 = 10: NK3 = 2: NK4 - 12: NK5 = 54: NK6 = 19CALL CUADRO (NK1, NK2, NK3, NK4? NK5 , NK6)NK1 = 5: NK2 = O: NK3 = 3: NK4 = 14: NK5 - 50: NK6 = 4
251
CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)LÓCATE 43 18PRINT " ** GRÁFICO DE MASA EN LOS PLATOS ** "LÓCATE 10, 27: PRINT "INGRESE EL NUMERO DEL PLATO"LÓCATE 13, 19: PRINT "INGRESE (0) PARA REGRESAR AL MENÚANTERIOR"LÓCATE 17, 33: INPUT "OPCIÓN "; A$NDP = VAL(A$)IE NDP > O AND NDP <= NT THENCALL MAS(NDP, SIST$)GOTO merm2
END IFIF NDP - O THEN GOTO fin2GOTO merm2fin2:END SUB
SUB MATESC (Al(), NI, N, E, RTO)FOR NI = O TO NIFOR N2 = O TO NRT(NI, N2) = E * A1(NI, N2)NEXT N2: NEXT NIEND SUB
SUB MATFI (T5, AA(), BB(), AD(), BD())DIM AR(NT 4 1, NT 4- 1), FI(NT + 1, NT + 1), I1(NT + 1, NT +. 1)DIM BR(NT + 1, NT + 1)CALL MATIDEN(IK), (NT + 1))CALL MATIDEN(FI(), (NT 4- 1))FOR KNT - 100 TO 2 STEP -1
CALL MATESC (AA O, NT 4- 1, NT 4 1, T5 / KNT, AR())CALL MATMAT(NT + 1, NT 4- 1, NT 4 1, NT + 1, AR( ) , -FIO,AD())CALL SUMMCNT 4- 1, NT + 1, Il(), AD(), AD())CALL COPIAM(NT + 1, NT + 1, AD(}, FI())
NEXT KNTCALL MATESC(AA(); NT + 1, NT + 1, T53 AR())CALL MATMAT(NT 4- 1, NT 4- 1, NT + 1, NT + 1, AR( ) , FI ( ) , AD())CALL SUMMCNT + 1, NT 4- 1, Il(), AD( ) , AD() )CALL MATESC(FI(), NT + 1, NT + 1, T5, BR())CALL MATMAT(NT + 1, NT 4- 1, NT + 1, 1, BR( ) , BB( ) , BD( ) )END SUB
SUB MATIDEN (I(), N2)FOR N - O TO N2
FOR NI = O TO N2IF N = NI THEN I(N, NI) = 1 ELSE I(N, NI) = O
NEXT NINEXT NEND SUB
SUB MATMAT (N, NI, N2, N3, Al(), A2(), RT())IF NI - N2 THEN GOTO oontiPRINT "NO ES POSIBLE MULTIPLICAR": GOTO finconti:FOR NI - O TO N
FOR N5 = O TO N3
252
S = OFOR N4 - O TO NI
S = S + A1(NI, N4) * A2(N4, N5)NEXT N4RT(NI, N5) = S
NEXT N5NEXT NIfin:END SUB
SUB MENCOMP (SIST$)menul:CLS 2NK1 = 0: NK2 = 15: NK3 = 4: NK4 - 12: NK5 = 56: NK6 - 15CALL CUADROCNK1, NK2, NK3, NK4, NK5, NK6)NK1 - 15: NK2 = O: NK3 = 5: NK4 = 14: NK5 ~ 52: NK6 = 6CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)LÓCATE 6, 22PRINT " ** GRÁFICOS DELÓCATE 9, 30: PRINT "1.-LOCATE 11, 30: PRINTLÓCATE 13, 30: PRINTsigal:Z$ = INKEY$IF Z$ - "" THENGOTO sigal
ELSEZ - VAL(Z$)ON Z GOTO liquid,
END IFGOTO menulliguid:CALL MENPLAT1(SIST$)GOTO menulvap:CALL MENPLAT2(SIST$)GOTO menulmenant:GOTO finefine:END SUB
2 —3.-
COMPOSICIONESLIQUIDA "VAPOR"MENÚ ANTERIOR"
vap 5 menant
SUB MENFLUJ (SIST$)menú8:CLS 2NK1 = O: NK2 - 18: NK3 = 3: NK4 = 12: NK5 = 54: NK6 - 15CALL CUADROCNK1, NK2, NK3; NK4, NK5, NK6)NX1 - 11: NK2 = 18: NK3 = 4: NK4 = 14: NK5 = 50: NK6 = 5CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)LÓCATE 5, 24PRINT " ** FLUJOS DE VAPOR **"LÓCATE 9, 25: PRINT " INGRESE EL NUMERO DEL PLATO "LÓCATE 11, 21: PRINT " INGRESE (O) PARA IR AL MENÚ ANTERIOR1LÓCATE 14, 35: INPUT "OPCIÓN "; A$IF A$ = "O" THEN GOTO finSNDP - VAL(A$)IF NDP > O AND NDP <= NT THEN
253
CALL VN(NDP, SIST$)GOTO menuS
END IFfinS:END SÜB
SUB MENFLUJLIQ (SIST$)
CLS 2NK1 = 0: NK2 = 18 : NK3 = 1 : NK4 = 12: NK5 = 54: NK6 = 15CALL CUADRO (NK1, NK2 , NK3, NK43 NK5 , NK6)NK1 = 11: NK2 = 18: NK3 = 2: NK4 = 14: NK5 = 50- NK6 = 3CALL CUADRO (NK1, NK2 , NK3, NK4, NK5 , NK6)LÓCATE 3, 17PRINT " ** FLUJO LIQUIDO QUE ABANDONA UN PLATO ##"LÓCATE 8, 26: PRINT " INGRESE EL NUMERO DEL PLATO "LÓCATE 10, 22: PRINT " INGRESE (0) PARA IR AL MENÚ ANTERIOR'LÓCATE 13, 34: INPUT "OPCIÓN "; A$IF A$ = "O" THEN GOTO fin9NDP = VAL(A$)IF NDP > O AND NDP <= NT THENCALL LN(NDP, SIST$)GOTO menu9
END IFGOTO menu9fin9:END SUB
SUB MENGENopción: .CLS 2NK1 = O: NK2 = 18: NK3 = 1: NK4 = 12: NK5 = 54: NK6 = 21CALL CUADRO (NK1, NK2 , NK3, NK4S NK53 NK6)NK1 - 11: NK2 - 18: NK3 = 1: NK4 = 12: NK5 = 54: NK6 = 2CALL CUADRO (NK13 NK2 , NK3, NK4, NK5 , NK6)LÓCATE 2, 26PRINT " * MENÚ PRINCIPAL * "LÓCATE 5, 27: PRINT "ESCOJA EL TIPO DE SISTEMA "LÓCATE 8, 23: PRINT 'LÓCATE 10, 23: PRINT
PRINTPRINTPRINTPRINT,PRINT
23:23:23:23:23:
I —"2. -"3 —"4.-"5 —"6.-II y __
LÓCATE 12LÓCATE 14LÓCATE 16LÓCATE 18LÓCATE 20sigao:T$ = INKEYSIF T$ - "" THENGOTO sigao
ELSEN3 = VAL(TS)NIND = N3
END IFIF N3 - 7 THEN ENDIF N3 < 1 OR N3 > 7 THEN GOTO opciónIF N3 = 6 THENCALL RESULTADOS
NO LINEAL SIN PERTURBACIONES"NO LINEAL CON PERTURBACIONES"LINEAL SIN PERTURBACIONES"LINEAL CON PERTURBACIONES"CONTROL "RESULTADOS"FIN DEL PROGRAMA"
254
GOTO opciónEND IFIF NREV(N3) = 1 TRENCLS 2LÓCATE 6, 17: PRINT "YA SE CORRIÓ ESTA OPCIÓN Y YA HAYRESULTADOS"LÓCATE 8, 8: PRINT "SI SE CORRE OTRA VEZ ESTA OPCIÓN, SEPERDERÁN LOS RESULTADOS"LÓCATE 10, 21: PRINT "GENERADOS EN LA CORRIDA ANTERIOR."LÓCATE 20, 12: INPUT " Desea correr esta opción con otrosdatos (S/N) "; A$IE A$ = "s" OR A$ = "S" THENGOTO ter
ELSEGOTO opción
END IFELSENREV(N3) = 1GOTO ter
END IFGOTO opciónter:END SUB
SUB MENPLAT1 (SIST$)menu3:CLS 2SCREEN 2NK1 - 0: NK2 - 15: NK3 - 4: NK4 = 12: NK5 = 56: NK6 = 21CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)NK1 = 15: NK2 = O: NK3 = 5: NK4 = 14: NK5 = 52: NK6 = 6CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)LÓCATE 63 25PRINT " *# COMPOSICIÓN LIQUIDA **"LÓCATE 10, 26: PRINT " INGRESE EL NUMERO DEL PLATO"LÓCATE 12, 20: PRINT " INGRESE (B) PARA EL PRODUCTO DE LA BASE
LÓCATE 14, 21: PRINTLÓCATE 16, 20: PRINTANTERIOR"LÓCATE 18, 34: INPUT "Opción:IF Z$ = "b" OR Z$ =
INGRESE (D) PARA EL PRODUCTO DEL TOPEINGRESE (0) PARA RETORNAR AL
B" THENCALL LIMITESCNTC, 1, MAX, MIN, G2())CALL DIBUJO (NTC, TPRINT, 1, MAX, MIN, G2 ( ) , SIST$,"COMPOSICIÓN LIQUIDA DEL PRODUCTO DE LA BASE", O, " (pu)",
GOTO men-u3END IFIF Z$ - "d" OR Z$ = "D" THENCALL LIMITES (NTC, 2, MAX, MIN, G2())CALL DIBUJO (NTC, TPRINT, 2, MAX, MIN, G2 ( ) , SIST$,"COMPOSICIÓN LIQUIDA DEL PRODUCTO DEL TOPE", NT + 1,(pu)", "XD(")GOTO menu3
END IFNZ = VAL(Z$)IF NZ = O THEN GOTO fis
255
IF (NZ > O AND NZ <= NT) THEN CALL NUMPLAT1(NZ, SIST$)GOTO men-u3fis:END SUB
SÜB MENPLAT2 (SIST$)menulO:CLS 2SCREEN 2NK1 - O: NK2 = 15: NKS - 4: NK4 = 12: NK5 = 56: NK6 = 22CALL CUADRO(NK1, NK2, NKS, NK4, NK5, NKS)NK1 = 15: NK2 = 0: NKS = 5: NK4 = 14: NK5 - 52: NK6 = 6CALL CUADRO(NK1, NK2, NKS, NK4, NK5, NK6)LÓCATE 6, 25
COMPOSICIÓN DE VAPOR **"INGRESE EL NUMERO DEL PLATO"
INGRESE (B) PARA COMPOSICIÓN EN EL
PRINT " INGRESE (D) PARA COMPOSICIÓN EN EL
INGRESE (0) PARA RETORNAR AL
G2(), SIST$,
PRINT " **LÓCATE 10, 25: PRINTLÓCATE 12, 19: PRINTCALDERIN "LÓCATE 14, 14:TANQUE DE REFLUJO"LÓCATE 16, 20: PRINTANTERIOR"LÓCATE 18, 32: INPUT "Opción: ", Z$IF Z$ = "b" OR Z$ = "B" THENCALL LIMITES(NTC, 4, MAX, MIN, G2())CALL DIBUJO(NTC, TPRINT, 4, MAX, MIN,COMPOSICIÓN DEL VAPOR QUE ABANDONA EL CALDERIN", O, " (pu)","YBC")GOTO mermlO
END IFIF Z$ = "d" OR Z$ - "D" THENCALL LIMITES(NTC, 3, MAX, MIN, G2())CALL DIBUJO(NTC, TPRINT, 3, MAX, MIN, G2(), SIST$, "COMPOSICIÓN DEL VAPOR EN EL TANQUE DE REFLUJO", NT 4- 1, "(pu)", "YD(")GOTO menulO
END IFNZ = VAL(Z$)IF NZ = O THEN GOTO fislIF (NZ > O AND NZ <= NT) THEN CALL NUMPLAT2(NZ, SIST$)GOTO menulOfisl:END SUB
SUB MENPROD (SIST$)menuS:CLS 2NK1 - O: NK2 = 15: NKS = 4: NK4 - 12: NKS = 56: NK6 = 16CALL CUADRO(NK1, NK2, NKS, NK4, NK5, NK6)NK1 = 15: NK2 - O: NKS = 5: NK4 = 14: NKS = 52: NK6 = 6CALL CUADRO(NK1, NK2, NKS, NK4, NKS, NK6)LÓCATE 6, 23PRINT " ** FLUJOLÓCATE 10, 27: PRINT 'LÓCATE 12, 27: PRINT 'LÓCATE 14, 27: PRINT 'siga5:
DE PRODUCTOS #*"'!.- PRODUCTO DEL TOPE"'2,- PRODUCTO DE LA BASE'3.- MENÚ ANTERIOR"
256
Z$ = INKEY$IF Z$ = "" THEN GOTO siga5NZ - VAL(Z$)ON NZ GOTO prodliq, prodbas, salidalGOTO menuSprodliq:CALL LIMITES(NTC, 2, MAX, MIN, G7())CALL DIBUJO(NTC, TPRINT, 2, MAX, MIN, G7(), SIST$, "PRODUCTO DEL TOPE", NT + 1, " (moles/hora)", "D(")GOTO memi5prodbas:CALL LIMITES(NTC, 1, MAX, MIN, G7())CALL DIBUJO(NTC, TPRINT, 1, MAX, MIN, G7(), SIST$, "PRODUCTO DE LA BASE", O, " (moles/hora)11, "B(")GOTO merm5salidal:GOTO finislfinisl:END SUB
SUB MENTEMP (SIST$)menu4:CLS 2NK1 - 0: NK2 = 15: NK3 = 4: NK4 = 12: NK5 = 56: NK6 = 19CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)NK1 - 15: NK2 = 0: NK3 = 5: NK4 - 14: NK5 = 52: NK6 = 6CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)LÓCATE 6, 22
TEMPERATURA EN CADA PLATOINGRESE EL NUMERO DEL PLATO"
1 INGRESE (B) PARA LA BASE"1 INGRESE (D) PARA T, REFLUJO"' INGRESE (O) PARA RETORNAR AL ANTERIOR1'OPCIÓN "; A$
PRINT "LÓCATELÓCATELÓCATELÓCATELÓCATEIF AS -
9,11,13,15,18,"b
25:26:25:21:35:" OR
TEMPERPRINTPRINTPRINTPRINTINPUTA$ = 1 THEN
CALL LIMITES(NTC, NT + 1, MAX.CALL DIBUJO(NTC, TPRINT, NT +TEMPERATURA EN LA BASE", O, "GOTO menu4
END IFIF A$ = "d" OR A$ = "D" THENCALL LIMITES(NTC, NT + 2, MAX.
MIN, G3())1, MAX, MIN(°F)", "TB('
MIN, G3())
G3()a SIST$,
CALL DIBUJO(NTC, TPRINT, NT + 2, MAX, MIN, G3(), SIST$,TEMPERATURA EN EL TANQUE DE REFLUJO", NT + 1, " (°F)",
GOTO menu4END IF'IF A$ = "O" THEN GOTO finisNZ = VAL(A$)IF (NZ > O AND NZ <= NT) THEN CALL NUMPLATEM(NZ, SIST$)GOTO menu4finis:END SUB
257
SUB MMPY (a5(), BS(), CR(), N)DEFINT I-MDEFDBL A-H, 0-ZFOR I = 1 TO N
FOR ó = 1 TO NCRCI, ó) = OFOR k - 1 TO N
CR(I, á) = CR(I, j) + a5(I, k) * BS(k, j)NEXT k
NEXT jNEXT IEND SUB
SUB MWDENS (X, MWA, DENSA)MWA = X * MW(1) + (1 - X) * MW(2)DENSA = X * DENS(l) + (1 - X) * DENS(2)END SUB
SUB NUMPLAT1 (NPP, SIST$)CALL LIMITES(NTC, NPP, MAX, MIN, Gl())CALL DIBUJO(NTC, TPRINT, NPP, MAX, MIN, Gl(), SIST$, "COMPOSICIÓN DEL LIQUIDO QUE ABANDONA EL PLATO", NPP, " (pu)"X(")END SUB
SUB NUMPLAT2 (NPP, SIST$)CALL LIMITES(NTC, NPP, MAX, MIN, G10()}CALL DIBUJO(NTC, TPRINT, NPP, MAX; MIN, G10(), SIST$, "COMPOSICIÓN DEL VAPOR QUE ABANDONA EL PLATO", NPP, " (pu)","Y(")END SUB
SUB NUMPLATEM (NPP, SIST$)CALL LIMITES(NTC, NPP, MAX, MIN, G3()}CALL DIBUJO(NTC, TPRINT, NPP, MAX, MIN, G3(), SIST$, "TEMPERATURA EN EL PLATO", NPP, " (°F)", "T(")END SUB
SUB OBSERVABLE (A( ) , C( ) )DIM Q(2 * NT + 3, NT + 1), RP1(1, NT 4- 1), CA(1, NT + 1)FOR NI - O TO 1
FOR NC = O TO NT 4- 1Q(N1, NC) = C(N1, NC)
NEXT NCNEXT NICALL COPIAM(1, NT + 1, C(),.CA())FOR NF = 1 TO NT + 1
CALL MATMAT(1, NT + 1, NT + 1, NT + 1, CA( ) , A( ) , RP1())FOR NI - O TO 1
FOR NK = O TO NT + 1Q(2 * NF + NI, NK) = RP1(N1, NK)
NEXT NKNEXT NICALL COPIAM(1, NT -1- 1, RP1( ) , CA( ) ) '
NEXT NFCALL DETERMINANTE(Q(), NT + 1, VAL2#)CLS 2
258
IF VAL2tf = O TRENLÓCATE 14, 25: PRINT "EL SISTEMA NO ES OBSERVABLE"
ELSELÓCATE 14, 25: PRINT "EL SISTEMA SI ES OBSERVABLE"
END IFEND SUB
SÜB PRESENTACIÓNCLS 2SCREEN 2NK1 = 0: NK2 = 18: NK3 - 1: NK4 = 12: NK5 = 54: NK6 = 22CALL CUADRO(NK1, NK2, NK3, NK4, NK5, NK6)LÓCATE 2, 26: PRINT "ESCUELA POLITÉCNICA NACIONAL"
PRINT "FACULTAD DE INGENIERÍA ELÉCTRICA"PRINT "DEPARTAMENTO DE ELECTRÓNICA Y CONTROL"
LÓCATE 3LÓCATE 4LÓCATE 6
24:22:35: PRINT "T E S
LÓCATE 9, 2 1 : PRINT " S I M U L A C I Ó N
LÓCATE 11, 34:LÓCATE 13, 18:I O N "LÓCATE 18, 16:LÓCATE 18, 49:LÓCATE 20, 15:LÓCATE 20, 46:LÓCATE 22, 33:wv:IF INKEY$ - ""END SUB
PRINT " D E U N A "PRINT " C O L U M N A D E
PRINT "Realizado por:"PRINT "Dirigido por:"PRINT "PATRICIO PUGA C."PRINT "Ing. MARCO BARRAGAN"PRINT "Diciembre 1991"
THEN GOTO wv
D I N Á M I C A
D E S T I L A C
SUB RAIZPOLI2 (N, COEF( ) , PREAL#( ) ,DEFINT I-MDEFDBL A-H, 0-ZREDIM CR(N), A1(N)NGRADO - NNUMRAIZ = OEPS1 = 9.999999999999999D-12EPS2 = EPS1 " 2FOR j = 1 TO NGRADO
PREAL#(ó) = OPIMAG#(¿) - OAl(o) - COEFfj + 1) / COEF(l)
NEXT oDO WHILE NGRADO > O
IF Al (NGRADO) - O THENNUMRAIZ = NUMRAIZ + 1NGRADO - NGRADO - 1GOTO final
END IFIF NGRADO = 1 THENNUMRAIZ = NUMRAIZ + 1PREAL#( NUMRAIZ) = -Al (NGRADO)NGRADO = O
ELSEIF NGRADO = 2 THENX = -Al(l) / 2NUMRAIZ = NUMRAIZ + 1T = X * X - Al(2)
) ) STATIC
259
IF T >- O THEN», T = SQR(T)
PREALtf(NUMRAIZ) = X + TPREAL#(NUMRAIZ + 1) = X - T
ELSEPREALtf(NUMRAIZ) = XPREAL#(NUMRAIZ + 1) = PREALtf(NUMRAIZ)PIMAGtf(NUMRAIZ) = SQR(-T)PIMAG#(NUMRAIZ + 1) - -PÍMAGíf (NUMRAIZ)
END IFNGRADO - O
ELSET - ABS(Al(NGRADO))IF T "O 1 THENH = T ~ (1 / NGRADO)rn -i
FOR d = 1 TO NGRADOT - T * HCR(Ó) = Al(d) / T
NEXT jELSEFOR JJ = 1 TO NGRADO
CR(JJ) = Al(JJ)NEXT JJH = 1
END IFX - .7Y = .6CALL FZ(NGRADO, CR(), X, Y, U, V)f l - U * U - F V * VDX = 1DY - 1DO WHILE fl > EPS2 OR (ABS(DX) > EPS1 AND ABS(DY) > EPS1)
comienzo:CALL FP(NGRADO? CR(), X, Y, Ul, VI)' calcular DX y DYT = ül * ül + VI * VI
V'- DX - -(U * Ul + V * VI) / T!£;* DY = (U * VI - V * Ul) / T:*~ - paso:«^ X = X + DXf- Y - Y + DY'51 CALL FZ(NGRADO, CR( ) , X, Y3 13, V)
"•- J IF F2 < EPS2 AND ABS(DX) < EPS1 AND ABS(DY) < EPS1 THENi EXIT DO«i ELSEIF F2 < fl THEN
f 1 = F2GOTO comienzo
ELSEX = X - DXY - Y - DYDX - .8 * DX
,-U DY = .8 * DYjfr, GOTO paso; .*' END IF .I LOOPX X - X * H
260
Y - Y * HIF ABS(Y) <= EPS1 THEN Y = ONUMRAIZ = NUMRAIZ + 1PREALíí(NUMRAIZ) = XPIMAGÍf (NUMRAIZ) = YIF Y <> O THENNUMRAIZ - NUMRAIZ + 1PREAL#( NUMRAIZ) = XPIMAGÍf (NUMRAIZ) - -YRR = -2 * XS = X*X + Y*YAl(l) = Al(l) - RRAl(2) = Al(2) - RR * Al(l) - SIF NGRADO >- 5 THENFOR á = 3 TO NGRADO - 2
A l ( á ) = A l ( á ) - R R * A l ( á - l ) - S * A l ( j - 2 )NEXT j
END IFNGRADO = NGRADO - 2
ELSET - 1FOR á = 1 TO NGRADO - 1
T = T * X + A l ( j )Al(á) = T
NEXT áNGRADO = NGRADO - 1
END IFEND IF_. ..final:
LOOPEND SUB
SUB KECARCHIV (NM)REDIM U(25)IF NM = O THEN GOTO fin3IF NM - 1 THEN
OPEN "ArNTCNS.DAT" FOR INPUT AS íílINPUT #1, NTCGLOSE íílOPEN "A:TNS.DAT" FOR INPUT AS íflINPUT #1, TPRINTGLOSE íílOPEN "ArGINS.DAT" FOR' INPUT AS íflFOR N = 1 TO NT
INPUT ífl, ü(0), ü(l), ü(2), ü(3), ü(4), ü(5), ü(6),ü(7), ü(8), ü(9), ü(10), U(ll), U(12)a ü(13), U(14),U(15), ü(16), U(17), 0(18), 0(19), U(20), ü(21),U(22), U(23), 0(24), 0(25)FOR N2 = O TO 25
G1(N3 N2) = Ü(N2)NEXT N2
NEXT NGLOSE íílOPEN "A:G2NS.DAT" FOR INPUT AS íflINPUT ífl, 0(0), 0(1), 0(2), 0(3), U(4) , ü(5), ü(6), 0(7)0(8), 0(9), 0(10), 0(11), 0(12), 0(13), ü(14), ü(15),0(16), 0(17), 0(18), 0(19), U(20), ü(21), ü(22), 0(23),
261
0(24), 0(25)FOR N2 - O TO 25
G2(l, N2) = Ü(N2)NEXT N2INPÜT #1, 0(0), 0(1), 0(2), 0(3), 0(4), O(5), U(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), ü(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23),0(24), ü(25)FOE N2 - O TO 25
G2(2, N2) - U(N2)NEXT N2INPÜT #1, ü(0), U(l), U(2), U(3)s ü(4)s 0(5), 0(6), U(7),U(8), U(9), O(10), 0(11), ü(12), 0(13), U(14), U(15),ü(16), 0(17), U(18), ü(19), U(20), O(21), ü(22), U(23);U(24), 0(25)FOR N2 - O TO 25
G2(3? N2) - Ü(N2)NEXT N2INPUT #1, 0(0), U(l), ü(2), ü(3), 0(4), U(5), 0(6), 0(7),
0(16), 0(17), 0(18), 0(19), 0(20), 0(21), ü(22), 0(23),0(24), 0(25)FOR N2 = O TO 25
G2(4, N2) = U(N2)NEXT N2GLOSE #1OPEN "A:G3NS.DAT" FOR INPUT AS #1FOR N ~ 1 TO NT + 2
INPÜT #1, U(0), U(l), 0(2), 0(3), 0(4), 0(5), U(6),0(7), 0(8), 0(9), 0(10), 0(11), U(12), 0(13), 0(14),0(15), 0(16), 0(17), 0(18), 0(19), U(20), U(21),0(22), 0(23), 0(24), 0(25)FOR N2 = O TO 25
G3(N, N2) = U(N2)NEXT N2
NEXT NGLOSE #1OPEN "A:G4NS.DAT" FOR INPÜT AS #1FOR N = 1 TO NT + 1
INPUT ttl, 0(0), 0(1), 0(2), 0(3), U(4), 0(5), 0(6),0(7), 0(8), 0(9), .0(10), 0(11), 0(12), 0(13), 0(14),0(15), 0(16), 0(17), 0(18), 0(19), ü(20), 0(21),0(22), 0(23), 0(24), 0(25)FOR N2 = O TO 25
G4(N, N2) = U(N2)NEXT N2
NEXT NGLOSE #1OPEN "A:G5NS.DAT" FOR INPÜT AS #1FOR N = 1 TO NT
INPUT #1, 0(0), 0(1), 0(2), 0(3), U(4), 0(5), ü(6),0(7), 0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14),0(15), 0(16), 0(17), 0(18), 0(19), ü(20), 0(21),0(22), 0(23), 0(24), ü(25)FOR N2 = O TO 25
G5(N, N2) = Ü(N2)NEXT N2
262
NEXT NGLOSE #1OPEN "A: G6NS.DAT" FOR INPUT AS #1FOR N = 1 TO NT
INPUT #1, 0(0), U(l), 0(2), U(3), U(4), ü(5), U(6),U(7), U(8), U(9), U(10), 0(11), 0(12), ü(13)3 U(14),U(15), U(16), U(17), 0(18), U(19), ü(20), U(21),U(22), U(23), U(24), ü(25)FOR N2 - O TO 25
G6(N, N2) = U(N2)NEXT N2
NEXT NGLOSE #1OPEN "AiG7NS.DAT" FOR INPUT AS #1FOR N = 1 TO 3
INPUT #1, ü(0), U(l), U(2), U(3), ü(4), ü(5), U(6),U(7), ü(8), ü(9), ü(10), ü(ll), ü(12), ü(13), ÜC14),ü(15), ÜC16), 0(17), 0(18), 0(19), 0(20), U(21), U(22)O(23)3 0(24), O(25)FOR N2 = O TO 25
G7(N, N2) = Ü(N2)NEXT N2
NEXT NGLOSE #1OPEN "A:G10NS.DAT" FOR INPUT AS #1FOR N = 1 TO NT
INPUT #1, 0(0), 0(1), 0(2), U(3), U(4), 0(5), U(6),U(7), 0(8), 0(9), 0(10), 0(11), 0(12), O(13), U(14),U(15), U(16), U(17), U(18), U(19), U(20)3 U(21), U(22)ü(23), 0(24), O(25)FOR N2 = O TO 25
G10(N, N2) = Ü(N2)NEXT N2
NEXT NGLOSE #1
ELSEIF NM = 2 THENOPEN "A:NTCNC.DAT" FOR INPOT AS #1INPOT #1, NTCGLOSE #1OPEN "AiTNC.DAT" FOR INPUT AS #1INPOT #1, TPRINTGLOSE ttlOPEN "AiGlNC.DAT" FOR INPUT AS #1FOR N - 1 TO NT
INPUT #1, U(0), U(l), 0(2), 0(3), 0(4), U(5), U(6),0(7), 0(8), 0(9), 0(10), 0(11), 0(12), 0(13), ü(14),U(15), ü(16), U(17), U(18), 0(19), ü(20), ü(21), U(22)0(23), U(24), U(25)FOR N2 - O TO 25
G1(N, N2) = U(N2)NEXT N2
NEXT NGLOSE #1OPEN "A:G2NC.DAT" FOR INPUT AS #1INPUT #1, 0(0), 0(1), 0(2), 0(3), 0(4), O(5), ü(6), U(7),U(8), U(9), U(10), U(ll), 0(12), 0(13), ü(14), O(15),0(16), 0(17), U(18), U(19), U(20), U(21), U(22)7 U(23)3
263
0(24), 0(25)FOR N2 = O TO 25
G2(l, N2) - Ü(N2)NEXT N2INPÜT #1, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), 0(6), O(7),U(8), 0(9), U(10), 0(11), 0(12), 0(13), ü(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23),0(24), 0(25)FOR N2 - O TO 25
G2(2, N2) = Ü(N2)NEXT N2INPÜT #1, 0(0), ü(l), 0(2), 0(3), U(4), 0(5), U(6), ü(7),U(8), U(9), U(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22), U(23),0(24), 0(25)FOR N2 - O TO 25
G2(3, N2) - Ü(N2)NEXT -N2INPUT #1, 0(0), 0(1), 0(2), 0(3), O(4), 0(5), 0(6), 0(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23),U(24); 0(25)FOR M2 - O TO 25
G2(4, N2) - 0(N2)NEXT N2GLOSE #1OPEN "A:G3NC.DAT" FOR INPÜT AS #1FOR 'N = 1 TO NT 4- 2
INPÜT #1, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), U(6),0(7), 0(8), U(9), 0(10), 0(11), 0(12), 0(13), 0(14),ü(15), U(16), 0(17), 0(18), ü(19), 0(20), 0(21), 0(22)0(23), 0(24), 0(25)FOR N2 - O TO 25
G3(N, N2) - Ü(N2)NEXT N2
NEXT NGLOSE #1OPEN "A:G4NC.DAT" FOR INPÜT AS #1FOR N = 1 TO NT 4- 1
INPÜT £1, 0(0), 0(1), U(2), 0(3), 0(4), 0(5), ü(6),U(7), U(8), 0(9), 0(10), 0(11), 0(12), ü(13), U(14),0(15), 0(16)s U(17), 0(18), U(19), 0(20), 0(21), 0(22)ü(23), U(24), ü(25)FOR N2 = O TO 25
G4(N, N2) = Ü(N2)NEXT N2
NEXT NGLOSE ttlOPEN "A:G5NC.DAT" FOR'INPUT AS #1FOR N - 1 TO NT
INPÜT #1, ü(0), U(l), ü(2), ü(3), U(4), U(5), ü(6),0(7), U(8), ü(9), 0(10), 0(11), ü(12), ü(13), 0(14),0(15), 0(16), 0(17), 0(18), 0(19), ü(20), U(21), 0(22)0(23), U(24), U(25)FOR N2 - O TO 25
G5(N, N2) = Ü(N2)NEXT N2
264
NEXT NGLOSE #1OPEN "A:G6NC.DAT" FOR INPUT AS #1FOR N - 1 TO NT
INPÜT #1, U(0), 0(1), 0(2), 0(3), ü(4)0(7), 0(8), U(9), 0(10), 0(11), ü(12),
U(5)0(13)
0(6),0(14)
0(24),= O TO
U(17)U(25)25
U(18), 0(19), 0(20), U(21), U(22)
N2) = U(N2)
FOR INPUT AS #1
0(1), 0(2), 0(3), 0(4), 0(5), 0(6),U(9), U(10), U(ll), 0(12), 0(13), 0(14),
0(16), 0(17), 0(18), 0(19), 0(20), O(21), U(22)U(24), 0(25)- O TO 25N2) = Ü(N2)
0(8)
FOR INPÜT AS #1
0(1), U(2), 0(3), 0(4)0(9), 0(10), U(ll), 0(12),
ü(5)U(13)
ü(6),U(14)
U(20), ÜC21), U(22)
U(15)U(23)FOR N2
G6(NNEXT N2
NEXT NGLOSE #1OPEN "A:G7NC.DAT"FOR N = 1 TO 3
INPUT #1, U(0)0(7),0(15),0(23),FOR N2
G7(N,NEXT N2
NEXT NGLOSE #1OPEN "A:G10NC.DATFOR N = 1 TO NT
INPÜT #1, ü(0)U(7),0(15)U(23)FOR N2 =
G10(NNEXT N2
NEXT NGLOSE #1
ELSEIF NMOPENINPÜTGLOSE #1OPEN "ArTLS.DAT"INPUT #1, TPRINT
#1'A:G1LS.DAT= 1 TO NT
INPUT ttl, ü(0), 0(1), 0(2), 0(3), ü(4), 0(5), O(6),0(7), U(8), 0(9), 0(10), 0(11), U(12), U(13)s U(14),ü(15), 0(16), U(17), 0(18), U(19), U(20), U(21), U(22)U(23), U(24), U(25)FOR N2 = O TO 25
G1(N, N2) = Ü(N2)NEXT N2
NEXT NGLOSE #1
'A:G2LS.DAT" FOR INPÜTti, U(0), U(l), U(2),
0(16),0(24),
O TO, N2)
0(17), 1O(25)25= Ü(N2)
= 3 THEN'A:NTCLS.DAT"#1, NTC
FOR INPOT AS
GLOSEOPEN 'FOR N
FOR INPOT AS
FOR INPÜT AS
OPEN 'INPUTU(8),U(16):
AS ttlU(3), U(4)
0(9), 0(10), 0(11), 0(12), 0(13),0(17), 0(18), U(19)r 0(20), 0(21)
0(5), 0(6), 0(7)U(14), 0(15),, 0(22), U(23),
(1
M O
O 2
523
hj
tr1 M
hd M
O X
G
23 C
O J-
3i-3
M
= 25
•$£
J> ^
t[_
i « .
1— i
- Q to
G t
r1—
O0
L,
^ y
u
> HG
-
.— N
[— i
fx]
^ O
- S3
G M
•— -N
23
EO f
d ( — '
y
[-9
G>
<->
COco — *
M G f£*
•— " G -— i
Oí
•-— •
« G CD « G <i >• — '
bd o £d23
f^
j G
G G
Mt?
d O -^
•""•*
• •^
v- 23
23
X
W t
o H
~-í
^dH
Q
eo e
n —
G u
H1 2
5 --—
* •—
"
1-325
— £
0 "
- ^
tO 2
5
G **
- 11
G
G
-— -
M
í-3•^•^
00
" O
23 O
tO
K —
tO
^ C
D-
G 2
5—
•* (-3
>— '
•— '
f-^
[-3O
- -
G 0
11
-^ •
— •
tO G
G C
D"
G
en *-
*, -^
— •
-—
to M
" G
23
Oí O
^to
•—
— '
G M
•• «
-—
, v~
>
h-1 -
G 0
^ —
Gí-
1 «
•->
.C
D
tO—
• G "
u
,— ~,
u
(-1G
h^
G
M -
CO
CD
^*-—
* G "
« ,—
,i_
i r-i
G
to-—
•
tO"
—O ^ G
- —
G}— l
,— N
G e
o en
^— ,
^ - '
tO u
-}—
l—
G G
M C
D
to-
to
tr1 co
OQ
MO
OM
OM
Q%
br
| O
OlT
dtH
25
hd
tri2
5hd
^tr
it?
3 O
^d
f1M
O ^
0 M
O h
d H
O
X
td M
O2
:CO
G2
5C
OG
25
25
CO
H3
2!;
b
rJ
GG
GM
2
3C
OM
H3
t?
Ji-3
2:
t?d
t?R)
O^-^
^^-^
25
25
M
:
r
:
ZX
í-
dtO
H-
vJ
^d
~
>^
^>
^:^
>lltt
HQ
e
oe
n^
GII>
^;
..[_
>[_
i..}
_il
_i.
. [_
i 1—
'22
•-v
•— ' -
1-3
' •
h- l
Q
-H
"
25
^
25
OC
O-
- M
Q(—
i tr
1
t-3
tO'^
- G
ítf-
1
tr1
HO
%
O H
2
51
IG
G-^
HH
OO
hd
-
H tr
1
ffi
- —
^C
D-
O t
r«M
O
OO
M
O
tO M
^-^
C
OO
M
>
-2
5
23
^C
D"
G2
;'
>
25
H
U
tO í
-3
^ H
tí
(-3
h3
: >
-^O
- u
GO
>
:
1-3
f-\'
h-3bü
j r
(I tO
G G
CD
- i
brj
O
ül^
.^^
O
ííJ
^
Gt
OH
-G
^W
o
^
en
-^
o
M
W
25
•— "-
G H
W
M
25 '
[O
- ^>
v^
25
^d
M
—
K1-
Mhd
G
a
G
o
25G
í-3
^d
•""•
*• *•
• G
'"dH3
G
[— i -
'"
G
>
H
03
tO
Hí>
co
•--
' G
v-/
CO
>
« ^-
s«
>*t
CO
M
C
O*t
H
G M
G
i_i
i_i
« (jj
i_i
CD
^•^—
' G
-»
->
M G
G t
o^
[0- ^
O — G
v
^-x
( —
[—1
-—•,
G c
o en
^— 1
'--'
• — '
to-
-f— i
^ G
Gh*
CD
G
^
ío-^
"to
23
hrj G
G
G M g
£r)
o
" '
^ •^
^ 23
t?d
X
W t
O h
-1 C
O
X
H Q
^
CD
--' G
Hto
23
— —
-;
H25
•—
tO
-
- 23
[O >
fc>
G
•& t
O-
u G a
^ M
25 0
tO
M —
to
en -
<i •'
G
• i
-3 *
— • •
-' *~
^O
-
G 0
11
"^^
*^^
•tO
G
H-
G O
í ^N
o
—
M—
G
25
CO
- -—
-tO
—
H
— •
M
G
%— '
s U
G H
1
— M
G(—
1 ^
--,
CD
" tO
•
•-_'
" G
-s^~
*.
G h
-1 G
•^
to •
• —to
—
eoo
- •—
•
- G •-"
* G
G H
"-
^ c
o ^
t*to
- —
J-X
-,
-,
^G
G
G h
-1 en
-N
ffi.
1
to —
-to
-—
G
- G
•>
^ C
DG
H-—
^ e
n"
to-
co-
Gir'
ZJ •-->
^ G
G G
M 2
3O
'-*
' -^^
f~^
25 M
W io
f-1
CD
hd
XQ
^ C
D—
G H
£0 2
5-—
• — -
H^
tO
"
« 23
co
G *
to
s,
II
(—1
(— f ^-^
|_1.
"
1 1
\ I
\ I r
^
1^^
CD
-23
O tO
M —
to
en -
j -
G•
^ [-3
•--'
^-s
f~^
O
" G
0
.II
••
— »
•—
tO
G h
-1"
G en
—
- o
---v
H1 "—
' G
23
00
" -^
tO
—
M,
j u
(—
<
^ ,
f~^
«J
f"— j
1
L
1
L i
1
h- 1 -
*—
*<
CD
- tO
v—'
^^
- G
-^
,
G h
- G
f~^
tO -
^^to
— e
oo
- ^-^
- G
/ — i
G M
—•
CO
hfc-
to —
—1
k u
M
^ G
G
*• — s
^~~
.
G H
en
<— •«
>íi.
>— '
CO —
-£
0-
^
G-
G '"
"•'—
. C
DG
H —
-^e
n-
co
-co
- G -J •—
bcj
G
G
Cj
1 — i 2j
*x}
GO
^^
^~
'^
^ 23 M
O
'""
-'Í^
JL
OH
CO
hd
X
WtO
Q
^ C
D—
G H
Q
^r,
-j
^___,
^_^, ,(
lJ
3
[O ^2¡ •
•
--^
tO
"-
23
-^^
tO-
tO
G *
tO
h-1
1 1
f— 1
(— f
,-—,
1_
L .j
I
1 f"
11
1 V —
| ^
— l r '
1
1 1
* —
1
^ .^
C
D -
—
>2
5O
tO
M—
2
5O
CO
EO
en <
l "
G
to
Oí
• f
-3 -_
^ -~ '
-^^
v-vi
-^v-
-0
-
G 0
0
II ^—
11
to
G H
1 -
toG
Oí
-^ O
G
en
'— ,
. H
* —
' G
^^
23
00-
-^
25
tO
—
M
tO^^
y
/ —
i s
_, ^
_,f~
-, V
G H
*-^
R G
(_l
v_^>
^—
s
CO
" tO
—
—
to-
G-
CD
^
Oí
G H
1 G
^ t
o^
to—
co
O -
l-J
^ c
"—
GG
H
1 •
~s"-
^ C
O
EO *— '
— '
i i u
u
^ G
G
,^ í
N
G H
Oí
•— >
>í ' —
'to
^-^
-to
-—
G
r—\
CD
f~J l_
v
^
.-s e
n-
£0
^co
- G
^ .
-<]
l— •
266
0(8), 0(9), 0(10), U(ll), 0(12), U(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), ü(22), 0(23),0(24), 0(25)FOR N2 - O TO 25
G2(l, N2) = U(N2)NEXT N2INPÜT #1, 0(0), U(l), 0(2), 0(3), 0(4), ü(5), ü(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), O(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23),0(24), 0(25)FOR N2 = O TO 25
G2(2, N2) = U(N2)NEXT N2INPOT ttl, 0(0), 0(1), 0(2), 0(3), ü(4), O(5), Ü(S), O(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), ü(15),0(16), 0(17), 0(18),,0(19), 0(20), 0(21), 0(22), ü(23),0(24), 0(25)FOR N2 - O TO 25
G2(3, N2) = 0(N2)NEXT N2INPOT #1, 0(0), 0(1), 0(2), 0(3), O(4), 0(5), O(6), ü(7),0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22), 0(23),0(24), 0(25)FOR N2 = O TO 25
G2(4, N2) - Ü(N2)NEXT N2GLOSE #1OPEN "A:G10LC.DAT" FOR INPÜT AS ttlFOR N = 1 TO NT
INPÜT #1, 0(0), 0(1), 0(2), 0(3), U(4), 0(5), 0(6),0(7), 0(8), 0(9), 0(10), 0(11), 0(12), 0(13), 0(14),0(15), U(16), 0(17), 0(18), ü(19), 0(20), 0(21), 0(22),0(23), 0(24), 0(25)FOR N2 = O TO 25. G10(N, N2) - 0(N2)NEXT N2
NEXT NGLOSE #1
ELSEIF NM = 5 THENOPEN "A:NTCC.DAT" FOR INPÜT AS #1INPÜT #1, NTCGLOSE #1OPEN "ArTC.DAT" FOR INPÜT AS #1INPÜT #1, TPRINTGLOSE #1OPEN "A:G1C.DATM FOR INPÜT AS #1FOR N - 1 TO NT
INPÜT ttl, 0(0), 0(1), 0(2), 0(3), U(4), 0(5), 0(6),0(7), 0(8), U(9), 0(10), 0(11), U(12), 0(13), ü(14), .0(15), 0(16), 0(17), 0(18), 0(19), 0(20), 0(21), 0(22),0(23), 0(24), 0(25)FOR N2 ~ O TO 25
G1(N, N2) - U(N2)NEXT N2
NEXT NGLOSE #1
267
OPEN "AiG2C.DAT" FOR INPÜT AS SiINPUT SI, 0(0), ü(l), 0(2), 0(3), ü(4), U(5), ü(6), 0(7),0(8), ü(9)? U(10), 0(11), 0(12), 0(13), 0(14), 0(15),U(16), U(17), U(18), U(19), U(20), 0(21), ü(22), 0(23),U(24), ü(25)FOR N2 = O TO 25
G2(l, N2) = Ü(N2)NEXT N2INPUT #1, 0(0), ü(l), 0(2), 0(3), 0(4), ü(5)s 0(6), 0(7),0(8), ü(9), 0(10), U(ll), 0(12), 0(13), U'(14), U(15),0(16), 0(17), 0(18), 0(19), 0(20), U(21), O(22), 0(23),0(24), 0(25)FOR N2 = O TO 25
• G2(2, N2) = Ü(N2)NEXT N2INPUT- #1, U(0), U(l), 0(2), 0(3), U(4), O(5), 0(6), 0(7),0(8), 0(9), ü(10)r 0(11), 0(12), 0(13), ü(14), 0(15),0(16), 0(17), 0(18), U(19), 0(20), 0(21), U(22), ü(23),0(24), ü(25)FOR N2 = O TO 25
G2(3, N2) = U(N2)NEXT N2INPÜT #1, 0(0), 0(1), 0(2), 0(3), U(4), 0(5), ü(6), O(7),0(8), U(9), U(10), U(ll), U(12), 0(13), O(14), 0(15),0(16), 0(17), 0(18), 0(19), 0(20), U(21), U(22), 0(23),U(24), 0(25)FOR N2 = O TO 25
G2(4, N2) = Ü(N2)NEXT N2GLOSE SIOPEN "A:G3C.DAT" FOR INPÜT AS tiFOR N - 1 TO NT + 2
INPOT ttl, 0(0), 0(1), U(2), U(3), U(4), U(5), U(6),U(7), U(8), 0(9), 0(10), U(ll), 0(12), 0(13), ü(14)?ü(15), 0(16), 0(17), 0(18), 0(19), U(20), U(21), U(22),0(23), 0(24), U(25)FOR N2 = O TO 25
G3(N, N2) = Ü(N2)NEXT N2
NEXT NGLOSE 4flOPEN "A:G4C.DAT" FOR INPÜT AS SIFOR N - 1 TO NT + 1
INPÜT SI, 0(0), 0(1), U(2), U(3), U(4), U(5), 0(6),0(7), ü(8), 0(9), 0(10)? 0(11), 0(12), U(13), ü(14),ÜC15J, ü(16), 0(17), 0(18), 0(19), 0(20), ü(21), 0(22),0(23), U(24), ü(25)FOR N2 = O TO 25
G4(N, N2) = Ü(N2)NEXT N2
NEXT NGLOSE SIOPEN "A:G5C.E)AT" FOR INPÜT AS SIFOR N - 1 TO NT
INPÜT SI, 0(0), O(l), 0(2), 0(3), U(4), U(5), 0(6),0(7), U(8), 0(9), 0(10), 0(11), 0(12), O(13), 0(14),0(15), 0(16), 0(17), U(18), 0(19), U(20), U(21), 0(22),
268
U(23), ü(24), U(25)FOR N2 - O TO 25
G5(N, N2) = U(N2)NEXT N2
NEXT NGLOSE #1OPEN "A:G6C.DAT" FOR INPUT AS íflFOR N = 1 TO NT
INPUT #1, U(0), 0(1), ü(2), 0(3), U(4), U(5), 0(6),0(7), 0(8), 0(9), U(10), 0(11), 0(12), 0(13), 0(14),0(15), U(16), 0(17), 0(18), 0(19), 0(20), 0(21), ü(22)0(23), 0(24), 0(25)FOR N2 = O TO 25
G6(N, N2) = 0(N2)NEXT N2
NEXT NGLOSE ttlOPEN "A:G7C.DAT" FOR INPÜT AS #1FOR N = O TO 3
INPÜT ttl, 0(0), 0(1), 0(2), 0(3), 0(4), 0(5), 0(6),0(7), 0(8), 0(9), 0(10), 0(11), U(12), 0(13), 0(14),0(15), ü(16), 0(17), U(18), 0(19), 0(20), 0(21), ü(22)0(23), 0(24), 0(25)FOR N2 = O TO 25
G7(N, N2) = U(N2)NEXT N2
NEXT NGLOSE #1OPEN "A:G10C.DAT" FOR INPOT AS #1FOR N - 1 TO NT
INPÜT ttl, 0(0), 0(1), 0(2), 0(3), U(4), 0(5), U(6),0(7), 0(8), 0(9), 0(10), 0(11), ü(12), 0(13), 0(14),0(15), 0(16), 0(17), 0(18), 0(19), 0(20), 0(21), O(22)0(23), 0(24), 0(25)FOR N2 = O TO 25
G10(N, N2) - U(N2)NEXT N2
NEXT NGLOSE #1
END IFf in3:END SOB
SÜB REF (SIST$)CALL LIMITES(NTC, 3, MAX, MIN, G7 ( ) )CALL DIBÜJO(NTC, TPRINT, 3, MAX, MIN, G7 ( ) , SIST$, "REFLUJO", NT -f 1, " (moles/hora)", "R( " )END SÜB
SUB RESULTADOSme"u:CLS 2NK1 = O: NK2 = 18: NK3 = 1: NK4 = 12: NK5 - 54: NK6- = 20CALL CUADRO (NK1, NK2, NK3, NK4, NK5 , NK6)NK1 = 11: NK2 - 18: NK3 = 1: NK4 = 12: NK5 = 54: NK6 - 2CALL CUADRO (NK1, NK2 , NK3 , NK4, NK5 , NK6)LÓCATE 2, 23
269
** RESULTADOS •6, 24: PRINT "1.-8, 24: PRINT '10,12,14,16,18,
24:24:24:24:24:
PRINTPRINTPRINTPRINTPRINT
' 2 —"3.-"4.-"5.-"6.-"7 _
PRINTLÓCATELÓCATELÓCATELÓCATELÓCATELÓCATELÓCATEsigue:Z$ = INKEY$IF Z$ = "" THENGOTO sigue
ELSENZ2 = VAL(Z$)
END IEIF NZ2 = 7 THSN GOTO fin5IF NZ2 - 6 THEN CALL TABLAIF NZ2 >= 1 AND NZ2 <= 5 THEN
IF NREV(NZ2) = O THENCLS 2LÓCATE 10, 15: PRINT
ESTA OPCIÓN"LÓCATE 22, 22: PRINT
tecla:tec$ = INKEY$IF tec$ = "" THEN .GOTO tecla
ELSEGOTO meu
END IFEND IFCALL RECARCHIV(NZ2)IF NZ2 = 1 THENSISTS = "NL/SP"CALL GRAFIC01CSIST$)
ELSEIF NZ2 = 2 THENSIST$ = "NL/CP"CALL GRAFIC01(SIST$)
ELSEIF NZ2 = 3 THENSIST$ = "L/SP"CALL GRAFIC02(SISTS)
ELSEIF NZ2 = 4 THENSISTS - "L/CP"CALL GRAFIC02(SIST$)
ELSEIF NZ2 - 5 THENSISTS = "CONTROL"CALL GRAFIC03(SISTS)
END IFEND IFGOTO meufin5:END SUB
SUB SUMM (N2, N3, Bl(), B2(), RT())FOR N = O TO N2
FOR NI = O TO N3RT(NS NI) - B1(N, NI) + B2(NS NI)
GRÁFICOS **"NO LINEAL SIN PERTURBACIONESNO LINEAL CON PERTURBACIONES'LINEAL SIN PERTURBACIONES"LINEAL CON PERTURBACIONES"CONTROLADO"VALORES EN ESTADO ESTABLE"REGRESO A MENÚ PRINCIPAL"
TODAVÍA NO SE GENERAN RESULTADOS DE
PRESIONE UNA TECLA PARA CONTINUAR"
270
NEXT NINEXT NEND SUB
SUB SUSPENSIÓN (TIM, S$)CLS 2LÓCATE 5, 20: PRINT "EL PROCESO SE HA SUSPENDIDO YA QUELÓCATE 7, 15: PRINT S$; : PRINT " SE HA HECHO NEGATIVO.1LÓCATE 9, 20: PRINT "ESTO HA OCURRIDO A ";PRINT USING "####.###### seg"; TIM * 3600LÓCATE 22, 22: PRINT "PULSE UNA TECLA PARA CONTINUAR"sig:XS = INKEY$IF X$ = "" THEN GOTO sigGLOSEEND SUB
SUB TABLACLS 2LÓCATE 1,LÓCATE 2,LÓCATE 4,LÓCATE 5,LÓCATE 6,LÓCATE 5,LÓCATE e,LÓCATE 53
LÓCATE 5,LÓCATE 6,LÓCATE 6,LÓCATE 7,
28: PRINT "VALORES EN ESTADO ESTABLE128: PRINT " '19: PRINT "COMPOSICIÓN (pu)"46: PRINT "TEMPERATURA"49: PRINT "(°F)"64: PRINT "PRESIÓN"65: PRINT "(psi)"16: PRINT "— "3: PRINT "PLATO"17: PRINT "LIQUIDA"29: PRINT "DE VAPOR"1: PRINT
LÓCATE 8, 2: PRINT USING " Base #.#### #.####.### ###_## "; XE(0); YE(0); TE(0); PB
FOR N - 1 TO NTLÓCATE (N + 8), 2: PRINT USING " # #. $# ##
#.#### ####_### ###.##"; N; XE(N); YE(N);TE(N); P(N)NEXT NLÓCATE (N + 8), 1: PRINT USING " T. Ref. #.#####.#### ####_### ###.##"; XE(NT 4- 1); YE(NT1); TE(NT 4- 1) ; PDLÓCATE 22, 24: PRINT "PRESIONE UNA TECLA PARA CONTINUAR"uuu:IF INKEY$ = "" THEN GOTO uuuCLS 2LÓCATE 1, 28: PRINT "VALORES EN ESTADO ESTABLE"LÓCATE 2, 28: PRINT " "LÓCATE 4, 22: PRINT "FLUIDOS QUE ABANDONAN"LÓCATE 5, 22: PRINT "EL PLATO (moles/hora)"LÓCATE 5, 58: PRINT "MASA"LÓCATE 6, 20: PRINT " ' "LÓCATE 6, 57: PRINT "(moles)"LÓCATE 5, 3: PRINT "PLATO"LÓCATE 7, 21: PRINT "LIQUIDO"LÓCATE 7, 36: PRINT "DE VAPOR"
271
LÓCATE 8, 1: PRINT
LÓCATE 9, 2: PRINT USING " Base"; BE + VE(0); VE(0); ME(0)
FOR N = 1 TO NTLÓCATE (N + 9), 2: PRINT USING " # #####.#####.### ###.#### "; N; LE(N); VE(N); ME(N)
NEXT NLÓCATE (N + 9), 1: PRINT USING " T. Ref. #####.###
###.#### "; RE + DLE; ME(NT + 1)LÓCATE 22, 22: PRINT "PRESIONE UNA TECLA PARA CONTINUAR"fff:IF INKEY$ = "" TREN GOTO fffEND SUB
SUB TRANSPUESTA (NI, N2, MATO, MATTO)FOR N - O TO N2
FOR NN = O TO NIMATT(N, NN) = MAT(NN> N)
NEXT NNNEXT NEND SUB
SUB VALPROP (AV(), REAL#( ) , IMAGtt(»DEFINT I-NDEFDBL B-H, 0-ZDIM AM#(NT +2, NT + 2), B(NT +2, NT + 2), CR(NT + 2, NT +2), p2(NT + 3)REDIM REALtt(NT +2), IMAGtf(NT + 2)N = NT + 2FOR I - O TO N - 1
FOR á = O TO N - 1B(I + 1, j + 1) = AV(I, j)AM#(I + 1, j + 1) = AV(I, á)
NEXT jNEXT IP2(l) = -1FOR k = 1 TO N
T = OFOR I = 1 TO NT = T + B(I, I)NEXT Ip2(k + 1) = T / kFOR I - 1 TO NB(I, I) = B(I, I) - p2(k + 1)NEXT ICALL MMPY(AM#(), B(); CR(), N)FOR I = 1 TO N
FOR ó = 1 TO NB(I, j) = CR(I, J)
NEXT dNEXT I
NEXT kCLS 2LÓCATE 4, 6INPUT "Desea ver los valores propios del sistema lineal (S/N)
272
? ", A$JÉ IF AS - "S" OR A$ = "s" THEN" CLS 2
FOR I - 1 TO N + 1p2(I) = -P2(I)
NEXT ILÓCATE 35 29
; PRINT "VALORES PROPIOS"PRINTPRINTPRINTPRINT " No. REAL (I/hora) IMAG(2Tt/hora)"
^ PRINT9' CALL RAIZPOLI2(N, p2()s REALEO, IMAG#())
FOR á = 1 TO NPRINT USING " ## • ######.############. ######"; j; REALtt(j); IMAG#(¿)
NEXT á' LÓCATE 23", 22: PRINT "PRESIONE UNA TECLA PARA CONTINUAR"
XX:IF INKEY$ = "" THEN GOTO XXCLS 2
ELSEFOR I - 1 TO N + 1
P2(I) = -P2(I)& NEXT I* CALL RAÍ ZPOLI2(N, p2 ( ) , REALttO, IMAGttO)
END IFEND SUB
SUB VAP (SIST$)CALL LIMITES (NTC, NT + 1 , MAX, MIN, G4 ( ) )CALL DIBUJOCNTC, TPRINT, NT + 1, MAX, MIN, G4(), SIST$, "FLUJO DE VAPOR QUE ABANDONA EL CALDERIN", O, " (moles/hora)",
END SUB
SUB VN (NDP3 SIST$)CALL LIMITES(NTC,' NDP, MAX, MIN? G4( ) )CALL DIBUJO (NTC, TPRINT, NDP , MAX, MIN, G4( ) , SIST$, " FLUJODE VAPOR QUE ABANDONA EL PLATO", NDP, "(moles/hora)", "V(")END SUB
273
BL X OORAJE" X A
1. Perry, John H. , Chemical Engineers Handbook? cuarta
edicións Kogalcusha Company, Tokyo, 1963,
2. Hongen, Watson, Ragatz, Principios de los Procesos
Químicos, Editorial Reverte, S, A,, Barcelona, 1964,
3. Shoave, Richard, Gilliland, Elementa of Fractional
Distillation, Toronto, 1968.
4. Smith, Briedford, Design of Equilibrium Stage Processes,
New York, Editorial Me, Graw Hill, 1963.
5. Winnacker, Weingaertner, Química Industrial Orgánica,
Editorial Gustavo Gilí, Barcelona, 1958.
6. Treybal R. , Operaciones con Transferencia de Masa, AID,
México, 1970.
7. Himinelblau, Bischoff, Process Analysis and Simulation?
John Wiley & Sons, Inc., New York, 1968.
8. Roger Franks, tíodeling and Simulation in Chemical
Engineers, John Wiley & Sons, New York, 1972.
9. Astrom Karl, Introduction to Stochastic Control Theory,
Academic Press, New York; 1970.
10. Sage, Andrew, Optimum Systems Control? Prentice Hall,
Inc., Englewood Cliffs, 1968.
11. Luyben W. ? Proceas Modeling? Simulation and Control for
Chemical Engineers? Academic Press, New York, 1972.
12. Takahashi, Control and Dynamics System, Adison-Wesley,
1970.
13. O gata 5 Ingeniería de Control Moderna, Prentice Hall.,
274
<& 1974.
14. Gilliland. Mohr, Transient behavior in plate-tower
distillation of a binary mixture? Chemical Engineering
Progresa, Vol. 58, No, 9, 1962.
15. Peiser, Grover, Dynamic Simulation of a Distíllation
Tower, Chemical Engineering Progress 3 Vol. 58, No. 9,
||> 1962.
16. Roger Franks, Hybrid Simulation of Multistage System
Dynamics, Chemical Engineering Progress, Vol. 60, No. 3,
' • 1964.
17. Gani? Ruis, Cameron, Studies in the Dynamics of Startup
and Shutdowm Qperations of Distillation Columns, CEF 87,
The Use of Computers in Chemical Engineering, Italia,
1987.
18. Chen-Jung Huang, Lloyd Yaws, Transient Concentration
Profile and Dynamics Tray Efficiency of Interphase Mass
Transfer on a Single Bubble Tray, Chemical & Petroleum,
U . S . A . , 1965.
19. Biardi, Grottoli, Development of a New Simulation Model
k for Real Trays Distillation Column, CEF 88, The Use of/
Computers in Chemical Engineering, Italia, 1988.
20. Rosenbrock, The Control of Distillation Columns,
Transactions of the Institute of Chemical Engineers, Vol.
; 40, 1962.
21. Brosilow, Handley, Optimal Control of a Distillation
Column, AIChE Journal, Vol. 14, No. 3, 1962.
22. Athans Michael, The Role and Use of the Stochastic Linear
¡¡., — Quadratic - Gaussian Problem in Control System Design?
275
IEEE Transactions on Automatic Control, Vol. AC-16, No.
6, 1971.
23. Yoshie Yasukazu. Optimal Control of Distillation Co2umn?
M.I.T., 1973.
24. Gañí, Ruiz, Cameron, A Generalized Model for Distillation
Columns — I7 Computer & Chemical Engineering, Vol. 10,
No. 3, Gran Bretaña, 1986.
25. Thomas Philip, Dynamic Simulatíon of Multicomponente
Dístillatíon Processes, Ind. Eng. Chem. Process Des.,
1981.
26. Barragán Marco, Simulación Estadística, Escuela
Politécnica Nacional, Quito.
27. Barragán Marco, Controle Otimo Estocástico Aplicado a urna
Coluna de Destilacao? Escuela Politécnica de USP, Sao
Paulo, 1977.
28. Rodríguez Luis, Simulación Estadística? Tesis de Grado,
Escuela Politécnica Nacional, Facultad de Ingeniería
Eléctrica, 1983.
29. Barbería Francisco, Control Estocástico Discreto, Tesis
de Grado, Escuela Politécnica Nacional, Facultad de
Ingeniería Eléctrica, 1984.
30. Célleri Marcelo, Control JSstocástico Discreto — Parte II,
• Tesis de Grado, Escuela Politécnica Nacional, Facultad de
Ingeniería Eléctrica, 1987.