DEIMOS Space desarrolla un receptor software para simulación del sistema de posicionamiento Galileo
El reto
Desarrollar una simulación completa del sistema de posicionamiento global europeo, incluido un receptor de software a nivel de bit
La solución
Utilizar las herramientas de MathWorks para simular la generación y transmisión de señales, diseñar los algoritmos del receptor de software e implementar la arquitectura del receptor
Los resultados
- Reducción en un 40% del tiempo y coste de desarrollo
- Aplicación desarrollada según los estándares de ingeniería de software ESA
- Generación de código eficiente
Cuando el sistema europeo de navegación por satélite Galileo esté operativo en 2010, será una alternativa independiente al sistema de posicionamiento global (GPS) de los EE.UU. Los 30 satélites de Galileo proporcionarán una mejor cobertura de las señales de satélite en latitudes altas. Además, el sistema también tendrá una gran precisión: hasta 10 centímetros si se combina con señales de estaciones de tierra y hasta 1 metro por sí solo.
Para acelerar el desarrollo, la GJU (Galileo Joint Undertaking, Empresa Común Galileo) subvencionó GRANADA (Galileo Receiver Analysis and Design Application, Aplicación de análisis y diseño de receptores para Galileo), una herramienta configurable que actúa como plataforma para integrar y evaluar tecnologías de receptores.
La empresa española DEIMOS Space ha desarrollado GRANADA, un receptor software para simulación de Galileo, completamente en MATLAB® y Simulink®, mediante el uso de un enfoque de simulación basado en el muestreo.
"Las herramientas de MathWorks nos han ofrecido un entorno de diseño y simulación completo para el desarrollo del receptor modular", explica José Diez, ingeniero jefe del proyecto GRANADA para DEIMOS Space.
El reto
DEIMOS Space necesitaba crear una simulación completa de los componentes de GRANADA, incluida la generación de señales, su transmisión por la atmósfera y su procesamiento a través de la cadena de receptores completa. GRANADA tenía que ser lo suficientemente modular y flexible para que los desarrolladores de la aplicación pudieran reemplazar la arquitectura de receptor estándar por sus propios algoritmos y código.
La cadena de procesamiento de señales tiene una frecuencia de muestreo de aproximadamente 200 MHz desde el transmisor hasta el receptor. La mayoría de los simuladores de este tipo requieren CPU adicionales, pero DEIMOS Space necesitaba procesar la simulación en un solo PC.
La solución
Los ingenieros de DEIMOS Space utilizaron MATLAB, Simulink y DSP System Toolbox™ para desarrollar el simulador.
El equipo de ingeniería se atuvo a los estándares E40B de ECSS (European Cooperation for Space Standardization, Cooperación Europea para Estandarización Espacial) para el desarrollo de software a lo largo de todo el proyecto, utilizando las herramientas de MathWorks en las fases de diseño de la de arquitectura e implementación del código.
"La GJU validó el cumplimiento por nuestra parte del estándar ECSS-E40B a lo largo del desarrollo del software con MATLAB y Simulink. No se necesitó inversión adicional para convertir un prototipo en un producto acabado", explica Augusto Caramagno, director de la división de proyectos avanzados.
El equipo desarrolló un modelo en Simulink que generaba las señales de satélite de Galileo. DEIMOS Space tenía que simular frecuencias de muestreo muy diferentes en el mismo modelo, permitiendo al usuario configurar cada frecuencia de modo independiente. Lo llevaron a cabo mediante la función de paso variable de Simulink. "Los pasos variables supusieron una de las características clave de Simulink para nosotros", afirma Caramagno. "No hubiéramos podido ofrecer a los usuarios flexibilidad completa en el plan de frecuencias del receptor sin ellos."
Después, mediante Simulink y DSP System Toolbox, crearon una versión inicial del receptor, que incorporaba adquisición de datos básicos, bucles de seguimiento y funciones de demodulación de datos.
"Hemos utilizado DSP System Toolbox de forma intensiva porque todas las simulaciones requerían señales discretas y el conjunto de bloques nos permitió definir las frecuencias de muestreo muy fácilmente", explica Diez.
En Simulink, DEIMOS Space ejecutó simulaciones que generaban señales simultáneamente, las cuales se procesaban en la cadena de receptores. Después de depurar el receptor, crearon un modelo de canal de transmisión e introdujeron ruido y perturbaciones, como la demora de trayectoria múltiple y las interferencias GPS, y dinámica, como el desplazamiento Doppler.
Por cada efecto de transmisión añadido, el equipo volvió a probar y ajustar el modelo del receptor, incorporando bucles de seguimiento más complejos, filtros y otras mejoras.
Con MATLAB, crearon una interfaz que permite a los desarrolladores de aplicaciones configurar GRANADA mediante la selección de parámetros antes de generar automáticamente el código C a partir del modelo con Simulink Coder™.
GRANADA se terminó y entregó a tiempo como parte de la primera convocatoria del programa de Actividades de investigación y desarrollo de Galileo de la GJU.
La GJU ha autorizado a DEIMOS Space a comercializar GRANADA y a ponerlo a disposición de una amplia comunidad de fabricantes de receptores GNSS y desarrolladores de aplicaciones de navegación.
Los resultados
- Reducción en un 40% del tiempo y coste de desarrollo. "Si hubiéramos tenido que desarrollar GRANADA en Fortran o C, consideramos que hubiéramos tardado un 40% más", afirma Antonio Fernández, director de tecnologías GNSS de la división de proyectos avanzados en DEIMOS Space. "Además, MATLAB y Simulink nos han permitido reducir los costes de diseño y codificación entre un 40% y un 50%."
- Aplicación desarrollada según los estándares de ingeniería de software ESA. "Las evaluaciones realizadas por expertos de ESA y GJU validaron nuestro cumplimiento de los estándares de software de ESA a lo largo del desarrollo", explica Augusto Caramagno, director de la división de proyectos avanzados en DEIMOS Space. «GRANADA no es un prototipo; está completamente homologado por los estándares ECSS-E40B."
- Generación de código eficiente. "Con Simulink hemos optimizado la carga computacional de la simulación y hemos ejecutado simulaciones con frecuencias de muestreo altas en un solo PC", explica Caramagno. "Uno de nuestros ingenieros reprodujo parte del software en C puro para comprobar si se podía conseguir un mejor rendimiento. Apenas hubo diferencia de velocidad entre dicho código y el código generado automáticamente con Simulink Coder."