Você está na página 1de 50

Instituto Tecnol

ogico de Veracruz

Curso:
on de MATLABr
Aplicaci a la Ingeniera
Qumica

Instructor:
M.C. Lluvia Marisol Ochoa Estopier

Veracruz, Veracruz, Mexico. Agosto del 2008


INDICE

Indice

on a MATLABr
1. Introducci 2

1.1. Que es MATLABr ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2. Interfase de MATLABr . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3. Operaciones basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Soluci
on de ecuaciones lineales 7

3. Ajuste de curvas 10

4. An
alisis estadstico 16

5. Operaciones con vectores y matrices: construcci


on de modelos 21

6. Determinaci
on de las races de un polinomio 27

7. Soluci
on de Ecuaciones Diferenciales Ordinarias 29

7.1. Una sola ODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

7.2. Un sistema de ODEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

8. Soluci
on de Ecuaciones No Lineales 34

9. Soluci
on de Ecuaciones Diferenciales Parciales 38

10.Control de procesos y Simulink 43

Referencias 46

M.C. Lluvia M. Ochoa Estopier i Aplicacion de MATLAB a la I. Q.


INDICE DE FIGURAS

Indice de figuras

1. Interfase MATLABr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Ejemplo uno en el Editor . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Ejemplo uno en el Command Window . . . . . . . . . . . . . . . . . . 6

4. Informacion para el Ejemplo 2.2. . . . . . . . . . . . . . . . . . . . . . 7

5. Ejemplo de un sistema que contiene corrientes de recirculacion y desviacion 9

6. Interfase de carga de datos. . . . . . . . . . . . . . . . . . . . . . . . . 13

7. Interfase de las propiedades de ajuste de curvas, Ecuacion 3. . . . . . . 14

8. Interfase de las propiedades de ajuste de curvas, Ecuacion 4. . . . . . . 15

9. Resultados del Ejemplo 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 18

10. Resultados del Ejemplo 4.2, inciso d. . . . . . . . . . . . . . . . . . . . 20

11. Resultados del Ejemplo 5.1. . . . . . . . . . . . . . . . . . . . . . . . . 22

12. Absorcion en una pelcula descendente. . . . . . . . . . . . . . . . . . . 23

13. Resultados del Ejemplo 5.2. . . . . . . . . . . . . . . . . . . . . . . . . 24

14. Resultados del Ejemplo 5.3. . . . . . . . . . . . . . . . . . . . . . . . . 26

15. Resultados de la Ecuacion 13 para la arcilla. . . . . . . . . . . . . . . . 26

16. Resultados del Ejemplo 7.2. . . . . . . . . . . . . . . . . . . . . . . . . 31

17. Resultados del Ejemplo 7.3. . . . . . . . . . . . . . . . . . . . . . . . . 33

18. Resultados del Ejemplo 8.1. . . . . . . . . . . . . . . . . . . . . . . . . 35

19. Aleta de enfriamiento rectangular. . . . . . . . . . . . . . . . . . . . . . 39

20. Interfase del Partial Differential Equation Toolbox. . . . . . . . . . . . . 40

21. Interfase del Partial Differential Equation Toolbox. . . . . . . . . . . . . 40

M.C. Lluvia M. Ochoa Estopier ii Aplicacion de MATLAB a la I. Q.


INDICE DE TABLAS

22. Interfase del Partial Differential Equation Toolbox. . . . . . . . . . . . . 41

23. Resultados del Ejemplo 9.1. . . . . . . . . . . . . . . . . . . . . . . . . 41

24. Resultados del Ejemplo 9.1. . . . . . . . . . . . . . . . . . . . . . . . . 42

25. Columna de destilacion metanol-agua. . . . . . . . . . . . . . . . . . . 43

26. Resultados del Ejemplo 10.1. . . . . . . . . . . . . . . . . . . . . . . . . 44

27. Sistema con un controlador PID. . . . . . . . . . . . . . . . . . . . . . 45

28. Sistema Ejemplo 10.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

29. Resultados del Ejemplo 10.2. . . . . . . . . . . . . . . . . . . . . . . . . 45

Indice de tablas

1. Datos adicionales para el modelo. . . . . . . . . . . . . . . . . . . . . . 11

2. Recuento de bacterias en cargamentos de leche. . . . . . . . . . . . . . 16

3. Precios un galon de gasolina (centavos de dolar), a


no de 1993. . . . . . 17

M.C. Lluvia M. Ochoa Estopier iii Aplicacion de MATLAB a la I. Q.


En este texto se trata de explicar brevemente algunas de las funciones mas importantes
de MATLABr y se presentan operaciones basicas que se utilizan frecuentemente en la
Ingeniera Qumica. El valor de esta herramienta consiste en la existencia de los Toolbox
que estan creados para resolver facilmente problemas complicados, como la solucion de
un conjunto de Ecuaciones Diferenciales Ordinarias (ODEs), Ecuaciones Diferenciales
Parciales (EDP), solucion de un sistema de Ecuaciones No Lineales (ENLs), control
avanzado de procesos, reconocimiento de imagenes, etc. y manejar gran cantidad de
informacion. Tratar de hacer un manual que explique todas las funciones que se uti-
lizaran durante el curso es muy complicado, no obstante, la ayuda de MATLABr es
de facil acceso y ademas se cuenta con gran cantidad de informacion disponible en
internet. Durante el curso se cubrira el manejo de los programas relativos a los temas
de Ingeniera Qumica, el dominio y aprendizaje de estos y mas programas depen-
dera totalmente del interesado.
A MATLABr
1 INTRODUCCION

1. on a MATLABr
Introducci

1.1. e es MATLABr ?
Qu

MATLABr es un lenguaje de computacion de alto rendimiento enfocado a la in-


geniera. Integra la computacion, visualizacion y programacion en un ambiente facil
de manejar en el cual los problemas y sus soluciones se expresan en una notacion
matematica sencilla. Sus usos tpicos incluyen:

Matematicas y computacion

Desarrollo de algoritmos

Adquisicion de datos

Modelamiento, simulacion y realizacion de prototipos

Analisis de datos, exploracion y visualizacion

Realizacion de graficos cientficos e ingenieriles

Desarrollo aplicado, incluyendo la construccion de interfases de usuario y nuevas


funciones

MATLABr es un sistema interactivo cuyo elemento basico es un arreglo vectorial o


matricial que no necesita dimensionamiento 1 . Esto permite al usuario resolver gran
variedad de problemas computacionales, especialmente aquellos formulados en forma
matricial y vectorial, en una fraccion de tiempo mucho menor al que tomara escribir
un programa en un lenguaje no interactivo y no escalar, tal como C o FORTRAN.

El nombre MATLABr proviene de la frase matrix laboratory. Su uso actual a


nivel universitario incluye cursos avanzados de matematicas, ingeniera y ciencia. En
la industria, por su parte, representa la herramienta por excelencia en la investigacion,
desarrollo y analisis de la alta productividad.

MATLABr comprende familias de algoritmos enfocadas a areas especficas, dichas


familias se llaman Toolboxes. Una caracterstica importante de los toolboxes es la opor-
tunidad de aprender y aplicar tecnologa especializada. En este orden, un toolbox es
una coleccion de funciones (archivos .m) creadas en el lenguaje de MATLABr y en-
focadas para resolver problemas particulares de una area de conocimiento especfica.
Actualmente los toolboxes incluyen el procesamiento de imagenes, ecuaciones diferen-
ciales parciales, optimizacion, redes neuronales, logica difusa, simulacion, entre otros.
1
Dimensionar es especificar de antemano el n
umero de columnas y renglones que forman un arreglo
vectorial de alguna variable

M.C. Lluvia M. Ochoa Estopier 2 Aplicacion de MATLAB a la I. Q.


A MATLABr
1 INTRODUCCION

1.2. Interfase de MATLABr

Una vez que hayan instalado el programa y puedan accesar a el, encontraran la si-
guiente configuracion (o parecida):

Figura 1: Interfase MATLABr

En esta figura estan resaltadas cinco ventanas que tienen diferente funcion:

Command Window. Es una ventana de comandos, como su nombre lo indica,


en esta ventana se pueden realizar operaciones matematicas, graficar, etc., su
funcion es analoga al uso de una calculadora.

Editor. En esta ventana se pueden guardar los comandos en un archivo con


extension .m y se pueden editar y modificar un numero indeterminado de veces.
Su funcion es equivalente a la ventana de programacion de una calculadora. Para
ver esta ventana es necesario ir al men u File/New/M-File.

Current Directory. Es la carpeta en la que se esta trabajando, en el caso de


archivos de programacion (en el Editor), la carpeta en la que se guardan dichos
archivos.

M.C. Lluvia M. Ochoa Estopier 3 Aplicacion de MATLAB a la I. Q.


A MATLABr
1 INTRODUCCION

Workspace. Es una seccion en el que se muestra y almacena el valor de todas las


variables que se han creado hasta el momento.

Command History. Es un historial de todas las instrucciones que se le ha dado


al programa hasta el momento.

Pueden realizarse las mismas funciones tanto en el Command Window como en el


