martes, 24 de septiembre de 2013

Diseño de reactores. Parte 8. Cinética de degradación de orden uno.

Diseño de reactores. Parte 8. Cinética de degradación de orden uno.

Este ejercicio está basado en ejercicios del capítulo 2 de Martínez y Rodríguez (2005).

Se trazó un gráfico con –ln(Se/So) vs. tiempo (h) y se hizo una regresión lineal con MATLAB para obtener la pendiente, que corresponde al valor de la constante cinética de orden uno, k. Con este programa se calculó un valor para la ordenada al origen de -1.1922 y un valor para la pendiente de 0.1720.

El código del programa es como sigue:
% RegresionLineal. Orden uno
% k -> pendiente de la recta t vs. -ln(Se/So)
t = [2.6 5.22 7.85 10.51 13.19 15.91 18.7 21.61 24.8 31.16];    % tiempo (h)
DQO = [450 400 350 300 250 200 150 100 50 1];
So = 500;
SeSo = -log(DQO./So);
% SeSo = [0.1054 0.2231 0.3567 0.5108 0.6391 0.9163 1.2040 1.6094 2.3026 6.2146];
b = glmfit(t, SeSo, 'normal')
plot(t, SeSo)
xlabel('tiempo (h)')
ylabel('-ln(Se/So)')
grid
pause


Figura 3. Gráfico para la cinética de degradación de orden uno generado con MATLAB.

El análisis de regresión lineal de los datos para la cinética de degradación de orden uno dio un valor para la pendiente de -1.1933 y un valor de 0.1720 para la ordenada al origen. El valor de la pendiente, que es el valor de la constante cinética de orden uno, k, se utilizó para generar la tabla de valores de Se en un programa en VC++, de la siguiente manera:

// CineticaDegradacionOrdenUNO.cpp: define el punto de entrada de la aplicación de consola.
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;

int main()            {
                float t, So, Se, k;
                float Ef;

                ofstream out("D:\\CinOrd_uno.txt");
                if (!out)                {
                               cout << "cannot open file...\n";
                               return 1;              }
               
                out << "Se (DQO:mg/L)\t" << "t (h)\t" << "Eficiencia" << endl;

                for (Se=499; Se>0; Se--)                              {
                               So = 500;
                               k = 0.1720;
                               float cociente = So/Se;
                               t = (1/k)*log(cociente) ;
                               Ef = (So - Se) / So;

                               cout << Se << "\t" << t << "\t" << Ef << endl;
               
                               out << Se << "\t" << t << "\t" << Ef << endl;       }

                out.close();

                return 0;              }

En este programa se utilizó la expresión para el cálculo del tiempo de reacción de orden uno, de la siguiente manera:
t = (1/k)*ln(So/Se)

Los resultados generados por el programa VC++ (CineticaDegradacionOrdenUNO.cpp) quedaron registrados en el archivo de texto CinOrd_uno.txt. Este archivo se abrió desde Excel para proceder a graficar los datos de sustrato efluente (Se como DQO, en mg/L) y eficiencia, contra tiempo (h).
Los gráficos generados se presentan a continuación:


Figura 4. Gráfico de la cinética de degradación de orden uno, generado con Excel.


Figura 5. Gráfico de la cinética de degradación de orden uno generado con Excel. Eficiencia vs. Tiempo.

Bibliografía

Martínez D., Sergio A. y Miriam G. Rodríguez R.2005. Tratamiento de aguas residuales con MATLAB. Editorial Reverté. Universidad Autónoma Metropolitana. México, DF, México.









No hay comentarios:

Publicar un comentario