Documento sin título
Ciencias Holguín,                   Revista trimestral,               Año XXI, enero-marzo 2015

Uso de matlab (rtw) para controles de motores de corriente directa / The matlab (rtw) use for controls of direct current motors

Franklyn González-Segura. frank@facing.uho.edu.cu

Institución del autor
Universidad de Holguín “Oscar Lucero Moya”

PAÍS: Cuba

RESUMEN
En este artículo se presentó el diseño de una plataforma de control de la velocidad de un motor de corriente directa (CD) empleando el Real Time Workshop de MATLAB. La plataforma se conformó de un motor de CD, una maqueta SAD 100 (sistema de adquisición de datos), que funcionó como interface, una tarjeta de adquisición de datos conectada a un ordenador y como software de control se empleó el MATLAB. Para comunicar el MATLAB con la tarjeta de adquisición de datos se programó un driver que se utilizó en forma de s-function dentro del Simulink. El software implementado permitió la aplicación en tiempo real.
PALABRAS CLAVES: MATLAB; MOTORES DE CORRIENTE DIRECTA Y TARJETA DE ADQUISICIÓN DE DATOS.

ABSTRACT

In this article the design of a platform of control of the velocity of a motor of direct current (CD) using the Real Time Workshop of MATLAB showed up. The platform conformed of a motor of CD, a maquette SAD 100 (data acquisition system), that he functioned as interface, a card of data acquisition connected to a computer and as the MATLAB used software of control itself. For to communicate the MATLAB with the card of data acquisition programmed a driver that was used shaped like s itself function inside the Simulink. The implemented software allowed to real-time application.
KEY WORDS: MATRIX LABORATORY; DIRECT CURRENT MOTORS AND ACQUISITION CARD OF DATUM.

INTRODUCCIÓN
Un sistema de adquisición de datos, consiste, en tomar un conjunto de variables físicas, convertirlas en tensiones eléctricas y digitalizarlas de manera que se puedan procesar en una computadora o Controlador Lógico Programable (PLC), [1]. Se requiere de una etapa de acondicionamiento, que adecua la señal a niveles compatibles con el elemento que hace la transformación a señal digital. El elemento que hace dicha transformación es el módulo Conversor Analógico Digital (CAD), [2].

Una tarjeta del tipo PCL-818 de alto rendimiento y multifunción incluye canales analógicos (16 de un solo extremo); 12 bit de resolución; rendimiento máximo de procesamiento de datos (38 kHz); para todo rango de entrada, adquisición cada segundo; entrada-salida digital (16 canales TTL de entrada y salida compatibles); rango de entrada (en V): Bipolar +-10, 5, 2.5, 1.25, 0.625, y tiempo de conversión: 10 µs, [3].
Un software interactivo que puede considerarse como un entorno y un lenguaje de programación a la vez es el MATLAB, que surgió como una herramienta para dar apoyo en los cursos de análisis numérico, teoría de matrices y algebra lineal (numérica). El nombre de MATLAB proviene de la abreviación de su nombre completo en inglés Matrix Laboratory, cuya traducción al español es laboratorio de matrices. Como su nombre lo indica, el MATLAB está íntimamente relacionado con la estructura de las matrices, [4]. De hecho las matrices constituyen el elemento básico del lenguaje, esto implica que también puede trabajar con vectores y con números, al ser estos; tipos especiales de matrices.

La primera versión de MATLAB fue escrita en FORTRAN y así continuó durante algunos años, esto se debió en parte a que sus orígenes fueron para un propósito netamente matemático y para la época de 1970 el mejor lenguaje de programación para problemas de tipo matemático era el lenguaje FORTRAN y aún hoy lo es. Las versiones más recientes se deben al grupo “The Mathworks” y están escritas en C y C++. Aunque la mayoría de las personas creen erróneamente que MATLAB es simplemente un lenguaje de programación, MATLAB es un software interactivo que puede considerarse como un entorno y un lenguaje de programación a la vez. En MATLAB los usuarios pueden crear sus propias aplicaciones, [5].