Editor. El Command Window es mas recomendable para operaciones sencillas mientras
que el Editor es mas apropiado cuando es necesario realizar una secuencia larga de
operaciones para resolver un problema.

1.3. Operaciones b
asicas

En la siguiente tabla se muestran algunas de las operaciones aritmeticas que se uti-


lizaran frecuentemente en este curso:

Operacion Comando
Suma, resta +, -
Multiplicacion *
Division /
Exponente

Las funciones trigonometricas, por su parte, se escriben como sin, cos, tan, etc.,
para el seno, coseno, tangente, respectivamente. La funcion exponencial se escribe exp.

Ejemplo 1.1. Realice las siguientes operaciones en el Command Window y en el


Editor.

A = 2
B = 3
C = A+B
D = AB

E = AB
F = eB
G = 1 104
H = sen(A)

Soluci
on. Copie y pegue las siguientes lneas en el Editor:

M.C. Lluvia M. Ochoa Estopier 4 Aplicacion de MATLAB a la I. Q.


A MATLABr
1 INTRODUCCION

A=2;B=3;
C=A+B;
D=A*B;
E=A/B;
F=exp(B);
G=1 e 4;
H=sin(A);

Posteriormente guarde el archivo 2 y ejec utelo buscando en el menu Debug/Run o


bien oprimiendo F5 o tambien el boton se
nalado en la Figura 2. Los resultados deben
presentarse en la interfase de esta manera:

Figura 2: Ejemplo uno en el Editor

Note que las variables creadas en el programa se guardan en el Workspace con su


respectivo valor y que el Command Window permanece en blanco. Ahora intente lo
siguiente:

Escriba cualquiera de las variables creadas (letras de la A a la H) en el Command


Window y pulse ENTER, el valor la variable se mostrara en dicha ventana. Que
se modifica en el Command History?
2
Para hacerlo vaya a File/Save as y proporcione el nombre y ubicacion del archivo.

M.C. Lluvia M. Ochoa Estopier 5 Aplicacion de MATLAB a la I. Q.


A MATLABr
1 INTRODUCCION

Dele doble click a cualquier variable dentro del Workspace. Que ventana se abre
para mostrar dicha variable?

Escriba el comando clc en el Command Window y pulse ENTER, esto para


borrar la pantalla. En el Editor, elimine los puntos y comas de las operaciones
y reemplacelos por comas. Ejecute el programa de nuevo, que pasa ahora en el
Command Window?

Escriba el comando clear all y oprima ENTER para borrar las variables creadas
en el Workspace. Para realizar el Ejemplo 1 desde el Command Window (Figura 3)
puede pasar linea a linea las operaciones se
naladas y pulsar ENTER para realizar la
operacion. Tambien puede copiar y pegar todas las lneas al mismo tiempo y pulsar
ENTER.

Figura 3: Ejemplo uno en el Command Window

Intente las operaciones sugeridas en el listado anterior y observe los cambios reali-
zados en las ventanas.

M.C. Lluvia M. Ochoa Estopier 6 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES LINEALES
2 SOLUCION

2. Soluci
on de ecuaciones lineales

En el area de la Ingeniera Qumica se requiere resolver un sistema de ecuaciones linea-


les principalmente cuando se tratan balances de materia y energa de un proceso con
multiples corrientes y m ultiples componentes. La funcion linsolve es la encargada de
resolver este tipo de problemas, el metodo utilizado en dicha funcion es la eliminacion
Gaussiana.

Sintaxis
X = linsolve(A,B) (1)
La Ecuacion 1 resuelve el sistema lineal A X = B. El n
umero de renglones de A debe
ser igual al n
umero de renglones de B. Si A es una matriz de m n elementos y B de
m k, entonces X es una matriz de dimension n k

Sin embargo, si la matriz A es singular3 es necesario utilizar metodos iterativos de


solucion. Algunas de las funciones con las que cuenta MATLAB para resolver este tipo
de problemas son bicg, bicgstab,cgs,gmres, entre otros; la diferencia entre estas
funciones radica en el metodo numerico utilizado para su solucion.

Ejemplo 2.1. Resuelva el siguiente sistema:

3x1 + 2x2 = 1
x1 + x2 = 0

Solucion. Es facil ver que la solucion a este problema es x1 = 1 y x2 = 1, el algoritmo


creado para resolverlo es el siguiente:

A=[3,2;1,1]; B=[1;0];
X=linsolve(A,B)

1
Cuyo resultado es: X=
1

Ejemplo 2.2. Resuelva el siguiente balance de materia:


Domo
x1D=0.85

Alimentacin
132 mol/min

x1A=0.3

Fondo
x1F=0.02

Figura 4: Informacion para el Ejemplo 2.2.


3
Una matriz singular existe cuando su determinante es cero

M.C. Lluvia M. Ochoa Estopier 7 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES LINEALES
2 SOLUCION

Soluci
on. La matriz resultante es la siguiente:

1 1 D 132
=
0,85 0,02 F 132x1A

y el algoritmo:

% Ejemplo 2.2
A=[1,1;0.85,0.02]
B=[132;132*0.3]
% Soluci
on
X=linsolve(A,B)

cuyo resultado es
44,53
X=
87,47
es decir, D = 44,53 mol/min y F = 87, 47 mol/min.

Ejemplo 2.3. (Algunos datos pertenecientes al Ejemplo 6.6, Himmelblau (1996))


La Figura 5 muestra diez unidades que forman parte de una planta mayor. Las diez
ecuaciones lineales independientes que relacionan los flujos de materia de y hacia las
unidades se enumeran en la Figura. El flujo de y1 = 100,0 mol/hr, y4 = 50,0 mol/hr,
y13 = 40,0 mol/hr, y32 = 30,0 mol/hr, y9 = 140,0 mol/hr, y10 = 10,0 mol/hr.

Soluci
on. La matriz a resolver es la siguiente:

1 0 0 0 0 0 0 0 0 0 y12 y1 y13
1 1 0 0 0 0 0 0 0 0 y23 y32

0 1 1 0 0 0 0 0 0 0 y36 y13 + y32

0 0 0 1 0 0 0 0 0 0 y45 y4

0 0 0 1 1 0 0 0 0 0 y56 0
=
0 0 1 0 1 1 1 0 0 0 y67 0

0 0 0 0 0 1 0 1 1 0 y86 0

0 0 0 0 0 0 1 1 0 1 y78 0

0 0 0 0 0 0 0 0 0 1 y710 y9
0 0 0 0 0 0 0 0 1 0 y89 y10

La cual se puede reducir si se sustituye y12 = y1 y13 = 60, y23 = y12 + y23 = 90,
y36 = y13 + y23 y32 = 100, y45 = y56 = y4 = 50, y710 = y10 = 10, y89 = y9 = 140,
entonces la matriz a resolver es simplemente:

1 0 1 y67 y56 + y36 150
1 1 0 y78 = y710 = 10
0 1 1 y86 y89 140

M.C. Lluvia M. Ochoa Estopier 8 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES LINEALES
2 SOLUCION

Subsistema Balance

1 0 = y1 y12 y13
2 0 = y12 + y32 y23
3 0 = y23 y32 y36 + y13
4 0 = y4 y45
5 0 = y45 y56
6 0 = y36 + y56 + y86 y67
7 0 = y67 y78 y710
8 0 = y67 y86 y89
9 0 = y89 y9
10 0 = y710 y10

Valores conocidos
y1 , y4 , y13 , y32, y9 , y10

Figura 5: Ejemplo de un sistema que contiene corrientes de recirculacion y desviacion

De acuerdo a la sintaxis de linsolve, se trata de una matriz A de 33 elementos, un


vector X de 31 elementos y finalmente, un vector B de 31 elementos. Cabe se nalar
tambien que A es una matriz singular, entonces, se empleara un metodo iterativo. El
codigo en MATLAB es el siguiente:

% Ejemplo 2.3
% Se forma la matriz A
A=[1,0,-1;1,-1,0;0,1,-1]
% Valores de los flujos conocidos
y56=50;y36=100; y710=10;y89=140;
% Se forma la matriz B
B=[y56+y36;y710;y89];
% Soluci
on, ver ayuda para conocer la sintaxis
X=bicg(A,B)

Cuyo resultado es:


160,0
X = 150,0
10,0
Por lo tanto, el resultado es y67 = 160, y78 = 150, y86 = 10.

M.C. Lluvia M. Ochoa Estopier 9 Aplicacion de MATLAB a la I. Q.


3 AJUSTE DE CURVAS

3. Ajuste de curvas

En Ingeniera Qumica, el ajuste de curvas es com unmente utilizado en el estudio


de cineticas de reaccion, determinacion de curvas de calibracion de diversos equipos,
ajuste de datos experimentales a modelos termodinamicos, entre otros. Para estos
casos, MATLAB cuenta con un toolbox especialmente dise nado para resolver este tipo
de problemas.

El Curve Fitting Toolbox, como su nombre lo indica, es una coleccion de interfases


de usuario graficas y funciones tipo .m dise
nadas para proveer:

Procesamiento de datos.

Ajuste de curvas: mnimos cuadrados lineales y no lineales, mnimos cuadrados


ponderados, entre otros.

Extrapolacion, diferenciacion e integracion.

Informacion sobre la confiabilidad del ajuste.

El toolbox puede utilizarse de dos maneras:

Por medio de la interfase de usuario (GUI, de Graphical User Interfase).

Utilizando los comandos directamente en las ventanas programables.

Adicionalmente al toolbox de ajuste de curvas, MATLAB tambien resuelve este


tipo de problemas utilizando teora formal de optimizacion. Para ello se encuentra
el Optimization Toolbox, que resuelve problemas un poco mas complejos utilizando
algoritmos mas elaborados.

Por otra parte, si el problema es sencillo y su solucion es un problema de mnimos


cuadrados, se puede emplear la siguiente funcion:

Sintaxis
X = lsqr(A,B) (2)
cuyos argumentos son iguales a los de la Ecuacion 1

Tratar de explicar en este texto todas las funciones y propiedades relativas a este
tema va mas alla del objetivo del curso. Sin embargo, a continuacion se presentaran
algunos ejemplos de ajuste de curvas y se utilizaran algunas funciones comunes. El
lector interesado en mayor informacion sobre este tema, puede consultar el manual de
usuario del programa.

M.C. Lluvia M. Ochoa Estopier 10 Aplicacion de MATLAB a la I. Q.


3 AJUSTE DE CURVAS

Ejemplo 3.1. (Informaci on extrada del Ejemplo 3.1, Levenspiel (1998)). Boden-
stein y Linde (1906) estudiaron la reaccion H2 +Br2 = 2HBr y basandose en el analisis
de los datos experimentales encontraron que la ecuacion cinetica se representaba por
la expresion:
d [H2 ] k1 [H2 ] [Br2 ]1/2
rH2 = =
dt k2 + [HBr]/[Br2 ]
lo cual sugiere que se trata de una reaccion no elemental. Analice la cinetica de la
reaccion utilizando la informacion en la Tabla 1.

Tabla 1: Datos adicionales para el modelo.

(1) (2) (3)


Experimento [H2 ]0 [Br2 ]0 (rH2 ) 103
1 0.2250 0.2250 1.76
2 0.9000 0.9000 10.9
3 0.6750 0.6750 8.19
4 0.4500 0.4500 4.465
5 0.5637 0.2947 4.82
6 0.2881 0.1517 1.65
7 0.3103 0.5064 3.28
8 0.1552 0.2554 1.267

Soluci
on empleando la funcion lsqr. Se trata de una solucion a un problema de
mnimos cuadrados. Veamos si es posible ajustar la velocidad a una expresion de la
forma
ln (rH2 ) = ln (k) + a ln ([H2 ]) + b ln ([Br2 ])
De acuerdo con la sintaxis de las Ecuaciones 1 y 2, en este caso

X = ln (k) a b

A = I ln ([H2 ]) ln ([Br2 ])
B = ln (rH2 )

Escriba el siguiente codigo en el Editor y ejec


utelo

% Ejemplo 3.1. M
etodo de m
nimos cuadrados
% Datos de la Tabla 1
H2=[0.225;0.90;0.675;0.45;0.5637;...
0.2881;0.3103;0.1552];
Br2=[0.225;0.90;0.675;0.450;0.2947;...
0.1517;0.5064;0.2554];
mrH2=-[1.76;10.9;8.19;4.465;4.82;1.65;3.28;1.267]*1e-3;
% C
alculo de los logaritmos

M.C. Lluvia M. Ochoa Estopier 11 Aplicacion de MATLAB a la I. Q.


3 AJUSTE DE CURVAS

ln H2=log(H2);
ln Br2=log(Br2);
ln mrH2=log(-mrH2);
% Formaci
on de las matrices
A=[ones(size(ln H2)),ln H2,ln Br2];
B=ln mrH2;
% Llamada a la funci
on de solucion, Ecuaci
on 2
X = lsqr(A,B)

observe que el resultado es



4,3049
X = 0,9330
0,4588

que es semejante al valor de a = 0,93 y b = 0,46 calculado por Levenspiel (1998).

Soluci
on empleando el Curve Fitting Toolbox. Veamos si es posible ajustar la ve-
locidad a una expresion de la forma

rH2 = k [H2 ]a [Br2 ]b a+b=n

para ello se analizara la cinetica para los siguientes casos:

1. Concentraciones iniciales de H2 y Br2 iguales: determinacion del orden global


de reacci
on, n. En este caso se tomaran los primeros cuatro datos de la Tabla 1
y se ajustara a la Ecuacion 3. Un ajuste en MATLAB nos dara el resultado de
k y n.
rH2 = k [H2 ]a [Br2 ]b = k [H2 ]a+b = k [H2 ]n
ln (rH2 ) = ln (k) + n ln ([H2 ]) (3)
Paso 1. Cargue la Tabla 1 en un archivo .m de MATLAB, escriba lo siguiente
en el Editor
% Ejemplo 3.1
% Caso 1. concentraciones de H2 y Br2 iguales
% Datos 1-4 de la Tabla 1
H2=[0.225;0.90;0.675;0.45];
mrH2=-[1.76;10.9;8.19;4.465]*1e-3;
% C on 3
alculo de los logaritmos utilizados en la Ecuaci
ln H2=log(H2);
ln mrH2=log(-mrH2);
Paso 2. Mande a llamar al toolbox de ajuste de curvas, para ello teclee en el
Command Window cftool, debe aparecer la interfase del toolbox.
Paso 3. Cargue los datos a ajustar oprimiendo el boton Data situado en el
interfase. Siga las instrucciones orales del expositor (ver Figura 6).

M.C. Lluvia M. Ochoa Estopier 12 Aplicacion de MATLAB a la I. Q.


3 AJUSTE DE CURVAS

Figura 6: Interfase de carga de datos.

Paso 4. Indique el tipo de ecuacion a ajustar oprimiendo el boton Fitting situado


en el interfase. Siga las instrucciones orales del expositor.
Paso 5. La Figura 7 muestra los resultados del ajuste. En la ventana Fitting
se muestran los valores de p1 y p2, que corresponden a los valores de n y el
ln ([k]), respectivamente; tambien se puede apreciar el valor de R2 , entre otra
informacion. En la ventana Curve Fitting Tool se aprecian los datos graficados
y la curva ajustada. En resumen:

n = 1,34

que es semejante al valor de n = 1,35 calculado en Levenspiel (1998).

2. Analisis respecto a todos los datos: determinacion de a y b. En este caso se


tomaran todos los datos de la Tabla 1 y se ajustara a la Ecuacion 4. Un ajuste
en MATLAB nos dara el resultado de a y b.

rH2 [H2 ]
ln = ln (k) + a ln (4)
[Br2 ]n [Br2 ]
Paso 1. Cargue la Tabla 1 en un archivo .m de MATLAB, escriba lo siguiente
en el Editor
% Caso 2. Todos los datos de la Tabla 1
H2=[0.225;0.90;0.675;0.45;0.5637;...
0.2881;0.3103;0.1552];
Br2=[0.225;0.90;0.675;0.450;0.2947;...

M.C. Lluvia M. Ochoa Estopier 13 Aplicacion de MATLAB a la I. Q.


3 AJUSTE DE CURVAS

0.1517;0.5064;0.2554];
mrH2=-[1.76;10.9;8.19;4.465;4.82;1.65;3.28;1.267]*1e-3;
% C
alculo de los logaritmos utilizados en la Ecuaci
on 4
eje X=log(H2./Br2);
eje Y=log(-mrH2./Br2.^1.34);

Figura 7: Interfase de las propiedades de ajuste de curvas, Ecuacion 3.

Pasos 2 al 4. Siga el mismo procedimiento que en el apartado 1, simplemente


ahora cargue las variables eje X y eje Y.
Paso 5. La figura 8 muestra los resultados y el ajuste para la Ecuacion 4. En
la ventana Fitting se muestran los valores de p1 y p2, que corresponden a los
valores de a y el ln ([k]), respectivamente; tambien se puede apreciar el valor de
R2 , entre otra informacion. En la ventana Curve Fitting Tool se aprecian los
datos graficados y la curva ajustada. En resumen:

a = 0,9058 b = 0,4342

que es semejante al valor de a = 0,90 y b = 0,45 calculado por Levenspiel (1998).

M.C. Lluvia M. Ochoa Estopier 14 Aplicacion de MATLAB a la I. Q.


3 AJUSTE DE CURVAS

Figura 8: Interfase de las propiedades de ajuste de curvas, Ecuacion 4.

M.C. Lluvia M. Ochoa Estopier 15 Aplicacion de MATLAB a la I. Q.



4 ANALISIS ESTADISTICO

4. An
alisis estadstico

MATLAB cuenta con el Statistics Toolbox para el estudio de datos estadsticos de todo
tipo, provee funciones especialmente dise nadas para el analisis ademas de herramientas
para elaborar graficas interactivas. Entre los temas que abarca este toolbox se pueden
nombrar

Distribuciones de probabilidad.

Modelos lineales (ANOVA, ANOCOVA).

Modelos no lineales.

Pruebas de hipotesis.

Estadstica multivariable.

Creacion de graficos estadsticos.

Dise
no de experimentos (DOE).

