Está en la página 1de 12

Notas sobre SIMULINK 1

UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Notas sobre SIMULINK

Estas notas han sido originalmente escritas para MATLAB Versión 5. Consideramos que no requerirá un excesivo
esfuerzo para el lector adaptar los conceptos a la versión que utilice.

SIMULINK es una importantísima herramienta de MATLAB para la simulación de sistemas


dinámicos. Es un programa gráfico, manejado mediante mouse, que permite modelizar un sistema
dibujando en pantalla un diagrama de bloques que son manipulables dinámicamente. Trabaja con
sistemas lineales, nolineales, continuos o discretos. Daremos a continuación una breve descripción
de su uso.

En la Ventana de Comandos de MATLAB invocamos simulink o activamos el icono New


SIMULINK Model con lo que aparece la imagen

Comenzamos estudiando la Biblioteca de Bloques de SIMULINK. Accionando Linear obtenemos


Notas sobre SIMULINK 2
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Pasamos ahora a Sources (fuentes de señal = funciones de excitación) y Sinks (dispositivos de


representación de señales), de las que sólo mostramos las más importantes para nuestro Curso.
Queda a cargo de los interesados el análisis de los elementos que no hemos traducido.

Vemos a continuación los principales elementos no-lineales

De los bloques de "conexión", resultan de nuestro interés el multiplexor y el demultiplexor


Notas sobre SIMULINK 3
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Finalmente los bloques discretos que más nos interesan, son los siguientes:

Trabajando con Simulink


Para comprender el trabajo con Simulink, es necesario que nos detengamos un minuto a considerar
el funcionamiento de los modelos simbólicos. Un modelo simbólico representa el modelo
matemático de un fenómeno mediante componentes elementales, que llamaremos bloques
operacionales. Cada bloque operacional implementa una operación matemática (simple o
compleja) y posee variables de entrada, variables de salida y parámetros internos ajustables.

Así, en un multiplicador, tendremos dos variables de entrada (x e y) y una variable de salida (z),
cuyo valor es igual al producto de las variables de entrada

x
Multiplic z=x.y
y

En un integrador habrá una variable de entrada (dx/dt), una variable de salida (x=∫(dx/dt).dt) y por
lo menos un parámetro interno para la condición inicial (x(0)=xt=0).

x(0)

x' x(t)
Integrador

De la misma manera podemos concebir bloques operacionales que efectúen la multiplicación por un
coeficiente, la generación de una función del tiempo, la suma algebraica de variables o cualquier
otra función matemática.

La conexión de dos bloques operacionales, indicará -simbólicamente- que la variable de salida del
primero ha de considerarse como variable de entrada del segundo y así sucesivamente.
Notas sobre SIMULINK 4
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Capítulo aparte merece la consideración de cómo se realizan los bloques operacionales.


Antiguamente dichos bloques se implementaban mediante circuitos electrónicos que materializaban
físicamente tales elementos en las computadoras analógicas; en la actualidad los bloques
operacionales se implementan como algoritmos integrados en un entorno gráfico-numérico como el
que nos brinda Simulink.

Pasemos ahora a resolver un modelo sencillo, como lo es la ecuación logística de un ecosistema de


una sola especie:

x x2
x = k (1 − )x = k(x − ) para x 0 = 10; k = 0.1 x max = 1000
x max x max

Observando la ecuación diferencial constatamos que necesitamos los siguientes bloques


operacionales:
 Un integrador para obtener x a partir de dx/dt
 Un bloque de coeficiente para implementar k
 Otro bloque de coeficiente para 1/xmax
 Un multiplicador de variables para generar x2
 Un sumador para implementar la suma algebraica del paréntesis

El razonamiento es el siguiente: si tenemos x'=dx/dt a la entrada de un integrador, a su salida


tendremos x si el integrador proporciona la condición inicial correcta (10); a x la hacemos pasar a
través de un bloque de coeficiente que la multiplique por 1/1000, a la salida tendremos x/1000, la
cual multiplicada por x en el bloque producto nos da x2/1000. Restada de x en el bloque sumador y
multiplicando el resultado por k en el siguiente bloque de coeficiente, nos reproduce el valor de x' a
la entrada del integrador.

Para interpretar la secuencia de cálculo, debemos tener en cuenta que, para tiempo cero (0), la salida
del integrador es igual al valor proporcionado por la condición inicial. A partir de este valor se
hacen todos los cálculos en los restantes bloques y el tiempo se incrementa en ∆t (paso de
integración), repitiéndose la secuencia de cálculos para el nuevo valor del tiempo y así
sucesivamente, con lo cual la variable x tomará instante por instante el valor correspondiente a la
solución de la ecuación diferencial propuesta.
Notas sobre SIMULINK 5
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Pasemos ahora a operar con Simulink: en la Ventana de Comandos de MATLAB invocamos


simulink. Se abren la biblioteca principal de Simulink y una Ventana de Modelo (que es nuestra
pantalla de trabajo) con el nombre Untitled. Abrimos la biblioteca Linear y arrastramos mediante
el mouse, los bloques Sum, Integrator y Gain a la pantalla de trabajo. De la biblioteca Nonlinear
arrastramos el bloque Product. Como necesitamos dos bloques de coeficientes (Gain), copiamos
mediante Ctrl-C y Ctrl-V el bloque correspondiente, con lo que nos aparece el elemento Gain1.

