• No se han encontrado resultados

NOTAS SOBRE REACCIONES COMPLEJAS Y SU SIMULACION NUMERICA: a A + b B +.. x X + y Y +..

N/A
N/A
Protected

Academic year: 2022

Share "NOTAS SOBRE REACCIONES COMPLEJAS Y SU SIMULACION NUMERICA: a A + b B +.. x X + y Y +.."

Copied!
10
0
0

Texto completo

(1)

NOTAS SOBRE REACCIONES COMPLEJAS Y SU SIMULACION NUMERICA:

Para cualquier reacción elemental donde:

a A + b B + ..  x X + y Y + …..

La expresión general para la velocidad de una reacción (elemental) es:

        k

v

    A

a

B

b

dt Y d y dt

X d x dt

B d b dt

A d t a

v         1 

1 ...

1 ...

) 1 (

Con lo que:

 

a kv

   

Aa Bb dt

A

d  

 

b kv

   

Aa Bb dt

B

d  

 

x kv

   

Aa Bb dt

X

d  

 

y kv

   

Aa Bb dt

Y

d  

Estas corresponden a las ecuaciones cinéticas elementales para cada especie química.

Las soluciones (ecuaciones integradas) para estas ecuaciones diferenciales (para reacciones elementales) ya las hemos visto, son simples y dependen de los valores de a, b,…, x, y….

(2)

Para reacciones elementales, las soluciones son las siguientes:

1) Reacción unimolecular:

A  x X + y Y + …..

 

k

 

A dt

A d

v

   

A tA0exp(kvt)

 

x k

 

A dt

X d

v

 

X tx

 

A0(1e(kvt))

2) Reacción bimolecular de la misma especie:

2A  x X + y Y + …..

 

2 kv

 

A2 dt

A

d  

   

A1t A10 2kv t

o bién:

 

A1 t

 

A1  k' t

0

con k' 2kv

 

x kv

 

A2 dt

X

d  

 

(

   

A A )

2

X tx0t

3) Reacción bimolecular entre dos especies:

A + B  x X + y Y + …..

   

k

  

A B

dt B d dt

A d

v

Donde para el caso en que [A]0= [B]0

   

A k t 1

A 1

v t 0

y

 

B k t 1

B 1

v t 0

(3)

 

x k

  

A B

dt X d

v

 

X tx(

   

A0At)

CONSTRUCCION DE LAS ECUACIONES CINETICAS PARA REACCIONES COMPLEJAS (Cuando existe más de una transformación elemental):

Por ejemplo: Dos reacciones unimoleculares en secuencia:

C B

A

kv1

kv2

Es decir que existen dos procesos elementales que ocurren en el mismo medio:

1)

A

kv1

B

2)

B

kv2

C

(en este caso, ni las ecuaciones diferenciales (p. ej: d[A]/dt) ni las ecuaciones ya integradas son válidas ya que existen otros canales por los que se pueden acumular o consumir las especies).

En el caso de reacciones complejas, las ecuaciones para calcular las derivadas temporales de las diversas especies tienen un término por cada reacción elemental en la que participe la especie. En nuestro ejemplo:

 

k

 

A

dt A d

1

v

,

 

k

 

A k

 

B

dt B d

2 v 1

v

,

 

k

 

B

dt C d

2

v

(aquí para obtener ecuaciones para [A]t , [B]t y [C]t necesitamos resolver estas ecuaciones de manera simultanea. En algunas ocasiones si es posible una solución analítica y en otras o bien no es posible o bien, la solución es demasiado elaborada por lo que es más directo resolver estas concentraciones por un método numérico).

A continuación se establece sistemáticamente el método para escribir expresiones para las derivadas temporales de las concentraciones de cada una de las especies.

El método numérico que se presenta mas tarde usa simplemente estas ecuaciones para las derivadas temporales de cada especie, junto con el método de Euler (integración numérica simple) para calcular la evolución temporal de cada una de las concentraciones.

(4)

METODO PARA PLANTEAR LAS ECUACIONES CINÉTICAS EN REACCIONES COMPLEJAS:

1) Habrá una ecuación diferencial por cada especie que participe en la reacción compleja (que participe en al menos una de las reacciones elementales).

Para el sistema:

1) Akv1 B 2) Bkv2C

Existen tres especies, por lo que querremos escribir ecuaciones para tres derivadas temporales:

 

dt A d

 

dt B d

 

dt C d

2) Para cada ecuación diferencial (es decir, para cada especie), habrá un término para cada proceso elemental en que la especie participe ya sea como un reactivo o como un producto. Por ejemplo, B participa como reactivo en la 1ª reacción y como producto en la segunda, por lo cual tendrá dos términos. Tanto A como C solo participan en una reacción.

 

dt A

d A solo participa en la reacción (1) : Un solo término

 

dt B

d + B participa tanto (1) y en (2) : Dos términos

 

dt C

d C solo participa en la reacción (2) : Un solo término

3) Los términos de cada ecuación diferencial se escriben según la ecuación de velocidad para la reacción elemental a la que corresponde cada término:

(5)

  k   A dt

A d

1

v

  k   A k   B

dt B d

2 v 1

v

  k   B

dt C d

2

v

Siguiendo este proceso podemos escribir expresiones para cada una de las especies que participan en cualquier reacción compleja, sin importar que el proceso implique un gran número de reacciones elementales. A continuación veremos cómo un método de integración numérica puede ser usado para calcular las concentraciones de cualquiera de las especies después a cualquier tiempo.

INTEGRACION NUMERICA DE LAS ECUACIONES CINETICAS POR EL METODO DE EULER.

Para cualquier función de la cual conocemos su derivada podemos considerar la siguiente aproximación:

dt dy y  t

donde:

yy ( t

2

)y ( t

1

)

y

tt

2

t

1

Por lo que podemos estimar el valor de la función al tiempo t2 con base al valor de la derivada evaluada al tiempo t1 según la siguiente ecuación:

Dado que B es un producto en (1), cuyo reactivo es A

Dado que B es un reactivo en (2), cuyo reactivo es B

Dado que C es un producto en (2), cuyo reactivo es B

Dado que A es un reactivo en (1), cuyo reactivo único es A

(6)

  C

t2

   C

t1

  k

v2

  B

t1

  t dt t

t dy y t

y

t

 

 

 

1 1

2

) ( )

(

Gracias a las ecuaciones para las derivadas tipo d[A]/dt indicadas en la página anterior, contamos con expresiones para poder evaluar la concentración de una especie a un tiempo t2 con base en la concentración a un tiempo ligeramente anterior t1, el valor de la derivada a ese tiempo (la cual solo depende de las concentraciones a dicho tiempo t1 ), y el valor de t:

Es decir, para cualquier especie E:

      t

dt E E d

E

t t

t

  

 

 

1 1 2

La cual podemos evaluar ya que tenemos expresiones para cualquiera de las derivadas temporales (d[E]/dt)t1.

Por ejemplo, para 1) Akv1 B

2) Bkv2C

Como pueden ver, con el método de Euler es posible estimar el valor de la concentración de cualquier especie si se conocen las concentraciones a un tiempo ligeramente anterior. Gracias a ello, si establecemos un conjunto de concentraciones al tiempo CERO, es posible ir calculando poco a poco el valor de

 

dt A d

  A

t2

   A

t1

   k

v1

  A

t1

  t

 

dt B d

    B

t2

B

t1

k

v1

    A k

v2

B

t1

t

 

dt C d

(7)

las concentraciones a tiempos posteriores (siempre en términos de la concentración a un tiempo ligeramente anterior). Esto equivale a tener listas de las concentraciones donde cada elemento de la lista fue calculado con las concentraciones inmediatamente anteriores en la lista:

Tiempo [A]t (M) [B]t (M) [C]t (M)

0.0 1.0 0.0 0.0

0.002 0.996 0.004 0.000…

0.004 0.992016 0.007976 8.0x10-6 0.006 0.988048 0.011928 2.39x10-5 0.008 0.984096 0.015856 4.78x10-5 0.01 0.980159 0.019761 7.95x10-5

1.8 0.027127 0.275748 0.697125

