Sei sulla pagina 1di 27

CAPÍTULO

NUMÉRICO
MÉTODOS

4.1 INTRODUCCIÓN

La simulación digital es una herramienta poderosa para resolver las ecuaciones que describen sistemas de
ingeniería química. Las principales dificultades son dos: (1) solución de ecuaciones algebraicas no lineales
simultáneas (hace generalmente por algún método iterativo), y (2) numérico
integración de ecuaciones diferenciales ordinarias (usando finita discreta
ecuaciones en diferencias para aproximar diferencial continuo ecuaciones).

La precisión y la estabilidad numérica de estas ecuaciones se aproximan deben ser tenidas en cuenta.
Tanto la precisión y la estabilidad se ven afectados por la ecuación de diferencia finita (o algoritmo de integración) empleado,
se han propuesto muchos algoritmos en la literatura. Algunos funcionan mejor (es decir, más rápido y por lo tanto
más barato para un grado específico de precisión) en algunos problemas que otros. Desafortunadamente, no
hay un algoritmo que funciona mejor para todos los problemas. Sin embargo, como veremos en detalle más
adelante, el simple de primer orden algoritmo de Euler explícito es la mejor para un gran número de aplicaciones
de ingeniería.

Con los años se han desarrollado una serie de paquetes de simulación digital. En teoria,
estos lenguajes de simulación aliviar el ingeniero de saber Any-
cosa sobre la integración numérica. Ellos supervisan automáticamente los errores y la estabilidad y ajustar el intervalo de
integración o tamaño de paso para mantenerse dentro de algún criterio de exactitud. En teoría, estos paquetes hacen
que sea más fácil para el ingeniero de configurar y solucionar problemas.

En la práctica, sin embargo, estos lenguajes de simulación tienen una utilidad limitada. En su lucha por la
generalidad, que por lo general se han vuelto ineficaz. El tiempo de ejecución de ordenador para un problema de
ingeniería realista cuando se ejecuta en uno de estos

89
COMPUTADORA SIMULACIÓN

lación paquetes suele ser significativamente más largo que cuando se ejecuta en un programa FORTRAN, BASIC,
PASCAL o por escrito para el problema específico.
Los defensores de estos paquetes argumentan, sin embargo, ese la configuración y programa-
ming tiempo se reduce mediante el uso de lenguajes de simulación. Esto puede ser cierto para el
ingeniero que no conoce ningún tipo de programación y utiliza el ordenador sólo muy de vez en
cuando, y sólo para simulaciones dinámicas. Sin embargo, casi todos de la escuela secundaria y,
ciertamente, todos los graduados de ingeniería sabe poco de lenguaje de programación informática.
Así, utilizando un paquete de simulación requiere el ingeniero de aprender un nuevo lenguaje y un
nuevo sistema. Desde un lenguaje que ya se conoce y desde las simples técnicas numéricas,
fácilmente programados funcionan bien, ha sido mi experiencia que es mucho mejor para el ingeniero
para desarrollar un programa específico para el problema en cuestión. No sólo es
computacionalmente más eficiente, pero garantiza que el ingeniero sabe lo que es en el programa y
cuáles son las hipótesis y técnicas son.

Por otro lado, el uso de subrutinas especiales para hacer cálculos específicos es muy
recomendable. El libro de francos ( Modelado y Simulación en Ingeniería Química, John Wiley and Son,
Inc., 1972) contiene una serie de subrutinas útiles. Y, por supuesto, por lo general hay amplias
bibliotecas de subrutinas disponibles en la mayoría de lugares como las subrutinas IMSL. Estos pueden
ser llamados muy convenientemente a partir de un programa de usuario.

PROGRAMACIÓN 4.2 COMPUTER

Una discusión completa de la programación informática está más allá del alcance de este libro. Asumo
que sabes algo de lenguaje de programación informática. Todos los ejemplos se utilizan FORTRAN ya
que es el más utilizado por la práctica de química
ingenieros.

