Читать книгу: «Modelamiento y simulación de sistemas con Simulink», страница 8

Шрифт:

2.2.9 Componentes Radio Button y Button Group

La aplicación mostrada en la figura 2.18 hace alusión a uno de los alcances de los componentes Radio Button y Button Group. Dicha aplicación presenta la palabra Hola en diferentes idiomas (español, inglés, francés y japonés) previa selección del idioma.

Figura 2.18. Aplicación con Radio Button y Button Group

Con la finalidad de replicar la aplicación mostrada en la figura 2.18, se presenta la secuencia con las instrucciones por realizar:

1. Tipear en la ventana de comandos: guide <enter >.

2. En la pestaña Create New GUI seleccionar la opción Blank GUI (Default) y OK.

3. Guardar el archivo (en la carpeta que el usuario crea conveniente) haciendo clic en File-Save as, con el nombre Radio_Button (por ejemplo); y se crearán dos archivos que se abrirán al instante: el archivo Radio_Button.m (contiene el código fuente del GUI) y el archivo Radio_Button.fig. El archivo denominado Radio_Button.m se puede cerrar, ya que principalmente se trabajará con el archivo Radio_Button.fig.

4. Posicionarse en la ventana del archivo Radio_Button.fig y arrastrar con el mouse la componente Radio Button (cuyo icono se encuentra ubicado en la parte izquierda de dicha ventana) al área de diseño cuatro veces. Similar-mente, añadir el componente Button Group.

5. Hacer doble clic sobre el primer componente Radio Button, con lo cual se abrirá su ventana Inspector en donde habrá que ir a la propiedad String para ingresar la palabra Español. Similarmente, lo mismo para el segundo, tercero y cuarto componentes Radio Button, donde en la propiedad String de cada uno se ingresará la palabra Inglés, Francés y Japonés, respectivamente.

6. Luego, poner los componentes Radio Button sobre el componente Button Group y redimensionar todos los componentes de forma conveniente de unos con respecto de los otros.

7. A continuación, añadir el componente Static Text al área de diseño y ordenar todos los componentes considerando el mismo orden presentado en la figura 2.18.

8. Hacer doble clic sobre el componente Static Text, con lo cual se abrirá su ventana Inspector donde habrá que ir a la propiedad FontSize para ingresar el número 40. Opcionalmente, se puede seleccionar algún color para obtener una presentación más llamativa.

9. Seleccionar el componente Radio Button de nombre Español y hacer anticlic sobre él; luego, elegir las opciones View Callbacks-Callback y se abrirá instantáneamente el archivo Radio_Button.m; tras lo cual, ubicarse en la parte final de la línea sombreada, aperturar espacios verticalmente y tipear las siguientes líneas de código:

1 valor1 = get( handles . radiobutton1 , ' Value ' )

2 if valor1 == 1

3 set( handles .text1 , ' String ' , ' Hola ' )

4 set( handles .text1 , ' FontName ' , ' Helvetica ' )

5 else

6 end

10. Realizar el mismo procedimiento del paso 9 para el segundo componente Radio Button de nombre Inglés y proceder a transcribir las siguientes líneas de código:

1 valor2 = get( handles . radiobutton2 , ' Value ' )

2 if valor2 == 1

3 set( handles .text1 , ' String ' , ' Hello ' )

4 set( handles .text1 , ' FontName ' , ' Helvetica ' )

5 else

6 end

11. Realizar el mismo procedimiento del paso 9 para el tercer componente Radio Button de nombre Francés y proceder a transcribir las siguientes líneas de código:

1 valor3 = get( handles . radiobutton3 , ' Value ' )

2 if valor3 == 1

3 set( handles .text1 , ' String ' , ' Bonjour ' )

4 set( handles .text1 , ' FontName ' , ' Helvetica ' )

5 else

6 end

12. Realizar el mismo procedimiento del paso 9 para el cuarto componente Radio Button de nombre Japonés y proceder a transcribir las siguientes líneas de código:

1 valor4 = get( handles . radiobutton4 , ' Value ' )

2 if valor4 == 1

3 set( handles .text1 , ' String ' , ' Konichiwa ' )

4 set( handles .text1 , ' FontName ' , ' Helvetica ' )

5 else

6 end

