Está en la página 1de 89

1

CONTENIDO
Introduccion

Representacion de los modelos

Los metodos de bloque

El solver

Mas sobre modelos

Fases durante la simulacion

Simulink Debugger
3
INTRODUCCION
4
Simulink en los productos de Matlab
5
Stateflow Coder

Blocksets Simulink RTW

Toolboxes MATLAB Compiler
Qu se puede modelar con Simulink?
6
Algunos modelos
Sistemas de
comunicacion y
satelite
Sistemas nauticos
Sistemas
monetarios
Sistemas aeronauticos y
espaciales
Sistemas automotrices
Sistemas
biologicos
Que es simulink
Entorno grafico basado en Matlab
Diseo
Simulacion
7
Implementacion
Control de pruebas
Que es simulink
Soporta modelos:

de sistemas lineales y no lineales,
de tiempo continuo o discreto,
hbridos continuo y discreto
de eventos discretos

Sistemas multirate (partes diferentes pueden ser
muestradas a distintas ratas
8
El modelo es un archivo ASCII
El modelo grafico es simplemente una herramienta
de ayuda para el usuario

Que es simulink
9
REPRESENTACION DE LOS
MODELOS
10
La construccion de un modelo
11
u
(Input)

x
(states)
y
(Output)

Seales
Bloque
Un sistema dinmico elemental
(continuo o discreto)
Seales
Las seales en simulink
Las seales representan cantidades que varian en
el tiempo

Estan definidas para todo punto en el tiempo entre el
inicion y el final de al simulacion

Las seales tienen atributos:
nombre,
tipo de dato (entero de 8-bit, 16-bit, o 32-bit,
Tipo numerico (real or complejo),
Dimensionalidad (arreglo de una o dos dimensiones).

12
Tipos de datos en Simulink
13
Buses de datos en Simulink
14
Bloques continuos en simulink
15

, , Derivatives Equation
c
x t f x t u t t



, , Output Equation y t g x t u t t
Bloques discretos en simulink
16

1 , , Update Equation
d
x n f x n u n n

, , Output Equation y n g x n u n n
Tiempo de muestreo de los bloques
Cada bloque tiene un tiempo de muestreo

Aun los bloques que no definen estados (Gain
block) y los bloques continuos

17
Sample Time
Tiempo de muestreo de los bloques
Cada bloque tiene un tiempo de muestreo

18
offset
Se considera que los bloques continuos tienen un tiempo de
muestreo infinitesimal llamado continuous sample time.
Tiempo de muestreo de los bloques
Un bloque con tiempo de muestreo implcito
que lo hereda de sus entradas.

El tiempo de muestreo implcito es continuo si
cualquiera de los bloques de entrada es continuo.

Si no, el tiempo de muestreo implcito es discreto.
19
Tiempo de muestreo de los bloques
Un tiempo de muestreo discreto implcito es igual
al tiempo de muestreo de entrada ms corto

si todo los tiempos de muestreo de entrada son
mltiplos enteros del tiempo ms corto.

En otro caso, el tiempo de muestreo implcito es
igual al tiempo de muestreo fundamental de las
entradas,

definido como el mximo comun divisor de los tiempos
de muestreo de las entradas.
20
LOS METODOS DE BLOQUE
21
Cada bloque consiste en un conjunto de ecuaciones
(metodos del bloque)






Estos mtodos del bloque se evalan (ejecutan) durante la
ejecucin del bloque en un diagrama.

Los metodos del bloque en simulink
22
Tipos de metodos de los bloques
En Simulink existen tres tipos de funciones
ejecutadas por los metodos de bloque

Outputs

Calcula las salidas del bloque, dadas,

Las entradas del paso (step time) actual, y
Los estados en el paso previo.

23
Tipos de metodos de los bloques
En Simulink existen tres tipos de funciones
ejecutadas por los metodos de bloque

Derivatives

Calcula las derivadas de los bloques de estados
continuos en el paso actual, dados:

Las entradas actuales del bloque, y
Los valores de los estados en el paso previo

24
Tipos de metodos de los bloques
En Simulink existen tres tipos de funciones
ejecutadas por los metodos de bloque

Update

Calcula el valor de los estados de los bloques
discretos en el paso actual, dados:

Las entradas actuales del bloque, y
Los valores de los estados discretos en el paso
previo


25
Notacion de los metodos
Los mtodos de bloque realizan los mismos tipos de
operaciones de maneras diferentes para los tipos
diferentes de bloques.


Por ejemplo, el mtodo que calcula la salida de un
bloque Gain, se denota:

26
Gain.Outputs
Los bloques virtuales
Dentro de un modelo, un bloque define de
hecho un sistema dinamico.

En realidad, existen dos clases de bloques,

Bloques no virtuales: sistemas elementales

Bloques virtuales: Solo tienen un papel para la
organizacion grafica (demux)
27
No juegan ningun papel en la definicion de
las ecuaciones descritas por el modelo
EL SOLVER
28
El SOLVER
La funcion principal del solver es calcular las
salidas de los bloques

Esto involucra el calculo de los estados

En los sistemas continuos esto involucra la
integracion de la ecuacion de las Derivatives
equation
29
Control del error
Los solvers de paso variable llevan un control del
error
Tolerancia absoluta: Limite superior del error de integracion
Tolerancia relativa: Limite del error de integracion dividido
por la magnitud de la variable.



30
El solver trata de satisfacer una de las tolerancias,
no ambas
Calculo del tamao del paso
31
x

t t+h
El error de integracion se
aproxima por la diferencia entre
dos ordenes de integracion
Si no, se reduce el tamao del paso y se
repite la integracion
Si el error es aceptable, la simulacion
continua.
Calculo del tamao del paso
32
x

t t+h
Discrete Update
h
new
El tamao del paso se ajusta para que
coincida con las actualizaciones (update) de
los estados discretos
Configuracin de los parametros
33
ode45? Cambiar el solver aqui
MAS SOBRE MODELOS
34
Construccion de modelos complejos
Es posible simplificar la apariencia de modelos
complejos mediante bloques Subsystem


35
Para trabajar con modelos complejos usar el
model browser
Uso del Model Browser
36
Modelado de sistemas hibridos
Los solvers de paso variable
tienen especial cuidado con
los sistemas hibridos

Ajustan el tamao del paso
para permanecer dentro de
los limites del error Y
ajustarse a las
actualizaciones discretas

Para sistemas multi-rata
usar Sample Time Colors

37
FASES DURANTE LA
SIMULACION
38
Fases de la simulacion
La simulacion de un modelo en Simulink se
realiza en tres fases:

Compilacion del modelo

Fase de enlace

Bucle de simulacion

39
La fase de compilacion
La fase de compilacion se inicia cuando se
oprime Start

Esto causa que el engine (motor) de Simulink
invoque al compilador

40
El compilador convierte al modelo
en una forma ejecutable.

Proceso denominado compilacion
Algunas funciones del compilador
Evaluar las expresiones de los parametros de
los bloques del modelo para determinar sus
valores
41
Algunas funciones del compilador
Determinar los atributos de las seales

Nombre, tipo de dato, dimensionalidad

Chequear que cada bloque pueda aceptar las
seales conectadas a sus entradas
42
Algunas funciones del compilador
Realizar una reduccion optima de los bloques

Llevar a un mismo nivel la jerarquia del
modelo, remplazando los subsistemas virtuales
con los bloques que contienen

Determinar el orden (sorted order) de los
bloques

Determinar los tiempos de muestreo de todos
los bloques


43
La fase de enlace
En esta fase, el Motor de Simulink:

Asigna la memoria necesaria para las reas de
trabajo necesarias para la ejecucin del diagrama
de bloque.

Seales, estados, y parmetros de tiempo de
ejecucin

Asigna e inicializa la memoria para las estructuras
de datos que almacenan la informacin en tiempo
de ejecucin para cada bloque.


44
La estructura Simblock
Para los bloques de Simulink SimBlock es la
principal estructura de datos en tiempo de
ejecucin. En esta estructura se almacenan:

los pointers a los buffers de entrada y salida del
bloque,

los vectores de estado, y

los vectores de trabajo



45
Prioridad de los bloques
Simulink permite asignar prioridades para la
actualizacion de los bloques

Los metodos de salida de los bloques de mayor
prioridad se ejecutan primero


46
Listas de ejecucion de los metodos
En la fase de Enlace, el motor de Simulink
crea las listas de ejecucion de los metodos

Estas listas, listan el orden mas eficiente de
invocar los metodos de los bloques del modelo
para calcular sus salidas
47
Simulink usa el orden de los bloques generado
durante la fase de compilacion para constuir
las listas de ejecucion de los metodos
La fase de bucle de simulacion
En esta fase, el motor de Simulink calcula
sucesivamente, desde el tiempo de inicio al
tiempo de fin de la simulacin:

los estados y las salidas del sistema

a intervalos de tiempo (step size)


48
El step size depende:
si el sistema es continuo o discreto (solver),
o si existen discontinuidades en los estados
continuos del diagrama
La fase de bucle de simulacion
La fase de bucle de Simulacin tiene dos
subfases:
La fase de inicializacin

ocurre una vez, en el principio del lazo

La fase de iteracin.

Se repite una vez en cada step time, desde el
inicio (start) hasta el final (stop) de la simulacin.

49
La fase de bucle de simulacion
Al inicio de la simulacin (start),

el modelo especifica los estados iniciales y las
salidas del sistema a ser simulado.

En cada paso (step time), se calculan nuevos
valores para,
las entradas del sistema, los estados, y las salidas

y actualiza el modelo para reflejar los valores
calculados.

50
Bucle de iteracion
En cada step time el motor de Simulink:

1. Calcula las salidas del modelo
2. Calcula los estados del modelo
3. Chequea si existen discontinuidades en los loques
continuos (opcional)
4. Calcula el tiempo para el siguiente time step

Simulink repite los pasos 1 a 4 hasta alcanzar
el tiempo final (stop)
51
Calculo de las salidas del modelo
El motor inicia este paso invocando el metodo
Outputs del modelo

El metodo Outputs del modelo a su vez invoca al
metodo Outputs del sistema

El metodo Outputs del sistema a su vez invoca a
los metodos Outputs de los bloques

En el orden especificado por las listas de ejecucion
de los metodos de salida generadas en la fase de
enlace
52
Calculo de las salidas del modelo
El mtodo Outputs del sistema pasa los siguientes
argumentos a cada mtodo de Outputs de bloque:

Un pointer de la estructura de datos del bloque
Un pointer de su estructura SimBlock.

La estructura de datos SimBlock apunta a la
informacin que el mtodo Outputs necesita para
calcular las salidas del bloque,

Incluyendo la posicin de los buffers de entrada y
de salida


53
Calculo de los estados discretos del
modelo
El motor inicia este paso invocando al solver
discreto seleccionado

El solver calcula el tamao del paso necesario e
invoca al metodo Update del modelo

El metodo Update del modelo invoca al metodo
Update del sistema

El metodo Update del sistema invoca a los
metodos Update de los bloques
54
Calculo de los estados continuos del
modelo
El motor inicia este paso invocando al solver
discreto seleccionado

Dependiendo del solver,
el solver invoca una sola vez el mtodo Derivatives
del modelo

o entra en un subciclo de pasos de tiempo menores
donde el solver repetidamente invoca los mtodos
Outputs y Derivatives del modelo para calcular
salidas y las derivadas del modelo en intervalos
sucesivos dentro del paso de tiempo principal.
55
Calculo de los estados continuos del
modelo
Los metodos Output y Derivatives del modelo
invocan a sus metodos de sistema
correspondientes

Los metodos Output y Derivatives del del sistema
invocan a sus metodos de bloque correspondientes
56
En el orden especificado por las listas de ejecucion de
los metodos de salida generadas en la fase de enlace
Chequeo de discontinuidades
Simulink usa la denominada deteccion de
cruce por cero para deteectar discontinuidades
en los estados continuos
57
Es posible ajustar los criterios que Simulink usa para
detectar los cruces por cero
Dialogo Solver-Motor
58
SIMULINK
Solver
Motor
Calcula
salidas de los bloques
Derivadas de los estados
Updates de los estados
Genera
Eventos de cruce por cero
Propaga salida de los
bloques
Integra derivada de los
estados
Determina tiempo de
muestreo
tiempo, entrada, estados
salidas, derivadas
Los dialogos estan governados por banderas (flags)
Resumen
59
SIMULINK DEBUGGER
60
El Simulink debugger
Carga del Simulink Debugger del menu Tools de
la ventana del modelo

61
Uso de la interfaz de usuario grafica
Para iniciar una simulacion
Para iniciar una simulacion click el boton
Start/Continue de la ventana del debugger
62
Simulacion metodo por metodo
63
El Simulink debugger permite correr una simulacion
metodo por metodo
Siguiente metodo
del bloque 0:3
Pointer
Metodo a
ejecutar
Examen de los resultados de la
ejecucion del metodo
64
Permite parar la simulacion despues de cada metodo para
examinar los resultados de la ejecucion del metodo
Ejecucion de un bloque
65
La ejecucion de un bloque es en realidad la ejecucion
de los metodos del bloque
El debugger de Simulink usa el nombre de un bloque
(instancia) para especificar tanto el tipo de mtodo como el
bloque (instancia) sobre el que el mtodo se invoca
1
g1
g1.Outputs
Ejecuta el metodo Outputs en el bloque de
ganancia denominado g1
La ejecucin del diagrama en bloques
66
El debugger pausa en el primer bloque en el primer time step.
La ejecucin del diagrama en bloques
67
Muestra el tiempo de start de la simulacion y el prompt de comandos:
La ejecucin del diagrama en bloques
68
Ejecuta todos los bloques del diagrama como se especifica en el bucle de
simulacin
Ejecucion incremental de la simulacion
Un ndice del bloque tiene la forma




69
s:b
Dnde:

s es un entero que identifica un
sistema en el modelo

b es un entero que identifica un
bloque dentro de ese sistema
Color mostrado por el Debug Pointer
70
Simulation Loop Pane
Para mostrar el Simulation Loop pane, seleccionar
el tab Simulation Loop en la ventana del debugger
71
Breakpoints Pane
Para mostrar el Breakpoints pane, seleccionar
el tab Break Points en la ventana del debugger
72
Permite especificar los metodos de bloque o las
condiciones para parar la simulacion
Outputs Pane
Para mostrar el Outputs pane, seleccionar el tab
Outputs en la ventana del debugger
73
Sorted List Pane
Para mostrar el Sorted List Pane, seleccionar el tab
Sorted List en la ventana del debugger
74
Status Pane
Para mostrar el Status Pane, seleccionar el tab
Status en la ventana del debugger
75
Uso de la interfaz de usuario grafica
Los principales componentes de la interfaz de
usuario grafica son:


76
Toolbar
Breakpoints Pane
Simulation Loop Pane
Outputs Pane
Sorted List Pane
Status Pane
Toolbar
El toolbar aparece en la parte superior de la
ventana del debugger
77
Comandos en el Toolbar


Se detenie en el primer mtodo del prximo mtodo,
o al final del prximo mtodo, si el prximo mtodo
no contiene ningun mtodo


Al mtodo que sigue el prximo mtodo, ejecutando
todos los mtodos invocados directamente o
indirectamente por el prximo mtodo
78
Step into (next method)
Step over (next method)
Comandos en el Toolbar


Al final del mtodo actual, ejecutando todos los mtodos
restantes invocados por el mtodo


Al primer mtodo del prximo time step (al inicio del
bucle de simulacin)


Al prximo mtodo de bloque en ser ejecutado,
ejecutando todos los mtodos a nivel de modelo o
sistema que intervengan
79
Step out (of current method)
Step top (to first method at start of next time step)
Step blockmth (to next block method)
Comandos en el Toolbar
80
Display entradas y salidas del bloque seleccionado
cuando se ejecute
Break antes del bloque seleccionado
Stop la simulacion.
Pausar la simulacion.
Display entradas y salidas actuales del bloque seleccionado
Start o continue la simulacion
Comandos en el Toolbar
81
Close el debugger.
Display la ayuda del debugger.
Conmuta el modo de animacion on o off. El slider cerca a
este boton controla la velocidad de la animacion
Llamado del debugger
Para llamar al debugger desde la ventana de
comandos:
Usar sldebug en la ventana de comandos


Usar la opcion debug del comando sim

82
sldebug 'vdp'
sim('vdp',[0,10],simset('debug','on'))
Algunos comandos del debugger
slist: para mostrar la lista ordenada de los bloques
del modelo
step: para correr bloque por bloque

next: para correr de un punto en el tiempo a otro

continue para correr de breakpoint a breakpoint
83
Ejecucion incremental de la simulacion
Despues de ejecutar un bloque:
El debugger muestra las entradas (U) y salidas (Y)
del bloque y vuelve a mostrar el prompt del
debugger en la ventanda de comandos de
MATLAB
El prompt del debugger muestra el siguiente bloque
a ser evaluado

84
(sldebug @0:0 'vdp/Integrator1'): step U1 = [0] Y1 = [2]
(sldebug @0:1 'vdp/Out1'):
Ejecucion incremental de la simulacion
Cruce al siguiente Time Step
Cuando se corre el ultimo bloque en la lista
ordenada del modelo, el debugger avanza la
simulacion al siguiente time step
y detiene la simulacion al comienzo del primer
bloque a ser ejecutado en el siguiente time step
85
(sldebug @0:8 'vdp/Sum'): step U1 = [2] U2 = [0] Y1 = [-2]
[Tm=0.0001004754572603832 ] **Start** of system 'vdp' outputs
Despliegue de los estados del sistema
El comando states muestra los valores actuales de los
estados del sistema en la ventana de comandos de
MATLAB
86
%----------------------------------------------------------------%
[TM = 0.5500000000000064 ] ejemplo2.Outputs.Major
(sldebug @18): >> step top
%----------------------------------------------------------------%
[TM = 0.6500000000000064 ] ejemplo2.Outputs.Major
(sldebug @18): >> states

Continuous States:
Idx Value (system:block:element Name 'BlockName')
0 0.2255941615866376 (0:0:0 CSTATE 'ejemplo2/Integrator')
Lazos algebraicos
El comando atrace muestra la informacion acerca de los
lazos algebraicos del modelo, cada vez que se resuelven
El comandotoma un solo argumento que especifica la
cantidad de informacin a desplegar
87
atrace 1


atrace 2

atrace 3

atrace 4
La solucion de la variable de lazo, el numero de iteraciones
requeridas para resolver el lazo, y el error estimado de la
solucion

Lo mismo que el nivel 1

El nivel 2 mas la matriz Jacobiana usada para resolver el
lazo

El nivel 3 mas las soluciones intermedias de la variable de
lazo
Ejercicios
1. Construya un modelo para convertir grados Celsius a Fahrenheit ,
de acuerdo con la ecuacion:


Use un bloque para entrar valores de temperatura descendientes.
Use un bloque sink de salida apropiado

2. Construya un modelo para resolver la siguiente ecuacion diferencial:


Use como entrada los bloques: Unit-Step, y Ramp
Use un bloque sink de salida para la respuesta en el tiempo y la
respuesta en la frecuencia

88
TF = 9/5 * (TC) + 32
Fuentes
Mathworks
89