SlideShare a Scribd company logo
1 of 65
Download to read offline
El uso de Python en la
ingeniería química
Computer-aided Chemical Engineering

www.cacheme.org

24/11/2013
PyConES

24/11/2013

cacheme.org

Esquema
• Presentación
• ¿Por qué Python?

• Resolución de ecuaciones en derivadas

parciales
• Resolución de problemas de optimización
• Diseño de reactores en la industria de

procesos químicos

2
PyConES

Presentación

24/11/2013

cacheme.org

• Asociación formada por ingenieros químicos

(profesionales, docentes y estudiantes) que pretende
estimular las posibilidades de software en la ingeniería de
procesos.
• Promueve las ventajas de las nuevas herramientas de

software libre disponibles y fomenta su uso en la
universidad e industria.
• Especialización en simulación y programación

matemática (optimización).

3
PyConES

¿Quiénes somos?

24/11/2013

cacheme.org

4
PyConES

Actividades
• Formación
• Webinars
• Desarrollo
• ¡Podcast!

24/11/2013

cacheme.org

5
PyConES

¿Por qué Python?

24/11/2013

cacheme.org

• Python es lenguaje de alto nivel conveniente para un
•
•

•

•
•
•

desarrollo rápido de código
Su filosofía de diseño enfatiza la simplicidad y legibilidad de
código
Posee núcleo de lenguaje relativamente pequeño con el apoyo
de magníficas librerías (NumPy, SciPy, scikit-learn pandas,
matplotlib etc.)
Es lenguaje multiparadigma, en el que varios estilos de
programación son compatibles (imperativo, orientado a
objetos, funcional)
Lenguaje de programación interpretado en lugar de compilado.
Es multiplataforma (Windows, MacOS y Linux)
Software libre

6
PyConES

“As a simulation engineer in 2013, you really are standing on the
shoulders of giants”
Abhishek Chintagunta

24/11/2013

cacheme.org

CFD and Coffee (blog)

•
•
•
•

Franz Navarro
Ingeniero Químico
Universidad de Alicante
francisco.navarro@cacheme.org

1. Resolución de EDPs con Python

7
PyConES

1. Resolución de EDP

24/11/2013

cacheme.org

• Las ecuaciones en derivadas parciales (EDP) permiten modelar fenómenos

físicos como la propagación del sonido o del calor, la electrostática, la
electrodinámica, la dinámica de fluidos, etc.
• Existen numerosos paquetes de software para resolver EDP, usando una

variedad de lenguajes y métodos numéricos.
• Comerciales: COMSOL Multiphysics, ANSYS, Abaqus...
• Free/Open source: OpenFOAM, FreeFem++, Elmer, FiPy…

Problema simple de difusión resuelto en Python (FiPy) con menos de 40 líneas de código

8
PyConES

CFD with Python:
12 steps to Navier Stokes

24/11/2013

cacheme.org

Lorena A. Barba

• Modulo interactivo online de CFD con Python

impartido por la profesora Lorena A. Barba (Boston
University)
• Diseñado para principiantes en programación y en

CFD
• Resolución numérica mediante el método de las

diferencias finitas
• Videos explicativos de sus clases también online
• Material y código libre y gratuito

lorenabarba.com

9
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Convección lineal

(a)

• Difusión
• Ecuación de Burgers

• Pasos 5-10 pasan a 2D:
• Convección lineal
• Convección no lineal
• Difusión
• Ecuación de Burgers
• Ecuación de Laplace
• Ecuación de Poisson

• Pasos 11-12 resuelve la ecuación de Navier-Stokes en 2D:
• Flujo en una cavidad
• Flujo en un canal

(a)

(b)

+Introducción a Python, Numpy, SimPy, matplotlib y Numba

10

cacheme.org

• Pasos 1-4 son en una dimensión:
• Convección no lineal

24/11/2013

(b)
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Paso 7: Difusión en 2D

Reorganizando la ecuación discretizada:

24/11/2013

11

cacheme.org
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Paso 7: Difusión en 2D

Reorganizando la ecuación discretizada:

24/11/2013

12

cacheme.org
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes

24/11/2013

13

cacheme.org

• Paso 7: Difusión en 2D

Condición CFL para asegurar la convergencia,
se trabaja con ella en el Paso 3.
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes
• Paso 7: Difusión en 2D

24/11/2013

14

cacheme.org
PyConES

CFD with Python: Lorena A. Barba
12 steps to Navier Stokes

24/11/2013

15

cacheme.org
PyConES

24/11/2013

16

cacheme.org

FiPy

• FiPy resuelve EDPs mediante el método de los volúmenes finitos (FVM)

con programación orientada a objetos y estando escrito en Python.
• Mayor grado de abstracción (integradas funciones de mallado de Gmesh)
• Framework maduro y bien documentado (permite Python 3.x)
• 100% gratuita y de dominio de público (open source)
• Utilizado en investigación y academia (especializado en ciencia de los

materiales)
• Desarrollado en centros de investigación norteamiercanos (CTCMS y

NIST).
ctcms.nist.gov/fipy/
PyConES

24/11/2013

17

cacheme.org

FiPy
• Resolución de ecuaciones con la siguiente forma:

transitorio

difusión

convección

fuente (source)

Siendo 𝜌, 𝑢, Γ𝑖 los coeficientes de sus respectivos términos

• Permite acoplar fenómenos multifísicos de forma sencilla.

ctcms.nist.gov/fipy/
PyConES

18

24/11/2013

cacheme.org

FiPy: Ejemplo

• Ejemplo de resolución de un problema de difusión en estado estacionario

pero con una geometría circular y FiPy.
• Mallado

P3
C1
C2
P1

P2

P4
C3

C4
P5

cacheme.org
PyConES

24/11/2013

19

cacheme.org

FiPy: Ejemplo

Usando la malla construimos
las variables de las celdas
Representar la malla

Coeficiente de difusión
Condiciones de contorno
Resolución
Representación (ejecutado en un script)
cacheme.org