1.802 0.027019 0.275305 0.697676 1.804 0.026911 0.274863 0.698227 1.806 0.026803 0.27442 0.698777

Para calcular estas listas se uso el método de integración de Euler con t=0.002 seg. Para kv1= 2 s-1 y kv2= 1 s-1.

Por ejemplo, el valor de [A]t=0.006 se calculó empleando el valor de [A]t=0.004 y el valor de la derivada de [A] precisamente a t=0.004, y considerando un t de 0.002 seg.

Específicamente:

[A]t=0.006 = [A]t=0.004 – (2 s-1  [A]t=0.004) * 0.002 s.

También, por ejemplo, el valor de [B]t=1.804 se calculó tomando los valores de [A]t=1.802 y [B]t=1.802 de la siguiente manera:

[B]t=1.804 = [B]t=1.802 + { (2 s-1  [A]t=1.802 ) - (1 s-1  [B]t=1.802 ) } * 0.002 s.

Y de manera similar para las concentraciones de C por ejemplo, a t=0.01.

 

004 .

dt 0

A

d

 

 t

 

802 .

dt 1

B

d

 

 t

(8)

[C]t=0.01 = [C]t=0.008 + (1 s-1  [B]t=0.008) * 0.002 s.

EVALUACION DEL METODO DE EULER EN UN PROGRAMA EN “C”.

Es muy sencillo codificar el método de integración de Euler en un programa. Esto se debe a que existen comandos en los diversos lenguajes de programación que permiten ir calculando valores en una lista de datos (de manera semejante de como se realiza con una hoja de cálculo).

La estructura básica de la rutina es la siguiente:

(lo siguiente se escribe en base a un pseudo-código mismo que define el algoritmo, mas tarde codificaremos el programa en el lenguaje de programación “C”).

Declaración de las variables y los “arreglos” o listas:

En un programa en C es necesario indicarle al programa que serán usadas algunas variables y arreglos (listas) así como su tipo (entero, de punto flotante, etc.). En el programa esto se realiza indicando lo siguiente:

int i ; // indica al programa que usaremos una variable tipo entero de nombre i // esta variable se usara para irnos refiriendo a los elementos “i-esimos” de las //listas

int n ; // indica al programa que usaremos una variable tipo entero de nombre n // esta variable define el numero de puntos en nuestra lista

double kv1, kv2 ; // indica al programa que usaremos dos variables de punto flotante // de precisión doble llamadas k1 y k2 para las constantes de // velocidad.

double dt // indica al programa que usaremos una variable de punto flotante de // de precisión doble para el delta de tiempo t.

double t[1000000] //indica al programa que usaremos una lista de un millon de //elementos que contendrán los diversos tiempos de la simulación.

double A[1000000] // indica al programa que usaremos una lista de un millon de // elementos mismos que corresponderan a las concentraciones de // a los diferentes tiempos de la lista.

// Esta lista tendrá elementos que van desde el

// A[0] hasta el A[999999] ya que en “C” así se manejan los

// índices de las listas o arreglos, es decir, el primer elemento //tiene el índice cero

t

 

008 .

dt 0

C

d

 

(9)

double B[1000000] // Similarmente, para las concentraciones de B double C[1000000] // y de C.

Iniciación de las listas y lectura de los valores de n y de dt : Se asignan valores a los primeros elementos de las listas: t[0], A[0], B[0], C[0], la instrucción puede ser una asignación simple como sigue :

t[0] = 0;

A[0]= 1;

B[0]=0;

C[0]=0;

O bien, (como en nuestro caso) se pueden leer estos datos como ingresados por el usuario.

Recuerda que el primer elemento de las listas es el ceroésimo…

Y también se obtienen (por ejemplo de la interfaz grafica del programa) los valores de n y de dt. Básicamente los valores de estas dos variables quedan establecidas de alguna manera, por ejemplo con una asignación simple:

dt= 0.002

n=100000 //calcularemos 100000 (cien mil) valores en la lista, en principio podríamos // calcular hasta un millón, ya que así declaramos las listas.

Cálculo de las listas ( tiempos y concentraciones a los diferentes tiempos) por el método de Euler

