curso_M101

9
 Introducción a Matl ab, un enfoque a l a simulación y visualización dinámica.  Escuela de Ingeniería C ivil, Universidad del Bio-Bio, Septiembr e del 2000  136  10.3 Creación de Sub-Sistemas Cuando los diagramas de bloques en S IMULINK aumentan en complejidad o es necesario crear un bloque diferente a los existentes, es necesario a una simplificación por medio de sub-sistemas. Para crear un sub-sistema, es necesario agrupar elementos ya existentes o editar directamente sobre la venta de dicho ambiente. 10.3.1 Ejemplo lineal Para crear un sistema, abordemos la solución de la siguiente ecuación diferencial lineal con parámetros tiempo variantes: ) ( ) ( ) ( ) ( t u t  x t a dt t dx + =  donde a(t)>0 es el parámetro tiempo variante, x=x(t) es la variable de estado y u=u(t) la excitación. Lo anterior posee el siguiente diagrama SIMULINK: El resultado es: Selecciones agrupando mediante el mouse, el sub-sistema deseado. Dibuje el diagrama y grabe su diseño en un archivo.mdl Para crear el sub- sistema, seleccione el ítem señalado en el menú Edit.

Transcript of curso_M101

Page 1: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 1/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

136

 

10.3 Creación de Sub-SistemasCuando los diagramas de bloques en SIMULINK  aumentan en complejidad o es necesario crear un

bloque diferente a los existentes, es necesario a una simplificación por medio de sub-sistemas. Paracrear un sub-sistema, es necesario agrupar elementos ya existentes o editar directamente sobre la

venta de dicho ambiente.

10.3.1 Ejemplo linealPara crear un sistema, abordemos la solución de la siguiente ecuación diferencial lineal con

parámetros tiempo variantes:

)()()()(

t ut  xt adt 

t dx+−=  

donde a(t)>0 es el parámetro tiempo variante, x=x(t) es la variable de estado y u=u(t) la excitación.

Lo anterior posee el siguiente diagrama SIMULINK:

El resultado es:

2ºSelecciones agrupando

mediante el mouse, el

sub-sistema deseado.

Dibuje el diagrama y

grabe su diseño en un

archivo.mdl

Para crear el sub-sistema, seleccione el

ítem señalado en el

menú Edit.

Page 2: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 2/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

137

Para simular este diagrama realicemos las siguientes asignaciones:

En el generador de señales escoja una onda

cuadrada de frecuencia 0.1Hz. Para elparámetros tiempo variante a(t)=1+0.2·sin(t). 

La variable temporal es establecida mediante el

bloque clock.

Ahora corresponde editar directamente el sub-

sistema y asignar propiedades.

Al hacer doble click sobre subsystems, aparece

un diagrama, donde In1,In2, son las puertas

de entrada y Out1 es la puerta de salida. Usted

puede modificar sus nombres a variables de

mayor interpretación.

Así, el diagrama final queda representado por:

Con respecto a las propiedades de este bloque

destaca la prioridad de ejecución (priority) y la

función a ejecutar (open function). La primera es

con respecto a los demás bloques y la segunda

ejecuta la función invocada al hacer doble click

sobre el sub-sistema.

Page 3: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 3/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

138

10.4 S-FunctionEn algunas ocasiones, los diagramas de bloques en SIMULINK no pueden implementar funciones

requeridas por el usuario de manera simple o directa. Para lo anterior, SIMULINK  dispone de la

denominada !"unction, que incorpora un programa de archivo.m como un bloque al diagrama.

10.4.1 Descripción de S-FunctionEl bloque S-Function permite manejar eventos continuos, discretos o híbridos, todos

simultáneamente debido a su particular estructura de programación. La S-Function, se ubica en la

librería Function & Tables y se edita como sigue:

Luego el formato cabecera del archivo.m que ejecuta la S-Function es el siguiente:

function #$y$, o1,..,om%&nom're(t,),u,fla*,p1,...,pn+donde:

$y$ Variable reservada para cada estado.

o1,...om Salidas de cada estado o flag.

nom're Nombre de la función que invoca el bloque.

) Estados continuos y discretos en ese orden.

u Excitación o entrada al bloque

fla* Variable que identifica el estado de simulación.

p1,...pn Parámetros de entrada opcionales.

