curso_M101
-
Upload
roberto-alfaro-alejo -
Category
Documents
-
view
218 -
download
0
Transcript of 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.
1º
Dibuje el diagrama y
grabe su diseño en un
archivo.mdl
3º
Para crear el sub-sistema, seleccione el
ítem señalado en el
menú Edit.
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.
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.
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
1
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�.02 0% ) y las ganancias a y b (por ejemplo a&3, '&1).
1º Dibujemos el diagrama de bloques en SIMULINK como sigue:
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$,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�.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,
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.
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.
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
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
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%5 y� 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 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)� u(1+%5
y� 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: