DESCARGA DE CODIGO FUENTE

“CODIGO FUENTE CONTROLADOR RTLinux”, control_HRT.c.zip

“CODIGO FUENTE PROTOCOLO CANOpen”, funciones_canopen.c.zip

“CODIGO FUENTE MODELO PXI”, Modelo_PXI_1m.vi.zip

“CODIGO FUENTE MODELO xPC”, modelo_pendulo.m.zip




***********************************************************************************************************

PLATAFORMA DE SIMULACIÓN Y CONTROL DISTRIBUIDO BAJO TIEMPO REAL

S. García-Nieto, A. Llosá, F. Llaneras.

[sergarro, anllogui, frallaes] @isa.upv.es

Dpto. Ingeniería de sistemas y Automática

Universidad Politécnica de Valencia

Camino de Vera 14, Apdo. 22012 E-46071 Valencia

http://personales.upv.es/sergarro/RTLinuxGPL

Resumen

El presente artículo aborda el desarrollo de una plataforma de control distribuido en tiempo real. La descripción de la plataforma se realiza desde una perspectiva educacional, con el objetivo de mostrar la versatilidad de la plataforma en un ámbito académico. El aspecto más destacable, es la inclusión de un bus de campo determinista en el diseño del sistema. El cumplimiento de las restricciones temporales de las tareas de control, pasa por la utilización de un sistema operativo específico de tiempo real.

Palabras Clave: Control distribuido, tiempo real, Bus de campo, RTLinux, CAN, CANOpen.

1 INTRODUCCIÓN

El presente artículo describe una plataforma de control distribuido, centrándose en las posibilidades que ofrece a la hora de realizar ejercicios y prácticas de laboratorio.

La plataforma esta formada por un bus de campo de carácter industrial y por los nodos que se conectan al mismo. En una configuración inicial, dichos nodos son: módulos industriales de entrada/salida y un PC de escritorio.

Los módulos de entrada y salida se conectaran a los diferentes sensores y actuadores del sistema, y los algoritmos de control se programaran en los PC’s. Esta configuración proporciona una gran flexibilidad al sistema, tanto a la hora de seleccionar diferentes procesos o prototipos, como a la de implementar controles bajo diversas metodologías.

Cabe señalar que la plataforma es altamente adaptable y que puede ser ampliada y modificada libremente, debido a la posibilidad de acceso al código fuente, ya que tanto el protocolo de comunicaciones del bus, como el sistema operativo de los nodos PC son “abiertos” lo que facilita los cambios.

Desde una perspectiva didáctica y educacional, la plataforma permite tomar contacto con diferentes áreas del control industrial de procesos:

Por ultimo, a modo de resumen se enumeran algunas de las características fundamentales de la plataforma:

En definitiva, la plataforma ofrece un amplio conjunto de posibilidades a la hora de diseñar y desarrollar prácticas y ejercicios de laboratorio.

2 DESCRIPCIÓN

En el primer apartado se aborda la descripción desde una perspectiva de alto nivel de la plataforma en su conjunto. En apartados sucesivos se trataran con más detalle algunos de los aspectos importantes de al misma.

2.1 DESCRIPCIÓN GENERAL DE LA PLATAFORMA

La configuración básica de la plataforma esta formada por el bus, los módulos industriales de entrada/salida (tanto digitales como analógicos) y los PC de escritorio que implementan el control.

Por lo tanto, el núcleo central de la plataforma lo constituye el bus de campo CAN. Con el fin de establecer una comunicación, el resto de componentes se conectan al mismo.

A la hora de afrontar un problema de control industrial distribuido, los módulos de entrada/salida servirán de interfaz con el proceso a controlar. Es decir, los módulos de entrada se conectaran a los diferentes sensores del sistema y los módulos de salida a los actuadores.

El siguiente esquema viene a ilustrar la estructura de la plataforma, bajo la configuración descrita hasta ahora:

Figura 1: Esquema General de la Plataforma

Dicha estructura recoge la esencia del control distribuido, donde los sensores, los actuadores y los dispositivos de control se encuentran alejados y se comunican a través del bus. Además es muy flexible ya que permite afrontar el control de muy diferentes procesos y emplear casi cualquier algoritmo de control. También es importante su escalabilidad. Si se desea incorporar nuevos sensores, actuadores o dispositivos de control, basta con conectarlos a bus, y realizar su configuración.

