Escolar Documentos
Profissional Documentos
Cultura Documentos
Figura 1.1
Se abrir una ventana dndote a conocer los elementos de los que podrs disponer
para hacer de la presentacin lo ms interactiva posible.
Como se puede ver dispondremos de Push Button, Slider, Radio Button, Edit text, static
text, Table, Axes, Panel, entre otros.
algo a tomar en cuenta al trabajar con archivos guide en matlab, es que primeramente
se debe de realizarla parte grafica de la plantilla, es decir introducir todas las opciones
que queremos usar, como static texts, push buttons y demas y que una vez ya
terminada esta se compilara el archivo creandose dos archivos, un archivo punto m y
otro punto fig, siendo el primero el codigo de las opciones creadas y el segundo la
parte grafica del archivo, es decir los botones, tablas o dems accesorios que haya
decidido usarse.
Los primero que se hizo fue crear las propiedades de rocas, y propiedades de los
fluidos. Las primeras propiedades que se realizaron fue la de los gases debido a la
complejidad que tena el clculo de z, y su importancia en las dems propiedades de
su clculo:
3. CALCULO DEL FACTOR DE CORRECION Z EJEMPLO
El primer obstculo con el que nos encontramos al hacer el clculo del factor fue el de
calcular el peso molecular (Ma) a partir de las fracciones molares que deban
introducirse y despus ser ledas por el programa. Al momento de escribir el codigo
hay que tomar en cuenta dos partes. La de leer el valor y posteriormente la de llamar
al valor introducido para ejecutarlo en una de las ecuaciones que se necesite.
2
En el guide se cre una tabla a partir de estatic y edit texts para leer las fracciones
respectivas de los compuestos que se establecieron a mano izquierda y a mano
derecha un push button con el nombre de resolver, de manera que al apretarlo el valor
del peso molecular se muestre en la ventana correspondiente.
los edit text son comandos en los cuales se escribe un texto que no cambiara a lo largo
de todo el programa, mientras que los edit text variaran dependiendo de que codigo se
haya propuesto.
Para leer los valores en los recuadros correspondientes una vez creadas las ventanas
se debe de hacer click derecho y en una de las ventanas e ir a la opcin viewcallbacks,
callback. Una vez hecho esto con uno de los edit text (para leer valor de la fraccin
molar ) el programa abrir el Archivo de manera directa y se dirigir a la funcin
callback donde se escribir el codigo que queremos que se realice en dicha ventana.
Fig. 1.3
En este caso por tratarse de un edit text, en el cual se deber de leer el valor de la
fraccin se realizaron los siguientes pasos:
Una vez en la funcin callback del primer static text que se lo llamo edit1 se coloco la
funcin get, la cual tiene como funcin el de pedir un objeto, en este caso un 'string' o
un caracter, ya que el dato ingresado puede tener una diversidad grande pudiendo
tratarse de un numero, letra o caracter. Posteriormente transforma el dato a un double,
es decir a un valor numrico y finalmente lo almacenara con el nombre de
handles.edit1 , siendo el handles el comando con el que almacenara todos los datos en
el programa, esta es una propiedad propia del codigo.
Ya para usar el valor dentro del texto en otra funcin lo que se hizo fue ir a la opcin la
cual llamara la funcin en este caso sera la opcin Push Button.
figura 1.4
En esta funcin se asigno el valor de C1 al handles.edit1 ya creado anteriormente, es
decir que el valor almacenado se guardara con el valor de C1. debido a la importancia
de esta variable y a que deber de llamarse en otras funciones sin tener que volver a
ingresar el valor nuevamente se introdujo el codigo global lo que har ser almacenar
ese valor en una variable global, que podr llamarse en cualquier funcin que se
desee.
A continuacin nos planteamos la idea de solucionar el hecho de que pasara si el
usuario decidiese ingresar una letra en lugar de un numero a continuacin se puede
ver el codigo usado:
lo que hace el codigo isnan es verificar si el valor es string o double. para que
despliegue el valor se uso el comando errordlg el cual desplegara un mensaje de error
con el codigo 'los valores deben ser numricos' y a continuacin el valor de C1 se
borrara asignndosele el valor de 0.
Otro de los problemas que prevenimos fue el de que pasaba en caso de que las sumas
de los valores de las fracciones molares sala ms de uno. como se sabe esto no
tendra sentido es por eso que similar al codigo de abra se cre otro. a continuacin se
muestra el codigo:
.
.
.
Fig 1.5
Ac se puede ver como primero se calculo la suma de todas las respectivas fracciones
para a continuacin con la ayuda de un ir poder ver si suma uno o no, en caso de no
hacerlo se desplegara el msgbox con el error de que la sumatoria debe de ser uno. A
continuacin los valores se guardaran con 0, para que el usuario deba corregir este
error antes de continuar.
Fig 1.6
Tambin hicimos el uso de los msgbox que son comandos que al apretar en dicha
funcin o en caso de necesitarlo se los llama y al momento despliegan alguna
informacin. Nosotros encontramos tiles estos cdigos que nos sirvi para poder
colocar el nombre de la variable y las unidades en las que se encontrara.
Tambin hubiese podido si es que se hubiese querido introducir teora o cualquier
mensaje que se desease despejar.
Posteriormente se hizo el clculo de la gravedad especifica que denominamos como
gY, uno de las dificultades con matlab es que no se puede introducir variables griegas
como , dems, por lo que tuvimos que recurrir a colocar nombres de variables
similares para que el usuario pudiese comprender de que variable se trata.
Fig 1.7
todos los clculos los colocamos en los callback de los botones ya que al apretar
dichos, recin se calcula lo valores y se despliega el resultado en el lugar que se
desee. para desplegar datos en una pantalla se usa el comando set a continuacin
entre parntesis se especifica qu tipo de variable ser, el lugar donde se lo colocara
con el comando handles, y el valor que se desplegara en ese lugar.
a partir del comando uicontrol, nosotros pudimos crear botones que podan ser
manejados a partir de un archivo.m en lugar de un archivo.fig, lo cual fue una ventaja.
En estos podan definirse propiedades como colores, tipo letra,backgroundcolor o color
de fondo y position o posicin en la que se lo dispondr en la ventana.
Ac se vio como colocamos dos botones, el de continuar y el de atrs que se
desplegara solo al apretar el botn resolver. es en estos botones que se puede
especificar el lugar o el archivo.m que se abrir a continuacin. como se puede ver en
el ejemplo la posicin seria la matriz, mientras que el archivo que se abrir a
continuacin ser el guardado con el nombre de factorZ1 :
Fig 1.8
* uno de los inconvenientes con el programa es que para que los valores globales
puedan abrirse los archivos m deben encontrarse en la misma carpeta, este es un
inconveniente ya que al reunirlo todo cada plantilla contara con un archivo m y uno fig
lo cual har que la carpeta a crearse tenga demasiado subprogramas dentro de ella.
8
cada plantilla cuenta con un botn que se denomina clear, que lo que har ser borrar
los resultados obtenidos para despus uno volver a insertar valores para obtener una
nueva respuesta. Se muestra el codigo usado para borrar:
Fig 1.9
Como se puede ver del ejemplo lo que se hizo es darle a una variable de nombre ini,
un archivo tipo char con espacios y luego copiar dicha variable en los espacio que
deseemos borrar, por lo tanto dichos lugares con valores van a ser sustituidos por los
espacios vacios.
a continuacin si apretamos continuar este botn t llevara directamente a el siguiente
archivo.m
Fig 1.10
Fig 1.11
Fig 1.12
10
Una vez superado este paso deba de corregirse la ecuacin dependiendo de las
fracciones molares del H2S, CO2 y N2 con la ecuacin de correccin de Karr, kobayashi
y Burrows.
De esta manera no hay que ver si
hacer o no la correccin ya que el
programa te lo calculara todo
automticamente a partir de los
datos introducidos de las respectivas
fracciones molares. A continuacin se
abrir la siguiente plantilla en la que
ya iremos al clculo de z.
Fig 1.13
CODIGO de factor de Z
function varargout =
factorZ(varargin)
% FACTORZ M-file for factorZ.fig
%
FACTORZ, by itself, creates a new FACTORZ or raises the existing
%
singleton*.
%
%
H = FACTORZ returns the handle to a new FACTORZ or the handle to
%
the existing singleton*.
%
%
FACTORZ('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in FACTORZ.M with the given input arguments.
%
%
FACTORZ('Property','Value',...) creates a new FACTORZ or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before factorZ_OpeningFcn gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to factorZ_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
11
%
%
%
%
%
% --- Outputs from this function are returned to the command line.
function varargout = factorZ_OutputFcn(hObject, eventdata, handles)
%
%
%
%
varargout
hObject
eventdata
handles
12
13
14
15
guidata(hObject,handles);
% hObject
handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit7 as text
%
str2double(get(hObject,'String')) returns contents of edit7 as a double
16
% eventdata
% handles
17
% handles
18
% hObject
% eventdata
% handles
19
% hObject
% eventdata
% handles
20
21
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
22
23
%set(handles.edit5,'String',0);
C5=0;
%set(handles.edit6,'String',0);
C6=0;
%set(handles.edit7,'String',0);
C7=0;
%set(handles.edit8,'String',0);
C8=0;
%set(handles.edit9,'String',0);
C9=0;
%set(handles.edit10,'String',0);
H2O=0;
%set(handles.edit11,'String',0);
CO2=0;
%set(handles.edit12,'String',0);
N2=0;
%set(handles.edit13,'String',0);
H2S=0;
errordlg('Los valores deben ser numrico','ERROR');
end
S=C1+C2+C3+C4+C5+C6+C7+C8+C9+(H2O)+(CO2)+(N2)+(H2S);
if (S~=1.00)
C1=0;
%set(handles.edit2,'String',0);
C2=0;
%set(handles.edit3,'String',0);
C3=0;
%set(handles.edit4,'String',0);
C4=0;
%set(handles.edit5,'String',0);
C5=0;
%set(handles.edit6,'String',0);
C6=0;
%set(handles.edit7,'String',0);
C7=0;
%set(handles.edit8,'String',0);
C8=0;
%set(handles.edit9,'String',0);
C9=0;
%set(handles.edit10,'String',0);
H2O=0;
%set(handles.edit11,'String',0);
CO2=0;
%set(handles.edit12,'String',0);
N2=0;
%set(handles.edit13,'String',0);
H2S=0;
errordlg('Los valores deben sumar 1','ERROR');
%COMO HAGO PARA CAMBIAR VALORES
end
global M
M=(C1)*(16.043)+(C2)*(30.07)+(C3)*(44.097)+(C4)*(58.123)+(C5)*(72.151)+
(C6)*(86.178)+(C7)*(100.205)+(C8)*(114.232)+(C9)*(128.259)+(H2O)*(18.015)+
(CO2)*(44.01)+(N2)*(28.013)+(H2S)*(34.076);
set(handles.edit14,'String',M);
set(handles.edit15,'String',M);
% hObject
% eventdata
24
% handles
25
26
27
28
% eventdata
% handles
29
end
set(hObject,'BackgroundColor','white');
30
%
double
31
% hObject
handle to pushbutton18 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
function varargout = factorZ1(varargin)
% FACTORZ1 M-file for factorZ1.fig
%
FACTORZ1, by itself, creates a new FACTORZ1 or raises the existing
%
singleton*.
%
%
H = FACTORZ1 returns the handle to a new FACTORZ1 or the handle to
%
the existing singleton*.
%
%
FACTORZ1('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in FACTORZ1.M with the given input arguments.
%
%
FACTORZ1('Property','Value',...) creates a new FACTORZ1 or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before factorZ1_OpeningFcn gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to factorZ1_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help factorZ1
% Last Modified by GUIDE v2.5 10-Apr-2013 13:27:29
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @factorZ1_OpeningFcn, ...
'gui_OutputFcn', @factorZ1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
32
% --- Outputs from this function are returned to the command line.
function varargout = factorZ1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
33
34
% eventdata
% handles
35
36
37
Pscgn=677+15*(gY)-37.5*(gY)^2;
end
save Pscgn
set(handles.edit2,'String',Pscgn);
% hObject
handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
38
39
% eventdata
% handles
40
41
% handles
42
Tsc_c=Tscgn;
save Tsc_c
elseif Tscgn==0 & ((A~=0)|(B~=0)|(C~=0))
set(handles.edit9,'String',Tscgc);
Tsc_2=(Tscgc)-80*(A)+130*(C)-250*(B);
Tsc_c=Tsc_2;
save Tsc_c
elseif Tscgc==0 & ((A~=0)|(B~=0)|(C~=0))
set(handles.edit9,'String',Tscgn);
Tsc_2=(Tscgn)-80*(A)+130*(C)-250*(B);
Tsc_c=Tsc_2;
save Tsc_c
end
%Tsc=handles.edit9;
%yCO2=handles.edit10;
%yH2S=handles.edit11;
%yN2=handles.edit12;
set(handles.edit14,'String',Tsc_c);
% hObject
% eventdata
% handles
43
44
45
46
save Psc_c
elseif Pscgc==0 & ((A~=0)|(B~=0)|(C~=0))
Psc_2=(Pscgn)+440*(A)+600*(C)-170*(B);
Psc_c=Psc_2;
save Psc_c
end
set(handles.edit19,'String',Psc_c);
% hObject
handle to pushbutton25 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
47
48
% handles
49
50
% --- Outputs from this function are returned to the command line.
function varargout = factorZ2_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
51
52
53
54
55
% eventdata
% handles
56
% hObject
% eventdata
% handles
57
58