ejercicio de ejemplo matlab

12
EJERCICIO DE EJEMPLO MATLAB-GUIDE A continuación se explica el desarrollo de un programa utilizando GUIDE mediante el cual se realizan las siguientes instrucciones: 1) Se calcula la Temperatura de llama adiabática de una combustión para diferentes valores del exceso de aire y se grafica su comportamiento (Tadb vs exceso). El programa permite escoger entre 3 combustibles diferentes (Metano, Propano y Octano) 2) A partir del combustible elegido en la primera parte, se calcula una propiedad de la mezcla de los gases de combustión. El usuario puede escoger entre el calor específico o la conductividad de la mezcla. TEMPERATURA DE LLAMA ADIABATICA En ausencia de cualquier interacción de trabajo y cambios en la energía cinética y potencial, la energía química liberada durante un proceso de combustión se pierde como calor hacia los alrededores o se usa internamente para elevar la temperatura de los productos de combustión. Cuanta más pequeña es la pérdida de calor, tanto mayor resulta el aumento de la temperatura. En el caso limite en el que no haya pérdida de calor hacia los alrededores (Q=0), la temperatura de los productos alcanzará un máximo, conocido como temperatura de combustión adiabática. Teniendo que: − = ∆ A partir de la definición de la temperatura de llama adiabática se tiene que: = 0, = 0 Entonces − = ∆ = 0 (∑ ∙ (ℎ °+ℎ −ℎ °)) = (∑ ∙ (ℎ °+ℎ −ℎ °)) PARTE PRINCIPAL DEL PROGRAMA DESARROLLO DE LA ESTRUCTURA PRINCIPAL DEL PROGRAMA: 1) Estequiometria de la combustión: Se modela la composición molar del combustible de tal manera que solo interese el número de moles de los elementos básicos (C, H, O, N, S, etc.). A partir del balance del número de átomos de los reactivos y productos encontramos que para cualquier combustible la reacción química queda balanceada de la siguiente forma:

Upload: cristian-ardila

Post on 19-Jan-2016

67 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ejercicio de Ejemplo Matlab

EJERCICIO DE EJEMPLO MATLAB-GUIDE A continuación se explica el desarrollo de un programa utilizando GUIDE mediante el cual se

realizan las siguientes instrucciones:

1) Se calcula la Temperatura de llama adiabática de una combustión para diferentes valores

del exceso de aire y se grafica su comportamiento (Tadb vs exceso). El programa permite

escoger entre 3 combustibles diferentes (Metano, Propano y Octano)

2) A partir del combustible elegido en la primera parte, se calcula una propiedad de la mezcla

de los gases de combustión. El usuario puede escoger entre el calor específico o la

conductividad de la mezcla.

TEMPERATURA DE LLAMA ADIABATICA

En ausencia de cualquier interacción de trabajo y cambios en la energía cinética y potencial, la

energía química liberada durante un proceso de combustión se pierde como calor hacia los

alrededores o se usa internamente para elevar la temperatura de los productos de combustión.

Cuanta más pequeña es la pérdida de calor, tanto mayor resulta el aumento de la temperatura. En

el caso limite en el que no haya pérdida de calor hacia los alrededores (Q=0), la temperatura de los

productos alcanzará un máximo, conocido como temperatura de combustión adiabática.

Teniendo que:

𝑄 − 𝑊 = ∆𝐻

A partir de la definición de la temperatura de llama adiabática se tiene que: 𝑄 = 0, 𝑊 = 0

Entonces ∶

𝐻𝑝𝑟𝑜 − 𝐻𝑟𝑒𝑐 = ∆𝐻 = 0

(∑ 𝑁𝑝 ∙ (ℎ𝑓 ° + ℎ − ℎ°))

𝑝= (∑ 𝑁𝑟 ∙ (ℎ𝑓

° + ℎ − ℎ°))𝑟

PARTE PRINCIPAL DEL PROGRAMA

