12.07.2015 Views

Vehículo basado en péndulo invertido - Universidad de Sevilla

Vehículo basado en péndulo invertido - Universidad de Sevilla

Vehículo basado en péndulo invertido - Universidad de Sevilla

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Escuela Superior <strong>de</strong> Ing<strong>en</strong>ieros <strong>de</strong> <strong>Sevilla</strong>PPCarro: Vehículo móvil <strong>basado</strong> <strong>en</strong> péndulo <strong>invertido</strong>Alberto PrietoAntidio ViguriaB<strong>en</strong>ito José VelaMirko FiacchiniRamón CanoTrabajo <strong>de</strong> los Cursos <strong>de</strong> Doctorado:Control No Lineal AplicadoSistema <strong>de</strong> Control No LinealRobótica Industrial


INDICE GENERAL 2INDICE GENERAL:Memoria I:DESCRIPCIÓN DE LA ESTRUCTURA MECÁNICA Y DE LOS COMPONENTES HARDWARE.CAPITULO I. MEMORIA DESCRIPTIVA. ..........................................................................................71.1. MOTIVACION Y OBJETIVOS........................................................................................................71.2. ESTRUCTURA Y TRACCION. .......................................................................................................71.2.1. CHASIS.......................................................................................................................................71.2.2. RUEDAS.....................................................................................................................................81.2.3. ADAPTADOR EJE-RUEDA. ......................................................................................................81.2.4. MOTORES..................................................................................................................................91.2.5. TORNILLOS DE SUJECIÓN. ..................................................................................................101.2.6. BATERIAS. ...............................................................................................................................101.3. ELECTRÓNICA. ............................................................................................................................121.3.1. MICROCONTROLADOR.........................................................................................................121.3.2. INCLINÓMETRO.....................................................................................................................131.3.3. ENCODERS..............................................................................................................................141.3.4. CONTROLADORA DE LOS MOTORES..................................................................................151.3.6. CAJA DE LA ELECTRÓNICA..................................................................................................161.3.7. CAJA DE CONTROL DEL VEHÍCULO. .................................................................................171.4. EQUIPOS AUXILIARES................................................................................................................181.4.1. CARGADOR DE BATERIAS. ...................................................................................................181.4.2. RADIO-MÓDEM......................................................................................................................181.4.3. SISTEMA DE PROGRAMACION DEL MICROCONTROLADOR..........................................191.4.4. PUÑO DE DIRECCIÓN...........................................................................................................191.5. EQUIPO COMPLETO. ...................................................................................................................20CAPITULO II. PRESUPUESTO............................................................................................................212.1. ESTRUCTURA Y TRACCION. .....................................................................................................212.2. ELECTRONICA. ............................................................................................................................212.3. EQUIPOS AUXILIARES................................................................................................................212.4. OTROS CONCEPTOS. ...................................................................................................................222.6. RESUMEN DEL PRESUPUESTO. ................................................................................................22CAPITULO III. PLANOS. ......................................................................................................................233.1. ESTRUCTURA GENERAL............................................................................................................233.1.1. MOTORES................................................................................................................................233.1.2. ADAPTADORES EJE-RUEDA.................................................................................................233.1.3. DESPIECE DE LA ESTRUCTURA. .........................................................................................233.1.2. ADAPTACION DE LOS ENCODERS A LOS MOTORES........................................................23Memoria II:SOFTWARE DESARROLLADO PARA EL MICROCONTROLADOR Y LA APLICACIÓN DE PC.CAPITULO I. SOFTWARE DEL MICROCONTROLADOR............................................................261.1. INTRODUCCIÓN...........................................................................................................................261.2. ARQUITECTURA DE TINYOS ....................................................................................................261.3. ENTORNO DE DESARROLLO DE TINYOS...............................................................................261.4. EL LENGUAJE DE PROGRAMACIÓN NESC. ............................................................................271.4.1. MODELO DE PROGRAMACIÓN. ..........................................................................................281.5. ESTRUCTURA DEL PROGRAMA DESARROLLADO. .............................................................291.6. INSTALACIÓN DEL ENTORNO DE DESARROLLO.................................................................301.7. ¿CÓMO SE INTRODUCE UN NUEVO CONTROLADOR?. .......................................................311.8. COMPILACIÓN Y CARGA DE UN PROGRAMA. ......................................................................31


INDICE GENERAL 31.9. DOCUMENTACIÓN ADJUNTA...................................................................................................31CAPITULO II. SOFTWARE DE LA APLICACIÓN DE PC..............................................................322.1. INTRODUCCIÓN...........................................................................................................................322.2. OBJETIVOS....................................................................................................................................322.3. REQUISITOS MÍNIMOS. ..............................................................................................................332.3.1. HARDWARE.............................................................................................................................332.3.2. SOFTWARE..............................................................................................................................332.4. INSTALACIÓN. .............................................................................................................................332.5. DESINSTALACIÓN.......................................................................................................................332.6. CARACTERÍSTICAS Y MANEJO DEL MONITOR....................................................................342.6.1. USO. .........................................................................................................................................342.6.2. PLANTILLAS............................................................................................................................352.6.3. CONFIGURANDO LA COMUNICACIÓN. .............................................................................402.6.4. CONFIGURANDO LA REPRESENTACIÓN GRÁFICA..........................................................412.6.5. EXPORTANDO DATOS A MATLAB........................................................................................432.7. FUNCIONAMIENTO DE LOS ELEMENTOS PRINCIPALES. ...................................................432.7.1. INTERFAZ GRÁFICA. .............................................................................................................432.7.2. MÓDULO DE COMUNICACIONES. ......................................................................................432.7.3. PARSER XML...........................................................................................................................452.7.4. INTERFAZ MATLAB................................................................................................................46Memoria III:DISEÑO, SINTONIZACIÓN Y SIMULACIÓN DE CONTROLADORES.CAPITULO I. DESCRIPCIÓN Y MODELADO DEL SISTEMA......................................................491.1 DESCRIPCIÓN DEL SISTEMA .....................................................................................................491.2 MODELO DEL SISTEMA...............................................................................................................491.2.1 VEHÍCULO CON TRACCIÓN DIFERENCIAL........................................................................491.2.2 PÉNDULO INVERTIDO SOBRE BASE MÓVIL.......................................................................50CAPITULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN....................................................512.1 CONTROL LQR..............................................................................................................................512.1.1 UBICACIÓN DE POLOS CON LQR ........................................................................................512.2 CONTROLADOR NO LINEAL: ASTOLFI-KALIORA.................................................................532.2.1 LINEALIZACIÓN PARCIAL .....................................................................................................532.2.2 ESTABILIZACIÓN DEL PÉNDULO POR MOLDEO DE LA FUNCIÓN DE ENERGÍA. .......542.2.3 ESTABILIZACIÓN DE LA VELOCIDAD..................................................................................552.2.4 SINTONIZACIÓN DEL CONTROLADOR NO LINEAL ...........................................................552.3 SIMULACIONES ............................................................................................................................562.4 EFECTO DE LA SATURACIÓN, TIEMPO DE MUESTREO Y RETRASO .................................60


Escuela Superior <strong>de</strong> Ing<strong>en</strong>ieros <strong>de</strong> <strong>Sevilla</strong>DESCRIPCIÓN DE LA ESTRUCTURA MECÁNICA Y DE LOSCOMPONENTES HARDWAREAlberto PrietoAntidio ViguriaB<strong>en</strong>ito José VelaMirko FiacchiniRamón CanoTrabajo <strong>de</strong> los Cursos <strong>de</strong> Doctorado:Control No Lineal AplicadoSistema <strong>de</strong> Control No LinealRobótica Industrial


INDICE. 6INDICE.CAPITULO I. MEMORIA DESCRIPTIVA. ..........................................................................................71.1. MOTIVACION Y OBJETIVOS........................................................................................................71.2. ESTRUCTURA Y TRACCION. .......................................................................................................71.2.1. CHASIS.......................................................................................................................................71.2.2. RUEDAS.....................................................................................................................................81.2.3. ADAPTADOR EJE-RUEDA. ......................................................................................................81.2.4. MOTORES..................................................................................................................................91.2.5. TORNILLOS DE SUJECIÓN. ..................................................................................................101.2.6. BATERIAS. ...............................................................................................................................101.3. ELECTRÓNICA. ............................................................................................................................121.3.1. MICROCONTROLADOR.........................................................................................................121.3.2. INCLINÓMETRO.....................................................................................................................131.3.3. ENCODERS..............................................................................................................................141.3.4. CONTROLADORA DE LOS MOTORES..................................................................................151.3.6. CAJA DE LA ELECTRÓNICA..................................................................................................161.3.7. CAJA DE CONTROL DEL VEHÍCULO. .................................................................................171.4. EQUIPOS AUXILIARES................................................................................................................181.4.1. CARGADOR DE BATERIAS. ...................................................................................................181.4.2. RADIO-MÓDEM......................................................................................................................181.4.3. SISTEMA DE PROGRAMACION DEL MICROCONTROLADOR..........................................191.4.4. PUÑO DE DIRECCIÓN...........................................................................................................191.5. EQUIPO COMPLETO. ...................................................................................................................20CAPITULO II. PRESUPUESTO............................................................................................................212.1. ESTRUCTURA Y TRACCION. .....................................................................................................212.2. ELECTRONICA. ............................................................................................................................212.3. EQUIPOS AUXILIARES................................................................................................................212.4. OTROS CONCEPTOS. ...................................................................................................................222.6. RESUMEN DEL PRESUPUESTO. ................................................................................................22CAPITULO III. PLANOS. ......................................................................................................................233.1. ESTRUCTURA GENERAL............................................................................................................233.1.1. MOTORES................................................................................................................................233.1.2. ADAPTADORES EJE-RUEDA.................................................................................................233.1.3. DESPIECE DE LA ESTRUCTURA. .........................................................................................233.1.2. ADAPTACION DE LOS ENCODERS A LOS MOTORES........................................................23


