Numerische Integration, a -> v

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da mE v0 nur ein Offset darstellt, und deine Formel kompliziert aber ok aussieht, würde ich die Daten sehen wollen.
Ben83
User
Beiträge: 4
Registriert: Samstag 2. Januar 2021, 22:56

Hallo. Das wären die Plots.

Beschleunigung (Rohsignal)
Bild

Geschwindigkeit:
Bild


PS: Warum werden die Bilder nicht angezeigt? Rechtsklick auf "BILD" zeigt aber den korrekten Link...
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Weil es Links auf Webseiten und nicht Bilder sind. Ein klassisches Problem hier. Es wäre schön, wenn Bilder hier gehostet würden, aber das denke ich zu sehr ins Geld, das ohne Werbung aus privater Tasche kommt. Ist also so.

Wenn du v0 änderst, zb auf die Hälfte des erreichten Wertes der Integration, verändert sich dann die Steigung? Ich würde das erstmal überraschen, aber es ist ein Test deiner Hypothese.
Ben83
User
Beiträge: 4
Registriert: Samstag 2. Januar 2021, 22:56

Habe ich ausprobiert. Die Kurve wird nur um den neuen Startwert mehr oder weniger parallel verschoben.
v0 habe ich sowohl in der Formel geändert als auch bei der kompletiertung der Liste für t=0 (vel.insert(0, v0).

Was kann dann die Ursache sein? Wenn ich mir das Beschleunigungssignal anschaue, müsste doch auch das berechnete Geschwindigkeitssignal sowohl im positiven als auch im negativen Zahlenraum sein.

Squipy hat in diesen Beitrag ja von einer aufsteigenden Flanke gesprochen und drei Lösungsmöglichkeiten angegeben. Mit diesen kann ich leider nur nicht viel anfangen. Schon gar nicht wenn es um Filter geht.

viewtopic.php?f=30&t=46865#p355388
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe tatsaechlich in diesem Moment das gleiche Problem - ich arbeite mit einer IMU um Vibrationen zu erfassen. Dazu benutze ich nicht deren Beschleunigung, sondern die Gyros. Und die haben bekannterweise Drift. Das sieht man hier ganz gut:

Bild

Oben sind die rohen Daten. Das Geraet wurde nicht bewegt, sondern liegt nur auf einem Lautsprecher, auf dem Musik gespielt wird. Wie man sieht dreht sich ueber die gesamten ~4-5 Minuten der Gyro langsam in eine Richtung. Die Vibrationen sind genauer gar nicht zu erkennen. Der harte Drop ist ein Knofpdruck, der den Wert auf 0 setzt.

Und darunter siehst du die Frequenzanteile mittels FFT aufgetragen. Zweimal, einmal mit scipy berechnet, einmal auf meinen Microcontroller (das ist das eigentliche Ziel). Wie man gut sieht, ist der Drop als Hochfrequenter Anteil in der FFT zu sehen. Was man auch sehen kann: am unteren Rand wird das Signal immer staerker, je weiter die Zeit fortschreitet. Das ist eben der tieffrequente Anteil, der sich durch diese Grade ausdrueckt.

Und jetzt die gleichen Daten, aber mit einem in der Frequenzdomaene super einfachen Hochpass-Filter, bei dem ich einfach die untersten 10 Baender abgeschnitten habe:

Bild

Und das meint Squipy auch mit seinen Loesungsmoeglichkeiten: man kann auf diese Weise einen Hochpass bauen, und aus den FFTs wieder das Signal synthetisieren. Damit sollte die Schraege verschwinden. Ich habe das noch nie probiert, und heute ist zu spaet. Aber das ist ein Weg. Es gibt aber auch andere Hochpass-Filter, und er benutzt einen. Last but not least kannst du auch einfach eine Gerade in deine Daten (die Geschwindigkeit!) fitten. Und aus der Steigung berechnest sich dadurch eine Beschleunigung, die im Schnitt eben diese Drift verursacht. Die kannst du dann einfach abziehen.
Ben83
User
Beiträge: 4
Registriert: Samstag 2. Januar 2021, 22:56

Echt interessant. Ich denke die Option mit der Korrektur mit einer über das Signal gelegte Gerade scheint ein plausibeles Ergebnis zu liefern. Werde ich im Laufe der Woche mal ausprobieren. Dann kann ich das Ergebnis auch mit der Auswertung auf der Arbeit vergleichen. Dort haben wir einen Prüfstand, bei dem u.a. Schwingungen aufgenommen werden. Die Auswertung erfolgt allerdings innerhalb der Prüfstandssoftware, so dass ich nur die Ergebnisse miteinander vergleichen kann.

Die FFT Berechnung werde ich mir dann auch mal anschauen.

Ich Berichte wenn ich hier plausibele Ergebnisse erhalte. Vielen Dank bis hierher für deine Hilfe.
Squipy
User
Beiträge: 39
Registriert: Sonntag 30. Juni 2019, 16:42

Hi Zusammen,

das Ergebnis bzgl. des Lösungsansatzes mit der Geraden würde mich mal interessieren. Ich befürchte, dass du dann immer noch ein leichtes unplausibles Verhalten hast, ähnlich wie bei Subtraktion des Mittelwertes vor dem integrieren oder?

Die einfachste Möglichkeit den Datensatz Offset zu bereinigen müsste wohl der Hochpassfilter sein, hier ist allerdings zu beachten, dass dieser eine Einschwingdauer hat.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist denke ich ziemlich äquivalent, ja. Der Mittelwert ist ja nichts anderes als die Steigung der Geraden. Und das geht natürlich auch nur, wenn die Drift konstant ist. Ich habe aber auch schon Veränderungen beobachtet, die nicht geradenförmig waren.
Antworten