El MATLAB es de gran importancia ya que de ser algo creado simplemente para dar apoyo en cursos relacionados con teorías de matrices pasó a convertirse en una poderosa herramienta tanto en el ámbito educativo, científico como en el industrial.
A nivel científico e industrial, tiene una gran cantidad de aplicaciones en muchos problemas prácticos de ciencia e ingeniería y matemáticas. Es altamente utilizado en geofísica, en el diseño de sistemas de control, en procesamiento de señales, en inteligencia artificial y redes neuronales, en simulación de sistemas dinámicos, en optimización, en problemas de modelaje y sistemas dinámicos (con Simulink, que puede considerarse como una extensión o un anexo de MATLAB), etc.

MATERIALES Y MÉTODOS
MATLAB presenta una aplicación para hacer simulaciones en tiempo real; el Toolbox de tiempo real. Esta herramienta permite realizar aplicaciones de control y simulaciones en tiempo real para plantas físicas, como puede ser el caso de este trabajo, un motor de corriente directa (MCD), [6].

Real Time Workshop, (RTW), ver Figura 1., es una extensión de las posibilidades de Simulink y MATLAB que permite crear el prototipo rápido de aplicaciones software en tiempo real, [7].
1
Figura1. Esquema del RTW.

Para ver el funcionamiento del RTW, observar la Figura 2, y el esquema de su arquitectura en la Figura 3.
2

Figura.2 Esquema del funcionamiento del RTW.

 3
Figura.3 Esquema de la arquitectura del RTW.

Para crear un algoritmo en tiempo real: en una PC, se tienen en cuenta algunas etapas en la generación del RTW, tales como: análisis del modelo en Simulink (modelo.mdl) y generación de un archivo intermedio llamado (modelo.rtw); el TLC toma el archivo intermedio y lo transforma a lenguaje “C” u otro lenguaje con la ayuda de los archivos system.tlc, blocks.tlc y librerías tlc; el proceso de “BUILD” puede terminar aquí o seguir construyendo el ejecutable en dependencia de la opción “Generate code only”; el RTW construye un archivo modelo.mk llamado “makefile” con instrucciones para el compilador de “C” y el enlazador del target seleccionado. Para la construcción de modelo.mk se utiliza el archivo de configuración system.tmf; RTW llama al comando “MAKE”, del compilador instalado, y le pasa las instrucciones para la construcción del ejecutable (modelo.mk) y el programa MAKE construye el ejecutable con el nombre modelo, dejándolos en el directorio de trabajo, [8].

El Real Time Windows Target es una herramienta de MATLAB que permite capturar y generar señales en tiempo real mediante diagramas de bloques generados con Simulink. Además, se pueden visualizar estas señales, al cambiar y controlar parámetros, todo en tiempo real. Para hacerlo posible tiene que haber un elemento físico que interactúe entre Simulink y el elemento exterior que se quiere controlar, recoger señales, este elemento es la placa adquisición de datos DAQ, que es la que permite operar con señales de entrada y/o salidas analógicas y digitales.
Un componente clave del Real Time Windows Target es el “kernel” en tiempo real que hace de interfaz con el sistema operativo Windows para asegurar que la aplicación en tiempo real se ejecute en el tiempo de muestreo seleccionado, [9].
Una aplicación en tiempo real tiene las siguientes características:

  • Código compilado: el resultado de compilar el modelo utilizado y la aplicación en tiempo real.
  • Relación con el modelo de Simulink: la aplicación estará relacionada a través de las interconexiones entre bloques, dependencias de tiempo, etc.
  • Relación con el kernel: Debe estar instalado para ejecutar el código.
  • “Checksum”: El kernel utiliza este valor para comparar el modelo y el ejecutable, si estos son coherentes permitirá realizar la ejecución.

Por otra parte los motores de corriente directa son muy competitivos para aplicaciones en las que debe ajustarse la velocidad, así como para aplicaciones en las que se requiere de un par grande. También son muy útiles para arrancar motores de gasolina y diésel en autos, camiones, autobuses, tractores y lanchas, por esto la simulación de sus procesos transitorios a través del MATLAB se convierten en un material importante de investigación.