A continuación se enumeran los elementos hardware y software que conforman la plataforma:

Dado el carácter abierto de la plataforma, es posible emplear dispositivos de muchos fabricantes diferentes, siempre con la precaución de que estos cumplan con los estándares. Pese a ello, a continuación se incluye una relación de los dispositivos que actualmente emplea la plataforma:

2.2 BUS DE CAMPO

Los buses de campo son un elemento cada vez más frecuente en proyectos de automatización y control distribuido. La industria considera que los buses de campo son un perfecto sustitutivo al cableado punto a punto convencional, ya que reducen costes, espacio y tiempo, redundando en un ahorro significativo.

Frente a los primeros sistemas propietarios, se están consolidando los buses de campo basados en estándares abiertos. La principal ventaja de dichas soluciones es que amplían el abanico de suministradores de equipos compatibles, facilitando también el mantenimiento de las instalaciones y su crecimiento. Actualmente la mayoría de fabricantes incorporan en sus equipos interfaces con uno o más estándares abiertos.

2.2.1 Bus De Campo Can

CAN (Controller Area Network) es un bus de campo, desarrollado originalmente para aplicaciones en la industria de automoción. El protocolo CAN fue estandarizado en 1993 como ISO 11898-1.

CAN define la capa de datos y parte del nivel físico del modelo OSI de siete capas. En cuanto al nivel físico CAN incorpora un estándar ISO: “physical signaling”, que incluye bit encoding y decoding (NRZ), bit timing y sincronización. Además, existen diferentes protocolos basados en CAN que comprenden las capas OSI superiores, como CANOpen.

Desde la perspectiva del usuario, CAN proporciona dos servicios de comunicación: el envió de mensajes y la petición de mensajes. Además incluye otros servicios de bajo nivel y transparentes al usuario como procesado de errores y retransmisión automática.

Algunas de las principales funciones que proporciona CAN son las siguientes:

Las principales aplicaciones de CAN incluyen: coches de pasajeros, camiones y autobuses, electrónica marítima, aérea y aeroespacial, automatización de factorías, control de maquinaria industrial, ascensores y montacargas, equipamiento medico, equipamiento no industrial, etcétera.

Si se desea más información sobre CAN, puede consultarse la Web de CiA (CAN in Automation), la organización internacional de usuarios y fabricantes que desarrolla y da soporte a los protocolos de alto nivel basados en CAN [3].

2.2.2 Protocolo CanOpen

CANopen es un protocolo basado en CAN que implementa la capa de aplicación. Actualmente esta ampliamente extendido, y ha sido adoptado como un estándar internacional. Las especificaciones de CANOpen cubren la capa de aplicación y los perfiles de comunicación (CiA DS 301) así como una estructura para dispositivos programables (CiA 302), recomendaciones para cableado y conectores (CiA 303-1) y sobre el empleo de unidades del sistema internacional y representación mediante prefijos (CiA 303-2).

Aunque a continuación se describen algunas de las características fundamentales del protocolo, es evidente que una descripción exhaustiva del mismo requiriere mayor extensión. Además de la documentación de la CiA [3], pueden consultarse algunas referencias adicionales [5] y [9].

Los principales elementos que el protocolo define son los siguientes:

La capa de aplicación y el perfil de comunicación de CANOpen (EN 50325-4; CiA 301) dan soporte el acceso directo a los parámetros de cada dispositivo y la transmisión de la información propia del proceso (por ejemplo señales de sensores, acciones de control, referencias, mensajes de error, etcétera). Son por tanto la base fundamental del protocolo.

El diccionario de objetos (OD, Object Dictionary) describe completamente la funcionalidad de cada dispositivo y permite su configuración mediante mensajes a través del propio bus. En el se describen tanto los parámetros de funcionamiento del dispositivo, como los mensajes con información del proceso que recibe y transmite. Dicha información se almacena de forma estandarizada y estructurada, en un archivo de configuración genérico, formado por una lista de entradas (cada entrada se define con un índice de 16 bits y un subíndice de 8).

