0% encontró este documento útil (0 votos)
58 vistas21 páginas

GUI en MATLAB para Transductores

Este documento describe el desarrollo de una interfaz gráfica de usuario (GUI) en MATLAB para visualizar y analizar señales de onda. La GUI permite al usuario seleccionar una señal (seno, cuadrada, triangular o rampa), ajustar parámetros como amplitud, frecuencia y offset, y calcular valores promedio y RMS. La señal se grafica en el dominio del tiempo y la frecuencia. El documento explica conceptos teóricos como GUIDE, objetos gráficos y propiedades, y el procedimiento seguido para implementar la GUI

Cargado por

Camila Moreno
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas21 páginas

GUI en MATLAB para Transductores

Este documento describe el desarrollo de una interfaz gráfica de usuario (GUI) en MATLAB para visualizar y analizar señales de onda. La GUI permite al usuario seleccionar una señal (seno, cuadrada, triangular o rampa), ajustar parámetros como amplitud, frecuencia y offset, y calcular valores promedio y RMS. La señal se grafica en el dominio del tiempo y la frecuencia. El documento explica conceptos teóricos como GUIDE, objetos gráficos y propiedades, y el procedimiento seguido para implementar la GUI

Cargado por

Camila Moreno
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Fı́sica de Transductores

PRÁCTICA 1: PROGRAMACIÓN DE GUI’S EN MATLAB

Reporte
Presentado por:

Juan Pablo Colina Morales


cc. 1125624647
Michell Guevara Gaviria
cc. 1006878170
Jose Leonardo Marin Martinez
cc.1093228262
Maria Juliana Parra Goyes
cc. 1004775231

Presentado a: Ricardo Linares Ruiz

Ingenierı́a Fı́sica
Universidad Tecnologica de Pereira
Pereira, 16/09/2021
Índice
1. Introducción 2

2. Marco Teórico 3

3. Procedimiento 5

4. Resultados 15

5. Conclusiones 20

1
1. Introducción
El uso de interfaces gráficas mediante las cuales un usuario interactúa es una herramienta en
extremo útil, debido a la facilidad de interacción entre máquina o sistema operativo y persona
sin previos conocimientos de programación de cualquier tipo. No solo da mayor accesibilidad
a los programas y sus procesos si no que puede facilitar procesos repetitivos, como es el caso
del calculo y graficación de variables y fenómenos fı́sicos.
Por otro lado el conocimiento del comportamiento de señales que se comportan como una
forma de onda es esencial al momento de estudiar el comportamiento de los transductores, ya
es el tipo de señales que suelen interactuar en los sistemas eléctricos donde se implementan
los transductores.
En la primera práctica de laboratorio de transductores se realizará una GUI en Matlab
en la cual se podrá apreciar una sección donde se seleccionará una señal de forma de onda,
la cual tendrá los parámetros de amplitud, frecuencia, y offset establecidos por el usuario a
través de la GUI, la señal definida será entonces usada para calcular los parámetros de valor
promedio y RMS además se graficará en el dominio de tiempo y frecuencia con los parámetros
de adquisición que ponga el usuario.
Se realizaron pruebas para comprobar su funcionamiento con señales de onda tipo seno,
cuadrada, triangular, y rampa, y se compararon los valores obtenidos con la GUI a los teóricos
comprobando que la GUI funcionaba correctamente frente a los valores promedio y RMS,
aunque no de manera esperada frente al criterio de Nyquist.

