Hallöle, hab ein Problem bei der Berechnung der Schwingung aus einer Beschleunigung.
Ich gehe folgendermassen vor.
- Auslesen des Sensors
- Werte auf Null skallieren(Keine Bewegung = 0G)
- Werte 2 fach integrieren
- Je einmal ausgeben
Nun die Fragen, muß ich meine G-Werte mit 9,80665 erweitern oder kann ich das rauslassen. Ist doch eigentlich nur ein konstanter Faktor der für das Integral egal ist.
Und warum hab ich so einen Blöden konstanten Offset drauf (siehe Screenshot) Die bunten Kurven sind die Beschleunigungsmesswerte und die 4 Kurven darunter sind die X-Achse(blaue Beschleunigungskurve)
Die mittleren 2 sind die normal integrierten die unteren 2 sind die faktoriesierten (abrunden auf 2 Nachkommastellen) und mit dem Fekator 9,80665 erweitert.
Hänge das VI auch mal aber damit könnt ihr wohl nix anfangen weil die VI's für den verwendeten Messwert umformer habt ihr ja net.
Aber zum ansehen sollte es reichen
Also merci mal Felix
Welchen Offset meinst du? Hab ich nicht gesehen.
Mit 9.81 musst du das Integral nur normieren, wenn du SI Einheiten haben willst (m , m/s). Ansonsten hast du halt willkürliche Einheiten. Wenn es dir aber nur um den Verlauf der Kurve geht, sollte es egal sein.
Ich würde allerdings schon sinnvolle Einheiten nutzen. An deiner Stelle würde ich auch die Achsen deiner Graphen benennen / Einheiten angeben.
Das hilft enorm, wenn auch Andere sich bei deinem Programm auskennen sollen.
Klar kommen noch Achsbezeichnung hinzu die Eindeutiog sind.
Im moent ist das Problem, das die Kurve im Anhang, eigentlich um die X-Achse Schwingen sollte. Wie man aber unschwer erkennen kann haut si nach oben ab(das meinte ich mit Offset, war etwas misverständlich aus gedrückt
Die Frage ist nun wieso macht die kruve das und wie beheb ich das?
Merci Felix
Gibt es bei dir nur translatorische Bewegungen?
Die 9,81 muss du nur vom Z-B-Messer abziehen, wenn Z immer nach oben zeigt.
Offsets sehe ich auch nicht.
Gruss, Eugen
Ach ja, jetzt sehe ich was du meinst. Es ist an der dritten Kurve links deutlich zu sehen.
Ich vermute es hat mit der Zeit zu tun, nicht mit der Beschleunigung oder mit dem Sensor.
Wie lange hast du gemessen? Kann das auch eventuell Temperaturabhängigkeit sein?
Gruss
Jetzt versteh ich auch was du meinst.
Glaube nicht, dass das ein Problem im Programm ist. Ich vermute eher, dass deine Kalibration ev. fehlerhaft ist.
Hast du schonmal versucht alle Werte aus deinem Messarray zu addieren? Bei einer Schwingung sollte dann als Summe 0 +- Messfehler rauskommen.
Sollte da nicht 0 rauskommen könntest du den Mittelwert des Arrays von den Arraywerten abziehen. Damit solltest du dann eine um 0 schwingende Bewegung erzielen.
@ Kvasir,
wenn er den Mittelwert von der Kurve abzieht, dann verschiebt er nur die gesamte Kurve so, dass die unter Null anfängt, in der Mitte die X-Achse schnedet und über Null endet.
Wnn Korrektur, dann würde ich eine lineare Approximation durchführen und dann die Differenz mit dieser Gerade bilden.
Gruss
@eugen:
ich meinte den Beschleunigungsarray. Wenn der Mittelwert davon auf 0 gesetzt wird, steigt die Integralkurve nicht mehr an.
(Lineare) Approximation der Geschwindigkeit ist natürlich auch eine gute Idee.
So oder so, am besten der Fehler würde gefunden, sodass eine Korrektur unnötig wird.
Richtig !
Noch besser: beide Methoden ausprobieren, um rauszufinden ob der Fehler an der Integration oder am Sensor bzw. Werteaufnahme liegt.
Gruss
so das sagt ihr so einfach. Die Frage ist nun wo kann dieser Fehler sitzen. Der Sensor ist auf einem Eval-Kit und sollte daher richtig parametirert sein. Dann kommt ein Kabel und das ganze geht in den Labjack (das ist ein Messwertumformer. Das heißt für mich Da das einzige Teil was ich selber eingebaut hab das Kabel ist wird der Fehler wohl hiran liegen.
Oder seit ihr da anderer Meinung.
Vielleicht mal kurz zum ganzen Projekt, das ihr besser durchschaut.
Die Werte die ihr seht sind in einem Zeitbereich von etwa 8 sekunden aufgenommen(also scheidet meines erachtens zumindest Die Temperatur aus) es handelt sich hierbei um 8*2000 Messwerte die im Sekundentakt eintreffen.
Wie von euch richtig erkannt sollte das ganze um die X-Achse schwingen. So wie löse ich das am besten.
Vielen Dank mal Felix
Wenn ihr mehr infosbraucht meldet euch
Fehlersuche ist immer das mitunter schwierigste. Zumindest ist das meine Erfahrung.
Am besten ist hier du prüfst dich systematisch durch das Programm / Aufbau und schließt Fehlerquellen aus.
Du könntest z.B.:
Dein Programm mit einer simulierten Sinusschwingung (im Programm - gibt es ein Vi dafür) testen. Kein Fehler -> es liegt nicht an der Auswertung der Daten.
Ev. hast du die Möglichkeit einen Funktionsgenerator anstatt deines Bewegungsmelder an dein LabJack anschließen und einen Sinus einspeißen. Kein Fehler -> Es liegt nicht an der Übergabe der Messdaten.
Als Fehlerquelle die mir auf die Schnelle einfällt:
Wenn dein Messarray keine ganze Anzahl an Perioden der Schwingung einließt, dann erzeugst du natürlich einen Fehler.
Als Beispiel: Jede Messung / Sekunde liest immer die erste Hälfte einer Schwingung ein. Dann hast du natürlich nur positive Beschl. Werte.
Je weniger Perioden in einem Messaray stecken, desto größer würde dann auch der relative Fehler, was sich mit dem großen Fehler der grünen Kurve zum kleinen Fehler der blauen Kurve decken würde.
Grüße