13. Luego, en la barra de herramientas hacer clic en el icono que tiene por mensaje Editor y se abrirá instantáneamente el archivo Radio_Button.m; luego ubicarse en la línea donde se mostrará la siguiente línea de código:

7 function Axes1_OpeningFcn ( hObject , eventdata , handles , varargin )

Ahora, posicionarse debajo de esta línea de código y tipear el siguiente grupo de instrucciones:

8 set( handles .text1 , ' String ' , ' Hola ' )

9 set( handles .text1 , ' FontName ' , ' Helvetica ' )

14. Finalmente, guardar los cambios en ambos archivos (Radio_Button.m y Radio_Button.fig) y proceder a correr la aplicación desde el archivo Radio_Button.m o desde el archivo Radio_Button.fig.

2.2.10 Editor de barra de herramientas

La aplicación mostrada en la figura 2.19 da origen al gráfico central mediante el acoplamiento de cuatro herramientas personalizadas creadas en el editor de barra de herramientas.

Figura 2.19. Aplicación con barra de herramientas personalizada

Con la finalidad de replicar la aplicación mostrada en la figura 2.19, se presenta la secuencia con las instrucciones por realizar:

1. Tipear en la ventana de comandos: guide <enter >.

2. En la pestaña Create New GUI seleccionar la opción Blank GUI (Default) y OK.

3. Guardar el archivo (en la carpeta que el usuario crea conveniente) haciendo clic en File-Save as, con el nombre Tool_Bar (por ejemplo); y se crearán dos archivos que se abrirán al instante: el archivo Tool_Bar.m (contiene el código fuente del GUI) y el archivo Tool_Bar.fig. El archivo denominado Tool_Bar.m se puede cerrar, ya que principalmente se trabajará con el archivo Tool_Bar.fig.

4. Posicionarse en la ventana del archivo Tool_Bar.fig y arrastrar con el mouse la componente Axes (cuyo icono se encuentra ubicado en la parte izquierda de dicha ventana) al área de diseño.

5. Luego, en la barra de herramientas hacer clic en el icono que tiene por mensaje Toolbar Editor y se abrirá instantáneamente la ventana Toolbar Editor; en la cual seleccionar Push Tool en la pestaña Custom Tools y luego hacer clic en Add, para agregar la primera herramienta personalizada. Para definir el nombre habrá que ir a Tool Properties-Tooltip String y editar la palabra Gráficos. Posteriormente, hacer clic en el botón View que se encuentra en la pestaña Tool Properties y se abrirá instantáneamente el archivo Tool_Bar.m en la ubicación de la línea de la función ClickedCall-back de la primera herramienta personalizada, debajo de esta línea se debe transcribir las siguientes líneas de código:

1 x = [0:0.01:20];

2 y = sin(x);

3 plot (x,y)

6. Realizar el mismo procedimiento del paso 5 para crear la segunda herramienta personalizada y definirla con la palabra Rótulas de ejes. Finalmente, hacer clic en el botón View y transcribir las siguientes líneas de código:

1 xlabel ( ' Tiempo ' )

2 ylabel ( ' Desplazamiento ' )

7. Realizar el mismo procedimiento del paso 5 para crear la tercera herramienta personalizada y definirla con la palabra Título. Finalmente, hacer clic en el botón View y transcribir las siguientes líneas de código:

1 title ( ' Tiempo vs Desplazamiento ' )

8. Realizar el mismo procedimiento del paso 5 para crear la cuarta herramienta personalizada y definirla con la palabra Cuadrícula. Finalmente, hacer clic en el botón View y transcribir las siguientes líneas de código:

1 grid on

9. Finalmente, guardar los cambios en ambos archivos (Tool_Bar.m y Tool_ Bar.fig) y proceder a correr la aplicación desde el archivo Tool_Bar.m o desde el archivo Tool_Bar.fig.

2.2.11 Editor de barra de menús desplegables de Guide

La aplicación mostrada en la figura 2.20 presenta unos menús desplegables predefinidos por el usuario utilizando el editor de barra de menús.

Figura 2.20. Aplicación con menús desplegables personalizados. Fotografía: http://www.flickriver.com

Con la finalidad de replicar la aplicación mostrada en la figura 2.20, se presenta la secuencia con las instrucciones a realizar:

