curso_M10

Anuncio
Introducción a Matlab, un enfoque a la simulación y visualización dinámica.
130
10 Simulink
SIMULINK es un programa para modelar, simular, y analizar sistemas dinámicos. Esta herramienta
soporta sistemas lineales, no lineales, continuos, discretos y combinaciones particulares de éstos.
SIMULINK provee de una interfaz gráfica (GUI, por lo cual está en constante interacción
entrada/salida), que permite definir el flujo de información entre diferentes bloques o sistemas.
Luego la interconexión de tales bloques (diagrama de bloques), define la dinámica del problema.
Existe una gran variedad de dichos bloques, todos disponibles en una librería gráfica. Además es
posible, crear funciones especiales según la necesidad del usuario.
10.1 Introducción
10.1.1 Ejemplo Lineal
Para comenzar con el uso de la herramienta SIMULINK, analicemos el comportamiento del siguiente
sistema dinámico frente una entrada escalón:
dy(t )
 y (t )  u (t )
dt
Para lo anterior, realice los siguientes pasos:
 1 
Y(s)  
 U(s).
 s  1

4º
1º
Pulse aquí, y cree un nuevo
diagrama SIMULINK, con el nombre
que desee. Por ejemplo: eje_01.mdl
Luego de ingresar los
parámetros, simule el
diagrama pulsando
aquí.
3º
2º
Mueva los bloques
que necesite, desde
la librería a el
diagrama.
Conecte, por medio del
mouse, entradas y
salidas, según el flujo
deseado.
Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000
Introducción a Matlab, un enfoque a la simulación y visualización dinámica.
131
Para el ejemplo, Step se obtiene del grupo Sources, Transfer Fcn del grupo Continuos, la conexión
en negro o Mux del grupo Signal & Systems y el gráfico Scope del grupo Sinks.
 Observaciones:
1º. En cada simulación, no
olvide ajustar los parámetros que
involucran el método de
simulación, es decir, el algoritmo
de integración. Entre ellos el
tiempo de simulación, el paso de
integración, etc.
Lo anterior se realiza en la
opción de menú Simulation.
2º. Durante la simulación, obtenga sus resultados mediante cualquiera de los elementos de librería
agrupados en Sinks, dependiendo si requiere despliegue o almacenar datos.
De la simulación se obtiene:
Para
este
ejemplo,
modifique el tiempo de la
señal escalón, de acuerdo
con lo siguiente.
Vemos como las dos señales se dibujan
el un mismo eje gracia a Mux, lo que
permite conocer la acción del filtro de
primer orden descrito.
Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000
Introducción a Matlab, un enfoque a la simulación y visualización dinámica.
132
10.1.2 Ejemplo No lineal
Ahora abordemos la simulación de un problema no lineal, como lo es el oscilador de Van der Poll:


d2y
dy
 y2 1
y0
2
dt
dt
x1  y



