Upload
claudio-probando
View
14
Download
0
Embed Size (px)
DESCRIPTION
Resumen de las primeras clases de la materia Laboratorio de Automatización 2 de la Universidad Nacional de Quilmes. En este PDF se dan las bases de la programación de S Functions de Matlab tanto en formato .m como en formato .mex
Citation preview
Simulaciones en Tiempo Real
utilizando el paquete
RTW de Matlab
Laboratorio de Automatizacin - UNQ
ORGANIZACIN DE LA PRESENTACION
Laboratorio de Automatizacin - UNQ Pg. 1
SIMULINK S-FUNCTIONS RTW REAL TIME WINDOWS TARGET
SIMULINK
Laboratorio de Automatizacin - UNQ Pg. 2
Qu es y para qu sirve. Arranque. Directorio de trabajo. Libreras Modelos dinmicos continuos y discretos. Bloques discretos / continuos.
Seales entre bloques. Escalares, Vectoriales Configuracin de una simulacin.
PARMETROS DE SIMULACIN
Laboratorio de Automatizacin - UNQ Pg. 3
PARMETROS DE SIMULACIN
Laboratorio de Automatizacin - UNQ Pg. 4
Tiempo de simulacin. Simulaciones infinitas Resolucin por paso fijo y paso variable.
Mtodos de integracin. Para qu usar diferentes mtodos.
- Paso Variable:
ode45: Es el algoritmo ms apto en primera instancia. (paso simple) ode23: Es ms eficiente para tolerancias amplias. (paso simple) ode113: Es ms eficiente para tolerancias estrictas. (multi paso) ode15s: Es el algoritmo ms apto en primera instancia, para sistemas
mal condicionados. (multi paso) ode23s: Ms eficiente para sistemas mal condicionados, con
tolerancias amplias. (paso simple) discrete: No es necesario resolver integracin numrica
PARMETROS DE SIMULACIN
Laboratorio de Automatizacin - UNQ Pg. 5
- Paso Fijo:
ode5: Versin de paso fijo del ode45. ode4: Runge Kutta de orden 4. ode3: Versin de paso fijo del ode23. ode2: Mtodo de Jun, o Euler mejorado. ode1: Mtodo de Euler. discrete: Mtodo cuando no es necesario utilizar un integrador
numrico.
PARMETROS DE SIMULACIN
Laboratorio de Automatizacin - UNQ Pg. 6
Control de errores en paso variable: Mximo paso, Mnimo paso, Paso
inicial. Tolerancia relativa y absoluta. eimax(rtol |xi|,Atoli) Opciones de paso fijo: Tamao de paso y Modo.
Opciones de Salida: Refinar salida, Generar salidas adicionales, Generar
salidas especficas.
Parmetros Workspace I/O
Laboratorio de Automatizacin - UNQ Pg. 7
S-FUNCTONS
Laboratorio de Automatizacin - UNQ Pg. 8
Para qu sirven?. Tipos de S-Functions: M-File (en lenguaje Matlab). C-MEX (en lenguaje
C). Bloque de Simulink para las S-Functions. Librera User-Defined
Functions.
S-FUNCTONS
Laboratorio de Automatizacin - UNQ Pg. 9
S-FUNCTONS
Laboratorio de Automatizacin - UNQ Pg. 10
Cmo interacta simulink con cada bloque del modelo: Ganancia,
Integrador, S-Functions.
S-FUNCTONS
Laboratorio de Automatizacin - UNQ Pg. 11
1) Ordena los bloques segn ejec.
2) Inic. Parmetros de c/bloque.
- Inicializacin 3) Inic. de tiempos de muestreo
4) Verif. largo vectores/errores
ETAPAS
DE UNA 1) Actualiza prox. Paso simulacin
SIMULACIN 2) Actualiza Salidas
- Lazo de simul. 3) Actualiza estados disc./cont.
4) Verifica cambio de parmetros
5) Controla errores y cruces x cero
- Finalizacin
S-FUNCTONS
Laboratorio de Automatizacin - UNQ Pg. 12
S-Functions
Laboratorio de Automatizacin - UNQ Pg. 13
Se pueden escribir en lenguaje Matlab, C, C++, Fortran o ADA
Simulink (en modo normal) las ejecuta a travs de libreras de enlace
dinmico o DLLs En lenguaje Matlab -> M-file S-Function. En C -> C-MEX S-Function.
Para crear una C-MEX puedo usar LCC, Visual C, Borland C, Watcom.
Se utiliza el comando mex nombre.c desde MATLAB y genera
nombre.dll Interaccin de simulink y las S-Functions. Mtodo de Callback.
Conceptos sobre S-Functions
Laboratorio de Automatizacin - UNQ Pg. 14
Bloque Direct Feedthrough (Paso directo de seal). Debido a las salida o
debido al tiempo. Bloques: Ancho de entradas/salidas. Cantidad de entradas / salidas.
Entradas con ancho dinmico. Tiempos de muestreo y offset.
- Bloques de Tiempo Continuo - Bloques de Tiempo Discreto - Bloques de Tiempo Variable - Bloques de Tiempo Heredado - Bloques de Tiempo Mltiple o Multirate
Estructura M-File S-Functions
Laboratorio de Automatizacin - UNQ Pg. 15
Function [sys,X0,str,ts]=NombreFuncin(t,x,u,flag)
t : tiempo simulacin sys : parmetro genrico
x : vector de estados [xc;xd]T X0 : estados iniciales
u : vector de entradas str : parmetro reservado
flag : etapa de la simulacin ts : matriz de muestreo y offset
Inicializacin: flag=0 Prximo Hit: flag=4 Salidas flag=3 Actualizacin de Estados Discretos flag=2 Derivadas flag=1 Finalizacin flag=9
Tiempos de ejecucin de las S-Functions
Laboratorio de Automatizacin - UNQ Pg. 16
Los tiempos de muestreo pueden ser:
- CONTINUO (perodo = 0,offset = 0). Ejemplo ts=[0,0] - HEREDADO (perodo = -1,offset = 0). Ejemplo ts=[-1,0] - VARIABLE (perodo=-2,offset=0). Ejemplo ts=[-2,0] - DISCRETO (perdo>0, 0
Ejemplo M-file
Laboratorio de Automatizacin - UNQ Pg. 17
Estructura C-Mex S-Functions. Funciones CallBack
Laboratorio de Automatizacin - UNQ Pg. 18 -
Ejemplo C-MEX S-Functions (dobla entrada)
Laboratorio de Automatizacin - UNQ Pg. 19
Ejemplo C-MEX S-Functions (dobla entrada)
Laboratorio de Automatizacin - UNQ Pg. 20
Ejemplo C-MEX S-Functions (dobla entrada)
Laboratorio de Automatizacin - UNQ Pg. 21
Ejemplo C-MEX S-Functions (dobla entrada)
Laboratorio de Automatizacin - UNQ Pg. 22
Macros definidas para diferentes tiempos de muestreo - CONTINUOS_SAMPLE_TIME (perodo=0,offset=0) - INHERITED_SAMPLE_TIME (perodo=-1,offset=0) - VARIABLE_SAMPLE_TIME (perodo=-2,offset=0) - Si perdo>0 -> tiempo discreto ( 0
Tareas de Inicializacin
Laboratorio de Automatizacin - UNQ Pg. 23
------
Lazo de simulacin
Laboratorio de Automatizacin - UNQ Pg. 24
Punteros a las entradas (doble indireccionamiento)
Simulacin de Sistemas de Control 66.55 - UBA Pg. 25
Pasando parmetros a una C-MEX S-Functions desde Simulink
Simulacin de Sistemas de Control 66.55 - UBA Pg. 26
Pasando parmetros a una C-MEX S-Functions desde Simulink
Simulacin de Sistemas de Control 66.55 - UBA Pg. 27