Sin embargo, podría ser útil para hacer algunos comentarios y darle algunos consejos acerca de la
programación. Estos pensamientos no son procedentes de un informático que esté interesado en generar el
código más eficiente y elegante, pero a partir de un ingeniero que está interesado en la solución de problemas.

Muchas personas obtienen todos entusiasmados incluyendo las declaraciones de comentarios extensos
en su código. Algunos van tan lejos como para decir que usted debe tener dos líneas de comentarios para cada
una línea de código. En mi opinión, esto es ridículo! Si utiliza símbolos en su programa que son los mismos que
se utiliza en las ecuaciones que describen el sistema, el código debe ser fácil de seguir. Algunas declaraciones
de comentario para señalar las diferentes secciones del programa están bien.

Por ejemplo, en la destilación simulaciones la composición destilado y fondos debería ser


llamado “XD (J)” y en el programa. La composi- bandeja
ciones deben ser llamados donde IV es el número de bandeja a partir de la
y la parte inferior es el número de componentes. Muchos científicos de la computación ponen todo
las composiciones en una variable y el índice de forma que el destilado es
la bandeja superior es etc. Esto le da a un programa más compacto, pero
hace que sea mucho más difícil de entender el código.
MÉTODOS NUMÉRICOS 91

Otro importante problema práctico está depurando. Casi siempre, se quiere


tener algún error en su programa, ya sea en la codificación o en la lógica. Siempre, siempre repetir, poner contadores de
bucle en cualquier bucles iterativos. Esto se ilustra en los programas de cálculo de puntos se dan más adelante en este
capítulo. Si el programa no está en funcionamiento, no sólo tirar sus manos y dejar de fumar. Se necesita una buena
cantidad de tenacidad para conseguir todas las torceduras de algunas simulaciones. Tal vez por eso los holandeses son
muy buenos en eso.

Cuando el programa no está funcionando correctamente, lo más fácil de hacer es poner en las
declaraciones de impresión programa en cada fase de los cálculos para que pueda averiguar lo que ha
hecho mal o donde se encuentra el error de código o la lógica.

Uno de los errores de codificación más frustrantes, y uno que es el más difícil de encontrar, es cuando
se desborde una matriz. Esto por lo general sólo elimina su programa en algún lugar donde no hay nada
malo con el programa, y ​muchos compiladores FORTRAN no dará un aviso de diagnóstico de este problema.
Tenga mucho cuidado de comprobar que todas las variables han sido dimensionados adecuadamente
dimensionado.

argumentos a subrutinas y declaraciones común también puede ser un poco de Solución de Problemas.
Asegúrese siempre de que las llamadas a una subrutina con el orden de los argumentos y que todas las
declaraciones común en todas las subrutinas son exactamente las
que en el programa principal. Para el
programador experimentado, los comentarios anteriores son triviales, pero ellos

puede guardar los principiantes horas de frustración. La parte divertida de usar la computadora está consiguiendo resultados

útiles desde el programa una vez que esté funcionando correctamente, no en la codificación y depuración.

43 MÉTODOS DE CONVERGENCIA iterativo

Uno de los problemas más comunes en la simulación digital es la solución de ecuaciones algebraicas no
lineales simultáneas. Si estas ecuaciones contienen funciones trascendentales, las soluciones analíticas
son imposibles. Por lo tanto, un procedimiento iterativo de error de algún tipo debe ser concebido. Si sólo
hay un desconocido, un valor para la solución es acertada. Se enchufa en la ecuación o ecuaciones para
ver si se ajusta. Si no es así, una nueva estimación se hace y todo el proceso se repite hasta que converge
iteración (esperamos) al valor correcto.

El problema clave es encontrar un método para la fabricación de la nueva conjetura que converge
rápidamente a la respuesta correcta. Hay una serie de técnicas. Desafortunadamente, no hay mejor método para
todas las ecuaciones. Algunos métodos que convergen muy rápidamente para algunas ecuaciones divergirán para
otras ecuaciones; es decir, la serie de nuevas conjeturas oscilará en torno a la solución correcta con cada vez
mayores desviaciones. Este es un tipo de inestabilidad numérica.