De tales variables, la forma de utilizar la variables fla*, hace que del archivo.m posea característicade S-Function. Los valores permitidos para esta variable son:

Valor flag Estado de Simulación

fla*&0 Condiciones iniciales y tamaño de los parámetros.

fla*&1 Cálculo de derivadas.

fla*&2 Actualización estados discretos.

fla*&3 Cálculo de salidas.

fla*& Cálculo del próximo intervalo de muestreo.

fla*&- Fin de la tarea de simulación.

Page 4: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 4/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

139

El orden de ejecución de SIMULINK  sobre una S-Function es el siguiente: 1º Inicialización, 2º 

Cálculo del próximo intervalo, 3º Cálculo de las salidas, º Actualización de estados discretos e º 

Integración.

La variable $y$  debe ser especificada cuando la simulación esta en el estado flag=0. Esta es un

vector con la siguiente descripción:

$y$(1+ Número de estados continuos.

$y$(2+ Número de estados discretos.

$y$(3+ Número de salidas.

$y$(+ Número de entradas.

$y$(+ Número de raíces discontinuas.

$y$(/+ Flag de lazos algebraicos.

10.4.2 Ejemplo no linealConsidere el oscilador de Van der Poll modificado, correspondiente a la siguiente ecuación

diferencial:

( )

( ) ubx xax x y x

 x x ybdt 

 dy ya

dt 

 yd 

+−−==

=⇒=+−+

1

2

1221

21

2

2

2

u· 1· 

ɺ

ɺ 

Para conocer la solución dinámica de tal ecuación, implementemos una S-Function, que posea como

entrada un escalón ( u&u(t+  ). Además, que sea posible ingresar desde la línea de comandos las

condiciones iniciales ci (por ejemplo )0&#0.02 0% ) y las ganancias a y b (por ejemplo a&3, '&1).

1º Dibujemos el diagrama de bloques en SIMULINK como sigue: 

Page 5: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 5/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

140

2º  De acuerdo al diagrama SIMULINK, se crea un archivo.m  con el nombre vdpmod.m, con una

entrada u&u(t+, dos salidas )1 y )2, dependiente de ci, a y '. El número de estados continuos es

2, estados discretos: 0, salidas: 2, entradas: 1, raíces y lazos: 0.

!"unction para el o$cilador de

an der ool modificado.

function #$y$,)0%&vdpmod(t,),u,fla*,ci,a,'+

$4itch fla*

ca$e 1$y$(1+&)(2+5$y$(2+&a6)(2+6(1!)(1+72+ ! '6)(1+ 8 u5

ca$e 3

$y$(1+&)(1+5$y$(2+&)(2+5

ca$e 0

$y$&#2,0,2,1,0,0%5)0&ci5

ca$e 92,,-:

$y$&# %5

other4i$e

error(#;"la* de$conocido&;, num2$tr(fla*+%+5

 

end5

3º  Ahora asignemos los valores de los

parámetros de la S-Function.

< ci&#0.025 0%5< a&15

< '&15

º  La simulación tiene los siguientes

parámetros. En el algoritmo de integración,

='$>ol&1e!/, ?el>ol&1e!/, t$pan&100. La

señal e$cal@n es de amplitud 1 en el tiempo . 

Los resultados son los siguientes:

para u(t+&0,

Page 6: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 6/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

141

10.5 MascarasLas S-Functions o los sub-sistemas, generalmente dependen de parámetros que se asignan por la

línea de comandos de MATLAB. Esto incomoda bastante a la hora de ejecutar múltiples evaluaciones.

Las máscaras proveen de una interfaz, que permite modificar directamente tales parámetros, comouna propiedad del bloque enmascarado.

10.5.1 EjemploPara conocer como funciona la herramienta de máscara de un sub-sistema o S-Function,

enmascaremos la S-function vdpmod del ejemplo anterior. Seleccione el bloque y edite sus mascara.

La mascara, se constituye de 3

elementos: la parte visual o icono,

la entrada de parámetros y la

ayuda.

Cada parámetro se

agrega o elimina aquí.

Antes de editar ejecute.

<icon&#y(A,2+, y(A,3+%5< $ave icon.mat icon

 

Aquí se especifica el

texto y la variableque almacenará cada

parámetro.Tipo de

variable que

almacena el

parámetro.

Instrucciones ejecutadas

al abrir el diagrama de

bloques.

Page 7: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 7/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

142

 

Finalmente después de agregar un poco de color, texto y cambio de parámetros el diagrama queda

dibujado por.

Se escribe el código

necesario para dibujar la

cara de la máscara. Por

ejemplo texto, líneas,polígonos, etc.

Aquí se comenta de

qué se trata este

bloque, como por

ejemplo la función que

implementa. Ademásalguna ayuda en el

ingreso de parámetros.

De esta manera, podemos

modificar cada uno de los

parámetros en forma directa y

obtener en forma simple

muchas evaluaciones sin

recurrir a la línea de

comandos.

Page 8: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 8/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

143

10.6 Ejemplo de animaciónCorresponde ahora simular una ecuación diferencial ordinaria de segundo orden, equivalente a una

estructura ideal de único grado de libertad, como la de la figura:

u x x x y x

 x x ydt 

 dy

dt 

 yd 

nn

nn

−−−==

=⇒−=++

1

2

221

21

2

2

2

u2

ω ζω 

ω ζω 

ɺ

ɺ 

El diagrama SIMULINK equivalente es:

En este diagrama de bloques, los parámetros a ingresar son >, ζζζζ, ma*. Tales  parámetros son

inicializados por un bloque, que consiste en un sub-sistema que ejecuta en su opción open function 

ma*&15 >&0.5 chi&0.02. Además, éste tiene una máscara con la opción  Drawing commands  en

di$p(;InicializacionA ma*, chi, >;+.

Para la simulación se carga el archivo $i$mo.mat, que en su primera columna posee el tiempo y en la

segunda la magnitud normalizada del sismo (recuerde que siempre la primera fila debe ser el

tiempo).

El diagrama de bloques establece apropiadamente la ecuación diferencial de segundo orden, donde

cada cope permite observar las variables de interés. Además, la simulación ejecuta la S-Function

columna enmascarada como animación, que tiene como señal de entrada la deformación ) y como

parámetro el tiempo de muestreo t$.

m

u

y

Page 9: curso_M101

7/23/2019 curso_M101

http://slidepdf.com/reader/full/cursom101 9/9

 Introducción a Matlab, un enfoque a la simulación y visualización dinámica.

 Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000 

144

A continuación se describe la S-Function que permite animar la deformación de la columna.

function #$y$,)0%&columna(t,),u,fla*,t$+5

B&25*lo'al canim

$4itch fla*

ca$e 0

animinit(;=nimacion;+5

#fla*,canim% & fi*fla*(;=nimacion;+5

a)i$(#!2 2 !0.6B 1.6B%+5

)&#0 0%5 y&#0 B%5

hp(1+&line(;Cdata;,), ;Ddata;, y, ...

;Binetyle;,;!;, ;Bineidth;, 2, ...

;Era$eFode;,;'ack*round;,;Golor;, #0 0 1%+5

hp(2+&line(;Cdata;,0,;Ddata;,B,;Farker;, .;,...;Farkerize;,0,;Era$eFode;,;'ack;,...

;Golor;, #1 0 0%+5

hp(3+&line(;Cdata;,#!0. 0.%,;Ddata;, #0 0%, ...

;Binetyle;,;!;, ;Bineidth;, 2,...

;Golor;, #0 0 0%+5

$et(*ca,;ata=$pect?atio;,#1 1 1%+5 

$et(*ca,;J$erata;,hp+5

$y$&#0 0 0 2 0 0%5

)0&# %5

ca$e 2

if any(*et(0,;Ghildren;+&&canim+,if $trcmp(*et(canim,;Kame;+,;=nimacion;+,

$et(0,;currentfi*ure;,canim+5

hp&*et(*ca,;J$erata;+5)&#0 u(1+%5

y&#0 B6co$(a$in(u(1+LB++%5$et(hp(1+,;Cata;,),;Data;,y+5

$et(hp(2+,;Cata;,)(2+,;Data;,y(2++5

dra4no45

endend

$y$&# %5 

ca$e

n$ & tLt$5$y$ & (1 8 floor(n$ 8 1e!136(18n$+++6t$5

ca$e 91,3,-:

$y$&# %5

other4i$e

error(#;"la* de$conocido&;, num2$tr(fla*+%+5

 

end5

Deformación: