Está en la página 1de 34

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

3 Creacin de la interfaz grfica


Uno de los objetivos de este proyecto es la creacin de una aplicacin independiente o interfaz
grfica que se pueda ejecutar en cualquier ordenador y con las prestaciones necesarias para
poder evaluar metodologas desarrolladas por el rea ingeniera de los procesos de fabricacin.
Para la creacin de esta aplicacin que se utilizar software matemtico denominado MATLAB
(abreviatura de MATrix LABoratory, "laboratorio de matrices"). MATLAB ofrece un entorno
de desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M) disponible
para las plataformas Unix, Windows y Mac OS X.
Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la representacin de datos
y funciones, la implementacin de algoritmos, la creacin de interfaces de usuario (GUI) y la
comunicacin con programas en otros lenguajes y con otros dispositivos hardware. El paquete
MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber,
Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario GUI). Adems, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas
(toolboxes); y las de Simulink con los paquetes de bloques (blocksets).
Para mostrar el desarrollo llevado a cabo para llegar a obtener un programa de altas
prestaciones, se comentarn en el presente apartado las principales consideraciones requeridas
en el proyecto.

3.1 Contorno de MATLAB


MATLAB es un lenguaje de alto nivel, entorno de alto nivel e interactivo que le permite
realizar tareas de clculo ms rpidamente que con lenguajes de programacin tradicionales
como C, C + + y Fortran. Sus caractersticas principales son las siguientes:

Lenguaje de alto nivel para la computacin tcnica.


Entorno de desarrollo para la gestin de cdigo, archivos y datos.
Herramientas interactivas para la exploracin, el diseo y la resolucin de problemas.
Funciones matemticas para lgebra lineal, estadstica, anlisis de Fourier, filtrado,
optimizacin e integracin numrica.
2-D y 3-D las funciones de grficos para la visualizacin de los datos.
Herramientas para la construccin de interfaces grficas de usuario.
Funciones para la integracin de algoritmos de MATLAB con aplicaciones externas
basadas en idiomas tales como C, C + +, Fortran, Java, COM y Microsoft Excel

27

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Al iniciar MATLAB, el editor aparece en su diseo por defecto, incluyendo los siguientes
paneles:

Current Directory: Directorio actual. Eleccin de archivos.

Command Window: Ventana de comandos. Introducir comandos en la lnea de


comandos para ejecutar instrucciones, indicado por el smbolo (>>).

Workspace: Espacio de trabajo. Explora los datos que se crean o se importan desde
archivos.

Command History: Historial de comandos. Permite ver o volver a ejecutar comandos


que entraron en la lnea de comandos.

Fig. 3-1: Pantalla principal de MATLAB

Toda la programacin se puede realizar directamente desde la ventana de comados, aunque se


recomienda el crear un conjunto de archivos con la extensin *.m donde se guarda el cdigo
desarrollado por el usuario. De esta forma se obtiene una programacin ms estructurada y
eficiente a la hora de ejecutar el cdigo generado.
Dado que la finalidad del proyecto es el de realizar una interfaz grfica, la programacin se
enfocar para obtener una aplicacin que se utilizar en un entorno de Windows, simple y de
fcil manejo, en el que se puedan evaluar los datos cargados por el usuario utilizando todas las
opciones que proporciona la aplicacin desarrollada.

28

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Una interfaz de usuario grfica (GUI) es una representacin grfica de una o ms ventanas que
contienen los controles, denominados componentes, que permiten a un usuario realizar tareas
interactivas. Los componentes de la interfaz grfica de usuario puede incluir mens, barras de
herramientas, botones, botones de radio, cuadros de lista, deslizadores, que permitirn al
usuario interactuar con el GUI y establecer el flujo de ejecucin.
Las interfaces grficas de usuario creadas con herramientas de MATLAB tambin puede
realizar cualquier tipo de clculo, leer y escribir archivos de datos, comunicarse con otras
interfaces grficas de usuario, y visualizar datos como tablas o grficos.
Se pueden construir interfaces de usuario grficas de MATLAB en dos formas:
Usar GUIDE (GUI Development Environment); un kit de construccin interactiva de
interfaz grfica de usuario.
Crear archivos de cdigo que generan interfaces grficas de usuario como funciones o
scripts (programacin de la construccin GUI).

En el primer enfoque, GUI crea un archivo de cdigo asociado que contiene las devoluciones de
llamada para la interfaz grfica de usuario y sus componentes. Consta de dos archivos; un
archivo *.m (ejecutable) y otro *.fig (parte grafica). Las dos partes estn unidas a travs de las
subrutinas Callback. Una vez que se graban los archivos desde la consola de emisin (si
salvamos la *.fig automticamente se guarda el *.m asociado) podemos ejecutar el programa en
la ventana de comando de MATLAB solamente escribiendo el nombre del archivo.
En el segundo, se crea un nico archivo de cdigo que define todas las propiedades de los
controles y objetos que componen la parte grfica, adems de las distintas subrutinas y
comportamientos de la aplicacin. Cuando el usuario ejecuta el archivo, se crea
automticamente la figura, que se llena con los componentes, y se ocupa de las interacciones del
usuario.
Dado que MATLAB ha desarrollado esta aplicacin para realizar el diseo de interfaz grfica,
el cual facilita enormemente la creacin de la misma, se proceder a utilizar esta herramienta.
Esta consta de dos etapas:
Diseo de los componentes (controles, mens y axes) que formarn el GUI.
Programacin de la respuesta de cada uno de los componentes ante la interaccin del
usuario.
Para abrir la aplicacin GUIDE desde la consola de MATLAB, basta con iniciar una nueva GUI
gracias al asistente de inicio, crendote una nueva GUI en blanco como se muestra en la figura
3-2.
Una vez seleccionado esta nueva GUI en blanco, automticamente se abre la aplicacin de
MATLAB con todos los comandos necesarios para la elaboracin de la interfaz.

29

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Fig. 3-2: Creacin de una nueva GUI

3.2 Introduccin a la configuracin de interfaz grfica


En este apartado se estudiar cmo crear algunos de los controles que se van a utilizar para el
diseo de la interfaz, as como el cdigo generado automticamente 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 cdigo de las funciones y subrutinas que realizan todo el clculo de los
distintos algoritmos implementados.

3.2.1

Estructura de los archivos *.fig

Toda interfaz debe poseer una distribucin correcta de todos los comandos que la componen.
Comunes a las diferentes metodologas, las distintas interfaces se caracterizan por estar
diseadas con tres zonas de visualizacin. Estas zonas son:

Pantalla de controles
Barra de mens
Barra de herramienta

MATLAB dispone de diferentes herramientas creadas para facilitar la programacin de estas


zonas de visualizacin. Todas ellas presentan el mismo funcionamiento. Una vez que se crea el
objeto, este se puede programar de dos maneras principalmente. Una de ellas es mediante
cdigo en el archivo *.m, mientras que la segunda es mediante las herramientas propias de
MATLAB. Las ventajas que presenta el primer mtodo es la gran flexibilidad que presenta al
programador el poder variar cualquier propiedad durante la ejecucin del programa. El segundo

30

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

se caracteriza por la facilidad e intuicin del programador para disear, colocar y visualizar los
controles, utilizndose principalmente a la hora de crear por primera vez los objetos.

Las herramientas de GUIDE estn disponibles en el editor de diseo que se muestra en la figura
siguiente.
Aling object

Tab order Editor


Menu Editor

M-file Editor

Toolbar Editor

Property Inspector

Object browser
Run GUI

Component Palett

Fig. 3-3: Editor de diseo de GUI de MATLAB

Se diferenciaran entre dos tipos de comandos; los pertenecientes al editor de diseo, y los que se
encuentran en la paleta de componentes.

31

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Pantalla de controles
Existen 14 tipos de controles diferentes. La utilizacin de cada uno vendr dada en funcin de
sus caractersticas y aplicacin. Se describen a continuacin los distintos componentes usados
en esta aplicacin:

Push Button
Este comando se utiliza para ejecutar o lanzar una orden cuando se pulsa. El aspecto
tpico de este botn es el que se muestra en la figura 3-4.

Fig. 3-4: Objeto Push Button

Grupos de botones (Button Group)


Los botones de seleccin permiten al usuario seleccionar entre las diferentes opciones
que se presentan en la aplicacin. En el caso en el que se encuentren englobadas en un
grupo de botones, uno de ellos siempre permanecer activado.

Fig. 3-5: Objeto Button Group

Cajas de seleccin (pop up men)


Este tipo de control permite seleccionar una opcin de entre varias mostradas en una
lista. Eligiendo una de ellas, se ejecuta la opcin que se haya seleccionado. La ventaja
de este control es el diseo compacto con el que se muestra por pantalla, pudindose
colocar en espacios reducidos al poderse desplegar automticamente en el momento en
que se pulsa, quedando minimizado cuando sobre l no se est pulsando.
Se ha utilizado como control para visualizacin de diferentes grficas, situndose en la
parte superior de las mismas y actuando como ttulo.

Fig. 3-6: Objeto Pop-up Menu

32

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Cajas de texto (Static Text)


Son controles en los que no se permiten realizar operaciones con el ratn. Estn
diseadas para representar en pantalla la informacin especificada por el
programador, sin que se puedan modificar por el usuario.

Fig. 3-7: Objeto Static Text

Cajas de texto editables (Edit Text)


