Jesus Javier Diaz Morey - DSpace@UCLV

Anuncio
Universidad Central “Marta Abreu” de las Villas
Facultad de Ingeniería Eléctrica
Departamento de Automática y Sistemas Computacionales
TRABAJO DE DIPLOMA
Actualización de la arquitectura de hardware del
CIDNAV-AUV
Autor: Jesús Javier Díaz Morey.
Tutores: Msc. Alain Sebastián Martínez Laguardia.
Ing. Carlos Enrique Guerra Morales.
Santa Clara
2012
“Año 54 de la Revolución”
Universidad Central “Marta Abreu” de las Villas
Facultad de Ingeniería Eléctrica
Departamento de Automática y Sistemas Computacionales
TRABAJO DE DIPLOMA
Actualización de la arquitectura de hardware del
CIDNAV-AUV
Autor: Jesús Javier Díaz Morey.
E-mail: [email protected]
Tutores: Msc. Alain Sebastián Martínez Laguardia.
Dpto. de Automática, Facultad de Ing. Eléctrica, UCLV
E-mail: [email protected]
Ing. Carlos Enrique Guerra Morales.
Dpto. de Automática, Facultad de Ing. Eléctrica, UCLV
E-mail: [email protected]
Santa Clara
2012
“Año 54 de la Revolución”
Hago constar que el presente TRABAJO DE DIPLOMA fue realizado en la
Universidad Central “Marta Abreu” de Las Villas como parte de la culminación
de estudios de la especialidad de Ingeniería en Automática, autorizando a que
el mismo sea utilizado por la Institución, para los fines que estime conveniente,
tanto de forma parcial como total y que además no podrá ser presentado en
eventos, ni publicados sin autorización de la Universidad.
__________________________________
___________
Jesús Javier Díaz Morey
Fecha
Los abajo firmantes certificamos que el presente trabajo ha sido realizado
según acuerdo de la dirección de nuestro centro y el mismo cumple con los
requisitos que debe tener un trabajo de esta envergadura referido a la temática
señalada.
__________________________________
Jesús Javier Díaz Morey
Autor
___________
Fecha
__________________________________
Boris Luis Martínez Jiménez, Dr.C
Jefe de Departamento
___________
Fecha
__________________________________
Responsable ICT o J’ de Carrera, (Dr.C, M.Sc. o Ing.)
Responsable de Información Científico-Técnica
___________
Fecha
PENSAMIENTO
La ciencia se compone de errores, que a su vez,
son los pasos hacia la verdad.
Julio Verne.
i
DEDICATORIA
A mis padres por el apoyo y la formación que me han dado
para alcanzar todas mis metas.
A mi hermana que espero ser su guía siempre.
A todos mis familiares y amistades que se mantuvieron
apoyándome incondicionalmente.
A todos los profesores que han sabido guiarme durante
toda mi vida estudiantil.
ii
AGRADECIMIENTOS
A mis padres por el apoyo brindado antes y durante este trabajo.
A mi abuelo por su ayuda.
A toda mi familia por la confianza que siempre han tenido en mí.
A Yasiel Morera por su ayuda indispensable
en la implementación electrónica
y en todo momento.
A mis tutores Alain y Carlos, por todo el tiempo y conocimientos brindados.
A Daliana Ramos por todo el tiempo dedicado
y consejos brindados en la redacción.
A mis amigos del aula que siempre me han apoyado.
iii
RESUMEN
Los vehículos sumergibles autónomos (AUV, Autonomous Underwater
Vehicles) son objeto de disimiles investigaciones a nivel mundial debido a su
utilidad y campos de aplicación. En nuestro país varias empresas han mostrado
interés en el tema, guiando su trabajo hacia el desarrollo de un autopiloto que
permita al AUV cumplir las misiones encomendadas de forma autónoma. Esta
investigación tiene como objetivo fundamental la inclusión en la arquitectura
de hardware del CIDNAV – AUV, sensores complementarios que asistan la
medición de rumbo y revoluciones del motor principal. Para su cumplimiento se
realizó la ingeniería inversa del compás magnético a incluir, quedando definido
el comportamiento de sus salidas. Para lograr la comunicación con el resto del
sistema se diseñó una arquitectura basada en DsPIC, la que procesa la
información brindada por el sensor y la envía a la PC por el protocolo RS-232.
Para la medición de las rpm se implementó un sensor óptico que genera un
tren de pulso en correspondencia con la velocidad de rotación del motor. Lo
anteriormente expuesto se validó mediante pruebas experimentales.
iv
TABLA DE CONTENIDOS
TABLA DE CONTENIDOS
PENSAMIENTO...................................................................................................i
DEDICATORIA....................................................................................................ii
AGRADECIMIENTOS.........................................................................................iii
RESUMEN..........................................................................................................iv
INTRODUCCIÓN................................................................................................1
1. MARCO TEÓRICO REFERENCIAL…………………………………………....5
1.1. Desarrollo de los AUV a nivel internacional………………………………5
1.1.1. Definición……………………………………………………………....6
1.1.2. AUVs en desarrollo o explotación en la actualidad………………..6
1.1.3. Aplicaciones………………………………………………...………....7
1.2. Métodos de navegación autocontenidos de los AUV…..……………......8
1.2.1. Dead reconning………………………………………………………..8
1.2.2. Modelo básico………………………………………………………..10
1.2.3. Sistema de navegación inercial……………………………...….....12
1.3. Variables necesarias básicas………………………………...…….…..…13
1.3.1. Compás magnético……………………………………...…………..14
1.3.2. Codificadores ópticos……………………………………..……..….14
1.3.2.1.
Modos de detección…………………………….……..…....16
1.3.3. Fuentes de error………………………………………….………....17
1.4. Arquitectura del hardware para lograr la navegación……………...…..17
1.5. Consideraciones finales…………………………………………......……19
2. SENSORES A TRABAJAR………………………………………………...….21
v
TABLA DE CONTENIDOS
2.1. Principio de funcionamiento……………………………….……………...21
2.2. Implementación del sensor de rpm………………………………….…...21
2.2.1. Modo de conteo por detección de reflejo………………………...22
2.2.2. Modo de conteo por detección directa…………………….…......23
2.2.3. Circuito de salida…………………………………………….……...23
2.2.4. Errores…………………………………………………………....….26
2.3. Ingeniería inversa del Vetus Fluxgate Compass………………….……27
2.3.1. Obtención de los ángulos de rumbo………………………….......28
2.3.2. Corrección de errores………………………………………….......28
2.4. Hardware de adquisición……………………………………………….…29
2.4.1. Filtrado de las señales analógicas…………………….…….…....32
2.5. Consideraciones finales……………………………………….…...…......33
3. IMPLEMENTACIÓN Y RESULTADOS…………………………………..…..34
3.1. Adquisición de la información del sensor de rpm……………….…..….34
3.2. Adquisición de la información del Vetus fluxgate compass…….…......35
3.2.1. Implementación del software…………………….…………….…..35
3.2.2. Comunicación RS-232………………………………….……..…....37
3.3. Validación de las mediciones…………………………………….........…38
3.3.1. Sensor de rpm………………………………………………......…..38
3.3.2. Sensor Vetus Fluxgate Compass…………………………..……..41
3.4. Análisis económico…………………………………………………..........44
3.5. Consideraciones finales…………………………………………......……44
CONCLUSIONES………………………………………………………….............46
vi
TABLA DE CONTENIDOS
RECOMENDACIONES……………………………………………….……………..47
REFERENCIAS BIBLIOGRÁFICAS………………………………………………..48
ANEXOS………………………………………………………………….…………...51
Anexo I: Diseño del hardware del sensor de rpm.……………………….............51
Anexo II: Diseño del hardware de la unidad DsPIC para el Vetus Fluxgate......53
Anexo III: Código fuente de la programación del Vetus fluxgate……………….55
Anexo IV: Partes del código fuente de la programación del sensor de rpm…..64
vii
INTRODUCCIÓN
Hoy en día el empleo de sistemas autónomos en la ejecución de tareas
submarinas se ha hecho algo común y hasta imprescindible en ciertos casos,
llevando a un rápido desarrollo de estas tecnologías y permitiendo la
ampliación de las fronteras que para el hombre presentaban las profundidades
de los océanos.
Las investigaciones iniciales en el campo de los AUVs (Autonomous
Underwater Vehicles) comenzaron en la década del 60, (Gorset, 2007). En
estos años solo unos pocos AUVs fueron construidos, la mayoría de ellos
fabricados para aplicaciones muy específicas. Poco después, en la década del
70, cuando los yacimientos petroleros de los mares del norte fueron
descubiertos, los vehículos operados de forma remota (ROV, Remotely
Operated Vehicles) fueron introducidos e inmediatamente su uso se extendió a
las tareas realizadas en las profundidades del océano que eran responsabilidad
de buzos hasta ese momento. Aun así, el uso de AUVs fue limitado, aunque se
reportan algunos desarrollos en los Estados Unidos cuyo objetivo era la
recolección de datos.
El progresivo desarrollo de los vehículos submarinos en los últimos años y la
incursión cada vez más frecuente de este medio en las investigaciones ha sido
crucial en el desarrollo de la industria de la oceanografía y de la industria
extractiva del petróleo. Este tipo de vehículos submarinos es objeto de varios
estudios a nivel mundial debido a su utilidad en un gran número de
aplicaciones, principalmente, en la sustitución del hombre en tareas de
inspección, exploración, búsqueda y recolección en ambientes peligrosos u
hostiles.
Numerosos centros de investigación cuentan hoy en día con vehículos
submarinos autónomos AUV y vehículos submarinos operados remotamente
para realizar experimentos y recoger datos. Por motivos de seguridad y de
reducción de costos el sumergible tripulado es rechazado para muchos trabajos
por lo que una de las variantes utilizadas son los AUV.
Un vehículo autónomo submarino (AUV), es un submarino que porta su propia
fuente de energía y medios de cómputo, ejecutando software y soluciones de
1
INTRODUCCIÓN
control que le permiten la ejecución de una misión sin intervención humana.
Durante la misión se pueden cambiar las instrucciones pre-programadas
potencialmente modificables, dependiendo de los datos obtenidos por los
sensores de abordo (Guerra, 2010).
En la navegación submarina se utilizan sensores acústicos como son las
sondas acústicas o ecosondas y el sonar, que registran las ondas sonoras y
ultrasonoras, permitiendo conocer la profundidad a la que se encuentra el lecho
marino, su naturaleza y configuración; así mismo, situar a otros navíos en la
superficie o sumergidos, lo que permite navegar en un ambiente relativamente
estructurado.
En el caso de la investigación que nos ocupa no se cuenta con dichos
sensores, por lo que la navegación por debajo de la altura de periscopio se
dificulta ya que no sabemos con exactitud el entorno que nos rodea, por lo que
es de vital importancia
lograr soluciones de navegación fiables que solo
requieran información de los sensores instalados abordo.
Con el transcurso de los años se han perfeccionado los métodos de
navegación autocontenidos destacándose las técnicas de navegación inercial
como variante autocontenida de mayor popularidad, no obstante la misma no
es válida para la operación independiente por largos períodos de tiempo debido
a los errores que acumula. Es por esta razón que nuevas variantes de
navegación inercial asistida han surgido, dichas técnicas involucran el uso de
sensores como el DVL (Doppler velocity log) o el uso del modelo matemático
de la planta (Lin and Wei, 2004; Hegrenaes, Hallingstad et al. 2007).
En países como Cuba, la población reside cerca del mar, y este constituye una
fuente de alimentos, recursos minerales y atracción turística, por lo que la
utilización de estos vehículos autónomos en distintas funciones de exploración
y supervisión se hace necesaria. De ahí, que el Centro de Investigación y
Desarrollo Naval (CIDNAV) , le hace la solicitud al Grupo de Automatización
Robótica y Percepción (GARP) de la Universidad Central ”Marta Abreu” de Las
Villas, de dotar de capacidades autónomas a uno de los vehículos diseñados
por dicho centro.
2
INTRODUCCIÓN
El CIDNAV es un centro con experiencia, que se ha ocupado del diseño y
construcción naval de varios tipos de vehículos sumergibles, mientras que
GARP ha trabajado en el desarrollo de varios vehículos autónomos y el
modelado matemático de distintos tipos de plantas (Pineda, 2009; Cañizares,
2010).
En la actualidad, y gracias a la colaboración entre ambos centros se puede
afirmar que se dispone de un prototipo de AUV. Los resultados obtenidos hasta
el momento pueden ser agrupados en las siguientes publicaciones:
Arquitectura de hardware y software de bajo nivel (Guerra, 2010; Martínez,
Rodríguez et al. 2010), Software de supervisión y control, (Martínez, Rodríguez
et al. 2010; Rodríguez and L.Ramos 2011), Instalación de sensores (Martínez,
Rodríguez et al. 2010), Modelo dinámico del HRC− AUV (Cañizares, 2010),
Estrategia de control de rumbo diseñada a partir del modelo del HRC−AUV
(Hernández, Valeriano et al. 2011), Software de navegación y guiado en tiempo
real para Vehículo Autónomo Sumergible (Lemus, 2011). Estos resultados se
basan en pruebas experimentales que suman más de 30 horas de trabajo,
lográndose resultados satisfactorios (Martínez, Rodríguez et al. 2010;
Hernández, Valeriano et al. 2011; Rodríguez and L.Ramos, 2011).
De acuerdo con lo planteado anteriormente la situación del problema reside
en continuar
trabajando en la arquitectura de hardware y software del
CIDNAV-AUV para lograr una navegación autónoma de mayores prestaciones,
dadas las carencias detectadas en la medición de rumbo y revoluciones del
motor principal del AUV.
Por lo hasta aquí expuesto el objetivo general de la investigación es:
Incluir en la arquitectura de hardware del CIDNAV – AUV sensores
complementarios que asistan la medición de rumbo y revoluciones del
motor principal.
En consecuencia, los objetivos específicos son:
Analizar el sensor Vetus fluxgate compass mediante ingeniería inversa y
desarrollar la interfaz de acople al hardware ya implementado.
3
INTRODUCCIÓN
Construir el sensor de rpm basado en principio óptico (infrared).
Validar las mediciones de ambos sensores y comprobar su integración al
resto de los sistemas de hardware y software.
La presente investigación está estructurada en: introducción, tres capítulos, los
cuales están organizados de la siguiente manera:
CAPÍTULO I: Se presenta un acercamiento teórico y conceptual que guía el
proceso investigativo; ello incluye además, la estructura general para el
CIDNAV-AUV, así como la importancia de la inclusión del Vetus Fluxgate
Compass y las principales formas de implementar el sensor de rpm según los
requisitos del sistema.
CAPÍTULO II: Descripción de los aspectos relacionados con la arquitectura de
hardware diseñado e implementado para la unidad DsPIC. Se exponen los
medios de cómputo utilizados en la misma, incluyendo las principales
características que dieron lugar a su selección, el análisis del sensor Vetus
Fluxgate Compass mediante ingeniería inversa y la implementación del sensor
de rpm.
CAPÍTULO III: Se aborda lo relacionado con la arquitectura de software a
utilizar y la validación de las mediciones de ambos sensores, así como
comprobar su integración al resto de los sistemas de hardware y software.
A las conclusiones y recomendaciones le siguen las referencias bibliográficas y
anexos.
4
CAPÍTULO I
CAPÍTULO I
1.
MARCO TEÓRICO REFERENCIAL
MARCO TEÓRICO REFERENCIAL
En este capítulo se abordará lo referente al estado actual de los AUV en el
mundo, así como los métodos de navegación existentes para justificar el uso
de los sensores a diseñar, ya que estos son importantes por la información
que los mismos brindan en el contexto del método de navegación
seleccionado. Se analizarán los principales modos de implementar los
codificadores para el cálculo de las rpm y se llegará a la conclusión de cual es
el más óptimo para la aplicación; de la misma forma se expondrá con que
sensores se obtiene el rumbo a partir del conocimiento del campo magnético
terrestre y como se incluirán los mismos a la arquitectura del hardware ya
diseñado.
1.1
Desarrollo de los AUV a nivel internacional.
Los vehículos sumergibles autónomos son objeto de investigaciones a nivel
mundial debido a su utilidad y áreas de aplicación. En la actualidad sirven para
la inspección subacuática visual, supervisión de áreas específicas y
cumplimiento de misiones en lugares de difícil acceso (Fossen and Ross,
2006). La necesidad de explorar las fuentes de recursos naturales marítimas se
ha vuelto imprescindible, dado que los mismos se han ido agotando sobre la
tierra. Por esta razón se realizan grandes esfuerzos para gestionar la
extracción de estos desde el lecho marino.
Los AUVs forman una nueva generación de vehículos robóticos para la
exploración, poseen su propio suministro de energía y no tienen ningún tipo de
liga física con la superficie; utilizan una computadora o alguna clase de
controlador o procesador electrónico para controlar el vehículo durante su
misión. Además, cuentan con sensores conectados a la computadora, los
cuales obtienen información de la navegación como profundidad, velocidad y
tiempo de la misión, etc.
Los sonares permiten a estos vehículos evitar obstáculos y mapear el fondo.
Pueden también, utilizar cámaras de video para capturar y almacenar
imágenes del viaje. Finalmente, cuando el AUV ha terminado de realizar su
5
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
misión descarga toda la información recolectada, si así se desea, en una
computadora que se encuentra en la superficie (buque madre).
Existen algunas desventajas en los AUVs dentro de las cuales se encuentran:
1) la cantidad de energía disponible es limitada, 2) los sensores no
proporcionan información lo suficientemente confiable, 3) la falta de
computadoras y programas capaces de procesar las grandes cantidades de
datos generados en tiempo real por los sensores.
Las mejoras futuras tanto en baterías como en sensores podrán ayudar a que
los AUVs sean la herramienta principal de los exploradores y de los científicos
del sector oceanográfico.
1.1.1
Definición.
Los vehículos autónomos sumergibles se encuentran dentro del grupo de
vehículos sumergibles no tripulados (UUV Unmanned Underwater Vehicle), son
vehículos que se desplazan en un medio acuático y efectúan diferentes
misiones sin la necesidad de llevar a bordo operadores humanos. Su
capacidad de navegación autónoma le permite ejecutar tareas previamente
programadas, los mismos poseen una fuente de energía propia e interactúan
de manera autónoma con el entorno (Fjellstad, 1994).
Los AUVs son controlados automáticamente y toda la inteligencia está
almacenada a
bordo en los sistemas de cómputo. Como existen variadas
tareas que los mismos no pueden realizar de forma autónoma pre-programada
pueden ser dirigidos desde estaciones remotas ubicadas para su monitoreo.
1.1.2
AUVs en desarrollo o explotación en la actualidad.
Numerosos centros de investigación cuentan con AUV para realizar
experimentos y recoger datos. Entre los proyectos de mayor significación que
pueden citarse están las implementaciones UROV-2000, AROV, AE 1000,
Ocean Voyanger II, Large-D UUV, ODIN II, Theseus, REMUS, Solar AUV,
SAUVIN,
Kerang(Clam),
Tiram(Oyster)
y
Sotong(Squid),
todos
estos
organizados cronológicamente desde los años 1990 a 2006 (Guerra, 2010).
6
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
Figura 1.1: Ejemplos de algunos AUV.
1.1.3
Aplicaciones.
Los AUVs durante su desarrollo se han convertido en una herramienta muy
importante en las operaciones en el mar, esto se ha hecho posible debido a
que han aumentado su rango de operación y su profundidad. A esto se le
añade la posibilidad de supervisión y cumplimiento de misiones en lugares de
difícil acceso, en los cuales la vida del hombre puede estar en peligro. Por lo
que cuentan con una gran variedad de aplicaciones como son:
Aplicaciones científicas y medioambientales.
 Inspección del fondo marino.
 Estudios de la biología marina.
 Recolección de datos de temperatura y variabilidad de las corrientes
