7.
Introducción a Simulink
Simulink® es un entorno de diagramas de bloque para la simulación multidominio y
el diseño basado en modelos. Admite el diseño y la simulación a nivel de sistema, la
generación automática de código y la prueba y verificación continuas de los sistemas
embebidos
7.1. Familiarización con el entorno.
Desde la pantalla de comandos de Matlab ejecutamos el comando “Simulink”, o desde
la barra de botones presionamos el botón que se muestra a continuación. Esto abrirá una
ventana de librerías, entre las cuales encontramos:
Sources
Sinks Discrete
Continuous
Discontinuities
Math Operation
…
Cada uno de estas, a sus vez, dentro de ellos tiene un gran números de elementos que
nos van a permitir representar nuestro sistema, por ejemplo vemos el caso de
Continuous.
Una vez abierto Simulink debemos generar un área de trabajo. Lo cual lo realizamos de
la siguiente forma:
File – New – Model
Una vez abierto la nueva área de trabajo es recomendable guardarlo:
File – Save o Save As – Escribimos el nombre.
Esto nos permitirá comenzar a realizar el modelo de nuestro sistema, el cual podemos
ver a continuación.
+ K(s)
G(s)
-
Donde:
K(s) = 10s+10/s+5
G(s) = 1/s^2
Para representar este sistema vamos a tener a introducir 6 elementos:
2- Bloques de función de transferencia.
1- Sumador.
1- Fuente de entrada (escalón).
2- Elementos para ver la salida.
Dichos elementos los podemos encontrar en las siguientes ubicaciones.
Función de transferencia:
Continuous – Transfer Fcn
Sumador:
Math Operations- Add.
Fuente:
Sources Library– Step
Elementos de salida:
Osciloscopio: Sinks Library – Scope.
Área de trabajo: Sinks Library – To Workspace
El área de trabajo se encarga de pasar los valores generados en la simulación a una
variable para analizar en Matlab.
Una vez que colocamos todos los elementos los tenemos que configurarlos e
interconectarlos, comenzaremos configurándolos de la siguiente forma:
Hacemos doble click sobre el sumador, nos aparecerá una ventana, en la cual debemos
configurar los signos de sumador y el periodo de muestreo. Si el sumador necesitara
mas entradas solo debemos ir agregando los signos que estos se agregaran en el grafico.
En caso de no entendemos algunos de los parámetros que hay que completar, podemos
recurrir al help.
Luego de leer el Help y entender todos los parámetros, los completamos de la siguiente
forma.
En el parámetro Sample Time podemos dejar -1 (inherited es decir heredado, lo cual
toma la configuración del bloque anterior).
Hacemos doble clic sobre la función de transferencia.
Acá cargamos en numerados y el denominador como lo veníamos haciendo en Matlab,
luego presionamos Apply y a continuación OK, hacemos lo mismo para la otra
funciones de transferencia.
Hacemos doble Click sobre el Step, nos aparecerá la siguiente pantalla.
Donde:
Step Time: indica el tiempo a partir de donde aplico el escalón.
Initial value: el valor inicial de la señal.
Final value: el valor final de la señal.
Sample Time: el intervalo de muestreo.
Interpret vector parameters as 1-D: genera la salida como un vector (ver Help).
Enable zero crossing detection: habilita la detección de cruce por cero para
evitar discontinuidades.
Hacemos doble click sobre Workspace
Este bloque genera un vector o una estructura con los datos que tiene a la entrada, y un
vector con el tiempo en que se realizo la simulación.
Variable name: este campo define con que nombre vamos a acceder al vector
desde el área de trabajo.
Limit data points to last: define la cantidad de puntos de la simulación que va
captura. Si la simulación posee más puntos, solo guardara los más recientes. Si
deseo que guarde todos los puntos utilizo el valor “inf”.
Decimation: define cada cuantas muestras toma un valor de la salida. (ver
ejemplo en Help)
Sample Time: define el intervalo de muestreo.
Save format: define si los datos son guardados en una estructura o en un vector.
En nuestro caso utilizaremos la anternativa “array”.
Log fixed-point data as a fi object: define con que formato son almacenados los
datos en el área de trabajo. (por default se almacena como double)
Seleccionamos Save format = ARRAY, luego presionamos Apply y finalmente OK.
A continuación realizamos las interconexiones,
Ya estamos en condiciones de comenzar la simulación, la que se puede realizar
presionando “Ctrl.+ T” o del menú simulación seleccionar la opción “Run”. Una vez
que la simulación esté terminada, hacemos un doble click sobre el osciloscopio, de esta
forma podemos ver la respuesta del sistema. Si presionando los autoescala, obtenemos
una mejor imagen.
El área vista en el osciloscopio se puede modificar tocando en los parámetros de esta.
Podemos salvar esta simulación con File – Save o Save As.
Ya desde Matlab podemos llamar a esta simulación con solo poner el nombre con el que
la guardamos.
La ventaja de haber puesto un workspace, es que los valores de la simulación son
almacenados en vectores los cuales luego los vamos a tener disponibles en el área de
trabajo de Matlab. Esto lo podemos ver ya estando de nuevo en el área de trabajo y
tipeando:
>>whos
Name Size Bytes Class
simout 58x1 464 double array
tout 58x1 464 double array
Grand total is 116 elements using 928 bytes
De esta forma nosotros podemos hacer el grafico desde Matlab, utilizando el comando
plot.
>> plot (tout,simout)