Hallo Zusammen,
ich habe derzeit ein Problem bei der Bestimmung einer Position.
Nehmen wir an wir haben ein Objekt dass Linear mittels eines Motors und
einem Seil hin und her bewegt wird.
Der Motor hat einen Motorencoder (Drehgeber). Die Daten des
Motorencoders sind quasi sofort verfügbar, aber beinhalten einen Fehler
durch Schlupf, Dehnung und Stauchung des Seiles.
Zusätzlich wird die Position des Objektes mit einem linearen
Absolutencoder erfasst. Die Absolutposition wird über CAN übertragen.
Das Telegramm beinhaltet ausserdem die Geschwindigkeit
(Positionsdifferenz zw. 10ms).
Zwischen zwei Absolutpositionsberechnungen (innerhalb des Sensors)
vergehen hinreichend genau 10ms.
Der CAN-Bus ist ziemlich ausgelastet und ich habe keine Information
darüber wie "alt" die Nachricht ist, außer dass sie höchstens 10ms alt
ist. Der Abstand zwischen zwei eintrudelnden CAN-Botschaften ist nicht
konstant!
Dadurch habe ich auch einen Fehler in der absolutposition (solange das
Objekt in Bewegung ist, im Stillstand -> Kein Problem!).
Ich möchte nun die Position (s(T))ohne Fehler (oder mit minimalem
Fehler) ausrechnen. Gibt es dazu Möglichkeiten?
Die Position wird dann weiter verarbeitet und es wird daraus eine
Fahrkurve berechnet.
Es reicht die Position während der Konstantfahrphase (a(T)=0) zu
stützen.
Hat jemand eine Idee oder einen Ansatz? Eventuell auch eine
Buch/Internet Empfehlung für mich?
Du brauchst mehr Informationen über
Christopher B. schrieb:> Schlupf, Dehnung und Stauchung des Seiles
Sind diese Größen beliebig, sind die Messwerte des Motorencoders nichts
wert. Mit dem Absolutgeber alleine ist wegen der schwankenden Totzeiten
keine hinreichend genaue Positionsschätzung möglich, also ist dein
Problem nicht lösbar.
Aber vielleicht kann man davon ausgehen, dass die Dehnung bzw. Stauchung
des Seils während der Phasen ohne Beschleunigung bekannt und während
einer konstanten Beschleunigung vielleicht nicht bekannt, aber zumindest
ebenfalls konstant ist.
Woher kommt der Schlupf? Wird das Seil über eine Rolle per Reibung
angetrieben? Was weiß man sonst noch über den Schlupf (Maximalwert
u.ä.)?
Je genauer dein Schlupf-Dehnungs-Modell ist, desto höher sind die
Chancen, die Enocderdaten gewinnbringend in eine Gesamtrechnung
einbringen zu können.
Für den Absolutgeber hast du ja die Messfrequenz und Obergrenze der
Totzeiten genannt, was schon einmal einen guten Ausgangspunkt darstellt.
Aber vielleicht gibt es auch hier noch weitere nützliche Informationen.
Perfekt wird die Positionsschätzung nie werden, aber jedes Plus an
Information über die Messdaten kann dazu beitragen, den Fehler zu
reduzieren. Erst, wenn du den größten Teil dieser Informationen
beisammen hast, mach es Sinn, über die einzusetzenden Methoden
(Kalman-Filter oder was auch immer) nachzudenken.
Hallo Yalu,
danke, das ist doch schon mal eine Ansage :)
Yalu X. schrieb:> Du brauchst mehr Informationen über>> Christopher B. schrieb:>> Schlupf, Dehnung und Stauchung des Seiles>> Sind diese Größen beliebig, sind die Messwerte des Motorencoders nichts> wert. Mit dem Absolutgeber alleine ist wegen der schwankenden Totzeiten> keine hinreichend genaue Positionsschätzung möglich, also ist dein> Problem nicht lösbar.>> Aber vielleicht kann man davon ausgehen, dass die Dehnung bzw. Stauchung> des Seils während der Phasen ohne Beschleunigung bekannt und während> einer konstanten Beschleunigung vielleicht nicht bekannt, aber zumindest> ebenfalls konstant ist.
Die Dehnung ist leider nicht bekannt. Aber man kann davon ausgehen, dass
sie in Phasen konstanter Geschwindigkeit (a=0) konstant ist. Wie es mit
konstanter Beschleunigung (a!=0, a'=0) aussieht weiß ich nicht.
Eventuell kann ich das herausfinden.
> Woher kommt der Schlupf? Wird das Seil über eine Rolle per Reibung> angetrieben? Was weiß man sonst noch über den Schlupf (Maximalwert> u.ä.)?
Genau, über eine Rolle per Reibung. Entschuldige, diese Information
hatte ich glatt unterschlagen.
> Je genauer dein Schlupf-Dehnungs-Modell ist, desto höher sind die> Chancen, die Enocderdaten gewinnbringend in eine Gesamtrechnung> einbringen zu können.>> Für den Absolutgeber hast du ja die Messfrequenz und Obergrenze der> Totzeiten genannt, was schon einmal einen guten Ausgangspunkt darstellt.> Aber vielleicht gibt es auch hier noch weitere nützliche Informationen.
Ich kann zumindest Bereiche für die Verzögerung der Absolutdaten
angeben.
Ich habe allerdings erst Mittwoch wieder Zugriff auf diese Daten.
Ich meine von Samplezeitpunkt bis Übergabe an den Cancontroller vergehen
0,8-1,3ms. Insgesamt trudeln die Daten im 8-14ms Raster rein.
> Perfekt wird die Positionsschätzung nie werden, aber jedes Plus an> Information über die Messdaten kann dazu beitragen, den Fehler zu> reduzieren.
Das stimmt mich schonmal positiver.
Danke auch an alle anderen Beteiligten.
LG
Christopher
Christopher B. schrieb:> Genau, wie?> Aber die vage Vermutung hatte ich auch schon dass es damit irgendwie> gehen könnte. Ich werde mich mal einlesen.
Könntest Ja anschließend Deine Ergebnisse publizieren, wenn Du magst.
Christopher B. schrieb:> Die Dehnung ist leider nicht bekannt. Aber man kann davon ausgehen, dass> sie in Phasen konstanter Geschwindigkeit (a=0) konstant ist.
Die Dehnung ist noch die einfachste Größe. Da wird nach einer
anfänglichen Alterung des Seils ein handhabbarer Zusammenhang zwischen
Dehnung und Kraft auf dem Seil bestehen, den man nur ausmessen muss und
ggf. mit einem adaptiven Modell aktuell hält.
Christopher B. schrieb:> Ich meine von Samplezeitpunkt bis Übergabe an den Cancontroller vergehen> 0,8-1,3ms. Insgesamt trudeln die Daten im 8-14ms Raster rein
Wie beeinflussbar ist denn das gesamtsystem jetzt noch von dir?
Den jitter bei der Übergabe könnte man doch sicher reduzieren. Und das
raster der messages sollte ja durch geschickte priorisierung der
messages auch beeinflussbar sein..