oceánicas.
 Investigaciones ambientales e hidrográficas.
Aplicaciones industriales y comerciales.
 Comunicaciones submarinas, instalación e inspección de cables.
 Inspección de estructuras submarinas (oleoductos, diques, puertos).
7
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
 Mapeo con precisión del fondo oceánico para proyectos de cable y
tubería submarina.
 Monitoreo de volcanes marinos.
1.2
Métodos de navegación autocontenidos de los AUV.
La capacidad de navegar, entiéndase estimar la posición del vehículo en cada
momento, es inherente a los AUV. Existen varios métodos de navegación
autocontenidos, cada uno con sus características particulares y sensores que
miden las variables necesarias sin la necesidad de utilizar
métodos de
navegación que estén basados en el seguimiento de marcas, la cual es una
técnica que consiste en la detección de determinados elementos del entorno
que ayudan al proceso de localización de lugares relevantes para la tarea de
navegación. Una de las ventajas que ofrecen los sistemas de navegación
autocontenidos es que no necesitan del uso de referencias externas y trabajan
exclusivamente con sensores integrados en el vehículo como codificadores,
giróscopos, brújulas, acelerómetros, etc.; y sin ningún tipo de información
externa.
Desde los inicios los sistemas AUV han realizado una navegación
prácticamente a ciegas debido al reducido número de sensores operativos en
el ambiente subacuático. Es por esto que se han desarrollado sistemas
acústicos que dan una significativa ventaja al evitar posibles golpes o choques
contra el fondo o en la evasión de obstáculos.
Actualmente se va un paso más allá y se implantan sistemas de navegación
inercial combinados con sonar que ofrecen un sistema de navegación preciso y
de mayor frecuencia de actualización que los sistemas acústicos, pero a
cambio de una gran precisión también hemos de prever un aumento del costo.
1.2.1
Dead reconning.
Dead reckoning (navegación por estima), es una expresión que se deriva del
término náutico deduced reckoning (cálculo basado en inferencia), y es un
procedimiento matemático que utiliza fórmulas trigonométricas para inferir la
ubicación actual de un navío haciendo cálculos basados en el rumbo y la
8
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
velocidad de navegación a lo largo de un período. La amplia mayoría de los
sistemas robóticos móviles que se usan hoy en día, utilizan dicha técnica como
columna vertebral de su estrategia de navegación, siendo su principal limitante
la necesidad de eliminar los errores acumulados con continuos ajustes
provenientes de varios sistemas de ayuda a la navegación.
El dead reckoning es el sistema de navegación básico más utilizado en los
AUVs, el mismo hace referencia a la combinación de brújulas, sensor de
profundidad, y sensores de velocidad. En estos sistemas el compás que se
utiliza es de alta precisión, ofreciendo una estimación bastante exacta de la
trayectoria de los AUVs. La profundidad es medida con un sensor de presión a
bordo, y la altitud sobre el lecho marino es medida por el eco - sondeo acústico
(Kapaldo, 2005).
Una de las implementaciones más sencilla posible de esta técnica
habitualmente implica un cuentarrevoluciones a bordo del vehículo. Una técnica
común
para
implementarlo
consiste
en
utilizar
codificadores
ópticos
directamente acoplados a los motores de propulsión. El problema principal que
presenta este método es la dificultad de saber el error que se comete, lo que
provoca que a medida que se desplaza el vehículo se van acumulando los
errores, provocando errores de posicionamiento (Salinas, 2006). A pesar de
estas limitaciones, se piensa en este método como una parte importante de los
sistemas de navegación y, así mismo, las tareas de navegación se
simplificarían mucho si la precisión de este método mejorara.
Con el uso de este método si se conoce la posición de partida y se navega
cierta distancia a un determinado rumbo y a una determinada velocidad, se
puede en cualquier momento, encontrar la posición con una
construcción
geométrica.
Los errores en la estima resultan de muchos orígenes, incluyendo
conocimientos inexactos del punto de arranque del vehículo, una mala
alineación del sensor de rumbo y efectos de sincronismos entre los diferentes
sensores. Cualquier error presente en las condiciones iniciales se propagará
desde el principio hasta el fin de la trayectoria del vehículo. De forma
9
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
semejante, un compás desajustado causa una descompensación continua de
todas las mediciones y se traduce con el tiempo en una trayectoria aproximada
de dirección que se desvía de la verdadera del vehículo. A su vez, también
pequeñas variaciones de velocidad (provocadas por las corrientes oceánicas o
medios de propulsión) pueden retrasarlo o adelantarlo sensiblemente; también
puede haber desviaciones hacia la izquierda o derecha del camino prefijado.
Ello sumado a que dichas alteraciones pueden no haber sido constantes, da
como resultado que el punto obtenido como posición no es más que una
aproximación de la situación real del vehículo.
Cuando la navegación se realiza sobre una superficie pequeña del globo
terrestre hasta unas 300 millas o en latitudes altas, el cálculo de la estima se
hace sobre una aproximación al suponer la superficie plana.
1.2.2
Modelo básico.
El modelado es una tarea importante requerida en el proceso de la
implementación de un AUV. Dicho modelo es vital para la navegación, la
mayor parte de los resultados y el cumplimiento satisfactorio de las misiones
dependen de la precisión y exactitud del mismo. Con el uso del modelo se
puede obtener el estado de la navegación teniendo como entradas a la planta,
las rpm del motor de propulsión y los ángulos de timón.
El movimiento de un submarino en el mar se describe respecto a un sistema de
referencia inercial. Normalmente se supone que la aceleración respecto a tierra
de un punto en la superficie puede ser despreciada por vehículos marinos. Esta
aproximación es válida a partir de que la rotación de la Tierra afecta muy poco
a los vehículos marinos de baja velocidad.
En la figura 1.2 se representan los sistemas de coordenadas y la definición de
los movimientos de traslación y rotación del vehículo así como la notación
utilizada.
10
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
Figura 1.2: Notación para vehículos subacuáticos (Fossen, 1994).
El modelo del vehículo se dividió en tres subsistemas como los analizados en
la tesis de Julio R. Cañizares (Cañizares, 2010) para poder obtener los distintos
parámetros que lo componen, una vez encontrados los mismo se planteó un
modelo de 6GDL en el que a partir de las entradas de rpm y ángulo de timón es
posible estimar velocidades y posición del vehículo tanto angulares como
lineales acorde a la ecuación en espacio de estado 1.1 obtenida por Martínez
(Martínez, 2012).
vr
M
1
C
J
D
M 1G
0
vr
M 1
0
(1.1)
Donde M matriz de inercia incluyendo masas añadidas, C matriz de Coriolis
incluyendo masas añadidas, D es la matriz de amortiguamiento, G matriz de
fuerzas y momentos relacionados a la fuerza de gravedad y la flotabilidad del
vehículo y τ es la matriz de mandos generada a partir del producto de las rpm
y los ángulos de los timones con un grupo de ganancias (Valeriano, Martínez et
al. 2012), así mismo en dicha ecuación se tienen en cuenta los disturbios
ocasionados por el oleaje y las corrientes marinas. Con todos estos factores es
posible desarrollar una navegación basada en el modelo obteniéndose la
posición (η) y las velocidades del vehículo (ν).
11
CAPÍTULO I
1.2.3
MARCO TEÓRICO REFERENCIAL
Sistema de navegación inercial.
La Navegación Inercial utiliza sensores para obtener una estima de la posición.
La misma se vale de giróscopos y acelerómetros para medir las rotaciones y
las aceleraciones del AUV en su movimiento, es usada en un amplio rango de
aplicaciones
incluyendo
la
navegación
de
aeronaves,
submarinos
y
embarcaciones de superficie.
Un sistema de navegación inercial (INS) mide el movimiento o la aceleración
del AUV en tres ejes y razones de cambio angulares del cuerpo. También,
permite la estimación de la actitud, la posición y la velocidad del vehículo,
proporcionando una solución completa del estado de navegación (Woodman,
2007).
Estos sistemas actualmente son la parte mayoritaria de los sistemas de
navegación autocontenidos y constan de (Mohinder, 2007):
Unidad
de
medición
inercial
(IMU1):
Contiene
al
menos
tres
acelerómetros y tres giroscopios, montados en una base común,
manteniendo la ortogonalidad entre los ejes.
Computadora de navegación: Calcula el efecto de la gravedad y corrige
los biases y drifts de los acelerómetros de la IMU. A su vez, debe integrar
doblemente los valores de la aceleración para obtener la posición estimada.
Los errores de la IMU son debidos a que las variables medidas no son
directamente las que conforman el estado de navegación, en el proceso de
integrar las variables por medio de la integración de los datos ofrecidos por
acelerómetros y/o giróscopos situados a bordo hasta obtener las velocidades
en los 3 ejes posibles de desplazamiento
en función de los rumbos; este
proceso posibilita la obtención de la posición, acarreando un error en el tiempo
que en la mayoría de los casos siempre es superior a los márgenes de
tolerancia de la aplicación (Sosa, 2010).
1
La IMU utilizada en el CINAV-AUV es una variante que contiene
magnetómetro (Attitude and Heading Reference System IMU).
12
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
Por tal razón, para reducir estos errores se utiliza el algoritmo de Filtro
Extendido de Kalman (EKF, Extended Kalman Filter). La fuente de corrección
más frecuente en la implementación del EKF para soluciones de navegación es
el GPS, pero debido a que no se encuentra disponible cuando el vehículo se
sumerge, se introduce para la aplicación en cuestión el Modelo Dinámico del
Vehículo para Navegación (DNVM, Dynamic Navigation Vehicle Model). El
mecanismo de navegación diseñado cuenta con cuatro etapas fundamentales:
Suavizado de las Mediciones, Mecanización Inercial, Evaluación del DNVM,
estimación y corrección de errores mediante EKF (Lemus, 2011).
1.3
Variables necesarias básicas.
Todo sistema de navegación tiene variables que son básicas para su
implementación. La navegación desde un punto a otro cuando se realiza
conociendo las variables de rumbo y velocidad a la que se desplaza el vehículo
permite estimar en todo momento, la ubicación. Este método aunque es uno de
los más sencillos no deja de ser efectivo, por lo tanto, si se cuenta con los
sensores para medir dichas variables se puede realizar la navegación y puede
servir para comprobar las posiciones indicadas por otros sistemas de
navegación.
La variable de rumbo se puede estimar realizando una medición consistente en
obtener la orientación como función del campo magnético terrestre que se
detecte en el lugar. El principal problema que tiene este tipo de
posicionamiento es que el campo magnético de la tierra es distorsionado por
distintos factores como pueden ser sustancias ferro-magnéticas o campos
eléctricos. Esto hace que el uso de las brújulas magnéticas en estructuras con
casco de acero sea difícil.
Existen diferentes métodos para este tipo de medición basándose en los
diferentes efectos físicos que se dan en relación al magnetismo de la Tierra; el
más utilizado es el de la brújula de inestabilidad que mide la componente
horizontal del campo magnético de la Tierra (Salinas, 2006). El mismo, tiene
sus ventajas: bajo consumo de potencia; no contiene partes móviles por lo que
no se ve afectado por vibraciones.
13
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
La otra variable de vital importancia es la velocidad, la cual puede ser estimada
a partir del conocimiento de las rpm del motor de propulsión. Para su medición
se pueden utilizar codificadores ópticos, los cuales se pueden construir
teniendo en cuenta las necesidades de operación del sistema.
1.3.1
Compás magnético.
Los compases magnéticos son ampliamente utilizados para obtener el rumbo;
para ello, existen diferentes variedades basados todos en el mismo principio de
funcionamiento. Para medir los ángulos respecto al norte magnético utiliza un
pequeño anillo bobinado en el que se crea un minúsculo campo magnético al
hacer circular una corriente eléctrica; dicho campo magnético que se conoce al
crearlo mediante la circulación de una corriente eléctrica, es perturbado y
modificado por el campo magnético terrestre. Por ello, midiendo la magnitud de
esta perturbación se conocerá el ángulo que forma el sensor con el norte.
Estos brindan la información referente al rumbo. Las salidas son voltajes
analógicos, esta información se procesa y de esta forma con operaciones
matemáticas se obtienen
senos y cosenos que con una combinación de
ambos se pueden estimar la variable.
El sensor debe ser instalado en un lugar alejado de otros elementos
magnéticos que pudieran interferir la medida. Se debe instalar lo más próximo
al centro de gravedad del vehículo y separado convenientemente del casco;
cuanto más cerca esté instalado del centro de gravedad, se verá menos
afectado por un cambio brusco causado por el oleaje.
1.3.2
Codificadores ópticos.
Los encoders son sensores que generan señales digitales en respuesta al
movimiento y están disponibles en dos tipos, uno que responde a la rotación, y
el otro al movimiento lineal. Cuando son usados en conjunto con dispositivos
mecánicos, ruedas de medición o motores, estos pueden ser utilizados para
medir movimientos lineales, velocidad y posición. Los mismos, pueden utilizar
tanto tecnología óptica como magnética.
14
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
El sensor óptico provee altas resoluciones, velocidades de operaciones altas,
operación de larga vida en la mayoría de los ambientes; basan su
funcionamiento en la emisión de un haz de luz que es interrumpido o reflejado
por el objeto a detectar. Los sensores magnéticos se utilizan frecuentemente
en aplicaciones de trabajo pesado, proveen buena resolución, altas
velocidades de operación, y máxima resistencia al polvo, humedad, y golpe
térmico y mecánico.
Como la estructura del AUV es completamente metálica y el motor induce
grandes campos magnéticos, no es factible implementar un sensor con
principio magnético ya que se vería afectado significativamente por esto y las
mediciones que daría serían totalmente erróneas en su mayoría; por lo tanto
queda descartado para la implementación, la cual se realizará de forma óptica.
Los sensores ópticos están conformados por las siguientes partes:
 Fuente.
 Receptor.
 Circuito de salida.