A esta altura de los acontecimientos, la apariencia de nuestra pantalla de trabajo es la siguiente:

Si ahora modificamos la distribución de


los bloques, y los orientamos convenientemente mediante la opción Flip Block o el par de teclas
Ctrl-F llegamos a la situación

Clickeando con el mouse sobre las salidas de cada bloque y arrastrando la línea hasta la entrada del
bloque pertinente producimos el conexionado de los elementos operacionales.
Notas sobre SIMULINK 6
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Corresponde ahora que asignemos los signos correctos al boque Sum, los valores pertinentes a Gain
y Gain1 y el valor inicial al bloque Integrator

Para que los valores sean asumidos, en cada caso debemos oprimir el botón Apply antes de hacer
Close.

Como somos sumamente prolijos y, además, hablamos castellano, haciendo doble clic en cualquier
lugar de la pantalla y -en especial- sobre los nombres de los bloques, podemos introducir leyendas
aclaratorias. Si deseamos hacer desaparecer el nombre de un bloque, utilizamos la opción Hide
Name del menú Format.
Notas sobre SIMULINK 7
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Todo precioso y muy bonito, pero nos hemos olvidado de algo... Necesitamos agregar a nuestro
diagrama un dispositivo para visualizar la variable de nuestro interés, es decir, la evolución de la
población x. Para ello, desde la biblioteca Sinks arrastramos a la ventana de trabajo el bloque
Scope y lo conectamos a la variable x. Ya que estamos, cambiamos nombre al bloque y lo
llamamos "Visualiza Población".

Para que el programa calcule la simulación del modelo, debemos elegir Start Simulation en el
menú Simulation. Después de algunas pruebas, descubrimos que el valor Stop Time de Set
Parameters debe ajustarse a 150. Por otra parte, Y-max del visualizador ha de ajustarse a 1000 con
Y-min en 0.
Notas sobre SIMULINK 8
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

A fin de disponer de este modelo para ulteriores simulaciones, con diversos valores de k y de xmax
mediante la opción Save as del menú Files lo archivamos en nuestro directorio como
sim_pobl_logistico y Simulink agrega el sufijo .mdl en forma automática, para indicar que se trata
de un archivo correspondiente a un modelo.

Otro Ejemplo Aplicativo.


Como ejemplo adicional del método general a seguir para resolver un modelo con Simulink, y
utilizar diferentes modos de graficación para visualizar los resultados, proponemos un sistema
caracterizado por una ecuación diferencial de segundo orden a coeficientes variables,

x + 2[1 − 4sen(16t )] x + 4 x = 0


con las condiciones iniciales
x(0) = 0 ; x (0) = 1

para el cual queremos visualizar en pantalla (Scope) simultáneamente la variable solución y su


derivada. Asimismo deseamos obtener una representación que muestre x(t) en abscisas y su
derivada en ordenadas.

Para realizar el modelo simbólico, despejamos la derivada de mayor orden de la ecuación


diferencial, obteniendo
x = −2[1 − 4sen(16t )] x − 4 x = 0

dibujamos el diagrama simbólico en borrador y constatamos que son necesarios para la simulación
los elementos siguientes:
2 integradores Linear, Integrator
1 multiplicador Nonlinear, Product
1 bloque de constante (para generar 1) Sources, Constant
2 sumadores Linear, Sum
1 generador de función senoidal Sources, Sine Wave
1 graficador x-y Sinks, XY Graph
1 pantalla de visualización Sinks, Scope
1 multiplexor para combinar señales Connections, Mux

En la segunda columna del listado, hemos consignado los nombres de los bloques Simulink, como
así también la designación de las bibliotecas correspondientes.

Orientando convenientemente los bloques e interconectándolos mediante el mouse, obtenemos en la


pantalla de trabajos de Simulink el modelo simbólico siguiente, al que hemos agregado leyendas
aclaratorias para facilitar su interpretación.
Notas sobre SIMULINK 9
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Asignando a cada bloque operacional los parámetros internos correspondientes y luego de algunos
intentos, adoptamos los siguientes valores para la opción Set Parameters del menú Simulation y los
ajustes de los bloques XY-Graph y Scope
Notas sobre SIMULINK 10
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Con lo que obtenemos las representaciones gráficas:


Notas sobre SIMULINK 11
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Reconocemos x(t) y x'(t) por las condiciones iniciales de las curvas.

Los valores graficados por el dispositivo Scope pueden almacenarse en una matriz mediante la
opción Settings de Scope.
Notas sobre SIMULINK 12
UTN Fac. Reg. La Rioja - Cátedra de Control Aplicado - Año Académico 2006

Con los comandos

» plot(Datos(:,1),Datos(:,2))
» hold on
» grid on
» plot(Datos(:,1),Datos(:,3),'LineWidth',2)
» title('Ecuación Diferencial de 2o. Orden a Coeficientes Variables')
» xlabel('Tiempo (t)')
» ylabel('Funciones')
» text(0.3,1.2,'dx/dt')
» text(1.2,0.3,'x(t)')

se puede generar el gráfico:

Ecuación Diferencial de 2o. O rden a Coeficientes Variables


2

1.5

dx/dt
1
F unciones

0.5
x(t)

-0.5

-1
0 1 2 3 4 5 6 7
T iempo (t)

Y así, cerramos este breve instructivo sobre el empleo de Simulink.

También podría gustarte