Las cajas de texto editables se utilizan para poder introducir y modificar cadenas de
caracteres. La llamada a la opcin de ejecucin Callback ser efectiva cuando se pulse
el botn asociado a este control. La flexibilidad a la hora de poder manipular datos es
factible gracias a este control, ya que no se limita la capacidad de manejo del usuario
dentro de los rangos propios de control de la aplicacin. Se ha utilizado este comando
para introducir nmeros.

Fig. 3-8: Objeto Edit Text

Paneles (Panel)
Un panel no es un control propiamente dicho. Su funcin es la de englobar una serie de
componentes para una mejor estructuracin por pantalla.

Fig. 3-9: Objeto Panel

Ventanas (Axes)
Una ventana es un objeto que permite la representacin de grficas o imgenes. En este
caso es utilizado para la representacin de las curvas de ensayo.

Fig. 3-10: Objeto Axes

33

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Todos los controles comentados se denominan objetos. Estos presentan unas propiedades que
son editables por el programador. En funcin de las necesidades, del estado en que se encuentre
el programa y de la estructuracin del mismo, podrn modificarse durante el desarrollo de la
aplicacin. Muchas de estas propiedades son comunes a la mayora de los controles, aunque
cada uno de ellos puede presentar propiedades particulares.
La herramienta que presenta MATLAB para modificar las propiedades del objeto deseado es el
inspector de propiedades. En l se representan todas las variables modificables del objeto,
indicndose las opciones configurables. En la figura 3-11 se muestra parte del listado de
variables de un texto editable.

Fig. 3-11: Editor de propiedades de objetos de GUI de MATLAB

De entre todas las variables existentes, las que se han utilizado con una mayor frecuencia son las
que se indican a continuacin:

BackgroundColor: Control de modificacin del color del objeto.

Enable: Control para habilitar el objeto. En el caso de que sea un Push Button, desactiva
o activa la subrutina asociada al objeto. Las opciones que presenta son on/off.

FontAngle: Aplica el formato de cursiva al texto asociado al objeto. Las opciones son
normal/italic/oblique.

34

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

FontName: Tipo de fuente del texto del objeto.

FontSize: tamao del texto del objeto.

ForegroundColor: Color de la fuente del texto del objeto.

HandleVisibility: Control para visualizar el objeto. Las opciones de este control son
on/off.

HorizontalAlignment: Control para la alineacin del texto dentro del objeto. Las
posibles opciones son left/righ/center.

Position: en l se indica tanto la posicin del objeto, como las dimensiones que posee el
mismo (ancho y alto).

String: Contiene el valor de la variable asociada al objeto.

Style: Indica el tipo de objeto que es (Push button, textos estticos, caja de texto
editable)

Tag: Nombre de la subrutina o llamada de funcin.

Barra de mens
En el caso de la programacin de la barra de mens, MATLAB posee la herramienta editor de
men para crear todos los controles que el programador estime oportuno.

Fig. 3-12: Editor de men de GUI de MATLAB

35

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

En l se puede elegir el nivel que presenta cada control, as como el nombre con el que
aparecer en la interfaz y el nombre utilizado para la llamada a la subrutina.
Como se observa en la figura 3-12, aparece ordenado en forma de esquema por lo que la
creacin del men es muy visual y esquemtica. Tambin se da la opcin de programar un men
contextual, aunque no ha sido necesario introducirlo ya que con los controles utilizados es
suficiente para un manejo de la aplicacin gil y simple de manejar.

Barra de herramienta
En el caso de los controles de la barra de herramienta, MATLAB tambin dispone de su propia
herramienta. Se distinguen dos tipos de controles posibles de configurar, push tool y toggle tool.
El primero de ellos es un control el cual se ejecuta en el momento de pulsar el ojeto, mientras
que el segundo es un control que una vez pulsado, permanece activo hasta que se vuelva a
pulsar, y por tanto se desactiva.
Algunos de estos controles ya vienen predefinidos por defecto como son los relativos al manejo
de imgenes de las ventanas. De entre ellos los que se han utilizado son los de alejar y acercar la
imagen mediante zoom, y el de arrastrar la imagen. Aparte se cre el control de clculo y el de
nuevo documento.

Fig. 3-13: Editor de la barra de herramientas de GUI de MATLAB

36

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

3.2.2

Estructura de los archivos *.m

Una vez se tiene planificada la forma de la interfaz, guardamos el proyecto y el GUIDE genera
de forma automtica un fichero *.m que controla el funcionamiento del GUI. Este fichero
inicializa el GUI y contiene la llamada a todas las subrutinas o callbacks del GUI (las rdenes
que se ejecutan cuando el usuario interacta con un elemento del GUI). Usando el editor de
MATLAB se podr aadir instrucciones de cdigo a los callbacks para realizar las funciones
que se quieran asignar.
La estructura que presenta entonces el archivo est formada por dos bloques; el de
inicializacin, el cual contiene toda la informacin requerida para el correcto arranque del
programa, y el de las subrutinas de los controles.
Inicializacin del programa

function varargout = untitled(varargin)


gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @untitled_OpeningFcn, ...
'gui_OutputFcn', @untitled_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
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = untitled_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

Todo este cdigo de programacin representa la cabecera del programa. En l se pueden


apreciar tres zonas diferenciadas. La primera de ellas es la encargada de la creacin de las
rutinas de apertura del programa. En la segunda se hace referencia a la apertura del programa
principal. En l se asignan el identificador que posee cada objeto, necesarios para poder

37

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

interactuar con ellos. La tercera presenta las salidas del programa, aunque no se usa
habitualmente, ya que se utilizarn variables globales a tal efecto.
Para poder diferenciarlas en las tres aplicaciones, se crea una variable global que posee la
informacin anteriormente comentada y que se le asigna de la siguiente manera.
function ISO_12004_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to ISO_12004 (see VARARGIN)
global data_prog_ISO manejador_prog_iso
handles.output = hObject
manejador_prog_iso=handles;

En el caso de la aplicacin desarrollada para la metodologa ISO, se crea una variable tipo
estructura que posee los identificadores de los diferentes objetos. Esta variable se denomina
handles y posee la informacin que se muestra en las siguientes lneas de texto.
handles =
figure1:
popupmenu1:
ayuda_prog_iso:
informe_prog_iso:
uipanel10:
text38:
uipanel7:
graficas_prog_iso:
uitoolbar1:
archivo_iso:
uipanel4:
axes2:
axes1:
uipanel3:
uipanel2:

268.0012
34.001
33.0015
30.0015
23.0018
342.0012
339.0012
337.0012
331.0012
327.0012
307.0012
302.0012
297.0012
290.0012
269.0012

De esta forma obtenemos una variable global que podr utilizarse en las tres aplicaciones,
pudindose hacer referencia de una aplicacin a otra. En el caso de que no se utilizara esta
variable global, no se podra acceder a la informacin de una aplicacin a otra.

38

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Subrutinas
El cuerpo del programa principal presenta todas las llamadas a las subrutinas o Callbacks de los
objetos programados para tal funcin.
Al hacer click derecho en el elemento ubicado en el rea de diseo, una de las opciones ms
importantes es View Callbacks, la cual, al ejecutarla, abre el archivo .m asociado a nuestro
diseo y nos posiciona en la parte del programa que corresponde a la subrutina que se ejecutar
cuando se realice una determinada accin sobre el elemento que estamos editando. Por defecto
se crea el siguiente texto:
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)

El cdigo desarrollado por el programador se coloca a continuacin de la llamada a la funcin.

3.3 Diseo de los diferentes programas


En este apartado del captulo se presenta un esquema modo resumen de los ficheros que se
utilizan en la interfaz, para ver de manera ms grfica el funcionamiento interno del mismo.

Fig. 3-14: Esquema de los archivos que componen la aplicacin

39

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Como se ha podido observar en el esquema anterior, se pueden diferenciar tres programas


principales, los cuales se abastecen de archivos independientes que realizan funciones
predeterminadas. Cada uno de los tres programas principales, posee una interfaz independiente
cuya estructura est formada por los diferentes objetos de control. Se detallar la estructura que
presenta cada interfaz (archivo *.fig) y su correspondiente diagrama de funcionamiento (archivo
*.m).

Para comprender la estructura que presentan los archivos *.fig con los que se disea las
interfaces, se presentar una de las herramientas aportadas por MATLAB para visualizar todos
los objetos que lo componen. Esta herramienta es el explorador de objetos y sirve como visor de
la estructura que conforman todos los objetos utilizados en la interfaz.

Fig. 3-15: Navegador de objetos de GUI de MATLAB

En la figura anterior se muestra la estructura de objetos de la aplicacin, representndose los


componentes principales, los cuales a su vez, contienen otros. Para poder visualizar la jerarqua

40

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

de los objetos y controles, de desglosarn cada uno de los objetos principales que apareen en la
figura anteriormente comentada, en cada una de las tres aplicaciones desarrolladas.
3.3.1

Diseo de la aplicacin ISO 12004-2

Como se ha comentado anteriormente, el explorador de objetos contiene todos los controles que
intervienen en la interfaz. Dado la cantidad de objetos que contiene la interfaz, se muestra en la
grfica 3-16 una pequea parte del esquema completo que compone el diseo del archivo *.fig
de la aplicacin ISO 12004-2. Para poder visualizar por completo este esquema, se hace preciso
dirigirse al Anexo n 1.

Fig. 3-16: Esquema y organizacin de objetos en Aplicacin ISO 12004-2

Como se puede observar en la figura 3-16, la mayora de los objetos se agrupan por paneles,
obtenindose de esta forma una composicin ms estructurada de la aplicacin.
Una vez que se presenta el esquema de objetos que componen la interfaz, se pasa a comentar el
proceso de control del programa creado. Para facilitar su comprensin, se presenta en forma de
diagrama de flujo. De esta forma se observa de una forma ms clara y concisa, el
funcionamiento interno de la aplicacin.

