You are on page 1of 12

Notas sobre SIMULINK 1 UTN Fac. Reg.

La Rioja - Ctedra de Control Aplicado - Ao Acadmico 2006

Notas sobre SIMULINK


Estas notas han sido originalmente escritas para MATLAB Versin 5. Consideramos que no requerir un excesivo esfuerzo para el lector adaptar los conceptos a la versin que utilice.

SIMULINK es una importantsima herramienta de MATLAB para la simulacin de sistemas dinmicos. Es un programa grfico, manejado mediante mouse, que permite modelizar un sistema dibujando en pantalla un diagrama de bloques que son manipulables dinmicamente. Trabaja con sistemas lineales, nolineales, continuos o discretos. Daremos a continuacin una breve descripcin 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 - Ctedra de Control Aplicado - Ao Acadmico 2006

Pasamos ahora a Sources (fuentes de seal = funciones de excitacin) y Sinks (dispositivos de representacin de seales), de las que slo mostramos las ms importantes para nuestro Curso. Queda a cargo de los interesados el anlisis de los elementos que no hemos traducido.

Vemos a continuacin los principales elementos no-lineales

De los bloques de "conexin", resultan de nuestro inters el multiplexor y el demultiplexor

Notas sobre SIMULINK 3 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 2006

Finalmente los bloques discretos que ms 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 simblicos. Un modelo simblico representa el modelo matemtico de un fenmeno mediante componentes elementales, que llamaremos bloques operacionales. Cada bloque operacional implementa una operacin matemtica (simple o compleja) y posee variables de entrada, variables de salida y parmetros 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 parmetro interno para la condicin inicial (x(0)=xt=0).
x(0)

x'

Integrador

x(t)

De la misma manera podemos concebir bloques operacionales que efecten la multiplicacin por un coeficiente, la generacin de una funcin del tiempo, la suma algebraica de variables o cualquier otra funcin matemtica. La conexin de dos bloques operacionales, indicar -simblicamente- 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 - Ctedra de Control Aplicado - Ao Acadmico 2006

Captulo aparte merece la consideracin de cmo se realizan los bloques operacionales. Antiguamente dichos bloques se implementaban mediante circuitos electrnicos que materializaban fsicamente tales elementos en las computadoras analgicas; en la actualidad los bloques operacionales se implementan como algoritmos integrados en un entorno grfico-numrico como el que nos brinda Simulink. Pasemos ahora a resolver un modelo sencillo, como lo es la ecuacin logstica de un ecosistema de una sola especie: x2 x = k (1 )x = k(x ) x max x max x

para

x 0 = 10; k = 0.1 x max = 1000

Observando la ecuacin 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 parntesis

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 condicin inicial correcta (10); a x la hacemos pasar a travs 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 clculo, debemos tener en cuenta que, para tiempo cero (0), la salida del integrador es igual al valor proporcionado por la condicin inicial. A partir de este valor se hacen todos los clculos en los restantes bloques y el tiempo se incrementa en t (paso de integracin), repitindose la secuencia de clculos para el nuevo valor del tiempo y as sucesivamente, con lo cual la variable x tomar instante por instante el valor correspondiente a la solucin de la ecuacin diferencial propuesta.

Notas sobre SIMULINK 5 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 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 distribucin de los bloques, y los orientamos convenientemente mediante la opcin Flip Block o el par de teclas Ctrl-F llegamos a la situacin

Clickeando con el mouse sobre las salidas de cada bloque y arrastrando la lnea hasta la entrada del bloque pertinente producimos el conexionado de los elementos operacionales.

Notas sobre SIMULINK 6 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 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 botn Apply antes de hacer Close. Como somos sumamente prolijos y, adems, 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 opcin Hide Name del men Format.

Notas sobre SIMULINK 7 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 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 inters, es decir, la evolucin de la poblacin 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 Poblacin".

Para que el programa calcule la simulacin del modelo, debemos elegir Start Simulation en el men Simulation. Despus 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 - Ctedra de Control Aplicado - Ao Acadmico 2006

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

Otro Ejemplo Aplicativo. Como ejemplo adicional del mtodo general a seguir para resolver un modelo con Simulink, y utilizar diferentes modos de graficacin para visualizar los resultados, proponemos un sistema caracterizado por una ecuacin 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) simultneamente la variable solucin y su derivada. Asimismo deseamos obtener una representacin que muestre x(t) en abscisas y su derivada en ordenadas. Para realizar el modelo simblico, despejamos la derivada de mayor orden de la ecuacin diferencial, obteniendo x = 2[1 4sen(16t )] x 4 x = 0 dibujamos el diagrama simblico en borrador y constatamos que son necesarios para la simulacin 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 funcin senoidal Sources, Sine Wave 1 graficador x-y Sinks, XY Graph 1 pantalla de visualizacin Sinks, Scope 1 multiplexor para combinar seales Connections, Mux En la segunda columna del listado, hemos consignado los nombres de los bloques Simulink, como as tambin la designacin de las bibliotecas correspondientes. Orientando convenientemente los bloques e interconectndolos mediante el mouse, obtenemos en la pantalla de trabajos de Simulink el modelo simblico siguiente, al que hemos agregado leyendas aclaratorias para facilitar su interpretacin.

Notas sobre SIMULINK 9 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 2006

Asignando a cada bloque operacional los parmetros internos correspondientes y luego de algunos intentos, adoptamos los siguientes valores para la opcin Set Parameters del men Simulation y los ajustes de los bloques XY-Graph y Scope

Notas sobre SIMULINK 10 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 2006

Con lo que obtenemos las representaciones grficas:

Notas sobre SIMULINK 11 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 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 opcin Settings de Scope.

Notas sobre SIMULINK 12 UTN Fac. Reg. La Rioja - Ctedra de Control Aplicado - Ao Acadmico 2006

Con los comandos


plot(Datos(:,1),Datos(:,2)) hold on grid on plot(Datos(:,1),Datos(:,3),'LineWidth',2) title('Ecuacin 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 grfico:


Ecuacin Diferencial de 2o. O rden a Coeficientes Variables 2

1.5 dx/dt 1 F unciones

0.5 x(t) 0

-0.5

-1

3 4 T iempo (t)

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

You might also like