Además, los servicios de gestión de red (NMT, network management services) de CANOpen facilitan el diseño de la red, su configuración, puesta en marcha e integración, así como el diagnostico de fallos.

Por ultimo, CANOpen define una serie de perfiles de dispositivos (device profiles) que estandarizan la información contenida para diferentes tipos de dispositivos: módulos de entrada/salida, dispositivos de control, PLC’s, encoders, inclinómetros, control de puertas, etcétera. De esta manera el usuario final puede utilizar indistintamente dispositivos de diferentes fabricantes, siempre que estos cumplan dichos estándares.

2.2.2.1 Tipo de Mensajes

El protocolo define una serie de tipos de mensajes diferentes en función de su utilidad. Fundamentalmente hay que distinguir los mensajes que operan con información del proceso propiamente dicho (es decir, la información que deseamos transmitir a través del bus) de los mensajes que manejan información sobre la propia red, su configuración y su funcionamiento.

La consulta de la información del diccionario de objetos y su configuración se realiza mediante mensajes SDO (service data objects). Estos mensajes permiten conocer la configuración de cada nodo y modificarla.

Por otro lado, la transmisión de datos del proceso (no parámetros de configuración) se realiza a través de mensajes especiales (process data objects, PDO). Son estos mensajes los que contienen la información que cada nodo o dispositivo ofrece a los demás, a través del bus de campo. Los mensajes PDO de un nodo o dispositivo pueden dividirse en dos categorías. Los tPDO son aquello mensajes con información del proceso que el nodo transmite al bus de campo (por ejemplo la lectura de un sensor). Por otro lado, los rPDO son los mensajes con información del proceso que el nodo escucha o recibe del bus de campo (por ejemplo un nodo que controle la apertura de una bomba escuchara el bus en busca de ordenes o acciones a realizar). Cada PDO tiene un identificador único, y se genera en un nodo particular. Pero puede ser recibido por múltiples nodos.

Además, existen algunos mensajes especiales para gestión de la red (NMT), sincronización, informe de errores, etcétera.

2.2.2.2 Tipo de comunicación

CANopen define varios mecanismos de comunicación para la información del proceso (mensajes PDO):

2.2.2.3 Tasa de transmisión

La tasa de transmisión puede configurarse a diferentes valores, desde 10kbaud hasta 1Mbaud.

2.2.2.4 Topología de la red

CAN se basa en una topología lineal. El numero de nodos en cada red esta limitado a 128. Además, el tamaño de la red también viene limitado por el flujo de información y el tiempo de transmisión necesario.

2.2.2.5 Ventajas de CANOpen

A continuación se enumeran algunas de las características más interesantes de CANOpen como protocolo de comunicaciones.

En resumen, puede decirse que CANOpen proporciona una estructura genérica pero altamente flexible (abierta) a la hora de implementar una comunicación entre dispositivos a través de un bus de campo.

2.2.3 CanOpen Y Tiempo Real

En el apartado anterior se describió el protocolo CANOpen desde una perspectiva general. En este apartado se analiza la idoneidad del empleo de dicho protocolo para el control de proceso en tiempo real.

A la hora de abordar el control de proceso en tiempo real es necesario tomar una serie de precauciones adicionales que garanticen que las señales involucradas se procesaran en un tiempo determinado. Por lo tanto, si se emplea un medio de comunicación (como el bus de campo) es imprescindible garantizar que este tiene un comportamiento determinista, es decir, que podemos acotar el tiempo máximo que llevara la transmisión de cada mensaje. Es bien sabido que redes de propósito general (como Ethernet) no garantizan determinismo en absoluto, de ahí el empleo de redes orientadas al control industrial. Pero no hay que caer en el error de suponer que, empleando una red de dichas características estamos solventando inmediatamente el problema del determinismo.

En el caso de CANOpen, para posibilitar un comportamiento determinista, es necesario realizar una configuración particular.

Como se comento en un apartado anterior, CANOpen permite emplear tres mecanismos de comunicación diferentes: comunicación ante eventos, comunicación cíclica y sincronía y comunicación por petición.

