videotutoriales de matlab, octave, numpy, python, POA, algoritmia, simulacion de procesos en ingenieria quimica, y algo de ingenieria quimica
Mostrando entradas con la etiqueta Heramientas de Ingenieria Quimica. Mostrar todas las entradas
Mostrando entradas con la etiqueta Heramientas de Ingenieria Quimica. Mostrar todas las entradas
miércoles, 5 de agosto de 2015
martes, 30 de junio de 2015
jueves, 3 de julio de 2014
Newton-Raphson en C
#include<stdio.h> #include<string.h> #include<conio.h> #include<math.h> #include<process.h> #define f(x) 3*x -cos(x) -1 #define df(x) 3 -sin(x) void nwrap(); void main(){ printf("\n Solucion por el Método de Newton Raphson \n"); printf("\n F(x): "); printf("\n\t\t\t 3*x -cos(x) -1 = 0 \n\t"); nwrap(); getch(); } void nwrap(){ float x1,x0; float f1,f0; float df0; int i=0, itr=0; float TOL; float error; for(x1=0;;x1 +=0.01){ f1=f(x1); if (f1>0){ break; } } x0 = x1-0.01; f0 = f(x0); printf("Numero de Iteraciones: "); scanf("%d",&itr); printf("Tolerancia Maxima: "); scanf("%f",&TOL); if(fabs(f0)>f1){ printf("\n\t\t La raiz es: %0.4f\n",x1); } if(f1 > fabs(f(x0))){ printf("\n\t\t La raiz es: %0.4f\n",x1); } x0 = (x0+x1)/2; for(;i<=itr;i++){ f0=f(x0); df0=df(x0); x1 = x0 - (f0/df0); printf("\n\t\t iteracion %d aproximacion: %f",i,x1); error = fabs(x1-x0); if(error < TOL){ break; } x0 = x1; } if(error > TOL){ printf("\n\n\t Iteraciones No suficientes" ); } printf("\n\n\n\t\t\t--------------------------"); printf("\n\n\t\t Raiz: %0.4f ",x1); printf("\n\n\n\t\t\t--------------------------"); }
jueves, 3 de abril de 2014
Sympy aplicado a Ingenieria Quimica
El diagrama es el siguiente.from sympy import* x= Symbol('x') y=Symbol('y') z=Symbol('z') w=Symbol('w') #C1=x,C2=y,c3=z.,c4=w res = solve([75*x-25*y-350,-45*y+45*x, 75*x-105*z+30*w,-20*y+30*w-150],[x,y,w,z]) print(res)
Ejecutando el código:
{x: 7, w: 29/3, z: 163/21, y: 7} ------------------ (program exited with code: 0) Press return to continue
sábado, 16 de noviembre de 2013
lunes, 21 de octubre de 2013
Modelo de reacciones en serie, usando Matlab
Tenemos la función en la que planteamos nuestras ecuaciones de balance.
Ahora este es nuestro programa principal, en el cual usamos en este caso la función serie donde tenemos nuestra ecuación plantead como dEct.%Modelo basico de reacciones en serie %esta funcion debe llamarse serie %x---k1-->y---k2--->z function dEct = serie(t,C) global k1 k2 dEct = [-k1*C(1);k1*C(1)-k2*C(2);k2*C(2)];
Corriendo la aplicacion.%programa principal clc clear global k1 k2 disp('Introduce los siguientes Datos') Cxo = input('Concentracion inicial de X (mol):_ '); Cyo = input('Concentracion inicial de Y (mol):_ '); Czo = input('Concentracion inicial de Z (mol):_ '); cuadal = input('Cuadal (l /min):_ '); k1 = input('K1:_ '); k2 = input('K2:_ '); tiempolimite = input('Tiempo maximo de reaccion:_ '); vectiempo = [0:0.0005:tiempolimite]; vecC = [Cxo Cyo Czo]; [t,C]= ode45('serie',vectiempo,vecC); plot(t,C(:,1),'-',t,C(:,2),':',t,C(:,3),'--'); xlabel('tiempo (min)'); ylabel('Concentracion (mol/litro)'); title('Modelo de Reaccion en Serie'); legend ('Cx','Cy','Cz'); Cmax = max(C(:,2)); tmax = t(find(C(:,2)==(max(C(:,2))))); Vol = cuadal*tmax
Introduce los siguientes Datos Concentracion inicial de X (mol):_ 3.5 Concentracion inicial de Y (mol):_ 1.23 Concentracion inicial de Z (mol):_ 0 Cuadal (l /min):_ 28.598 K1:_ 0.562 K2:_ 0.123 Tiempo maximo de reaccion:_ 25 Vol = 83.2488
miércoles, 4 de septiembre de 2013
jueves, 29 de agosto de 2013
miércoles, 14 de agosto de 2013
orderseek--Encontrar el orden de una reacción Química en Matlab
Este pequeño programa hecho en Matlab nos sirve para hallar el orden de una reacción química, cabe señalar que este programa no es creación mía, pero lo estoy usando como punto de partida para crear un propio programa ya que en el caso de reacciones químicas tenemos muchos casos como son, volumen constante, volumen Variable, Reversibles, etc.
lunes, 5 de agosto de 2013
Diagrama Liquido- Vapor en un proceso Isobarico-- usando Matlab
El modelo de Wilson permite que el programa para tener en cuenta la desviación del comportamiento ideal en la fase líquida. El usuario debe introducir bajo presiones moderadas ya que el término de corrección a alta presión no está incluido.
miércoles, 17 de julio de 2013
Modelo Basico de un BioReactor en Matlab.
Este proyecto SimBiology contiene una versión modificada del modelo bioreactor presentado en la conferencia señala que "Una introducción a la modelización de los biorreactores" por Bengt Carlsson y se puede encontrar aquí: http://www.it.uu.se/edu/course/homepage / modynsyst/vt11/Lecture/DynSystBior2009.pdf
Se puede utilizar como una plantilla para los modelos más complicados de bioprocesos
Se puede utilizar como una plantilla para los modelos más complicados de bioprocesos
jueves, 18 de abril de 2013
Ecuacion de Segundo Grado en Python 3 usando Tkinter
En el post anterior (16/abril) publicamos el código para la resolucion de ecuaciones de segundo grado en python 3.x. Partiendo de este código anterior desarrollamos una aplicacion con interfaz de usuario, usando la librería tkinter, en nuestro intento por aprender programacion en python 3.3. El código queda como sigue.
## graficador de la funciones from tkinter import* from tkinter import messagebox import matplotlib.pyplot as plt import numpy as np ventana = Frame(height = 400, width = 400) ventana.pack(padx = 10, pady = 10) ### Declarando Variables a = DoubleVar() b = DoubleVar() c= DoubleVar() restx1 = StringVar() restx2 = StringVar() #Declarando funciones ### funcion graficar def graficar(): a = aA.get() b = bB.get() c = cC.get() ax = float(a) bx = float(b) cx = float (c) x = np.arange(-10,10,0.5) y = ax*x**2 + bx*x + cx plt.plot(x,y) plt.title('a*x^2 + b*x + c = 0') plt.xlabel('X') plt.ylabel('Y') plt.show() ##termina funcion graficar ### inica funcion calcular def calcular(): a = aA.get() b = bB.get() c = cC.get() ax = float(a) bx = float(b) cx = float (c) ## calculando Delta delta = float(bx**2-4*ax*cx) if delta<0: messagebox.showerror('Eror', 'No hay solucion') elif delta ==0: s == float(-bx/2*ax) messagebox.showinfo('resultado','Solucion unica ', s) else: resultado = Label(ventana, text = "Resultado") resultado.place(bordermode = OUTSIDE, height = 30, width= 100, x = 150, y= 250) resultado1 = Label(ventana, text = "X1") resultado1.place(bordermode = OUTSIDE, height = 30, width= 50, x = 180, y= 280) resultado2 = Label(ventana, text = "X2") resultado2.place(bordermode = OUTSIDE, height = 30, width= 50, x = 180, y= 310) x1 = float((-bx+((bx**2 - 4*ax*cx))**0.5)/(2*ax)) x2 = float((-bx-((bx**2 - 4*ax*cx))**0.5)/(2*ax)) r1 = Label(ventana,textvariable = restx1) r1.place(bordermode = OUTSIDE, height = 30, width= 50, x = 230, y= 280) restx1.set(x1) r2 = Label(ventana,textvariable = restx2) r2.place(bordermode = OUTSIDE, height = 30, width= 50, x = 230, y= 310) restx2.set(x2) ##iniciando maquetado de interfaz aA = Entry(ventana, textvariable = a) aA.place(bordermode = OUTSIDE, height = 30, width = 50, x = 10, y = 40) bB = Entry (ventana, textvariable = b) bB.place(bordermode = OUTSIDE, height = 30, width = 50, x = 130, y = 40) cC = Entry(ventana, textvariable = c) cC.place(bordermode = OUTSIDE, height = 30, width = 50, x = 230, y = 40) ## entrada de TExto xa = Label(ventana, text = "X^2 + ") xa.place(bordermode = OUTSIDE, height = 30, width = 50, x =70,y=40 ) xb = Label(ventana, text = "X + ") xb.place(bordermode = OUTSIDE, height = 30, width = 50, x = 180, y = 40) xc = Label(ventana, text = "= 0 ") xc.place(bordermode = OUTSIDE, height = 30, width = 50, x=280, y = 40) ### boton de graficar graficar = Button ( ventana, text = "Graficar", command = graficar) graficar.place(bordermode= OUTSIDE, height= 40, width = 100, x = 40, y = 200) ## boton calcular calcular = Button (ventana, text = "Calcular", command = calcular) calcular.place(bordermode = OUTSIDE, height = 40, width = 100, x = 160, y = 200) ## terminado el maquetetado de la GUI ventana.mainloop()
Compara la cantidad de codigo Python vs la cantida de Codigo Matlab, ¿Cual crees que es mas conveniente?, ¿Cual se te hace mas facil?, ¿Cual te enseñan en la facultad de ingenieria? Tu tienes la unica respuesta si deseas aprender python.
martes, 2 de abril de 2013
Ecuacion de Gas Ideal: Pv = nrT en Matlab
Un pequeño programita desarrollado en Matlab para la resolucion decada caso de la ecuacion de gas ideal pv = nrt, la interfaz de usuario es muy simple, Solo hay que elegir un caso de los que ya estan programados.
Despues de seleccionar el caso, este automaticamente reconoce las variables que estan involucradas. y oprimimos calcular. (Ejemplo Caso de volumen)

