Categorías
MATLAB Octave tutorial

Curso de introducción a Octave-MATLAB para ingenieros químicos (2ª ed.)

Volvemos este año con la segunda edición del curso gratuito de Octave / MATLAB para ingeniería química. De nuevo, la motivación de este curso es mostrar a los estudiantes una alternativa, libre, gratuita y factible a MATLAB que puedan utilizar una vez comience su vida profesional. Para ello se resolverán diversos problemas, con especial atención al diseño de reactores químicos, un área de conocimiento que requiere del uso de métodos numéricos para su simulación, sin olvidar otros campos de interés.

Horarios y aulas:

  • Lunes 27 de octubre de 15:30 a 18:00 h en el laboratorio L18 (Ed. Poli. I)
  • Martes 28 de octubre de 15:30 a 18:00 h en el aula A3/INF2 del Aulario III
  • Miércoles 29 de octubre de 15:30 a 18:00 h en el laboratorio L17  (Ed. Poli. I)
  • Jueves 30 de octubre de 15:30 a 18:00 h en el laboratorio L17 (Ed. Poli. I)

¿Por qué GNU Otave y no MATLAB?

  • Es altamente compatible y similar a MATLAB, siendo esta última la opción con la que se imparten los cursos de programación a los estudiantes de grado pero que tiene un coste de 69 € para estudiantes y de ~15000 €si lo quieren utilizar en su vida profesional
  • Es software libre y 100% gratuito, disponible para Windows y Linux
  • Octave UPM, por ejemplo, es una adaptación de GNU Octave que se emplea para la docencia de Informática en la Escuela de Ingenieros de Caminos, Canales y Puertos de la UPM y ha sido desarrollado por el Dr. Israel Herraiz
Entorno de programación (similar a MATLAB)
Entorno de programación de Octave UPM (similar a MATLAB)

Actualización: La nueva versión de GNU Octave ya incorpora interfaz gráfica (descargar para Windows)

El curso es gratuito y de acceso libre, todo el material utilizado durante el mismo será también publicado para aquellos que no puedan asistir. No obstante, recomendamos este curso ya que su intención es más práctica que teórica y además estaremos a vuestra disposición para ayudaros a encontrar fallos en vuestros scripts así como resolver dudas puntuales que tengáis. Recomendamos que vengáis con vuestro portátil para poder trabajar siempre que queráis con Octave UPM en vuestro ordenador.

¿Por dónde empezar?

Los requisitos del curso serán tener conocimientos básicos de programación y de reactores químicos. Para el que quiera ir repasando:

Temario:

El temario del curso se dividirá en 4 sesiones de 2,5 horas cada una y se adaptará con la respuesta de los asistentes:

  • Sesión I (2,5 h):
    • Introducción a Octave UPM
      • Buenas prácticas de programación
      • Repaso: Operaciones y comandos básicos de Matlab-Octave
      • Resolución de ecuaciones diferenciales ordinarias

      • Sesión II (2,5 h):
        • Modelado y simulación de RDTAs mediante ejemplos ordenados de menor a mayor grado de dificultad:
          • Llenado de un tanque.
          • Llenado de un tanque con aporte de calor
          • RDTA y reacciones en serie (isotermo)
          • Modelado de un RDTA no isotermo

    • Sesión III (2,5 h):
      • Modelado y simulación de RFPs mediante ejemplos de complejidad progresiva
      • Reacción en fase gas sobre catalizador de óxido de aluminio
      • Craqueo de acetona
      • Craqueo térmico de hidrocarburos (incluyendo balances de materia, energía y cantidad de movimiento).

  • Sesión IV (2,5 h):
    • Introducción a aplicaciones de Octave/Matlab en Ingeniería Biomédica: modelo epidemiológico, tratamiento de imágenes médicas, ayuda al diagnóstico médico, modelización y simulación de sistemas fisiológicos.
    • Resolución de un problema con sucesión de varios reactores RFP en serie
    • Modelado y simulación de la puesta en marcha de un RCTA (comportamiento dinámico)

¿Cómo podrían afectar los recortes a la propagación del virus del Ébola?

ebola-simulacion-CAChemE

 

function main
% Modelo simple SEIR epidemiológico
% del virus del Ébola
% Oct. 2014 - CAChemE.org


% Condiciones iniciales

N = 100; % Población total

y0 = [N, 1, 0, 0, 0]; % [S, E, I, R, D]

% Discretización de la variable independiente

tiempo_simulacion = 350; % días
t  = [0, tiempo_simulacion];

% Llamamos al ode para resolver las eq. diferenciales   
[t,y] = ode45(@DiffEqs, t, y0);


function dydt =  DiffEqs(t,y)
  %Modelo simple epidemiológico para la
  % propagación del virus del Ébola

  % Recuperamos las variables dependientes de entrada
  S = y(1);
  E = y(2);
  I = y(3);
  R = y(4);
  D = y(5);

  Nn = S + E + I + R; % Total de personas vivas

  
  %---------------------------------------------------------------
  % Constantes del modelo
  %---------------------------------------------------------------

  sigma = 1./9; %  Velocidad de convertirse en contagioso una vez expuesto
  gamma_factor = 1./8.5; % Velocidad de recuperación o fallecimiento
  f = 0.4; % Fracción de gente que no supera la enfermedad (40%)

  % A mayor nº de recortes, mayor nº de personas contagiadas por infectado
  recortes_sanidad = 1.4;

  R_0 = recortes_sanidad;

  beta_factor = R_0*gamma_factor; % Velocidad con la que se propaga la infec.

  % Definimos las ecuaciones diferenciales
  dSdt = -beta_factor*(S/Nn)*I;
  dEdt = +beta_factor*(S/Nn)*I - sigma*E;
  dIdt = sigma*E - gamma_factor*I;
  dRdt = (1.0-f)*gamma_factor*I;
  dDdt = f*gamma_factor*I;
  dydt =  [dSdt, dEdt, dIdt, dRdt, dDdt]';

end


% Obtenemos y nombramos las variables dependientes de salida del ode45
S = y(:,1); %  S es el nº de personas sin infectar
E = y(:,2); %  E es el nº de portadores del virus no contagiosos (aún)
I = y(:,3); %  I es el nº de personas sintomáticas e infecciosas
R = y(:,4); %  R es el nº de personas recuperadas
Ds = y(:,5); %  D es el nº de personas fallecidas

% Creamos la figura para representar los resultados
figure(1)

% Representamos las curvas de evolución con respecto al tiempo
plot(t, [(E + I), I, R, Ds, S])


% Añadimos leyenda a los datos
legend('% infectados', ...
      '% infectados contagiosos', ...
      '% recuperados', ...
      '% fallecidos', ...
      '% población sana ')

title('Variación de la velocidad de propagación del virus del ebola.')
xlabel('tiempo / días')
ylabel('porcentaje de población')

end

 

 

Instructor: Sergio Quesada


El curso será impartido por Sergio Quesada Dorigné, Ingeniero Químico por la Universidad de Alicante e Ingeniero Biomédico por la Universidad Politécnica de Valencia y la Universidad de Valencia.

 

 

¿A quién va orientado este curso?

Si bien el curso está orientado a alumnos de grado de 3º de Ingeniería Química (de ahí el horario de tarde que se ha seleccionado), en el curso se hará una introducción a la programación con Octave / MATLAB por ordenador. Si eres estudiante de otro año y no tienes problemas con las clases ¡eres más que bienvenido/a!. Si, por el contrario, te hubiera gustado asistir pero el horario del curso es incompatible con el tuyo, háznoslo saber con un comentario.

CAChemE entregará certificados de asistencia a quienes lo soliciten y cumplan con los requisitos (asistencia mínima al 80 % de horas). No obstante, este curso no es convalidable por créditos de libre configuración.

¿Por qué es gratuito?

Este curso es posible gracias a la financiación del la Escuela Politécnica Superior de la Universidad de Alicante. Si te interesan este tipo de cursos de formación de ingeniería química por ordenador, házselo saber al delegado de tu curso para presentar una solicitud por la vía correspondiente.

Aprende más sobre Ingeniería de Procesos Químicos por ordenador

Suscríbete a nuestro canal de YouTube o síguenos en Facebook o Twitter.

 

Por CAChemE

CAChemE es una comunidad formada por ingenieros químicos y estudiantes que pretende estimular las posibilidades de software en la ingeniería de procesos química y organización industrial. Nuestro objetivo es fomentar el uso de las nuevas posibilidades que ofrece el software de libre con su más directa aplicación a la universidad e industria.