Está en la página 1de 56

PARTE III:

SIMULACIN DE SISTEMAS DINMICOS CON SIMULINK

Mag. Ing. Carlos Gustavo Prez.

Contenido

Creacin de un modelo en Simulink. Reconocimiento de las libreras de bloques. Elementos de la simulacin de modelos. Configuracin de parmetros. Funciones de Transferencia. Modelamiento de Sistemas Dinmicos. Modelamiento de controladores. Interaccin con el espacio de trabajo de Matlab.

Introduccin

Simulink es un entorno de desarrollo para simulacin y diseo (estructurado en modelos) para sistemas dinmicos y embebidos. Proporciona un entorno grfico interactivo as como un conjunto de bibliotecas de bloques que permiten disear, simular, implementar y probar una variedad de sistemas variables en el tiempo, tales como sistemas de comunicaciones, control, procesamiento digital, procesamiento de video, y procesamiento de imgenes.

Cul es la finalidad de Simulink?

Modelamiento y diseo de sistemas dinmicos (incluyendo los sistemas no lineales). Modelamiento y diseo de sistemas de control (incluyendo controladores y plantas no lineales). Diseo y simulacin de sistemas de procesamiento de seales.

Creacin de un modelo
En la ventana de comandos en MATLAB escribir:
>>simulink ->ENTER. Otra opcin es, mediante un click en el cono de bloques.

Creacin de un modelo
Hacer click en el cono
new-model.

Seleccionar el cono
Simulink para obtener los bloques bsicos para la programacin del modelo.

1.

Espacio de trabajo
El modelo se crea en esta ventana:

Librera de elementos:

2. Diagrama de Bloques
Los diagramas de bloques se componen de iconos que
representan las diferentes secciones del proceso (entradas, los modelos de espacio de estado, funciones de transferencia, salidas, etc.) y las conexiones entre ellos.

Ejemplos:

3.

Configuracin de cada bloque funcional

Una vez que el diagrama de bloques es "construido ", es


necesario especificar los parmetros en los distintos bloques, por ejemplo, la ganancia de una funcin de transferencia.

Una vez que estos parmetros se especifican, el usuario


tiene que definir el mtodo de integracin (de las ecuaciones dinmicas), amplitud de paso, inicio y fin de la integracin (Simulacin en Tiempo), etc.

4.

Ejecutando la simulacin

Finalmente se configura el tiempo de inicio de la simulacin y el tiempo total de la misma. Para ejecutar el programa: Menu Simulation -> Start , Ctrl-T. Tambin se ejecuta el programa dando click en el icono play :

Modelamiento de Sistemas Dinmicos


Un modelo de diagrama de bloques en Simulink es una
representacin grfica de un modelo matemtico de un sistema dinmico. Un modelo matemtico de un sistema dinmico se describe por un conjunto de ecuaciones. Las funciones matemticas que describen un modelo de diagrama de bloques pueden ser algebraicas, ecuaciones diferenciales y / o ecuaciones de diferencias. Normalmente, un archivo -m de MATLAB utiliza ode45 para resolver sistemas de ecuaciones diferenciales lineales y no lineales ordinarias.

Diagrama de bloques en funcin del tiempo


El trmino "diagrama de bloques en funcin del tiempo" se utiliza para diferenciar diagramas de bloques que describen los sistemas dinmicos de los de otras formas de diagramas de bloque. En Simulink, se utiliza el trmino diagrama de bloques (o modelo) para referirse a un diagrama de bloques en funcin del tiempo a menos que el contexto exija una distincin explcita.

Tiempo
El tiempo es un componente inherente de los diagramas de
bloques en los que los resultados de una simulacin varan dinmicamente. Dicho de otra manera, un diagrama de bloques representa el comportamiento instantneo de un sistema dinmico. Pasos de tiempo (Time Steps): Son el intervalo de tiempo entre cada accin sobre el modelo durante el tiempo de simulacin. Tiempo de simulacin (Simulation Time). Tiempo total de la simulacin (desde el inicio hasta el final).

Estados
Normalmente, los valores actuales de las salidas de un
sistema (modelo) son funciones de los valores anteriores de estas mismas variables. Estos valores se almacenan en variables temporales y se denominan estados (para cada paso de tiempo, time step).

Las salidas computadas de un modelo son almacenadas


entre periodos de muestreo. Simulink lleva a cabo esta tarea durante la simulacin para los estados simulados. En un modelo Simulink se crean dos tipos de estados: discretos y continuos

Estados Continuos
Los estados continuos cambian frecuentemente. Ejemplos
de estados continuos son la posicin y la velocidad de un vehiculo.

