GPS Sensor mit Matlab/Simulink
Author:Marie Mbogni
Im Rahmen des Masterstudienganges "Business and Systems Engineering" an der Hochschule Hamm- Lippstadt geht es darum im Modul "Signalverarbeitende Systeme " ein selbsgewählte Sensor im Matlab/Simulink auszulesen und die Signalverabeitungskette beschrieben, untersuchen und verstanden. In Dieser Artikel wird die Signalverarbeitungskette der DGPS Sensor[1] von der Firma Dexter Industries beschrieben und am Anschluss wird die Sensordaten im Matlab/Simulink ausgelesen.
Einleitung
DGPS
Sensor ist die Erweiterung von GPS Sensor[2] , diese ist ein globales Navigationssatellitensystem zur Positionsbestimmung.
DGPS Sensor (Differentielle Global Posittionierungssysteme) ist ein Methode um GPS Fehler zu verbessern. Da GPS-Messungen, bestehend aus Verzerrungen und Geräuschen, die beeinflussen die Positioniergenauigkeit. In der Praxis ergeben die GPS Ungenauigkeiten, weil die Signalgeschwindigkeit in der Tropo- und Ionosphäre zeitlich und räumlich leicht variiert. Zudem sind die Bahnen und Uhrenfehler der Satelliten dem Empfänger nicht genau bekannt. DGPS ist eine Technik, die die Lösungsgenauigkeit verbessert und dieser Fehler entfernen. Es wurde entwickelt, um die Bedürfnisse der Positionierung und Abstandsmessung Anwendungen, die höhere Genauigkeiten erforderten als eigenständiger Standard Positionierung Service (SPS). DGPS kann als eine Kalibrierungsmethode betrachtet werden Kalibrierstandard wird an der Basisstation festgelegt.
Wie Funktioniert Der DGPS Sensor
wenn der Sensor[3] mit einem der vier Sensoranschlüsse mit dem NXT verbunden ist, werden Zwei Arten von Daten zwischen dem NXT hin und her gesendet:
Positionsdaten: Der GPS-Sensor sendet Daten über Zeit (UTC), Breite, Länge, Geschwindigkeit (in cm / s) und Richtung (in Grad).
Navigationsdaten: Der NXT kann so programmiert werden, dass er die Breite und Länge eines gewünschten Ziels oder Wegpunkts an den GPS-Sensor sendet. Der GPS-Sensor berechnet die Entfernung und den Wegwinkel zum Ziel. Der Sensor sendet die Informationen dann an den NXT zurück. Für genauere Daten zur Fahrtrichtung kann das GPS einen Winkel seit dem letzten Anruf berechnen.
Welche Rohsignale liefert der DGPS Sensor?
Das GPS-Satellit sendet permanent zwei Signale aus, das Signal L1 auf der Frequenz f1=1575,42 MHz (Wellenlänge λ1=0,19 m) und das Signal L2 auf der Frequenz f2= 1227,60 MHz (Wellenlänge λ2=0,24 m). Die Signale werden moduliert um die Navigationsnarichten, Trägerwelle und Code zu übertragen, und damit dem Empfänger der Signale erkennen kann. Die Modulation und Kodierung von diese findet man hier[4]. Nach der Modulation können dann die der Pseudo-Entfernung der Empfänger bestimmen werden. Diese wird durch eine Codephasen- Messung durchgeführt. Das Prinzip des Messverfahrens ist die Bestimmung der Laufzeit des Signals über Kreuzkorrelationen Diese wird in der nächsten Überschrift erläutern. Die Pseudo-Entfernung ergibt dann:
R = ∆T*c + ∆t*c
• ∆t: unbekannter Empfängeruhrfehler
• ∆Ti: gemessene Laufzeiten der Satellitensignale
• c Konstant
Signalvorverarbeitung
Um für die nützliche Werte von dem Sensor zu bekommen, müssen Signale eventuell aufbereitet werden, bevor sie digitalisiert werden. Die Satellitensignale, die verwendet werden, um alle Daten zu übertragen, die für die Bestimmung der Position für den Benutzer notwendig sind, sind elektromagnetische Wellen. Diese werden aus der Grundfrequenz des Satellitenoszillators erzeugt, moduliert und codiert, damit sie schließlich digitalisiert werden können. Wie genau das im DGPS Sensor vollzogen wird, ist nicht klar, da keine passende Literatur verfügbar ist.
Analog - Digital - Umsetzer
Analoge Digital Umsetzer in Abkürzung ADU[5] ist ein elektronisches Gerät zur Umsetzung von Analogen Eingangssignal in Digitalen Datenstrom. Auf dem Mikrochip der DGPS sitzt der ATMEG328P AU[6] Umsetzer, dieser ermöglicht die Umwandlung eines analogen Eingangssignal von der IC Schnittstelle des DGPS in eine 10-Bit Binärdarstellung.
Diese ADU's arbeiten mit dem Prinzip der sukzessiven Approximation[7]
. Dabei wird das zu messende Signal, hier die Spannung des DGPS, schrittweise durch Vergleich digitalisiert. Vergleicht wird mit einer Referenzspannung, welche genauso viele Bit hat wie der verbaute ADU. Die analoge Eingangsspannung wird in n Schritten digitalisiert, wobei die Genauigkeit bei jedem Schritt um 1 Bit steigt. Bei jedem Schritt wird Ein Vergleich durchgeführt, um zu bestimmen, ob Eingangsspannung kleiner als oder größer als Referenzspannung ist. Die Referenzspannung wird durch der ADU erzeugt. Je nachdem, ob die analoge Eingangsspannung größer oder kleiner als die Spannung des ADU ist, wird die Referenzspannung im nächsten Schritt um die halbe Schrittweite des letzten Schritts nach oben oder nach unten verändert. Dadurch nähert sich die Spannung des DA-Wandlers immer mehr der Eingangsspannung an. Zum Schluss, wenn das letzte Bit des DA-Wandlers gesetzt ist, entspricht der Wert des ADU der Eingangsspannung.
Bussystem
Um die Kommunikation zwischen den Sensor und Mikrokontroller (NXT-Lego Mindstorms) zu ermöglichen wird ein Bussystem beziehungsweise I²C[8] eingesetzt. Das Bussystem I²C wurde im Jahr 1982 von Phillips als Kommunikationsbus entwickelt. Das I 2C-Bus-System[9] dient zum Aufbau der Kommunikation zwischen Schaltungsteilen In Dieses Falls dient er um die Kommunikation zwischen NXT-Lego Mindstorms und der DGPS Sensor. das Bussystem funktioniert nach dem Master Slave Prinzip. D.h Die Daten werden über die beiden Leitungen zwischen dem Master und einem der Slaves ausgetauscht. Da Daten vom Master sowohl gesendet als auch empfangen werden, arbeiten die Leitungen bidirektional. Die entsprechenden Anschlüsse der Bausteine sind also sowohl Eingänge als auch Ausgänge. Diese verbinden einen Steuercomputer (PC oder Mikroprozessor) den so genannten Master (Systeme mit mehreren Mastern werden hier nicht betrachtet) mit einem oder mehreren Peripheriebausteinen, den Slaves. Hier ist der DGPS sensor der Slave und der NXT-Lego Mindstorms der Master.
Der NXT kommuniziert über I2C
mit dem GPS-Sensor von Dexter Industries. Der NXT sendet sieben Datenbytes an das GPS. Die ersten drei Bytes teilen dem GPS mit, welche Art von Daten zurück an den NXT gesendet werden. Die letzten vier Bytes sind für den Längen- und Breitengrad eines Ziels reserviert. Die I2C-Kommunikation
ist in der folgenden Abbildung dargestellt. Eine vollständige Liste der I2C-Aufrufe finden Sie unten.
Digitale Signalverarbeitung
Um Signal durch Matlab zu digitalisieren. soll zu erste eine Kommunikation zwischen den Sensor und der Mikrocontroller erstellt werden und diese Erfolgt durch ein I2C Bus System (sehe Kapitel 2.4) . Diese ist in der nächsten Bild zu erkennen. und als nächste soll die Daten mit Hilfe der EV3 Lego minstorms Brick im Pc gesendet und dann können diese im Matlab digitalisieren werden
.
Für diese Signalverarbeitung mit Matlab wurde das unteren stehende RTHW Toolbox verwendet aber statt NXT wurde EV3 benutzen. Zuerst wurde Matlab vorbereitet und alle Verbindungen aufgebaut, nach dem den Sensor und EV3 verbunden wurde, wurde als nächste ein Programm in EV3 entwickelt und wurde EV3 abgerufen. Dann wird Verbindung zwischen EV3 und das PC neu aufgerufen. Der EV3 Eingang ist als global definiert und der Sensor wird initialisiert, um anzuzeigen, an welchem Eingang der entsprechende Sensor an den EV3-Baustein angeschlossen ist. 1000 Messwerte werden in einer Schleife aufgezeichnet und jeweils in einem Array gespeichert und zur Laufzeit ausgegeben. Nach dem Ablauf der Schleife werden der Sensoreingang und die komplette EV3-Verbindung wieder beendet. Da der Sensor ein Third Party- End Sensor von Matlab ist, war die große Herausforderung ein Programm zu entwickeln, der Die daten ablesen könnten. Und dieses Programm solltet nach der unterstehenden Toolbox entwickelt werden. Da den Sensor kein Signal abgegeben hast, könnte daher kein Messwert aufgenommen wurden, das Problem könnte sein, dass der Sensor kein Satellit in die Umgebung gefunden hat. Laut der Anleitung von der Sensor Hersteller Dexter Industries, wenn der Sensor richtigen Programm in EV3 gebildet und die mit dem Sensor verbunden, sollte der Sensor maximale in 10 Minute ein Satellit erkenne und darauf Werte abgegeben beziehungsweise Werte über die Position und die Zeit. Was hier gemeint ist, könnte in dem Video mehr erfahren. Als Zwei Möglichkeit könnten die Messwerte mit EV3 aufgenommen aber dies war auch nicht erfolgreich. Trotzdem, dass ich der DGPS Sensor EV3 Programm dem von der Lego Mindstorms Support bekommen habe.
Darstellung der Ergebnisse
Diese Kapitel können bearbeitet werden. Da den Sensor kein Signal erkennen habe . Diese könnte mehr in der Video erfahren werden.
Projektplan
Durch Zeit Mangel und dadurch wir die Semester viel Project gleichzeitig machen müssen, wurde diese erst ab 09.06 angefangen.
Zusammenfassung
DGPS Sensor dient zur Positionsbestimmung und zu Verbessrung von GPS Fehlers. Für diese Projekt war die Hauptaufgabe die Analoge Signal der Sensor in Matlab zu digitalisieren. Wegen Zeitmangel und die Tatsache, dass der Sensor nicht funktioniert hat, könnte diese Aufgabe nicht weiterverarbeiten werden. Laut der Anleitung von dem Sensor Hersteller, wenn der Sensor den Wert "0 "ausgibt und kein Solid Licht gezeigt d.h der Sensor hat kein Valide Signal gefunden. Bei unserem Fall hat der Sensor der Wert "0" geliefert und kein Licht gezeigt, diesem bedeutet für uns , dass den Sensor kein Signal gefunden hat..
Literatur
[1]. DGPS Sensor von Dexter Industries angerufen am 03.07.2018 https://www.dexterindustries.com/manual/dgps-2/
[2]. GPS Sensor abgerufen am 20.06.2018 https://de.wikipedia.org/wiki/Global_Positioning_System
[3]. Vorverarbeitung von Signale abgerufen am 29.06.2018http: //www.physik.uni-bielefeld.de/didaktik/Examensarbeiten/MasterarbeitHomrighausen.pdf ]
[4] ADU Umsetzer angerufen am 29.06.2018 https://de.wikipedia.org/wiki/Analog-Digital-Umsetzer#Parallel-Umsetzer
[5]. Datasheets ADU ATMEG328P AU angerufen am 29.06.2018 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf
[6]. generationrobots.com: Analyse des I2C Buses mit einem Logikanalysator mit Lego Mindstorms. - Letzter Aufruf: 03.07.2018 https://www.generationrobots.com/blog/de/2017/01/analyse-des-i2c-buses-mit-einem-logikanalysator-mit-lego-mindstorms/
[7]. I2C Bus System letzte aufruf am 29.06.2018 https://www.itwissen.info/SAR-successive-approximation-register-SAR-Verfahren.html
[8]. Vorgehensweise zur Entwicklung von Matlab Code https://opus.bibliothek.uni-wuerzburg.de/opus4-wuerzburg/frontdoor/deliver/index/docId/11361/file/144_Ali_TransNav.pdf