• Jorge Bernabé
• Ingeniero Químico
• Universidad de Alicante
jorge.bernabe@cacheme.org

2. Programación matemática (optimización)
Programación matemática

cacheme.org

Optimización: ¿por qué es importante?

• Mejorar calidad de un producto
• Aumentar beneficios
• Reducir riesgos ambientales
• Reducir costes de producción

Interés
empresarial

IQ: - selección de equipos y recursos
- gestión logística

(cc) Sam Derbyshire
Optimización con Python en IQ

cacheme.org

• Optimización matemática
–

min f(x)

–

s.a g(x) = 0
h(x) ≤ 0

• LP, NLP, MILP, MINLP

FO

(c) Sriram Sankaranarayanan
AML (Algebraic modelling languages)
Software propietario:
●

AMPL (www.ampl.com) – Lenguaje
sencillo, pero complicado interactuar
–

●

●

GLPK – Alternativa libre a AMPL
para LP y MILP

GAMS (www.gams.com) – Se comunica
con solvers incluso para resolver MINP

AIMMS (www.aiims.com) – Diseñado
para resolver problemas de optimización
a gran escala y programación de
actividades.

cacheme.org
Optimización en Python
●

cacheme.org

Free/Open source:
–

CVXOPT – M.Andersen, J.Dahl, L.Vandenberghe
Notación matricial. Optimización convexa

–

PuLP – Trabaja con lenguaje Python. Muy buenos
resultados para LP o MIP. No resuelve NLP

–

OpenOpt – Más de 30 solvers para solucionar el
modelado, incluyendo NLP

–

Pyomo – Coopr. (Sandia National Laboratories, USA)
Permite la formulación de modelos algebraicos en el
lenguaje de programación en Python.
COmmon Optimization Python Repository
¿Por qué Pyomo?

cacheme.org

• Se comunica directamente los principales solvers de AMPL,

GLPK, Gurobi, CPLEX, CBC y PICO.
• Programación en Python tipo AMPL/GAMS
• Open source (COIN-OR)
• Pyomo (Coopr) es un paquete gratuito con licencia BSD,

maduro y bien documentado (en migración a Python 3.x)
• Fácil instalación “pip install coopr”
• Adaptabilidad a modelado de problemas de IQ

coin-or.org
Problema I: Logística empresarial

cacheme.org

• Problema clásico en optimización
• LP

Se puede resolver con cualquier herramienta

• Fundamental en el mundo empresarial
• Minimización de coste en transporte
Problema I: Logística empresarial

cacheme.org
Problema I: Logística empresarial
• Plantas
• Mercados

cacheme.org

producción máxima
demanda mínima

• Coste de transporte por unidad:

Alicante

Castellón

Vitoria

Cádiz

Cáceres

PRODUCCIÓN

Madrid

4.17

4.10

3.48

6.37

2.96

250

Barcelona

5.16

2.69

5.35

11.14

9.10

200

Almería

2.95

5.42

9.10

3.80

6.47

300

La Coruña

10.26

10.19

6.56

10.65

6.85

300

DEMANDA

150

150

100

150

175

-
Problema I: Logística empresarial

• Sentencia para importar pyomo
• Sentencia para definir el modelo, abstracto o concreto

cacheme.org
Problema I: Logística empresarial

• Definición de sets – series de datos
• Definición de parámetros – valores de los sets
• Definición de variables

cacheme.org

Sus valores en
archivo .dat
Problema I: Logística empresarial

cacheme.org

• Definición de ecuaciones: def Nombre_Ecuación (modelo y

variables de las que depende)
• return: se escribe la ecuación
• Modelo.nombre: va a mostrar el valor de la ecuación al ejecutar el
programa
Problema I: Logística empresarial

• Definición de restricciones: Constraint (indica que la palabra

mercado se refiere a model.mercados)

cacheme.org
Problema I: Logística empresarial

cacheme.org
Problema I: Logística empresarial

pyomo archivo.py datos.dat

cacheme.org
Problema I: Logística empresarial

cacheme.org
Transporte

cacheme.org

Solución óptima

•

Todas las posibilidades
(superestructura)
Problema II: Selección de equipos

cacheme.org

A

•

B

Superestructura (incluye todas las posibilidades)

C
Problema II: Selección de equipos
Aumento beneficio

Disminución beneficio
A

B

C
Coste uso reactor

• Objetivo: Seleccionar la óptima distribución de
reactores y bypass que aumentan el beneficio

cacheme.org
Problema II: Selección de equipos

cacheme.org

AS = AE exp( − τ )

BS = ( AEτ + BE ) exp( − τ
 Cf + CV1 AE Si
Coste =  1
 Cf 2 + CV2 AE Si

)

0 ≤ AE ≤ 7
7 ≤ AE ≤ 10

 

τ (h)

Cf1 (um/h)

Cf2 (um/h)

CV1 (um/kmol)

CV2 (um/kmol)

Reactor 1

0.1

10

5

1

8

Reactor 2

0.4

20

10

2

10

Reactor 3

0.4

50

25

1

9

Reactor 4

0.2

20

10

1

50

Reactor 5

0.7

60

30

2

70

Reactor 6

0.2

10

20

1

10

Reactor 7

0.9

50

25

3

15

Reactor 8

0.5

100

50

5

10
Problema II: Selección de equipos

cacheme.org

• Toma de decisiones – MILP
• Resolución de la parte disyuntiva del problema mediante

la reformulación de la envolvente convexa
• Disgregación de variables
YRi



 
   ¬ YRi 
Wi,c1
Wi,c2


 
 
  Ci = Cf i + CVi ·E i, A  ∨  C i = Cf i + CVi ·E i, A   ∨  C i = 0 

  7 ≤ E i, A ≤ 10    Si, j = 0
0 ≤ E i, A ≤ 7
 
 







y i = wi ,c1 + wi ,c 2
Problema II: Selección de equipos

cacheme.org

• Disyunciones para el bypass

by b 

 BY ≤ 10  ∨
 b, j


 ¬ by b
 BY =
 b, j


0


• Balances de materia

F j = E1, j + E 2 , j + BY1, j

y1 + y2 + by1 = 1
Problema II: Selección de equipos

cacheme.org
Problema II: Selección de equipos

cacheme.org

• within = NonNegativeReals – Valores reales no negativos
• within = Binary – Valores binarios
Problema II: Selección de equipos

cacheme.org

• Por defecto, pyomo, minimiza la FO. Para maximizar, se escribe

sense = maximize
Problema II: Selección de equipos

cacheme.org
Problema II: Selección de equipos

cacheme.org
Problema II: Selección de equipos

cacheme.org
Problema II: Selección de equipos

cacheme.org
Problema II: Selección de equipos

cacheme.org
Problema II: Selección de equipos

cacheme.org

•

●

Solución óptima:

Superestructura:
cacheme.org

• Isaías Cuenca
• Ingeniero Químico
• Universidad de Alicante
isais.cuenca@cacheme.org

3. Diseño de reactores en la industria de procesos químicos
3.1. Reactor Flujo Pistón

cacheme.org

• Craqueo térmico del etano.
• Tubos horizontales en el interior de un horno de llama.
• Quemadores a ambos lados de los tubos.
• Se considera la variación de presión a lo largo del reactor.
• Sistema ODE, 8 compuestos, T y P
3.1. Reactor Flujo Pistón

cacheme.org
3.1. Reactor Flujo Pistón

cacheme.org
3.1. Reactor Flujo Pistón

cacheme.org
3.1. Reactor Flujo Pistón

cacheme.org
3. 2. Reactor Continuo Tanque Agitado

cacheme.org

• Propilenglicol (IUPAC: propano-1,2-diol)
• Compuesto orgánico inodoro, incoloro e insípido
• Líquido aceitoso claro, higroscópico y miscible con agua, acetona, y

cloroformo.
• Utilizado en una amplia gama de productos de consumo, incluidos
los alimentos, piensos, cosméticos y productos farmacéuticos, así
como las aplicaciones industriales.
• Producción mundial: 900 000 t /año

(Fuente: Ullmanns’s)

• Producido típicamente en dos calidades
• Calidad industrial
• Calidad USP/EP
•
3. 2. Reactor Continuo Tanque Agitado

cacheme.org
3. 2. Reactor Continuo Tanque Agitado
Variable

Descripción

Valor

FA0

Flujo molar de entrada de óxido de
propileno (kmol/h)

36.3

FB0

Flujo molar de entrada de agua y
ácido sulfúrico (kmol/h)

453.6

6FM0

Flujo molar de entrada de metanol
(kmol/h)

45.4

Q0

Caudal volumétrico de entrada (m3/h)

12.5

cacheme.org
3. 2. Reactor Continuo Tanque Agitado
Balance de Materia

Balance de Energía
Estado estacionario

Arranque del reactor

cacheme.org
3. 2. Reactor Continuo Tanque Agitado

cacheme.org
La Industria Química en España

cacheme.org

• 13% PIB Industrial
• 5º Europa y 8º Mundial
• 2º mayor exportación solo superado por la
automoción
•

Fuente: American Institute of Chemical Engineers (AICHE) 2012
La Industria Química en España
• 239.300 empleo
• Ocupación especializada y cualificada
• Una de ellas, técnico en química computacional

cacheme.org
Conclusiones

cacheme.org

•

Python junto a sus librerías permite la resolución de problemas típicos de
ingeniería y todo ello en un mismo lenguaje-entorno.

•

Python permite centrarse en el algoritmo y no en la sintaxis del lenguaje. Es
la navaja suiza de los lenguajes permitiendo pasar a C en cualquier momento
que se necesite.

•

Es multiplataforma, libre y gratuito por lo que su adopción en universidades
y empresa es sencilla

•

Si se quiere una herramienta lo más compatible con MATLAB, Octave UPM
es otra opción interesante pero mantendrá sus mismas capacidades (y
limitaciones) técnicas.

•

Python es posiblemente la mejor opción como primer lenguaje de
programación en el ámbito de programación científica.
¡Muchas gracias!

www.cacheme.org
@CAChemEorg
CAChemEorg
CAChemE
mail

info@cacheme.org

More Related Content

What's hot

Gases retrógrados y gases húmedos
Gases retrógrados y gases húmedosGases retrógrados y gases húmedos
Gases retrógrados y gases húmedos
Robin Soto
 
Coeficientes de actividad
Coeficientes de actividadCoeficientes de actividad
Coeficientes de actividad
cruizgaray
 
Balances molares en sistemas de reaccion
Balances molares en sistemas de reaccionBalances molares en sistemas de reaccion
Balances molares en sistemas de reaccion
Alejandro Guadarrama
 

What's hot (20)

Ecuaciones de estado
Ecuaciones de estadoEcuaciones de estado
Ecuaciones de estado
 
Regeneración continúa de catalizador
Regeneración continúa de catalizadorRegeneración continúa de catalizador
Regeneración continúa de catalizador
 
Calculo basicoii
Calculo basicoiiCalculo basicoii
Calculo basicoii
 
Ejercicios de fenomenos de transporte bird
Ejercicios de fenomenos de transporte birdEjercicios de fenomenos de transporte bird
Ejercicios de fenomenos de transporte bird
 
Absorción
Absorción Absorción
Absorción
 
Tema I. Ecuaciones de estado
Tema I.  Ecuaciones de estadoTema I.  Ecuaciones de estado
Tema I. Ecuaciones de estado
 
Gases retrógrados y gases húmedos
Gases retrógrados y gases húmedosGases retrógrados y gases húmedos
Gases retrógrados y gases húmedos
 
Equipos de Transferencia de Calor
Equipos de Transferencia de CalorEquipos de Transferencia de Calor
Equipos de Transferencia de Calor
 
Reactor batch f
Reactor batch fReactor batch f
Reactor batch f
 
Correlaciones factor de compresibilidad Z
Correlaciones factor de compresibilidad ZCorrelaciones factor de compresibilidad Z
Correlaciones factor de compresibilidad Z
 
