Você está na 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

ndice
Modelado dinmico de sistemas Introduccin a Simulink Simulacin de ecuaciones diferenciales Creacin de subsistemas Herramientas de anlisis en Simulink Depuracin Extensiones de Simulink

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 Las ecuaciones matemticas descritas por un modelo de diagrama de bloques son conocidas como ecuaciones algebraicas, diferenciales y/o de diferencia
Simulink
4

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 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
Simulink
5

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 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
Simulink
6

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 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
Simulink
7

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 Ajuste de las condiciones de ejecucin de la simulacin

Simulink

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

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 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
Simulink
11

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:
Ganancia Suma Derivada Integrador

El bloque de funcin de transferencia es muy usado para el modelado se sistemas fsicos y controladores
Simulink
12

Diagramas de bloque: sistemas continuos Bloque ganancia


y = kx
x(t) k y(t)

Bloque suma
c = a b
a +b x du/dt y c

Bloque derivada
dx y= dt
t

Notacin Laplace x s y

Bloque integrador
y (t ) = y (t0 ) + x( )d
t0

Notacin Laplace x
Simulink

1/s

y
13

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 de la entrada del sistema asumiendo condiciones iniciales cero mx + cx + kx = F
Notacin Laplace:

Ejemplo:

ms 2 X ( s ) + csX ( s ) + kX ( s) = F ( s ) 1/ m X (s) G(s) = = FT F ( s) s 2 + c s + k m m


Simulink
14

Diagramas de bloque: sistemas continuos


Diagrama de bloques: k/m F 1/m + .. x 1/s . x 1/s x

c/m Bloque de funcin de transferencia: F

1/ m s 2 + (c / m) s + ( k / m)

G(s)

Simulink

15

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 acceso a variables internas Permite modelar sistemas con mltiples entradas y mltiples salidas (MIMO)

Ecuaciones generales:

x = Ax + Bu donde: x vector de variables de estado u vector de entrada y = Cx + Du vector de salida


y
Simulink
16

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:
Ganancia discreta Suma discreta Retardo unitario (unit delay) Integrador discreto en tiempo

Simulink

17

Diagramas de bloque: sistemas discretos Bloque ganancia discreta


y (k ) = ax(k )
c = a b
x(k) a y(k)

Bloque suma discreta


a +b T c

Bloque retardo unitario


y (k ) = x(k 1) y (k ) = y (k 1) +
Tk

Notacin transformada Z x(k-1) x(k) z-1 x(k-1)

x(k)

Bloque integrador
T ( k 1)

u (t )dt

Forward int. Backward int. T Tz y y x x z 1 z 1


18

Simulink

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

Representacin:
General Equivalente Simulink

z zk

1 zk

Simulink

19

Bloque de espacio de estado discreto Similar al bloque de espacio de estado continuo siendo las variables de estado discretas Ecuaciones generales:
x(k + 1) = Ax(k ) + Bu (k ) y (k ) = Cx(k ) + Du(k )
donde: x vector de variables de estado u vector de entrada y vector de salida

Simulink

20

Bloques no lineales Simulink proporciona un amplio conjunto de bloques adicionales a los lineales. Los ms comunes son.
Producto Abs Lgicos (AND, OR, NOT) Relacionales (<,>) Sign Funcin saturacin Retardo de transporte Bsqueda en tabla (interpolacin)

Simulink

21

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

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
Aerospace Blockset Communications Blockset Gauges Blockset Signal Processing Blockset Video and Image Processing Blockset
Simulink
25

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 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


Simulink
26

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)

Sistema modelado, representado por el diagrama de bloques Salidas, Sinks u outputs


Grficos, osciloscopios, ficheros Sources Diagrama de bloques del Sistema
Simulink

Sources
27

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

Espacio de trabajo

Simulink

29

Aadir bloques
Hacer click sobre una librera para desplegar los bloques

Arrastrar los bloques deseados dentro de la ventana del modelo Simulink

Simulink

30

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

Posteriormente se pueden mover el bloque para que las lneas de conexin queden rectas

Simulink