Vamos a discutir sólo algunos de los métodos más simples y más útiles. Afortunadamente, en las
simulaciones dinámicas, partimos de un estado inicial de convergencia. En cada instante de tiempo, variables
han cambiado muy poco desde los valores que tenían poco tiempo antes. Por lo tanto estamos siempre cerca
de la solución correcta.
92 SIMULACIÓN POR ORDENADOR

Por esta razón, los métodos de convergencia simples suelen ser bastante adecuado para simulaciones
dinámicas.
El problema se entiende mejor al considerar un ejemplo. Uno de los cálculos iterativos
más comunes es un cálculo de equilibrio de burbujeo de vapor-líquido.

Ejemplo 4.1. Se nos da la presión y la composición líquida x. Queremos encontrar la temperatura del punto de

burbujeo y la composición del vapor como se ha discutido en la Sec.


2.2.6. Por simplicidad, supongamos un sistema binario de componentes 1 y 2. Componente 1 es el más
volátil, y la fracción molar del componente 1 en el líquido es x y en el vapor es y. Supongamos también
que el sistema es ideal: se aplican las leyes de Raoult y Dalton.

Las presiones parciales de los dos componentes y en el líquido y


fases de vapor son: En

líquido: = = (1

En vapor: = (1

dónde = Presión de vapor del componente puro j que es una función solamente de la temperatura

= +

Igualando las presiones parciales en las fases de líquido y vapor da

P= + (1 (4,4)

Nuestro problema de convergencia es encontrar el valor de la temperatura T que satisfaga la ecuación. (4.4). El
procedimiento es el siguiente:

1. Guess una temperatura T.

2. Calcular las presiones de vapor de los componentes 1 y 2 de la ecuación. (4.3).

3. Calcular una presión total utilizando la Ec. (4.4).

4. Comparar con dada la presión total real, pag. Si es lo suficientemente cerca


PAG ( tal vez mediante un criterio de convergencia relativa de la conjetura T es correcto.

La composición del vapor se puede calcular entonces a partir de la Ec. (4.5).

5. Si es mayor que PAG, la temperatura adivinado era demasiado alto y hay que hacer otro intento
de T es decir inferior. Si es demasiado bajo, hay que adivinar una

mayor T.

Ahora vamos a discutir varias formas de hacer una nueva estimación para el ejemplo anterior.
MÉTODOS NUMÉRICOS 93

43,1 Intervalo de reducir a la mitad

Esta técnica es bastante simple y fácil de visualizar y el programa. No es muy rápido en la que convergen a la
solución correcta, pero es bajísimo estable (que no va a explotar en la que numéricamente). Funciona bien en
simulaciones dinámicas debido a que el tamaño de paso se puede ajustar para que se corresponda
aproximadamente a la velocidad a la que la variable está cambiando con el tiempo durante el paso de tiempo de
integración.
Figura 4.1 bocetos el procedimiento intervalo-reducción a la mitad gráficamente. Una estimación inicial de la
temperatura está hecho. se calcula de la ecuación. (4.6). Entonces es

comparado con pag. Un incremento fijo de la temperatura A se añade o resta de la suposición de la


temperatura, dependiendo de si es mayor o menor que pag.
Seguimos avanzando en la dirección correcta en este tamaño de paso fijo hasta que haya un cambio en el
signo del término ( PAG Esto significa que hemos cruzado el
valor correcto de T. Luego de que soportamos a mitad de camino, es decir, que reducir a la mitad el incremento AT. Con cada

iteración sucesiva volvemos a reducir a la mitad AT, siempre en movimiento ya sea hacia arriba o hacia abajo de la temperatura.

Tabla 4.1 da un pequeño programa principal y un subprograma de FORTRAN que utiliza reducción a la mitad del
intervalo para realizar este cálculo del punto de burbujeo. y los valores conocidos de y una estimación inicial de la temperatura
se suministran como argumentos de la
subrutina. Cuando el subprograma vuelve al programa principal que suministra el valor correcto de T y
la composición del vapor calculada y. Las constantes de presión de vapor (Al y
para el componente 1 y A2 y B2 para el componente 2) son
calculado en el programa principal y se transfiere a la subrutina a través de la instrucción COMMON. El
sistema químico específico usado en el programa principal es benceno-tolueno a presión atmosférica ( P
= 760 con la fracción molar
de benceno en la fase líquida (x), fijado en 0,50. Ideal VLE se asume.
La estimación inicial de T puede ser ya sea por encima o por debajo del valor correcto. El programa se lleva a
pasos fijos igual a un grado hasta que cruza la correcta
valor de T. Las variables lógicas “FLAGM” y se utilizan para decirnos
cuando la solución se ha cruzado. A continuación, se inicia reducción a la mitad del intervalo.

PAG
.

valor correcto T

Temperatura

F'IGURE 4.1

Intervalo-reducción a la mitadconvergencia.
SIMULACIÓN POR ORDENADOR

TABLA 4.1

Ejemplo de cálculo de burbujeo iterativo usando “intervalo-reducción a la mitad” algoritmo

do C PRINCIPAL programa establece diferentes valores para C

GUESS INICIAL DE TEMPERATURA


do Y DIFERENTES TAMAÑOS DE PASO INICIAL C sistema
químico específico es C
A 760 mm Hg PROGRAMA DE PRESIÓN
PRINCIPAL C

COMÚN
C CÁLCULO de las constantes de presión de vapor para C
BENZENEANDTOLUENE C
Datos dados en 100 y 125 grados centígrados

C SET composición líquida y PRESIÓN

3 X PAG

NO 100 DO

50
A, DTO
1 GUESS TEMP INICIAL INICIAL DT

DT = DTO
LLAMADA
T, Y, BUCLE
2 T= Y LAZO
50
100 PARADA

FIN
CC SUBRUTINA BUBPT (X, T, DT, P, Y, LOOP)

COMÚN

C TEMPERATURA iteración del bucle 100

LOOP IN BUBPT SUBRUTINA ')


DETENER

+ B2)
+
MÉTODOS NUMÉRICOS

TABLA 4.1 ( continuado)

C ENSAYO PARA CONVERGENCE


IF (ABS (P-PCALC). LT. A 50
IF (P-PCALC)
C GUESS TEMPERATURA era demasiado alto
20 T = T-DT

IR A 100
C GUESS TEMPERATURA era demasiado baja
30

IR A 100 50

RETURN
FIN

de cálculos

X 0,50000 P = 760,00 TEMP INICIAL CONJETURA

80,00 INICIAL DT 2.00


T = 92,20 Y = 0,71770 lazo = 16 TEMP INICIAL CONJETURA

80,00 INICIAL DT 4.00


T 92,20 Y 0,71770 BUCLE 14

INICIAL GUESS TEMP 80.00 INICIAL DT 8.00


T 92,20 Y 0,71770 BUCLE 13

INICIAL GUESS TEMP 80.00 INICIAL DT 16.00


T = 92,20 Y = 0,71770 BUCLE 13

INICIAL GUESS TEMP 100.00 INICIAL DT 2.00


T 92,20 Y = 0,71770 BUCLE 13

INICIAL GUESS TEMP 100.00 INICIAL DT 4.00


T 92,20 Y 0,71770 BUCLE 12

INICIAL GUESS TEMP 100.00 INICIAL DT 8.00


T 92,20 Y 0,71770 BUCLE 12

INICIAL GUESS TEMP 100.00 INICIAL DT 16.00


T 92,20 Y 0,71770 BUCLE 13

INICIAL GUESS TEMP 120.00 INICIAL DT 2.00


T 92,20 Y 0,71770 BUCLE 23

INICIAL GUESS TEMP 120.00 INICIAL DT 4.00


T 92,20 Y 0,71770 BUCLE 17

INICIAL GUESS TEMP 120.00 INICIAL DT 8.00


T 92,20 Y 0,71770 BUCLE 15

INICIAL GUESS TEMP 120.00 INICIAL DT 16.00


T = 92,20 Y 0,71770 lazo = 14
COMPUTADORA SIMULACIÓN

Claramente, el número de iteraciones para converger depende de hasta qué punto la conjetura inicial es desde
el valor correcto y el tamaño de la etapa inicial. Tabla 4.1 da resultados para varias aproximaciones iniciales de
temperatura (TO) y varios tamaños de paso (DTO). El algoritmo de reducción a la mitad del intervalo-tarda de 10 a 20
iteraciones para converger a la correcta
temperatura.
Obsérvese la presencia de un contador de bucle. BUCLE es el número de veces que una nueva estimación
se ha realizado. Si el procedimiento de iteración diverge, la prueba para BUCLE mayor que 100 se detendrá el
programa con una explicación adecuada de dónde está el problema.

reducción a la mitad del intervalo también se puede utilizar cuando más de un desconocido debe ser encontrado.
Por ejemplo, supongamos que hay dos incógnitas. Dos bucles de intervalo, reducir a la mitad podrían ser utilizados, uno
dentro del otro. Con un valor fijo de la variable exterior, el bucle interior se hace converger primero en encontrar la
variable en el interior. Entonces se cambia la variable de exterior, y el bucle interior está reconverged. Este procedimiento
se repite hasta que ambas variables desconocidas se encuentran que satisfacen todas las ecuaciones necesarias.

Es evidente que este procedimiento de doble-loop-iteración puede ser muy lento. Sin embargo, para

algunos problemas simples, es bastante eficaz.

4.3.2 Newton-Raphson Método

Este método es probablemente el método más popular de convergencia. Es un poco más complicado, ya que
se requiere la evaluación de un derivado. También puede conducir a problemas de estabilidad si la conjetura
inicial es pobre y si la función es altamente no lineal.

Newton-Raphson equivale a utilizar la pendiente de la curva de función de extrapolar al valor


correcto. Utilizando el problema de burbujeo como un ejemplo específico, definamos la función

= PAG (4,7)

Queremos encontrar el valor de T ese igual a cero; es decir, que desea encontrar

la raíz de Suponemos que un valor de la temperatura A continuación, se evalúa la fun-


ción en A continuación se evalúa la pendiente de la función en =
. Luego de la geometría mostrada en la Fig. 4.2 podemos ver que

Resolviendo para da

(4,9)

en la ecuación. (4,9) es la nueva suposición de la temperatura. Si la curva fueron una recta


línea, que converja a la solución correcta en una sola iteración.
MÉTODOS NUMÉRICOS 97

T la convergencia de Newton-Raphson.

Generalizando la ecuación. obtenemos el algoritmo de iteración recursiva:

(4,10)

dónde + = New conjetura de temperatura


= Vieja suposición de la temperatura =

valor fuera ,,, por lo T =

= Valor de la off derivado, aT=

La técnica requiere la evaluación fuera la derivada de la función


con respecto a la temperatura. En nuestro ejemplo de burbujeo esto se puede obtener
analíticamente.
+
=

(4,11)

Si la función tan complejo que un derivado analítico no podría ser


obtenido explícitamente, un derivado de aproximada tendría que ser calculada numéricamente: hacer un
pequeño cambio en la temperatura AT, evaluar la grasa T + AT y utilizar la aproximación

(4,12)

Un programa de computadora digital utilizando las ecuaciones. (4.10) y (4.11) se da en la Tabla

4.2. El problema es el mismo cálculo de burbujeo para el benceno-tolueno per- formado por intervalo-reducción a la mitad
en la Tabla 4.1, y los mismos aproximaciones iniciales están hechos de temperatura. Los resultados dados en la Tabla
4.2 muestran que el algoritmo de Newton-Raphson es mucho más eficaz en este problema de reducción a la mitad del
intervalo: solamente 4 a 5
COMPUTADORA SIMULACIÓN

TABLA 4.2

Ejemplo de cálculo de burbujeo iterativo usando algoritmo

do C PRINCIPAL programa establece diferentes valores para C INICIAL

GUESS DE TEMPERATURA
C SISTEMA química específica es el benceno / tolueno
A 760 mm Hg PROGRAMA DE PRESIÓN

PRINCIPAL C
COMÚN
C CÁLCULO DE PRESIÓN DE VAPOR constantes C
FORBENZENEANDTOLUENE C
Datos dados en 100 y 125 grados centígrados

C SET composición líquida y PRESIÓN

3 X PAG

DO 100
A
1 GUESS TEMP INICIAL

LLAMADA

T, Y, BUCLE
2 T Y BUCLE =
100 PARADA

FIN

iteraciones se requieren con Newton-Raphson, en comparación con 10 a 20 con un intervalo de-reducción a la mitad.

Si la función no es tan suave y / o si la conjetura inicial no es tan cerca de la solución, el método


de Newton-Raphson pueden divergir en lugar de converger. Las funciones que no son monotónica son
particularmente problemático, ya que el derivado se aproxima a cero hace que la Ec. (4,10) estallar. Así
de Newton-Raphson es un algoritmo muy eficiente, pero que puede dar problemas de convergencia. A
veces estas dificultades se pueden superar al restringir el tamaño del cambio permitirá que se hagan en
el nuevo conjetura.

NewtonRaphson puede ser bastante fácilmente extenderse a iteración problemas que implican más de una
variable. Por ejemplo, supongamos que tenemos dos y
que depende de dos variables y Queremos encontrar los valores
de y que satisfacen las dos ecuaciones

= 0 =
MÉTODOS NUMÉRICOS

TABLA 4.2 ( continuación) C SUBRUTINA BUBPT (X, T, DT, P, Y,

LOOP)
COMÚN

C TEMPERATURA iteración del bucle 100

1 LOOP IN BUBPT SUBRUTINA ')


DETENER

+
C ENSAYO PARA CONVERGENCE
IF (ABS (P-PCALC). LT. A 50
F = PCALC-P
+

IR 100
50 RETURN

FIN

X 0.50000 P = 760,00 TEMP INICIAL

CONJETURA 80,00
T 92,19 Y 0,71765 BUCLE 4

INICIAL GUESS TEMP 100.00


T = 92,19 Y 0,71765 BUCLE 4

INICIAL GUESS TEMP 120.00


T = 92,19 Y 0,71765 BUCLE 5

La expansión de cada una de estas funciones alrededor del punto en una serie de Taylor
y truncar después de los primeros términos derivados dan

(4,13)

F =
+

+ 1 (4,14)
SIMULACIÓN POR ORDENADOR

igual a cero y resolviendo para el nuevo


y dar

(4,15)

=
(4,16)
+

Todos los derivados parciales y las funciones se evalúan en y


Las ecuaciones (4.15) y (4.16) dan el algoritmo de iteración para reguessing los dos nuevos valores
cada vez a través del bucle. Cuatro derivadas parciales deben calcularse, ya sea analítica o
numéricamente, en cada paso de iteración.
Las ecuaciones (4.13) y (4.14) se puede escribir de forma más compacta en forma de matriz. Hemos establecido los

lados izquierdos de las ecuaciones iguales a cero y llamar a los cambios en las variables del Axe adivinado =

(4,17)

Todas las funciones y las derivadas parciales se evalúan en y los


2 x 2 matriz de derivadas parciales se denomina matriz thejacobian.

1
(4,18)

Todos los términos en esta matriz son sólo constantes que se calcula en cada iteración.

El Ax de se puede calcular mediante la resolución de la ecuación matricial

(4,19)

dónde es la inversa de la matriz. Vamos a discutir las matrices con más detalle en el Cap. 15,
pero esta notación se presenta aquí para indicar lo fácil que es extender el método de
Newton-Raphson a más de una variable. Si hay tres incógnitas, las
matriz contiene nueve términos derivados parciales. Si hay
N incógnitas, la matriz contiene condiciones.

4.3.3 Posición Falso

Esta técnica convergencia es una combinación de Newton-Raphson y reducción a la mitad del intervalo. Una estimación
inicial está hecho, y la función y ,,, se evalúa. Un paso es
tomada en la dirección correcta a una nueva temperatura se evalúa. Si

Potrebbero piacerti anche