Differenzieren Encoderwerte

OP #4016211
Lesenswert?

Hallo,

ich wollte präzise rauscharme Drehgeschwindigkeit des Motors alle 10ms 
bilden. Der Motorencoder liefert mir pro Umdrehung 2000 Ticks. Bei 
schneller Drehung bekomme ich ordentliche Drehgeschwindigkeit. Bei 
langsamer Drehung habe ich das Problem weniger als fehlerbehaftete 10 
Ticks mit 10ms zu teilen bzw. 100 mal zu verstärken. Damit habe ich 
richtig verrauschte fehlerbehaftete Drehgeschwindigkeitswerte. Ich habe 
diese mit Tiefpass Filter geglättet. Die Werte nach den PT1 scheinen ok. 
Aber die Verzögerung ist viel zu groß.

Ich würde gern wissen, ob es einen Trick existiert bei hohen Takt Zahlen 
zu differenzieren. Und zwar Verzögerungsarm

Vielen Dank!


PS: Ich schreibe deutsch als Fremdsprache. Verzeihung für die mögliche 
Rechtschreibfehler
(Firma: mechapro GmbH) Persönliche Seite #4016222
Lesenswert?

Nein, da gibt es keinen Trick. dV=dx/dt, wenn du dt klein machst und dx 
konstant bleibt wird dV entsprechend größer. Da helfen nur 
Tiefpassfilter mit den von dir beobachteten Nachteilen oder Geber mit 
höherer Auflösung.

Man kann auch zusätzlich einen Beschleunigungssensor verwenden und die 
Geschwindigkeit mittels Beobachter aus beiden Sensoren ableiten. Aber da 
ist ein Encoder mit höherer Auflösung meistens billiger und einfacher in 
der Handhabung.

Mit freundlichen Grüßen
Thorsten Ostermann
Gast #4016246
Lesenswert?

Stm Mc schrieb:
> weniger als fehlerbehaftete 10
> Ticks mit 10ms zu teilen

Da würde ich erst mal die eigentliche Fehlerursache beseitigen - Encoder 
arbeiten, richtig angeschlossen, praktisch fehlerfrei über Stunden und 
Tage. Damit werden Werkzeugmaschinen positioniert, wenn die so 
verrauscht wären, hättest du plötzlich einen Siebenzylinder im Auto.

Georg
OP #4016255
Lesenswert?

Thorsten Ostermann schrieb:
> Nein, da gibt es keinen Trick. dV=dx/dt, wenn du dt klein machst und dx
> konstant bleibt wird dV entsprechend größer. Da helfen nur
> Tiefpassfilter mit den von dir beobachteten Nachteilen oder Geber mit
> höherer Auflösung.
>
> Man kann auch zusätzlich einen Beschleunigungssensor verwenden und die
> Geschwindigkeit mittels Beobachter aus beiden Sensoren ableiten. Aber da
> ist ein Encoder mit höherer Auflösung meistens billiger und einfacher in
> der Handhabung.
>
> Mit freundlichen Grüßen
> Thorsten Ostermann

Danke,

also dann bleibt nur einen Kalman Filter zu implementieren. Mit einem 
einzigen beobachtbaren Größe ist das Ganze hoffentlich beobachtbar.
OP #4016264
Lesenswert?

Georg schrieb:
> Stm Mc schrieb:
>> weniger als fehlerbehaftete 10
>> Ticks mit 10ms zu teilen
>
> Da würde ich erst mal die eigentliche Fehlerursache beseitigen - Encoder
> arbeiten, richtig angeschlossen, praktisch fehlerfrei über Stunden und
> Tage. Damit werden Werkzeugmaschinen positioniert, wenn die so
> verrauscht wären, hättest du plötzlich einen Siebenzylinder im Auto.
>
> Georg

Fehlerursache hat nichts mit Kalibrierung oder Eichung zu tun. Es ist 
die Messunsicherheit da der Encoder keine unendliche Auflösung bietet 
lediglich pro Umdrehung 2000 Ticks.
(Firma: mechapro GmbH) Persönliche Seite #4016322
Lesenswert?

Hallo Georg,

> Stm Mc schrieb:
>> weniger als fehlerbehaftete 10
>> Ticks mit 10ms zu teilen
>
> Da würde ich erst mal die eigentliche Fehlerursache beseitigen - Encoder
> arbeiten, richtig angeschlossen, praktisch fehlerfrei über Stunden und
> Tage. Damit werden Werkzeugmaschinen positioniert, wenn die so
> verrauscht wären, hättest du plötzlich einen Siebenzylinder im Auto.

Du hast das Problem nicht verstanden. Es geht um "Quantisierungsfehler", 
welche durch Differenzierung zur Geschwindigkeitsbestimmung verstärkt 
werden.

Mit freundlichen Grüßen
Thorsten Ostermann

[1] de.wikipedia.org/wiki/Quantisierungsfehler
Gast #4017476
Lesenswert?

Stm Mc schrieb:
> Es ist
> die Messunsicherheit da der Encoder keine unendliche Auflösung bietet
> lediglich pro Umdrehung 2000 Ticks.

Dann wendet man halt den üblichen "Trick" an (wie bei Frequenzmessung): 
unterhalb einer bestimmten Drehzahl zählt man nicht, wieviel Pulse in 
eine Zeiteinheit fallen, sondern misst mit der notwendigen Auflösung, 
welche Zeit für n Impulse benötigt werden. Notfalls bis herunter auf 
einen einzigen Decoderschritt, so kann man noch die Geschwindigkeit 
einer Schnecke mit der gewünschten Genauigkeit messen. Oder verstehe ich 
immer noch falsch?

Georg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren