Hallo,
ich habe folgendes Problem: Ich habe ein Gyroskop vom TYP NGS1
(Datenblatt ist hier:
http://www.sensor-technik.de/images/stories/pdf/download/ngs1_datenblatt_de.pdf
) an einer SPS angeschlossen. Leider kann ich nur alle 329ms das Signal
vom Gyro abfragen. Da ich leider sehr wenig Ahnung von diesen Sachen
habe, bräuchte ich eure Hilfe bei der Abschätzung der daraus
resultierenden Fehler(möglichkeiten). Der Sensor hat laut Datenblatt
eine Bandbreite von 40Hz, wenn ich jetzt aber nur mit 3 Hz abtaste, wie
komme ich auf den Fehler?!
Vielen Dank im Voraus
erstmal danke für deine antwort. diese faustregel habe ich auch schon
gefunden, allerdings kann ich jetzt so ohne weiteres die abtastrate
nicht ändern. kann ich das signal daher als komplett unbrauchbar
ansehen, oder es in einem gewissen rahmen verwenden?!
Nach Nyquist (und das war glaub ich ein ziemlich schlauer Mensch) kannst
du das Signal nicht verwenden. Und das gilt nur für nicht verrauschte
Signale. Also so ne kleine Überabtastung ist eigentlich immer zu
empfehlen. Tut mir leid. :-)
Gruß wonderfulworld
chm schrieb:> kann ich das signal daher als komplett unbrauchbar> ansehen, oder es in einem gewissen rahmen verwenden
interessieren dich denn überhaupt Frequenzanteile über 3Hz?
dann mach ein Tiefpass an den Sensör ran, der dir die Bandbreite nach
oben hin begrenzt. Spitzen wirst du so nicht mehr sehen, sondern nur
gemittelte Werte. Aber keine wegen Verletzung des
Nyquist-Shannon-Abtasttheorems verfälschten Werte.
mfg mf
Wenn das eigentliche Signal, das vom Sensor geliefert wird,
keine Komponenten oberhalb von 1.5Hz hat, passiert kein Fehler.
Es kommt also daurauf an, was für ein Signal verarbeitet wird !
wonderfulworld schrieb:> Nach Nyquist (und das war glaub ich ein ziemlich schlauer Mensch) kannst> du das Signal nicht verwenden.
Es ist zwar richtig, dass Nyquist ein schlauer Mensch war, aber das
heißt noch lange nicht, dass man das Signal nicht verwenden kann.
Für diese Aussage würden auch Nyquist noch ein paar Angaben fehlen:
- Benötigen die Änderungen des Sensors wirklich 40 Hz BB? Oder wird der
Sensor vielleicht viel langsamer bewegt, so dass das Ausgangssignal die
1.5Hz gar nicht überschreitet?
- Sind das Schwingungen, die der Sensor registriert oder wird nur mal
von einer Lage auf die andere gewechselt und dann ist lange Zeit Ruhe?
@chm
Beschreibe den Einsatz des Sensors mal näher und nenne die Bandbreite,
die dein Ausgangssignal haben wird - und nicht die, die der Sensor im
Maximalfall könnte.
Der Sensor soll die Orientierungsänderung eines "Fahrzeugs" aufzeigen.
Das Fahrzeug bewegt sich mit ca. 5 Km/h (konstant). In welcher
Bandbreite die Signale jetzt effektiv liegen weiß ich ehrlich gesagt
(noch?!) nicht.
chm schrieb:> In welcher> Bandbreite die Signale jetzt effektiv liegen weiß ich ehrlich gesagt> (noch?!) nicht.
OK. Fahrzeug in Anführungszeichen?
Denke also darüber nach, welche Bewegungen das "Fahrzeug" ausführt,
welche du davon erfassen willst und wie schnell sich diese ändern
können.
Es bleibt also dabei: solange die Änderungen keine Frequenzen über 1.5Hz
produzieren, kannst du deinen Ansatz verwenden - sonst eben nicht.
Erstmal herzlichen Dank für deine Hilfestellung!
Nunja, "Fahrzeug", weil das Teil eigentlich nur ein fahrender Kasten
ist...
Fahren tut das Fahrzeug momentan nur gerade Strecken, bzw. meistens
kleine Kurven (da wirkliche Geraden praktisch ja eher selten sind).
Bevor das Fahrzeug losfährt wird der Ursprung eines Koordinatensystems
auf diesen Startpunkt gesetzt. Über Odometrie wird jetzt die Bewegung in
x bzw. y-Richtung bestimmt, und daraus dann noch die Orientierung, also
Drehung des Fahrzeugs. Um die Berechnung der Position ein wenig zu
verbessern wurde der angesprochene Gyrosensor eingebaut. Die
Inkrementalgeber werden alle 1,75ms ausgelesen, entsprechend auch die
Position im Koordinatensystem angepasst bzw. neu berechnet. Jetzt wird
der Gyrosensor selbst nur alle 329ms ausgelesen. Dies passiert 2 mal.
beim zweiten mal wird außerdem die Orientierung, welche durch die
Odometrie alleine berechnet wurde, mit der Orientierung durch das
Gyroskop verglichen, angepasst, und beide nach dieser "Kompensation" auf
den gleichen kompensierten Wert gesetzt, und das ganze beginnt von vorn.
Quasi eine Berechnung der Orientierung auf zwei Arten und ein
anschließender vergleich. In Formeln vielleicht ein wenig anschaulicher:
alle 1.75ms:
Orientierung_Odometrie = Orientierung_Odometrie +
Winkeländerung_Odometrie
alle 329ms:
Winkeländerung_Gyro = k_korr * Winkeländerung_Gyro
//AD-Signal wird mit empirisch ermittelten Korrekturfaktor multipl.
Orientierung_Gyro= Orientierung_Gyro+ Winkeländerung_Gyro
alle658ms:
abweichung = Orientierung_Gyro - Orientierung_Odometrie
komp = Orientierung_Gyro - abweichung/2
am Schluss(also noch immer 658ms) wird komp mit Orientierung_Gyro und
Orientierung_Odometrie gleichgesetzt um ein und dieselbe
Ausgangssituation wieder zu haben:
komp = Orientierung_Gyro = Orientierung_Odometrie
Ich hoffe das ist alles einigermaßen verständlich?!
Viele Grüße
chm
Leider kenne ich mich mit diesen Sensoren nicht aus.
Es sieht aber ganz danach aus, dass die Änderungsgeschwindigkeit nicht
besonders hoch sein wird. Dein Fahrzeug ist langsam, noch langsamer sind
die Änderungen bez. der Richtung - das was der Gyro erfasst. Wie ich
schon vermutet hatte: der Sensor wird mit seiner Geschwindigkeit gar
nicht ausgereizt!
Besteht denn keine Möglichkeit, den Signalverlauf mal bei einer
Probefahrt mitzuschneiden?
Meine Einschätzung ist, dass es klappen sollte. Wenn eine schnellere
Änderung erfolgt, als dein Abtastsystem es zulässt, wird sie nicht in
vollständig erfasst, d.h. dann kann dein Vergleich auseinanderlaufen
obwohl beide Sensoren noch richtig messen. Wenn die neue Position stabil
geworden ist, dann würden beide wieder übereinstimmen.
Zur Veranschaulichung:
Nimm einen Signalsprung und gib diesen auf einen Tiefpass mit 1Hz ...
1.5Hz (den du sowieso benötigst). Dann siehst du die Abweichung während
des Sprungs und wie sich das wieder annähert, wenn die Änderung wieder
langsam oder zu Null wird.
auf die Gefahr hin, dass ich mich mit dieser Frage ein wenig
disqualifiziere:
Da ich sehr langsame Richtungsänderungen habe kann man annehmen, dass
die Winkeländerung(bzw. Winkeländerungsgeschwindigkeit) über die 329ms,
also das Zeitintervall in dem ich den Wert abhole, konstant ist, und ich
somit dennoch einen mehr oder weniger korrekten Wert erhalte?! Oder
anders formuliert: 1.5Hz entsprechen ca. 0.67ms Solange mein Fahrzeug
innerhalb dieser 0.67 eine KONSTANTE Winkelgeschwindigkeit hat, ist
alles in Ordnung?! Falls das nicht korrekt ist, wie müsste ich mir das
sonst anschaulich vorstellen?
Tut mir leid, die Frage erscheint mir ein wenig dämlich, aber ich bin
ziemlich fachfremd was Sensoren etc angeht...
chm schrieb:> Oder> anders formuliert: 1.5Hz entsprechen ca. 0.67ms Solange mein Fahrzeug> innerhalb dieser 0.67 eine KONSTANTE Winkelgeschwindigkeit hat, ist> alles in Ordnung?! Falls das nicht korrekt ist, wie müsste ich mir das> sonst anschaulich vorstellen?
Solange die Änderung des Messwertes die 1.5Hz nicht überschreitet,
solange ist alles in Ordnung.
Wie ich schon sagte, ich kenne die Funktionsweise der Gyrosensoren
nicht. Ich hätte vermutet, dass eine konstante Winkelgeschwindigkeit
sogar einen festen Wert ausgibt.