46
UNIVERSIDAD MI FACULT DIVISI “INTROD Lugar: Laboratorio PONENTES: M.I. Isidro Ignacio Ing. Ciro Jesús Gaspa ICHOACANA DE SAN NICOLÁS D TAD DE INGENIERÍA ELÉCTRI IÓN DE ESTUDIOS DE POSGRAD NOTAS DEL CURSO DUCCIÓN A SIMUL de Modelado de Sistemas Eléc o Lázaro Castillo. ar Valle. DE HIDALGO ICA DO LINK” ctricos.

“INTRODUCCIÓN A SIMULINK” - Isidro Lázaroisidrolazaro.com/wp-content/uploads/2016/09/NOTAS... · de sistemas de control, siendo herramientas cada vez más poderosas y sencillas

Embed Size (px)

Citation preview

UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGOFACULTAD

DIVISIÓN DE ESTUDIOS DE POSGRADO

“INTRODUCCIÓN A SIMULINK”

Lugar: Laboratorio de Modelado de Sistemas Eléctricos. PONENTES: M.I. Isidro Ignacio Lázaro Castillo.Ing. Ciro Jesús Gaspar Valle.

UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO

FACULTAD DE INGENIERÍA ELÉCTRICADIVISIÓN DE ESTUDIOS DE POSGRADO

NOTAS DEL CURSO

“INTRODUCCIÓN A SIMULINK”

Laboratorio de Modelado de Sistemas Eléctricos.

Ignacio Lázaro Castillo. Ciro Jesús Gaspar Valle.

UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO DE INGENIERÍA ELÉCTRICA

DIVISIÓN DE ESTUDIOS DE POSGRADO

“INTRODUCCIÓN A SIMULINK”

Laboratorio de Modelado de Sistemas Eléctricos.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

1

OBJETIVO DEL CURSO:

� Difundir el uso de una herramienta computacional muy importante, denominada Simulink , con la cual el estudiante pueda construir sus propios Modelos, ejecutar sus propias Simulaciones y Aplicar está herramienta computacional en el análisis de diferentes sistemas o modelos matemáticos. � CONTENIDO DEL CURSO. I.- INTRODUCCIÓN II.- DESCRIPCIÓN DE SIMULINK

III.-CONSTRUCCION DE UN MODELO IV CREACIÓN DE SUBSISTEMAS V ENMASCARAMIENTO DE SUBSISTEMAS VI APLICACIONES REFERENCIAS

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

2

I.- I N T R O D U C C I O N

Uno de los problemas más frecuentes con los que tropieza un estudiante, es la necesidad de conocer y manejar herramientas que faciliten sus tareas cotidianas. Para ello se tiene que enfrentar a problemas tales como: aprender otro idioma (Ingles, Francés, etc.), contar con Bibliografía a su alcance, tener una máquina que le facilite sus múltiples cálculos matemáticos (Calculadora, Computadora, etc.), y muchas otras cosas más.

En el presente manual se expone los conceptos relacionados con la herramienta computacional denominada SIMULINK , así como también se proporciona una descripción como ayuda rápida para facilitar la utilización del paquete computacional, con la finalidad de que el estudiante fácilmente pueda implementar sus propios modelos y simulaciones del sistema que desee analizar.

En los últimos años los paquetes computacionales de simulación se han desarrollado de forma sorprendente, contribuyendo de manera significativa en el mejoramiento y diseño de sistemas de control, siendo herramientas cada vez más poderosas y sencillas de utilizar. Uno de los sistemas computacionales más desarrollados en el área de control es MATLAB , el cual contiene varios “toolboxes” para el análisis y simulación de sistemas como lo es SIMULINK , el cual se ha convertido en el paquete de software ampliamente usado para diseñar y simular los sistemas dinámicos en el ámbito académico e industrial, esto debido a que Simulink posee la capacidad de trabajar no solo con sistemas lineales, sino también con sistemas no-lineales, los cuales representan la dinámica de muchos sistemas reales. . Es conveniente mencionar que la herramienta que se le dará a conocer al estudiante, es muy amigable y poderosa, sabiendo aprovechar dicho paquete, el estudiante podría convertir la computadora en un laboratorio para diseñar y analizar sistemas que simplemente no sería posible implementar físicamente para realizar pruebas de diseño. Por ejemplo: la conducta de un sistema del embrague automovilístico, la vibración de una ala de avión, la dinámica de un modelo de una Gran Presa, o el efecto del suministro monetario en la economía que también es práctico.

II.- DESCRIPCION DE SIMULINK

Simulink es un poderoso lenguaje de programación, y una gran parte de su importancia radica en su fácil manejo. Este software sirve para modelar, diseñar y analizar sistemas que simplemente no serían posibrealizar una simulación y análisis de Sistemas Dinámicos. Soporta tanto sistemas linealescomo no-lineales, modelos en tiempo continuo, en tiempo discreto o sistemas híbridos de ambos casos anteriores [1, 2].

Nota: Este material está basada en la versión 5.3 de MATLAB, que contiene la versión 3.0 de SIMULINK.

Simulink es una extensión de MATLAB y por ello debe ser invocado por medio de éste. Para iniciar el programa de Simulink existen dos posibles opciones las cdescriben a continuación y se muestran gráficamente en la Figura 1:

1.- Ejecutar el comando:

2.- Dar un Click en el icono de Simulink, el cual se encuentra en la barra de herramientas de MATLAB.

Figura 1.

Al ejecutarse, una de las dos acciones anteriores, aparecerá la ventana que se muestra en la Figura 2, la cual contiene el buscador de las librerías de Simulink. Si hacemos doble click en la opción Simulinkcuales se pueden observar en la Figura 3.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

DESCRIPCION DE SIMULINKes un poderoso lenguaje de programación, y una gran parte de su

importancia radica en su fácil manejo. Este software sirve para modelar, diseñar y analizar sistemas que simplemente no serían posibles por otros medios. Con Simulink podemos realizar una simulación y análisis de Sistemas Dinámicos. Soporta tanto sistemas lineales

lineales, modelos en tiempo continuo, en tiempo discreto o sistemas híbridos de ambos casos anteriores [1, 2].

Este material está basada en la versión 5.3 de MATLAB, que contiene la versión 3.0 de SIMULINK.

Simulink es una extensión de MATLAB y por ello debe ser invocado por medio de éste. Para iniciar el programa de Simulink existen dos posibles opciones las cdescriben a continuación y se muestran gráficamente en la Figura 1:

Ejecutar el comando: simulink, en el área de trabajo (workspace) de MATLAB.

Dar un Click en el icono de Simulink, el cual se encuentra en la barra de LAB.

Figura 1.- Barra de herramientas de MATLAB.

Al ejecutarse, una de las dos acciones anteriores, aparecerá la ventana que se muestra en la Figura 2, la cual contiene el buscador de las librerías de Simulink. Si hacemos doble

ulink, se desplegaran los bloques de librerías propias de Simulink, las cuales se pueden observar en la Figura 3.

Figura 2.- Buscador de librerías de Simulink.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

3

DESCRIPCION DE SIMULINK es un poderoso lenguaje de programación, y una gran parte de su

importancia radica en su fácil manejo. Este software sirve para modelar, diseñar y analizar les por otros medios. Con Simulink podemos

realizar una simulación y análisis de Sistemas Dinámicos. Soporta tanto sistemas lineales lineales, modelos en tiempo continuo, en tiempo discreto o sistemas híbridos de

Este material está basada en la versión 5.3 de MATLAB, que contiene la versión 3.0 de SIMULINK.

Simulink es una extensión de MATLAB y por ello debe ser invocado por medio de éste. Para iniciar el programa de Simulink existen dos posibles opciones las cuales se

, en el área de trabajo (workspace) de MATLAB.

Dar un Click en el icono de Simulink, el cual se encuentra en la barra de

Al ejecutarse, una de las dos acciones anteriores, aparecerá la ventana que se muestra en la Figura 2, la cual contiene el buscador de las librerías de Simulink. Si hacemos doble

, se desplegaran los bloques de librerías propias de Simulink, las

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

4

Figura 3.- Librerías Propias de Simulink.