2
2. Marco Teórico
GUIDE (entorno de desarrollo de GUI) proporciona herramientas para diseñar interfaces
de usuario para Apps personalizadas. Mediante el editor de diseño de GUIDE, es posible
diseñar gráficamente la interfaz de usuario. GUIDE genera entonces de manera automática el
código de MATLAB para construir la interfaz, el cual se puede modificar para programar el
comportamiento de la app.
Los elementos que componen la GUI se encuentran organizados según su importancia y
tipo. Al igual que muchos otros objetos, los gráficos poseen propiedades con las cuales se
pueden modificar su apariencia y funcionamiento. Una vez que los controles están en posición
se editan las funciones de llamada (Callback) de cada uno de ellos, escribiendo el código de
MATLAB que se ejecutará cuando el control sea utilizado.
Para manipular el código que se ejecuta cuando el objeto gráfico es activado es necesario
conocer el identificador de dicho objeto, que en Matlab es llamado handle. Los identificadores
de una ventana, eje u objeto activo se pueden obtener respectivamente con los comandos gcf
(get current figure), gca (get current axes) y gco (get current object).
Todos los objetos de MATLAB tienen distintas propiedades, y siempre tienen valores por
defecto, que se utilizan siempre que el usuario no indique otra cosa. Matlab dispone de las
funciones set y get para modificar y consultar respectivamente el valor de las propiedades de
un objeto. Las funciones set(handle) lista en pantalla todas las propiedades del objeto (sólo
los nombres, sin los valores de las propiedades). La función get(handle) produce un listado de
las propiedades y sus valores actuales. Para conocer el valor de una propiedad particular de
un objeto se utiliza la función la misma función get de la forma get(id,’propiedad’), o si se
desea modificar se usa set de la forma set(id,’propiedad’,’valor’).
La programación orientada a eventos: es aquella en la cual la estructura y la ejecución del
programa son establecidos por sucesos, como por acciones que ocurren en el sistema y que son
definidos por el usuario o por el sistema. Un evento es una acción que es reconocida por un
objeto y es originada cuando el usuario interactúa con el programa al hacer click al mouse o
al pulsar teclas, ası́ como por salidas de sensores, mensajes de otros programas o subprocesos,
por lo general hay un bucle principal que lee estos eventos y posteriormente activa una función
de llamado (callback) al detectarse uno de los mismos.
Los objetos gráficos: son los objetos que se ven en la pantalla de la GUI, por ejemplo un
botón, una lista, etc. Estos elementos se encuentran en la interfaz gráfica de la GUI. Por lo
tanto, presentan datos de manera gráfica en una ventana. Cada objeto tiene un identificador
el cual permite cambiar las propiedades de un objeto, y precisar los valores de las propiedades
al crear dicho objeto. Son usadas las funciones plot, bar, scatter, entre otras.
Los identificadores: son los nombres que tiene asociado cada objeto, por ejemplo para
mostrar el plano en que se grafica una lı́nea el nombre es axes o para un botón es button, ası́
se hace referencia a las caracterı́sticas determinadas de un objetos gráfico; se emplean para
informar de las propiedades de un objeto y pueden ser ser guardadas en variables.
Las propiedades: son las caracterı́sticas que tiene un objeto gráfico y aparecen al dar click
derecho en la GUI, contienen datos de objetos como el estilo, los hijos, etc. y poseen un
valor por defecto, que puede ser transformado. Estos en ciertos casos pueden tener cualquier

3
valor o uno determinado y generalmente el nombre de la propiedad describe su significado con
claridad, por ejemplo que un botón sea verde o invisible, etc.
Las funciones de apertura (o OpeningFcn) se encargan en la GUI de ejecutar el comando
o el código que se encuentre dentro de alguna función. El proceso de ejecución se realiza en la
apertura del programa, de este modo es utilizada para inicializar los objetos en la GUI y se
ejecuta antes de que la GUI aparezca en pantalla.
La función de salida (o OutputFcn) el código que aparezca en la función de salida se ejecu-
ta cuando el usuario cierra el programa, hace posible que sean asignadas las variables de salida
a la subfunción que controla la GUI, cuando es utilizada entrega en la ventana de comandos
los resultados de los procesos efectuados en la GUI al momento de cerrarse.
Las funciones de llamado (o Callbacks) ejecuta el código en medio del programa, son carac-
terı́sticas relacionadas a funciones de retorno especı́ficas, como crear el valor de una propiedad,
un identificador de devolución, etc. ası́ la aplicación responde cuando el usuario interactúa con
ella, por ejemplo darle a un botón click para que cambie de color.
Un handle o identificador es un número diferente que asigna Matlab y que le permite di-
ferenciar uno objetos de otro, puede ser un identificador de valores, como en el caso de crear
alguna lı́nea o una figura geométrica y ası́ pueden ser distinguidos.

4
3. Procedimiento
Calculamos el tiempo de adquisición de la señal TADQ de tal manera que se puedan observar
4 ciclos de la señal, teniendo en cuenta que la frecuencia es de 200Hz, por tanto
1 1 1
TADQ = 4T = 4 =4 = = 0,02s
f 200 50
Apartir de lo anterior se usa la Frecuencia de Nyquist, para la cual F s = 2f , correspon-
diente al primer criterio (o teórico)
muestras
F s = 2 · 200Hz = 400
s
N
usando la expresión TADQ = Fs
hallamos el número de muestras
muestras
N = TADQ · F s = 0,02s · 400 = 8muestras
s
Hasta el momento se obtiene la respuesta graficada en la figura 14

Figura 1: Grafica obtenida con el criterio de Fs = 2f

Ahora es psoible usar el segundo criterio (o práctico) donde la velocidad de muestreo se calcula
como F s = 10f
muestras
F s = 10 · 200Hz = 2000
s
siendo el numero de muestras

5
N = 0,02 · 2000 = 40muestras
Ya con los anteriores parámetros se obtiene el resultado mostrado en la figura 5

Figura 2: Gráfica senoidal obtenida con el criterio de Fs = 10f

6
Figura 3: Gráfica cuadrada obtenida con el criterio de Fs = 10f

Figura 4: Gráfica triangular obtenida con el criterio de Fs = 10f

7
Figura 5: Gráfica rampa obtenida con el criterio de Fs = 10f

Para un Offset de 1V
Función Seno

8
Figura 6: Función seno con los valores establecidos y un offset de 1V

Función Cuadrada

9
Figura 7: Función Cuadrada con los valores establecidos y un offset de 1V

Función Triangular

10
Figura 8: Función Triangular con los valores establecidos y un offset de 1V

Función Rampa

11
Figura 9: Función Rampa con los valores establecidos y un offset de 1V

Ahora, cambiando los valores del offset a 1.5 V y 2 V


Función Seno:

Figura 10: Función seno, offset 1.5 V vs 2 V

Función Cuadrada:

12
Figura 11: Función Cuadrada, offset 1.5 V vs 2 V

Función Triangular:

Figura 12: Función Triangular, offset 1.5 V vs 2 V

Función Rampa:

13
Figura 13: Función Rampa, offset 1.5 V vs 2 V

Finalmente se tomará una señal senoidal con amplitud igual a 0 y Offset diferente de cero
y se observará tanto su resultado gráfico como numérico.

14
4. Resultados
Como se puede observar en la figura 14, la respuesta no es la esperada ya que no es posible
visualizar la forma de la onda sinusoidal, de hecho podemos notar que la escala de la gráfica
superior es muy pequeña, por lo que la gráfica está oscilando prácticamente alrededor de cero.
Lo anterior se puede deber a que la onda seno corta 8 veces al eje x cuando se desea ver 4
periodos de la misma, por ende, al ser constante el periodo de muestreo, la señal tiende a
oscilar muy cerca al eje x.
En el caso de usar el segundo criterio (o práctico) vemos que se obtiene una respuesta
en el tiempo mucho mas cercana a la esperada debido a que el numero de muestras mayor,
permite evitar que sean tomadas únicamente cuando la onda cruza por cero. Adicionalmente
respecto a la respuesta en frecuencia de ambos casos tenemos que la escala de los ejes cambia
drásticamente, mientras que en el primer caso era prácticamente cero, en el segundo podemos
ver claramente la componente frecuencial esperada (200Hz). Estas últimas deberı́an ser iguales
ya que corresponden a la misma onda sinusoidal, sin embargo, no ocurre ası́ por lo explicado
anteriormente respecto al periodo de muestreo.
Ahora, respecto a las otras formas de onda tenemos tabulado en la tabla inferior los co-
rrespondientes valores promedio y RMS de cada señal obtenida en la interfaz, junto con sus
valores teóricos para hacer un mejor análisis.