CAPITULO I. MEMORIA DESCRIPTIVA. 7CAPITULO I. MEMORIA DESCRIPTIVA.1.1. MOTIVACION Y OBJETIVOS.El objetivo <strong>de</strong>l pres<strong>en</strong>te docum<strong>en</strong>to es pres<strong>en</strong>tar el diseño mecánico y los compon<strong>en</strong>teshardware que se han utilizado para la confección <strong>de</strong> un vehículo <strong>basado</strong> <strong>en</strong> el mo<strong>de</strong>lo <strong>de</strong>lpéndulo <strong>invertido</strong>. Dicho trabajo se <strong>en</strong>globa d<strong>en</strong>tro <strong>de</strong> los cursos <strong>de</strong> “Doctorado <strong>en</strong> Automáticay Robótica“ <strong>de</strong> la <strong>Universidad</strong> <strong>de</strong> <strong>Sevilla</strong> (curso 2004-05).Nuestro vehículo (o robot móvil) t<strong>en</strong>drá la capacidad <strong>de</strong> transportar una persona (con un peso<strong>en</strong>tre 50 y 100 Kg) mant<strong>en</strong>i<strong>en</strong>do <strong>en</strong> todo mom<strong>en</strong>to el equilibrio. Asimismo <strong>de</strong>berá ser capaz <strong>de</strong>cambiar <strong>de</strong> dirección a voluntad <strong>de</strong>l conductor.BateríasMotorIzquierdoControladorMotores DCMotorDerechoEnco<strong>de</strong>rIzquierdoMicrocontroladorEnco<strong>de</strong>rDerechoDirecciónInclinómetroFigura 1: Esquema <strong>de</strong> Bloques.En la figura 1.1 se muestra un esquema simplificado <strong>de</strong> composición <strong>de</strong>l vehículo. Según elesquema <strong>de</strong>l péndulo <strong>invertido</strong>, el robot mant<strong>en</strong>drá el equilibrio mi<strong>en</strong>tras se mueve. Accionadopor dos motores, <strong>en</strong> nuestro caso <strong>de</strong> corri<strong>en</strong>te continua alim<strong>en</strong>tados por baterías, el cambio <strong>de</strong>dirección se consigue por la difer<strong>en</strong>cia <strong>de</strong> velocida<strong>de</strong>s <strong>de</strong> rotación <strong>en</strong>tre sus dos ruedasmotrices (indicado por el conductor mediante un puño situado <strong>en</strong> el manillar).Finalm<strong>en</strong>te, la consigna <strong>de</strong> avance o retroceso <strong>de</strong>l vehículo se consigue por la acción <strong>de</strong>lconductor al inclinarse hacia <strong>de</strong>lante (avance) o hacia atrás (parada).Exist<strong>en</strong> otras implem<strong>en</strong>taciones <strong>de</strong> este mismo vehículo; una comercial <strong>de</strong>l fabricanteSEGWAY LLC (http://www.segway.com) y otra experim<strong>en</strong>tal <strong>de</strong> Trevor Blackwell(http://tlb.org/scooter.html).1.2. ESTRUCTURA Y TRACCION.1.2.1. CHASIS.Se diseñó un chasis simple <strong>de</strong> aluminio compuesto <strong>de</strong> una placa horizontal <strong>de</strong> 400x600x10mm,una barra vertical <strong>de</strong> 1200mm y diámetro 40mm terminada <strong>en</strong> forma <strong>de</strong> ‘T’ y una chapaplegada <strong>de</strong> 2 mm <strong>de</strong> espesor formando un cajón para alojar las baterías. El conjunto se unemediante tornillos y soporta los motores, baterías y electrónica, situados <strong>en</strong> la parte inferior <strong>de</strong>la placa base.


CAPITULO I. MEMORIA DESCRIPTIVA. 8Figura 2: Chasis.1.2.2. RUEDAS.Se utilizarán ruedas neumáticas, con cámara <strong>de</strong> aire y llanta <strong>de</strong> acero, <strong>de</strong> 410mm <strong>de</strong> diámetro(llanta 16”), utilizadas comúnm<strong>en</strong>te <strong>en</strong> remolques <strong>de</strong> automóviles.Figura 3: Ruedas.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:TIENDAS FEUBERT.1.2.3. ADAPTADOR EJE-RUEDA.Esta pieza es necesaria para unir el eje <strong>de</strong>l motor con la llanta <strong>de</strong> la rueda. Se une a ambaspiezas mediante tornillos. Elegimos el mo<strong>de</strong>lo NPC-PH448 <strong>de</strong> la casa NPC Robotics.


CAPITULO I. MEMORIA DESCRIPTIVA. 9Figura 4: Adaptador Eje-Rueda.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.npcrobotics.com/products/viewprod.asp?prod=21&cat=18&mo<strong>de</strong>=gfx1.2.4. MOTORES.Para la tracción <strong>de</strong> nuestro robot móvil se han elegido motores <strong>de</strong> corri<strong>en</strong>te continuaalim<strong>en</strong>tados a 24Vdc, que llevan incorporados una caja reductora <strong>de</strong> relación 20:1.Concretam<strong>en</strong>te el mo<strong>de</strong>lo NPC-T64 que comercializa la compañía NPC Robotics.Figura 5: Motor <strong>de</strong> DC.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.npcrobotics.com/products/viewprod.asp?prod=42&cat=20&mo<strong>de</strong>=gfxAdjuntamos tabla con características <strong>de</strong> par, int<strong>en</strong>sidad y pot<strong>en</strong>cia consumida a difer<strong>en</strong>tesregím<strong>en</strong>es <strong>de</strong> velocidad.


CAPITULO I. MEMORIA DESCRIPTIVA. 10Figura 6: Tabla <strong>de</strong> par / int<strong>en</strong>sidad <strong>de</strong>l Motor <strong>de</strong> DC.1.2.5. TORNILLOS DE SUJECIÓN.Se han elegido varios tipos <strong>de</strong> tornillos para <strong>en</strong>samblar las difer<strong>en</strong>tes piezas principales <strong>de</strong>lchasis y motores, que pasamos a relacionar:• Sujeción <strong>de</strong> los motores a la placa horizontal (para cada motor):2 tornillos 5/16-24-UNF <strong>de</strong> longitud 25 mm, resist<strong>en</strong>cia 12,9 y cabeza DIN912.• Sujeción <strong>de</strong> los adaptadores al eje <strong>de</strong>l motor (para cada motor):4 tornillos 5/16-24-UNF <strong>de</strong> longitud 25 mm, resist<strong>en</strong>cia 12,9 y cabeza DIN912.• Sujeción <strong>de</strong> los adaptadores a la llanta <strong>de</strong> la rueda (para cada rueda)4 tornillos 5/16-24-UNF <strong>de</strong> longitud 16 mm, resist<strong>en</strong>cia 12,9 y cabeza DIN912.• Sujeción <strong>de</strong>l compartim<strong>en</strong>to <strong>de</strong> baterías a la placa horizontal:4 tornillos Métrica 8mm <strong>de</strong> longitud 10 mm, resist<strong>en</strong>cia 8,8 y cabeza DIN933.Incluye aran<strong>de</strong>la Grower-B.• Sujeción <strong>de</strong>l manillar (mástil <strong>en</strong> forma <strong>de</strong> ‘T’ a la placa horizontal):4 tornillos Métrica 8mm <strong>de</strong> longitud 16 mm, resist<strong>en</strong>cia 8,8 y cabeza DIN933.Incluye aran<strong>de</strong>la Grower DIN127 y tuerca DIN933 <strong>de</strong> 8mm.1.2.6. BATERIAS.El sistema <strong>de</strong> alim<strong>en</strong>tación está compuesto <strong>de</strong> dos baterías <strong>de</strong> 12V (conectadas <strong>en</strong> serie paradar 24Vdc), que alim<strong>en</strong>tarán los motores y la electrónica. Se ha elegido el mo<strong>de</strong>lo NPC-B1412<strong>de</strong> la casa NPC Robotics, <strong>de</strong> características:• 12V, 14Ah.• Descarga <strong>en</strong> 3 min. a 90A.• Int<strong>en</strong>sidad máxima 300ª.• Tamaño 6" W x 5.8" H x 3.5" DPor último, com<strong>en</strong>tar que se ha realizado una estimación <strong>de</strong> la duración <strong>de</strong> las baterías <strong>en</strong> elvehículo y al m<strong>en</strong>os <strong>de</strong>berían durar una hora.


CAPITULO I. MEMORIA DESCRIPTIVA. 11Figura 7: Baterías.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.npcrobotics.com/products/viewprod.asp?prod=17&cat=15&mo<strong>de</strong>=gfxLa electrónica no se alim<strong>en</strong>ta directam<strong>en</strong>te <strong>de</strong>s<strong>de</strong> estas baterías, sino que a partir <strong>de</strong> los 24Vque dan éstas y con un simple circuito formado por reguladores <strong>de</strong> t<strong>en</strong>sión conseguimos last<strong>en</strong>siones necesarias (5V y 9V) para los distintos compon<strong>en</strong>tes electrónicos.


CAPITULO I. MEMORIA DESCRIPTIVA. 121.3. ELECTRÓNICA.1.3.1. MICROCONTROLADOR.El control <strong>de</strong> nuestro robot móvil se ha implem<strong>en</strong>tado usando la placa microcontroladoraMAVRIC-IIB (mo<strong>de</strong>lo MAV2BST) <strong>de</strong> la compañía BDMICRO. Esta placa <strong>de</strong> <strong>de</strong>sarrollo ti<strong>en</strong>e lav<strong>en</strong>taja <strong>de</strong> que ya vi<strong>en</strong>e lista para usar, es <strong>de</strong>cir, que ya trae su propio circuito <strong>de</strong> alim<strong>en</strong>tación,su convertidor <strong>de</strong> t<strong>en</strong>siones para po<strong>de</strong>r usar los 2 puertos series con el nivel <strong>de</strong> t<strong>en</strong>siones <strong>de</strong>lestándar RS-232, acceso a todos los puertos <strong>de</strong>l microcontrolador e incluso pines especialespara las señales PWM. Por último com<strong>en</strong>tar que se han utilizado los sigui<strong>en</strong>tes puertos y<strong>en</strong>tradas y salidas digitales para la comunicación con los distintos dispositivos:• Alim<strong>en</strong>tación: Pines V+Input y GND, <strong>en</strong>tre 5.5V y 15V.• Puerto serie 0: comunicaciones con la placa que controla los 2 motores, mediante unprotocolo <strong>de</strong> comunicaciones que se <strong>de</strong>scribe <strong>en</strong> el docum<strong>en</strong>to refer<strong>en</strong>te al software<strong>de</strong>sarrollado.• Puerto serie 1: comunicaciones con el PC, este canal <strong>de</strong> comunicaciones se utilizapara dar comandos al controlador <strong>de</strong>l vehículo (parada, comi<strong>en</strong>zo, parada <strong>de</strong>emerg<strong>en</strong>cia) y para cargar valores <strong>de</strong> los distintos controladores utilizados y pararepres<strong>en</strong>tar gráficam<strong>en</strong>te datos <strong>de</strong> distintas variables <strong>de</strong>l vehículo y guardarlas <strong>en</strong>ficheros compatibles con Matlab para su posterior estudio.• Entrada analógica 0: señal prov<strong>en</strong>i<strong>en</strong>te <strong>de</strong>l inclinómetro, una vez digitalizada la señalanalógica se realiza una transformación lineal para pasarla a radianes.• Entrada analógica 1: señal prov<strong>en</strong>i<strong>en</strong>te <strong>de</strong>l puño que indica el s<strong>en</strong>tido <strong>de</strong> ladirección. Ambas señales analógicas varían <strong>en</strong>tre 0V y 5V.• Puerto ISP: puerto utilizado para programar el microcontrolador y se conecta alprogramador AVRISP.• Salidas digitales: la salida 1 <strong>de</strong>l puerto B se utiliza para indicarle a la controladora <strong>de</strong>emerg<strong>en</strong>cia que realice una parada <strong>de</strong> emerg<strong>en</strong>cia y las salidas 0 y 2 <strong>de</strong>l puerto B seutilizan para iluminar los LEDs que indican el estado <strong>de</strong>l microcontrolador, estos son:o LED siempre <strong>en</strong>c<strong>en</strong>dido: el controlador está parado.o LED parpa<strong>de</strong>ando: el controlador está activo y controlando el vehículo.o LED apagado: se ha producido una parada <strong>de</strong> emerg<strong>en</strong>cia.• Entradas digitales: la <strong>en</strong>trada 0 <strong>de</strong>l puerto A está conectada a un pulsador y estepulsador se utiliza por motivos <strong>de</strong> seguridad. El funcionami<strong>en</strong>to es el sigui<strong>en</strong>te,cuando el controlador está activado este pulsador <strong>de</strong>be estar pulsado y si se llevamás <strong>de</strong> medio segundo sin ser pulsado <strong>en</strong>tonces el controlador realiza una parada <strong>de</strong>emerg<strong>en</strong>cia. También se utilizan las <strong>en</strong>tradas 0 y 1 <strong>de</strong>l puerto D para la lectura <strong>de</strong> lasseñales prov<strong>en</strong>i<strong>en</strong>tes <strong>de</strong> los <strong>en</strong>co<strong>de</strong>rs.


CAPITULO I. MEMORIA DESCRIPTIVA. 13Figura 8: Microcontrolador.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.bdmicro.com/mavric-iib/Se adjunta fichero con características técnicas y manual <strong>de</strong> instrucciones (este docum<strong>en</strong>tojunto con el resto <strong>de</strong> manuales pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong> el directorio Manuales <strong>de</strong>l CD adjunto aesta memoria)."mavric-iib(micro).pdf"1.3.2. INCLINÓMETRO.El Inclinómetro elegido es el mo<strong>de</strong>lo FAS-G <strong>de</strong> la Compañía MicroStrain. Este inclinómetro <strong>de</strong>360º ti<strong>en</strong>e una resolución m<strong>en</strong>or <strong>de</strong> 0.1 grados y una repetibilidad <strong>de</strong> 0.10 grados. A<strong>de</strong>máspo<strong>de</strong>mos comunicarnos con él mediante el puerto serie a una velocidad <strong>de</strong> 19200bps omediante una señal analógica (utilizando un convertidor D/A <strong>de</strong> 12 bits) cuya frecu<strong>en</strong>cia <strong>de</strong>refresco es la misma que la señal prov<strong>en</strong>i<strong>en</strong>te <strong>de</strong>l puerto serie. En nuestro caso se ha utilizadola señal analógica para medir la ori<strong>en</strong>tación <strong>de</strong>l vehículo, ya que t<strong>en</strong>íamos ocupado los 2puertos series que ti<strong>en</strong>e el microcontrolador (comunicaciones con el PC y con la placacontroladora <strong>de</strong> los motores).


CAPITULO I. MEMORIA DESCRIPTIVA. 14Figura 9: Inclinómetro.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.microstrain.com/fas-g.aspxSe adjunta fichero con características técnicas y manual <strong>de</strong> instrucciones."FASG_usermanual(inclinometro).pdf"1.3.3. ENCODERS.Para medir la velocidad <strong>de</strong> rotación <strong>de</strong> cada rueda se ha elegido el <strong>en</strong>co<strong>de</strong>r mo<strong>de</strong>lo E5S <strong>de</strong> lacompañía US Digital. Debido a que sólo estamos interesado <strong>en</strong> calcular la velocidad <strong>de</strong> lasruedas y no su posición, se ha utilizado únicam<strong>en</strong>te una <strong>de</strong> las 2 señales <strong>de</strong> los <strong>en</strong>co<strong>de</strong>rs ypara calcular <strong>de</strong> la velocidad lo que se hace es contar el número <strong>de</strong> pulsos <strong>de</strong> cada <strong>en</strong>co<strong>de</strong>rpor cada ciclo <strong>de</strong> control.Figura 10: Enco<strong>de</strong>r.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.usdigital.com/products/e5s/Hemos añadido un plano don<strong>de</strong> <strong>de</strong>tallamos cómo adaptar estos <strong>en</strong>co<strong>de</strong>rs a los motoresseleccionados. Para ello se diseñó un pequeño soporte <strong>en</strong> PVC para acoplar el <strong>en</strong>co<strong>de</strong>r <strong>en</strong> elinterior <strong>de</strong>l hueco trasero <strong>de</strong>l motor. El proceso es el sigui<strong>en</strong>te:• Desmontar tapa trasera <strong>de</strong>l motor.• Pegar el casquillo al eje <strong>de</strong>l motor con soldadura fría (el pegam<strong>en</strong>to metálico tardará 12horas <strong>en</strong> solidificar totalm<strong>en</strong>te).


CAPITULO I. MEMORIA DESCRIPTIVA. 15• Atornillar el cuerpo <strong>de</strong>l Enco<strong>de</strong>r al soporte <strong>de</strong> PVC.• Colocar el soporte <strong>de</strong> PVC y atornillar a los pernos que asoman <strong>en</strong> el interior <strong>de</strong>l motor.• Colorcar el disco <strong>de</strong>l <strong>en</strong>co<strong>de</strong>r, asegurarlo (el <strong>en</strong>co<strong>de</strong>r trae su propio <strong>de</strong>stornillador concabeza hall<strong>en</strong>), montar electrónica y <strong>en</strong>chufar cable <strong>de</strong> datos.• Cerrar tapa <strong>de</strong>l motor.Figura 11: Montaje <strong>de</strong>l <strong>en</strong>co<strong>de</strong>rAdjuntamos hoja <strong>de</strong> características técnicas <strong>de</strong>l <strong>en</strong>co<strong>de</strong>r:"e5s Data Sheet(<strong>en</strong>co<strong>de</strong>r).pdf"1.3.4. CONTROLADORA DE LOS MOTORES.Se ha elegido el mo<strong>de</strong>lo NPC-AX2550 <strong>de</strong> la casa RoboteQ, el cual se alim<strong>en</strong>ta a 24V y ti<strong>en</strong>esalida para 2 motores. Las consignas <strong>de</strong> control se le pue<strong>de</strong> especificar <strong>de</strong> 3 formas distintas:• Con señales PWM.• Con señales analógicas.• Con el puerto serie, a partir <strong>de</strong> un protocolo <strong>de</strong> comunicaciones.La opción que se ha utilizado ha sido la <strong>de</strong>l puerto serie, por lo que la controladora <strong>de</strong> losmotores convertirá las consignas g<strong>en</strong>eradas por el Microcontrolador sobre los dos motores <strong>de</strong>corri<strong>en</strong>te continua. La velocidad a la que se <strong>en</strong>vían datos es <strong>de</strong> 9600bps y se utiliza el sigui<strong>en</strong>teprotocolo:• En primer lugar se <strong>en</strong>vían una !A o !B para indicar a cual <strong>de</strong> los 2 motores nos estamosrefiri<strong>en</strong>do. Y <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong> si el carácter está <strong>en</strong> mayúscula o minúscula, el s<strong>en</strong>tido<strong>de</strong> la rueda será positivo o negativo.• En segundo lugar se le da un valor numérico <strong>en</strong> hexa<strong>de</strong>cimal <strong>en</strong>tre 0 y 7F para indicarla velocidad que se le quiere dar a cada uno <strong>de</strong> los motores.• Por último se transmite un retorno <strong>de</strong> carro.Finalm<strong>en</strong>te com<strong>en</strong>tar que a<strong>de</strong>más <strong>de</strong> la comunicación serie existe una línea digital para indicar<strong>de</strong>s<strong>de</strong> el microcontrolador hacia la controladora <strong>de</strong> los motores, que esta última pase a estado<strong>de</strong> parada <strong>de</strong> emerg<strong>en</strong>cia.


CAPITULO I. MEMORIA DESCRIPTIVA. 16En el fichero Anexo se adjunta <strong>de</strong>scripción <strong>de</strong> las características técnicas y guía rápida <strong>de</strong>instalación y operación."ax2550man17-020105 (driver).pdf"Figura 12: Controlador <strong>de</strong> Motores.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.npcrobotics.com/products/viewprod.asp?prod=59&cat=24&mo<strong>de</strong>=gfx1.3.6. CAJA DE LA ELECTRÓNICA.Se ha construido una caja <strong>de</strong> aluminio don<strong>de</strong> se ha instalado gran parte <strong>de</strong> la electrónicaanteriorm<strong>en</strong>te com<strong>en</strong>tada. En esta caja t<strong>en</strong>emos los sigui<strong>en</strong>tes compon<strong>en</strong>tes:• Placa <strong>de</strong>l microcontrolador.• Circuito conversor <strong>de</strong> t<strong>en</strong>siones: a partir <strong>de</strong> los 24V <strong>de</strong> las baterías obt<strong>en</strong>emos los 9V y5V necesarios para la electrónica.• Programador <strong>de</strong>l microcontrolador.• Todas las señales <strong>de</strong> <strong>en</strong>trada y salida <strong>de</strong>l microcontrolador.Figura 13: Caja <strong>de</strong> aluminio con la electrónica


CAPITULO I. MEMORIA DESCRIPTIVA. 17Por otra parte y con respecto a las conexiones, <strong>de</strong>cir que los <strong>en</strong>co<strong>de</strong>rs y el inclinómetro estánsiempre conectados a la caja <strong>de</strong> la electrónica y que el resto <strong>de</strong> conexiones se realizan a partir<strong>de</strong> 3 conectores DB-9 y un conector utilizado para la alim<strong>en</strong>tación. Cada uno <strong>de</strong> los conectoresDB-9 se utilizan para:• Conexión con la placa controladora <strong>de</strong> los motores.• Conexión con el <strong>en</strong>lace inalámbrico, el puño que da las consignas <strong>de</strong> dirección y la caja<strong>de</strong> control <strong>de</strong>l vehículo instalados ambos <strong>en</strong> la parte final <strong>de</strong> la barra vertical.• Conexión utilizada para la programación <strong>de</strong>l microcontrolador.Figura 14: Lateral <strong>de</strong> la caja <strong>de</strong> la electrónica1.3.7. CAJA DE CONTROL DEL VEHÍCULO.Esta caja <strong>de</strong> plástico está instalada sobre el manillar <strong>de</strong>l vehículo y está compuesta por:• Interruptor que activa o <strong>de</strong>sactiva la alim<strong>en</strong>tación <strong>de</strong> la placa controladora <strong>de</strong> motores ypor lo tanto <strong>de</strong> los motores.• Pulsador utilizado como medida <strong>de</strong> seguridad, a partir <strong>de</strong>l instante <strong>en</strong> el que elcontrolador está activado, si el pulsador lleva más <strong>de</strong> medio segundo sin estar pulsado,<strong>en</strong>tonces el control se para y el microcontrolador indica a la placa controladora <strong>de</strong> losmotores que realice una parada <strong>de</strong> emerg<strong>en</strong>cia.• LED rojo que indica el estado <strong>de</strong>l controlador, exist<strong>en</strong> 3 posibles estados:o Si el LED está <strong>en</strong>c<strong>en</strong>dido el controlador está parado.o Si el LED parpa<strong>de</strong>a, <strong>en</strong>tonces el control está activo.o Si el LED está apagado es que se ha producido una parada <strong>de</strong> emerg<strong>en</strong>cia.Figura 15: Caja <strong>de</strong> control <strong>de</strong>l vehículo


CAPITULO I. MEMORIA DESCRIPTIVA. 181.4. EQUIPOS AUXILIARES.1.4.1. CARGADOR DE BATERIAS.La función <strong>de</strong> este dispositivo será recargar las dos baterías <strong>de</strong> 12V <strong>de</strong>l sistema <strong>de</strong> pot<strong>en</strong>ciaprincipal. Se ha elegido el cargador CBP.1000/12 <strong>de</strong> la marca TRQ. Debido al gran tiempo <strong>de</strong>carga <strong>de</strong> las baterías (unas 12 horas), se han comprado 2 cargadores para que se puedancargar ambas a la vez.1.4.2. RADIO-MÓDEM.Figura 16: Cargador <strong>de</strong> baterías.Para comunicar el sistema <strong>de</strong> control <strong>de</strong> nuestro robot con el PC <strong>de</strong> supervisión, se utilizaráuna comunicación inalámbrica serie. Se ha elegido el Mo<strong>de</strong>lo X9220 Bluetooth <strong>de</strong> la compañíaWarwick Wireless. Esta comunicación inalámbrica es transpar<strong>en</strong>te tanto para el PC <strong>de</strong>supervisión como para el microcontrolador, es <strong>de</strong>cir, los dispositivos se comunican como sihubiera un cable serie <strong>en</strong>tre ellos. Este <strong>en</strong>lace inalámbrico está <strong>basado</strong> <strong>en</strong> tecnologíaBluetooth, ti<strong>en</strong>e un alcance <strong>de</strong> unos 100 metros <strong>en</strong> espacio abierto y se ha utilizado a unavelocidad <strong>de</strong> 19200bps, aunque pue<strong>de</strong> llegar a 115200bps.Figura 17: Radio-Mó<strong>de</strong>m.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.radiotelemetry.co.uk/WirelessMo<strong>de</strong>m.htm


CAPITULO I. MEMORIA DESCRIPTIVA. 19En el fichero Anexo se adjunta hoja <strong>de</strong> características técnicas."DS156 X9220Bluetooth (mo<strong>de</strong>m).pdf"1.4.3. SISTEMA DE PROGRAMACION DEL MICROCONTROLADOR.Para la programación <strong>de</strong> la placa microcontroladora es necesario utilizar el ProgramadorMo<strong>de</strong>lo AVRISP <strong>de</strong> la Compañía Atmel. Este programador ti<strong>en</strong>e la v<strong>en</strong>taja <strong>de</strong> ser muy baratoya que utiliza el protocolo <strong>de</strong> programación ISP (In System Programming) sin embargo nopermite la <strong>de</strong>puración <strong>de</strong> los programas como es el caso <strong>de</strong> los programadores con interfazJTAG.Figura 18: Sistema <strong>de</strong> Programación.Pue<strong>de</strong> <strong>en</strong>contrarse <strong>en</strong>:http://www.digikey.com/scripts/dksearch/dksus.dll?KeywordSearch1.4.4. PUÑO DE DIRECCIÓN.Se ha utilizado un puño <strong>de</strong> aceleración <strong>de</strong> las motos eléctricas para indicar las refer<strong>en</strong>cias <strong>en</strong>la dirección <strong>de</strong>l vehículo. Este puño está alim<strong>en</strong>tado a 5V y da una señal que varía <strong>en</strong>tre 0V y5V <strong>en</strong> función <strong>de</strong> la rotación <strong>de</strong> éste.Figura 19: Puño <strong>de</strong> dirección


CAPITULO I. MEMORIA DESCRIPTIVA. 201.5. EQUIPO COMPLETO.En la sigui<strong>en</strong>te figura aparece todo el equipo, formado por los distintos compon<strong>en</strong>tescom<strong>en</strong>tados <strong>en</strong> este capítulo y montado sobre la plataforma mecánica <strong>de</strong>l vehículo. A<strong>de</strong>más sepue<strong>de</strong> observar un portátil que hace <strong>de</strong> PC <strong>de</strong> supervisión con el <strong>en</strong>lace inalámbrico paracomunicarse con el microcontrolador instalado <strong>en</strong> el vehículo.Figura 20: Equipo completo


CAPITULO II. PRESUPUESTO. 21CAPITULO II. PRESUPUESTO.2.1. ESTRUCTURA Y TRACCION.Cantidad Unidad Descripción Precio Unitario Importe1 UD CHASIS compuesto por: 268€/UD 268,00€0,24 M2 - Placa <strong>de</strong> Aluminio 400x600x10mm €/M21,60 ML - Tubo <strong>de</strong> Aluminio ∅40mm €/ML8 HR - Mano <strong>de</strong> Obra y varios €/HR4 UD Tornillos Métrica 8mm <strong>de</strong> longitud 10 mm, 0,28€/UD 1,12€resist<strong>en</strong>cia 8,8 y cabeza DIN933,incluy<strong>en</strong>do aran<strong>de</strong>la Grower DIN127.4 UD Tornillos Métrica 8mm <strong>de</strong> longitud 16 mm, 0,28€/UD 1,12€resist<strong>en</strong>cia 8,8 y cabeza DIN933,incluy<strong>en</strong>do aran<strong>de</strong>la Grower DIN127 ytuerca DIN933 <strong>de</strong> 8mm.8 UD Tornillos 5/16-24-UNF <strong>de</strong> longitud 16 mm, 0,36€/UD 2,88€resist<strong>en</strong>cia 12,9 y cabeza DIN912.12 UD Tornillos 5/16-24-UNF <strong>de</strong> longitud 25 mm, 0,43€/UD 5,16€resist<strong>en</strong>cia 12,9 y cabeza DIN912.2 UD Ruedas neumáticas <strong>de</strong> 410 mm <strong>de</strong> 24,95€/UD 49,90€diámetro con cámara <strong>de</strong> aire y llanta <strong>de</strong>acero2 UD Adaptador Eje-Rueda NPC-PH448 <strong>de</strong> NPC 20,00€/UD 40,00€Robotics2 UD Motoreductor DC 24Vdc <strong>de</strong> relación 20:1 297,00€/UD 594,00€mo<strong>de</strong>lo NPC-T64 <strong>de</strong> NPC Robotics2 UD Batería NPC-B1412 <strong>de</strong> NPC Robotics 79,00€/UD 158,00€Suma Capítulo 2.2 1.120,18€2.2. ELECTRONICA.Cantidad Unidad Descripción Precio Unitario Importe1 UD Microcontrolador MAVRIC-IIB (mo<strong>de</strong>lo 139,00€/UD 139,00€MAV2BST) <strong>de</strong> la compañía BDMICRO1 UD Inclinómetro FAS-G <strong>de</strong> la Compañía 795,00€/UD 795,00€MicroStrain2 UD Enco<strong>de</strong>r E5s <strong>de</strong> la casa US Digital 51,00€/UD 102,00€1 UD Controlador <strong>de</strong> Motores DC NPC-AX2550<strong>de</strong> la casa RoboteQ499,00€/UD 499,00€Suma Capítulo 2.3 1.535,00€2.3. EQUIPOS AUXILIARES.Cantidad Unidad Descripción Precio Unitario Importe2 UD Cargador <strong>de</strong> Baterías 35,00€/UD 70,00€2 UD Radiomo<strong>de</strong>m X9220 Warwick Wireless 110€/UD 220,00€1 UD Sistema <strong>de</strong> Programación AVRISP <strong>de</strong> la 29,00€/UD 29,00€Compañía Atmel1 UD Cables y compon<strong>en</strong>tes electrónicos 40,00€/UD 40,00€1 UD Puño para las consignas <strong>de</strong> dirección 35,00€/UD 35,00€Suma Capítulo 2.4 394,00€


CAPITULO II. PRESUPUESTO. 222.4. OTROS CONCEPTOS.Cantidad Unidad Descripción Precio Unitario Importe48 HR Hora/Hombre <strong>de</strong> montaje e instalación 32,00€/HR 1.536,00€96 HR Hora/Hombre <strong>de</strong> programación y puesta <strong>en</strong> 42,00€/HR 4.032,00€marcha24 HR Hora/Hombre <strong>de</strong> pruebas y control <strong>de</strong> 52,00€/HR 1.248,00€calidad1 UD Redacción <strong>de</strong> Proyecto y confección <strong>de</strong>As-Builts1.500,00€/UD 1.500,00€Suma Capítulo 2.5 8.316,00€2.6. RESUMEN DEL PRESUPUESTO.Capítulo Descripción Importe2.1 Estructura y Tracción 1.122,182.2 Electrónica 1.535,002.3 Equipos Auxiliares 394,00Total Presupuesto Compon<strong>en</strong>tes 3051,18€2.4 Otros Conceptos 8.316,00Total Presupuesto 11.367,18€


CAPITULO III. PLANOS 23CAPITULO III. PLANOS.Todos los planos se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> el CD adjunto a la memoria <strong>en</strong> el directorio /Planos.3.1. ESTRUCTURA GENERAL.Estructura.dwg3.1.1. MOTORES.npc-t64(motor).pdf3.1.2. ADAPTADORES EJE-RUEDA.npc-ph448(hub).pdf3.1.3. DESPIECE DE LA ESTRUCTURA.Despiece.dwg3.1.2. ADAPTACION DE LOS ENCODERS A LOS MOTORES.Enco<strong>de</strong>rs.dwg


Escuela Superior <strong>de</strong> Ing<strong>en</strong>ieros <strong>de</strong> <strong>Sevilla</strong>SOFTWARE DESARROLLADO PARA EL MICROCONTROLADOR Y LAAPLICACIÓN DE PCAlberto PrietoAntidio ViguriaB<strong>en</strong>ito José VelaMirko FiacchiniRamón CanoTrabajo <strong>de</strong> los Cursos <strong>de</strong> Doctorado:Control No Lineal AplicadoSistema <strong>de</strong> Control No LinealRobótica Industrial


INDICE. 25INDICE.CAPITULO I. SOFTWARE DEL MICROCONTROLADOR............................................................261.1. INTRODUCCIÓN...........................................................................................................................261.2. ARQUITECTURA DE TINYOS ....................................................................................................261.3. ENTORNO DE DESARROLLO DE TINYOS...............................................................................261.4. EL LENGUAJE DE PROGRAMACIÓN NESC. ............................................................................271.4.1. MODELO DE PROGRAMACIÓN. ..........................................................................................281.5. ESTRUCTURA DEL PROGRAMA DESARROLLADO. .............................................................291.6. INSTALACIÓN DEL ENTORNO DE DESARROLLO.................................................................301.7. ¿CÓMO SE INTRODUCE UN NUEVO CONTROLADOR?. .......................................................311.8. COMPILACIÓN Y CARGA DE UN PROGRAMA. ......................................................................311.9. DOCUMENTACIÓN ADJUNTA...................................................................................................31CAPITULO II. SOFTWARE DE LA APLICACIÓN DE PC..............................................................322.1. INTRODUCCIÓN...........................................................................................................................322.2. OBJETIVOS....................................................................................................................................322.3. REQUISITOS MÍNIMOS. ..............................................................................................................332.3.1. HARDWARE.............................................................................................................................332.3.2. SOFTWARE..............................................................................................................................332.4. INSTALACIÓN. .............................................................................................................................332.5. DESINSTALACIÓN.......................................................................................................................332.6. CARACTERÍSTICAS Y MANEJO DEL MONITOR....................................................................342.6.1. USO. .........................................................................................................................................342.6.2. PLANTILLAS............................................................................................................................352.6.3. CONFIGURANDO LA COMUNICACIÓN. .............................................................................402.6.4. CONFIGURANDO LA REPRESENTACIÓN GRÁFICA..........................................................412.6.5. EXPORTANDO DATOS A MATLAB........................................................................................432.7. FUNCIONAMIENTO DE LOS ELEMENTOS PRINCIPALES. ...................................................432.7.1. INTERFAZ GRÁFICA. .............................................................................................................432.7.2. MÓDULO DE COMUNICACIONES. ......................................................................................432.7.3. PARSER XML...........................................................................................................................452.7.4. INTERFAZ MATLAB................................................................................................................46


CAPÍTULO I. SOFTWARE DEL MICROCONTROLADOR 26CAPITULO I. SOFTWARE DEL MICROCONTROLADOR.1.1. INTRODUCCIÓNEl software <strong>de</strong>l microcontrolador ha sido escrito bajo TinyOS que es un sistema operativo parasistemas embebidos. TinyOS, a<strong>de</strong>más ti<strong>en</strong>e la v<strong>en</strong>taja <strong>de</strong> ser “op<strong>en</strong> source” y ti<strong>en</strong>e unaarquitectura basada <strong>en</strong> compon<strong>en</strong>tes que permite una rápida implem<strong>en</strong>tación e innovaciónmi<strong>en</strong>tras que se minimiza el tamaño <strong>de</strong>l código, lo cual es muy importante <strong>de</strong>bido a la granrestricción <strong>de</strong> cantidad <strong>de</strong> memoria que existe <strong>en</strong> los sistemas embebidos. El sistema operativoTinyOS está escrito <strong>en</strong> NesC, un nuevo l<strong>en</strong>guaje <strong>de</strong> programación para programación <strong>de</strong>aplicaciones estructuradas <strong>basado</strong> <strong>en</strong> compon<strong>en</strong>tes, cuyas características se explicarán mása<strong>de</strong>lantePor otra parte la ejecución <strong>de</strong>l sistema está dirigida por ev<strong>en</strong>tos, lo cual permite un control fino<strong>de</strong>l consumo <strong>en</strong>ergético y una flexibilidad <strong>en</strong> la ejecución <strong>de</strong> tareas que es necesaria <strong>de</strong>bido ala naturaleza impre<strong>de</strong>cible <strong>de</strong> las comunicaciones inalámbricas y las interfaces con el mundoreal.1.2. ARQUITECTURA DE TINYOSLos objetivos <strong>de</strong>l sistema operativo TinyOS son:• Soportar sistemas embebidos <strong>en</strong> red, lo cual implica:o Po<strong>de</strong>r t<strong>en</strong>er al sistema dormido pero vigilante a estímulos.o El ciclo <strong>de</strong>l sistema <strong>de</strong>be ser: estar dormido lo máximo posible, <strong>de</strong>spertarcuando haya algún estímulo exterior, realizar los cálculos y tareas necesarios yvolver a dormir lo más rápido posible.o Ser fácilm<strong>en</strong>te escalable y compatible con un gran número <strong>de</strong> nodos.• Soporte <strong>de</strong> los avances tecnológicos, lo cual implica cada vez más pequeño, barato yque consuma m<strong>en</strong>os.De estos objetivos se concluye que el diseño <strong>de</strong>be estar <strong>basado</strong> <strong>en</strong> un núcleo multi-hilo quesea extremadam<strong>en</strong>te simple y efici<strong>en</strong>te. Este núcleo ti<strong>en</strong>e 2 tipos estructuras:• Ev<strong>en</strong>tos: pued<strong>en</strong> interrumpir a las tareas, se ejecutan cuando se produce un ev<strong>en</strong>tohardware y <strong>de</strong>b<strong>en</strong> realizar pequeñas cantida<strong>de</strong>s <strong>de</strong> cálculos.• Tareas: no son temporalm<strong>en</strong>te críticas, suel<strong>en</strong> utilizar mucho mayor tiempo <strong>de</strong> cálculoque los ev<strong>en</strong>tos, a<strong>de</strong>más las tareas no se interrump<strong>en</strong> <strong>en</strong>tre ellas por lo que lasigui<strong>en</strong>te tarea sólo se ejecuta cuando termina la anterior (esto simplifica el núcleo <strong>de</strong>lsistema al sólo necesitar una única pila).1.3. ENTORNO DE DESARROLLO DE TINYOSEn principio, el <strong>en</strong>torno <strong>de</strong> <strong>de</strong>sarrollo se ti<strong>en</strong>e que utilizar bajo Linux y se necesita una serie <strong>de</strong>paquetes para su utilización <strong>en</strong>tre los que <strong>de</strong>stacan:• La máquina virtual <strong>de</strong> Java: para la ejecución <strong>de</strong> ciertas aplicaciones gráficas como elsimulador TinyViz, que se com<strong>en</strong>tará más a<strong>de</strong>lante.• Avr-gcc: compilador cruzado que compila <strong>de</strong> C a l<strong>en</strong>guaje <strong>en</strong>samblador para losmicroprocesadores <strong>de</strong> 8 bits <strong>de</strong> Atmel.• Compilador para Nesc: compilador que pasa <strong>de</strong>l l<strong>en</strong>guaje NesC a C.Sin embargo también se pue<strong>de</strong> instalar todo este “<strong>en</strong>torno <strong>de</strong> <strong>de</strong>sarrollo” bajo Windowsutilizando el emulador Cygwin.Una vez instalado este <strong>en</strong>torno, nos damos cu<strong>en</strong>ta que <strong>en</strong> realidad el sistema operativo TinyOSno es más que un conjunto <strong>de</strong> ficheros que implem<strong>en</strong>tan una serie <strong>de</strong> funcionalida<strong>de</strong>s que nosabstra<strong>en</strong> <strong>de</strong>l bajo nivel <strong>de</strong>l microcontrolador a la hora <strong>de</strong> <strong>de</strong>sarrollar una aplicación. Estosficheros están ord<strong>en</strong>ados por directorios, las cuales se <strong>de</strong>scrib<strong>en</strong> a continuación:• apps: directorio don<strong>de</strong> se guardan todas las aplicaciones que trae por <strong>de</strong>fecto el<strong>en</strong>torno y que pued<strong>en</strong> servir para <strong>en</strong>trar <strong>en</strong> contacto con el sistema. A<strong>de</strong>más <strong>de</strong>beríaser aquí don<strong>de</strong> guardáramos nuestras propias aplicaciones.• doc: directorio <strong>de</strong> docum<strong>en</strong>tación don<strong>de</strong> se incluye un tutorial introductorio a TinyOS yuna serie <strong>de</strong> ficheros sobre distintos temas. A<strong>de</strong>más el <strong>en</strong>torno <strong>de</strong> <strong>de</strong>sarrollo trae una


CAPÍTULO I. SOFTWARE DEL MICROCONTROLADOR 27herrami<strong>en</strong>ta <strong>de</strong> creación automática <strong>de</strong> docum<strong>en</strong>tación para las aplicaciones y será <strong>en</strong>este directorio don<strong>de</strong> se guar<strong>de</strong> esta docum<strong>en</strong>tación.• tools: directorio don<strong>de</strong> están distintas herrami<strong>en</strong>tas <strong>de</strong> <strong>de</strong>sarrollo como el simuladorTinyViz, programas para la comunicación <strong>en</strong>tre el PC y los nodos <strong>de</strong> la red <strong>de</strong>s<strong>en</strong>sores, programas <strong>de</strong> monitorización <strong>de</strong> la red, etc.• tos: directorio don<strong>de</strong> se implem<strong>en</strong>ta el núcleo <strong>de</strong>l sistema operativo. Está dividido, a suvez, <strong>en</strong> difer<strong>en</strong>te directorios:ointerfaces: <strong>en</strong> este directorio se guardan los interfaces. Los interfaces <strong>de</strong>fin<strong>en</strong>una especie <strong>de</strong> API que es implem<strong>en</strong>tada por un módulo y que pue<strong>de</strong> serusada por cualquier aplicación (para más información ver el apartado sobeNesC)o lib: directorio don<strong>de</strong> aparec<strong>en</strong> librerías listas para ser usadas por cualquieraplicación don<strong>de</strong> se implem<strong>en</strong>tan contadores, colas, protocolos <strong>de</strong> cifrado(TinySec), sistema embebido <strong>de</strong> bases <strong>de</strong> datos (TinyDB).o platform: <strong>en</strong> este directorio aparece la implem<strong>en</strong>tación a bajo nivel que es<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong> la plataforma que se utilice y sobre todo <strong>de</strong>l microcontroladorque se vaya a utilizar.o s<strong>en</strong>sorboards: implem<strong>en</strong>tación a bajo nivel <strong>de</strong> las placas <strong>de</strong> expansión cons<strong>en</strong>sores que exist<strong>en</strong> para las difer<strong>en</strong>tes placas.o system: <strong>en</strong> este directorio está el código <strong>de</strong>l núcleo <strong>de</strong>l sistema y don<strong>de</strong> seimplem<strong>en</strong>tan las funciones es<strong>en</strong>ciales para su funcionami<strong>en</strong>to.otypes: <strong>en</strong> este directorio aparec<strong>en</strong> una serie <strong>de</strong> ficheros don<strong>de</strong> se implem<strong>en</strong>tanlos distintos tipos que se utilizan <strong>en</strong> este sistema.Figura 21: Ejemplo <strong>de</strong> estructura <strong>de</strong> una aplicación creado automáticam<strong>en</strong>te por la herrami<strong>en</strong>ta <strong>de</strong>docum<strong>en</strong>tación1.4. EL LENGUAJE DE PROGRAMACIÓN NESC.Como se dijo anteriorm<strong>en</strong>te el código <strong>de</strong> este sistema operativo está escrito <strong>en</strong> el l<strong>en</strong>guajeNesC, este l<strong>en</strong>guaje soporta el diseño <strong>de</strong> TinyOS, formado por ev<strong>en</strong>tos y tareas. En lasigui<strong>en</strong>te figura se pue<strong>de</strong> observar los pasos <strong>de</strong> compilación <strong>de</strong>s<strong>de</strong> la aplicación <strong>en</strong> NesC hastael ejecutable.Figura 22: Pasos <strong>de</strong> compilación <strong>de</strong> una aplicación <strong>en</strong> NesC


CAPÍTULO I. SOFTWARE DEL MICROCONTROLADOR 29Figura 23: Estructura jerárquica <strong>de</strong> la unión <strong>de</strong> compon<strong>en</strong>tesFinalm<strong>en</strong>te <strong>de</strong>cir que el s<strong>en</strong>tido <strong>de</strong> los comandos es <strong>de</strong> la capa superior a la inferior y el controlvuelve al que llama al comando, mi<strong>en</strong>tras que con los ev<strong>en</strong>tos es completam<strong>en</strong>te al contrario.1.5. ESTRUCTURA DEL PROGRAMA DESARROLLADO.Para el <strong>de</strong>sarrollo <strong>de</strong> la aplicación se han t<strong>en</strong>ido que programar diversas interfaces para elcontrol <strong>de</strong> los distintos dispositivos, estas interfaces son:• Enco<strong>de</strong>r: función que se ejecuta cuando llega una pulso <strong>de</strong>l <strong>en</strong>co<strong>de</strong>r (interrupciónhardware por flanco <strong>de</strong> subida).• Puerto serie: funciones para transmitir un byte por el puerto serie y funciones que seejecutan tanto cuando llega un dato por el puerto serie como cuando se termina <strong>de</strong>transmitir un byte. Se han utilizado los 2 puertos serie:ooPara la comunicación con el PC: 19200bps, 8 bits, 1 bit <strong>de</strong> stop, sin pardidad nicontrol <strong>de</strong> flujo.Para la comunicación con la controladora <strong>de</strong> los motores: 9600bps, 7 bits, 1 bit<strong>de</strong> stop, paridad par y sin control <strong>de</strong> flujo.• Convertidor A/D: función para obt<strong>en</strong>er el dato digitalizado a partir <strong>de</strong> una señalanalógica. Este convertidor ti<strong>en</strong>e como refer<strong>en</strong>cia una fu<strong>en</strong>te interna <strong>de</strong> t<strong>en</strong>sión <strong>de</strong>4,97V por lo que las señales analógicas que se utilic<strong>en</strong> <strong>de</strong>b<strong>en</strong> estar <strong>en</strong>tre 0V y 4,97V.Por último, com<strong>en</strong>tar que esta interfaz se ha utilizado para leer los datos <strong>de</strong>linclinómetro y las refer<strong>en</strong>cias <strong>de</strong> dirección dadas por el puño.• Temporizador: interfaz para controlar la temporización <strong>de</strong>l programa. Esta interfaz seutiliza para crear el reloj <strong>de</strong> tiempo real a 10ms que es la base <strong>de</strong>l ciclo <strong>de</strong> control ydon<strong>de</strong> se implem<strong>en</strong>tan los distintos controladores.


CAPÍTULO I. SOFTWARE DEL MICROCONTROLADOR 30Figura 24: Módulos <strong>de</strong>l programa <strong>de</strong>l microcontroladorEn el programa exist<strong>en</strong> 2 bloques importantes:• Función <strong>de</strong> lectura <strong>de</strong> datos por el puerto serie comunicado al PC(ByteComm.rxByteReady2PC): está función es la que gestiona la comunicación con elprograma monitor ubicado <strong>en</strong> el PC. Por lo tanto está función cambia el estado <strong>de</strong>lmicrocontrolador, los cuales son: parado (para el ciclo <strong>de</strong> control y los motores),funcionando (ejecuta el controlador seleccionado) y parada <strong>de</strong> emerg<strong>en</strong>cia (para elcontrolador, los motores y activa la parada <strong>de</strong> emerg<strong>en</strong>cia <strong>de</strong> la controladora <strong>de</strong> losmotores). A<strong>de</strong>más esta función carga los valores <strong>de</strong> los distintos controladores y <strong>en</strong>víalos datos al PC cuando recibe una petición. Por último esta función implem<strong>en</strong>ta unmodo <strong>de</strong>bug para utilizar con el hyperterminal muy útil para <strong>de</strong>purar. Para ello seconfigura el programa hyperterminal a 19200bps y se pulsa la tecla ‘d’, <strong>en</strong>tonces acontinuación aparecerá el valor <strong>de</strong> las variables que se hayan programado para estaopción.• Ciclo <strong>de</strong> control (RTTimer.fired): cuando el microcontrolador está funcionando seejecuta un ciclo <strong>de</strong> control <strong>de</strong> 10ms. Es aquí don<strong>de</strong> se implem<strong>en</strong>tan los controladores yfunciona <strong>de</strong> la sigui<strong>en</strong>te manera:o En primer lugar se le<strong>en</strong> los valores <strong>de</strong> los <strong>en</strong>co<strong>de</strong>rs y se calculan lasvelocida<strong>de</strong>s <strong>de</strong> las ruedas.o En segundo lugar se actualizan las variables <strong>de</strong> control: inclinación, variación<strong>de</strong> la inclinación y velocidad lineal <strong>de</strong>l vehículo.o Se ejecuta el control y se realizan los cambios <strong>de</strong> unida<strong>de</strong>s para calcular lavelocidad a aplicar a cada rueda.o Finalm<strong>en</strong>te se aplica las nuevas velocida<strong>de</strong>s a cada rueda y por último se pi<strong>de</strong>que se captur<strong>en</strong> nuevos datos <strong>de</strong> los s<strong>en</strong>sores <strong>de</strong> inclinación y <strong>de</strong>l puño que dala refer<strong>en</strong>cia <strong>de</strong> inclinación para ser usados <strong>en</strong> el sigui<strong>en</strong>te ciclo <strong>de</strong> control.1.6. INSTALACIÓN DEL ENTORNO DE DESARROLLO.Para instalar el <strong>en</strong>torno <strong>de</strong> <strong>de</strong>sarrollo hay que ejecutar el instalable que vi<strong>en</strong>e <strong>en</strong> el directorio/Software/Microcontrolador/Entorno <strong>de</strong> Desarrollo <strong>de</strong>l CD adjunto a la memoria (instalacióncompleta). A continuación, reemplazar el directorio /tinyos-1.x que está (<strong>en</strong> el disco don<strong>de</strong> estéinstalado el sistema operativo) <strong>en</strong> el directorio /tinyos/cygwin/opt por el código <strong>de</strong>lmicrocontrolador que se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> el directorio /Software/Microcontrolador/Codigo <strong>en</strong> el CDadjunto a esta memoria. Una vez instalado es importante reconocer:• Ejecutable <strong>de</strong>l shell <strong>de</strong>l programa Cygwin (posiblem<strong>en</strong>te se cree un acceso directo <strong>en</strong>el escritorio <strong>de</strong>l ord<strong>en</strong>ador).• Directorio <strong>de</strong> trabajo que será (d<strong>en</strong>tro <strong>de</strong>l disco duro don<strong>de</strong> esté instalado el sistemaoperativo): /tinyos/cygwin/opt/tinyos-1.x/apps/PepeCarro.


CAPÍTULO I. SOFTWARE DEL MICROCONTROLADOR 311.7. ¿CÓMO SE INTRODUCE UN NUEVO CONTROLADOR?.En primer lugar recordar que cada controlador <strong>de</strong>be t<strong>en</strong>er su id<strong>en</strong>tificador, actualm<strong>en</strong>te hay 2utilizados el 1 y el 2, por lo tanto los nuevos se <strong>de</strong>b<strong>en</strong> numerar <strong>de</strong>l 3 para a<strong>de</strong>lante. A<strong>de</strong>máshay que <strong>de</strong>cir que al introducir un nuevo controlador se <strong>de</strong>be especificar: el controlador <strong>en</strong> sí,los parámetros que se van a cargar <strong>de</strong>s<strong>de</strong> el PC y los datos que se quier<strong>en</strong> mandar al PCcuando éste se lo especifique. Por lo tanto, para introducir un nuevo controlador hay que seguirlos sigui<strong>en</strong>tes pasos:• Ir a la función que implem<strong>en</strong>ta el ciclo <strong>de</strong> control (RTTimer.fired) e ir a un switch don<strong>de</strong>se elige el controlador <strong>en</strong> función <strong>de</strong> su código.• Crear un case nuevo e implem<strong>en</strong>tar el controlador.• Ir a la función LoadData y crear un case nuevo don<strong>de</strong> se especifiqu<strong>en</strong> el número y eltipo <strong>de</strong> datos que se van a cargar <strong>de</strong>s<strong>de</strong> el PC. A<strong>de</strong>más hay que cambiar el valor <strong>de</strong> lasvariables num_var_int_controller_load y num_var_double_controller_load (esto se <strong>de</strong>behacer al final <strong>de</strong> la función que recibe los datos <strong>de</strong>l PC, ByteComm.rxByteReady2PC).• Finalm<strong>en</strong>te ir a la función S<strong>en</strong>dData y crear un nuevo case don<strong>de</strong> se especifiqu<strong>en</strong> elnúmero y el tipo <strong>de</strong> datos a mandar hacia el PC. A<strong>de</strong>más hay que cambiar el valor <strong>de</strong>las variables num_var_int_controller_s<strong>en</strong>d y num_var_double_controller_s<strong>en</strong>d (esto se<strong>de</strong>be hacer d<strong>en</strong>tro <strong>de</strong>l case SEND_LOG <strong>en</strong> la función que recibe datos <strong>de</strong>l PC,ByteComm.rxByteReady2PC).1.8. COMPILACIÓN Y CARGA DE UN PROGRAMA.Para la compilación y carga <strong>de</strong>l nuevo programa hay que seguir los sigui<strong>en</strong>tes pasos:• Quitar la alim<strong>en</strong>tación al microcontrolador y <strong>de</strong>sconectar los dos cables (el que estáconectado al <strong>en</strong>lace inalámbrico y el que está conectado a la controladora <strong>de</strong> motores).• Conectar un cable serie <strong>de</strong>l PC (COM1) al conector DB9 hembra <strong>de</strong>l microcontrolador y<strong>de</strong>spués alim<strong>en</strong>tar el microcontrolador <strong>de</strong> nuevo.• Ejecutar el shell <strong>de</strong>l programa Cygwin e ir al directorio <strong>de</strong> trabajo (opt/tinyos-1.x/apps/PepeCarro).• Ejecutar el archivo por lotes ./progPPCarro y comprobar que no se produce ningúnerror <strong>de</strong> compilación porque sino se cargará el programa anterior y no el actual.• Finalm<strong>en</strong>te <strong>de</strong>sconectar la alim<strong>en</strong>tación y el cable serie que une al PC y conectar d<strong>en</strong>uevo tanto la alim<strong>en</strong>tación como los conectores <strong>de</strong>l <strong>en</strong>lace inalámbrico y <strong>de</strong> lacontroladora <strong>de</strong> motores.1.9. DOCUMENTACIÓN ADJUNTA.En el CD adjunto <strong>en</strong> el directorio /Software/Microcontrolador/Docum<strong>en</strong>tación se <strong>en</strong>cu<strong>en</strong>tra unadocum<strong>en</strong>tación completa <strong>de</strong>l programa explicado anteriorm<strong>en</strong>te.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 32CAPITULO II. SOFTWARE DE LA APLICACIÓN DE PC.2.1. INTRODUCCIÓN.Para la realización <strong>de</strong> experim<strong>en</strong>tos útiles, es necesario t<strong>en</strong>er un medio fiable para monitorizary almac<strong>en</strong>ar los datos g<strong>en</strong>erados por los mismos. En el caso <strong>de</strong> una plataforma móvil, haybásicam<strong>en</strong>te dos opciones, con sus respectivas v<strong>en</strong>tajas e inconv<strong>en</strong>i<strong>en</strong>tes: una primera, es eluso <strong>de</strong> una unidad <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to montada sobre el mismo vehículo, y la otra es que seubique <strong>en</strong> un emplazami<strong>en</strong>to estático.El primer planteami<strong>en</strong>to, a nivel <strong>de</strong> comunicaciones es más s<strong>en</strong>cillo, puesto que no hay, <strong>en</strong>principio, restricciones <strong>de</strong> tiempo <strong>en</strong> el proceso <strong>de</strong> <strong>de</strong>scarga <strong>de</strong> la información, puesto que sepue<strong>de</strong> hacer fuera <strong>de</strong> línea. El inconv<strong>en</strong>i<strong>en</strong>te principal <strong>de</strong> dicho planteami<strong>en</strong>to es la necesidad<strong>de</strong> <strong>de</strong>sarrollar y probar elem<strong>en</strong>tos adicionales para el almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> información.A<strong>de</strong>más, <strong>de</strong> todas formas hay que poner <strong>en</strong> marcha un sistema <strong>de</strong> <strong>de</strong>scarga <strong>de</strong> datos. Por otraparte, impi<strong>de</strong> la monitorización <strong>en</strong> tiempo real <strong>de</strong> la plataforma, empeorando así la capacidadpara <strong>de</strong>tectar problemas <strong>en</strong> el funcionami<strong>en</strong>to, que podrían afectar a la seguridad <strong>de</strong>l piloto <strong>de</strong>pruebas.El segundo planteami<strong>en</strong>to, algo más complejo <strong>en</strong> principio, permite <strong>de</strong>sarrollar una arquitecturamucho más versátil, puesto que la unidad externa <strong>de</strong> monitorización pue<strong>de</strong> ser un PC o unportátil, añadi<strong>en</strong>do, <strong>de</strong> <strong>en</strong>trada, todas las características <strong>de</strong> funcionami<strong>en</strong>to que estosdispositivos son capaces <strong>de</strong> soportar. La monitorización <strong>en</strong> tiempo real, así como laconfiguración <strong>de</strong>l software <strong>de</strong> control ejecutado sobre la plataforma, permit<strong>en</strong> un más fácil<strong>de</strong>sarrollo <strong>de</strong> los experim<strong>en</strong>tos a realizar. Por tanto, éste es el planteami<strong>en</strong>to escogido.2.2. OBJETIVOS.Los objetivos marcados para la aplicación para PC son los sigui<strong>en</strong>tes:• Monitorización, <strong>en</strong> tiempo real, tanto <strong>de</strong> las medidas <strong>de</strong> los s<strong>en</strong>sores, como <strong>de</strong> lasseñales <strong>de</strong> control, a<strong>de</strong>más <strong>de</strong> las variables intermedias <strong>de</strong>l algoritmo <strong>de</strong> control que seesté utilizando.• Gran capacidad <strong>de</strong> repres<strong>en</strong>tación <strong>de</strong> la información, haci<strong>en</strong>do uso <strong>de</strong> métodosanalógicos, como agujas y barras, como digitales, con displays <strong>de</strong> siete segm<strong>en</strong>tos.• Puesto que se necesita visualizar la evolución temporal <strong>de</strong> las señales, es necesariauna forma adicional <strong>de</strong> repres<strong>en</strong>tación, como por ejemplo una pantalla con el formato<strong>de</strong> un osciloscopio digital.• Capacidad para exportar a Matlab las muestras recibidas, para su análisis posterior.• Capacidad para cambiar el estado <strong>de</strong> funcionami<strong>en</strong>to <strong>de</strong> la plataforma. Los estadosnecesarios son:1. Parada.2. Carga <strong>de</strong> controlador.3. Arranque <strong>de</strong> controlador.4. Parada <strong>de</strong> emerg<strong>en</strong>cia.• Comunicación inalámbrica con el vehículo, ya sea WLAN o Bluetooth.• Manejo s<strong>en</strong>cillo <strong>de</strong> los parámetros <strong>de</strong> los controladores que se quieran utilizar,pudi<strong>en</strong>do modificarlos y cargarlos <strong>en</strong> la plataforma <strong>de</strong> forma cómoda, por medio <strong>de</strong> unsistema <strong>de</strong> asist<strong>en</strong>tes <strong>basado</strong>s <strong>en</strong> v<strong>en</strong>tana. Toda esta información se <strong>de</strong>beráalmac<strong>en</strong>ar <strong>de</strong> forma coher<strong>en</strong>te, ya sea <strong>en</strong> una base <strong>de</strong> datos o por medio <strong>de</strong> plantillas,por ejemplo con formato XML.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 332.3. REQUISITOS MÍNIMOS.Para un correcto funcionami<strong>en</strong>to <strong>de</strong>l software <strong>de</strong> monitorización <strong>de</strong>sarrollado, se recomi<strong>en</strong>danlas características mínimas sigui<strong>en</strong>tes:2.3.1. HARDWARE.• CPU 950 MHz o superior.• 256 MB <strong>de</strong> memoria RAM.• Puerto serie libre, o puerto USB libre (necesario adaptador a puerto serie).• Unidad <strong>de</strong> comunicación inalámbrica por Bluetooth con interfaz para puerto serie,configurada a 19200 bps.2.3.2. SOFTWARE.• Sistema Operativo Windows 2000 o Windows WP.2.4. INSTALACIÓN.El CD adjunto conti<strong>en</strong>e el programa <strong>de</strong> instalación SETUP.EXE. Antes <strong>de</strong> ejecutarlo asegúrese<strong>de</strong> <strong>de</strong>sactivar su software antivirus y espía, puesto que algunos <strong>de</strong> éstos pued<strong>en</strong> dar falsospositivos con el programa <strong>de</strong> instalación. Cierre las <strong>de</strong>más aplicaciones antes <strong>de</strong> com<strong>en</strong>zar.Ejecute el programa <strong>de</strong> instalación, y siga las instrucciones que se muestran <strong>en</strong> pantalla. Unavez finalizado el proceso <strong>de</strong> instalación, t<strong>en</strong>drá una nueva <strong>en</strong>trada <strong>en</strong> su lista <strong>de</strong> programas (<strong>en</strong>el botón <strong>de</strong> Inicio, Programas), con el icono <strong>de</strong> la aplicación:2.5. DESINSTALACIÓN.Des<strong>de</strong> el panel <strong>de</strong> control <strong>de</strong> Windows, pinche <strong>en</strong> Agregar o quitar programas, y seleccione laaplicación <strong>de</strong> monitorización. Pinche <strong>en</strong> quitar, y siga los pasos que se muestran <strong>en</strong> pantalla. Si<strong>de</strong>sea conservar las plantillas XML <strong>de</strong> controladores g<strong>en</strong>eradas, así como las muestras paraMatlab, cópielas antes <strong>en</strong> otra ubicación distinta a la que utiliza el monitor.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 342.6. CARACTERÍSTICAS Y MANEJO DEL MONITOR.2.6.1. USO.El proceso normal <strong>de</strong> uso será:1. Crear o cargar una plantilla <strong>de</strong> controlador <strong>de</strong> disco.2. Configurar la conexión con el PPCarro, seleccionando el puerto al que se ti<strong>en</strong>econectado.3. Poner al PPCarro <strong>en</strong> modo PARADA.4. Cargar el controlador <strong>en</strong> el PPCarro.5. Configurar la adquisición <strong>de</strong> datos.6. Com<strong>en</strong>zar la captura <strong>de</strong> datos.7. Activar el controlador <strong>en</strong> el PPCarro.8. Finalizar la captura <strong>de</strong> datos y guardar las muestras a fichero.9. Poner al PPCarro <strong>en</strong> modo PARADA.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 352.6.2. PLANTILLAS.Las plantillas se almac<strong>en</strong>an <strong>en</strong> disco <strong>en</strong> ficheros *.pla, utilizando XML para estructurar lainformación. Las mismas constan <strong>de</strong> 3 partes difer<strong>en</strong>ciadas:1. CabeceraConti<strong>en</strong>e el nombre <strong>de</strong> la misma, así como el id<strong>en</strong>tificador numérico <strong>de</strong>l controlador quese quiere utilizar (será único para cada controlador, puesto que lo utilizará el PPCarropara id<strong>en</strong>tificar el algoritmo a utilizar, y podrá valer <strong>de</strong> 1 a 255).2. Parámetros <strong>de</strong> TransmisiónPodrá cont<strong>en</strong>er 0 o más parámetros, cuyos campos obligatorios son:a. Nombre. Nombre <strong>de</strong>l parámetro.b. Tipo. ENTERO o REAL.c. Valor. Valor <strong>de</strong>l parámetro.A<strong>de</strong>más podrá t<strong>en</strong>er 2 parámetros opcionales, que condicionarán el valor posible <strong>de</strong>lparámetro:d. Valor Mínimo.e. Valor Máximo.f. Nombre. Nombre <strong>de</strong>l parámetro.3. Parámetros <strong>de</strong> RecepciónPodrá cont<strong>en</strong>er 0 o más parámetros, cuyos campos obligatorios son:a. Nombre. Nombre <strong>de</strong>l parámetro.b. Tipo. ENTERO o REAL.NOTA: Para que el salpica<strong>de</strong>ro muestre los cambios <strong>en</strong> velocidad e inclinación <strong>de</strong>lPPCarro, es necesario que los tres primeros parámetros <strong>de</strong> recepción sean<strong>de</strong>finidos como reales, con los nombres sigui<strong>en</strong>tes:1) inclinacion2) vizq3) v<strong>de</strong>r


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 362.6.2.1. CARGA DE PLANTILLA EXISTENTE.En el m<strong>en</strong>ú , seleccione . Sólo ti<strong>en</strong>e que seleccionarla <strong>de</strong> unalista, y el sistema la cargará.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 372.6.2.2. CREACIÓN DE PLANTILLA.Puesto que no se presupone familiaridad <strong>de</strong>l usuario con XML, se han <strong>de</strong>sarrollado un conjunto<strong>de</strong> asist<strong>en</strong>tes que permit<strong>en</strong>, <strong>de</strong> forma intuitiva, crear y modificar una plantilla, <strong>de</strong> forma visual.Para crear una plantilla, <strong>en</strong> el m<strong>en</strong>ú , seleccione . Se mostrará unasist<strong>en</strong>te <strong>en</strong> el que habrá que introducir, <strong>de</strong> forma obligatoria, el nombre y el id<strong>en</strong>tificador, <strong>en</strong>los cuadros <strong>de</strong> texto correspondi<strong>en</strong>tes. A<strong>de</strong>más, pulsando sobre las tablas <strong>de</strong> parámetros <strong>de</strong>transmisión y recepción se pued<strong>en</strong> añadir, quitar y modificar los parámetros que se quieran(todo ello por medio <strong>de</strong> s<strong>en</strong>dos asist<strong>en</strong>tes).Una vez hecho esto, pulse , y se mostrará el diálogo correspondi<strong>en</strong>te. Introduzca elnombre con el que quiere que se guar<strong>de</strong> el fichero, y seguidam<strong>en</strong>te pulse .


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 382.6.2.3. MODIFICACIÓN DE PLANTILLA CARGADA.Para modificar una plantilla ya cargada, <strong>en</strong> el m<strong>en</strong>ú , seleccione . Se mostrará un asist<strong>en</strong>te con el mismo funcionami<strong>en</strong>to <strong>de</strong>l <strong>de</strong> crear una plantilla,pero con los campos <strong>de</strong> la plantilla cargada. Sólo t<strong>en</strong>drá que pulsar con el ratón (botón<strong>de</strong>recho), y seguir el proceso <strong>de</strong>scrito más arriba.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 39


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 402.6.3. CONFIGURANDO LA COMUNICACIÓN.Lo único que hay que hacer es, <strong>de</strong>s<strong>de</strong> el m<strong>en</strong>ú , seleccionar , y seguidam<strong>en</strong>te escoger el puerto serie al que se ti<strong>en</strong>e conectado el PPCarro.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 412.6.4. CONFIGURANDO LA REPRESENTACIÓN GRÁFICA.A<strong>de</strong>más <strong>de</strong> los indicadores <strong>de</strong> la parte inferior <strong>de</strong> la v<strong>en</strong>tana principal <strong>de</strong> la aplicación, se haincorporado un osciloscopio interactivo para facilitar la monitorización <strong>de</strong> señales adicionales.Las señales que aquí se pued<strong>en</strong> mostrar son las <strong>de</strong>finidas como parámetros <strong>de</strong> recepción <strong>en</strong> laplantilla <strong>de</strong>l controlador que se quiere utilizar. Por ello, es necesario t<strong>en</strong>er cargada unaplantilla antes <strong>de</strong> po<strong>de</strong>r utilizar esta utilidad.Una vez que se t<strong>en</strong>ga cargada una plantilla, se pue<strong>de</strong> configurar cuáles <strong>de</strong> los parámetros <strong>de</strong>recepción se quier<strong>en</strong> visualizar, así como el color <strong>de</strong> su trazada. Para ello, se acce<strong>de</strong> alasist<strong>en</strong>te <strong>de</strong> configuración <strong>de</strong>s<strong>de</strong> el m<strong>en</strong>ú , .En la lista <strong>de</strong> parámetros que aparec<strong>en</strong>, se marcan los que se quier<strong>en</strong> mostrar. A<strong>de</strong>más, paraseleccionar el color <strong>de</strong> repres<strong>en</strong>tación <strong>de</strong> cada uno <strong>de</strong> ellos, pulse, con el botón <strong>de</strong>recho, sobreel que se quiera modificar, y <strong>en</strong>tre <strong>en</strong> la opción . Des<strong>de</strong> aquí se pue<strong>de</strong> seleccionar uncolor <strong>de</strong> la lista, o personalizarlo.NOTA: Para com<strong>en</strong>zar la repres<strong>en</strong>tación gráfica, tanto sobre el Osciloscopio comosobre el salpica<strong>de</strong>ro, es necesario indicarlo por medio <strong>de</strong>l m<strong>en</strong>ú , .


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 42


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 432.6.5. EXPORTANDO DATOS A MATLAB.Primero habrá que com<strong>en</strong>zar la captura, como se ha indicado <strong>en</strong> el apartado anterior. Una vezse t<strong>en</strong>gan los datos que se quieran, se para la adquisición <strong>de</strong> datos, por medio <strong>de</strong>l m<strong>en</strong>ú, . Una vez hecho esto, se guarda la información por medio <strong>de</strong>lm<strong>en</strong>ú , .2.7. FUNCIONAMIENTO DE LOS ELEMENTOS PRINCIPALES.En este apartado se va a realizar una breve <strong>de</strong>scripción <strong>de</strong>l funcionami<strong>en</strong>to interno <strong>de</strong> loselem<strong>en</strong>tos principales <strong>de</strong>l Monitor. Para una información <strong>de</strong>tallada se remite al lector a losanexos, <strong>en</strong> don<strong>de</strong> se incluye una <strong>de</strong>scripción <strong>de</strong>l código, tanto <strong>en</strong> formato <strong>de</strong> docum<strong>en</strong>taciónimpresa (150 páginas), como <strong>en</strong> HTML (CD adjunto). Éstos anexos conti<strong>en</strong><strong>en</strong> el Manual <strong>de</strong>lProgramador, que será necesario consultar <strong>en</strong> el caso <strong>en</strong> que se quiera realizar algún cambio oampliación <strong>de</strong>l programa.Las partes principales <strong>de</strong>l monitor son:1. Interfaz gráfica.2. Módulo <strong>de</strong> comunicaciones.3. Parser XML.4. Interfaz Matlab.2.7.1. INTERFAZ GRÁFICA.Puesto que la implem<strong>en</strong>tación <strong>de</strong> esta parte <strong>de</strong>p<strong>en</strong><strong>de</strong> exclusivam<strong>en</strong>te <strong>de</strong>l sistema operativoutilizado y la herrami<strong>en</strong>ta <strong>de</strong> <strong>de</strong>sarrollo (Buil<strong>de</strong>r v5.0), se remite al lector directam<strong>en</strong>te a losanexos, don<strong>de</strong> se incluye, <strong>en</strong> el manual <strong>de</strong>l programador, información <strong>de</strong>tallada sobre loscompon<strong>en</strong>tes utilizados.2.7.2. MÓDULO DE COMUNICACIONES.Se plantearon varios objetivos a conseguir con la comunicación:1. Permitir el uso <strong>de</strong> directivas <strong>de</strong> alto nivel para indicar a la plataforma móvil sucomportami<strong>en</strong>to.2. Monitorizar el estado <strong>de</strong>l sistema, incluy<strong>en</strong>do s<strong>en</strong>sores, actuadotes y variablesinternas, <strong>en</strong> tiempo real.Para ello se ha <strong>de</strong>sarrollado un protocolo a nivel <strong>de</strong> <strong>en</strong>lace, ori<strong>en</strong>tado a conexión, y con acuse<strong>de</strong> recibo, que a continuación se <strong>de</strong>scribirá.El formato <strong>de</strong> trama g<strong>en</strong>érico es el sigui<strong>en</strong>te:Don<strong>de</strong> la cabecera es un octeto, que repres<strong>en</strong>ta, <strong>de</strong> forma única, el tipo <strong>de</strong> PDU (Protocol DataUnit) que se está <strong>en</strong>viando, y el campo <strong>de</strong> datos conti<strong>en</strong>e los datos, que se interpretan a partir<strong>de</strong> la cabecera.Toda comunicación se comi<strong>en</strong>za <strong>de</strong>s<strong>de</strong> el PC, y siempre es necesario algún tipo <strong>de</strong>as<strong>en</strong>timi<strong>en</strong>to por parte <strong>de</strong>l microcontrolador para que se consi<strong>de</strong>re exitosa la misma. Si no esasí, se lanza la correspondi<strong>en</strong>te excepción, y el usuario <strong>de</strong>l monitor es informado <strong>de</strong>l problema,para que pueda solv<strong>en</strong>tarlo.


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 44Seguidam<strong>en</strong>te se pasan a <strong>de</strong>scribir las difer<strong>en</strong>tes PDUs, y su implicación <strong>en</strong> el proceso <strong>de</strong>comunicación.2.7.2.1. ParadaLa comunicación comi<strong>en</strong>za <strong>de</strong>s<strong>de</strong> el PC, <strong>en</strong>viando la PDU:que no conti<strong>en</strong>e campo <strong>de</strong> datos, sino sólo cabecera. Indica al microcontrolador que pasa aestado parada, que es la situación <strong>en</strong> que los motores están <strong>de</strong>sbloqueados, y se pue<strong>de</strong>transferir con seguridad información sobre el controlador que se quiere utilizar.La respuesta <strong>de</strong>l microcontrolador <strong>de</strong>berá ser otra PDU:indicando así que ha recibido el m<strong>en</strong>saje y ha pasado a estado parada.2.7.2.2. Parada <strong>de</strong> Emerg<strong>en</strong>ciaLa comunicación comi<strong>en</strong>za <strong>de</strong>s<strong>de</strong> el PC, <strong>en</strong>viando la PDU:que no conti<strong>en</strong>e campo <strong>de</strong> datos, sino sólo cabecera. Indica al microcontrolador que ti<strong>en</strong>e que<strong>de</strong>sbloquear inmediatam<strong>en</strong>te los motores y pasar a STOP la controladora <strong>de</strong> pot<strong>en</strong>cia <strong>de</strong> losmotores, puesto que se ha producido una situación <strong>de</strong> emerg<strong>en</strong>cia inesperada.La respuesta <strong>de</strong>l microcontrolador <strong>de</strong>berá ser otra PDU:indicando así que ha recibido el m<strong>en</strong>saje y ha pasado a estado parada <strong>de</strong> emerg<strong>en</strong>cia.2.7.2.3. CARGA DE CONTROLADOR.La comunicación comi<strong>en</strong>za <strong>de</strong>s<strong>de</strong> el PC, <strong>en</strong>viando la PDU:Se utiliza para indicar al microcontrolador cuál es el algoritmo <strong>de</strong> control que se quiere utilizar,para ello se utiliza un id<strong>en</strong>tificador único ID_CTRL. Por otra parte, se pasa una secu<strong>en</strong>cia <strong>de</strong>parámetros que son los que se utilizan para ajustar el controlador. Todo esto estarápreviam<strong>en</strong>te <strong>de</strong>finido <strong>en</strong> la plantilla <strong>de</strong> controlador que se está utilizando, y se modifica a través<strong>de</strong> los asist<strong>en</strong>tes <strong>de</strong>sarrollados para tal efecto.Una vez el microcontrolador recibe esta PDU, pasa a t<strong>en</strong>er preparado el algoritmo <strong>de</strong> controlindicado, e inicializa los parámetros internos <strong>de</strong>l mismo con los pasados <strong>en</strong> la PDU. Si harecibido los datos correctam<strong>en</strong>te, respon<strong>de</strong>rá con un as<strong>en</strong>timi<strong>en</strong>to positivo:


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 452.7.2.4. PETICIÓN DE DATOS.La comunicación comi<strong>en</strong>za <strong>de</strong>s<strong>de</strong> el PC, <strong>en</strong>viando la PDU:Ésta indica al microcontrolador que <strong>de</strong>be respon<strong>de</strong>r con una PDU que cont<strong>en</strong>ga los datos <strong>de</strong>los parámetros <strong>de</strong> recepción <strong>de</strong>finidos <strong>en</strong> la plantilla <strong>de</strong>l controlador activo <strong>en</strong> ese mom<strong>en</strong>to.Éste es, por tanto, el mecanismo que se utiliza para monitorizar los parámetros que se quier<strong>en</strong><strong>de</strong> la plataforma móvil.La respuesta <strong>de</strong>l microcontrolador es una PDU con formato:La secu<strong>en</strong>cia <strong>de</strong> datos recibida es la indicada por la correspondi<strong>en</strong>te plantilla, como ya se haindicado más arriba.2.7.3. PARSER XML.Como se ha com<strong>en</strong>tado <strong>en</strong> apartados anteriores, int<strong>en</strong>tando facilitar la reconfiguración ymanejo <strong>de</strong> los parámetros <strong>de</strong> los controladores implem<strong>en</strong>tados, se ha <strong>de</strong>sarrollado un módulopara mant<strong>en</strong>er este tipo <strong>de</strong> información, <strong>basado</strong> <strong>en</strong> plantillas XML. Para ello se ha <strong>de</strong>sarrolladoun parser <strong>de</strong> tipo asc<strong>en</strong>d<strong>en</strong>te, que realiza un análisis léxico, sintáctico y semántico <strong>de</strong>l mismo.La i<strong>de</strong>a subyac<strong>en</strong>te <strong>en</strong> un parser asc<strong>en</strong>d<strong>en</strong>te se muestra <strong>en</strong> el sigui<strong>en</strong>te diagrama:El análisis asc<strong>en</strong>d<strong>en</strong>te consiste <strong>en</strong>, a partir <strong>de</strong> los tok<strong>en</strong>s elem<strong>en</strong>tales <strong>de</strong>tectados a nivel léxico,se int<strong>en</strong>ta reconstruir el objetivo, que es, <strong>en</strong> el caso que se pres<strong>en</strong>ta, una plantilla <strong>de</strong>controlador.Para ello, se van extray<strong>en</strong>do, <strong>de</strong> izquierda a <strong>de</strong>recha, los elem<strong>en</strong>tos fundam<strong>en</strong>tales <strong>de</strong>l ficheroXML, como marcas <strong>de</strong> inicio y final, cont<strong>en</strong>idos, com<strong>en</strong>tarios, etc. A partir <strong>de</strong> estos elem<strong>en</strong>tosse va realizando un proceso <strong>de</strong> <strong>de</strong>splazami<strong>en</strong>to/reducción, con el cual se van g<strong>en</strong>erando