1. Tipear en la ventana de comandos: guide <enter >.

2. En la pestaña Create New GUI seleccionar la opción Blank GUI (Default) y OK.

3. Guardar el archivo (en la carpeta que el usuario crea conveniente) haciendo clic en File-Save as, con el nombre Menu_Bar (por ejemplo); y se crearán dos archivos que se abrirán al instante: el archivo Menu_Bar.m (contiene el código fuente del GUI) y el archivo Menu_Bar.fig. El archivo denominado Menu_Bar.m se puede cerrar, ya que principalmente se trabajará con el archivo Menu_Bar.fig.

4. Posicionarse en la ventana del archivo Menu_Bar.fig y arrastrar con el mouse la componente Axes (cuyo icono se encuentra ubicado en la parte izquierda de dicha ventana) al área de diseño. Posteriormente, redimensionar este componente haciendo que cubra todo el espacio del área de diseño.

5. Luego, en la barra de herramientas hacer clic en el icono que tiene por mensaje Editor y se abrirá instantáneamente el archivo Menu_Bar.m; en el cual ubicarse en la parte final de la siguiente línea de código:

2 function Axes1_OpeningFcn ( hObject , eventdata , handles , varargin )

Ahora, posicionarse debajo de esta línea de código y tipear el siguiente grupo de instrucciones:

1 [x,map ] = imread ( ' Navajo .jpg ' , ' jpg ' );

2 image (x)

3 axis off

4 hold on

5 text (25 ,40 , ' Presentación del Programa ' , ' Fontname ' , ' Arial ' , ' Fontsize ' ,25, ' Fontangle ' , ' Italic ' , ' Fontweight ' , ' Bold ' , ' color ' , ' y ' )

6 text (25 ,75 , ' Por: Miguel Raúl Guzmán Prado ' , ' Fontname ' , ' Comic Sans MS ' , ' Fontangle ' , ' Italic ' , ' Fontweight ' , ' Bold ' , ' Fontsize ' ,14, ' color ' , ' c ' )

7 text (25 ,100 , ' Raúl Franco Guzmán López ' , ' Fontname ' , ' Comic Sans MS ' , ' Fontangle ' , ' Italic ' , ' Fontweight ' , ' Bold ' , ' Fontsize ' ,14, ' color ' , ' c ' )

6. Retornando al archivo Menu_Bar.fig, en la barra de herramientas hacer clic en el icono que tiene por mensaje Menu Editor y se abrirá instantáneamente la ventana Menu Editor; donde se procederá a establecer los menús y sus características mostradas en la figura 2.21. En el panel Menu Properties de la figura 2.21 se especifica el nombre del menú en la opción Label, el identificador interno del menú en la opción Tag, las teclas de acceso rápido en la opción Accelerator y para asignar líneas de código usar el botón View del panel Menu Properties.

Figura 2.21. Ventana del editor de menús

7. Finalmente, guardar los cambios en ambos archivos (Menu_Bar.m y Menu_Bar.fig) y proceder a correr la aplicación desde el archivo Menu_Bar.m o desde el archivo Menu_Bar.fig. Cabe mencionar que esta estructura es muy útil para mostrar diversos contenidos (tablas, gráficos, imágenes, ingresos y salidas de datos, etcétera) desde una misma aplicación.


Capítulo3Simulink

3.1 INTRODUCCIÓN

Este capítulo presenta los procedimientos básicos para la implementación de sistemas dinámicos mediante diagramas de bloques de Simulink. También se describe el mecanismo de trabajo de Simulink y se implementan ejemplos simples, con el fin de mostrar la funcionalidad del establecimiento de parámetros y la utilidad de algunos bloques.

3.2 SIMULINK

Simulink es una plataforma de trabajo de programación gráfica que funciona dentro del entorno de programación Matlab; la cual cuenta con un ambiente de diagramas compuestos por modelos de bloques de múltiples dominios. Dicha plataforma es utilizada convenientemente para el modelamiento y simulación de sistemas dinámicos haciendo uso de la ventana de edición gráfica, bibliotecas de bloques organizados funcionalmente y solvers.

3.2.1 Diagramas de bloques de Simulink