DESARROLLO DE LA ESTRUCTURA PRINCIPAL DEL PROGRAMA:

1) Estequiometria de la combustión:

Se modela la composición molar del combustible de tal manera que solo interese el número de moles de los elementos básicos (C, H, O, N, S, etc.). A partir del balance del número de átomos de los reactivos y productos encontramos que para

cualquier combustible la reacción química queda balanceada de la siguiente forma:

Page 2: Ejercicio de Ejemplo Matlab

2) Temperatura de llama adiabática:

Para hallar la temperatura de llama adiabática se utiliza un ciclo while:

Mediante esta línea se calcula el aire teórico necesario para la combustión.

e=x+0.25*y+w-0.5*v;

while p<=0 El ciclo se controla mediante la variable p

A continuación se llama la Función de entalpías de los productos normalmente encontrados en una Combustión.

%Funciones de entalpía de los productos normalmente encontrados en una Combustión utilizando ees. Es importante resaltar que el programa

entrega: hf+h (T)-h (Testander)

%La unidad utilizada para la entalpía es KJ/Kmol, se revisó que no se %produjeran problemas dimensionales

[h_H2O, h_CO2, h_N2, h_O2, h_SO2] = Entalpias (T);

A través de la siguiente ecuación se busca obtener el valor de p más cercano a cero mediante la

variación de la Temperatura (T).

p se hará cero cuando la Temperatura a la que se evalúa la entalpia de los productos sea igual a la temperatura de llama adiabática. p=x*(h_CO2)+0.5*y*(h_H2O)+ (3.77*e*a+z*0.5)*(h_N2)+ (e*(a-1))*(h_O2)+w*(h_SO2)-hf;

Si p aún no es lo suficientemente cercana a cero entonces se incrementa la temperatura en pequeños valores (para mayor precisión) hasta que finalmente se alcance el valor buscado y se acabe el ciclo.

T=T+0.01;

end

Teórico

Page 3: Ejercicio de Ejemplo Matlab

3) Función que calcula la entalpia de cada producto con la temperatura ingresada:

function [ h_H2O,h_CO2,h_N2,h_O2,h_SO2] = Entalpias( T )

%La entalpía como función de la temperatura de cada uno de los

componentes se determinó mediante regresión usando el programa ees. %El intervalo en el que se realizó la regresión y que por tanto se

recomienda usar estas ecuaciones es de 1000 a 2500 K

h_H2O=-2.49863431E+05+2.57167332E+01*T+9.46312003E-03*T^2-1.15643373E-

06*T^3+4.10830472E-11*T^4;

h_CO2=-4.06270305E+05+3.49033734E+01*T+1.46122762E-02*T^2-3.81873546E-

06*T^3+4.02312019E-10*T^4; h_N2=-7.77279965E+03+2.46435164E+01*T+5.88265813E-03*T^2-1.39753924E-

06*T^3+1.40659541E-10*T^4;

h_O2=-9.33437622E+03+2.84296356E+01*T+4.52357232E-03*T^2-1.03794483E-

06*T^3+1.17354463E-10*T^4;

h_SO2=-3.07042235E+05+2.57800000E+01*T+2.89750000E-02*T^2-1.27066666E-

05*T^3+2.15300000E-09*T^4;

4) Funciones para el cálculo de propiedades

a) Fracciones molares

function [ x_CO2,x_H2O,x_N2,x_O2,x_SO2,M] = Fracmol( x,y,e,a,z,w)

%Número de moles totales de la mezcla N_t=x+0.5*y+(3.77*e*a+(z*0.5))+e*(a-1)+w;

%Fracciones molares de cada componente, los valores utilizados se pueden %verificar en el comentario que acompaña el balance de energía

x_CO2=x/N_t; x_H2O=0.5*y/N_t; x_N2=(3.77*e*a+(z*0.5))/N_t; x_O2=e*(a-1)/N_t; x_SO2=w/N_t;

%Cálculo de la masa molecular de la mezlca , utiliando la contribución de %cada componente a la mezcla.