Para crear un nuevo modelo, solo basta con seleccionar la opción: File:New:Model

de la ventana de MATLAB, lo cual es similar a dar un click en el icono crear un nuevo modelo el cual aparece en la parte superior de la ventana del buscador de librerías de Simulink. Cualquiera de éstas dos acciones abrirá una nueva ventana (vacía) mostrada en la Figura 4, en la cual podemos implementar nuestro modelo.

Figura 4.- Ventana para un nuevo modelo.

Podemos desplegar el contenido de cualquier librería de la siguiente forma,

haciendo un click con el botón secundario sobre la librería deseada y después un click con el botón primario sobre la etiqueta que se despliega.

Entre las librerías propias de Simulink de mayor interés se encuentran las siguientes:

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

5

� Librería de Fuentes (Sources).- En esta librería se encuentran los bloques que nos proporcionan todas las posibles señales de entrada requeridas para analizar algún modelo, además existen bloques que nos permiten importar datos de archivos o del workspace para realizar su procesamiento. Los bloques más comúnmente utilizados de esta librería son los siguientes:

� Constant.- Proporciona un valor constante que puede ser escalar o vector. � Step.- Proporciona una señal de tipo escalón. � Sine Wave.- Genera una señal senoidal. � From Workspace.- Genera una señal, resultado de la interpolación de los

valores especificados en la matriz o estructura definida por las variables en el workspace de MATLAB.

� Clock.- Produce una señal que es igual al tiempo de la simulación actual.

Además de estos bloques existen muchos más, los cuales se muestran en la Figura 5, la Figura 6 nos muestra la representación de los bloques de esta librería por parte del buscador. Todos los bloques contienen sus propias características, tales como: nombre, descripción, propiedades, parámetros, ayuda, etc.

Figura 5.- Bloques de la librería de Fuentes. Figura 6.- Ventana del buscador, librería de fuentes.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

6

� Librería de Indicadores (Sinks).- Esta librería contiene bloques utilizados para desplegar las señales de interés, o salvar estas señales con la finalidad de que podamos realizar un procesamiento o análisis futuro. Entre los bloques más comunes de esta librería se encuentran:

� Scope.- Despliega la señal, que puede ser un escalar o un vector, en forma

análoga simulando el funcionamiento de un osciloscopio. � Display.- Despliega el valor de la señal de entrada actual. � To Workspace.- Guarda el valor de la señal de entrada, que puede ser un

escalar o un vector, en una variable de arreglo tipo matricial y la cual es accesible en el workspace de MATLAB después de terminada la simulación.

� Stop Simulation.- Tiene la capacidad de poder detener la simulación cuando la señal de entrada no es igual a cero.

En la Figura 7 se pueden apreciar todos los bloques de que consta esta librería.

� Figura 7.- Símbolo y bloques de la librería de Indicadores.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

7

� Librería de bloques Continuos (Continuous).- En esta librería se encuentran los bloques necesarios para modelar sistemas continuos de tipo lineal. Entre los más usados se encuentran:

� Integrator .- Calcula la integral continua en el tiempo de la señal de entrada. � Transfer Fcn.- Implementa la función de transferencia de manera continua. � Memory.- La salida de este bloque es el valor de la entrada anterior.

En la Figura 8 se muestra el símbolo de esta librería y su contenido.

� Figura 8.- Símbolo y contenido de la librería de bloques continuos.

� Librería de Funciones y Tablas (Functions & Tables).- Esta librería

contiene los bloques que describen las funciones generales y las tablas para realizar operaciones. Los bloques utilizados de esta librería fueron los siguientes:

� Fcn.- Evalúa la expresión programada, usando “u” como el nombre de la

variable de entrada, la cual puede ser un escalar o un vector. � MATLAB Fcn .- Utiliza una función de MATLAB para realizar la evaluación

de la señal de entrada, tiene la capacidad de aceptar un vector de entrada y producir un vector de salida.

La Figura 9 muestra el símbolo de esta librería y una ventana que contiene a todos sus bloques.

� Figura 9.- Símbolo y ventana de la librería de funciones y tablas.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

8

� Librería de Matemáticas (Math).- En esta librería se encuentra los bloques que nos describen las funciones matemáticas generales. Los bloques de mayor interés son los siguientes:

� Sum.- La salida de este bloque es la suma algebraica de sus entradas, sus

parámetros permiten configurar el número de entradas que se desean y el signo que se le aplicará a cada una de las entradas.

� Product.- Su salida es el resultado de la multiplicación o la división de cada una de las entradas, este bloque puede ser configurado para una o más entradas pudiendo especificar cual entrada se multiplica y cual se divide.

� Gain.- Multiplica la señal de entrada, que puede ser un escalar o un vector, por el valor de una ganancia, dicha ganancia puede ser escalar o vector.

� Abs.- Calcula el valor absoluto de la señal de entrada, que puede ser vector o escalar.

� Logical Operator.- Implementa la operación lógica especificada por el operador, la cual puede ser AND, OR, XOR, etc.

� Relational Operator.- Puede se configurado para implementar un cierto número de operaciones de relación, como son “<”, “<=”, “>”, “>=”, etc.

El símbolo y contenido total de esta librería se puede observar en la Figura 10.

� Figura 10.- Símbolo y contenido de la librería de matemáticas.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

9

� Librería de Señales y Sistemas (Signals & Systems).- Esta librería contiene una variedad de bloques que nos permiten multiplexar y demultiplexar datos, implementar entradas/salidas externas, transportar datos a otras partes del modelo, crear subsistemas y ejecutar muchas otras funciones. Los bloques más utilizados de esta librería son los siguientes:

� SubSystem.- Este bloque nos sirve para crear un subsistema, otra alternativa para encapsular una parte del modelo en subsistema es usar la secuencia Edit:Create Subsystem en la ventana de nuestro modelo.

� In1.- Provee de un puerto de entrada para un subsistema, también puede ser usado para recibir una entrada externa a nuestro modelo.

� Out1.- Crea un puerto de salida para un subsistema y además se puede utilizar para producir salidas de un modelo.

� Mux.- Combina un número configurable de señales escalares o vectoriales de entrada, para producir un largo vector como señal de salida, el cual esta compuesto de la siguiente forma: [señal1, señal2, ..., señaln].

� Demux.- Divide un vector de señal de entrada en un configurable número de señales de salida que pueden ser escalares o pequeños vectores.

� Goto.- Manda una señal, especificada por una etiqueta, hacia el frente de un bloque.

� From.- Recibe una señal de un bloque Goto con una etiqueta especificada.

En la Figura 11 se muestra el símbolo y contenido de esta librería.

� Figura 11.- Símbolo y bloques de la librería de señales y sistemas.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

10

Otras Librerías

� Librería para Sistemas Discretos (Discrete).- En esta Sublibrería están todas los bloques necesarios para poder simular sistemas Discretos. Entre los más usados se encuentran:

♦ Zero-Order Hold .- Retenedor de Orden Cero. ♦ Discrete Filter.- Este bloque sirve para poder definir un Filtro Discreto.

Las siguientes dos figuras son del Bloque de la Librería y de su contenido:

����

Figura 12.- Símbolo y bloques de la librería de Sistemas Discretos. � Librería de Bloques y Herramientas (Blocksets and Toolboxes).- Esta librería,

contiene 7 Sublibrerías, las cuales contienen bloques para aplicaciones más avanzadas de Simulación y Análisis de algún proceso. Para mi proyecto, la única utilizada fue la Sublibrería siguiente:

♦ SIMULINK Extras .- Aquí se encuentran bloques extras para aplicaciones mas especificas de Simulación y Análisis de un cierto proceso, tales cómo: Indicadores Adicionales, Bloques para Sistemas Discretos, Bloques para Sistemas Lineales, Bloques de Transformaciones, Bloques con Flip Flops y un Bloque de Linealización.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

11

En la figura 14 se representa esta librería y su contenido, así como el contenido de la

Sublibrería “SIMULINK Extras”:

����

Figura 14.- Símbolo y bloques de la Librería Blocksets and Toolboxes.

����

Figura 15.- Símbolo y bloques de la Sublibrería Simulink Extras. � Librería de Demostraciones (Demos).- Al abrir esta librería, se abre una nueva