Los desarrollos en Simulink se basan en la creación de diagramas de bloques, cuyos bloques representan las distintas componentes de un sistema dinámico. Un bloque se interrelaciona mediante un ingreso y una salida (figura 3.1) con los demás bloques del sistema dinámico implementado.

Figura 3.1. Esquema del ingreso y salida de un bloque

Los ingresos y salidas de los bloques corresponden a señales calculadas paso a paso en el transcurso del tiempo de simulación, como se ilustra en la figura 3.2.

Figura 3.2. Señales de ingreso y salida de un bloque

La característica principal de Simulink reside en simular el comportamiento de las componentes del sistema dinámico a lo largo del tiempo. En cada paso de tiempo se calcula el valor de la señal de ingreso, se aplica la función correspondiente del bloque y, posteriormente, se calcula el valor de la señal de salida. Las figuras 3.3 y 3.4 muestran el proceso del desarrollo del cálculo en distintos instantes de tiempo.


Figura 3.3. Cálculo de las señales de ingreso y salida de un bloque en el tiempo t


Figura 3.4. Cálculo de las señales de ingreso y salida de un bloque en el tiempo t + At

Simulink maneja los datos en tres categorías:

Señales. Ingresos y salidas del bloque, calculadas durante la simulación del modelo.

Estados. Valores internos, representando las dinámicas del bloque, calculados durante la simulación del modelo.

Parámetros. Valores que afectan el comportamiento de un bloque.


Figura 3.5. Esquema del manejo de datos de Simulink

3.2.2 Ventanas de trabajo de Simulink

El Editor de Simulink es la ventana donde se llevará a cabo la construcción de los modelos de sistemas dinámicos, la cual proporciona opciones interactivas para agregar y conectar bloques; así como también proporciona herramientas para el manejo propicio del ambiente de trabajo.


Figura 3.6. Ventana Editor de Simulink

La ventana Configuration Parameters básicamente permite establecer el tiempo de la simulación, el solver por considerar y el intervalo de muestreo.


Figura 3.7. Ventana Configuration Parameters

La ventana Simulink Library Browser muestra el árbol con las bibliotecas de bloques instaladas. Al seleccionar una biblioteca se visualizarán los bloques constituyentes en el panel de bloques.


Figura 3.8. Ventana de Simlulink Library Browser

3.2.3 Bibliotecas de bloques

Los bloques de las principales bibliotecas de Simulink se presentan a continuación:

Commonly Used Blocks: Bloques usados con frecuencia.


Figura 3.9. Bloques de la biblioteca Commonly Used Blocks

Continuous: bloques de funciones continuas.


Figura 3.10. Bloques de la biblioteca Continuous

Dashboard: bloques de control e indicadores para interactuar con simulaciones.


Figura 3.11. Bloques de la biblioteca Dashboard

Discontinuities: bloques de funciones discontinuas.


Figura 3.12. Bloques de la biblioteca Discontinuities

Lookup Tables: bloques de tabla de búsqueda.


Figura 3.13. Bloques de la biblioteca Lookup Tables

Discrete: bloques de función de tiempo discreto.


Figura 3.14. Bloques de la biblioteca Discrete

Math Operations: bloques de función matemática.


Figura 3.15. Bloques de la biblioteca Math Operations

Logic and Bit Operations: bloques de operación de bit o lógica.


Figura 3.16. Bloques de la biblioteca Logic and Bit Operations

Ports and subsystems: bloques relacionados con los subsistemas.


Figura 3.17. Bloques de la biblioteca Ports and Subsystems

Model-Wide Utilities: bloques de operación en todo el modelo.


Figura 3.18. Bloques de la biblioteca Model-Wide Utilities

Model Verification: bloques para autoverificación de modelos.


Figura 3.19. Bloques de la biblioteca Model Verification

User-Defined Functions: bloques de funciones personalizados.


Figura 3.20. Bloques de la biblioteca User-Defined Functions

Signal Attributes: bloques de modificación de atributos de señal.


Figura 3.21. Bloques de la biblioteca Signal Attributes

Signal Routing: bloques de señal de ruta.


Figura 3.22. Bloques de la biblioteca Signal Routing

Sinks: bloques de muestreo o exportación de datos de señal.


Figura 3.23. Bloques de la biblioteca Sinks

Sources: bloques de generación o importación de datos de señal.


