Control POR modo deslizante de un vehiculo submarino tipo...
Transcript of Control POR modo deslizante de un vehiculo submarino tipo...
CONTROL POR MODO
DESLIZANTE DE UN VEHICULO
SUBMARINO TIPO ROV
PROYECTO FINAL DE CARRERA
ALUMNO:
Javier Grande Rodríguez
DIRECTOR:
Juan José Rodríguez Andina
Ahmed Chemori
2
3
RESUMEN
El presente proyecto trata sobre la elaboración de un lazo de control, para una aplicación de piloto
automático, en un vehículo submarino del tipo ROV en el que un operador introduce la trayectoria
deseada del robot y el control elabora las acciones de los propulsores necesarias para seguir esta
trayectoria.
Nuestro vehículo submarino, el AC-ROV es un robot con forma de cubo de unos 20 cm de arista, que
con 6 propulsores acciona hasta 5 grados de libertad.
El método de control se basa en el denominado modo deslizante, que teniendo una noción mínima de
la dinámica del sistema, hace tender el mismo a una zona llamada superficie de deslizamiento, que en
esta aplicación concreta será función del error del sistema y donde la convergencia al punto deseado
será más rápida gracias a una acción discontinua basada en la función sing(x).
El algoritmo del controlador se elabora a partir de una aproximación lineal del modelo dinámico del
sistema de la planta (Robot), es decir, se elabora a partir de una aproximación vaga del sistema real.
Pretendiéndose así reducir el coste computacional del controlador a costa del conocimiento del sistema
a controlar y aprovechar las características particulares de este tipo de controlador.
Uno de los efectos perniciosos de este método de control es la “reticencia” o “traqueteo” (Chattering),
que consiste en una señal de alta frecuencia en la actuación del controlador debida a la acción
discontinua, cuando se converge al punto deseado sobre la superficie de deslizamiento. Este efecto
supone un riesgo para los actuadores. Se explorarán soluciones y alternativas para solucionar este
problema como pueden ser la aproximación de la función discontinua sign(x) por la continua tanh(k·x)
así como la implementación de un controlador en modo deslizante de segundo orden.
Una vez desarrollados los algoritmos de control de primer y segundo orden y resuelto el problema de
reticencia, se testera el controlador en el entorno de simulación Matlab-Simulink y también con ciertas
limitaciones en cuanto a grados de libertad, se implementara sobre el robot real a través del lenguaje
de programación C++.
Con este modo de control obtendremos una rápida convergencia a la trayectoria deseada y una gran
robustez de la misma frente a perturbaciones exteriores e incertidumbres de parámetros, a partir de
un conocimiento limitado de la dinámica del sistema.
Palabras clave: ROV, Control en modo deslizante, Superficie de deslizamiento.
4
INDICE RESUMEN ................................................................................................................... 3
MEMORIA .................................................................................................................... 5
1. Necesidades y Objetivos ....................................................................................... 5
1.1. Introducción ................................................................................................ 5
1.2. Motivación .................................................................................................. 5
1.3. Objetivos .................................................................................................... 6
1.4. Metodología y Etapas ..................................................................................... 7
1.5. Estructura de la Memoria ................................................................................ 7
2. Análisis y Modelado del Sistema ............................................................................. 8
2.1. Estado del Arte. Conceptos Previos ................................................................... 8
2.2. Descripción del AC-ROV ................................................................................ 24
2.3. Desarrollo Matemático del Controlador ............................................................ 31
3. Validación del sistema ....................................................................................... 43
3.1. Simulación del Controlador ........................................................................... 43
3.2. Implantación del Controlador en el Robot ......................................................... 66
4. Conclusión y Líneas Futuras ................................................................................ 74
BIBLIOGRAFIA ............................................................................................................ 75
Bibliografía principal ................................................................................................. 75
Artículos ................................................................................................................ 75
APENDICES ............................................................................................................... 77
Apéndice 1: Desarrollo de la matriz de rotación . ................................................. 77
Apéndice 2: Desarrollo de las matrices y . ..................................................... 78
Apéndice 3: SSMC. Deducción de la ecuación del control para sistemas no lineales. ............. 80
Apéndice 4: Ejemplo de SSMC ................................................................................. 83
Apéndice 5: Eliminación del chattering. .................................................................... 87
Apéndice 6: Desarrollo de la ecuación de la mecánica de ROV. ....................................... 89
Apéndice 7: Descripción del modelado de los accionadores. ........................................... 93
Apéndice 8: Desarrollo del generador de trayectoria deseada. ........................................ 94
5
MEMORIA
1. Necesidades y Objetivos
1.1. Introducción
Los vehículos submarinos han ganado un creciente interés en las últimas décadas, dada la multiplicidad
de operaciones que pueden realizar en varios campos. En este trabajo nos interesa particularmente el
tipo de vehículos submarinos no tripulados conectados a un barco en la superficie por un cable largo a
través del cual se envían la energía y las ordenes, estos son también llamados vehículos remotamente
operados (remotely operated vehicle: ROV).
Existen varios retos en cuanto al control autónomo de estos sistemas, desde las altas no linealidades
inherentes a la variación con respecto al tiempo de la dinámica del sistema sometido a efectos
hidrodinámicos y a perturbaciones.
Se pueden encontrar en la literatura existente diferentes enfoques destinados a solucionar estos
problemas, tales como control robusto, control en modo deslizante, control inteligente, control
adaptativo, etc.
En el presente trabajo exploraremos el desarrollo de un algoritmo de control deslizante para el
seguimiento de trayectoria en una aplicación al vehículo submarino del tipo ROV modificado AC-ROV.
El método de control en modo deslizante tradicional puede ser presentado como la aplicación de una
señal de control conmutando a alta frecuencia que consigue llevar el estado del sistema a la
denominada superficie de deslizamiento y una vez en ella mantenerlo ante posibles allí a pesar
perturbaciones externas. La principal ventaja del control por modos deslizantes es que aporta robustez
ante perturbaciones, tanto internas como externas, cuando estas tengan cotas conocidas.
1.2. Motivación
En los sistemas de guiado tradicionales de los ROV en los cuales se hacía una transformación directa de
la trayectoria deseada introducida por el operador a través de un joystick a las actuaciones de los
propulsores existían problemas de respuesta brusca, falta de resolución y precisión, probablemente
debidos a la dinámica compleja del sistema. Esto ha motivado la creación de aplicaciones de piloto
automático para el seguimiento de las trayectorias deseadas por el operador.
De la misma forma y tal como se menciona con anterioridad el desarrollo de esta aplicación de control
autónomo está limitada por las no linealidades e incertidumbres del sistema así como las
perturbaciones, esto sugiere la implementación de un controlador que ofrezca robustez a pesar de
estos problemas.
Es de esta forma que surge la necesidad de investigar sobre la aplicación de modos de control
deslizante para aplicaciones de control autónomo en vehículos submarinos de tipo ROV.
6
1.3. Objetivos
El objetivo del presente proyecto es desarrollar matemáticamente un algoritmo de control en modo
deslizante de primer y segundo orden específico para para su aplicación sobre un vehículo submarino
de tipo ROV.
Se pretende demostrar su viabilidad para este tipo de aplicación, eliminando los problemas inherentes
de este tipo de controlador como puede ser el chattering.
Demostrar también su robustez a través de la simulación y de la experimentación, en determinados
ensayos frente a distintas situaciones adversas como incertitud y variación de parámetros de la planta,
perturbaciones exteriores y ruido blanco en las mediciones del estado.
Sobre todo el objetivo prioritario de este trabajo es demostrar la robustez del modo deslizante frente a
sistemas indeterminados, es decir que el sistema a partir del cual se elabora el controlador sea tan solo
una aproximación del sistema de la planta. La razón es que uno de los puntos fuertes del modo
deslizante es que aumenta su precisión cuanto menor es el paso de integración. Para aprovechar esto
deberemos reducirlo lo máximo posible.
Cuando se programe el controlador en un micro controlador, el paso de integración se traducirá en el
tiempo de computación de cada ciclo del programa del controlador, este tiempo de computación
dependerá de varios factores como pueden ser los tiempos que se tarda en actualizar los datos de los
sensores para obtener la información sobre el estado de la planta, o los tiempos de respuesta de los
accionadores, pero estos siempre se podrían reducir y el factor que limitaría el tiempo de ciclo del
controlador seria precisamente el tiempo que invierte el micro en el cálculo de la acción de control.
En este cálculo intervienen matrices y vectores grandes que pueden suponer un coste computacional
alto. En conclusión lo que se pretende es reducir este coste computacional linealizando el sistema a
partir del cual se elaborara el controlador, siendo este más sencillo, a costa de reducir el conocimiento
del sistema a controlar y así explotar los puntos fuertes del control en modo deslizante, frente a otras
soluciones para este modo existentes en la bibliografía.
Para cumplir estos objetivos generales, habrá que ir cumpliendo paulatinamente unos sub-objetivos u
objetivos parciales:
En primer lugar, para hacernos una idea de las aplicaciones del control en modo deslizante sobre
vehículos submarinos hacemos una búsqueda de información, consultando la bibliografía existente
sobre este tema y los artículos que contengan aplicaciones similares, el objetivo es hacer un estado del
arte de este tema concreto, para intentar aportar algo nuevo a este campo.
Después de asimilar todos los conceptos teóricos tanto del controlador como de la planta, tendremos
que lograr elaborar un modelo matemático particular de nuestro robot y de nuestro controlador
adaptado a el, que cumpla todas las especificaciones que nos hemos marcado.
Luego el objetivo será testar el conjunto controlador-planta de la forma más realista posible con el fin
de conseguir una respuesta estable y robusta sin que haya ni rastro del chattering en la señal que
controle los propulsores de robot, para asi asegurar su buen funcionamiento.
Una vez eliminado el chattering deberemos testar el controlador directamente sobre el robot real y
repetir los ensayos de robustez con el objetivo de demostrar las virtudes del modo deslizante
directamente sobre la plataforma experimental real que es el AC-ROV.
7
1.4. Metodología y Etapas
En un primer lugar se procederá a la documentación sobre la mecánica de los vehículos marinos, más
concretamente los submarinos, y también sobre la teoría general del control en modo deslizante tanto
de primer como de segundo orden a partir de las fuentes bibliográficas proporcionadas. Para finalizar
esta fase de documentación buscaremos artículos relacionados con las diversas aplicaciones en control
automático del control en modo deslizante y más concretamente sobre las aplicaciones a robots
submarinos, reuniendo así una bibliografía de base y haciéndonos una idea del estado del arte.
En la segunda etapa: Matematización; procederemos al desarrollo matemático de los algoritmos tanto
del controlador como de la planta para poder simular su comportamiento, adaptando los algoritmos de
control en modo deslizante a las características de nuestra aplicación.
Después procederemos a la simulación en el entorno matlab-simulink del comportamiento del conjunto
controlador-robot (planta), testando así los algoritmos desarrollados en la etapa anterior, sintonizando
el controlador y obteniendo los resultados de la simulación en el escenario nominal, frente a
perturbaciones, frente a ruido blanco en la medición del estado y frente a incertidumbre y variación de
parámetros de la planta.
Posteriormente, una vez eliminado el “chatering” y comprobado en simulación que el controlador no
supone un riesgo para los accionadores del robot, se procederá a la implantación del controlador en el
micro controlador del robot a través del lenguaje C++. Y se procederá a realizar los mismos test de
robustez de la simulación sobre el robot para verificar su comportamiento.
1.5. Estructura de la Memoria
Para empezar repasaremos los conceptos previos necesarios para entender el desarrollo del controlador,
estos son mayormente: la mecánica general de los vehículos marinos, y el control en modo deslizante,
de primer y segundo orden. Posteriormente entraremos en materia describiendo nuestro vehículo
submarino, el AC-ROV y en especial pormenorizaremos en sus accionadores y después, a partir de las
características particulares de nuestro robot, haremos las simplificaciones pertinentes al modelo
dinámico para elaborar el modelo de la planta. Una vez obtenida el modelo de la planta realizaremos
el desarrollo del controlador, comenzando por linealizar el modelo de referencia y aplicando la teoría
del modo deslizante obtendremos tanto el algoritmo de control de primer orden como el de segundo.
Cuando se hayan desarrollado los algoritmos de control, mostraremos las pruebas realizadas: primero
ilustrando su implementación y los resultados obtenidos en el entorno de simulación matlab-simulink y
posteriormente en el robot real.
8
2. Análisis y Modelado del Sistema
2.1. Estado del Arte. Conceptos Previos
2.1.1. Control en Modo Deslizante
Control en modo deslizante simple (SSMC)
El método de control en modos deslizantes tradicional (Simple Sliding Mode Control: SSMC) puede ser
presentado como la aplicación de una señal de control conmutando a alta frecuencia que consigue, en
primer lugar, llevar el estado del sistema a un hiperplano σ = 0 denominado superficie de
deslizamiento y, en segundo lugar, una vez en ella mantenerlo ahí ante posibles perturbaciones
externas y converger a través de ella al punto de equilibrio deseado (Figura 3). Dicha superficie de
deslizamiento será definida por el diseñador con el objeto de que el estado cumpla las especiaciones
deseadas. La principal ventaja del control por modos deslizantes es que aporta robustez ante
perturbaciones, tanto internas como externas, cuando estas tienen cotas conocidas.
Por desgracia, este método posee un par de restricciones importantes. En primer lugar, el grado relativo del sistema, que puede definirse como el número de veces que hay que derivar la función que describe la superficie de deslizamiento (σ(x, u)) para que la señal de control aparezca explícitamente, debe ser uno. En segundo lugar el efecto “chattering” provocado por la conmutación de alta frecuencia de la señal de control puede ser muy perjudicial en determinadas aplicaciones prácticas y se ha visto a menudo como el principal argumento para desaconsejar este método. Por ejemplo, en la implantación de este método en el control de robots y otros sistemas mecánicos, ya que puede causar vibraciones capaces de excitar la frecuencia fundamental del sistema con desastrosos resultados o provocar el deterioro de las partes móviles por efecto de la fatiga. Es posible suavizar la ley de control a costa de perder precisión [3].
Vamos a realizar una pequeña descripción matemática del control en modo deslizante, describiendo sus características dinámicas y estudiando la convergencia y la estabilidad del mismo para un sistema típico. Supongamos que el sistema a controlar es un sistema genérico no lineal con una forma como la descrita por ecuación:
( 1)
Tal que, si denominamos al vector , entonces, y son funciones no lineales que
cumplen que , es decir, están acotadas y su cota es conocida. Y siendo el objetivo del
controlador estabilizar el sistema entorno al punto de equilibrio
.
Figura 3: Etapas del SSMC
9
Definiremos la variable de deslizamiento (sigma) como:
Llamaremos matriz de deslizamiento a:
Se desea reducir el orden del sistema de forma que el estado cumpla la ecuación:
Correspondiente a la de un sistema de primer orden, a la que llamaremos superficie de deslizamiento. Pudiendo agrupar la ecuación (3) de la forma:
Del estudio de la dinámica del sistema en la superficie de deslizamiento y la estabilidad del controlador en la convergencia a dicha superficie, se deducirá la ecuación utilizada por el algoritmo de control (Este estudio y la deducción de esta ecuación de control se encuentran en el apéndice 3):
Como se puede ver esta ecuación está formada por dos términos, el control equivalente y el control
discontinuo que se basa en la función discontinua . De forma que:
En conclusión, el control modo deslizante consiste en alcanzar después de un corto transitorio, cuya
estabilidad se demuestra en el apéndice 3, la superficie de deslizamiento, es decir, que se cumpla la
condición , una vez en la superficie de deslizamiento la convergencia al punto de equilibrio
deseado no depende de los parámetros del sistema a controlar sino de únicamente de los parámetros
de diseño del controlador. Es aquí donde reside el punto fuerte del modo deslizante, en la robustez
frente a la variación y la incertidumbre de los parámetros del sistema, es decir, frente a
indeterminaciones del sistema, siempre y cuando estas estén acotadas, lo que permite desarrollar un
controlador sin un conocimiento exhausto del sistema a controlar. Otra ventaja importante del
control en modo deslizante es que la precisión en régimen permanente del deslizamiento
( ) es del orden del paso de integración ( ) [2].
De la misma forma que se han demostrado las cualidades del modo deslizante en un sistema no lineal
genérico se pueden demostrar también fácilmente para un sistema lineal genérico con una ecuación
como la siguiente:
10
Sin entrar en detalle en la demostración, si definimos la superficie de deslizamiento como la ecuación
(5):
Derivando nos quedara:
Y despejando obtendremos la función del control equivalente:
De forma similar a la vista en el caso del sistema no lineal, obtendremos que para cumplir las
condiciones de convergencia asintótica el control discontinuo será de la forma:
Quedando la función de control en modo deslizante para un sistema lineal genérico como:
Para poder hacerse una mejor idea del funcionamiento y las virtudes del control deslizante, en el
apéndice 4, se desarrolla un ejemplo de este tipo de control sobre un sistema trivial.
Como ya se ha dicho anteriormente y también se puede ver en el ejemplo, existe una señal de alta frecuencia, el “chattering” que representa el mayor problema del control por modo deslizante, ya que, como ya se ha dicho, esta conmutación de alta frecuencia puede producir vibraciones, representando un riesgo grande para los actuadores de la mayoría de robot convencionales porque produce el deterioro de los mismos por efecto de la fatiga [3]. En este proyecto vamos a estudiar soluciones para solucionar este problema, que atenúen o hagan desaparecer el “chattering”, previamente a la implantación de este método de control en el robot.
La primera solución y la más sencilla es sustituir la función por otra continua, con lo que se
consigue un resultado más suave, en lugar de la función se puede utilizar varias, las más
utilizadas son la función saturación y la función tangente hiperbólica (figura 4):
11
Figura 4
A continuación comparamos dos gráficas, la primera (figura 5) muestra los resultados obtenidos en el
ejemplo del apéndice 4 con la función y la segunda (figura 6) los resultados obtenidos en el
mismo ejemplo con la función ; en el controlador:
Figura 5: SSMS con función : Posición y velocidad, plano de fase y señal de control
Figura 6: SSMS con función : Posición y velocidad, plano de fase y señal de control
Se puede observar como las transiciones son más suaves y sobre todo que además desaparece el
“chattering”; todo ello sin perder robustez frente a incertitud de parámetros.
La segunda solución para eliminar el chattering es algo más compleja, consiste en la implementación
de control deslizante de orden superior. Este tipo de controlador será descrito en la siguiente sección.
12
Control por modo deslizante de orden superior (HOSMC)
La idea subyacente del control en modo deslizante de orden superior es controlar términos de orden
superior de la superficie deslizante imponiendo no solo que se anule la función que la define ( )
sino también sus primeras derivadas:
A esta ecuación la denominaremos colector de deslizamiento y no superficie de deslizamiento como antes. Este método preserva y generaliza las principales ventajas del control por modo deslizante tradicional. Además se mejora notablemente la precisión alcanzada en el control (ya que ahora
( ) será del orden ( ).) y se eliminan las restricciones que limitaban a modo deslizante simple:
desaparece el efecto “chattering” y es posible controlar sistemas con grado relativo .
En este sentido definiremos el orden de deslizamiento ( ) será el número total de derivadas continuas
de (incluyendo cero y uno) en la proximidad del modo de deslizamiento, el grado de deslizamiento caracterizara la suavidad de la dinámica en la vecindad del modo.
Se convierte el controlador entonces en un sistema dinámico de orden , donde el vector de variables
de estado será el formado por y sus derivadas, tal que, tendrá que satisfacer las restricciones de la
ecuación 31, y lo denominaremos controlador deslizante de orden . El mayor problema de los HOSMCs es que para su desarrollo aumenta la cantidad de información
necesaria, si en el SSMC solo necesitabas conocer en los de grado superior necesitas que estén
disponibles sus sucesivas derivadas. Solo hay una excepción, un tipo de HOSMC de segundo orden,
llamado “algoritmo super-twisting”, que solo necesita la medida de (será el que utilicemos en
nuestra aplicación práctica). La diferenciación de supone un problema, ya que, de la misma forma que crecía la precisión del controlador en régimen permanente, el error de diferenciación crecerá
también exponencialmente con el grado del controlador, de una forma proporcional a , donde
será el orden de diferenciación y el máximo error en la medida de . En nuestro caso desarrollaremos un controlador en modo deslizante de orden 2 (2OSMC), es decir con
, que deberá cumplir que . Es condición necesaria para el desarrollo del controlador
que exista derivada de es decir que sea diferenciable. Dependiendo del grado relativo del sistema
(para diferenciarlo del orden del deslizamiento) a controlar, debemos considerar dos casos:
a) El grado relativo del sistema , es decir,
b) El grado relativo del sistema , es decir,
Si se cumple a) el problema de control se puede resolver por medio del modo deslizante de primer
orden, sin embargo se puedo usar también el modo deslizante de segundo orden con el fin de eliminar
el “chattering” (Sera lo que hagamos). De tal forma que la variable de control sera la salida de algún
sistema dinámico de primer orden. Como por ejemplo considerando la primera derivada del control de
la planta como la variable real de control. Así un controlador discontinuo de llevará la
variable de deslizamiento a cero manteniendo en un modo deslizante de 2ºorden, tal que,
aunque sea discontinuo la señal de control de la planta será continua, eliminándose así el
“chattering”. Si se cumple b) se deberá elegir un modo deslizante de orden , tal que, [9].
13
En el apéndice 5 podemos ver el planteamiento genérico de un controlador de segundo orden y las condiciones que tiene que cumplir para eliminar el chattering, a partir de la definición de un sistema y de una variable de deslizamiento genéricos y de la ecuación de las dos siguientes derivadas de la variable de deslizamiento.
La conclusión será, que si las constantes , , , están determinadas para cumplir la condición de convergencia a la variedad de deslizamiento en un tiempo finito. Se puede llegar a que, asumiendo que
; en una pequeña vecindad de la región el sistema estará descrito por:
1. Si el grado relativo es uno.
2. Si el grado relativo es dos.
Existen, en la literatura, varios algoritmos que cumplen con las especificaciones anteriormente enunciadas para la eliminación del chattering. No los enunciaremos en esta sección, ya que el objetivo de la misma era solamente dar una idea general de la teoría detrás de estos algoritmos. Más adelante una vez descrito el sistema a controlar, definiremos los algoritmos que vallamos a utilizar tanto en la simulación como en la implementación práctica [2].
14
2.1.2. Mecánica General de Vehículos Marinos
En este capítulo daremos una visión general de como modelar la mecánica de los vehículos marinos, y
concretaremos estas descripciones sobre los vehículos submarinos, para tener una base de
conocimiento de cara a comprender el desarrollo del controlador, con sus todas sus transformaciones y
simplificaciones.
El estudio de la mecánica de los vehículos submarinos, como el de otros vehículos, se puede dividir en
dos partes: La primera, a la que llamaremos Cinemática, tratara solo sobre los aspectos geométricos
del movimiento y la segunda, llamada Dinámica, tratara sobre el análisis de las fuerzas que causan este
movimiento.
Empezaremos hablando de la Cinemática, que tratara sobre la geometría del movimiento, haciendo
referencia a los sistemas de referencia utilizados, sus coordenadas y las relaciones entre ellos.
DESCRIPCIÓN CINEMATICA
Para empezar definimos los sistemas de referencia y sus coordenadas. Los sistemas de referencia
usados serán dos:
SISTEMAS DE REFERENCIA Y COORDENADAS
1. BODY (b-frame): Que será el sistema de
referencia fijo al vehículo que podemos observar en
la figura 1 formado por los ejes , y . Este
sistema de referencia se moverá junto con vehículo,
tanto en la traslación como en la rotación del
mismo. El origen de este sistema de referencia
suele coincidir con el centro de gravedad, cuando
este está en el plano principal de simetría, y los
ejes , y se eligen para que coincidan con
los principales ejes de inercia y suelen ser definidos
como:
: Eje longitudinal (dirigido de popa a
proa)
: Eje transversal (dirigido de babor a estribor)
: Eje normal (Dirigido de arriba a abajo)
2. NED (n-frame): Este sistema de referencia, llamado así por sus siglas en inglés: North-East-
Down, está definido relativo a la referencia elíptica de la tierra. Es el sistema de referencia que usted
usa en su vida cotidiana. Se define suponiendo un plano tangente a la superficie de la tierra que se
moverá con el vehículo, pero que tendrá sus ejes apuntando en distinta dirección que los del b-frame.
En este sistema de referencia el eje x apuntara hacia el norte geográfico, el eje y hacia el este y el eje
z apuntara hacia abajo, normal a la superficie de la tierra. Este sistema de referencia se puede
referenciar al otro sistema de referencia fijo en el centro de la tierra a través de dos ángulos
denominados longitud y latitud.
Para un vehículo marino actuando en un área local podemos suponer constante la longitud y la latitud y
usar el plano tangente a la superficie fijo a la tierra para la navegación.
Figura 1: Variables de movimiento
15
Bajo estas suposiciones podremos suponer el n-frame como sistema de referencia fijo y el b-frame
como un sistema de referencia móvil solidario al vehículo.
Así definiremos las variables de movimiento, para vehículos submarinos se considera que el vehículo
tiene 6 grados de libertad (degrees of freedom: DOF), 6 coordenadas independientes que serán
necesarias para determinar la posición y la orientación del vehículo. Las primeras tres coordenadas y
sus derivadas temporales corresponden a la posición y al movimiento de traslación a lo largo de los ejes
, y del sistema de referencia fijo, y las tres últimas coordenadas y sus derivadas temporales serán
usadas para describir la orientación (Utilizando los ángulos de Euler) y el movimiento de rotación. En
los vehículos marinos estas coordenadas se definen como surge, sway, heave, roll, pitch y yaw.
Al considera el n-frame como vector fijo, definiremos las coordenadas correspondientes a la posición y
la orientación absolutas en el n-frame y las correspondientes a las velocidades lineares y angulares
relativas en el b-frame. Resumiremos las coordenadas en la siguiente tabla:
Tabla 1: Notación utilizada para las coordenadas en vehículos submarinos
DOF Nombre Fuerzas y momentos (b-
frame) Velocidades lineares y angulares (b-frame)
Posición y orientación (n-frame)
1 Surge X u x
2 Sway Y v y
3 Heave Z w z
4 Roll K p 5 Pitch M q 6 Yaw N r
A partir de estas coordenadas definiremos los siguientes vectores:
Tabla 2: Definición de vectores en sus correspondientes sistemas de referencia
Posición en el N-frame:
Orientación (Ángulos de Euler) en N-
frame:
Velocidad lineal en B-frame:
Velocidad angular en B-frame:
Fuerzas en B-frame:
Momentos en B-frame:
Siendo el espacio euclideo de dimensión 3, y el espacio toroidal de dimensión 3 en donde los
ángulos están definidos de . Con estos vectores definiremos nuestros vectores principales del
sistema que serán:
,
16
Donde definirá la posición y la orientación del vehículo submarino vista por el n-frame, su velocidad
vista desde el b-frame y las fuerzas y momentos que actúan sobre el vehículo vistas desde el b-frame.
La conclusión más importante que debemos sacar de este apartado es que la posición y la velocidad del
vehículo están referenciadas a distintos sistemas de referencia, por lo que no podremos calcular la
velocidad haciendo simplemente la derivada temporal de la posición.
En esto se basa el estudio de la cinemática del vehículo, en la descripción geométrica de la relación
entre estos dos vectores, esta operación se puede hacer por medio de los ángulos de Euler o por
cuaternios, en este trabajo lo haremos por el primer método. A continuación procederemos a describir
esta relación entre el NED y el BODY [1].
TRANSFORMACION DE EULER
Para empezar tenemos que definir la matriz de rotación entre un sistema de referencia y otro. En
general la matriz de rotación entre dos sistemas y será denotada como . Esta matriz será
ortogonal y hará la trasformación de un vector de velocidad descompuesto en un sistema de referencia
de inicio a otro sistema distinto de destino de la forma:
Por lo tanto la matriz de rotación entre el n-frame y el b-frame será denotada como . Para definir
esta matriz usaremos los ángulos de Euler: roll( ), pitch( ) y yaw( ), y así descompondremos en el
NED el vector de velocidad referenciado al BODY. Tal que la matriz de rotación será función de los
ángulos de Euler:
La obtención de esta matriz de rotación se demuestra en el apéndice 1 el resultado será:
Para ángulos pequeños , y , la expresión anterior se puede aproximar como [1]:
17
TRANSFORMACION DE VELOCIDAD LINEAL
Una vez tenemos la matriz de rotación, podemos descomponer el vector de velocidad lineal en el b-
frame en el n-frame como:
Donde será el vector de velocidad en el n-frame ya que es la primera derivada
temporal de la posición en el n-frame . La transformación inversa de velocidad será [1]:
TRASFORMACION DE VELOCIDAD ANGULAR
La velocidad angular en el b-frame y el vector de velocidades de Euler (primera
derivada temporal de la orientación en el n-frame): se relacionaran a través de la
matriz de acuerdo con:
Se podría demostrar que la matriz de transformación será:
Donde . Es importante tener en cuenta que la matriz no es una matriz ortogonal,
en consecuencia,
, además esta matriz está indefinida para . Para vehículos
marinos de superficie (barcos) esta singularidad no supone un problema pero para vehículos submarinos
si lo es, ya que se puede actuar cerca de esta ella. Para resolver este problema hay dos soluciones la
primera es utilizar dos representaciones por ángulos de Euler cada una con distintas singularidades y
conmutar entre ellas para eliminar el punto singular y la otra solución es utilizar la representación por
cuaternios.
Bajo el supuesto de ángulos pequeños , y , de la misma forma que hacíamos con la matriz
, podemos linealizar la matriz simplificándola a [1]:
18
ECUACION CINEMÁTICA (6 DOF)
Resumiendo los resultados de esta última sección, podemos expresar la relación geométrica entre los
vectores de velocidad (lineal y angular) descompuestos en el b-frame y los vectores de velocidad
(lineal y angular) descompuestos en el n-frame (primeras derivadas temporales de los vectores de
posición y orientación en el n-frame) en la siguiente ecuación, que llamaremos ecuación cinemática del
sistema:
Como se puede observar esta ecuación es no lineal, pero a través de las ecuaciones 7 y 12, donde
suponemos ángulos pequeños, se podría linealizar [1].
DESCRIPCION DINAMICA
ECUACION DE LA DINAMICA EN 6 DOF
El estudio de la dinámica de un vehículo marino consiste en el análisis de las fuerzas que actúan sobre
él y causan su movimiento. En este apartado haremos una pequeña descripción teórica de la dinámica
de estos vehículos simplemente para dar una noción principal de los distintos elementos que
intervienen en ella, sin pormenorizar en el cálculo de los mismos ni en el desarrollo de la ecuación.
Al contrario que en la sección anterior, en la que desarrollamos la ecuación de la cinemática, aquí
mostraremos la ecuación general de la dinámica en el b-frame y haremos una breve descripción de
cada uno.
La ecuación general de la dinámica en 6 DOF será:
Como en el apartado anterior será el vector de velocidad lineal y angular descompuesta en el b-
frame y el vector posición y orientación en el n-frame, además será la primera derivada temporal
del vector de velocidad en el b-frame, es decir, la aceleración del vehículo descompuesta en el b-
frame y como también hemos visto en el apartado anterior será el vector de fuerzas y momentos
ejercidos sobre vehículo por parte de los accionadores, es decir, que en nuestro caso será el vector de
variables de control. Los demás vectores y matrices serán descritos cada uno en su apartado.
19
MATRIZ DE INERCIA TOTAL DEL SISTEMA:
El desarrollo de la matriz de inercial total del sistema se basa en la formulación de Newton-Euler, la
cual no describiremos en este proyecto. Solo haremos una pequeña descripción de estas matrices. En
primer lugar es necesario mencionar que se la denomina matriz total porque es la suma de dos partes:
la matriz de inercia del solido rígido (Rigid Body = RB) , y la matriz de inercia de la masa añadida
. Cumpliendo que:
Siendo una matriz denominada matriz semi-simétrica de un vector, de forma que, si es un vector
perteneciente a , tal que, la matriz semi-simétrica estará definida como:
Entonces expresaremos la matriz como:
Donde es la masa del vehículo, el vector de posición del centro de gravedad respecto del b-frame
e .Para más información sobre el desarrollo de la matriz se puede consultar el apéndice 2.
Como se ve esta matriz recoge la relación de los términos de masa e inercia en las 6 coordenadas
espaciales.
La matriz de inercia de la masa añadida recogerá estos términos también, pero no referentes al solido
rígido sino al fluido que lo rodea, ya que, cuando el vehículo se mueve en el seno de un fluido,
desplaza una cierta cantidad de este. Este es el significado de la matriz de inercia de la masa añadida,
pero para su cálculo es imposible proceder como haríamos para la matriz de inercia ya que como se
puede intuir, es imposible determinar datos como la posición del centro de gravedad, la masa o el
momento de inercia de la masa añadida.
Para su cálculo existe un método basado en la mecánica Lagrangiana a partir de las energías cinetica y
potencial del fluido desplazado, si bien no lo desarrollaremos en este proyecto.
MATRIZ TOTAL CENTRIPETA-CORIOLIS:
La matriz total centrípeta-coriolis se basa también en la formulación de Newton-Euler (Apéndice 2), al
igual que la matriz de inercia, la matriz centrípeta-coriolis también se divide en dos partes: la del
solido rigido y la de masa añadida y . Cumpliendo que:
20
La expresión de la matriz centrípeta-coriolis rígida en el cuerpo será:
Siendo y los vectores de velocidad lineal y angular en el b-frame respectivamente, tal que:
y
. La matriz centrípeta-coriolis de la masa añadida se
calculara de forma similar a la matriz de inercia de la masa añadida.
MATRIZ TOTAL DE AMORTIGUAMIENTO:
La matriz de amortiguamiento contiene todos los términos dinámicos relacionados con el
amortiguamiento del vehículo, debido a diferentes causas.
Amortiguamiento Potencial : Este efecto es el causado cuando el vehículo es forzado a
oscilar en la frecuencia de excitación (frecuencia fundamental?) en ausencia de olas incidentes
exteriores. La contribución de estos términos comparados con otros términos disipativos con el
amortiguamiento viscoso suele ser despreciable.
Fricción Superficial : La fricción superficial linear debida a la teoría de capa limite
laminar es muy importante cuando consideramos los efectos debidos al movimiento en baja
frecuencia del vehículo. Por lo tanto este efecto debería ser considerado cuando se diseña un
sistema de control para el vehículo. Además de la fricción superficial linear existirá una
contribución en alta frecuencia debida a turbulencias en la capa límite.
Amortiguamiento por Deriva de Olas : Este amortiguamiento puede ser interpretado
como una resistencia añadida en vehículos de superficie que avanzan contra las olas. Este
término es el que tiene una contribución más importante en el surge(x) para la mayoría de
estados del mar. Esto es debido al hecho que las fuerzas por deriva de olas son proporcionales
al cuadrado de la altura significativa de la ola. El amortiguamiento por deriva de olas en el
sway(y) y el yaw() es pequeño relativamente a amortiguamiento debido a la aparición de
remolinos.
Amortiguamiento por Remolinos : El amortiguamiento por formación de remolinos
representa una importante componente de amortiguamiento viscoso. Debido a que con el
movimiento de un sólido completamente sumergido en un fluido viscoso se originan fuerzas de
fricción que harán al sistema no conservativo respecto de la energía. Estas fuerzas de fricción
serán función lineal de la velocidad del sólido.
21
De esta forma el amortiguamiento total será:
Los distintos términos de rozamiento contribuyen de forma lineal y cuadrática al amortiguamiento
total, por lo que se suelen separar estos efectos. Expresándose el amortiguamiento total como:
Las fuerzas por amortiguamiento se expresaran como una fuerza resultante lineal aplicada en el centro
de fuerzas disipativas (CD), estas fuerzas serán iguales al producto presión por área, así que dependerá
de la sección del cuerpo en las direcciones , y , y de la magnitud de dichas fuerzas.
En este proyecto solo nos interesarán los parámetros del amortiguamiento lineal, por causas que
explicaremos más adelante. Esta matriz se podrá expresar como:
Donde es la fuerza de fricción lineal en el eje x del b-frame debida a la velocidad .
FUERZAS Y MOMENTOS DE RESTAURACION:
Además de las fuerzas relacionadas con la masa y el amortiguamiento los vehículos marinos se ven
sobre todo afectados por las fuerzas de gravedad y de flotabilidad. En la terminología hidrodinámica a
estas fuerzas se las denomina fuerzas de
restauración.
En los vehículos submarinos (cuerpo
sumergido completamente) la fuerza de
gravedad actúa sobre el centro de
gravedad (centre of gravity: CG) definido
por
y la fuerza de
flotabilidad actúa de forma similar sobre
el centro de flotabilidad (centre of
buoyancy: CB) definido por
.
Figura 2: Accion de las fuerzas de restauración
22
Siendo la masa del buque incluyendo el agua en el espacio de libre flotación, el volumen del fluido
desplazado por el vehículo, la aceleración de la gravedad (positiva hacia abajo) y la densidad del
agua. Las fuerzas del peso y la flotabilidad serán respectivamente:
Tal que:
Teniendo en cuenta que el eje z está tomado como positivo dirigido hacia debajo, de forma que, la
gravedad es positiva y la flotabilidad negativa. Estas dos fuerzas están inicialmente descompuestas en
el sistema de referencia fijo: n-frame, si aplicamos la transformación de Euler vista en el apartado de
cinemática para transformar estos vectores al b-frame, de la forma:
Aplicando estas transformaciones nos quedara el vector de la forma:
Este vector será objeto de diversas simplificaciones en función de las características de la aplicación
como puede ser en vehículos de flotabilidad neutra (mayoría de vehículos submarinos) en los que la
fuerza de gravedad será igual a la de flotabilidad, tal que, .
VECTOR DE LASTRE:
Algunos vehículos submarinos incorporan un sistema de lastre a través del bombeo de agua, es decir,
que además del vector de fuerzas de restauración, existirá otro vector de lastre que recogerá las
fuerzas debidas a la acción de este lastre, que serán las del peso del volumen de agua bombeado al
depósito usado como lastre.
No entraremos en una descripción detallada de esta componente de la dinámica del sistema porque en
nuestra aplicación concreta nuestro vehículo no incorporara lastre.
23
VECTOR DE PERTURBACIONES AMBIENTALES:
Es el que modela las perturbaciones del exterior, como puedes ser el viento, las olas o las corrientes.
En nuestro caso al tratarse ser vehículo submarino testado en una piscina, no tendremos en cuenta
este término.
CONCLUSIÓN: ECUACIONES DEL MOVIMIENTO EN 6 DOF
En conclusión el movimiento de un vehículo submarino se puede expresar en las ecuaciones 13 y 14,
como:
Estas ecuaciones y los términos que las constituyen pueden ser simplificadas de distintas formas
aprovechando las características particulares de cada vehículo como pueden ser las simetrías del
cuerpo [1].
Una vez definida lo que será la teoría en la que se basara nuestro modelo de la planta, debemos
introducir la teoría de lo que será nuestro controlador, este estará basado en el denominado control en
modo deslizante.
24
2.2. Descripción del AC-ROV
2.2.1. Descripción Física del AC-ROV. Accionadores.
El submarino de AC-ROV (figura 7) es un vehículo sub-actuado, ya que, el sistema de propulsión el cual
consiste de seis hélices impulsadas por motores de corriente continua, solo controla cinco grados de
libertad. Los motores 1, 2, 3 y 4 controlan simultáneamente las traslaciones a lo largo de los ejes e
y la rotación alrededor del eje (yaw). Los motores 5 y 6 se encargan del control de la profundidad y
de la rotación alrededor del eje (pitch). La rotación alrededor del eje (roll) no puede ser
controlada, ya que al estar los propulsores 5 y 6 alineados por el eje , es imposible ejercer momento
en ese eje, aun así sigue siendo de naturaleza estable debido a la distancia metacéntrica positiva del
ROV.
Figura 7: AC-ROV: a) Sistemas de referencia y b) fuerzas de propulsores en sentido positivo
El robot pesa 3 kg y tiene una forma de cubo con 203 mm de altura, 152 mm de longitud y 146 mm de
ancho. Para obtener las mediciones, nuestro prototipo está equipado con varios sensores: Una Unidad
de Medida Inercial, denominada 6 DOF IMU, determina el roll, el pitch y el yaw, junto con sus
respectivas velocidades y un sensor de presión permite hacer la medición de profundidad.
Para pre-procesar y transmitir los datos de los sensores al PC, se utiliza una placa de micro-controlador
(figura 8). En el PC, a partir de los datos recibidos, se calcula el estado del robot y el controlador
elabora una acción, fuerzas para ser ejercidas sobre el ROV, estas se traducen a las fuerzas ejercidas
por cada propulsor, posteriormente estas fuerzas se transforman en un nivel de voltaje a través de la
constante newton/volt, que equivaldrá a un número que la salida transformara en una señal de
25
PC
PPrroocceessaammiieennttoo ddee DDaattooss yy
LLeeyy ddee CCoonnttrrooll
Drivers de los Motores
66 CCaannaalleess
BBiiddiirreecccciioonnaalleess
AC - ROV
MMiiccrroo--
ccoonnttrroollaaddoorr
ddee aabboorrddoo
BBiiddiirreecccciioonnaall
eess
PPrrooppuullssoorreess IIMMUU
SSeennssoorr ddee
PPrreessiióónn
Cable de 40 metros
12 hilos 4 hilos
SSeennssoorreess
modulación por ancho de impulso (PWM). Estas 6 señales son la que salen del hardware de control y se
transmiten a los motores del AC-ROV a través del cable de sujeción de 40 m [19], [20].
La figura 8 muestra una vista esquemática
que resume los diversos componentes de
hardware del vehículo y sus interacciones.
Hay varios parámetros físicos del robot que
necesitan ser definidos, no porque vallan a
ser modificados en este proyecto en el que
solo desarrollaremos un controlador, sino
porque para hacer una simulación más
coherente con la realidad es conveniente
tenerlos en cuenta en la modelización de la
planta.
Estos parámetros están relacionados con la
propia física de los accionadores, ya que,
según veremos la salida del controlador será
el vector de fuerzas y momentos que deben
ejercerse sobre el robot, pero físicamente
estas fuerzas y momentos están supeditadas
a las limitaciones en los accionadores.
La primera y más evidente es la propia
posición y orientación de los propulsores en
el robot: como ya se ha mencionado antes,
como consecuencia de la posición de los
propulsores 5 y 6, no se ejerce momento
alguno en el eje dejando in-actuado el
giro en este eje (roll) independientemente
de que el controlador demande esa acción.
De la misma forma el resto de fuerzas y momentos que actuaran sobre el robot se relacionaran con las
fuerzas ejercidas por los propulsores a través de la geometría del mismo. Estas sencillas relaciones
geométricas entre la fuerza ejercida por cada propulsor y las fuerzas
Figura 8: Esquema de la arquitectura del hardware
Figura 9: Relación entre fuerzas realizadas por los propulsores y el vector de fuerzas y
momentos ejercidos sobre el robot: a) planta (plano ) y b) perfil (plano )
26
Figura 10: Curva de los propulsores. Histéresis
ejercidas sobre el ROV se pueden deducir del diagrama de la figura 9:
Teniendo en cuenta el sentido de las fuerzas, que , que es el valor de la
mitad de la diagonal de la sección del robot en el plano (b-frame) donde están los propulsores 1, 2,
3 y 4 y que es la longitud del ROV, se puede representar matemáticamente estas relaciones
geométricas en la denominada matriz de trasformación de los accionadores :
Tal que:
Es interesante destacar que en esa ecuación los dos vectores están descompuestos en el b-frame.
Además esta relación es de mucha importancia como veremos más adelante, ya que, evidencia que el
control de un grado de libertad puede implicar la acción de más de un accionador, y a su vez cada
accionador pueden estar efectuando acciones para controlar más de un grado de libertad
simultáneamente. A este fenómeno se le denomina acoplamiento, y puede representar un reto en el
momento en el que el control de un grado de libertad se vea afectado por el control de otro, ya que
representara un compromiso. Este efecto será especialmente notable durante el control simultáneo
de la profundidad y de la rotación en torno al eje y (pitch) ya que son dos grados de libertad
controlados exclusivamente por dos accionadores. Para hacer la simulación más realista es necesario
considerar este efecto.
En segundo lugar, otra serie de parámetros de los
accionadores que hay que tener en cuenta, son los
que nos dan una idea de la magnitud de la acción
ejercida por los mismos. Para entender este
modelado matemático de los propulsores es
importante tener en cuenta que en la simulación
el voltaje del motor de corriente continua será
representado por un número que representara la
modulación PWM de este voltaje. Como se puede
observar en la figura 10, existirá una constante
fuerza(N)/PWM (nº) (0.00625 aprox.), que será la
pendiente de la curva fuerza-Tensión (PWM) de
los propulsores en la zona lineal su importancia
reside en el hecho de que en el robot real la
fuerza ejercida por el propulsor es limitada, si se
les inyectase demasiado voltaje a los motores de corriente continua estos se quemarían por lo que
tendrá que existir un voltaje máximo. De la misma forma hay un voltaje mínimo por debajo del cual
existe una zona de mucha histéresis en el funcionamiento de los propulsores.
Esto sugiere que el funcionamiento de los propulsores deberá estar acotado en una determinada zona
denominada zona lineal (figura 10). Sin embargo a priori el controlador podría exigir la acción de
cualquier fuerza, por ello es importante, a la hora de modelar la planta para la simulación incluir al
27
menos el límite superior de fuerza de los propulsores. De otra forma el controlador jugaría con ventaja
en la simulación al poder ejercer cualquier fuerza sobre el robot.
Por último, otro parámetro importante a tener en cuenta, es la dinámica del propulsor, sin entrar en
gran detalle, es intuitivo que ese sistema formado por un motor de continua y una hélice en contacto
con el agua tendrá su propio comportamiento dinámico, y que en principio este será más lento que el
controlador, por lo que puede limitar por ejemplo la velocidad de variación de la acción de control.
Es importante destacar este aspecto ya que, en nuestro proyecto, nuestra señal de control llevara
consigo acoplada la señal de alta frecuencia, el chattering, esta señal de alta frecuencia llegara a los
accionadores, pero allí será filtrada por la dinámica de los mismos, así que la fuerza real que ejercerán
sobre el robot no manifestara directamente esta señal sino una componente derivada de la misma, que
si bien puede provocar cierta inestabilidad no tanta como el propio chattering.
Aun así el chattering sigue representando una amenaza ya que la variación brusca del nivel tensión
aplicado a un motor de corriente continua puede producir corrientes de fuga a los rodamientos, sobre
intensidades en los devanados y un comportamiento brusco del mismo que dañaría su mecánica.
En conclusión, hay tres efectos derivados de la geometría y los aspectos técnicos de los propulsores que
es importante tener en cuenta para probar el comportamiento del controlador: el acoplamiento, la
fuerza máxima ejercida y la dinámica de los mismos. En este proyecto los modelaremos también,
además de la dinámica del robot, para elaborar un modelo realista de la planta, ya que un factor
determinante del SSMC son sus efectos sobre los accionadores.
28
xd
x
x Mecánica u Accionadores u Controlador e
Figura 11: Esquema de la estructura del Sistema en bucle cerrado
2.2.2. Modelización del AC-ROV. Simplificaciones de la Planta.
En este apartado utilizaremos la teoría de la mecánica general de vehículos submarinos vista en el
apartado 2.1.1 y las características particulares de nuestro vehículo el AC-ROV y de sus accionadores
vistas en el apartado anterior 2.2.1 para elaborar un modelo matemático aproximado del robot para su
simulación en el entorno matlab simulink.
Este proceso de modelización de la planta lo dividiremos en dos partes, primero la modelización de la
dinámica del robot, y segundo la modelización del funcionamiento de los accionadores. De forma que
el sistema en bucle cerrado tenga la estructura del grafico de la figura 11:
Para realizar el modelo matemático de la mecánica del robot, realizaremos una serie de
simplificaciones a partir de las características particulares de nuestro robot. La característica que nos
permitirá despreciar un mayor número de términos será la velocidad a la que se desplaza nuestro robot,
que será muy baja.
Otra característica que nos permitirá simplificar bastante nuestras ecuaciones de la dinámica es la
posición de los centros de gravedad y de flotabilidad. Estos estarán alineados en la vertical con el
centro del sistema de referencia fijo en al cuerpo (b-frame), es más, este y el centro de gravedad
coincidirán.
Haciendo que el tensor de inercia del centro del origen del b-frame coincida con el tensor del centro
de gravedad , tal que . Además, también coinciden los ejes principales de inercia (ejes de
simetría del cubo por el que se aproxima el ROV) con los ejes del b-frame, anulando en este tensor de
inercia todos los términos que están fuera de la diagonal principal.
Partiendo de las ecuaciones 2.1.1.24 de la mecánica del sistema en 6 DOF [1]:
Simplificaremos los siguientes términos de acuerdo a las características particulares de nuestro robot
anteriormente mencionadas:
Planta
29
MECANICA
1. En la matriz ; despreciaremos los términos de inercia de la masa añadida, es
decir, , luego . Ya que el robot es muy pequeño y se mueve a velocidad
bastante baja por lo que la masa de agua desplazada por el vehículo (masa añadida) será muy
pequeña, por lo que el término de inercia de la masa añadida se puede considerar despreciable
frente al término de inercia del móvil.
2. Despreciaremos todos los términos centrípetos o de coriolis tanto del vehículo como de la masa
añadía, es decir, , esta simplificación deriva directamente de la baja velocidad a la
que se mueve el ROV.
3. Despreciamos los términos cuadráticos no lineales del amortiguamiento, es decir, ,
de forma que, .
4. Por ultimo despreciaremos el vector de lastre y el vector de perturbaciones ambientales, y , respectivamente, ya que, nuestro ROV no tiene ningún sistema de lastre y será probado en
una piscina, de forma que no incluiremos efectos como corrientes u olas en la modelación de la
mecánica del robot. Como veremos más adelante, sí que incluiremos perturbaciones en la
simulación pero lo haremos de otra forma.
En conclusión, las ecuaciones anteriores de la mecánica quedaran de la siguiente forma [19], [20]:
Como ya se ha dicho varias veces, la implementaremos en el entorno matlab simulink para simular el
controlador. Para su implementación renombraremos de la siguiente manera: , y ,
y despejando sus derivadas nos quedara:
Donde y serán nuestros vectores de variables de estado de nuestro sistema, y la salida será el
vector de posición respecto del b-frame, es decir: . Este será el sistema equivalente a la
mecánica del ROV, para el desarrollo de la ecuación y el código de matlab de la mecánica de la planta,
30
ver el apéndice 6. La figura resume el funcionamiento de este bloque:
En segundo lugar modelaremos el funcionamiento de los accionadores, este proceso será sencillo, ya
que usaremos solamente la matriz de transformación vista en el apartado 2.2.1 para modelar el
acoplamiento y la constante fuerza(N)/PWM(nº) vista en el mismo apartado para por medio de una
función de saturación acotar la acción máxima realizable por los accionadores. A mayores una función
de transferencia para simular el comportamiento dinámico de los accionadores. El funcionamiento del
bloque que simula el funcionamiento de los accionadores se corresponde con el esquema de la figura
12:
Figura 12: Esquema de funcionamiento de los accionadores
En el apéndice 7 se puede encontrar más información sobre el funcionamiento de los accionadores.
En conclusión, una serie de ecuaciones simularan el funcionamiento de los accionadores y otras el de la
planta, y estarán enlazadas entre sí. Es importante destacar que todas las variables que intervienen en
el modelo de los accionadores están referenciadas en el b-frame, la única variable que se referencia al
n-frame ya dentro del bloque de la planta es x1, ésta está siempre en el n-frame. Así pues, el modelo
del robot es coherente y se ajusta a la realidad de una forma muy aproximada.
ACCIONADORES
u u
31
2.3. Desarrollo Matemático del Controlador
2.3.1. Linealización del sistema.
El primer paso de cara a elaborar un controlador en modo deslizante será en este caso realizar una
linealización del sistema para desarrollar el controlador a partir de esta. El objetivo será aproximar la
ecuación 2.2.2.2 del sistema equivalente de la dinámica de la planta:
Por un sistema lineal aproximado como el de la siguiente ecuación:
Donde las matrices A, B y C son matrices constantes.
Antes de empezar el desarrollo de esta aproximación lineal, es muy importante explicar el porqué de
esta linealización, porque como se vio en el apartado 2.1.2 de conocimientos previos de control
deslizante, se puede desarrollar un control en modo deslizante a partir de un sistema a controlar no
lineal. Pero como se menciona en los objetivos de este proyecto, se pretende reducir el coste
computacional del programa de control reduciendo la complejidad matemática del controlador, y así
reducir el tiempo de ejecución de cada ciclo del programa y por lo tanto el paso de integración, a
costa del conocimiento del sistema, para explotar los puntos fuertes del modo deslizante que como
hemos visto en el mismo apartado 2.1.2 serán robustez en el control de sistemas indeterminados y
aumento de la precisión cuando disminuye el paso de integración.
Otra razón importante para plantear el sistema a controlar de esta forma es que el resultado es un
sistema de grado uno, pudiendo así probar el controlador en modo deslizante de primer orden, porque
como hemos visto es condición necesaria que el sistema sea de grado relativo uno para que se pueda
aplicar el algoritmo de control deslizante, esto determinara la elección de incluir el vector de la
velocidad del robot en el b-frame como variables de estado del sistema [3].
Y la otra razón de peso es el cálculo de la matriz de deslizamiento S, en la literatura existen diversos
métodos para el cálculo de esta matriz como veremos más adelante, pero el más sencillo desde el
punto de vista de sintonizar el controlador exige que el sistema a partir del cual se desarrolla el
controlador sea lineal y a mayores también se simplifica si ciertas matrices del sistema son lineales.
A continuación una vez explicados los motivos, procederemos a explicar la aproximación lineal. Como
se puede intuir, linealizar el sistema de la ecuación 2.2.2.2 pasa por linealizar y posteriormente hacer
constantes las matices y [5], [15].
32
Para empezar haremos constante la matriz es transformarla en una matriz equivalente constante
. El primer paso en este proceso seria linealizar la matriz , que como sabemos es función no lineal
de la orientación, linealizarla pasa por hacer desaparecer los senos y cosenos, y posteriormente
intentar hacerla constante. Siguiendo los pasos mostrados a continuación obtendríamos varias
aproximaciones de la matriz J, cada cual menos precisa pero más sencilla de calcular.
1. En principio tenemos la matriz vista en el apartado 2.1.1, es decir, completa. Si aplicamos
la suposición de que el ángulo (roll) de rotación alrededor de el eje es cero ( ), y que
el ángulo (pitch) alrededor del eje es muy pequeño ( ), podríamos obtener la matriz
siguiente:
Esta suposición sería muy realista ya que nuestro robot no tendrá variaciones en el roll por ser
estable metacéntricamente y por lo mismo la variación máxima que podrán causar los
accionadores en el pitch será de unos 15º grados. Además es considerablemente más fácil de
calcular que la matriz completa . Aun así no es lineal, ni mucho menos constante.
2. El siguiente paso en la simplificación de la matriz J será linealizarla. Para ello lo primero
estableceremos un convenio sobre la variación del yaw, este consistirá en lo siguiente:
El yaw solo podrá variar desde a , de forma
que cumpla la siguiente condición:
Es decir que si el robot quisiese girar por ejemplo 225º el
ángulo tomado por el controlador seria -135º. (Figura 13)
Esta limitación se establecerá con un bucle if dentro del
bloque del controlador (lo cual añade un leve coste
computacional).
Bajo esta limitación aproximaremos el coseno del yaw por una función lineal y el seno del yaw
lo consideraremos nulo al igual que el pitch, tal que:
Figura 13: Variación del yaw
33
Bajo estas condiciones se desprecian los elementos fuera de la diagonal principal y hacer que
los de la diagonal principal sean función lineal del yaw ( ).
Así la matriz resultante será:
La función que utilizamos para sustituir el coseno del yaw es lineal y se corresponde con las
rectas que más se aproximan a la curva del coseno. Podríamos aproximar el seno del yaw de la
misma manera pero se podría comprobar que para esta aplicación, el hecho de que esta matriz
J sea diagonal facilita el posterior cálculo de la matriz S de deslizamiento.
Así pues, en este caso consideramos
nulo el seno del yaw (aunque no sea
una buena aproximación). A pesar
de que esta matriz sí es lineal,
todavía no es constante, no obstante,
es una buena solución intermedia,
ya que, elimina las funciones
trigonométricas sin añadir
demasiada incertidumbre en los
elementos de la matriz principal.
3. Y para terminar, la siguiente simplificación que podríamos hacer, es suponer despreciable las
variaciones en el pitch y en el yaw, , es decir, que el n-frame y el b-frame fueran
paralelos en todo momento (nada más lejos de la realidad) de esta forma y con se puede intuir
la matriz anterior nos quedaría como la identidad . Esta es muy sencilla de calcular y es
constante para todo .
Pero tiene un problema: acumula mucha incertidumbre para los términos de la diagonal
principal, ya que, aproxima el coseno de por 1 siempre, y esto provoca bastante error cuando
está en el intervalo
ya que el coseno será negativo. Para solucionar este problema
podríamos introducir una pequeña corrección que no represente demasiado coste de
computación más. Haciendo que en este intervalo el coseno valga -1. Luego la matriz J se
aproximara por:
Figura 14: Aproximación seno y coseno en
34
Así aproximamos a groso modo todos los elementos de la diagonal principal a través de una
matriz lineal y casi constante (constante por intervalos).
Es difícil saber hasta qué punto compensa simplificar esta matriz a costa de la precisión, ya que, a
veces, por las características del programa y del micro controlador, una matriz más sencilla no implica
necesariamente menor coste computacional para operar con ella, aunque generalmente sea así.
En teoría de programación se define como un algoritmo eficiente aquel que tiene siempre menos coste
computacional que otro que no es eficiente independientemente del sistema en el que se ejecute el
algoritmo. La expresión que define la eficiencia de un algoritmo es función del tamaño del conjunto de
datos de entrada y, el tamaño de dicho conjunto a su vez puede ser función de uno o varios parámetros.
Pero no es objetivo de este proyecto evaluar el coste computacional de nuestro algoritmo así que solo
nos quedaremos con unas premisas básicas para cuantificar este coste:
Que las matrices sean diagonales tiene menos coste que si no lo son.
Que las matrices sean función lineal de una variable tiene menos costo que si son función no
lineal de varias variables.
Y por supuesto, que si son constantes tienen todavía menor coste.
Cuanta mayor cantidad de datos tengan las matrices más coste tendrá el algoritmo.
Como uno de los objetivos de este proyecto es probar la robustez del controlador frente a la
incertidumbre del modelo nos vamos a quedar con la última opción, suponiendo que es la que menor
coste computacional tiene (podría demostrarse que así es), luego finalmente elegiremos como
aproximación de la matriz de la ecuación correspondiente a la simplificación numero 3:
A continuación haremos un desarrollo parecido para hacer constante el vector . Este será:
Una buena ventaja en este caso es que el vector no es función de yaw ( ) y como sabemos del
desarrollo anterior, los ángulos del pitch ( ) y el roll ( ) pueden suponerse muy pequeños de forma
que:
Así ya podemos linealizar fácilmente la matriz sin cometer demasiado error, pero además por las
características constructivas de nuestro robot, el centro de flotabilidad y el de gravedad están
alineados en vertical y además el centro de masas lo hacemos coincidir con el origen del sistema de
referencia fijo al cuerpo (b-frame), así pues:
35
Entonces el vector se puede aproximar sin introducir demasiada incertidumbre por:
De cara a linealizar el sistema, es decir dejarlo como el de la ecuación 2.3.1.1, nos interesa expresar
este vector como combinación lineal de cierto vector y cierta matriz con el vector :
De forma que:
Así, con la linealización de la matriz J y el vector g podemos expresar el sistema de la ecuación 2.2.2.2,
por otro lineal representado por:
Si agrupamos vectores y matrices de la siguiente forma:
Podemos expresar el sistema como un sistema lineal como el de la ecuación 2.3.1.1:
36
2.3.2. Desarrollo del Controlador de 1er Orden
A partir del sistema lineal de la ecuación 2.3.1.1 y recordando lo visto en el apartado 2.1.2 de
introducción al control deslizante no nos será difícil desarrollar la ecuación del controlador. En primer
lugar definimos la superficie de deslizamiento:
Y en este punto introducimos la matriz de deslizamiento y el vector de error de estado , estos dos
parámetros serán los únicos conceptos novedosos que vamos a definir en este apartado.
Para empezar: le vector representará el error de estado, es decir la diferencia entre el vector de
variables de estado real y el deseado:
De la misma forma que el vector el vector de variables de estado deseadas será:
De esta manera es evidente, que dentro de nuestro controlador habrá que desarrollar también un
módulo para el cálculo de este vector a partir de la trayectoria deseada, este módulo es muy sencillo
pero dado que nos hará falta tanto para el controlador de primer orden como para el de segundo orden
no lo hablaremos de él en este apartado, si se desea información de en qué consiste consultar el
apéndice 8. Es conveniente hacer un apunte sobre la dimensión del vector de variables de estado
deseado, como es obvio al igual que el vector de variables de estado del sistema también será de
dimensión 12x1 y como consecuencia el vector de error también lo será.
En segundo lugar: la matriz será el parámetro que introduzca los polos deseados del sistema en bucle
cerrado, por lo que es un parámetro de vital importancia en el desarrollo del controlador. En realidad
en la literatura se pueden encontrar muchos métodos para el cálculo y desarrollo de la matriz S,
aunque los dos más importantes son:
Minimización cuadrática: Este método consiste en calcular la matriz a partir de otra matriz
, dicha matriz es una matriz de ponderación de estado, su función viene siendo darle más
fuerza al control de unas determinadas variable de estado en relación a otras en función de las
características deseadas de salida de nuestro sistema. Es decir, le da prioridad a reducir el
error de unas variables con respecto a otras según se decida.
Por ejemplo en nuestro sistema, la posición del robot es decir el seguimiento de la trayectoria
tiene prioridad sobre la velocidad del mismo, aunque esta también sea un conjunto de
variables de estado, así siempre y cuando no se comprometa la estabilidad del control se
pretenderá darle prioridad a reducir el error de la posición y orientación que a reducir el error
de la velocidad, sobre todo porque el cálculo de la velocidad deseada termina siendo una
aproximación de la real que se hace a partir de la evolución de la posición y orientación, a
causa de la incertidumbre introducida por aproximación de la matriz .
Con este método se puede realizar un control bastante robusto, pero el algoritmo de cálculo de
S a partir de Q puede ser bastante pesado e introducir un coste computacional alto. Es por ello
que desecharemos esta opción en pos de la siguiente [3].
37
Asignación robusta de auto-estructura: Este método consiste en elegir los auto-valores (polos)
deseados del sistema en bucle cerrado y utilizar un método de cálculo específico para calcular
la matriz S. Este método es bastante más sencillo cuando el sistema a controlar se supone
lineal de la forma:
Por lo tanto para el cálculo de nuestra matriz S despreciaremos la matriz C. Además este
método se ve beneficiado de simplificaciones importantes cuando las matrices A y B tienen
estructuras diagonales (están formadas por matrices diagonales como se puede ver en el a final
del apartado 2.3.1). Se simplifica el método hasta el punto que la matriz S acabara
dependiendo solamente de los auto-valores deseados y su cálculo será tan trivial como se
muestra a continuación [3]:
Si y son los vectores de polos deseados del sistema, tal que:
Entonces será igual:
Tal que:
De modo que la opción que elegiremos para el cálculo de la matriz S será esta, porque a pesar
de que pueda ser un método menos robusto, tiene un coste computacional muy bajo.
Una vez definidos el vector de error y la matriz de deslizamiento continuaremos con el desarrollo del
controlador. Como hemos visto la variable de deslizamiento será (vectores y matrices junto con sus
dimensiones):
Derivando, como la matriz es constante:
38
Y despejando obtendremos la ecuación del control equivalente:
Como se puede observar no es exactamente igual a la ecuación resultante de la teoría general de
control deslizante para sistemas de tipo lineal (ecuación 2.1.2.11). Añadiendo el control discontinuo la
ecuación completa del controlador en modo deslizante de primer orden nos quedara [3]:
Es necesario añadir que la parte fundamental del control es precisamente el control discontinuo, es lo
que le da al controlador su robustez frente a todas las incertidumbres del resto del algoritmo de
control. La ganancia del control discontinuo , es junto con los polos deseados en lazo cerrado el
parámetro que sintonizaremos en función de las necesidades para adecuar completamente nuestro
controlador a la aplicación práctica, y es también el parámetro que dimensiona el temido chattering,
cuanto mayor sea la ganancia mayor será la magnitud del chattering.
Sabiendo las dimensiones de los demás parámetros que interviene en la ecuación, es fácil intuir que
esta ganancia del control discontinuo será una matriz diagonal 6x6 que contendrá en los elementos de
la diagonal principal las ganancias de cada variable de control.
En la práctica haremos todas nuestras pruebas con la función tangente hiperbólica para probar la
eliminación del chattering así pues la función del algoritmo de control será:
Donde k será un escalar que determinara la
pendiente del cambio de signo, como podemos
ver en la gráfica de la izquierda donde se muestra
la función tangente hiperbólica, si la contante k
tiende a infinito la función tangente hiperbólica
se asemeja más a la función discontinua ,
mientras que si k se hace pequeño (siempre
mayor que cero) le cambio de signo será más laxo,
lo cual tampoco es demasiado conveniente ya que
se pierde robustez.
Para concluir este apartado, comprobamos que,
con este controlador, se cumplen los objetivos
que justifican la linealizacion del sistema:
Con un aumento moderado de la incertidumbre del modelo del sistema a partir del cual
elaboraremos el controlador reducimos bastante el coste o complejidad computacional.
-5 -4 -3 -2 -1 0 1 2 3 4 5-1.5
-1
-0.5
0
0.5
1
1.5
Figura 15: Evolución tanh(k·x) para valores de k
39
El sistema será a controlar será de grado relativo uno, ya que, como vimos en el apartado 2.1.2
de introducción al control deslizante, cumple que:
Ya que:
Por lo que no solo se podrá aplicar el algoritmo de control de grado uno, sino que, al aplicar el
algoritmo de control de grado dos se observara a la reducción del chattering.
El cálculo de la matriz de deslizamiento es muy sencillo e introduce una complejidad
computacional mínima a mayores de la del controlador.
40
2.3.3. Desarrollo del Controlador de 2º Orden
El controlador en modo deslizante de segundo orden no toma prácticamente información del sistema
para elaborar la señal de control su desarrollo es bastante teórico, para ilustrarlo continuaremos con la
teoría sobre el control deslizante de segundo orden que vimos en el apartado 2.1.2. Si recordamos en
dicho apartado planteábamos la conclusión general de los modos deslizantes de segundo orden [2].
Como ahora sabemos que en nuestro caso en particular, el sistema a controlar será de grado relativo uno podemos particularizar la citada conclusión. De forma que, asumiendo las siguientes funciones están acotadas:
En una pequeña vecindad de la región el sistema estará descrito por:
Esto quiere decir que si consideramos las coordenadas locales e , después de una apropiada fase de inicialización (transitorio), el problema de control en modo deslizante de segundo orden es equivalente al problema de estabilización en tiempo finito del sistema indeterminado de segundo orden:
Donde puede ser inmensurable pero debe haber posibilidad de saber su signo y y son funciones desconocidas per que cumplen las condiciones de la ecuación 2.3.3.1 [9].
Se podría pensar que no es difícil obtener la segunda derivada de la superficie de deslizamiento a partir de un sistema lineal constante como el que utilizamos para desarrollar nuestro controlador (ecuación 2.3.1.1) sin embargo este sistema es una aproximación de real, y hacer su derivada simbólicamente añadiría también más incertidumbre. La ecuación de esta derivada seria:
En este caso:
Pero como se ha dicho, de este modo la incertidumbre aumentaría. Otra forma seria hacer
directamente la derivada numérica de la función pero como se menciona en el apartado
2.1.2 al diferenciar se incrementa exponencialmente el error cometido en la medida . Ambos métodos añadirían coste computacional al controlador [6].
41
Para curarnos en salud utilizaremos como algoritmo de control el algoritmo “Super-Twisting”, ya que,
este solo necesita un del conocimiento de y para elaborar la ley de control.
Este algoritmo ha sido desarrollado específicamente para sistemas de grado relativo uno, con la función de eliminar el chattering. En este caso las trayectorias sobre el plano de deslizamiento vienen caracterizadas por una torsión alrededor del origen como se puede ver en la figura 16.
La ley de control está compuesta de dos términos, el primero está definido por medio de su derivada que es una función discontinua mientras que el segundo es una función continua de la variable de deslizamiento.
Figura 16: Algoritmo “Super-twisting” trayectoria de fase
El algoritmo de control estará definido, por lo tanto, por la siguiente función de control:
Tal que, las constantes que intervienen en el algoritmo de control cumplen las condiciones para la convergencia en tiempo finito a la variedad de deslizamiento [4], [6]:
42
El cálculo de controlador se reduce al cálculo de las constantes que cumplirán las citadas condiciones
de convergencia que dependerán de los límites de la variable de deslizamiento ( ) y de su segunda
derivada ( ). A través de las ecuaciones 2.3.3.4 y 2.3.3.5 se puede tener una noción aproximada
de los límites de estas funciones aunque al final la sintonización del controlador se hará de forma
empírica.
Otro detalle a tener en cuenta es que en la ecuación del controlador (2.3.3.7) la primera parte del
control, , esta referenciada como un control unitario, ya que el control se resetea cuando la ley de
control es mayor que uno (en nuestro caso, 1N), pues bien, este valor también se puede ajustar se
puede ajustar a un control máximo de forma que la ley de control no pueda para de un determinado
valor. Si no fuese necesario acotar la ley de control y supusiéramos , entonces la ley de control
se puede simplificar como:
En conclusión, gracias a este algoritmo concreto podemos utilizar el modo deslizante de segundo orden
y ahorrarnos la incertidumbre que arrastraríamos de derivar la variable de deslizamiento [4], [6], [9].
43
3. Validación del sistema
3.1. Simulación del Controlador
Una vez definido perfectamente tanto nuestro controlador como nuestra planta y la forma en que será
modelada matemáticamente, procedemos a la simulación del sistema conjunto en bucle cerrado en el
entorno matlab-simulink. En primer lugar mostraremos el esquema de simulación.
Aquí se ven claramente los 4 bloques fundamentales de los que hablamos en los apartados anteriores.
Notar que si el generador de trayectorias esta fuera del controlador es porque la trayectoria generada
será la misma para cualquier controlador de forma que podamos cambiar este módulo sin afectar a la
trayectoria deseada y viceversa. De la misma forma el bloque de accionadores también podría estar
dentro de la planta pero sus variables tanto de entrada como de salida son más accesibles para su
visualización de esta forma.
Las variables que se visualizaran con respecto al tiempo para evaluar la calidad del controlador serán:
Vector de estado
Vector de estado deseado
Variable de deslizamiento
Derivada de la variable de deslizamiento
Fuerzas ejercidas sobre el robot
Valor numérico PWM que de los accionadores
Ley de control de controlador
A partir de los datos obtenidos de estas variables de salida se elaboraran las siguientes gráficas.
Traza: vector de posición y orientación real frente a vector de posición y orientación deseada:
sirve para evaluar la calidad del trazado de la trayectoria.
Figura 3.1: Diagrama de bloques en simulink
44
Control: ley de control del controlador, frente a vector de fuerzas aplicado al robot, sirve para
evaluar el chattering y el comportamiento de los accionadores
PWM: Valor numérico que representa el potencial transmitido a cada propulsor y que se supone
directamente proporcional a la fuerza ejercido por el mismo, sirve para ver fenómenos de
acoplamiento entre propulsores
Variable de deslizamiento frente a su derivada: grafico XY que muestra la relación entre
ambas, sirve para observar independientemente del tiempo la convergencia en durante el
transitorio a la superficie de deslizamiento y de ahí al punto de equilibrio.
Evolución temporal de la variable de deslizamiento y de su derivada: sirven para ver la
variabilidad de ambas y como convergen a través de la superficie de deslizamiento al error nulo
(punto de equilibrio) a lo largo del tiempo.
Traza de velocidades: Representa la velocidad real del sistema frente a la deseada. No es
demasiado útil, ya que el objetivo del control es seguir la trayectoria.
Para ponderar los resultados de cada ensayo se mostraran aquellas graficas que sean necesarias de las
anteriores, nunca serán todas.
En esta sección presentaremos en primer lugar el ensayo nominal pero sin la parte discontinua del
control, después añadiremos la parte discontinua con la función y después con la función ;
todo ello como parte del proceso de sintonización del controlador.
Posteriormente con el controlador ya sintonizado y con la función mostraremos los distintos
ensayos para testar su robustez (perturbaciones, ruido blanco e incertitudes) con la misma
sintonización del controlador y analizaremos los resultados obtenidos.
Todos los ensayos serán realizados con un tiempo de ejecución de 100 ms, se hace así para adecuar la
simulación a la computación real del robot, aunque se podría hacer con un tiempo de ejecución y como
sabemos el resultado es mejor.
3.1.1. Resultados de Simulación con Algoritmo de 1er Orden
Ensayos nominales:
Sin control discontinuo
En primer lugar, y con el fin de sintonizar los polos deseados del sistema, realizaremos una serie de
ensayos sin la parte del control discontinuo, o lo que es lo mismo, con una ganancia de la parte
discontinua igual a cero ( ).
Con esta técnica variamos los polos hasta conseguir un buen resultado para los vectores de polos.
Con estos polos, en la practica el controlador puede ser demasiado rápido lo que lo conduzca a cierta
inestabilidad, sin embargo, en simulación da el resultado que deseamos, ya que, luego se compensará
cualquier inestabilidad gracias a la acción discontinua.
45
Como podemos observar en la siguiente figura, se produce una inestabilidad en la traza del yaw ( ), lo
que provoca a su vez por acoplamiento entre accionadores una inestabilidad en el desplazamiento
lateral ( ).
Además observamos que el control es incapaz de asegurar el buen trazado del pitch ( ). Estos
problemas se resolverán con la inclusión del control discontinuo. También se observa es la figura 3.2
cierta perturbación en el desplazamiento vertical ( ) debido al acoplamiento con el pitch ( ), recordar
que, y comparten los mismos accionadores.
En la figura 3.3 se muestran las señales de ley de control y fuerzas aplicadas al robot, lo más
destacable de este ensayo es la ausencia de chattering debido a la ausencia de control discontinuo y
también la limitación que ejercen los accionadores en la magnitud de la ley de control y la velocidad
de variación de la misma.
0 100 200 300 400 500 600 700 8000
1
2
3
4
5
Time(seg)
x(m
)
x
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-100
-50
0
50
Time(seg)
y(m
)
y
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2x 10
-23
Time(seg)
psi(ra
d)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
theta
(rad)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(ra
d)
Figura 3.2: Traza de la posición y orientación del robot. Sin control discontinuo
0 100 200 300 400 500 600 700 800-20
0
20
40
Time(seg)
X(N
)
x
Controller´s action
Robot´s action
0 100 200 300 400 500 600 700 800-3
-2
-1
0
1
Time(seg)
Y(N
)
y
Controller´s action
Robot´s action
0 100 200 300 400 500 600 700 800-1
0
1
2
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-0.02
-0.01
0
0.01
0.02
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-0.1
0
0.1
0.2
0.3
Time(seg)
N(N
·m)
Figura 3.3: Ley de control y fuerzas sobre robot. Sin control Discontinuo
46
Con control discontinuo, función sign()
En esta serie de ensayos, buscaremos una ganancia del control discontinuo que garantice que el
conjunto del controlador asegure el buen trazado de la trayectoria. Concretamente usaremos en este
apartado la función discontinua para observa los efectos del chattering. Con esta función la
ganancia óptima que hemos obtenido es:
Sera la misma que utilizaremos también después para el controlador con la función . Si más los
resultados en cuanto al trazado se muestran en las siguientes figuras:
En la figura 3.4 se puede observar cómo se corrigen los problemas de estabilidad en el yaw y se mejora
sustancialmente la traza del pitch. Para ello se ha tomado una mayor ganancia discontinua en estos dos
grados de libertad, además, en estos, el chattering en el control repercute también en cierta vibración
en el movimiento del robot, poniendo de manifiesto que no es solo pernicioso para los accionadores
sino para todo el robot.
Otro aspecto que podemos observar es como en las trazas del desplazamiento frontal ( ) y lateral ( )
ciertas oscilaciones justo en los momentos en los que se dan los picos de control del yaw ( ).
En la figura 3.5 se pueden observar la ley de control y las fuerzas sobre el robot, como la cota del
chattering es mayor a mayor ganancia discontinua (pitch y yaw) y como los accionadores filtran y
limitan en parte el chatering reduciendo la discontinuidad en el control. En la figura 3.6, podemos
observar en más detalle la señal de chattering.
0 100 200 300 400 500 600 700 800-2
0
2
4
6
Time(seg)
x(m
)
x
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
y(m
)
y
0 100 200 300 400 500 600 700 800-2
0
2
4
6
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-0.04
-0.02
0
0.02
0.04
Time(seg)
psi(ra
d)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
theta
(rad)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(ra
d)
Figura 3.4: Traza de la posición y orientación del robot. Control discontinuo. Función sign.
47
Pero sobre todo donde más afecta y más pernicioso es el chattering es en la señal de entrada a los
accionadores, a continuación mostramos el valor numérico que se corresponde al nivel de tensión de
entrada en los motores de los propulsores.
220 221 222 223 224 225 226
-6
-4
-2
0
2
4
6
Time(seg)
N(N
·m)
Controller´s action
Robot´s action
Figura 3.6: Detalle del chattering
0 100 200 300 400 500 600 700 800-40
-20
0
20
40
Time(seg)
X(N
)
x
0 100 200 300 400 500 600 700 800-40
-20
0
20
40
Time(seg)
Y(N
)
y
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-10
-5
0
5
10
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-10
-5
0
5
10
Time(seg)
N(N
·m)
Controller´s action
Robot´s action
Figura 3.5: Ley de control y fuerzas sobre robot. Control Discontinuo. Función sign.
48
Como se puede observar la distorsión provocada por el chattering es altísima, en el siguiente apartado
probaremos la primera solución propuesta para evitarlo.
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T1(P
WM
)
thruster1
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T2(P
WM
)
thruster2
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T3(P
WM
)
thruster3
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T4(P
WM
)
thruster4
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T5(P
WM
)
thruster5
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)T
6(P
WM
)
thruster6
Figura 3.7: Señal de control de los accionadores. Control Discontinuo. Función sign.
49
Con control discontinuo, función tanh()
En este apartado usaremos la función en el lugar de , para el tiempo de paso que
estamos utilizando en esta simulación bien nos vale tomar , para algunas aplicaciones quizá nos
interese hacer más rápido el cambio de signo, pero para la nuestra es suficientemente rápido, además
de que el objetivo principal es eliminar el chattering y suavizar en la medida de lo posible la señal de
entrada a los accionadores.
Como se ve en la figura 3.8 la traza es seguida perfectamente por el robot, sin presentar las
vibraciones que se observaban en el ensayo anterior con la función sign(), este trazado más suave evita
problemas mecánicos y además cumple perfectamente las especificaciones de robustez y estabilidad.
A continuación en la figura 3.9 y 3.10 se muestran la señal de control frente a las fuerzas aplicadas y la
señal de entrada a los accionadores, que como se observa está limpia de la señal de chattering, este es
uno de los objetivos, utilizar el control deslizante eliminado el chattering. Una vez demostrado que los
accionadores no corren riesgo, podemos realizar las pruebas de robustez del controlador.
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
x(m
)
x
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
y(m
)
y
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 8000
5
10x 10
-6
Time(seg)
psi(ra
d)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
theta
(rad)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(ra
d)
Figure 3.8: Traza de la posición y orientación. Control discontinuo. Función tanh.
50
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T1(P
WM
)
thruster1
0 100 200 300 400 500 600 700 800-100
0
100
200
Time(seg)
T2(P
WM
)
thruster2
0 100 200 300 400 500 600 700 800-200
-100
0
100
Time(seg)
T3(P
WM
)
thruster3
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T4(P
WM
)
thruster4
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T5(P
WM
)
thruster5
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T6(P
WM
)
thruster6
Figura 3.10: Señal de Control de los accionadores. Control Discontinuo. Función tanh.
0 100 200 300 400 500 600 700 800-2
0
2
4
Time(seg)
X(N
)x
0 100 200 300 400 500 600 700 800-2
-1
0
1
Time(seg)
Y(N
)
y
0 100 200 300 400 500 600 700 800-1
0
1
2
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-0.2
0
0.2
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-0.01
0
0.01
Time(seg)
N(N
·m)
Controller´s action
Robot´s action
Figura 3.9: Ley de control y fuerzas sobre robot. Control discontinuo. Función tanh.
51
Pruebas de Robustez
Robustez frente a perturbaciones.
Para testar la robustez frente a perturbaciones introducimos solamente una perturbación en cada
grado de libertad, de aproximadamente un 20% del desplazamiento máximo en cada uno. Los instantes
de cada perturbación serán aleatorios. En este ensayo observamos una recuperación rápida del valor
del estado deseado sin inestabilidades ni oscilaciones, la respuesta dinámica es, por lo tanto, bastante
buena.
En la figura 3.11 correspondiente al trazado, podemos observar como la velocidad a la que se corrige la
perturbación es mucho mayor en los grados de libertad que son controlados por un control discontinuo
más potente, es decir, cuya ganancia del control discontinuo es más elevada.
Mostraremos también, a continuación la gráfica que muestra el control, donde podemos ver cómo
reacciona el controlador ante las perturbaciones, con una acción rápida potente y otra más leve y
duradera, como sea los accionadores filtran este pico, aun así les repercutirá en un pico de tensión en
los motores. Pero en conclusión podemos afirmar que la respuesta del controlador frente a
perturbaciones es robusta.
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
x(m
)
x
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
y(m
)
y
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-0.02
0
0.02
0.04
0.06
Time(seg)
psi(ra
d)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
theta
(rad)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(ra
d)
Figura 3.11: Traza de la posición y orientación. Robustez frente a perturbaciones.
52
Robustez frente a ruido blanco en la medida del estado
En este apartado testaremos la robustez del controlador cuando la señal del vector de estado viene con
ruido, esto es muy típico ya que el estado se calcula a partir de las medidas de los sensores del robot, y
estas medidas suelen contener ruido que se puede eliminar con filtros, pero no siempre es
computacionalmente eficiente la utilización de un filtro para limpiar la señal del vector de variables de
estado.
Este ruido blanco en la medida se trasladara tambien al error y por lo tanto tambien a la superficie de
deslizamiento y a traves de ella a la ley de control. Como se observa en esta ultima grafica esto
0 100 200 300 400 500 600 700 800-15
-10
-5
0
5
Time(seg)
X(N
)
x
0 100 200 300 400 500 600 700 800-15
-10
-5
0
5
Time(seg)
Y(N
)
y
0 100 200 300 400 500 600 700 800-10
0
10
20
30
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-2
0
2
4
6
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
N(N
·m)
Controller´s action
Robot´s action
Figura 3.12: Ley de control y fuerzas sobre robot. Robustez frente a perturbaciones.
0 100 200 300 400 500 600 700 800-10
-5
0
5
10
Time(seg)
x(m
)
x
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
y(m
)
y
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-2
0
2
4
6
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-0.2
-0.1
0
0.1
0.2
Time(seg)
psi(r
ad)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
thet
a(ra
d)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(r
ad)
Figura 3.13: Traza de la posición y orientación. Robustez frente a ruido blanco en la medida.
53
provoca perturbaciones puntuales al añadir el efecto de acoplamiento, concretamente perturbaciones
en el desplazamiento frontal(x) y lateral(y) provocados por el giro en el yaw.
En este caso mostraremos la comparacion entre la superficie de deslizamiento y su primera derivada
con respecto al tiempo, para ver que el ruido transmitido a la superficie de deslizamiento se
incrementa con creces en su derivada, lo cual es normal, al derivar una señal de alta frecuencia. En
este momento podemos predecir que los modos deslizantes que utilices las deriadas sucesivas de la
superficie de deslizamiento seran muy vulnerables frente al ruido blanco.
Las señales de control serán similares a las anteriores solo que con la adicción del ruido blanco,
mostramos a continuación la señal de entrada en los accionadores para ver cómo afecta en esta el
ruido añadido, con el fin de comparar después esta grafica con la del controlador de segundo orden
frente a ruido blanco.
0 100 200 300 400 500 600 700 800-1000
-500
0
500
1000
Time(seg)
sliding surface and its derivative vs. time
0 100 200 300 400 500 600 700 800-1000
-500
0
500
1000
Time(seg)
sliding surface and its derivative vs. time
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
sliding surface and its derivative vs. time
0 100 200 300 400 500 600 700 800-5
0
5
Time(seg)
sliding surface and its derivative vs. time
0 100 200 300 400 500 600 700 800-1000
-500
0
500
1000
Time(seg)
sliding surface and its derivative vs. time
0 100 200 300 400 500 600 700 800-1000
-500
0
500
1000
Time(seg)
d
Figura 3.14: Superficie de deslizamiento y derivada temporal. Robustez frente a ruido blanco.
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T1(
PW
M)
thruster1
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T2(
PW
M)
thruster2
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T3(
PW
M)
thruster3
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T4(
PW
M)
thruster4
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T5(
PW
M)
thruster5
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T6(
PW
M)
thruster6
Figura 3.15: Señal de Control de los accionadores. Robustez frente a ruido blanco
54
Robustez frente a incertidumbres en los paramentos de controlador.
En estos ensayos testaremos el controlador frente a incertitudes en los parámetros, esto quiere decir
que los parámetros que definen la dinámica de la planta como pueden ser la masa del robot o su
flotabilidad, no son exactamente los que considerara el controlador para elaborar la ley de control. Se
han hecho diversidad de ensayos en los que se ha variado parámetros tan diversos como el
amortiguamiento lineal, el momento de inercia o las dimensiones del robot, pero los parámetros para
el cual se experimenta una mayor vulnerabilidad a su incertidumbre es la relación entre la masa y la
flotabilidad del robot. Inicialmente suponemos que el robot está equilibrado es decir, la fuerza que lo
mantiene a flote es la misma que su peso por lo que se mantiene estable en el agua, sin embargo, para
testar su robustez vamos a alterar su flotabilidad de forma que este flote y que sin embargo el
controlador no lo sepa, es decir, que siga suponiendo el sistema equilibrado.
Para ello introducimos en el instante inicial un aumento de un del parametro de flotabilidad en la
planta, a continuacion, en la figura 3.16, observamos que como consecuencia de de este cambio se ven
afectados los estados correspondientes a la profuncidad y al pitch.
En este momento la robustez frente a incertidumbres en la flotabilidad seria mala, ya que la traza de
la profundidad reacciona muy lentamente y ademas se ve muy afectada por el acoplamiento con el
pitch, cuya traza tampoco es demasiado exacta, para adaptar el controlador a los cambios de
flotabilidad habria que modificar la matriz C (ver apartado de linealizacion del sistema) pero adaptar
los paramentros del controlador a los cambios en los paramentros de la planta seria un controlador
adaptativo.
Por el contrario en nuestro caso la robustez en el controlador se consigue aumentando la ganancia del
control discontinuo, cuanto mayor sea esta mayor sera la robustez, en todo momento,
independientemente de la fluctuacion que puedan tener los parametros de la planta. En el siguiente
ensayo aumentamos la ganancia del control no lineal de la profundidad de 1 a 5, por lo que el vector
de ganancia quedaria:
0 100 200 300 400 500 600 700 800-2
0
2
4
6
Time(seg)
x(m
)
x
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
y(m
)
y
0 100 200 300 400 500 600 700 800-4
-2
0
2
4
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-5
0
5
10x 10
-6
Time(seg)
psi(ra
d)
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(ra
d)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
theta
(rad)
Figura 3.16: Traza de la posición y orientación. Robustez frente a incertidumbre en la flotabilidad
55
Con este incremento se le da más fuerza a la parte discontinua del control de la profundidad con
respecto a la parte continua del control, que como recordamos se calculaba a partir de un modelo
aproximado del sistema a controlar. Esto nos sugiere una importante conclusión de los modos
deslizantes de primer orden:
Cuanta más incertidumbre tengamos sobre el modelo de la planta más hay que ponderar el control
discontinuo sobre el control equivalente.
En la figura 3.17 se muestra el resultado de la corrección aplicada a la ganancia del control discontinuo
de la profundidad (z) para hacerlo robusto a los cambios de flotabilidad, lo que también podemos
observar es que se pierde precisión en la traza del pitch, esto se debe al acoplamiento entre
accionadores.
Al estar desequilibrado el robot, siempre se requiere una acción en z, figura 3.18, aunque esta
permanezca constante, esto provoca una actuación constante de los accionadores (figura 3.19) para
mantener la profundidad deseada, lo que le quita protagonismo al pitch. Para contrarrestar esto le
tendríamos que dar más fuerza al control de pitch, pero en este caso no compensaría ya que queremos
asegurar el buen trazado en z.
0 100 200 300 400 500 600 700 800-5
0
5
Time(seg)
x(m
)
x
0 100 200 300 400 500 600 700 800-5
0
5
Time(seg)
y(m
)
y
0 100 200 300 400 500 600 700 800-2
0
2
4
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-5
0
5
10x 10
-6
Time(seg)
psi(ra
d)
0 100 200 300 400 500 600 700 800-0.5
0
0.5
Time(seg)
theta
(rad)
0 100 200 300 400 500 600 700 800-2
0
2
Time(seg)
phi(ra
d)
Real Trajectory
Desired Trajectory
Figura 3.17: Traza de la posición y orientación. Robustez frente a incertidumbre en la flotabilidad.
Corrección de Z
56
Como podemos observar en la figura 3.17, no se puede conseguir un buen trazado del pitch porque los
accionadores no tienen más fuerza, saturan intentando cumplir con los requerimientos del control de la
profundidad y del pitch (recordar que los accionadores saturan a un valor de 180).
0 100 200 300 400 500 600 700 800-200
0
200
Time(seg)
T1(P
WM
)
thruster1
0 100 200 300 400 500 600 700 800-100
0
100
200
Time(seg)
T2(P
WM
)
thruster2
0 100 200 300 400 500 600 700 800-200
-100
0
100
Time(seg)
T3(P
WM
)
thruster3
0 100 200 300 400 500 600 700 800-200
0
200
Time(seg)
T4(P
WM
)
thruster4
0 100 200 300 400 500 600 700 800-200
-100
0
Time(seg)
T5(P
WM
)
thruster5
0 100 200 300 400 500 600 700 8000
100
200
Time(seg)
T6(P
WM
)
thruster6
Figura 3.19: Señal de control de los accionadores. Robustez frente a incertidumbres. Corrección de Z
0 100 200 300 400 500 600 700 800-2
0
2
4
Time(seg)
X(N
)
x
0 100 200 300 400 500 600 700 800-2
-1
0
1
Time(seg)
Y(N
)
y
0 100 200 300 400 500 600 700 8000
200
400
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-5
0
5
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-0.01
0
0.01
Time(seg)N
(N·m
)
Controller´s action
Robot´s action
Figura 3.18: Control controlador y fuerzas accionadores. Robustez frente a incertidumbres.
Corrección de Z
57
La conclusión que podemos extraer de estos resultados es que la acción de control discontinuo puede
provocar acoplamiento entre accionadores, haciendo que la acción en un grado de libertad tenga más
fuerza que la de otro grado de libertad, dándole prioridad a la traza de la primera, como pasa por
ejemplo en nuestro caso con la profundidad y el pitch. En nuestro caso es admisible ya que es más
importante mantener la profundidad estable, pero en algunas ocasiones convendría limitar la acción
discontinua de un grado de libertad para que no interfiera con la de otro que use los mismos
accionadores.
Esto sugiere que además de que una gran acción discontinua nos proporciona una gran robustez en ese
grado de libertad también nos puede provocar el efecto negativo de acoplamiento, por lo que
concluimos que la acción discontinua debe ser ajustada a las necesidades, con una buena previsión o
con una ganancia discontinua adaptable, lo que propone un modo de control deslizante adaptativo
[12], [13].
58
3.1.2. Resultados de Simulación con Algoritmo de 2º Orden
Ensayos nominales
En esta serie de ensayos testaremos el controlador en modo deslizante super-twisting de segundo orden
en el mismo sistema y en las mismas condiciones nominales que el controlador de primer orden.
Ajustaremos así las ganancias de este tipo de controlador, definidas en la ecuación 2.3.3.7, haciendo
que el controlador sea estable y supere las incertidumbres del sistema, asegurando la convergencia en
tiempo finito al estado deseado.
Con una configuración adecuada se obtendrán los siguientes resultados: En la figura 3.19 podemos ver
la traza del sistema y como sigue la trayectoria deseada con bastante precisión en el régimen
permanente, si bien el control es lento al principio, es decir, no reacciona todo lo rápido que lo hace el
controlador de primer orden frente a las rampas.
En cuanto a la señal de control, como podemos ver en la figura 3.20, en esta no existe señal de
chattering propiamente dicha, pero sí que hay una señal de alta frecuencia con muy poca amplitud,
que es prácticamente filtrada por los accionadores, no trasladándose al movimiento del robot, y como
se puede ver en la figura 3.21, de la señal de entrada a los accionadores, la señal que estos reciben a
pesar de tener algunas perturbaciones, es bastante regular en los regímenes permanentes, y no tiene
grandes variaciones de alta frecuencia, si bien, en comparación con el controlador de primer orden con
la función tangente hiperbólica sí que esta señal es más suave que con el controlador super-twisting.
0 100 200 300 400 500 600 700 8000
1
2
3
4
5
Time(seg)
x(m
)
x
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-5
-4
-3
-2
-1
0
1
Time(seg)
y(m
)
y
0 100 200 300 400 500 600 700 8000
1
2
3
4
5
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-5
0
5
10
15x 10
-5
Time(seg)
psi(r
ad)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
thet
a(ra
d)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(r
ad)
Figura 3.19: Traza de la posición y orientación. Modo deslizante de segundo orden.
59
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
Time(seg)
T1(P
WM
)
thruster1
0 100 200 300 400 500 600 700 800-100
0
100
200
Time(seg)
T2(P
WM
)
thruster2
0 100 200 300 400 500 600 700 800-200
-100
0
100
Time(seg)
T3(P
WM
)
thruster3
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
Time(seg)
T4(P
WM
)
thruster4
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T5(P
WM
)
thruster5
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T6(P
WM
)
thruster6
Figura 3.21: Señal de control de los accionadores. Modo deslizante de segundo orden
0 100 200 300 400 500 600 700 800-1
0
1
2
Time(seg)
X(N
)
x
0 100 200 300 400 500 600 700 800-2
-1
0
1
Time(seg)
Y(N
)
y
0 100 200 300 400 500 600 700 800-0.5
0
0.5
1
1.5
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-0.2
-0.1
0
0.1
0.2
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-0.01
-0.005
0
0.005
0.01
Time(seg)N
(N·m
)
Controller´s action
Robot´s action
Figura 3.20: Ley de control y fuerzas sobre robot. Modo deslizante de segundo orden.
60
Pruebas de Robustez
Robustez frente a perturbaciones
La prueba de robustez es la misma que se hace con el controlador de primer orden, y como se puede
observar el resultado es similar al obtenido con este, con las particularidades que diferencian a ambos
controladores.
La señal de control si que es diferente, llama la atencion frente a la señal de control del controlador
de primer orden frente a perturbaciones que en aquel caso la ley de control daba picos que tenian que
filtrar la dinamica de los accionadores, sin embargo en este caso la ley de control y la respuesta de los
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
x(m
)
x
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
y(m
)
y
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-2
0
2
4x 10
-3
Time(seg)
psi(ra
d)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
theta
(rad)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(ra
d)
Figura 3.22: Posición y orientación. Modo deslizante de segundo orden. Robustez frente a perturbaciones
0 100 200 300 400 500 600 700 800-2
0
2
Time(seg)
X(N
)
x
0 100 200 300 400 500 600 700 800-2
-1
0
1
Time(seg)
Y(N
)
y
0 100 200 300 400 500 600 700 800-1
0
1
2
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-0.2
0
0.2
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-0.02
-0.01
0
0.01
Time(seg)
N(N
·m)
Controller´s action
Robot´s action
Figura 3.23: Ley de control y fuerzas sobre robot. Modo deslizante de segundo orden. Robustez frente a perturbaciones
61
accionadores es de la misma magnitud frente a las perturbaciones.
Robustez frente a Ruido blanco
Como ya mencionamos en apartados anteriores, la adición de ruido blanco a las medidas del estado se
traslada a través del error a la superficie de deslizamiento y se amplifica en gran medida al derivar
esta, por lo tanto los modos deslizantes de segundo orden que tomen información de las derivadas
sucesivas de la superficie de deslizamiento se verán gravemente afectados por el ruido blanco, no es
así en este caso, ya que, no usamos ninguna derivada de la superficie de deslizamiento.
En la figura 3.24 se puede observar la distorsion que provoca el ruido blanco en la segunda derivada de
la superficie de deslizamiento, pero al contrario que en el controlador de primer orden en este caso
esta señal de ruido blanco no se traslada a la señal de control de los accionadores, esta se ve afectada
pero en mucha menor medida que en el controlador de primer orden, como podemos ver en la figura
3.25.
Esto se debe a que, en el controlador de segundo orden, el calculo de la ley de control depende solo de
la superficie de deslizamiento, mientras que en el de primer orden tambien se utiliza el control
equivalente que es funcion del vector de estado, que contiene la señal de ruido.
0 100 200 300 400 500 600 700 800-1
0
1
2
3
4
5
Time(seg)
x(m
)
x
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-5
-4
-3
-2
-1
0
1
Time(seg)
y(m
)
y
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-1
0
1
2
3
4
5
Time(seg)
z(m
)
z
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-0.2
-0.1
0
0.1
0.2
Time(seg)
psi(r
ad)
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
thet
a(ra
d)
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(r
ad)
Real Trajectory
Desired Trajectory
Figura 3.23: Posición y orientación. Modo deslizante de segundo orden. Robustez frente a ruido blanco
62
0 100 200 300 400 500 600 700 800-1
-0.5
0
0.5
1x 10
5
Time(seg)
sliding surface and its derivative vs. time
d
0 100 200 300 400 500 600 700 800-1
-0.5
0
0.5
1x 10
5
Time(seg)
sliding surface and its derivative vs. time
d
0 100 200 300 400 500 600 700 800-1
-0.5
0
0.5
1x 10
5
Time(seg)
sliding surface and its derivative vs. time
d
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
sliding surface and its derivative vs. time
d
0 100 200 300 400 500 600 700 800-1
-0.5
0
0.5
1x 10
5
Time(seg)
sliding surface and its derivative vs. time
d
0 100 200 300 400 500 600 700 800-1
-0.5
0
0.5
1x 10
5
Time(seg)
d
Figura 3.24: Superficie de deslizamiento y derivada temporal. Modo deslizante de segundo orden. Robustez frente a ruido blanco.
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
Time(seg)
T1(P
WM
)
thruster1
0 100 200 300 400 500 600 700 800-50
0
50
100
150
Time(seg)
T2(P
WM
)
thruster2
0 100 200 300 400 500 600 700 800-150
-100
-50
0
50
100
Time(seg)
T3(P
WM
)
thruster3
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
Time(seg)
T4(P
WM
)
thruster4
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T5(P
WM
)
thruster5
0 100 200 300 400 500 600 700 800-200
-100
0
100
200
Time(seg)
T6(P
WM
)
thruster6
Figura 3.25: Señal de control de los accionadores. Modo deslizante de segundo orden. Robustez
frente a ruido blanco
63
Robustez frente a incertidumbre en los parámetros de la planta
De la misma forma que en el ensayo de robustez frente a incertidumbre de parámetros con el
controlador de primer orden, en este caso, con el controlador de segundo orden lo que haremos es
desequilibrar el robot submarino haciendo que flote, sin modificar a priori ningún parámetro del
controlador. Así pues aumentamos un 5% la fuerza de flotabilidad del robot, obteniéndose el siguiente
trazado de la figura 3.26:
Como se puede observar el controlador es robusto y se produce el mismo problema que en el de primer
orden en el trazado del pitch( ) que no alcanza el valor deseado si no uno menor, como en aquel caso,
el problema se debe a que los accionadores no tienen suficiente fuerza para asegurar la traza de la
trayectoria de ambos grados de libertad cuando el robot esta desequilibrado, ya que mantenerlo en
una determinada profundidad cuando el robot flota, exige mucha accion.
Este fenomeno se puede observar contemplando las figuras 3.27 y 3.28, en la primera se observa que el
control de la profundidad debe ser mayor que cero para mantener el robot estable y en la segunda que
esto provoca que los accionadores se saturen a su maximo valor cuando intentan manterner el robot
estable y al mismo tiempo variar el pitch. Si los accionadores tuvieran mas fuerza entonces la traza de
ambos grados de libertad seria perfecta.
0 100 200 300 400 500 600 700 800-2
0
2
4
6
Time(seg)
x(m
)
x
0 100 200 300 400 500 600 700 800-6
-4
-2
0
2
Time(seg)
y(m
)
y
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700 800-2
0
2
4
6
Time(seg)
z(m
)
z
0 100 200 300 400 500 600 700 800-5
0
5
10
15x 10
-5
Time(seg)
psi(ra
d)
0 100 200 300 400 500 600 700 800-0.4
-0.2
0
0.2
0.4
Time(seg)
theta
(rad)
0 100 200 300 400 500 600 700 800-2
-1
0
1
2
Time(seg)
phi(ra
d)
Figura 3.26: Posición y orientación. Modo deslizante de segundo orden. Robustez frente a incertidumbre de parámetros
64
0 100 200 300 400 500 600 700 800-1
0
1
2
Time(seg)
X(N
)x
0 100 200 300 400 500 600 700 800-2
-1
0
1
Time(seg)
Y(N
)
y
0 100 200 300 400 500 600 700 8000
2
4
6
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600 700 800-0.2
-0.1
0
0.1
0.2
Time(seg)
M(N
·m)
0 100 200 300 400 500 600 700 800-0.01
-0.005
0
0.005
0.01
Time(seg)
N(N
·m)
Controller´s action
Robot´s action
Figura 3.27: Ley de control y fuerzas sobre robot. Modo deslizante de segundo orden. Robustez frente a incertidumbre de parámetros
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
Time(seg)
T1(
PW
M)
thruster1
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
150
Time(seg)
T2(
PW
M)
thruster2
0 100 200 300 400 500 600 700 800-150
-100
-50
0
50
100
Time(seg)
T3(
PW
M)
thruster3
0 100 200 300 400 500 600 700 800-100
-50
0
50
100
Time(seg)
T4(
PW
M)
thruster4
0 100 200 300 400 500 600 700 800-200
-150
-100
-50
0
Time(seg)
T5(
PW
M)
thruster5
0 100 200 300 400 500 600 700 8000
50
100
150
200
Time(seg)
T6(
PW
M)
thruster6
Figura 3.28: Señal de control de los accionadores. Modo deslizante de segundo orden. Robustez frente a incertidumbre de parámetros
65
3.1.3. Conclusiones y comparación entre los dos algoritmos
Para comparar ambos algoritmos, el de primer orden y el de segundo orden atendemos a varios
factores:
El primero es la amplitud de la ley de control, como sabemos la ley de control está limitada por los
accionadores, de forma que aunque el controlador solicite una gran acción esta nunca excederá los
límites impuestos por los accionadores, aun así no interesa que la ley de control sea demasiado grande,
ni que presente picos que aunque puntuales hagan que la señal de entrada a los accionadores alcance
su máximo, es decir, que se saturen. En este campo, el controlador en modo deslizante de segundo
orden presenta una ley de control más uniforme, sin picos, y casi siempre por debajo de los límites de
los accionadores, frente a la ley de control del modo deslizante de primer orden que a menudo los
supera.
También es conveniente destacar, que gracias a la utilización del algoritmo super-twisting el
controlador de segundo orden no es vulnerable al ruido blanco en la medida como los suelen ser los
demás controladores de segundo orden, es más, gracias a las particularidades del algoritmo el ruido
transmitido a la señal de entrada en los propulsores, es menor que el que se transmite en el algoritmo
de primer orden, lo que supone una ventaja añadida a la hora de proteger los accionadores.
Otro factor es la facilidad para sintonizar el controlador, ya que cuando se implemente en el robot real
habrá que ajustar las diversas ganancias o polos deseados del controlador para un correcto
funcionamiento del mismo, aunque estas ganancias están relacionadas con la incertidumbre que
presente el sistema y su valor puede ser acotado, serán sintonizadas de forma empírica. Atendiendo al
número de ganancias que intervienen y su rango de posibles valores, puede requerir varios ensayos
determinar unos valores nominales. En este aspecto el controlador de primer orden es más fácil de
sintonizar, ya que, a mayores de los polos solo tiene un vector de ganancias a determinar, mientras que
el controlador en modo deslizante de primer orden tiene dos.
Es imprescindible en este proyecto comprar el coste computacional de ambos algoritmos, este es difícil
de determinar, en un principio podríamos pensar que el cálculo del control equivalente, en el
algoritmo de primer orden, genera un importante coste computacional, ya que intervienen en el varias
matrices bastante grande, sin embargo, la experiencia en simulación, nos demuestra que es más difícil
calcular la ley de control del algoritmo de segundo que la de primer orden en el mismo ordenador. Esto
se debe sobre todo a que la ley de control está formada por dos partes, ambas discontinuas, y una de
ellas debe integrarse, aun utilizando un método aproximado de integración como puede ser la suma de
rectángulos, esto añade cierto coste computacional, al ser un bucle a mayores dentro del programa
que es el controlador.
Por último, y como es obvio, es importante comparar el chattering provocado por ambos controladores,
como hemos visto, al introducir la función tangente hiperbólica en el controlador de primer orden este
carece de chattering y al integrar la ley de control, en la simulación del controlador de segundo
hallamos que aunque ínfimamente, que la ley de control si contiene cierta componente de alta
frecuencia, aunque esta esté filtrada por la integración de dicha ley, esta no causa inestabilidad pero
si se filtra a la señal de entrada de los accionadores, si bien es tan ínfima que no representa una
amenaza. Pero sí que es verdad que en cuanto a chattering, es mejor el controlador de primer orden.
En conclusión, comparando los aspectos clave de nuestros dos algoritmos determinamos, que el que
mejor resultado ha dado en simulación es el modo deslizante de primer orden con la función tangente
hiperbólica. Además de presentar la posibilidad de añadirle un lazo adaptativo para controlar a su vez
la ganancia del control discontinuo según las necesidades.
66
3.2. Implantación del Controlador en el Robot
El controlador se implanta en la plataforma real que es el robot, a través del lenguaje C++, como ya se
mencionó. A diferencia de la simulación en este caso la planta es el robot y la trayectoria deseada nos
viene dado, así que solamente habrá que programar el controlador, es decir, tomar como entradas las
variables de estado correspondientes y elaborar el vector de fuerzas que se pretende aplicar al robot,
ya se encarga otra parte del programa inherente al robot de calcular la señal de entrada a los
accionadores a partir del vector de fuerzas que deseamos aplicar sobre el robot.
Además esta aplicación práctica tiene la particularidad de que debido a limitaciones en la plataforma,
solo se realizara el control para dos grados de libertad, la profundidad y el pitch. Por lo q se reducirá el
controlador, esta reducción consistirá simplemente en eliminar todos los componentes del control que
sirvan para otros grados de libertad. Así pues el sistema equivalente a partir del cual se elaborara el
controlador será el de la ecuación 2.3.1.1:
Pero con las siguientes limitaciones en los vectores de estado, sería lo que llamaríamos un estado
restringido, todas las demás variables de estado no se consideran:
Así pues las matrices del sistema equivalente solo tendrán no nulos aquellos valores numéricos que se
relacionen con estas variables de estado reduciéndose así el rango de las mismas y por lo tanto del
controlador:
De las misma forma el vector de error será de dimensión reducida también ( ) y también la
superficie de deslizamiento que solo comprenderá los estados de la profundidad y el pitch, de esta
forma el controlador, tanto de primer como de segundo orden elaborara solo la ley de control para
estos estados. Como el programa del robot exige un vector de ley de control que incluya los seis grados
de libertad, el resto de leyes de control: movimiento frontal o avance, lateral, roll y yaw, serán nulos,
es decir asignados a cero.
Reduciéndose de esta forma el controlador ahorramos coste computacional, ya que sería innecesario
trabajar con vectores y matrices de mayor rango para que al final no se utilizase completamente la ley
de control calculada. A continuación procedemos a mostrar los resultados de la experimentación.
67
3.2.1. Resultados de la Experimentación
En la experimentación tanto del algoritmo de primer orden como del de segundo orden se hacen varios
ensayos para determinar los valores nominales que sintonizan el controlador, una vez presentado el
ensayo nominal se repiten los ensayos de robustez de forma similar a como se hizo en la simulación, la
nica diferencia es que no podremos adicionar ruido blanco a la medida de los sensores, por eso no
haremos este ensayo pero sí que haremos los otros dos, el primero de perturbaciones, desplazando
puntualmente el robot de su posición sirviéndonos de un palo, y el segundo de incertidumbres
paramétricas adicionando un pedazo de polietileno que aumentara la flotabilidad del robot.
Es muy importante tener en cuenta que el robot real está un poco desequilibrado, es decir que flota un
poco más de lo que pesa, se hizo así por motivos de seguridad, por lo tanto, cuando se sintonice el
controlador en especial el de primer orden tendremos que hacer las modificaciones pertinentes sobre
la matriz C del sistema equivalente para corregir esta desviación, es aquí donde reside la importancia
de la matriz C, para poder adecuar el controlador a sistemas desequilibrados cuando sabemos que lo
son, es decir cuando no es un parámetro sobre el que haya incertidumbre. La diferencia entre la fuerza
de flotabilidad y el peso ( ), que es el parámetro a partir de cual se calcula C, se determinara de
forma empírica durante la experimentación. Sin más, presentamos los resultados obtenidos de la
experimentación con el AC-ROV.
3.2.1.1. Resultado de Experimentos con Algoritmo de 1er Orden
De la misma forma que en el apartado de simulación, en este mostraremos el ensayo nominal, con su
traza y sus leyes de control y posteriormente mostraremos los ensayos de robustez.
A continuación mostramos las gráficas correspondientes al trazado de la trayectoria de la profundidad y
el pitch, a la ley de control generada por el controlador, y a la señal de entrada a los propulsores,
como se puede intuir no hay forma de mostrar las fuerzas que realmente se ejercen sobre el robot.
Ensayo nominal
Aquí mostraremos las gráficas correspondientes al ensayo con los valores nominales de los parámetros
del controlador.
0 100 200 300 400 500 600 7000
0.2
0.4
0.6
0.8
Time(seg)
z(m
)
z
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600 700-0.1
0
0.1
0.2
0.3
Time(seg)
q(r
ad)
Real Trajectory
Desired Trajectory
Figura 3.29: Traza de la posición y orientación. Robot real. Controlador 1er orden. Nominal
68
En la figura 3.30 se pueden observar ciertas inestabilidades en forma de cresta en la ley de control que
se corresponden con las zonas de rampa de la trayectoria de la profundidad, probablemente se deban a
la acción discontinua del controlador, no crean inestabilidad en el robot debido a que son demasiado
rápidas, pero sí que se transmiten a la señal de entrada de los accionadores, como se puede ver en la
figura 3.31, estas crestas no representan un riesgo para los accionadores si bien tampoco es el
funcionamiento óptimo. Se podría corregir este defecto suavizando la función con una k
más pequeña.
0 100 200 300 400 500 600 7000.8
1
1.2
1.4
1.6
Time(seg)
Z(N
)z
0 100 200 300 400 500 600 700-0.02
-0.01
0
0.01
0.02
0.03
Time(seg)
M(N
·m)
Figura 3.30: Ley de control. Robot real. Controlador 1er orden. Nominal
0 100 200 300 400 500 600 70060
70
80
90
100
110
120
Time(seg)
T3(P
WM
)
thruster5
0 100 200 300 400 500 600 70060
80
100
120
140
Time(seg)
T5(P
WM
)
thruster6
Figura 3.31: Señal de control de los accionadores. Robot Real. Controlador de primer orden. Nominal.
69
Ensayo de robustez frente a perturbaciones
En este caso el ensayo con el robot real diferirá un poco del ensayo realizado en la simulación, ya que,
será más exigente al no tener solo una perturbación sino varias, además en la realidad no es posible
realizar una perturbación ideal que solo afecte a un grado de libertad, por lo que el pitch también se
verá afectado.
En la figura 3.32, podemos observar que el trazado de la profundidad no se ve fectado por las
perturbaciones, y que se recupera el estado desado rapidamente sin sobre oscilaciones de ningun tipo.
En cuanto a la traza de del pitch vemos como la perturbacion en zeta lo que hace es añadir una
oscilacion en el pitch, que se corrigiria sola dada la estabilidad del submarino, aun asi, el controlador
elabora una respuesta rapida para intentar corregir esta oscilacion como se ve en la figura 3.33 en la
0 50 100 150 200 250 300 350 400-0.2
0
0.2
0.4
0.6
0.8
Time(seg)
z(m
)
z
Real Trajectory
Desired Trajectory
0 50 100 150 200 250 300 350 400-0.1
0
0.1
0.2
0.3
0.4
Time(seg)
q(r
ad)
Real Trajectory
Desired Trajectory
Figura 3.32: Traza de la posición y orientación. Robot real. Controlador 1er orden. Perturbaciones
0 50 100 150 200 250 300 350 400
0.7
0.8
0.9
1
1.1
1.2
1.3
Time(seg)
Z(N
)
z
0 50 100 150 200 250 300 350 400-0.02
0
0.02
0.04
0.06
Time(seg)
M(N
·m)
Figura 3.33: Ley de control. Robot real. Controlador 1er orden. Perturbaciones
70
grafica correspondiente a la ley de control del pitch. Por el contrario la respuesta a las perturbaciones
de zeta son mas lentas y mas fuertes. Es un comportamiento bastante adecuado.
En la señal de entrada de los accionadores, se puede observar una combinación entre las respuestas
lentas y potentes a las perturbaciones en la profundidad combinadas con las respuestas rápidas y
oscilantes a para compensar la oscilación en el pitch, si bien dada la naturaleza de la dinámica de los
accionadores las respuestas demasiado rápidas no tendrán un gran efecto sobre el robot.
Así queda demostrada la robustez del controlador frente a perturbaciones frente al robot real.
Ensayo de robustez frente a incertidumbre de parámetros
En este ensayo adicionaremos una pequeña masa de polietileno utilizado en embalajes para que haga
las veces de flotador, y aumente la flotabilidad del robot desequilibrándolo, como ya se mencionó el
controlador se podría adaptar manualmente modificando la matriz C, pero en este caso como
suponemos desconocido este parámetro tendrá que ser el control discontinuo el que adapte el
controlador a las incertidumbres de este y otros parámetros demostrando así su robustez que es el
objetivo de este ensayo.
Como se puede ver en la figura 3.35 correspondiente al trazado, la ganancia discontinua es
suficientemente grade para darle al control discontinuo la fuerza para sobreponerse a la incertidumbre
sobre la flotabilidad, esto quiere decir que el controlador está bien sintonizado, si no lo estuviera
porque el desequilibrio entre peso y flotabilidad fuese demasiado grande tendríamos que aumentar
esta ganancia, pero es importante que aumentar demasiado esta ganancia puede crear inestabilidad
dada la naturaleza discontinua de este control aun a pesar de estar usando la función tangente
hiperbólica.
En la figura 3.36 se aprecian las leyes de control de la profundidad y el pitch, en la primera, podemos
observar como para mantener en equilibrio el submarino (quieto) el control debe ejercer una fuerza en
0 50 100 150 200 250 300 350 40040
60
80
100
120
Time(seg)
T3(P
WM
)
thruster5
0 50 100 150 200 250 300 350 40060
80
100
120
140
160
Time(seg)
T5(P
WM
)
thruster6
Figura 3.34: Señal de control de los accionadores. Robot Real. Controlador de primer orden. Perturbaciones.
71
el eje Z de 1.4 Newton aproximadamente mientras que en el ensayo nominal le bastaba con ejercer
una fuerza de 1.2 Newton, en ese detalle podemos observar el incremento de fuerza que tiene que
ejercer el controlador para mantener estable el sistema. Añadiremos en esta gráfica, en color rojo, las
leyes de control del ensayo nominal, para que sea más fácil hacer la comparativa.
0 100 200 300 400 500 6000.5
1
1.5
2
Time(seg)
Z(N
)
z
0 100 200 300 400 500 600-0.02
-0.01
0
0.01
0.02
0.03
Time(seg)
M(N
·m)
Figura 3.36: Ley de control. Robot real. Controlador 1er orden. Incertidumbre de paramentros
0 100 200 300 400 500 600-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
Time(seg)
z(m
)
z
Real Trajectory
Desired Trajectory
0 100 200 300 400 500 600-0.05
0
0.05
0.1
0.15
0.2
Time(seg)
q(r
ad)
Real Trajectory
Desired Trajectory
Figura 3.35: Traza de la posición y orientación. Robot real. Controlador 1er orden. Incertidumbre
de parámetros.
72
73
3.2.1.2. Resultado de Experimentos con Algoritmo de 2o Orden
En este apartado mostraremos el resultado del ensayo nominal pero esta vez utilizando el algoritmo de
segundo orden. No se mostrara más que la gráfica del trazado ya que la de control contiene demasiada
información, a causa de que la ley de control es el resultado de la adición de dos leyes, una de ellas
obtenida a partir de la integración de una función, por este motivo quizá no sean demasiado
ilustrativas para lo que se pretende en este proyecto.
Como se puede observar el control tarda en reaccionar a la primera rampa de la profundidad pero una
vez que comienza a funcionar se consigue una gran precisión en régimen permanente. El resto de
ensayos de robustez dan resultados muy similares a los obtenidos con el algoritmo de primer orden.
La conclusión que sacamos de los ensayos experimentales, es que el controlador, cumple su función de
asegurar el trazado de la trayectoria excepto en un pequeño transitorio al principio de cada ciclo.
Cumple además con las condiciones de robustez prescritas ya que tiene una respuesta rápida y sin
sobre oscilaciones a las perturbaciones, no se ve afectado por el ruido blanco en la medida (aunque no
se halla hecho un test de robustez frente a ruido blanco, en la experimentación con el robot real toda
medida lleva una pequeña señal de ruido blanco inherente) y compensa su actuación frente a
incertidumbre o variación de paramentos como puede ser la flotabilidad.
0 50 100 150 200 250 300 350-0.2
0
0.2
0.4
0.6
0.8
Time(seg)
z(m
)
z(IIOSMC)
Real Trajectory
Desired Trajectory
0 50 100 150 200 250 300 350-5
0
5
10
15
Time(seg)
Theta
(deg)
Real Trajectory
Desired Trajectory
Figura3.37: Traza de la posición y orientación. Robot real. Controlador 2o orden. Nominal
74
4. Conclusión y Líneas Futuras
La primera conclusión que sacamos de este proyecto es que se puede desarrollar un controlador en
modo deslizante para una aplicación de robot submarino, que es viable y no solo eso, sino que no es
demasiado complejo desde el punto de vista matemático, ni el desarrollo del controlador de primer
orden ni el de segundo.
Otra conclusión importante es que existen soluciones para el chattering, el principal problema de este
tipo de modo de control no lo es en absoluto si utilizamos las alternativas típicas de la bibliografía,
como son la utilización de la función tangente hiperbólica en vez de la función de signo, y el desarrollo
de modos de control de segundo orden. Esto es importante, ya que si eliminamos el chattering, se
abren un amplio abanico de aplicaciones para nuestro controlador.
Con la simulación y la posterior experimentación, se han conseguido sintonizar, sin demasiada
dificultad, tanto el controlador de primer orden como el de segundo. Después con esos parámetros
nominales se ha testado su robustez en diversos ensayos, y el resultado a sido satisfactorio: Se ha
demostrado la robustez de este tipo de controlador, lo cual era uno de nuestros objetivos, y sobre todo,
se ha demostrado su robustez frente a la incertidumbre en el sistema a controlar.
Haber conseguido un resultado robusto frente a un sistema indeterminado, en este proyecto deja
fundamentalmente dos importantes conclusiones, la primera es que ante la variación o imprecisión de
determinados parámetros importantes para el funcionamiento del sistema, como en este caso puede
ser la flotabilidad, el controlador es capaz de asegurar un buen funcionamiento siempre y cuando se
tenga una idea de la magnitud de estas imprecisiones, es decir siempre y cuando tengamos una idea
del orden del error cometido, es decir, este acotado.
La segunda conclusión de la robustez frente a sistemas indeterminados, es que, en sistemas de
dinámica compleja como ha sido este caso, se puede simplificar muchísimo el desarrollo matemático
del controlador eligiendo las simplificaciones adecuadas y aplicándolas sobre el sistema, aumentando
la incertidumbre del mismo, ya que después el controlador será capaz de sobreponerse a esta
incertidumbre. Como se demostró con la linealizacion del sistema dinámico de cara a
La conclusión más importante de este proyecto por ser una de las que más lo diferencia de otros
trabajos encontrados en la bibliografía, es que no solo se ha demostrado su sencillez matemática sino
que esta se traduce en facilidad de programación y lo que es más importante, en disminución del coste
computacional del controlador, con la gran importancia que esto tiene. La reducción del coste
computacional no solo disminuye los requisitos de hardware en los que puede ser implementado el
controlador sino que reduce el tiempo en el que se tardara en elaborar la ley de control, así el tiempo
de paso puede ser menor, y como sabemos los modos deslizantes mejoran su precisión en régimen
permanente conforme se reduce el tiempo de paso.
Por último, además de haber cumplido los objetivos, también concluimos que la combinación entre la
robustez y la sencillez matemática no solo es una ventaja en si misma si no que permite a este tipo de
controlador combinarse con otros algoritmos, aportando una pequeña acción discontinua a otro
algoritmo de control, para superar alguna incertidumbre que este tenga, o combinándose con el control
adaptativo, como vimos en el apartado , la ganancia discontinua debe regularse en su justa medida
para adaptarse a las necesidades sin provocar que el control de un determinado grado de libertad
afecte al de otro por fenómenos de acoplamiento.
Así pues, la línea futura de nuestro proyecto tendería a ser la inclusión de un lazo de control
adaptativo para controlar la ganancia lineal, aumentarla si se produce demasiado error en un grado de
libertad, y disminuirla cuando este disminuya o si se produce el chattering, si bien este lazo a mayores
75
introduciría as coste computacional, es por ello que, esta línea de desarrollo no entra dentro de
nuestro proyecto.
BIBLIOGRAFIA
Bibliografía principal
[1] Thor I. Fossen, “Marine control systems. Guidance, Navigation, and control of ships, rigs and underwater Vehicles”, Chapter I: Modelling of marine vessels.
[2] W. Perruquetti, J.P. Barbot, “Sliding mode control in engineering”
[3] C. Edwards, S.K. Spurgeon “Sliding Mode Control: Theory and Applications”, Taylor and Francis, 1998.
Artículos
[4] A. Pisano, E. Usai “Output-feedback control of an underwater vehicle prototype by higher-
order sliding modes” Automatica, Vol.40 pp. 1525 – 1531, 2004.
[5] H. Akçakaya, H. A Yildiz, “Sliding mode control of autonomous underwater vehicle”
[6] G. Bartolini, A. Ferrara, “On Multi-Input Chattering-Free Second-Order Sliding Mode Control” IEEE T.A.C., Vol. 45, No. 9, 2000.
[7] M. Defoort, T. Floquet, A. Kokosy, W. Perruquetti, “A novel higher order sliding mode control Scheme” Systems and Control Letters, Vol. 58, 2 pp. 102-108, 2009.
[8] T. Salgado, L G. García, G. Delgado, “Control of ROVs using a Model-free 2nd-Order Sliding Mode Approach”
[9] A. Levant, A. Pridor, R. Gitizadeh, I. Yaesh, J.Z. Ben-Asher, “Aircraft Pitch Control Via Second Order Sliding Technique”
[10] H. Munthe-Kaas, “Runge-Kutta methods on lie groups”
[11] G. Sartori-Natal, A. Chemori, F. Pierrot, “Nonlinear Control of Parallel Manipulators for Very High Accelerations Without Velocity Measurement: Application on Par2 Parallel Manipulator”
[12] W. M. Bessa, M. S. Dutra, E. Kreuzer, “An adaptive fuzzy sliding mode controller for remotely operated underwater vehicles” Robotics and Autonomous Systems Vol. 58 pp. 16-26, 2010
[13] R. Cristi, F. A. Papoulias, A. J. Healey, “Adaptive Sliding Mode Control of Autonomous Underwater Vehicles in the Dive Plane” IEEE Journal of Oceanic Engineering, Vol. 15, No. 3, 1990
76
[14] A. J. Healey, D. Lienard “Multivariable Sliding Mode Control for Autonomous Diving and
Steering of Unmanned Underwater Vehicles” IEEE Journal of Oceanic Engineering, Vol. 18, No. 3, 1993
[15] Li-Rong Wang, Jian-Chen Liu, “Sliding Mode Control of an Autonomous Underwater Vehicle”
[16] Tae Kyu Ha, Eko Henfri Binugroho, “Sliding Mode Control for Autonomous Underwater Vehicle under Open Control Platform Environment”
[17] S. L. Fraga, J. B. de Sousa, F. Lobo-Pereira, “User-assisted trajectory generation of underwater vehicles”
[18] T. Salgado-Jiménez, B. Jouvencel, “Using a High Order Sliding Modes for diving control a torpedo Autonomous Underwater Vehicle”
[19] D.Maalouf, I.Tamanaja, E.Campos, A.Chemori,V.Creuze, J.Torres, R.Lozano, “From PD to Nonlinear Adaptive Depth-Control of a Tethered Autonomous Underwater Vehicle”
[20] D. Maalouf, V. Creuze, A. Chemori, “A Novel Application of Multivariable L1 Adaptive Control : from Design to Real-Time Implementation on an Underwater Vehicle”
[21] G. Campa, M. Innocenti, F. Nasuti “Robust Control Of Underwater Vehicles: Sliding Mode Control Vs. Mu Synthesis”
[22] T. Salgado-Jimenez, J-M. Spiewak, P. Fraisse, B. Jouvencel, “A robust control algorithm for AUV: based on a High Order Sliding Mode”
77
APENDICES
Apéndice 1: Desarrollo de la matriz de rotación .
Utilizaremos las rotaciones principales, que son las rotaciones sobre los ejes del sistema de referencia
¡de partida! de uno en uno. Así usando la secuencia de rotación de los ángulos de Euler, con el
convenio , obtendremos las 3 matrices de rotación principales para rotar desde el n-frame al b-
frame:
Donde . La matriz de rotación desde el NED al BODY será entonces:
Como se puede ver, se le denomina convenio de rotación porque se rota primero sobre , después
sobre , y por ultimo sobre , resultando:
Para ángulos pequeños , y , la expresión anterior se puede aproximar como:
Aprovechando las propiedades de las matrices ortogonales, es muy fácil calcular la matriz de rotación
del BODY al NED, ya que será su matriz traspuesta y también su inversa:
Además también se puede obtener esta matriz de transformación del b-frame (sistema de referencia en
el móvil) al n-frame (sistema de referencia fijo) haciendo la trasformación con el convenio inverso:
78
Apéndice 2: Desarrollo de las matrices y .
La expresión de la matriz de inercia rígida en el cuerpo deriva de la segunda ley de Newton.
Considerando que el sistema móvil solidario al cuerpo es el b-frame y que su origen está en un punto O
y que el sistema de referencia fijo es el n-frame:
Donde el punto es el centro de gravedad, es la masa del vehículo, es la derivada temporal de la
velocidad del centro de gravedad respecto del n-frame (eje fijo) y es la fuerza ejercida en el
centro de gravedad respecto del n-frame. De la misma forma existe la ecuación de momentos
angulares:
Siendo la velocidad angular en el sistema de referencia b-frame relativo al sistema fijo n-frame,
el vector de momentos angulares que actúan sobre el centro de gravedad relativo al n-frame e el
momento de inercia del vehículo en el centro de gravedad.
Si referenciamos estas expresiones en el b-frame, tras varias transformaciones nos quedaran como:
Siendo el vector de posición del centro de gravedad respecto del b-frame. Si agrupamos los
términos de estas dos matrices definidas en podemos como una sola ecuación en , que tendrá la
siguiente forma:
Tal que, la matriz de inercia del sistema contendrá los términos de las ecuaciones que están
multiplicando a las derivadas temporales de los vectores de velocidad lineal y angular descompuestos
en el b-frame, correspondientes a las componentes de inercia y la matriz centrípeta-coriolis los
vectores correspondientes a los términos centrípeto (
) y coriolis (
).
Se puede verificar que de acuerdo a la relación entre las expresiones 19 y 20, y la ecuación 21 que las
matrices y tendrán la siguiente forma:
79
Siendo y los vectores de velocidad lineal y angular en el b-frame respectivamente, tal que:
y
. La matriz es denominada la matriz semi-simétrica
de un vector, tal que, si es un vector perteneciente a , tal que, la matriz semi-
simétrica estará definida como:
De forma que el producto de cruz o producto vectorial de dos vectores se puede expresar como:
Si el origen del eje de coordenadas del sistema de referencia móvil (b-frame) coincide con el centro de
gravedad, tal que , entonces y podremos simplificar algo estas matrices
80
Apéndice 3: SSMC. Deducción de la ecuación del control para sistemas no lineales.
Estudio de la dinámica del sistema en la superficie de deslizamiento y de la
estabilidad de la convergencia a la misma.
A continuación estudiaremos la dinámica del sistema en la superficie de deslizamiento, es decir, bajo
la condición de la ecuación (2). La dinámica de será estable si se cumple dicha condición. Por la ecuación (3) podemos ver que en la superficie de deslizamiento es una recta que pasa por el origen de la forma:
De (1) sabemos que y por lo tanto el desplazamiento sobre la superficie de deslizamiento estará gobernado por:
Y si se cumple que entonces convergerá a 0 y la velocidad de convergencia dependerá
solamente del valor de . Además por la ecuación (6) podemos ver que si converge sobre 0,
entonces convergerá también sobre 0. La evolución sobre la superficie de deslizamiento será, por lo
tanto, independiente de y . Como al principio, el punto inicial no estará sobre la superficie de deslizamiento, hará falta que el sistema tienda a esta superficie. Es lo que llamaremos condición de accesibilidad. Por eso habrá que realizar también un estudio sobre la dinámica de convergencia a la misma. Para poder evaluar la estabilidad del controlador, utilizaremos la función de Lyapunov siguiente:
Sabiendo que las condiciones para estabilidad asintótica es que la función sea definida positiva y su
primera derivada sea definida negativa, es decir:
Podemos observar que la demostración del cumplimiento de la primera condición es trivial, ya que,
para cualquier valor de distinto de cero será mayor que cero y también es fácil ver que para
será , así que será siempre definida positiva. Para demostrar el cumplimiento de la segunda condición calcularemos la primera derivada temporal de la función de Lyapunov:
81
Como la primera condición de estabilidad asintótica es trivial, a menudo en la bibliografía se denomina condición de accesibilidad a la segunda condición, que como se ha visto puede expresarse como la ecuación:
Para calcular hacemos la derivada la ecuación (3) será:
Sustituyendo en esta ecuación (8) y a partir de la ecuación del sistema (1) obtendremos:
Teniendo así la primera derivada de la superficie de deslizamiento en función de la acción de control
; pudiéndose observar que se cumple que el grado relativo del sistema es uno. Ahora sustituyendo en la ecuación (9) el valor de de la ecuación (11) nos quedara:
A partir de la ecuación (12) podemos ver que para cumplir la segunda condición, es necesario que y
sean de distinto signo o ambas iguales a 0. Es decir, es definida negativa si:
es:
Entonces podemos observar que habrá que buscar una función para la acción de control para que se cumpla con la ecuación (13). La elaboración de esta función se realizara en dos pasos, la primera es el desarrollo del llamado control equivalente. Para desarrollar el control equivalente utilizamos la
ecuación correspondiente a es decir:
Despejando obtendremos:
De ahora en delante denominaremos a la función directamente como control equivalente. En la segunda etapa buscaremos la otra parte del control, a la que llamaremos control discontinuo, y
denominaremos como , tal que, el control total será la suma de ambas partes:
Introduciendo el concepto del control equivalente en la ecuación (13) resulta que la segunda condición puede resumirse en que:
será definida positiva si:
82
Luego el control discontinuo, que es la diferencia entre el control total y el control equivalente, debe ser una función de tal manera que verifique la ecuación (17). Para cumplir con esto la función elegida debe cumplir que.
Intuitivamente podemos ver que para cumplir estas condiciones debe ser una función como:
Proporcionando la función el signo de :
Quedando el control total como:
Se puede demostrar fácilmente que una función de control de esta forma cumple la segunda condición de la función de Lyapunov para conseguir estabilidad asintótica:
Sustituyendo por su ecuación (19) y despejando nos queda:
Y como puede verse de forma intuitiva es definida negativa sea cual sea el signo de ya que,
anteriormente definimos en la ecuación del sistema (1) que y cuando definimos el
control discontinuo que . Entonces la ley de control de la ecuación (19) cumple las dos
condiciones para estabilidad asintótica de la función de Lyapunov y por lo tanto la condición de
accesibilidad. Queda demostrada la estabilidad en la convergencia a la superficie de deslizamiento.
83
Apéndice 4: Ejemplo de SSMC Para aclarar conceptos un ejemplo de SSMC convencional se muestra a continuación. Se trata del típico sistema dinámico masa-resorte-amortiguador. Primero realizaremos un lazo de control tradicional basado en la dinámica del sistema y luego realizaremos un lazo de control utilizando el control en modo deslizante. En este sistema nuestros parámetros principales son:
M: La masa del sistema
D: El Coeficiente de amortiguamiento
K: La constante de elasticidad del resorte
Donde F será la fuerza aplicada a la masa e y la dirección de desplazamiento. La dinámica de este sistema típico será (23) y el objetivo de la ley de control será hacer converger y a un punto deseado yd a través de la acción de control F:
Aplicando una ley de control tradicional como (24) y sustituyendo F en la ecuación (23), nos quedara la ecuación (25):
Si consideramos: La dinámica en bucle cerrado será:
Si denominamos la velocidad del sistema y la posición , podemos representar la dinámica en bucle cerrado como:
Así podemos ver que con este tipo de controlador el sistema es autónomo y su comportamiento solo
depende de las condiciones iniciales y de los parámetros k, d, y m.
Figura 1
84
Podemos simular el comportamiento dinámico de este sistema en bucle cerrado para unos parámetros
típicos como por ejemplo: y unas condiciones iniciales como: quedándonos el sistema (27) como:
Y obteniendo una convergencia muy lenta del sistema al punto de equilibrio como la mostrada en las figuras 3 y 4, correspondientes a la evolución temporal de las variables de estado del sistema y al plano de fase respectivamente.
Es necesario recordar que el punto de equilibrio es , por lo que se lleva el sistema al
estado deseado, o lo que es lo mismo
e
. Eso si, como ya se ha dicho la convergencia
es muy lenta y sobre todo: dependiente solamente de las condiciones iniciales y de los parámetros de la dinámica del sistema, es decir, la masa, la elasticidad del resorte y el amortiguamiento, por este motivo el conocimiento preciso de estos parámetros es necesario para el desarrollo del controlador. Realizaremos ahora un controlador en modo deslizante para el mismo sistema dinámico. Estudiando
y demostrando la estabilidad del controlador. Tomando el sistema de la ecuación (23) y despejando :
Y transformándolo renombrando de la siguiente forma:
; ;
;
; ;
Lo transformaremos en un sistema no lineal genérico, nos quedara:
Figura 2 Figura 4
85
Puede observarse que las funciones y son lineales por lo que también podríamos desarrollar el controlador como para un sistema lineal, el resultado sería el mismo. Siguiendo el procedimiento general para sistemas no lineales la ley de control en modo deslizante vendrá dada por la ecuación (20):
Si hacemos la misma sustitución numérica que en el ejemplo de control tradicional: Solo tendremos que determinar los parámetros de diseño del controlador: La superficie de
deslizamiento ( ) y la ganancia del control no lineal ( ); y la ley de control nos quedara:
tal que Pudiera parecer en principio que la ley de control depende de los parámetros de la dinámica del sistema como la masa o el amortiguamiento, pero hay que recordar que una vez en la superficie de
deslizamiento, bajo la condición la convergencia al punto de equilibrio deseado se basa
únicamente en la dinámica de deslizamiento que vendrá dada por: únicamente dependiente de los parámetros de diseño del controlador. Como puede observarse en la figura 5 (evolución temporal de las variables de estado del sistema) la convergencia al punto de equilibrio del sistema con un controlador en modo deslizante es muchísimo más rápida que la convergencia con el controlador tradicional (Figura 3), a partir del mismo estado
inicial ( ). Tarda 3 segundos en alcanzar el equilibrio frente a los casi 40 del control tradicional. También podemos observar en la figura 6 (plano de fase) como después de un
transitorio alcanza la superficie de deslizamiento, que en este caso es la recta y después converge por ella al punto de equilibrio. Además comparando ambas graficas podemos ver que la
superficie de deslizamiento se alcanza cuando ; es decir para un tiempo igual a 0.79 segundos.
Figura 5
Figura 6
86
Si observamos la evolución temporal de la señal de control (figura 7) podemos observar también que en el instante en que se alcanza la
superficie de deslizamiento ( ), junto a la señal de control global comienza el fenómeno de reticencia, el “chattering”, que como vemos es una señal de alta frecuencia solapada a la señal de control global, debida a la
función , ya que en las proximidades de
la superficie de deslizamiento ( ), el signo
de fluctua mucho, respondiendo la ley de control para corregir esta desviación con una acción proporcional a la ganancia del control no
lineal, en este caso ; por eso podemos observar en la figura 7 que el intervalo de la
reticencia es de la señal de control.
Esta señal de alta frecuencia, el “chattering” representa el mayor problema del control por modo deslizante, ya que, como ya se ha dicho, esta conmutación de alta frecuencia puede producir vibraciones, representando un riesgo grande para los actuadores de la mayoría de robot convencionales porque produce el deterioro de los mismos por efecto de la fatiga. A continuación se muestran las gráficas de la evolución temporal de las variables de estado del sistema,
de plano de fase y de la evolución de la señal de control, para un controlador que sustituye la función
por la funcion ; aquí podemos observar como las transiciones son más suaves y sobre
todo que además desaparece el “chattering”; todo ello sin perder robustez frente a incertitud de
parámetros.
Figura 7
87
Apéndice 5: Eliminación del chattering.
Problema del cumplimiento de la restricción generalizada.
Como podemos ver la aplicación más importante de los HOSMCs (control por modos deslizantes de
orden superior) es la de la eliminación del “chattering”. En el modo de 2º orden, por lo tanto,
pretenderá lograr en el sistema un movimiento deslizante en el colector de deslizamiento (Superficie
de deslizamiento) por medio de una señal de entrada limitada y continua que sea la salida de un
sistema dinámico de primer orden impulsado por una adecuada señal discontinua. Tal dinámica de
primer orden puede ser cualquiera inherente al dispositivo de control o especialmente introducida para
el propósito de la eliminación del “chattering”.
Definimos un sistema a controlar, una variable de deslizamiento y una señal de control genéricos,
respectivamente como:
Asumiendo que tanto como son funciones continuas, y que la única información disponible son los
valores instantáneos de y posiblemente, el signo de la derivada temporal de . Podemos
derivar dos veces la variable de deslizamiento:
El objetivo del control de 2º orden será llevar a cero en un tiempo finito por medio de un control
continuo dependiente del tiempo. Para establecer un problema de control riguroso asumiremos
las siguientes condiciones:
1) Los valores de control pertenecerán al conjunto , donde es una contante
real. De tal manera que la solución del sistema estará bien definida para todo , generando un
continuo y perteneciente a para todo .
2) Existirá una constante , tal que, para una función continua que cumple que
, existirá un , tal que, para todo . Luego, el control
, (donde es el valor inicial de tiempo) proporcionará una tendencia a la
variedad en tiempo finito.
3) Siendo la derivada total de la variable de deslizamiento . Existirán las
constantes positivas: , tal que, si , entonces:
Y la inecuación implicará que .
88
4) Existirá una constante positiva tal que para la región , se verificará la siguiente inecuación:
La condición 2 anterior significa que a partir de cualquier punto del espacio de estado, es posible
definir un control adecuado para dirigir la variable de deslizamiento (dentro de un conjunto), de tal manera que se cumplan las condiciones de acotación sobre la dinámica deslizante definidas por las condiciones 3 y 4.
En particular, afirman que la segunda derivada temporal de la variable de deslizamiento , evaluada
con valores fijos de la variable de control , será uniformemente acotada en un dominio acotado.
De ello se deduce, a partir del teorema de la función implícita, que existe una función
que puede ser considerada como control equivalente, que satisface la ecuación y una vez se
alcanzada la región , el control proporcionará el cumplimiento exacto de esta
condición.
Las condiciones 3 y 4 significan que implica , y que la velocidad de cambio
de está limitada. Esto proporciona la posibilidad de aproximar por un control Lipschitziano.
La unidad que es la cota superior de y es en realidad un factor de escala (puede ser ponderado en función de las necesidades). Hay que tener en cuenta también que la dependencia lineal en el
control no es necesaria aquí.
Los sistemas indeterminados en forma habitual, es decir, sistemas afines en y, posiblemente, en , son un caso especial del sistema considerado hasta ahora, y el correspondiente problema de cumplimiento de la restricción puede ser reducido y considerado uno (grado relativo).
En caso de grado relativo dos, el planteamiento del problema de control podría ser derivado de lo
anterior, considerando la variable como una variable de estado y como el control real. En efecto, si el sistema de control es:
Donde y son funciones vectoriales indeterminadas pero suficientemente lisas, tal que:
.
Podemos llegar a que, asumiendo que ; en una pequeña vecindad
de la región el sistema estará descrito por:
1. Si el grado relativo es uno:
2. Si el grado relativo es dos:
89
Apéndice 6: Desarrollo de la ecuación de la mecánica de ROV.
La ecuación que modela la dinámica de la planta es la siguiente:
Como ya se ha dicho varias veces, la implementaremos en el entorno matlab simulink para simular el
controlador. Para su implementación renombraremos de la siguiente manera: , y ,
y despejando sus derivadas nos quedara:
Donde y serán nuestros vectores de variables de estado de nuestro sistema, y la salida sera el
vector de posición respecto del b-frame, es decir: .
Desarrollando las dos ecuaciones de acuerdo a lo visto anteriormente:
Desarrollando cada matriz y vector completamente:
90
Si le damos su valor numérico correspondiente a cada variable: -+
La masa:
El peso:
La flotabilidad: (el volumen no será exactamente porque no es
un cubo perfecto)
Los momentos de inercia respecto de los ejes
principales de inercia , , se calcularan
suponiendo el ROV como un paralelepípedo
conociendo la ecuación general para el cálculo
del momento de inercia de un paralelepípedo
con respecto a uno de sus ejes de simetría.
Notar que, al coincidir los ejes del b-frame con los ejes principales de inercia (de simetría), se
anulan los elementos fuera de la diagonal principal.
Las fuerzas de amortiguamiento en función de la velocidad se determinaran
experimentalmente, tal que:
Como ya se dijo los centros de gravedad y de flotabilidad estarán alineados en la misma
vertical que el centro del sistema de referencia fijo al cuerpo (b-frame), su valor será:
Figura A6.1: Paralelepípedo: ejes de simetría
91
La mecánica del ROV se programara en matlab siguiendo el siguiente diagrama de flujo:
Este será el código del script en matlab:
function out = mecanicarov(in)
%vector de posición y orientación del robot eta=in(1:6); %orientación del robot phi = etat(4); theta = eta(5); psi = eta(6);
%vector de velocidad en b-frame nu=in(7:12);
%vector de fuerzas ejercidas sobre el robot tau=in(13:18);
%matriz de transformación del b-frame al n-frame [J,J1,J2]=eulerang(phi,theta,psi);
%peso y flotabilidad W= 30; Buy= 31.16
%vectores de posición de los centros de gravedad y flotabilidad rg=[0 0 0.02]'; rb=[0 0 0]'; Ix= W/10*(0.149^2+0.152^2)/12; Iy= W/10*(0.154^2+0.152^2)/12; Iz= W/10*(0.149^2+0.154^2)/12;
%matriz de inercia MRB=[ W/10 0 0 0 0 0;0 W/10 0 0 0 0;0 0 W/10 0 0 0;0 0 0 Ix 0 0; 0 0 0 0 Iy
0;0 0 0 0 0 Iz]; M=MRB;
%amortiguamiento Dl=[14 0 0 0 0 0; 0 14 0 0 0 0; 0 0 14 0 0 0;0 0 0 0.15 0 0; 0 0 0 0 0.17 0;
0 0 0 0 0 0.18]; %Linear Damping D=Dl;
MECANICA
92
%fuerzas de restauración g=gvect(W,Buy,theta,phi,rg,rb);
%Ecuaciones de la dinamica etadot=J*nu;%Ec1 despejando x1'=J*x2 nudot=pinv(M)*(tau-D*nu-g);%Ec2 despejando x2'
%Vector de variables de estado xdot = [ etadot nudot ];
out=xdot;
Notar que, para la programación en matlab, calcularemos las matrices J y g utilizando las funciones
eulerang y gvect de la librería de herramientas de matlab MSS GNC para la navegación la guía y el
control de sistemas marinos. Aunque podríamos haberlas calculado por nuestra cuenta.
93
Apéndice 7: Descripción del modelado de los accionadores.
Figura 12: Funcionamiento de los accionadores
Recordamos que sera:
La matriz será:
La acción saturara a , es decir, cada motor tendrá una fuerza máxima de en ambos
sentidos. Sobre la función de transferencia hay que decir que desconocemos por completo el
comportamiento dinámico particular de estos propulsores, pero podemos aproximar su función de
transferencia de un motor de corriente continua:
Donde será la tensión aplicada al motor en los terminales del estator, el par ejercido por el
mismo, es la constante del motor, y es la resistencia y la inductancia del circuito del estator.
Esta consideración nos sirve para aproximar la función de transferencia que simula el comportamiento
dinámico del motor por una función de transferencia de primer orden, es decir, con un polo.
Experimentalmente determinaremos esta función de transferencia que simula el comportamiento
dinámico del motor de forma aproximada como:
ACCIONADORES
94
Apéndice 8: Desarrollo del generador de trayectoria deseada.
Vector de variables de estado deseadas.
En este apéndice definiremos el modulo que generará el vector de variables de estado del sistema
deseadas, de cara a calcular el error del sistema para que el controlador pueda llevar al sistema al
estado deseado. En este proyecto el sistema es un robot móvil y el controlador se encargara del guiado
del mismo, y como bien sabemos el estado deseado del sistema será una posición determinada, y lo
que se pretende es que el robot siga una trayectoria que será un conjunto de posiciones distintas en
función del tiempo.
Entonces, como es evidente, la entrada a nuestro modulo será la trayectoria deseada a seguir por el
robot, que introducirá el operador que controle el mismo, esta trayectoria será un vector de posición y
orientación en función del tiempo, es decir:
Tal que:
Como sabemos que los vectores de variables de estado de nuestro robot son la posición y orientación, y
la velocidad, y entonces la trayectoria deseada se corresponderá ya directamente con
el primer vector de variables de estado deseadas:
Y la labor de este módulo será sencillamente calcular el segundo vector de variables de estado deseado
que será como es evidente el correspondiente a la velocidad:
Así que simplemente habrá que derivar la posición y aplicar la ecuación de la cinemática:
Y a su vez la matriz estará simplificada y se aproximara por otra casi constante de la misma
forma que se hizo en el apartado 2.3.1 (para ser coherentes). Despejando la ecuación anterior:
Así pues la estructura de este módulo será tan sencilla como:
95
El filtro en este caso solo hace la función de suavizar la trayectoria deseada frente a posibles
discontinuidades en la misma [17].
Filtro
Trayectoria
de entrada
96