En seguida se presentan ejemplos para poner en practica algunas de las funciones


del toolbox. Recuerde que no se cubriran todas las funciones con las que cuenta este
toolbox, el lector interesado puede consultar los manuales de usuario del programa.

Ejemplo 4.1.(Ejemplo extrado de MathWorks (2007c)). Los datos de la Tabla 2


representan un recuento de bacterias en cinco cargamentos de leche. Mediante un
analisis ANOVA, indique si algunos cargamentos tienen mayor cantidad de bacterias
que otros.

Tabla 2: Recuento de bacterias en cargamentos de leche.

# Muestra (1) (2) (3) (4) (5)


1 24 14 11 7 19
2 15 7 9 7 24
3 21 12 7 4 19
4 27 17 13 7 15
5 33 14 12 12 10
6 23 16 18 18 20

Solucion. Para resolver este problema se cuenta con la funcion anova1, la sintaxis
que se utilizara es4
4
Consulte MathWorks (2007c) para encontrar otras sintaxis

M.C. Lluvia M. Ochoa Estopier 16 Aplicacion de MATLAB a la I. Q.



4 ANALISIS ESTADISTICO

Sintaxis
[p,tbl,stats] = anova1(X) (5)
donde p es la probabilidad de un evento, utilizando la estadstica F como predetermi-
nada; tbl da como resultado una tabla con los resultados, stats da como resultado un
grafico con los datos analizados y X es una matriz de m n elementos, donde cada
columna n representa una muestra independiente con m observaciones mutuamente
independientes.

Paso 1. Cargue la Tabla 2 en el Workspace, para ello escriba en el Command


Window:

load hogg
hogg

Paso 2. Mande a llamar la funcion anova1, para ello escriba en el Command


Window o en el Editor la siguiente instruccion:

[p,tbl,stats] = anova1(hogg);

Paso 3. La Figura 9 muestra los resultados. En la ventana superior se encuentra


el valor de p = 0,001, el cual es muy pequeno. Este valor de p indica que el recuento
de bacterias en los diferentes cargamentos no es el mismo, recuerde que se utilizo una
distribucion F para probar la hipotesis.

En la segunda ventana de la Figura 9 se aprecian los resultados graficados. Notese


valor diferente de la media de cada cargamento, junto con su respectiva desviacion.

Ejemplo 4.2.(Ejemplo extrado de MathWorks (2007c)). En la Tabla 3 se muestran


veinte observaciones de los precios de gasolina para los meses de enero y febrero de
1993.

a) Pruebe si estos datos se ajustan a una distribucion normal.

b) Se conoce historicamente que la desviacion en el precio de la gasolina es de


cuatro centavos por galon. Pruebe la hipotesis que indica que el precio promedio de
un galon de gasolina en el mes de enero es de $1,15. Utilice una prueba Z.

c) Repita el inciso b) para el mes de febrero. Utilice una prueba t.

d) Grafique los datos de la Tabla 3

Tabla 3: Precios un galon de gasolina (centavos de dolar), a


no de 1993.

Enero 119 117 115 116 112 121 115 122 116 118
109 112 119 112 117 113 114 109 109 118
Febrero 118 115 115 122 118 121 120 122 120 113
120 123 121 109 117 117 120 116 118 125

M.C. Lluvia M. Ochoa Estopier 17 Aplicacion de MATLAB a la I. Q.



4 ANALISIS ESTADISTICO

Figura 9: Resultados del Ejemplo 4.1.

Solucion inciso a. Para resolver este tipo de problemas, el toolbox cuenta con la
funcion lillietest y la funcion jbtest. La sintaxis utilizada en la solucion es la
siguiente:

Sintaxis
H= lillietest(X) (6)
donde H es el resultado de la prueba de hipotesis y X es el vector de datos que se desea
analizar. Si H = 1 la hipotesis se rechaza (los datos no se ajustan a una distribucion
normal), si H = 0 la hipotesis se acepta. Se utiliza un 5 % de confianza como valor
predeterminado.

Paso 1. Escriba el siguiente codigo en el Command Window o en el Editor

M.C. Lluvia M. Ochoa Estopier 18 Aplicacion de MATLAB a la I. Q.



4 ANALISIS ESTADISTICO

% Ejemplo 4.2. Prueba de hip


otesis
% Se carga la Tabla 3
load gas
prices = [price1 price2];
% Inciso a--------------------------------
% An
alisis del mes de enero, Ecuaci
on 6
H=lillietest(price1)
% An
alisis del mes de febrero, Ecuaci
on 6
H2=lillietest(price2)

Paso 2. Observe en el Command Window que los resultados son

H = 0
H2 = 0

Esto indica que los datos de los dos meses se ajustan a una distribucion normal.

Solucion inciso b y c. Las funciones ztest y ttest son las encargadas de probar la
hipotesis nula utilizando una prueba Z y una prueba t, respectivamente. La sintaxis
empleada en este problema es la siguiente:

Sintaxis
[h,sig,ci]= ztest(x,m,sigma) (7)
[h,sig,ci]= ttest(x,m) (8)
donde h es el resultado de la prueba de hipotesis (si h = 1 la hipotesis se rechaza, si
h = 0 la hipotesis se acepta), sig es la probabilidad que la observacion x sea mayor que
la media m con desviacion estandar sigma y finalmente, ci es el intervalo de confianza
de la media real de x.

Paso 1. Copie y pegue las siguientes lneas en el Command Window o en el Editor.

% Inciso b -------------------------------
[ h z,pvalue z,ci z] = ztest(price1/100,1.15,0.04)
% Inciso c -------------------------------
[ h t,pvalue t,ci t ] = ttest(price2/100,1.15)

Paso 2. Observe en el Command Window que los resultados para el inciso b y c


son

hz=0 pvalue z = 0,8668 ci z = [1,1340 1,169]

ht=1 pvalue t = 4,9517 104 ci t = [1,1675 1,2025]

M.C. Lluvia M. Ochoa Estopier 19 Aplicacion de MATLAB a la I. Q.



4 ANALISIS ESTADISTICO

Para el inciso b, los resultados muestran que la hipotesis se acepta y que la suposi-
cion de $1,15 en el precio de la gasolina es aceptable. El intervalo [1,1340 1,169] con
un 95 % de confianza engloba el valor de $1,15. Para el inciso c, la hipotesis se rechaza.

Soluci
on inciso c. Copie y pegue las siguientes lneas en el Editor o en el Command
Window para obtener la Figura 10.

% Inciso d -------------------------------
boxplot(prices,1)
set(gca,XtickLabel,str2mat(
Enero,Febrero))
xlabel(Mes)
ylabel(Precios ($0.01))

125

120
Precios ($0.01)

115

110

Enero Febrero
Mes

Figura 10: Resultados del Ejemplo 4.2, inciso d.

M.C. Lluvia M. Ochoa Estopier 20 Aplicacion de MATLAB a la I. Q.


DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS

5. Operaciones con vectores y matrices: construcci


on de mo-
delos

Como ya se ha mencionado anteriormente, una de las grandes ventajas de MATLAB


es la capacidad de manipular y hacer operaciones con vectores y matrices de manera
mucho mas sencilla que con otros lenguajes de programacion (Seccion 1). En esta
Seccion se utilizaran las funciones basicas practicadas al inicio del Curso, pero aplicadas
a la representacion de algunos modelos utilizados frecuentemente en Fenomenos de
Transporte.

Ejemplo 5.1. La Ecuacion 9 es la solucion al problema de flujo de una pelcula


descendente mostrado por Bird et al. (1992) (Captulo 2, Seccion 2). Grafique dicha
Ecuacion si g 2 cos ()/2 = m/s y = 1 m.
x 2
g 2 cos ()
vz = 1 (9)
2

Solucion. Escriba las siguientes lneas en el Editor.

% Ejemplo 5.1 Flujo en una pel cula descendente


% Entrada de datos
constante=1; %m/s
delta=1; % m
%Formaci on del vector x
x=linspace(0,delta,11);
% Ecuaci on 9
Vz=constante*(ones(size(x))...
-(x.^2/delta^2));
% Formaci on del gr
afico
plot(x,Vz)
xlabel(x,(m)),ylabel(Velocidad Vz, (m/s))
title0 Perfil de velocidad para flujo de una pel
cula descendente...
en estado estacionario)

En el codigo mostrado anteriormente se pueden apreciar uso de nuevas funciones,


tal como linspace,ones, size, xlabel, ylabel y title. La Figura 11 muestra los
resultados del algoritmo.

Ejemplo 5.2. La Ecuacion 10 es la ecuacion diferencial parcial (PDE) que describe


el problema de transferencia de materia por flujo de una pelcula descendente mostrado
por Bird et al. (1992) (Captulo 17, Seccion 5) y representado en la Figura 12.

CA 2 CA
vmax = DAB (10)
z x2

M.C. Lluvia M. Ochoa Estopier 21 Aplicacion de MATLAB a la I. Q.


DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS

sujeta a:
z = 0, CA = 0
x = 0, CA = CA0
x = , CA = 0

Perfil de velocidad para flujo de una pelcula descendente en estado estacionario


1

0.9

0.8