Para proporcionar el determinismo la comunicación debe ser cíclica y síncrona. La idea consiste en emplear un mensaje de sincronización (mensaje SYNC), generado por un determinado nodo (por ejemplo el nodo de control). Ante la llegada de dicho mensaje cada nodo aceptara o procesara la información recibida previamente (mensajes rPDO) y enviara la información correspondiente (mensajes tPDO). Este comportamiento permite planificar tareas con especificaciones de tiempo real que hagan uso del bus.

Cabe señalar que es posible configurar los nodos para atender todos los mensajes de sincronización o solo uno de cada x, lo que permite que los dispositivos empleen diferentes periodos. También es posible que coexistan diferentes mensajes de sincronización en un mismo bus.

2.6 SISTEMA DE TIEMPO REAL

Existen en el mercado todo tipo de sistemas operativos de tiempo real. En este caso se ha decidido utilizar RT-Linux-GPL, desarrollado en el proyecto europeo Ocera [10] a partir de RT-Linux de Fsmlabs, y Linux. Para la implementación de los módulos se ha utilizado como referencia un tutorial de dominio público [11].

2.6.1 Elección Del S.O. de Tiempo Real

La razón para esta elección es que RTLinux-GPL y Linux poseen una licencia de tipo GPL. Esto implica, entre otras cosas, la posibilidad de obtención del código fuente para su modificación o ampliación. En el caso de investigación, este punto es muy importante, debido a la necesidad del investigador a saber, en caso de necesidad, como funcionan las herramientas en las que está basando sus investigaciones, o modificarlas para poder ampliar el uso de éstas y adaptarlas a los objetivos propios de la investigación.

En el caso de que se realice algún tipo de cambio en el código, éste pasa al conocimiento del licenciatario principal, de manera que, en caso de que sea útil para el proyecto general, es incluido en éste, y el resto de usuarios pueden ser beneficiarios. En caso de la comunidad investigadora, esto es necesario, ya que de esta manera los esfuerzos de muchas personas se pueden ir sumando para un beneficio común.

Otro factor de la elección ha sido el económico, ya que el coste el software utilizado para desarrollar e implementar la plataforma ha sido nulo, habiéndose utilizado herramientas de código abierto.

Todo el trabajo realizado ha sido licenciado como GPL para su libre modificación y distribución, siguiendo la filosofía [6] de las herramientas y utilidades en las cuales se ha basado.

2.6.2 Definiciones de Tiempo Real

En ocasiones existe confusión a la hora de definir un sistema de tiempo real. Por lo tanto, a continuación se van a introducir las definiciones sobre las cuales se va a trabajar.

Con respecto a un sistema de tiempo real, es un sistema informático en el que es significativo el tiempo en el que se producen sus acciones. No es suficiente que las acciones del sistema sean correctas lógicamente, sino que, además, deben producirse dentro de un intervalo de tiempo determinado, que en este caso es el periodo de muestreo establecido.

En función de los requisitos de tiempo real que se imponen a un sistema, estos pueden clasificarse como:

En el caso de la plataforma descrita en este articulo, se ha implementado un sistema tiempo real “duro”, ya que es la opción con más dificultades en su implementación, y la mejor opción a la hora de implantar cualquier tipo de control.

Para las pruebas, en un primer momento se desarrolló un sistema de control en tiempo real “blando” con Ada, pero solamente se consiguió un periodo mínimo de muestreo de 20 ms, y no se aseguraba el tiempo real.

El ejecutable corría bajo Linux, siendo uno más del sistema operativo, y las tareas de control eran controladas por el planificador interno de Ada.

El código también se encuentra en la página referenciada.

2.6.3 Estructura del Modulo de Control

El esquema general en la ejecución del sistema es el siguiente:

Figura 2: Esquema de Ejecución

RTLinux toma como proceso de máxima prioridad el “Módulo de control” y mantiene a Linux como otro proceso de menor prioridad. Esto significa, que mientras tenga algo que ejecutar el módulo de control, Linux pasará a la espera. Por lo tanto, en caso de que el tiempo necesario de ejecución del control fuese superior al tiempo asignado previamente, Linux no se ejecutaría, por lo que el sistema daría la impresión de estar colgado, ya que el módulo de control se apoderaría completamente de la CPU.

Cuando el modulo de control no se está ejecutando, entra en funcionamiento Linux, y se ejecutan el resto de procesos del sistema.

A continuación se describen con más detalle las tareas.

2.6.3.1 Tarea de control

Esta tarea se encarga de realizar el control del sistema y tiene la típica estructura de una tarea de control (leer sensores, calcular acción de control, escribir acción de control). Tiene la máxima prioridad.

Los pasos que se siguen dentro de esta tarea son los siguientes:

  1. Aplicar acción de control.

En los ordenadores actuales, no es posible calcular el tiempo que se tarda en calcular líneas de código, debido a la incertidumbre causada por las nuevas estructuras de microprocesadores, ya que varía de un ciclo de ejecución a otro. Esto lleva a que no se es posible asegurar que el tiempo que tarda la tarea en calcular la acción de control en un periodo sea el mismo que en el periodo anterior.

Por ello, en primer lugar se aplica la acción de control calculada en el instante anterior, de manera que se elimina este tipo de incertidumbre, teniendo así un retardo fijo en la aplicación de la acción de control.

  1. Lectura de los sensores.

El siguiente paso después de aplicar la acción de control es leer los sensores para poder realizar el cálculo de ésta.

Para ello utilizamos los drivers desarrollados que funcionan de la siguiente manera:

Se manda una señal para que todos los nodos Can que funcionan como sensores adquieran al mismo tiempo señales del proceso, y a continuación manden la información al nodo principal las señales leídas. Esto último se realiza de forma secuencial.

  1. Cálculo de la acción de control.

En este paso se calcula la acción de control, con el algoritmo de control implementado, que se va a aplicar en el siguiente periodo.

Un ejemplo del algoritmo de control lo tenemos en el punto 3.3 de este artículo, donde se explica como calcular el algoritmo de control para controlar el proceso ejemplo.

Para más detalle, mirar el código del programa. Los pasos están comentados.

2.6.3.2 Tarea de visualización

Debido a que la visualización de los datos no es prioritaria, ésta se hace con un periodo de muestreo menor a la acción de control y con una prioridad más baja. En estos momentos la visualización se realiza en modo texto en la pantalla del PC. Se está trabajando para poder enviar vía ethernet los datos obtenido para su visualización en otros PC's.

2.6.3.3 Resumen

Las dos tareas se ejecutan en “hard real time”. El código está implementado como un módulo del sistema debido a las restricciones de RTLinux, y utiliza los drivers Can que están compilados para ejecutarse en tiempo real.

Los drivers de Can han sido modificados para utilizar un configurador de nodos de CanOpen. Dicho configurador ha sido desarrollado con el propósito de ser empleado en la plataforma. Aunque cabe señalar que las modificaciones del driver pueden ser empleadas de forma genérica en nuevos proyectos, donde se desee emplear el protocolo CanOpen.

2.7 PROCESOS REALES VS PLATAFORMAS DE SIMULACIÓN

El objetivo final que persigue la realización de esta práctica, es enfrentar al alumno al diseño e implementación de controladores de tiempo real en sistemas distribuidos.

El entorno ideal para el alumno sería aquel en que pudiese interaccionar con un proceso físico real, cosa que resulta muy difícil en la mayoría de ocasiones. Por ello, es habitual la utilización de plataformas de simulación, las cuales emulan el comportamiento de los procesos reales. En este caso, el alumno no se enfrenta a algunos de los problemas presentes en la implementación física de un controlador. Fundamentalmente, no se consideran los siguientes aspectos:

Sin embargo, la utilización de procesos reales en los que si se tendría en consideración los aspectos señalados anteriormente; en ocasiones resultan inviables debido a las restricciones espaciales y económicas de los laboratorios de control. Por ello, cuando se quiere realizar el estudio de sistema complejos, resulta imprescindible la utilización de simuladores.

El presente artículo aborda la utilización de dos plataformas de simulación:

2.7.1 xPC MathWorks

xPC target es un toolbox de la compañía The MathWorks para la construcción de prototipos, testado y desarrollo de sistemas de tiempo real. En particular, es adecuado para la simulación o el control en tiempo real de procesos, ya que permite al PC comunicarse con el exterior usando tarjetas de adquisición de datos.