CAPÍTULO II. SOFTWARE DE LA APLICACIÓN DE PC 46elem<strong>en</strong>tos no terminales, hasta que sólo se ti<strong>en</strong>e un elem<strong>en</strong>to, que es el objetivo, que <strong>de</strong>beráser un elem<strong>en</strong>to <strong>de</strong> tipo plantilla.Internam<strong>en</strong>te, el analizador léxico lo único que hace es extraer los elem<strong>en</strong>tos terminales, y selos va pasando al analizador sintáctico. El analizador sintáctico a su vez int<strong>en</strong>ta <strong>en</strong>cajar, <strong>en</strong> lasestructuras permitidas, los elem<strong>en</strong>tos terminales que va recibi<strong>en</strong>do. A<strong>de</strong>más, para po<strong>de</strong>rrealizar el análisis semántico a la vez, una vez que se consigu<strong>en</strong> extraer elem<strong>en</strong>tos sufici<strong>en</strong>tespara que su significado conjunto sea analizable, se van g<strong>en</strong>erando los objetos <strong>de</strong> tipoparámetro <strong>de</strong> recepción o <strong>de</strong> transmisión pertin<strong>en</strong>tes. En este proceso <strong>de</strong> inicialización, losconstructores y métodos <strong>de</strong> inicialización comprueban a su vez que los parámetros soncorrectos, y avisan <strong>en</strong> caso contrario. Así, una vez realizada una primera pasada al fichero yase sabe si es correcto o no. En el caso <strong>en</strong> que no sea correcto se lanza el correspondi<strong>en</strong>teaviso, y si es correcto se carga <strong>en</strong> la aplicación, estando listo para ser <strong>en</strong>viado almicrocontrolador.Para una <strong>de</strong>scripción <strong>de</strong>tallada <strong>de</strong> la implem<strong>en</strong>tación se remite al lector al Manual <strong>de</strong>lProgramador incluido <strong>en</strong> los anexos.2.7.4. INTERFAZ MATLAB.Para po<strong>de</strong>r manejar los resultados <strong>de</strong> los experim<strong>en</strong>tos <strong>de</strong> forma cómoda, y con lasherrami<strong>en</strong>tas habituales (Matlab y Simulink), se ha <strong>de</strong>sarrollado un módulo que exporta aficheros Matlab todas las muestras capturadas. Para ello, se g<strong>en</strong>era el fichero a partir <strong>de</strong> losdatos recibidos, y se respeta el formato <strong>de</strong>finido para vectores. A<strong>de</strong>más, se aña<strong>de</strong> un vectoradicional con marcas <strong>de</strong> tiempo, para que el proceso sea más s<strong>en</strong>cillo <strong>de</strong> monitorizar. Para una<strong>de</strong>scripción <strong>de</strong>tallada, se remite al lector al Manual <strong>de</strong>l Programador (apéndices).


