Mecanica Computacional 2 Lab 3.docx - Final

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 19

ESCUELA PROFESIONAL DE INGENIERIA MECÁNICA,

MECÁNICA ELECTRICA Y MECATRÓNICA

MECÀNICA COMPUTACIONAL II

PRACTICA N°: 02

GRUPO N° : 13

TEMA : Funciones en Matlab.

PROFESOR : Juan Diego Cáceres

ALUMNO : Canales Soto Juan Jonel


INDICE

ENTORNO DE DESARROLLO DE INTERFACES GRAFICAS “GUIDE” MATLAB.................. 3

INTRODUCCION ......................................................................................................................... 3

INICIO ............................................................................................................................................ 3

EJEMPLOS ..................................................................................................................................... 5

DESARROLLO DE INTERFACES GRAFICAS CON “GUIDE” MATLAB. ................................. 15

MARCO TEORICO ...................................................................................................................... 17

EJEMPLOS .................................................................................. Error! Bookmark not defined.

OBSERVACIONES ........................................................................................................................... 17

CONCLUSIONES ............................................................................................................................. 18

BIBLIOGRAFIA ................................................................................................................................ 19
2.1ENTORNO DE DESARROLLO DE INTERFACES GRAFICAS “GUIDE”
MATLAB

INTRODUCCION
GUIDE es un entorno de programación visual disponible en MATLAB para realizar y
ejecutar programas que necesitan ingreso continuo de datos. Tiene las características básicas
de todos los programas visuales como Visual Basic o Visual C++.

INICIO
Para iniciar nuestro proyecto lo podemos hacer de dos maneras

Ejecutando la siguiente instrucción de comandos >>guide.


Haciendo clic en el icono de la figura.

Se presenta el cuadro de dialogo:

Se presentan las siguientes opciones:


Blank GUI (Default)

La opción de interfaz gráfica de usuario en blanco (viene predeterminada), nos presenta un


formulario nuevo, en el cual podemos diseñar nuestro programa.

GUI with Uicontrols

Esta opción presenta un ejemplo en el cual se calcula la masa, dada la densidad y el volumen,
en alguno de los dos sistemas de unidades. Podemos ejecutar este ejemplo y obtener
resultados.

GUI with Axes and Menu

Esta opción es otro ejemplo el cual contiene el menú File con las opciones Open, Print y
Close. En el formulario tiene un Popup menu, un push button y un objeto Axes, podemos
ejecutar el programa eligiendo alguna de las seis opciones que se encuentran en el menú
despegable y haciendo click en el botón de comando.

Modal Question Dialog

Con esta opción se muestra en la pantalla un cuadro de diálogo común, el cual consta de una
pequeña imagen, una etiqueta y dos botones Yes y No, dependiendo del botón que se presione,
el GUI retorna el texto seleccionado (la cadena de caracteres ‘Yes’ o ‘No’).

Elegimos la primera opción, Blank GUI, y tenemos:

La interfaz gráfica cuenta con las siguientes herramientas:

Para obtener la etiqueta de cada elemento de la paleta de componentes ejecutamos:


File>>Preferentes y seleccionamos Show names in component palette. Tenemos la siguiente
presentación:
La siguiente tabla muestra una descripción de los componentes:

EJEMPLOS
Programa Slider.

Con este ejemplo pretendemos mostrar el uso del slider, así como de un check box. En sí,
este programa es un detector de nivel de datos ingresados por el usuario.
Iniciamos un nuevo GUI con el nombre Slider. Añadimos los componentes que muestra la
figura anterior. Editamos el checkbox como muestra la siguiente figura:

Enable en estado inactive permite escribir sobre el checkbox y no poder modificar este
estado por el usuario.

La función del slider queda de la siguiente manera:

El conjunto de la secuencia if determina dos estados: 1) Si el valor del slider es menor que
50 escribe en el componente text3 el texto “BUEN Nivel” y mantiene en cero el estado del
checkbox; 2) Si el valor del slider es mayor o igual que 50 escribe en el componente text3
el texto “MAL Nivel” y mantiene en uno el estado del checkbox. Como en un ejemplo
anterior, la imagen de fondo la añadimos con las sentencias:

Realicemos un programa más interesante con el uso del slider: cambiar el contraste de una
imagen. En una nueva GUI colocamos un slider, un push-button y un axes como muestra
la figura:
El campo tag del botón es open, igual que el string. La programación es la misma que se
usó para abrir una imagen:

El campo tag del slider es el mismo que aparece por defecto. La programación de slider es:

La función rgb2gray transforma una imagen a color a escala de grises. La función double
cambia el formato entero sin signo de 8 bits (uint8) de la imagen a un formato decimal, de
tal forma que sea posible multiplicar la imagen por los valores de slider.

Para evitar errores al mover el slider cuando no se ha cargado ninguna imagen aún, en la
parte de las condiciones iniciales del programa se inicializa el valor del identificador
handles.direccion con el valor de 0:
Para que la escala del slider contenga valores positivos y negativos, simplemente se edita
como muestra la siguiente figura:

Una vez editado el rango, es necesario cambiar el campo value bien sea desde el programa
usando >>set(handles.slider1,’Value’,5) o desde el property Inspector en el campo del
mismo nombre.

Debido a que este elemento tiene dos controles de cambio: las flechas tanto inferior como
superior y la barra de deslizamiento, se establece el valor de cambio en el campo Slider
Step del Property Inspector. En nuestro ejemplo, si queremos cambiar con las flechas el
valor del slider de uno en uno y el valor del mismo de dos en dos con la barra de
deslizamiento lo hacemos configurando la matriz de Slider Step así: [0.05 0.1]
¿Por qué estos valores? La parte x corresponde al porcentaje de cambio de las flechas y la
parte y corresponde al porcentaje de cambio de la barra deslizante. Para encontrar estos
valores se calcula:

 Rango * x = valor de cambio de las flechas → x= valor de cambio de las flechas


/Rango
 Rango * y = valor de cambio de la barra → y= valor de cambio de la barra /Rango

Con los datos de este ejemplo:

 Rango = Valor máximo – Valor Mínimo = 10-(-10) = 20


 Valor de cambio de las flechas = 1
 Valor de cambio de la barra = 2 X=1/20=0.05 Y=2/20=1

Sumadora con Imagen de fondo GUIDE.

Con este ejemplo se pretende mostrar el uso de pushbutton, static text y edit text, así como
insertar una imagen de fondo a nuestro diseño.

1. Primero ejecutamos Guide en la ventana de comandos y presionamos enter.

2. Seleccionamos Blank Gui (default) y presionamos OK.

3. Insertamos los componentes que muestra la siguiente figura.


4. Haciendo doble click en cada componente se procede a configurar las propiedades
de cada elemento, iniciando en pushbuttom, configuramos:

Podemos cambiar el nombre con el que aparecerá la función del pushbuttom en el m-file,
simplemente editando el campo Tag.

5. Continuamos editando los demás componentes, hasta llegar a tener una


presentación semejante a la figura del inicio de este ejemplo (de la imagen de fondo
nos ocuparemos al final)

6. Ejecutando Ctrol+T, guardamos nuestro programa con el nombre Sumadora en la


carpeta MIS_MATLAB. A continuación en la ventana Current Directory aparecen
el archivo Sumadora.fig y Sumadora.m
7. Para iniciar a editar nuestro m-file, llegamos a cada función con el ícono Show
functions , como nos muestra la siguiente figura:

Cada uno de los elementos añadidos en nuestro diseño como Pushbutton, edit text,
static text tienen una función asociada en nuestro m-file. Así, al añadir
Pushbutton, tenemos el siguiente código:

Static text no posee función asociada, pero si una dirección asociada, que la
podemos utilizar para escribir los resultados. Para saber cuál es esta dirección,
haciendo doble click en este componente, la ubicamos en la etiqueta Tag, como lo
muestra la siguiente figura:
8. Justo debajo de function edit1_Callback (hObject, eventdata, handles), y de los
comentarios correspondientes, escribimos el siguiente código:

9. Recuérdese que la instrucción get la usamos para obtener datos ingresados por el
usuario. Así, la línea Val = get(hObject,'String') almacena en Val el valor
ingresado en formato String. La sentencia NewVal = str2double(Val) realiza la
transformación de string a double, o de palabra a número. La sentencia
handles.edit1=NewVal almacena NewVal en el identificador handles.edit1. Por
último, salvamos los datos de la aplicación con la sentencia
guidata(hObject,handles).

Repetimos las mismas sentencias justo debajo de function


edit2_Callback(hObject, eventdata, handles), pero esta vez usando el
identificador handles.edit2=NewVal. Tendremos las siguientes sentencias.

Hasta el momento tenemos los dos sumandos almacenados en los identificadores


handles.edit1 y handles.edit2.
Como nuestro resultado se muestra al presionar el botón RESPUESTA, es momento
de editar la función correspondiente a pushbutton. Debajo de function
pushbutton1_Callback(hObject, eventdata, handles), y de los comentarios
correspondientes, editamos el siguiente código:

Las tres primeras sentencias son por demás obvias. Sin embargo, la cuarta línea
contiene la instrucción set, con la cual establecemos un valor (string) al
componente Static text3, con el identificador handles.text3.

“Bien, hasta aquí ya tenemos nuestra sumadora. Ejecutamos el programa con


F5”
La imagen de fondo puede ser cualquier imagen jpg. Añadimos a nuestro diseño el
componente axes y en el campo Tag de Property Inspector lo editamos con el
nombre background. El siguiente código, colocado en la función de apertura
(function Sumadora_OpeningFcn), carga la imagen de fondo:
Hallando la Gravedad en un Péndulo simple con ayuda de la herramienta GUIDE.

Creamos un nuevo archivo GUIDE.

A continuación, creamos la carpeta donde se encontrarán nuestros archivos.

Después nombramos cada variable y procedemos a poner la formula correspondiente.

Después ejecutamos el programa.


