PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ ESCUELA DE POSGRADO MAESTRIA EN INGENIERÍA DE CONTROL Y AUTOMATIZACIÓN “CONTROL DE VEHÍCULOS MARINOS DE SUPERFICIE SUBACTUADOS BASADO EN FILTROS PLANOS LINEALES” Tesis para optar por el grado de Magister en Ingeniería de Control y Automatización Autor: Luis Bardalez Garcia Asesores: Ph.D. Juan Javier Sotomayor Moriano Ph.D. Hebertt José Sira Ramirez Miembros del jurado: Ph.D. Antonio Manuel Morán Cárdenas Ph.D. Juan Javier Sotomayor Moriano Ph.D. Jorge Richard Chávez Fuentes PUCP – 2015 Quiero dedicar este trabajo a mis padres, Janet y Luis, a mi enamorada, Sonia, y a mi hermano, Bruno, por apoyarme incondicionalmente en todos los proyectos que me he propuesto, comprenderme y motivarme a seguir adelante con mis sueños. AGRADECIMIENTOS Agradezco al Consejo Nacional de Ciencia, Tecnología e Innovación Científica (CONCYTEC) por promover el desarrollo de la investigación en el Perú y permitirme seguir la maestría a tiempo completo para poder generar conocimiento. Agradezco profundamente a Hebertt Sira por haberme acogido en México y haberme guiado en el desarrollo de la investigación con su amplia experiencia en el campo del control. Agradezco a todos mis profesores de la maestría por el valioso conocimiento que compartieron conmigo. En especial, agradezco a Javier Sotomayor y a Antonio Morán por haberme guiado metodológicamente en el desarrollo de la tesis; y a Jorge Chávez, por haberme apoyado en mejorar la comprensión del presente trabajo. Agradezco al grupo de trabajo con el que desarrollamos la implementación del barco, el intercambiar de ideas en el grupo me permitió enriquecer este trabajo. RESUMEN Esta tesis tiene como objetivo principal diseñar un sistema de control automático para vehículos marinos de superficie mediante el uso de un controlador por rechazo activo de perturbaciones (ADRC) basado en filtros planos lineales para su posterior implementación en un barco dedicado a la medición de variables marítimas, siguiendo una trayectoria planificada de antemano. La tesis incluye el modelamiento del barco basado en leyes físicas y el cual coincide en resultados con el modelo robótico trabajado en la bibliografía, una revisión teórica del controlador basado en filtro plano lineal, el diseño del controlador propiamente y una propuesta de implementación del sistema de control en un barco dedicado a monitoreo de variables marítimas ambientales. El controlador diseñado consta de dos partes; un generador de trayectorias realizables y un controlador de vehículo marino subactuado, ambos basados en filtros planos lineales. La combinación de ambos permite un control práctico (con estabilización no asintótica) del barco con un error en estado estacionario pequeño diferente de cero. Se realizaron pruebas del controlador en un modelo matemático de barco validado, obteniéndose un desempeño similar al de un controlador basado en linealización por realimentación de estados. Como ventaja, el controlador propuesto puede seguir trayectorias arbitrarias, poligonales y que requiere solo dos parámetros conocidos del modelo matemático del barco para funcionar adecuadamente; debido a esto, se reduce la carga computacional y se aligera la labor de identificación que sería necesaria en el caso del controlador basado en linealización por realimentación de estados. 1 ÍNDICE GENERAL INTRODUCCIÓN ..................................................................................................... 3 CAPÍTULO 1. ESTUDIO DEL CONTROL DE VEHÍCULOS MARÍNOS .................. 8 1.1. Estado del arte .............................................................................................. 8 Estado del arte del control de barcos ................................................................ 8 Estado del arte de los Filtros Planos Lineales..................................................13 1.2. Objetivo general y objetivos específicos .......................................................16 CAPÍTULO 2. MODELAMIENTO MATEMÁTICO ..................................................17 2.1. Sistemas de referencia .................................................................................17 2.2. Dinámica del centro de gravedad .................................................................19 2.3. Dinámica del centro O ..................................................................................22 2.4. Representación vectorial de la dinámica ......................................................25 2.5. Fuerzas hidrodinámicas ...............................................................................26 2.6. Masa añadida ...............................................................................................27 2.7. Amortiguamiento hidrodinámico ...................................................................28 2.8. Fuerza de los actuadores .............................................................................29 2.9. Modelo completo del barco ..........................................................................30 2.10. Conclusiones preliminares .........................................................................31 CAPÍTULO 3. PROPUESTA DE SOLUCIÓN .........................................................32 3.1. Presentación del controlador ........................................................................32 3.1.1. Control por Rechazo Activo de Perturbaciones ......................................32 3.1.2. Control Proporcional Integral Generalizado ...........................................33 3.1.3. Control Proporcional Integral Generalizado Robusto .............................37 3.1.4. Filtro plano lineal ....................................................................................40 3.2. Diseño del controlador para el vehículo marino de superficie subactuado ....42 3.2.1. Operaciones sobre modelo matemático .................................................42 3.2.2. Diseño de trayectoria de referencia .......................................................42 3.2.3. Diseño del controlador del barco............................................................47 3.3. Planteamiento de simulación ........................................................................52 3.4. Resultados de simulación .............................................................................53 3.4.1. Simulación de seguimiento de trayectoria circular .................................53 3.4.2. Simulación de trayectoria tipo rosa ........................................................57 3.4.3. Simulación de trayectoria cuadrada .......................................................59 3.4.4. Análisis de robustez del sistema ante variación de la masa ...................63 3.5. Conclusiones preliminares ...........................................................................69 2 CAPÍTULO 4. PROPUESTA DE IMPLEMENTACIÓN PRÁCTICA ........................70 4.1. Propuesta de elección de hardware .............................................................70 4.1.1. Esquemas de relación entre componentes ............................................70 4.1.2. Elección de la planta ..............................................................................71 4.1.3. Elección de actuadores y componentes relacionados ............................73 4.1.4. Elección de sensores y componentes relacionados ...............................76 Sensado del ángulo de guiñada ................................................................76 Sensado de posiciones e ........................................................................78 Procesamiento y manejo de datos ...............................................................79 4.1.5. Elección de controlador .........................................................................80 4.1.6. Elección de sistema supervisor ..............................................................81 4.1.7. Elección de sistemas de comunicación ..................................................81 4.1.8. Elección de fuente de alimentación ........................................................82 4.1.9. Esquema de relación entre hardware ....................................................83 4.2. Propuesta de diseño de software .................................................................83 4.2.1. Observaciones previas ..........................................................................83 4.2.2. Concentrador (Arduino UNO) .................................................................85 4.2.3. Puente (Arduino UNO) ...........................................................................88 4.2.4. Controlador (Raspberry Pi B+) ...............................................................94 4.2.5. Supervisor (Laptop de campo) ...............................................................97 4.3. Pseudocódigo de algoritmo de control basado en filtro plano lineal ..............97 4.3.1. Observaciones previas .......................................................................97 4.3.2. Inicialización del algoritmo de control .................................................97 4.3.3. Algoritmo de generación de trayectoria ..............................................98 4.3.4. Algoritmo de seguimiento de trayectoria .............................................99 4.4. Consideraciones adicionales en la implementación .................................... 100 4.5. Presupuesto de la propuesta de implementación ....................................... 101 4.6. Avances en implementación ....................................................................... 103 CONCLUSIONES ................................................................................................. 106 RECOMENDACIONES ......................................................................................... 107 BIBLIOGRAFÍA .................................................................................................... 108 ANEXOS .............................................................................................................. 112 ANEXO A: Obtención de fuerza debida a masa añadida ................................... 112 ANEXO B: Diseño de controlador de trayectoria del barco usando linealización por realimentación de estados .......................................................................... 116 3 INTRODUCCIÓN En la actualidad, el uso de vehículos teledirigidos y autónomos se ha generalizado para operar en zonas de difícil acceso, realizar tareas peligrosas, repetitivas o de largos tiempos de ejecución. En el aire, los cuadricópteros son robots ampliamente utilizados al punto que se han vuelto indispensables para realizar tomas aéreas donde se requiere cubrir un gran terreno de captura (Brumana, O. et al. 2012), para aplicaciones topográficas (Remondino, B. et al. 2011) e incluso para aplicaciones periodísticas (Professional Society of Drone Journalists). En tierra, existen diversos desarrollos tales como los robots para transporte de materiales (Carniege Mellon University, 2015), sistemas de vigilancia móviles, telepresencia y automóviles autónomos para transporte de personas (Google) siendo solo necesario que la persona defina a donde se quiere dirigir. Para aplicaciones marinas se tiene a disposición submarinos y barcos teledirigidos y autónomos (Motwani, A. 2012). Estos vehículos son utilizados para realizar mediciones de fondo de lecho en lagos, medición de variables marítimas ambientales y labores adicionales relacionadas al mar. En el caso de los vehículos controlados de manera remota, los submarinos suelen recibir órdenes mediante un arreglo de cables comúnmente llamado cordón umbilical, como se muestra en la Figura 1.1, o mediante comunicación inalámbrica; los barcos, por otro lado, son normalmente controlados de forma inalámbrica utilizando un radiocontrol como el que se muestra en la Figura 1.2 o una computadora para dar las órdenes. Figura 1.1: Submarino teledirigido mediante cordón umbilical (NOAA, 2005) 4 Figura 1.2: Barco teledirigido inalámbricamente mediante radiocontrol, usado para estudios hidrográficos En el caso de los vehículos marinos autónomos, se cuenta con un computador central que controla el comportamiento de los actuadores del vehículo según las mediciones que recibe de los sensores. Se suele tener un sistema de comunicaciones, pero solo es usado para el registro de datos y la definición de las tareas. Actualmente, existen barcos comerciales programables con computador incluido o barcos a los que puede añadírseles un computador externo. En la Figura 1.3 se muestra un barco que utiliza paneles solares y utilización de la energía de las olas para asegurar un mayor tiempo de autonomía en el mar (Hine, R. et al. 2009). Figura 1.3: Wave Glider de Liquid Robotics 5 Una de las aplicaciones de los vehículos marinos autónomos es la medición de variables marítimas, donde se requiere que el barco navegue autónomamente siguiendo una trayectoria deseada de manera que se pueda obtener una malla de datos marítimos para su análisis posterior. Desde el punto de vista del control del barco, el objetivo es seguir la trayectoria con el menor error posible, de manera que se logre cumplir con la tarea de obtención de la malla de datos. Para ejecutar la tarea de control se cuenta con dos etapas fundamentales: el planeamiento de trayectoria y el seguimiento de la trayectoria. El planeamiento de trayectoria requiere el conocimiento de la posición de posibles obstáculos y las posiciones objetivo que pueden ser del tipo baliza (áreas de partida y llegada consecutivas) o del tipo inicio-final (punto de partida y llegada). La Figura 1.4 muestra un ejemplo de trayectoria planeada para un barco autónomo para la medición de salinidad del mar. Figura 1.4: Trayectoria planeada para seguimiento (Liquid Robotics 2013) El seguimiento de la trayectoria requiere la posición, orientación y velocidad presentes del barco, la estimación de perturbaciones externas y la trayectoria planeada. La Figura 1.5 muestra el seguimiento de la trayectoria referida en la Figura 1.4 junto a las mediciones realizadas. Para obtener la posición del barco se cuenta con sensores diversos, tales como el GPS (Global Positioning System), el magnetómetro, el acelerómetro y el giroscopio, entre otros. 6 Figura 1.5: Trayectoria seguida y medición de salinidad (Hull, T. et al. 2013) En el Perú, el uso de vehículos marinos es importante dada la magnitud del mar. Sin embargo, la gran mayoría de vehículos utilizados son embarcaciones tripuladas, requiriéndose personal involucrado activamente para el monitoreo del mar. Debido al tiempo, la periodicidad y el personal tripulando el vehículo que requiere la toma de datos, se percibe la necesidad de utilizar vehículos marinos autónomos para el monitoreo ambiental del mar, de forma que el monitoreo sea continuo y con la mínima intervención humana posible. La presente tesis tiene como objetivo desarrollar un sistema de control de vehículos de superficie, principalmente enfocado al monitoreo de variables marítimas. Este trabajo está organizado como sigue: El Capítulo 1 presenta un análisis del estado del arte del control de vehículos marinos, del controlador elegido y plantea los objetivos de la tesis. 7 El Capítulo 2 expone los pasos llevados a cabo para realizar el modelamiento del barco utilizando definiciones de sistemas de referencia, las leyes de Newton y principios básicos de hidrodinámica aplicada a vehículos marítimos. El capítulo 3 expone la metodología seguida para realizar el diseño del controlador para vehículos marítimos de superficie subactuados (más grados de libertad que actuadores disponibles) basado en filtros planos lineales. Como base teórica se presenta el paradigma de Control por Rechazo Activo de Perturbaciones (ADRC), se muestra una introducción al Control Proporcional-Integral Generalizado (GPI) y se concluye con la robustificación del GPI mediante el uso del rechazo activo de perturbaciones, que reinterpretando deriva en un Filtro Plano Lineal. Se presenta el diseño en el control del barco con esta técnica de control y se muestran las simulaciones y comparaciones con la literatura correspondiente. El Capítulo 4 presenta la propuesta de implementación del controlador del vehículo autónomo. Se incluyen equipos, componentes y esquemas necesarios para su realización, la estructura del programa a utilizar tanto en el control como en el resto de tareas del sistema, consideraciones adicionales para poner el barco en funcionamiento y avances realizados con un barco real de características similares a las descritas en la propuesta. 8 CAPÍTULO 1. ESTUDIO DEL CONTROL DE VEHÍCULOS MARÍNOS 1.1. Estado del arte Estado del arte del control de barcos Se llama grados de libertad a cada uno de los movimientos que el barco puede realizar. Para modelos matemáticos planos, se tiene dos de desplazamiento en el plano XY ( ) y uno de rotación alrededor del eje Z ( ). Las velocidades respectivas para cada uno de las variables anteriores ( ) son también tomadas en cuenta en el modelo. En control automático, existe un gran desarrollo de técnicas aplicables en barcos que poseen igual número de actuadores ( ) que grados de libertad (llamados barcos completamente actuados), como se muestra en la Figura 1.6 (Fossen, T.I. 2000), (Fossen T.I. 2011). Figura 1.6: Evolución del control de barcos antes del año 2000 (Adaptado de Fossen, T.I. 2000) 9 En (Do, K. D. 2010) se presenta el diseño de un controlador práctico (con estabilización no asintótica) para trayectorias arbitrarias para barcos subactuados. Para esto, se basa en cambios de variables no lineales, backstepping, estabilidad de Lyapunov y la dinámica del barco. La ventaja que presenta es que es capaz de estabilizar el barco para trayectorias y puntos fijos usando un control práctico, esto es, sin convergencia asintótica; en la Figura 1.7 se muestra uno de los resultados obtenido mediante este controlador para seguimiento de trayectoria circular. Su principal desventaja es que no puede ser utilizado para trayectorias con primeras o segundas derivadas discontinuas en , como es el caso de una trayectoria poligonal. Figura 1.7: Resultado de seguimiento de trayectoria circular (Adaptado de Do, K. D. 2010). En (Chwa, D. 2011) se presenta un controlador mediante superficies dinámicas (Dynamic Surface Control) que es diseñado en base a linealizaciones sucesivas de la cinemática y dinámica del modelo del barco considerando que las velocidades y los controles son restringidos. La Figura 1.8 muestra un diagrama del controlador desarrollado. Presenta como ventaja que no requiere excitación persistente de la velocidad de guiñada ( puede ser cero), pero asume que se tiene una trayectoria previamente planeada con definidas adecuadamente, cosa que no es posible cuando se tiene perturbaciones desconocidas aplicadas al barco. 10 Figura 1.8: Estructura de control mediante superficies dinámicas (Adaptado de Chwa, D. 2011) En (Wondergem, M. 2011) se toma en cuenta toda la dinámica del barco para realizar el controlador y observador mediante pasividad presentando resultados experimentales. Como observación, el barco controlado es completamente actuado. Sus principales desventajas son que el diseño del observador requiere conocer adecuadamente todos los parámetros del barco y que el controlador no es extensible al caso subactuado. En (Ding, F. et al. 2011) se diseña un controlador basado en backstepping sucesivo y el método de Lyapunov, eliminando la restricción de excitación persistente de la velocidad de guiñada. Sin embargo, no considera incertidumbre paramétrica y asume que la trayectoria fue generada por un barco virtual para asegurar la estabilidad, el cual no está especificado para trayectorias arbitrarias. En (Dai S. L. et al. 2012) se presenta un controlador por aprendizaje basado en redes neuronales. Tanto el modelo del barco como el controlador de trayectoria inicial se plantean usando una estructura de red neuronal con función de base radial gaussiana y se entrenan fuera de línea. Posteriormente, se diseña una ley de reajuste para el controlador sin necesidad de cambiar el modelo del barco hallado. Este controlador tiene como ventaja no requerir conocimiento de los parámetros del barco como tales, pero tiene como desventaja la necesidad de adaptación en línea y el uso de una señal de control con excitación persistente parcial para realizar el reajuste. En (Li, R. et al. 2012) se presenta un controlador lineal basado en rechazo activo de perturbaciones mostrado en la Figura 1.9; en la subsección 3.1 se explica con mayor detalle este tipo de control. Como ventaja, el controlador no requiere el conocimiento de todos los parámetros del modelo matemático del barco; sin embargo, con el planteamiento mostrado no es posible controlar trayectorias con velocidad variable y la trayectoria debe ser convergente a una línea recta. 11 Figura 1.9: Control lineal por rechazo activo de perturbaciones (Li, R. et al. 2012) En (Pan, C. Z. et al. 2013) se presenta un controlador adaptativo basado en redes neuronales mostrado en la Figura 1.10. El modelo matemático del barco es expresado como una red neuronal de una sola capa y entrenado directamente en línea, lo que hace el algoritmo computacionalmente rápido. En base a los parámetros obtenidos de la red, se plantea un controlador no lineal estable. Como observación, el diseño se realizó para un barco de dinámica desconocida con actuación completa; sin embargo, la identificación por redes neuronales es extensible al caso de barcos subactuados. La principal desventaja es que la trayectoria de referencia debe ser acotada en sus dos primeras derivadas, condición que no se cumple en trayectorias poligonales. Figura 1.10: Controlador adaptativo basado en redes neuronales (Adaptado de Pan, C. Z. et al. 2013) 12 En (Li, R. et al. 2013) se presenta un controlador por desacoplamiento dinámico de la perturbación basado en rechazo activo de perturbaciones similar al presentado en la Figura 1.9. El controlador no depende del modelo matemático del barco y es capaz de controlar velocidades a diferencia de (Li, R. et al. 2012); sin embargo, su principal uso, según el planteamiento, es para trayectorias en línea recta, teniendo que ser rediseñado para trayectorias curvas. En (Bao-Li M. et al. 2013) se presenta un controlador global y asintóticamente estable de trayectorias para barcos subactuados con modelos no simétricos. Sus principales puntos débiles son que el diseño no tiene en cuenta la presencia de incertidumbres paramétricas y que la trayectoria debe estar completamente definida en , cosa que no es posible para una trayectoria del tipo debido a que no se puede despejar el resto de variables en función a sólo estas dos. En (Yang, Y. et al. 2014) se presenta un controlador basado en backstepping vectorial. El controlador es robusto ante incertidumbres y perturbaciones; sin embargo, requiere que la trayectoria deseada esté definida en , cosa que no es posible obtener a partir de una trayectoria arbitraria definida en . En (Serrano, M. E. et al. 2014) se presenta un controlador basado en la resolución de ecuaciones algebraicas planteadas con el modelo matemático y la trayectoria arbitraria que se desea seguir. Este controlador tiene como ventaja que puede seguir trayectorias arbitrarias poligonales como la trayectoria mostrada en la Figura 1.11 y no requiere transformaciones de coordenadas complejas. Figura 1.11: Seguimiento de trayectoria no continua en segunda derivada (Adaptado de Serrano, M. E. et al. 2014) 13 Por lo visto, las técnicas de control utilizadas para barcos subactuados son principalmente no lineales, basadas en redes neuronales o basadas en rechazo activo de perturbaciones. En el caso de control no lineal y de control basado en redes neuronales, se requiere del conocimiento detallado del modelo del barco (parámetros, estructura, etc.), por lo que se requiere realizar una labor de identificación de parámetros que permita proponer el controlador adecuado. Adicionalmente, se requiere de una etapa de adaptación de parámetros en línea, lo cual incrementa la carga computacional. De esta forma, una buena parte de la labor del diseño y aplicación de control está constituida por el esfuerzo de la identificación del sistema. Es por esto que, para la realización de esta tesis, se escoge un enfoque basado en rechazo activo de perturbaciones. Estado del arte de los Filtros Planos Lineales Debido a lo expuesto, un cambio de paradigma fue propuesto por Han y desarrollado por Gao después de su muerte (Gao, Z. 2006), llamado Control por Rechazo Activo de Perturbaciones (ADRC), donde el control está basado en la regulación de un modelo simplificado de la dinámica del error de seguimiento, incluyendo términos de perturbación no estructurados que pueden ser estimados mediante un observador sencillo. El controlador PID es un claro ejemplo de este paradigma y, en la práctica, ampliamente usado debido a su robustez ante el cambio de parámetros y de referencias, robustez ante la presencia de ruido y a otras incertidumbres nacidas del modelado imperfecto. En el algoritmo del controlador PID se muestra la acción de control no está expresada en función a los parámetros de un modelo matemático controlado, sino que está expresada solamente en función a operaciones sobre error de seguimiento . El algoritmo de control PID es ∫ El ADRC (Han, J. 2009) encapsula tanto las dinámicas no modeladas como las perturbaciones endógenas y exógenas para proceder a estimarlas mediante Observadores de Estado Extendido (ESO). Estos observadores son capaces de estimar efectos de no linealidades y perturbaciones exógenas en sistemas no lineales cuando son acotadas (Yang X. et al. 2009). Una vez estimada la perturbación se procede, subsecuentemente, a eliminarla mediante la acción apropiada del control. En (Radke, A. et al. 2006) se puede encontrar la evolución de los observadores de estado y perturbación, resumidos en la Figura 1.12. Esta 14 metodología, introducida por Han (Han, J. 2009), ha tenido aplicaciones exitosas en ambientes industriales (Qing A. et al. 2010) y enclaves de experimentación académica mucho más allá de esfuerzos de mera simulación. Los controladores GPI (Sira-Ramírez, H. 2003) son inherentemente adecuados para los sistemas lineales en los cuales se quiere evitar el uso de observadores asintóticos. En su lugar, las variables de estado y las leyes de control son substituidas por expresiones dependientes, solamente, de entradas, salidas y un número finito de integrales iteradas de estas dos cantidades. El GPI es robusto a perturbaciones llamadas "clásicas" (constantes, rampas, parábolas y en general polinómicas en el tiempo). Un tipo particular de control mediante ADRC es el basado en Filtros Planos lineales. Esta metodología constituye una robustificación de los controladores GPI y no utilizan observadores extendidos. Su extensión a rechazar perturbaciones más generales es posible gracias a la dualidad que estos controladores disfrutan con respecto a los observadores de perturbación basados en observadores de estado extendido (Extended State Observer, ESO). En (Sira-Ramirez, H. et al. 2008) se realizaron pruebas de laboratorio usando exactamente este mismo controlador en tres topologías completamente distintas, con lo que muestran la robustez inherente del mismo. En resumen, el control GPI robusto permite el control lineal del sistema no lineal rechazando los efectos de las no linealidades y de otras perturbaciones en la misma forma que los observadores extendidos estiman combinaciones de no linealidades de estado y perturbaciones exógenas. La gran ventaja del ADRC basado en ESO y del GPI robusto (Filtros Planos Lineales) reside en que hacen innecesaria la estimación paramétrica y el conocimiento detallado de la estructura del sistema. Como principal desventaja, no aseguran convergencia asintótica del error, sino que aseguran un control práctico. La aplicación de GPI robustos (Filtros Planos Lineales) en modelos aproximados de vehículos marinos de superficie facilita enormemente las labores de planificación de trayectorias fuera de línea y el diseño correspondiente de controladores para varios casos sin depender de una identificación paramétrica rigurosa del modelo. 1 5 Figura 1.12: Evolución de los observadores de estado y perturbación (Adaptado de Radke, A. et al. 2006) 16 1.2. Objetivo general y objetivos específicos El objetivo general de la tesis es diseñar un sistema de control automático para vehículos marinos de superficie mediante el uso de ADRC, basado en filtros planos lineales, para su posterior implementación en un barco dedicado a la medición de variables marítimas siguiendo una trayectoria planificada de antemano. Para alcanzar el objetivo general, es necesaria la consecución de los siguientes trabajos de investigación y desarrollo: - Obtener el modelo matemático que caracterice el comportamiento de un barco subactuado no tripulado. - Diseñar un sistema de control basado en filtros planos lineales que permita seguir una trayectoria planeada. - Simular mediante software el comportamiento del barco bajo la acción de control diseñada. - Proponer la implementación práctica del controlador en un barco enfocado a monitoreo marítimo. 17 CAPÍTULO 2. MODELAMIENTO MATEMÁTICO 2.1. Sistemas de referencia Para la determinación de la cinemática del barco es necesario definir los sistemas de referencia utilizados (Fossen, 2011). La Figura 2.1 muestra la ubicación de cada uno. Figura 2.1: Representación gráfica de los sistemas coordenados (Adaptado de Fossen, 2011) ECI (Earth-centered inertial): Es un sistema de ejes coordenados con origen en el centro de la tierra que no rotan junto a ella y, por lo tanto, son aplicables las leyes de Newton en sistemas inerciales. Normalmente se utilizan para sistemas de navegación inerciales. ECEF (Earth-centered Earth-fixed): Es un sistema de ejes coordenados con origen en el centro de la tierra y que rotan junto a ella. La velocidad de giro de estos ejes es igual a la velocidad de rotación de la tierra ( ). Este sistema se usa para sistemas de navegación entre continentes. Las leyes de Newton en sistemas inerciales son aplicables para este sistema de ejes coordenados ya que los efectos de tal rotación son despreciables para vehículos que se mueven a baja velocidad (velocidad < ). NED (North-East-Down): Es un sistema de ejes coordenados definido en base a la referencia de elipsoide terrestre (Decker, B. L. 1984). Se encuentra relacionado con el sistema ECEF mediante la longitud y latitud (medidas angulares en un sistema 18 coordenado toroidal). El sistema tiene el plano tangente a la elipsoide de la tierra, con apuntando hacia el norte verdadero (no hacia el norte magnético), apuntando hacia el este y normal a los ejes anteriores y definido por la regla de la mano derecha (dado que se utiliza una aproximación elipsoide, no necesariamente apunta hacia el centro de la tierra). Este sistema considera a la tierra como plana (aproximación razonable para pequeñas distancias) por lo que simplifica el diseño del control a dos dimensiones de desplazamiento. Para las proximidades al punto centro elegido como referencia, se asume que este sistema coordenado es inercial y que, por lo tanto, son aplicables las leyes de Newton para sistemas inerciales. BODY: Es un sistema de ejes coordenados cuyo origen se escoge sobre el barco, normalmente en el centro geométrico del barco, con definido en dirección positiva a la proa (parte delantera) y negativa a la popa (parte trasera), definido en dirección positiva al babor (parte izquierda) y negativa al estribor (parte derecha) y normal a los ejes anteriores y definido por la regla de la mano derecha. Para el modelamiento del comportamiento dinámico del barco se utilizarán los sistemas NED como sistema inercial y BODY como sistema para definir las velocidades. Un modelo general del barco incluye seis grados de libertad; tres de posición y tres de rotación. Además, se definen seis tipos de movimiento en el barco. - Avance (surge): Movimiento traslacional en dirección del eje del sistema BODY. - Deriva (sway): Movimiento traslacional en dirección del eje del sistema BODY. - Arfada (heave): Movimiento traslacional en dirección del eje del sistema BODY. - Balance (roll): Movimiento rotacional alrededor del eje del sistema BODY. - Cabeceo (pitch): Movimiento rotacional alrededor del eje del sistema BODY. - Guiñada de rumbo o guiñada (yaw): Movimiento rotacional alrededor del eje del sistema BODY. En esta tesis se utiliza un modelo plano de 3 grados de libertad que considera los movimientos de arfada, deriva y guiñada. No se considera el modelo completo de 6 19 grados de libertad ya que los movimientos de arfada, balance y cabeceo no tienen gran influencia en el seguimiento de rutas del barco. En caso de querer aplicarse el modelo presente a embarcaciones de tamaño mayor, puede controlarse el resto de grados de libertad independientemente de los movimientos de arfada, deriva y guiñada de manera que la simplificación del modelo plano sigue siendo aplicable. 2.2. Dinámica del centro de gravedad Para la obtención del modelo matemático del barco se requiere primero analizar la dinámica del centro de gravedad. En base a este modelo se planteará un caso más general, donde la posición no es medida sobre el centro de gravedad. En la Figura 2.2 se muestra el sistema de referencia del barco. Según el sistema coordenado NED, la variación de la coordenada inercial está en dirección norte (N) y la variación de la coordenada inercial está en dirección este (E). Figura 2.2: Sistema de referencia del barco Tomando como vectores unitarios del sistema coordenado NED ̂ ̂ y del sistema coordenado BODY ̂ ̂ ̂, se tiene ̂ ( ) ( ) ̂ ̂ ( ) ( ) ̂ entonces [ ̂ ̂ ] [ ( ) ( ) ( ) ( ) ] [ ̂ ̂ ] de donde [ ̂ ̂ ] [ ( ) ( ) ( ) ( ) ] [ ̂ ̂ ] 20 Calculando las derivadas de los sistemas coordenados, obtenemos ̂ ( ) ̇ ̂ ( ) ̇ ̂ ̂ ̇ ̂ ( ) ̇ ̂ ( ) ̇ ̂ ̇̂ Se utilizarán las variables , y ̇ para denotar las velocidades de avance, deriva y guiñada respectivamente. La velocidad angular es la misma en todo el barco debido a que es un cuerpo rígido. Reemplazado en las derivadas de la dirección BODY, se obtiene ̂ ̂ ̂ ̂ Según la mecánica newtoniana para un sistema de referencia inercial: ∑ ⃗ ⃗ ∑ ⃗ ⃗ Para la primera condición, ∑ ⃗ es la sumatoria de fuerzas aplicadas sobre el cuerpo en el centro de gravedad sobre el cuerpo, es la masa del cuerpo y ⃗ es la aceleración lineal del centro de gravedad del cuerpo; para la segunda, ∑ ⃗ es la sumatoria de momentos aplicados en el centro de gravedad del cuerpo, es la matriz de inercias del cuerpo respecto al centro de gravedad y ⃗ es la aceleración angular del cuerpo. Ya que estamos trabajando con un cuerpo rígido, se considera que y no varían. Para el caso de tres dimensiones planteado ( ), las condiciones de equilibrio dinámico quedan definidas por (2.1). ⃗ ⃗ [ ̈ ̈ ] ̈⃗ ̈ ̇ ( ) donde ⃗ es un vector libre de la suma de fuerzas, ⃗⃗ ( ) la posición del barco, ̈⃗ es el vector de aceleración del centro de gravedad respecto al sistema inercial, es la suma de momentos sobre el centro de gravedad (considerando que se encuentra paralela al eje ), la inercia respecto al centro de gravedad y ̈ la aceleración angular escalar del cuerpo. 21 Tomando el vector de posición del centro de gravedad en el sistema inercial y derivando respecto del tiempo: ⃗ ̂ ̂ ⃗ ̇ ̇ ̂ ̇ ̂ La velocidad puede ser descompuesta en cualquier sistema coordenado ya que es un vector libre. Escogiendo el sistema BODY, se tienen las velocidades y expresadas en (2.2). ̇⃗ ̇ ̂ ̇ ̂ ̂ ̂ ( ) Derivando respecto al tiempo: ̈⃗ ̇ ̂ ̂ ̇ ̂ ̂ ̇ ̂ ̂ ̇ ̂ ( ̂ ) ( ̇ ) ̂ ( ̇ ) ̂ de donde el equilibrio dinámico es expresado por ⃗ ̈⃗ ( ̇ ) ̂ ( ̇ ) ̂ ̇ Descomponiendo sobre los vectores ̂ y ̂ del sistema BODY el vector de fuerza ⃗ ( ̂ ̂ ), se obtiene ̂ ( ̇ ) ̂ ( ̇ ) ̇ En la Figura 2.3 se muestra la descomposición de fuerzas correspondiente en cada uno de los ejes del sistema BODY. Figura 2.3: Descomposición de fuerzas aplicadas en ejes del sistema BODY. 22 2.3. Dinámica del centro O La posición medida del barco no suele coincidir con el centro de gravedad debido a que los sensores no siempre pueden ser ubicados exactamente en tal punto. Es por esto que se considera un punto sobre la línea transversal al barco llamado centro O, el cual es tomado como referencia para la posición del barco. La obtención de la dinámica del centro O está basado en la dinámica del centro de gravedad. La Figura 2.4 muestra que la posición del centro de gravedad es expresable en función a la posición del centro O con respecto al sistema inercial mediante una traslación en dirección al vector .̂ es la distancia medida desde el centro hacia el centro de gravedad y es un vector libre de posición del centro con valor ̂ ̂. Figura 2.4: Distancia entre el centro de gravedad y el centro O y velocidades en sistemas coordenados BODY. Matemáticamente, esta traslación y su respectiva derivada respecto al tiempo quedan expresadas como ⃗ ⃗ ̂ ̇⃗ ̇⃗ ̂ ̂ ̇⃗ ̂ Debido a que el barco no tiene variación en sus distancias internas por ser un cuerpo rígido, el valor de . Se descompone la velocidad del centro O ̇⃗ ̂ ̂ en el sistema BODY de forma análoga a la descomposición de la velocidad del centro de gravedad mostrada en (2.2). ̇⃗ ̂ ̂ ̂ 23 Derivando respecto al tiempo: ̈⃗ ̇ ̂ ̂ ̇ ̂ ̂ ̂ ̇ ̂ ̇ ̂ ̂ ̇ ̂ ( )̂ ( )̂ ̇ ̂ ( ̇ ) ̂ ( ̇ ̇) ̂ Reemplazando ̈⃗ en (2.1), se consigue ⃗ ̈⃗ ( ̇ ) ̂ ( ̇ ̇) ̂ ̇ Descomponiendo el vector de fuerza ⃗ sobre los vectores ̂y ̂tal como se mostró en la Figura 2.3, se obtiene ̂ ( ̇ ) ̂ ( ̇ ̇) ̇ Dado que se trabajará directamente sobre el centro , se requiere tener las fuerzas y el momento referidos al mismo punto. Trasladando las fuerzas al centro :  ̂ ̂ , ya que la fuerza lineal no cambia según sea el punto de aplicación.  ̂ ̂ , ya que la fuerza lineal no cambia según sea el punto de aplicación; sin embargo, la traslación de esta fuerza sí generará un momento que será incluido en el siguiente punto.  La fuerza ̂ ̂ no genera momento ya que su aplicación pasa por el centro , la fuerza ̂ ̂ genera un momento ̂ ̂ ̂ al ser trasladada al punto una distancia , el momento no es afectado por el cambio de coordenadas ya que el barco es un cuerpo rígido; por tanto, ̂ . En la Figura 2.5 se muestra mejor la equivalencia de las fuerzas. 24 Figura 2.5: Equivalencia de aplicación de fuerzas y momentos en los centros de gravedad y . Expresando las fuerzas y momento respecto al centro O: ̂ ( ̇ ) ̂ ( ̇ ̇) ( ̂ ) ̇ ( ̂ ) ̇ ( ̇ ̇) ( ) ̇ ( ̇ ) Por el teorema de Steiner, la inercia respecto al centro O es la inercia respecto al centro de gravedad sumada con la masa del cuerpo por el cuadrado de la distancia entre del centro O y el centro de gravedad, esto es . Entonces: ̇ ( ̇ ) Acomodando las ecuaciones dinámicas se tiene (2.3). ̂ ( ̇ ) ̂ ( ̇ ̇) ̇ ( ̇ ) ( ) Estas ecuaciones están referidas a velocidades del barco en el sistema BODY, las velocidades en el sistema NED deben ser calculadas para utilizarse en el cálculo posterior de posiciones mediante integración de las ecuaciones diferenciales obtenidas. Se sabe que (2.1) representa la transformación que nos permite expresar un vector del sistema BODY en el sistema NED. Utilizando ⃗ ̂ ̂ ̇⃗ ̇ ̂ ̇ ̂ 25 se tiene [ ̇ ̇ ] [ ( ) ( ) ( ) ( ) ] [ ] Añadiendo la igualdad de velocidad rotacional entre el sistema BODY y el sistema NED ̇ se tiene: [ ̇ ̇ ̇ ] [ ( ) ( ) ( ) ( ) ] ⏟ ( ) [ ] donde ( ) es la matriz de rotación para pasar del sistema BODY al sistema NED. Como ( ) es ortogonal, ( ) ( ) es la matriz de rotación del sistema NED al sistema BODY. 2.4. Representación vectorial de la dinámica Dado que todas las ecuaciones están expresadas en función de las posiciones y velocidades referidas al centro , en adelante éstas se expresarán sin el subíndice por simplicidad de escritura. Esto es, , , , . Aplicando esta sustitución en (2.3) se obtiene ̂ ( ̇ ) ̂ ( ̇ ̇) ̇ ( ̇ ) Desarrollando los productos, agrupando términos de aceleraciones y velocidades y factorizando las velocidades y aceleraciones para formar matrices ̂ ̇ ̂ ̇ ̇ ̇ ̇ [ ̂ ̂ ] [ ̇ ̇ ̇ ̇ ̇ ] [ ] Se definen [ ] como el vector de posición, [ ] como el vector de velocidad, ⃗ como el vector de fuerza aplicada sobre el vehículo, como la matriz de masa y ( ) como la matriz de Coriolis dependiente de las velocidades. 26 [ ] ⏟ ⃗ [ ] ⏟ [ ̇ ̇ ̇ ] ⏟ ̇ [ ] ⏟ ( ) [ ] ⏟ De donde se obtiene el modelo: ⃗ ̇ ( ) Añadiendo las ecuaciones de cinemática: [ ̇ ̇ ̇ ] ⏟ ̇ [ ( ) ( ) ( ) ( ) ] ⏟ ( ) [ ] ⏟ [ ] [ ] Se tiene el sistema completo: ̇ ( ) ̇ ( ) ⃗ Se utiliza el subíndice RB (Rigid Body) para denotar que tales ecuaciones se obtuvieron considerando al barco como un cuerpo rígido. Todas las fuerzas externas al barco son incluidas en el término ⃗ ; incluyendo las fuerzas hidrodinámicas existentes por la interacción del barco con el agua ( ⃗ ), las fuerzas generadas por actuadores como el propulsor y el timón ( ⃗ ) y las perturbaciones ambientales como oleaje ( ⃗ ) y viento ( ⃗ ). De esta forma: ⃗ ⃗ ⃗ ⃗ ⃗ ̇ ( ) ⃗ ⃗ ⃗ ⃗ 2.5. Fuerzas hidrodinámicas En un fluido ideal el barco debería poder deslizarse sin tener pérdidas por la acción del fluido que lo rodea; sin embargo, esta situación no se da en la realidad. Para el presente estudio, las fuerzas hidrodinámicas son fuerzas generadas por la interacción entre el barco y el agua. Normalmente se asume que las fuerzas y momentos hidrodinámicos en un cuerpo rígido se superponen linealmente. 27 - Fuerzas inducidas por radiación: Estas son las fuerzas sobre el cuerpo cuando éste es forzado a oscilar con la frecuencia de excitación de las olas sin tener olas que incidan sobre él. - Masa añadida debido a la inercia del fluido que envuelve el barco. - Amortiguamiento potencial inducido por radiación, debido a la energía disipada a la superficie de las olas. Ya que su efecto es pequeño comparado con otros amortiguamientos suele despreciarse. - Otros amortiguamientos hidrodinámicos tales como el amortiguamiento viscoso producido por la fricción con la superficie, amortiguamiento por avance sobre olas, etc. - Fuerzas conservativas debido al principio de Arquímedes que relaciona la masa del cuerpo con su flotabilidad. Estas fuerzas no serán consideradas en el modelo ya que solo tienen relevancia en los movimientos de arfada, balance y cabeceo.  Fuerzas de difracción: Son las fuerzas en el cuerpo cuando es restringido de oscilar teniendo olas incidiendo sobre él. 2.6. Masa añadida La masa añadida debe ser entendida como fuerzas y momentos inducidos por la presión, debidos al movimiento armónico forzado sobre el barco, que son proporcionales a la aceleración del cuerpo. Por esto, estas fuerzas están desfasadas 180° respecto al movimiento armónico forzado; en otras palabras, tienen signo contrario. La fuerza causada por la masa añadida es expresada por (2.4); su demostración puede ser encontrada en el Anexo A. ⃗ ̇ ( ) ( ) [ ̅ ̅ ] ( ) [ ̅ ̅ ] Resulta que la fuerza añadida tiene una estructura similar a la ecuación dinámica del barco. 28 2.7. Amortiguamiento hidrodinámico El amortiguamiento hidrodinámico está compuesto por varios tipos de amortiguamiento tales como: - Amortiguamiento viscoso debido a fricción con la superficie explicado por la teoría de flujos laminares. Es un término importante cuando se considera el movimiento de baja frecuencia del barco. Aunque puede modelarse de manera lineal, suele agregársele términos no lineales debido a la contribución de los movimientos de alta frecuencia por a flujos turbulentos; los términos añadidos son considerados del tipo cuadrático o de valor absoluto. - Amortiguamiento por avance sobre olas originado por la resistencia añadida del agua causada por la presencia de olas. - Amortiguamiento debido a emisión de vórtices causado por la presencia de formas agudas en el barco que emiten vórtices, disminuyendo la energía del sistema. - Arrastre de flujo cruzado debido a transferencia de momento entre el barco y el fluido. Dado que todos estos términos están en función de las velocidades relativas del barco con respecto al agua de forma lineal o no lineal, se agruparán todos de forma que se tenga un modelo de amortiguamiento unificado. Considerando que el efecto de las corrientes de agua es mínimo, se tomará la velocidad relativa del barco como la velocidad total. Se asumirá, como en el caso de la masa añadida, que el movimiento de avance no depende de los movimientos de deriva y guiñada y viceversa, por lo que la matriz de amortiguamiento viene dada por ( ) [ | || | | || | | || | | || | | || | | || | | || | | || | | || | ] de forma que (2.5) representa la fuerza de amortiguamiento. ⃗ ( ) ( ) Resumiendo, a partir de las (2.4) y (2.5), la fuerza hidrodinámica resultante para el modelo es: ⃗ ⃗ ⃗ ̇ ( ) ( ) ( ) 29 2.8. Fuerza de los actuadores El barco modelado cuenta con dos propulsores que generan una fuerza independiente cada uno, y . Su interacción resulta en una fuerza de avance y un torque aplicado en el mismo eje que el ángulo de guiñada . Ambos propulsores están colocados simétricamente respecto al eje de avance del barco a una distancia del centro . En la Figura 2.6 se muestra la geometría de los actuadores respecto al barco. Figura 2.6: Geometría de los actuadores respecto al barco. Respecto al sistema coordenado BODY, la fuerza en el sentido de avance es la suma de las dos fuerzas mientras que en el sentido de arrastre no se tiene fuerza aplicada. Además, dada la distancia del centro O a la línea aplicación de las fuerzas y , se tienen momentos generados por ambas. ̂ ̂ Agrupando las tres componentes se obtiene ⃗ [ ̂ ̂ ] [ ] [ ] [ ] ⃗ [ ] ⏟ [ ] ⏟ ( ) 30 donde es llamada matriz de geometría y es el vector de fuerza generada por los propulsores. Otra disposición útil para el diseño del control incluye la fuerza de avance y el torque aplicado sobre el barco directamente, de forma que se expresa [ ] [ ] [ ] { De aquí, la nueva matriz de geometría queda definida a partir de ⃗ [ ] [ ] ⏟ [ ]⏟ ( ) Se debe tener en cuenta que la fuerza resultante para ambas representaciones es la misma, de forma que: 2.9. Modelo completo del barco Reemplazando los valores de fuerzas encontrados para las fuerzas hidrodinámicas usando (2.6), la fuerza de los actuadores usando (2.7) y (2.8) y acomodando velocidades y aceleraciones a la izquierda se obtiene ̇ ( ) ̇ ( ) ( ) ⃗ ⃗ ( )⏟ ̇ ( ( ) ( ))⏟ ( ) ( ) ⃗ ⃗ En general, la fuerza de las olas puede ser modelada por una función de transferencia de segundo orden, mientras que la fuerza del viento puede ser modelada como un camino aleatorio; sin embargo, estos modelos no serán estudiados ya que no serán considerados para el diseño del controlador. El modelo resultante, coincidente con el modelo robótico planteado por primera vez por Fossen (Fossen T. I. 1991) para el caso de vehículos submarinos, es: ̇ ( ) ( ) 31 ̇ ( ) ( ) ⃗ ⃗ donde [ ] [ ] [ ] ( ) [ ] [ ] ( ) [ ] ( ) [ | || | | || | | || | | || | | || | | || | | || | | || | | || | ] [ ] [ ] [ ] 2.10. Conclusiones preliminares - Se logró obtener el modelo matemático que caracteriza el comportamiento de un barco subactuado no tripulado utilizando definiciones de sistemas de referencia, las leyes de Newton y principios básicos de hidrodinámica aplicada a vehículos marítimos. - El modelo matemático obtenido coincide en estructura con el modelo propuesto en configuración robótica por Fossen (Fossen T. I. 1991), lo cual permite comprobar su validez y su aplicabilidad al diseño del controlador. - El modelo obtenido presenta acoplamiento entre las variables de velocidad y no linealidades debido a las matrices de Coriolis y amortiguamiento, además de presentar gran cantidad de parámetros; esto hace necesario el uso de un controlador avanzado 32 CAPÍTULO 3. PROPUESTA DE SOLUCIÓN 3.1. Presentación del controlador 3.1.1. Control por Rechazo Activo de Perturbaciones En el estado del arte de los Filtros Planos Lineales (subsección 1.1) se introdujo el Control por Rechazo Activo de Perturbaciones (ADRC). A continuación, se muestra la potencialidad de ésta metodología para el control de plantas. Se propone la planta de segundo orden ̈ ( ̇ ) ( ) Donde es la variable controlada, es la acción de control, representa una o más perturbaciones del sistema, es un parámetro constante y ( ) es una función no lineal dependiente de los estados del sistema, las perturbaciones y del tiempo. Debido a que ( ̇ ) puede tener una estructura compleja y desconocida, se considera a ( ̇ ) como un término que encapsula los efectos de las no linealidades y perturbaciones. Considerando ( ̇ ) como un estado adicional y ̇ ( ̇ ̈ ), se tiene ̈ ̇ ( ̇ ̈ ) ( ) Expresando en forma de espacio de estados [ ̇ ̈ ̇ ] [ ] [ ̇ ] [ ] [ ] [ ] [ ] La adición de como un estado es denominada extensión de estados. Se plantea un observador de estados para estimar el valor del nuevo estado de forma que tal valor pueda ser usado en la ley de control para compensar el efecto de la perturbación. Como el valor de ( ̇ ̈ ) es desconocido, se ignora en el planteamiento del observador de estados. [ ̇̂ ̈̂ ̇̂ ] [ ] [ ̂ ̇̂ ̂ ] [ ] [ ] [ ] [ ̂] De aquí, es posible obtener la estimación ̂ escogiendo , y adecuadamente. De esta forma, para periodos de muestreo pequeños, el valor estimado de la 33 perturbación será cercano al valor de la perturbación, esto es ̂ . Se plantea un cambio de señal de control a una nueva variable usando el valor estimado ̂ Despejando ̂ Reemplazando en (3.1), el sistema se reduce a un sistema dinámico consistente en una doble integración fácil de controlar ̈ ( ̂ ) ̂ ( ) Se ve que en ̈ no interviene el término de perturbación, por lo que se dice que fue rechazado. La regulación de hacia puede ser realizada mediante un regulador por realimentación de estados lineal ( ̂) ̇̂ Donde los parámetros del controlador y deben ser adecuadamente escogidos. Z. Gao (Gao, Z. 2006) muestra un método simple para calcular los valores de los parámetros y mediante la elección de parámetros de frecuencias naturales y amortiguamientos mientras que G. Herbst (Herbst, G. 2013) presenta una guía sobre diseño de ADRC. Adicionalmente, J. Han (Han, J. 2009) muestra una metodología para mejorar el desempeño del ADRC mediante la adición de características no lineales. Se observa que, para controlar la planta mediante ADRC, no es necesaria la identificación de todos los parámetros de la planta, solo es necesario conocer aproximadamente el valor de la constante . Como en un inicio se consideró que ( ̇ ) es una función no lineal desconocida, este método es aplicable a cualquier planta que cumpla con la estructura mostrada en (3.1). 3.1.2. Control Proporcional Integral Generalizado En el subsección 1.1 se introdujo el Control Proporcional Integral Generalizado. A continuación se muestra la potencialidad de esta metodología para el control de plantas. Por ejemplo, siendo la planta de segundo orden similar a (3.1) 34 ̈ ( ̇ ) ( ) Asumiendo que se conoce ( ̇ ), su valor no sería considerado como una perturbación ya que puede ser eliminado directamente mediante la acción de control ( ̇ ) reemplazando en (3.4) ̈ ( ̇ ) ( ( ̇ ) ) se obtiene ̈ Si se tiene una trayectoria deseada, el control correspondiente se calcula mediante: ̈ Modelando la dinámica del error de seguimiento y tomando dos derivadas se tiene: ̈ ̈ ̈ Haciendo , resulta la siguiente dinámica del error de seguimiento ̈ ( ) Como el objetivo del seguimiento de trayectoria es llevar a a cero, se plantea un regulador del error por realimentación de estados ̇ Como ̇ no es medido directamente, su valor es estimado. El uso de control GPI reemplaza la necesidad de un observador de estados asintótico usando reconstrucción integral. Para este caso: ∫ ̈ ( ) ∫ ( ) operando 35 ̇ ̇ ( ) ∫ ( ) ̇ ∫ ( ) ̇ ( ) Debido a que no se conoce la condición inicial ̇ ( ), se toma la parte integral como la estimación de ̇ ̇̂ ∫ ( ) ̇ ̇̂ ̇ ( ) ̇̂ ̇ ̇ ( ) Planteando la ley de control con el valor estimado de ̇ : ̇̂ ∫ ( ) La dinámica del error en lazo cerrado aplicando el control en (3.5) es ̈ ̇̂ ̇ ̇ ( ) Debido a la presencia del término constante ̇ ( ) no se tiene la dinámica deseada. Este término no puede ser directamente compensado ya que es desconocido. Para resolver esto, se adiciona un término integral en función de que compensa al término constante ̇ ( ), resultando el control ̇̂ ∫ ( ) ∫ ( ) ∫ ( ) ( ) La dinámica del error en lazo cerrado aplicando el control en (3.5) es ̈ ̇̂ ∫ ( ) ̇ ̇ ( ) ∫ ( ) ( ) donde el termino integral ∫ ( ) compensa el efecto de ̇ ( ). Derivando (3.7) una vez respecto al tiempo para eliminar el término constante de la dinámica en lazo cerrado, se tiene ⃛ ̈ ̇ ( ) 36 Se puede notar en (3.8) que la dinámica en lazo cerrado ahora si puede ser determinada ya que no hay términos desconocidos. El polinomio característico de (3.8) es: ( ) Escogiendo adecuadamente los parámetros y , puede conseguirse que la dinámica del error siga un comportamiento deseado y converja a cero en el estado estacionario. Un método para lograrlo es haciendo que el polinomio característico coincida con la ecuación característica de un sistema oscilatorio con frecuencia natural y factor de amortiguamiento deseados. ( )( ) Agrupando términos en (3.6) y derivando respecto al tiempo. ∫ ( ) ∫ ( ) ̇ ̇ Aplicando transformada de Laplace y usando una notación combinada de tiempo- frecuencia ( ) despejando Finalmente, la ley de control resulta ( ) Esta ley de control puede ser generalizada para una planta representada por ( ) ( ) teniendo un controlador de la forma ( ) ( ) 37 Si la planta no tiene la forma de (3.9), es posible llevarla a esta forma mediante el procedimiento usado para (3.4), siempre y cuando tenga un modelo plano (equivalencia a observabilidad y controlabilidad en el caso no lineal). 3.1.3. Control Proporcional Integral Generalizado Robusto Una robustificación del control GPI es la adición del rechazo activo de perturbaciones mediante el uso de un término integral adicional. En (Sira-Ramirez, H. et al. 2008) se realizó un primer esbozo de este controlador, pero la función de transferencia obtenida posee denominador de mayor orden que el numerador. Posteriormente, en (Sira-Ramírez, H. et al. 2010) se desarrolló el controlador GPI robusto de forma que el numerador y el denominador tengan el mismo orden. Para ilustrar la metodología, se utiliza una planta similar a (3.4) ̈ ( ̇ ) Sin embargo, en este caso se considerará que el valor de ( ̇ ) es desconocido. Haciendo ( ̇ ) y , se tiene ̈ donde la perturbación incluye dinámicas no modeladas y perturbaciones endógenas y exógenas. Para este caso y sin perder generalidad, se asume que es constante para periodos pequeños de tiempo; sin embargo, podría asumirse que tiene un comportamiento de función polinómica respecto al tiempo según se requiera. El rechazo activo de perturbaciones debe encargarse de eliminar la influencia de en la planta. Se procede de manera similar al caso anterior, utilizando la dinámica del error de seguimiento: ̈ ( ) Se plantea un control por realimentación de estados asumiendo que no existen perturbaciones ̇ Utilizando la reconstrucción integral para estimar ̇ : ∫ ̈ ( ) ∫ ( ( ) ) 38 ̇ ̇ ( ) ∫ ( ) ̇ ∫ ( ) ̇ ( ) Debido a que no se conoce la condición inicial ̇ ( ) ni el valor de la perturbación , se toma la parte integral como la estimación de ̇ ̇̂ ∫ ( ) ̇ ̇̂ ̇ ( ) ̇̂ ̇ ̇ ( ) Se plantea la ley de control usando el valor estimado de ̇ , resultando ̇̂ ∫ ( ) La dinámica del error en lazo cerrado aplicando el control en (3.11) es ̈ ̇̂ ̇ ̇ ( ) Debido a la presencia de los términos constantes ̇ ( ) y y a la rampa en función del tiempo no se tiene la dinámica deseada. Estos términos no puede ser directamente compensados ya que son desconocidos. Para resolver esto, se adiciona un término integral en función de que compensa los términos constantes ̇ ( ) y , y un término de doble integral en función de para compensar la función tipo rampa, resultando el control ̇̂ ∫ ( ) ∫ ∫ ( ) ∫ ( ) ∫ ( ) ∫ ∫ ( ) La dinámica del error en lazo cerrado aplicando el control en (3.11) es: ̈ ̇̂ ∫ ( ) ∫ ∫ ( ) ̇ ̇ ( ) ∫ ( ) ∫ ∫ ( ) ( ) 39 donde el termino integral ∫ ( ) compensa el efecto de ̇ ( ) y el término de doble integral ∫ ∫ ( ) compensa el efecto de . Derivando (3.12) dos veces respecto al tiempo para eliminar los términos constantes y la función tipo rampa de la dinámica en lazo cerrado, se obtiene: ⃛ ̈ ̇ ∫ ( ) ( ) ⃛ ̈ ̇ ( ) Se puede notar en (3.13) que la dinámica en lazo cerrado ahora si puede ser determinada ya que no hay términos desconocidos. Como el efecto de la perturbación ( ̇ ) fue eliminado, se dice que se efectuó un rechazo activo de perturbaciones. El polinomio característico de (3.13) es: ( ) Escogiendo adecuadamente y , puede conseguirse que la dinámica del error siga un comportamiento deseado y converja a cero en el estado estacionario. Un método para lograr esto es haciendo que el polinomio característico coincida con la ecuación característica de un sistema oscilatorio con frecuencia natural y factor de amortiguamiento deseados. ( ) Agrupando términos en (3.12) ∫ ( ) ∫ ( ) ∫ ∫ ( ) Derivando dos veces respecto al tiempo: ̈ ̇ ̈ ̇ Aplicando transformada de Laplace y usando una notación combinada de tiempo- frecuencia ( ) 40 despejando ( ) ( ) Finalmente, la ley de control resulta ( ) ( ) El controlador GPI robusto a una perturbación constante tiene una forma similar al controlador GPI simple, con la diferencia que tiene un integrador adicional. El orden del numerador de la función de transferencia sigue siendo el mismo orden del denominador. Esta ley de control puede ser generalizada para una planta representada por ( ) ( ) donde es una perturbación modelada por un polinomio de orden en función al tiempo. El controlador resulta en ( ) ( ) ( ) Si la planta no tiene la forma de (3.15), es posible llevarla a esta forma mediante el procedimiento usado para (3.11), siempre y cuando tenga un modelo plano (equivalencia a observabilidad y controlabilidad en el caso no lineal). En el caso que se conozca parte de la planta, se puede combinar los procedimientos usados para obtener (3.4) y (3.11) de forma que se llegue a (3.15). 3.1.4. Filtro plano lineal Implementar el controlador GPI robusto, aprovechando que puede ser llevado a la forma de un filtro plano lineal, permite tener mayor rapidez computacional debido a la menor redundancia de cálculos. El controlador representado por (3.16) puede expresarse en función al error de la señal de control ( ) ( ) Se define el error de seguimiento filtrado como el error de seguimiento de la referencia filtrado con el denominador de (3.17) 41 ( ) Como resultado, el error de seguimiento filtrado y el error de control son expresados en el dominio del tiempo mediante ( ) ( ) ( ) ( ) ( ) ( ) ̇ Debido a que tanto el error de seguimiento como el error de control pueden ser expresados en función del valor del error de seguimiento filtrado y sus derivadas, se tiene que el controlador es un sistema plano, por lo que cumple con todas las propiedades básicas de los sistemas planos. Por esto, se puede expresar el controlador en forma de espacio de estados, simplificando la implementación del controlador. : ̇ ̇ ̇ ̇ : ̇ ( ) ( ) ( ) ( ) Se ve que el controlador puede ser implementado como una serie de integraciones y dos operaciones de sumas y productos, con lo que su implementación es eficiente computacionalmente. Por ejemplo, para el caso de la planta presentada en (3.11), el controlador resultante (3.14) se presenta en forma de espacio de estados 42 ̇ ̇ ( ) H. Sira, A. Luviano y J. Cortés (Sira-Ramírez, H. et al. 2010) utilizan el Filtro Plano Lineal, sin denominarlo por este nombre, aplicado al control de voltaje de un conversor DC-DC. 3.2. Diseño del controlador para el vehículo marino de superficie subactuado 3.2.1. Operaciones sobre modelo matemático Del modelo matemático del barco planteado en (2.9), se despejan las derivadas de y para tener el sistema en forma explícita, asignando nuevas letras a las constantes generadas del despeje: ̇ ̇ ̇ ̇ | | | | ̇ | | | | | | | | | | | | | | | | ̇ | | | | | | | | | | | | | | | | ( ) Gracias al uso del rechazo activo de perturbaciones, pueden incluirse todos los términos que no dependan de un actuador y que tengan constantes desconocidas dentro de un término de perturbación generalizado. Una de las ventajas de utilizar el ADRC es que no se requiere la identificación de todos los parámetros de la planta no lineal para controlarla adecuadamente. 3.2.2. Diseño de trayectoria de referencia Se sabe que la velocidad de arrastre es baja para trayectorias con grandes radios de curvatura. Debido a esto, se plantea una simplificación (3.18) donde . Además, se considera que la dinámica de la velocidad de guiñada es mucho más rápida que el resto de dinámicas, por lo que es considerada propiamente como un actuador. Finalmente, incluye todos los efectos de la dinámica de la velocidad de arrastre y la fuerza aplicada en una nueva variable . Bajo estas consideraciones, se tiene 43 ̇ ̇ ̇ ̇ Debido a que la trayectoria deseada es arbitraria, este modelo simplificado será utilizado para generar una trayectoria de referencia realizable por el barco de forma que pueda ser seguida sin discontinuidades. El modelo simplificado tiene la ventaja de ser un modelo plano. Siendo la trayectoria deseada, se plantea como variables y respectivas primeras y segundas derivadas: ̅ ̅ ̇̅ ̇ ̇̅ ̇ ̈̅ ̇ ̈ ̈ ̈̅ ̇ ̈ ̈ Agrupando en forma vectorial: [ ̈̅ ̈̅ ] [ ] [ ] [ ̈ ̈ ] Para desacoplar las variables controladas se realiza un cambio de variables [ ] [ ] [ ] donde [ ] es la matriz de ganancia del sistema. Reemplazando [ ̈̅ ̈̅ ] [ ̈ ̈ ] Se desea evitar el cálculo de ̈ e ̈ debido a que, en trayectorias discontinuas o con derivadas discontinuas, estos términos podrían causar problemas en el control. Es por esto que tales derivadas serán consideradas como perturbaciones al sistema. ̈̅ ̈̅ ( ) Los nuevos controles y desacoplan el sistema permitiendo el diseño de controladores separados para e . Se propone el diseño de una ley de control del 44 tipo ADRC basada en filtros planos lineales de forma independiente para cada variable siguiendo la estructura de (3.14), de forma que: ( ) ̅ ( ) ̅ Se usa los mismos parámetros para ambos controladores dado que los controles de las variables e tienen la misma prioridad para una trayectoria arbitraria. El término integral en el controlador se encarga de estimar y eliminar las perturbaciones. Se expresan los filtros en representación de espacio de estados, haciendo uso de las variables de estado para el primer filtro, donde es la variable plana, y para el segundo filtro, donde es la variable plana. : ̇ ̇ ̅ ̇ ( ̅) : ̇ ̇ ̅ ( ̅) Reemplazando los controles en (3.19) para hallar la respuesta del sistema en lazo cerrado, se tiene ̈̅ ( ) ̅ ̈̅ ( ) ̅ Multiplicando por el denominador del filtro en cada sub-sistema: ̈̅ ( ) ( ) ̅ ( ) ̈̅ ( ) ( ) ̅ ( ) Como se considera que las perturbaciones son prácticamente constantes para un periodo de muestreo, el término derivativo ( ) la elimina. Operando y enviando todos los términos a la izquierda, se tiene ̅( ) ̅ ( ) ̈̅ ̇̅ ̅( ) ̅ ( ) ̈̅ ̇̅ 45 Se debe escoger los términos de para que la ecuación característica del sistema en lazo cerrado sea estable. Un método para lograr esto es haciendo que el polinomio característico coincida con la ecuación característica de un sistema oscilatorio con frecuencia natural y factor de amortiguamiento deseados. ( ) Una vez obtenidos los valores de y , los valores deseados y son hallados mediante inversión de la matriz de ganancia , resultando: [ ] [ ] [ ] Se ve que la matriz de ganancia no es invertible cuando ; sin embargo, esto no es un problema dadas las restricciones que se impondrán a continuación al modelo de referencia. Debido a que este es un modelo que servirá de referencia para el barco, se debe hacer que cumpla las mismas restricciones de velocidad y aceleración del barco para que la trayectoria sea posible de realizarse; si el modelo de referencia no las cumpliera el barco no podría seguir adecuadamente la trayectoria generada. Para esto, se realizó pruebas en lazo abierto y se determinó que los mejores valores de límites son para la aceleración de avance [ ] y para la velocidad angular [ ]. Para la velocidad de avance, se debe considerar que se quiere que el barco siempre vaya hacia adelante, por lo que los límites de la misma son [ ]. Aplicando las limitaciones a los controles del modelo se tiene: : [ ] : [ ] 46 También se aplican las limitaciones de velocidad. Para esto, se asumirá que el control al modelo de referencia se está aplicando con tiempo de muestreo y que la resolución de ecuaciones diferenciales se realiza mediante el Algoritmo de Euler. De la ecuación dinámica de la velocidad de avance se tiene: ̇ Dado que se quiere que [ ], se tiene: : : [ ] : Como los controles del modelo de referencia van a ser limitados en valores, la parte integral del controlador se saturará, inhabilitando al controlador. Para evitar esto, se propone un mecanismo anti-saturación a nivel del término integral del filtro, de forma que los errores en el control serán descontados en la dinámica del término integral del controlador. El uso del mecanismo de anti-saturación puede reducir la capacidad de rechazo de perturbaciones del controlador; pero, en contraparte, permite tener un mejor control cuando las condiciones iniciales están alejadas de la trayectoria deseada. Calculando los errores en los controles: ( ) ( ) donde y se escogen de forma que los cambios en la acción de control no sean bruscos y no anulen la capacidad de rechazo de perturbaciones del controlador. 47 Estos errores en los controles son enviados al controlador mediante el uso de la matriz de ganancia . [ ] [ ] [ ] Finalmente, los errores en controles desacoplados entran en el filtro de la siguiente manera: : ̇ ̇ ̅ ( ̅) : ̇ ̇ ̅ ( ̅) Cabe recalcar que el mecanismo de anti-saturación solo entrará en acción cuando se alcance límites de operación del modelo de referencia, por lo que la capacidad de rechazo de perturbaciones del ADRC no será afectada cuando se esté cerca de la referencia y con perturbaciones endógenas y exógenas que no sobrepasen la capacidad de los controles. Dadas las condiciones, el modelo de referencia será capaz de seguir la trayectoria deseada y ser a su vez seguido por el barco. Aunque es posible que haya trayectorias donde los controles y oscilen rápidamente (caso donde se satura), no es relevante para la generación de trayectoria. El modelo de referencia del barco debe ser inicializado en la posición inicial del barco real (o modelo completo) y ser simulado en tiempo real. La Figura 3.6, al final del capítulo, muestra el diagrama de bloques del generador de trayectoria del barco. 3.2.3. Diseño del controlador del barco De forma similar al diseño del controlador para el modelo de referencia, se realiza el diseño del controlador del barco. Se utilizan variables con nombres iguales al controlador anterior por simplicidad, pero se entiende que las nuevas variables son distintas a las anteriores. A partir de (3.18) se expresan sólo los términos que son 48 utilizados para el diseño del controlador, interviniendo el resto de términos como perturbaciones. ̇ ̇ ̇ ̇ ̇ ̇ Sea la trayectoria generada por el modelo simplificado del barco, se plantea las variables a controlar y sus derivadas ̅ ̅ ̇̅ ̇ ̇ ̇ ̇̅ ̇ ̇ ̇ ̈̅ ̇ ̇ ̈ ( ) ̇ ̈ ̈̅ ̇ ̇ ̈ ( ) ̇ ̈ Considerando pequeño, se desprecia su intervención en el diseño por lo que sus componentes serán tomados como perturbación. Además, considerando que tiene dinámica más rápida que el resto de variables, se toma como un control y luego se procede a controlar con el torque (backstepping). Agrupando términos: [ ̈̅ ̈̅ ] [ ] [ ] [ ̇ ̈ ̇ ̈ ] Realizando un cambio de variables de control para desacoplar el control [ ] [ ] [ ] Incluyendo los términos desconocidos y términos independientes de y como perturbaciones, se obtiene dos sistemas dinámicos desacoplados. [ ̈̅ ̈̅ ] [ ] 49 De forma similar al caso del modelo de referencia, se diseña un controlador ADRC basado en filtros planos lineales de forma desacoplada, : ̇ ̇ ̅ ( ̅) ̇ ̇ ̅ ( ̅) teniendo en consideración el diseño mediante y ( ) se adiciona el desacoplador de controles : [ ] [ ] [ ] ( ) y se considera que los límites de los controles son [ ] [ ] : [ ] : [ ] con el consiguiente mecanismo anti-saturación : ( ) ( ) 50 [ ] [ ] [ ] Debido a que en el caso del barco real la velocidad de avance no puede ser restringida, podría tomar valores negativos o cero en algún momento generando problemas en (3.20). Para evitar esto, se plantea una modificación sobre la matriz de ganancia para las transformaciones [ ] → [ ] [ ] [ ] Definiendo una función ‖ ‖ para estando definidos : ‖ ‖: ‖ ‖ ‖ ‖ [ ] ‖ ‖ se redefinen y en función a ‖ ‖ [ ‖ ‖ ‖ ‖ ] [ ‖ ‖ ‖ ‖ ] Debido a que no es un control directamente, se pasa a aplicar el backstepping para que la velocidad de guiñada siga a la velocidad de guiñada calculada. Se plantea como variable el error la diferencia entre y y se deriva: ̅ ̇̅ ̇ ̇ ̇ ̇ Acomodando términos, realizando un cambio de variable y considerando el resto de términos como perturbación, se tiene: ̇̅ ( ) Se diseña una ley de control ADRC basada en filtros planos, que para el caso de primer orden coincide con un controlador PI. ̅ 51 Expresando el filtro en forma de espacio de estados apoyados de la variable que es la variable plana del filtro se tiene: ̇ ̅ ( ̅) Reemplazando los controles en (3.21) para hallar la respuesta del sistema en lazo cerrado: ̇̅ ̅ Multiplicando por el denominador del filtro ̇̅ ( ) ̅ Se considera que es constante para un periodo de tiempo pequeño, por lo que el término derivador lo elimina, quedando: ̈̅ ̇̅ ̅ ̈̅ ̇̅ ̅ Se escogen los parámetros para que la ecuación característica sea estable donde y son el factor de amortiguamiento y la frecuencia natural de la respuesta deseada. Habiendo obtenido , el torque deseado queda definido como: Se limita el torque según [ ]: : [ ] Dado que el control es limitado, se aplica un mecanismo de anti-saturación sobre el término integral: ( ) Resultando en la modificación del filtro mostrada 52 ̇ ̅ ( ̅ ) El diagrama de bloques del controlador se encuentra en la Figura 3.7, al final del capítulo. 3.3. Planteamiento de simulación Se realizaron simulaciones con el modelo matemático identificado de un barco no lineal presentado en (Wondergem, M. et al. 2011): ̇ ( ) ̇ ( ) ( ) ( ) donde: ( ) [ ] [ ] ( ) [ ] ( ) [ | | | | | | ] [ ] Todas las simulaciones tienen como condiciones iniciales .Se consideró la fuerza [ ] y torque [ ]. Además, se desea mantener la velocidad de guiñada deseada en [ ]. Los parámetros usados para el filtro plano lineal para generación de trayectoria fueron . Los límites para la actuación del control en este caso fueron [ ] [ ] [ ] y las ganancias del anti-saturación fueron . Los parámetros usados para el filtro plano lineal para el control de trayectoria fueron en el caso del control y en el caso del control . Los límites para la actuación del control fueron [ ] , 53 [ ] y [ ] y las ganancias del anti- saturación fueron . El resultado del controlador basado en filtro plano lineal fue comparado con el resultado obtenido mediante el control basado en linealización por realimentación de estados (Fahimi, F. 2008) desarrollado en el Anexo B para contrastar su desempeño. Para simplificar las derivadas de la trayectoria para el control basado en linealización por realimentación de estados, se utiliza derivación numérica en las simulaciones. Se utiliza el acrónimo FPL para referirse al controlador basado en filtro plano lineal y LRE para el controlador basado en linealización por realimentación de estados. Las gráficas fueron cortadas en el eje temporal para mostrar en detalle el área de interés. Además, las gráficas en son mostradas de forma que sea horizontal y el eje vertical; esto se hace para facilitar la lectura. 3.4. Resultados de simulación 3.4.1. Simulación de seguimiento de trayectoria circular Se simuló el seguimiento de una trayectoria tipo circunferencia, donde la velocidad de equilibrio es . La simulación se hizo sin perturbaciones ambientales. ( ) ( ) ( ) La Figura 3.1 muestra el seguimiento de la trayectoria; se observa que ambos controladores logran seguir adecuadamente la trayectoria circular, aunque con diferente ángulo de entrada. La Figura 3.2 muestra la evolución de las variables de posición del sistema. De igual forma se observa que ambos controladores logran seguir la trayectoria deseada. En el caso del FPL se puede apreciar un retardo para iniciar la marcha; este retardo es debido al uso del generador de referencia, que toma su tiempo en iniciar su marcha. En la Figura 3.3 se muestra la evolución del error. El LRE tiene un tiempo de establecimiento menor, pero el FPL tiene un error en estado estacionario menor. En ambos casos el error es pequeño en proporción al tamaño del barco, por lo que ninguno debería resultar un problema. 54 En la Figura 3.4 se muestra la evolución de las variables de velocidad. Se observa que la velocidad de guiñada del LRE tiene oscilaciones más bruscas y de menor duración que el FPL. También se observa que la velocidad de avance del FPL está retrasada 1.5 segundos debido al generador de trayectorias. La Figura 3.5 muestra las fuerzas aplicadas al barco. Se tiene ya que para la simulación actual no se tuvo en cuenta perturbaciones externas. La fuerza de avance aplicada al barco para ambos controladores es similar; sin embargo, el torque aplicado por el LRE es bastante oscilante, lo que puede originar un desgaste del actuador a largo plazo. De la simulación, dejando de lado las oscilaciones iniciales en el control basado en linealización por realimentación de estados, se ve que ambos controladores funcionan de forma similar, con la diferencia que el FPL no requiere de todos los parámetros del modelo matemático del barco para su funcionamiento. Figura 3.1: Seguimiento de trayectoria circular 55 Figura 3.2: Variables de posición para seguimiento de trayectoria circular Figura 3.3: Evolución del error de trayectoria circular 56 Figura 3.4: Variables de velocidad para el seguimiento de trayectoria circular Figura 3.5: Fuerzas aplicadas al barco en trayectoria circular 57 3.4.2. Simulación de trayectoria tipo rosa Se simuló el seguimiento de una trayectoria tipo rosa, donde la velocidad de equilibrio es oscilante y cercana a . La simulación se hizo con perturbaciones ambientales ligeras, consistentes en una fuerza constante ejercida por el viento y una fuerza oscilatoria ejercida por las olas del mar, ambas en una dirección de 10° respecto al eje . ( ) ( ) ( ) ( ) La Figura 3.6 muestra el seguimiento de la trayectoria por cada control, ambos controladores lo hacen de forma adecuada. La Figura 3.7 muestra la evolución del error e trayectoria; se puede ver que para el caso del FPL el error tiene oscilaciones, esto es debido a que el controlador intenta compensar las perturbaciones que aparecen en el medio La Figura 3.8 muestra las fuerzas aplicadas en el barco; como en el caso de la Figura 3.5, el torque inicial aplicado por el LRE es bastante oscilatorio. Figura 3.6: Seguimiento de trayectoria tipo rosa 58 Figura 3.7: Evolución del error de trayectoria tipo rosa Figura 3.8: Fuerzas aplicadas al barco en trayectoria tipo rosa 59 3.4.3. Simulación de trayectoria cuadrada Se simuló el seguimiento de una trayectoria cuadrada con velocidad constante e igual a . Se aplica perturbaciones ambientales ligeras en la dirección del eje . Lo interesante de esta trayectoria es que tiene derivadas discontinuas, por lo que no es posible plantear un control que dependa de tales derivadas. La Figura 3.9 muestra el seguimiento de trayectoria cuadrada. Se observa que en las esquinas no es posible seguir adecuadamente la trayectoria, esto se debe a la inercia del barco. Más adelante se discute cómo reducir el sobreimpulso generado por la inercia. La Figura 3.10 muestra las posiciones del barco y su seguimiento. Se observa que, cuando el barco se mueve perpendicularmente al eje , su ángulo de guiñada oscila más que en el caso paralelo; esto debido a la dirección en que se aplica la perturbación. La Figura 3.11 muestra la evolución del error. Se observa que existen oscilaciones adicionales al pico generado por la presencia de las esquinas; estas son generadas debido a que el barco cruza repetidas veces la trayectoria de referencia antes de seguirla adecuadamente. Figura 3.9: Seguimiento de trayectoria cuadrada 60 Figura 3.10: Variables de posición para seguimiento de trayectoria cuadrada Figura 3.11: Evolución del error de trayectoria cuadrada 61 La Figura 3.12 muestra la variación de las velocidades del barco. En las curvas se observa el barco frena, da la vuelta hacia la dirección correspondiente y vuelve a aumentar su velocidad cada vez llega a una esquina, con lo que se confirma que el control no presenta inestabilidad por la discontinuidad presente en las derivadas de la trayectoria. La Figura 3.13 muestra las fuerzas aplicadas al barco. Se observa que el torque es más variable cuando el barco es transversal al eje ; esto es debido a la perturbación aplicada en la dirección de . El sobreimpulso mostrado en la Figura 3.9 puede ser reducido aumentando una etapa al control encargada de generar una trayectoria sin sobreimpulsos. Para esto, se requiere minimizar la integral del consumo energético y el error cuadrático entre la trayectoria y la posición del barco en función a los parámetros del controlador: ∫ ( ( ( ) ( )) ( ( ) ( )) ) dadas como restricciones las ecuaciones de la dinámica del barco y restricciones de valores mínimos y máximos ̇ ( ) ̇ ( ) ( ) ( ) Para el caso lineal, esto se traduce en un controlador óptimo Preview, teniendo en cuenta la trayectoria futura en la acción de control; sin embargo, la optimización requiere el conocimiento de todos los parámetros del barco. Como este enfoque va en contra del paradigma de control por rechazo activo de perturbaciones, no será implementado en esta tesis. La tabla 3.1 muestra el resumen de las simulaciones efectuadas, con el tiempo de establecimiento, el error medio y el error medio de establecimiento. Tabla 3.1: Resultados de simulación Trayectoria Controlador ( ) ( ) ( ) Circular FPL 16.9 0.9416 0.1155 Circular LRE 13.4 0.7897 0.1872 Rosa FPL 28.3 0.3443 0.1490 Rosa LRE 16.8 0.3030 0.1469 Cuadrado FPL 23.4 - - 62 Figura 3.12: Variables de velocidad para el seguimiento de trayectoria cuadrada Figura 3.13: Fuerzas aplicadas al barco en trayectoria cuadrada 63 3.4.4. Análisis de robustez del sistema ante variación de la masa Utilizando la trayectoria circular determinada por (3.23), se realizaron simulaciones aplicando un factor de escala al valor de la matriz de masa, de forma que: Los factores utilizados para el análisis fueron y . Estas variaciones son razonables debido a que el barco podría llevar carga extra o el controlador podría estar instalado en otro barco de características similares. La Figura 3.14 muestra la trayectoria seguida por el barco para cada factor aplicado. Se ve que según se aleja el factor de las trayectorias se vuelven más inestables. Se ve que el rango [ ] permite tener un control adecuado del barco. La Figura 3.15 muestra a evolución de los errores para y la Figura 3.16, los errores para . Se verifica en ambas gráficas que el error para valores cercanos a 1 no es oscilatorio, lo cual denota estabilidad. Las Figuras 3.17 y 3.18 muestran los valores de fuerza y torque para y , respectivamente. Se ve que en el caso de y el torque aplicado es inestable. Esto se debe a que una menor masa significa una menor resistencia al giro, lo cual hace que los giros tengan mayor amplitud y que el torque deba ser aplicado en el sentido contrario; este efecto es interpretado como inestabilidad en el sistema. El caso es un caso donde la inestabilidad comienza a presentarse sin afectar directamente el seguimiento de la trayectoria; para las condiciones de simulación esto no es un problema pero, en una operación real, el oleaje podría hacer que se pierda completamente la estabilidad del sistema. Para el caso de también existe inestabilidad; sin embargo, ésta es originada por la saturación de los actuadores, de forma que el barco no puede cumplir con el objetivo de control. 64 Figura 3.14: Trayectoria seguida variando el factor aplicado a la masa del barco. Figura 3.15: Evolución del error para . 65 Figura 3.16: Evolución del error para . Figura 3.17: Fuerza y torque aplicados para 66 Figura 3.18: Fuerza y toque aplicados para 6 7 Figura 3.6. Diagrama de bloques del generador de trayectoria para el barco. 6 8 Figura 3.7. Diagrama de bloques del controlador de trayectoria para el barco 69 3.5. Conclusiones preliminares - Se realizó el diseño de un controlador de barco basado en filtros planos lineales, siguiendo el paradigma de control por rechazo activo de perturbaciones. - El uso de un generador de trayectoria en la Figura 3.6 hace posible el funcionamiento del controlador sin problemas de saturación excesiva, ya que la exigencia al controlador se vuelve realizable. Esto es útil ante la presencia de trayectorias con saltos. - Se logró simular mediante software (código M de MATLAB) el comportamiento del barco bajo la acción de control diseñada, teniéndose resultados positivos. - Fue posible encapsular las no linealidades del sistema y perturbaciones endógenas y exógenas en el término integral; sin embargo, se obtuvo un error en estado estacionario diferente de cero como se muestra en las Figuras 3.4 y 3.5 debido a los constantes cambios en los términos encapsulados. - Se comparó los resultados con un controlador basado en linealización por realimentación de estados, mostrándose que tiene un comportamiento similar en cuanto a tiempo de establecimiento y error estacionario, todo esto sin requerir el uso de los parámetros del barco dentro del controlador. - Se verificó la robustez del controlador ante variaciones de la masa, verificándose que ésta puede variar entre 0.75 y 2 veces el valor original. Este rango es bastante aceptable para una operación real ya que no se espera que el barco trabaje con sobrepeso o con un peso mucho menor; una variación grande no solo afecta al controlador, sino también la estabilidad inherente del barco. 70 CAPÍTULO 4. PROPUESTA DE IMPLEMENTACIÓN PRÁCTICA 4.1. Propuesta de elección de hardware 4.1.1. Esquemas de relación entre componentes Siguiendo el esquema general del control mostrado en la Figura 4.1, se debe identificar cada uno de los componentes en el diagrama para su elección. PLANTA SENSOR ACTUADORCONTROLADOR SISTEMA SUPERVISOR Referencia Señal de control Acción de control Medición de variables Variable controlada Figura 4.1: Esquema general de control. - La planta del diagrama es la estructura del barco propiamente, que incluye todos los sensores, actuadores, baterías y computadores. - El actuador del diagrama representa el par de motores que se utilizan para dar movimiento al barco, incluyendo los drivers que permiten su interacción con el computador. - El sensor del diagrama representa el conjunto de sensores utilizados para medir la posición, velocidades y orientación del barco, incluyendo el microprocesador que permita la adquisición de datos. - El controlador del diagrama representa un computador con periféricos y software adecuados, donde se implementará el algoritmo de control. - El sistema supervisor del diagrama representa un computador externo al barco desde el cual un operador pueda registrar los datos de control, mediciones ambientales y seguir la posición del barco, así como asignar trayectorias deseadas. - Cada una de las líneas en el diagrama representan un canal de comunicación cableado o inalámbrico con un protocolo respectivo para el intercambio de datos. - Adicionalmente, todos los componentes requieren energía eléctrica para funcionar. 71 La elección del hardware para el barco se hará teniendo en cuenta que se requiere un barco pequeño para adquisición de variables ambientales y que no llevará tripulación. Se considerará que el barco solo requiere trabajar periodos menores a tres horas, pudiéndose extender este tiempo mediante la elección de fuentes de energía solares o mareomotrices. Además, se considerará que un radio de trabajo menor a un kilómetro para tener comunicación inalámbrica sin necesidad de permisos adicionales por parte del Ministerio de Transportes y Comunicaciones (MTC). 4.1.2. Elección de la planta Se propone la elección del barco teniendo en cuenta que se desea equipar sensores ambientales, sensores inerciales, equipos de posicionamiento y computadores que en conjunto no superan los 10 kilogramos, además de requerirse una velocidad de trabajo de entre 1.5 m/s y 2 m/s y una disposición de actuadores del tipo diferencial para asegurar velocidades de giro altas. El diseño hidrodinámico del barco no será cubierto por esta tesis, se presentan opciones de vehículos marinos no tripulados que existen en el mercado y que cumplen con las características deseadas. Dado que estos vehículos incluyen sus respectivos actuadores, los mismos serán incluidos en esta subsección. En la Tabla 4.1 se muestran modelos de barco que cumplen con las especificaciones deseadas. Tabla 4.1: Características de vehículos Empresa Barco Tipo Actuador Carga Clearpath Robotics KINGFISHER USV Catamarán Hidropropulsores 10 Kg Deep Ocean Engineering I-980 Barco Motores 20 Kg Seafloor EchoBoat- RCV Barco Motores 18 Kg El vehículo Kingfisher USV (Figura 4.2) de Clearpath Robotics (Canadá) viene con un control remoto, computador incorporado, sensores inerciales y puede ser equipado fácilmente con un GPS. Su propulsión es mediante hidropropulsores en configuración diferencial (controlados independientemente), dándole una velocidad de trabajo de 1.7 m/s y una duración de batería de 3 horas. Su diseño permite realizar pruebas del control directamente dado que el sistema operativo incluido es el Linux/ROS, bastante usado en robótica y ampliamente documentado, además de los sensores integrados. Dada su geometría, se debe añadir una caja hermética para instalación de sensores adicionales. Por su límite de carga de 10 Kg, es poco 72 probable que se puedan añadir sensores a los planeados originalmente. Su precio de mercado actual es de USD$ 30000. Figura 4.2: Kingfisher USV El vehículo I-980 (Figura 4.3) de Deep Ocean Engineering (Estados Unidos) incluye un control remoto con distancia de operación de hasta 2Km y opcionalmente puede incluir un GPS. Requiere de adición de computador, sensores y drivers para su control autónomo. Su propulsión es mediante dos motores DC en configuración diferencial, dándole una velocidad de trabajo de 2 m/s y una duración de batería de 4 horas. Debido a su geometría hueca, pueden instalarse los sensores y computadores adicionales sin necesidad de espacios adicionales. Por su límite de carga de 20 Kg, es posible tener sensores adicionales a los propuestos en esta tesis. Su precio de mercado actual es de USD$ 30000. Figura 4.3: I-980 73 El vehículo EchoBoat-RCV (Figura 4.4) de Seafloor Systems (Estado Unidos) viene con un control remoto con distancia de operación de hasta 1Km y opcionalmente puede incluir GPS. Requiere de adición de computador, sensores y drivers para su control autónomo. Su propulsión es mediante dos motores brushless en configuración diferencial, dándole una velocidad de trabajo de 1.5 m/s y una duración de batería de 4 horas. El barco incluye un sistema de refrigeración para los motores y los controles de velocidad electrónicos (Electronic Speed Control, ESC). Debido a su geometría hueca, pueden instalarse los sensores y computadores adicionales sin necesidad de espacios adicionales. Por su límite de carga de 18 Kg, es posible tener sensores adicionales a los propuestos en esta tesis. Su precio de mercado actual es de USD$ 10000. Figura 4.4: EchoBoat-RCV Debido a razones de peso máximo y precio, se propone escoger el vehículo EchoBoat-RCV; sin embargo, los tres cumplen con las características deseadas del sistema. 4.1.3. Elección de actuadores y componentes relacionados En la subsección 4.1.2 se elige el barco, con el cual el actuador está incluido. En la Figura 4.5 se presenta un diagrama híbrido de comunicaciones y energía del sistema de actuación original del barco con el control remoto y drivers incluidos. 74 MOTOR BRUSHLESS (DERECHO) LBP56110-640KV MOTOR BRUSHLESS (IZQUIERDO) LBP56110-640KV ESC SEAKING 180A ESC SEAKING 180A RECEPTOR FASST R617FS-2.4GHz CONTROL FUTABA 7C-2.4GHz CABLEADA PPM CABLEADA PPM VOLTAJE TRIFASICO VOLTAJE TRFASICO INALAMBRICA 2.4GHz BATERIA 24VDC VOLTAJE DC VOLTAJE DC Figura 4.5: Diagrama de actuadores Cada una de las señales de modulación por posición de pulso (Pulse-Position Modulation, PPM) define la velocidad de giro del motor respectivo y estas velocidades, a su vez, definen la fuerza con la que cada motor empuja al barco. La ventaja de usar motores brushless (sin escobillas) es que requieren de menor mantenimiento y tienen un mayor tiempo de vida. La Figura 4.6 muestra el motor brushless instalado en el barco. Figura 4.6: Motor Brushless LBP56110-640KV En el diagrama de la Figura 4.5 se observa que no hay forma de enviar información desde un computador externo hacia los motores. Es por esto que se plantea añadir un microcontrolador que sirva de puente entre los ESC (Figura 4.7) y el computador, pudiendo escogerse entre el control automático mediante el computador o el control manual usando el control Futaba (Figura 4.8) y el receptor RF (Figura 4.9). Se propone usar una placa de desarrollo Arduino Uno (Figura 4.9), placa para prototipo que trabaja con un microcontrolador Atmega328P. Esta opción 75 es idónea ya que se cuenta con librerías que facilitan el trabajo de programación, haciendo más transparente la programación del controlador. Los datos desde el computador se recibirán mediante protocolo RS-232. Figura 4.7: ESC Seaking 180A Figura 4.8: Futaba 7C-2.4GHz Figura 4.9: FASST R617FS-2.4GHz Figura 4.10: Arduino UNO El diagrama híbrido resultante es: 76 MOTOR BRUSHLESS (DERECHO) LBP56110-640KV MOTOR BRUSHLESS (IZQUIERDO) LBP56110-640KV ESC SEAKING 180A ESC SEAKING 180A RECEPTOR FASST R617FS-2.4GHz CONTROL FUTABA 7C-2.4GHz CABLEADA PPM CABLEADA PPM VOLTAJE TRIFASICO VOLTAJE TRFASICO INALAMBRICA 2.4GHz BATERIA 24VDC VOLTAJE DC VOLTAJE DC PUENTE Arduino Uno CABLEADA PPM CABLEADA PPM CONTROLADOR COMPUTADOR CABLEADA RS-232 Figura 4.11: Diagrama de actuadores con selección de control 4.1.4. Elección de sensores y componentes relacionados La propuesta de sensores es revisada desde el punto de vista del control, dejándose de lado la elección de sensores ambientales; estos serán revisados en la subsección 4.5. El algoritmo de control planteado requiere tres mediciones principales, el ángulo de guiñada con respecto al norte y las posiciones e definidas a partir de un punto. Sensado del ángulo de guiñada Para medir el ángulo de guiñada se debe conocer la orientación del barco respecto al norte; se hace también necesario el conocimiento de la dirección del centro de la tierra para definir adecuadamente el sistema coordenado inercial y tener una medición correcta. La dirección del norte, para efectos prácticos, es aproximada a la dirección del norte magnético de la tierra y puede ser medida utilizando un magnetómetro y usando factores de corrección según la posición de barco en la tierra. Como los magnetómetros suelen tener una frecuencia de muestreo baja, se añade el uso de un giroscopio para estimar el ángulo entre muestras del magnetómetro midiendo la velocidad de giro del barco. 77 La dirección del centro de la tierra es paralela a la dirección de la aceleración de la gravedad asumiendo que el barco no se encuentra en caída libre y que la aceleración debida a los propulsores es mucho menor que la aceleración de la gravedad, por lo que puede ser medida con un acelerómetro. Para realizar las mediciones se utilizará sensores tipo MEMS (sistemas microelectrónicos) dado que ocupan poco espacio, tienen bajo consumo energético y son suficientes para la precisión que se desea manejar. El MPU6050 (Figura 4.12) tiene incluidos un giroscopio de tres ejes, un acelerómetro de tres ejes y, adicionalmente, un sensor de temperatura para realizar correcciones en el bias (sesgo) de las mediciones de velocidad angular. Su comunicación se realiza mediante protocolo I2C. Figura 4.12: MPU6050 El HMC5883L (Figura 4.13) es un magnetómetro de tres ejes, permitiendo conocer el vector que apunta hacia el norte magnético y por ende el ángulo que forma el barco con el mismo. Su comunicación se realiza mediante protocolo I2C. Figura 4.13: HMC5883L La Tabla 4.2 muestra características relevantes de los sensores a usar. 78 Tabla 4.2: Característica de sensores relacionados a medición del ángulo Sensor Medición Escala Resolución Bias Ruido RMS Freq. Muestreo MPU650 Velocidad Angular (°/s) ±250°/s 16 bits ±20°/s 0.05°/s 4Hz - 8000Hz Aceleración (g) ±2g 16 bits ±80mg - 4Hz - 1000Hz HMC5883L Campo magnético (Gs) ±8Gs 12 bits ±1.16Gs 2mGs 0.75Hz - 75Hz Dado que estos sensores tienen un procedimiento de calibración que podría variar para otros sensores, no se ahondará en su procedimiento; sin embargo, en la subsección 4.4 se revisa someramente su calibración. El algoritmo propuesto para obtener el ángulo resultante de los sensores listados es el planteado por S. Madgwick (Madgwick, S. OH. 2010), donde se fusiona la medición del acelerómetro, giroscopio y magnetómetro mediante un filtro basado en cuaterniones. Sensado de posiciones e Dado que el barco trabajará en campo abierto, el uso de GPS es adecuado. Un GPS es capaz de entregar la posición del barco en longitud y latitud. Adicionando un sensor de presión puede calcularse la altitud a la que se encuentra el barco; a nivel del mar la altitud es cero pero, si se trabaja en un lago, la altitud puede ser mayor. Adicionalmente, se requiere de un sistema coordenado local definido por un punto de referencia debido a que se trabajará sobre una aproximación plana de la tierra. Con la altitud, la longitud, la latitud del barco y un punto central de referencia, la posición puede ser hallada. La Tabla 4.3 muestra una comparación de distintas tecnologías GPS entre las cuales se puede elegir. Tabla 4.3: Comparación de tecnologías GPS Tecnología Error (cm) Precio medio (USD$) GPS ±500 - ±1000 100 - 500 DGPS ±50 500 - 7500 GPS RTK ±2 - ±20 15000 - 50000 Ya que en altamar o en un lago grande no se requiere alta precisión ya que se 79 realiza la toma de datos por regiones, un GPS sería suficiente. Sin embargo, si se va a tomar datos en un espacio pequeño como una piscina, una laguna o un río angosto, es necesario utilizar un DGPS o un GPS RTK. Se propone la adquisición de un GPS RTK, teniendo una buena opción para proyectos pequeños el Piksi GPS (Figura 4.14), con una frecuencia de muestreo de 50 Hz, precio a la fecha de USD$ 1000 incluyendo la estación base y comunicación serial para transmitir sus datos. Figura 4.14: Piksi GPS Para la conversión de longitud-latitud-altitud a coordenadas e se propone utilizar la proyección azimutal gnómica ya que distribuye el error de proyección de forma radial en la vecindad del centro de referencia escogido (Snyder, J. P. 1987). Procesamiento y manejo de datos Dado que los sensores se comunican utilizando diferentes protocolos, es posible utilizar un Arduino UNO para centralizar la información de los sensores, procesarla y enviarla en una sola trama al computador. La Figura 4.15 muestra el diagrama resultante. 80 CONCENTRADOR Arduino Uno MPU6050 HMC5883L GPS Otros sensores CONTROLADOR COMPUTADOR CABLEADO RS-232 CABLEADO I2C CABLEADO I2C CABLEADO RS-232 CABLEADO Figura 4.15: Diagrama de sensores 4.1.5. Elección de controlador Se propone el uso de un computador embebido como controlador debido a la flexibilidad que tiene respecto a los FPGA y el mayor nivel de abstracción respecto a los microcontroladores, facilitando el uso de periféricos, programación por aire, corrección de problemas y la implementación del algoritmo de control. Como desventaja, su consumo energético es mayor que un FPGA o un microcontrolador. Las principales opciones en la actualidad son el Raspberry Pi (Figura 4.16) y el BeagleBone Black (Figura 4.17). Dado el procesador con el que cuentan y la memoria RAM que disponen, ambos son suficientes para cumplir con las labores de control y comunicaciones necesarias para el proyecto; sin embargo, el BeagleBone Black tiene un consumo energético generalmente mayor que el Raspberry Pi para la ejecución de tareas similares. Un detalle adicional del Raspberry Pi es que existen placas para la interacción directa con Arduino, por lo que se simplifica el diseño electrónico del sistema completo de control. La versión propuesta es el Raspberry Pi B+. Figura 4.16: Raspberry Pi B+ 81 Figura 4.17: BeagleBone Black 4.1.6. Elección de sistema supervisor Debido a que se espera que el sistema solo tenga 3 horas de autonomía, se propone utilizar una laptop común con hardware de comunicaciones añadido para recibir en tiempo real los datos del barco. 4.1.7. Elección de sistemas de comunicación Dado que se requiere comunicación a una distancia de hasta un kilómetro, se propone el uso del protocolo de comunicación inalámbrica ZigBee mediante el uso de módulos XBee. Podría usarse el protocolo de comunicación WiFi pero éste consume mayor energía. El modelo de comunicaciones a usar es el de maestro-esclavo con el barco como maestro y el sistema supervisor como esclavo. Esto permite que otro computador pueda conectarse para solicitar datos del barco en simultáneo con el supervisor original. Se propone el XBee Pro S2B (Figura 4.18) para cada punto de comunicación inalámbrica, que con un consumo de 63mW tiene un radio de alcance de 1600 metros. Adicionalmente, es necesario usar un adaptador para cada XBee para su respectiva conexión hacia el controlador y el supervisor. 82 Figura 4.18: XBee Pro S2B El diagrama de comunicación inalámbrica propuesto es: CONTROLADOR COMPUTADOR SUPERVISOR COMPUTADOR XBEE XBEE CABLEADO RS-232 CABLEADO RS-232 INALAMBRICO ZIGBEE Figura 4.19: Diagrama de comunicación 4.1.8. Elección de fuente de alimentación El barco escogido incluye una batería de 12 voltios para el funcionamiento de los motores; sin embargo, no es recomendable conectar los dispositivos electrónicos a ésta ya que una contracorriente de los motores podría quemar al resto de componentes. Además, todos los componentes electrónicos adicionales usados trabajan con 5 voltios o 3.3 voltios. Por lo tanto, se debe tener una fuente adicional de energía en ese rango de voltajes. En la Tabla 4.3 se realiza un balance de energía consumida por los componentes eléctricos en el barco. 83 Tabla 4.3: Balance energético Componente Consumo (mA) Cantidad Total (mA) Arduino UNO 20 - 80 2 40 - 160 MPU6050 3.9 1 3.9 HMC5883L 0.1 1 0.1 PIKSI GPS 500 1 500 Raspberry Pi B+ 330 - 800 1 330 - 800 Xbee Pro S2B 63 1 63 Otros 100 5 500 Total 1437 - 2027 Se espera que el máximo consumo en promedio sea de 2000mA, de forma que para trabajar al menos tres horas se necesita una batería de al menos 6000mAh. Se propone utilizar una batería portátil de 10000mAh para asegurar que el sistema de control, posicionamiento y comunicación sigan funcionando dos horas adicionales en caso que la batería de los motores quede sin energía, asegurando que el barco podrá ser ubicado y rescatado. 4.1.9. Esquema de relación entre hardware En la Figura 4.20 se muestra un esquema híbrido de comunicaciones y energía del sistema con el hardware propuesto. 4.2. Propuesta de diseño de software 4.2.1. Observaciones previas Se presenta la propuesta de implementación de software mediante el uso de diagramas de bloques en los dispositivos programables. Entre estos se incluyen el concentrador (Arduino UNO), el puente (Arduino UNO), el controlador (Raspberry Pi B+) y el supervisor (laptop de campo). Los diagramas de bloques se expresarán en forma modular y tendrán en cuenta el planteamiento general del programa; sin embargo, no tendrán en cuenta la elección del lenguaje de programación a utilizar ni la implementación detallada de los programas, a menos que sea específico para la aplicación. Los esquemas no incluyen mecanismos para asegurar la ejecución en tiempo real dado que son solo descriptivos; sin embargo, en la implementación deben ser considerados. 8 4 MOTOR BRUSHLESS (DERECHO) LBP56110-640KV MOTOR BRUSHLESS (IZQUIERDO) LBP56110-640KV ESC SEAKING 180A ESC SEAKING 180A RECEPTOR FASST R617FS-2.4GHz CONTROL FUTABA 7C-2.4GHz CABLEADA PPM CABLEADA PPM VOLTAJE TRIFASICO VOLTAJE TRFASICO INALAMBRICA 2.4GHz BATERIA 24VDC VOLTAJE DC VOLTAJE DC PUENTE Arduino Uno CABLEADA PPM CABLEADA PPM CONTROLADOR RASPBERRY PI B+ CABLEADA RS-232 SUPERVISOR LAPTOP XBEE XBEE CABLEADA RS-232 CABLEADA RS-232 INALAMBRICO ZIGBEE CONCENTRADOR Arduino Uno MPU6050 HMC5883L GPS Otros sensores CABLEADA I2C CABLEADA I2C CABLEADA RS-232 CABLEADA CABLEADA RS-232 BATERIA 5VDC VOLTAJE DC VOLTAJE DC VOLTAJE DC VOLTAJE DC VOLTAJE DC Figura 4.20: Esquema de Hardware propuesto 85 Los algoritmos enfocados netamente a tareas de control, debido a su complejidad, serán presentados mediante un pseudocódigo. 4.2.2. Concentrador (Arduino UNO) Para la programación del concentrador, se debe tener en cuenta la adquisición de mensajes mediante conexión serial que viene del GPS, la lectura de los sensores inerciales y sensores adicionales, así como el envío de valores medidos al controlador (Figura 4.21). INICIO DEFINICIÓN DE CONSTANTES Y MÓDULOS INICIALIZACIÓN DE VARIABLES Y MÓDULOS BUCLE DE EJECUCIÓN RECEPCIÓN DE MENSAJE Mensaje NMEA de GPS INTERRUPCIÓN SERIAL Inicializa Medición de sensores al controlador Figura 4.21: Diagrama de bloques del concentrador Ya que normalmente el Arduino UNO tiene librerías en varios lenguajes para realizar la lectura de sensores y realizar la comunicación serial, los mismos serán usados de forma directa. Adicionalmente, se debe definir el valor de presión al nivel del mar si se va a trabajar en lagos de gran altitud y definir el ángulo de declinación geográfica para corregir la medición del ángulo de guiñada (Figura 4.22). Las matrices de calibración de los sensores son también necesarias; su calibración se discute en el procedimiento básico para implementación. 86 DEFINICIÓN DE CONSTANTES Y MÓDULOS Definir valor de presión al nivel del mar (101325.0 Pa) Definir ángulo de declinación geográfica (-0.02550 rad) Definir matrices de calibración de giroscopio (escala) Definir matrices de calibración del acelerómetro (rotación, escala y bias) Definir matrices de calibración del magnetómetro (rotación, escala y bias) Uso de módulo Serial (comunicación con GPS) Uso de giroscopio (I2C con MPU6050) Uso de acelerómetro (I2C con MPU6050) Uso de magnetómetro (I2C con HMC5883L) Uso de módulo Serial Software (comunicación con controlador) FIN Figura 4.22: Definición de constates y módulos del concentrador La inicialización realizada está enfocada al módulo Serial para la recepción continua de datos del GPS y el envío de datos al controlador (Figura 4.23). También se configuran las escalas de los sensores; de ser posible se añaden las matrices de calibración según permita la librería utilizada. INICIALIZACIÓN DE VARIABLES Y MÓDULOS Establecer velocidad de comunicación Serial GPS (9600 baudios) mensajeSerial vacio recibidoSerial := falso Longitud := 0, Latitud := 0, Altitud:=0 FIN Establecer velocidad de comunicación Serial Control (115200 baudios) Configurar escala de giroscopio, acelerómetro y magnetómetro Figura 4.23: Inicialización de variables y módulos del concentrador 87 Para la recepción del mensaje (Figura 4.24), se considera que se tienen funciones para leer directamente cadenas de mensajes y para buscar texto dentro de una cadena. En el protocolo NMEA el mensaje con contenido GPGGA contiene la longitud, latitud y altitud. Los mensajes de estado del GPS son ignorados para simplificar el esquema, pero en la aplicación práctica es recomendable tenerlos en cuenta ya que portan información del estado de los satélites, confiabilidad de medición y otros. RECEPCIÓN DE MENSAJE mensajeSerial := leer_cadena() mensajeSerial contiene GPGGA recibidoSerial := verdadero FIN Extraer Longitud, Latitud, Altitud Si No Figura 4.24: Recepción de mensaje NMEA y extracción de Longitud-Latitud-Altitud En el bucle de ejecución se lee el valor de los sensores y se envía los datos adquiridos al controlador (Figura 4.25). Se distingue entre la lectura del giroscopio/acelerómetro y la lectura del magnetómetro ya que ambos suelen tener distinto tiempo de muestreo. Para el diagrama mostrado, se asigna como frecuencias de muestreo para el giroscopio/acelerómetro y para el magnetómetro. La frecuencia de muestreo del GPS es de pero, como su transmisión es periódica, solo es necesario esperar que llegue el mensaje respectivo. El resto de sensores que no están referidos al control podría tener tiempos de muestreo distintos, por lo que se debe tomar una estructura similar al caso de la medición de giroscopio/acelerómetro y magnetómetro. 88 BUCLE DE EJECUCIÓN recibidoSerial Si No Leer giroscopio y acelerometro (MPU6050) Leer magnetómetro (HMC5883L) tiempo_actual – ultimo_MPU6050 > 1ms ultimo_MPU6050 := tiempo_actual tiempo_actual – ultimo_HMC5883L > 20ms No Si Si ultimo_HMC5883L := tiempo_actual Transformación Longitud- Latitud-Altitud a sistema NED (posición x,y) Cálculo de ángulos de balance, cabeceo y guiñada (ángulo ψ) No Lectura de otros sensores Envío de datos (de existir) al controlador mediante Serial (separados por coma) Medición de sensores al controlador recibidoSerial := falso Figura 4.25: Bucle de ejecución principal del concentrador 4.2.3. Puente (Arduino UNO) Para la programación del puente se debe tener en cuenta la adquisición de mensajes mediante conexión serial que viene del controlador y la adquisición de señal PPM a partir del receptor de radiofrecuencia (Figura 4.26). INICIO DEFINICIÓN DE CONSTANTES Y MÓDULOS INICIALIZACIÓN DE VARIABLES Y MÓDULOS BUCLE DE EJECUCIÓN RECEPCIÓN DE MENSAJE PPM de controlador INTERRUPCIÓN SERIAL InicializaINTERRUPCIÓN EXTERNA Inicializa LECTURA DE PPM PPM de Receptor RF Figura 4.26: Diagrama de bloques del puente 89 Ya que normalmente el Arduino UNO tiene librerías en varios lenguajes para manejar fácilmente motores servo mediante PPM, realizar la comunicación serial y tiene un módulo físico para manejar interrupciones de hardware, los mismos serán usados de forma directa (Figura 4.27). DEFINICIÓN DE CONSTANTES Y MÓDULOS Definir límites de PPM para motores derecho e izquierdo (1000-2000us) Definir pines de envío de PPM para motores derecho e izquierdo (pines 9-10) Uso de módulo Serial (comunicación con controlador) Uso de módulo Servo (generación de PPM) FIN Uso de interrupciones externas (Lectura PPM de Receptor RF) Definir pines para interrupción externa para PPM derecho e izquierdo (pines 2-3) Figura 4.27: Definición de constantes y módulos del puente La inicialización realizada está enfocada al módulo Serial para la recepción de órdenes del controlador, la recepción mediante interrupciones de hardware de la señal PPM enviada por el receptor RF y el envío de señal PPM a los módulos ESC del barco (Figura 4.28). Adicionalmente, se inicializa temporizadores para la medición de tiempos entre interrupciones. 90 INICIALIZACIÓN DE VARIABLES Y MÓDULOS Establecer velocidad de comunicación Serial (115200 baudios) mensajeSerial vacio recibidoSerial := falso nRecibidos := 0 ultimoRecibido := tiempo_actual Establecer pines del módulo Servo para envío de PPM (pines 9-10) Establecer salida de PPM a pines en valor medio (1500us) Establecer pines de interrupción externa para recepción de PPM del receptor RF (pines 2-3) Establecer funciones de interrupción externa para ejecución al cambio de flanco de señal Inicializar temporizador para medición de periodos de actualización y de recepción de PPM Inicializar selector de recepción de datos para decidir entre controlador o receptor RF (autónomo := verdadero) ppmDerechoRF := 1500 ppmIzquierdoRF := 1500 FIN ppmDerechoCrtl := 1500 ppmIzquierdoCrtl := 1500 Figura 4.28: Inicialización de variables y módulos del puente La lectura del PPM a partir del receptor RF se realiza por separado para el barco escogido (Figura 4.29). Su medición se realiza midiendo el tiempo que pasa desde que hay un flanco de subida en la señal hasta que hay un flanco de bajada. 91 LECTURA DE PPM LECTURA DE PPM (derecha) LECTURA DE PPM (izquierda) Misma Estructura lógica duracion>2500us duracion := tiempo_actual – tiempo_anterior Flanco de subida t_subida := duracion Flanco de bajada t_bajada := duracion periodo_pulso := t_subida + t_bajada ancho_pulso := t_bajada ppmDerechoRF := ancho_pulso tiempo_anterior := tiempo_anterior + duracion PPM derecha de Receptor RF Si No ppmIzquierdoRF := ancho_pulso PPM izquierda de Receptor RF FIN Figura 4.29: Diagrama de lectura de PPM Se define el mensaje enviado por el controlador al puente como uno o dos números separados por coma y un carácter de fin de línea (Figura 4.30). Debido a esto, no se lee la cadena completa, sino que se toman individualmente los valores recibidos. Esto simplifica el lazo de envío de señal PPM a los módulos ESC del barco. 92 RECEPCIÓN DE MENSAJE c := leer_caracter() c es un salto de línea (\n) c es una coma (,) c es un carácter válido (#c < 128) mensajeSerial := mensajeSerial + c ppmIzquierdoCrtl := toInt(mensajeSerial) nRecibidos := nRecibidos + 1 ppmDerechoCrtl := toInt(mensajeSerial) mensajeSerial vacio mensajeSerial vacio nRecibidos := nRecibidos + 1 recibidoSerial := verdadero Si No No Si FIN Si No PPM del controlador Figura 4.30: Recepción de mensajes del controlador El bucle principal (Figura 4.31) se encarga de interpretar las órdenes del controlador respecto al uso de la señal PPM del receptor RF o la generación de señal PPM según lo indicado por el controlador. De igual manera, incluye una verificación de presencia de comunicaciones, frenando el barco en caso no se reciba mensajes del controlador por más de un segundo. 93 BUCLE DE EJECUCIÓN recibidoSerial autónomo tiempo_actual – ultimoRecibido > 1000ms INTERPRETAR SERIAL / APLICAR PPM SERIAL APLICAR PPM RF SIN COMUNICACIÓN / PARAR BARCO Si No No Si Si No Figura 4.31: Bucle de ejecución principal del puente La interpretación de la señal enviada por el controlador se hace mediante el número o números recibidos del mismo. Si se recibe un número y es igual a , se entiende que el controlador desea que el receptor RF tome el control, en cambio, si se recibe dos valores válidos de PPM se entiende que el controlador desea tomar el control con el valor especificado para los motores izquierdo y derecho. La aplicación del PPM del receptor RF es directa teniendo en cuenta que fue interpretado mediante interrupciones de hardware y medición de tiempos entre flancos de subidas y bajadas. La aplicación de parada al barco cuando no hay comunicación con el controlador evita que el barco siga moviéndose cuando existe un daño en el cable entre el barco y el controlador. Esto se hace debido a que es peligroso que el barco avance sin una verdadera realimentación. Debido a esto, el controlador debe enviar al barco un mensaje al menos una vez cada segundo para confirmar que existe 94 comunicación, incluso cuando se desee trabajar en modo no autónomo (Figura 4.32). INTERPRETAR SERIAL / APLICAR PPM SERIAL nRecibidos = 2 nRecibidos = 1 Establecer salida PPM derecha a ppmDerechoCrtl Establecer salida PPM izquierda a ppmIzquierdoCrtl autónomo := verdadero autónomo := falso ppmDerechoCrtl := 0 ppmIzquierdoCrtl := 0 nRecibidos := 0 recibidoSerial := falso ultimoRecibido := tiempo_actual ppmDerechoCrtl = -1 Si No Si Si No No FIN Establecer salida PPM derecha a ppmDerechoRF Establecer salida PPM izquierda a ppmIzquierdoRF APLICAR PPM RF FIN Establecer salida de PPM a pines en valor medio (1500us) ultimoRecibido := tiempo_actual autónomo := verdadero SIN COMUNICACIÓN / PARAR BARCO FIN Figura 4.32: Detalle de funciones del bucle de ejecución principal del puente 4.2.4. Controlador (Raspberry Pi B+) Debido a la complejidad del programa del controlador, solo se representa el diagrama de funcionamiento general (Figura 4.33) y el diagrama del controlador. 95 INICIO INICIALIZACIÓN DE VARIABLES, MÓDULOS Y TAREAS DEFINICIÓN DE CONSTANTES Y MÓDULOS FIN LECTURA DE SENSORES CONTROLADOR RECEPCIÓN DE ORDENES DESDE SUPERVISOR ALMACENADO DE DATOS EN SUPERVISOR Tarea Tarea Tarea Tarea MEDICIÓN DE SENSORES Medición de sensores Comandos Concentrador Supervisor Puente PPM Medición de sensores Comandos del Supervisor Medición de sensores Comandos Figura 4.33: Diagrama de funcionamiento general del controlador En la definición de constantes y módulos se debe incluir definición de parámetros y módulos de comunicaciones con los Arduinos puente y concentrador mediante protocolo serial cableado y con el supervisor mediante protocolo serial inalámbrico usando el XBee. En la etapa de inicialización se definen variables comunes como las variables medidas, los mensajes entre tareas y sus respectivos mecanismos de sincronización, se ponen operativos los módulos de comunicación y se comienza a arrancar las tareas. Finalmente se termina el proceso principal dejando a las tareas trabajando. La tarea de lectura de sensores se encarga de recibir las mediciones enviadas por el concentrador y almacenarlas en una base de datos local; ya sea de forma periódica o mediante interrupción. Adicionalmente, mantiene las mediciones en variables globales para permitir el acceso rápido a las mismas por parte del resto de tareas. La tarea de recepción de órdenes desde el supervisor se encarga de manejar todos los mensajes, interpretarlos y enviarlos al controlador de forma simplificada. Entre los principales comandos concernientes al control se tiene la selección de modo de funcionamiento (automático o manual) y los datos de trayectoria deseada. 96 La tarea de almacenado de datos en supervisor envía periódicamente los datos adquiridos por los sensores para su almacenamiento en la base de datos remota. Debe ser capaz de variar la frecuencia del envío de los datos según orden del supervisor y detener el envío de datos temporalmente mientras no se tiene comunicación con el supervisor. La tarea del controlador (Figura 4.34) se encarga de recibir principalmente el modo de funcionamiento deseado y la referencia deseada para generar la acción de control deseada. CONTROLADOR Comando automático Tomar medición de sensores Tomar punto de trayectoria deseada actual Generar acción de control (Filtro Plano Lineal) Enviar acción de control deseada a Puente Reiniciar filtro plano lineal tiempo_actual – tiempo_anterior > 10 ms Reinicio Si No Comandos Medición de sensores No tiempo_anterior := tiempo_actual Enviar (-1,0) a Puente PPM a puente Si Figura 4.34: Diagrama del controlador propiamente dicho 97 4.2.5. Supervisor (Laptop de campo) Debido a la complejidad del programa de supervisión, solo se representan el diagrama de funcionamiento general simplificado integrado al bosquejo de la interfaz gráfica (Figura 4.35). MAPA Se muestra posición actual del barco y la trayectoria deseada a seguir Se debe poder definir puntos nuevos para la trayectoria CURVAS HISTORICAS Se muestra las curvas de evolución de las variables ambientales en tiempo real También se puede mostrar curvas de desempeño del controlador CONFIGURACIÓNREPORTESCALIBRACIÓNMODO DE OPERACIÓN MEDICIONES ACTUALES Se muestran valores medidos de los sensores en tiempo real para toma de decisiones en un área TIPO DE MAPA Permite seleccionar variable a mostrar en el mapa como gradiente u otra representación Operación manual o automática Procedimiento de calibración de sensores guiado Consulta a base de datos histórica y exportación Puertos de comunicación Parámetros del controlador Frecuencia de almacenado etc ALARMAS Definir avisos ante valores de medición inválidos, extraños o peligrosos Conexión con servidor de mapas para actualización Valores adquiridos de sensores del barco vía serial inalambrico (XBee) Figura 4.35: Bosquejo de interfaz gráfica del supervisor 4.3. Pseudocódigo de algoritmo de control basado en filtro plano lineal 4.3.1. Observaciones previas El siguiente pseudocódigo fue elaborado en lenguaje M de MATLAB por la simplicidad que presenta para las operaciones matriciales; sin embargo, ya que no se utiliza ninguna función cerrada de MATLAB es fácilmente implementable en otros lenguajes usando librerías matriciales u operaciones iterativas sobre arreglos. 4.3.2. Inicialización del algoritmo de control %% Inicialización de generador de trayectoria % Parámetros del filtro plano 98 xir = 1; wnr = 1; % Se genera un polinomio de cuarto orden % p4r(s) = (s^2 + 2*xir*wnr*s + wnr^2)^2 % p4r(s) = s^4 + L3r*s^3 + L2r*s^2 + L1r*s + L0r L3r = 4*xir*wnr; L2r = 4*xir^2*wnr^2 + 2*wnr^2; L1r = 4*wnr^3*xir; L0r = wnr^4; % Se inicializan variables para estados del filtro x1rfm = 0; x2rfm = 0; y1rfm = 0; y2rfm = 0; % Se define función para limitar salida (saturación) bound = @(v,vmin,vmax)(min(max(v,vmin),vmax)); % Se definen los valores límites del generador de trayectoria Frmax = 0.5; rrmax = 1; urmin = 0.01; urmax = 2; % Parámetros de antiwindup de referencia betaFr = 0.5; betarr = 0.5; % Estados internos de referencia, x e y son mediciones iniciales xrm = x; yrm = y; psirm = 0; urm = urmin; rrm = 0; Frm = 0; %% Inicialización de controlador de trayectoria % Parámetros del filtro plano F/r xi = 1.2; wn = 1; % Se genera un polinomio de cuarto orden % p4(s) = (s^2 + 2*xi*wn*s + wn^2)^2 % p4(s) = s^4 + L3*s^3 + L2*s^2 + L1*s + L0 L3 = 4*xi*wn; L2 = 4*xi^2*wn^2 + 2*wn^2; L1 = 4*wn^3*xi; L0 = wn^4; % Se inicializan variables para estados del filtro xf1 = 0; xf2 = 0; yf1 = 0; yf2 = 0; % Parámetros de antiwindup F/r betaF = 0.5; betarn = 0.5; diF = 0; dirn = 0; diux = 0; diuy = 0; % Parámetros del filtro plano T xiT = 0.7; wnT = 5; % Se genera un polinomio de segundo grado L1T = 2*xiT*wnT; L0T = wnT^2; % Se inicializa variable para estado del filtro rf1 = 0; % Parámetros de antiwindup T betaT = 0.05; diT = 0; %% Tiempo de inicio para contador t = 0; 4.3.3. Algoritmo de generación de trayectoria %% Generación de trayectoria % (xd,yd) son las coordenadas de trayectoria deseada % Se calcula el error respecto a la trayectoria deseada exrm = xrm - xd; eyrm = yrm - yd; 99 % Se aplica filtro sobre variable x x1rfmp = x2rfm; x2rfmp = -L3r*x2rfm + exrm; x1rfm = x1rfm + x1rfmp*dt; x2rfm = x2rfm + x2rfmp*dt; uxr = -L2r*(-L3r*x2rfm + exrm) - L1r*x2rfm - L0r*x1rfm; % Se aplica filtro sobre variable y y1rfmp = y2rfm; y2rfmp = -L3r*y2rfm + eyrm; y1rfm = y1rfm + y1rfmp*dt; y2rfm = y2rfm + y2rfmp*dt; uyr = -L2r*(-L3r*y2rfm + eyrm) - L1r*y2rfm - L0r*y1rfm; % Se define matriz de ganancia y su inverso modificado Gr = [cos(psirm) -urm*sin(psirm) sin(psirm) urm*cos(psirm)]; Gir = [cos(psirm) sin(psirm) -sin(psirm)/urm cos(psirm)/urm]; % Se calcula controles necesarios Frmd = Gir(1,1)*uxr + Gir(1,2)*uyr; rrmd = Gir(2,1)*uxr + Gir(2,2)*uyr; % Se satura controles al rango definido Frmd2 = bound(Frmd,-Frmax,Frmax); rrm = bound(rrmd,-rrmax,rrmax); Frm = Frmd2; if urm + Frmd2*dt < urmin Frm = (urmin - urm)/dt; elseif urm + Frmd2*dt > urmax Frm = (urm - urmax)/dt; end % Se aplica la etapa de antiwindup diFr = betaFr*(Frm - Frmd); dirr = betarr*(rrm - rrmd); diuxr = Gr(1,1)*diFr + Gr(1,2)*dirr; diuyr = Gr(2,1)*diFr + Gr(2,2)*dirr; x1rfm = x1rfm - diuxr; y1rfm = y1rfm - diuyr; % Se actualiza variables de estado del generador de trayectoria xrm = xrm + urm*cos(psirm)*dt; yrm = yrm + urm*sin(psirm)*dt; psirm = psirm + rrm*dt; urm = urm + Frm*dt; 4.3.4. Algoritmo de seguimiento de trayectoria %% Seguimiento de trayectoria % Error respecto a trayectoria de referencia ex = xm - xrm; ey = ym - yrm; % Filtro plano F/r % Se aplica filtro sobre variable x dxf1 = xf2; dxf2 = -L3*xf2 + ex; xf1 = xf1 + dxf1*dt; xf2 = xf2 + dxf2*dt; xf1 = xf1 + diux; ux = -L2*(-L3*xf2 + ex) - L1*xf2 - L0*xf1; % Se aplica filtro sobre variable y dyf1 = yf2; dyf2 = -L3*yf2 + ey; 100 yf1 = yf1 + dyf1*dt; yf2 = yf2 + dyf2*dt; yf1 = yf1 + diuy; uy = -L2*(-L3*yf2 + ey) - L1*yf2 - L0*yf1; % Se define matriz de ganancia e inversa us = sign(um); us = us*us; G = [d*cos(psim) -sin(psim)*us d*sin(psim) cos(psim)*us ]; Ginv = [cos(psim)/d sin(psim)/d -sin(psim)*us cos(psim)*us]; % Se calcula controles necesarios F = Ginv(1,1)*ux + Ginv(1,2)*uy; rn = Ginv(2,1)*ux + Ginv(2,2)*uy; Fd = F; rnd = rn; % Se satura los controles deseados y se aplica antiwindup F = min(max(F,-10),10); rn = min(max(rn,-2),2); diF = betaF*(Fd - F); dirn = betarn*(rnd - rn); diux = G(1,1)*diF + G(1,2)*dirn; diuy = G(2,1)*diF + G(2,2)*dirn; % Se aplica filtro plano sobre la variable r er = r - rn; drf1 = er; rf1 = rf1 + drf1*dt; rf1 = rf1 + diT; ur = -L1T*(er) - L0T*rf1; % Se calcula la acción de control T necesaria T = 1/q*ur; T = alphaT*T; Td = T; % Se satura el control deseado y se aplica antiwindup T = min(max(T,-10),10); diT = betaT*(Td-T); % Se calcula la acción de control en función de F1 y F2 F1 = F + T/dst; F2 = F - T/dst; % La acción de control calculada es transformada a PPM y % enviada al puente 4.4. Consideraciones adicionales en la implementación Calibración de magnetómetro Para la obtención de los parámetros de calibración del magnetómetro se toma datos del magnetómetro de forma continua hasta haber barrido la mayor parte de una esfera como muestra la Figura 4.36. Posteriormente, los datos son ajustados a un elipsoide (Petrov, Y. 2009) donde se obtienen el bias del magnetómetro debido al hard iron y la matriz de rotación y escala debida al soft iron. 101 Figura 4.36: Toma de datos y calibración de magnetómetro Calibración de acelerómetro El acelerómetro se calibra siguiendo el mismo principio que para el magnetómetro, pero se debe tener cuidado de rotar el acelerómetro lentamente y sin movimientos bruscos dado que movimientos impulsivos generarán datos muy alejados de la elipsoide buscada. Calibración de giroscopio En el giroscopio sólo se realiza una calibración previa al funcionamiento del barco para eliminar el bias colocando el giroscopio en una superficie fija y tomando el promedio de las muestras tomadas durante 10 segundos. Adicionalmente, puede calibrarse el factor de escala según la temperatura ambiental, pero es bastante impráctico. Conexión de puente y ESC Para evitar posibles problemas de contracorrientes generados desde el motor y hacia el puente (Arduino UNO), se debe agregar al circuito optocopladores, de forma que ambos sistemas estén eléctricamente aislados. 4.5. Presupuesto de la propuesta de implementación Se presenta un presupuesto grueso para la implementación del proyecto de vehículo marítimo autónomo para monitoreo ambiental. El presupuesto solo tendrá en cuenta el costo de componentes principales, dejando de lado el costo de cableado, fabricación de placas y otros; para cubrir estos gastos se considerará un costo del 10% adicional sobre el costo total de los componentes electrónicos 102 adicionales. En el presupuesto se incluirán los sensores ambientales presentados en la Tabla 4.4. Tabla 4.4: Sensores ambientales seleccionados Sensor Código Anemómetro (Velocidad de viento) SEN-08942 Temperatura y humedad del aire DHT11 Temperatura del agua DS18B20 Conductímetro (Salinidad) DFR0300 pH-metro SEN-10972 Resultando el presupuesto mostrado en la Tabla 4.5. Tabla 4.5: Presupuesto del proyecto Componente Código Precio (USD$) Barco con motores y control RF EchoBoat-RCV 10000 GPS RTK PIKSI GPS 1000 Puente Arduino UNO 25 Concentrador Arduino UNO 25 Controlador Raspberry Pi B+ 40 Giroscopio y acelerómetro MPU6050 40 Magnetómetro HMC5883L 15 Comunicaciones inalámbricas x2 Xbee Pro S2B + Shield 180 Fuente 5v Anker 2nd Gen 22 Anemómetro (Velocidad de viento) SEN-08942 77 Temperatura y humedad del aire DHT11 4 Temperatura del agua DS18B20 10 Conductimetro (Salinidad) DFR0300 70 pH-metro SEN-10972 130 Otros 10% de electrónicos 164 Total 11802 En el presupuesto no se considera el costo de la laptop de supervisión ya que el equipo no está integrado al barco ni requiere ser de uso dedicado. Debido a costos 103 de importación, el precio podría aumentar hasta en un 50%, por lo que se tiene como presupuesto requerido final aproximado de USD$ 18000.00. 4.6. Avances en implementación La implementación del barco está siendo desarrollada por un grupo de trabajo, al cual pertenezco, designado para el desarrollo de algoritmos de control aplicados a vehículos marinos de superficie. Se presentan los avances logrados en la implementación. Se adquirió un barco EchoBoat-RCV (Figura 4.37) con las características descritas en la subsección 4.1.2. Figura 4.37: EchoBoat-RCV En su interior se realizó la instalación de los módulos de puente con optocoplador, concentrador y controlador (Figura 4.38). Se instalaron también el giroscopio, acelerómetro y magnetómetro. 104 Figura 4.38: Equipos programables Se diseñó una interfaz gráfica preliminar (Figura 4.39) para el control en lazo abierto del barco mediante el envío continuo de datos. Figura 4.39: Interfaz gráfica preliminar Se realizó pruebas en lazo abierto (Figuras 4.40 y 4.41) en una piscina de la Marina de Guerra del Perú. 105 Figura 4.40: Prueba de giro en lazo abierto Figura 4.41: Prueba de avance en línea recta en lazo abierto Debido a que la piscina es techada, se está viendo alternativas al uso de GPS; sin embargo, como el proyecto está enfocado al control en el mar y lagos, no debería haber problemas de recepción de satélites GPS. 106 CONCLUSIONES El sistema de control automático para vehículos marinos de superficie diseñado mediante el uso de ADRC, basado en filtros planos lineales, mostró tener la capacidad de controlar trayectorias arbitrarias sin la necesidad de que el modelo matemático completo intervenga en el algoritmo del mismo. La obtención del modelo matemático que caracteriza el comportamiento de un barco subactuado no tripulado fue exitosa, consiguiéndose una estructura que fue validada con el modelo obtenido por Fossen (Fossen, T. I. 1991). El análisis de la interacción entre las variables del modelo matemático y la separación de partes importantes ayudó a plantear de forma adecuada el controlador. Las simulaciones del controlador diseñado dieron resultados equiparables al del controlador basado en linealización por realimentación de estados sin la necesidad de utilizar observadores ni parámetros del barco, reduciendo la labor de control propiamente al diseño del controlador como tal. Las simulaciones también mostraron que el controlador diseñado es robusto ante variaciones en el peso del mismo, en un rango de escala de a veces el valor original de masa. Esto permite variar la carga del barco sin afectar el seguimiento de trayectoria. La propuesta práctica del controlador en un barco enfocado a monitoreo marítimo fue planteada y se encuentra en etapa de pruebas. Los componentes funcionan adecuadamente para las pruebas realizadas, y se espera que la implementación real del control automático sea el siguiente paso. 107 RECOMENDACIONES Implementar el algoritmo de control planteado en un barco real para realizar pruebas de funcionamiento. Se facilita un pseudocódigo del algoritmo de control, pero la implementación en el hardware requiere módulos y librerías adicionales en dependencia con el sistema operativo a usar, el computador escogido y la criticidad de la tarea que se realizará. Hacer el algoritmo de control tolerante a fallas. El algoritmo generador de referencias no toma en cuenta la posición del barco y podría causar problemas al algoritmo si el barco se aleja demasiado de la trayectoria de referencia generada. Esto no debería ser un problema en funcionamiento nominal, pero ante presencia de oleaje fuerte el sistema podría desestabilizarse. Añadir al planteamiento del barco un sistema de fusión de sensores de entorno para evitar choques. El planteamiento original de esta tesis asume que se trabajará sin obstáculos; sin embargo, es posible que haya otros barcos trabajando en el entorno, por lo que estos sensores podrían servir como una etapa previa para planificar la trayectoria, actualizarla a cada momento y usarla con el controlador planteado. Realizar pruebas con perturbaciones de orden superior. En esta tesis se presenta un estimador de perturbación asumiendo que se tiene una buena frecuencia de muestreo como para que la perturbación sea constante entre cada muestreo, cosa que a veces no es posible asegurar. Por tanto, el uso de modelos de perturbaciones de orden superior podría mejorar la respuesta en casos con frecuencia de muestreo baja. Realizar la implementación del optimizador de trayectoria deseada descrito en la subsección 3.4.3 de para reducir sobreimpulsos debido a cambios bruscos en trayectoria. Esta tesis presenta un controlador que no depende directamente de los parámetros del modelo matemático del barco; sin embargo, el desempeño del controlador mejoraría conociendo los parámetros adecuados 108 BIBLIOGRAFÍA Brumana, R.; Oreni, D.; Alba, M.; Barazzetti, L.; Cuca, B.; Scaioni, M. (2012). Panoramic UAV views for landscape heritage analysis integrated with historical maps atlases. Geoinformatics FCE CTU, 9: 39-50. Carniege Mellon University. (2015). Material Transport (AMTS). Recuperado el 15 de 09 de 2015, de National Robotics Engineering Center: http://www.nrec.ri.cmu.edu/projects/amts/ Chwa, D. (2011). Global tracking control of underactuated ships with input and velocity constraints using dynamic surface control method. IEEE Transactions on Control Systems Technology, 19(6): 1357-1370. Dai, S. L.; Wang, C.; Luo, F. (2012). Identification and learning control of ocean surface ship using neural networks. IEEE Transactions on Industrial Informatics, 8(4): 801-810. Decker, B. L. (1986). World geodetic system 1984. Defense Mapping Agency Aerospace Center St Louis Afs Mo. Ding, F.; Wang, Y.; Wang, Y. (2011). Trajectory-tracking controller design of underactuated surface vessels. IEEE OCEANS 2011: 1-5. Do, K. D. (2010). Practical control of underactuated ships. Ocean Engineering, 37(13): 1111-1119. Fahimi, F. (2008). Autonomous robots: modeling, path planning, and control. Springer Science & Business Media. Fossen, T. I. (1991). Nonlinear modelling and control of underwater vehicles. Fakultet for informasjonsteknologi, matematikk og elektroteknikk. Fossen, T. I. (2000). A survey on nonlinear ship control: from theory to practice. Proceedings of the 5th IFAC Conference on Manoeuvring and Control of Marine Craft: 23-25. Fossen, T. I. (2011). Handbook of marine craft hydrodynamics and motion control, first edition, John Wiley & Sons, UK. Gao, Z. (2006). Active disturbance rejection control: a paradigm shift in feedback control system design. American Control Conference, 2006: 7 pp. 109 Google. (s.f.). Google Self-Driving Car Project. Recuperado el 20 de 11 de 2015, de Google Self-Driving Car Project: https://www.google.com/selfdrivingcar/ Han, J. (2009). From PID to active disturbance rejection control. IEEE transactions on Industrial Electronics, 56(3): 900-906. Herbst, G. (2013). A simulative study on active disturbance rejection control (ADRC) as a control tool for practitioners. Electronics, 2(3): 246-279. Hine, R.; Willcox, S.; Hine, G.; Richardson, T. (2009). The wave glider: A wave- powered autonomous marine vehicle. OCEANS 2009, MTS/IEEE Biloxi-Marine Technology for Our Future: Global and Local Challenges: 1-6. Hull, T.; Sivyer, D. (2013). Wave Glider trial, final report; September 2013. Recuperado el 15 de 09 de 2015, de Centre for Environment Fisheries and Aquaculture Science: http://www.cefas.defra.gov.uk/publications/files/WaveGliderReport_Cefas_11Sept20 13.pdf Li, R.; Li, T.; Zheng, Q.; Li, Q. (2012). Ship tracking control based on linear active disturbance rejection control. 2012 Third International Conference on Intelligent Control and Information Processing (ICICIP): 201-205. Li, R.; Li, T.; Bu, R. (2013). Disturbance decoupling control based trajectory tracking for underactuated ships. 2013 32nd Chinese Control Conference (CCC): 8108-8113. Liquid Robotics (2013). CASE STUDY: Operates Where Others Can't Easily Reach. Recuperado el 15 de 09 de 2015, de Liquid Robotics: http://liquidr.com/resdown/resources/case-studies/cefas.html Ma, B. L.; Xie, W.J. (2013). Global asymptotic trajectory tracking and point stabilization of asymmetric underactuated ships with non-diagonal inertia/damping matrices. International Journal of Advanced Robotic Systems, 10. Madgwick, S. OH. (2010). An efficient orientation filter for inertial and inertial/magnetic sensor arrays. Report x-io and University of Bristol (UK) Motwani, A. (2012). Survey of uninhabited surface vehicles. Plymouth University Tech. Rep. 110 National Oceanic and Atmospheric Administration (2005). NOAA's new ship targets path-finding ocean exploration and research. Recuperado el 15 de 09 de 2015, de NOAA news: http://www.noaanews.noaa.gov/stories2005/s2370.htm Pan, C. Z.; Lai, X. Z.; Yang, S. X.; Wu, M. (2013). An efficient neural network approach to tracking control of an autonomous surface vehicle with unknown dynamics. Expert Systems with Applications, 40(5): 1629-1635. Petrov, Y. (2009). Ellipsoid fit. MATLAB Central File Exchange, 24693. Professional Society of Drone Journalists. (s.f.). Professional Society of Drone Journalists. Recuperado el 15 de 09 de 2015, de http://www.dronejournalism.org/ Qing, Z.; Zhiqiang, G. (2010). On practical applications of active disturbance rejection control. Control Conference (CCC): 6095-6100. Radke, A.; Gao, Z. (2006). A survey of state and disturbance observers for practitioners. American Control Conference, 2006: 6 pp. Remondino, F.; Barazzetti, L.; Nex, F.; Scaioni, M.; Sarazzi, D. (2011). UAV photogrammetry for mapping and 3d modeling–current status and future perspectives. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 38(1): 25-31. Serrano, M.E.; Scaglia, G.J.E.; Godoy, S.A.; Mut, V.; Ortiz, O.A. (2014). Trajectory tracking of underactuated surface vessels: A linear algebra approach. IEEE Transactions on Control Systems Technology, 22(3): 1103-1111. Sira-Ramírez, H. (2003). On the generalized PI sliding mode control of DC-to-DC power converters: a tutorial. International Journal of Control, 76(9-10): 1018-1033. Sira-Ramirez, H.; Beltrán-Carbajal, F; Blanco-Ortega, A. (2008). A generalized proportional integral output feedback controller for the robust perturbation rejection in a mechanical system. STA, 2008, 5(4): 24-32. Sira-Ramírez, H.; Luviano-Juárez, A.; Cortés-Romero J. (2010) A generalized proportional integral approach to sliding mode controller design in switched systems. 2010 49th IEEE Conference on Decision and Control (CDC): 5092-5097. Snyder, J. P. (1987). Map projections--A working manual (Vol. 1395), third printing. US Government Printing Office. 111 Wondergem, M.; Lefeber, E.; Pettersen, K. Y.; Nijmeijer H. (2011). Output feedback tracking of ships. IEEE Transactions on Control Systems Technology, 19(2): 442- 448. Yang, X.; Huang, Y. (2009). Capabilities of extended state observer for estimating uncertainties. American Control Conference: 3700-3705. Yang, Y.; Du, J., Liu, H.; Guo, C.; Abraham, A. (2014). A trajectory tracking robust controller of surface vessels with disturbance uncertainties. IEEE Transactions on Control Systems Technology, 22(4): 1511-1518.