ventana por medio de MATLAB, la cual contiene no solamente demostraciones de SIMULINK, sino también de MATLAB, de Toolboxes (Herramientas), y otras cosas mas. En la Sección de SIMULINK, se encuentran cuatro temas principales:

1.- Demostraciones de la Nuevo en la Versión 2.0 de SIMULINK. 2.- Demostraciones de Modelos Simples. 3.- Demostraciones de Modelos Complejos. 4.- Temas de Productos Avanzados relacionados con SIMULINK.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

12

A continuación se ilustra un dibujo de esta librería en la figura 16, así como una de la ventana Principal de las Demostraciones de MATLAB.

����

Figura 16.- Ventana Principal de las Demostraciones de MATLAB.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

13

III CONSTRUCCION DE UN MODELO Para comenzar a utilizar las herramientas ya descritas con anterioridad, se presentan

diversos ejemplos de dificultad creciente. En esta parte se explicara la mecánica de cómo crear un modelo, la manipulación de un bloque, el dibujo y corrección de líneas señaladas, etc.

Cuando se construye un modelo que resulta ser complejo, puede ocasionarnos que sea muy difícil de modelar e interpretar. Entre las recomendaciones más útiles a seguir para evitar este tipo de problemas y que podamos implementar cualquier tipo de modelo por complejo que éste sea son [1]:

���� Cuidar siempre el arreglo y acomodo de cada uno de los bloques.

���� Realizar la señalización correspondiente de las líneas de señal.

���� Colocar etiquetar personalizadas a bloques y líneas de señal.

���� Poner notas en nuestros modelos.

���� Crear subsistemas y de ser necesario generar nuestras propias librerías.

Un modelo en SIMULINK consiste típicamente de tres tipos de elementos principales, los cuales podemos observar en la Figura 17.

Figura 17.- Componentes típicos de un modelo.

donde:

� Las Fuentes.- Esta compuesto por la entrada o entradas al sistema dinámico. Estas pueden incluir constantes, generadores de función como ondas sinusoidales y funciones de escalón y hasta señales que uno mismo cree en MATLAB.

� El sistema a modelar.- Es la parte central de todo modelo y no es mas que la representación, en diagrama de bloques, del sistema dinámico a analizar.

� Los indicadores.- La salida o salidas del sistema modelado, se transportan finalmente a los indicadores, los cuales pueden ser indicadores gráficos, numéricos u opciones para guardar los resultados de la simulación.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

14

Ejemplo 1.- Se requiere conocer la respuesta de la siguiente ecuación diferencial:

)sin( tx =•

donde: 0)0( =x Solución: El primer paso es abrir SIMULINK y una nueva ventana (en blanco) para nuestro Modelo. Si resolvemos este problema a Lápiz, nos queda el siguiente diagrama:

Figura 18.- Sistema de primer orden.

Para expresar esto en nuestra ventana del Modelo, solo necesitamos colocar los elementos correspondientes y conectarlos (alambrarlos), como se representa en la figura 18. Para ello, se observa que solamente necesitamos de dos bloques, uno que nos proporcione una señal senoidal (el cual se encuentra en la Librería de Fuentes) y otro que nos integre una señal (el cual se encuentra en la Librería para Sistemas Lineales). ���� Para colocar un Bloque en la Ventana de nuestro Modelo: solo es

necesario arrastrar o copiar el bloque deseado a la ventana de nuestro modelo, esto se hace desde la Sublibreria donde se encuentra nuestro bloque de interés.

Copiando los bloques: Sine Ware e Integrator, de la librería de Fuentes y de la

Librería para Sistemas Lineales respectivamente, a la ventana de nuestro modelo, esta luciría ahora como se muestra en la figura 19.

Figura 19.- Implementación del sistema.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

15

Ahora, el paso siguiente es interconectar los bloques y agregar a nuestro modelo un Scope, de la Librería de Indicadores, esto último es para poder visualizar la señal de salida de nuestro modelo, que es directamente la solución de nuestra ecuación diferencial (x).

Es recomendable guardar nuestro modelo y conforme se avanza en su elaboración, constantemente guardarlo. Para guardarlo por primera ves es necesario darle un nombre y la localización donde queremos que se guarde, esto se hace ejecutando la siguiente ruta: File:Save, a partir de aquí solo tiene que seguir los pasos requeridos e indicados por Windows. ���� Para interconectar dos bloque: coloque el cursor en el puerto de salida (>) o de

entrada (<) de uno de los Bloques, en ese momento la forma del cursor cambiará su forma original por una cruz (+); presionar y mantener presionado el botón de selección natural, y arrastrar el mouse hasta el puerto [de entrada (>) o salida(<)] del siguiente bloque; llegando a este otro puerto, el cursor tomara ahora la forma de una doble cruz, aquí es cuando se debe de dejar de presionar el botón (de selección natural) del mouse. Y finalmente tenemos alambrados dos bloques.

Nota: Los Modelos realizados deben de ser guardados con la extensión *.mdl, para ser reconocidos por MATLAB, como archivos de SIMULINK.

Por último nuestro Modelo queda como se muestra en la figura 20.

Figura 20.- Componentes típicos del modelo interconectados. Nota: Antes de realizar la simulación direccione el directorio de trabajo de MATLAB, al directorio donde se guardo el modelo a simular.

Para simular nuestro modelo, de un click en las secuencia: Simulation:Star, u oprima la combinación de teclas: Ctrl+T . Y para ver la grafica de salida de la simulación de nuestro modelo, basta con hacer doble click en el bloque del Scope, con esto aparecerá la siguiente ventana que contiene la gráfica de interés (Figura 21):

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

16

Figura 21.- Gráfica de la salida del sistema.

De aquí se puede corroborar de que el Scope, realmente simula la función de un Osciloscopio. ���� Manipulación de Bloques.

Aquí se muestran las acciones básicas para la manipulación de un Bloques (o grupo de Bloques), tales como: cambiar su tamaño, Rotarlo, Copiarlo, Etiquetarlo, etc.

♦ Cambiar el Tamaño de un Bloque.- Primero seleccione el bloque (fig.22a),

hacer un solo click sobre éste, de esta forma aparecerán marcadas cada una de las esquinas de nuestro bloque (fig. 22b). Pulse el botón del mouse sobre una de las esquinas del bloque y, sin dejar de oprimir el botón, arrastre el mouse hasta la nueva posición deseada que limita el nuevo tamaño del bloque (fig. 22c), y suelte el botón. Esto ocasionará que el bloque tome el tamaño indicado por el área descrita al arrastrar el mouse (fig. 22d).

a) b) c) d) Figura 22.- Modificación de tamaño de componentes.

♦ Rotar un Bloque.- Seleccione el bloque ha rotar (fig. 23a). Después haga click en la siguiente secuencia: Format:Rotate, u oprima las teclas rápidas siguientes: Ctrl+R . Esto ocasionará que nuestro bloque rote (sobre su propio

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

17

eje) 90° en sentido de las manecillas del reloj (fig. 23b). Esto se puede repetir cuantas veces se desee.

a) b) Figura 23.- Rotación de una Figura.

♦ Copiar un Bloque dentro de un Modelo.- Para realizar un copiado rápido de un Bloque dentro de un Modelo, solo basta con presionar el botón derecho del mouse (botón secundario) sobre el bloque que se desea copiar (fig. 24a). Y manteniendo oprimido dicho botón, arrastrar el mouse hasta la nueva posición donde se quiera el nuevo bloque (fig. 24b). Al soltar el botón el mouse, automáticamente se crea un nuevo bloque (la copia) el cual posee una etiqueta casi igual al del bloque original, solo que este nuevo bloque tendrá al final del texto de la etiqueta el número uno (fig. 24c), de aquí que si se crea otra copia del mismo tipo de bloque (dentro del mismo modelo), la siguiente copia tendrá la etiqueta marcada con el número dos. Esto se hace automáticamente con la finalidad de distinguir los bloques.

a) b) c) Figura 24.- Procedimiento para copiar bloque.

♦ Borrar un Bloque.- Después de seleccionar el bloque que se desea borrar, solo basta con oprimir la tecla Supr, del teclado, o bien seguir la siguiente secuencia: Edit:Cut .

♦ Mover un Bloque.- Solo basta con seleccionarlo y arrastar el bloque hasta la posición deseada, esto se hace con el botón principal del mouse.

♦ Selección de Muchos Bloques.- SIMULINK, también posee la opción de seleccionar un grupo de bloques para poderlos mover, borrar, copiar, etc. Esto se logra presionando el botón principal del mouse fuera del área de donde se encuentran los bloques, y manteniendo oprimido el botón, encerrar (dentro del recuadro de línea punteada que aparece) los bloques que se desean seleccionar (fig. 25a) y al soltar el botón del mouse, los bloques que se encontraban dentro del recuadro o tocando porte de éste, quedaran

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

18

seleccionados (fig. 25b). Otra manera de seleccionar ciertos bloques de manera segura, es dar un solo click sobre el primero de ellos, y después oprimir (y mantener oprimida) la tecla Shift ( ↑↑↑↑ ) y con un solo click, seguir seleccionando los demás bloques deseados.

a) b) Figura 25.- Selección de un grupo de bloques.

♦ Cambiar la Etiqueta de un Bloque.- Dar un click sobre la etiqueta del bloque ocasionará que aparezca el cursor dentro de la etiqueta, y ya con esto podemos dar ese bloque el nombre que se desee.

♦ Agregar y Quitar Sombra Caída a un Bloque.- Esto se utiliza solo para fines estéticos o para distinguir a un bloque por su importancia. Para realizar esto, primero seleccionar el bloque (fig. 26a), y después hacer un solo click en la secuencia: Format:Show Drop Shadow, localizada en la barra de menú de la ventana de nuestro modelo (fig. 26b). Para retirar la sombra del bloque, seguir ahora la secuencia: Format:Hide Drop Shadow.

a) b) Figura 26.- Sombreado de bloques.

♦ Configurar un Bloque.- Los parámetros de la configuración de un bloque,

no tienen que ser forzosamente constantes. Sino que pueden ser cualquier expresión válida de MATLAB y hasta pueden usarse variables que se definirán en el workspace de MATLAB o incluso dentro de una Mascara, lo cual se verá con detalle después.

Anteriormente ya se explico cómo realizar la interconexión de dos bloques, ahora se

describirá el procedimiento de cómo etiquetar un línea de señal y también de cómo crear una anotación dentro de nuestro modelo.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

19

���� Etiquetar una Línea de Señal: Cada línea de señal puede ser etiquetada, y dicha

etiqueta puede ser colocada en medio, en los extremos o en cualquier otro lugar de la línea. Para etiquetar una línea de señal se debe de hacer doble click sobre la línea, causado que aparezca el cursor de escritura cerca de la línea (fig. 27a). Después de haber escrito la etiqueta deseada, solo basta con hacer un click fuera de esta de la etiqueta (fig. 27b), para completar el proceso.

a) b) Figura 27.- Etiquetado de líneas.

���� Agregar una Anotación dentro del Modelo: Efectuar doble click donde se

desee que se encuentre el centro de nuestra anotación (fig. 28a), con ello aparecerá el cursor el cual nos indica que podemos escribir el texto de la anotación (podemos usar la tecla ENTER para salto de línea), y para finalizar se da un click fuera del campo de la anotación (fig. 28b).

a) b) Figura 28.- Anotaciones dentro del bloque.

���� Descripción de los Botones del Scope: Ambos vértices del Scope, tanto el eje Y,

como el eje X (del tiempo), pueden ajustarse a los valores deseados. El eje vertical despliega el valor real (con su signo), de la señal de entrada (que puede ser un escalar o un vector). El eje horizontal siempre empieza en cero y el extremo es el valor especificado como el rango de tiempo a simular. Por otra porte el Scope, posee la opción de poder enviar los vectores de los valores trazados (todo unido en una matriz), al workspace de MATLAB, para fines de análisis extenso o usos de graficación, por ejemplo: usar el comando plot de MATLAB. Esta matriz se encuentra estructurada de la siguiente forma:

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

20

� Columna 1 ���� Vector de Tiempo. � Columna 2 ���� Vector de datos de la Grafica 1. � Columna 3 ���� Vector de datos de la Grafica 2. � . . . . . . . . . . . . . . . . . . . .

� . . . . . . . . . . . . . . . . . . . .

� Columna n ���� Vector de datos de la Grafica n-1. Nota: El número de renglones de la Matriz que proviene del Scope, depende del los intervalos de tiempo y del tiempo a simular.

Note que en el margen superior de la ventana del Scope, se observan seis botones (iconos) distintos, los cuales se describirán a continuación:

Zoom.- Es usado para agrandar una región de lo desplegado en la pantalla del Osciloscopio (Scope).

Zoom X.- Permite crear un acercamiento horizontal a la gráfica, de tal manera que no cambia la escala vertical.

Zoom Y.- Permite crear un acercamiento vertical a la gráfica, de tal manera que no se modifica el eje horizontal.

Autoscale.- Solo cambia la escala vertical de manera automáticamente, de tal

manera que el límite inferior (de la escala vertical) es igual al valor mínimo (con su signo) de la gráfica, y el límite superior (de la escala vertical) es igual al valor máximo (con s signo) de la gráfica.

Save axis.- Guarda la escala que se encuentre en ese momento seleccionada y la toma por default para ese Scope. Si tú cambias la escala de los vértices y

vuelves a correr la simulación, sin antes presionar Save axis, la escala que aparece en los vértices del Scope, será la misma anterior guardada por default.

Properties.- Al oprimir este icono, aparcerá la ventana de las propiedades el Scope, dicha ventana contiene dos páginas:

� Axes.- En esta página se encuentran los límites por default del eje vertical (tanto el Ymín como el Ymáx) del Scope y además el rango de tiempo a simular.

� Settings.- Aquí se encuentra el campo que debe de seleccionarse en caso de que se quiera que el Scope mande al workspace la matriz que contiene la datos trazados (fig. 29). Después de seleccionar dicho campo, aparece un nombre por default para la matriz (ScopeData), el cual puede cambiarse si se desea (fig. 30).

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

21

Figura 29.-Ventan para salvar datos al workspace de Matlab.

Figura 30.- Asignación de variable a guardar en el workspace.

Nota: En está página existen otras opciones, pero solo se describe esta por ser la de mayor importancia.

Para ilustrar algunas de las aplicaciones de los botones del Scope, se presenta el siguiente Modelo de ejemplo ilustrativo: Ejemplo 2.- Considere el siguiente modelo de un sistema de primer orden con dos entradas del tipo sinusiodal:

Figura 31.- Sistema con dos entradas. Solución: Abriendo la gráfica del Scope, se observa lo siguiente:

Figura 32.- Salida del sistema.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

22

Si utilizamos la función Zoom (primer botón) y seleccionamos el área mostrada en la siguiente figura, ocasionaremos que los ejes del Scope se reajusten a el área seleccionada y ahora se verá agrandada nuestra área de interés, esto se muestra en las siguientes dos figuras: Selección del área de interés � a) Visualización del área de interés � b)

Figura 33.- Efecto de la función Zoom. Ahora si lo que deseamos es ver la gráfica completa en toda la pantalla del Scope, debemos de utilizar la función Autoscale. En la siguiente figura se observa el resultado de la utilización del la función Autoscale (Figura 34):

Figura 34.- Efecto de la función: Autoscale.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

23

Un modelo de SlMULINK es esencialmente un programa de computadora que define un juego de diferentes ecuaciones diferenciales. Cuando uno oprime la secuencia: Simulation:Start (para comenzar la simulación), SIMULINK procede a resolver ese juego de ecuaciones diferenciales usando uno de sus métodos numéricos (algoritmos numéricos) para resolver ecuaciones diferenciales. Antes de ejecutar el comando para simular un modelo, podemos ajustar los parámetros para la simulación, tales cómo: tiempo de arranque de simulación, tiempo final de simulación, el tamaño del incremento para simulación, escoger entre varios tipos de algoritmos de integración (de calidad superior) para resolver la simulación, etc.

Por las razones anteriores es recomendable que antes de comenzar la simulación del

