%Ventana principal figure( ... 'Name','MECDI: Análisis Particular ','Units','normalized','resize','off',... 'menubar','none','position',[0 .06 1 .85],'Color',[0 .5 .8], ... 'NumberTitle','off'); men0=uimenu('Label','Archivo'); men01=uimenu(men0,'Label','Abrir...','callback',[... '[datafile,fid]=uigetfile(''*.mat'',''Elija el archivo de resultados que desea ver'');',... 'edit(datafile);'] ); men02=uimenu(men0,'Label','Guardar txt...','callback',[... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... '[datafile,fid]=uiputfile(''*.txt'',''Introduzca el nombre del archivo'');',... 'datos=[ANG*180/pi ;P*10^-5;V*10^6;T;m;q/1000;gam];',... 'fid=fopen(datafile,''w'');',... 'fprintf(fid,''DATOS DE ENTRADA \n'');',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''Cilindrada (cm3)= %1.0f\n'',C);',... 'fprintf(fid,''Radio cigueñal (cm)= %1.2f\n'',RR);',... 'fprintf(fid,''Longitud biela (cm)= %1.2f\n'',LL);',... 'fprintf(fid,''Diámetro del cilindro (cm)= %1.2f\n'',DD);',... 'fprintf(fid,''Número de cilindros= %1.0f\n'',Z);',... 'fprintf(fid,''Relación de compresión= %1.0f\n'',RC);',... 'fprintf(fid,''Temp. exterior (ºC)= %1.2f\n'',TEE);',... 'fprintf(fid,''Pres. exterior (bar)= %1.2f\n'',PEE);',... 'fprintf(fid,''Temp. refrigerante (ºC)= %1.2f\n'',TWW);',... 'fprintf(fid,''Humedad relativa = %1.0f\n'',HR);',... 'fprintf(fid,''Indice de cetano = %1.0f\n'',CN);',... 'fprintf(fid,''Agua en combustible = %1.0f\n'',Agua);',... 'fprintf(fid,''Poder calorífico (MJ/Kg)= %1.0f\n'',Hc);',... 'fprintf(fid,''AAA (º)= %1.0f\n'',AAA*180/pi);',... 'fprintf(fid,''RCA (º)= %1.0f\n'',RCA*180/pi);',... 'fprintf(fid,''AAE (º)= %1.0f\n'',AAE*180/pi);',... 'fprintf(fid,''RCE (º)= %1.0f\n'',RCE*180/pi);',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''Tasa de Calor\n'');',... 'fprintf(fid,''Ángulo de premezcla (º) =%1.2f\n'',gamp*180/pi);',... 'fprintf(fid,''Ángulo de difusión (º) =%1.2f\n'',gamd*180/pi);',... 'fprintf(fid,''Calor liberado en premezcla (MJ/kmol) = %1.2f\n'',Qp);',... 'fprintf(fid,''Calor liberado en difusión (MJ/kmol) = %1.2f\n'',Qd);',... 'fprintf(fid,''Factor de forma de premezcla = %1.2f\n'',Mp);',... 'fprintf(fid,''Factor de forma de difusión = %1.2f\n'',Md);',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''Análisis de fugas\n'');',... 'fprintf(fid,''Número de segmentos = %1.2f'',Za);',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''Edad (años) = %1.2f'',Edad);',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''Variables\n'');',... 'fprintf(fid,''Régimen de giro (RPM) = %1.0f\n'',RPM);',... 'fprintf(fid,''EGR = %1.0f\n'',EGR);',... 'fprintf(fid,''Carga = %1.0f\n'',Carga);',... 'fprintf(fid,''Adelanto de la inyección al PMS (º) = %1.0f\n'',IIE);',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''RESULTADOS\n'');',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''Ángulo de retraso (º) = %1.2f\n'',ang_retraso);',... 'fprintf(fid,''Rendimiento volumétrico = %1.3f\n'',Rend_vol);',... 'fprintf(fid,''Rendimiento efectivo = %1.3f\n'',rend_efectivo);',... 'fprintf(fid,''Consumo específico (g/kw·h) = %1.0f\n'',cons_especifico);',... 'fprintf(fid,''presión media indicada (bar) = %1.1f\n'',presion_indicada);',... 'fprintf(fid,''presión media efectiva (bar) = %1.1f\n'',presion_efectiva);',... 'fprintf(fid,''presión media perdidas mecánicas (bar) = %1.1f\n'',presion_perdidas_mecanicas);',... 'fprintf(fid,''Potencia indicada (kw) = %1.1f\n'',potencia_indicada);',... 'fprintf(fid,''Par indicado (N·m) = %1.0f\n'',par_indicado);',... 'fprintf(fid,''Potencia efectiva (kw) = %1.1f\n'',potencia_efectiva);',... 'fprintf(fid,''Par efectivo (N·m) = %1.0f\n'',par_efectivo);',... 'fprintf(fid,''Residuales = %1.1f\n'',residuales_ciclo);',... 'fprintf(fid,''Fugas = %1.2f\n'',fugas_porcien);',... 'fprintf(fid,''\n'');',... 'fprintf(fid,''Resultados ciclo\n'');',... 'fprintf(fid,''ang(grad) P(bar) V(cm3) T(K) Masa(g) Qtr(Kw) gamma \n'');',... 'fprintf(fid,'' %1.2f %1.2f %1.2f %1.2f %1.4f %1.2f %1.2f \n'',datos);',... 'fclose(fid);',... 'end']); men03=uimenu(men0,'Label','Guardar bin...','callback',[... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... '[datafile,fid]=uiputfile(''*.mat'',''Introduzca el nombre del archivo'');',... 'datos=[ANG*180/pi ;P*10^-5;V*10^6;T;m;q/1000;gam];',... 'fid=fopen(datafile,''w'');',... 'fprintf(fid,''%f %f %f %f %f %f %f\n'',datos);',... 'fclose(fid);',... 'end']); men04=uimenu(men0,'Label','Especificar Impresora...','callback','print -dsetup'); men05=uimenu(men0,'Label','Imprimir','callback','print'); men06=uimenu(men0,'Label','Salir de MECDI','Callback',['clear all;','close all']); men1=uimenu('Label','Ayuda'); men11=uimenu(men1,'Label','Ayuda','callback','ayuda'); men12=uimenu(men1,'Label','Acerca de MECDI','callback','infor;'); ejes=axes( ... 'Units','normalized',... 'FontName','times','fontsize',8, 'Position',[.10 .47 .45 .45]); %=================================== top=0.35; left=0.04; right=0.75; bottom=0.05; labelHt=0.05; spacing=0.005; frmBorder=0.02; frmPos=[left-frmBorder bottom-frmBorder ... (right-left)+2*frmBorder (top-bottom)+2*frmBorder]; %Zona de mensajes mcwPos=[left bottom (right-left) .035]; textome=uicontrol( ... 'Style','text', ... 'Units','normalized', ... 'Max',10,'HorizontalAlignment','center', ... 'BackgroundColor',[1 1 1], ... 'Position',mcwPos, ... 'String','Seleccione un valor para las variables RPM, EGR, Carga e inyección...'); %Marco inferior uicontrol( ... 'Style','frame', ... 'Units','normalized', ... 'Position',frmPos, ... 'BackgroundColor',[.5 .5 .6]); %Título del marco inferior labelPos=[left top-.03 right-left .03]; uicontrol( ... 'Style','text', ... 'Units','normalized', ... 'Position',labelPos, ... 'BackgroundColor',[.4 .4 .6], ... 'ForegroundColor',[1 1 1], ... 'String','Variables'); %==================================== %Barra de deslizamiento y etiquetas para rpm btnPos=[.12 .13 .02 .15]; Hc_41=uicontrol( ... 'Style','Slider', ... 'Units','normalized', ... 'Position',btnPos,'value',ralenti,... 'sliderstep',[0.025 0.2],... 'Min',ralenti,'Max',rev_maxima,... 'callback',['set(texto1,''string'',num2str(get(Hc_41,''value'')))']); btnPos=[.07 .21 .04 .03]; uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',btnPos,'string','RPM:'); texto1=uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',[.06 .17 .05 .03],'string',num2str(get(Hc_41,'value'))); %==================================== %Barra de deslizamiento para EGR btnPos=[.24 .13 .02 .15]; Hc_42=uicontrol( ... 'Style','Slider', ... 'Units','normalized', ... 'Position',btnPos,'Value',0,... 'Min',0,'Max',20,... 'sliderstep',[0.05 0.1],... 'callback',['set(texto2,''string'',num2str(get(Hc_42,''value'')))']); btnPos=[.16 .21 .07 .03]; uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',btnPos,'string','EGR(%):'); texto2=uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',[.16 .17 .07 .03],'string',num2str(get(Hc_42,'value'))); %==================================== %Barra de deslizamiento para la Carga btnPos=[.36 .13 .02 .15]; Hc_43=uicontrol( ... 'Style','Slider', ... 'sliderstep',[0.05 0.1],... 'Units','normalized', ... 'Position',btnPos,'Value',0,... 'Min',0,'Max',100,... 'callback',['set(texto3,''string'',num2str(get(Hc_43,''value'')))']); btnPos=[.26 .21 .10 .03]; uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',btnPos,'string','Carga(%):'); texto3=uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',[.28 .17 .07 .03],'string',num2str(get(Hc_43,'value'))); %==================================== %Barra ángulo de inyección btnPos=[.48 .13 .02 .15]; Hc_43a=uicontrol( ... 'Style','Slider', ... 'sliderstep',[0.03333333333333333 0.1],... 'Units','normalized', ... 'Position',btnPos,'Value',-25,... 'Min',-25,'Max',5,... 'callback',['set(texto4,''string'',num2str(get(Hc_43a,''value'')))']); btnPos=[.38 .21 .10 .03]; uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',btnPos,'string','inyección(º):'); texto4=uicontrol(... 'Style','text','HorizontalAlignment','center', ... 'Units','normalized','BackgroundColor',[.5 .5 .6],... 'Position',[.40 .17 .07 .03],'string',num2str(get(Hc_43a,'value'))); %==================================== %Botón ACEPTAR btnPos=[left+.513 .21 .15 .08]; Hc_56=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',btnPos, ... 'String','ACEPTAR'); %Tanto por ciento de programa ejecutado Hc_67=uicontrol(... 'style','text',... 'Units','normalized',... 'position',[.55 .14 .1 .03],... 'HorizontalAlignment','left', ... 'string','completado:'); completado=uicontrol(... 'style','text',... 'Units','normalized',... 'position',[.65 .14 .03 .03],... 'HorizontalAlignment','right', ... 'string','0'); Hc_68=uicontrol(... 'style','text',... 'Units','normalized',... 'position',[.68 .14 .02 .03],... 'HorizontalAlignment','left', ... 'string','%'); %==================================== %Información para todos los botones labelColor=[0.8 0.8 0.8]; top=0.97; btnWid=0.15; btnHt=0.08; spacing=0.02; frmBorder=0.02; bottom=.03; yPos=0.05-frmBorder; marc=.01; left=1-btnWid-2*frmBorder-marc; %==================================== %Marco inferior derecho frmPos=[left bottom btnWid+2*frmBorder 1-top+2*btnHt+spacing+.051-bottom]; uicontrol( ... 'Style','frame', ... 'Units','normalized', ... 'Position',frmPos, ... 'BackgroundColor',[0.5 0.5 0.6]); %Marco superior derecho yPos=1-top+2*btnHt+spacing+.053; frmPos=[left yPos btnWid+2*frmBorder 2*frmBorder+8*btnHt+7*spacing]; uicontrol( ... 'Style','frame', ... 'Units','normalized', ... 'Position',frmPos, ... 'BackgroundColor',[0.5 0.5 0.6]); %==================================== % Gráficos btnNumber=1; Hc_57=uicontrol( ... 'Style','text', ... 'Units','normalized', ... 'Position',[.82 .93 .15 .04], ... 'background',[.5 .5 .6],... 'String','GRÁFICOS'); %==================================== % P-O btnNumber=1; Hc_57=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[.82 .86 .15 .06], ... 'String','Presión'); %==================================== % P-V btnNumber=2; Hc_58=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[.82 .79 .15 .06], ... 'String','P-V'); %==================================== % T-O btnNumber=3; Hc_59=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[.82 .72 .15 .06], ... 'String','P-V (log)'); %==================================== % Qr-O btnNumber=4; Hc_60=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[.82 .65 .15 .06], ... 'String','Temperatura'); %==================================== % X-O btnNumber=5; Hc_61=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[.82 .58 .15 .06], ... 'String','T. C. L.'); %==================================== % Transferencia de calor btnNumber=6; Hc_62=uicontrol( ... 'Style','push', ... 'Units','normalized', ... 'Position',[.82 .51 .15 .06], ... 'String','Energía'); %==================================== % Transf. calor btnNumber=7; Hc_63=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[.82 .44 .15 .06], ... 'String','Transf. calor'); %==================================== % Masa cilindro btnNumber=7; Hc_70=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[.82 .37 .15 .06], ... 'String','Masa'); %==================================== % botón ÁNALISIS Hc_64a=uicontrol( ... 'Style','push', ... 'Units','normalized', ... 'Position',[.82 .18 .15 .06], ... 'String','ANÁLISIS'); %==================================== % botón NUEVO Hc_64=uicontrol( ... 'Style','push', ... 'Units','normalized', ... 'Position',[.82 .11 .15 .06], ... 'String','NUEVO'); %==================================== %Botón CERRAR Hc_65=uicontrol( ... 'Style','push', ... 'Units','normalized', ... 'Position',[.82 .04 .15 .06], ... 'String','CERRAR', ... 'Callback',['clear;',... 'clear global;',... 'close all']); %=================================== % Zoom Hc_66=uicontrol( ... 'Style','push', ... 'Units','normalized', ... 'Position',[.6 .8 .15 .1], ... 'String','ZOOM'); %=================================== % Párametros iniciales Hc_69=uicontrol( ... 'Style','push', ... 'Units','normalized', ... 'Position',[.6 .65 .15 .1], ... 'String','PARÁMETROS','callback','pantalla3;'); %=================================== % Resultados Hc_72=uicontrol( ... 'Style','push', ... 'Units','normalized', ... 'Position',[.6 .5 .15 .1], ... 'String','RESULTADOS','callback',[... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'pantalla4;',... 'end']); %=================================== %Botones de pantalla %Aceptar set(Hc_56,'callback',[... 'aceptar=1;',... 'plot(0,0);',... 'RPM=get(Hc_41,''value'');',... 'EGR=get(Hc_42,''value'');',... 'Carga=get(Hc_43,''value'');',... 'IIE=get(Hc_43a,''value'');',... 'set(textome,''string'',''Ejecutando ...'');',... 'contador=1;',... 'programa;',... 'set(textome,''string'',''Elija la representación de resultados que desee visualizar'');',... ]); %Gráficos set(Hc_57,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'elseif contador<3997,',... 'Hd_error4=errordlg(''El programa no ha terminado de ejecutarse'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,1);',... 'end']); set(Hc_58,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,2);',... 'end']); set(Hc_59,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,3);',... 'end']); set(Hc_60,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,4);',... 'end']); set(Hc_61,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,5);',... 'end']); set(Hc_62,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,6);',... 'end']); set(Hc_63,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,7);',... 'end']); set(Hc_70,'callback',['zoom off;',... 'if aceptar==0,',... 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... 'else,',... 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,8);',... 'end']); % set(Hc_71,'callback',['zoom off;',... % 'if aceptar==0,',... % 'Hd_error3=warndlg(''Pulsar antes el botón ACEPTAR'',''Error'');',... % 'else,',... % 'graficos(angc,pc,p2,p3,Qrr,Qid,Qreal1,Qreal2,q,ANG,P,T,V,m,pid,Vid,Vcc,FU,ang_comb,II,AAA,RCA,AAE,RCE,9);',... % 'end']); %Zoom set(Hc_66,'callback','zoom on'); %Botón ANÁLISIS set(Hc_64a,'callback',[... 'aceptar=0;',... 'close;',... 'pantalla1_1;']); %Botón NUEVO set(Hc_64,'callback',[... 'close;',... 'MECDI1;']);