8
UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA QUÍMICA “Algoritmo de cálculo, reacción del acido bromhídrico en Scilab” Curso: Cinética y Reactores Químicos Integrantes: Fabian Castro Valenzuela Daniela Cerro Muñoz Rodrigo Flores Riquelme Carolina Morales Contreras Profesor: Leandro Herrera Fecha de Entrega: 26 de octubre de 2012

tarea_scilab

Embed Size (px)

Citation preview

Page 1: tarea_scilab

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA QUÍMICA

“Algoritmo de cálculo, reacción del acido bromhídrico en Scilab” Curso: Cinética y Reactores Químicos Integrantes: Fabian Castro Valenzuela Daniela Cerro Muñoz Rodrigo Flores Riquelme Carolina Morales Contreras Profesor: Leandro Herrera Fecha de Entrega: 26 de octubre de 2012

Page 2: tarea_scilab

SCILAB es un programa desarrollado de forma a disponer en un sólo ambiente herramientas de cálculo numérico, programación y gráficos. El mismo fue desarrollado por el INRIA (Institut Nationale de Recherche en Informatique et en Automatique) y el ENPC (Ecole Nationale des Ponts et Chaussées) de Francia. Es similar a MATLAB y otros programas de cálculo numérico. Puede ser utilizado en una variedad de sistemas operativos tales como UNIX, Windows, Linux, etc. A partir de Mayo de 2003, el programa pasa a ser mantenido por un conjunto de instituciones y empresas francesas denominado Consorcio SCILAB. Los objetivos principales del mismo son: • Organizar la cooperación e intercambio entre los desarrolladores de SCILAB, con vistas a incorporar dentro del programa los últimos avances científicos en el área de computación numérica; • Organizar la cooperación e intercambio entre usuarios de SCILAB de forma a que el programa pueda ser utilizado en forma efectiva en la industria, educación e investigación. Desde el punto de vista del usuario, SCILAB presenta algunas ventajas tales como: • Disponibilidad de la última versión vía Internet; • El programa puede ser utilizado, copiado y distribuido en forma legal; • Los resultados obtenidos pueden ser divulgados sin restricción; • Se tiene acceso al código fuente; • La certeza de estar participando de una comunidad cuyo principal objetivo es la difusión irrestricta del conocimiento. SCILAB es un ambiente de programación flexible cuyas principales características y prestaciones son: • Programación con lenguaje simple y fácilmente asimilable; • Posee capacidades de generación de gráficos en dos y tres dimensiones; • Permite operaciones diversas operaciones matriciales; • Permite operaciones con polinomios y funciones de transferencia; • Permite la resolución de sistemas de ecuaciones lineales y ecuaciones diferenciales; • Posibilita al usuario la creación y definición de funciones propias; • Soporta la creación y utilización de conjuntos de funciones destinadas a aplicaciones específicas denominados “Toolboxes”, por ejemplo: Control, Optimización, Redes Neurales, etc.

Page 3: tarea_scilab

Herramientas utilizadas: Resolución de Ecuaciones Diferenciales Ordinarias • SCILAB permite obtener soluciones numéricas a problemas de valor inicial de la forma: dy/dx = f(x,y), dada la condición inicial ( x0,y0). El comando a ser utilizado es: --> [y] = ode([type],y0,x0,x,f) Donde: Type: argumento opcional que indica el método de resolución y puede ser ‘adams’ (Adams), ‘rk’ (Runge-Kutta), ‘rkf’ (Runge-Kutta modificado), ‘fix’, ‘discrete’, ‘roots’ y0: vector conteniendo las condiciones iniciales x0: valor inicial de la variable independiente x: vector que contiene los valores de la variable independiente para los cuales la solución es calculada f: definición de la función a ser integrada Programación • Lazo FOR: for índice = valor_inicial : incremento : valor_final <comandos o instrucciones> end Función Plot Esta es la función clave de todos los gráficos 2-D en Scilab. Ya se ha dicho que el elemento básico de los gráficos bidimensionales es el vector. Se utilizan también cadenas de 1, 2 ó 3 caracteres para indicar colores y tipos de línea. La función plot(), en sus diversas variantes, no hace otra cosa que dibujar vectores. El resultado de este comando es que se abre una ventana. Por defecto, los distintos puntos del gráfico se unen con una línea continua. También por defecto, el color que se utiliza para la primera línea es el azul. Cuando a la función plot() se le pasa un único vector –real– como argumento, dicha función dibuja en ordenadas el valor de los n elementos del vector frente a los índices 1, 2, ... n del