Inicialmente, la aplicación se desarrolla en un PC de escritorio (host), con MATLAB, Simulink, Real-Time Workshop y un compilador de C instalados. En este PC se crean los modelos usando bloques de Simulink y se genera el código correspondiente. Posteriormente, este código se ejecuta en tiempo real en un segundo PC (target). Tanto el host como el target no requieren ningún hardware específico, basta con un PC de escritorio.

El PC target arranca usando un disquete (creado por el toolbox xPC target) que contiene el kernel de tiempo real. Una vez cargado el sistema operativo, desde el PC host se descarga el código generado a partir del diagrama de Simulink, ya sea vía red o a través del puerto serie.

Aparte de esta modalidad normal de funcionamiento, xPC target posee otra, denominada embebida (precisa la instalación de xPC Target Embedded Option, producto de The MathWorks que requiere licencia adicional). En este caso, el PC target arranca en modo MS-DOS y carga el kernel de tiempo real. Hay dos modos de funcionamiento:

Existen algunas limitaciones en cuanto a como diseñar el diagrama de Simulink a utilizar. En particular, no es posible:

  1. Tener bucles algebraicos.

  2. Utilizar métodos de integración de paso variable.

  3. Utilizar el bloque de M-function (en su lugar se pueden usar S-functions escritas en C).

´

El xPC target ofrece una interacción del usuario con la aplicación sencilla e intuitiva. Para ello, se dispone de las siguientes posibilidades:

2.7.2 RT-PXI Compact PCI Controller de National Instruments.

El RT-PXI es una estructura modular que permite la utilización sincronizada de varias topologías de tarjeta de uso común en los procesos de medición y control en la industria. Para su funcionamiento hace falta un módulo de control que supervise todas las operaciones de sin­cronización entre los periféricos. Es decir, existe una tarjeta controladora que es la que se encarga de gestionar las tarjetas de E/S del sistema; ya sean tarjetas de adquisición de datos o de cualquier otro tipo. En realidad la tarjeta controladora tiene su equivalencia en la placa base de un PC de escritorio.

Figura 3: Aspecto del dispositivo RT-PXI

Los productos PXI de National Instruments se basan en el estándar PXI-Compact PCI (fundado por un consorcio de empresas al cual pertenece Na­tional Instruments), fue creado ante la necesidad de incrementar la funcionalidad y fiabilidad de sistemas industriales compactos de altas prestaciones. Uno de los objetivos principales que caracterizan al estándar es garantizar la compatibilidad con los PC industriales (basados en bus PCI) ya existentes, así como permitir a los usuarios utilizar las herramientas ya desarrolladas y de uso corriente.

La gran versatilidad del PXI reside en la posibilidad de programar todo el sistema mediante la utilización de LabView. Este hecho permite desarrollar arquitecturas de control o simulación en tiempo real de una forma rápida y sistemática.

El usuario desarrolla la aplicación de control o simulación en la herramienta de programación gráfica LabView, la cual debe incluir el REAL-TIME MODULE que hace posible la comunicación entre la herramienta de programación y el PXI.

Una vez concluida la programación se descarga el código en el PXI, esta descarga se realiza mediante una conexión red; ya que el PXI posee tarjeta de conexión a redes Ethernet.

El RT-PXI utiliza el sistema operativo de tiempo real Pharlap, el cual se encarga de ejecutar el código descargado vía ethernet.

Las dos soluciones empleadas en el presente artículo (xPC y RT-PXI), serán empleadas en el ejemplo propuesto en el siguiente apartado.

3 EJEMPLO: LA PLATAFORMA EN FUNCIONAMIENTO

El presente apartado aborda la realización de un ejemplo práctico utilizando las herramientas que se han descrito en los apartados anteriores. El objetivo de dicho ejemplo es ilustrar de forma simple el funcionamiento de la plataforma.

En concreto se pretende controlar el sistema físico denominado péndulo invertido. El cual viene descrito por la siguiente figura.

Figura 4: Esquema del Péndulo Invertido

