Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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.
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.
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
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
= +
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:
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
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
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
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
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
+ B2)
+
MÉTODOS NUMÉRICOS
IR A 100
C GUESS TEMPERATURA era demasiado baja
30
IR A 100 50
RETURN
FIN
de cálculos
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
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.
= PAG (4,7)
Queremos encontrar el valor de T ese igual a cero; es decir, que desea encontrar
Resolviendo para da
(4,9)
T la convergencia de Newton-Raphson.
(4,10)
(4,11)
(4,12)
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
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
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.
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
LOOP)
COMÚN
+
C ENSAYO PARA CONVERGENCE
IF (ABS (P-PCALC). LT. A 50
F = PCALC-P
+
IR 100
50 RETURN
FIN
CONJETURA 80,00
T 92,19 Y 0,71765 BUCLE 4
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
(4,15)
=
(4,16)
+
lados izquierdos de las ecuaciones iguales a cero y llamar a los cambios en las variables del Axe adivinado =
(4,17)
1
(4,18)
Todos los términos en esta matriz son sólo constantes que se calcula en cada iteración.
(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.
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