2
x 2  x 2 1  x1  x1
El correspondiente diagrama de bloque en SIMULINK es:
Tspan=[0 20], RelTol=1e-5,
AbsTol=1e-7.
x1  x 2
Fcn
esta en el grupo Function &
Tables. product, Gain y Sun en
el grupo Math. Integrator en el
grupo Continuos.
Ambos integradores,
condición inicial 0.02
De la simulación obtenemos un ciclo límite. Modifique el valor de Gain y de las condiciones
iniciales, para ver otros efectos.
Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000
Introducción a Matlab, un enfoque a la simulación y visualización dinámica.
133
10.2 Simulink desde archivos .m
Cualquier diagrama de bloques creado en SIMULINK puede ser ejecutado desde un archivo .m, para
luego ser analizado en lo que respecta a los datos entrada / salida. Para lo anterior, debemos conocer
la sentencia primitiva de simulación.
10.2.1 Comando de simulación
Los comandos de simulación pueden referirse al algoritmo de integración (sim) o a la interrupción
de ejecución de dicha simulación (set_param).
SIMULACIÓN
La sintaxis es la siguiente:
[t,x, y1, ..., yn]= sim(model, tspan, options, u1,...um),
donde:
t
x
Retorna el vector de tiempo de simulación
Es la matriz de estados continuos y discretos establecidos en la simulación.
Son cada una de las denominadas salidas de bajo nivel o puertas de salida
y1,..., yn
establecidas en el diagrama de bloques.
model
Es el nombre del archivo .mdl a ejecutar, donde se dibujo el diagrama SIMULINK.
Vector de tiempos ( [tinicial : tpo : tfinal] ) donde se requiere la integración de la
tspan
dinámica o solución.
Parámetros opcionales de simulación relacionadas directamente con el algoritmo de
options
integración. Tales opciones son ingresadas mediante el comando simset.
Son cada una de las entradas de bajo nivel o puertas de entrada, establecidas en el
u1,...,um
diagrama de bloques.
En lo que respecta al comando simset, este posee la siguiente sintaxis:
options=simset(p1, v1, ...... , pn , vn)
donde pj y vj son una determinada propiedad y su valor respectivamente. Dentro de las propiedades
podemos destacar:
Solver
RelTol
AbsTol
Refine
MaxStep
MinStep
FixedStep
SrcWorkspace
DtsWorkspace
Outputvariables
Algoritmo de integración. De paso variable: ode45, ode23, ode113,
ode15s, ode23s. De paso fijo: ode5, ode4, ode3, ode2, ode1.
Tolerancia del error relativo
Tolerancia al error absoluto.
Factor para suavizar la solución. Válido sólo en algoritmos de paso variable.
Máximo intervalo de solución. Válido sólo en algoritmos de paso variable.
Mínimo intervalo de solución. Válido sólo en algoritmos de paso variable.
Paso fijo de integración.
Dónde se evalúa el diagrama de bloques: base, parent, current.
Dirección para asignar las variables del diagrama: base, parent, current.
Define las variables de salida: txy, tx, ty, xy, t, x, y.
Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000
Introducción a Matlab, un enfoque a la simulación y visualización dinámica.
134
INTERRUPCIÓN
Se define como interrupción, iniciar, dar pausa, continuar, o finalizar una simulación. Para ejecutar
lo anterior la sintaxis es la siguiente:
set_param(‘sys’, ‘SimulationCommand’, ‘cmd’),
donde:
sys
cmd
Nombre del sistema o archivo .mdl
Comando a ejecutar: start, pause, continue, stop.
10.2.2 Ejemplo: Simulación EDO 1º orden
Simular la siguiente ecuación diferencial ordinaria:
dy(t )
 y(t )  u (t )
dt
 1 
Y(s)  
 U(s),
 s  1

desde un archivo .m
El primer paso el dibujar el diagrama de bloques equivalente a tal dinámica:
Nombre del
diagrama para
invocar desde
el archivo .m
Dos puertas de
salida, enumeradas
correlativamente.
Una puerta de
entrada, donde la
segunda columna
es la excitación u1.
y1,....yn
Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000
Introducción a Matlab, un enfoque a la simulación y visualización dinámica.
135
%Simulink desde la línea de comandos
clear all;
close all;
%Tiempos
pf=2.5;
tspan=(0:pf:20)';
%Señal de entrada escalon
lt=length(tspan);
lp=round(lt*0.4);
esc=[zeros(1,lp), ones(1,lt-lp)]';
u1=[tspan,esc];
%Parámetros de Simulación
options= simset('solver','ode5',...
'FixedStep', pf, ...
'RelTol', 1e-4, ...
'AbsTol', 1e-7, ...
'SrcWorkspace','Current');
%Simulación
[t,x,y1,y2] = sim('eje_02',tspan,options,u1);
%gráficas
plot(t,y1,'bo-',t,y2,'r-');
axis([0 20 -0.5 1.5]); grid on;
Para simular la ecuación diferencial de
primer orden frente a una entrada escalón, se
escribe el código anterior con los siguientes
aspectos.
Primero se define el tiempo de simulación
tspan y en este caso un paso fijo de
integración pf. Luego se crea una señal de
entrada u1, compuesta del tiempo señalado y
de la señal escalón esc. Debe quedar claro
que siempre la primera entrada contiene el
tiempo y otra señal. Para simular se definen
las opciones por medio de simset y
simplemente se ejecuta por medio de sim.
Los resultados pueden ser mas cómodamente
vistos por plot.
Escuela de Ingeniería Civil, Universidad del Bio-Bio, Septiembre del 2000
Descargar