miércoles, 25 de septiembre de 2013

Diseño de reactores. Parte 21. Modelación del proceso de lodos activados

Diseño de reactores. Parte 21. Modelación del proceso de lodos activados.

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

Modelación del proceso de lodos activados
La modelación del proceso de lodos activados parte de los balances de masa de sustrato (S, como DQO o DBO), concentración de sólidos o biomasa dentro del biorreactor (X, como SSV), concentración de oxígeno disuelto en el biorreactor (O2, como OD) y concentración de sólidos o biomasa en el sedimentador (Xr, como SSV).

dS/dt=(Qf*Sf)/V-(Qo*S)/V-(µ*X)/Y
dX/dt=(Qr*Xr)/V-(Qo*X)/V+µ*X-kd*X
dCo2/dt=(Qf*Co2f)/V-(Qo*Co2)/V-(µ*X)/Yo2-b*X+klaw*(Csr-Co2)
dXr/dt=(Qu*Xr)/Vs-(Qo*X)/Vs

Los caudales se comportan de la siguiente manera:
Qo=Qf+Qr
Qu=Qw+Qr

Donde Qf es el caudal afluente, Qr es el caudal de reciclaje y Qw es el caudal de desecho.

Los de los parámetros cinéticos que se utilizan para la simulación son los siguientes:
µmax=1.97 (d^-1)
Ks=137.3 (mg/L)                       constante de afinidad
kd=0.0601 (d^-1)                      coeficiente de decaimiento o muerte celular
Yx/s=0.33 (mg/LSSV)/(mg/LDQO)                     coeficiente de rendimiento
a=0.302 (mgo2 consumido/mgDQO consumido)
Yo2=a/Y=0.915 (mgSSV generado/mgo2 consumido)       coeficiente de rendimiento de oxígeno
b=0.259 (d^1)                            coeficiente de respiración endógena

Las condiciones de operación para la simulación:
Sf=668 (mg/L)                            concentración del contaminante en el afluente a tratar
CO2f=0.3 mg/L                        concentración de O2 en el afluente
Csr=7.02 (mg/L)                      concentración de saturación de oxígeno en el agua residual a tratar
klaw=420.0 (d^-1)                coeficiente de transferencia de oxígeno
Qf=10000.0 (m^3/d)          caudal de agua residual o afluente a tratar
Qr=500 (m^3/d)                 caudal de recirculación
Qw=300 (m^3/d)                 caudal de desecho de los fondos del sedimentador
V=7000.0 (m^3)            volumen de operación del reactor
Vs=250 (m^3)                   volumen del sedimentador

La modelación del sistema se hizo en dos programas, en el primero se planteó el sistema de ecuaciones, lodosactivados.m, y en el segundo se escribieron las instrucciones para solucionar el sistema de ecuaciones y la generación de los gráficos, lodosactivadosrun.m. El código es ele siguiente:

% lodosactivados
% balances de materia (reactor y sedimentador)
% dS/dt=(Qf*Sf)/V-(Qo*S)/V-(µ*X)/Y
% dX/dt=(Qr*Xr)/V-(Qo*X)/V+µ*X-kd*X
% dCo2/dt=(Qf*Co2f)/V-(Qo*Co2)/V-(µ*X)/Yo2-b*X+klaw*(Csr-Co2)
% dXr/dt=(Qu*Xr)/Vs-(Qo*X)/Vs
% Los de los parámetros cinéticos que se utilizan para la simulación son los siguientes:
% µmax=1.97 (d^-1)
% Ks=137.3 (mg/L)                       constante de afinidad
% kd=0.0601 (d^-1)                      coeficiente de decaimiento o muerte celular
% Yx/s=0.33 (mg/LSSV)/(mg/LDQO)                     coeficiente de rendimiento
% a=0.302 (mgo2 consumido/mgDQO consumido)
% Yo2=a/Y=0.915 (mgSSV generado/mgo2 consumido)       coeficiente de rendimiento de oxígeno
% b=0.259 (d^1)                            coeficiente de respiración endógena
% Las condiciones de operación para la simulación:
% Sf=668 (mg/L)                            concentración del contaminante en el afluente a tratar
% CO2f=0.3 mg/L                        concentración de O2 en el afluente
% Csr=7.02 (mg/L)                      concentración de saturación de oxígeno en el agua residual a tratar
% klaw=420.0 (d^-1)                coeficiente de transferencia de oxígeno
% Qf=10000.0 (m^3/d)          caudal de agua residual o afluente a tratar
% Qr=500 (m^3/d)                 caudal de recirculación
% Qw=300 (m^3/d)                 caudal de desecho de los fondos del sedimentador
% V=7000.0 (m^3)            volumen de operación del reactor
% Vs=250 (m^3)                   volumen del sedimentador
% parametros cineticos
function dy=lodosactivados(t,y)
mumax=1.97;
b=0.259;
Y=0.33;
Ks=137.3;
Yo=0.915;
kd=0.0601;
% condiciones de operacion
Sf=668;
co2f=0.3;
Csr=7.02;
klaw=420;
Qf=10000;
Qr=500;
Qw=300;
V=7000;
Vs=250;
% ecuaciones de balance
dy=zeros(4,1);
dy(1)=(Qf/V)*Sf-((Qf+Qr)/V)*y(1)-((mumax/Y)*y(1)*y(2))/(Ks+y(1));
dy(2)=((Qr/V)*y(3))-((Qf+Qr)/V)*y(2)+((mumax*y(1)*y(2))/(Ks+y(1)))-kd*y(2);
dy(3)=((Qf+Qr)/Vs)*y(2)-((Qr+Qw)/Vs)*y(3);
dy(4)=klaw*(Csr-y(4))+(Qf/V)*co2f-((Qf+Qr)/V)*y(4)-(((1/Yo)*mumax*y(1)*y(2))/(Ks+y(1)))-b*y(1);