0.7
Velocidad Vz, (m/s)

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1
x, (m)

Figura 11: Resultados del Ejemplo 5.1.

cuya solucion es:


CA x
= erf c q (11)
CA0 4DAB z
vmax

Represente la Ecuacion 11 para 0 x 1 cm, 0 z 100 cm, DAB = 1 102 cm2 /s


y vmax = 10 cm/s. Indique si dicha Ecuacion obedece las condiciones frontera.

Soluci
on. Escriba los siguientes comandos en el Editor.

% Ejemplo 5.2. Modelo de transf. de masa


% Difusion en un pelicula descendente
% Entrada de datos
L=100; %cm
B=1; %cm
Dab=1e-2; %cm2/s
vmax=10; %cm/s
% Formacion de los vectores de x y z
z=linspace(0,L,11);

M.C. Lluvia M. Ochoa Estopier 22 Aplicacion de MATLAB a la I. Q.


DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS

x=linspace(0,B,21);

% Construcci
on de la Ecuaci
on 11
for j=1:length(x)
for i=1:length(z)
CaCa0(j,i)=erfc(x(j)/sqrt(4*Dab*z(i)/vmax));
end
end

% Presentaci
on grafica de resultados
surf(z,x,CaCa0),
title(Perfil de concentraciones. Difusion en una pelicula descendente)
xlabel(longitud z (cm))
ylabel(longitud x (cm))
zlabel(C A/C A0)

Figura 12: Absorcion en una pelcula descendente.

El codigo elaborado para la solucion del problema utiliza funciones que no se han
explicado hasta el momento, estas son for-end, length, erfc, sqrt, surf y zlabel.
Se recomienda leer el manual de usuario del programa para tener una descripcion
detallada de estas funciones.

La Figura 13 representa los resultados del modelo de transferencia de masa. Observe


que se cumplen las condiciones frontera en todos los puntos.

M.C. Lluvia M. Ochoa Estopier 23 Aplicacion de MATLAB a la I. Q.


DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS

Perfil de concentraciones. Difusion en una pelicula descendente

0.8

0.6
CA/CA0

0.4

100
0.2

50
0 longitud z (cm)
1 0.8 0
0.6 0.4 0.2 0
longitud x (cm)

Figura 13: Resultados del Ejemplo 5.2.

Ejemplo 5.3. El problema de conduccion de calor unidimensional y transitorio


que se muestra en la Figura siguiente es una PDE elptica. La ecuacion diferencial
adimensional que describe el fenomeno mencionado contiene una derivada de primer
orden con respecto a una variable independiente (el tiempo), y una derivada de segundo
orden con respecto a una segunda variable independiente (Ochoa-Tapia, 2005)
T 2T
= 2
t x
sujeta a
T
t
=0 x=0
T = Tw x = l
T = T0 t = 0

x T=Tw

Condicin de
Simetra

M.C. Lluvia M. Ochoa Estopier 24 Aplicacion de MATLAB a la I. Q.


DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS

Adimensionalizando la ecuacion anterior tenemos que

u 2u
= (12)
X 2
sujeta a
u
=0 X=0
X
u=0 X=1
u= =0
donde u es la temperatura, es tiempo, X la distancia, y es una constante, todas
son variables adimensionales. La solucion analtica a la Ecuacion 12 es

X
u (, X) = an cos (n X) exp 2n (13)
n=1
sin (n )
an = n
2
+ 14 sin (2n )
(2n 1)
n = , n = 1, 2, 3, ...,
2
Represente graficamente la Ecuacion 13. Utilice las propiedades de la arcilla (k =
0,57 W/m K, CP = 0,938 kJ/kg K, = 1666 kg/m3 ), un tiempo de simulacion de
10 s, temperatura de pared Tw = 30 C, temperatura inicial T0 = 100 C.

Los valores mencionados anteriormente dan como resultado un tiempo de simu-


lacion adimensional de f = 0,3648 y = 7/3. Indique si se cumplen las condiciones
frontera.

Soluci
on. Escriba las lneas siguientes en el Editor

% Ejemplo 5.3
% Transferencia de calor en una placa simple
%---------- C
alculo de los eigenvalores----------
n=1:20;
lambda=(2*n-ones(size(n)))*(pi/2);
%---------- C
alculo de la constante a n------------
E=7/3;
a1=E*sin(lambda);
a2=0.5*lambda+0.25*sin(2*lambda);
a=a1./a2;
%---------- Formacion del malleo adimensional-------
tau total=0.001;
tau=linspace(0,tau total,21);
X=linspace(0,1,11);
%---------- C
alculo de los valores de u para toda X y tau---
for i=1:length(tau)
for j=1:length(X)
u(i,j)=sum(a.*cos(X(j)*lambda).*exp(-tau(i)*lambda.^2));

M.C. Lluvia M. Ochoa Estopier 25 Aplicacion de MATLAB a la I. Q.


DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS

end
end
%---------- Presentaci
on de resultados-------------
surf(X,tau,u)
xlabel(X)
ylabel(\tau)
zlabel(u)
La Figura 14 representa el grafico obtenido mediante el codigo anterior. La Figu-
ra 15 representa la solucion para la arcilla. Las condiciones frontera se cumplen.

2.5

1.5
u

0.5

0
0
0.2
0.4
0.6 0.4
0.8 0.3
0.2
1 0.1
0
X

Figura 14: Resultados del Ejemplo 5.3.

100

90

80
Temperatura T (C)

70

60

50

40 0

0.05
30 distancia x (m)
0 2 4 0.1
6 8 10 12
tiempo (s)

Figura 15: Resultados de la Ecuacion 13 para la arcilla.

M.C. Lluvia M. Ochoa Estopier 26 Aplicacion de MATLAB a la I. Q.


DE LAS RAICES DE UN POLINOMIO
6 DETERMINACION

6. Determinaci
on de las races de un polinomio

El problema de la determinacion de las races de un polinomio se encuentra frecuente-


mente en el area de modelado, ya sea de ecuaciones termodinamicas, identificacion de
sistemas (control), entre otros. Por ejemplo, la determinacion de Z en una ecuacion
c
ubica de estado requiere resolver las races de un polinomio de tercer orden; otro
ejemplo se encuentra en el analisis de estabilidad de un modelo de funcion de transfe-
rencia, en el cual se requieren conocer los polos (races) del denominador de la funcion
para determinar si el sistema controlado es estable o no.

MATLAB cuenta con la funcion roots para determinar las races de un polinomio,
la sintaxis es

Sintaxis
r = roots(c) (14)
donde r es un vector columna cuyos elementos son las races del polinomio, c es un
vector renglon que contiene los coeficientes del polinomio, ordenado de la potencia
mayor a la menor. Si c tiene n + 1 componentes, entonces el polinomio tiene la forma
c1 sn + . . . + cn s + cn+1 .

Ejemplo 6.1. Determine las races del polinomio s3 6s2 72s 27.

Soluci
on. Escriba las siguientes lneas en el Command Window o en el Editor

% Ejemplo 6.1
% Coeficientes del polinomio
c=[1,-6,-72,-27]
%Soluci
on
r=roots(c)

Observe que la solucion es



12,1229
r = 5,7345
0,3884

esto significa que s3 6s2 72s 27 = (s 12,1229) (s + 5,7345) (s + 0,3884).

Ejemplo 6.2. (Extrado del Ejemplo 3.7 de Smith et al. (1997)). La presion de vapor
del cloruro de metilo a 60 C es de 13,76 bar. Utilice la ecuacion de Redlich-Kwong
(Ecuacion 15) para estimar los vol umenes molares del vapor y el lquido saturados
bajo estas condiciones.

3 RT 2 2 bRT a ab
V V b + 1/2
V =0 (15)
P P PT P T 1/2

M.C. Lluvia M. Ochoa Estopier 27 Aplicacion de MATLAB a la I. Q.


DE LAS RAICES DE UN POLINOMIO
6 DETERMINACION

0,42748R2 TC2,5
a =
PC
0,08664RTC
b =
PC
Solucion. Escriba el siguiente codigo en el Editor o en el Command Window

% Ejemplo 6.1. Solucion a la Ecuaci


on de R-K
% Carga de datos y constantes crticas
R=83.14; % cm3 bar/ mol K
Tc=416.3; % K
Pc=66.8; %bar
T=60+273.15; % K
P=13.76; %bar

% C
alculo de la constantes a y b
a=0.42748*R^2*Tc^2.5/Pc;
b=0.08664*R*Tc/Pc;

% Determinacion de los coeficientes


% Ecuaci
on 15
c1=1;
c2=-R*T/P;
c3=-(b^2+b*R*T/P-a/(P*T^0.5));
c4=-a*b/(P*T^0.5);
c=[c1,c2,c3,c4];

% Se llama a la funci
on de soluci
on
V=roots(c)

cuyo resultado es
1712,8
V = 228,8
71,3
luego entonces Vg = 1712,8 cm3 /mol y Vl = 71,3 cm3 /mol, que coincide con los re-
sultados de Vg = 1713 cm3 /mol y Vl = 71,34 cm3 /mol mostrados por Smith et al.
(1997).

M.C. Lluvia M. Ochoa Estopier 28 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES ORDINARIAS
7 SOLUCION

7. Soluci
on de Ecuaciones Diferenciales Ordinarias

Las Ecuaciones Diferenciales Ordinarias (ODEs) estan presentes en el area de la Ter-


modinamica, Dise no de Reactores, Operaciones Unitarias, por mencionar solo algunas
areas de la Ingeniera Qumica. Por lo tanto, es de gran utilidad contar con una he-
rramienta que resuelva de manera sencilla este tipo de problemas, tal herramienta es
MATLAB.

7.1. Una sola ODE

Existen muchas funciones para resolver una sola ODE, entre ellas se encuentran fun-
ciones que las resuelven de manera analtica, como dsolve o int o bien funciones
que las resuelven de manera numerica, tal como ode45, entre otras. La eleccion en-
tre la funcion a utilizar depende de la complejidad y estructura de la integral y si se
desea una solucion analtica o simplemente el resultado numerico. A continuacion se
presenta un ejemplo donde se utilizaran algunas de las funciones antes mencionadas.
Para mayor informacion sobre estas y mas funciones, consulte el manual de usuario
del programa.

Ejemplo 7.1. Resuelva analticamente la ODE:


dy
= ay
dx
Solucion. Escriba el siguiente codigo en el Command Window o en el Editor

% Ejemplo 7.1. Soluci


on anal
tica de una ODE
dsolve(Dy = -a*y,x)

cuyo resultado es ans = C1 exp(a x), es decir y = C1 exp(ax).

Ejemplo 7.2.(Extrado del Ejemplo 6.4 de Levenspiel (1998)). Se ha encontrado


que la velocidad de la reaccion A 3R en fase gaseosa homogenea a 215 C, es:
1/2
rA = 102 CA , mol/lt s

Calc
ulese el tiempo espacial necesario para alcanzar la conversion del 80 % a partir de
una alimentacion del 50 % de A y 50 % de inertes, en un reactor de flujo en piston que
opera a 215 C y 5 atm (CA0 = 0,0625 mol/lt). La Ecuacion 16 describe el reactor.

1/2 Z 0,8 1/2


C 1 + XA
= A0 dXA (16)
k 0 1 XA

M.C. Lluvia M. Ochoa Estopier 29 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES ORDINARIAS
7 SOLUCION

Solucion utilizando la funci


on dsolve. Ejecute el siguiente algoritmo en el Editor y
observe los resultados en el Command Window.

% Ejemplo 7.2. Soluci on anal


tica de la Ecuaci
on 16
% Entrada de datos
XA=0.8; %conversi
on
CA0=0.0625; %(mol /lt)
k=1e-2; % mol^0.5 /lt^0.5 s
% Comando de solucion, Ecuacion 16
Area = dsolve(DA =((1+XA)/(1-XA))^(1/2),...
A(0) = 0,XA)
tau=CA0^0.5/k*eval(Area)

cuyo resultado es tau = 33,1824, es decir = 33,1824 s. Note en el Command


Window que la variable Area contiene la solucion simbolica (analtica) de la integral
en la Ecuacion 16 y que posteriormente se sustituye el valor de XA con la funcion
eval. El resultado coincide con el valor de 33,2 s reportado por Levenspiel (1998).

Soluci
on utilizando la funci
on ode45. La sintaxis de ode45 empleada en el Ejemplo
es

Sintaxis
[T,Y] = ode45(odefun,tspan,y0) (17)
donde T es el vector que contiene los intervalos de integracion (recuerde que es una
solucion numerica), Y es el vector que contiene el valor de la integral para cada in-
tervalo de T , odef un es una funcion que eval ua el lado derecho de la ODE (vease el
manual de usuario de MATLAB para mayor informacion), tspan es un vector [t0, tf ]
en donde se especifica el intervalo global de integracion, la integracion comienza en t0
y finaliza en tf , y0 es la condicion inicial en t0. ode45 puede extenderse a sistemas de
ODEs.

Ejecute los siguientes comandos en el Editor

% Ejemplo 7.2. Soluci


on numerica de la Ecuaci
on 16
function reactores
[X,T] = ode45(@ecuacion,[0 0.8],0)

% Presentaci
on grafica de datos
plot(T,X)
title(Conversi
on de A en un reactor flujo pist
on)
xlabel(Tiempo espacial \tau (s))
ylabel(Conversion de A (X A))

% Funci
on que evalua la integral
function dt = ecuacion(x,t)

M.C. Lluvia M. Ochoa Estopier 30 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES ORDINARIAS
7 SOLUCION

% Entrada de datos
CA0=0.0625; %(mol /lt)
k=1e-2; % mol^0.5 /lt^0.5 s

% Comando de soluci
on, Ecuaci
on 16
dt =CA0^0.5/k*((1+x)/(1-x))^(1/2) ;

La Figura 16 presenta los resultados graficados. Observe que se utiliza la instruc-


cion function para la creaci on de una nueva funci on que a su vez la funcion
ode45 manda a llamar, esta es una caracterstica muy importante en MATLAB y
sera utilizada frecuentemente en las siguientes Secciones.

Conversin de A en un reactor flujo pistn


0.8

0.7
Conversin de A (XA)

0.6

0.5

0.4

0.3

0.2

0.1

0
0 5 10 15 20 25 30 35
Tiempo espacial (seg)

Figura 16: Resultados del Ejemplo 7.2.

7.2. Un sistema de ODEs

La funcion ode45 pertenece a un conjunto de funciones que tambien resuelven sistemas


de ODEs, como ode23, ode113, bvp4c, solo por mencionar algunas. Las diferencias
entre estas funciones radican en el metodo numerico utilizado, las propiedades del
sistema de ODEs y las condiciones frontera.

Ejemplo 7.3. (Extrado del Ejemplo 6.6 Fogler (1999)). Considere las reacciones
isotermicas llevadas a cabo a 1500 R y 35 atm en un reactor de lecho empacado

M + H X + Me
X + H T + Me

M.C. Lluvia M. Ochoa Estopier 31 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES ORDINARIAS
7 SOLUCION

donde M corresponde al mesitileno, H al hidrogeno, X al m-xileno, M e al metano


y T al tolueno. La alimentacion contiene 66,7 mol % de hidrogeno y 33,7 mol % de
mesitileno. El flujo volumetrico es de 476 f t3 /h y el volumen del reactor es 238 f t3 .
Las velocidades de reaccion son
0,5
r1M = k1 CM CH k1 = 55,20 (f t3 /lbmol)0,5 /h
0,5
r2T = k2 CX CH k2 = 30,20 (f t3 /lbmol)0,5 /h

El sistema de ODEs resultante es


dCH 0,5 0,5
= r1M r2T = k1 CM CH k2 CX CH (18)
d
dCM 0,5
= r1M = k1 CM CH (19)
d
dCX 0,5 0,5
= r1M r2T = k1 CM CH k2 CX CH (20)
d
sujeta a las condiciones iniciales ( = 0)

CH0 = 0,0210 lbmol/f t3 (21)


CM 0 = 0,0105 lbmol/f t3 (22)
CX0 = 0,0 lbmol/f t3 (23)

hasta un tiempo de = 0,5 h. Resuelva las Ecuaciones 18 a 20 simultaneamente y


grafique los resultados.

Soluci
on. Se utilizara la funcion ode45 para resolver el sistema de ODEs, ejecute
el siguiente algoritmo en el Editor y observe los resultados en el Command Window.

% Ejemplo 7.3. Solucion num


erica un sistema de ODEs
function reactores
% Datos iniciales, Ecuaciones 21-23
CH0=0.021; %lbmol /ft^3
CM0=0.0105; %lbmol /ft^3
CX0=0.0; %lbmol /ft^3
tau=0.5; %h

% Se llama a la funcion ode45


[T,C] = ode45(@ODEs,[0 tau],[CH0,CM0,CX0])

% Presentaci
on de resultados
plot(T,C(:,1),k:,T,C(:,2),r,T,C(:,3),b-.)
title(Producci
on de m-xileno en un reactor flujo pist
on)
xlabel(Tiempo espacial \tau (h))
ylabel(Concentraci
on (lbmol/ft^3))
legend(Hidr
ogeno,Mesitileno,m-xileno)

M.C. Lluvia M. Ochoa Estopier 32 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES ORDINARIAS
7 SOLUCION

% Funci
on que evalua la integral
function dC = ODEs(t,C)
% Se renombran las variables
CH=C(1);CM=C(2);CX=C(3);
% Constantes de rxn
k1=55.20; % (ft^3/lbmol)^0.5 /h
k2=30.20; % (ft^3/lbmol)^0.5 /h
% Velocidades de rxn
r1M=-k1*CH^0.5*CM
r2T=k2*CH^0.5*CX;

% Ecuaciones 18-20
dCH =r1M-r2T; % a column vector
dCM=r1M;
dCX=-r1M-r2T;
% Se forma el sistema de ODEs
dC=[dCH;dCM;dCX];
La Figura 17 presenta los perfiles de concentracion dentro del reactor, perfiles que
coinciden con los presentados por Fogler (1999). Respecto al codigo, notese que se
crearon dos funciones, una llamada reactores, que contiene las condiciones iniciales
y la funcion ODEs, que contiene el sistema de ODEs a resolver. Tambien observe que se
usaron nuevos comandos, como legend y se modifico la presentacion predeterminada
del grafico, consulte el manual del programa para mayor informacion.

