martes, 24 de septiembre de 2013

Diseño de reactores. Parte 17. Determinación de parámetros biocinéticos.

Diseño de reactores. Parte 17. Determinación de parámetros biocinéticos.

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

Determinación de parámetros biocinéticos
Programa de muestreo para la obtención de los parámetros biocinéticos en un reactor biológico para la degradación de un contaminante.

Tabla 1.


Datos experimentales obtenidos en cuatro reactores continuos de mezcla completa y sin recirculación alimentados con agua residual de una refinería de petróleo.

Tabla 2

Cálculo de datos para valor de qmax y Ks

Tabla 3



Figura 1. Valores 1/q contra 1/Se y recta ajustada por mínimos cuadrados para los datos obtenidos experimentalmente.

Datos de velocidad específica de consumo de sustrato y de velocidad específica de crecimiento, para cada reactor.

Tabla 4



Figura 2. Gráfico de velocidad específica de crecimiento contra inverso de la velocidad específica de consumo de sustrato (mu).

Para obtener los valores de los parámetros biocinéticos qmax, Ks, Y y Kd, se escribieron dos programas en MATLAB. El primero, parametrosbiocineticos.m, calcula los valores de qmax y Ks a partir de los datos obtenidos experimentalmente. El segundo, parametrosbiocineticos_Y_Kd, calcula los valores de Y y Kd. El código de estos dos programas se muestra a continuación:

% parametrosbiocineticos
% parametros cineticos qmax y Ks
% a partir de datos experimentales
inversoS=[0.05 0.025 0.015384615 0.008333333];
inversoq=[1.296296296 0.76433121 0.56384743 0.346715328];
% grafico de los datos experimentales
plot(inversoS,inversoq,'ko')
hold on
% obtencion de la recta que se ajusta mejor a los datos experimentales
y=polyfit(inversoS,inversoq,1);
m=y(1);     % pendiente de la recta
b=y(2);     % ordenada al origen
recta=inversoS.*m+b;
plot(inversoS, recta)
title('obtencion de qmax y Ks')
xlabel('1/S (L/mg)')
ylabel('1/q (d)')
axis([0 0.07 0 1.5])
grid
% calculo de qmax y Ks
qmax=1/b;
Ks=qmax*m;
% calculo del error cuadratico promedio ECM
ecm=sum((inversoq-recta).^2/length(inversoq));
fprintf('\npendiente m= %g\n',m)
fprintf('ordenada al origen b= %g\n',b)
fprintf('qmax= %g \n',qmax)
fprintf('Ks= %g \n',Ks)
fprintf('ecm= %g \n',ecm)
pause

% parametrosbiocineticos_Y_Kd
% parametros cineticos Y y Kd
% a partir de datos experimentales
q=[0.771428571 1.308333333 1.773529412 2.884210526];
mu=[0.25 0.333 0.5 1];
% grafico de los datos experimentales
clf
plot(q,mu,'ko')
hold on
% obtencion de la recta que se ajusta mejor a los datos experimentales
y1=polyfit(q,mu,1);
m1=y1(1);     % pendiente de la recta
b1=y1(2);     % ordenada al origen
recta1=q.*m1+b1;
plot(q, recta1)
title('obtencion de Y y Kd')
xlabel('q (d^-1)')
ylabel('mu (d^-1)')
axis([0 3 0 1.5])
grid
% calculo de Y y Kd
Y=m1;
Kd=b1;
% calculo del error cuadratico promedio ECM
ecm1=sum((mu-recta1).^2/length(mu));
fprintf('\npendiente m1= %g\n',m1)
fprintf('ordenada al origen b1= %g\n',b1)
fprintf('Y= %g \n',Y)
fprintf('Kd= %g \n',Kd)
fprintf('ecm1= %g \n',ecm1)
pause

Los resultados desplegados por el programa parametrosbiocineticos.m son:
pendiente m= 22.2748
ordenada al origen b= 0.193066
qmax= 5.17958
Ks= 115.374
ecm= 0.000532296

Los resultados que despliega el programa parametrosbiocineticos_Y_Kd.m son:
pendiente m1= 0.367793
ordenada al origen b1= -0.0987513
Y= 0.367793
Kd= -0.0987513
ecm1= 0.00274512

Valores de q y RO2 calculados a partir de los datos obtenidos experimentalmente.

Tabla 5

A partir de estos valores, el programa parametrosbiocineticos_a_b.m calcula los valores de a y de b; y genera el gráfico mostrado en la Figura 3. El código de este programa es el siguiente:
% parametrosbiocineticos_a_b
% parametros cineticos a y b
% a partir de datos experimentales
q=[0.771428571 1.308333333 1.773529412 2.884210526];
RO2=[0.471771 0.6903 0.786071 1.128316];
% grafico de los datos experimentales
clf
plot(q,RO2,'ko')
hold on
% obtencion de la recta que se ajusta mejor a los datos experimentales
y2=polyfit(q,RO2,1);
m2=y2(1);     % pendiente de la recta
b2=y2(2);     % ordenada al origen
recta2=q.*m2+b2;
plot(q, recta2)
title('obtencion de a y b')
xlabel('q (d^-1)')
ylabel('RO2 (d^-1)')
axis([0 3 0 1.5])
grid
% calculo de a y b
a=m2;
b=b2;
% calculo del error cuadratico promedio ECM
ecm2=sum((RO2-recta2).^2/length(RO2));
fprintf('\npendiente m2= %g\n',m2)
fprintf('ordenada al origen b2= %g\n',b2)
fprintf('a= %g \n',a)
fprintf('b= %g \n',b)
fprintf('ecm2= %g \n',ecm2)
pause


Figura 3. Gráfico de RO2 contra q.

Los resultados que despliega el programa parametrosbiocineticos_a_b.m, son los siguientes:
pendiente m2= 0.302832
ordenada al origen b2= 0.259031
a= 0.302832
b= 0.259031
ecm2= 0.000445796

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