UNIVERSIDAD AUTONOMA JUAN MISEL SARACHOMATLAB CARACTERÍSTICAS BÁSICAS DE MATLAB 1.-ECUACIONES TERMODINAMICAS PARA GASES REALES 1.1.-ECUACION DE VAN DER WALLS 1.2.-ECUACION DE REDLICH-KWONG 1.3.-ECUACION DE SOAVE- REDLICH-KWONG 1.4.-ECUACION DE PENG-ROBINSON 1.5.-ECUACION DE BEATLIE BRIDGEMAN 1.6.-ECUACION VIRIAL 1.7.-ECUACION DE BENEDICT-WEBB-RUBIN 2.-LISTADO DE PROGRAMAS 3.-EJERCICIOS RESUELTOS 4.-PROBLEMAS PROPUESTOS: Tablas para los gases reales Introducción: Este es el aspecto que presenta la versión R2009-b de MatLab, que será la que utilizaremos este curso: MATLAB es el nombre abreviado de “MATriz LABoratory”. Es un programa para realizar cálculos numéricos con vectores y matrices, y por tanto se puede trabajar también con números escalares (tanto reales como complejos), con cadenas de caracteres y con otras estructuras de información más complejas. Matlab es un lenguaje de alto rendimiento para cálculos técnicos, es al mismo tiempo un entorno y un lenguaje de programación. Uno de sus puntos fuertes es que permite construir nuestras propias herramientas reutilizables. Podemos crear fácilmente nuestras propias funciones y programas especiales (conocidos como M-archivos) en código Matlab, los podemos agrupar en Toolbox (también llamadas librerías): colección especializada de Marchivos para trabajar en clases particulares de problemas. Matlab, a parte del cálculo matricial y álgebra lineal, también puede manejar polinomios, funciones, ecuaciones diferenciales ordinarias, gráficos … Este es el aspecto que presenta la versión R2009-b de MatLab, que será la que utilizaremos este curso: Es la ventana de mayor tamaño. Está en la parte superior izquierda: . tipo y atributos (tampoco da valores) Para ver esta ventana tenemos que pinchar en la pestaña que tienen este nombre. Si queremos información acerca de las variables que estamos utilizando en Matlab podemos verlas en la ventana Workspace (espacio de trabajo) o usar: Who para obtener la lista de las variables (no de sus valores) Whos para obtener la lista de las variables e información del tamaño.CARACTERÍSTICAS BÁSICAS EL ESPACIO DE TRABAJO DE MATLAB Nada más abrir Matlab (podemos hacerlo pinchando en el icono que aparece en el escritorio o en su defecto en Inicio->Todos los programas) aparecerá una pantalla como la siguiente: Todas las sentencias que vamos a utilizar las escribiremos en la ventana Command Window (ventana de comandos). También podemos verlas en la ventana Command History. Si la sentencia es demasiado larga para que quepa en una sola línea podemos poner tres puntos (…) seguido de la tecla Intro para indicar que continúa en la línea siguiente. sólo se modifica la forma de visualizarlo.) al final de la sentencia. . Para recordar órdenes previas usamos las flechas del teclado ↑ y ↓. Si queremos que Matlab evalúe la línea pero que no escriba la respuesta.Si lo que queremos es conocer el valor que tiene una variable lo hacemos escribiendo el nombre de la variable y pulsando Intro. ventana situada en la parte inferior izquierda: MATEMÁTICA SENCILLA Matlab ofrece la posibilidad de realizar las siguientes operaciones básicas: Operación suma resta multiplicación división potencia El orden de precedencia es: Orden de precedencia de operaciones 1º 2º 3º Matlab no tiene en cuenta los espacios. basta escribir punto y coma (. ^ * + / Símbolo Expresión en Matlab + * / ^ a+b a-b a*b a/b a^b FORMATOS DE VISUALIZACIÓN DE NÚMEROS Matlab no cambia la representación interna de un número cuando se escogen distintos formatos. no pueden contener espacios en blanco y pueden nombrarse hasta con 63 caracteres (en versiones anteriores no permitía tantos caracteres). crea un número en coma flotante en el computador mayor que 1 Infinito inf Magnitud no numérica nan iyj i = j = −1 realmin El número real positivo más pequeño que es utilizable realmax El número real positivo más grande que es utilizable ans pi eps Valor ??? 3.1416e+000 de la coma Formato coma flotante con 14 o 15 dígitos 3.0000i 2.14 coma Hexadecimal 400921fb54442d18 Aproximación racional 355/113 Positivo.14159265358979 después de la coma Formato coma flotante con 4 dígitos después 3.7977e+308 . Las variables son sensibles a las mayúsculas.2251e-308 1.Tipo format short format long format short e format long e format short g format long g format short eng format long eng format bank format hex format rat format + Resultado Ejemplo: >> pi Formato coma fija con 4 dígitos después de la 3. Si se nombra una variable con más de 63 caracteres truncará el nombre de dicha variable.141592653589793e+000 después de la coma La mejor entre coma fija o flotante con 4 3. deben comenzar siempre con una letra.14159265358979 15 dígitos después de la coma Notación científica con 4 dígitos después de 3. negativo o espacio en blanco + ACERCA DE LAS VARIABLES Matlab almacena el último resultado obtenido en la variable ans.14159265358979e+000 significantes y un exponente de 3 Formato coma fija con 2 dígitos después de la 3.1416 2. Algunas variables especiales de Matlab: Variable Definición Variable usada por defecto para almacenar el último resultado Razón de una circunferencia a su diámetro Número más pequeño.1416 dígitos después de la coma La mejor entre coma fija o flotante con 14 o 3.1416e+000 la coma y un exponente de 3 Notación científica con 16 dígitos 3. tal que cuando se le suma 1.2204e-016 Inf NaN 0 + 1.1416 coma (es el formato que viene por defecto) Formato coma fija con 14 o 15 dígitos 3. puede ser: por comas (. date o calendar. como clock. OTRAS CARACTERÍSTICAS BÁSICAS Los comentarios se escriben después del símbolo de tanto por ciento (%). Algunos comandos de Matlab nos facilitan información sobre la fecha.) que hacen que se visualicen los resultados puntos y comas (. pero no borra lo de las demás ventanas. de este modo todo lo que se escriba a continuación en la misma línea no será leído por Matlab. no desaparece lo que hay escrito en la ventana de comandos. es decir.) que suprimen la impresión en pantalla Para cerrar Matlab podemos hacerlo tecleando quit. TRIGONOMETRÍA Función ¿Qué hace? … (x) función trigonométrica con el ángulo expresado en radianes sin (x) cos seno (radianes) (x) tan (x) coseno tangente cosecante secante cotangente csc (x) sec (x) cot (x) …d (x) sind (x) … …h (x) sinh (x) … a… (x) asin (x) … a…d (x) asind (x) … a…h (x) función trigonométrica con el ángulo expresado en grados seno (grados) … función trigonométrica hiperbólica con el ángulo expresado en radianes seno hiperbólico (radianes) … inversa de la función trigonométrica con el resultado expresado en radianes arco seno (radianes) … inversa de la función trigonométrica con el resultado expresado en grados arco seno (grados) … inversa de la función trigonométrica hiperbólica con el resultado expresado en radianes . cerrando con el aspa típico de Windows. Podemos colocar varias órdenes en una línea si se separan correctamente. entrando en File->Exit Matlab o con las teclas Ctrl+Q.Tecleando clear podemos borrar todas las variables del espacio de trabajo. Tecleando clc borramos lo que hay en la ventana de comandos pero no borra las variables de la memoria del espacio de trabajo. ^ B A ' División de matrices por la izquierda A . Se direccionan y manipulan igual que los vectores.asinh (x) … arco seno hiperbólico (radianes) … OPERACIONES BÁSICAS CON MATRICES Símbolo Expresión Operación + * . Ejemplo >> alumno. % introducimos el campo nombre en la estructura alumno >> alumno. no una matriz) Potenciación elemento a elemento de matrices Trasposición compleja conjugada Trasposición de matrices . podemos utilizar las funciones abs. double o sumamos cero.^ ' .\ B A ^ n División elemento a elemento de matrices por la derecha A . Si queremos que escriba algo en pantalla podemos utilizar el comando disp.* / . % introducimos el campo apellido1 en la estructura alumno >> alumno. % introducimos el campo apellido2 en la estructura alumno A + B A .nombre = 'Pablo'.' División elemento a elemento de matrices por la izquierda Potenciación (n debe ser un número. Son posibles las operaciones matemáticas sobre cadenas. ésta se ve como un vector de números en ASCII.\ ^ . Si queremos cambiar a minúsculas añadiremos la diferencia entre 'a' y 'A'.Suma de matrices Resta de matrices Multiplicación de B A * B A matrices .apellido2 = 'García'. podemos ir creando los distintos campos uno a uno o bien con el comando struct. No hace falta definir previamente el modelo de la estructura.* B A / B Multiplicación elemento a elemento de matrices A .' TEXTO Una cadena de caracteres es texto rodeado por comillas simples (') y se manejan como vectores filas. ESTRUCTURAS CÓMO DEFINIRLAS Es una agrupación de datos de tipo diferente bajo un mismo nombre./ \ . Para restaurarla y verla de nuevo como cadena de caracteres. A los datos les llamamos campos. usamos la función setstr. Una vez hecha una operación matemática sobre una cadena. donde los nombres de los campos se escriben entre apóstrofos (') seguidos del valor que se les quiere asignar. Para ver la representación ASCII de una cadena.apellido1 = 'Fernández'./ B A \ B División de matrices por la derecha A . 16). Los argumentos deben ser vectores de la misma longitud.'Gil'. >> alumno (2) = struct ('nombre'.'Fermín'. y = [4 1 0 1 4 9].>> alumno.'apellido1'.'edad'.15).'Gil'.y) % escribe los datos de todos los campo nombre de la estructura en orden . por ejemplo: >> alumno (1) = struct ('nombre'.'apellido2'.'Pablo'.'edad'.'apellido2'.nombre ans = Pablo ans = Fermín GRÁFICAS 2-D La orden plot genera una gráfica.'fernández'.'apellido1'.'Martínez'.edad = 15. >> plot (x.'Martínez'. >> alumno % nos devuelve información sobre los campos que tiene la estructura alumno alumno = 1x2 struct array with fields: Nombre Apellido Edad >> alumno (1) % nos devuelve los datos del primer elemento del vector de la estructura ans = nombre: 'Pablo' apellido1: 'fernández' apellido2: 'García' edad: 15 >> alumno (2) % nos devuelve los datos del segundo elemento del vector de la estructura ans = nombre: 'Fermín' apellido1: 'Martínez' apellido2: 'Gil' edad: 16 Para ver un campo concreto de todos los alumnos bastaría teclear: >> alumno.'apellido1'.'apellido2'. % introducimos el campo edad en la estructura alumno >> alumno % escribe por pantalla la información almacenada en la estructura alumno alumno = nombre: 'Pablo' apellido1: 'Fernández' apellido2: 'García' edad: 15 >> alumno2 = struct ('nombre'.'edad'. Ejemplo: >> x = [-2 -1 0 1 2 3].'Fermín'.'García'.16) alumno2 = % otro modo de introducir los campos nombre: 'Fermín' apellido1: 'Martínez' apellido2: 'Gil' edad: 16 Pueden crearse vectores y matrices de estructuras. Si queremos cambiar la apariencia de la gráfica basta pinchar en el último botón de la barra de herramientas y se abrirán unos cuadros en los laterales que nos permitirán ir haciendo los cambios deseados como darle nombre a los ejes. z = [6 5 3 7 5 2].z) . La función plot nos permite otras opciones como superponer gráficas sobre los mismos ejes: >> x = [-2 -1 0 1 2 3].y.x. >> plot (x. y = [4 1 0 1 4 9]. En la práctica las expresiones suelen ser del tipo escalar:escalar en cuyo caso las columnas son escalares. SENTENCIA FOR Un bloque for en cada iteración asigna a la variable la columna i-ésima de la expresión y ejecuta las órdenes. 'texto') texto.'*') Además podemos colocar etiquetas o manipular la gráfica: etiqueta sobre el eje X de la gráfica actual: eje Y de la gráfica actual: cabecera de la gráfica actual: especificado por las coordenadas: lo indicamos después con el ratón: rejilla: fija valores máximo y mínimo de los ejes: ) fija que la escala en los ejes sea igual: sea un cuadrado: equal y axis square: de gráfico: ventana de gráfico: >> xlabel('texto') etiqueta sobre el >> ylabel('texto') título en la >> title('texto') texto en el lugar >> text(x.y.y.También podemos usar distintos tipos de líneas para el dibujo de la gráfica: >> plot (x. for variable = expresión <orden> <orden> . el lugar >> gtext('texto') dibujar una >> grid >> axis( [xmin xmax ymin ymax] >> axis equal fija que la gráfica >> axis square desactiva axis >> axis normal abre una ventana >> hold on borra lo que hay en la >> hold off PROGRAMACIÓN DE MATLAB Matlab es una aplicación que permite programar fácilmente. while <expresión> <orden> <orden> … <orden> end SENTENCIA IF Un bloque if puede escribirse de varias maneras distintas. Esto se lo indicaremos usando else dentro del bloque. if <expresión> <órdenes evaluadas si la expresión es verdadera> end Puede que nos interese que en caso de no ejecutar dicha orden ejecute otra distinta. if <expresión> <órdenes evaluadas si la expresión es verdadera> else <órdenes evaluadas si la expresión end es falsa .… <orden> end SENTENCIA WHILE Un bloque while ejecuta las órdenes mientras todos los elementos de la expresión sean verdaderos. Lo que hace es evaluar una expresión lógica y si es cierta ejecuta las órdenes que encuentre antes del end. Si queremos dar una estructura mucho más completa. disp('Estos son los números primos menores de 100') disp(2) for i=2:100 n=2. else n=n+1. usaremos la más general donde sólo se evalúan las órdenes asociadas con la primera expresión verdadera de todas. En cuanto la evalúe deja de leer el resto y se dirige directamente al end. SENTENCIA CONTINUE La sentencia continue hace que se pase inmediatamente a la siguiente iteración del bucle for o del bucle while saltando todas las órdenes que hay entre el continue y el fin del bucle en la iteración actual.n)==0 n=i. while n <= sqrt(i) if rem(i. Ejemplo: Podemos mezclar en un programa varias sentencias de este estilo. end end end if n~=i disp(i) end . while y for. if <expresión1> <órdenes evaluadas si la expresión1 es verdadera> elseif <expresión2> <órdenes evaluadas si la expresión2 es verdadera> elseif <expresión3> <órdenes evaluadas si la expresión3 es verdadera> elseif …… …… else end <órdenes evaluadas si ninguna otra expresión es verdadera> SENTENCIA BREAK Si queremos que en un momento dado termine la ejecución de un bucle for o un bucle while usaremos break. Aquí podemos ver un programa que escribe por pantalla los primos del 1 al 100 usando las sentencias if. Ejemplo: >> fplot ('sin'.3*pi] ) .ANÁLISIS NUMÉRICO REPRESENTACIÓN GRÁFICA Existe la función fplot que evalúa la función que se desea representar en la gráfica de salida. Como entrada. necesita conocer el nombre de la función como una cadena de caracteres y el rango de representación como un vector de dos elementos: fplot ('nombre'. [-3*pi. valor max] ). [ valor min. Aunque es mejor que la ecuación de Van der Waals. . Sin embargo. la ecuación de Redlich-Kwong fue una mejora considerable sobre las otras ecuaciones de la época.1.-ECUACIONES TERMODINAMICAS PARA GASES REALES 1. puede usarse conjuntamente con expresiones concretas para la fase líquida en tal caso. 1.1. la cual está basada en una modificación de la ley de los gases ideales para que se aproxime de manera más precisa al comportamiento de los gases reales al tener en cuenta su tamaño no nulo y la atracción entre sus partículas.ω) función de la temperatura y del factor acéntrico.REDLICH-KWONG En 1972 Soave2 reemplazó el término a/√(T) de la ecuación de Redlich-Kwong por una expresión α(T. cuyo origen se remonta a 1873.-ECUACION DE REDLICH-KWONG Introducida en 1949. La función α fue concebida para cuadrar con los datos de las presiones de vapor de los hidrocarburos. no da buenos resultados sobre la fase líquida y por ello no puede usarse para calcular precisamente los equilibrios líquido-vapor. debe su nombre a Johannes Diderik van der Waals.-ECUACION DE VAN DER WALLS La ecuación de Van der Waals es una ecuación de estado de un fluido compuesto de partículas con un tamaño no despreciable y con fuerzas intermoleculares.-ECUACION DE SOAVE. La ecuación de Redlich-Kwong es adecuada para calcular las propiedades de la fase gaseosa cuando el cociente entre la presión y la presión crítica es menor que la mitad del cociente entre la temperatura y la temperatura crítica.3. quien recibió el premio Nobel en 1910 por su trabajo en la ecuación de estado para gases y líquidos. como las fuerzas de Van der Waals.2. Aún goza de bastante interés debido a su expresión relativamente simple. esta ecuación describe acertadamente el comportamiento de estas sustancias. 1. La ecuación. C a grupos de tres. La ecuación debía ser aplicable a todos los cálculos de todas las propiedades de los fluidos en procesos naturales de gases.6.4. y así sucesivamente 1. temperatura y composición. 4. 1. aunque es bastante mejor para predecir las densidades de muchos compuestos en fase líquida.5. que debía ser independiente de la presión. se pueden desarrollar expresiones teóricas para cada uno de los coeficientes.-ECUACION VIRIAL Aunque generalmente no es la ecuación de estado más conveniente.-ECUACION DE BEATLIE BRIDGEMAN Este es un modelo de 5 constantes. 2. la ecuación del Virial es importante dado que puede ser obtenida directamente por mecánica estadística. En este caso B corresponde a interacciones entre pares de moléculas.-ECUACION DE PENG-ROBINSON La ecuación de Peng-Robinson fue desarrollada en 1976 para cumplir los siguientes objetivos:3 1. Las reglas de mezclado no debían emplear más que un parámetro sobre las interacciones binarias. las 5 constantes son 1. Los parámetros habían de poder ser expresados en función de las propiedades críticas y el factor acéntrico. Si se hacen las suposiciones apropiadas sobre la forma matemática de las fuerzas intermoleculares. Generalmente la ecuación de Peng-Robinson da unos resultados similares a la de Soave. especialmente los apolares.7. El modelo debía ser razonablemente preciso cerca del punto crítico. cuyas ecuaciones son las siguientes Por consiguiente.-ECUACION DE BENEDICT-WEBB-RUBIN Esta modelización realizada en 1940 especialmente para hidrocarburos livianos y las mezclas de los mismos también es denominada ecuación BWR. . 3.1. particularmente para cálculos del factor de compresibilidad y la densidad líquida. Vo). Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):').Vn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3..Vo). a=0.b).[0.2. R=input('Introduzca la constante R (atm*L/mol*ºK):'). disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo del Volumen Molar syms x fx=P*x^3-(P*b+R*T)*x^2+a*x-a*b. Vn=Vo-(y0)/(df0). Tc=input('Introduzca la Temperatura Critica del gas (ºK):'). P=input('Introduzca la Presion del gas (atm):').4f\n'.0.'color'.i. PARA CADA UNA DE LAS ECUACIONES 2.'r') end case 2 %Calculo de la Presion de un gas disp('Calculo de la Presio de un gas') disp('Por la ecuacion de Van der Waals ') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. syms x switch metodo case 1 %Calculo del Volumen Volar disp('Calculo del Volumen Molar de un gas') disp('Por la ecuacion de Van der Waals ') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing.0.20. fprintf('la solucion de Vo (L/mol) es:%f\n'.T.421875*R*R*Tc*Tc/Pc.20].-LISTADO DE PROGRAMAS EL PROGRAMA CALCULA P. b=0. fprintf('La solucion de la constate a (atm^2*L^2*K^2/mol^2) es:%f\n'. disp('La ecuacion de Van der Waals') disp('Encontraremos el volumen molar') disp('Encontrando el Vo') Vo=R*T/P.PROGRAMA PARA LA ECUACION DE VAN DER WAALS %Utilizando un menu para seleccionar un método para la solucion de %ecuaciones no lineales.'Temperatura'). fprintf('La solucion de la constante b (L/mol) es:%f\n'. end ezplot(fx).Vo). clc metodo=menu('Por el Metodo de Van der Waals que calcular?:'.4f\n'.0].'Presion'.125*R*Tc/Pc. df=diff(fx.1.0d iteraciones se encontró la convergencia = %4.-20.x). desea .i.grid on line([-20. Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):').Vn) return else Vo=Vn. for i=1:100 y0=subs(fx. fprintf('Iteracion%3d: Vn=%4.'Volumen'. T=input('Introduzca la Temperaturadel gas (ºK):'). df0=subs(df.V.a). R=input('Introduzca la constante R (atm*L/mol*ºK):'). clear. Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):').b). case 3 %Calculo de la temperatura de un gas disp('Calculo de la temperatura de un gas') disp('Por la ecuacion de Van der Waals ') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing.2 PROGRAMA PARA LA ECUACION DE REDLICH-KWONG %Utilizando un menu para seleccionar un método para la solucion de %ecuaciones no lineales.5).T). fprintf('La solucion de la constate a (atm^2*L^2*K^2/mol^2) es:%f\n'. end 2. fprintf('la solucion de la constante b (L/mol) es:%f\n'. fprintf('La solucion de la constante b (L/mol) es:%f\n'.4278*(R^2)*(Tc^2. Tc=input('Introduzca la Temperatura Critica del gas (ºK):'). fprintf('La solucion de la constante b (L/mol) es:%f\n'. disp('Por la ecuacion de Riedlich-Kwong') P=input('Introduzca la Presion del gas (atm):'). clear.5/mol^2) es:%f\n'. fprintf('la solucion de Vo (L/mol) es:%f\n'. V=input('Introduzca el volumen del gas (L/mol):'). syms x switch metodo case 1 %Calculo del Volumen Molar disp('Calculo del Volumen Molar') disp('por el metodo de Riedlich-Kwong') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing.421875*R*R*Tc*Tc/Pc. a=0. a=0.Tc=input('Introduzca la Temperatura Critica del gas (ºK):'). b=0. fprintf('la solucion de la constate a (atm*L^2*K^0.'Volumen'. disp('Encontraremos el Volumen Molar') disp('Encontrando el Vo') Vo=R*T/P.P).Vo).b). desea .'Presion'. a=0.b). R=input('Introduzca la constante R (atm*L/mol*ºK):').a).5)-(a*b)/(T^0. T=input('Introduzca la Temperaturadel gas (ºK):'). V=input('Introduzca el volumen del gas (L/mol):'). R=input('Introduzca la constante R (atm*L/mol*ºK):'). fprintf('La solucion de la constate a (atm^2*L^2*K^2/mol^2) es:%f\n'.125*R*Tc/Pc. Tc=input('Introduzca la Temperatura Critica del gas (ºK):').'Temperatura'). P=input('Introduzca la Presion del gas (atm):').0867*R*Tc/Pc. P=(R*T/(V-b))-a/V^2.a). Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):'). b=0.5)/(Pc). disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo del Volumen Molar syms x fx=P*(x^3)-R*T*(x^2)-(b^2)*P*x-R*b*T*x+(a*x)/(T^0. b=0. T=input('Introduzca la Temperaturadel gas (ºK):'). T=(P+a/(V^2))*(V-b)*1/R.421875*R*R*Tc*Tc/Pc. clc metodo=menu('Por el Metodo de Riedlich-Kwong que calcular?:'.a).125*R*Tc/Pc. fprintf('La solucion de la Temperatura (ºK) es:%f\n'. fprintf('La solucion de la presion es:%f\n'. 4278*(R^2)*(Tc^2.5)/(Pc).i.P). P=input('Introduzca la Presion del gas (atm):'). disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo de la temperatura .4f\n'. Y=(V+b)*V*T^0.4278*(R^2)*(Tc^2. T=input('Introduzca la Temperatura del gas (ºK):').'r') end case 2 %Calculo de la Presion del gas disp('Calculo de la Presion del gas') disp('por el metodo de Riedlich-Kwong') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing.grid on line([-20.0.To). P=(A/U)-(a/Y). fprintf('la solucion de To (ºK) es:%f\n'. fprintf('la solucion A es:%f\n'.5)/(Pc).20.'color'. Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):'). Tc=input('Introduzca la Temperatura Critica del gas (ºK):').U). fprintf('la solucion U es:%f\n'. R=input('Introduzca la constante R (atm*L/mol*ºK):').x). a=0. fprintf('la solucion de la constate a (atm*L^2*K^0. fprintf('la solucion de la constante b (L/mol) es:%f\n'.0. disp('Por la ecuacion de Riedlich-Kwong') V=input('Introduzca del volumen molar (L/mol):').df=diff(fx. end ezplot(fx). R=input('Introduzca la constante R (atm*L/mol*ºK):'). fprintf('la solucion de la constante b (L/mol) es:%f\n'.0d iteraciones se encontró la convergencia = %4.5/mol^2) es:%f\n'.0867*R*Tc/Pc. Tc=input('Introduzca la Temperatura Critica del gas (ºK):'). fprintf('la solucion de la Presion del gas (atm) es:%f\n'.-20.5. disp('Por la ecuacion de Riedlich-Kwong') disp('Encontraremos la Temperatura') disp('Encontrando el To') To=V*P/R.b).20]. Vn=Vo-(y0)/(df0).0867*R*Tc/Pc. disp('Por la ecuacion de Riedlich-Kwong') V=input('Introduzca del volumen molar (L/mol):').A). b=0.5/mol^2) es:%f\n'.Vo).4f\n'.Vo). b=0. for i=1:100 y0=subs(fx. U=V-b. A=R*T.a).a). a=0. fprintf('la solucion Y es:%f\n'. fprintf('la solucion de la constate a (atm*L^2*K^0.0]. case 3 %Calculo de la Temperatura del gas disp('Calculo de la Tempreratura del gas') disp('por el metodo de Riedlich-Kwong') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing.[0.Vn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3.i.Vn) return else Vo=Vn.b). Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):'). df0=subs(df.Y). fprintf('Iteracion%3d: Vn=%4. -20. b=0. disp('Encontraremos el volumen molar') disp('Encontrando el Vo') Vo=R*T/P.'Volumen'. Tr=T/Tc. disp('Por la ecuacion de soave-Riedlich-Kwong') P=input('Introduzca la Presion del gas (atm):').'color'.x). df=diff(fx.To).42747*(R^2)*(Tc^2)/(Pc). syms x switch metodo case 1 %Calculo del volumen molar disp('Calculo del volumen molar') disp('por el metodo de soave-Riedlich-Kwong') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. fprintf('la solucion de la constante b (L/mol) es:%f\n'. a=0. R=input('Introduzca la constante R (atm*L/mol*ºK):').REDLICH-KWONG %Utilizando un menu para seleccionar un método para la solucion de %ecuaciones no lineales.0. clc metodo=menu('Por el Metodo de soave-Riedlich-Kwong calcular?:'.0.0].[0. alfa=(1+m*(1-Tr^0.b). clear.3 PROGRAMA PARA LA ECUACION DE SOAVE.To). df0=subs(df.'Temperatura'). fprintf('la solucion de la constate a (atm*L^2*K/mol^2) es:%f\n'.Tn) return else To=Tn. end ezplot(fx). Tc=input('Introduzca la Temperatura Critica del gas (ºK):').'r') end end 2. df=diff(fx.20].20. fprintf('Iteracion%3d: Vn=%4. for i=1:100 y0=subs(fx. fprintf('la solucion Tr es:%f\n'.syms x fx=P*(V^3)-R*x*(V^2)-(b^2)*P*V-R*b*x*V+(a*V)/(x^0.alfa).4f\n'.i.i. T=input('Introduzca la Temperaturadel gas (ºK):'). disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo del Volumen Molar syms x fx=P*(x^3)-R*T*(x^2)-(P*b^2+R*T*b-alfa*a)*x-a*b*alfa.1561*w^2.Tn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3. fprintf('la solucion de alfa es:%f\n'. fprintf('la solucion m es:%f\n'.x).5)-(a*b)/(x^0. Tn=To-(y0)/(df0).5517*w-0.4856+1.a). fprintf('la solucion de Vo (L/mol) es:%f\n'.5))^2. m=0.grid on line([-20. Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):').0d iteraciones se encontró la convergencia = %4.Vo). que desea .'Presion'.5).m).086864*R*Tc/Pc. w=input('introduzca el valor de w:').Tr).4f\n'. Vn) return else Vo=Vn.Vn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3.5517*w-0.'color'. A=R*T. fprintf('la solucion B es:%f\n'. a=0.42747*(R^2)*(Tc^2)/(Pc). end ezplot(fx). R=input('Introduzca la constante R (atm*L/mol*ºK):').b). b=0.Vo).b).20].5))^2.'r') end case 2 %Calculo de la presion disp('Calculo de la presion') disp('por el metodo de soave-Riedlich-Kwong') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing.[0.Tr).A).086864*R*Tc/Pc. B=V-b.-20.a). V=input('Introduzca del volumen molar (L/mol):'). fprintf('la solucion de la Presion del gas (atm) es:%f\n'. Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):').0d iteraciones se encontró la convergencia = %4. fprintf('la solucion Y es:%f\n'.Vo).m).20. fprintf('la solucion de la constante b (L/mol) es:%f\n'.i.grid on line([-20.for i=1:100 y0=subs(fx. R=input('Introduzca la constante R (atm*L/mol*ºK):'). fprintf('la solucion de la constate a (atm*L^2*K/mol^2) es:%f\n'. fprintf('Iteracion%3d: Vn=%4.alfa). m=0.4f\n'. fprintf('la solucion de la constante b (L/mol) es:%f\n'. Tc=input('Introduzca la Temperatura Critica del gas (ºK):').0].i.4f\n'.4856+1.42747*(R^2)*(Tc^2)/(Pc). Vn=Vo-(y0)/(df0). Tc=input('Introduzca la Temperatura Critica del gas (ºK):'). fprintf('la solucion de la constate a (atm*L^2*K/mol^2) es:%f\n'. a=0. P=input('Introduzca la Presion del gas (atm):').0.1561*w^2. alfa=(1+m*(1-Tr^0. df0=subs(df.Y). w=input('introduzca el valor de w:'). case 3 %Calculo de la Temperatura disp('Calculo de la Temperatura') disp('por el metodo de soave-Riedlich-Kwong') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. . V=input('Introduzca del volumen molar (L/mol):'). Petroleo y Gas Natural') Pc=input('Introduzca la Presion critica del gas (atm):').0. fprintf('la solucion A es:%f\n'. disp('Por la ecuacion de soave-Riedlich-Kwong') P=(A/B)-(Y/O). T=input('Introduzca la Temperaturadel gas (ºK):'). fprintf('la solucion de alfa es:%f\n'.086864*R*Tc/Pc. O=(V^2)+V*b. fprintf('la solucion Tr es:%f\n'. Tr=T/Tc.a).O). Y=a*alfa.P). b=0.B). fprintf('la solucion O es:%f\n'. fprintf('la solucion m es:%f\n'. m).To).0. disp ('--------------------------------------------------------------') Tc=input('Ingrese la Temperatura Critica (Tabla):(oK)\n Tc='). syms x global fv switch metodo case 1 clc.'r') end end 2.4 PROGRAMA PARA LA ECUACION DE PENG-ROBINSON %Utilizando un menu para seleccionar un método para la solucion de %ecuaciones no lineales.0d iteraciones se encontró la convergencia = %4.To).Tn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3.w=input('introduzca el valor de w:'). disp ('--------------------------------------------------------------') R=input('Ingrese la Constante Universal R:(Atm*L/oK*mol)\n R='). alfa=(1+m*(1-Tr^0.'Temperatura').i. df=diff(fx. df0=subs(df.'color'.'Volumen'.grid on line([-20.'Presion'.4f\n'. for i=1:100 y0=subs(fx.-20. disp ('--------------------------------------------------------------') P=input('Ingrese la condicion de la Presion:(atm)\n P='). clc metodo=menu('Por el Metodo de Peng Robinson que calcular?:'. m=0. disp ('--------------------------------------------------------------') Pc=input('Ingrese la Presion Critica (Tabla):(Atm)\n Pc='). fprintf('la solucion m es:%f\n'.4856+1. Tn=To-(y0)/(df0).4f\n'. disp ('--------------------------------------------------------------') desea .i. Tr=x/Tc.x).clear syms v disp ('------------------------') fprintf('Metodo de Peng Robinson:\n') disp ('------------------------') disp ('--------------------------------------------------------------') fprintf ('Ingrese las condiciones del problema\n') disp ('--------------------------------------------------------------') T=input('Ingrese la condicion de la Temperatura:(oK)\n T=').1561*w^2. fprintf('Iteracion%3d: Vn=%4. disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo de la temperatura syms x fx=P*(V^3)-R*x*(V^2)-(P*b^2+R*x*b-alfa*a)*V-a*b*alfa.20. fprintf('la solucion de To (ºK) es:%f\n'.Tn) return else To=Tn.5))^2.5517*w-0.To).20].0.0]. disp('Por la ecuacion de soave-Riedlich-Kwong') disp('Encontraremos la Temperatura') disp('Encontrando el To') To=V*P/R.[0. end ezplot(fx). clear. "b" son:\n') a=0. df=diff(fv. Pr=P/Pc. .6f\n'. disp ('--------------------------------------------------------------') R=input('Ingrese la Constante Universal R:(Atm*L/oK*mol)\n R=').grid on line([-20.'r') end case 2 disp ('------------------------') fprintf('Metodo de Peng Robinson:\n') disp ('------------------------') disp ('--------------------------------------------------------------') fprintf ('Ingrese las condiciones del problema\n') disp ('--------------------------------------------------------------') T=input('Ingrese la condicion de la Temperatura:(oK)\n T=').m).20.5f%30. disp (' m:') fprintf('%15. end ezplot(fv). fprintf ('\n-----------------------------------------------------------') V0=R*T/P. disp ('--------------------------------------------------------------') Pc=input('Ingrese la Presion Critica (Tabla):(Atm)\n Pc='). disp ('--------------------------------------------------------------') m=0.0. fprintf ('\n-----------------------------------------------------------') fprintf ('\nValor de las variable "a".v).5f%\n'.45724*((R^2*Tc^2)/Pc). for i=1:100 y0=subs(fv.5f%15.i. disp (' Alpha').b) fprintf ('\n-----------------------------------------------------------') w=input('\nIngrese la Constante "w" de difusividad del Gas (Tabla):\n w=').V0).0. fprintf('\nIteracion%3d: Vn = %4.5f%\n'.0]. Vn=V0-y0/df0.alpha).a.Vn) return else V0=Vn.07780*(R*Tc/Pc). fprintf('\nLa funcion reducida de "Peng Robinson" es: A*v^3+B*v^2+C*v+D'). disp ('--------------------------------------------------------------') disp (' a [atm*L^2/mol^2]: b [Litros/mol]:') fprintf('%20. fprintf('\nEl valor de "alpha" es:\n').[0. df0=subs(df.5f%\n'. b=0. fprintf ('\n-----------------------------------------------------------') alpha=(1+m*(1-Tr^0. disp ('--------------------------------------------------------------') V=input('Ingrese el volumen molar:(L/mol)\n Vn=').5))^2.37464+1.-20. fprintf('%15.i.Vn) if abs(y0/df0)<10E-8 disp('Por el método de Newton Raphson:') fprintf('En %3.5f%\n'.fprintf ('La Temperatura y presion reducida son:\n') disp ('--------------------------------------------------------------') disp (' Tr: Pr:') Tr=T/Tc.V0).6f\n'. fprintf('%15.0d iteraciones el volumen Molar encontrado es: \n\n=> Vn [litros/mol]= %4.29699*w^2. fprintf ('\n-----------------------------------------------------------') fv=P*v^3+(P*b-R*T)*v^2+(-3*P*b^2-2*b*R*T+a*alpha)*v+(R*T*b^2-a*b*alpha+P*b^3).20].Pr). fprintf('El valor de "m" es:\n').'color'. disp ('--------------------------------------------------------------') Tc=input('Ingrese la Temperatura Critica (Tabla):(oK)\n Tc=').Tr.54226*w-0. fprintf('\nEl valor de la Presion encontrado es: \n P=%5.5f%\n'.5f%30. fprintf('%15.07780*(R*Tc/Pc). fprintf ('\n-----------------------------------------------------------') fprintf ('\nValor de las variable "a".5f%\n'. fprintf ('\n----------------------------------------------------------') fprintf('\nLa ecuacion reducida es: \nP=(((R*T)*(V-b)^-1)-((a*alpha)*(V^2+2*V*bb^2)^-1))') fprintf ('\n-----------------------------------------------------------') P=(((R*T)*(V-b)^-1)-((a*alpha)*(V^2+2*V*b-b^2)^-1)). disp ('--------------------------------------------------------------') Tc=input('Ingrese la Temperatura Critica (Tabla):(oK)\n Tc=').5f%15.45724*((R^2*Tc^2)/Pc).a. disp (' Alpha').07780*(R*Tc/Pc).a. fprintf ('\n-----------------------------------------------------------') fprintf ('\nValor de las variable "a".b) fprintf ('\n-----------------------------------------------------------') . fprintf ('\n-----------------------------------------------------------') alpha=(1+m*(1-Tr^0.5f%\n'.5))^2. fprintf('%15. disp ('--------------------------------------------------------------') disp (' a [atm*L^2/mol^2]: b [Litros/mol]:') fprintf('%20.Pr). fprintf('El valor de "m" es:\n').5f%\n'.Tr). b=0.45724*((R^2*Tc^2)/Pc).5f%\n'.m).5f\n'."b" son:\n') a=0. disp ('--------------------------------------------------------------') P=input('Ingrese la condicion de la Presion:(atm)\n P='). fprintf('%15. disp ('--------------------------------------------------------------') Pc=input('Ingrese la Presion Critica (Tabla):(Atm)\n Pc=').b) fprintf ('\n-----------------------------------------------------------') w=input('\nIngrese la Constante "w" de difusividad del Gas (Tabla):\n w='). disp ('--------------------------------------------------------------') m=0.clear syms v T fv Tr disp ('------------------------') fprintf('Metodo de Peng Robinson:\n') disp ('------------------------') disp ('--------------------------------------------------------------') fprintf ('Ingrese las condiciones del problema\n') disp ('--------------------------------------------------------------') v=input('Ingrese la condicion del Volumen Molara:(oK)\n Vn=').54226*w-0. b=0.37464+1.alpha).disp ('--------------------------------------------------------------') fprintf ('La Temperatura y presion reducida son:\n') disp ('--------------------------------------------------------------') disp (' Tr: ') Tr=T/Tc.5f%30. fprintf('\nEl valor de "alpha" es:\n').P) case 3 clc. disp ('--------------------------------------------------------------') fprintf ('La Temperatura y presion reducida son:\n') disp ('--------------------------------------------------------------') disp (' Tr: ') Pr=P/Pc."b" son:\n') a=0.5f%15. disp (' m:') fprintf('%15.5f%\n'. disp ('--------------------------------------------------------------') disp (' a [atm*L^2/mol^2]: b [Litros/mol]:') fprintf('%20.29699*w^2. disp ('--------------------------------------------------------------') R=input('Ingrese la Constante Universal R:(Atm*L/oK*mol)\n R='). w=input('\nIngrese la Constante "w" de difusividad del Gas (Tabla):\n w=').[0. df0=subs(df.Tn) if abs(y0/df0)<10E-8 fprintf ('\n---------------------------------------------------------\n') disp('Por el método de Newton Raphson:') fprintf ('-----------------------------------------------------------\n') fprintf('En %3.'Presion'.T). b=input('Introduzca la constante b del gas :'). fprintf('El valor de "m" es:\n').m). Petroleo y Gas Natural') Ao=input('Introduzca la constante Ao:'). for i=1:100 y0=subs(fv. T=input('Introduzca la Temperatura del gas :').20. fprintf ('\n---------------------------------------------------------\n') fv=P*v^3+(P*b-R*T)*v^2+(-3*P*b^2-2*b*R*T+a*alpha)*v+(R*T*b^2-a*b*alpha+P*b^3).0. disp('Por la Btatle-Bridgeman ') disp('Encontraremos el volumen molar') disp('Encontrando el Vo') Vo=R*T/P.T0). disp (' m:') fprintf('%15.5))^2. end ezplot(fv).0.0]. fprintf ('\n-----------------------------------------------------------') T0=P*v/R.5f%\n'. fprintf('\nLa funcion reducida de "Peng Robinson" es: A*v^3+B*v^2+C*v+D'). syms x switch metodo case 1 %Calculo del Volumen Molar disp('Calculo del Volumen Molar') disp('por el metodo de Btatle-Bridgeman ') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. alpha=(1+m*(1-Tr^0. Tn=T0-y0/df0.T0).37464+1.Tn) return else T0=Tn.i.'color'.6f\n'. que desea . P=input('Introduzca la Presion del gas :'). fprintf('\nIteracion%3d: Tn = %4.'r') end end 2.29699*w^2.'Temperatura').0d iteraciones la temperatura encontrado es: \n\n=> Tn [oK]= %4.20].54226*w-0.'Volumen'. Bo=input('Introduzca la constante Bo del gas:').6f\n'.grid on line([-20. Tr=T/Tc.i. a=input('Introduzca la constante a del gas :'). C=input('Introduzca la constante C del gas:'). R=input('Introduzca la constante R:').-20. clear. df=diff(fv.5 PROGRAMA PARA LA ECUACION DE BEATTIE-BRIDGEMAN %Utilizando un menu para seleccionar un método para la solucion de %ecuaciones no lineales. clc metodo=menu('Por el Metodo de BeatleBrigman calcular?:'. disp ('--------------------------------------------------------------') m=0. 20.Vn) return else Vo=Vn.Vo).Vo).-20.20]. R=input('Introduzca la constante R :').4f\n'. P=input('Introduzca la Presion del gas :'). fprintf('Iteracion%3d: Vn=%4. end ezplot(fx). Bo=input('Introduzca la constante Bo del gas :'). disp('Por la Btatle-Bridgeman ') disp('Encontraremos la temperatura de un gas') disp('Encontrando el To') . a=input('Introduzca la constante a del gas :'). Vn=Vo-(y0)/(df0).0. C=(Ao*a-R*T*Bo*b-R*Bo*C/T^2)/Vm^3.0d iteraciones se encontró la convergencia = %4. b=input('Introduzca la constante b del gas :'). C=input('Introduzca la constante C del gas :'). disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo del Volumen Molar syms x fx=R*T*(x+Bo*(1-b/x))*(1-C/(x*T^3))-Ao*(1-a/x)-P*x^2. df0=subs(df. fprintf('La solucion de B es:%f\n'. D=(R*Bo*C*b/T^2)/Vm^4.0]. a=input('Introduzca la constante a del gas :'). case 3 %Calculo de la Temperatura de un gas disp('Calculo de la Temperatura de un gas') disp('por el metodo de Btatle-Bridgeman ') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. Petroleo y Gas Natural') Ao=input('Introduzca la constante Ao :'). for i=1:100 y0=subs(fx.4f\n'.x).grid on line([-20.'r') end case 2 %Calculo de la Presion de un gas disp('Calculo de la Presion de un gas') disp('por el metodo de Btatle-Bridgeman ') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. B=(R*T*Bo-Ao-R*C/T^2)/Vm^2.Vn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3. T=input('Introduzca la Temperatura del gas :').B). fprintf('La solucion de K es:%f\n'. Bo=input('Introduzca la constante Bo del gas :'). fprintf('La solucion de D es:%f\n'. fprintf('La solucion la Presion del gas es:%f\n'. C=input('Introduzca la constante C del gas :'). disp('Por la Btatle-Bridgeman ') P=K+B+C+D. fprintf('La solucion de C es:%f\n'. Vm=input('Introduzca el Volumen Molar del gas :'). R=input('Introduzca la constante R :'). K=R*T/Vm.fprintf('La solucion de Vo (ft^3/lbm) es:%f\n'.K). df=diff(fx.C). Vm=input('Introduzca el Volumen Molar del gas :').'color'.[0.i.0. b=input('Introduzca la constante b del gas :').D).i.P). Petroleo y Gas Natural') Ao=input('Introduzca la constante Ao :').Vo). 082054.4f\n'.To=P*Vm/R. disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo de la Temperatura syms x fx=R*x*(Vm+Bo*(1-b/Vm))*(1-C/(Vm*x^3))-Ao*(1-a/Vm)-P*Vm^2. case 2 p=input ('introduzca el valor de la presión: ').0d iteraciones se encontró la convergencia = %4. A0=input('introduzca el valor de A0: ').0. for i=1:100 y0=subs(fx.[0. . df=duiff(fx.20].i.Tn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3. B0=input('introduzca el valor de B0: ').i.T). clc metodo=menu('Seleccione un método de solución desde el menu:'. syms x switch metodo case 1 v=input ('introduzca el valor del volumen: ').0.20.'r') end end 2.T).'volumen molar'.'T(%d)=%f/n'. df0=subs(df. a=input('introduzca el valor de a: ').-20. R=0.082054. df=(-(R*(v)^3)-((R*B0+((2*R*c)/(x0)^3))*(v)^2)-(((2*R*B0*c/(x0)^3)R*B0*b)*v)+((R)^2*B0*b*c/(x0)^2)). b=input('introduzca el valor de b: ').mol. fprintf('Iteracion%3d: Vn=%4.To).4f\n'.To).0]. x0=R*T/p. x0=p*v/R. x0=T fprintf(1. T=input ('introduzca el valor de la temperatura:').To).Tn) return else To=Tn. p=input ('introduzca el valor de la presion:').'presion'). end ezplot(fx). T=x0-(f/df).lt. end fprintf( 'la temperatura calculada es: %2f\n'.'Temperatura'. R= 0. N=input ('introduzca el número de iteraciones:').'color'. for k= 1:N f=(((p*(v)^4)-(R*(x0)*(v)^3)-((R*(x0)*B0-((R*c)/(x0)^2)-A0)*(v)^2)-((A0*a(R*B0*c/(x0)^2)-R*(x0)*B0*b)*v)-((R)^2*B0*b*c/(x0)))).6 PROGRAMA PARA LA ECUACION VIRIAL %ECUASION VIRIAL %Utilizando un menu para seleccionar un método para la solucion de la ecuasion virial % Las unidads con las que se esta trabajando son: atm.k.K clear.grid on line([-20. c=input('introduzca el valor de c: '). N=input ('introduzca el número de iteraciones:'). Tn=To-(y0)/(df0).x). fprintf('La solucion de To (ºR) es:%f\n'. v=x0-(f/df). x0=R*T/v.'p(%d)=%f/n'. fprintf('el valor de C es: %2f\n'.'Volumen'. case 3 v=input ('introduzca el valor del volumen: '). end fprintf( 'el volumen molar calculado es: %2f\n'. C=(A0*a)-((R*B0*c)/(T^2)). fprintf('el valor de D es: %2f\n'. fprintf('el valor de D es: %2f\n'. c=input('introduzca el valor de c: '). fprintf('el valor de C es: %2f\n'.R*T*B0*b.k.7 PROGRAMA PARA LA ECUACION DE BENEDICT-WEBB-RUBIN %Utilizando un menu para seleccionar un método para la solucion de %ecuaciones no lineales.A0=input('introduzca el valor de A0: '). fprintf('el valor de B es: %2f\n'. for k= 1:N f=(((p*(x0)^4)-(R*T*(x0)^3)-(B*(x0)^2)-(C*x0)-(D*R*T))). clear.p). T=input ('introduzca el valor de la temperatura:').'Presion'. A0=input('introduzca el valor de A0: '). c=input('introduzca el valor de c: ').082054.k. C=(A0*a)-((R*B0*c)/(T^2)). b=input('introduzca el valor de b: ').v).D).'v(%d)=%f/n'.B). clc metodo=menu('Por el Metodo de Benedict-Webb-Rubin calcular?:'.clear %Calculo del Volumen Molar por la ecuacion de Benedict-Webb-Rubi disp('Calculo del Volumen Molar') disp('por el metodo de Benedict-Webb-Rubi') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing.'Temperatura'). B=(R*T*B0)-((R*c)/(T^2))-A0. end 2. N=input ('introduzca el número de iteraciones:').(R*T*B0*b). a=input('introduzca el valor de a: '). end fprintf( 'la presion calculada es: %2f\n'.p). fprintf('el valor de B es: %2f\n'. B0=input('introduzca el valor de B0: '). B0=input('introduzca el valor de B0: ').C).v).B). D=((R*B0*b*c)/(T^2)). p=x0-(f/df).D). B=(R*T*B0)-((R*c)/(T^2))-A0. b=input('introduzca el valor de b: '). Petroleo y Gas Natural') que desea . df=((v)^4). switch metodo case 1 clc. x0=v fprintf(1. R= 0. for k= 1:N f=(((x0*(v)^4)-(R*T*(v)^3)-(B*(v)^2)-(C*v)-(D*R*T))). D=((R*B0*b*c)/(T^2)). x0=p fprintf(1. df=((p*4*(x0)^3)-(3*R*T*(x0)^2)-(2*B*(x0))-C). a=input('introduzca el valor de a: ').C). J). Vn=Vo-(y0)/(df0). c=input('Introduzca la constante c:'). disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo del Volumen Molar syms x fx=-P+(A*1/x)+(B*1/x^2)+(D*1/x^3)+(F*1/x^6)+(J*(1+gama/(x^2))*exp((gama/x^2)))*(1/x^3).0.Vo). disp('Por la Benedict-Webb-Rubi') disp('Encontraremos el volumen molar') disp('Encontrando el Vo') Vo=R*T/P. P=input('Introduzca la Presion del gas:').Ao=input('Introduzca la constante Ao :'). df0=subs(df. fprintf('La solucion de D es:%f\n'. end ezplot(fx). R=input('Introduzca la constante R :'). alfa=input('Introduzca alfa:').Vn) return else Vo=Vn. gama=input('Introduzca gama:'). fprintf('La solucion de J es:%f\n'. df=diff(fx. a=input('Introduzca la constante a del gas:').D).4f\n'. T=input('Introduzca la Temperatura del gas (ºK):'). fprintf('La solucion de B es:%f\n'. syms x A=R*T.i. fprintf('Iteracion%3d: Vn=%4. c=input('Introduzca la constante c:').B). Petroleo y Gas Natural') Ao=input('Introduzca la constante Ao :'). . B=(Bo*R*T-Ao-(Co/T^2)). a=input('Introduzca la constante a del gas:').20.grid on line([-20. for i=1:100 y0=subs(fx.[0.Vn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3. Bo=input('Introduzca la constante Bo del gas :'). fprintf('La solucion de A es:%f\n'. alfa=input('Introduzca alfa:').0d iteraciones se encontró la convergencia Vn = %4.0.i. F=a*alfa.x). fprintf('La solucion de Vo es:%f\n'. Co=input('Introduzca la constante Co del gas :'). b=input('Introduzca la constante b del gas:'). Bo=input('Introduzca la constante Bo del gas :').A).F). gama=input('Introduzca gama:'). fprintf('La solucion de F es:%f\n'. Co=input('Introduzca la constante Co del gas :').0].20].-20. T=input('Introduzca la Temperatura del gas (ºK):').'color'.4f\n'.Vo).Vo). J=(c/T^2). R=input('Introduzca la constante R :').'r') end case 2 %Calculo del Volumen Molar por la ecuacion de Benedict-Webb-Rubi disp('Calculo del Volumen Molar') disp('por el metodo de Benedict-Webb-Rubi') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. D=(b*R*T-a). F).0d iteraciones se encontró la convergencia Vn = %4.4f\n'. J=(c/T^2).J). fprintf('La solucion de J es:%f\n'. J=(c/x^2). fprintf('La solucion de F es:%f\n'. disp('Por el metodo de Newton-Rapson') P=(A*1/Vm)+(B*1/Vm^2)+(D*1/Vm^3)+(F*1/Vm^6)+(J*(1+gama/(Vm^2))*exp((gama/Vm^2)))*(1/Vm^3).i. fprintf('La solucion de Vo es:%f\n'. Tn=To-(y0)/(df0). gama=input('Introduzca gama:'). df0=subs(df. A=R*x.D). D=(b*R*T-a). disp('Por la Benedict-Webb-Rubi') disp('Encontraremos de la Temperatura del gas') disp('Encontrando el To') syms x To=P*Vm/R. D=(b*R*x-a). B=(Bo*R*x-Ao-(Co/x^2)). F=a*alfa. Vm=input('Introduzca el Volumen Molar del gas:'). R=input('Introduzca la constante R :').A). fprintf('La solucion de F es:%f\n'. fprintf('La solucion de A es:%f\n'. endn . a=input('Introduzca la constante a del gas:'). c=input('Introduzca la constante c:'). Bo=input('Introduzca la constante Bo del gas :'). F=a*alfa.b=input('Introduzca la constante b del gas:'). fprintf('La solucion de D es:%f\n'. disp('Por el metodo de Newton-Rapson') %metodo newton Rapson para calculo de la Temperatura del gas fx=-P+(A*1/Vm)+(B*1/Vm^2)+(D*1/Vm^3)+(F*1/Vm^6)+(J*(1+gama/(Vm^2))*exp((gama/Vm^2)))*(1/Vm^3).x). alfa=input('Introduzca alfa:'). case 3 %Calculo de la Temperatura de un gas por la ecuacion de Benedict-Webb-Rubin disp('Calculo de la Tempratura de un gas') disp('por el metodo de Benedict-Webb-Rubi') disp('Universidad Autonoma Juan Misael Saracho') disp('Carrera de Ing. Vm=input('Introduzca el Volumen Molar del gas (m^3/Kmol):'). b=input('Introduzca la constante b del gas:'). fprintf('Iteracion%3d: Tn=%4. Co=input('Introduzca la constante Co del gas :').F). fprintf('La solucion de B es:%f\n'. fprintf('La solucion de la Presion del gas (bar) es:%f\n'. disp('Por la Benedict-Webb-Rubi') A=R*T.4f\n'.P).B). Petroleo y Gas Natural') Ao=input('Introduzca la constante Ao :'). P=input('Introduzca la Presion del gas:').To).To).Tn) return else To=Tn. B=(Bo*R*T-Ao-(Co/T^2)).Tn) if abs(y0/df0)<10E-9 disp('Por el método de Newton Raphson:') fprintf('En %3. df=diff(fx.i. for i=1:100 y0=subs(fx.To). 092828 En 5 iteraciones se encontró la convergencia = 0.0996 L/mol 3.860321 b) En 5 iteraciones se encontró la convergencia = 358.3.0].grid on line([-20.223172 b) La solucion de la presion es:173. el gas es esencialmente etano puro con un Volumen molar 0.4484 K . a) Redlich-Kwong. Van der Waals.20.Se ha de transportar gas natural desde los yacimientos productores hasta los centros de consumo. Benedict-Webb-Rubin Beattie-Bridgeman Peng-Robinson Soave. a través de un ducto..Redlich-Kwong Respuestas En 5 iteraciones se encontró la convergencia = 0. b) Van der Waals. el gas es esencialmente metano puro con una presión de 204 atm y Temperatura 18.1018 L/mol En 5 iteraciones el volumen Molar encontrado es: Vn [litros/mol]= 0.ezplot(fx).098 L/mol y Presion 200 atm.Se ha de transportar gas natural desde los yacimientos productores hasta los centros de consumo. a través de un ducto. Calcular el Volumen molar.-EJERCICIOS RESUELTOS: 3.'r') end end 3.0951 m3/kmol En 4 iteraciones se encontró la convergencia = 0.0.'color'.0963 L/mol En 5 iteraciones se encontró la convergencia = 0.3ºC.0.3ºC. Calcular la temperatura del gas. a) b) c) d) e) f) g) a) b) c) d) e) f) Redlich-Kwong.20]. Calcular la presión del gas. Respuestas: a) la solucion de la Presion del gas (atm) es:48. a través de un ducto.0972 L/mol En 5 iteraciones se encontró la convergencia = 0...096 L/mol y Temperatura 18. el gas es esencialmente etano puro con un Volumen molar 0.Redlich-Kwong Respuestas: a) En 4 iteraciones la temperatura encontrado es: Tn [K]= 374.-20. a) Peng-Robinson b) Soave.[0.960051 atm 3.Se ha de transportar gas natural desde los yacimientos productores hasta los centros de consumo.2.1. 3. en MPa.325kpa c) La presión del metano a una temperatura 700ºF y un volumen molar de 600m3/mol . 6.Redlich-Kwong a) El volumen molar del metano a una temperatura de 680ºC y una presión de 8 atm b) La temperatura del metano.-PROBLEMAS PROPUESTOS: 1. 3. en m3. 3. 4. Peng-Robinson 6.Utilizando la ecuación de estado de: a) Redlich-Kwong. Beattie-Bridgeman 5.Redlich-Kwong 2. 2.5 cm3/mol 4..Utilizando la ecuación de: 1. Redlich-Kwong. a 193 K y volumen molar de 4. c) Benedict-Webb-Rubin d) Beattie-Bridgeman e) Peng-Robinson f) Soave. b) Van der Waals. 5. Benedict-Webb-Rubin Beattie-Bridgeman Peng-Robinson Soave.4. que ocupan 165 kg de metano con una presión de 200 atm y temperatura de 400 K..Redlich-Kwong Determine la presión del nitrógeno gas (N2). Soave. b) Van der Waals.Redlich-Kwong Determine el volumen. Van der Waals.. a un volumen molar de 900 L/mol y una presión de 101. Van der Waals. Benedict-Webb-Rubin 4.Utilizando las ecuaciones de: 1. Redlich-Kwong.-Determine el volumen molar del vapor de agua a 20MPa y 400°C. 2. c) Benedict-Webb-Rubin d) Beattie-Bridgeman e) Peng-Robinson f) Soave. Utilizando la ecuación de: a) Redlich-Kwong. 012 m3/Kmol CO2. Benedict-Webb-Rubin Beattie-Bridgeman Peng-Robinson Soave.-Termodinámica Técnica .-Utilizando la ecuacion de: a) Redlich-Kwong.Calcular el volumen que ocupa un mol de oxígeno a 100 atm y 298 K..5.Smith.Redlich-Kwong Determine la presión. Van der Waals.TEXTO UNIVERSITARIO INGENIERIA ASISTIDA POR COMPUTADORA Autor: Ing.-Introducción a la Termodinámica en Ingeniería Química . c) Benedict-Webb-Rubin d) Beattie-Bridgeman e) Peng-Robinson f) Soave.. El volumen molar del oxígeno a condiciones estándar de presión y temperatura 3.Moran Shapiro II 4.Redlich-Kwong 1.Redlich-Kwong Bibliografía 1.wikipedia. La presión del etano a una temperatura de 1000ºC y un volumen molar de 680m3/mol 2. Van der Waals. 6.-TERMODINAMICA ED6 CENGEL 5. b) Van der Waals.org/wiki/Ecuaci%C3%B3n_de_estado 3. Salomón Benito Huanca 2. Benedict-Webb-Rubin Beattie-Bridgeman Peng-Robinson Soave. 7. en atm.-Utilizando la ecuación de: a) b) c) d) e) f) Redlich-Kwong.http://es. a la temperatura de 100°C si el volumen molar es 0. a) b) c) d) e) f) Redlich-Kwong. Van Ness . La temperatura del nitrógeno a una presión de 1000 torr y un volumen molar de 1500L/mol.. 0831bar*m3/Kmol*’K .TABLAS PARA LOS GASES REALES TABLAS PARA LOS GASES REALES Constante R = 0.