Modelo (antes de oprimir Ctrl+T o seguir la secuencia: Simulation:Start ), es recomendable configurar los parámetros de la simulación. ���� Configurando la Simulación: Para correr esta aplicación, solo basta seguir la

siguiente secuencia: Simulation:Parameters del menú que se encuentra en la barra de la ventana de nuestro modelo, véase la figura 35

Figura 35.- Ventana de Configuración de parámetros. Como puede observarse en la figura 35: la ventana de Parámetros de Simulación, contiene tres páginas:

♦ Solver.- En esta página se selecciona y configura la solución de la ecuación diferencial, que es lo que representa nuestro modelo.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

24

♦ Workspace I/O.- Esta página contiene los parámetros opcionales que permiten configurar el tipo de adquisición de los datos para inicializar la simulación, por ejemplo podemos iniciar la simulación con datos iniciales que sean adquiridos desde el workspace de MATLAB, o al finalizar la simulación enviar ciertos datos de interés al workspace de MATLAB.

♦ Diagnostics. Se usa para seleccionar modos de diagnóstico que son útiles para corregir o arreglar ciertos problemas de simulación.

En estas notass solo se hará mención de los campos más importante de la página de

Solver, por considerarla como la página básica y de mayor interés propio. Solver Page.- Esta página esta compuesta por tres secciones:

o Simulation time.- Contiene dos campos de entrada de datos, uno denominado Start time en el cual se introduce el tiempo en el que se desee que comience la simulación, y el otro campo denominado Stop time en el que se introduce el valor del tiempo final para la simulación. Los valores por default son de cero (0) y diez (10) para los campos Start time y Stop time respectivamente. Véase la figura 36:

Figura 36.- Campos para la asignación de tiempos de simulación.

o Solver options.- Esta sección contiene los campos para seleccionar las diferentes soluciones de ecuaciones diferenciales (algoritmos numericos de Integración) y campos para poner parámetros que controlen el tamaño del paso de integración. Los tipos de soluciones se agrupan en dos categorías: de paso-variable (Variable-step) y de paso-fijo (Fixed-step), existen varios algoritmos de integración disponibles para cada categoría. Si se escoge la categoría de paso-variable, se abilitan los campos para seleccionar el tamaño del paso de integración inicial, el tamaño del paso de integración máximo, y las tolerancias relativas y absolutas. Si se escoge la categoría de paso-fijo, entonces se habilita un solo campo para seleccionar el tamaño (fijo) del paso de integración (Figura 37).

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

25

Figura 37.- Categoría de paso-variable.

Figura 38.-Algoritmos de Integración de la Categoría de paso-variable.

Figura 39.-Categoría de paso-fijo.

Figura 40.-Algoritmos de Integración de la Categoría de paso-fijo.

o Output options.- Esta sección trabaja en conjunto con la Categoría de paso-variable, y se encarga de controlar los espacios de tiempo que deben de existir entre los puntos de la trayectoria de salida de la simulación. Véase la figura 41.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

26

Figura 41.- Panel de opciones de salida.

Cabe mencionar que los distintos Algoritmos de Integración Numérica de las categorías existentes de la sección Solver options, son el resultado de una reciente investigación de la integración numérica y se encuentra enfocada entre el más rápido y el más exacto disponible. Una descripción breve de los algoritmos de integración más usados en ambos tipos de categorías, es la siguiente:

� ode45.- Excelente de propósito general para soluciones de un solo paso. Se basa en las ecuaciones de Cuarto y Quinto Orden de Runge-Kutta. Este algoritmo de integración es el que se encuentra definido por default y usualmente es la mejor primera opción que se puede seleccionar.

� ode23.- Este algoritmo se basa en las ecuaciones de Segundo y Tercer Orden de Runge-Kutta. A veces trabaja mejor que el algoritmo ode45, en la presencia de un de sistemas con rigidez moderada. Generalmente requiere que el tamaño del paso de integración sea más pequeño que el del ode45, para conseguir la misma exactitud que éste.

� ode113.- Solución de Orden Variable. Desde los usos del ode113, las soluciones a varios puntos de tiempo anteriores para computar la solución al punto de tiempo actual, puede producir la misma exactitud que los algoritmos ode45 ó ode23 pero con menos evaluaciones derivativas y así poder realizar una tarea más rápidamente. Esta algoritmo no es conveniente para los sistemas con discontinuidades.

� ode15s.- Posee una solución de Orden Variable (de muchos pasos) para sistemas rígidos. Esta algoritmo esta basado en las recientes investigaciones que usan las fórmulas de las diferencias numéricas. Si la corrida de una simulación usando el algoritmo ode45, es extremadamente lenta, se recomienda usar el algoritmo ode15s.

� ode23s.- Solución de Orden fijo (de simple paso), para sistemas rígidos. Como este algoritmo es de paso simple (de integración), a veces resulta ser más rápido que el ode15s. Si un sistema parece ser muy rígido es una buena idea probar ambos tipos de algoritmos (ode15s y ode23s) para determinar cual se desempeña mejor.

� Discrete (Variable-step & Fixed-step).- Este algoritmo existe en ambas

categorías y es usado para sistemas que no contienen ningún estado continuo. � ode5.- Es la versión del algoritmo ode45, pero para la solución de paso fijo . � ode4.- Utiliza la clásica ecuación de Cuarto Orden de Runge-Kutta, que usa el

tamaño del paso (de integración) fijo. � ode3.- Es la versión del algoritmo ode23, pero para la solución de paso fijo. � ode2.- De paso fijo, usa la ecuación de Segundo Orden de Runge-Kutta.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

27

� ode1.- Utiliza el método de Euler usando un tamaño fijo para el paso de integración.

Es más común el uso de la categoría de paso-variable (de echo también es la categoría por default), ya que se ajusta continuamente el tamaño del paso de integración para aumentar al máximo la eficiencia mientras se mantiene una exactitud especificada. Anteriormente ya se explicaron los elementos principales para construir un modelo en SIMULINK, sin embargo muchos modelos pueden llegar a ser muy complejos, dependiendo de las capacidades de SIMULINK y de las técnicas para programar, estos modelos se pueden desarrollar de una manera fácil, entendible, y sustentables. A continuación se dará a conocer la forma de cómo crear un Subsistema (en SIMULINK), el cual nos proporciona una capacidad dentro SIMULINK similar a los subprogramas en los idiomas de la programación tradicional. Después se mostraran las técnicas de cómo crear un enmascaramiento para hacer más fácil el uso y entendimiento de los subsistemas.

IV.- CREACIÓN DE SUBSISTEMAS.

Cada ves más idiomas de programación, emplean la capacidad de utilizar subprogramas, por ejemplo: En FORTRAN , existen subprogramas de subrutinas y subprogramas de funciones; En C, los subprogramas son llamados funciones; En MATLAB , los subprogramas son llamados funciones M-files. SIMULINK posee una capacidad análoga llamada Subsistemas. Existen dos importantes razones para usar subprogramas: impedir lo abstracto y el uso innecesario de software [1].

Cuando los modelos crecen y son más grandes y más complejos, estos fácilmente

pueden ser difíciles de entender y mantener. Por ello la utilización de los subsistemas, que nos ayudan a resolver este tipo de problemas partiendo a un modelo grande en un juego jerárquico de modelos más pequeños. Para encapsular una porción de un modelo existente de SIMULINK dentro de un subsistema, proceder como lo muestra el siguiente ejemplo: Ejemplo 3.- Considere la siguiente ecuación diferencial: de la cual se quiere graficar el valor del desplazamiento (X).

XXtX 4.02.0)sin( −−= ɺɺɺ

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

28

Solución: Creando el modelo que nos describa el comportamiento de esta ecuación, se tiene lo siguiente diagrama de bloques:

Figura 42.- Diagrama de simulación del sistema. Con este diagrama ya podemos simular nuestro modelo, pero como la finalidad aquí

es ilustrar cómo crear un subsistema, procedemos de la siguiente manera:

1.- Seleccionar todos los bloques y líneas de señal que se deseen incluir en el subsistema, dentro de el área limitada como se muestra en la siguiente figura:

Figura 43.- Creación del subsistema.

Nota: Frecuentemente será necesario hacer un reacomodamiento de los bloques del modelo, para que se puedan seleccionar solamente aquellos que se deseen en el subsistema. 2.- Ya seleccionada el área que será nuestro subsistema, hacer un click en la siguiente secuencia: Edit:Create Subsystem, obteniendo automáticamente un solo bloque (nuestro subsistema) que sustituye a el área marcada anteriormente, dicho bloque tendrá un puerto de entrada y uno de salida. Ahora nuestro modelo se verá tal y como se muestra en la figura 44:

Figura 44.- Subsistema creado. 3.- Por último solo es necesario reacomodar los bloques y ajustar el tamaño del

bloque de nuestro subsistema, quedando finalmente nuestro modelo de la siguiente forma:

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

29

Figura 45.- Reacomodo de componentes. Obsérvese que SIMULNIK automáticamente asigna nombres por default a los puertos de entrada y salida del bloque que representa nuestro Subsistema. Para ver o editar un subsistema, solo es necesario hacer doble click en este bloque. Esto ocasionará la aparición de una nueva ventana, que contiene el diagrama de bloques del subsistema. Además de los bloques originales, aparecen dos bloques: uno de Inport (para agregar la señal de entrada al subsistema) y uno de Outport (para permitir la salida de una señal del subsistema). Cambiando las etiquetas de estor dos bloques, ocasionamos que cambien las etiquetas del bloque de Subsistema. Véase la figura 46:

Figura 46.- Edición de un subsistema. La acción de Edit:Create Subsystem no tiene operación inversa. Una vez usted encapsula un grupo de bloques en un subsistema, no hay ninguna opción del menú para invertir el proceso. Por ello es recomendable guardar nuestro modelo antes de crear un subsistema. La única manera de invertir el proceso de encapsulamiento, es hacer lo siguiente: abrir el contenido del subsistema y copiar todo el diagrama de bloques que contiene el subsistema y pegarlo en una nueva ventana (o en la misma ventana original), y por último eliminar el bloque del subsistema y alambrar (acomodar las líneas de señal) como se encontraban originalmente basándose en los puertos de entrada y salida que existían dentro del subsistema. La otra manera de crear un subsistema es de la siguiente manera: arrastre un bloque de Subsistema (Subsystem), de la librería de conexiones, hasta la ventana de construcción de nuestro modelo. Con un doble click se habré la ventana de lo que será nuestro subsistema, y en esta ventana solo basta con crear nuestro diagrama de bloques: usando los

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

30

procedimientos normales para construir un modelo. Usar los bloques de Inport para todas las señales que entren al subsistema, y Outport para todas las señales que salgan del subsistema. Ejemplo 4.- Se desea modelar un sistema de masa-resorte, compuesto de varias masas unidas como se muestra en la figura 47 [2,5]:

Figura 47.-Sistema Masa-Resorte. Solución: Primero se pretende construir el modelo para una masa como un bloque de subsistema, dicho modelo obedece a la siguiente ecuación (Figura 48):

Figura 48.- Modelo simple para una Masa.

Creando el modelo correspondiente a esta ecuación, se tiene:

Figura 49.- Diagrama de simulación del sistema.

Modelo del subsistema para la masa 1. Como se observa en la figura del modelo del subsistema, este posee dos entradas: Xn-1 que es posición de la masa de la izquierda, y Xn+1 que es posición de la masa de la derecha. Además también tiene una salida: Xn que es la posición de esta masa en cuestión. Una ves que se ha completado el subsistema, es necesario hacer dos copias de este bloque e interconectar estos bloques como se muestra en la siguiente figura 50.

( ) ( )[ ]111

1++− −+−= nnnnnn

n

XXkXXkm

Xɺɺ

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

31

Figura 50.- Modelo del sistema Masa-Resorte, usando subsistemas. Es conveniente mencionar que cada subsistema contiene los datos referentes a la masa que este subsistema esta representando. Por ejemplo:

o El subsistema de la masa1 contiene: el valor de la masa1 (m1), el valor de la constante del resorte izquierdo (k1) y el del resorte derecho (k2).

o El subsistema de la masa2 contiene: el valor de la masa2 (m2), el valor de la constante del resorte izquierdo (k2) y el del resorte derecho (k3).

o El subsistema de la masa3 contiene: el valor de la masa3 (m3), el valor de la constante del resorte izquierdo (k3) y el del resorte derecho (k4 = 0 porque no existe).

Con esto se concluye este ejemplo que trata de demostrarle al usuario la utilidad e

importancia de utilizar bloques de subsistemas dentro de nuestro modelo.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

32

V.- ENMASCARAMIENTO DE SUBSISTEMAS.

Enmascarar es una propiedad que posee SIMULINK, que nos permite tratar un subsistema como si fuera un simple bloque. Un bloque enmascarado puede tener lo que acostumbra tener un icono y también puede tener una caja de diálogo en la cual se encuentran los parámetros de la configuración del bloque. El usuario tiene acceso a esto de la misma manera de cómo se tiene acceso a cualquier otro bloque de alguna librería de SIMULINK. Para comprender mejor lo que es el enmascaramiento de bloques, considere el subsistema creado solamente para la masa1, del ejemplo anterior. Para configurar los valores de este subsistema el usuario debe de hacer doble click en este subsistema y después entrar a cada uno de los bloques para definir aquellos valores necesarios para poder simular nuestro modelos, como son: valor de la masa1 (m1), valor de la constante del resorte izquierdo (k1), valor de la constante del resorte derecho (k2), y además valores de condición inicial, como es: Posición Inicial (X0) y Velocidad Inicial (V0) [1,2]. Después de crear una Mascara de este bloque de subsistema para la masa1, el modo en que debe de meter los valores (requeridos para la simulación) el usuario, seria de una manera mas directa. Solo bastaría con que el usuario hiciera doble click sobre el nuevo bloque con mascara, ocasionando la aparición de una nueva ventana en donde directamente se introducen los datos. Véase las figuras 51 a y b:

Doble click ����

a)

Doble click ����

b)

Figura 51.- Creación de una mascará para el subsistema masa 1.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

33

Como es de imaginarse, con una mascara lo que se hace es construir una ventana de interfase con el usuario, la que nos sirve para solicitar valores de variables necesarias para realizar la simulación del modelo, ya que dentro de la mascara existe un subsistema (o subsistemas) el cual esta constituido por bloques y dichos bloques pueden tener un valor fijo o una literal que nos representa una variable, la cual debe de ser requerida (por medio de la mascara) al usuario.

En esta parte del reporte, se explicará como crear la Mascara de un Subsistema. El proceso a seguir para construir un bloque de Mascara puede resumirse en los siguientes tres pasos:

� Construir un Subsistema usando los procedimientos ya vistos con

anterioridad. � Seleccionar el bloque de Subsistema y dar un click en la siguiente

ruta: Edit:Create Mask del menú de la barra que se encuentra en la ventana principal de nuestro modelo.

� Usar el editor de Mascaras (Mask Editor), preparar la documentación de la Mascara, la caja de diálogo (para inicialización) y (de manera opcional) construir una figura para representar el icono (bloque).

Para crear una Mascara de un Subsistema ya existente, siga las siguientes tres instrucciones:

���� Tomando solamente el Subsistema de la masa1 (del ejemplo 04), y colocándolo en una nueva ventana para crear un nuevo Modelo, se tiene:

Figura 52.-Creación de una mascara de un subsistema existente.

���� Seleccionar el bloque y hacer un click en la ruta: Edit:Create Mask del menú que se encuentra en la barra de la nueva ventana. Esto ocasionará que aparezca la ventana del Editor de Mascaras, dicha ventana tiene el siguiente aspecto (Figura 53):

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

34

Figura 53.- Ventana del editor de mascaras. ���� Por último se debe de configurarse la mascara, por medio del Editor. Por lo menos se deben de completar las dos principales páginas del Editor, consideradas como las de mayor importancia, las cuales son: Documentación (Documentation) e Inicialización (Initialization). La tercer página (Icon) se considera de menor importancia, ya que solo sirve para definir las propiedades del bloque en cuestión de estética y presentación.