Con los datos a tiempo cero podemos calcular las concentraciones del segundo elemento de la lista, y con las del segundo, calcularemos al tercero, etc.

Emplearemos la variable i que declaramos arriba para referirnos a cada uno de los elementos de la lista. Para esto usaremos una construcción típica de “C”, un ciclo de

“for”.

Esta instrucción tiene la siguiente forma en un programa:

for ( i = 1; i < n ; i++) {

Realizar operaciones }

Literalmente, esta instrucción corresponde a hacer lo siguiente:

(10)

1.- Realiza la asignación i=1

2.- Verifica la veracidad de la aseveración i<n

3.- Si la aseveración es cierta, realiza la serie de operaciones indicadas entre corchetes 4.- Al finalizar las operaciones entre corchetes, incrementa en uno el valor de i.

5.- La instrucción se repite desde el punto 2, y así consecutivamente.

(si en el punto 2.- la aseveración es falsa, simplemente la instrucción se da por terminada, en nuestro caso, esto sucedera precisamente cuando i sea igual a n)

Gracias a esta simple instrucción, en la parte de “Realizar operaciones” (ver mas adelante), podremos ir calculando los valores de las listas correspondientes al método de Euler.

A continuación se indica cómo vamos a usar la construcción for para calcular las listas:

for ( i = 1; i < n ; i++) {

t[i] = t[i-1] + dt // Con esto se calcula el tiempo “i” en el que vamos.

A[i] = A[i-1] + (-k1*A[i-1])*dt //Calculo de la concentración de A al tiempo t[i]

B[i] = B[i-1] + (k1*A[i-1]-k2*B[i-1])*dt //Calculo de la conc. de B al tiempo t[i]

C[i] = C[i-1] + (k2*B[i-1])*dt //Calculo de la concentración de C al tiempo t[i]

}

Gracias a esta sencilla construcción, habremos calculado todas nuestras listas. Estas listas pueden posteriormente grabarse, graficarse, etc.

Es muy importante mencionar que el método de Euler es sumamente aproximado, y solamente funciona para valores de dt sumamente pequeños (mas o menos hay que calcular al menos unos diez mil puntos durante la vida media de un compuesto como A). Sin embargo, gracias a las computadoras modernas esto es muy factible.

Para métodos de integración más precisos como el de Runge-Kutta o el de Predictor- Corrector (los cuales son los empleados en los programas comerciales de simulación cinética como KINSIM, etc), ver:

Chemical Kinetics and Dynamics, 2a Ed. de J. I. Steinfeld, J. S. Francisco y W.

Hase.

Referencias

Documento similar

Si bien en algunos casos se han tomado medidas como la reconstrucción de las fachadas originales y el aumento de plantas en retranqueo, En la calle Real, donde se encontraba

Es aquel subconjunto de los números reales (R), cuyos elementos “x” están comprendidos entre los extremos a y b, siendo estos también números reales que pueden estar o no

Determine el precio por cada suite, para seguir obteniendo los mismos ingresos, pero quedando algunas suites sin alquilar. SOLUCIÓN: x : Números de incrementos de $20 en el precio

1.º1. Justificación de la necesidad de la inversión. Descripción de los trabajos a realizar. En su caso, proyecto y planos técnicos firmados por persona técnica competente y, en

COMENTARIOS Y ANALISIS DE LA ADMINISTRACIÓN SOBRE LOS RESULTADOS DE OPERACIÓN Y SITUACIÓN FINANCIERA DE LA.. COMPAÑÍA CLAVE

 El monto mínimo de las garantías se calcularán de conformidad a procedimientos estipulados en manuales operativos que determinan porcentajes límites de acuerdo al

En este sentido, los mencionados Autos prosiguen en el mismo Funda- mento señalando que «desconocer e inadmitir como norma generalizada los escritos de denuncias presentadas por

TATIVA DEL TRIBUNAL EUROPEO DE DERECHOS HUMANOS EN LA SENTENCIA DE 13 DE JULIO DE 2004.1. La evolución jurispruden- cial en la interpretación de los arts. A) El derecho al respeto de