Ich habe einen Beschleunigungssensor, von den Werten will ich die Geschwindigkeit bekommen. Reicht es so: V0+a*dt Ich messe den Zeitabstand zwischen zwei Signalen und multipliziere mit der momentanen Beschleunigung? Am Anfang für v0 einfach 0 nehmen?
Toni E. schrieb: > Ich messe den Zeitabstand zwischen zwei Signalen und multipliziere mit > der momentanen Beschleunigung? Wenn deine Beschleunigung während dt konstant ist, ja. Sonst ist es halt nur eine Näherung, die gut sein kann, wenn a sich wenig ändert und dt kurz ist. > Am Anfang für v0 einfach 0 nehmen? Du bekommst halt immer nur die Geschwindigkeitsänderung für jedes Intervall dt.
Toni E. schrieb: > Am Anfang für v0 einfach 0 nehmen? Wenn das zur Realität passt... Aber du wirst schnell sehen dass im echten Leben mit sich ändernder Beschleunigung durch die Ungenauigkeiten des diskreten Signals und der anschließenden Berechnung diese Geschwindigkeitsbestimmung nur kurzzeitig funktioniert.
:
Bearbeitet durch Moderator
Toni E. schrieb: > Ich messe den Zeitabstand zwischen zwei Signalen und multipliziere mit > der momentanen Beschleunigung? Am Anfang für v0 einfach 0 nehmen? Rein theoritisch kann man das so machen. In der Praxis wird das mit den üblichen Sensoren für ein paar € sehr schnell sehr ungenau. Wenn Du irgendeine Möglichkeit hast, die Geschwindigkeit oder den Ort direkt zu messen, dann mach das. Für die Trägkeitsnavigation geeignete Sensoren sind mindestens dreistellig, eher vierstellig im Preis. fchk
Toni E. schrieb: > Ich habe einen Beschleunigungssensor, von den Werten will ich die > Geschwindigkeit bekommen. Fliegt dein Beschleunigungssensor im freien Raum oder wirken auch noch andere Kräfte? Ist dein Beschleunigungssensor offset-frei?
:
Bearbeitet durch User
Toni E. schrieb: > Reicht es so: V0+a*dt > > Ich messe den Zeitabstand zwischen zwei Signalen und multipliziere mit > der momentanen Beschleunigung? Am Anfang für v0 einfach 0 nehmen? Theoretisch geht das, gesteuerte Raketen machen das genau auf diese Weise. Durch zweifache Integration kommt dann die Position heraus: https://www.aggregat4.de/pdf/Ger%C3%A4tebeschreibung_A4.pdf Das Problem ist ein in der Praxis immer vorhandener Offset des Beschleunigungsmessers. Das führt zu einem mit der Zeit linear ansteigenden Fehler in der Geschwindigkeit, der Positionsfehler erhöht sich sogar quadratisch. Für Zeiten länger als ein paar Minuten muss daher durch eine externe Referenz nachkorrigiert werden.
Der Offset eine analogen Sensors ist temperaturabhaengig. Daher kann man ihn nicht rauskompensieren. Der Offset fuehrt zu einem sich ueber die Zeit vergroessernden Fehler. Daher muss man periodisch, wenn moeglich kompensieren. Wenn man die Geschwindigkeit nicht erfassen kann, zB per GPS, kann man nochmals integrieren und bekommt die Position. Allenfalls kann man ueber die Position kompensieren, falls man die kennt. Ein Drehbeschleunigungssensor, integriert liefert einen winkel. Der kann zB mit einem Kompass kompensiert werden. Kompensieren bedeutet, vom Istwert-Sollwert rechnet man den Offset zurueck, und verwendet den weiterhin.
Purzel H. schrieb: > Der kann zB mit einem Kompass kompensiert werden. "Sensor Fusion" heißt das Stichwort
Toni E. schrieb: > Ich habe einen Beschleunigungssensor, Ohne nähere Angaben gehen wir also von einem idealen Sensor aus, der Dir tatsächlich zu jedem Zeitpunkt die exakte Momentanbeschleunigung liefern kann. > von den Werten will ich die Geschwindigkeit bekommen. > > Reicht es so: V0+a*dt > > Ich messe den Zeitabstand zwischen zwei Signalen > und multipliziere mit > der momentanen Beschleunigung? Sofern die Beschleunigung in dem betrachteten Zeitraum tatsächlich konstant ist, dann funktioniert das mal für dieses eine Intervall. Wenn Deine Messintervalle außerdem noch tatsächlich nahtlos aufeinander folgen, dann bekommst Du (mit Deinem perfekten Sensor) auch über beliebige, längere Zeiträume exakte Ergebnisse. Allerdings ginge das in dem Fall auch viel einfacher: Da die Beschleunigung in jedem einzelnen Intervall als konstant vorausgesetzt wurde, die Intervalle nahtlos auf einander folgen und jede reale Beschleunigungskurve stetig sein muß, ist die bleibt die Beschleunigung auch über beliebig lange Zeiträume konstant, wir haben also den Spezialfall der gleichförmig beschleunigten Bewegung und die Geschwindigkeit läßt sich auch mit der einfachen Formel: v = a * t ausrechnen. Leider liefert Dir ein realer Sensor immer nur fehlerbehaftete Messwerte und damit stehst Du vor einem Problem: je kleiner Du dt wählst, umso mehr Fehlerterme summierst Du auf, vergrößerst Du aber dt, dann steigt der Fehler Deines Ergebnisses, weil Du ja Änderungen der Beschleunigung während diese Intervalls übersiehst.
Michi S. schrieb: > Leider liefert Dir ein realer Sensor immer nur fehlerbehaftete Messwerte > und damit stehst Du vor einem Problem: je kleiner Du dt wählst, umso > mehr Fehlerterme summierst Du auf, Dann kommt es immer noch auf das Vorzeichen der Messfehler an.
Toni E. schrieb: > Reicht es so: V0+a*dt Mathematisch ist das vermutlich "gut genug", im Sinne von, es wird das Ergebnis nicht erheblich verbessern, etwas schlaueres zu machen. Konzeptuell wird das vermutlich nicht funktionieren, die so ermittelte Geschwindigkeit driftet dir innerhalb kürzester Zeit völlig weg. Beschreibe mal die reale Aufgabenstellung, dann kann man vielleicht ein funktionierendes Konzept empfehlen. Versuche irgendeinen Sensor-Input zu finden, der einen direkten Bezug zur Geschwindigkeit hat, zum Beispiel ein Odometer -- das funktioniert immer am besten.
Das Problem plagt Roboterbauer und Entwickler schon lange. Rakentenbauer noch länger ;). Deswegen wird für mobile Roboter gern in einigermaßen verlässlichen Abständen ein genauerer Positionswert zur Korrektur/ Stützung hinzugezogen. Ob nun über z.B im Boden eingelassene RFID Transponder, optische Referenzmarken oder RTK GPS ... Auch die schonmal etwas genaueren von den Antriebsrädern abnehmbaren Odometriedaten leiden ja unter Schlupf und veränderlichen Fehlern durch Last und verschleißbedingte Änderungen der Raddurchmesser.
Das Stichwort für die Suchmaschine ist "Kalman-Filter". Da findest du jede Menge Beschreibungen wie du Geschwindigkeiten aus mehreren ungenauen Quellen berechnest.
In Flugzeugen wird das benutzt, wenn alle anderen Möglichkeiten der Positionsbestimmung ausgefallen sind, z.B. die Antennen durch Blitzeinschlag zerstört. https://de.wikipedia.org/wiki/Tr%C3%A4gheitsnavigationssystem
Nach 10 Minuten im Betrieb (Temperatur erreicht) geht das ganze ganz passabel über 0.5-2 Minuten auch mit günstigsten Sensoren. Wenn irgendwas vibriert: vergiss es komplett.
Toni E. schrieb: > Ich habe einen Beschleunigungssensor, von den Werten will ich die > Geschwindigkeit bekommen. Vielleicht beschreibst du dein Problem etwas genauer. Die Lösung sieht bei periodischen Signalen anders aus als bei beliebigen eindimensionalen Signalen oder gar dreidimensionalen Signalen mit konstantem Gleichanteil.
Toni E. schrieb: > Reicht es so: V0+a*dt Nein. a ist im Ruhezustand 1g. Deine Überlegungen sind nur dann einfach (und trotzdem schnell ungenau), wenn du nur Bewegung senkrecht zur Erdanziehung betrachtest. Wenn es um Straße, Gelände oder Drohne geht, brauchst Du meist noch ein Gyro dazu.
Merkt denn keiner, dass der Toni feixend in der Ecke sitzt und seit seinem Eröffnungs-Posting auf keinen einzigen Beitrag reagiert hat?
Toni E. schrieb: > Ich habe einen Beschleunigungssensor Was für einen? Kapazitiv Piezoresistiv Piezoelektrisch https://www.tme.eu/de/news/library-articles/page/22568/Wie-funktioniert-und-was-ist-ein-Beschleunigungssensor/
Bruno V. schrieb: > Wenn es um Straße, Gelände oder Drohne geht, brauchst Du meist noch ein > Gyro dazu. Daß sich das Ding auch noch drehen soll, davon stand bisher nichts im Auftrag.
Jens G. schrieb: > Daß sich das Ding auch noch drehen soll, davon stand bisher nichts im > Auftrag. Dass Bewegungen nicht immer senkrecht zur Erdoberfläche und gradlinig verlaufen (Kurvenfahrten verfälschen v ebenso), diese Anforderung stellt das Leben.
Bruno V. schrieb: > Dass Bewegungen nicht immer senkrecht zur Erdoberfläche und gradlinig > verlaufen (Kurvenfahrten verfälschen v ebenso), diese Anforderung stellt > das Leben. Warum senkrecht zur Erdoberfläche? Warum Kurvenfahrten? Wenn Toni E nicht schreibt, was er genau möchte, dann ist es müßig weiter darüber zu diskutieren. Wenn ich bei einer rotierenden Maschine die Schwinggeschwindigkeit aus der Schwingbeschleunigung berechnen möchte, dann dividiere ich einfach Beschleunigung durch die Frequenz der Drehbewegung. Bei einer IMU ist sicherlich ein Kalman- oder Mahony-Filter der geeignete Algorithmus.
Joe G. schrieb: > . > Wenn ich bei einer rotierenden Maschine die Schwinggeschwindigkeit aus > der Schwingbeschleunigung berechnen möchte, dann dividiere ich einfach > Beschleunigung durch die Frequenz der Drehbewegung. Wortwahl und Inhalt der OP lassen darauf schließen, dass er noch keinen gSensor hat und er sich neu damit beschäftigt. Ich fürchte gar, dass er noch annimmt, es gäbe Sensoren, die rein die Beschleunigung aus Geschwindigkeitsänderung messen. So wie andere sich Neigungssensoren für Motorrad oder Fluggerät erhoffen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.