Full text
Control a Baja Velocidad de una Rueda con Motor de Accionamiento Directo mediante Ingenier´ıa Basada en Modelos Antonio J. Mu˜noz-Ram´ırez, Jes´us M. Luque Bedmar, Jes´us M. G´omez-de-Gabriel, Anthony Mandow, Javier Ser´on, Alfonso Garc´ıa-Cerezo Universidad de M´alaga, Andaluc´ıa Tech, Dpto. de Ingenier´ıa de Sistemas y Autom´atica a[email protected] Resumen Los motores de corriente continua sin escobillas (BLDC) con accionamiento directo suponen una soluci´on compacta para la tracci´on en veh´ıculos el´ectricos, si bien requieren detectar la posici´on del rotor, habitualmente mediante un codificador angular de efecto Hall dentro del mismo motor. No obstante, la ausencia de reductora y a la dificultad de a˜nadir un codificador angular de precisi´on suponen un reto para lograr un control preciso a baja velocidad, especialmente si se hace uso de controladoras industriales donde las posibilidades de programaci´on son limitadas. Este trabajo propone aplicar una estrategia de ingenier´ıa basada en modelos (MDE) para el control a baja velocidad de una rueda con motor BLDC de accionamiento directo. En particular, se presenta la soluci´on para un caso de estudio basado en hardware de bajo coste que incluye una tarjeta Arduino Due, una controladora Roboteq HBL2360 y un interfaz de comunicaci´on de bus CAN. La soluci´on MDE basada en Simulink ofrece simplicidad conceptual, capacidad de adaptaci´on a nuevas especificaciones de dise˜no usando herramientas de dise˜no avanzadas y generaci´on de c´odigo autom´atica. El art´ıculo ofrece resultados experimentales obtenidos sobre el sistema real. Palabras clave: Ingenier´ıa basada en modelos, MDE, Simulink, control baja velocidad, motor BLDC, Bus CAN, Arduino Due 1. INTRODUCCI ´ ON La ingenier´ıa basada en modelos (MDE) permite construir sistemas mediante herramientas de modelado de alto nivel. Los lenguajes de modelado de dominio espec´ıfico permiten generar c´odigo de manera autom´atica, evitando una fase que consume tiempo, recursos y puede introducir errores [2]. Sus beneficios han sido aplicados recientemente a problemas relacionados con la autom´atica, como el dise˜no de sistemas con brazos manipuladores [3], el dise˜no de veh´ıculos submarinos no tripulados [7] o como herramienta en pr´acticas de rob´otica en estudios de ingenier´ıa [6][5]. El uso de lenguaFigura 1: El veh´ıculo terrestre no tripulado Rambler incorpora un motor BLCD en cada rueda. jes de modelado permite introducir el modelo del proceso a controlar como parte del dise˜no del controlador y ser usado para simulaci´on y ajuste de par´ametros. En trabajos anteriores hemos investigado el uso de esta estrategia para la generaci´on autom´atica de c´odigo de tiempo real con Simulink de placas Arduino en aplicaciones rob´oticas [4]. Los motores de corriente continua sin escobillas (BLDC) con accionamiento directo (direct drive) suponen una soluci´on compacta para la tracci´on en veh´ıculos el´ectricos [11]. Estos motores requieren de un controlador electr´onico para alimentar las bobinas y conseguir su rotaci´on, lo cual se realiza en muchos casos mediante la lectura de las se˜nales de un juego de sensores Hall que obtienen la posici´on del rotor. El veh´ıculo terrestre no tripulado Rambler (ver Figura 1) posee cuatro ruedas con motor BDLC de accionamiento directo. El control de velocidad de cada una de las ruedas se realiza mediante una controladora HBL2360 de Roboteq. Las controladoras se conectan mediante un bus CAN para la coordinaci´on de los movimientos del veh´ıculo. Cada rueda incorpora un codificador angular de posici´on de efecto Hall con una resoluci´on de 138 cuentas por vuelta. Con esta configuraci´on surgen problemas de bloqueo cuando el motor no produce suficiente par
para generar el movimiento de la rueda. Esta situaci´on se puede originar por fricciones a baja velocidad, sobre todo en el inicio del movimiento del veh´ıculo, o a partir de accidentes del terreno. En estas situaciones de bloqueo se pueden producir acciones de control inadecuadas debido a una interpretaci´on err´onea de las lecturas de los sensores Hall. La soluci´on de este y otros problemas pr´acticos hace necesaria una capacidad de dise˜no y ajuste del control con mayor flexibilidad que la que ofrecen los controladores comerciales. En este sentido, resulta de inter´es la utilizaci´on de sistemas embebidos. En [12] se utiliza una placa microcontroladora para realizar control avanzado sobre una controladora industrial de Roboteq. Sin embargo, el modelado en Simulink tan s´olo ha sido empleado para la fase de estudio y simulaci´on del sistema. En este art´ıculo se aborda el control de un sistema f´ısico que replica una de las cuatro ruedas del veh´ıculo Rambler. Con este fin se propone una soluci´on en la que se utilizan herramientas MDE para construir un controlador de velocidad para movimientos de precisi´on seguros. Para ello se utiliza un microcontrolador de tipo Arduino con una interfaz de comunicaciones CAN, que env´ıa las referencias de par al HBL2360. Se incluye un modelo del motor, cuyos par´ametros se han identificado para simulaci´on y ajuste del controlador. En la secci´on 2 se describen los componentes del sistema de control. A continuaci´on, la secci´on 3 ofrece una visi´on global de la metodolog´ıa propuesta. La secci´on 4 detalla el proceso de identificaci´on de los par´ametros de la planta. En la secci´on 5 se describe el proceso de dise˜no del sistema de control. Por ´ultimo, se incluyen secciones dedicadas a los experimentos y las conclusiones. 2. DESCRIPCI ´ ON DEL SISTEMA 2.1. Caracter´ısticas generales En la Figura 2 se muestra al sistema real utilizado como caso de estudio para la soluci´on propuesta. Este sistema constituye una r´eplica de uno de los cuatro sistemas rueda/motor del veh´ıculo Rambler. El sistema esta compuesto por los siguientes elementos: Rueda todoterreno con cubierta de tacos de 21 pulgadas de di´ametro. Motor BLDC de accionamiento directo encastrado en la llanta con codificador digital de efecto Hall. Control de potencia Sistema embebido Motor / rueda Figura 2: Fotograf´ıa del sistema experimental, compuesto por la rueda, la controladora industrial HBL2360 y una placa Arduino Due dotada de un interfaz para comunicaciones con bus CAN. Batería Sistema embebido Control de potencia Motor Alimentación Lectura codificadores Bus CAN Figura 3: Esquema del conexionado del sistema de control junto con el motor. Controladora industrial para dos motores BLDC Roboteq HBL 2360. Placa microcontroladora Arduino Due. Interfaz de comunicaciones de Arduino para bus CAN de Seeedstudio CAN Bus Shield v1.2. Bater´ıas. La controladora soporta tensiones entre 12 V y 60 V. En la Figura 3 aparece el esquema de conexionado de todos los componentes del sistema.
Figura 4: Activaci´on de los sensores digitales de efecto Hall desfasados 120◦para bobinas BLDC [9]. 2.2. Motor BLDC de accionamiento directo En los motores BLDC se sustituyen las escobillas responsables del cambio de polaridad por un sistema electr´onico, el cual alimenta las bobinas secuencialmente para provocar el giro. Este sistema requiere detectar la posici´on del rotor para determinar la bobina a alimentar, para lo que se suele contar con sensores Hall. El motor utilizado en el presente trabajo es un motor BLDC trif´asico de corriente continua con 23 polos magn´eticos y dos juegos independientes de sensores Hall. Cada juego consta de tres sensores Hall desfasados 120◦que proporcionan una resoluci´on de 2,6◦. En la Figura 4 se ilustra la secuencia de activaci´on de las bobinas para producir el giro junto con las se˜nales digitales de los tres sensores Hall. 2.3. Control de Potencia Para el control de potencia se adopta la controladora Roboteq HBL2360 para motores BLDC [8]. Este dispositivo utiliza la informaci´on de los sensores Hall para calcular la velocidad y la posici´on de los motores. Esta controladora acepta comandos recibidos por USB, RS232, una cadena de pulsos, interfaz CAN y entrada anal´ogica (0 - 5V). Asimismo, dispone de dos canales para manejar dos motores. El interfaz CAN proporciona una velocidad de bus de hasta 1 Mbit/s. En particular, el protocolo MiniCAN se adecua a las exigencias de velocidad de transmisi´on de datos del bucle de control. La controladora se configura desde un PC a trav´es de puertos USB y RS232 mediante una aplicaci´on proporcionada por el fabricante. La controladora HBL2360 permitir´ıa implementar soluciones de control simples a trav´es de un PID integrado. Sin embargo, en este trabajo se utilizar´a ´unicamente como control de potencia y acondicionamiento de la se˜nal del codificador. 2.4. Sistema Embebido El algoritmo de control de velocidad se pretende implementar en un sistema embebido consistente en una placa Arduino Due [1], basada en un microcontrolador Atmel SAM3X8E de 32 bits. Dispone de 54 pines de entradas/salidas digitales, de las cuales 12 pueden ser utilizadas como salidas de modulaci´on por ancho de pulso (PWM). Tambi´en tiene 12 entradas anal´ogicas con resoluci´on de 12 bits, 4 puertos serie (UART) y trabaja con un oscilador de 84 MHz. Dispone de todas sus entradas digitales con la funci´on de interrupci´on. La tensi´on de trabajo de la placa Arduino Due desde el punto de vista de las entradas y salidas es de 3.3 V. Cada pin puede suministrar de 3 mA – 15 mA, dependiendo del pin, o recibir de 6 mA – 9 mA, dependiendo del pin. Estos pines tambi´en poseen una resistencia de pull-up, que ser´a ´util para la lectura directa del codificador. Si bien este sistema embebido posee comunicaci´on con el bus CAN de forma nativa, la electr´onica de adaptaci´on de se˜nales a la de la controladora es m´as costosa que un interfaz completo para Arduino como la CAN Bus Shield de Seedstudio. 3. CONTROL CON ESTRATEGIA MDE En este trabajo se propone una estrategia MDE para el dise˜no del bucle de control del sistema en Simulink de tal forma que permita de forma simult´anea la simulaci´on en el PC, la programaci´on del sistema embebido y la sintonizaci´on del controlador seg´un las especificaci´on de dise˜no deseadas. Dicho dise˜no se muestra en la Figura 5 en donde se aprecia la capacidad de admitir consignas de control a trav´es del puerto serie del sistema embebido. Para la realizaci´on de esta estrategia se proponen los siguientes pasos: 1. Implementaci´on de un interfaz Simulink con el proceso real. 2. Identificaci´on de un modelo lineal del proceso a partir de datos de entrada/salida. 3. Sintonizaci´on del control PID. 4. Incorporaci´on de elementos no lineales en el control para solucionar el problema del bloqueo. Todos estos aspectos se tratan en las siguientes secciones.
Port0 rpm Referencia ref error PWM Controlador PWM rpm SistemaFísico PWM rpm ModeloG(s) Sim Coder Out Environment Controller Figura 5: Implementaci´on de la estrategia MDE mediante un modelo Simulink del sistema de control que permite la simulaci´on, la sintonizaci´on del controlador y la generaci´on del c´odigo para la placa Arduino. 4. IDENTIFICACI ´ ON DE LA PLANTA En esta secci´on se aborda la identificaci´on de la planta la cual consiste en la rueda, el motor BLDC, la controladora industrial HBL2360, y su sistema de actuaci´on (PWM) y lectura de los sensores de efecto Hall dado por la tarjeta controladora Arduino Due. 4.1. Lectura de la velocidad Como paso inicial en el estudio del sistema hay que realizar la lectura de la velocidad y el env´ıo de la actuaci´on PWM. La activaci´on del motor se puede realizar con una salida PWM (modulaci´on por anchura de pulso) a trav´es de la entrada de RC del HBL2360. En cuanto a la medida de la velocidad, la manera m´as simple ser´ıa a trav´es de las entradas digitales de la placa Arduino enlazadas con rutinas de interrupci´on con cada flanco, ya sea de subida o de bajada de las se˜nales A, B, o C del codificador. Sin embargo, el resultado de la lectura directa de las se˜nales del codificador y el c´alculo de la velocidad midiendo el tiempo entre flancos [10] frente una excitaci´on produce resultados afectados por ruido de alta frecuencia. Alternativamente, en este trabajo se proponone aprovechar el hardware de acondicionamiento de se˜nal de la controladora HBL2360 para extraer la informaci´on de la velocidad de la rueda. Esto se puede realizar a trav´es del interfaz bus CAN en conjunci´on con la excitaci´on del motor, para lo que ha sido necesario programar dos bloques SFunction Builder en Simulink con la utilizaci´on de un protocolo ligero denominado MiniCAN [9]. El susbsistema resultante se observa en la Figura 6. Figura 6: Definici´on del subsistema Simulink que permite un interfaz con el sistema f´ısico, el cual mediante S-Function Builder implementa el env´ıo de la se˜nal PWM a la controladora HBL2360 y la lectura de la velocidad de la rueda a trav´es del bus CAN. 4.2. Identificaci´on del Modelo La identificaci´on del sistema f´ısico se realiza mediante la herramienta System Identification Toolbox de Matlab. Los datos para la identificaci´on consisten en la respuesta del sistema ante una secuencia de escalones PWM que producen una respuesta a baja velocidad (en torno a 23rpm), tal y como se muestra en la Figura 7. Emp´ıricamente se ha comprobado que una funci´on de transferencia dada por dos polos y ning´un cero proporciona un buen ajuste (78.01 %) con los siguientes par´ametros: G(s) = 191,065 s2+ 80,739s+ 8,051 5. CONTROL A BAJA VELOCIDAD 5.1. Modelado En el modelo del sistema de control de la Figura 5 se observa como aparecen tanto la interconexi´on con el Sistema F´ısico a trav´es del Bus CAN como la funci´on de transferencia que aproxima la
rpm Tiempo (s) Figura 7: Comparaci´on del se˜nal de salida real del sistema con la del modelo identificado. din´amica de la planta. 5.2. Sintonizaci´on El modelo propuesto permite la sintonizaci´on con la herramienta de Matlab PID Tuner, la cual facilita el ajuste del regulador jugando con especificaciones de dise˜no tales como la robustez y la rapidez de la respuesta. En la Figura 8 se realiza la sintonizaci´on para unas especificaciones de respuesta del sistema de 0.5 s de tiempo de subida y 1 s de tiempo de establecimiento. Figura 8: Ventana de la sintonizaci´on del controlador del sistema realizada con PID Tuner sobre el propio modelo, donde se obtienen los par´ametros del PID en base a cumplir las especificaciones de dise˜no (en este caso con tiempo de subida 0.5 s y tiempo de establecimiento 1 s) 5.3. El problema del bloqueo Mediante el modelo de la Figura 5 se permite un r´apida sintonizaci´on del controlador junto con la aplicaci´on de t´ecnicas de filtrado derivativo, antiwindup y saturaci´on dentro del mismo bloque del Figura 9: Modelo del controlador con bloque PID y l´ogica para eliminar retrocesos. PID discreto. Otro problema que se puede abordar mediante la estrategia MDE surge en la aplicaci´on pr´actica del control cuando se produce el bloqueo de la rueda. En caso de bloqueo, se ha observado que uno de los tres sensores Hall se mantiene oscilando en su zona de flanco, lo cual es interpretado err´oneamente por el controlador como una lectura de alta velocidad en el sentido de la marcha. Para compensar esta falsa lectura, la acci´on de control provoca s´ubitamente un giro a alta velocidad en sentido contrario al de la marcha. A fin de solucionar este problema, se propone la soluci´on que se ilustra en la Figura 9 para el subsistema de control. Esta soluci´on permite detectar una diferencia de signo entre la referencia y el resultado del algoritmo PID, en cuyo caso se genera una actuaci´on nula. 6. RESULTADOS EXPERIMENTALES Los experimentos realizados demuestran por un lado la validez de la soluci´on propuesta y por otro la robustez frente a perturbaciones. Las pruebas se han realizado con alimentaci´on de bater´ıa de 12 V, si bien tanto la controladora como el motor admiten hasta 60 V. De esta manera, se persigue probar el sistema de control en situaciones de bajo par. 6.1. Validaci´on del modelo El experimento consiste en comparar la respuesta en bucle cerrado de la planta real y del modelo identificado ante una consigna de 100 rpm. El resultado de este experimento se observa en la Figura 10, donde se aprecia bastante similitud en especial en los par´ametros de dise˜no de tiempo de subida y tiempo de estabilizaci´on. Este resultado indica que la sintonizaci´on autom´atica a partir del modelo identificado resulta adecuada para el control del la planta real.
r p m Tiempo (s) Figura 10: Comparaci´on entre la velocidad del sistema controlado y el modelado frente una referencia de 100 rpm. 6.2. Robustez a perturbaciones El experimento para determinar la robustez en presencia de perturbaciones se realiz´o aplicando una referencia continua en el tiempo y frenando manualmente la rueda con una palanca de tal forma que la fuerza ejercida sobre la rueda fuera capaz de bloquearla. Una vez puesta en marcha la rueda y estabilizada su velocidad a la de referencia (50 rpm) se fren´o paulatinamente hasta el bloqueo en dos ocasiones, y posteriormente se desbloque´o tambi´en de forma pausada. Por ´ultimo, se realiz´o una frenada suave y su consiguiente retirada tambi´en suave. La gr´afica con las se˜nales de salida obtenidas se puede visualizar en la Figura 11. Donde se aprecia que en los tres casos el controlador aument´o la actuaci´on para mantener la referencia deseada. 7. CONCLUSIONES En este art´ıculo se ha abordado el control a baja velocidad de una rueda con motor de corriente continua sin escobillas (BLDC) de accionamiento directo. Concretamente, se ha ofrecido una soluci´on para un caso de estudio consistente en la r´eplica de una de las cuatro ruedas del veh´ıculo el´ectrico Rambler. Con este fin, se ha propuesto una soluci´on en la que se utilizan herramientas de ingenier´ıa basada en modelos (MDE) a trav´es de Simulink con generaci´on de c´odigo autom´atico que se ejecutar´a en un microcontrolador de tipo Arduino. Esta estrategia requiere identificar la din´amica de la planta para sintonizar del controlador a partir de simulaciones. Se ha dise˜nado un controlador PID discreto, que evita las sobreoscilaciones y es robusto ante la presencia de perturbaciones. Asimismo, se ha incorporado al PID una soluci´on espec´ıfica para detecpwm rpmrpmrpm Tiempo (s) Figura 11: Resultados del sistema controlado frente una entrada en escal´on al que se le han aplicado tres perturbaciones externas: dos bloqueos de la rueda para despu´es liberarla, y una frenada y liberaci´on suave. Las gr´aficas de tiempo por orden de arriba a abajo son: velocidad de la rueda en rpm, actuaci´on en PWM, referencia en rpm, y error cometido en rpm. tar situaciones de bloqueo de la rueda. Los resultados experimentales han mostrado un buen comportamiento del sistema controlado ante perturbaciones de bloqueo y en arranque a bajas velocidades. La continuaci´on de este trabajo pasa por su implantaci´on en el veh´ıculo rob´otico Rambler, en donde se aplicar´a la ingenier´ıa basada en modelos en las etapas de identificaci´on y sintonizaci´on para sus cuatro ruedas. Agradecimientos Este proyecto ha sido parcialmente financiado por el proyecto de Innovaci´on educativa de la Universidad de M´alaga PIE 15-180 y por el proyecto CICYT DPI2015-65186-R. Referencias [1] Arduino (2014). Arduino - ArduinoBoardDue. [2] Balasubramanian, K., Gokhale, A., Karsai, G., Sztipanovits, J., and Neema, S. (2006). Developing applications using model-driven design environments. Computer, 39(2):33–40. [3] Est´evez, E., S´anchez-Garc´ıa, A., G´amezGarc´ıa, J., G´omez-Ortega, J., and SatorresMart´ınez, S. (2016). A novel model-driven approach to support development cycle of robotic systems. The International Journal of Advanced Manufacturing Technology, 82(1-4):737–751. [4] Gil Lozano, J. E., Mu˜noz Ram´ırez, A. J., Torres, V. L., and Gomez, J. M. (2014). Uso de
Simulink y Arduino para pr´acticas de rob´otica. In Jornadas de Autom´atica, pages 3–5, Valencia, Spain. Comit´e Espa˜nol de Autom´atica (CEA-IFAC). [5] Mu˜noz-Ram´ırez, A. J. and G´omez-de Gabriel, J. (2016). Modelar o programar en pr´acticas de rob´otica. In Jornadas de Autom´atica, pages 1–7, Madrid. Comit´e Espa˜nol de Autom´atica (CEAIFAC). [6] Mu˜noz-Ram´ırez, A. J., Jes´us Fern´andezLozano, J., and Manuel, J. (2015). Ingenier´ıa Basada en Modelos en Pr´acticas de Rob´otica. In Jornadas de Autom´atica, pages 624–630, Bilbao. Comit´e Espa˜nol de Autom´atica de la IFAC (CEA-IFAC). [7] Ortiz, F. J., Insaurralde, C. C., Alonso, D., S´anchez, F., and Petillot, Y. R. (2015). Modeldriven analysis and design for software development of autonomous underwater vehicles. Robotica, 33(8):1731–1750. [8] Roboteq (2015). HBL23xx motor controller datasheet. [9] Roboteq (2016). RoboteQ Advanced Brushed and Brushless Digital Motor Controllers User Manual. [10] Romero, A., Mu˜noz-Ram´ırez, A. J., and G´omez-de Gabriel, J. (2015). Realimentaci´on de velocidad con encoders de baja resoluci´on en Simulink. In Actas de las XXXVI Jornadas de Autom´atica, pages 215–220. [11] Salehifar, M., Arashloo, R. S., MorenoEguilaz, M., Sala, V., and Romeral, L. (2015). Observer-based open transistor fault diagnosis and fault-tolerant control of five-phase permanent magnet motor drive for application in electric vehicles. IET Power Electronics, 8(1):76– 87. [12] Viguria, A., Prieto, A., Fiacchini, M., Cano, R., Rubio, F. R., Aracil, J., and Canudas-DeWit, C. Desarrollo y experimentaci´on de un veh´ıculo basado en p´endulo invertido (PPCar). Revista Iberoamericana de Autom´atica e Inform´atica Industrial, 3(4):53–62.