Despues de seleccionar el caso, este automaticamente reconoce las variables que estan involucradas. y oprimimos calcular. (Ejemplo Caso de volumen)

Enlace de descarga: DESCARGAR
miércoles, 20 de marzo de 2013
Tabla Periodica de los Elementos Quimicos en Java
En estos días que disponemos de algo de tiempo libre y poder encerrarnos un momento e intentar aprender algo nuevo, ¿Por que no aprender Java? Asi que decidí empezar a aprender este lenguaje de programación claro sin descuidar los otros post acerca de Matlab y Python, motivado por el afán de aprender algo nuevo y darle mayor variedad a este blog. Asi que cree una Tabla periodica de los elementos químicos desarrollada totalmente en java. Al inicio pensé que seria algo complicado pero, solo bastaban conocimientos sobre estructuras de control y manejo de eventos que comparado con Matlab y Python la lógica de programación es la misma, solo que diferente sintaxis.

Pueden descargar la aplicación . Jar en el siguiente enlace: DESCARGAR
Para descargar el Codigo Fuente .java en el siguiente enlace: DESCARGAR CÓDIGO FUENTE
viernes, 8 de febrero de 2013
Convertidor de temperaturas
Se trata de una sencilla interfaz gráfica en Matlab, que hace uso de los radio buttons.
D.E.S.C.A.R.G.A.R
D.E.S.C.A.R.G.A.R
martes, 29 de enero de 2013
Cálculo de flash isotérmico mediante la ecuación de estado de Soave
Multicomponentes en flash cálculos utilizando una ecuación de estado y reglas de mezcla clásica.
Sólo tiene que ejecutar main01.m, es fácil cambiar la composición y las condiciones de funcionamiento. Si desea agregar nuevos componentes sólo hay que añadir los críticos y definir propiedades del factor acéntrico. También es posible utilizar parámetros de interacción binarios differentes con ZE
Una clase de Antoine orientados a objetos cálculos de equilibrio vapor-líquido
Antoine para facilitar el cálculo de temperaturas de los componentes puros de saturación y presiones. Un objeto que corresponde a un componente puro se crea una instancia mediante la especificación de los parámetros de Antoine. Los métodos incluyen el cálculo de la presión de saturación, la temperatura de saturación, y el trazado.
Los datos de ejemplo se incluye para un pequeño número de compuestos. Un método de búsqueda se incluye para facilitar la búsqueda Webbook NIST Química para los parámetros de Antoine de otros compuestos.
Un extenso tutorial demuestra el uso de la ecuación de Antoine para los cálculos de equilibrio líquido-vapor. Los ejemplos incluyen el punto de burbuja y cálculos de punto de rocío, la construcción de Txy binario y diagramas XY, y la solución de los problemas de flash isotérmicas.
Este fue desarrollado para su uso en cursos de introducción en Ingeniería Química
lunes, 3 de diciembre de 2012
Ley de de Raoult en Matlab
Asumiendo la ley de Raoult es válido (solución ideal), esta interfaz gráfica de usuario permite al usuario elegir dos compuestos de una base de datos de más de 4500 productos químicos y trazar su diagrama Txy largo de un rango de temperatura especificado por el usuario.
Las unidades múltiples de presión y temperatura son compatibles.
Si T-split se define, en el trazado de la figura, el líquido-vapor se divide también será calculado a la temperatura definida.
Si la base de datos no está configurado correctamente, he incluido en el archivo. Accdb.
D.E.S.C.A.R.G.A.R
miércoles, 28 de noviembre de 2012
Transferencia de Calor en Matlab
Programa resuelve numéricamente la ecuación general de transferencia de calor utilizando las entradas del usuario y las condiciones de contorno.
D.E.S.C.A.R.G.A.R
D.E.S.C.A.R.G.A.R
lunes, 29 de octubre de 2012
Gui de Matlab para identificación Bacteriana
su interfaz gráfica de usuario es para identifcación bacteriana desarrollada por MATLAB. La interfaz gráfica de usuario se basa en la comparación de algunos resultados opcionales bioquímicos con matriz de probabilidad y puede distinguir 288 unidades bacterianas taxonómicas operacionales (Otus). De red neuronal probabilística (PNN) estructura se utiliza para obtener el resultado más probable de la identificación de bacterias. Y cuando un rango apropiado de la distancia que se elija, la bacteria desconocida y sus aliados Otus en el fenotipo bioquímico dentro de ese rango, pueden ser ilustrado en el espacio tridimensional clásico por escalamiento multidimensional (MDS)
DESCARGAR
Suscribirse a:
Entradas (Atom)