Sunteți pe pagina 1din 28

Simulaciones en Tiempo Real

utilizando el paquete
RTW de Matlab
Laboratorio de Automatizacin - UNQ

ORGANIZACIN DE LA PRESENTACION

SIMULINK
S-FUNCTIONS
RTW
REAL TIME WINDOWS TARGET

Laboratorio de Automatizacin - UNQ

Pg. 1

SIMULINK

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.

Laboratorio de Automatizacin - UNQ

Pg. 2

PARMETROS DE SIMULACIN

Laboratorio de Automatizacin - UNQ

Pg. 3

PARMETROS DE SIMULACIN
Tiempo de simulacin. Simulaciones infinitas
Resolucin por paso fijo y paso variable.
Mtodos de integracin. Para qu usar diferentes mtodos.
- Paso Variable:
ode45:
ode23:
ode113:
ode15s:

Es el algoritmo ms apto en primera instancia. (paso simple)


Es ms eficiente para tolerancias amplias. (paso simple)
Es ms eficiente para tolerancias estrictas. (multi paso)
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
Laboratorio de Automatizacin - UNQ

Pg. 4

PARMETROS DE SIMULACIN
- 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.
Laboratorio de Automatizacin - UNQ

Pg. 5

PARMETROS DE SIMULACIN

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.

Laboratorio de Automatizacin - UNQ

Pg. 6

Parmetros Workspace I/O

Laboratorio de Automatizacin - UNQ

Pg. 7

S-FUNCTONS
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.

Laboratorio de Automatizacin - UNQ

Pg. 8

S-FUNCTONS

Laboratorio de Automatizacin - UNQ

Pg. 9

S-FUNCTONS
Cmo interacta simulink con cada bloque del modelo: Ganancia,
Integrador, S-Functions.

Laboratorio de Automatizacin - UNQ

Pg. 10

S-FUNCTONS
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
Laboratorio de Automatizacin - UNQ

Pg. 11

S-FUNCTONS

Laboratorio de Automatizacin - UNQ

Pg. 12

S-Functions
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.

Laboratorio de Automatizacin - UNQ

Pg. 13

Conceptos sobre S-Functions


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

Laboratorio de Automatizacin - UNQ

Pg. 14

Estructura M-File S-Functions


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:
Prximo Hit:
Salidas
Actualizacin de Estados Discretos
Derivadas
Finalizacin
Laboratorio de Automatizacin - UNQ

flag=0
flag=4
flag=3
flag=2
flag=1
flag=9
Pg. 15

Tiempos de ejecucin de las S-Functions

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 <= offset < perodo). Ejemplo ts=[1,0.1]

Laboratorio de Automatizacin - UNQ

Pg. 16

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)

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 <= offset < perodo)

Plantilla de C-MEX S-Function


- Bajo el directorio simulink/src hay 2 plantillas: sfuntmpl_basic.c y
sfuntmpl_doc.cas como varios ejemplos de C-MEX.

Tipos de datos pre-declarados por Simulink


- real_T, time_T, uint32_T, boolean_T, char_T, int_T, uint_T, byte_T

Laboratorio de Automatizacin - UNQ

Pg. 22

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

S-ar putea să vă placă și