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:
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
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
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
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);
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
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
%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);
%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
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
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)
Top Related