Real-Time Workshop (RTW)



Documentos relacionados
Simulación de sistemas con Simulink

Adquisición de Datos usando Matlab

Real Time Workshop (RTW)

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Xerox 700 Digital Color Press con Integrated Fiery Color Server. Impresión de datos variables

Act 1: Revisión de Presaberes. Lectura No. 1. Título de la Lectura: El Computador

Se trata de una herramienta de desarrollo visual muy fácil de usar, con la que incluso los no programadores podrán desarrollar sus aplicaciones.

JAVAFilters: Cálculo y Diseño de Filtros Analógicos y Digitales Primavera 2004

Lista de pasos e instrucciones adicionales

Tema 1 Fundamentos de Computación

Instrumentación con Microcontroladores. Ing. Rodrigo Alejandro Gutiérrez Arenas 22/03/12 al 29/03/12

Práctica Virtual Box.

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS.

Herramientas de. Sistemas Informáticos I.E.S. Virgen de la Paloma

SISTEMA CABILDO MANUAL DE INSTALACIÓN CLIENTE ERP CABILDO LA SOLUCIÓN TECNOLÓGICA MÁS COMPLETA E INTEGRAL PARA GOBIERNOS LOCALES

Programación de Sistemas

REDES HOGAREÑAS CON WINDOWS XP 2 CONFIGURACIÓN DE UNA RED HOGAREÑA CON CONEXIÓN COMPARTIDA A INTERNET

Manual de Introducción a SIMULINK

PROCEDIMIENTO DE ENLACE TCPIP

Introducción a la Computación

GESTIÓN ACADÉMICA GUÍA DIDÁCTICA HACIA LA EXCELENCIA COMPROMISO DE TODOS! Nombres y Apellidos del Estudiante:

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

El Computador. Software

MICROSOFT EXCEL 2007 (COMPLETO)

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

Introducción a Aplicaciones Industriales con LabVIEW FPGA y CompactRIO. Ing. Javier Olea Ing. De Campo Noreste de México National Instruments

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Bases de Datos 3º Informática de Sistemas

OSORES DARDO LU: 2238

Uso del simulador Modelsim

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

Características de Samba

Ejecutar el instalador y seleccionar los paquetes necesarios. En nuestro caso son los siguientes: Android SDK Tools (ya vendrá instalado) Android SDK

Microsoft Access 2007 (Completo)

Sistema de Mensajería Empresarial para generación Masiva de DTE

IDEAS Y APLICACIONES DE LOS SISTEMAS DE CONTROL MULTIFRECUENCIA

Requerimientos principales de un sistema operativo

Controlador de chorro de tinta Editor GT

Concepto de sistema operativo

Partes, módulos y aplicaciones de un Controlador de Procesos

Los bloques DLL (Figura A.1) externos permiten al usuario escribir su propio código y

Manual de Procedimientos

Capítulo 1 Introducción a la Computación

JHAN EVER ANDRADE CASTRO

Capítulo 5 Programación del algoritmo en LabVIEW


Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Software de sistema: Programas genéricos que permiten gestionar los recursos del ordenador.

Sistema Operativo (OS). Andrea Serna. 10 Inf 2.

Instructivo de Microsoft Windows

SIAM WEB FOTOGRAFOS CARACTERÍSTICAS GENERALES. El Sistema de Recuperación y Archivo de documentos.

iseries Operations Navigator Administración de aplicaciones

Aplicación para control y gestión de presencia ACCESS CONTROL (Versión. BASIC)

Getting Started. 1. Introducción. 2. Requerimientos de software

Atlas Copco. E2 C Simulator

Informática 1 Grado en Matemáticas

CAPÍTULO II VISUAL BASIC 6. Visual Basic es uno de tantos lenguajes de programación; orientado a objetos, que

SISTEMAS OPERATIVOS AVANZADOS

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

CallStream. CallStream.

Capítulo 1. Introducción

Introducción a LabVIEW FPGA y CompactRIO

ANEXOS. Algoritmo que genera un valor hash de algún dato, como una clave de. mensaje o de sesión. Con un buen algoritmo de hash, los cambios que se

Descripción del Sistema: Arbutus Windows Server

1. VIRTUALIZACION DEL PROCESO REAL.

Curso Online de Programación Java

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Cualificación de Tarjetas Ethernet para Monitoreo de Cisco Agent Desktop

SEMINARIO PRÁCTICO. Control PID con NI Compact RIO.

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Unidad 9. Implementación. M.C. Martín Olguín

INTRODUCCIÓN. Definiciones ORDENADOR (RAE 1992): En esta asignatura computador y ordenador tiene el mismo significado

