Forum: Digitale Signalverarbeitung / DSP AMS AS5600 Problem bei Sensorauswertung 0..5V


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Richard R. (nbger)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich betreibe einen AS5600 Winkelsensor an einem Arduino am 
Analog-Eingang.
Der Sensor liefert 0..5V je nach Winkel; der Arduino macht daraus 
0..1024 (10 Bit A/D-Wandler)
Ansich ganz einfach und schnell aufgebaut, aber der Teufel steckt im 
Detail!
Ich habe jetzt aber ein Problem bei der Auswertung gefunden, welches 
sporadisch auftritt.
Liest man den Analogwert zufällig genau beim Überlauf 1024->0, dann 
bekommt man schon mal einen komplett falschen Wert. Das tritt bei mir 
alle paar tausend Umdrehungen auf.

Ich hab ein Bild angehängt. Darin ist der eingelesene Analogwert 0..1024 
und eine Drehzahl U/Min zu sehen, welche ich aus der Winkeländerung pro 
Abtasttakt berechne. An der rot markierten Stelle lese ich einen 
Zwischenwert, der meine Auswertung durcheinanderbringt.
In diesem Beispiel gebe ich eine festen PWM-Wert vor, so dass sich der 
Fehler nicht weiter auswirkt. Wenn ich aber über PID regle, dann gibt es 
einen richtigen Ruck im Antrieb.

von Forumbeobachter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Du könntest einen Beobachter implementieren: Sofern die Abweichung aus 
Messwert und Schätzwert z.B größer gleich +/-45° => Fehlerhafter 
Messwert => Keine Messwertrückkopplung innerhalb des Beobachters.

von Richard R. (nbger)


Bewertung
0 lesenswert
nicht lesenswert
Forumbeobachter schrieb:
> Du könntest einen Beobachter implementieren: Sofern die Abweichung aus
> Messwert und Schätzwert z.B größer gleich +/-45° => Fehlerhafter
> Messwert => Keine Messwertrückkopplung innerhalb des Beobachters.

ja, so etwas ähnliches hab ich mir auch gedacht, um wenigstens die 
groben Fehler auszublenden.
Aber es kann ja auch kleinere Abweichungen geben, je nachdem wie man die 
Abtastung des Wandlers trifft.
Schlimm würde es bei einer Positionsregelung werden, wenn man auf der 0 
Position steht und der Wert zwischen 0 und 1024 wackelt. Da könnte jeder 
beliebige Wert entstehen und den Regler stimulieren.
Da wäre der digitale Signalaustausch über I2C sicherer!

Ich werde das Problem aber erstmal vernachlässigen, denn es tritt nur in 
meinem Versuchsaufbau auf. In der finalen Anwendung geht es ums 
Positionieren auf einen Sollwinkel. Der max. Drehwinkel der Mechanik ist 
kleiner 360 Grad. Ich werde die Magnete so justieren, dass ich nie über 
die 1024->0 Grad Grenze laufe.
Allerdings für eine reine Drehzahlmessung eines rund laufenden Motors 
ist die Lösung vorläufig fehlerbehaftet!

von ok (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Richard R. schrieb:
> Schlimm würde es bei einer Positionsregelung werden, wenn man auf der 0
> Position steht und der Wert zwischen 0 und 1024 wackelt.

Der AS5600 hat da eine Hysterese, da wackelt nix, außer deine Position 
wackelt tatsächlich.

Als Sanity-check würde ich die Annahme, dass sich die Geschwindigkeit 
nicht schlagartig ändern kann verwenden.

Das filtert die großen Fehlmessungen aus, während "nur leicht falsche" 
Messungen eh den Regler nicht aus dem Tritt bringen sollten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.