Página de Documentación del Editor de Mascara. La página de Documentación se ilustra en la figura 54, obsérvese que esta página consiste de tres campos, los cuales ya fueron llenados para efectos ilustrativos [2]:

Figura 54.- Página de documentación del editor de mascara.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

35

Cabe mencionar que ninguno de los tres campos que se encuentran en esta página es indispensable (todos son opcionales), pero en cierta forma si llegan a ser de mucha utilidad ya que son los campos que se encuentran en la página que contienen la información de ayuda e información para el usuario sobre el uso y utilización de ese bloque el cuestión. Descripción de los campos de la Página de Documentación.

1.- Mask type: El contexto en este campo, será desplegado como el tipo de bloque en la caja de diálogo de los bloques enmascarados.

2.- Block description: La segunda descripción es desplegada en el borde del área superior de la caja de diálogo de los bloques enmascarados. Esta área es destinada para contener una descripción breve del propósito del bloque y cualquier recordatorio concerniente a el uso del bloque.

3.- Block help: Este tercer campo será desplegado por el sistema de ayuda de MATLAB cuando sea presionado el botón de ayuda (Help), que se encuentra en la caja de diálogo de los bloques enmascarados. Este bloque debe de mostrar en su contenido la información en detalle concerniente al uso, configuración y limitaciones del bloque enmascarado, incluso puede mostrar también el subsistema implícito. Haciendo un doble click sobre nuestro nuevo bloque enmascarado, se abre la caja de diálogo correspondiente a este bloque y hasta esta etapa, dicha caja de diálogo se encuentra ilustrada en la figura 54. En ambos dibujos se ilustra la dependencia entre los campos de la página de Documentación y las etiquetas de información ubicadas en la caja de diálogo. Página de Inicialización del Editor de Mascara. La página de Inicialización se muestra en la figura 55, esta página se usa para poner los parámetros de los bloques del subsistema que se encuentra bajo la mascara. Para su estudio, esta página puede ser dividida en tres secciones: 1.- La sección superior es la denominada Mask type (tipo de Mascara), dicha sección contiene un campo que es el mismo campo que se encuentra en la pagina de Documentación. 2.- La sección del centro contiene una serie de campos que definen la caja de diálogo de los bloques enmascarados. Es conveniente mencionar que las variables introducidas en estos campos, son definidas por SIMULINK como variables locales. 3.- La sección de la parte inferior contiene la inicialización de comandos (Initialization commands), que puede ser usada para definir variables adicionales.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

36

Figura 55. Página de la Inicialización.

A continuación se describan con un poco de más detalle cada una de las secciones de que se encuentra conformada la página de Inicialización:

1.- Mask type: Como ya se menciono con anterioridad, este campo es el mismo ya explicado en la página de documentación. Por ello es que si modificamos el tipo de mascara en esta página, automáticamente se modificara también en la otra.

2.- Prompt Section: Esta sección es la del centro de la página de Inicialización y es usada para crear, editar y borrar los campos de la caja de diálogo. Esta sección consiste de: una lista deslizable que se encuentra en una caja de diálogo, botones para agregar campos (cada variable en la caja de diálogo nos representa un campo), botones para borrar campos, dos botones para mover los campos y de cinco campos usados para configurar la caja de diálogo del bloque.

Para agregar el primer campo de Prompt en la caja de diálogo del sistema Masa-Resorte, sigue los siguientes pasos: ���� Hacer un click en <<end of parameter list>> y después otro click en el botón Add. Después de ejecutar esto, aparecerá insertada una nueva línea en la lista de parámetros, como se muestra en la figura 56:

Figura 56.- Botones para agregar y borrar campos.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

37

���� En el campo de Prompt se escribe la etiqueta para desplegar en la caja de diálogo, correspondiente a la variable que estamos tratando. En nuestro caso la variable es k1, y su etiqueta será: “Constante del Resorte Izquierdo (k1)” ���� Dar de alta el nombre de la Variable correspondiente (para nuestro caso es: K1) en el campo Variable. ���� Seleccionar en el Popup menú que tipo de contenido de información manejara nuestra variable: si lo que se le asignará es un valor numérico seleccionar Evaluate; si lo que se le asignará a la variable correspondiente es una cadena de caracteres, seleccionar Literal . De una manera explicita, el valor asignado a la variable interna asociada con la caja de diálogo del bloque, depende del tipo de contenido en el campo de Asignación. Si se selecciona Evaluate, la variable relacionada con este campo contendrá el valor de la expresión introducida en el campo. Si se selecciona Literal , entonces la variable asociada con el campo del diálogo contendrá la cadena de caracteres que se le asignen. ���� Determinar que tipo de campo se requiere para la variable tratada. Aquí se tiene una lista con tres opciones diferentes: i.- El tipo Edit produce un campo vació en el cual son introducidos los datos. Si la Asignación de la variable es Literal , la variable correspondiente contendrá la cadena de caracteres introducidos en el campo de la caja de diálogo. Si la Asignación de la variable es Evaluate, la variable contendrá el valor numérico tecleado en el campo de la caja de diálogo del bloque. Véase la Figura 57:

Figura 57.- Caja de diálogo, con tipo de control Edit. ii.- El tipo Checkbox genera un campo que solo tiene dos posibilidades de valor, dependiendo si la caja es señalada o no. Si la Asignación de la variable es Literal , a la variable asociada con el campo se le asignará la cadena ‘no’ si la caja no fue señalada, y la cadena ‘yes’ si la caja fue señalada. Si la Asignación de la variable es Evaluate, a la variable asociada se le asignará el valor numérico de 0 si la caja no fue señalada, y el valor numérico 1 si la caja fue señalada. Véase la Figura 58:

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

38

Figura 58.- Caja de diálogo, con tipo de control Checkbox. iii.- El tipo Popup produce un grupo de opciones para seleccionar (Véase la figura 59). Al seleccionar este tipo de control, se activa el campo Popup strings, en este campo se introducen (en secuencia) las opciones que se quieren desplegar es este tipo de control, separadas con el símbolo pipe ( | ). Por ejemplo: con la cadena: Opción1|Opción2, ocasionaremos que se desplieguen solo dos opciones de selección (Véase la figura 60). Si la Asignación de la variable es Literal , la variable asociada con el campo contendrá la cadena de caracteres correspondiente a la elección seleccionada. Si la Asignación de la variable es Evaluate, la variable tendrá el valor de un número ordinario, dicho valor depende de la elección seleccionada; por ejemplo: si la primera opción es seleccionada la variable tendrá el valor numérico de 1, si la segunda opción es seleccionada la variable tendrá el valor numérico de 2, y así sucesivamente.

Figura 59.- Caja de diálogo, con tipo de control Popup.

Figura 60.- Despliegue del menú Popup.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

39

Otros Botones de la Sección Prompt:

* Presionando el botón Delete, borramos el campo seleccionado de la lista de parámetros.

* Los botones de Up y Down sirven para mover en campo seleccionado (de

la lista de parámetros) a una nueva dirección, con ello se logra acomodar el orden de aparición de los campos de las variables en la caja de diálogo del bloque.

Una vez finalizado este proceso, se procede (de la misma manera) a dar de alta todas las demás variables (necesarias) en el Prompt, finalmente la página de Inicialización del Editor de Mascara queda de la siguiente manera:

Figura 61.- Mascara creada de el sistema mecánico. Y la caja de diálogo del bloque enmascarado, tiene el siguiente aspecto:

Figura 62.- Caja de diálogo del bloque enmascarado.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

40

3.- Initialization commands: Al final de la página de Inicialización, se encuentra un campo designado para esta sección. Véase la figura 63:

Figura 63.- Campo para inicialización de comandos. Como se observa en la figura este campo solo puede desplegar cuatro líneas, pero puede contener todas las que sean necesarias. Este campo puede contener una o más declaraciones de MATLAB que pueden designar los valores de algunas variables usadas para configurar los bloques en el subsistema enmascarado. Las declaraciones de MATLAB pueden usar algunos operadores de MATLAB, funciones construidas por el usuario, y funciones condicionales (o de ciclo) tales como: if, elseif, while, end, etc. Todas la variables usadas en esta sección son del tipo local; y las variables definidas en el workspace de MATLAB no son accesibles. Cada comando introducido en este campo, normalmente debe de estar terminado con un punto y coma ( ; ): si este punto y coma se llega a omitir en un comando, los resultados del comando serán desplegados en la ventana de MATLAB cada vez que el comando sea ejecutado. Esto nos ayuda a corregir los errores producidos por los comandos utilizados en este campo.