El sistema presenta el modelo en espacio de estados linealizado que muestra la ecuación (1), tomando como punto de equilibrio el péndulo en posición vertical. El origen de coordenadas también se encuentra situado en el punto de equilibrio.

Cabe destacar que el modelo presenta como acción de control la fuerza, en general, esta fuerza se genera mediante un motor que proporciona tracción a las ruedas del carro. Por ello obtenemos las ecuaciones lineales del motor y las incluimos en el modelo.

Tabla 1: Variables y Parámetros del Modelo

Variable

Descripción

Magnitud

Valor

F

Fuerza sobre carro

N

m

masa péndulo

Kg

0,21

M

masa carro

Kg

0,45

l

centro gravedad péndulo

m

0,61

x

posición carro

m

velocidad carro

a

ángulo péndulo

rad

velocidad angular

V

voltaje motor

V

I

intensidad motor

A

resistencia armadura

Ohm

2,6

Constante motor

4,47

Utilizando las ecuaciones (2) obtenemos el modelo en espacio de estados que se muestra a continuación:

Una vez descrito el modelo del sistema real se debe construir los modelos de simulación para la plataforma xPC o para el RT-PXI. A continuación se describen ambas alternativas.

3.1 MODELADO EN xPC

  1. Modelar en Simulink la dinámica del péndulo invertido. Es importante recordar las excepciones comentadas en el apartado 2.7.1. Se debe elegir un periodo de simulación lo suficientemente pequeño comparado con el de muestreo del controlador para que se asemeje a un proceso continuo.

  1. Añadir al diagrama Simulink los bloques correspondientes al hardware de adquisición de señales de entrada/salida. Dichos bloques están disponibles al instalar el toolbox xPC target en la librería de Simulink correspondiente. En concreto, para la tarjeta de adquisición PC-Lab 812PG, un ejemplo de diagrama Simulink se muestra en la figura siguiente:

Figura 5: Diagrama Simulink

  1. Si el PC simulador del proceso tiene un monitor y se desea que los alumnos visualicen gráficas en el se pueden añadir bloques scope. Para ello, existen diferentes posibilidades. Una de ellas, es la de añadir los bloques de la librería xPC target Scope(xPC) .

Figura 6: Diagrama Simulink con Scope

  1. Transferir la aplicación al PC target. Para ello, tenemos tres opciones:

Es importante resaltar que la ejecución de xPC target, tanto en su modalidad normal como en stand-alone, no tiene ningún efecto en el software instalado previamente en el disco duro del PC target, ya que el sistema no accede a este. Una vez se reinicia el PC target, se puede continuar utilizando como un PC estándar ejecutando Windows, Linux o cualquier otro sistema operativo o software. Esto es muy conveniente en el caso de que en el laboratorio en el que se realizan las practicas se necesite utilizar los PCs target con alguna otra finalidad.

El modelo de simulink completo, incluyendo la adquisición de señales se muestra seguidamente:

Figura 7: Modelo Simulink

3.2 MODELADO EN RT-PXI

  1. Modelar en Labview la dinámica del péndulo invertido. Una de las cuestiones más relevantes, es la selección del periodo de muestreo. Este debe ser lo suficientemente rápido para que el sistema se asemeje al proceso físico continuo.

  1. Añadir al modelo de LabView los componentes necesarios para realizar la adquisición de señales. Se debe utilizar la adquisición de señales punto a punto; ya que el simulador del proceso se integra dentro de un lazo de control, donde las acciones de control se proporcionan en cada periodo de muestreo.

  1. Añadir al modelo los elementos de visualización propios de LabView. Estos componentes permiten la visualización de las magnitudes del proceso en tiempo real.

  1. Transferir la aplicación diseñada en LabView al RT-PXI :

  1. Conectar a través de la red Ethernet con el PXI.

  2. Compilar la aplicación diseñada en el entorno de LabView.

  3. Descargar la aplicación compilada.

Figura 8: Esquema de LabView

El control de la aplicación y la visualización de las señales del proceso se realizan desde el PC de escritorio donde se diseño la aplicación. Ya que el RT-PXI trasfiere todos los datos del proceso a través de la red Ethernet.