% lodosactivadosrun
% ejecuta la solución a las ecuaciones planteadas en el archivo
% lodosactivados.m
% ----------------condiciones iniciales--------------------------
[t,y]=ode45('lodosactivados',[0 25],[668 500 6500 2]);   % [DQO SSV Xr O2]
% ----------------graficos---------------------------------------
subplot(2,2,4),plot(t,y(:,4),'k-')
xlabel('tiempo (d)')
ylabel('oxigeno disuelto (mg/L)')
text(5,7.5,'OD en el reactor')
subplot(2,2,3),plot(t,y(:,3),'k-')
xlabel('tiempo (d)')
ylabel('Xr (mg/L)')
text(2,7500,'biomasa en el sedimentador')
subplot(2,2,2),plot(t,y(:,2),'k-')
xlabel('tiempo (d)')
ylabel('SSV (mg/L)')
text(5,600,'biomasa en el reactor')
subplot(2,2,1),plot(t,y(:,1),'k-')
xlabel('tiempo (d)')
ylabel('DQO (mg/L)')
text(5,650,'Sustrato')
% ----------------resultados en la ventana de comandos de MATLAB---
disp('--t (h)--DQO (mg/L)--SSV (mg/L)--Xr (mg/L)--OD (mg/L)--')
disp('------------S-----------X------------Xr---------O2-----')
[t(end),y(end,1),y(end,2),y(end,3),y(end,4)]


Figura 1. Gráfico que muestra los resultados para concentraciones de sustrato, biomasa en el reactor, biomasa en el sedimentador y oxígeno disuelto en el reactor de lodos activados.

Los resultados finales se despliegan en la ventana de comandos de la siguiente manera:
EDU>> lodosactivadosrun
--t (h)--DQO (mg/L)--SSV (mg/L)--Xr (mg/L)--OD (mg/L)--
------------S-----------X------------Xr---------O2-----
ans =
  1.0e+003 *
    0.0250    0.0634    0.4554    5.9767    0.0062

También es posible realizar simulaciones bajo diferentes condiciones de operación, por ejemplo, para averiguar el comportamiento del sistema con una reducción instantánea de concentración de sustrato en la entrada del reactor. Bastará con indicarlo en el programa variando la concentración inicial de sustrato en el reactor (So).
[t,y]=ode45('lodosactivados',[0 20],[So 500 6500 2]);

El código del programa lodosactivados.m se mantiene sin cambios. Para ejecutar la solución al sistema de ecuaciones se escribió el código necesario en el archivo lodosactivadossustratorun.m, de la siguiente manera:

% lodosactivadossustratorun
% se resuelve el sistema de ecuaciones planteado en el archivo
% lodosactivados.m bajo diferentes concentraciones de sustrato
% en la alimentacion So
for So=500:250:1500
    [t,y]=ode45('lodosactivados',[0 20],[So 500 6500 2]);
    subplot(2,2,4),plot(t,y(:,4),'k-')
    xlabel('tiempo (d)')
    ylabel('oxigeno disuelto (mg/L)')
    text(5,7.5,'OD en el reactor')
    hold on
    subplot(2,2,3),plot(t,y(:,3),'k-')
    xlabel('tiempo (d)')
    ylabel('Xr (mg/L)')
    text(2,7500,'biomasa en el sedimentador')
    hold on
    subplot(2,2,2),plot(t,y(:,2),'k-')
    xlabel('tiempo (d)')
    ylabel('SSV (mg/L)')
    text(5,600,'biomasa en el reactor')
    hold on
    subplot(2,2,1),plot(t,y(:,1),'k-')
    xlabel('tiempo (d)')
    ylabel('DQO (mg/L)')
    text(5,650,'Sustrato')
    hold on
    disp('-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --')
    [t(1),y(1,1),y(1,2),y(1,3),y(1,4)]
    [t(end),y(end,1),y(end,2),y(end,3),y(end,4)]
end

El programa despliega los siguientes resultados en la ventana de comandos:

EDU>> lodosactivadossustratorun
-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --
ans =
  1.0e+003 *
    0.0200    0.0634    0.4554    5.9771    0.0062
-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --
ans =
  1.0e+003 *
    0.0200    0.0634    0.4554    5.9773    0.0062
-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --
ans =
  1.0e+003 *
    0.0200    0.0634    0.4554    5.9774    0.0062