VI.- APLICACIONES. A continuación se presentan algunas aplicaciones de simulink en el área de sistemas de control.

Ejemplo 1.- Se desea conocer respuesta, a la entrada escalón unitario, de un cierto

proceso cuya Función de Transferencia es FT.

Solución: El primer paso es abrir una nueva ventana (ventana en blanco) en Simulink para crear nuestro modelo, el cual debe de contener los siguientes:

� Un bloque de Step con los siguientes parámetros: � Tiempo inicial del paso (Step time) = 0 � Valor inicial (Initial value) = 0 � Valor final (Final value) = 1

� Un bloque de función de transferencia (Transfer Fcn), el cual contiene como parámetros los vectores para el numerador y denominador, por default estos vectores son: Numerator = [1] y Denominator = [1 1]

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

41

� Por último necesitamos de un bloque Scope, el cual realiza la función de un osciloscopio.

En la Figura 64 se muestra el modelo ya armado el cual puede ejecutarse de manera

directa ya que no requiere de parámetros externos.

Figura 64.- Modelo alambrado para el Ejemplo 1.

Haciendo un doble clic en el icono de la Función de Transferencia, aparecerá una

ventana de diálogo en la que podemos manipular los parámetros de este bloque, los cuales son dos vectores que conforman el numerador y denominador de la FT, dichos vectores deben de estar formados por los coeficientes en orden decreciente de las potencias de “s”.

Por ejemplo, si deseamos que 232

122 ++

+=ss

sFT , entonces los vectores serán:

Vector del numerador = [2 1] Vector del denominador = [2 3 2]

En la Figura 65 se muestra como se introducen estos dos vectores en los campos correspondientes, para el numerador y denominador, de la ventana de dialogo de la Función de Transferencia.

Figura 65.- Parámetros para la Función de Transferencia.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

42

Realizando algunos arreglos en la presentación de nuestro modelo, como son: utilizar colores, cambiar texto, tipo de letra y tamaño de bloques, obtenemos un modelo más presentable el cual lo podemos apreciar en la Figura 66.

Figura 66.- Modelo para ejemplo1 ya modificado y con datos de interés.

Dejando las opciones por omisión en la Configuración de Parámetros de nuestro modelo y ejecutando la simulación del modelo, obtenemos una gráfica de respuesta es el Scope, la cual se muestra en la Figura 67.

Figura 67.- Gráfica de respuesta del ejemplo1.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

43

Ejemplo 2.- Ahora si lo que deseamos es introducir los datos y mandar la acción de ejecución de nuestro modelo por medio de una interfaz gráfica desarrollada en MATLAB, entonces necesitamos hacer lo siguiente:

Solución: Inicialmente debemos de pensar en crear una interfase que contenga todos los campos necesarios para ejecutar nuestro modelo y además adaptar el modelo que ya creamos para que éste pueda trabajar ligado a la interfase. En las siguientes dos viñetas se muestran los pasos a seguir:

Primeramente debemos quitar los vectores del denominador y numerador la Función de Transferencia y colocar en su lugar variables, para que podamos manipular la información de estos vectores desde nuestra interfaz. Además debemos crear una interfaz gráfica, la cual debe de contener

campos para introducir los vectores correspondientes al numerador y denominador de la Función de Transferencia y un botón pulsador que realice la acción de mandar ejecutar nuestro modelo con los parámetros deseados.

El detalle de cómo crear interfases gráficas con MATLAB, se discute ampliamente

en las referencias [3,4]. Reemplazando el vector del numerador por la variable “Num” y el vector del denominador por la variable “Den”, se observa que la FT de nuestro modelo cambiará de aspecto, el cual se muestra en la Figura 68. Obsérvese que las variables de manera automática se presentan en función de “s”. Aquí nosotros podemos manipular el valor de estas variables (“Num” y “Den”) desde el workspace de MATLAB.

Figura 68.- Modelo con variables asignados en la Función de Transferencia.

En la Figura 69 se puede apreciar el aspecto de la interfaz gráfica desarrollada, la cual contiene los requerimientos básicos mencionados con anterioridad, para poder ejecutar la tarea deseada.

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

44

Figura 69.- Interfaz gráfica desarrollada para ejecutar el ejemplo1.

Podemos observar en la Figura 69 que los vectores del numerador y denominador de la Función de Transferencia son los mismo datos de interés anteriores, esto es porque se efectúo una prueba para corroborar que la respuesta de la simulación, al ser ejecutada desde la interfaz, es exactamente la misma respuesta que la anterior, esto nos permite confirmar de que nuestro modelo y su comportamiento no se ve afectado al utilizar la interfaz gráfica. El siguiente listado, nos muestra el código del Callback correspondiente al botón pulsador que es el que realiza la acción en nuestra interfaz:

Numera = findobj (gcbf, 'Tag', 'numerador'); Denomi = findobj (gcbf, 'Tag', 'denominador'); Num = str2num (get(Numera,'String')); Den = str2num (get(Denomi,'String')); Ejemplo1; Opciones= simset('SrcWorkspace','current','DstWorks pace','current'); sim('Ejemplo1',[],Opciones);

Obsérvese que la etiqueta (Tag) del campo editable correspondiente al numerador es ‘numerador’ y la variable Numera solamente apunta hacia el contenido de éste campo, el cual contiene información pero en forma de texto. Por otra parte la variable Num es la que finalmente contiene el valor numérico del vector correspondiente al numerador de la FT. De manera similar se encuentra el valor numérico del vector del denominador de la FT. Descripción de las tres últimas líneas del código. Ejemplo1; � Esta línea es para que se abra la ventana donde esta nuestro modelo, el cual se llama “Ejemplo1.mdl”. Opciones= simset('SrcWorkspace','current','DstWorks pace','current'); � Todo esta cadena nos sirve para seleccionar dos cosas: Primero se selecciona el área de trabajo (workspace) de MATLAB en la cual MATLAB va a evaluar las expresiones definidas en el

Introducción a SimulinkIntroducción a SimulinkIntroducción a SimulinkIntroducción a Simulink

45

modelo (SrcWorkspace) y se le especifica que las variables deben de ser tomadas de una área de trabajo privada (current), que es aquella en la cual se ejecuta el comando sim. Después se selecciona un área de trabajo de MATLAB en la cual se asignarán las variables de MATLAB definidas en el modelo (DstWorkspace), en otras palabras esta opción determina adonde van a mandar sus resultados los bloques To Workspace, y además se le indica (current) que las variables deben de ser tomadas o retornadas a el área de trabajo en la cual el comando sim es invocado. Nota: Nótese que esta segunda opción es con la finalidad de cerrar el ciclo de la comunicación entre nuestra interfaz y el modelo para el caso en el que deseáramos que nuestro modelo nos regresará algún resultado al finalizar la simulación. sim('Ejemplo1',[],Opciones); � Este comando nos sirve para ejecuta la acción de comenzar a simular nuestro modelo, con los valores de tiempo especificados en la ventana de dialogo de los parámetros de simulación (Simulation:Parameters) y con las opciones preestablecidas o indicadas con anterioridad.

B I B L I O G R A F I A [1] J.B. Dabney, T.L. Harman, “The Student Edition of Simulink User´s guide Versión”, The MathWorks Inc., Prentice Hall, 1998. [2] A. Cavallo, R. Setova, F. Vasca, “Using Matlab, Simulink and Control System Toolbox a Practical Approach”, Prentice Hall. [3] Maldonado P. J., “Manual de uso del editor de Interfaces Graficas del Software de MATLAB (GUIs)”, Reporte de Servicio Social, Febrero 2001. [4] Patrick Marchand, “Graphics and GUIs with MATLAB”, 2nd Edition, CRC Press, 1999. [5] Robert H. Bishop, “Modern Control System Analysis & Design using MATLAB & Simulink”, Addison-Wesley, 1997.