Page 4: tarea_scilab

mismo en abscisas. Más adelante se verá que si el vector es complejo, el funcionamiento es bastante diferente. Para gráficos simples en 2 dimensiones (2-D): --> plot(x,y, "título_eje_x","título_eje_y","título_del_gráfico") Referencias Bibliográficas Paginas web: • SCILAB Group, “Introduction to SCILAB - User’s Guide”. Referencia preparada por el Grupo de Soporte de SCILAB y disponible en el siguiente sitio web: http://scilabsoft.inria.fr/doc/intro/index..html • Gilberto E. Urroz, “SCILAB”, materiales disponibles en: http://www.engineering.usu.edu/cee/faculty/gurro/Scilab.html • Paulo Sérgio da Motta Pires, “Introdução ao SCILAB”, Dpto. de Engenharia de Computação e Automação, Universidade Federal do Rio Grande do Norte, Natal, Brasil.

Page 5: tarea_scilab

Algoritmo de calculo //Reacción H2 + Br2 --> 2HBr // clear // function [deri]=HBr(t, y) // global k deri=zeros(3,1) deri(3)=k(1)*sqrt(y(1)*y(2))*y(2)/(k(2)*y(3));// y(3)=HBr deri(2)=-deri(3)/2; // y(2)=Br2 deri(1)=-deri(3)/2; // y(1)=H2 // endfunction // k=[0.5 0.1]; // son las constantes cinéticas ruido=.0; // no va a haber ruido // yinicial=[20 10 0.01];// Son valores iniciales de H2, Br2 y HBr y0=yinicial; t0=0; // Se va a integrar desde tiempo cero tf=10; // hasta tiempo tf nptos=30; paso=tf/nptos; // cantidad de pasos // yp(1,:)=yinicial; // expresado en vector tp=t0;// tiempo for i=1:nptos t=t0+paso; y=ode(y0,t0,t,HBr); // Se integra for j=1:3 yp(i+1,j)=y(j)*(1+ruido*(0.5-rand())); end tp(i+1)=t; t0=t; y0=y; end plot2d([tp tp tp],yp) // Gráfico //

Page 6: tarea_scilab

Casos de simulación: 1. Concentraciones iniciales de H2, Br2 y HBr de 20 , 10 y 0.01 respectivamente

En el primer caso la concentración de H2 es mayor que Br2, además HBr casi nula. Se va a producir HBr hasta que el reactivo limitante se agote (H2) 2. Concentraciones iniciales de H2, Br2 y HBr de 10, 10 y 0.01 respectivamente.

En el tercer caso la concentraciones son HBr>H2>Br2 este ultimo es le reactivo limitante. Se producirá acido bromhídrico.

Page 7: tarea_scilab

3. Concentraciones iniciales de H2, Br2 y HBr de 4, 2 y 10 respectivamente.

Análisis de los casos simulados: En el segundo caso la concentración de H2 es igual que Br2, HBr también es casi nulo. Se va a generar HBr hasta que los dos reactivos se acaben. *Consideraciones del Análisis. 1- El algoritmo no está diseñado para representar concentraciones de h2 superiores a las de br2

2. Las constantes cinéticas ”K” son las mismas en los casos analizados. 2 – la función plot no puede determinarse para concentración inicial de acido bromhídrico igual a cero