RESULTADOS DEL TRABAJO
Se partió de la programación de un driver en C en forma de “s-function” que pudiera ser empleado como un bloque del Simulink. Se usaron una serie de aplicaciones integradas en el entorno MATLAB. Estas herramientas se denominan “toolboxes”, al ser conocido que el Simulink es un entorno de control y simulación mediante bloques bajo MATLAB, dentro del cual se agrupan las “toolboxes”, el Real Time Workshop, Toolbox se diseñó para generar código “C” bajo parámetros temporales deterministas, y partir de modelos Simulink (archivos “.mdl”). Ver diagrama general en la Figura 4.

4

Figura 4. Diagrama general.

El conjunto del hardware que forma la aplicación en tiempo real se puede desglosar en seis bloques de elementos que interactúan entre sí: PC; Tarjeta PCL-818; Driver del motor de corriente directa; Motor de corriente directa; Alimentación externa y realimentación y por último el Tacodínamo.

La plataforma que se presentó fue utilizada para diseñar y montar algoritmos de control de velocidad sobre un sistema real, el caso investigado fue un motor de corriente directa, para lograr esto se tuvo que establecer un sistema que permitiera implantar un lazo de control y modelar la planta del sistema real para poder diseñar el control.

En el diseño del sistema se utilizó una placa de adquisición de datos para poder manejar el motor desde una computadora y para instalar la placa se debieron manejar algunos aspectos teóricos y prácticos. La familia de tarjetas PCL-818 de alto rendimiento y multifuncionales ofreció las 5 mediciones más utilizadas en funciones de control: Conversión A/D de 12-bit; Conversión D/A; Entrada digital; Salida digital y Contador/temporizador.

Para realizar el trabajo con la Tarjeta PCL - 818L, se tuvieron que realizar los siguientes pasos de diseño: determinar la dirección principal mediante la cual se iba a poder comunicar la tarjeta PCL - 818L; determinar la secuencia para poder adquirir los datos de la tarjeta PCL - 818L, ubicada en el slot ISA de la PC; determinar el tiempo en el cual se iba a refrescar el valor de la entrada de la tarjeta PCL - 818L; determinar la secuencia para poder enviar datos a la salida análoga de la tarjeta PCL - 818L y determinar la dirección, parámetros y secuencias de funcionamiento.

La tarjeta PCL - 818L, se ubicó en la dirección base 300H. Desde la que se realizaron todas las secuencias de entrada y salida de datos, canal de entrada de datos análogos: canal 7 y canal de salida de datos análogos: canal 0 (único canal disponible).

Para obtener el modelo de la planta de manera experimental se partió de la identificación de la planta al emplear el estimador ARX.
Para la identificación de la planta se utilizó una función desarrollada en MATLAB que se nombró IdenPlanta_rtw.m, a través de esta función se pudieron obtener las funciones de transferencias continuas y discretas del sistema.

La función IdenPlanta_rtw.m, realizó el cálculo de los parámetros del modelo propuesto al emplear las funciones del toolbox de identificación load pcl.mat, carga de datos de entrada y salida de la planta.
u = rt_in_w    y = rt_vout_w
[m n]= size (y); x=1: m; plot(x, u, x, y); se graficaron los datos de entrada y salida ts=0.1; tiempo de muestreo thetad = arx ([y u], [2 2 1]); cálculo de la matriz Theta present (thetad), para ver los parámetros del modelo discreto thetad = sett (thetad,ts); se añadió el tiempo de muestreo thetac = thd2thc(thetad); se obtuvo la theta del modelo continuo [N,D] = th2tf(thetac); se obtuvieron el Num y Den de la FT(s), sisc=tf(N,D); se construyó la FT(s) sisd=tf(N,D,ts); y se obtuvo el modelo discreto FT(z).

EL driver para MATLAB de la tarjeta PCL-818L permitió la medición a través de uno de los canales analógicos de la tarjeta y la actuación a través de uno de los canales de salida analógicos que ella brinda. El driver que se diseñó como un bloque de Simulink presentó la siguiente estructura de datos, ver Figura 5.

5
Figura 5. Estructura de datos como un bloque de Simulink.

Para realizar la programación se siguió el esquema general de una S-function que es el de la Figura 6.


6
Figura 6. Esquema general de una S-function.

Con la programación en C de los drivers de la tarjeta se realizaron un conjunto de instrucciones para descargarlas a la tarjeta PCL-818: primero desde el MATLAB se configuró el compilador de funciones “mex”, al ejecutar el comando mex – setup; se escogió como compilador el Watcom por su compatibilidad con el target para el que se construyó la aplicación; luego se compiló el código al ejecutar el comando mex nombre.c, obteniéndose una librería lista para ser utilizada en MATLAB.

Para utilizar la s-function generada en el paso anterior se insertó un bloque s-function en un modelo de Simulink, y se le adjudicó el nombre del fichero de código, ver Figura 7, y en la Figura 8, los parámetros de entrada.

7

Figura 7. Diagrama de la s-function en Simulink.

         8

Figura 8. Parámetros de entrada.

Finalmente se muestra el modelo en Simulink para la identificación de datos, una vez listo el modelo de Simulink a ejecutar se procedió a configurar los parámetros de simulación, se observó la respuesta del sistema continuo y discreto del modelo, ver Figura 9.

9
Figura 9. Configuración y respuestas de los parámetros de simulación.

Para realizar el ajuste de parámetros del controlador generalizado PI se utilizó el método de estimación síntesis directa, se obtuvieron los resultados de Kp= 0.9523 y Ki= 0.0477, se realizó el diagrama en bloques en Simulink del sistema discreto. Al hacer una comparación de los resultados, los sistemas discretos reales y simulados tenían similitud en sus respuestas.

CONCLUSIONES
Se diseñó la programación de la tarjeta PCL-818 que permitió la identificación del motor y desarrollar la aplicación de control de velocidad de un motor de CD en tiempo real. Se creó la plataforma para la realización de simulaciones en tiempo real. Estos elementos demostraron la eficacia de la simulación del control de velocidad de los motores de CD para poder realizar ajustes en aplicaciones donde la misma se necesite con alto grado de precisión y rapidez tanto en el laboratorio como en la producción.  

RECOMENDACIONES

Desarrollar la plataforma en otros sistemas operativos como Linux. Emplear la plataforma para el control de otros accionamientos eléctricos y el control de sus procesos transitorios. Implementar la identificación y el control del sistema con otros métodos y algoritmos más avanzados.

BIBLIOGRAFÍA

1. Sistemas de control de motores en tiempo real mediante MATLAB. http://sauron.etse.urv.es/public/propostes/pub/pdf/1088res.pdf, tomado 12 de diciembre 2013.
2. Ingeniería en automatización y control industrial. Real/Time Workshop.pdf. http://iaci.unq.edu.ar/materias/laboratorio2/transparencias/5creal/20time/20workshop,pdf, tomado 12 de diciembre 2013.
3. Rechenzentrum Garching (RZG) of the Max Planck Society and the IPP.pdf. www.rzg.mpg.de/fromexternal/matlab/help/pdfdoc/rtw.ug, tomado 12 de diciembre 2013.
4. Embedded and Real/Time Systems. http://www.ifi.unizih.ch/groups/ailab/links/embedded.html, tomado 13 de marzo 2014.
5. MATLAB para ciencias e ingeniería.
 http://matlab/dcorrea.blogspot.com/2008etse.urv.es/public//pub/pdf/1088res.pdf, tomado 12 de diciembre 2013.
6. Sistemas de tiempo Real. http://www.realtime-info.be
7. Dedicated Systems Home. http://cs-www.bu.edu/pub/ieee-rts
8. The Mathwork Group. http://www.mathworks.com
9. Techstreet -Technical Information Superstore.
    http://www.techstreet.com/info/isa.htm

 

Síntesis curricular del Autor
Franklyn González-Segura. frank@facing.uho.edu.cu

Máster en Eficiencia Energética. Profesor del Departamento de Física-Química y Electrónica. Disciplina Electricidad y Automatización. Universidad de Holguín “Oscar Lucero Moya”. Cuba.

Institución del autor.
Universidad de Holguín “Oscar Lucero Moya”. Cuba.

 


Fecha de Recepción: 07 de mayo 2014
Fecha de Aprobación: 18 de diciembre 2014
Fecha de Publicación: 06 de febrero 2015

Enlaces refback

  • No hay ningún enlace refback.