s-functions unq

28
  Simulaciones en Tiempo Real utilizando el paquete RTW de Matlab  Laboratorio de Automatización - UNQ

Upload: claudio-probando

Post on 06-Oct-2015

10 views

Category:

Documents


0 download

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

TRANSCRIPT

  • 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