Produccin de mxileno en un reactor flujo pistn


0.025
Hidrgeno
Mesitileno
mxileno
0.02
Concentracin (lbmol/ft3)

0.015

0.01

0.005

0
0 0.1 0.2 0.3 0.4 0.5
Tiempo espacial (h)

Figura 17: Resultados del Ejemplo 7.3.

M.C. Lluvia M. Ochoa Estopier 33 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES NO LINEALES
8 SOLUCION

8. Soluci
on de Ecuaciones No Lineales

En muchas areas de la Ingeniera Qumica surge la necesidad de resolver una o varias


Ecuaciones No Lineales (ENLs). Ejemplo de ello es la solucion de un flash isotermi-
co, un flash adiabatico, determinacion de los puntos de burbuja y de roco, metodos
rigurosos para la solucion de sistemas de absorcion, sistemas de reactores, la determi-
nacion de las variables en un estado estacionario de un proceso, en fin, en un sinn
umero
de aplicaciones surgen las ENLs y, en esta Seccion, se mostrara la herramienta disenada
en MATLAB para la solucion de este tipo de problemas.

MATLAB cuenta con el Optimization Toolbox para resolver estos y mas problemas
de optimizacion, incluyendo

Minimizacion no lineal sin restricciones.

Minimizacion no lineal con restricciones.

Programacion lineal y cuadratica.

Mnimos cuadrados no lineales y ajuste de curvas.

Solucion de un sistema de ENLs.

Mnimos cuadrados lineales con restricciones.

Minimizacion de problemas con algoritmos a gran escala.

La funcion del toolbox encargada para resolver ENLs es la funcion fsolve, la sintaxis
utilizada en los ejemplos subsecuentes es

Sintaxis

x = fsolve(fun,x0) (24)
[x,fval] = fsolve(fun,x0,options) (25)

fsolve resuelve el problema F (x) = 0 para x, donde x es un vector y F (x) (es decir,
f un) es un vector que evalua las ecuaciones a resolver. x0 es la suposicion inicial, f val
es el valor final de F (x) una vez que fsolve termine de ejecutarse y options son las
opciones de optimizacion.

Ejemplo 8.1.(Extrado de MathWorks (2007b)). Resuelva las siguientes ENLs, con-


sidere una aproximacion inicial de x1,0 = 0,5 y x2,0 = 5

2x1 x2 ex1 = 0
x1 + 2x2 ex2 = 0

M.C. Lluvia M. Ochoa Estopier 34 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES NO LINEALES
8 SOLUCION

Solucion. Ejecute el algoritmo y observe los resultados en el Command Window

% Ejemplo 8.1. Soluci


on de una ENL
function Ejemplo 8 1
% Aproximacion inicial
x0 = [-5; -5];
% Opciones de optimizacion
options=optimset(Display,iter);
% Llamada a la funcion de soluci
on
[x,fval] = fsolve(@myfun,x0,options)

% Funci
on que contiene el sistema de ENLs
function F = myfun(x)
F = [2*x(1) - x(2) - exp(-x(1));
-x(1) + 2*x(2) - exp(-x(2))];

cuyo resultado es
0,5671
x=
0,5671
6 0,4059
F (x) = 1 10
0,4059

Figura 18: Resultados del Ejemplo 8.1.

Ejemplo 8.2. (Extrado del Ejemplo 7.1 de Henley y Seader (2000)). Una ali-
mentacion que contiene 10, 20, 30 y 40 moles % de propano (1), n-butano (2), n-
pentano (3) y n-hexano (4), respectivamente, entra en una columna de destilacion a
100 psia y 200 F . Suponiendo que existe equilibrio, que fraccion de la alimentacion
entra como lquido? Las constantes de equilibrio son K1 = 4,2, K2 = 1,75, K3 = 0,74
y K4 = 0,34.

M.C. Lluvia M. Ochoa Estopier 35 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES NO LINEALES
8 SOLUCION

Recuerde que la Ecuacion 26 resuelve un flash isotermico.


C
X zi (1 Ki ) V
f {} = =0 = (26)
i=1
1 + (Ki 1) F

es la fraccion vaporizada, C es el n umero de componentes, zi es la fraccion molar


del componente i en la alimentacion, Ki es la constante de equilibrio del componente
i a las condiciones del flash, V es el flujo de vapor y F es el flujo de la alimentacion.

Soluci
on. Se trata de una ENL en la cual el objetivo es encontrar un valor de
tal que f {} = 0. El algoritmo que resuelve la Ecuacion 26 se enuncia en seguida.

% Ejemplo 8.2. Soluci on de un sistema de NLE


function flash isotermico
psi0=0.5; %aproximaci
on inicial
psi=fsolve(@sumatoria,psi0)

% Funci
on que contiene la ENL a resolver
function F=sumatoria(x)
% Entrada de datos
K=[4.2,1.75,0.74,0.34];
zi=[0.10,0.20,0.30,0.40];
nc=4;
% Ecuacion 26
F=0.0;
for I=1:nc
F=F+zi(I)*(1-K(I))/(1+x*(K(I)-1));
end

Observe que la solucion de este algoritmo es = 0,1219 que es igual al resultado


presentado por Henley y Seader (2000).

Ejemplo 8.3.(Extrado del Ejemplo 4.4 de Tiscareno-Lechuga (2006)). Se tienen


2 m3 /h de corriente de desecho acuosa que contiene un maximo de 0,08 M de un
contaminante C. Para poder verterlo al desag ue se debe reducir su concentracion
4
hasta 1 10 M . La descomposicion se realiza de acuerdo a la reaccion:

2A + C subproductos inocuos

donde A es un agente qumico que su proveedor recomienda mantener en la ali-


mentacion una concentracion de 0,2 M . La expresion de velocidad a las condiciones
ambientales es:
lt0,5
rA = 0,316 0,5
CC CA0,5
min mol

M.C. Lluvia M. Ochoa Estopier 36 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES NO LINEALES
8 SOLUCION

Se requiere dise
nar tres tanques agitados en serie identicos y determinar su tiempo
espacial. Las ENLs que describen los tres reactores son:
CC0 CC1 0,08 M CC1
= = (27)
(rC )R1 0,158CC1 (0,04 + 2CC1 )0,5
CC1 CC2 CC1 CC2
= = (28)
(rC )R2 0,158CC2 (0,04 + 2CC2 )0,5
CC2 CC3 CC2 1 104 M
= = (29)
(rC )R3 3,168 106 mol/min lt
Resuelva las Ecuaciones 27 a 29 y determine el valor de , CC1 y CC2 .
Soluci
on. Se trata de tres ENLs (Ecuaciones 27-29) con tres incognitas ( , CC1 y
CC2 ) que se resuelven facilmente con la funcion fsolve. El codigo a ejecutar es el que
sigue, observe en el Command Window los resultados
% Ejemplo 8.3. Solucion de un sistema de NLE
function tres react MSMPR
x0=[10;0.01;0.01]; %aproximaci
on inicial
[x,F]=fsolve(@reacciones,x0)

% Funci
on que contiene la ENL a resolver

function F=reacciones(x)
% Se renombran las variables
tau=x(1);CC1=x(2);CC2=x(3);
% Entrada de datos
CC0=0.08; CC3=1e-4; %M

% Cin
eticas de rxn
rC R1=-0.158*CC1*(0.04+2*CC1)^0.5;
rC R2=-0.158*CC2*(0.04+2*CC2)^0.5;
rC R3=-0.158*CC3*(0.04+2*CC3)^0.5;

% Ecuaciones
F(1,1)=tau-(CC0-CC1)/(-rC R1);
F(2,1)=tau-(CC1-CC2)/(-rC R2);
F(3,1)=tau-(CC2-CC3)/(-rC R3);

el resultado es:

245,8777 0
x = 0,0079 F = 1 1013 0,2842
0,0009 0,2842
es decir = 245,87 min, CC1 = 7,9 103 M y CC2 = 9,0 104 M , ademas F ( ) = 0,
F (CC1 ) = 0,2842 1016 0 y F (CC1 ) 0. Los resultados obtenidos con fsolve
coinciden con los presentados por Tiscareno-Lechuga (2006).

M.C. Lluvia M. Ochoa Estopier 37 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES PARCIALES
9 SOLUCION

9. Soluci
on de Ecuaciones Diferenciales Parciales

En esta Seccion se describira el Partial Differential Equation Toolbox, que es la herra-


mienta de MATLAB creada para resolver Ecuaciones Diferenciales Parciales (EDP).
Las funciones de este toolbox cubre:

La definicion de un problema de EDP en dos dimensiones: condiciones frontera


y los coeficientes de la EDP.
La solucion numerica de la EDP: discretizacion de las ecuaciones y aproximacion
de la solucion.
La visualizacion de los resultados.