REDES DE COMPUTADORES FACULTAD DE INGENIERIA ELECTRONICA UNIVERSIDAD PONTIFICIA BOLIVARIANA. Profesor: Jhon Jairo Padilla Aguilar, Ph.D.

TALLER DE TECNOLOGÍAS PARA LA EDUCACIÓN: PerúEduca Aspectos Técnicos de la Laptop Educativa de Secundaria

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

Programación estructurada (Interfaces Windows y Unix)

Introducción a Visual Studio.Net

Comunicación entre un PLC S y WinCC Advanced

SISTEMAS INFORMÁTICOS EN TIEMPO REAL 2º Ingeniería Industrial MANUAL DE HERRAMIENTAS SOFTWARE PARA PROGRAMACIÓN EN UNIX

TRIMBLE BUSINESS CENTER

Wiip Surveillance. Sistema de gestión de rondas de vigilancia. Wiip Systems C.B. S.L

Instalación de Crystal Reports

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Diseño de DSP en FPGA con System Generator y MATLab. Jesús Barba Romero (30/05/2012)

GUÍA DE INSTALACIÓN DEL PROVEEDOR DE DISPOSITIVOS

Proyectos Finales. Redes de Computadoras Proyecto 1. Sistema de almacenamiento virtual sobre una plataforma P2P utilizando JXTA.

Indice Todos los derechos reservados Advisionario, S.A. de C.V.

LABORATORIO DE AUTOMÁTICA INDUSTRIAL

CONCEPTOS BASICOS DE REDES

Aspel-PROD 3.0 Aspel-PROD 3.0 SAE 6.0 SAE 6.0

INFORMACION PLATAFORMA BIOMÉTRICA HOMINI

Versatils. Apéndice. ODBC Orígenes de datos. ODBC Orígenes de datos.

Gabinetes Dell Storage MD1400 y MD1420 Guía de implementación

Guía de usuario del Administrador CPA BT icomms

Se muestra la pantalla inicial de plataforma Cloud Computing cuando se accede por primera vez, visualizando el componente Horizon de OpenStack.

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

Transcripción:

1 (RTW) Objetivo específico Generar un programa de control en tiempo real a partir de un diagrama de simulación utilizando el (RTW) Toolbox del Matlab, acortando de esta manera el proceso de desarrollo de software (prototipado rápido) 2 (RTW) Temas 1. Introducción 2. (RTW) 3. (RTWT) 4. MATLAB Compiler 1

3 Introducción El RTW y el RTWT son herramientas de MATLAB que facilitan el control en tiempo real desde el SIMULINK, acortando considerablemente el ciclo de desarrollo del software de control (prototipado rápido) y permitiendo hacer énfasis en el diseño El RTWT está basado en el El RTW permite generar código o un programa ejecutable (.exe,.dll) desde un diagrama de SIMULINK a diferentes plataformas: DOS, TORNADO, xpc, RTWT, otras En la mayoría de los casos, el diagrama de simulación de SIMULINK funciona como la interfaz de usuario (GUI) La diferencia consiste en que se debe trabajar en SIMULINK en modo externo 4 Introducción Proceso de desarrollo de prototipos 2

5 Introducción En el proceso de desarrollo de prototipos, una vez la simulación muestra los resultados esperados, se quita el modelo de la planta, dejando el regulador y demás bloques, y se adicionan bloques con los controladores de entrada y salida A partir del nuevo diagrama se genera el programa ejecutable, para el cual el diagrama de SIMULINK es la interfaz de usuario Bibliografía. Manuales de MATLAB en PDF: Real-Time Windows Target,, Writing S- functions, Target Language Compiler, MATLAB Compiler Esta idea se ilustra en los siguientes diagramas de SIMULINK 6 Introducción 1 Referencia PID Digital 1 s+1 Planta Scope 1 PID Digital Analog Output Analog Input Referencia Analog Output Analog Input Scope Recomendación: En los diagramas de simulación considere como planta todos los subsistemas (sensores, planta, actuadores, amplificadores, etc) desde la salida del convertidor D/A hasta la entrada del convertidor A/D 3