Estados Discretos
Un estado discreto es una aproximacin de un estado
continuo donde el estado es actualizado usando intervalos peridicos o aperidicos de tiempo.

Un ejemplo de un estado discreto puede ser la posicin de


un carro medida por un odmetro digital que actualiza su medicin cada segundo.

Cuando el intervalo de tiempo entre muestras tiende a


cero se tiene un estado discreto equivalente a un estado continuo.

Estados Discretos

Fuentes: producen seales

Seleccionar Sources de la librera, arrastrar los bloques necesarios al modelo.

Salidas: seales terminales

Seleccionar Sinks de la librera, arrastrar los bloques necesarios al modelo.

Configuracin de Parmetros

Ejemplo 1. Construir un modelo en Simulink que resuelva la


siguiente ecuacin diferencial:

dx = 3 sin( 4t ) + 10 7.6 cos(7t ) dt

Condicin inicial:
x ( 0) = 2

Ejemplo 1. La entrada es: 3sen(4t) +10 - 7.6cos(7t) La salida corresponde a la solucin de la ecuacin
diferencial: x(t)

x(0) = 2
dx dt
1 s integrator
x

3sin(4t)+10-7.6cos(7t) (input)

x(t) (output)

Ejemplo 2. Construir un modelo en Simulink que resuelva la


siguiente ecuacin diferencial:

d 2x dx m + c + kx = f ( t ) 2 dt dt
Condicions iniciales= 0: Input f(t) es una funcin escaln de magnitud 3.5 Parmetros:
m=0.4, c=0.6, k=1;

Estructura de funcionamiento de un modelo en Simulink


Para desarrollar un modelo en Simulink es necesario especificar: El modelo del sistema (espacio de estados, continuos, discretos, funciones de transferencia, sistema nolineal de ODE, etc). La entrada (source) para el sistema. La salida (skin) de la simulacin. Los parmetros del modelo, las entradas y salidas haciendo clic en los iconos apropiados.

Enrutamiento de seales

La librera Signal Routing contiene el bloque Mux que es de mucha utilidad para empaquetar seales en una sola variable, el bloque Demux descompone una variable empaquetada en sus respectivas seales.

Funciones de Transferencia
Para construir una funcin de transferencia basta con introducir los polinomios del numerador y del denominador en el bloque transfer function.

Ejemplo 3. Simular la funcin de transferencia planteada en el


dominio de Laplace, para una entrada escaln:

u(t)

10 5s 2 + 50 s + 6

y(t)

Esta funcin de transferencia representa a un habitculo


con su sistema de calefaccin.

Ejemplo 3. u(t): entrada, variable manipulada. Representa el calor


entregado por el calefactor. y(t): salida, variable de proceso. Representa la temperatura medida en el habitculo.

Bloques a incluir en el modelo:

Ejemplo 3.-

Ejemplo 3.-

Se observa que el habitculo requiere 250 minutos para


alcanzar la temperatura de equilibrio. Asimismo, se percibe que para lograr una temperatura de 20C el calentador enva una seal de 2.0 voltios

Ejemplo 3.Efecto de las perturbaciones: Un ejemplo tpico de perturbacin para un control de temperatura en un ambiente cerrado es la apertura de una compuerta que genere escape de calor, esta perturbacin se representa en diagrama de bloques:
Perturbacin (apertura de la puerta) d(s)

Entrada (calefactor) u(s) G(s)

Salida (Temperatura) y(s)

Ejemplo 4. Fijando el calentador en 2.0 voltios, implementar el


modelo de simulacin considerando como perturbacin la apertura de la puerta del horno transcurridos 150 minutos. El efecto de la perturbacin es de -0.5 voltios

Ejemplo 4.-

Se puede observar que el habitculo en lazo abierto es


muy sensible a las perturbaciones. La solucin es implementar un sistema de control en lazo cerrado.

Control en Lazo cerrado: Controlador On/Off


Este tipo de control presenta la siguiente estructura:
d(t)

r(t) -

e(t)

Controlador

u(t)

Proceso

y(t)

Control en Lazo cerrado: Controlador On/Off


El controlador On/Off, genera una ley de control del tipo:
u(t) M

0 T(t) u(t) M

e(t) 0

Ejemplo 5. Implementar el sistema de control de temperatura para el


habitculo con controlador On/Off utilizando un relay:
Parmetros bloque Relay

Switch on point: 0.1 Switch off point: 0 Output when on: 5 Output when off: 0 Sample Time: 0.1

Ejemplo 5.-

Trabajo 1. Mejorar el sistema de control on/off planteado incluyendo


un factor de histresis segn la siguiente condicin:
u(t) M

e(t)