Se utilizaran algunas funciones del toolbox con la finalidad de resolver EDP aplicadas
a la Ingeniera Qumica, especficamente a los modelos de Fenomenos de Transporte.
Consulte el manual de usuario de MATLAB para obtener mayor informacion acerca
de este toolbox.
Ejemplo 9.1. (Extrado de Ochoa-Tapia (2005), Captulo 3). En la aleta de en-
friamiento mostrada en la Figura 19 la transferencia de calor en estado estacionario
esta dada por el siguiente problema de valor en la frontera
2T 2T
+ = 0, para 0 < y < L, B x B
x2 y 2
sujeta a
y=0 T = Tw para B x B
T
y=L y
=0 para B x B
x B k T
x
= h (T Ta ) para 0 y L
Introduciendo las variables adimensionales
T Ta x y
u= , X= , Y =
Tw Ta B B
el sistema puede simplificarse en la ecuacion adimensional:
2u 2u
+ =0 (30)
X 2 Y 2
sujeta a
Y = 0, u=1
L u
Y = r= , =0
B Y
u
X = 1, = NBi u
X
u
X = 0, =0
X

M.C. Lluvia M. Ochoa Estopier 38 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES PARCIALES
9 SOLUCION

Resuelva la Ecuacion 30 utilizando el Partial Differential Equation Toolbox para 0


X 1, 0 Y 5 y NBi = 10.

Soluci
on.

Paso 1. Lo primero que debe hacerse es cargar la interfase del toolbox, para ello
escriba pdetool en el Command Window, la interfase de usuario debe aparecer en la
pantalla.

Paso 2. Dibuje un rectangulo con las dimensiones de la placa, siga las indicaciones
del instructor, observe la Figura 20.

Paso 3. Especifique el tipo de EDP, siga las indicaciones del instructor.

Paso 4. Especifique las condiciones frontera, siga las instrucciones orales, observe
la Figura 21.

Paso 5. Solucione el sistema, para ello siga las instrucciones orales. Observe la
Figura 22.

Paso 6. Grafique los resultados. Siga las indicaciones orales. Los resultados de la
Ecuacion 30 se muestran en las Figuras 23 y 24. Observe que el sistema cumple las
condiciones frontera establecidas.

Figura 19: Aleta de enfriamiento rectangular.

M.C. Lluvia M. Ochoa Estopier 39 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES PARCIALES
9 SOLUCION

Figura 20: Interfase del Partial Differential Equation Toolbox.

Figura 21: Interfase del Partial Differential Equation Toolbox.

M.C. Lluvia M. Ochoa Estopier 40 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES PARCIALES
9 SOLUCION

Figura 22: Interfase del Partial Differential Equation Toolbox.

Color: T Height: T

0.9

1 0.8

0.8 0.7

0.6
0.6

0.5
0.4
0.4
0.2
0.3
0
6 0.2
1
4
0.1
2 0.5

0 0

Figura 23: Resultados del Ejemplo 9.1.

M.C. Lluvia M. Ochoa Estopier 41 Aplicacion de MATLAB a la I. Q.


DE ECUACIONES DIFERENCIALES PARCIALES
9 SOLUCION

Color: T Height: T
1
0.9
0.9
0.8
0.8

0.7
0.7

0.6 0.6

0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0
0 1 2 3 4 5

Figura 24: Resultados del Ejemplo 9.1.

M.C. Lluvia M. Ochoa Estopier 42 Aplicacion de MATLAB a la I. Q.


10 CONTROL DE PROCESOS Y SIMULINK

10. Control de procesos y Simulink

Un area muy importante en la Ingeniera Qumica es el Control de Procesos. MATLAB


cubre temas como el modelado, simulacion, control clasico y control avanzado a partir
de diversas herramientas, como

Simulink. Abarca el modelado, simulacion y analisis de modelo dinamicos.


Control System Toolbox. Implementa el dise
no, analisis y modelado de sistemas
de control comunes.
Robust Control Toolbox. Implementa el dise
no, analisis y modelado del Control
Robusto.
Fuzzy Logic Toolbox. Implementa el dise
no, analisis y modelado del Control por
Logica Difusa.
Model Predictive Control Toolbox. Implementa el dise
no, analisis y modelado del
Control Predictivo Basado en el Modelo.

Cada toolbox contiene una familia de funciones que creada para resolver un gran
n
umero de problemas relacionados con el tema para el que fue dise nado; sin embargo,
en esta Seccion solo se cubrira un peque
no n
umero de funciones, para mayor informa-
cion, consulte los manuales de usuario de cada toolbox.

Ejemplo 10.1. (Extrado de MathWorks (2007a)). Considere la columna de desti-


lacion ilustrada en la Figura 25. Esta columna se utiliza para separar una mezcla de
metanol y agua.

Figura 25: Columna de destilacion metanol-agua.

M.C. Lluvia M. Ochoa Estopier 43 Aplicacion de MATLAB a la I. Q.


10 CONTROL DE PROCESOS Y SIMULINK

Se requiere regular la fraccion de metanol en el destilado, XD , y la fraccion de


metanol en el fondo, XB . El objetivo es maximizar el valor de XD por medio del
ajuste del reflujo R y el flujo de vapor S en el hervidor.

Con la finalidad de obtener un modelo lineal de este sistema en torno a un punto


de operacion en estado estado, se ha obtenido un ajuste a un modelo FOPD (de
First Order plus Delay). El ajuste se realizo a partir de un ajuste de las respuestas
a una perturbacion tipo pulso en el reflujo y flujo de vapor. El modelo en funcion de
transferencia es el siguiente:
" 12,8es 18,9e3s #
XD (s) 16,7s+1 21,0s+1 R (s)
= 6,6e7s 19,4e3s (31)
XB (s) 10,9s+1 14,4s+1
S (s)

Escriba la Ecuacion 31 en MATLAB.

Soluci
on. Ejecute el siguiente codigo en el Editor o en el Command Window

% Ejemplo 10.1. Construcci on de una


% funci
on de transferencia
H = tf({12.8 -18.9;6.6 -19.4},. . .
{[16.7 1] [21 1];[10.9 1] [14.4 1]},. . .
ioDelay,[1 3;7 3],. . .
inputname,{R, S},. . .
outputname,{Xd, Xb})

El resultado se muestra en la Figura 26.

Figura 26: Resultados del Ejemplo 10.1.

Ejemplo 10.2. (Extrado del Ejemplo 10.1 Ogata (1998)). Considere en sistema de
control de la Figura 27 y obtenga una curva de respuesta escalon unitario para 14 s.

M.C. Lluvia M. Ochoa Estopier 44 Aplicacion de MATLAB a la I. Q.


10 CONTROL DE PROCESOS Y SIMULINK

R(s) 6.3223 ( s + 1.4235 )


2
1 C(s)
+- s ( s + 1)( s + 5 )
s
Controlador
PID

Figura 27: Sistema con un controlador PID.

Soluci
on.
Paso 1. Dibuje el diagrama en la interfase de Simulink (Figura 28), para ello siga
las instrucciones orales.

Figura 28: Sistema Ejemplo 10.2.

Paso 2. Ajuste el tiempo de simulacion y ejecute el diagrama de bloques, siga las


indicaciones del instructor. La Figura 29 presenta los resultados, la respuesta observada
coincide con lo reportado por Ogata (1998).

Figura 29: Resultados del Ejemplo 10.2.

M.C. Lluvia M. Ochoa Estopier 45 Aplicacion de MATLAB a la I. Q.


REFERENCIAS

Referencias

(1992). Fen
Bird, R. B.; Stewart, W. E. y Lightfoot, E.N. omenos de Transporte.
Reverte.

Fogler, H. S. (1999). Elements of Chemical Reaction Engineering. Prentice-Hall,


3a edicion.

Henley, E. J. y Seader, J. D. (2000). Operaciones de Separaci


on por Etapas de Equi-
librio en Ingeniera Qumica. Reverte.

Himmelblau, D. M. (1996). Principios Basicos y Calculos en Ingeniera Qumica.


Prentice-Hall Hispanoamericana, 6a edicion.

Levenspiel, O. (1998). Ingeniera de las Reacciones Qumicas. Reverte, 2a edicion.

MathWorks, The (2007a). Control System Toolbox Users Guide. The MathWorks,
3a edicion.

MathWorks, The (2007b). Optimization Toolbox Users Guide. The MathWorks,


3a edicion.

MathWorks, The (2007c). Statistics Toolbox Users Guide. The MathWorks, 3a edi-
cion.

Ochoa-Tapia, J. A. (2005). Metodos Matematicos Aplicados a la Ingeniera Qumica.


UAM-Iztapalapa.

Ogata, K. (1998). Ingeniera de control moderna. Prentice Hall, 3a edicion.

Smith, J. M.; Van-Ness, H. C. y Abbott, M. M. (1997). Introducci


on a la Termodin
ami-
a
ca en Ingeniera Qumica. Mc Graw Hill, 5 edicion.

Tiscare
no-Lechuga, F. (2006). Reactores Qumicos. volumen I. Instituto Tecnologico
de Celaya.

M.C. Lluvia M. Ochoa Estopier 46 Aplicacion de MATLAB a la I. Q.

Você também pode gostar