Val. Promedio V RMS


Función Teórico Práctico Error( %) Teórico Práctico Error( %)
Seno 0 -5.05151e-16 - 1.41421 1.39686 1.23
Cuadrada 0 0 - 2 2 0
Triangular 0 7.77156e-17 - 1.1547 1.22574 5.80
Rampa 0 -0.243902 - 1.1547 1.16619 0.99

Función Seno

Z T
1
Vprom = Asen(2πf t)dt
T 0
1
= − Acos(2πf t)|T0
T
1
=− (2)[cos(2π) − cos(0)]
1/200
= −400[1 − 1]
= 0V

Vmáx
VRM S = √ ≈ 1,41421V
2
Función Cuadrada

15
"Z #
T /2 Z T
1
Vprom = Adt + (−A)dt
T 0 T /2
1
= [A(T /2 − 0) − A(T − T /2)]
T
1
= [T − 2T + T ]
1/200
= 200[2T − 2T ]
= 0V

VRM S = Vmáx ≈ 2V
Función Triangular

"Z  #
T /2   Z T 
1 4At 4At
Vprom = − A dt + 3A − dt
T 0 T T /2 T
4A t2 4A t2 T
    
1 T /2
= − At + 3At −
T T 2 T 2

0 T /2
2
4A T 2 (T /2)2
    
1 4A (T /2)
= − A(T /2) + 3A(T − T /2) − −
T T 2 T 2 2
1
= [(T − T ) + (3T − 3T )]
1/200
= 0V

Vmáx
VRM S = √ ≈ 1,1547V
3
Función Rampa

1 T 2At
Z  
Vprom = − A dt
T 0 T
 
1 4 2
= (T /2 − 0) − 2(T − 0)
T T
1
= [2T − 2T ]
1/200
= 0V

Vmáx
VRM S = √ ≈ 1,1547V
3
Para un Offset de 1V

16
Val. Promedio V RMS
Función Teórico Práctico Error( %) Teórico Práctico Error( %)
Seno 1 1 0 2.052 1.73205 15.59
Cuadrada 1 1 0 3 2.23607 25.46
Triangular 1 1 0 1.732 1.56205 9.81
Rampa 1 0.8 20 1.5 1.4 6.6

Cuadro 1: Tabla de comparación de valores teóricos vs prácticos

Los valores prácticos que se muestran a continuación fueron extraı́dos de las figuras 6 a la
9 y los valores teóricos fueron extraı́dos de las ecuaciones que se muestran a continuación
Función Seno

Z T
1
Vprom = (Asen(2πf t) + Vof f set )dt
T 0
1
= − Acos(2πf t)|T0 + tVof f set |T0
T
1
=− (2)[cos(2π) − cos(0)] + V
1/200
= −400[1 − 1] + 1
= 1V

Vmáx
VRM S = √ ≈ 2,052V
2
Función Cuadrada

"Z #
T /2 Z T Z T
1
Vprom = Adt + (−A)dt + (Vof f set )dt
T 0 T /2 0
1
= [A(T /2 − 0) − A(T − T /2) + V (T − 0)]
T
1
= [T − 2T + T ] + V
1/200
= 200[2T − 2T ] + V
= 1V

VRM S = Vmáx = 3
Función Triangular

17
"Z #
T /2   Z T   Z T
1 4At 4At
Vprom = − A dt + 3A − dt + (Vof f set )dt
T 0 T T /2 T 0

4A t2 4A t2 T
    T 
1 T /2
= − At + 3At − +tVof f set

T T 2 T 2

0 T /2 0
2
 2
