Notas sobre SIMULINK SIMULINK es una importantísima

Anuncio
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
y
Multiplic
z=x.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'
Integrador
x(t)
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 = k (1 −
x2
)x = k(x −
)
x max
x max
x
para
x 0 = 10; k = 0.1 x max = 1000
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
F unciones
1
0.5
x(t)
0
-0.5
-1
0
1
2
3
4
T iempo (t)
Y así, cerramos este breve instructivo sobre el empleo de Simulink.
♦
5
6
7
Descargar