41

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Hay que hace constar, que el diagrama de flujo presentado en la figura 3-17 representa las
acciones ms representativas del esquema general de funcionamiento, pudiendo existir controles
internos de nivel inferior que no aparecen. Tambin se ha obviado el correspondiente al proceso
de clculo de los resultados, agrupado en el cuadrado Calcular procedimiento ISO 12004 por
encontrarse dicho diagrama en el apartado 2.2 y proporcionado por la norma. Como es lgico
suponer, en todo momento se puede salir de la aplicacin en el momento que el usuario desee, o
comenzar un nuevo clculo preparando la aplicacin para cargar los archivos deseados.

Fig. 3-17: Diagrama de flujo de aplicacin ISO 12004-2

42

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

3.3.2

Diseo de la aplicacin Temporal

Al igual que en el apartado anterior, se mostrar en forma de esquema todos los objetos que
componen la interfaz. De nuevo se representa solo una pequea porcin del esquema completo
del diseo del archivo *.fig

Fig. 3-18: Esquema y organizacin de objetos en metodologa Temporal

El correspondiente diagrama de flujo que esquematiza el proceso de control de la aplicacin


desarrollada es el que se muestra en la figura siguiente.

43

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Fig. 3-19: Diagrama de flujo de aplicacin Temporal. Rutinas principales

Como se resalt en los comentarios para el diagrama de flujo de la aplicacin ISO, se han
representado las operaciones principales para una mayor claridad del diagrama. Aunque las
funciones secundarias se encuentran programadas, no se han representado.

44

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

3.3.3

Diseo de la aplicacin Valle

Al igual que en las metodologas anteriores, se presentar la configuracin del archivo *.fig que
componen la interfaz.

Fig. 3-20: Esquema y organizacin de objetos en metodologa del valle

45

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

El correspondiente diagrama de flujo que esquematiza el proceso de control de la aplicacin


para la metodologa del valle se muestra en la figura siguiente.

46

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Fig. 3-21: Diagrama de flujo de aplicacin del valle. Rutinas principales

47

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

3.4 Funciones implementadas


En el presente apartado se realizar una breve descripcin de los principales comandos
utilizados y ms importantes. Se comenzar con las funciones encargadas de transferir y captar
datos entre los comandos utilizados en la interfaz. Se proseguir por los relacionados a la
importacin de los archivos de clculo generados por ARAMIS. Por ltimo, se vern los
comandos relacionados con las operaciones matemticas de clculo utilizadas en las
metodologas.

3.4.1

Control de objetos y modificacin de propiedades

La transferencia o recuperacin de los valores de las propiedades de los elementos se realiza


mediante las funciones get y set, por tanto, para consultar y cambiar el valor de las propiedades
de un objeto se usarn estas funciones.
Para la ejecucin de una funcin determinada, ser necesario realizar ciertas comprobaciones de
las propiedades de un elemento de la interfaz. Por ejemplo, para conocer la opcin que se ha
seleccionado en un desplegable, ser suficiente con conocer el valor de la propiedad Value,
que nos dice la posicin de la lista que ha elegido el usuario. Para obtener este valor se utiliza la
funcin get, extrayendo el valor de la propiedad especificada del elemento con identificador
h:
get(h, 'propiedad')
De la misma manera si se necesitara variar el contenido de una propiedad de un elemento se
hara con la siguiente instruccin:
set (h, propiedad, valor)
Estas instrucciones se utilizarn muy a menudo en las distintas funciones que se realizan en la
interfaz, se pueden observar en los distintos ficheros .m y con diferentes funcionalidades como
pueden ser:

Obtener valor de una propiedad de un elemento para realizar una funcin concreta

Cambiar de color un elemento de la interfaz para resaltar alguna informacin

Ocultar o hacer visible algn botn o caracterstica concreta

Habilitar o deshabilitar los botones para indicar al usuario que opciones pueden utilizar en
cada momento. Este es uno de los principales utensilios empleados por el programador para
poder orientar los pasos del usuario a lo largo del programa

48

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

3.4.2

Cargar archivos

Como se comentar en captulos posteriores, los archivos de datos que se introducen deben
tener una estructura determinada, en funcin de la metodologa que se utilice. En caso de que
estos archivos sean errneos, o estn mal estructurados, la aplicacin de MATLAB avisar con
un error.
Para realizar cargas de archivos *.txt, se dispone principalmente de las funciones uigetfile,
fullfile y importdata. A continuacin se describir el funcionamiento de cada una de estas
funciones, as como los variables que intervienen y se mostrar un ejemplo de cmo estructurar
el cdigo para que trabaje correctamente.