3.3 DISEÑO DEL CONTROLADOR

El presente apartado aborda el cálculo de un regulador en espacio de estados. El cual será implementado en la plataforma descrita en el apartado 3.1.

Se opta por la utilización de un regulador por realimentación del estado, debido a su sencilla implementación y cálculo. El diseño del regulador se realiza mediante asignación de polos. En concreto se fijan los polos del sistema en:

La matriz de realimentación obtenida se muestra a continuación:

La utilización de la plataforma descrita en este artículo, permite el estudio de múltiples leyes de control realizando mínimos cambios en la estructura del sistema. Este hecho permite focalizar el esfuerzo del alumno en los aspectos relacionados con el diseño de controladores, pero sin perder la visión general de un sistema de control real.

3.3 RESULTADOS OBTENIDOS

A continuación se muestran los resultados obtenidos en el control del péndulo invertido.

Figura 9: Histograma

En la figura 9 muestra el histograma de la duración de los periodos de muestreo. El valor implementado en el código era de 3 ms. El histograma muestra como los valores reales tienen un desvío de 5 nanosegundos respecto al periodo de muestreo teórico.

Figura 10. Acción de control

Figura 11. Ángulo del péndulo

Figura 12. Posición del carro

En las figuras 10, 11 y 12 puede observarse como el controlador diseñado es capaz de estabilizar el sistema, manteniendo el péndulo en la vertical. Las discrepancias entre el comportamiento del sistema distribuido y la simulación bajo Simulink son debido a tres factores:

En conclusión, la plataforma es capaz de controlar el sistema del péndulo invertido, presentando pequeñas discrepancias con el control simulado.

4 PRÁCTICAS Y EJERCICIOS PROPUESTOS

El presente apartado describe los diferentes enfoques que engloban los ejercicios y practicas de laboratorio que pueden realizarse empleando la plataforma de control distribuido en tiempo real.

Los ejercicios y prácticas pueden dividirse en dos grupos fundamentales. Por un lado, aquellos que pueden realizarse bajo la estructura básica de la plataforma, es decir la descrita en el ejemplo del apartado anterior. Por otro lado, existen ejercicios y practicas adicionales que pueden realizarse llevando a cabo pequeños cambios sobre la plataforma.

7 CONCLUSIONES FINALES

En el presente artículo se ha descrito una plataforma de control distribuido en tiempo real. Dicha descripción ha sido abordada desde una perspectiva académica, con el fin de ilustrar las posibilidades de la plataforma en dicho ámbito.

La plataforma establece un lazo entre soluciones estándar en la industria (bus de campo, módulos de entrada salida, etcétera) y el empleo de algoritmos de control avanzado, típicos del ámbito académico. En conclusión, resulta un complemento ideal en la realización de prácticas en el ámbito de Control.

Agradecimientos

Este proyecto ha sido parcialmente financiado por FEDER AGL2002-04108-C02-01 y FEDER DPI2004-8383-C03-02 (MEC-Spain).

Referencias

[1] “Adlink technology inc.”, http://www.adlinktech.com/

[2] “Beckhoff Automation Gmbh”, http://www.beckhoff.com/

[3] “CAN in Automation, CiA”, http:/www.can-cia.org/

[4] “ESD electronic system design Gmbh.”, http:/www.esd-electronics.com/

[5] Farsi, M. (1999) CANopen implementation: applications to industrial networks, Research Studies.

[6] “GNU Project”, http:/www.gnu.org/

[7] “National Instruments Corporation”, http:/www.ni.com/

[8] Pérez E., Pieroni E., Blasco F., Salcedo J. V., (2003) , “Uso del Toolbox xPC Target en Prácticas de control e Identificación”, Seminario anual de automática, electrónica industrial e instrumentación. SAAEI'03, Vigo.

[9] Pfeiffer, O. (2003) Embedded networking with CAN and CANopen, RTC Books.

[10] “Proyecto Ocera”, http://www.ocera.org

[11] Ripoll, I. “Tutotial RT-Linux”, http://bernia.disca.upv.es/rtportal/tutorial/

[12] xPC Target User’s Guide, Version 2 ed., (2002) The Mathworks, Inc., Natick, MA.