Por último, ponemos valores a nuestras variables.

2.2DESARROLLO DE INTERFACES GRAFICAS CON “GUIDE” MATLAB.


EJEMPLO

LA CALCULADORA

 En cuanto al diseño de la aplicación: de acuerdo con su respectivo tipo

4
1.-Pantalla en Blanco 1

Tipo :Edit text

Modificación:

ninguna

2.-Pantalla de fondo

Tipo :static text

Modificación: ForegroundColor= black

3.- multiplicacion

Tipo :Push button

Modificación:

Tag: pbutton*

String:*

4.- numero

Tipo :Push button

Modificación:

Tag: pbutton5

String:5

Para la codificación…

Para cualquier numero en este caso el numero 5


Para la multiplicación

Para el código de borrado

Para el código igual

MARCO TEORICO
En este apartado se estudiará cómo crear algunos de los controles que se van a utilizar para
el diseño de la interfaz, así como el código generado automáticamente asociado a los
objetos creados en el entorno. Como se ha comentado en el apartado anterior, estos objetos
se crean mediante herramientas de MATLAB en un archivo *.fig al que se le asocia un
archivo *.m que es el que contiene el código de las funciones y subrutinas que realizan todo
el cálculo de los distintos algoritmos implementados

ANALISIS OBJETIVO
 La interfaz debe mostrar los resultados obtenidos tras la detección y análisis de
descargas parciales de forma gráfica, mediante gráficas y tablas.
 Desarrollo de un sistema de selección gráfica de datos. Esto es importante ya que
permite al usuario interactuar de forma gráfica con cierto tipo de datos. De otra
manera tendría que interactuar por medio de los comandos de MATLAB o
herramientas presentes en el entorno MATLAB. Integrándolo en la herramienta se
evita el paso por la pantalla de MATLAB.

OBSERVACIONES
 La aplicación debe organizar secuencialmente las funciones de procesamiento de las
señales y gestión de los datos para que guarde un orden lógico a la hora de realizar
una detección de descargas parciales.
 El usuario no necesitará conocer las funciones que se ejecutan con la interfaz para
realizar un diagnóstico. La aplicación debe ser la encargada de gestionar las bases
de datos de descargas parciales para que las funciones dispongan de la información
necesaria para su correcto funcionamiento
 El editor permite construir interfaces arrastrando y soltando componentes en el área
de diseño de la GUI

CONCLUSIONES
 La interfaz organiza secuencialmente las funciones de procesamiento de las señales.
El usuario no necesita conocer las funciones que se ejecutan con la interfaz para
realizar un diagnóstico ya que es el interfaz el que solicita la información y ejecuta
las funciones.
 Se ha desarrollado también un sistema de selección de datos que cumple con la
funcionalidad requerida por el usuario en las herramientas correspondientes a la
creación de patrones y de análisis estadístico.
 El desarrollo de la aplicación, a nivel de programación, se ha realizado de forma
clara facilitando a desarrolladores futuros ampliar la aplicación en versiones futuras
 La operación automática de guardado (save) genera un fichero .m y un fichero.fig
 El fichero .fig contiene el diseño del GUI en binario y el fichero .m contiene el
código que controla el GUI
 Una Gui presenta características especiales como: Gráficos y Estáticos
 Se pudo aprender a crear interfaces de usuario desde el entorno en Matlab
 Con el comando Guide podemos abrir una pestaña en la cual nostros podremos
crear cualquier tipo de interfaz que deseemos, teniendo en cuenta todo lo
mencionado anteriormente, para esto fue necesario poder conocer cada componente
del área de diseño del Guide.

OBJETIVO FINAL

El objetivo final de este trabajo es el diseño de una interfaz gráfica de usuario en entorno
MATLAB que facilite al usuario el procesamiento de las señales adquiridas en el
experimento de CREAR Y resolver problemas planteados usando la lógica.
BIBLIOGRAFIA
CREACION DE INTEFACES GRAFICAS, Gonzalo Fernandez
Cordova.(2007). Rescatada el 10/09/2018 de
http://webpersonal.uma.es/de/gfdc/docencia/GuiSection.pdf
MANUAL DE INTERFAZ GRAFICA DE USUARIO EN MATLAB,Diego
Orlando Barragan. Parte 1. Rescatada el 10/09/2018 de
https://www.dspace.espol.edu.ec/bitstream/123456789/10740/11/MATLAB
_GUIDE.pdf
CREACIÓN DE INTERFACES DE USUARIO CON MATLAB, Pedro
Corcuera (2009) Universidad de Cantabria.
http://www.utm.mx/~vero0304/HCPM/GUI_Matlab.pdf
WATSON, G. S. (1964). Smooth regression analysis, Sankhy, Series A 26:
359-372.
SMITH, SCOTT T. (2006). Matlab advanced gui development .Dog Ear
Publishing.
JAVIER GARCÍA GALÓN. (2007) Aprenda MatLab 7.0 como si estuvieras
en primero. Universidad Politécnica Madrid Ediciones

También podría gustarte