Escuela Superior <strong>de</strong> Ing<strong>en</strong>ieros <strong>de</strong> <strong>Sevilla</strong>DISEÑO, SINTONIZACIÓN Y SIMULACIÓN DE CONTROLADORESAlberto PrietoAntidio ViguriaB<strong>en</strong>ito José VelaMirko FiacchiniRamón CanoTrabajo <strong>de</strong> los Cursos <strong>de</strong> Doctorado:Control No Lineal AplicadoSistema <strong>de</strong> Control No LinealRobótica Industrial


INDICE. 48ÍNDICE.CAPITULO I. DESCRIPCIÓN Y MODELADO DEL SISTEMA......................................................491.1 DESCRIPCIÓN DEL SISTEMA .....................................................................................................491.2 MODELO DEL SISTEMA...............................................................................................................491.2.1 VEHÍCULO CON TRACCIÓN DIFERENCIAL........................................................................491.2.2 PÉNDULO INVERTIDO SOBRE BASE MÓVIL.......................................................................50CAPITULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN....................................................512.1 CONTROL LQR..............................................................................................................................512.1.1 UBICACIÓN DE POLOS CON LQR ........................................................................................512.2 CONTROLADOR NO LINEAL: ASTOLFI-KALIORA.................................................................532.2.1 LINEALIZACIÓN PARCIAL .....................................................................................................532.2.2 ESTABILIZACIÓN DEL PÉNDULO POR MOLDEO DE LA FUNCIÓN DE ENERGÍA. .......542.2.3 ESTABILIZACIÓN DE LA VELOCIDAD..................................................................................552.2.4 SINTONIZACIÓN DEL CONTROLADOR NO LINEAL ...........................................................552.3 SIMULACIONES ............................................................................................................................562.4 EFECTO DE LA SATURACIÓN, TIEMPO DE MUESTREO Y RETRASO .................................60