32

Modificar etiquetas y aadir anotaciones


Hacer click en la etiqueta y editarla Etiquetas Anotaciones

Hacer dobleclick en el fondo y escribir el texto


Simulink
33

Parametrizar los bloques

Hacer doble click sobre el bloque que se desea parametrizar


Simulink
34

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

Simular desde la lnea de comandos

Simulink

36

Asignar parmetros de la simulacin

Simulink

37

Parmetros de la simulacin Cuando se ejecuta una simulacin, Simulink resuelve el conjunto de ecuaciones diferenciales y diferencia numricamente usando uno de los solvers

Simulink

38

Parmetros de la simulacin 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 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

Parmetros de la simulacin Otros parmetos se refieren al tiempo de simulacin y el paso de integracin:


Start time Stop time Tipo de solver:
Variable Fijo

El nmero de puntos, en caso de usar tiempo fijo es:


N de puntos = Stop Time Start Time +1 Step size

Simulink

40

Parmetros de la simulacin Otros parmetos tiene que ver con la entrada/salida de datos al modelo y desde el modelo

Simulink

41

Parmetros de la simulacin Los parmetros y variables de los modelos se pueden acceder desde la ventana de Comandos de Matlab

Simulink

42

Parmetros de la simulacin Los parmetros y variables de los modelos se pueden acceder desde la ventana de Comandos de Matlab
Despus de ejecutar la simulacin en Simulink

Simulink

43

Variables definidas en Matlab y Simulink Tanto desde la ventana de Matlab como la de Simulink se ve el mismo Workspace o Espacio de trabajo
Matlab
T=2; K=1;

Simulink

Espacio de trabajo
T=2 K=1 t = 0:0.01:10 pi=3.14159...
Simulink
44

Ejecucin de la simulacin Se pulsa el icono Start Start o en el men Simulation

Simulink

45

Ejecucin de la simulacin 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 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

Solucin de ecuaciones diferenciales que modelan Sistemas Continuos Construir un modelo en Simulink que resuelva la siguiente ecuacin diferencial: dx = 5sin ( 4t ) dt Condicin inicial: x(0) = 2. Primero se dibuja un diagrama de bloques de la simulacin del modelo matemtico (ecuacin)
Simulink
47

Diagrama del modelo Input: funcin 5sin(4t) Output: x(t) que es la solucin de la ecuacin diferencial
x(0) = 2
dx dt

5sin(4t) (input)

1 s integrador

x( t ) (output)

A continuacin, se construye el modelo con Simulink


Simulink
48

Seleccin de bloques para el modelo 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 Modelo Input Integrador Output Librera Sources Continuous Sink Bloque Sink Integrator Scope

Simulink

49

Seleccin de bloques para el modelo

Simulink

50

Seleccin de bloques para el modelo

Simulink

51

Seleccin de bloques para el modelo

Simulink

52

Conexin de los bloques con lneas de seal


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 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

Las flechas indican la direccin de la seal.


53

Simulink

Configurar bloques con datos del modelo


El input del modelo es: 5sin(4t) Para ello se hace doble click en el bloque Sine Wave y en la ventana de dilogo de los parmetros del bloque ingresar: Amplitude = 5 Frequency = 4
Simulink
54

Configurar bloques con datos del modelo

El valor inicial es: -2 Para ello se hace doble click en el bloque Integrator y se ingresa la condicin inicial = -2

Simulink

55

Ejecutar la simulacin

En la ventana de trabajo, click en Simulation y seleccionar Start

Otra forma es hacer click en el icono Start

Simulink

56

Visualizar resultados de la simulacin

Hacer doble click en el bloque Scope Se visualiza el output x(t) en la ventana Scope Se puede mejorar la visualizacin utilizando los iconos de la ventana. Ej.: Autoscale y Tick labels all

Simulink

57

Ejemplo de Sistema Continuo de segundo orden El siguiente sistema muelle-masa-amortiguador se resuelve segn la ecuacin de movimiento (ignorando friccin):
Notacin simplificada:

d 2x dx m 2 + c + kx = f (t ) dt dt

