EJEMPLO 3: SEPARACION DE HIDROCARBUROS:
En una planta petroquímica se procesa una mezcla de benceno, estireno, pentano y octano. La separación de estos componentes se realiza en tres columnas de destilación, obteniéndose 4 corrientes de productos denominadas D1, B1, D2 y B2.
El sistema de ecuaciones de este proceso es:
FXF ,1=D1 X D1,1+B1X B1,1+D2 XD2,1+B2 XB2,1
FXF ,2=D1 X D1,2+B1 XB1,2+D2 XD2,2+B2 XB2,2
FXF ,3=D1 X D1,3+B1 XB1,3+D2 X D2,3+B2 X B2,3
FXF ,4=D1 XD 1,4+B1X B1,4+D2 XD 2,4+B2X B2,4
Dónde:
F: es la corriente de alimentación (250 Kmol/h)D1:es la corriente de destilado de la columna 1,Kmol/hB1:es la corriente de fondo de la columna 1,Kmol/hD2:es la corriente de destilado de la columna 2,Kmol/hB2:es la corriente de fondo de la columna 2,Kmol/hXF,i :es la composición molar en la corriente de alimentación del componente i.XD1,i :es la composición molar en la corriente de destilación de la columna1, del componente i.XB1,i :es la composición molar en la corriente de fondo de la columna 1, del componente i.XD2,i :es la composición molar en la corriente de destilación de la columna 2, del componente i.
1
XB2,i :es la composición molar en la corriente de fondo de la columna 2, del componente i.
A continuación se muestran los valores para las constantes:
Componente:
i XF,i XD1,i XB1,i XD2,i XB2,1
benceno 1 0.25 0.066008 0.77954 0.15768 6 10-6
estireno 2 0.2 0 0.00025 0.06167 0.5
pentano 3 0.25 0.93399 0.2116 8 10-5 0
octano 4 0.3 2 10-6 0.00861 0.78057 0.499994
Determinar el flujo molar de las corrientes D1, B1 D2 y B2.
Determinar el flujo de alimentación si F se incrementa en 10 %. ¿En qué porcentaje varían las corrientes D1, B1, D2 y B2?
Solución:
Se programó en Matlab de la siguiente manera:
Creamos la función:
y=G_Jordan(A,B)
Donde se programó lo siguiente:
Primero se calcula el tamaño de la matriz A.
m=size(A);
Luego se calcula el n, el cual nos indicara el número de columnas y filas.
n=m(1);
Luego hay que voltear la matriz A, para eso utilizamos el apostrofe.
At=A’;
Despuies juntamos las dos matrices At y B, para obtener así la matriz aumentada.
M=[At;B];
Seguidamente volteamos la matriz M, con ayuda del apostrofe.
AA=M’;
2
Ahora que ya tenemos la matriz aumentada procedemos a programar el método de Gaus-Jordan a partir de nuestra matriz aumentada AA, nos guiamos del siguiente diagrama de flujo:
Diagrama de flujo para Gaus-Jordan:
Una vez programada se obtendrá la siguiente decodificación:
function y=G_Jordan(A,B)m=size(A);n=m(1);At=A';M=[At;B];AA=M';for i=1:n d=AA(i,i); for k=i:n+1 AA(i,k)=AA(i,k)/d; end for j=1:n if j~=i p=AA(j,i); for k=i:n+1; AA(j,k)=AA(j,k)-p*AA(i,k); end end
3
endendfor i=1:n y(i)=AA(i,n+1);end
Donde le agregaremos un “for” al final de la función, partiendo de 1 hasta n,
Y creamos y(i)=AA(i,n+1); esto nos permitirá obtener como respuesta de la matriz fina, solamente los de elementos de la última fila.
Ahora procedemos a programar la aplicación, donde llamaremos a la función que hemos creado.
Colocaremos el nombre del programa:
disp('Separacion de Hidrocarburos:Benceno-Estireno-Pentano-Octano');
Luego procedemos a color car los input para los elementos que pediremos que ingrese el usuario.
F=input('Ingrese la Corriente de alimentacion, Kmol/h:');Be=input('Ingrese el porcentaje de Benceno : '); Be=Be/100;E=input('Ingrese el porcentaje de Estireno : ');E=E/100;P=input('Ingrese el porcentaje de Pentano : ');P=P/100;O=input('Ingrese el porcentaje de Octano : ');O=O/100;
Como observamos para las variables Be, E, P y O, se dividen entre 100 debido a que queremos el valor sin porcentaje, pero hacemos que el usuario lo ingrese en porcentaje debido a que es más fácil de trabajar.
Luego procedemos a programar la matriz que llamaremos “A”, tomando los valores de D1, B1, D2 y B2.
Luego programamos el vector que llamaremos “B”, teniendo en cuenta que cada elemento estará dado por la multiplicación de “F” por valor de Be, E, P y O, respectivamente.
Luego llamamos a la función que creamos: G_Jordan(A,B) , esta función depende de dos variables, las cuales son la matriz A y el vector B que creamos, la almacenamos en la variable “y”.
Finalmente procedemos a crear una variable para cada valor del vector “y”.
Procedemos a mostrar los resultados con fprintf, en las unidades de Kmol/h.
4
Así nos queda la codificación:
A=[0.066008 0.77954 0.15768 6e-6;0 0.00025 0.06167 0.5;0.93399 0.2116 8e-5 0;2e-6 0.00861 0.78057 0.499994];B=[F*Be F*E F*P F*O];y=G_Jordan(A,B);r=y(1,1);t=y(1,2);u=y(1,3);i=y(1,4);fprintf('LA corriente de Destilado de la Columna 1: %f Kmol/h \n',r);fprintf('LA corriente de Fondo de la Columna 1 : %f Kmol/h \n',t);fprintf('LA corriente de Destilado de la Columna 2: %f Kmol/h \n',u);fprintf('LA corriente de Fondo de la Columna 2 : %f Kmol/h \n',i);
Ahora procedemos a ejecutar el programa desde matlab, introduciendo los datos que el problema nos proporciona, así obtendremos los siguientes resultados:
¿Ahora qué pasaría si se incrementara un 10 % de su corriente de alimentación?
El10% de250 sería=250 x 0.1=25
Entonces:
Lanuevacorriente=25+250=275
Entonces obtendremos lo siguiente:
5
Con los datos obtenidos realizamos la comparación:
Y se observa un cambio para las columnas 1 y 2 del destilado y del fondo 1 y 2, el mismos porcentaje de 10 % con respecto a la corriente de 250 Kmol/h.
Corriente de 250 Kmol/h 275 Kmol/hPorcentaje de
diferenciaDestilado de la
columna 151.2911 56.4202 9.99 %
Fondo de la columna 1
68.9595 75.8555 10 %
Destilado de la columna 2
33.9740 37.3714 10%
Fondo de la columna 2
95.7751 105.3526 9.99%
6