uigetfile
Esta funcin visualiza un cuadro de dilogo modal en donde se muestran los archivos en el
directorio actual, permitiendo que el usuario seleccione o escriba el nombre del archivo que
desea cargar. Si el nombre de archivo es vlido y si el archivo existe, cuando el usuario hace clic
en Abrir, uigetfile devuelve el nombre del archivo. Si el usuario hace clic en Cancelar o cierra la
ventana de dilogo, uigetfile devuelve un 0. La sintaxis que presenta esta funcin es la siguiente:
[Nombre direccin] = uigetfile (extensin, ttulo)
Se necesitan dos parmetros para esta funcin; extensin y ttulo. Por extensin se refiere al tipo
de archivo que se pueden importar, en este caso *.txt, mientras que el ttulo indica el nombre de
la ventana de visualizacin mostrada al usuario.

fullfile
Esta funcin construye una cadena de caracteres compuesto por los parmetros que se indiquen,
en este caso el nombre completo del directorio y el nombre del archivo especificado.
Nombre_completo = fullfile (direccin, nombre)

importdata
Esta funcin carga los datos del archivo seleccionado en el espacio de trabajo. S utilizan tres
parmetros para el correcto funcionamiento de esta orden; Nombre completo, delimitador y
lneas de cabecera. El parmetro nombre completo es el nombre del archivo. El parmetro
lneas de cabecera es un nmero que indica la cantidad de lneas que componen la cabecera,
importando los datos desde la lnea siguiente del nmero indicado hasta el final del archivo. El
delimitador establece el carcter utilizado para separar los diferentes datos ledos en el archivo.
A = importdata (Nombre completo, delimitador, lneas de cabecera)

49

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

La estructura completa para poder realizar la carga correcta de los archives deseados es la que se
muestra en las siguientes lneas:
[nombre direc]=uigetfile('*txt','Open');
fullname_cargar = fullfile(direc,nombre);
if nombre==0
return
else
DELIMITER = ' ';
HEADERLINES = 6;
D_ISO = importdata(fullname_cargar, DELIMITER, HEADERLINES);
end

En este caso se ha mostrado el cdigo inicial para realizar la carga de los datos en la matriz
D_ISO, aunque no se muestra la casustica de posibles errores de importacin y la correcta
ordenacin de los valores.

3.4.3

Ajuste por mnimos cuadrados

El ajuste de curvas es un proceso mediante el cual, dado un conjunto de N pares de puntos {xi,
yi} (siendo x la variable independiente e y la dependiente), se determina una funcin matemtica
f(x) de tal manera que la suma de los cuadrados de la diferencia entre la imagen real y la
correspondiente obtenida mediante la funcin ajustada en cada punto sea mnima:

Generalmente, se escoge una funcin genrica f(x) en funcin de uno o ms parmetros y se


ajusta el valor de estos parmetros forma que se minimice el error cuadrtico, . La forma ms
tpica de esta funcin ajustada es la de un polinomio de grado M; obtenindose para M = 1 un
ajuste lineal (o regresin lineal),

para M = 2 un ajuste parablico,

En el caso particular de la norma ISO en el que se indica que la funcin a ajustar tiene que ser
una parbola inversa, la expresin se presenta a continuacin:

50

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

El coeficiente de determinacin, R2, definido entre 0 y 1, nos da una idea de la bondad del
ajuste, de manera que para valores cercanos a 1 el ajuste es perfecto, mientras que para valores
cercanos a cero indica inexistencia de relacin entre x e y con el modelo de ajuste propuesto. En
la siguiente expresin se muestra este valor:

Donde,

Las distintas variables que participan en estas ecuaciones se definen a continuacin:


xi= variable independiente experimentales
yi= valores experimentales
= media de los valores experimentales
= valor de la funcin en los puntos experimentales;
En funcin del tipo de ajuste que se solicite, MATLAB dispone de diferentes funciones para
implementar el algoritmo deseado. Se utilizarn dos funciones; una primera para ajustes
polinmicos, y la segunda para problemas no lineales.

polyfit
Esta funcin encuentra los coeficientes de un polinomio p (x) de grado n que se ajusta a los
datos, p (x (i)) -y (i), en el sentido de mnimos cuadrados. El resultado p es un vector fila de
longitud n +1 que contiene los coeficientes del polinomio en potencias descendentes.
p = polyfit(x,y,n)
Por ejemplo, para el caso de n=2, se obtendra un vector de 3 componentes en el que el primer
valor hace referencia al coeficiente a, el segundo al coeficiente b y el tercero al coeficiente c de
la funcin que se representa a continuacin.

51

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

lsqcurvefit
lsqcurvefit resuelve los ajustes de datos de problemas no lineales. lsqcurvefit requiere una
funcin definida por el usuario para calcular la funcin vectorial F (x, xdata). El tamao del
vector devuelto por la funcin definida por el usuario debe ser el mismo que el tamao de los
vectores ydata, xdata.