mx + cx + kx = f (t )
Considerar que:
el sistema inicialmente est en equilibrio: x = 0, x = 0 funcin de la fuerza es un escaln con magnitud 3 valores de los parmetros: m = 0.25, c = 0.5, k = 1
Simulink
58

Diagrama de simulacin del sistema continuo de segundo orden Si se expresa la ecuacin en trminos de la derivada de mayor orden

mx + cx + kx = f (t )
f(t) input

1 k c x = f (t ) x x m m m

El diagrama de bloques asociado es:


1m
velocidad desplazamiento

1 s
c/m

1 s

x(t) output

k/m
Simulink
59

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
60

Creacin del diagrama de bloques en Simulink (scso)


Arrastrar el bloque Sum desde la librera Math Oper

Doble click en Sum para cambiar los parmetros a rectangular y + - Simulink


61

Creacin del diagrama de bloques en Simulink (scso)


Arrastrar el bloque Gain desde la librera Math Oper

La ganancia es 4 porque 1/m=4

Doble click en Gain para cambiar los parmetros del bloque Cambiar etiqueta
Simulink
62

Creacin del diagrama de bloques en Simulink (scso)


Arrastrar el bloque Step desde la librera Math Oper

Doble click en Step para cambiar los parmetros Step time a 0 y Final value a 3
Simulink
63

Creacin del diagrama de bloques en Simulink (scso)


Arrastrar los bloques Integrator desde la librera Continuous

El bloque integrator tiene por defecto valor inicial 0. No es necesario modificarlo. Se cambian los ttulos
Simulink
64

Creacin del diagrama de bloques en Simulink (scso)


Arrastrar el bloque Scope desde la librera Sink

Simulink

65

Creacin del diagrama de bloques en Simulink (scso)


Crear dos nuevos bloques Gain desde la librera Math Oper

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
Simulink
66

Creacin del diagrama de bloques en Simulink (scso)


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.

Ejecutar

Simulink

67

Resultados del modelo en Simulink (scso)

Respuesta subamortiguada Overshoot de 0.5 Valor final de 3

Simulink

68

Comprobacin de resultados Forma Standard Frecuencia natural Tasa de amortiguamiento Ganancia esttica
x k m c 1 + x + x = f (t ) k k
k = 2.0 m

n =
2

c = = 0.5 n k

1 K = =1 k

Simulink

69

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
70

Uso del bloque de funcin de transferencia en Simulink para un scso


Arrastrar los bloques Transfer Fcn desde la librera Continuous

Ajustar el Numerator y Denominator coefficient a [4] y [1 2 4] del bloque Transfer Fcn


Simulink
71

Bloque de espacio de estado 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

x1 = x x2 = x
Las derivada de las variables de estado son x1 = x2 k c 1 x2 = x1 x2 F m m m
Simulink
72

Bloque de espacio de estado En notacin matricial


x = Ax + Bu x1 x= x2 1 0 c A= k m m u=F 0 B=1 m

y = Cx + Du y = x1 C = [1 0] D=0
donde: A = matriz del sistema B = matriz de entrada C = matriz de salida D = matriz de transmitancia directa
Simulink
73

Bloque de espacio de estado en Simulink para un scso


Arrastrar los bloques State Space desde la librera Continuos

Ajustar los valores de las matrices A=[0 1;-4 -2], B=[0; 4], C=[1 0] y D=[0] del bloque State Space
Simulink
74

Ejemplo sistema discreto Simulink Se modela la amortizacin de un prestmo de dinero:

b(k ) = rb( k 1) p (k )
donde: b(k) pago mensual r = i+1 siendo i el inters mensual, y p(k) pago de final de mes.

Modelo de bloques
p(k)
+

b(k) z-1 ki
Simulink
75

b(k-1)

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

76

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
77

Modelo de bloques de sistema discreto Simulink Modelo Simulink:


200 Constant 1 z Unit Delay 6341 Display

-K Gain Scope

En Parameter Configuration de Simulation ajustar a Solver type: Fixed-step Solver: discrete Start time: 0 Stop time: 100