La fuente origina un haz luminoso, usualmente con un LED, que puede tener
un amplio rango en el espectro incluyendo luz visible e infrarroja. Para la
mayoría de las aplicaciones se prefiere las radiaciones infrarrojas, pues son las
que mayor porcentaje de luz emiten, disipan menos calor y se ven menos
afectadas por fuentes de luz externas.
El receptor recibe el haz luminoso de la fuente, usualmente es un foto-diodo o
un foto-transistor. El foto-sensor debe estar acoplado espectralmente con el
emisor, esto significa que el foto-diodo o el foto-transistor que se encuentra en
el detector debe permitir mayor circulación de corriente cuando la longitud de
onda recibida sea igual a la del LED en el emisor. El receptor recibe los pulsos
de luz en sincronía con el emisor, esto permite ignorar radiaciones
provenientes de otras fuentes. Este tipo de recepción sincrónica sólo es posible
cuando la fuente y el receptor están en el mismo encapsulado (Alvarado,
2004).
15
CAPÍTULO I
1.3.2.1
MARCO TEÓRICO REFERENCIAL
Modos de detección.
Los sensores ópticos se colocan en tres configuraciones diferentes estas son:
detección directa, reflexiva y difusa. Las implementaciones que se llevarán a
cabo abordarán las dos primeras configuraciones con el objetivo de tener
varias salidas capaces de brindar la misma información y así poder comparar
las mediciones para tener el menor error posible y en caso de que alguna falle
tener una redundancia.
En la detección directa el emisor se coloca en frente del receptor y el objeto es
detectado cuando pasa entre ambos.
Figura 1.3: Detección directa.
En el modo de detección reflexiva el emisor y el receptor se colocan en el
mismo sitio uno al lado del otro y en frente de ellos se coloca una superficie
reflexiva, el haz de luz emitido choca contra el reflector para ser registrado por
el receptor. La detección ocurre cuando pasa el objeto impidiendo que el haz
de luz llegue hasta el receptor; esta configuración tiene la ventaja de que el
emisor y el receptor vienen en el mismo empaque. La superficie donde choca el
haz está formada por reflectores especiales o cintas reflexivas diseñadas para
que el haz regrese al foto-interruptor.
Figura 1.4: Detección reflexiva.
16
CAPÍTULO I
1.3.3
MARCO TEÓRICO REFERENCIAL
Fuentes de error.
Las principales fuentes de error de un compás magnético vienen dadas por la
proximidad de algún elemento magnético o una mala alineación del sensor por
lo que se debe montar en un lugar libre de todo material que pudiera causar
influencias magnéticas que le afectan. El lugar idóneo se encuentra en la parte
superior con una separación óptima del casco, en el eje central de la
embarcación. La distancia entre el sensor fluxgate y posibles fuentes de
interferencia ha de ser de un metro como mínimo.
Los detectores de tipo reflexivo pueden presentar problemas cuando el objeto o
las franjas a detectar tienen una superficie que refleja el haz de luz causando
que la información llegue al detector. La mayoría de estos sensores tienen un
área ciega dentro de la cual no pueden detectar, existe una región entre el
detector y la distancia mínima de detección en la cual si un objeto se ubica o
bien el haz de luz no lo toca, o bien el haz reflejado no llega al receptor
(Alvarado, 2004).
El principal error de los sensores de detección directa es que los mismos no
queden alineados correctamente ya que el receptor no recibiría el haz de luz
emitida por el emisor. Así mismo, cuando no son de luz infrarroja y son
ubicados en un área que está muy iluminada o donde se produzcan chispas se
verán afectados y no se activarían correctamente. Otro de los aspectos a tener
en cuenta es la frecuencia de muestreo, si no es la correcta para la aplicación
no se detectan los cambios ocurridos con la eficiencia requerida.
1.4
Arquitectura del hardware para lograr la navegación.
Los sistemas AUV han evolucionado su arquitectura computacional en los
últimos años para ser capaz de satisfacer demandas de operación y de la
aplicación que realizan, con el empleo de sensores, equipos de comunicación.
Los distintos centros que investigan sobre este tema emplean diversas
estructuras
de
hardware,
software
y
arquitectura
sensorial
para
su
funcionamiento.
17
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
Al transitar de los años la arquitectura de sistemas empotrados va quedando
definida por muchos centros de la forma computadora-microcontrolador. La PC
como medio de cómputo principal realiza básicamente, funciones de
navegación y control del sistema;
el microcontrolador ejecuta funciones
auxiliares de control, adquisición de sensores e interfaces básicas de
comunicación (Guerra, 2010).
Conjuntamente a una arquitectura computacional se necesita conocer el estado
del vehículo y el entorno que los rodea en todo momento para desarrollar las
misiones. Por lo que, están dotados de una estructura sensorial que le permite
obtener la información necesaria para desarrollarlas.
Entre los sensores más utilizados para estas aplicaciones se encuentran:
acelerómetros, giróscopos, magnetómetros, altímetros, modem acústico, sonar,
sensor de presión, profundidad, temperatura, velocidad de traslación y rotación,
sistema de posicionamiento global (GPS Global Positioning System) entre
otros. En la actualidad se continúan empleando varios de los sensores antes
mencionados, los cuales se encuentran internos dentro de una IMU (Unidad de
mediciones inercial).
Para el prototipo empleado en Cuba, el grupo de automatización, robótica y
percepción (GARP), adoptó una estructura de hardware para el proceso de
creación del autopiloto del CIDNAV-AUV (Guerra, 2010), la cual queda
implementada como se muestra en la figura 1.5.
Figura 1.5: Estructura del sistema.
18
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
Con respecto a la arquitectura se realizó una actualización en la propuesta
anteriormente como se muestra en la figura 1.6, donde se cambia la PC-103
por una PC-104 y la comunicación con el segmento remoto se realiza mediante
un Modem RS-232; así mismo, se introduce un compás magnético dando la
posibilidad de tener incluida otra variable que brinde la información del rumbo.
El sensor de rpm implementado con anterioridad era magnético y se ve
afectado por las características del ambiente en el que está ubicado. El nuevo
diseño se realizaría basado en el principio óptico de infrared.
Figura 1.6: Estructura actualizada del sistema.
1.5
Consideraciones finales.
Finalizado el capítulo, puede evidenciarse la importancia que tiene el vehículo
autónomo sumergible en el ámbito mundial tanto científico como industrial y
comercial, notando que numerosos centros de investigación cuentan con esta
tecnología.
Así mismo, se puede notar que con el transcurso de los años se han ido
perfeccionando los métodos de navegación autocontenidos, los que brindan
una información más exacta de la posición de los vehículos. Con la
combinación de varias de estas técnicas y haciendo uso de los sensores
necesarios, se pueden reducir los errores que los mismos proporcionan.
19
CAPÍTULO I
MARCO TEÓRICO REFERENCIAL
En correspondencia a lo antes analizado y de acuerdo con las características
del sistema en que será usado, se concluye que la implementación óptima del
sensor de rpm es el principio óptico.
Si se configura y se ubica el compás en un lugar donde las afectaciones
magnéticas sean las menos posibles, sería de mucha utilidad para comprobar
el rumbo del vehículo. Con la inclusión de ambos sensores se actualizará la
estructura del hardware para un aumento de las prestaciones del mismo.
20
CAPÍTULO II
CAPÍTULO II
2.
SENSORES A TRABAJAR
SENSORES A TRABAJAR
En este capítulo se abordará lo referente a la construcción del sensor óptico de
rpm, la ingeniería inversa del sensor Vetus fluxgate compass y el desarrollo de
una interfaz de acople al hardware ya implementado en el CIDNAV-AUV. Se
realiza un análisis de los errores de medición de los dos sensores
implementados y se da una descripción de las unidades DsPIC y PC-104 a la
que serán conectados.
2.1
Principio de funcionamiento.
Como se mencionó en el capítulo anterior se pretende realizar una navegación
asistida por el modelo matemático de la planta. Dicho modelo tiene como
entradas las rpm del motor propulsión y los ángulos de timón del submarino.
Para medirlas se utilizará el sensor óptico construido, el mismo presenta una
estructura similar a un encoder el cual a la salida entrega un tren de pulsos
con una frecuencia proporcional a la velocidad con que rota el motor de
propulsión. El número de pulsos por revolución está relacionado directamente
con el número de ranuras que posea la pieza acoplada al rotor del motor.
Actualmente para conocer el rumbo se cuenta con los magnetómetros dentro
de la IMU, pero la misma al estar dentro del vehículo se ve afectada por los
elementos ferro-magnéticos que componen el casco y los campos magnéticos
provocados por el motor de propulsión por lo cual, se le agregará al hardware
ya implementado un compás adicional ubicado en el exterior y separado
convenientemente del casco, permitiendo obtener una medición redundante
que facilitará la información de la orientación basado en el campo magnético
que se detecte en el lugar.
2.2
Implementación del sensor de rpm.
Para la implementación del sensor de rpm se utilizaron dos sensores con el
objetivo de implementar los codificadores ópticos analizados en el capítulo
anterior. Uno de ellos es basado en el integrado CNY70 y el otro se implementó
a partir de un diodo de emisión infrarroja y un foto-transistor.
21
CAPÍTULO II
SENSORES A TRABAJAR
Para ello, se acopla al eje del rotor del motor de propulsión un disco similar al
que se puede observar en la figura 2.1. El mismo crea una superficie reflexiva y
un grupo de ranuras para el funcionamiento de ambos modos de detección. El
ancho de las ranuras como de las franjas oscuras solo influye en la duración
del pulso, es decir, el tiempo que está en alto la señal.
Figura 2.1: Disco de acople al rotor.
2.2.1 Modo de conteo por detección de reflejo.
El integrado CNY70 es un sensor óptico reflexivo que tiene una construcción
compacta donde el emisor de luz y el receptor se colocan en la misma
dirección para detectar la presencia de un objeto, utilizando la reflexión
infrarroja sobre el objeto. Este se compone de un diodo emisor infrarrojo y un
foto-transistor, integrados en el chip. La longitud de onda de trabajo es 950nm.
Figura 2.2: Estructura del Sensor CNY70
La figura 2.2 muestra la estructura del CNY70 que tiene cuatro pines de
conexión que se corresponden con el emisor, colector del transistor y el ánodo
y cátodo del diodo emisor. El medio reflectante es el disco que es acoplado al
22
CAPÍTULO II
SENSORES A TRABAJAR
rotor del motor de propulsión, la resolución depende del número de franjas
oscuras que posea en las cuales la reflexión se interrumpirá creando así un
tren de pulsos a la salida. La distancia d no debe ser mayor de 1 cm debido a
que mientras más lejos se encuentre la superficie, la salida de corriente del
colector se hace más pequeña, por lo que la distancia óptima para el acople se
encuentra entre 0.5cm y 1cm proporcionando una salida de 50mA a 5mA
respectivamente.
2.2.2
Modo de conteo por detección directa.
Similar a lo descrito en el capítulo anterior referente a la implementacion del
codificador óptico funcionará el sensor de detección directa, el mismo revelará
las ranuras que se encuentran en la parte superior del disco. La
implementación es con un diodo infrarrojo y un foto-transistor por separado los
cuales quedan alineados y con un espacio entre ellos de 1.5cm a 2cm por el
que gira el disco interrumpiendo la señal. Esta configuración implementada es
con el objetivo de tener redundancia de hardware.
2.2.3 Circuito de salida.
Hay varias formas de implementar el circuito de salida, en la hoja de datos del
sensor se encuentran algunas configuraciones básicas. Así mismo, existen
varios tipos de salidas discretas o digitales que se denominan de esta manera
por tener dos estados (Alvarado, 2004). La señal se introducirá
a un
microcontrolador como se muestra en la figura 2.3 por lo que es conveniente
pasar las salidas a través de un circuito Schmitt Trigger2 para conformar las
señales; este circuito se encuentra dentro del bloque de salida y el filtro es con
el objetivo de eliminar los picos producidos por el transistor conectado a la
salida del sensor.
2
Convierte una tensión de entrada de variación lenta en una onda de salida
con cambio brusco.
23
CAPÍTULO II
SENSORES A TRABAJAR
Figura 2.3: Diagrama en bloque del sensor de rpm.
En la figura 2.4 se muestra el circuito electrónico diseñado, el cual se simuló
empleando el software de diseño Proteus v7.6 que está designado para la
simulación de circuitos electrónicos y la creación del respectivo PCB.
El circuito es igual para las dos implementaciones, tanto de detección directa
como reflexiva. En el integrado CNY70 el emisor infrarrojo emite una señal que
será reflejada por el disco haciendo que la misma llegue al foto-transistor. Al
pasar una franja negra el haz infrarrojo se corta, el transistor Q1 que estaba en
estado de saturación conectando a R5 se abre, enviando a través de R5 un
pulso al detector de flancos que es un Schmitt Trigger inversor encargado de
limpiar la señal de salida y, como resultado se obtiene un pulso nítido libre de
ruido, como es un inversor la señal se invierte otra vez para obtener un uno
cuando se detecte la franja.
Similar ocurre con el de detección directa, para obtener un uno cuando pase
una ranura se invierte la salida una sola vez, de manera que al girar el disco se
genere un tren de pulsos con una frecuencia proporcional a la velocidad con
que rota el motor, el cual es enviado al DsPIC para calcular las rpm del motor
de propulsión. La amplitud de los "1" de la salida es igual a la tensión de
alimentación que puede estar entre 5 y 12 voltios. En el circuito impreso
diseñado se puede seleccionar entre ambos voltajes mediante el empleo de
jumpers de selección.
24
CAPÍTULO II
SENSORES A TRABAJAR
Figura 2.4: Diagrama electrónico del sensor de rpm.
Una vez montado el circuito electrónico se realizaron un conjunto de pruebas,
en el cual se utilizó un motor con un variador de frecuencia encargado de
cambiar las rpm del motor y un tacómetro acoplado al otro extremo del eje para
comprobar la forma de la onda a la salida del sensor implementado, el
hardware utilizado para la adquisición de los datos es una tarjeta Humsoft 614
en la cual el tiempo de muestreo escogido fue el máximo posible siendo este
de 1ms.
En la prueba pudo observarse que entre ambas medidas existía un margen de
error, debido al tiempo de muestreo que nos brinda la tarjeta de adquisición; el
tren de pulso generado como se muestra en la figura 2.5 queda bien
conformado brindando de esta forma una salida óptima para enviar al DsPIC y
realizar la programación necesaria para obtener las rpm que se utilizarán en la
navegación asistida por modelo matemático.
Para la prueba el motor rota a 900 rpm obteniéndose de un flanco de subida a
otro un tiempo aproximado de 0.017s en la implementación directa donde el
disco consta de cuatro ranuras, tal y como se muestra en la figura 2.5; en la
25
CAPÍTULO II
SENSORES A TRABAJAR
detección reflexiva con dos franjas oscuras en el disco el tiempo es de 0.034s,
como se observa en la figura 2.6.
Figura 2.5: Tren de pulsos de la implementación directa.
Figura 2.6: Tren de pulsos de la implementación reflexiva.
Al obtener los tiempos que demoran las señales de un flanco al otro se puede
utilizar la ecuación 2.1 para calcular las rpm del motor de propulsión. Donde n
es el número de ranuras o franjas oscuras con que cuenta el disco y t el
tiempo.
RPM
60
(n * t )
(2.1)
2.2.4 Errores.
En la implementación del sensor analizado hasta el momento se puede
observar que las principales fuentes de error de este método son originadas a
26
CAPÍTULO II
SENSORES A TRABAJAR
partir de un mal acople mecánico del disco al eje del motor de propulsión
causando esto que los sensores no queden a las distancias especificadas para
cada uno. Si la superficie no refleja suficiente el haz de luz emitido o el cambio
de la zona oscura a la otra no está definido claramente, provoca que el sensor
de una salida errónea. Teniendo en cuenta lo antes expuesto las franjas y
ranuras diseñadas deben ser simétricas y estar separadas a la misma
distancia.
Un aumento de las rpm trae consigo que el tiempo entre las ranuras disminuya,
provocando esto que el sensor tenga que ser capaz de muestrear a mayor
frecuencia por lo que es factible disminuir a dos las ranuras si se desea
aumentar la velocidad del motor a más de 1800 rpm
2.3
Ingeniería inversa del Vetus Fluxgate Compass.
Como compás adicional para la detección de rumbo del CINAV-AUV se emplea
el Vetus Fluxgate Compass, este tipo de compás utiliza un detector de
inducción magnética (fluxgate), para leer electrónicamente el campo magnético
de la Tierra. La exactitud del rumbo depende de la instalación del mismo, el
cual queda alineado con la proa del vehículo. Esta información la brindan sus
salidas con voltajes analógicos referentes a los ángulos.
El rango de voltaje de las salidas varía desde los 1.5V a 3.5V, esta variación es
la que se produce al variar la posición del instrumento de estar alineado con el
campo magnético de la tierra a estar opuesto con el mismo. La diferencia se
corresponde con los valores de los senos y los cosenos que varían en este
rango, estas variaciones son sumadas a un voltaje fijo de 2.5V para aumentar
el valor de la señal a transmitir. El compás cuenta con dos bobinas
perpendiculares, para evitar una salida ambigua en una resolución de 360⁰. El
voltaje inducido en la bobina del compás varía en función del campo magnético
terrestre.
Las salidas del sensor serán óptimas hasta un ángulo de cabeceo aproximado
de 15⁰ y de balanceo de 30⁰ estos ángulos son los que puede medir por las
27
CAPÍTULO II
SENSORES A TRABAJAR
salidas cinco y siete, con una precisión de ±1.5⁰. El mismo cuenta con siete
líneas de conexión como se muestra en la tabla 2.1.
Tabla 2.1: Conexión del Vetus Fluxgate Compass.
Cableado
1 Rojo
2 Azul
3 Amarillo
4 Morado
5 Blanco
6 Marrón
7 Negro
2.3.1
Rango
5
0
2.5
1.5 - 3.5
1.5 - 3.5
1.5 - 3.5
1.5 - 3.5
Parámetro
V. Referencia
Rumbo Coseno 0
Cabeceo Coseno 1
Rumbo Seno 0
Balanceo Seno 1
Unidad
V
V
V
V
V
V
V
Obtención de los ángulos de rumbo.
El rumbo se puede estimar con una relación entre los valores de las salidas
cuatro y seis de la tabla 2.1. Las salidas analógicas de la cuatro a la siete se
comportan como se definen en las ecuaciones (2.2) y (2.3).
Vy
Vref
cos
(2.2)
Vx
Vref
sin
(2.3)
Para la obtención del rumbo en grados se utiliza la ecuación 2.4, evitando de
esta forma que se obtenga una salida ambigua.
arctan
Vx
Vref
Vy
Vref
(2.4)
2.3.2 Corrección de errores.
El sensor se verá afectado principalmente por tres causas fundamentales
dentro de las que se encuentra el error provocado por una mala alineación,
objetos permanentemente magnéticos relativamente cerca y la presencia de
elementos ferro-magnéticos
momentáneamente. En los dos primeros casos
es necesario un elemento externo capaz de proporcionar
el rumbo para
28
CAPÍTULO II
SENSORES A TRABAJAR
comprobar los mismos y corregirlos, en caso del último es necesario evitar la
presencia de esto elementos.
El error debido a una mala alienación se corrige como se muestra a
continuación con la ecuación 2.5, tomando la medición del compás y la
referencia externa de otro instrumento.
Compás
Referencia
Error
4°
0°
+4°
98°
90°
+8°
180°
180°
0°
272°
270°
+2°
Error de alineación =
em á x
emín
2
(2.5)
Si el error es positivo se gira a la izquierda y en caso de ser negativo hacia la
derecha, para mayor exactitud se puede realizar la prueba cada 45°. Cuando
es menor de 10° es debido a un problema de precisión al ubicar el instrumento,
cuando es mayor es provocado por objetos magnéticos cerca.
Una de las ventajas de procesar la información brindada por el compás es que
si se conoce la desviación provocada por estos elementos se puede corregir la
información mediante el uso de las ecuaciones, es decir si se observa una
desviación hacia cada uno de los puntos cardinales se le suma o resta el valor
en cada uno de los cuadrantes.
2.4
Hardware de adquisición.
La arquitectura de hardware del segmento a bordo está compuesta
esencialmente por dos unidades de cómputo y una unidad de potencia. Las
unidades de cómputo son: una computadora industrial PC-104 y un sistema
empotrado basado principalmente en microcontroladores, específicamente
DsPIC33FJ64MC804 de Microchip. Estas dos unidades se dividen, el trabajo
de adquisición de datos desde los sensores y las tareas de navegación y
control (Guerra, 2010).
29
CAPÍTULO II
SENSORES A TRABAJAR
La función principal de la unidad DsPIC es la adquisición de varios tipos de
sensores de origen analógico y digital. La ubicación del compás y el sensor de
rpm, se encuentra distante de la arquitectura central por lo que no es
conveniente enviar señales analógicas que serán afectadas por el motor de
propulsión. Por consiguiente, se incluirá en el propio sensor un DsPIC30F3013
para el procesamiento de las señales y enviar la información de los ángulos de
forma digital por el protocolo de comunicación RS-232, que es una variante de
comunicación serie.
Programación
PROG1
S1
UART
Interface AUX
Encoder 1 - 2
Desplazador de
nivel
SPI
DAC
DsPIC33FJ64MC804
SPI
DI/O
DI/O1 - DI/O11
Cristal
ADC
X1
8 MHZ
AI1 – AI8
Filtrado analógico
Desplazador
de nivel
RS0 – RS1
Reset
LED1
± 10v
PWM1 – PWM4
SPI1-SPI2
SA1-SA2
Figura 2.7: Estructura general de la unidad DsPIC.
La estructura general de la unidad DsPIC es como se muestra en la figura 2.7 a
la cual se le enviará la información del sensor de rpm por las entradas digitales
que posee la misma, este diseño consta de dos DsPIC uno es el encargado de
procesar las entradas analógicas y enviar esta información por SPI y la otra
parte es la encargada de la comunicación con los demás periféricos del CINAVAUV. Las señales provenientes del compás serán enviadas por comunicación
RS-232 a la PC 104 que es la encargada de la navegación.
30
CAPÍTULO II
SENSORES A TRABAJAR
El microcontrolador que se incluye en el compás destaca por su capacidad de
procesamiento, versatilidad y diversidad de interfaces disponibles. Pueden
alcanzar un desempeño máximo de 30 millones de instrucciones por segundo
(MIPS), con un oscilador configurable para distintas frecuencias de ejecución.
Siendo el DsPIC30F3013 de los específicos para sensores.
El DsPIC presenta 2 KB de RAM y 1 KB de EEPROM (no volátil) permitiendo
esto almacenar el valor de corrección del rumbo, cuenta con un amplio set de
instrucciones y ocho niveles de prioridad de interrupción que permiten el diseño
de un software de altas prestaciones. Entre los periféricos incluidos presenta
tres temporizadores de 16 bit cada uno.
El DsPIC posee diez entradas analógicas con un conversor A/D de 12 bit de
resolución y velocidad de conversión de 200 Ksps (kilo muestras por segundo)
con una precisión de 0.0012V por bits, satisfaciendo las necesidades de la
aplicación. De igual manera, presenta las interfaces de comunicación serie más
comúnmente empleadas en la actualidad por los distintos dispositivos
empleados en sistemas empotrados, como son: dos módulos UART (Universal
Asynchronous Receptor Transmitter), un SPI (Serial Peripheral Interface), un
I2C (Inter-Integrated Circuit).
En la figura 2.8 se puede observar la arquitectura del DsPIC a emplear en el
sensor de rumbo donde se utilizarán dos líneas analógicas para la
comunicación con el compás, las que serán muestreadas a 1KHz y dos
digitales para incluir un sensor de presencia de agua siendo el mismo dos
electrodos, que en caso de que el agua penetre dentro se cortocircuitarán. Es
necesario incluirlos ya que el compás se encontrará ubicado en el exterior del
vehículo. Se utilizará la interfaz RS-232 para la comunicación entre el sensor y
la PC-104 encargada de procesar la información digitalizada del sensor. Para
lograr la comunicación es necesario el empleo de un integrado MAX232
encargado de trasladar los voltajes.
Sobre el desempeño del chip influye directamente la frecuencia del cristal de
cuarzo utilizado, por lo que se utiliza un cristal de 8MHz y el oscilador se
configuró para trabajar a 32 MIPS.
31
CAPÍTULO II
SENSORES A TRABAJAR
Programación
Filtrado Analógico
8 MHZ
Reset
ADC
Cristal
DsPIC30F3013
AI0-AI5
S1
DI/O0-DI/O2
RS-232
DI/O
Desplazador
De Nivel
PC-104
Figura 2.8: Arquitectura del DsPIC30F3013.
2.4.1 Filtrado de las señales analógicas.
El microcontrolador como antes se comentó posee diez entradas analógicas
con un rango de señal de 0 – 5v, de las cuales se utilizan dos en el compás
(AI0 – AI1). Cada entrada tiene un acondicionamiento analógico conformado
por un filtro de segundo orden pasó bajo con la función principal de eliminar el
efecto de “aliasing”. En la figura 2.9 se ilustra el circuito de acondicionamiento.
Figura 2.9: Circuito de acondicionamiento.
32
CAPÍTULO II
2.5
SENSORES A TRABAJAR
Consideraciones finales.
A lo largo de este capítulo se han sentado las bases para la implementación del
software necesario para la estructura de hardware de cada sensor a incluir en
el CINAV-AUV.
Se diseñó una estructura electrónica a partir de los sensores ópticos con que
se contaba, capaz de generar un tren de pulso con un período entre flancos
proporcional al número de ranuras del disco y a la velocidad con que rota el
motor de propulsión, quedando esto registrado en las gráficas de la sección
2.2.3.
Mediante el estudio del Vetus Fluxgate Compass quedaron definidas las
ecuaciones para la conversión de los voltajes de salidas a grados, así como el
significado de cada una de sus salidas.
Se desarrolló una estructura a partir del DsPIC30F3013 capaz de procesar la
información brindada por el compás.
33
CAPÍTULO III
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
3. IMPLEMENTACIÓN Y RESULTADOS
En el presente capítulo se describe lo relacionado con la implementación del
software a utilizar y la validación de las mediciones de ambos sensores, así
como comprobar su integración
al resto de los sistemas de hardware y
software, implementando la estructura del hardware para la adquisición y
procesamiento de la información proveniente del compás y el sensor de rpm.
3.1
Adquisición de la información del sensor de rpm.
En la navegación basada en el modelo matemático del AUV se requiere la
medición de la velocidad de rotación del motor de propulsión. En el capítulo
anterior se mostró el sensor diseñado con el propósito de medir esta variable,
el mismo trabaja de forma similar a un encoder. Con una interface digital
configurable a voltajes entre 5v (TTL compatible) o 12v, la señal trasmitida
corresponde a un tren de pulsos, cuya frecuencia es proporcional a la velocidad
de rotación del motor.
La arquitectura de software en la unidad DsPIC, encargada de procesar la
información del sensor, está conformada básicamente por cinco procesos
fundamentales y varios subprocesos. En el proceso de inicialización se procede
a la configuración inicial de los componentes internos de hardware y software
en el procesador, así como de los periféricos externos al mismo. De esta tarea
se deriva el posterior funcionamiento del sistema, por lo que se realiza en la
subrutina principal y se produce una sola vez en el transcurso de la misma. La
mayor parte de dichos procesos están constituidos precisamente por subrutinas
de atención a interrupción y no dependen del flujo secuencial en el programa
(Guerra, 2010).
Cada uno de estos procesos está organizado según su nivel de prioridad y el
tiempo en que se ejecuta, en algunos casos son periódicos y en otros
aperiódicos. En la figura 3.1 se ilustra el diagrama de flujo del proceso cuatro,
que es el encargado de procesar la información procedente del sensor de rpm.
La señal se introduce a la unidad DsPIC por medio del canal digital DI/O0 como
se muestra en la figura 2.7 que corresponde en el chip a la entrada del
34
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
contador dos, y es utilizado en la medición de frecuencia. El contador es
ajustado para que produzca una interrupción cada tres pulsos, lo cual garantiza
menor tiempo de uso del procesador; en la subrutina de atención a interrupción
se realizan dos procesos esencialmente: el primero es capturar el tiempo en
que se produjo la interrupción; el segundo, ejecutar la diferencia entre el tiempo
actualmente capturado y el anterior. Con esto se obtiene el período entre
interrupciones y con la ecuación 2.4 se obtienen las rpm.
Prioridad 4 Aperiódico
Interrupción
contador2
Diferenciar tiempos
entre interrupción
Calcular RPM
Retorno de
interrupción
Figura 3.1: Diagrama de flujo del sensor de rpm.
La ventaja de la utilización de interrupciones para detectar el estado de un pin,
es que el programa no tiene que estar comprobando su estado continuamente;
cuando el pin se activa se genera una interrupción que desviará
momentáneamente el funcionamiento del programa, ejecutará el segmento de
código apropiado para ese evento y continuará la ejecución nominal del
programa.
3.2
Adquisición de la información del Vetus fluxgate compass.
El hardware encargado de procesar los datos del compás fue diseñado en el
capítulo anterior, y se basa en un DsPIC30f3013. Las entradas analógicas
serán muestreadas con una frecuencia de 1Kz y la información será enviada
por RS-232 a la PC.
3.2.1
Implementación del software.
El sistema al que se integrará el compás necesita que la información brindada
por este sea fiable, por lo que se decide agregarle un DsPIC al sensor con el
35
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
objetivo digitalizar la información y de que sea capaz de comunicarse con los
demás medios de hardware por el protocolo antes mencionado.
La programación se realizó utilizando el entorno de programación MPLAB
brindado por Microchip. El programa cuenta con cinco etapas como se puede
observar en la figura 3.2, para la programación se muestrean las salidas cuatro
y seis que son las necesarias para el rumbo. La figura 3.2 muestra un diagrama
de flujo con las etapas del software diseñado para la unidad DsPIC
correspondiente.
Obtención del rumbo
1Kz
Programa Principal
Inicializar conversor A/D
Adquisición de señales
Calibración
Conversión a grados
Enviar señal por RS-232
Retornar
Figura 3.2: Diagrama de flujo para el Vetus Fluxgate Compass.
La primera de las etapas es la inicialización del conversor A/D siguiéndole la
adquisición de las señales desde el sensor por las entradas AI0 a AI1. Es
necesario obtener al menos por primera vez, la información del rumbo de un
elemento externo fiable para conocer el efecto del casco del vehículo, y de esta
forma poder corregir la desviación provocada. Por lo que se orientará el
vehículo hacia el norte y una vez que se encuentre ubicado en esa dirección
se enviará un código por el puerto serie para calibrar el instrumento. Donde se
calcula la diferencia entre el rumbo del sensor y el norte, luego este error será
almacenado en la memoria EEPROM del DsPIC, haciendo el proceso anterior
solo una vez, al terminar se informa a la PC-104 que la calibración ha sido
realizada.
36
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
El diagrama de flujo de la etapa para calcular el rumbo se muestra en la figura
3.3.
Cálculo del rumbo
Vx=2.5-AI0
Vy=2.5-AI1
Si
No
Vx (+)
Vy (+)
No
Vx (+)
Vy (-)
Si
R=atan(Vx/Vy)
Si
S
Vx (-)
Vy (-)
R =180⁰+atan(Vx/Vy)
No
R=atan(Vx/Vy)
Si
R =atan(Vx/Vy)-180⁰
Fin
Figura 3.3: Diagrama de flujo para el cálculo de rumbo.
En esta etapa se resta 2.5 menos los valores de voltaje de las entradas AI0 y
AI1 para obtener los valores entre los que puede estar el seno y el coseno
dígase de -1 a 1 y luego se procede a comparar los voltajes analógicos
obtenidos Vx y Vy con el objetivo de calcular el rumbo del instrumento, el
mismo se enviará a la PC-104 en un formato de 0⁰ a ±180⁰ para poder
comparar con la IMU.
3.2.2
Comunicación RS-232.
RS-232 es una interface de comunicación estándar y una de las más usadas
en temas de diseños empotrados, ya que permite la comunicación con
dispositivos a distancias hasta de 15m con gran fiabilidad, además de ser
utilizada en múltiples tipos de sensores y dispositivos. En el caso que ocupa a
la investigación, la comunicación con la computadora industrial (unidad PC104) se produce mediante esta vía.
El microcontrolador implementa lógica TTL con niveles de 0 – 5v mientras
que RS-232 tiene lógica negada, bipolar y con niveles de voltaje que varían de
37
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
±3v a ±25v. Para establecer una compatibilidad es necesario adicionar al
diseño un componente externo desplazador de nivel (Catsoulis, 2005). Por lo
que se hace necesario el empleo del circuito integrado MAX232, el mismo
ofrece dos trasladores de nivel sin necesidad de otros componentes externos
para su funcionamiento, se energiza con 5v y trabaja con velocidades hasta
120 Kb/s.
En la tabla 3.1 se muestran los parámetros de configuración del puerto serie
para la comunicación.
Tabla3.1: Configuración del puerto.
3.3
Parámetro
Configuración
Aplicación
Puerto serie
1-bit de parada, sin paridad,8 bits de
Comunicación
(RS-232)
datos, velocidad 115200
con PC-104
Validación de las mediciones.
Para garantizar la fiabilidad y comprobar las prestaciones de los sensores
diseñados, se realizó un grupo de pruebas comparativas contra un grupo de
elementos profesionales de características conocidas. Para realizar dichas
pruebas se utilizaron las arquitecturas de hardware diseñadas para cada
sensor. Se obtienen los datos de esta forma y luego, se comparan con la
información brindada por los elementos profesionales, obteniéndose los errores
medios y varianza de las mediciones.
3.3.1 Sensor de rpm.
Para comprobar el correcto funcionamiento del sensor de rpm se utiliza un
variador de frecuencia LG-iG5 con el objetivo de ir variando la velocidad del
motor escogido para la prueba.
Como elemento comparativo fue seleccionado un tacogenerador capaz de
medir la velocidad con una precisión de ±0.5%, al mismo se le conecta un
voltímetro que mide aproximadamente 120V para una salida de 1800 rpm el
cual tiene una exactitud de ±0.2%. Teniendo en cuenta que el error en la
38
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
medición es serie, se puede calcular el error total con la ecuación 3.1 por lo que
la medición tendrá una exactitud de ±0.54%.
error
x12
x22
(3.1)
El sensor diseñado se conectó a la unidad DsPIC y la información fue enviada
a la PC por el protocolo de comunicación serie RS-232 el mismo cuenta con un
rango de trabajo entre 10 y 1800 rpm. Para realizar la prueba se fue variando la
velocidad obteniéndose los resultados mostrados en la figura 3.4.
Figura 3.4: Resultados obtenidos.
Con los resultados obtenidos puede observarse que existe un error entre las
mediciones del tacogenerador y la implementación diseñada, pero teniendo en
cuenta lo anteriormente expuesto sobre la exactitud del instrumento de
comparación, esta diferencia puede ser menor. La diferencia entre el modo de
detección reflexivo y el directo es de solo unas décimas.
Para calcular el valor del error cometido es necesario realizar varias
mediciones consecutivas bajo las mismas condiciones de operación, por lo que
39
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
se energizará el motor y luego se apagará, realizando la operación entre cinco
y diez veces que es lo recomendado. En la tabla 3.2 se muestran los resultados
de las mediciones contra una señal de entrada de 900 rpm, obteniéndose un
error del instrumento de 0.75% en ambas implementaciones.
Tabla3.2: Resultados para comprobar la fiabilidad.
Rpm 3
Rpm 3
Rpm 3
Rpm 3
Rpm 3
Rpm 3
Rpm 3
Rpm 3
Profesional
Tacogenerador
900
900
900
900
900
900
900
900
X
S2
S
-
Parámetro
Implementación diseñada
Reflexiva
Directa
893.3
893.5
894.6
893.1
893.3
893.5
892.7
893.5
893.1
892.9
893.3
893.5
893.1
892.9
892.7
893.1
893.26
0.3098
0.556
893.25
0.067
0.259
Con las ecuaciones 3.2 y 3.3 se calculan la varianza y la desviación estándar
del sensor, debido a que estos parámetros dan un criterio respecto a la
precisión y fiabilidad del mismo, siendo fiable cuando las características del
instrumento no cambian apreciablemente en el tiempo y preciso cuando la
repetitividad en sus medidas conduce a resultados muy similares.
n
xi
s2
x
i 1
n
(3.2)
(3.2
1
n
xi
s
2
x
i 1
n
1
2
(3.3)
Con los resultados obtenidos del cálculo de la deviación estándar del
instrumento se puede observar que la implementación reflexiva tendrá el doble
de variación que la implementación directa. Esto es debido a que en la primera
40
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
se utilizan dos franjas oscuras por vuelta para la obtención de las rpm y la
implementación directa cuenta con cuatro ranuras por vuelta. Siendo esta
ultima más fiable en la medida.
La clase de un instrumento, nos indica cual es el error absoluto máximo, el cual
se mantiene en cualquier lugar de la escala. Por lo que es importante realizar
los cálculos correspondientes para conocer dicha clase, con el uso de la
ecuación 3.4 se puede obtener la misma.
k
X
X
100
(3.4)
m
En la tabla 3.3 se muestran los resultados de las pruebas. Para calcular la
clase del instrumento Δx es la mayor separación entre el valor medido con el
instrumento y el valor real (1800-1791.4), siendo
Xm (1800) el rango de
medición, por lo que se obtiene como resultado 0.47 en el peor de los casos,
teniendo en cuenta las normas cubanas la clase es 0.5.
Tabla 3.3: Resultados para comprobar exactitud.
Parámetro
Rpm 1
Rpm 2
Rpm 3
Rpm 4
Rpm 5
Implementación
Tacogenerador
Reflexiva
450
445.8
600
594.8
900
893.6
1200
1192.2
1800
1791.9
Directa
445.1
595.0
893.5
1191.7
1791.4
3.3.2 Sensor Vetus Fluxgate Compass.
Para comprobar el funcionamiento del sensor, este se conecta a la unidad
DsPIC30f3013 y se muestrean las entradas analógicas a 1Kz. Se obtuvo una
trama de los datos enviados a la PC y se simularon en MATLAB diseñando de
esta forma un filtro digital paso bajo de Butterworth, cuarto orden con una
frecuencia de corte de 100Hz, con el objetivo de mejorar la señal de salida
como se muestra en la figura 3.5.
41
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
Figura 3.5: Señal de salida del Vetus Fluxgate Compass.
El sensor se ubicará a 1m de distancia del casco del vehículo por lo que es de
vital importancia conocer el efecto que tiene sobre el mismo. Se realiza una
prueba donde se ubica un motor trifásico a esa misma distancia, observándose
que el efecto sobre el compás es de aproximadamente 2⁰ como se muestra en
la figura 3.6. Este efecto se mantiene constante durante todo el movimiento del
sensor, es decir, si el elemento se mueve en conjunto con el sensor el efecto
es lineal en toda la trayectoria de giro del compás.
Figura 3.6: Efecto de elementos magnéticos.
Para comprobar el correcto funcionamiento del sensor, se realiza un análisis
similar al efectuado en la sección anterior y se utiliza como elemento
42
CAPÍTULO III
IMPLEMENTACIÓN Y RESULTADOS
comparativo los magnetómetros dentro de la IMU empleada en el CINAV-AUV.
En la tabla 3.4 se muestran los resultados obtenidos.
Tabla 3.4: Resultados para comparar exactitud.
Parámetro
Rumbo 1
Rumbo 3
Rumbo 4
Rumbo 6
Rumbo 7
Instrumento
IMU
Compás
30⁰
31.4⁰
90⁰
90⁰
180⁰
178.8⁰
-30⁰
-31.4⁰
0⁰
0.6⁰
Con estos resultados se observa que las medidas están cerca de los
parámetros reales, cometiéndose un error en la medición del instrumento de
±0.7% en la peor de la circunstancias; dígase 180⁰.
En la siguiente prueba se escoge un rumbo fijo y luego se varía finalizando en
el mismo punto para comprobar la fiabilidad del sensor. Los resultados
obtenidos se pueden observar en la tabla 3.5.
Tabla 3.5: Resultados para comprobar la fiabilidad.
Parámetro
Rumbo 1
Rumbo 1
Rumbo 1
Rumbo 1
Rumbo 1
Rumbo 1
Rumbo 1
Rumbo 1
X
S2
S
Instrumento
IMU
Compás
30⁰
31.43⁰
30⁰
31.38⁰
30⁰
31.12⁰
30⁰
31.37⁰
30⁰
31.42⁰
30⁰
31.41⁰
30⁰
31.71⁰
30⁰
31.62⁰
-
31.43⁰
0.027⁰
0.164⁰
Haciendo uso de las ecuaciones definidas en la sección anterior se realiza el
análisis del compás, donde se obtiene un valor de desviación estándar para la
medida de 0.16⁰ siendo este valor de gran precisión para el instrumento por lo
que realizando los cálculos pertinentes se obtiene que la clase es 0.1.
43
CAPÍTULO III
3.4
IMPLEMENTACIÓN Y RESULTADOS
Análisis económico.
Teniendo en consideración las características económicas de nuestro país, no
es viable la compra de un sensor que puede ser diseñado y construido en
nuestras instalaciones; de esta forma disminuye considerablemente el precio
de costo del mismo y se gana en soberanía tecnológica.
Un sensor para medir rpm compatible con TTL y CMOS puede ser obtenido en
el mercado internacional por un precio de 300USD mientras que, teniendo en
cuenta todos los recursos utilizados en la implementación del sensor diseñado
dígase: sensor óptico CNY70 (1USD); diodo de emisión infrarroja (0.5USD);
foto-transistor (0.7USD); integrado CD4093BE (0.5USD); transistores BC458
(0.25USD) y diseño del respectivo circuito impreso (5USD), el precio
aproximado para la implementación es de 10USD; por lo que queda justificado
el desarrollo del mismo debido a la disminución significativa de capital a utilizar.
Un compás magnético similar al utilizado, como el A4025 tiene un precio que
oscila cercano a los 100USD, pero en el caso que se aborda existe la
circunstancia de que ya se contaba con los sensores Vetus fluxgate pero con
una tecnología analógica y condiciones de operación desconocidas, por lo que
se realiza la ingeniería inversa y su actualización a digital, es necesario tener
en cuenta que para digitalizar la información se utilizó un DsPIC30f3013
(4.5USD) un MAX232 (1USD) para el traslador de nivel, un LM324 (0.5USD)
para la implementación del filtro analógico y el diseño del respectivo circuito
impreso (5USD) por lo que la actualización del sistema tiene un costo de
11USD siendo significativa la diferencia del costo comparado con el sensor
antes mencionado.
3.5
Consideraciones finales.
En el presente capítulo se realizó un sistema de software de bajo nivel con
características de trabajo en tiempo real para la adquisición y procesamiento de
la información del compás magnético.
Se realizaron pruebas experimentales para la validación de los sensores
implementados donde se pudo observar que los errores cometidos por estos se
44
CAPÍTULO III
encuentran
dentro
IMPLEMENTACIÓN Y RESULTADOS
de
los
parámetros
establecidos
para
el
óptimo
funcionamiento del sistema y comparando los mismos con las normas vigentes
quedó definida su clase.
Tomando en cuenta todos los componentes y horas de investigación
empleadas en el desarrollo de los mismos se puede observar que la
disminución de los costos entre su adquisición en el mercado y su
implementación es significativa alcanzándose los mismos resultados.
45
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES
El campo científico de los AUVs se ha caracterizado por una amplia riqueza
investigativa, debido a la variedad de sus aplicaciones y a la cantidad de
sistemas y sensores necesarios para realizar una navegación completamente
autónoma. Con la realización de la presente investigación se pudieron arribar a
las siguientes conclusiones:
 Se toman como referencias los trabajos anteriores y hojas de datos de
los componentes electrónicos empleados para la realización del diseño,
proponiendo una solución para la aplicación en cuestión.
 Se diseñó una arquitectura de hardware basada en el DsPIC30f3013
capaz de cumplir los requisitos impuestos por el sistema en la obtención
de la información procedente del Vetus Fluxgate Compass y se
comprobó la integración
del mismo al resto de los sistemas de
hardware.
 Se implementó el sensor óptico necesario para medir las rpm del motor
de propulsión principal; el diseño se realizó con dos sensores ópticos
con el objetivo de tener redundancia en el hardware y una estructura
similar a un encoder, el cual a la salida entrega un tren de pulsos con
una frecuencia proporcional a la velocidad con que rota el motor.
 Se validaron las mediciones de ambos sensores mediante un grupo de
pruebas comparativas contra un grupo de elementos profesionales y se
comprobó la integración de los mismos al resto de los sistemas de
hardware y software.
 En sentido general, se logró incluir en la arquitectura de hardware del
CIDNAV – AUV el compás magnético para la medición del rumbo y el
sensor de rpm diseñado para medir las revoluciones del motor
propulsión, ambas variables necesarias para la navegación asistida por
modelo matemático. Todo lo expuesto anteriormente permite afirmar que
se lograron cumplir los objetivos trazados al comienzo de la
investigación.
46
CONCLUSIONES Y RECOMENDACIONES
RECOMENDACIONES
A partir de la importancia que ha relevado la investigación se recomienda:
 Continuar el estudio del sensor Vetus Fluxgate Compass con el objetivo
de obtener una ecuación que permita medir las inclinaciones con una
precisión aceptable.
 Hacer uso de los sensores implementados para el CINAV-AUV
permitiendo de esta forma comprobar el funcionamiento de los mismos
en condiciones reales de operación.
47
REFERENCIAS BIBLIOGRÁFICAS
Alvarado, M. I. (2004). Sensores de Posición. Descripción, selección y uso.
Conferencia de Física. Universidad de lo Andes (ULA). Venezuela.
Cañizares, J. R. (2010). Modelado y control del vehículo autónomo sumergible
del CIDNAV. Trabajo de Diploma.
Catsoulis, J. (2005). Designing Embedded Hardware, O'Reilly.
Fjellstad, O. (1994). Control of unmanned underwater vehicles in six degrees of
freedom a quaternion feedback approach. Tesis doctoral.
Fossen, T. I. and A. Ross (2006). Advances in unmanned marine vehicles.
Chap. Nonlinear modelling, indentification and control of UUVs, pp. 1342. Vol. 69. Peter Peregrinus LTD. Great Britain.
Gorset, J. E. (2007). Nonlinear model-based control of slender body
AUVs.Doctoral thesis.
Guerra, C. E. (2010). Diseño e implementación de hardware y software de bajo
nivel para el vehículo submarino autónomo. Trabajo de diploma Trabajo
de Diploma.
Hegrenaes, O., O. Hallingstad, et al. (2007). "Towards Model-Aided Navigation
of Underwater Vehicles." Modeling, Identification and Control 28(4): 10.
Hernández, L., Y. Valeriano, et al. (2011). Modelado y control del cidnav − auv.
. In: XIV Convención y Feria Internacional Informática. X Simposio
Internacional de Automatización. MIC. La Habana.
Kapaldo, A. J. (2005). Gyroscope Calibration and Dead Reckoning for
Autonomous Underwater Vehicle. Tesis de Maestria.
Lemus, J. L. R. (2011). Software de navegación y guiado en tiempo real para
Vehículo Autónomo Sumergible.Trabajo de Diploma.
48
REFERENCIAS BIBLIOGRÁFICAS
Lin, Z. and G. Wei (2004). The Experimental Study on GPS/INS/DVL Integration
for AUV Position Location and Navigation Symposium. PLANS 2004,
Monterey, USA, IEEE Xplore.
Martínez, A., Y. Rodríguez, et al. (2010). Hardware and software architecture
for auv based on low-cost sensors. In: The 11th International Conference
on Control, Automation, Robotics and Vision,ICARCV. Nanyang
Technological University of Singapore.IEEE Xplore. Singapore.
Martínez, A. S. L. (2012). Enhancement of the mathematical linear model of a
UAV thru the use of a expectation maximization algorithm.
Martínez, M. E. (2009). Desarrollode sistemas de control para autopiloto de
avión de pequeño porte. Trabajo de Diploma Trabajo de Diploma.
Mohinder, E. G. (2007). Global Positioning Systems Inertial Navegation and
Integration. Control Systems Technology.John Wiley and Sons.
Pineda, L. M. (2009). Modelo matemático de un avión autónomo. Trabajo de
diploma.
Rodríguez, Y. and J. L.Ramos (2011). Sistema de software para supervisión y
control de vehículo autónomo subacuático. In: XIV Convención y Feria
Internacional
Informática.
X
Simposio
Internacional
de
Automatización.MIC. La Habana.
Salinas, R. M. (2006). Soft-Computing and Computer Vision Techniques
Applied
to
Autonomous
robot
Navigation
and
Human-Robot
Interaction.Tesis Doctoral.
Sosa, R. (2010). Sistema de Navegación Inercial Asistida por Modelo Dinámico
para Vehículo Autónomo Sumergible.Trabajo de Diploma.
Valeriano, Y., A. Martínez, et al. (2012). "Dynamic model for an autonomous
underwater vehicle based on experimental data." Mathematical and
Computer Modelling of Dynamical Systems.
49
REFERENCIAS BIBLIOGRÁFICAS
Wernli, R. L. (2000). Auv commercialization-who's leading the pack?.Technical
report. SPAWAR Systems Center San Diego. California, United States.
Woodman, O. J. (2007). An introduction to inertial navigation. Technical Report.
University of Cambridge. United Kingdom.
50
ANEXOS
ANEXOS
Anexo I: Diseño del hardware del sensor de rpm.
Figura A1: PCB del diseño del hardware del sensor de rpm.
Figura A2: Layout del diseño del hardware del sensor de rpm.
51
ANEXOS
Figura A3: Hardware del sensor de rpm.
Figura A4: Diseño del hardware del sensor de rpm.
52
ANEXOS
Anexo II: Diseño del hardware de la unidad DsPIC para el Vetus Fluxgate.
Figura A5: PCB del diseño del hardware de la unidad DsPIC..
Figura A6: Layout del diseño del hardware de la unidad DsPIC.
53
ANEXOS
Figura A7: Hardware de la unidad DsPIC.
Figura A8: Diseño del hardware de la unidad DsPIC.
54
ANEXOS
Anexo III: Código fuente del programa implementado para el fluxgate.
Funtions.h
unsigned int Baud(unsigned long int,unsigned long int);
unsigned int Period_ms(double,int,unsigned long);
void Init_Main(void);
unsigned int ADC_Read(char);
void WriteUART1M(unsigned int);
void Delay_ms(unsigned int);
void
SendByte(char,char);
unsigned int Send_Dataf(char, double);
Send_Datai(char,int);
void
void SendfloatInChar(double ) ;
// tcy ,for FCY = 25.9424 T = us
// tcy ,for FCY = 25.9424 T = us
typedef struct
{
double AOinv;
double *A;
double *B;
double C[5];
double R[5];
}Filter;
void FilterInit(Filter *,double *,double *);
double FilterLowPass(Filter *,double);
Funtions.c
#include<p30f3013.h>
#include <uart.h>
#include <spi.h>
#include <adc12.h>
#include <timer.h>
#include <outcompare.h>
#include <ports.h>
#include <string.h>
#include <math.h>
#include "Funtions.h"
unsigned long ModemBaudRate = 115200;
#define FCY 32000000
unsigned int Baud(unsigned long int baud,unsigned long int fcy)
55
ANEXOS
{
return fcy/(16*baud) -1;
}
unsigned int Period_ms(double period,int scaled,unsigned long fcy)
{
unsigned long Prx = period*fcy/(scaled*1000.0);
return Prx;
}
void WriteUART1M(unsigned int data)
{
WriteUART1( data);
while(BusyUART1());
}
void WriteUART2M(unsigned int data)
{
WriteUART2( data);
while(BusyUART2());
}
void Delay_us(unsigned int delay)
{
unsigned int index;
delay -= 1;
for(index = 0;index <delay;index++)
{
asm volatile("repeat #28");
Nop();
}
asm volatile("repeat #2");
Nop();
}
void Delay_ms(unsigned int delay)
{
unsigned int index,uindex;
for(index = 0;index <delay;index++)
{
for(uindex = 0;uindex <1000;uindex++)
{
asm volatile("repeat #28");
Nop();
}
}
}
unsigned int ADC_Read(char chanel)
{
SetChanADC12((ADC_CH0_POS_SAMPLEA_AN0|chanel)&
ADC_CH0_NEG_SAMPLEA_NVREF );
ADCON1bits.SAMP = 1;
56
ANEXOS
Delay_us(50);
ADCON1bits.SAMP = 0;
while (BusyADC12());
return ADCBUF0;
}
void SendByte(char Port, char Value)
if (Port == 1)
WriteUART1M(Value);
else
WriteUART2M(Value);
}
unsigned int Send_Dataf(char Port, double Value)
{
char* Data = &Value;
unsigned int Cs;
char Byte1;
char Byte2;
char Byte3;
char Byte4;
Byte1 = *(Data + 0);
Byte2 = *(Data + 1);
Byte3 = *(Data + 2);
Byte4 = *(Data + 3);
Cs = Byte1 + Byte2 +Byte3 +Byte4;
if (Port == 1)
{
WriteUART1M(Byte4);
WriteUART1M(Byte3);
WriteUART1M(Byte2);
WriteUART1M(Byte1);
}
else
if (Port == 2)
{
WriteUART2M(Byte4);
WriteUART2M(Byte3);
WriteUART2M(Byte2);
WriteUART2M(Byte1);
}
return Cs;
}
void Send_Datai(char Port, int Value)
57
ANEXOS
{
char* Data = &Value;
char Byte1;
char Byte2;
Byte1 = *(Data + 0);
Byte2 = *(Data + 1);
if (Port == 1)
{
WriteUART1M(Byte2);
WriteUART1M(Byte1);
}
else
if (Port == 2)
{
WriteUART2M(Byte2);
WriteUART2M(Byte1);
}
}
void SendBuffer(char Port,char * Buffer,char Length)
{
char index;
for(index = 0;index < Length;index++)
{
SendByte(1,Buffer[index]);
}
}
char IntToStr(long Number,char * Output)
{
char Temp[12] = {0};
char Index,Index1 = 0;
unsigned long quotient;
if(Number < 0)
{ Output[0] = '-'; Number *= -1.0;Index1++; }
for(Index = 11;Index > 0;Index--)
{
quotient
= Number/10;
Temp[Index] = (Number%10) + 48;
Number
= quotient;
if(quotient == 0)break;
}
for(Index = Index;Index < 12;Index++)
{
Output[Index1++] = Temp[Index];
58
ANEXOS
}
return Index1;
}
char FloatToStr(double Number,char * Output)
{
char Index,Index1 = 0;
unsigned long Temp = 0;
double Mantiza = 0;
Index = IntToStr(Number,Output);
if(Number < 0)Number *= -1.0;
Temp = Number;
Mantiza = (Number - Temp)*10E6;
Output[Index] = '.';
Index1 = IntToStr(Mantiza,&Output[Index+1]);
return (Index + Index1) ;
}
void SendfloatInChar(double Number)
{
char Float[7];
FloatToStr(Number,Float);
SendBuffer(1,Float,5);
}
void FilterInit(Filter *F,double *Num,double *Den)
{
F->B = Num;
F->A = Den;
F->AOinv
= 1.0/F->A[0];
F->C[0] = F->C[1] = F->C[2] = F->C[3] = F->C[4] = F->R[0] = F->R[1] = F>R[2] = F->R[3] = F->R[3] = 0;
}
double FilterLowPass(Filter *F ,double Variable)
{
F->R[0] = Variable;
F->C[0] = (F->B[0]*F->R[0] +
>B[3]*F->R[3] + F->B[4]*F->R[4]
F->B[1]*F->R[1] + F->B[2]*F->R[2] +
F-
59
ANEXOS
- F->A[1]*F->C[1] - F->A[2]*F->C[2] - F->A[3]*F->C[3] - F->A[4]*F>C[4] )* F->AOinv
F->R[4] = F->R[3];
F->R[3] = F->R[2];
F->R[2] = F->R[1];
F->R[1] = F->R[0];
F->C[4] = F->C[3];
F->C[3] = F->C[2];
F->C[2] = F->C[1];
F->C[1] = F->C[0];
return F->C[0];
}
void Init_Main(void)
{
ConfigIntUART1(UART_RX_INT_EN
UART_TX_INT_DIS & UART_TX_INT_PR0
&
UART_RX_INT_PR6
OpenUART1(UART_EN & UART_IDLE_CON
& UART_DIS_WAKE
UART_DIS_LOOPBACK & UART_DIS_ABAUD & UART_NO_PAR_8BIT
UART_1STOPBIT
&
0xFBFF,UART_INT_TX_BUF_EMPTY
UART_TX_PIN_NORMAL & UART_TX_ENABLE & UART_INT_RX_CHAR
UART_ADR_DETECT_DIS
&
UART_RX_OVERRUN_CLEAR
0xFFE0,Baud(ModemBaudRate,FCY));
&
&
&
&
&
&
ConfigIntTimer1(T1_INT_PRIOR_2 & T1_INT_ON);
OpenTimer1(T1_ON
&
T1_GATE_OFF
&T1_PS_1_1
&
T1_SOURCE_INT,Period_ms(1,1,FCY));
OpenADC12(ADC_MODULE_ON
&
ADC_IDLE_CONTINUE
&
ADC_FORMAT_INTG
&
ADC_CLK_MANUAL
&
ADC_AUTO_SAMPLING_OFF
&
ADC_SAMP_OFF
,
ADC_VREF_AVDD_AVSS
&
ADC_SCAN_OFF
&
ADC_SAMPLES_PER_INT_1
&
ADC_ALT_BUF_OFF
&
ADC_ALT_INPUT_OFF,
ADC_SAMPLE_TIME_1
&
ADC_CONV_CLK_SYSTEM & ADC_CONV_CLK_32Tcy,ENABLE_AN0_ANA
& ENABLE_AN1_ANA ,SCAN_NONE );
}
Fluxgate.c
#include<p30f3013.h>
#include <uart.h>
60
ANEXOS
#include <spi.h>
#include <adc12.h>
#include <timer.h>
#include <outcompare.h>
#include <ports.h>
#include <string.h>
#include <math.h>
#include <libpic30.h>
#include "Funtions.h"
_FOSC(
CSW_FSCM_OFF
&
XT_PLL16
);
_FWDT( WDT_OFF );
_FBORPOR( PBOR_OFF & BORV_45 & MCLR_EN );
_FGS( CODE_PROT_OFF );
#define FCY 32000000
#define FlagIntUart1 IFS0bits.U1RXIF
#define FlagIntTimer1 IFS0bits.T1IF
#define
COM1InterruptEvent
__attribute__((__interrupt__,auto_psv))
_U1RXInterrupt
#define
Timer1InterruptEvent
__attribute__((__interrupt__,auto_psv))
_T1Interrupt
Filter Butter4th;
const double Num[5] = {5.484742791517482e-006 , 2.193897116606993e005
,
3.290845674910489e-005,2.193897116606993e-005
,
5.484742791517482e-006};
const
double
Den[5]
=
{1.000000000000000e+000
,
3.738957332360378e+000
,
5.250405121733584e+000,3.281469562839659e+000 , 7.701095293511172e-001};
double
W2Vcconverter = 5.0/4095.0;
double SignalSineV
= 0.0;
double SignalCosV
= 0.0;
double SignalSineVF
= 0.0;
double SignalCosVF
= 0.0;
double ArcT
= 0.0;
double Rudder
= 0.0;
double RudderF
= 0.0;
double RudderN
= 0.0;
double Pi
= 3.1415926535897932384626433832795;
61
ANEXOS
unsigned char Cs;
unsigned int Norte;
unsigned char BOT
= 0xFA;
unsigned char NewTrama = 0;
unsigned char Index = 0;
unsigned char Trama[3] = {0};
unsigned char Calibrar = 0;
double
Error = 0;
void COM1InterruptEvent(void)
{
unsigned char ByteReaded;
ByteReaded = U1RXREG;
if(ByteReaded == 'A')
NewTrama = 1;
if(NewTrama == 1)
{
Trama[Index++] = ByteReaded;
}
if(Index == 3)
{
NewTrama = 0;
Index = 0;
if(Trama[0] == 'A' && Trama[1] == 'B' && Trama[2] == 'C' )
Calibrar = 1;
}
FlagIntUart1 = 0;
}
void Timer1InterruptEvent(void)
{
SignalSineV = (double)ADC_Read(0)*W2Vcconverter - 2.5;
SignalCosV = (double)ADC_Read(1)*W2Vcconverter - 2.5;
ArcT
= atan(SignalSineV/SignalCosV)*180.0/Pi;
if(SignalSineV >= 0.0 && SignalCosV >= 0.0 )
Rudder = ArcT;
else
if((SignalSineV >= 0.0 && SignalCosV < 0.0) )
Rudder = 180.0 + ArcT;
else
if (SignalSineV < 0.0 && SignalCosV < 0.0)
Rudder = ArcT - 180.0;
else
Rudder = ArcT;
RudderF = FilterLowPass(&Butter4th,Rudder);
RudderN = RudderF + Error;
62
ANEXOS
SendByte(1,BOT);
SendfloatInChar(RudderN);
FlagIntTimer1 = 0;
}
int main()
{
Init_Main();
FilterInit(&Butter4th,Num,Den);
while(1)
{
if(Calibrar)
{
Error = 0.0 - RudderF;
Calibrar = 0;
BOT = (BOT == 0xFA)?0xFB:0xFA;
}
Delay_ms(100);
}
return 0;
}
63
ANEXOS
Anexo IV: Parte del código fuente del programa implementado para el sensor
de rpm.
#include<P33FJ64MC804.h>
#include<timer.h>
UINT32 Difference
Int groove
= 0;
= 2;
void Timer3InterruptEvent(void)
{
UINT32 CycleNow
static UINT32 LastCycle
UINT16 Hold
CycleNow
CycleNow
CycleNow
= 0;
= 0;
= TMR4;
= TMR5;
<<= 16;
|= Hold;
if(!FlagIntTimer5)
{
Difference
= CycleNow - LastCycle;
}
else
{
FlagIntTimer5
= FALSE;
Difference
= 0xFFFFFFFF + CycleNow - LastCycle;
}
LastCycle
= CycleNow;
DIO5L = ~DIO5L;
FlagIntTimer3 = FALSE;
}
void RefreshSpeedValue(UINT32 TimeReg)
{
Analog.SpeedMotor = ((double)(60.0/((double)TimeReg/FCY))) ;
Send_Datai(1,(UINT16)(Analog.SpeedMotor*10.0));
}
INT main()
{
ConfigIntTimer3(T3_INT_PRIOR_5 & T1_INT_ON);
OpenTimer3(T3_ON
&
T3_GATE_OFF
&T3_PS_1_1
T3_SOURCE_EXT,groove);
InitMainSystem();
while(TRUE)
{
RefreshSpeedValue(Difference);
Delay_ms(100);
}
return 0;
}
&
64
Descargar