CAPÍTULO I. DESCRIPCIÓN Y MODELADO DEL SISTEMA 49CAPITULO I. DESCRIPCIÓN Y MODELADO DEL SISTEMA.1.1 DESCRIPCIÓN DEL SISTEMAEl sistema, <strong>de</strong> forma simplificada, está constituido por una plataforma montada sobre dosruedas que son accionadas por dos motores in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>tem<strong>en</strong>te. Sobre esta plataforma sesitúa una masa que pue<strong>de</strong> ser mo<strong>de</strong>lada como una masa puntual a una distancia l <strong>de</strong>l plano<strong>de</strong> la base.zlyFixFddFigura 25: Esquema <strong>de</strong> la estructura <strong>de</strong>l vehículoLa figura muestra <strong>de</strong> forma esquemática la estructura <strong>de</strong>l vehículo, los ejes <strong>de</strong> refer<strong>en</strong>cias, losgrados <strong>de</strong> libertad y las <strong>en</strong>tradas <strong>de</strong>l sistema.1.2 MODELO DEL SISTEMADes<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong>l control, el sistema pue<strong>de</strong> <strong>de</strong>scomponerse <strong>en</strong> dos subsistemas queprácticam<strong>en</strong>te están <strong>de</strong>sacoplados <strong>en</strong>tre sí. Una parte está formada por un robot móvil contracción difer<strong>en</strong>cial, la otra la constituye un péndulo <strong>invertido</strong> sobre un carro móvil.Las <strong>en</strong>tradas <strong>de</strong>l sistema las constituy<strong>en</strong> las fuerzas o pares que ejerc<strong>en</strong> cada una <strong>de</strong> lasruedas sobre el vehículo. Las variables a controlar son el ángulo que forma el péndulo con lavertical y las velocida<strong>de</strong>s <strong>de</strong> avance y <strong>de</strong> rotación <strong>de</strong>l conjunto. A continuación se analizan losdos sistemas in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>tem<strong>en</strong>te.1.2.1 VEHÍCULO CON TRACCIÓN DIFERENCIALEn este sistema la salida la constituye la velocidad <strong>de</strong> giro respecto al eje vertical. La refer<strong>en</strong>ciapara esta salida vi<strong>en</strong>e dada por una señal proced<strong>en</strong>te <strong>de</strong>l puño <strong>de</strong> dirección <strong>de</strong>l vehículo.Consi<strong>de</strong>rando las fuerzas ejercidas por cada una <strong>de</strong> las ruedas, F i y F d , pue<strong>de</strong> obt<strong>en</strong>erse lasecuaciones <strong>de</strong>l vehículoJ δ& & = ( F F )dDon<strong>de</strong>F i y F d , repres<strong>en</strong>tan las fuerzas <strong>de</strong> la rueda izquierda y <strong>de</strong>recha respectivam<strong>en</strong>teJ: & Mom<strong>en</strong>to <strong>de</strong> inercia respecto al eje verticalδ : Aceleración angular alre<strong>de</strong>dor <strong>de</strong>l eje zd: Distancia <strong>en</strong>tre las ruedasd −i