-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --
ans =
  1.0e+003 *
    0.0200    0.0634    0.4554    5.9776    0.0062
-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --
ans =
  1.0e+003 *
    0.0200    0.0634    0.4554    5.9777    0.0062
EDU>>


Figura 2. Gráfico de concentraciones de sustrato, biomasa en el reactor, biomasa en el sedimentador y oxígeno disuelto para concentraciones crecientes de concentración de sustrato (So) en la alimentación del reactor (500, 750, 1000, 1250 y 1500 mg/L).

Los siguientes dos programas ilustran otro caso de simulación para evaluar el efecto que se genera en las condiciones del reactor cuando después de alcanzado el estado estacionario la concentración de sustrato en la entrada (So) se incrementa y se mantiene en un nuevo nivel (1000mg/L). Para esto se cambia el valor de So, que era de 668 por el nuevo que es 1000, con el fin de simular una descarga instantánea.
Se ejecuta el programa para un tiempo de 20 días. Los valores finales para S, X, Xr y OD se van a colocar como condiciones iniciales para la siguiente parte de la simulación. También será necesario modificar el valor de Sf en el archivo lodosactivados.m, quitando el valor de 668 y poniendo 1000, para simular que el afluente entra con esa concentración. Hecha esta modificación se ejecuta la segunda parte de esta simulación.
El código para la primera parte de la simulación queda de la siguiente manera:

% lodosactivadossustrato2run
% se resuelve el sistema de ecuaciones planteado en el archivo
% lodosactivados.m
    [t,y]=ode45('lodosactivados',[0 20],[1000 500 6500 2]);
    subplot(2,2,4),plot(t,y(:,4),'k-')
    xlabel('tiempo (d)')
    ylabel('oxigeno disuelto (mg/L)')
    text(5,7.5,'OD en el reactor')
    hold on
    subplot(2,2,3),plot(t,y(:,3),'k-')
    xlabel('tiempo (d)')
    ylabel('Xr (mg/L)')
    text(2,7500,'biomasa en el sedimentador')
    hold on
    subplot(2,2,2),plot(t,y(:,2),'k-')
    xlabel('tiempo (d)')
    ylabel('SSV (mg/L)')
    text(5,600,'biomasa en el reactor')
    hold on
    subplot(2,2,1),plot(t,y(:,1),'k-')
    xlabel('tiempo (d)')
    ylabel('DQO (mg/L)')
    text(5,650,'Sustrato')
    hold on
    disp('-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --')
    [t(end),y(end,1),y(end,2),y(end,3),y(end,4)]

Los resultados desplegados en la ventana de comandos de MATLAB son los siguientes:

EDU>> lodosactivadossustrato2run
-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --
ans =
  1.0e+003 *
    0.0200    0.0634    0.4554    5.9774    0.0062
EDU>>


Figura 3. Gráfico de concentraciones de sustrato, biomasa en el reactor, biomasa en el sedimentador y oxígeno disuelto para concentración de sustrato (So) en la alimentación del reactor 1000 mg/L.

Ahora se toman las condiciones de operación en estado estable y se colocan como condiciones iniciales para la segunda parte de la simulación. Antes de ejecutar el siguiente programa, se cambia el valor de Sr (de 668) a 1000 en el código del archivo lodosactivados.m.

% lodosactivadossustrato3run
% se resuelve el sistema de ecuaciones planteado en el archivo
% lodosactivados.m
    [t,y]=ode45('lodosactivados',[20 40],[63.4 455.4 5977.4 6.2]);
    subplot(2,2,4),plot(t,y(:,4),'k-')
    xlabel('tiempo (d)')
    ylabel('oxigeno disuelto (mg/L)')
    text(5,7.5,'OD en el reactor')
    hold on
    subplot(2,2,3),plot(t,y(:,3),'k-')
    xlabel('tiempo (d)')
    ylabel('Xr (mg/L)')
    text(2,7500,'biomasa en el sedimentador')
    hold on
    subplot(2,2,2),plot(t,y(:,2),'k-')
    xlabel('tiempo (d)')
    ylabel('SSV (mg/L)')
    text(5,600,'biomasa en el reactor')
    hold on
    subplot(2,2,1),plot(t,y(:,1),'k-')
    xlabel('tiempo (d)')
    ylabel('DQO (mg/L)')
    text(5,650,'Sustrato')
    hold on
    disp('-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --')
    [t(end),y(end,1),y(end,2),y(end,3),y(end,4)]

Los resultados desplegados en la ventana de comandos ahora son:

EDU>> lodosactivadossustrato3run
-- t (d) -- S (mg/L)-- X (mg/L) -- Xr (mg/L) -- O2 (mg/L) --
ans =
  1.0e+003 *
    0.0400    0.0634    0.7067    9.2754    0.0058
EDU>>


Figura 4. Gráfico de concentraciones de sustrato, biomasa en el reactor, biomasa en el sedimentador y oxígeno disuelto tomando como condiciones iniciales las del estado estable de operación con una concentración So=1000 mg/L de sustrato.

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