M=x_CO2*44+x_H2O*18+x_N2*28+x_O2*32+x_SO2*64;

end

Page 4: Ejercicio de Ejemplo Matlab

b) Calor especifico de la mezcla function [ Cpmez ] = Cpmezcla( T,x_CO2,x_H2O,x_N2,x_O2,x_SO2,M )

%Se emplea una función para cada propiedad. Las unidades utilizadas son

unidades molares (J/Kmol-K). %Las expresiones para cada propiedad fueron halladas utilizando ees en un

rango de temperaturas de 1000 a 2500 C %rango en el cual se recomienda que este la temperatura a la cual se

desea calcular la propiedad.

C_p_CO2=3.83242068E+04+3.59574630E+01*T-2.67027333E-02*T^2+1.23768347E-

05*T^3-3.67087490E-09*T^4+6.39368776E-13*T^5-4.87868161E-17*T^6;

C_p_H2O=3.14584421E+04+1.40576028E+01*T+9.90600267E-04*T^2-2.98623901E-

06*T^3+1.23322399E-09*T^4-2.48524433E-13*T^5+2.05779381E-17*T^6;

C_p_N2=2.62229636E+04+1.39825799E+01*T-9.27798973E-03*T^2+3.98995139E-

06*T^3-1.08208234E-09*T^4+1.68256063E-13*T^5-1.14376017E-17*T^6;

C_p_O2=2.88492171E+04+1.37678455E+01*T-1.12607798E-02*T^2+6.23873476E-

06*T^3-2.07218712E-09*T^4+3.83274671E-13*T^5-3.03134487E-17*T^6;

C_p_SO2=3.89403867E+04+3.90526907E+01*T-3.10628948E-02*T^2+8.61199853E-

06*T^3+6.49072650E-16*T^4-1.50368348E-19*T^5+1.42738046E-23*T^6;

%La propiedad de la mezcla se obtiene al sumar la contribución de cada %componente, en este caso el Cp de la mezcla esta en base molar (J/Kmol-

K).

Cpmez=(x_CO2*C_p_CO2+x_H2O*C_p_H2O+x_N2*C_p_N2+x_O2*C_p_O2+x_SO2*C_p_SO2)

;

%Si se quiere obtener el Cp de la mezcla en base másica basta con dividir

el Cp molar entre la masa molecular de la mezcla M

%Propiedad másica = Propiedad molar/M %donde M es la masa molecular de la mezcla

%Cpmez=(x_CO2*C_p_CO2+x_H2O*C_p_H2O+x_N2*C_p_N2+x_O2*C_p_O2+x_SO2*C_p_SO2

)/M;

end

Page 5: Ejercicio de Ejemplo Matlab

c) Conductividad de la mezcla

Para este caso es importante aclarar que la conductividad de la mezcla de gases debería ser calculada con una expresión más precisa que simplemente la suma de la contribución de cada componente. De la literatura se tiene que una forma bastante aproximada para su cálculo es:

Aquí N es el número de especies químicas en la mezcla, Xi es la fracción molar de la especie i, ki es la conductividad de la especie pura i a la temperatura y presión del sistema, y Mi es el peso molecular de la especie i. Por cuestiones de simplicidad en el programa desarrollado, la conductividad se calcula usando solo el numerador de la expresión anteriormente mostrada.

function [ Kmez ] = Kmezcla( T,x_CO2,x_H2O,x_N2,x_O2,x_SO2,M )

K_CO2=1.45570479E-02+8.07209034E-05*T-5.54718280E-09*T^2-

4.82341892E-12*T^3-3.60088265E-23*T^4+8.28570527E-27*T^5-

7.81375100E-31*T^6;

K_H2O=1.67251848E-02+6.79439646E-05*T+8.07797485E-08*T^2-

3.71236599E-11*T^3+8.74962252E-15*T^4-8.40812607E-19*T^5-

2.78525529E-29*T^6;