x = lsqcurvefit(fun,x0,xdata,ydata)

3.4.4

Derivadas

La utilizacin de la derivada en las metodologas implementadas es utilizada para diferentes


procedimientos. En el caso de la metodologa ISO, se utiliza la derivada segunda para la
obtencin de los lmites interiores de la ventana de ajuste, mientras que en la metodologa
temporal se calcula la primera derivada. En la siguiente imagen se muestra un conjunto de
puntos genricos, y los que se tomaran para realizar las derivadas (tres puntos en el caso de la
derivada sin filtrar y cinco con la derivada filtrada).

Fig. 3-22: Determinacin de la derivada segunda filtrada y sin filtrar

Derivada segunda filtrada


Para la determinacin de la derivada segunda filtrada de una serie de puntos, se propone el
siguiente mtodo:

52

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Se toma un conjunto de 5 puntos consecutivos

Se realiza el ajuste parablico y se obtienen los coeficientes correspondientes.

El valor de la derivada segunda en el punto medio es el doble del trmino cuadrtico del
polinomio de ajuste.

Derivada segunda sin filtrar

El procedimiento para calcular la derivada segunda sin filtrar es similar a la filtrada, salvo que
en lugar de tomar 5 puntos de ajuste, se toman tres.

Derivada sin filtrar


En el caso de la metodologa temporal, se necesita calcular un mximo en la velocidad de
deformacin. En este caso se utiliza la derivada primera sin filtrar, es decir, el procedimiento es
similar al descrito anteriormente solo que el valor de la derivada en el punto medio es el doble
del producto del trmino cuadrtico por el punto ms el coeficiente del trmino lineal.

Se toma un conjunto de 3 puntos consecutivos

Se realiza el ajuste parablico y se obtienen los coeficientes correspondientes.

El valor de la derivada en el punto medio es el doble del trmino cuadrtico del


polinomio de ajuste ms el coeficiente del trmino lineal.

53

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

3.5 Creacin de ejecutable


Para poder ejecutar el programa en cualquier ordenador, se procede a realizar un ejecutable
*.exe capaz de poderse utilizar sin necesidad de tener instalado MATLAB.
Las capacidades que posee MATLAB son innumerables. En el siguiente grfico se muestran los
diferentes productos para el desarrollo de aplicaciones que se pueden implantar.

Fig. 3-23: Esquema de compilacin para distintos lenguajes de programacin

Como se puede observar en la figura 3-23, MATLAB presenta diferentes productos para realizar
aplicaciones o libreras en funcin del lenguaje de programacin. Segn las necesidades del
programador, podr escoger entre estos diferentes productos. Para conocer las posibilidades que
ofrece cada uno de ellos, se presenta a grandes rasgos una tabla con las aplicaciones soportadas
por cada producto.

Tabla 3-1: Productos de MATLAB para desarrollo de programacin.

54

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Para este proyecto en cuestin, el producto que se requiere es el MATLAB Compiler, ya que es
el nico capaz de crear aplicaciones independientes en cdigo C++. El resto son capaces de
desarrollar libreras y otros componentes, pero no aplicaciones independientes.

3.5.1

Requerimientos del sistema

MATLAB es una gran herramienta que acelera el tiempo de desarrollo. Como contrapartida, las
aplicaciones de MATLAB tienen dos problemas principales para la redistribucin. En primer
lugar, estn escritos en un lenguaje de script, por lo que cualquier persona podra leer el cdigo
de la aplicacin. En segundo lugar, se requieren para ejecutar dentro de MATLAB, que otras
personas pueden no haber instalado. Estas dificultades se pueden superar con la creacin de una
aplicacin independiente.
El producto MATLAB Compiler puede compilar archivos *.m, archivos MEX, objetos de
MATLAB, u otro cdigo de MATLAB. El producto MATLAB Compiler, puede generar
aplicaciones independientes en UNIX, Windows y Macintosh. Al empaquetar y distribuir
aplicaciones y libreras que el producto MATLAB Compiler genera, se tiene que incluir el
MATLAB Compiler Runtime (MCR), as como un conjunto de apoyo a los archivos generados
por el compilador MATLAB. Tambin establece las rutas de acceso del sistema en el equipo de
destino para que el MCR y archivos de soporte puedan ser encontrados.

Para la construccin de aplicaciones independientes de MATLAB, es necesaria la utilizacin de


compiladores o de kit de desarrollo de software (SDK). Para versiones de 32 bit, MATLAB
posee un compilador propio, mientras que para la versin de 64 bit, es necesario instalarse
compiladores o kit de desarrollo de software (SDK). Los compiladores que se utilizan son los
siguientes:

Lcc-win32 C 2.4.1: Para poder compilar archivos propios de MATLAB (archivos *.m o
*.fig) que posteriormente sean ejecutados en ordenadores de 32 bit, se requiere utilizar
este compilador.