CAPÍTULO I. DESCRIPCIÓN Y MODELADO DEL SISTEMA 501.2.2 PÉNDULO INVERTIDO SOBRE BASE MÓVILEn la figura se ha repres<strong>en</strong>tado el subsistema constituido por el péndulo <strong>invertido</strong> sobreplataforma móvil.zMθFmxFigura 26: Péndulo <strong>invertido</strong> sobre carro móvilEl equilibrio <strong>de</strong> fuerzas <strong>en</strong> el eje x permite obt<strong>en</strong>er la ecuación( M + m) & x+ Ml && θ cosθ= FPor otra parte el balance <strong>de</strong> mom<strong>en</strong>tos <strong>en</strong> torno al punto <strong>de</strong> giro conduce adon<strong>de</strong>m: Masa <strong>de</strong>l carrito, 30 KgM: Masa <strong>de</strong>l péndulo, 70 Kgl: Altura <strong>de</strong>l c<strong>en</strong>tro <strong>de</strong> masa, 1mg: Aceleración <strong>de</strong> la gravedad 9,8 m/s 22& xMl cosθ+ Ml & θ− Mgl sinθ= 0A partir <strong>de</strong> las ecuaciones anteriores pued<strong>en</strong> obt<strong>en</strong>erse las ecuaciones <strong>en</strong> variables <strong>de</strong> estado<strong>de</strong>l sistema&& θ =⎛l⎜⎝&& x = v&=mM⎛⎜⎝1 ⎛ F ⎛ M + m ⎞⎞⎜−cosθ+ ⎜ ⎟gsinθ− l & 2θ sinθcosθ⎟⎞+ ⎝ M ⎝ Msinθ⎠⎟⎠⎠1 ⎛F ⎞⎜l& 2θ sinθ− g cosθsinθ+ ⎟m 2 ⎞+⎝Msin θ⎠⎟M ⎠Ya que el objetivo <strong>de</strong>l control es la estabilización <strong>de</strong>l ángulo θ <strong>en</strong> cero y <strong>de</strong> la velocidad linealx& , las variables <strong>de</strong> estado <strong>de</strong> interés <strong>de</strong>l sistema son solam<strong>en</strong>te el ángulo θ, la velocidadangular y la velocidad x& =v.θ &A continuación, se ilustran dos métodos <strong>de</strong> control. El primero es un LQR (Linear QuadraticRegulator), un control lineal para el que es necesario un mo<strong>de</strong>lo <strong>de</strong>l sistema linealizadoalre<strong>de</strong>dor <strong>de</strong>l punto <strong>de</strong> equilibrio. El otro es un control no lineal para el que se pue<strong>de</strong> utilizardirectam<strong>en</strong>te las ecuaciones difer<strong>en</strong>ciales no lineales obt<strong>en</strong>idas anteriorm<strong>en</strong>te.


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 51CAPITULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN.2.1 CONTROL LQREl controlador LQR es un control por realim<strong>en</strong>tación <strong>de</strong>l vector <strong>de</strong> estados <strong>de</strong> la formau = −Kxtal que el valor <strong>de</strong> K se obti<strong>en</strong>e a partir <strong>de</strong> un problema <strong>de</strong> minimización <strong>de</strong>l funcional <strong>de</strong> costeJ=∞∫ ( x'Qx + u'Ru )0dtEsta función <strong>de</strong> coste es <strong>de</strong> tipo cuadrática tanto <strong>en</strong> el vector <strong>de</strong> estado como <strong>en</strong> la <strong>en</strong>trada.Las matrices Q y R p<strong>en</strong>alizan respectivam<strong>en</strong>te el error <strong>de</strong>l estado y el esfuerzo <strong>de</strong> control.Para po<strong>de</strong>r obt<strong>en</strong>er este controlador es necesario un mo<strong>de</strong>lo lineal. El sistema pue<strong>de</strong> serlinealizado <strong>en</strong> torno al punto <strong>de</strong> equilibrio θ = 0 , & θ = 0 y v=0. En este punto pued<strong>en</strong> realizarselas aproximaciones cosθ≈1 y sinθ≈θ. Con ello las ecuaciones <strong>de</strong> estado <strong>en</strong> forma matricialserán⎛⎜⎛ & θ ⎞ ⎜0⎜ ⎟⎜ && θ ⎟ = ⎜0⎜ ⎟ ⎜⎝v&⎠ ⎜⎜0⎝1gmlM− gm( M + m)⎞ ⎛ ⎞⎟ ⎜ ⎟0⎟⎛θ⎞ ⎜ 0⎜ ⎟⎟⎟ ⎜ −10 ⎜& θ ⎟ + ⎟F⎟⎜⎜ ml ⎟v ⎟⎟⎝⎠ ⎜ 1 ⎟0⎟⎜ ⎟⎠ ⎝ m ⎠don<strong>de</strong> el vector <strong>de</strong> salidas coinci<strong>de</strong> con el vector <strong>de</strong> estados.2.1.1 UBICACIÓN DE POLOS CON LQREn este apartado se analiza la situación <strong>de</strong> los polos <strong>de</strong>l sistema <strong>en</strong> bucle cerrado <strong>en</strong> función<strong>de</strong>l vector <strong>de</strong> ganancias K que realim<strong>en</strong>ta el estado.El sistema <strong>en</strong> bucle abierto vi<strong>en</strong>e dado <strong>en</strong> ecuaciones <strong>de</strong> estado porx&= Ax + Buy = CxT<strong>en</strong>i<strong>en</strong>do <strong>en</strong> cu<strong>en</strong>ta la expresión <strong>de</strong>l controladoru = −KxEl sistema <strong>en</strong> bucle cerrado v<strong>en</strong>drá dado por las ecuacionesx&=( A − KB)y = Cxx


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 52Los polos <strong>de</strong> este sistema se correspond<strong>en</strong> con los autovalores <strong>de</strong> la matriz( A − KB)y vi<strong>en</strong><strong>en</strong> <strong>de</strong>terminados por los parámetros <strong>de</strong>l sistema (matrices A y B) y los valores <strong>de</strong>lcontrolador (vector K). A su vez, los valores que toma este vector <strong>de</strong>p<strong>en</strong>d<strong>en</strong> <strong>de</strong> la asignaciónque se realice a los distintos elem<strong>en</strong>tos <strong>de</strong> las matrices <strong>de</strong> p<strong>en</strong>alización Q y R.10.80.6Polos Lqrvariando q1=q2=1 a 10000q3=100R=10.40.20-0.2-0.4-0.6-0.8-1-8 -7 -6 -5 -4 -3 -2 -1 0Figura 27: Ubicación <strong>de</strong> los polos al variar q1 y q2En la figura anterior se aprecia que las variaciones <strong>de</strong> q1 y q2 afectan sólo a los polos másrápidos, mi<strong>en</strong>tras que el tercer polo permanece cerca <strong>de</strong>l orig<strong>en</strong>. En la figura sigui<strong>en</strong>te se notacomo al variar q3 que p<strong>en</strong>aliza el error <strong>en</strong> velocidad el polo que estaba cerca <strong>de</strong>l orig<strong>en</strong> sehace más rápido.10.80.60.4Polos LQR variandoq3 10-100000q1=q2=100R=10.20-0.2-0.4-0.6-0.8-1-12 -10 -8 -6 -4 -2 0Figura 28: Ubicación <strong>de</strong> los polos al variar q3


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 53Finalm<strong>en</strong>te se muestra la influ<strong>en</strong>cia <strong>de</strong>l peso sobre la acción <strong>de</strong> control observándose que paravalores cercanos a cero aparec<strong>en</strong> dos polos complejos conjugados que se conviert<strong>en</strong> <strong>en</strong> realescuando R se acerca a la unidad. Para valores <strong>de</strong> R mayores <strong>de</strong> uno no se aprecian cambiossignificativos <strong>en</strong> la ubicación <strong>de</strong> los polos.0.810.60.4Polos LQR variandoR 0-1q1=q2=100q3=100.80.6Polos LQR variandoR 1-10000q1=q2=100q3=100.40.20.200-0.2-0.2-0.4-0.4-0.6-0.6-0.8-0.8-35 -30 -25 -20 -15 -10 -5 0-1-6 -5 -4 -3 -2 -1 0Figura 29: Ubicación <strong>de</strong> los polos al variar R2.2 CONTROLADOR NO LINEAL: ASTOLFI-KALIORAPara el diseño <strong>de</strong> controladores no lineales suele resultar conv<strong>en</strong>i<strong>en</strong>te realizar <strong>en</strong> primer lugar,una linealización parcial <strong>de</strong> las ecuaciones <strong>de</strong>l sistema.2.2.1 LINEALIZACIÓN PARCIALEn las ecuaciones <strong>de</strong>l mo<strong>de</strong>losi se <strong>de</strong>spejal & θ ( M + m)2&& x + Ml && θ cosθ− Ml & θ sinθ= F&& xcosθ+ l && θ − g sinθ= 0<strong>de</strong> la segunda y se sustituye <strong>en</strong> la primera se ti<strong>en</strong>e2[( M + m)− M cos θ ]2&& x = F + Ml & θ sinθ− Mg sinθcosθ2F + Ml & θ sinθ− Mg sinθcosθ&& x =2[( M + m)− M cos θ ]Defini<strong>en</strong>do una nueva variable <strong>de</strong> control uu =2F + Ml & θ sinθ− Mg sinθcosθ2[( M + m)− M cos θ ]el sistema queda reducido aucosθ+ l & θ− g sinθ= 0&& x = ulo que permite escribir el sistema <strong>en</strong> variables <strong>de</strong> estado como


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 54x&= x1x&x&2321=l= u( g sin x − u cos x )11don<strong>de</strong>xθ, x = & θ x = x&1=2,3El sistema pres<strong>en</strong>ta una estructura <strong>en</strong> cascadaX&X&don<strong>de</strong> la parte dinámica relativa al subvector12==ff1( X1,X2,U )( X , U )22no <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong> los estados cont<strong>en</strong>idos <strong>en</strong> elsubvector X1 . Un método para tratar este tipo <strong>de</strong> sistemas es el conocido como forwarding(Salas, Gordillo, Aracil 2004) que propone g<strong>en</strong>erar una ley <strong>de</strong> control que estabilice elsubsistema superior y posteriorm<strong>en</strong>te añadir un término a<strong>de</strong>cuado para la estabilización <strong>de</strong>lsubsistema inferior. Por tanto, el primer objetivo será el control <strong>de</strong>l péndulo.X 22.2.2 ESTABILIZACIÓN DEL PÉNDULO POR MOLDEO DE LA FUNCIÓN DEENERGÍA.Exist<strong>en</strong> diversas formas <strong>de</strong> estabilizar el péndulo. Una <strong>de</strong> ellas consiste <strong>en</strong> hacer que elsistema con una acción <strong>de</strong> control a<strong>de</strong>cuada se comporte como un péndulo no <strong>invertido</strong> cuyocomportami<strong>en</strong>to es estable. Para <strong>en</strong>contrar esta acción <strong>de</strong> control vasta con igualar lasecuaciones <strong>de</strong> un péndulo no <strong>invertido</strong>con las <strong>de</strong> nuestro sistemalo que permite obt<strong>en</strong>er el valor <strong>de</strong> u−gl1sinθ=l& 1θ=l& θ g = − sinθl( g sinθ− u cosθ)( g sinθ− u cosθ) ⇒ u = 2gtanθCon esta acción <strong>de</strong> control el sistema se comporta como un péndulo no <strong>invertido</strong>, es <strong>de</strong>cir,estable. Si se <strong>de</strong>sea un comportami<strong>en</strong>to asintóticam<strong>en</strong>te estable pue<strong>de</strong> añadirse al mo<strong>de</strong>lo <strong>de</strong>lpéndulo no <strong>invertido</strong> una compon<strong>en</strong>te <strong>de</strong> amortiguami<strong>en</strong>to. Este amortiguami<strong>en</strong>to usualm<strong>en</strong>tese mo<strong>de</strong>la como un término proporcional a la velocidad y que se opone al movimi<strong>en</strong>to.Si se repite el proceso anterior añadi<strong>en</strong>do el término <strong>de</strong> amortiguami<strong>en</strong>to se obti<strong>en</strong>e una ley <strong>de</strong>controlque hace al sistema asintóticam<strong>en</strong>te estable.Kau = 2 g tanθ+ & θM


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 55Es necesario modificar la ley <strong>de</strong> control obt<strong>en</strong>ida para conseguir que la dinámica <strong>de</strong> lavelocidad también sea estable.2.2.3 ESTABILIZACIÓN DE LA VELOCIDADEl artículo citado anteriorm<strong>en</strong>te propone dos modificaciones difer<strong>en</strong>tes al mol<strong>de</strong>o <strong>de</strong> <strong>en</strong>ergíapara conseguir la estabilidad <strong>de</strong> la dinámica <strong>de</strong> la velocidad.Uno <strong>de</strong> ellos llega a la ley <strong>de</strong> control mediante la resolución <strong>de</strong> una ecuación <strong>en</strong> <strong>de</strong>rivadasparciales que se obti<strong>en</strong><strong>en</strong> imponi<strong>en</strong>do algunas condiciones a la función <strong>de</strong> Lyapunov.Utilizando este método la ley <strong>de</strong> control resulta compleja.La otra ley <strong>de</strong> control es la propuesta por Astolfi-Kaliora que utiliza un término <strong>de</strong> la formaKtanθ &Mau = 2 gKm+ θ +si<strong>en</strong>do los dos primeros términos los concerni<strong>en</strong>tes al mol<strong>de</strong>o <strong>de</strong> <strong>en</strong>ergía, don<strong>de</strong>constante que aña<strong>de</strong> un mayor grado <strong>de</strong> libertad al ajuste <strong>de</strong>l controlador. El términorelativo a la estabilización <strong>de</strong> la velocidad, y vi<strong>en</strong>e dado por la expresiónudK mu <strong>de</strong>s unaes elud⎛ Kvv⎞= ε sat⎜⎟⎝ ε ⎠que permite ajustar el control mediante la elección a<strong>de</strong>cuada <strong>de</strong> los valoresKvy ε .2.2.4 SINTONIZACIÓN DEL CONTROLADOR NO LINEALEl controlador no lineal <strong>de</strong>scrito posee tres parámetros <strong>de</strong> ajuste (K m , K a y K v ). Esto le confieremayor grado <strong>de</strong> libertad y mejores características, aunque esto lleva implícito una ciertadificultad para su ajuste. De hecho, para <strong>de</strong>terminados valores <strong>de</strong> estos parámetros, el sistemapue<strong>de</strong> llegar a ser inestable como se <strong>de</strong>duce <strong>de</strong> la situación <strong>de</strong> los polos <strong>en</strong> bucle cerradomostrada <strong>en</strong> las figuras sigui<strong>en</strong>tes.4532Polosvariando Ka 0-20km=1kv=1432Polosvariando kv 0-20km=1ka=51100-1-1-2-2-3-3-4-4-20 -15 -10 -5 0 5-5-4 -2 0 2 4 6 8 10 12 14Figura 30: Ubicación <strong>de</strong> los polos al variar los parámetros <strong>de</strong>l controlador no linealEl controlador LQR pres<strong>en</strong>ta un comportami<strong>en</strong>to óptimo <strong>en</strong>torno al punto <strong>de</strong> equilibrio. Así que,si se <strong>de</strong>termina la relación <strong>en</strong>tre las constantes <strong>de</strong> este controlador y las <strong>de</strong>l Astolfi-Kaliora,podrán obt<strong>en</strong>erse unos valores <strong>de</strong> K m , K a y K v que proporcion<strong>en</strong> un comportami<strong>en</strong>to similar aLQR al m<strong>en</strong>os <strong>en</strong> el punto <strong>de</strong> equilibrio.


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 56Deshaci<strong>en</strong>do la linealización parcial que se realizó como paso previo al diseño <strong>de</strong>l control nolineal se ti<strong>en</strong>e queF=[( M + m)− M cos θ ] 2 u + Mg sinθcosθ− Ml & θ2 sinθdon<strong>de</strong>u = 2 gKmKa ⎛ Kvv⎞tanθ+ & θ + ε sat⎜⎟M ⎝ ε ⎠Si se linealizan estas ecuaciones <strong>en</strong> el punto <strong>de</strong> equilibrio (θ= 0 , & θ = 0 y v=0) se obti<strong>en</strong>e queF[ Mg + 2 gmK ] θ + mK & mK v= θm a+vSi se compara esta ecuación con la <strong>de</strong>l LQRF = −K1θ − K &2θ− K3vpued<strong>en</strong> obt<strong>en</strong>erse los valores <strong>de</strong> K m , K a y K v que proporcionarán bu<strong>en</strong>as características alcontrolador, esto esK1 MgK m=− −2gm− K=mK a2− K=mK v32.3 SIMULACIONESUtilizando la herrami<strong>en</strong>ta Simulink <strong>de</strong> Matlab se han realizado difer<strong>en</strong>tes simulaciones usandoel diagrama mostrado <strong>en</strong> la figura. En este diagrama el bloque p<strong>en</strong>dulum es el sistema nolineal, LQR es el bloque <strong>de</strong> ganancia estática <strong>de</strong>l controlador lineal y el bloque Kaliora es elrelativo al controlador no lineal. El valor <strong>de</strong> la ganancia LQR ha sido obt<strong>en</strong>ido a través <strong>de</strong>lcomando lqr <strong>de</strong> Matlab y los parámetros <strong>de</strong>l controlador Kaliora han sido sintonizados con los<strong>de</strong>l LQR.Pue<strong>de</strong> observarse como las señales <strong>de</strong> salida son muestreadas antes <strong>de</strong> llegar al controlador.La acción <strong>de</strong> control se aplica al sistema tras un mant<strong>en</strong>edor <strong>de</strong> ord<strong>en</strong> cero y un bloque <strong>de</strong>saturación que limita su amplitud. Como pue<strong>de</strong> verse exist<strong>en</strong> dos lazos <strong>de</strong> realim<strong>en</strong>tación. Elmás externo es el que estabiliza el sistema péndulo-carro, mi<strong>en</strong>tras que el interno controla lavelocidad <strong>de</strong> giro.


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 57-K* uLQRMATLABFunctionKalioraSelector0.50.5Zero-Or<strong>de</strong>rHoldSaturationFdFiPositionAnguloVel angVel linealxyPositionVelocidad-K-Saturation1vel rotacionSubsystemRefer<strong>en</strong>cia velrotacionCtrlZero-Or<strong>de</strong>rHold1Vel AngularVel rotAnguloS/HClock1Sampleand Hold1XY GraphMuxS/HAnimationSampleand Hold0Refer<strong>en</strong>ceTerminatorFigura 31: Esquema Simulink para simulación <strong>de</strong> controladoresEn la sigui<strong>en</strong>te imag<strong>en</strong> se muestra el esquema <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong>l sistema no lineal completo,don<strong>de</strong> <strong>de</strong>stacan los dos subsistemas (péndulo <strong>invertido</strong> y vehículo contracción difer<strong>en</strong>cial)cuyas estructuras internas son repres<strong>en</strong>tadas <strong>en</strong> las imág<strong>en</strong>es posteriores.11FdUCartP<strong>en</strong>dulumVel P<strong>en</strong>dulumVel CartPosition2Angulo3Vel ang4P<strong>en</strong>dulum1Vel lineal2Fi-K-Distanciaruedas1/JMom inercia1/sxv elocidadyomegavel rotacionSistema direccion5x6y7vel rotacionFigura 32: Esquema Simulink mo<strong>de</strong>lo completo <strong>de</strong>l sistema1UMuxf(u)1/s1/s1Cart4Vel Cart1velocidadsins<strong>en</strong>o(fi )-1-Product21sIntegrator1xMuxf(u)1/s 1/s22omegacoscos<strong>en</strong>o(fi)Product11sIntegrator22yP<strong>en</strong>dulum331svel rotacionVel P<strong>en</strong>dulumIntegrator1Figura 33: Esquema Simulink mo<strong>de</strong>los <strong>de</strong>l péndulo <strong>invertido</strong> y vehículo con tracción difer<strong>en</strong>cialUtilizando el esquema Simulink <strong>de</strong>scrito se han realizado un amplio conjunto <strong>de</strong> simulaciones.En primer lugar se muestra una <strong>de</strong> ellas para el sistema controlado con el LQR. Los valores <strong>de</strong>las matrices <strong>de</strong> pon<strong>de</strong>ración Q y R son los sigui<strong>en</strong>tes;


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 58⎡q10 0 ⎤ ⎡10 0 ⎤Q =⎢ ⎥=⎢ ⎥⎢0 q20⎥ ⎢0 1 0⎥R = 1⎢⎣0 0 q ⎥⎦⎢⎣0 0 100⎥3⎦y la condición inicial;⎡θ(0) ⎤ ⎡0.1⎤x(0)=⎢ & ⎥=⎢ ⎥⎢θ (0)⎥ ⎢0⎥⎢⎣v(0)⎥⎦⎢⎣0 ⎥⎦es <strong>de</strong>cir que el sistema empieza parado con un ángulo inicial <strong>de</strong> 0.1rad ≅6°. Se obti<strong>en</strong>e lasigui<strong>en</strong>te evolución.0.120.60.10.5Angulo [rad]0.080.060.040.02Velocidad lineal [m/s]0.40.30.20.100-0.020 2 4 6 8 10 12 14 16 18 20Tiempo [s]-0.1 0 2 4 6 8 10 12 14 16 18 20Tiempo [s]2502001504.543.53Fuerza [N]100500y [m]2.521.510.50-500 2 4 6 8 10 12 14 16 18 20Tiempo [s]-0.5-4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0x [m]Figura 34: Simulación <strong>de</strong>l sistema controlado por LQREn las figuras pue<strong>de</strong> observarse como la <strong>en</strong>trada y el ángulo se estabilizan rápidam<strong>en</strong>te,mi<strong>en</strong>tras que la velocidad converge a cero más l<strong>en</strong>tam<strong>en</strong>te. Esto es <strong>de</strong>bido a que elparámetro <strong>de</strong> pon<strong>de</strong>ración <strong>de</strong> la velocidad q3 es mucho más pequeño que los otros.A<strong>de</strong>más, se ha repres<strong>en</strong>tado la trayectoria seguida por el sistema <strong>en</strong> el plano, cuando larefer<strong>en</strong>cia proporcionada es una sinusoi<strong>de</strong>.Repiti<strong>en</strong>do la simulación con el controlador <strong>de</strong> Astolfi-Kaliora, sintonizado a partir <strong>de</strong> losparámetros <strong>de</strong>l LQR, las evoluciones temporales son las sigui<strong>en</strong>tes


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 590.120.60.10.5Angulo [rad]0.080.060.040.02Velocidad lineal [m/s]0.40.30.20.100-0.020 2 4 6 8 10 12 14 16 18 20Tiempo [s]-0.1 0 2 4 6 8 10 12 14 16 18 20Tiempo [s]Fuerza [N]250200150100500-500 2 4 6 8 10 12 14 16 18 20Tiempo [s]y [m]4.543.532.521.510.50-0.5-4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0x [m]Figura 35: Simulación <strong>de</strong>l sistema con controlador No linealLas figuras muestran una evolución <strong>de</strong>l sistema muy parecida a la obt<strong>en</strong>ida con el controladorLQR.Para mostrar las difer<strong>en</strong>cias <strong>en</strong>tre los dos controladores es necesario llevar al sistema máslejos <strong>de</strong> la posición <strong>de</strong> equilibrio. Así, realizando nuevas simulaciones con un ángulo inicialmayor se obti<strong>en</strong><strong>en</strong> los sigui<strong>en</strong>tes resultados0.60.5LQRAstolfi-Kaliora0.4Angulo [rad]0.30.20.10-0.10 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5Tiempo [s]Figura 36: Comparación <strong>de</strong> controladores


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 602.4 EFECTO DE LA SATURACIÓN, TIEMPO DE MUESTREO Y RETRASOLa pres<strong>en</strong>cia <strong>de</strong> una saturación <strong>en</strong> la <strong>en</strong>trada <strong>de</strong>l sistema a controlar conlleva que para ángulosiniciales gran<strong>de</strong>s el control no consigue estabilizarlo. Esto es <strong>de</strong>bido a que, para ángulosmayores <strong>de</strong> un valor crítico, la <strong>en</strong>trada que permitiría recobrar la estabilidad es mayor <strong>de</strong> lasaturación por lo que no pue<strong>de</strong> ser aplicada. Por tanto, el efecto <strong>de</strong> la saturación es unadisminución <strong>de</strong> la cu<strong>en</strong>ca <strong>de</strong> atracción <strong>de</strong>l sistema. En otras palabras que los estados inicialespara los que el sistema <strong>en</strong> bucle cerrado es estable, forman una región m<strong>en</strong>or <strong>de</strong> la que set<strong>en</strong>dría sin ningún límite <strong>en</strong> la amplitud <strong>de</strong> la <strong>en</strong>trada.Otras causas <strong>de</strong> disminución <strong>de</strong> la cu<strong>en</strong>ca <strong>de</strong> atracción son el tiempo <strong>de</strong> muestreo y lapres<strong>en</strong>cia <strong>de</strong> retraso <strong>en</strong> bucle cerrado. Los controladores han sido diseñados <strong>en</strong> tiempocontinuo, es <strong>de</strong>cir, como si <strong>en</strong> la <strong>en</strong>trada al controlador estuvieran disponibles, <strong>en</strong> cadainstante, los valores actuales <strong>de</strong>l vector <strong>de</strong> estado. De esta forma <strong>en</strong> cada instante se aplica alsistema la <strong>en</strong>trada <strong>de</strong> control oportuna. En realidad esto es un comportami<strong>en</strong>to i<strong>de</strong>al, difer<strong>en</strong>te<strong>de</strong>l real. El control se realiza digitalm<strong>en</strong>te así que los datos <strong>en</strong> <strong>en</strong>trada y salida <strong>de</strong>l controladorson valores disponibles <strong>en</strong> instantes discretos. Por esto es necesario un convertidor analógicodigitalpara muestrear la salida <strong>de</strong>l sistema y uno digital-analógico <strong>en</strong> la <strong>en</strong>trada, el mant<strong>en</strong>edor<strong>de</strong> ord<strong>en</strong> cero <strong>en</strong> el mo<strong>de</strong>lo Simulink. A<strong>de</strong>más, la pres<strong>en</strong>cia <strong>de</strong> estos convertidores setraduc<strong>en</strong> <strong>en</strong> un retraso <strong>en</strong> bucle cerrado. En el sistema real el controlador está constituido porun algoritmo que, <strong>en</strong> cada instante <strong>de</strong> muestreo, solicita la adquisición <strong>de</strong> medidas a loss<strong>en</strong>sores. Los s<strong>en</strong>sores pued<strong>en</strong> necesitar un pequeño intervalo <strong>de</strong> tiempo para proporcionarestas medidas, causando el retraso.El efecto <strong>de</strong>l tiempo <strong>de</strong> muestreo también conlleva una perdida <strong>de</strong> rapi<strong>de</strong>z <strong>en</strong> la respuesta <strong>de</strong>lcontrolador. Así, si la <strong>en</strong>trada <strong>de</strong> control es proporcionada cada T segundos, durante eseintervalo se manti<strong>en</strong>e constante y por tanto con un valor difer<strong>en</strong>te <strong>de</strong> los que t<strong>en</strong>dría si fueratiempo continuo y sin retraso. Esta pérdida <strong>de</strong> rapi<strong>de</strong>z, <strong>de</strong> precisión, afecta al comportami<strong>en</strong>to<strong>de</strong>l sistema <strong>en</strong> bucle cerrado disminuy<strong>en</strong>do la región <strong>de</strong> atracción. Claram<strong>en</strong>te cuanto másgran<strong>de</strong> es el tiempo <strong>de</strong> muestreo y el retraso, mayor es el efecto <strong>de</strong> éstos.A continuación se ilustran los resultados <strong>de</strong> un análisis <strong>de</strong>l efecto <strong>de</strong> saturación, tiempo <strong>de</strong>muestreo y retrasos al variar éstos. Los resultados obt<strong>en</strong>idos son los mismos para LQR y parael controlador <strong>de</strong> Astolfi-Kaliora.La primera prueba ha consistido <strong>en</strong> realizar una sucesión <strong>de</strong> simulaciones consi<strong>de</strong>rando elcontrolador tiempo continuo, es <strong>de</strong>cir sin muestrear las señales, y variando el ángulo inicial y elvalor <strong>de</strong> saturación. Concretam<strong>en</strong>te, se ha fijado un ángulo inicial y un valor <strong>de</strong> saturación, seha simulado para evaluar si el controlador es capaz <strong>de</strong> llevar a cero el ángulo que forma labarra con la vertical. Posteriorm<strong>en</strong>te, se ha repetido la simulación increm<strong>en</strong>tando el ánguloinicial. Cuando todos los ángulos <strong>de</strong> interés han sido analizados, se ha increm<strong>en</strong>tado el valor<strong>de</strong> saturación y repetido las simulaciones para lo difer<strong>en</strong>tes ángulos. Se ilustra <strong>en</strong> la figura elresultado obt<strong>en</strong>ido con este procedimi<strong>en</strong>to.En los ejes <strong>de</strong>l plano se hallan los valores <strong>de</strong>l ángulo inicial, compr<strong>en</strong>dido <strong>en</strong>tre 0.05 rad y 1rad, y <strong>de</strong> la saturación <strong>de</strong> la fuerza, <strong>en</strong>tre 100 N y 1500 N. La superficie repres<strong>en</strong>ta losresultados <strong>de</strong> las simulaciones consi<strong>de</strong>rando cero para lo valores que han conseguido laestabilidad y uno si el bucle no es estable.


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 6110.8Cae o no0.60.40.2015001000Saturacion fuerza [N]500000.20.40.6Angulo [rad]0.81Figura 37: Influ<strong>en</strong>cia <strong>de</strong> la saturación sobre la estabilidadSe pue<strong>de</strong> notar como, al aum<strong>en</strong>tar el valor <strong>de</strong> la fuerza admitida <strong>en</strong> la <strong>en</strong>trada, crece el ánguloinicial estabilizable. Por ejemplo, con saturación <strong>de</strong> 1000 N, que es la que pued<strong>en</strong> proporcionarlos motores utilizados, el sistema consigue estabilizarse para ángulo <strong>de</strong> hasta 0.75 rad, es<strong>de</strong>cir, <strong>de</strong> cerca 43°.Posteriorm<strong>en</strong>te se ha introducido un bloque <strong>de</strong> muestreo, con saturación fija <strong>en</strong> 1000 N y se hasimulado variando el ángulo inicial y el valor <strong>de</strong>l tiempo <strong>de</strong> muestreo <strong>en</strong>tre 0.002 s y 0.1 s conincrem<strong>en</strong>to <strong>de</strong> 0.002 s.10.90.80.70.6Cae o no0.50.40.30.20.100.10.080.060.04Tiempo <strong>de</strong> muestreo [s]0.02000.10.20.30.40.5Angulo [rad]0.60.70.80.91Figura 38: Influ<strong>en</strong>cia <strong>de</strong>l tiempo <strong>de</strong> muestreo sobre la estabilidadSe observa como utilizando tiempos <strong>de</strong> muestreo pequeños, hasta 0.01 s, el máximo ánguloinicial estabilizable es 0.75 rad, es <strong>de</strong>cir, el mismo <strong>de</strong>l sistema tiempo continuo. El valor critico