K_N2=2.38384879E-02+7.45196798E-05*T-4.12011720E-08*T^2+2.22278278E-

11*T^3+9.61397848E-22*T^4-2.22746767E-25*T^5+2.11464465E-29*T^6;

K_O2=2.28763919E-02+8.72712993E-05*T-2.22299839E-08*T^2+2.57460472E-

12*T^3+1.94087761E-15*T^4-4.95674907E-19*T^5+4.32252259E-23*T^6;

K_SO2=8.62126053E-03+3.56625055E-05*T+5.43859841E-08*T^2+3.16759147E-

10*T^3-1.80035262E-12*T^4+2.91827305E-15*T^5-1.56355468E-18*T^6;

%La propiedad de la mezcla se obtiene al sumar la contribución de

cada componente a las condiciones de esta.

Kmez= (x_CO2*K_CO2+x_H2O*K_H2O+x_N2*K_N2+x_O2*K_O2+x_SO2*K_SO2);

Page 6: Ejercicio de Ejemplo Matlab

PASOS PARA CREAR LA GUI

1. Obtener todas las correlaciones de propiedades:

Ejemplo: Cálculo de las entalpias. ees Además de se deben hacer las de las propiedades: calor específico y conductividad 2. Crear todas las funciones a utilizar en el programa:

a) Entalpias b) Fracción molar c) Cp mezcla d) K mezcla

3. Crear interfaz GUI

Titulo a) Static text Parámetros de entrada: a) 1 Panel b) 1 Static text c) 1 pop up menu d) 1 Push Button

Propiedades a) 1 panel b) 5 static text c) 2 edit text d) 1 pop up menu

Grafica a) 1 axes

Page 7: Ejercicio de Ejemplo Matlab

PASOS PARA CREAR EL PROGRAMA:

DEBAJO DEL PUSH BUTTON CALCULAR

1) Tomar el valor del selector del panel parámetros de entrada para determinar que combustible fue elegido

%El popupmenu1 es el botón que permite seleccionar con que combustible

%se realiza la combustión

% se obtiene el parámetro "valor" del selector

s=get(handles.popupmenu1,'Value');

2) Definir la composición de los combustibles

%A continuación se procede a asignar la composición del combustible

%Se Asigna la composición del combustible de la opción 1 :Metano %Se Asigna la composición del combustible de la opción 2 :Propano %Se Asigna la composición del combustible de la opción 3 :Octano

%Composición del combustible

%x=Número de átomos de C %y=Número de átomos de H %z=Número de átomos de N %w=Número de átomos de S

Page 8: Ejercicio de Ejemplo Matlab

%v=Número de átomos de O %e=Número teórico de moles de oxígeno necesarias para la %combustión.

%hf=entalpia de formación

X=[1,3,8]; Y=[4,8,18]; Z=[0,0,0]; W=[0,0,0]; V=[0,0,0]; HF=[-74850,-103850,-249950];

3) Se realiza un ciclo for para iterar el exceso de aire, dentro de este se usa el ciclo while previamente explicado para realizar la determinación de la temperatura de llama adiabática.

i=1;%Variable utilizada para almacenar la temperatura en un vector.

%Se itera el exceso de aire desde el 10 al 50%

for a=1.1:0.1:1.5

% Temperatura a partir de la cual comienza la iteración T estándar)

T=298; %[K]

%Se define un valor a la variable p por defecto para que el programa

empiece la ejecución del ciclo While pero esto no tiene ninguna

importancia sobre el programa

p=-0.1;

%Se declaran estas variables como globales para poder utilizarlas en otra

parte del programa

global x y z w v e

%Se asigna la composición del combustible.

x=X(s); y=Y(s); z=Z(s); w=W(s); v=V(s); hf=HF(s);

Page 9: Ejercicio de Ejemplo Matlab

%del balance de la reacción quimica:

% C_x H_y N_z S_w O_v + e*a[O_2 + 3.77N_2 ] = xCO_2+0.5yH_2O+

