Curso Matlab
Curso Matlab
Curso Matlab
ogico de Veracruz
Aplicaci
on de MATLABr
Curso:
a la Ingeniera
Qumica
Instructor:
M.C. Lluvia Marisol Ochoa Estopier
INDICE
Indice
1. Introducci
on a MATLABr
2. Soluci
on de ecuaciones lineales
3. Ajuste de curvas
10
4. An
alisis estadstico
16
21
6. Determinaci
on de las races de un polinomio
27
7. Soluci
on de Ecuaciones Diferenciales Ordinarias
29
29
31
8. Soluci
on de Ecuaciones No Lineales
34
9. Soluci
on de Ecuaciones Diferenciales Parciales
38
43
Referencias
46
Aplicacion de MATLAB a la I. Q.
INDICE DE FIGURAS
Indice de figuras
1.
Interfase MATLABr . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.
3.
. . . . . . . . . . . . . . . . . .
4.
5.
6.
13
7.
14
8.
15
9.
18
10.
20
11.
22
12.
23
13.
24
14.
26
15.
26
16.
31
17.
33
18.
35
19.
39
20.
40
21.
40
ii
Aplicacion de MATLAB a la I. Q.
INDICE DE TABLAS
22.
41
23.
41
24.
42
25.
43
26.
44
27.
45
28.
45
29.
45
Indice de tablas
1.
11
2.
16
3.
17
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 utilizaran 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 dependera totalmente del interesado.
A MATLABr
1 INTRODUCCION
Introducci
on a MATLABr
1.
1.1.
Qu
e es MATLABr ?
MATLABr es un lenguaje de computacion de alto rendimiento enfocado a la ingeniera. 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 oportunidad 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 enfocadas para resolver problemas particulares de una area de conocimiento especfica.
Actualmente los toolboxes incluyen el procesamiento de imagenes, ecuaciones diferenciales parciales, optimizacion, redes neuronales, logica difusa, simulacion, entre otros.
1
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 siguiente configuracion (o parecida):
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 n
umero 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.
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 utilizaran 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
B
C
D
=
=
=
=
2
3
A+B
AB
E
F
G
H
=
=
=
=
AB
eB
1 104
sen(A)
Soluci
on. Copie y pegue las siguientes lneas en el Editor:
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 men
u 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:
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.
Intente las operaciones sugeridas en el listado anterior y observe los cambios realizados en las ventanas.
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 lineales principalmente cuando se tratan balances de materia y energa de un proceso con
m
ultiples 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)
X=
1
1
Fondo
x1F=0.02
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
X=
44,53
87,47
1 0
0 0 0
0
0
0
0
0
1 1 0 0 0
0
0
0
0
0
0 1 1 0 0
0
0
0
0
0
0 0
0
1
0
0
0
0
0
0
0 0
0 1 1 0
0
0
0
0
0 0
1 0 1 1 1
0
0
0
0 0
0
0
0
1
0
1
1
0
0 0
0 0 0
0 1 1
0 1
0 0
0 0 0
0
0
0
0
1
0 0
0 0 0
0
0
0
1
0
y12
y23
y36
y45
y56
y67
y86
y78
y710
y89
y1 y13
y32
y13 + y32
y4
0
0
0
0
y9
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:
150
1 0 1
y56 + y36
y67
1 1 0 y78 = y710 = 10
y89
y86
140
0 1 1
Aplicacion de MATLAB a la I. Q.
DE ECUACIONES LINEALES
2 SOLUCION
Subsistema
Balance
0 = y1 y12 y13
3
4
0 = y45 y56
8
9
10
0 = y710 y10
Valores conocidos
160,0
X = 150,0
10,0
Aplicacion de MATLAB a la I. Q.
3 AJUSTE DE CURVAS
3.
Ajuste de curvas
(2)
10
Aplicacion de MATLAB a la I. Q.
3 AJUSTE DE CURVAS
Ejemplo 3.1. (Informaci
on extrada del Ejemplo 3.1, Levenspiel (1998)). Bodenstein 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.
Experimento
1
2
3
4
5
6
7
8
(1)
[H2 ]0
0.2250
0.9000
0.6750
0.4500
0.5637
0.2881
0.3103
0.1552
(2)
[Br2 ]0
0.2250
0.9000
0.6750
0.4500
0.2947
0.1517
0.5064
0.2554
(3)
(rH2 ) 103
1.76
10.9
8.19
4.465
4.82
1.65
3.28
1.267
Soluci
on empleando la funci
on 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
ln (k) a b
X =
I ln ([H2 ]) ln ([Br2 ])
A =
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 soluci
on, 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 velocidad a una expresion de la forma
rH2 = k [H2 ]a [Br2 ]b
a+b=n
(3)
12
Aplicacion de MATLAB a la I. Q.
3 AJUSTE DE CURVAS
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);
b = 0,4342
14
Aplicacion de MATLAB a la I. Q.
3 AJUSTE DE CURVAS
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
6
(1) (2)
24 14
15
7
21 12
27 17
33 14
23 16
(3) (4)
11
7
9
7
7
4
13
7
12 12
18 18
(5)
19
24
19
15
10
20
Soluci
on. Para resolver este problema se cuenta con la funcion anova1, la sintaxis
que se utilizara es4
4
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 predeterminada; 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 peque
no. 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
109
Febrero 118
120
117
112
115
123
115
119
115
121
116
112
122
109
112
117
118
117
17
121
113
121
117
115
114
120
120
122
109
122
116
116
109
120
118
118
118
113
125
Aplicacion de MATLAB a la I. Q.
4 ANALISIS
ESTADISTICO
Soluci
on 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)
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.
Soluci
on 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)
pvalue z = 0,8668
pvalue t = 4,9517 104
19
ci z = [1,1340 1,169]
ci t = [1,1675 1,2025]
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 suposicion 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
Precios ($0.01)
120
115
110
Enero
Febrero
Mes
20
Aplicacion de MATLAB a la I. Q.
DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS
5.
x 2
g 2 cos ()
1
vz =
(9)
2
21
(10)
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
0.6
0.5
0.4
0.3
0.2
0.1
0
0.2
0.4
0.6
0.8
x, (m)
CA
x
= erf c q
4DAB z
CA0
(11)
vmax
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 gr
afica 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)
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.
23
Aplicacion de MATLAB a la I. Q.
DE
5 OPERACIONES CON VECTORES Y MATRICES: CONSTRUCCION
MODELOS
CA/CA0
0.8
0.6
0.4
100
0.2
0
1
0.8
0.6
0.4
longitud x (cm)
0.2
50
longitud z (cm)
0
T
t
=0 x=0
T = Tw x = l
T = T0 t = 0
T=Tw
Condicin de
Simetra
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
=
X 2
sujeta a
(12)
u
X
=0 X=0
u=0 X=1
u= =0
an cos (n X) exp 2n
(13)
n=1
sin (n )
n
+ 14 sin (2n )
2
(2n 1)
=
, n = 1, 2, 3, ...,
2
an =
n
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 Figura 15 representa la solucion para la arcilla. Las condiciones frontera se cumplen.
2.5
2
1.5
1
0.5
0
0
0.2
0.4
0.6
0.8
1
X
0.4
0.3
0.2
0.1
100
Temperatura T (C)
90
80
70
60
50
0
40
30
0
0.05
distancia x (m)
2
6
8
tiempo (s)
10
12
0.1
26
Aplicacion de MATLAB a la I. Q.
6.
Determinaci
on de las races de un polinomio
El problema de la determinacion de las races de un polinomio se encuentra frecuentemente 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 transferencia, 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
umenes molares del vapor y el lquido saturados
(Ecuacion 15) para estimar los vol
bajo estas condiciones.
RT 2
bRT
a
ab
3
2
V
V b +
V
=0
(15)
1/2
P
P
PT
P T 1/2
M.C. Lluvia M. Ochoa Estopier
27
Aplicacion de MATLAB a la I. Q.
a =
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 resultados de Vg = 1713 cm3 /mol y Vl = 71,34 cm3 /mol mostrados por Smith et al.
(1997).
28
Aplicacion de MATLAB a la I. Q.
7.
Soluci
on de Ecuaciones Diferenciales Ordinarias
Las Ecuaciones Diferenciales Ordinarias (ODEs) estan presentes en el area de la Termodinamica, 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 herramienta que resuelva de manera sencilla este tipo de problemas, tal herramienta es
MATLAB.
7.1.
Existen muchas funciones para resolver una sola ODE, entre ellas se encuentran funciones 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 entre 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).
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
C
= A0
k
M.C. Lluvia M. Ochoa Estopier
0,8
0
1 + XA
1 XA
29
1/2
dXA
(16)
Aplicacion de MATLAB a la I. Q.
(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 intervalo 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 num
erica de la Ecuaci
on 16
function reactores
[X,T] = ode45(@ecuacion,[0 0.8],0)
% Presentaci
on gr
afica de datos
plot(T,X)
title(Conversi
on de A en un reactor flujo pist
on)
xlabel(Tiempo espacial \tau (s))
ylabel(Conversi
on 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.
% 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 instruccion 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
Conversin de A (XA)
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
10
15
20
25
Tiempo espacial (seg)
30
35
7.2.
Un sistema de ODEs
31
Aplicacion de MATLAB a la I. Q.
k1 = 55,20 (f t3 /lbmol)0,5 /h
k2 = 30,20 (f t3 /lbmol)0,5 /h
0,5
0,5
= r1M r2T = k1 CM CH
k2 CX CH
(18)
0,5
= r1M = k1 CM CH
(19)
0,5
0,5
= r1M r2T = k1 CM CH
k2 CX CH
(20)
(21)
(22)
(23)
32
Aplicacion de MATLAB a la I. Q.
% 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
Concentracin (lbmol/ft3)
0.02
0.015
0.01
0.005
0.1
0.2
0.3
Tiempo espacial (h)
0.4
0.5
33
Aplicacion de MATLAB a la I. Q.
DE ECUACIONES NO LINEALES
8 SOLUCION
8.
Soluci
on de Ecuaciones No Lineales
(24)
(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 eval
ua 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, considere 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
% Aproximaci
on inicial
x0 = [-5; -5];
% Opciones de optimizaci
on
options=optimset(Display,iter);
% Llamada a la funci
on 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
x=
0,5671
0,5671
F (x) = 1 10
0,4059
0,4059
Ejemplo 8.2. (Extrado del Ejemplo 7.1 de Henley y Seader (2000)). Una alimentacion que contiene 10, 20, 30 y 40 moles % de propano (1), n-butano (2), npentano (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.
f {} =
C
X
i=1
zi (1 Ki )
=0
1 + (Ki 1)
V
F
(26)
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;
% Ecuaci
on 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 Tiscare
no-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 alimentacion una concentracion de 0,2 M . La expresion de velocidad a las condiciones
ambientales es:
lt0,5
CC CA0,5
rA = 0,316
0,5
min mol
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. Soluci
on 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
x = 0,0079
0,0009
0
F = 1 1013 0,2842
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 Tiscare
no-Lechuga (2006).
M.C. Lluvia M. Ochoa Estopier
37
Aplicacion de MATLAB a la I. Q.
9.
Soluci
on de Ecuaciones Diferenciales Parciales
En esta Seccion se describira el Partial Differential Equation Toolbox, que es la herramienta 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 enfriamiento 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
y=L
T = Tw
T
=0
y
para B x B
para B x B
x B k T
= h (T Ta ) para 0 y L
x
Introduciendo las variables adimensionales
T Ta
x
u=
,
X= ,
Tw Ta
B
Y =
y
B
(30)
sujeta a
Y
= 0,
= r=
u=1
u
=0
Y
u
= NBi u
X
u
=0
X
L
,
B
X = 1,
X = 0,
M.C. Lluvia M. Ochoa Estopier
38
Aplicacion de MATLAB a la I. Q.
39
Aplicacion de MATLAB a la I. Q.
40
Aplicacion de MATLAB a la I. Q.
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
0.1
0.5
2
0
41
Aplicacion de MATLAB a la I. Q.
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
42
Aplicacion de MATLAB a la I. Q.
10.
43
Aplicacion de MATLAB a la I. Q.
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.
R(s)
6.3223 ( s + 1.4235 )
+-
1
s ( s + 1)( s + 5 )
C(s)
Controlador
PID
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 Equilibrio 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 edicion.
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
amia
ca en Ingeniera Qumica. Mc Graw Hill, 5 edicion.
Tiscare
no-Lechuga, F. (2006). Reactores Qumicos. volumen I. Instituto Tecnologico
de Celaya.
46
Aplicacion de MATLAB a la I. Q.