(T /2)2
    
1 4A (T /2) 4A T
= − A(T /2) + 3A(T − T /2) − − +VT
T T 2 T 2 2
1
= [(T − T ) + (3T − 3T )] + V
1/200
= 1V

Vmáx
VRM S = √ ≈ 1,732V
3
Función Rampa

1 T 2At
Z  
Vprom = − A + Vof f set dt
T 0 T
 
1 4 2
= (T /2 − 0) − 2(T − 0) + Vof f set (T − 0)
T T
1
= [2T − 2T ] + Vof f set
1/200
= 1V

Vmáx
VRM S = √ ≈ 1,501V
3
Para un Offset de 1.5V

Val. Promedio VRM S


Función Teórico Práctico Error( %) Teórico Práctico Error( %)
Seno 1.5 1.5 0 1.4056 2.06155 14.3
Cuadrada 1.5 1.5 0 3.5 2.5 28.6
Triangular 1.5 1.5 0 2.0207 1.92094 4.936
Rampa 1.5 1.3 13.33 1.7898 1.73494 3.065

Cuadro 2: Tabla de comparación de valores teóricos vs prácticos con un offset de 1.5 V

Para un Offset de 2V

18
Val. Promedio VRM S
Función Teórico Práctico Error( %) Teórico Práctico Error( %)
Seno 2 2 0 2.7592 2.44949 11.22
Cuadrada 2 2 0 4 2.82843 29.29
Triangular 2 2 0 2.3094 2.33238 1
Rampa 2 1.8 10 2.0785 2.13542 2.7

Cuadro 3: Tabla de comparación de valores teóricos vs prácticos con un offset de 2V

Finalmente tomando una onda senoidal con A = 0 y Of f set = 2. La ecuación de la onda


seno correspondiente es:
y(t) = 2 + (0) ∗ sen(200πt)
y(t) = 2
A continuación se muestra la gráfica obtenida en la GUI:

Figura 14: Gráfica de onda senoidal con amplitud 0 y offset de 2

19
5. Conclusiones
Cuando se usa el criterio de Nyquist mı́nimo (Fs = 2f ), se obtiene un número pequeño
de muestras, por lo que puede coincidir que las muestras sean tomadas cuando la función
cruza por cero, por lo que no se obtiene la forma de la señal esperada.

A medida que se aumenta la frecuencia de muestreo, junto con la cantidad de muestras,


se aumenta la suavidad de la gráfica.

El valor promedio de una señal sinusoidal a la cual se le asigna un offset será el mismo
offset, esto se debe a que ya no es una señal netamente alterna si no que se le ha añadido
una señal directa.

A medida que crece el voltaje offset disminuye el margen de error entre mas medidas,
excepto el valor de RMS de la función cuadrara, este crece a mayor voltaje del offset.

En la respuesta en frecuencia cuando se le aporta un offset, solo varia en la amplitud del


primer pico, pero no interfiere con los picos siguientes.

Analizando las respuestas en frecuencia de las diferentes ondas se puede ver como la
onda senoidal únicamente tiene el armónico fundamental, la señal cuadrada y triangular
tienen armónicos impares, los cuales cuya amplitud va decreciendo conforme aumenta
el múltiplo y la onda rampa, contiene tanto los armónicos pares como impares, cuya
amplitud también disminuye a medida que se aumenta el numero del armónico.

Al ingresar una onda senoidal con amplitud de 0 y offset diferente de 0, el seno se anula
y en la gráfica únicamente se muestra el termino del offset, lo cual corresponde con el
resultado teóricamente esperado. A medida que se varı́an los parámetros de adquisición,
en la gráfica de tiempo no se presenta ningún cambio. En cambio, en la gráfica de
frecuencia a medida que se varia la frecuencia de muestreo, la delta de Dirac que se
encuentra para el valor de 0 Hz, cambia su pendiente, haciéndose mayor cuando el
numero de muestras se disminuye.

20

También podría gustarte