Está en la página 1de 122

Simulink

Pedro Corcuera
Dpto. Matemtica Aplicada y
Ciencias de la Computacin
Universidad de Cantabria
corcuerp@unican.es
Objetivos
Introducir conceptos de diseo basado en
modelos
Aprender a disear modelos de sistemas
Conocer el entorno Simulink y sus aplicaciones
Disear y simular modelos en Simulink
Simulink
2
Disear y simular modelos en Simulink
ndice
Modelado dinmico de sistemas
Introduccin a Simulink
Simulacin de ecuaciones diferenciales
Creacin de subsistemas
Herramientas de anlisis en Simulink
Simulink
3
Herramientas de anlisis en Simulink
Depuracin
Extensiones de Simulink
Modelado dinmico de sistemas
El modelo matemtico de un sistema dinmico es
descrito por un conjunto de ecuaciones
El modelo de diagrama de bloques de Simulink es
una representacin grfica del modelo matemtico de
un sistema dinmico
Simulink
4
un sistema dinmico
Las ecuaciones matemticas descritas por un modelo
de diagrama de bloques son conocidas como
ecuaciones algebraicas, diferenciales y/o de
diferencia
Modelos de sistemas
Dependiendo del sistema modelado y del propsito
de la simulacin, el modelo matemtico puede ser:
Lineal o No Lineal: los modelos lineales obedecen al
principio de superposicin
Parmetros Distribudos: son descritos por ecuaciones
Simulink
5
Parmetros Distribudos: son descritos por ecuaciones
diferenciales parciales usualmente con el tiempo y una o
ms coordenadas espaciales como variables
independientes
Estticos y Dinmicos: los modelos estticos no toman
en cuenta la variacin del tiempo mientras que los
modelos dinmicos si lo hacen
Modelos de sistemas
Continuos y Discretos: los modelos de tiempo continuo
son descritos por ecuaciones con variables continuas en
el tiempo. Los modelos discretos son descritos por
ecuaciones cuyas variables dependientes son
muestreadas en intervalos fijos de tiempo
Simulink
6
muestreadas en intervalos fijos de tiempo
Determinstico o Estocstico: un modelo determinstico,
produce el mismo resultado al ejecutarse si se cumplen
las mismas condiciones iniciales. Un modelo estocstico
es aquel en el cual la informacin pasada, no permite la
formulacin de una regla para determinar el resultado
preciso de un experimento
Introduccin a Simulink
Es una herramienta interactiva (tipo drag and drop),
para modelar, simular y analizar sistemas dinmicos,
basada en diagramas de bloques
Permite a los usuarios concentrarse en la estructura
del problema, en lugar de tener que preocuparse
Simulink
7
del problema, en lugar de tener que preocuparse
acerca de un lenguaje de programacin
Los parmetros de cada bloque de seal y sistema
son configurados por el usuario. La simulacin se
realiza sobre un tiempo determinado
Simulink es una extensin de MATLAB
Fases para el modelado con Simulink
Definicin de un modelo y representacin matemtica
Manipular ecuaciones para eliminar lazos algebraicos
Definicin de los parmetros del sistema
Seleccionar un mtodo de integracin apropiado
Simulink
8
Seleccionar un mtodo de integracin apropiado
Ajuste de las condiciones de ejecucin de la
simulacin
Entorno de desarrollo Simulink
Para activar el entorno de desarrollo Simulink se
escribe en la ventana de comandos Matlab
>> simulink
o se pulsa sobre el icono
Simulink
9
Librera de bloques de Simulink
Simulink
10
Diagramas de bloque
Simulink proporciona un conjunto muy amplio de
diagramas de bloques para describir sistemas
continuos, discretos e hbridos
Un sistema continuo es un sistema que se representa
por ecuaciones diferenciales. Un sistema discreto se
Simulink
11
por ecuaciones diferenciales. Un sistema discreto se
representa por ecuaciones en diferencia. Un sistema
hbrido contiene componentes continuos y discretos
Un diagrama de bloques describe un conjunto de
relaciones que puede representar un conjunto de
ecuaciones simultneas
Diagramas de bloque: sistemas continuos
La mayora de sistemas fsicos son modelados como
sistemas continuos, porque pueden ser descritos
mediante ecuaciones diferenciales (ecdif)
Hay cuatro bloques primitivos que pueden modelar
cualquier sistema descrito por ecdif. lineales:
Simulink
12
cualquier sistema descrito por ecdif. lineales:
Ganancia
Suma
Derivada
Integrador
El bloque de funcin de transferencia es muy usado
para el modelado se sistemas fsicos y controladores
Diagramas de bloque: sistemas continuos
Bloque ganancia
Bloque suma
kx y = k x(t)
y(t)
b a c =
a
c
+
-
Simulink
13
Bloque derivada
Bloque integrador
b
dt
dx
y =
du/dt x
y s x
y
Notacin Laplace