CAPÍTULO II. CONTROLADORES. DISEÑO Y SIMULACIÓN 62<strong>de</strong>l ángulo inicial disminuye <strong>de</strong> forma lineal al crecer el tiempo <strong>de</strong> muestreo, hasta llegar alvalor <strong>de</strong> 0.55 rad para T=0.1 s.10.90.80.70.6Cae o no0.50.40.30.20.1010.80.6Retrazo0.40.2000.10.20.30.60.50.4Angulo inicial0.70.80.91Figura 39: Influ<strong>en</strong>cia <strong>de</strong>l retraso sobre la estabilidadFinalm<strong>en</strong>te <strong>en</strong> la figura <strong>de</strong> arriba se ilustran los efectos <strong>de</strong>l retraso <strong>en</strong> el bucle cerrado. Se hafijado el valor <strong>de</strong> saturación a 1000 N y el tiempo <strong>de</strong> muestreo a T=0.02 y se han repetido lassimulaciones variando el valor <strong>de</strong>l retraso. Nótese que los valores <strong>de</strong> retraso que aparec<strong>en</strong>están normalizados con el tiempo <strong>de</strong> muestreo, es <strong>de</strong>cir, se escalan según el coci<strong>en</strong>te retrasopartido por el tiempo <strong>de</strong> muestreo. Se han utilizados valores que van <strong>de</strong> 0 a 1, que secorrespond<strong>en</strong> a un retraso <strong>en</strong>tre 0 y 0.02 s. Se pue<strong>de</strong> observar que la influ<strong>en</strong>cia <strong>de</strong>l retrasosobre la estabilidad es pequeña; la difer<strong>en</strong>cia <strong>de</strong>l ángulo crítico <strong>en</strong>tre retraso nulo y retrasoigual al tiempo <strong>de</strong> muestreo es <strong>de</strong> 0.05 rad, m<strong>en</strong>os <strong>de</strong> 3°.Refer<strong>en</strong>ciasF. Salas, F. Gordillo, J. Aracil. A forwarding controller for the p<strong>en</strong>dulum on a cart. April 2004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!