Incorporar un retardo puro de 9 minutos. Detallar las ventajas y desventajas de incluir el factor de
histresis. Citar observaciones acerca de la inclusin del retardo.

Solvers en Simulink
Un sistema dinmico es simulado a travs del computo sucesivo
de estados en cada paso de tiempo (time step) durante todo el tiempo de simulacin y usando informacin provista por el modelo.

El proceso de computar sucesivamente los estados de un sistema


desde el modelo es conocido como la solucin del modelo. Existen algunos mtodos para resolver cada tipo de sistema, es por eso que es importante considerar el tipo de Solver para cada problema en particular.

Como se vi previamente, en la pestaa Configuracin de


Parmetros se permite configurar el tipo de solucionador.

Solucionador de Paso Fijo (Fixed Step Solver)


Los solucionadores de Paso Fijo (Fixed-step) resuelven el
modelo a intervalos regulares de tiempo desde el principio hasta el fin de la simulacin.

El tamao del intervalo es conocido como step size . Es


posible especificar el valor de esta variable o dejar que el solucionador encuentre el mejor valor.

Generalmente, decrementando el valor de step size se


logra incrementar la precisin de los resultados pero aumentando simultneamente el tiempo necesario para la simulacin del sistema.

Solucionador de Paso Variable (Variable Step Solver)


Estos solucionadores varan el tamao del intervalo de clculo
step size durante la simulacin, reduciendo el mismo para incrementar la precisin cuando los estados del modelo van cambiando rpidamente e incrementa su valor cuando los estados empiezan a cambiar lentamente.

Computar el tamao del step size aade una sobrecarga


computacional al sistema pero puede reducir el tamao de los pasos reduciendo el tiempo de simulacin y manteniendo un nivel mas eficiente de precisin.

Control en Lazo cerrado: Controlador PID


Al igual que el controlador On/Off, este tipo de control
convencional tambin presenta la estructura:
d(t)

r(t) -

e(t)

Controlador

u(t)

Proceso

y(t)

Ejemplo 6. Implementar el sistema de control de temperatura para el


habitculo planteado con controlador PID, utilizando el bloque correspondiente.
Parmetros bloque PID:

Proporcional: 4.2 Integral: 0.1 Derivativo: 1.2

Ejemplo 6. Tiempo de simulacin: 50 segundos

Ejemplo 7. Simular el sistema de control de nivel mostrado en la


figura. El objetivo es mantener el nivel del tanque 2 a 2 metros de altura:

Ejemplo 7. Modelando el proceso:

Ejemplo 7. Solucin de las ecuaciones diferenciales:


dh1 ( t ) Fo (t ) F1 ( t ) = A1 dt Fo K1 dh1 (t ) h1 (t ) = A1 dt

F0 (t ) F1 (t ) A

1 s

h(t )

Fo K1 h1 (t ) dh1 (t ) = A1 dt

Ejemplo 7. Modelo Simulink a implementar para el primer tanque:

rea 1 = 0.25 m2 F0= 1 K1= 0.5

Modelo para los dos tanques en lazo abierto


Coeficientes:

rea 1 = 0.25 m2 rea 2 = 0.33 m2 K1= 0.5 K2=1.2 F0=1 F30=1 Amp.F3=0.5 H2set=2

Kp=4

Ejemplo 7. Respuesta de los dos tanques en lazo abierto:

Control PID para el nivel del Tanque 2


Parmetros bloque PID:

Proporcional: 18 Integral: 9 Derivativo: 8

Ejemplo 7. Respuesta de los dos tanques en lazo cerrado con


controlador PID:

Exportar datos al espacio de trabajo de Matlab


El primer mtodo es a travs de las opciones del bloque
osciloscopio (Scope). En la pestaa Data History activar la casilla Save Data to workspace , asignar un nombre y tipo a la variable.

Exportar datos al espacio de trabajo de Matlab


El segundo mtodo es agregar directamente al modelo el
bloque To Workspace (librera Sinks) y conectarlo a la seal que se necesita almacenar. Para registrar la seal de tiempo de simulacin se inserta el bloque Clock (librera Sources). Es necesario asignar el nombre y tipo de variable.

Ejemplo 8. Exportar las alturas de los Tanques 1, 2 y el tiempo de simulacin al


espacio de trabajo. Usar variables de tipo array.

Ejemplo 8.En el espacio de trabajo, escribir los comandos:

plot(tiempo,H1) plot(tiempo,H2)
Tanque 1 3 H1 2.5 2 2 Altura (m) 1.5 1 0.5 0.5 0 -0.5 0 0 0 Altura (m) 1.5 2.5 H2 Tanque 2

10

15 Tiempo (s)

20

25

30

10

15 Tiempo (s)

20

25

30