Figura 3.24. Bloques de biblioteca Sources

Additional Math and Discrete: bloques de función matemática y discreta.

Additional Discrete:


Figura 3.25. Bloques de la biblioteca Additional Discrete

Additional Math: Increment - Decrement:


Figura 3.26. Bloques de la biblioteca Additional Math: Increment - Decrement

3.2.4 Creación de un modelo simple

A continuación se presenta la secuencia de instrucciones en la implementación de un modelo simple que tiene por ingreso una onda sinusoidal sin(t) y por salida una onda cosenoidal cos(t).

1. Tipear en la ventana de comandos de Matlab simulink <enter >, tras lo cual se abrirá la ventana Simulink Start Page.


Figura 3.27. Ventana Simulink Start Page

2. Seleccionar la pestaña New, desplegar el contenido de la opción Simulink y luego hacer clic en el icono de nombre Blank Model; como se muestra en la figura 3.28.

Figura 3.28. Ventana deSimulink Start Page con el ícono Blank Model resaltado

3. Guardar el archivo donde se trabajará el modelo, seleccionando File/Save en la ventana del editor de Simulink (figura 3.29).

4. Hacer clic en el icono de nombre Model Configuration Parameters ubicado en la barra de herramientas del editor Simulink (figura 3.29), tras lo cual se abrirá la ventana Configuration Parameters (figura 3.30). En dicha ventana, al seleccionar la opción Solver, del cuadro titulado Select, se podrán establecer los parámetros de tiempo de simulación, opciones de resolución y opciones adicionales.

Figura 3.29. Ventana del editor de Simulink

Figura 3.30. Ventana configuración Parameters

5. Hacer clic en el icono de nombre Library Browser ubicado en la barra de herramientas del editor Simulink (figura 3.31), tras lo cual se abrirá la ventana Simulink Library Browser (figura 3.32). Seguir las siguientes instrucciones:

• En el árbol, desplegar la opción Simulink y hacer clic en la librería Sources, para seguidamente seleccionar el bloque Sine Wave y arrastrarlo manteniendo presionado el botón izquierdo del mouse hacia el área de trabajo del editor de Simulink.

• Hacer clic en la librería Continuous de la opción Simulink, para seguidamente seleccionar el bloque Derivative y arrastrarlo manteniendo presionado el botón izquierdo del mouse hacia el área de trabajo del editor de Simulink.

• Hacer clic en la librería Sinks de la opción Simulink, para seguidamente seleccionar el bloque Scope y arrastrarlo manteniendo presionado el botón izquierdo del mouse hacia el área de trabajo del editor de Simulink.

Figura 3.31. Ventana del editor de Simulink (ícono Library Browser)

Figura 3.32. Ventana del editor de Simulink Library Browser


Figura 3.33. Ventana del editor de Simulink con bloques

6. Enlazar los bloques, como se muestra en la figura 3.34; hacer clic en el primer bloque, luego presionar la tecla ctrl y finalmente hacer clic en el segundo bloque.

7. Simular el modelo; hacer clic en el icono de nombre Run ubicado en la barra de herramientas del editor Simulink (figura 3.34).

Figura 3.34. Ventana del editor de Simulink con bloques enlazados

8. Hacer doble clic en el bloque Scope y se abrirá la ventana de la figura 3.35.

Figura 3.35. Ventana de visualización de resultados del bloque Scope

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе

Жанры и теги

Возрастное ограничение:
0+
Объем:
599 стр. 649 иллюстраций
ISBN:
9789972455339
Издатель:
Правообладатель:
Bookwire
Формат скачивания:
Текст
Средний рейтинг 5 на основе 1 оценок
Текст
Средний рейтинг 5 на основе 3 оценок
Текст PDF
Средний рейтинг 5 на основе 2 оценок
Текст, доступен аудиоформат
Средний рейтинг 5 на основе 1 оценок
По подписке
Текст, доступен аудиоформат
Средний рейтинг 5 на основе 4 оценок
По подписке
Текст PDF
Средний рейтинг 0 на основе 0 оценок
Текст PDF
Средний рейтинг 5 на основе 1 оценок
Текст
Средний рейтинг 4,2 на основе 10 оценок
По подписке
Аудио
Средний рейтинг 0 на основе 0 оценок