Microsoft Visual C++ 2008 Express: para compilar en ordenadores de 64 bit MATLAB
no dispone de compilador propio. En este caso se necesitara este compilador, as como
de un kit de desarrollo de software. Este compilador es gratuito. Se deber instalar en el
ordenar destinado a la creacin de la aplicacin (programador), aunque no es necesario
en el ordenar del destinatario (usuario).

La tabla 4-1 describe los compiladores que son compatibles con diversos productos de
MATLAB. Estos compiladores son proporcionados por diferentes proveedores y estn
disponibles en una variedad de trminos de origen comercial, acadmico, o abierto, pudiendo
ser visitados los sitios Web de los proveedores. Se necesita instalar los siguientes componentes:
55

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Microsoft Visual C++ 2010 Express


Microsoft Windows SDK 7.1

MATLAB

Compiler

Microsoft Visual C++ 2010


Express and
Windows SDK 7.1
Available at no charge
Microsoft Visual C++ 2010
Professional

V.

MATLAB MATLAB MATLAB MATLAB


Compiler Builder EX Builder NE Builder JA

For MEX-file
compilation, load For C and
library, and external
C++
usage of MATLAB
shared
Engine and MAT-file libraries
APIs

For all
features

For all
features

10.0

10.0

9.0

Microsoft Visual C++ 2005


Professional SP1 3

8.0 6

Intel C++ 5

11.1

Intel Visual Fortran 5

11.1

Microsoft Visual C++ 2008


Professional SP1 and
Windows SDK 6.1 2 3

Microsoft .NET Framework


SDK
Available at no charge

Java Development Kit (JDK)


Available at no charge

3.5

3.0

2.0

1.6

For all
features

Tabla 3-2: Caractersticas de los distintos compiladores.

3.5.2

Comandos utilizados

Para compilar y vincular archivos de origen en aplicaciones independientes o libreras


compartidas, se requiere seleccionar el compilador adecuado. Una vez seleccionado el
compilador, se procede a generar el ejecutable, compilndose los archivos originales y

56

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

diferenciando el archivo principal de los secundarios. A continuacin se comentan los detallas


de los dos comandos utilizados para la generacin de esta aplicaciones independientes.

mbuild setup

Para realizar esta seleccin, se utiliza el comando mbuild setup. Introduciendo esta
instruccin en la ventana de comandos de MATLAB, se localizan los compiladores que se
encuentran instalados en su ordenador. Tan solo se tiene que indicar el compilador deseado para
poder proseguir con el proceso.

Fig. 3-24: Pantalla de confirmacin de eleccin de compilador para creacin de aplicaciones independientes

Como se observa en la figura anterior, el compilador localizado por MATLAB es el que se ha


instalado con anterioridad, por lo que en el momento que se selecciona, est preparado para
continuar con el desarrollo de aplicaciones independientes.
deploytool
Una vez introducida esta orden en la ventana de comando, aparece una nueva ventana grfica
llamada Deployment Tool. En ella se marcan todos los pasos a seguir para realizar la
aplicacin independiente.

57

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

Fig. 3-25: Asistente para creacin de aplicaciones independientes

En primer lugar, es necesario el crear un nuevo proyecto. En l se indica el nombre que va a


tener y la direccin en la que se ubicar.

Fig. 3-26: Seleccin del tipo de proyecto a desarrollar

En segundo lugar se indican los archivos (cdigo fuente) que son necesarios para que la
aplicacin funcione correctamente. Se diferencia archivo principal del resto de archivos.
A la hora de indicar los archivos necesarios que contienen todo el cdigo, es necesario
diferenciar la funcin principal del resto de archivos. En este caso, en la carpeta especfica para
la funcin principal se introducir el archivo PROCEDIMIENTOS.m. El resto de archivos, en

58

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

los cuales se incluyen las funciones secundarias, todas los archivos grficos *.fig y las imgenes
utilizadas en las interfaces, se introducirn en la carpeta Other files. En la figura 3-27 se
muestra como quedara la organizacin de los archivos antes de proceder a la compilacin.

Fig. 3-27: Herramienta para el desarrollo de aplicaciones independientes. Seleccin de archivos

Una vez seleccionado los archivos que componen la interfaz, se procede a su compilacin,
proceso mediante el cual se obtienen una carpeta con el nombre de la aplicacin independiente
creada. Esta carpeta contienen toda la documentacin. Los archivos que existen en el interior es
la que se muestra a continuacin.

SEENECK
distrib

sr

SEENECK.exe
Readme.txt
build.txt
mccExcludedFiles.txt
readme.txt
SEENECK.exe
SEENECK.msvc.manifest
SEENECK_delay_load.c
SEENECK_main.c
SEENECK_mcc_component_data.c

59

Implementacin de metodologas para la deteccin de la estriccin en chapa conformada

60

También podría gustarte