Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplos Simulink
Ejemplos Simulink
Pedro Corcuera
Dpto. Matemtica Aplicada y
Ciencias de la Computacin
Universidad de Cantabria
corcuerp@unican.es
ndice
Creacin de modelos
Solucin de ecuaciones diferenciales
Subsistemas
Ejemplos en ingeniera
Simulink 2
Creacin de nuevo modelo en Simulink
Simulink 3
Elementos de un modelo Simulink
Simulink 5
Espacio de trabajo
Espacio de trabajo
Simulink 6
Aadir bloques
Hacer click sobre una librera
para desplegar los bloques
Simulink 7
Aadir bloques
Hacer click sobre una librera
para desplegar los bloques
Simulink 8
Aadir bloques
Hacer click sobre una librera
para desplegar los bloques
Simulink 9
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 10
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 11
Modificar etiquetas y aadir anotaciones
Etiquetas
Anotaciones
Hacer dobleclick en el
fondo y escribir el texto
Simulink 12
Parametrizar los bloques
Simulink 13
Parametrizar los bloques
Simulink 14
Parametrizar los bloques
Simulink 15
Parametrizar los bloques
Simulink 16
Guardar el modelo
Simulink 17
Ejecucin de la simulacin del modelo
Simulink 18
Asignar parmetros de la simulacin
Simulink 19
Parmetros de la simulacin
Solvers proporcionados:
ode45: Mtodo basado en Dormand - Prince , un paso Runge
Kutta y es 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 20
Parmetros de la simulacin
Simulink 21
Parmetros de la simulacin
Simulink 22
Parmetros de la simulacin
Simulink 23
Variables definidas en Matlab y Simulink
Espacio de
trabajo
T=2 t = 0:0.01:10
K=1
pi=3.14159...
Simulink 24
Ejecucin de la simulacin
Simulink 25
Ejecucin de la simulacin
Simulink 27
Diagrama del modelo
Simulink 28
Seleccin de bloques para el modelo
Simulink 29
Seleccin de bloques para el modelo
Simulink 30
Seleccin de bloques para el modelo
Simulink 31
Seleccin de bloques para el modelo
Simulink 32
Conexin de los bloques con lneas de
seal
Simulink 33
Configurar bloques con datos del modelo
Simulink 34
Configurar bloques con datos del modelo
Simulink 35
Ejecutar la simulacin
Simulink 36
Visualizar resultados de la simulacin
Simulink 37
Visualizar resultados de la simulacin
Simulink 38
Sistema masa-muelle-amortiguador
Descripcin:
Modelo:
2 Notacin Laplace:
d x dx
m 2 + c + kx = f (t ) ms 2 X ( s ) + csX ( s) + kX ( s ) = F ( s )
dt dt X (s) 1/ m
Notacin simplificada: G(s) = = FT
F ( s) 2 c k
mx + cx + kx = F s + s+
m m
Condiciones iniciales, sistema 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 39
Diagrama de simulacin del sistema
continuo de segundo orden
Si se expresa la ecuacin en trminos de la derivada
de mayor orden
1 k c
mx + cx + kx = f (t ) x = f (t ) x x
m m m
Diagrama de bloques asociado:
f(t) 1m velocidad desplazamiento
input + x 1 x 1 x
- x(t)
- s s
output
c/m
k/m
Simulink 40
Diagrama de bloques Simulink del
sistema continuo de segundo orden
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
Bloques Integrator (2) - Librera Continuos
Bloque Scope (1) - Librera Sink
Cada bloque requiere ser configurado con las ICs:
el sistema inicialmente est en equilibrio: x = 0, x = 0
input: escaln con magnitud 3
valores de los parmetros: m = 0.25, c = 0.5, k = 1
Simulink 41
Creacin del diagrama de bloques en
Simulink (scso)
Arrastrar el bloque Sum desde la
librera Math Oper
Simulink 42
Creacin del diagrama de bloques en
Simulink (scso)
Arrastrar el bloque Gain
desde la librera Math Oper
Simulink 46
Creacin del diagrama de bloques en
Simulink (scso)
Crear dos nuevos bloques Gain
desde la librera Math Oper
Ejecutar
Simulink 48
Resultados del modelo en Simulink (scso)
Respuesta subamortiguada
Overshoot de 0.5
Valor final de 3
Simulink 49
Comprobacin de resultados
x c 1
Forma Standard k
+ x + x = f (t )
k k
m
k
Frecuencia natural n =
m
= 2.0
Tasa de amortiguamiento 2 c
= = 0.5
n k
1
Ganancia esttica K = =1
k
Simulink 50
Uso del bloque de funcin de
transferencia en un scso
El siguiente sistema muelle-masa-amortiguador se
resuelve segn la ec. de movimiento (sin friccin):
mx + cx + kx = f (t )
Tomando la transformada de Laplace e ignorando las
condiciones iniciales
ms 2 X ( s ) + csX ( s ) + kX ( s ) = F ( s )
La funcin de transferencia (output/input X(s)/F(s)) es:
X (s) 1/ m 4
G(s) = = G (s) = 2
F (s) s 2 + c s + k s + 2s + 4
m m
Simulink 51
Uso del bloque de funcin de
transferencia en Simulink para un scso
Arrastrar los bloques Transfer
Fcn desde la librera Continuous
En notacin matricial
x = Ax + Bu y = Cx + Du
x1 y = x1
x= C = [1 0]
x2 D=0
0 1
A= k c
m m
donde:
u=F A = matriz del sistema
0 B = matriz de entrada
B=1 C = matriz de salida
m D = matriz de transmitancia directa
Simulink 54
Bloque de espacio de estado en Simulink
para un scso
Arrastrar los bloques State Space
desde la librera Continuos
ki
Simulink 56
Modelo de bloques de sistema discreto
Simulink
Si el balance de un prstamo es:
b(k ) = rb( k 1) p (k )
Considerar como condiciones iniciales:
Balance inicial: 15000
Inters: 1%
Pago mensual = 200
Calcular el balance del prstamo despues de 100
pagos
Simulink 57
Modelo de bloques de sistema discreto
Simulink
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
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 58
Modelo de bloques de sistema discreto
Simulink
Modelo Simulink:
1
200 6341
z
Constant Unit Delay Display
-K -
Gain Scope
Simulink 59
Modelo de bloques de sistema discreto
Simulink
En Parameter Configuration
de Simulation ajustar a
Solver type: Fixed-step
Solver: discrete
Start time: 0 Stop
time: 100
Simulink 60
Resultado de la simulacin de sistema
discreto Simulink
1
200 6341
z
Constant Unit Delay Display
-K -
Gain Scope
Simulink 61
Creacin de Subsistemas: Encapsulado
Seleccionar todos los bloques y
seales a ser includos en el
subsistema usando una caja
envolvente
Simulink 64
Creacin de Subsistemas: bloque
subsystem
Se construye el subsistema de un mvil segn el modelo. La ganancia del
bloque 1/masa se asigna 1/m1.
1
Der k1
Add Res.izq
1 1
-K- 1
s s
Despl
Fuerza 1/masa Velocidad Posicion
k2 resultante
2
Izq Add 1 Res.der
Simulink 65
Creacin de Subsistemas: bloque
subsystem
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;
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
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.
Simulink 66
Creacin de Subsistemas: bloque
subsystem
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:
Desplazamiento
Tiempo (seg)
Simulink 67
Ejemplo: enmascarado de bloques
Se crea un subsistema. Usamos el
desarrollado para el sistema masa-
resorte copiando en una nueva ventana
de modelo el bloque Masa-Resorte1
Seleccionar el bloque y
se escoje Edit:Mask
Subsystem en el
men de la ventana de
modelos para obtener
la ventana de dilogo
del editor Mask.
Guardar el modelo
(CartMask)
Simulink 68
Ejemplo: enmascarado de bloques
El editor Mask tiene cuatro
pestaas: Icon,
Parameters, Initialization,
Documentation.
La pgina Documentation
del editor sirve para
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 69
Ejemplo: enmascarado de bloques
La pgina Parameters
del editor Mask se usa
para definir parmetros
para el bloque del Aadir
susbsistema. Se divide Eliminar
en dos secciones: Una Mover arriba
superior en la que se
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 70
Ejemplo: enmascarado de bloques
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:
Simulink 71
Ejemplo: enmascarado de bloques
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.
Simulink 72
Ejemplo: enmascarado de bloques
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
condition del integrador Velocidad a x_dot0 y en Posicion a x0.
Simulink 73
Ejemplo: enmascarado de bloques
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
Initialization commands
1
Der -K-
Add Res.izq 1 1
-K- 1
s s
Despl
Fuerza 1/masa Velocidad Posicion
-K - resultante
2
Izq Add 1 Res.der
Simulink 74
Ejemplo: enmascarado de bloques
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.
Masa-Resorte1
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)
Simulink 75
Ejemplo: Uso de bloque enmascarado
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.
Simulink 76
Ejemplo: Vector de estado del modelo
Se tiene el siguiente modelo 1 1
s s
Simulink guardado en el fichero Sine Wave
Velocidad Desplazamiento Scope
llamado ejmod.mdl
0.2
En la ventana de comandos Matlab se Gain
ejecuta el comando: 0.4
>> [sizes,x0,states]=ejmod([],[],[],0) Gain 1
sizes =
2
0 x0 =
0 0
0 0
0 states =
0 'ejmod/Desplazamiento'
1 'ejmod/Velocidad'
Simulink 77
Ejemplo: linealizacin de un modelo
Se tiene el siguiente sistema no lineal: x
1 = x2
x 2 = x1 + x23 3x2
cuyo modelo (nolinear_mod.mdl) en Simulink es:
1 1
-1 1
s s
x1 Out
x2 Gain x1
Integrator Integrator
f(u) 2
x2 Out
Fcn
pow(u[1],3)-3*u[1]
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 indica que el sistema es estable
-2.6180
Simulink 78
Movimiento de un vehculo
b.v
m
Simulink 79
Modelo del vehculo
Ecuaciones:
F = m.dv/dt + b.v
donde:
F = fuerza proporcionada por el motor
m = masa del vehculo
dv/dt = tasa de cambio de velocidad (aceleracin)
b = factor de amortiguamiento (resistencia del viento)
v = velocidad (velocidad del vehculo)
Simulink 80
Modelo del vehculo: Simulink
Ecuaciones:
F/m v.b/m= dv/dt
Subsistemas:
La entrada del sistema es el control de combustible (pedal
de aceleracin), bajo control del conductor
El subsistema Engine Management convierte la posicin
del pedal a potencia del motor
El subsistema Vehicle Dynamics convierte la potencia
del motor a velocidad del vehculo
La salida se suministra en horsepower (hp)
Simulink 81
Modelo del vehculo: Simulink
Simulink 82
Subsistema Engine Management
Simulink 83
Tablas de interpolacin (Lookup Tables)
Simulink 84
Subsistema Vehicle Dynamics
Simulink 85
Modelo del vehculo: Ajustes
Simulink 87
CRA: Filtro adaptativo
Diagrama de bloques
Ecuacin
Es un filtro tipo FIR con N coeficientes variables w
N
y(n) = wk ( n) x(n k )
k =0
Simulink 88
CRA: La ecuacin LMS
Simulink 89
CRA: Modelo Simulink
Simulink 90
CRA: Entrada/Salidas
Salida
Error
Simulink 91
Modulacin DSB-AM
Simulink 92
Transformada de Park
Simulink 93
Sistema de Control PI
Simulink 94
Control de tensin de un generador
Simulink 95
Control de tensin de un generador
Simulink 96
Control tensin/frecuencia de un
generador
Simulink 97
Control tensin/frecuencia de un
generador
Simulink 98
Circuito paralelo RLC
Simulink 99