Simulink

78

Resultado de la simulacin de sistema discreto Simulink


200 Constant 1 z Unit Delay 6341 Display

-K Gain Scope

Simulink

79

Subsistemas y enmascarado 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 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

Creacin de Subsistemas 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

Simulink

81

Creacin de Subsistemas: Encapsulado


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 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

Creacin de Subsistemas: Encapsulado


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 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

Creacin de Subsistemas : Encapsulado 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. Despus hacer doble-click sobre el bloque.

Simulink

84

Creacin de Subsistemas: bloque subsystem Se desea modelar un sistema de masa-resorte:

El modelo de cada mvil es:


Ecuacin para un mvil: 1 [kn ( xn1 xn ) kn +1 ( xn xn+1 )] xn = mn
Simulink
85

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 Add k1 Res.izq -K2 Izq k2 Add 1 Res.der Fuerza resultante 1/masa 1 s Velocidad 1 s Posicion 1 Despl

Se hacen dos copias del bloque subsystem y se conectan los bloques como se muestra

Simulink

86

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
87

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
88

Enmascarado de bloques 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 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

Ejemplo: enmascarado de bloques


Se crea un subsistema. Usamos el desarrollado para el sistema masaresorte 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

90

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

91

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
92

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

93

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

94

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

95

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 Add -KRes.izq Fuerza resultante -K1/masa 1 s Velocidad 1 s Posicion 1 Despl

2 Izq

-K Add 1 Res.der

Simulink

96

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.
m 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

97

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

98

Creacin de Librera de Bloque


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 deseados a la nueva librera y se guarda.

Simulink

99

Creacin de Librera de Bloque


Pasos para crear una LibreriaPersonal con bloques Gain y MasaResorte

Simulink

100

Herramientas de anlisis en Simulink 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 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

Vector de estado del modelo 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
sizes = model([],[],[],0) [sizes,x0] = model([],[],[],0) [sizes,x0,states] = model([],[],[],0)

donde model es el nombre del modelo Simulink


Simulink
102

Ejemplo: Vector de estado del modelo


Se tiene el siguiente modelo Simulink guardado en el fichero llamado ejmod.mdl
1 s Sine Wave Velocidad 1 s Desplazamiento Scope

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'

0.2

Simulink

103

Ejecucin de modelos desde Matlab 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 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

Ejemplo: ejecucin de modelos desde Matlab 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:
sim('ejmod')

Simulink ejecutar el modelo y si Scope est abierto mostrar la grfica del resultado cuando la simulacin se completa
Simulink
105

Ajuste y obtencin de parmetros de simulacin desde Matlab 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')

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

Herramientas de linealizacin 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 Las ecuaciones lineales del espacio de estado son:

x = Ax + Bu y = Cx + Du
donde x es el vector de estado y u es el vector de entrada
Simulink
107

Comandos de linealizacin 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 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

Ejemplo: linealizacin de un modelo


Se tiene el siguiente sistema no lineal: x1

cuyo modelo (nolinear_mod.mdl) en Simulink es:


1 s x2 Integrator f(u) Fcn -1 Gain

= x2 3 x2 = x1 + x2 3 x2
1 s x1 Integrator 1 x1 Out

2 x2 Out

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
109

Comando para hallar el equilibrio 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
[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

Callbacks 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 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

Funciones S 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 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

Depuracin 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 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

Encontrando errores de construccin del modelo 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 (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

Encontrando problemas de implementacin 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 Ejecucin lenta
Oscilacin por cruce de cero Lazos algebraicos Stiffnes Complejidad del modelo

Resultados incorrectos
Simulink
116

Depurador (debugger) de Simulink 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 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

Help Animation delay Enabled/Disabled Animation Display current I/O of selected block Display I/O of selected block when executed Break before selected block Stop debugging Pause Start/Continue Go to the next block method Go to first method at start of next time step Step out of current method Step over current method Step into current method
Simulink
119

Depurador (debugger) de Simulink

Simulink

120

Stateflow 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 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 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 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