+ =
t
t
d x t y t y
0
) ( ) ( ) (
0


x
y 1/s x
y
Notacin Laplace
Diagramas de bloque: sistemas continuos
Bloque funcin de transferencia
Se usa frecuentemente en el diseo de sistemas de
control y modelado de sistemas
Se define como la divisin de la transformada de Laplace
de la salida del sistema entre la transformada de Laplace
Simulink
14
de la salida del sistema entre la transformada de Laplace
de la entrada del sistema asumiendo condiciones iniciales
cero
Ejemplo:
F kx x c x m = + +

) ( ) ( ) ( ) (
2
s F s kX s csX s X ms = + +
Notacin Laplace:
m
k
s
m
c
s
m
s F
s X
s G
+ +
= =
2
/ 1
) (
) (
) ( FT
Diagramas de bloque: sistemas continuos
1/m F
x
1/s 1/s
+
-
-
x x
k/m
.. .
Diagrama de bloques:
Simulink
15
F
x
G(s) F
x
Bloque de funcin de transferencia:
c/m
) / ( ) / (
/ 1
2
m k s m c s
m
+ +
Bloque de espacio de estado continuo
El bloque de espacio de estado es alternativo al
bloque funcin de transferencia
Representa de forma compacta la dinmica de un
sistema
Permite especificar condiciones iniciales y proporciona
Simulink
16
Permite especificar condiciones iniciales y proporciona
acceso a variables internas
Permite modelar sistemas con mltiples entradas y
mltiples salidas (MIMO)
Ecuaciones generales:
donde:
Du Cx y
Bu Ax x
+ =
+ =

y
u
x vector de variables de estado
vector de entrada
vector de salida
Diagramas de bloque: sistemas discretos
Un sistema discreto puede ser representado usando
ecuaciones en diferencia y operan con seales
discretas (representadas por pulsos x(k), k es el
nmero de pulso)
Los bloques discretos bsicos son:
Simulink
17
Los bloques discretos bsicos son:
Ganancia discreta
Suma discreta
Retardo unitario (unit delay)
Integrador discreto en tiempo
Diagramas de bloque: sistemas discretos
Bloque ganancia discreta
Bloque suma discreta
) ( ) ( k ax k y = a x(k)
y(k)
b a c =
a
c
+
-
Simulink
18
Bloque retardo unitario
Bloque integrador
b
) 1 ( ) ( = k x k y
T x(k)
x(k-1) z
-1
x(k)
x(k-1)
Notacin transformada Z


+ =
Tk
k T
dt t u k y k y
) 1 (
) ( ) 1 ( ) (
x
y
x
y
Backward int.
1 z
Tz
Forward int.
1 z
T
Diagramas de bloque: sistemas discretos
Bloque funcin de transferencia
Anlogo al bloque ft continuo
Se define como la divisin de la transformada Z de la
salida del sistema entre la transformada Z de la entrada
del sistema asumiendo condiciones iniciales cero
Simulink
19
del sistema asumiendo condiciones iniciales cero
Representacin:
General
k z
z

Equivalente Simulink
k z
1
Bloque de espacio de estado discreto
Similar al bloque de espacio de estado continuo
siendo las variables de estado discretas
Ecuaciones generales:
donde:
) ( ) ( ) (
) ( ) ( ) 1 (
k k k
k k k
Du Cx y
Bu Ax x
+ =
+ = +
x vector de variables de estado
Simulink
20
) ( ) ( ) ( k k k Du Cx y + =
y
u
x vector de variables de estado
vector de entrada
vector de salida
Bloques no lineales
Simulink proporciona un amplio conjunto de bloques
adicionales a los lineales. Los ms comunes son.
Producto
Abs
Lgicos (AND, OR, NOT)
Simulink
21
Lgicos (AND, OR, NOT)
Relacionales (<,>)
Sign
Funcin saturacin
Retardo de transporte
Bsqueda en tabla (interpolacin)
Bloques Simulink
Continuos Discontinuos
Discretos
Lgicos y Op. Bit
Simulink
22
Bloques Simulink
Bsqueda tabla Operaciones matemticas Sinks
Lgicos y Op. Bit
Simulink
23
Configuracin de bloques
Haciendo doble-click sobre cualquier bloque o
seleccionando con el botn derecho del ratn los
parmetros del bloque se obtiene una ventana para
configurar el bloque segn las necesidades del
modelo
Simulink
24
modelo
Blocksets
Es posible desarrollar bloques para Simulink y
agruparlos para la modelacin y simulacin de
sistemas especficos
Existen varios blocksets que se pueden aadir a
Simulink
Simulink
25
Simulink
Aerospace Blockset
Communications Blockset
Gauges Blockset
Signal Processing Blockset
Video and Image Processing Blockset
Creacin de nuevo modelo en Simulink
Para editar un modelo
Abrir la ventana de un nuevo modelo
Conectar los bloques
Aadir bloques
Cambiar el tamao de los bloques
Simulink
26
Cambiar el tamao de los bloques
Modificar etiquetas y aadir anotaciones
Parametrizar los bloques y la simulacin
Ejecutar y modificar
Guardar un modelo (formato Simulink y .m)
Abrir un modelo desde Matlab
Elementos de un modelo Simulink
Un modelo Simulink tpico consiste de tres
elementos:
Entradas, Sources o inputs
Constantes, generadores de funciones (ondas senoidales,
escaln o seales creadas en Matlab)
Simulink
27
escaln o seales creadas en Matlab)
Sistema modelado, representado por el diagrama de
bloques
Salidas, Sinks u outputs
Grficos, osciloscopios, ficheros
Sources
Diagrama
de bloques
del Sistema
Sources
Abrir ventana de nuevo modelo
Para crear un modelo en Simulink se pulsa sobre el
icono New model del Simulink Library Browser
o se selecciona File New Model
Simulink
28
Espacio de trabajo
En el espacio de trabajo se colocarn los diagramas
de bloque del modelo
Simulink
29
Espacio de trabajo
Aadir bloques
Hacer click sobre una librera
para desplegar los bloques
Simulink
30
Arrastrar los bloques deseados
dentro de la ventana del modelo
Simulink
Conectar los bloques
Para aadir un conector:
Arrastrar, pulsando el botn derecho del ratn y la
tecla Ctrl, desde una salida, o desde una entrada, de
alguno de los bloques al otro bloque
Simulink
31
Cambiar el tamao y/o mover los bloques
Tras seleccionar el bloque, aparecen en l los
puntos, desde los cuales se puede arrastrar para
cambiar el tamao del bloque
Simulink
32
Posteriormente se pueden mover el bloque
para que las lneas de conexin queden rectas
Modificar etiquetas y aadir anotaciones
Hacer click en la etiqueta y editarla
Etiquetas
Simulink
33
Anotaciones
Hacer dobleclick en el
fondo y escribir el texto
Parametrizar los bloques
Simulink
34
Hacer doble click
sobre el bloque que
se desea
parametrizar
Guardar el modelo
Para guardar el modelo seleccionar File Save
El sufijo de los modelos Simulink es .mdl
Desde la ventana de comandos de Matlab se puede
abrir el modelo escribiendo el nombre del fichero
Simulink
35
Ejecucin de la simulacin del modelo
Asignar los parmetros de la simulacin
Ejecutar una simulacin desde la ventana del modelo
Poner y sacar valores en/desde los modelos
Utilizar en Matlab los valores obtenidos en la simulacin
Variables definidas en Matlab y Simulink
Simulink
36
Variables definidas en Matlab y Simulink
Simular desde la lnea de comandos
Asignar parmetros de la simulacin
Simulink
37
Cuando se ejecuta una simulacin, Simulink resuelve
el conjunto de ecuaciones diferenciales y diferencia
numricamente usando uno de los solvers
Parmetros de la simulacin
Simulink
38
El tipo de Solver que proporciona Simulink es amplio
y son los ms mtodos ms rpidos y precisos
Algunos de los solvers proporcionados son:
ode45: Mtodo basado en Dormand - Prince , un paso Runge Kutta y es
recomendado como un primer mtodo
Parmetros de la simulacin
recomendado como un primer mtodo
ode23: Mtodo basado en Bogacki Shampine, un paso un paso Runge
Kutta y pude ser ms eficiente que ode45 cuando la tolerancia es
amplia
ode113: Este es un multipaso , de orden variable Adams Bashforth
Moulton PECE. Es recomendable cuando la funcin evaluacin consume
tiempo y la tolerancia es poca
ode15s: Es un multipaso , de orden variable basado en la frmula de
diferenciacin backward
ode23: un paso basado en la frmula de Rosembrock de orden 2.
Simulink
39
Otros parmetos se refieren al tiempo de simulacin y
el paso de integracin:
Start time
Stop time
Tipo de solver:
Parmetros de la simulacin
Tipo de solver:
Variable
Fijo
El nmero de puntos, en caso de usar tiempo fijo es:
Simulink
40
1 +