wSO_2+ (3.77e*a+z/2) N_2 + e*(a-1)O_2

% Cantidad teórica de Aire necesario para la combustión

e=x+0.25*y+w-0.5*v;

while p<=0

%Funciones de entalpía de los productos normalmente encontrados en una Combustión utilizando ees. Es importante resaltar que el programa

entrega: %hf+h(T)-h(Testander)

[ h_H2O,h_CO2,h_N2,h_O2,h_SO2] = Entalpias( T );

%La unidad utilizada para la entalpía es Kj/Kmol, se revisó que no se Produjeran problemas dimensionales

%a través de esta ecuación se busca obtener el valor de p más cercano a

cero mediante la variación de la T, hasta que se obtenga la T de llama

adiabática. El método utilizado se explicó mejor anteriormente

p =x*(h_CO2)+0.5*y*(h_H2O)+(3.77*e*a+z*0.5)*(h_N2)+(e*(a-

1))*(h_O2)+w*(h_SO2)-hf;

T=T+0.01; %Incremento de la temperatura

end

%Mediante esta línea se guarda el valor de la temperatura hallada para

cada exceso

Tp(i)=T; i=i+1;

end

%se crea un vector para el exceso ex=110:10:150;

4) Se realiza la gráfica de la temperatura de llama adiabática para cada valor del exceso

axes(handles.axes1)

grid on

Page 10: Ejercicio de Ejemplo Matlab

hold on plot (ex,Tp) title('TEMPERATURA DE LLAMA ADB VS EXCESO DE AIRE') xlabel('Exceso de aire') ylabel('Temperatura de llama adiabática')

DEBAJO DEL POP UP MENÚ: 1) Tomar el valor del exceso del aire a=str2double(get(handles.edit10,'string'))/100;% se obtiene el valor del

exceso del aire

2) Se obtiene el parámetro de selección de la propiedad a calcular c=get(handles.popupmenu6,'Value');% se obtiene el parámetro valor del

selector 6 , el cual indica que propiedad se desea calcular

3) Tomar el valor de la temperatura de llama adiabática

Tm=str2double(get(handles.edit9,'string'));% Se ingresa la Temperatura a

la que se quieren calcular las propiedades de la mezcla

Tm=Tm-273.15; %Se convierte de K a C

4) Calcular la fracción molar de la mezcla a partir del combustible seleccionado en la primera parte del programa y de los parámetros anteriormente ingresados

global x y e a z w

[x_CO2,x_H2O,x_N2,x_O2,x_SO2,M] = Fracmol( x,y,e,a,z,w ); % Calcula las

fracciones molares y la M de la mezcla

5) Estructura switch para hacer el cálculo de la función seleccionada por el usuario

switch c % se utiliza para realizar alguna acción dependiendo del valor

seleccionado

case 1 %Cálculo del Calor específico de la mezcla de gases

[ Cpmez ] = Cpmezcla( Tm,x_CO2,x_H2O,x_N2,x_O2,x_SO2,M ); %Función

de interés

set(handles.text17,'string',Cpmez/1000); % Impresión del valor de

la propiedad set(handles.text18,'string','[KJ/Kmol*C]'); % Impresión de las

unidades de la propiedad

Page 11: Ejercicio de Ejemplo Matlab

case 2 %Cálculo de la conductividad térmica de la mezcla de gases

[ Kmez ] = Kmezcla( Tm,x_CO2,x_H2O,x_N2,x_O2,x_SO2,M );

set(handles.text17,'string',Kmez); % Impresión del valor de la propiedad

set(handles.text18,'string','[W/C*m]'); % Impresión de las unidades de la

propiedad

end

NOTA: Para aquellos que tengan dudas (o para constatar la solución) acerca de la realización del programa pueden revisar los ejemplos 15-8 y 15-10 del libro de Termodinámica de Cengel Sexta edición (pág. 787 y 793)

Page 12: Ejercicio de Ejemplo Matlab