7 Generalidades El RTW permite generar código (portable, optimizado y personalizado) o un programa ejecutable (.exe o.dll) desde un diagrama de SIMULINK a diferentes plataformas y lenguajes: DOS, Tornado, xpc, Windows, Ada, C, otros Otros usos: aceleración de las simulaciones, protección de la propiedad intelectual (S-Function Target, Rapid Simulation Target), simulación en tiempo real y simulación HIV (hardware-in-the-loop) El SIMULINK funciona como la interfaz de usuario para monitoreo y ajuste de parámetros Requerimientos: MATLAB, SIMULINK y un compilador soportado (Visual C++, Borland C, LCC, Watcom) 8 Generalidades Acceso del RTW al Visual C++ 6.0: En AUTOEXEC.BAT (Para Windows anteriores a XP): SET MSDEVDIR="C:\Program Files\Microsoft Visual Studio\Common\MSDev98 Soporta sistemas de tiempo continuo, sistemas de tiempo discreto, sistemas híbridos, sistemas MF Convierte automáticamente los modelos de SIMULINK a código en C o Ada Para la generación de código Ada se requiere de la herramienta Ada Coder Para la generación de código a partir de diagramas de flujo (Stateflows) se requiere del Stateflow Coder 4

9 Generalidades En general, el RTW genera código para una plataforma diferente (target, sistema objetivo) a la que corre el MATLAB (host, sistema anfitrión). Existen excepciones como el RTWT y el GRT (self-targeting) Existen procedimientos para la generación de código, creación del ejecutable y transferencia de éste al target (ejemplo: xpc, Tornado) Al trabajar en modo externo es posible: monitorear las variables y ajustar los parámetros, mientras el programa se ejecuta en el target (se tiene una comunicación tipo clienteservidor vía TCP/IP, RS232 o Memoria Compartida) Tipos de target: Prototipado rápido Interfaz con SIMULINK Empotrado (productivo) Interfaz independiente 10 Relación del RTW con otros elementos 5

11 Ejemplo de target - xpc 12 Ejemplo de target - xpc xpc Target Block Library Version 2.0 Copyright 1996-2002 The MathWorks, Inc. A/D D/A Digital Input Digital Output Counter Watchdog Incremental Encoder LVDT Synchro Resolver RS232 GPIB CAN Thermo couple Signal Shared Conditioning Memory IP Carrier Misc. Asynchronous Event 6

13 Relación con el Simulink Plataformas que trabajan en modo externo: RTWT, (Windows como host y target), Tornado (VxWorks), xpc, Real-Time Linux Target (Linux como host y target) El SIMULINK junto con el RTW es un lenguaje de muy alto nivel (VHLL): los bloques de SIMULINK son los elementos básicos del lenguaje (gráfico) El generador de código se incluye en el RTW y es un compilador gráfico de última generación basado en diagramas de bloques Se genera un código en C o Ada de manera rápida y correcta, altamente legible y personalizado La Custom Code Library permite insertar código personalizado dentro del código fuente generado Estructura de programación Sólo soporta las S-functions escritas en C o Ada (C-code) El RTW utiliza el lenguaje TLC (Target Language Compiler) para obtener el código a partir del diagrama de simulación. TLC utiliza dos tipos de archivos (extensión.tlc), los cuales pueden personalizarse: System target file. Describe como se genera el código para un determinado target Block target file. Define el código para un modelo determinado El RTW utiliza plantillas.tmf para la construcción de ejecutables, dependiendo del target Una rutina make_rtw genera un archivo model.rtw y de ahí el model.mk a partir de la plantilla.tmf Del.MK se genera el ejecutable 14 7

15 Arquitectura RTW 16 Creación de nuevos targets Es posible personalizar la configuración del target y crear nuevos targets (Capítulo 17 del manual del RTW). Aplicaciones: Incorporar dispositivos personalizados Crear nuevos targets Configurar el proceso de construcción (build) para un nuevo compilador Formatos del código generado: Real-Time (rápido prototipado) Real-Time malloc (rápido prototipado) S-function (dlls, archivos MEX) Embedded C (para el RTW Embedded Coder Target) Ada (para el RTW Ada Coder Target) 8

17 Pasos para la construcción de un programa 1. Crear un directorio de trabajo con el modelo y seleccionarlo como directorio de trabajo. Se genera un subdirectorio con los archivos fuentes y otros archivos generados 2. Seleccionar un "fixed-step solver" Pasos para la construcción de un programa 3. Seleccionar el Target en RTW en Simulation parameters 18 9

19 Pasos para la construcción de un programa 4. Ajustar las opciones particulares y generales del RTW y del target Pasos para la construcción de un programa 5. Pasar al Modo Externo 6. Seleccionar las opciones deseadas del External Mode Control Panel (en el menú Tools) 20 10

21 Pasos para la construcción de un programa 7. Construir el ejecutable (build) a partir del modelo. Se debe reconstruir si se cambia la estructura del modelo 8. Transferir el ejecutable al target 9. Conectarse al Target (Connect to target en el menú Simulation). Permite la conexión con el programa target desde el host 10. Correr el Simulink en modo externo (Start). Si se seleccionan las opciones de Workspace I/O se guardarán las variables en el workspace del MATLAB NOTA: Existen diversos métodos para la optimización del código. Ver los Capítulos 8 y 9 del manual del RTW Creación de C-code S-functions para RTW El "MATLAB Compiler" genera código C o dlls, pero sin la posibilidad de pasar parámetros El RTW genera código C o DLLs a partir de un subsistema en un diagrama de SIMULINK (con S- function Target), pero con restricciones, pues no permite: MATLAB Fcn Block, M-file S-functions, Scope, To Workspace. Nota: dar valores en el Workspace a los parámetros ajustables Lo más indicado es escribir las funciones en C directamente, utilizando la plantilla sfuntmpl_basic.c o sfuntmpl_doc.c. Una vez creado el archivo *.c se genera un archivo *.dll (librería de enlace dinámico) con: mex archivo.c 22 11

23 Creación de C-code S-functions para RTW #define S_FUNCTION_NAME sfuntmpl_basic #define S_FUNCTION_LEVEL 2 #include "simstruc.h" static void mdlinitializesizes(simstruct *S) { } static void mdlinitializesampletimes(simstruct *S) { } static void mdlinitializeconditions(simstruct *S) { } static void mdloutputs(simstruct *S, int_t tid) { } static void mdlupdate(simstruct *S, int_t tid) { } static void mdlderivatives(simstruct *S) { } static void mdlterminate(simstruct *S) { } Opcional Opcional Opcional Opcional #ifdef MATLAB_MEX_FILE #include "simulink.c" #else #include "cg_sfun.h" #endif 24 Creación de C-code S-functions para RTW Aspectos a tener en cuenta: Con ssgetsfcnparam(s,n) se define el número de parámetros. N es un entero Cuando se pasa una matriz como parámetro ésta se almacena como un vector por columnas. Es decir: M = [a b; c d] se almacena como M = [a c b d] El índice del primer elemento de un vector es cero, como M[0] Supongamos que una función tiene dos parámetros: M = [1 2;3 4] y n = [5 2]. El siguiente código accede a ellos: 12

25 Creación de C-code S-functions para RTW int_t i,imax; real_t *n = mxgetpr(ssgetsfcnparam(s,1)); real_t *Ts = mxgetpr(ssgetsfcnparam(s,0)); imax = n[1]; for (i=0; i<imax; i++){ sssetsampletime(s, i, Ts[i]); sssetoffsettime(s, i, Ts[i+imax]);} 26 Creación de C-code S-functions para RTW Aspectos a tener en cuenta: El índice de un vector debe ser del tipo entero Parámetros admisibles: escalares, vectores o matrices Los parámetros, el vector de entradas, el vector de salidas y el vector de estados se pasan como punteros Por la razón anterior en la función mdloutputs se pueden actualizar al mismo tiempo el estado y las salidas Cuando una S-function tiene varios períodos de muestreo, es necesario realizar algunos cambios para que trabaje en un ambiente multitarea mdlupdate es opcional El siguiente código actualiza el estado y la salida al mismo tiempo 13

27 #define S_FUNCTION_NAME ejemplo #define S_FUNCTION_LEVEL 2 #include "simstruc.h" #define U(element) (*uptrs[element]) /* Puntero a la entrada */ #define TS(S) ssgetsfcnparam(s,0) #define N(S) ssgetsfcnparam(s,1)... static void mdloutputs(simstruct *S, int_t tid) { real_t *y = ssgetoutputportrealsignal(s,0); real_t *v = ssgetrealdiscstates(s); InputRealPtrsType uptrs = ssgetinputportrealsignalptrs(s,0); int_t i, posk, k; real_t *n = mxgetpr(n(s)); posk=n[0]; k = v[posk]; if (k == posk){ v[0] = U(0); for (i=1;i<posk;i++) v[i]=0.0; v[posk]=1.0; } else{ v[k]=u(0); v[posk]=k+1; } for (i=0;i<posk;i++) y[i]=v[i]; } 28 Bloques de SIMULINK DOS Library VxWorks Library Windows Target Create Your Own Asynchronous Interrupt Library S-Function Target 5.0.1 Copyright (c) 2002 by The MathWorks, Inc. 14

29 Generalidades RTWT es un sistema auto-dirigido (self-targeting), donde el host y el target están en el mismo computador Sistemas operativos soportados: Win 95, 98, NT, Win ME y Win XP Productos requeridos: MATLAB, SIMULINK, RTW y un compilador de C (Microsoft Visual o Watcom) Productos compatibles: Stateflow, Stateflow Coder, Dials & Gauges, DSP Blockset Instalación de Visual C++: >>mex -setup RAM: 32 MB o más 30 Aplicaciones y limitaciones Aplicaciones: Control en tiempo real Simulación en tiempo real con hardware en el lazo (hardware-in-the-loop o HIL) Educación Limitaciones: No soporta los siguientes bloques de SIMULINK: To File y bloques de graficación (con excepción de Scope) Uso de algoritmos de integración de paso fijo No están soportadas las M-code S-functions No están soportadas algunas tarjetas de adquisición de datos 15

31 Núcleo de tiempo real o "kernel" El RTWT utiliza un pequeño núcleo (kernel) de tiempo real para asegurar que las aplicaciones realmente se ejecuten en tiempo real (arranca cada vez que se inicia Windows) El núcleo tiene mayor prioridad que Windows, lo que permite darle a las aplicaciones de tiempo real la mayor prioridad posible En Win95 y Win98 el kernel es un VxD (controlador de dispositivo virtual) Instalación del kernel: >>rtwintgt install Multitarea: se asigna una tarea a los bloques con igual período de muestreo 32 Programación Un bloque con diferentes períodos de muestreo se ejecuta a un período base (no en multitarea), por lo que es necesario verificar cada período de muestreo Algoritmo de planificación: Rate-monotonic El RTWT requiere del RTW. El RTWT es un "target" del RTW que se encuentra en el mismo computador del "host" El RTWT tiene todas las restricciones del RTW, tales como la necesidad de C-code S-functions La comunicación entre el RTWT y la aplicación se realiza por medio de la interfaz de modo externo (external mode) del SIMULINK 16

33 Elementos básicos del RTWT 34 Librería RTWT 2.2 Analog Input Analog Input Analog Output Analog Output Digital Input Digital Input Digital Output Digital Output Counter Input Counter Input Encoder Input Encoder Input Other Input Other Input Other Output Other Output 17

35 Librería RTWT 36 Ejemplo 1 18

37 Ejemplo 2 38 Ejemplo 3 19

39 Proceso de desarrollo con el RTWT 1. Diseñar el sistema de control utilizando las diferentes herramientas del MATLAB y del SIMULINK 2. Ejecutar la simulación en tiempo de máquina (tiempo no real) y verificar que el diseño es correcto y los resultados son los esperados 3. Crear una aplicación en tiempo real con el RTW (generación de código y compilación) 4. Ejecutar la aplicación en tiempo real (el PC es el host y target) 5. Visualizar las señales y analizar los resultados Pasos para la ejecución de un programa 1. Seleccionar el método de simulación "fixed-step" 2. Quitar la planta y adicionar los bloques de entrada y salida 3. En el menú de simulación Parámetros de simulación RTW seleccionar (browse) como target el RTWT 4. Seleccionar los parámetros de la simulación (período de muestreo, Workspace I/O, Advanced, RTW) y del External Mode Control Panel 5. Construir el ejecutable (build) Se debe realizar este paso siempre que se cambie la estructura del modelo 6. Seleccionar el modo externo 7. Conectar al target 8. Ejecutar el programa (Start) 40 20

41 Pasos para la ejecución de un programa 42 Información del estado: >>rtwho 21

43 MATLAB Compiler Tipos de código Código fuente en C ó C++ para aplicaciones independientes. Se requieren las siguientes librerías: MATLAB C/C++ Math, MATLAB C/C++ Graphics Código fuente en C para la construcción de archivos MEX. Los archivos MEX (de extensión DLL en Windows) son subrutinas (generadas con la función MEX de MATLAB a partir de C o Fortran) que funcionan de manera idéntica a como lo hacen los archivos M C-code S-functions, a partir sólo de un bloque Fcn. No permite el paso de parámetros. No es compatible con RTW Creación de librerías de enlace dinámico DLLs 44 MATLAB Compiler Proceso de generación de archivos MEX (*.dll) 22

45 MATLAB Compiler Otras características Las limitaciones del compilador no permiten compilar los siguientes archivos: Scripts Archivos que utilicen objetos Archivos que utilicen eval o input Funciones internas del MATLAB Comando de MATLAB: mcc -<option> <file.m> Archivos generados: file.c, file.dll, file.h, file_mex.c, file.map otros.h De los archivos anteriores el único archivo necesario es el file.dll (archivo MEX en Windows) 23