Coeficientes de actividad
Coeficientes de actividadCoeficientes de actividad
Coeficientes de actividad
 
Reactores Químicos 01
Reactores Químicos 01Reactores Químicos 01
Reactores Químicos 01
 
Termodinámica de Soluciones
Termodinámica de SolucionesTermodinámica de Soluciones
Termodinámica de Soluciones
 
Ecuación Cubica genérica
Ecuación Cubica genérica Ecuación Cubica genérica
Ecuación Cubica genérica
 
Potenciales termodinámicos
Potenciales termodinámicosPotenciales termodinámicos
Potenciales termodinámicos
 
Balance de Materia y Energía en Procesos en Estado Estacionario y no Estacion...
Balance de Materia y Energía en Procesos en Estado Estacionario y no Estacion...Balance de Materia y Energía en Procesos en Estado Estacionario y no Estacion...
Balance de Materia y Energía en Procesos en Estado Estacionario y no Estacion...
 
Operación de un reactor
Operación de un reactorOperación de un reactor
Operación de un reactor
 
Obtencion de oxigeno
Obtencion de oxigenoObtencion de oxigeno
Obtencion de oxigeno
 
Balances molares en sistemas de reaccion
Balances molares en sistemas de reaccionBalances molares en sistemas de reaccion
Balances molares en sistemas de reaccion
 
Van ness capitulo 3 orihuela contreras jose
Van ness capitulo 3 orihuela contreras joseVan ness capitulo 3 orihuela contreras jose
Van ness capitulo 3 orihuela contreras jose
 

Viewers also liked

Aprendizaje Estadístico con Python - 4to Encuentro Software libre 2013
Aprendizaje Estadístico con Python -  4to Encuentro Software libre 2013Aprendizaje Estadístico con Python -  4to Encuentro Software libre 2013
Aprendizaje Estadístico con Python - 4to Encuentro Software libre 2013
Sergio Hernandez
 
Simulación de reactores químicos con octave
Simulación de reactores químicos con octaveSimulación de reactores químicos con octave
Simulación de reactores químicos con octave
CAChemE
 
DISEÑO DE REACTORES
DISEÑO DE REACTORESDISEÑO DE REACTORES
DISEÑO DE REACTORES
lmidarragabc
 
Ejercicios de cinetica 2
Ejercicios de cinetica 2Ejercicios de cinetica 2
Ejercicios de cinetica 2
John Jairo
 
1000 problemas química general (everest)
1000 problemas química general (everest)1000 problemas química general (everest)
1000 problemas química general (everest)
Maria Ramon Ambou
 

Viewers also liked (20)

Python para resolver EDPs - Ingeniería Química - PyConES 2013
Python para resolver EDPs - Ingeniería Química - PyConES 2013Python para resolver EDPs - Ingeniería Química - PyConES 2013
Python para resolver EDPs - Ingeniería Química - PyConES 2013
 
Aprendizaje Estadístico con Python - 4to Encuentro Software libre 2013
Aprendizaje Estadístico con Python -  4to Encuentro Software libre 2013Aprendizaje Estadístico con Python -  4to Encuentro Software libre 2013
Aprendizaje Estadístico con Python - 4to Encuentro Software libre 2013
 
Reactor flujo piston en MATLAB - Octave - Craqueo termico
Reactor flujo piston en MATLAB - Octave - Craqueo termicoReactor flujo piston en MATLAB - Octave - Craqueo termico
Reactor flujo piston en MATLAB - Octave - Craqueo termico
 
Simulación de reactores químicos con octave
Simulación de reactores químicos con octaveSimulación de reactores químicos con octave
Simulación de reactores químicos con octave
 
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
Iniciación al modelado de reactores químicos com MATLAB - Octave (intro)
 
Reactor de flujo piston con MATLAB Octave
Reactor de flujo piston con MATLAB OctaveReactor de flujo piston con MATLAB Octave
Reactor de flujo piston con MATLAB Octave
 
Introduction to free and open source Chemical Process Simulators - (DWSIM & C...
Introduction to free and open source Chemical Process Simulators - (DWSIM & C...Introduction to free and open source Chemical Process Simulators - (DWSIM & C...
Introduction to free and open source Chemical Process Simulators - (DWSIM & C...
 
Importancia de la Programación de Proyectos
Importancia de la Programación de ProyectosImportancia de la Programación de Proyectos
Importancia de la Programación de Proyectos
 
DISEÑO DE REACTORES
DISEÑO DE REACTORESDISEÑO DE REACTORES
DISEÑO DE REACTORES
 
Cómo modificar el tamaño del lienzo en en Photoshop
Cómo modificar el tamaño del lienzo en en PhotoshopCómo modificar el tamaño del lienzo en en Photoshop
Cómo modificar el tamaño del lienzo en en Photoshop
 
Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)
 
MÉTODOS DE LA QUÍMICA COMPUTACIONAL
MÉTODOS DE LA QUÍMICA COMPUTACIONALMÉTODOS DE LA QUÍMICA COMPUTACIONAL
MÉTODOS DE LA QUÍMICA COMPUTACIONAL
 
Aprendizaje Automático con Python
Aprendizaje Automático con PythonAprendizaje Automático con Python
Aprendizaje Automático con Python
 
Solucionario Fenomenos De Transporte
Solucionario Fenomenos De TransporteSolucionario Fenomenos De Transporte
Solucionario Fenomenos De Transporte
 
Reactores Químicos
Reactores QuímicosReactores Químicos
Reactores Químicos
 
PROYECTO DE AULA MATEMATICAS-MATRICES Y DETERMINANTES
PROYECTO DE AULA MATEMATICAS-MATRICES Y DETERMINANTESPROYECTO DE AULA MATEMATICAS-MATRICES Y DETERMINANTES
PROYECTO DE AULA MATEMATICAS-MATRICES Y DETERMINANTES
 
Simulation of Chemical Rectors - Introduction to chemical process simulators ...
Simulation of Chemical Rectors - Introduction to chemical process simulators ...Simulation of Chemical Rectors - Introduction to chemical process simulators ...
Simulation of Chemical Rectors - Introduction to chemical process simulators ...
 
Ejercicios de cinetica 2
Ejercicios de cinetica 2Ejercicios de cinetica 2
Ejercicios de cinetica 2
 
1000 problemas química general (everest)
1000 problemas química general (everest)1000 problemas química general (everest)
1000 problemas química general (everest)
 
Tablas de Constantes de Producto de Solubilidad (Kps)
Tablas de Constantes de Producto de Solubilidad (Kps)Tablas de Constantes de Producto de Solubilidad (Kps)
Tablas de Constantes de Producto de Solubilidad (Kps)
 

Similar to El uso de Python en la Ingenieria Química - Charla Completa

Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)
CAChemE
 
EPC Colombia Caso Noel
EPC Colombia Caso NoelEPC Colombia Caso Noel
EPC Colombia Caso Noel
RFIDPOINT
 

Similar to El uso de Python en la Ingenieria Química - Charla Completa (20)

Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)Optimizacion con Python (Pyomo vs GAMS vs AMPL)
Optimizacion con Python (Pyomo vs GAMS vs AMPL)
 
Programación matématica (optimización) con Python - Ingeniería Química - PyConES
Programación matématica (optimización) con Python - Ingeniería Química - PyConESProgramación matématica (optimización) con Python - Ingeniería Química - PyConES
Programación matématica (optimización) con Python - Ingeniería Química - PyConES
 
I4MS Information Day
I4MS Information DayI4MS Information Day
I4MS Information Day
 
Alto rendimiento en la web
Alto rendimiento en la webAlto rendimiento en la web
Alto rendimiento en la web
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales Cobertura de Código con Tests Funcionales
Cobertura de Código con Tests Funcionales
 
Presentacion pb y dl rev b
Presentacion pb y dl rev bPresentacion pb y dl rev b
Presentacion pb y dl rev b
 
#avanttic_webinar Migración de Discoverer a Oracle Analytics
#avanttic_webinar Migración de Discoverer a Oracle Analytics#avanttic_webinar Migración de Discoverer a Oracle Analytics
#avanttic_webinar Migración de Discoverer a Oracle Analytics
 
Iswmovil
IswmovilIswmovil
Iswmovil
 
Ciclo de vida de un proyecto WordPress - WordCamp Barcelona 2016
Ciclo de vida de un proyecto WordPress - WordCamp Barcelona 2016Ciclo de vida de un proyecto WordPress - WordCamp Barcelona 2016
Ciclo de vida de un proyecto WordPress - WordCamp Barcelona 2016
 
5 claves para un trayecto exitoso a DevOps
5 claves para un trayecto exitoso a DevOps5 claves para un trayecto exitoso a DevOps
5 claves para un trayecto exitoso a DevOps
 
5 claves para un trayecto exitoso a DevOps
5 claves para un trayecto exitoso a DevOps5 claves para un trayecto exitoso a DevOps
5 claves para un trayecto exitoso a DevOps
 
Métodos Formales
Métodos FormalesMétodos Formales
Métodos Formales
 
Enfoque Adaptativo de DP-PMIBA 2013
Enfoque Adaptativo de DP-PMIBA 2013Enfoque Adaptativo de DP-PMIBA 2013
Enfoque Adaptativo de DP-PMIBA 2013
 
EPC Colombia Caso Noel
EPC Colombia Caso NoelEPC Colombia Caso Noel
EPC Colombia Caso Noel
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
C++ Como Programar - Deitel 6edi.pdf
C++ Como Programar - Deitel 6edi.pdfC++ Como Programar - Deitel 6edi.pdf
C++ Como Programar - Deitel 6edi.pdf
 
Presentacion3
Presentacion3Presentacion3
Presentacion3
 
Cocomo
CocomoCocomo
Cocomo
 
Preguntas sobre metodología RUP
Preguntas sobre metodología RUPPreguntas sobre metodología RUP
Preguntas sobre metodología RUP
 

More from CAChemE

S4 - Process/product optimization using design of experiments and response su...
S4 - Process/product optimization using design of experiments and response su...S4 - Process/product optimization using design of experiments and response su...
S4 - Process/product optimization using design of experiments and response su...
CAChemE
 
S3 - Process product optimization design experiments response surface methodo...
S3 - Process product optimization design experiments response surface methodo...S3 - Process product optimization design experiments response surface methodo...
S3 - Process product optimization design experiments response surface methodo...
CAChemE
 

More from CAChemE (13)

Mixed-integer and Disjunctive Programming - Ignacio E. Grossmann
Mixed-integer and Disjunctive Programming - Ignacio E. GrossmannMixed-integer and Disjunctive Programming - Ignacio E. Grossmann
Mixed-integer and Disjunctive Programming - Ignacio E. Grossmann
 
Mixed-integer Models for Planning and Scheduling - Ignacio E. Grossmann
Mixed-integer Models for Planning and Scheduling - Ignacio E. GrossmannMixed-integer Models for Planning and Scheduling - Ignacio E. Grossmann
Mixed-integer Models for Planning and Scheduling - Ignacio E. Grossmann
 
Simulador de reactores químicos - COCO Simulator - Free
Simulador de reactores químicos - COCO Simulator - FreeSimulador de reactores químicos - COCO Simulator - Free
Simulador de reactores químicos - COCO Simulator - Free
 
S4 - Process/product optimization using design of experiments and response su...
S4 - Process/product optimization using design of experiments and response su...S4 - Process/product optimization using design of experiments and response su...
S4 - Process/product optimization using design of experiments and response su...
 
S3 - Process product optimization design experiments response surface methodo...
S3 - Process product optimization design experiments response surface methodo...S3 - Process product optimization design experiments response surface methodo...
S3 - Process product optimization design experiments response surface methodo...
 
S2 - Process product optimization using design experiments and response surfa...
S2 - Process product optimization using design experiments and response surfa...S2 - Process product optimization using design experiments and response surfa...
S2 - Process product optimization using design experiments and response surfa...
 
S1 - Process product optimization using design experiments and response surfa...
S1 - Process product optimization using design experiments and response surfa...S1 - Process product optimization using design experiments and response surfa...
S1 - Process product optimization using design experiments and response surfa...
 
Python en ciencia e ingenieria: lecciones aprendidas
Python en ciencia e ingenieria: lecciones aprendidasPython en ciencia e ingenieria: lecciones aprendidas
Python en ciencia e ingenieria: lecciones aprendidas
 
Simulación de columnas de destilación multicomponente con COCO+ChemSep (alter...
Simulación de columnas de destilación multicomponente con COCO+ChemSep (alter...Simulación de columnas de destilación multicomponente con COCO+ChemSep (alter...
Simulación de columnas de destilación multicomponente con COCO+ChemSep (alter...
 
Método McCabe-Thiele colmuna destilación - Curso gratutito de simulación de p...
Método McCabe-Thiele colmuna destilación - Curso gratutito de simulación de p...Método McCabe-Thiele colmuna destilación - Curso gratutito de simulación de p...
Método McCabe-Thiele colmuna destilación - Curso gratutito de simulación de p...
 
Curso inciación a COCO Simulator y ChemSep - Simulación de procesos químicos ...
Curso inciación a COCO Simulator y ChemSep - Simulación de procesos químicos ...Curso inciación a COCO Simulator y ChemSep - Simulación de procesos químicos ...
Curso inciación a COCO Simulator y ChemSep - Simulación de procesos químicos ...
 
Cómo hacer una búsqueda bibliográfica en bases de datos científicas (Scopus y...
Cómo hacer una búsqueda bibliográfica en bases de datos científicas (Scopus y...Cómo hacer una búsqueda bibliográfica en bases de datos científicas (Scopus y...
Cómo hacer una búsqueda bibliográfica en bases de datos científicas (Scopus y...
 
Diseño de reactores químicos con Python - Ingeniería Química - PyConES
Diseño de reactores químicos con Python - Ingeniería Química - PyConESDiseño de reactores químicos con Python - Ingeniería Química - PyConES
Diseño de reactores químicos con Python - Ingeniería Química - PyConES
 

Recently uploaded

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Recently uploaded (20)

AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 

El uso de Python en la Ingenieria Química - Charla Completa

  • 1. El uso de Python en la ingeniería química Computer-aided Chemical Engineering www.cacheme.org 24/11/2013
  • 2. PyConES 24/11/2013 cacheme.org Esquema • Presentación • ¿Por qué Python? • Resolución de ecuaciones en derivadas parciales • Resolución de problemas de optimización • Diseño de reactores en la industria de procesos químicos 2
  • 3. PyConES Presentación 24/11/2013 cacheme.org • Asociación formada por ingenieros químicos (profesionales, docentes y estudiantes) que pretende estimular las posibilidades de software en la ingeniería de procesos. • Promueve las ventajas de las nuevas herramientas de software libre disponibles y fomenta su uso en la universidad e industria. • Especialización en simulación y programación matemática (optimización). 3
  • 5. PyConES Actividades • Formación • Webinars • Desarrollo • ¡Podcast! 24/11/2013 cacheme.org 5
  • 6. PyConES ¿Por qué Python? 24/11/2013 cacheme.org • Python es lenguaje de alto nivel conveniente para un • • • • • • desarrollo rápido de código Su filosofía de diseño enfatiza la simplicidad y legibilidad de código Posee núcleo de lenguaje relativamente pequeño con el apoyo de magníficas librerías (NumPy, SciPy, scikit-learn pandas, matplotlib etc.) Es lenguaje multiparadigma, en el que varios estilos de programación son compatibles (imperativo, orientado a objetos, funcional) Lenguaje de programación interpretado en lugar de compilado. Es multiplataforma (Windows, MacOS y Linux) Software libre 6
  • 7. PyConES “As a simulation engineer in 2013, you really are standing on the shoulders of giants” Abhishek Chintagunta 24/11/2013 cacheme.org CFD and Coffee (blog) • • • • Franz Navarro Ingeniero Químico Universidad de Alicante francisco.navarro@cacheme.org 1. Resolución de EDPs con Python 7
  • 8. PyConES 1. Resolución de EDP 24/11/2013 cacheme.org • Las ecuaciones en derivadas parciales (EDP) permiten modelar fenómenos físicos como la propagación del sonido o del calor, la electrostática, la electrodinámica, la dinámica de fluidos, etc. • Existen numerosos paquetes de software para resolver EDP, usando una variedad de lenguajes y métodos numéricos. • Comerciales: COMSOL Multiphysics, ANSYS, Abaqus... • Free/Open source: OpenFOAM, FreeFem++, Elmer, FiPy… Problema simple de difusión resuelto en Python (FiPy) con menos de 40 líneas de código 8
  • 9. PyConES CFD with Python: 12 steps to Navier Stokes 24/11/2013 cacheme.org Lorena A. Barba • Modulo interactivo online de CFD con Python impartido por la profesora Lorena A. Barba (Boston University) • Diseñado para principiantes en programación y en CFD • Resolución numérica mediante el método de las diferencias finitas • Videos explicativos de sus clases también online • Material y código libre y gratuito lorenabarba.com 9
  • 10. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Convección lineal (a) • Difusión • Ecuación de Burgers • Pasos 5-10 pasan a 2D: • Convección lineal • Convección no lineal • Difusión • Ecuación de Burgers • Ecuación de Laplace • Ecuación de Poisson • Pasos 11-12 resuelve la ecuación de Navier-Stokes en 2D: • Flujo en una cavidad • Flujo en un canal (a) (b) +Introducción a Python, Numpy, SimPy, matplotlib y Numba 10 cacheme.org • Pasos 1-4 son en una dimensión: • Convección no lineal 24/11/2013 (b)
  • 11. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Paso 7: Difusión en 2D Reorganizando la ecuación discretizada: 24/11/2013 11 cacheme.org
  • 12. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Paso 7: Difusión en 2D Reorganizando la ecuación discretizada: 24/11/2013 12 cacheme.org
  • 13. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes 24/11/2013 13 cacheme.org • Paso 7: Difusión en 2D Condición CFL para asegurar la convergencia, se trabaja con ella en el Paso 3.
  • 14. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes • Paso 7: Difusión en 2D 24/11/2013 14 cacheme.org
  • 15. PyConES CFD with Python: Lorena A. Barba 12 steps to Navier Stokes 24/11/2013 15 cacheme.org
  • 16. PyConES 24/11/2013 16 cacheme.org FiPy • FiPy resuelve EDPs mediante el método de los volúmenes finitos (FVM) con programación orientada a objetos y estando escrito en Python. • Mayor grado de abstracción (integradas funciones de mallado de Gmesh) • Framework maduro y bien documentado (permite Python 3.x) • 100% gratuita y de dominio de público (open source) • Utilizado en investigación y academia (especializado en ciencia de los materiales) • Desarrollado en centros de investigación norteamiercanos (CTCMS y NIST). ctcms.nist.gov/fipy/
  • 17. PyConES 24/11/2013 17 cacheme.org FiPy • Resolución de ecuaciones con la siguiente forma: transitorio difusión convección fuente (source) Siendo 𝜌, 𝑢, Γ𝑖 los coeficientes de sus respectivos términos • Permite acoplar fenómenos multifísicos de forma sencilla. ctcms.nist.gov/fipy/
  • 18. PyConES 18 24/11/2013 cacheme.org FiPy: Ejemplo • Ejemplo de resolución de un problema de difusión en estado estacionario pero con una geometría circular y FiPy. • Mallado P3 C1 C2 P1 P2 P4 C3 C4 P5 cacheme.org
  • 19. PyConES 24/11/2013 19 cacheme.org FiPy: Ejemplo Usando la malla construimos las variables de las celdas Representar la malla Coeficiente de difusión Condiciones de contorno Resolución Representación (ejecutado en un script)
  • 20. cacheme.org • Jorge Bernabé • Ingeniero Químico • Universidad de Alicante jorge.bernabe@cacheme.org 2. Programación matemática (optimización)
  • 21. Programación matemática cacheme.org Optimización: ¿por qué es importante? • Mejorar calidad de un producto • Aumentar beneficios • Reducir riesgos ambientales • Reducir costes de producción Interés empresarial IQ: - selección de equipos y recursos - gestión logística (cc) Sam Derbyshire
  • 22. Optimización con Python en IQ cacheme.org • Optimización matemática – min f(x) – s.a g(x) = 0 h(x) ≤ 0 • LP, NLP, MILP, MINLP FO (c) Sriram Sankaranarayanan
  • 23. AML (Algebraic modelling languages) Software propietario: ● AMPL (www.ampl.com) – Lenguaje sencillo, pero complicado interactuar – ● ● GLPK – Alternativa libre a AMPL para LP y MILP GAMS (www.gams.com) – Se comunica con solvers incluso para resolver MINP AIMMS (www.aiims.com) – Diseñado para resolver problemas de optimización a gran escala y programación de actividades. cacheme.org
  • 24. Optimización en Python ● cacheme.org Free/Open source: – CVXOPT – M.Andersen, J.Dahl, L.Vandenberghe Notación matricial. Optimización convexa – PuLP – Trabaja con lenguaje Python. Muy buenos resultados para LP o MIP. No resuelve NLP – OpenOpt – Más de 30 solvers para solucionar el modelado, incluyendo NLP – Pyomo – Coopr. (Sandia National Laboratories, USA) Permite la formulación de modelos algebraicos en el lenguaje de programación en Python. COmmon Optimization Python Repository
  • 25. ¿Por qué Pyomo? cacheme.org • Se comunica directamente los principales solvers de AMPL, GLPK, Gurobi, CPLEX, CBC y PICO. • Programación en Python tipo AMPL/GAMS • Open source (COIN-OR) • Pyomo (Coopr) es un paquete gratuito con licencia BSD, maduro y bien documentado (en migración a Python 3.x) • Fácil instalación “pip install coopr” • Adaptabilidad a modelado de problemas de IQ coin-or.org
  • 26. Problema I: Logística empresarial cacheme.org • Problema clásico en optimización • LP Se puede resolver con cualquier herramienta • Fundamental en el mundo empresarial • Minimización de coste en transporte
  • 27. Problema I: Logística empresarial cacheme.org
  • 28. Problema I: Logística empresarial • Plantas • Mercados cacheme.org producción máxima demanda mínima • Coste de transporte por unidad: Alicante Castellón Vitoria Cádiz Cáceres PRODUCCIÓN Madrid 4.17 4.10 3.48 6.37 2.96 250 Barcelona 5.16 2.69 5.35 11.14 9.10 200 Almería 2.95 5.42 9.10 3.80 6.47 300 La Coruña 10.26 10.19 6.56 10.65 6.85 300 DEMANDA 150 150 100 150 175 -
  • 29. Problema I: Logística empresarial • Sentencia para importar pyomo • Sentencia para definir el modelo, abstracto o concreto cacheme.org
  • 30. Problema I: Logística empresarial • Definición de sets – series de datos • Definición de parámetros – valores de los sets • Definición de variables cacheme.org Sus valores en archivo .dat
  • 31. Problema I: Logística empresarial cacheme.org • Definición de ecuaciones: def Nombre_Ecuación (modelo y variables de las que depende) • return: se escribe la ecuación • Modelo.nombre: va a mostrar el valor de la ecuación al ejecutar el programa
  • 32. Problema I: Logística empresarial • Definición de restricciones: Constraint (indica que la palabra mercado se refiere a model.mercados) cacheme.org
  • 33. Problema I: Logística empresarial cacheme.org
  • 34. Problema I: Logística empresarial pyomo archivo.py datos.dat cacheme.org
  • 35. Problema I: Logística empresarial cacheme.org
  • 37. Problema II: Selección de equipos cacheme.org A • B Superestructura (incluye todas las posibilidades) C
  • 38. Problema II: Selección de equipos Aumento beneficio Disminución beneficio A B C Coste uso reactor • Objetivo: Seleccionar la óptima distribución de reactores y bypass que aumentan el beneficio cacheme.org
  • 39. Problema II: Selección de equipos cacheme.org AS = AE exp( − τ ) BS = ( AEτ + BE ) exp( − τ  Cf + CV1 AE Si Coste =  1  Cf 2 + CV2 AE Si ) 0 ≤ AE ≤ 7 7 ≤ AE ≤ 10   τ (h) Cf1 (um/h) Cf2 (um/h) CV1 (um/kmol) CV2 (um/kmol) Reactor 1 0.1 10 5 1 8 Reactor 2 0.4 20 10 2 10 Reactor 3 0.4 50 25 1 9 Reactor 4 0.2 20 10 1 50 Reactor 5 0.7 60 30 2 70 Reactor 6 0.2 10 20 1 10 Reactor 7 0.9 50 25 3 15 Reactor 8 0.5 100 50 5 10
  • 40. Problema II: Selección de equipos cacheme.org • Toma de decisiones – MILP • Resolución de la parte disyuntiva del problema mediante la reformulación de la envolvente convexa • Disgregación de variables YRi         ¬ YRi  Wi,c1 Wi,c2         Ci = Cf i + CVi ·E i, A  ∨  C i = Cf i + CVi ·E i, A   ∨  C i = 0     7 ≤ E i, A ≤ 10    Si, j = 0 0 ≤ E i, A ≤ 7           y i = wi ,c1 + wi ,c 2
  • 41. Problema II: Selección de equipos cacheme.org • Disyunciones para el bypass by b    BY ≤ 10  ∨  b, j   ¬ by b  BY =  b, j  0  • Balances de materia F j = E1, j + E 2 , j + BY1, j y1 + y2 + by1 = 1
  • 42. Problema II: Selección de equipos cacheme.org
  • 43. Problema II: Selección de equipos cacheme.org • within = NonNegativeReals – Valores reales no negativos • within = Binary – Valores binarios
  • 44. Problema II: Selección de equipos cacheme.org • Por defecto, pyomo, minimiza la FO. Para maximizar, se escribe sense = maximize
  • 45. Problema II: Selección de equipos cacheme.org
  • 46. Problema II: Selección de equipos cacheme.org
  • 47. Problema II: Selección de equipos cacheme.org
  • 48. Problema II: Selección de equipos cacheme.org
  • 49. Problema II: Selección de equipos cacheme.org
  • 50. Problema II: Selección de equipos cacheme.org • ● Solución óptima: Superestructura:
  • 51. cacheme.org • Isaías Cuenca • Ingeniero Químico • Universidad de Alicante isais.cuenca@cacheme.org 3. Diseño de reactores en la industria de procesos químicos
  • 52. 3.1. Reactor Flujo Pistón cacheme.org • Craqueo térmico del etano. • Tubos horizontales en el interior de un horno de llama. • Quemadores a ambos lados de los tubos. • Se considera la variación de presión a lo largo del reactor. • Sistema ODE, 8 compuestos, T y P
  • 53. 3.1. Reactor Flujo Pistón cacheme.org
  • 54. 3.1. Reactor Flujo Pistón cacheme.org
  • 55. 3.1. Reactor Flujo Pistón cacheme.org
  • 56. 3.1. Reactor Flujo Pistón cacheme.org
  • 57. 3. 2. Reactor Continuo Tanque Agitado cacheme.org • Propilenglicol (IUPAC: propano-1,2-diol) • Compuesto orgánico inodoro, incoloro e insípido • Líquido aceitoso claro, higroscópico y miscible con agua, acetona, y cloroformo. • Utilizado en una amplia gama de productos de consumo, incluidos los alimentos, piensos, cosméticos y productos farmacéuticos, así como las aplicaciones industriales. • Producción mundial: 900 000 t /año (Fuente: Ullmanns’s) • Producido típicamente en dos calidades • Calidad industrial • Calidad USP/EP •
  • 58. 3. 2. Reactor Continuo Tanque Agitado cacheme.org
  • 59. 3. 2. Reactor Continuo Tanque Agitado Variable Descripción Valor FA0 Flujo molar de entrada de óxido de propileno (kmol/h) 36.3 FB0 Flujo molar de entrada de agua y ácido sulfúrico (kmol/h) 453.6 6FM0 Flujo molar de entrada de metanol (kmol/h) 45.4 Q0 Caudal volumétrico de entrada (m3/h) 12.5 cacheme.org
  • 60. 3. 2. Reactor Continuo Tanque Agitado Balance de Materia Balance de Energía Estado estacionario Arranque del reactor cacheme.org
  • 61. 3. 2. Reactor Continuo Tanque Agitado cacheme.org
  • 62. La Industria Química en España cacheme.org • 13% PIB Industrial • 5º Europa y 8º Mundial • 2º mayor exportación solo superado por la automoción • Fuente: American Institute of Chemical Engineers (AICHE) 2012
  • 63. La Industria Química en España • 239.300 empleo • Ocupación especializada y cualificada • Una de ellas, técnico en química computacional cacheme.org
  • 64. Conclusiones cacheme.org • Python junto a sus librerías permite la resolución de problemas típicos de ingeniería y todo ello en un mismo lenguaje-entorno. • Python permite centrarse en el algoritmo y no en la sintaxis del lenguaje. Es la navaja suiza de los lenguajes permitiendo pasar a C en cualquier momento que se necesite. • Es multiplataforma, libre y gratuito por lo que su adopción en universidades y empresa es sencilla • Si se quiere una herramienta lo más compatible con MATLAB, Octave UPM es otra opción interesante pero mantendrá sus mismas capacidades (y limitaciones) técnicas. • Python es posiblemente la mejor opción como primer lenguaje de programación en el ámbito de programación científica.