viernes, 28 de octubre de 2011

Un programa con MATLAB.

Un programa con MATLAB.

Categoría: 1. Programación y electrónica.


El programa calcula y grafica las concentraciones de tres especies químicas que intervienen en una reacción química de la siguiente forma: A <--k1--k2--> B <--k3--k4--> C. El programa emplea el comando ode45 para la solución del sistema de ecuaciones diferenciales, leyendo en primer lugar las ecuaciones escritas en el archivo dy11.m.

Las ecuaciones se plantean de la siguiente manera
rAadelante=-k1CA                                                                rAatrás=k2CB
rBadelante=-k3CB                                                                rBatrás=k4CC
rCadelante=0                                                                        rCatrás=k4CC

Así, el sistema de ecuaciones queda:
dA/dt=-k1CA+k2CB
dB/dt=-k3CB+k4CC
dC/dt=k4CC

A continuación está escrito el código de MATLAB que resuelve este sistema de ecuaciones.

%Solucion de un sistema de ecuaciones diferenciales que representa un
%sistema de reaccion quimica A <--k1--k2--> B <--k3--k4--> C
%Para resolver el sistema de ecuaciones diferenciales, se crea primero el
%archivo dy11.m en el que definimos las ecuaciones diferenciales con la
%funcion cpunto de la siguiente manera:
%
%function Cpunto=dc(t,c)
%global k
%Cpunto(1)=-K(1)*C(1)+K(2)*C(2);
%Cpunto(2)=K(1)*C(1)-K(2)*C(2)-K(3)*C(2)+K(4)*C(3);
%Cpunto(3)=K(3)*C(2)-K(4)*C(3);
%Cpunto=Cpunto';
%
%Para a continuacion resolver el sistema y graficar los perfiles de
%concentracion creamos el siguiente codigo
%
%Datos de entrada
%fprintf('\dame las concentraciones cineticas\')
%K(1)=input('A -> B, K1= ');
%K(2)=input('B -> A, K2= ');
%K(3)=input('B -> C, K3= ');
%K(4)=input('C -> B, k4= ');
%
%fprintf('\Dame las concentraciones iniciales \')
%C0(1)=input('Concentracion inicial de A= ');
%C0(2)=input('Concentracion inicial de B= ');
%C0(3)=input('Concentracion inicial de C= ');
%tmax=input('\Dame el tiempo maximo \tmax= ');
global K
tmax=5;
K=[1 0 2 3];
C0=[1 0 0];
t=0:0.01:tmax;
[t,C]=ode45('dy11',[0,tmax],C0);
plot(t,C)
xlabel('tiempo(seg)')
ylabel('Concentraciones')
legend('CA','CB','CC')



%help global
% GLOBAL Define global variable.
%    GLOBAL X Y Z defines X, Y, and Z as global in scope.
%
%    Ordinarily, each MATLAB function, defined by an M-file, has its
%    own local variables, which are separate from those of other functions,
%    and from those of the base workspace.  However, if several functions,
%    and possibly the base workspace, all declare a particular name as
%    GLOBAL, then they all share a single copy of that variable.  Any
%    assignment to that variable, in any function, is available to all the
%    other functions declaring it GLOBAL.
%
%    If the global variable doesn't exist the first time you issue
%    the GLOBAL statement, it will be initialized to the empty matrix.
%
%    If a variable with the same name as the global variable already exists
%    in the current workspace, MATLAB issues a warning and changes the
%    value of that variable to match the global.
%
%    Stylistically, global variables often have long names with all
%    capital letters, but this is not required.
%
%    See also isglobal, clear, clearvars, who, persistent.


Se puede consultar los siguientes libros:
H. Scott Fogler. 1999. Elementos de ingeniería de las reacciones químicas. Tercera edición. Prentice Hall. México. p.30

David Báez López. 2006. MATLAB con aplicaciones a la ingeniería, física y finanzas. Ed. Alfaomega

Por el momento es todo.
Saludos




jueves, 27 de octubre de 2011

Pequeño programa con calculadora.

Pequeño programa con calculadora.

Categoría: 2. Ciencia y tecnología.

Un pequeño programa para la calculadora hp 9g que resuelve una ecuación exponencial y grafica los puntos a medida que los calcula:
print"b=e^(-a/100);
display result command;     *
for(a=-10;a<=10;a++){b=e^(-a/100); print"b= ",b; sleep(0.5); cls; print"a= ",a; range(-10.1,10.1,1,0,5,1); factor(1,1); plot(a,b);}; end

* el display result command está representado por un pequeño triángulo rectángulo y se puede obtener tecleando [2nd][INST] y después tecleando flecha a la derecha hasta que aparezca sub-rayado el triangulito.

Saludos




lunes, 24 de octubre de 2011

Algo de cine. Labios rojos.

Labios rojos.

Categoría: 4. Cine y literatura.

Una película mexicana muy buena está terminando su presentación inicial en cines comerciales, Labios rojos (Dir. Rafael Lara). Una de sus características más atractivas y tal vez poco evidente es que los actores hacen su papel con gusto, como jugando, puedo decir que que se divirtieron haciendo la película. Esto no es una casualidad porque el elenco está conformado por actores bien experimentados, todos ellos profesionales. Por eso también se puede ver que aunque los protagonistas, Ricardo y Blanca (Silvia Navarro), podrían opacar de forma abrumadora a los demás personajes, en realidad no sucede así, todos los personajes tienen su lugar apropiado, no están pegados o fuera de lugar. El tema de la película puede ser bastante trillado y sin embargo, la historia lo lleva a uno sin sentir que ya se alargó el asunto, por decirlo así. O dicho de otro modo, la película es amena.
Puede verse como una historia completa, pero también como una serie de cuentos, en el sentido literario, en el que hay una historia con sus propios personajes, tiene un principio y un fin y deja un mensaje o moraleja. El primer cuento es el del empleado que inició su carrera en una empresa que fue envejeciendo demasiado rápido y donde el protagonista ya no cabe, entonces ocurre la sorpresiva llamada de la empresa de publicidad  Covarrubias y asociados, con un dinamismo contrastante. Ahí se abren los ojos de Ricardo (Jorge Salinas) gracias a la apertura de miras de su jefe, Luis Covarrubias (Fernando Luján): "A este mundo venimos a comer mierda ... Mucha!! Así es que, o te sirves tu plato y le haces buena cara, o la vida se encargará de embarrarte la jeta !!Bienvenido a Covarrubias y asociados!! ...
Otros cuentos tienen su inicio gracias a la intervención, casi acoso, de las amigas de Blanca, quienes la persuaden de tomar un tratamiento reafirmante de glúteos (nalgas) a base de algas, que termina con quemaduras en la piel de Blanca y tiene su culminación cuando llega Ricardo trayendo la pomada cicatrizante -ignorando la razón de ese encargo de su esposa- quien habiendo tomado un maravilloso té o infusión china, el te levanta, comienza a inspirarse para atender a Blanca quien pega un verdadero rugido de dolor después de que Ricardo le toca la piel abrasada.
En el siguiente cuento, Blanca asiste a una consulta con un brujo, quien le ofrece devolverle la felicidad perdida en su matrimonio -Casos como ese he resuelto muchos!!-. Aquí habría que resaltar la toma en que aparece Blanca parada en al banqueta con una gallina amarrada a un mecate, esperando que su amiga pase por ella al terminar su primera sesión con el brujo. La historia de este cuento termina con el brujo panzón, greñudo y toda la cosa, encuerado persiguiendo a Blanca hasta al banqueta donde apresuradamente aborda su automóvil y sale prácticamente huyendo.
En otro cuento de estos, Blanca pensando que su esposo la engaña o mejor dicho, tiene una amante, y para variar azuzada por su amigo homosexual y sus amigas, contrata a un agente privado (Jesús Ochoa) para que de manera secreta averigüe los movimientos de Ricardo. El asunto se vuelve intenso cuando Blanca es invitada por el agente y su astuto ayudante, Pérez (Jorge Zárate), para que vayan a hacer una ronda de observaciones a su esposo, lo que termina de manera, de buen gusto, exagerada con una persecución policiaca con helicóptero y patrullas, con reporteros de televisión entrevistando a los supuestos secuestradores antes de que la policía los pueda detener, por supuesto, después de que Ricardo se siente perseguido por la banda de secuestradores del periférico.
Todos estos cuentos aparecen o parecen no estar conectados unos con otros, pero hay un hilo conductor que los hilvana y esta parte recae en el amigo inseparable de Ricardo, Miguel (Guillermo Iván), quien aconseja a Ricardo tal vez con la misma malicia que lo hacen las amigas de Blanca, pero a quien le interesa más en realidad contar con un trabajo que le remunere. De esta manera, presiona a Ricardo para acercarlo a su modo de vida, pero sus ambientes fuera del trabajo chocan una y otra vez. Gracias a eso, Ricardo mantiene el equilibrio, a veces precario, en su trabajo y su familia y después de las grandes peripecias contadas como cuentos, ambos caen en la realidad y empiezan a comprender sus errores ... y fueron muy felices ... colorín colorado, a ver otra película o la misma, porque este cuento no ha terminado.

Les envío saludos.





viernes, 7 de octubre de 2011

Un poco de alemán. Descubrimiento de Hawai.

Un poco de alemán.

Categoría: 3. Humanidades y comportamiento humano.

Welcher Seefahrer entdeckte die Hawaii-Inseln? 
  >  James Cook 
  >  Fernando Magellan 
  >  Francis Drake

27.10.1728: James Cook (†14.2.1779)

Britischer Entdecker, Seefahrer und Forscher. 1755 trat Cook als einfacher Matrose in die Royal Navy ein und wurde nach kurzer Zeit zum Maat befördert. Im August 1768 stach Cook mit der "Endeavour" in See, um für die Königlich Geographische Gesellschaft astronomische Beobachtungen auf Tahiti vorzunehmen und von dort zum "Südkontinent" (Terra australis) vorzustoßen. Von 1772 bis 1775 überquerte er zweimal den südlichen Polarkreis, erreichte die Osterinseln, die Neuen Hebriden, Neukaledonien, Kap Hoorn und Südgeorgien. 1776 brach er zu seinen dritten Expedition auf, um die nördliche Durchfahrt zwischen dem Pazifik und dem Atlantik zu erkunden. Dabei entdeckte er das heutige Hawaii. Dort wurde er bei der Vermittlung in einem Streit mit Eingeborenen erschlagen.


Matrose - sailor





domingo, 2 de octubre de 2011

Control en linea de un reactor batch secuencial.

Control en linea de un reactor batch secuencial para el tratamiento biológico de agua residual doméstica.

Categoría: 2. Ciencia y tecnología.

Las mediciones de pH y potencial redox son parámetros de operación de biorreactores que pueden ser utilizados para obtener un mejor control de los procesos que tienen lugar dentro de estos sistemas. En un lecho sembrado con plantas acuáticas utilizado para el tratamiento de agua residual sintética, se realizaron lecturas del potencial redox durante las 24 horas del día. En el gráfico que muestra esos valores se puede apreciar con claridad el momento en que se inicia la actividad fotosintética de las plantas, al inicio de la etapa iluminada. A partir de ese punto los valores comienzan a aumentar debido a la oxigenación de la rizosfera por efecto del transporte de oxígeno molecular (O2) a través del tejido de aerénquima de este tipo de vegetación (+93.3mV). Durante la noche, los valores de potencial redox vuelven a bajar, hasta alcanzar un mínimo antes de la media noche (-6mV), este valor se mantiene estable hasta que comienza nuevamente la iluminación del sistema. Más información al respecto se puede encontrar en el artículo publicado en septiembre de 2011 por la reista Bioresource Technology (Orduña y col, 2011. Adelante se presenta la referencia completa).
Para no contribuir con mi mala traducción, voy a escribir el abstract y la introducción tal como aparecen en el artículo titulado "On-line Control of a SBR Reactor for the Biological Wastewater Treatment" de los autores mencionados.
G. Bortone, S. Longhi, L. Lccarini, E. Porrá y P. Ratini
Abstract. A solution to the on-line control of a Sequential Batch Reactor (SBR) is analyzed. The proposed on-line controller is able to estimate the process state and to control the evolution of the SBR plant. The on-line measurement of the substrate concentrations are not available and the estimation of the state of SBR system is performed by trained neural networks which use the pH and ORP (redox potential) measurements. Several experimental tests are developed with significant results. The proposed controller reduces the treatment period allowing energy saving and increasing the amount of treated wastewater.
Index terms: Sequencing batch reactor; Real-time control; Neural networks.
Introduction. In the last years, the water eutrophication problem has been faced with an increasing of the wastewater quality standards and with a significant development of the water treatment technology, in particular with biological treatment plants. A biological wastewater treatment plant produces in an artificial ecosystem the same self-purification of a natural system, with biochemical reactions characterized by higher rates and yields. The Sequential Batch raector (SBR) is largely used in the biological wastewater technology. Generally the SBR reactor work with a static temporization of the process phases, which are correlated on the treatment plant parameters. In general this choice produces an excesive use of the actuators with consequent power dissipation, and a reduction on the quantity and quality of the wasted water. The performances of these biological wastewater treatment plants can be improved by the introduction of a dynamical control system able to impose a dynamical temporization of the process phases on the basis of on-line measurements of the water parameters.
In this papaer a possible solution to the on-line control of a SBR reactor is analyzed. The proposed on-line controller is able to detect the process state, by the identification of the end of each phases of the treatment cycle, and to control the evolution of the SBR plant. In the considered process the on-line measurement of the substrates concentrations are not available and the estimation of the state of SBR system is performed by trained neural networks which use the pH and ORP (redox potential) measurements. A scale plant, developed by ENEA Environmental Engineering and Technology Department in Bologna, has been used for testing the proposed controler.
The paper is organized in the following way. In section 2, the SBR process is briefly introduced. The state estimation of the process is discused in Section 3. The section 4 and 5 describe the proposed control strategy and the performed experimental tests, respectively.

El artículo describe cada una de las fases de tratamiento, como en la siguiente figura.



Para cada fase los equipos que deben estar en operación y los equipos que deben permanecer inactivos, se muestran en una tabla.
En dos ciclos completos de 6 horas de duración cada uno, muestra los valores promedio de pH y ORP, a partir de los cuales se calculan las concentraciones de fosfatos, nitratos y amonio mediante redes neuronales, utilizando Matlab.

Mediante redes neuronales se calculan las concentraciones de fosfatos, nitratos y amonio, partiendo únicamente con valores de pH y ORP.


Valores de fosfatos estimados se grafican en la linea punteada y se agregan valores obtenidos experimentalmente, marcados con un asterisco. El fosfato en la fase acuosa se incrementa durante la etapa de llenado del tanque del reactor, alcanza un máximo durante la etapa anaerobia, después comienza a disminuir durante la etapa aerobia, cuando los microorganismos lo acumulan mediante la síntesis intensa de ATP. Después de la etapa aerobia se retiran los lodos que, de esta manera han acumulado gran cantidad de fosfatos, eliminándose este contaminante del agua residual tratada.
 Valores de nitratos estimados se muestran en la linea punteada y se adicionan valores obtenidos experimentalmente, marcados con un asterisco, para un ciclo completo. Puede verse que la concentración de nitratos disminuye al inicio, durante la etapa de llenado, es muy baja durante la etapa anaerobia y comienzaa aumentar de nuevo al iniciar la etapa aerobia hasta alcanzar un nuevo máximo de concentración, debido a la oxidación biológica del amonio. El nitrato acumulado se consume por desitrificación en condiciones anóxicas en una reacción biológica heterótrofa, en la que se consume materia orgánica disuelta.


La concentración de amonio es mínima durante la etapa de llenado, se incrementa hasta alcanzar un máximo en la etapa anaerobia y se consume durante la etapa aerobia, cuando es transformado biológicamente a nitrato (NO3).
En el artículo se comenta que los reactores SBR funcionan en su mayoría con temporizadores que inician y terminan cada etapa del proceso en un tiempo preestablecido, es decir, como un sistema de control de lazo abierto. Mientras que la alternativa que se muestra funciona tomando en cuenta el estado en que se encuentra el sistema en cada momento, de manera que al alcanzarse las condiciones necesarias para dar por terminada una etapa del proceso, el sistema de control envía la señal adecuada para que esta finalice y se comience con la siguiente etapa del proceso. Este sería un sistema de control de lazo cerrado.


Consultar también:
Miguel Angel Orduña Bustamante, Mabel Vaca Mier, J. Alberto Esclante Estrada, Carmen Durán Domínguez. Nitrogen and potassium variation on contaminant removal for a vertical subsutface flow lab scale constructed wetland. Bioresource Technology 102(2011):7745-7754

G. Bortone, S. Longhi, L. Lccarini, E. Porrá y P. Ratini. On-line Control of a SBR Reactor for the Biological Wastewater Treatment (esta referencia ladejo incompleta porque no tengo más información por el momento)