=
size Step
Time Start Time Stop
puntos de N
Otros parmetos tiene que ver con la entrada/salida
de datos al modelo y desde el modelo
Parmetros de la simulacin
Simulink
41
Los parmetros y variables de los modelos se pueden
acceder desde la ventana de Comandos de Matlab
Parmetros de la simulacin
Simulink
42
Los parmetros y variables de los modelos se pueden
acceder desde la ventana de Comandos de Matlab
Parmetros de la simulacin
Despus de ejecutar la
simulacin en Simulink
Simulink
43
Tanto desde la ventana de Matlab como la de
Simulink se ve el mismo Workspace o Espacio de
trabajo
Variables definidas en Matlab y Simulink
Matlab
Simulink
Simulink
44
T = 2 ;
K = 1 ;
K = 1
pi=3.14159...
t = 0:0.01:10
T = 2
Espacio de
trabajo
Se pulsa el icono Start o en el men Simulation
Start
Ejecucin de la simulacin
Simulink
45
Tambin se puede usar el comando Matlab sim
[t, x, y] = sim('model', Timespan, Opciones, ut)
donde model es el nombre del diagrama de bloques.
Timespan especifica la salida de los puntos de tiempo
Opciones es una estructura que permite asignar los
Ejecucin de la simulacin
valores de los parmetros en la ventana de dilogo
Simulation:Parameters
ut asigna la parte Load de la pgina Workspace I/O de la
ventana Simulation:Parameters
Ejemplo:
> [t, y] = sim(ejem1_1,5);
> plot(t, y)
Simulink
46
Construir un modelo en Simulink que resuelva la
siguiente ecuacin diferencial:
Solucin de ecuaciones diferenciales que
modelan Sistemas Continuos
( )
5sin 4
dx
t
dt
=
Condicin inicial:
Primero se dibuja un diagrama de bloques de la
simulacin del modelo matemtico (ecuacin)
Simulink
47
(0) 2. x =
Input: funcin 5sin(4t)
Output: x(t) que es la solucin de la ecuacin
diferencial
Diagrama del modelo
(0) 2 x =
A continuacin, se construye el modelo con Simulink
Simulink
48
x
dx
dt
s
1
5sin(4t)
(input)
x(t)
(output)
integrador
La siguiente tabla resume el bloque y la librera
donde se encuentra para ser inludo en el modelo
Se arrastra el bloque de la librera hasta la ventana de
trabajo
Seleccin de bloques para el modelo
Simulink
49
Modelo Librera Bloque
Input Sources Sink
Integrador Continuous Integrator
Output Sink Scope
Seleccin de bloques para el modelo
Simulink
50
Seleccin de bloques para el modelo
Simulink
51
Seleccin de bloques para el modelo
Simulink
52
Colocar el cursor en el puerto de salida
(> a la derecha) del bloque Sine Wave
.El cursor cambia de forma a cruz
Arrastrar desde el puerto de salida del
bloque Sine Wave hasta el puerto de
Conexin de los bloques con lneas de
seal
entrada (> a la izquierda) del bloque
Integrator . Cuando el cursor se
encuentra sobre el puerto de entrada
cambia de forma a cruz doble
Arrastrar desde la salida del bloque
Integrator hasta la entrada del bloque
Scope
Simulink
53
Las flechas indican la
direccin de la seal.
El input del modelo es:
5sin(4t)
Para ello se hace doble click
en el bloque Sine Wave y en
Configurar bloques con datos del modelo
en el bloque Sine Wave y en
la ventana de dilogo de los
parmetros del bloque
ingresar:
Amplitude = 5
Frequency = 4
Simulink
54
El valor inicial es: -2
Para ello se hace doble click
en el bloque Integrator y se
Configurar bloques con datos del modelo
en el bloque Integrator y se
ingresa la condicin inicial = -2
Simulink
55
En la ventana de trabajo, click
en Simulation y seleccionar
Start
Ejecutar la simulacin
Otra forma es hacer click en el
icono Start
Simulink
56
Hacer doble click en el
bloque Scope
Se visualiza el output x(t) en
la ventana Scope
Visualizar resultados de la simulacin
la ventana Scope
Se puede mejorar la
visualizacin utilizando los
iconos de la ventana. Ej.:
Autoscale y Tick labels all
Simulink
57
El siguiente sistema muelle-masa-amortiguador se
resuelve segn la ecuacin de movimiento (ignorando
friccin):
Ejemplo de Sistema Continuo de segundo
orden
2
2
( )
d x dx
m c kx f t
dt dt
+ + =
Considerar que:
el sistema inicialmente est en equilibrio:
funcin de la fuerza es un escaln con magnitud 3
valores de los parmetros: m = 0.25, c = 0.5, k = 1
Simulink
58
2
dt dt
) (t f kx x c x m = + +

Notacin simplificada:
0 , 0 = = x x

Si se expresa la ecuacin en trminos de la derivada


de mayor orden
El diagrama de bloques asociado es:
Diagrama de simulacin del sistema
continuo de segundo orden
) (t f kx x c x m = + +

x
m
c
x
m
k
t f
m
x

= ) (
1
El diagrama de bloques asociado es:
Simulink
59
m 1
s
1
s
1
c/m
k/m
f(t)
input
x
x(t)
output
+
-
-
x

x

velocidad desplazamiento
A partir del modelo se identifican los bloques
necesarios en las libreras Simulink:
Bloque Step (1) - Librera Sources
Bloque Sum (1) - Librera Math Operations
Bloque Gain (3) - Librera Math Operations
Diagrama de bloques Simulink del
sistema continuo de segundo orden
Bloque Gain (3) - Librera Math Operations
Bloques Integrator (2) - Librera Continuos
Bloque Scope (1) - Librera Sink
Cada bloque requiere ser configurado con las ICs:
el sistema inicialmente est en equilibrio:
input: escaln con magnitud 3
valores de los parmetros: m = 0.25, c = 0.5, k = 1
Simulink
60
0 , 0 = = x x

Arrastrar el bloque Sum desde la


librera Math Oper
Creacin del diagrama de bloques en
Simulink (scso)
Simulink
61
Doble click en Sum para cambiar los
parmetros a rectangular y + - -
Arrastrar el bloque Gain
desde la librera Math Oper
Creacin del diagrama de bloques en
Simulink (scso)
La ganancia es 4 porque 1/m=4
Simulink
62
Doble click en Gain para cambiar
los parmetros del bloque
Cambiar etiqueta
Arrastrar el bloque Step
desde la librera Math Oper
Creacin del diagrama de bloques en
Simulink (scso)
Simulink
63
Doble click en Step para cambiar
los parmetros Step time a 0 y
Final value a 3
Arrastrar los bloques Integrator
desde la librera Continuous
Creacin del diagrama de bloques en
Simulink (scso)
Simulink
64
El bloque integrator tiene por defecto valor
inicial 0. No es necesario modificarlo.
Se cambian los ttulos
Arrastrar el bloque Scope desde
la librera Sink
Creacin del diagrama de bloques en
Simulink (scso)
Simulink
65
Crear dos nuevos bloques Gain
desde la librera Math Oper
Creacin del diagrama de bloques en
Simulink (scso)
Simulink
66
Para girar el bloque gain, seleccionarlo,
y elegir Flip Block en el men Format.
Cambiar etiqueta. Doble click en los
bloques Gain para modificar los
parmetros. c/m =2, k/m = 4
Conectar todos los bloques. Etiquetar las seales haciendo doble click
sobre las lneas.
Para hacer derivaciones de una lnea se coloca el cursor sobre la lnea y
se mantiene pulsada la tecla Ctrl hasta conectar al otro bloque.
Creacin del diagrama de bloques en
Simulink (scso)
Simulink
67
Ejecutar
Resultados del modelo en Simulink (scso)
Simulink
68
Respuesta subamortiguada
Overshoot de 0.5
Valor final de 3
Comprobacin de resultados
Forma Standard
Frecuencia natural
) (
1
t f
k
x x
k
c
m
k
x
= + +

0 . 2 = =
m
k
n

Simulink
69
Tasa de amortiguamiento
Ganancia esttica
5 . 0
2
= =

k
c
n
1
1
= =
k
K
El siguiente sistema muelle-masa-amortiguador se
resuelve segn la ec. de movimiento (sin friccin):
Tomando la transformada de Laplace e ignorando las
condiciones iniciales
Uso del bloque de funcin de
transferencia en un scso
) (t f kx x c x m = + +

condiciones iniciales
La funcin de transferencia (output/input X(s)/F(s)) es:
Simulink
70
) ( ) ( ) ( ) (
2
s F s kX s csX s X ms = + +
m
k
s
m
c
s
m
s F
s X
s G
+ +
= =
2
/ 1
) (
) (
) (
4 2
4
) (
2
+ +
=
s s
s G
Arrastrar los bloques Transfer
Fcn desde la librera Continuous
Uso del bloque de funcin de
transferencia en Simulink para un scso
Simulink
71
Ajustar el Numerator y Denominator coefficient a [4]
y [1 2 4] del bloque Transfer Fcn
El bloque espacio de estado (state-space) es una
alternativa al bloque funcin de transferencia
Las variables de estado para el sistema mma son
posicin y velocidad
Bloque de espacio de estado
x x =
Las derivada de las variables de estado son
Simulink
72
x x
x x

=
=
2
1
F
m
x
m
c
x
m
k
x
x x
1
2 1 2
2 1
=
=

En notacin matricial
Bloque de espacio de estado

=
+ =
x
x
1 0
2
1
x
Bu Ax x

0
] 0 1 [
1
=
=
=
+ =
D
C
Du Cx y
x y
Simulink
73

=
=


=
m
F
m
c
m
k
1
0
1 0
B
u
A
donde:
A = matriz del sistema
B = matriz de entrada
C = matriz de salida
D = matriz de transmitancia directa
0 = D
Arrastrar los bloques State Space
desde la librera Continuos
Bloque de espacio de estado en Simulink
para un scso
Simulink
74
Ajustar los valores de las matrices A=[0 1;-4 -2],
B=[0; 4], C=[1 0] y D=[0] del bloque State Space
Se modela la amortizacin de un prestmo de dinero:
donde:
b(k) pago mensual
r = i+1 siendo i el inters mensual, y
Ejemplo sistema discreto Simulink
) ( ) 1 ( ) ( k p k rb k b =
r = i+1 siendo i el inters mensual, y
p(k) pago de final de mes.
Modelo de bloques
Simulink
75
k
i
p(k)
b(k)
-
+
b(k-1)
z
-1
Si el balance de un prstamo es:
Considerar como condiciones iniciales:
Balance inicial: 15000
Inters: 1%
Modelo de bloques de sistema discreto
Simulink
) ( ) 1 ( ) ( k p k rb k b =
Inters: 1%
Pago mensual = 200
Calcular el balance del prstamo despues de 100
pagos
Simulink
76
A partir del modelo se identifican los bloques
necesarios en las libreras Simulink:
Bloque Constant (1) - Librera Sources
Bloque Sum (1) - Librera Math Operations
Bloque Gain (3) - Librera Math Operations
Modelo de bloques de sistema discreto
Simulink
Bloque Gain (3) - Librera Math Operations
Bloques Unit delay (1) - Librera Discrete
Bloque Scope y Display (1) - Librera Sink
Cada bloque requiere ser configurado con las ICs:
Bloque Unit Delay, Initial Condition: 15000, Sample Time:
1
Bloque Gain: 1.01
Simulink
77
Modelo Simulink:
Modelo de bloques de sistema discreto
Simulink
Unit Delay
z
1
Scope Gain
-K-
Display
6341
Constant
200
En Parameter Configuration de
Simulink
78
En Parameter Configuration de
Simulation ajustar a
Solver type: Fixed-step
Solver: discrete
Start time: 0 Stop time: 100
Resultado de la simulacin de sistema
discreto Simulink
Unit Delay
z
1
Scope Gain
-K-
Display
6341
Constant
200
Simulink
79
Scope
Simulink proporciona la capacidad de crear
subsistemas que equivalen a las subrutinas o
funciones de los lenguajes de programacin
Los subsistemas permiten la abstraccin y
reusabilidad
Subsistemas y enmascarado
reusabilidad
Los modelos pueden crecer y hacerse ms complejos
de comprender y mantener. Con los subsistemas se
divide un gran modelo en un conjunto de jerrquico
de modelos ms pequeos
Simulink
80
Hay dos mtodos:
Encapsulando una porcin de un modelo existente usando
Edit:Create Subsystem
Usar el bloque Subsystem de la librera de bloques Ports
& Subsystems
Creacin de Subsistemas
& Subsystems
Simulink
81
Seleccionar todos los bloques y
seales a ser includos en el
subsistema usando una caja
envolvente
Seleccionar Edit:Create Subsystem
del menu del modelo. Simulink
reemplaza los bloques
Creacin de Subsistemas: Encapsulado
reemplaza los bloques
seleccionados por un bloque
Subsystem con puertos de entrada
y salida segn las lneas de seales
y les asigna un nombre por defecto
Cambiar el tamao del bloque
Subsystem para que las etiquetas
de puertas sean legibles y mover
para alinear
Simulink
82
Para ver o editar el subsistema, hacer
doble-click sobre el bloque. Aparecer
una nueva ventana conteniendo el
subsistema.
Adems del los bloques, se aade un
bloque Inport para la seal que entra
al subsistema y un bloque Outport se
Creacin de Subsistemas: Encapsulado
al subsistema y un bloque Outport se
aade para la seal que sale del
subsistema. Si se cambia las etiquetas
de esos puertos, cambia las etiquetas
en el icono del nuevo bloque.
Nota: Una vez se crea el subsistema
no hay operacin inversa, por lo que
se sugiere guardar el modelo antes de
crear el subsistema.
Simulink
83
Si se sabe que es necesario subsistemas para crear
un modelo, es conveniente construir el subsistema en
una ventana de subsistema directamente
Para ello se arrastra el bloque Subsystem de la librera de
bloques Ports & Subsystems a una ventana de modelo.
Creacin de Subsistemas : Encapsulado
bloques Ports & Subsystems a una ventana de modelo.
Despus hacer doble-click sobre el bloque.
Simulink
84
Se desea modelar un sistema de masa-resorte:
Creacin de Subsistemas: bloque
subsystem
El modelo de cada mvil es:
Simulink
85
[ ] ) ( ) (
1
1 1 1 + +
=
n n n n n n
n
n
x x k x x k
m
x

Ecuacin para un mvil:
Se construye el subsistema de un mvil segn el modelo. La ganancia del
bloque 1/masa se asigna 1/m1.
Creacin de Subsistemas: bloque
subsystem
Despl
1
Velocidad
1
s
Res.izq
k1
Res.der
k2
Posicion
1
s
Fuerza
resultante
Add1
Add
1/masa
-K-
Izq
2
Der
1
Simulink
86
Se hacen dos copias del bloque
subsystem y se conectan los
bloques como se muestra
Se asignan las constantes de los resortes y masas desde Matlab creando
un fichero .m (pe setSubsys) y se ejecuta en Matlab
% Asignacin de constantes para resortes y masas
k1 = 1; k2 = 2; k3 = 4; m1 = 1; m2 = 3; m3 = 2;
Creacin de Subsistemas: bloque
subsystem
Los parmetros de cada bloque subsystem se configura:
Mvil 1: valor del bloque Gain del bloque Resorte Izq a k1 y para el
bloque Resorte Der a k2. Valor del bloque Gain del bloque 1/masa a
Simulink
87
bloque Resorte Der a k2. Valor del bloque Gain del bloque 1/masa a
1/m1. Inicializar el bloque Integrator Velocidad a 0 y el Integrator
Posicion a 1.
Mvil 2: valor del bloque Gain del bloque Resorte Izq a k2 y para el
bloque Resorte Der a k3. Valor del bloque Gain del bloque 1/masa a
1/m2. Inicializar el bloque Integrator Velocidad a 0 y el Integrator
Posicion a 0.
Mvil 3: valor del bloque Gain del bloque Resorte Izq a k3 y para el
bloque Resorte Der a 0. Valor del bloque Gain del bloque 1/masa a 1/m3.
Inicializar el bloque Integrator Velocidad a 0 y el Integrator Posicion a 0.
Se configura el bloque Scope para almacenar los datos de salida al
workspace. Asignar Start time a 0 y Stop time a 100. Se puede obtener la
grfica desde Matlab con el comando simplot. Despus de ejecutar las
simulacin, se obtiene:
Creacin de Subsistemas: bloque
subsystem
Simulink
88
Tiempo (seg)
D
e
s
p
l
a
z
a
m
i
e
n
t
o
El enmascarado es una capacidad de Simulink que
extiende el concepto de abstraccin
Con ello se trata un subsistema como si fuera un
bloque simple con su propio icono y dilogo de
configuracin de parmetros
Enmascarado de bloques
configuracin de parmetros
Para producir un bloque enmascarado se construye
el subsistema como se ha mostrado antes, se
selecciona y se selecciona Edit:Mask Subsystem
Usando el editor de mscara, se configura la
documentacin, dilogo de propiedades e icono
Simulink
89
Se crea un subsistema. Usamos el
desarrollado para el sistema masa-
resorte copiando en una nueva ventana
de modelo el bloque Masa-Resorte1
Ejemplo: enmascarado de bloques
Seleccionar el bloque y
se escoje Edit:Mask
Simulink
90
se escoje Edit:Mask
Subsystemen el
men de la ventana de
modelos para obtener
la ventana de dilogo
del editor Mask.
Guardar el modelo
(CartMask)
El editor Mask tiene cuatro
pestaas: Icon,
Parameters, Initialization,
Documentation.
La pgina Documentation
del editor sirve para
establecer un tipo , colocar
Ejemplo: enmascarado de bloques
establecer un tipo , colocar
una descripcin del bloque
y una descripcin ms
detallada que se mostrar
cuando se selecciona el
sistema Help de Matlab
Simulink
91
La pgina Parameters
del editor Mask se usa
para definir parmetros
para el bloque del
susbsistema. Se divide
en dos secciones: Una
superior en la que se
define los campos de
Ejemplo: enmascarado de bloques
Aadir
Eliminar
Mover arriba
Mover abajo
define los campos de
dilogo y el orden en
que se muestran,
asociando una variable
Matlab con cada campo.
La seccin inferior
contiene opciones para
cada campo definido en
la parte superior.
Simulink
92
Mover abajo
La pestaa Parameters se usa
para crear, editar y eliminar
campos de dilogo asociado a
variables Matlab con cada campo.
Para cada campo aadido se
asocia un Prompt, Variable, Type,
Evaluate y Tunable.
Resultado:
Ejemplo: enmascarado de bloques
Resultado:
Simulink
93
El campo Type en Dialog parameters puede ser: edit, Checkbox y Popups .
El valor asignado a la variable asociada con un campo de dilogo depende
del estado de si selecciona el campo Evaluate.
Si Evaluate se selecciona la variable asociada con el campo tendr el valor
de la expresin del campo. El campo Tunable determina si el parmetro se
puede modificar durante la ejecucin de la simulacin.
El campo Callback permite asociar con el parmetro un bloque de cdigo
que se ejecuta cuando el parmetro de dilogo se ingresa.
Ejemplo: enmascarado de bloques
que se ejecuta cuando el parmetro de dilogo se ingresa.
Simulink
94
La pgina Initialization proporciona una lista de variables asociados con
los parmetros del bloque y un campo de Initialization commands. Los
bloques del subsistema se debe configurar para usar las variables
definidas en las pginas Initialization y Parameters. Para ello se selecciona
el subsistema y se escoge Edit:Look Under Mask en el men de la
ventana de modelo. Hacer doble click en el bloque Gain con etiqueta
Res.Izq. Y asignar Gain a k_izq. Repetir con Res.Der. Para asignar Gain a
k_der. Lo mismo con 1/mass para asignar Gain a masa. Asignar Initial
Ejemplo: enmascarado de bloques
k_der. Lo mismo con 1/mass para asignar Gain a masa. Asignar Initial
condition del integrador Velocidad a x_dot0 y en Posicion a x0.
Simulink
95
Las variables definidas en la mscara de un subsistema son locales y no
pueden acceder a las variables del workspace de Matlab. Un campo de
entrada en el dilogo de un bloque enmascarado puede contener
constantes o expresiones usando variables definidas en el workspace de
Matlab. El valor del contenido del campo de entrada se asigna a la
variable interna del subsistema enmascarado asociado con el campo de
entrada. Esta variable se puede usar para inicializar el bloque o puede
usarse para definir otras variables internas definidas en el campo
Ejemplo: enmascarado de bloques
usarse para definir otras variables internas definidas en el campo
Initialization commands
Simulink
96
Despl
1
Velocidad
1
s
Res.izq
-K-
Res.der
-K-
Posicion
1
s
Fuerza
resultante
Add1
Add
1/masa
-K-
Izq
2
Der
1
La pgina Icon permite disear iconos propios para los bloques
enmascarados. Consiste de seis campos. En el campo Drawing commands
se puede poner comandos Matlab para dibujar y etiquetar el icono.
Ejemplo: enmascarado de bloques
Masa-Resorte1
m
Simulink
97
Si en la pgina Initialization se
agrega la lnea:
m_etiq=sprintf('%1.1f kg',mass);
y en Drawing Commands:
text(0.45,0.6,'m')
text(0.25,0.4,m_etiq)
Una vez que se crea el bloque enmascarado se puede copiar a una
ventana de modelo de forma idntica cuando se copia de la librera de
bloques de Simulink. Para el ejemplo se arrastra tres copias del bloque
Masa-Resorte, se conecta y se asignan los parmetros con un fichero .m.
El modelo as queda completo.
Ejemplo: Uso de bloque enmascarado
Simulink
98
Una Librera de Bloque es un modelo especial Simulink que sirve para el
mismo propsito como la librera de subrutinas en un lenguaje de
programacin convencional. Cuando se copia un bloque desde una librera
(bloque de referencia) de bloque a un modelo, la copia mantiene un
enlace al bloque de la librera. As si cambia el bloque en la librera, ese
cambio se refleja en los modelos donde se ha usado el bloque.
Para crear una librera de bloque se selecciona File:New:Library en una
ventana de modelo o en la librera de Simulink. Se copia los bloques
Creacin de Librera de Bloque
ventana de modelo o en la librera de Simulink. Se copia los bloques
deseados a la nueva librera y se guarda.
Simulink
99
Pasos para crear una LibreriaPersonal con bloques Gain y MasaResorte
Creacin de Librera de Bloque
Simulink
100
Simulink dispone de herramientas de anlisis para
ganar en la comprensin de los modelos
desarrollados, que se usan dentro del espacio de
trabajo de Matlab
As se puede obtener la estructura del vector del
Herramientas de anlisis en Simulink
As se puede obtener la estructura del vector del
espacio de estado del modelo, el nmero de entradas
y salidas y otros parmetros importantes.
Tambin se puede ejecutar la simulacin desde
Matlab y modificar los parmetros del modelo, as
como linealizar un modelo, hallar puntos de equilibrio
Simulink
101
Un modelo Simulink es una descripcin grfica de un
conjunto de ecuaciones diferenciales, en diferencia y
algebraicas
El comando model permite determinar la estructura
del vector de estado del modelo Simulink
Vector de estado del modelo
del vector de estado del modelo Simulink
sizes = model([],[],[],0)
[sizes,x0] = model([],[],[],0)
[sizes,x0,states] = model([],[],[],0)
donde model es el nombre del modelo Simulink
Simulink
102
Se tiene el siguiente modelo
Simulink guardado en el fichero
llamado ejmod.mdl
Ejemplo: Vector de estado del modelo
Velocidad
1
s
Sine Wave
Scope
Gain 1
0.4
Gain
0.2
Desplazamiento
1
s
En la ventana de comandos Matlab se
ejecuta el comando:
>> [sizes,x0,states]=ejmod([],[],[],0)
sizes =
Simulink
103
x0 =
0
0
states =
'ejmod/Desplazamiento'
'ejmod/Velocidad'
sizes =
2
0
0
0
0
0
1
El comando Matlab sim permite ejecutar los modelos
Simulink desde Matlab
El comando sim se puede usan conjuntamente con
el comando simset para crear y editar una
estructura de datos de opciones y simget que
Ejecucin de modelos desde Matlab
estructura de datos de opciones y simget que
obtiene la estructura de datos de opciones del
modelo
La sintaxis del comando sim es
[t,x,y]=sim(model,TiemSpan,Options,utd)
donde model es el nombre del modelo
Simulink
104
Para ejecutar el modelo almacenado en el fichero
ejmod.mdl usando la configuracin por defecto,
equivalente a seleccionar Simulation:Start en la barra
del men del modelo. En Matlab se ingresa el
comando:
Ejemplo: ejecucin de modelos desde
Matlab
comando:
sim('ejmod')
Simulink ejecutar el modelo y si Scope est abierto
mostrar la grfica del resultado cuando la simulacin
se completa
Simulink
105
El comando simset se usa para crear y editar la
estructura de opciones de la simulacin
Hay tres formas del comando simset, siendo la ms
comn:
options=simset('RelTol',1.0E-4, 'Solver','ode4')
Ajuste y obtencin de parmetros de
simulacin desde Matlab
options=simset('RelTol',1.0E-4, 'Solver','ode4')
Con el comando simget se obtiene la estructura de
opciones o el valor de una propiedad:
opts=simget(model)
value=simget(model,nombre_propiedad)
donde model es el nombre del modelo
Simulink
106
Aun cuando la dinmica de la mayora de los
sistemas fsicos son no lineales, muchas tcnicas
tiles para el anlisis y diseo de sistemas de control
se basan en modelos lineales
Ejemplos: diagramas de Bode y de lugar de races
Herramientas de linealizacin
Ejemplos: diagramas de Bode y de lugar de races
Las ecuaciones lineales del espacio de estado son:
donde x es el vector de estado y u es el vector de
entrada
Simulink
107
Du Cx y
Bu Ax x
+ =
+ =

Simulink proporciona tres comandos para extraer la


aproximacin lineal del espacio de estado a partir de
los modelos Simulink
linmod para sistemas continuos
linmod2 alternativo a linmod para reducir errores de
Comandos de linealizacin
linmod2 alternativo a linmod para reducir errores de
truncamiento
dlinmod para sistemas continuos y discretos
La sintaxis del comando linmod es
[A,B,C,D]=linmod(model,X,U,par,xpert,upert)
donde model es el nombre del modelo
Simulink
108
Se tiene el siguiente sistema no lineal:
cuyo modelo (nolinear_mod.mdl) en Simulink es:
Ejemplo: linealizacin de un modelo
2
3
2 1 2
2 1
3x x x x
x x
+ =
=

x1 Out
1
x2
Integrator
1
s
x1
Integrator
1
s
Gain
-1
Simulink
109
En la ventana de comandos Matlab se ejecutan los comandos:
>> [A,B,C,D]=linmod('nolinear_mod');
>> disp(A)
0 -1.0000
1.0000 -3.0000
>> disp(eig(A))
-0.3820
-2.6180
x2 Out
2
Fcn
f(u)
pow(u[1],3)-3*u[1]
indica que el sistema es estable
El comando trim encuentra el punto de equilibrio de
un sistema mediante la bsqueda numrica del punto
donde el mximo valor absoluto de la derivada de
estado es minimizado
La sintaxis del comando es
Comando para hallar el equilibrio
La sintaxis del comando es
[x,u,y,dx] =
trim(model,x0,u0,y0,ix,iu,iy,dx0,idx,options,t)
donde model es el nombre del modelo y el resto opcionales
Para la optimizacin de parmetros en la dinmica y
control de sistemas se usa el Toolboox de Optimizac.
Simulink
110
Los callbacks son comandos Matlab que se ejecutan
automticamente cuando ocurren ciertos eventos
(abrir un modelo, doble-click en un bloque, etc.)
Se pueden aadir tambin callbacks para aadir
animaciones
Callbacks
animaciones
Los callbacks estn relacionados con el Handle
Graphics de Matlab
Los callbacks se pueden asociar con un modelo o
con un bloque particular
Simulink
111
Permiten definir bloques personalizados usando
cdigo en Matlab, C, C++, Ada o Fortran
Se pueden usar en varias situaciones: si existe cdigo
que modela una porcin o la totalidad de un sistema,
para describir el modelo dinmico de forma algortmica
Funciones S
para describir el modelo dinmico de forma algortmica
en lugar de grfica, para aumentar la eficiencia de una
simulacin y como mecanismo para aadir animaciones
a un modelo Simulink
Una funcin S se incluye en un modelo Simulink usando
el bloque S-Function que se encuentra en la librera de
bloques User-Defined Functions
Simulink
112
Simulink dispone de herramientas y tcnicas para
identificar y corregir errores de programacin que
pueden ser:
debidas a la construccin del modelo (sintaxis)
lneas de seal sin conectar , bloques de entrada y salida sin
Depuracin
lneas de seal sin conectar , bloques de entrada y salida sin
conectar y datos de configuracin de bloque sin asignar
de implementacin
overflows que causan errores de ejecucin y lazos algebraicos
que ralentizan la ejecucin
Simulink
113
Simulink puede detectar automticamente errores
durante el paso de compilacin del modelo y lo
reporta mediante la ventana de dilogo Simulation
Diagnostics (simulacin interrumpida) o mediante
mensajes warning en la ventana de Matlab
Encontrando errores de construccin del
modelo
mensajes warning en la ventana de Matlab
(simulacin contina)
Para asegurar que todos los errores sean detectados
se configura las opciones en
Simulation:Configuration Parameters:Diagnostics
Simulink
114
Encontrando errores de construccin del
modelo
Run
Run
Simulink
115
Run
Un problema de implementacin es una caracterstica
del modelo no deseada que puede no impedir su
ejecucin pero sea incorrecta o ineficiente
Tipos de errores:
Errores de ejecucin
Encontrando problemas de
implementacin
Errores de ejecucin
Ejecucin lenta
Oscilacin por cruce de cero
Lazos algebraicos
Stiffnes
Complejidad del modelo
Resultados incorrectos
Simulink
116
Un debugger interactivo es una herramienta que
permite controlar la ejecucin de un programa y
monitorizar los valores de las variables
Para ejecutar el debugger seleccionar en la bbra de
mens de la ventana del modelo Tools:Simulink
Depurador (debugger) de Simulink
mens de la ventana del modelo Tools:Simulink
Degugger
La barra de herramientas de la ventana del debugger
contiene una serie de botones (13) que permiten
controlar el proceso de depuracin
Simulink
117
Depurador (debugger) de Simulink
Simulink
118
Botones del debugger
Display I/O of selected
Display current I/O
of selected block
Enabled/Disabled Animation
Animation delay
Help
Simulink
119
Start/Continue
Step into current method
Step over current method
Step out of current method
Go to first method at start of next time step
Go to the next block method
Pause
Stop debugging
Break before selected block
Display I/O of selected
block when executed
Depurador (debugger) de Simulink
Simulink
120
Stateflow es una extensin de Simulink que
proporciona un entorno muy potente para aadir
mquinas de estado finito a los modelos de Simulink
Se fundamenta en los diagramas Statechart que
representan las mquinas de estado finito y los
Stateflow
representan las mquinas de estado finito y los
diagramas de transicin de estado
Para incluir un bloque Chart en un modelo Simulink se
selecciona el blockset Stateflow y arrastrar el bloque Chart
en el modelo
Haciendo doble click en el bloque Chart se obtiene la
ventana de Stateflow
Simulink
121
Real-Time Workshop es una extensin de Simulink
que convierte los modelos Simulink en cdigo
ejecutable.
RTW se puede configurar para producir cdigo
ejecutable para el computador en el que Simulink se
Real-Time Workshop
ejecutable para el computador en el que Simulink se
ejecuta, otro computador, una tarjeta de procesado
digital de seales o un controlador embebido
El cdigo producido se ejecuta ms rpido que el
modelo Simulink y su ejecucin se puede controlar de
forma remota
Simulink
122

También podría gustarte