Guten Morgen, ich habe im letzten Jahr einen Messaufbau zur Erhebung von verschiedenen Daten entwickelt. Darunter auch die einer 6-Achs Kraftmessdose. Das umwandeln der Messignale und das Abspeichern der Daten erfolgt mit der Hilfe eines Raspberry Pi. Um die Signale der verschiedenen Sensoren einlesen zu können habe ich zwei dieser Shields verwendet. Diese kommunizieren über die UART bzw. das zweite über die TTL-Schnittstelle (UART zu TTL Kabel): https://www.me-systeme.de/shop/de/elektronik/gsv-6/gsv-6pi-shield Jetzt habe ich versucht mein System auf zwei verschiedene Arten zu Testen. Der erste Versuch, bei dem es auch zu keinen auffälligen Ergebnissen gekommen ist war mit Hilfe eine Zylinders mittig auf die Kraftmessdose zu drücken und so ein stetig ansteigendes Signal zu erhalten. Dieser mehr oder weniger statische Test gibt auch ein sinnvolles Ergebnis aus und die angezeigte Kraft auf der Kraftmessdose ist richtig. Der zweite Test ist ein dynamisches Verfahren. Dabei wird eine Kraft von 1,2kN mit einer variablen Frequenz belastet und dann wieder losgelassen. Im Beispiel Bild mit 1 Hz. Bei dieser Belastung fällt aber am Messignal auf, dass das Signal in einem periodischen Takt übersteuert, dann wieder auf die richtigen Werte geht und dann wieder zu übersteuern beginnt. Das wiederholt sich dann in einem bestimmten Intervall. Jetzt wollte ich wissen, ob jemand weiß, warum mein Messignal bei dem periodischen Test sich so anders verhält und wodurch diese extremen Ausschläge entstehen könnten. Was ich mir gedacht habe sind einfach irgendwelche schlechten Lötstellen oder einfach irgend ein Problem bei dem Shield, dass die Messwerte umrechnet, was anderes wäre ist mir leider nicht eingefallen. Anmerkung: Ein Bild der Messfile des dynamischen Tests befindet sich im Anhang. Sollten noch irgendwelche Fragen entstanden sein, versuche ich diese bestmöglich zu beantworten. Ich hoffe, dass mir jemand weiterhelfen kann. Gruß Matthias
Matthias P. schrieb: > Das umwandeln der Messignale und das Abspeichern der Daten erfolgt mit > der Hilfe eines Raspberry Pi. Ich nehme für erste Untersuchungen und zu Kontrollmessungen so weit es immer ein Oszilloskop. Dann habe ich sicher nicht mit Abstastungsartefakten (Undersampling&Co) zu tun, oder ich finde es schnell heraus, ob es sowas ist... > Jetzt wollte ich wissen, ob jemand weiß, warum mein Messignal bei dem > periodischen Test sich so anders verhält und wodurch diese extremen > Ausschläge entstehen könnten. Jetzt wäre es interessant, wo und womit dieses Messignal aufgenommen wird. Du hast da augenscheinlich ein Interferenzproblem in einem schwingungsfähigen Messaufbau. > Dabei wird eine Kraft von 1,2kN mit einer variablen Frequenz belastet > und dann wieder losgelassen. Wie muss man sich vorstellen, dass "eine Kraft" mit einer "Frequenz" irgendwie "belastet" wird? > Anmerkung: > Ein Bild der Messfile des dynamischen Tests befindet sich im Anhang. Anmerkung: Jetzt wäre ein Bild des zugehörigen dynamischen Testaufbaus noch interessant. Und Informationen zur absoluten Größe der Kräfte und der Frequenzen ud Zeiten... Dir sollte klar sein, dass wir überhaupt absolut keinerlei Ahnung von deiner Aufgabe und deinem Problem haben. Lies deine Beschreibung also nochmal durch, wie wenn du dieses Wissen ebenfalls nicht hättest. Würdest du deine Frage verstehen? Fehlen Informationen? Egberto schrieb: > Eventuell ist die Kraftemßdose einfch nicht so schnell Dann wären die Kanten abgerundet, nicht "überspitzt". > Datenblatt? Typ? Bezeichnung?
:
Bearbeitet durch Moderator
Das sind also kurze Überschwinger bei jedem Lastwechsel für etwa 70s plus 10s ohne. Verarbeitungsproblem? --> rohwerte Posten, notfalls UART mitschneiden. Ist die Zeit bei anderen Frequenzen gleich oder proportional? Wie machst Du die 120kg Belastung? Evt. Ein Artefakt durch Stoß? Oder hohe Ströme, ... Kommst Du am die analogwerte mit Oszilloskop?
Lothar M. schrieb: > Ich nehme für erste Untersuchungen und zu Kontrollmessungen so weit es > immer ein Oszilloskop. Dann habe ich sicher nicht mit > Abstastungsartefakten (Undersampling&Co) zu tun, oder ich finde es > schnell heraus, ob es sowas ist... Habe leider gerade nicht die Möglichkeit das ganze mit einem Oszilloskop zu messen, da die ganzen Messleitungen ziemlich unzugänglich sind und ich dazu zunächst irgendetwas auftrennen müsste. Deswegen wollte ich zunächst alle anderen Möglichen Fehlerquellen ausschließen. > Jetzt wäre es interessant, wo und womit dieses Messignal aufgenommen > wird. Du hast da augenscheinlich ein Interferenzproblem in einem > schwingungsfähigen Messaufbau. Das Messignal wird wie beschrieben von dem Shield aufgenommen und dann mittels UART an den Raspberry weitergeschickt, wo diese Daten dann auf einem USB-Stick gespeichert werden > Wie muss man sich vorstellen, dass "eine Kraft" mit einer "Frequenz" > irgendwie "belastet" wird? Also es wird einfach ein Pneumatikzylinder in einem bestimmten Intervall ausgefahren und dann wieder eingefahren. > Jetzt wäre ein Bild des zugehörigen dynamischen Testaufbaus noch > interessant. Und Informationen zur absoluten Größe der Kräfte und der > Frequenzen ud Zeiten... Davon habe ich leider grade kein Bild zur Hand. Im Grunde ist es ein Aufbau mit einem Leitrechner, einer Einachs-Kraftmessdose und einem Zylinder. Die Kraft die auf diese Kraftmessdose wirken wird am Bildschirm angezeigt. > Dir sollte klar sein, dass wir überhaupt absolut keinerlei Ahnung von > deiner Aufgabe und deinem Problem haben. Lies deine Beschreibung also > nochmal durch, wie wenn du dieses Wissen ebenfalls nicht hättest. > Würdest du deine Frage verstehen? Fehlen Informationen? Ja Verzeihung, ich weiß was du meinst. Ist leider nicht sehr einfach, wenn man sich schon länger mit einem Aufbau auseinandersetzt. Hier noch einmal mein Messaufbau erklärt: Ich habe ein Elektronikbox in der sich die Auswärteelektronik befindet. Dazu zählen die beiden Shields, ein Raspberry Pi und ein USV-Shield für den Pi. An die beiden Shields werden insgesamt 12 verschiedene Sensoren verbunden (6-Achs-Kraftmessdoe und 6 verschiedene 0-10V Sensoren). Jetzt wollte ich schauen ob die Umrechenfaktoren und das Messignal meiner Kraftmessdose richtig sind und habe diese in einen anderen Versuchsaufbau mit eingebunden (den mit dem Pneumatikzylinder). Dies dient einschließlich dazu zu schauen, ob meine Messung später überhaupt richtig ist. Und dabei bin ich dann eben auf das beschriebene Problem gestoßen. Ich hoffe, das hat das ganze jetzt ein wenig besser erklärt >> Datenblatt? > Typ? Bezeichnung? https://www.me-systeme.de/shop/de/sensoren/kraftsensoren/k6d/k6d802
A. S. schrieb: > Das sind also kurze Überschwinger bei jedem Lastwechsel für etwa 70s > plus 10s ohne. Ja genau > Verarbeitungsproblem? --> rohwerte Posten, notfalls UART mitschneiden. Habe die Datei im Anhang angefügt. Zu beachten ist aber, dass die Daten mit einer Frequenz von 300 Hz abgespeichert werden, weshalb die CSV-Datei schon ziemlich rechenintensiv ist. > Ist die Zeit bei anderen Frequenzen gleich oder proportional? Diese Zeit ist proportional > Wie machst Du die 120kg Belastung? Evt. Ein Artefakt durch Stoß? Oder Dass diese Spitzen auftreten kann ich mit sehr hoher Wahrscheinlichkeit ausschießen, da bei dem dynamischen Test eine andere Kraftmessdose am Zylinder befestigt ist, deren Werte am Bildschirm ausgegeben werden und diese werde keine solchen Ausreißer anzeigt. > Kommst Du am die analogwerte mit Oszilloskop? Leider schlecht. Anmerkung: Durch deinen Anstoß mit den Rohwerten habe ich mir diese noch einmal angeschaut und bin daraufgekommen, dass diese eventuell sogar richtig sind und nur meine Datenverarbeitung irgend ein Problem enthält. Wäre hilfreich wenn jemand anderes sich das ganze auch anschauen könnte.
> Das sind also kurze Überschwinger bei jedem Lastwechsel für etwa 70s > plus 10s ohne. Ganz so einfach ist das nicht. Achtet mal drauf das die Ueberschwinger am Anfang nur bei der steigenden Flanke auftreten und spaeter nur bei der fallenden. Olaf
Olaf schrieb: > Achtet mal drauf das die Ueberschwinger am Anfang nur bei der steigenden > Flanke auftreten und spaeter nur bei der fallenden. Noch schlimmer: die treten beim willkürlich gezoomten Signal anfangs immer beim Lastwechsel wie ein "Überschwinger" in gleicher Richtung wie der Lasteintrag auf. Aber später geht es nach stabilisierter Kraft erst mal in *die andere Richtung*: obwohl die Kraft weggenommen wird, steigt der Messwert erst mal an. Das ist doch irgendeine Interferenz wegen eines schwingungsfähigen Messaufbaus. Da klappert irgendwas irgendwo gegen...
:
Bearbeitet durch Moderator
Matthias P. schrieb: > Anmerkung: Durch deinen Anstoß mit den Rohwerten habe ich mir diese noch > einmal angeschaut und bin daraufgekommen, dass diese eventuell sogar > richtig sind und nur meine Datenverarbeitung irgend ein Problem enthält. > Wäre hilfreich wenn jemand anderes sich das ganze auch anschauen könnte. Hallo Matthias, auf deine Bitte hin habe ich mir auch einmal die Rohdaten angeschaut und ich komme zum selben Schluss. Für mich sieht es auch so aus, als wären die Rohdaten valide, denn hier sehe ich die ungewollten Spitzen definitiv nicht. Soweit ich das sehe, sind die Kanäle 1, 2, 3, 8 und 9 in Verwendung, stimmt das? Ich sehe allerdings dynamisches Verhalten bei der Entlastung der Kraftmessdose, was Falks Vermutung zum Messaufbau stützt, vielleicht schwingt da etwas. Beim Vergleich mit der zweiten Kraftmessdose solltest du übrigens vorsichtig sein, wenn du nicht weißt welche Signalverarbeitung da schon vorgenommen wurde. Vielleicht werden da schnelle Änderungen auch durch ein Filter geglättet. LG Simon
Simon D. schrieb: > Hallo Matthias, > > auf deine Bitte hin habe ich mir auch einmal die Rohdaten angeschaut und > ich komme zum selben Schluss. Für mich sieht es auch so aus, als wären > die Rohdaten valide, denn hier sehe ich die ungewollten Spitzen > definitiv nicht. Soweit ich das sehe, sind die Kanäle 1, 2, 3, 8 und 9 > in Verwendung, stimmt das? Ja das stimmt, habe vergessen das anzumerken tut mir leid. > Ich sehe allerdings dynamisches Verhalten bei der Entlastung der > Kraftmessdose, was Falks Vermutung zum Messaufbau stützt, vielleicht > schwingt da etwas. Ja, das ein kleines Schwingen auftreten kann/auftritt habe ist auch zu erwarten. Was aber nicht sein kann sind die extremen Spitzen. > Beim Vergleich mit der zweiten Kraftmessdose solltest du übrigens > vorsichtig sein, wenn du nicht weißt welche Signalverarbeitung da schon > vorgenommen wurde. Vielleicht werden da schnelle Änderungen auch durch > ein Filter geglättet. Habe mich mit demjenigen, der den anderen Messaufbau entwickelt hat in Verbindung gesetzt und der meinte, dass nichts dergleichen einen Vergleich der Daten im Weg steht. Dies stellt mich jetzt vor die Herausforderung herauszufinden, wo genau meine Datenverarbeitung einen Fehler hat. Hat jemand eine Idee wie ich da am besten Anfange? Die Datenverarbeitung erfolgt mittels einem selbstgeschriebenem Python Programm, dass zur Umrechnung der Kraftmessdose auf die vom Händler bereitgestellte Kalibriermatrix zugreift.
Matthias P. schrieb: > Dies stellt mich jetzt vor die Herausforderung herauszufinden, wo genau > meine Datenverarbeitung einen Fehler hat. Hat jemand eine Idee wie ich > da am besten Anfange? > Die Datenverarbeitung erfolgt mittels einem selbstgeschriebenem Python > Programm, dass zur Umrechnung der Kraftmessdose auf die vom Händler > bereitgestellte Kalibriermatrix zugreift. Du kannst ja mal deinen Algorithmus hier aufschreiben. Damit meine ich nicht den Quelltext, sondern einfach kurz die Formeln und den Ablauf. Wenn wir dann auch noch die Justagedaten kriegen, kann ich mal probieren das auf die Daten anzuwenden. Wenn dann dasselbe Ergebnis rauskommt, liegt es nicht an deiner Umsetzung. LG Simon
Matthias P. schrieb: > wo genau meine Datenverarbeitung einen Fehler hat. > Hat jemand eine Idee wie ich da am besten Anfange? Wie ich schon mal ähnlich schrieb: > Dir sollte klar sein, dass wir überhaupt absolut keinerlei Ahnung von der Art der Datenverarbeitung haben. > Lies deine Beschreibung also nochmal durch, wie wenn du dieses Wissen > ebenfalls nicht hättest. Welche Informationen fehlen? Was sehen wir überhaupt im Bild des Startposts? Zu welchem Signal der Rohdaten gehört das? Oder sind in diesem Signal mehrere Achsen der Rohdaten zusammengerechnet? Kurz: wie wurde das fahlerhafte Signal vom ersten Post aus den fehlerfreien Rohdaten gewonnen?
:
Bearbeitet durch Moderator
Schau Dir mal die 6 Rohsignale Fx...Mz einzeln an. Also vor Deiner Berechnungsmatrix. gk
Simon D. schrieb: > Du kannst ja mal deinen Algorithmus hier aufschreiben. Damit meine ich > nicht den Quelltext, sondern einfach kurz die Formeln und den Ablauf. > Wenn wir dann auch noch die Justagedaten kriegen, kann ich mal probieren > das auf die Daten anzuwenden. Wenn dann dasselbe Ergebnis rauskommt, > liegt es nicht an deiner Umsetzung. Was genau Justagedaten sind weiß ich leider nicht aber die Umrechnung der Daten kann ich dir aufschreiben: Das es sich um eine 6-Achs-Messdose handelt, heißt es, dass eine Änderung eines Signals sich auf alle anderen auswirkt. Dies wird über die Kalibriermatrix gelöst. Diese lautet folgendermaßen, wobei Fx-Fz Kanal 1-3 und Mx-Mz Kanal 7-9 entsprechen: Fx,-41.4132,2226.5754,-2310.5808,-31.3274,2278.2211,-2265.7324 Fy,-2639.7703,1283.3377,1300.5386,-2619.0969,1324.9465,1279.0875 Fz,-3640.4144,-3658.2834,-3681.844,-3662.4357,-3688.6963,-3711.6912 Mx,-66.7469,-55.0512,-55.6929,-66.5878,120.9615,119.6011 My,-101.5208,-108.5737,109.0717,102.109,-7.9435,5.004 Mz,66.4242,-64.5826,66.277,-65.172,65.5408,-64.6661 Also sieht die Berechnung von z.B. Fx so aus: Fx * -41.4132 + Fy * 2226.5754... Anmerkung: Was mir aufgefallen ist und ein möglicher Verursacher für die fehlerhaften Daten ist eventuell, dass Fx - Fz auf dem 1 Shield ist und Mx - Mz auf dem zweiten und deswegen ein minimaler Versatz zwischen den Daten entsteht und durch die Kalibriermatrix dann schlussendlich auch das Fehlerhafte Datensignal entsteht.
:
Bearbeitet durch Moderator
Wie werden die Daten über die UART übertragen? Gibt es ein Protokoll, was die Datenpakete synchronisiert, eine CRC, um die Gültigkeit der Daten zu prüfen und gegebenenfalls ein Retry anzufordern? Bei Fehlern können gerne mal Bytes verändert sein oder verloren gehen. Ich hatte auch mal den Fall, daß Bytes vertauscht waren. Ursache war ein fehlerhafter FIFO-Puffer im USB-Treiber. Bei langen Datenpaketen kann es Fehler geben, wenn die Baudrate des Senders geringfügig schneller als die des Empfängers ist. Irgendwann fehlt dem Empfänger die Zeit und ein Byte geht verloren. Abhilfe schafft es dann, 2 Stoppbits zu senden.
Matthias P. schrieb: > Also sieht die Berechnung von z.B. Fx so aus: > Fx * -41.4132 + Fy * 2226.5754... Fx wird aus sich selber berechnet? Matthias P. schrieb: > Was mir aufgefallen ist und ein möglicher Verursacher für die > fehlerhaften Daten ist eventuell, dass Fx - Fz auf dem 1 Shield ist und > Mx - Mz auf dem zweiten und deswegen ein minimaler Versatz zwischen den > Daten entsteht und durch die Kalibriermatrix dann schlussendlich auch > das Fehlerhafte Datensignal entsteht. Sag ich doch: das ist ein Interferenzproblem, du rechnest eine Matrix mit zig Stellen Genauigkeit aus und nutzt dafür Werte, die *nicht gleichzeitig* aufgenommen wurden. Und vermutlich wurden sie sogar mit zeitlichem Jitter aufgenommen, weil der RPi natürlich nicht isochron und wirklich gleichmäßig durchläuft. Mal ein einfacher Test: setze immer beim Start der Messung einen Portpin und setze den beim Auslesen des AD-Werts wieder zurück. Im Idealfall müsstest du auf einem Oszilloskop ein immer gleiches Muster in immer gleichen Abständen sehen. Nur dann kann deine Berechnung funktionieren, denn sie verlässt sich darauf, dass die Daten zum selben Zeitpunkt gehören. Für so eine Berechnung brauchst du ein ADC-System, das die 6 Kanäle zum exakt gleichen Zeitpunkt sampeln kann.
:
Bearbeitet durch Moderator
> Wie werden die Daten über die UART übertragen? > Gibt es ein Protokoll, was die Datenpakete synchronisiert, eine CRC, um > die Gültigkeit der Daten zu prüfen und gegebenenfalls ein Retry > anzufordern? Dazu kann ich leider nicht viel sagen. Ich lese den Messwertframe ein, rechne diesen dann um und speichere ihn ab. Mit mehr habe ich mich bei dieser Kommunikation nicht auseinander gesetzt. Eventuell findet sich im Datenblatt eine Antwort auf deine Frage: https://www.me-systeme.de/produkte/elektronik/gsv-8/anleitungen/GSV-Protokollspezifikation.pdf
Lothar M. schrieb: > Matthias P. schrieb: >> Also sieht die Berechnung von z.B. Fx so aus: >> Fx * -41.4132 + Fy * 2226.5754... > Fx wird aus sich selber berechnet? mit Fx ist in dieser Formel der Rohwert gemeint. Verzeihung für die Verwirrung. > Sag ich doch: das ist ein Interferenzproblem, du rechnest eine Matrix > mit zig Stellen Genauigkeit aus und nutzt dafür Werte, die *nicht > gleichzeitig* aufgenommen wurden. Und vermutlich wurden sie sogar mit > zeitlichem Jitter aufgenommen, weil der RPi natürlich nicht isochron und > wirklich gleichmäßig durchläuft. Ja habe gemerkt, dass das ziemlich sicher der Auslöser für meine fehlerhaften Messwerte ist. > Mal ein einfacher Test: setze immer beim Start der Messung ein Bit und > setze es beim Auslesen des AD-Werts wieder zurück. Im Idealfall müsstest > du auf einem Oszilloskop ein immer gleiches Rechteck in immer gleichen > Abständen sehen. Also du meinst ich soll beim RPi beim Zyklen Start einen Ausgang setzten und wenn der Wert abgespeichert wird wieder zurücksetzten und dann den schauen, wie sich das ganze zeitlich verhält. Habe ich das richtig verstanden? > Nur dann kann deine Berechnung funktionieren, denn sie verlässt sich > darauf, dass die Daten zum selben Zeitpunkt gehören. Für so eine > Berechnung brauchst du ein ADC-System, das die 6 Kanäle zum exakt > gleichen Zeitpunkt sampeln kann. Bei meiner Messwertaufnahme dient der RPi ausschließlich zum Zurückrechnen des Hexcodes in eine Dezimalzahl und das Abspeichern der Werte. Das Einlesen der Werte erfolgt mit Hilfe des GSV6-CPU auf dem Shield. Zu dessen Informationsweise habe ich folgende Information: Mit dem GSV-6 verhält es sich folgendermaßen. Der µC verwendet 3 ADC. Bei 6 Kanälen wird also ein ADC auf 2 Kanäle gemultiplext (1&4, 2&5, 3&6). Eine vollständige Wandlung dauert max 30 µs. Zusätzlich ist es nicht so, dass der GSV bei einer eingestellten Frequenz von z.B. 300 Hz nur alle 30ms misst sondern der GSV misst alle 60 µs, also mit einer Taktrate von 16,667 kHz und führt eine Mittelwertbildung über den eingestellten Datenratezeitraum durch.
Matthias P. schrieb: > Mit mehr habe ich mich bei dieser Kommunikation nicht auseinander gesetzt. Dein Problem ist nicht vorrangig die Kommunikation. > Eventuell findet sich im Datenblatt eine Antwort auf deine Frage Nein, da findet sich nichts. Aber auf https://www.me-systeme.de/de/technik-zuerst/elektronik/grundlagen/filter findet sich mal zunmindest das wort "simultan". Allerdings beim "GSV-8". Das Ding kann dann "8x 48kS/s simultane Abtastung". Und es sieht nicht billig aus...
Ich habe die Daten jetzt mal wie angegeben verarbeitet und konnte Matthias' Verhalten exakt reproduzieren. Ich habe Abbildungen vom Gesamtsignal und von zwei Detailbetrachtungen an charakteristischen Positionen gemacht, da kann man das schön sehen. Ich bin dann etwas auf Ursachensuche gegangen und ich behaupte, dass Lothar den Nagel auf den Kopf getroffen hat: für mich sieht es so aus, als würden die Kanäle 1 bis 3 gegenüber den Kanälen 7 bis 9 driften. Man sieht sehr schön, wie die Kanäle in der Gruppe untereinander immer genau synchron sind, sich aber gegenüber den Kanälen aus der anderen Gruppe fortschreitend verschieben. Zwischendurch scheint es auch mal Aussetzer in der Übertragung gegeben haben, da kommen für ein paar Abtastzyklen keine neuen Daten. LG Simon
Vielen Dank erstmal für die ganze Mithilfe von allen. Simons analyse meiner Daten und dass diese mit meinen Werten übereinstimmt zeigt zumindest, dass bei meiner Datenauswertung nicht das Problem liegt. Als nächstes werde ich mich mit der Datenaufnahme beschäftigen. Dazu lege ich alle 6 Kanäle auf ein Shield und schaue wie sich die Messdaten dann verhalten. Das wird erstmal ein wenig Zeit brauchen und für mich ist die weitere Vorgehensweise klar. Sollte jemand einen Einfall haben, woran es sonst liegen könnte, dann bin ich natürlich immer froh darüber. Ansonsten ist das Problem fürs erste "gelöst" und ich melde mich sonst falls es nicht geholfen haben sollte. Noch einmal ein großes Dankeschön. LG Matthias
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.