www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Motor Steuerung ,Graycode kontrolliert


Autor: Sven Rehbein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute

Ich soll ein Motor mit einem 8051 Prozessor ansteuern.
Ich habe dabei folgendes Problem. Ich bekomme ein 9 Bit Gray Code von
einem Drehwinkelgeber. Anhand dieses Wertes, weiß ich die Ist-Stellung
des Motors.
Und sage dem Motor dann z.B. Rechtsdrehen bis Ist-Wert erreicht ist.
Aber wenn der Motor
Durch seine Trägheit über den Soll-Wert dreht, wird der Motor wieder
veranlasst links zu drehen. Und dabei kann ja das gleiche passieren.
Folge ist, das der Motor anfängt zu flackern.

Kann mir jemand da ein paar Tipps geben ?
Ich habe die Graycode Umwandlung mit 2 Tabellen realisiert, die
abhängig vom 9 Bit angesprochen werden.

Danke schon mal

Sven Rehbein

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kurz bevor der Sollwert erreicht ist die Motordrehzahl heruntersetzen.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sven,

was für einen Regler benutzt du denn (PID)?
Du solltest deine Stellgröße für den Motor abhängig von der
Positionsdifferenz erzeugen (kleine Abweichung wenig Stellgröße),
ansonsten wirst du das Schwingen nie in den Griff bekommen.

Autor: Gerhard Humer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Sven,

hab das mit einem 2313er mittels Software-PID-Regelung realisiert.
Hab viel experimentiert.
Funzt wie Oliver schon sagte nur mit PID Regelung.


Gruss Gerhard

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
glaube nicht, ob es eine komplette PID-Regelung sein muß, viele
Schlagworte werden überstrapaziert, ausserdem kann auch ein PID-Regler
bei ungeeigneten Parametern immer instabil sein.
Als erstes mußt du die Parameter der Regelstrecke zumindest grob messen
(Nachlaufzeit des Motors, min. erforderliche Spannung bzw.
PWM-Verhältnis, um überhaupt zu laufen). Des weiteren ist es sehr
nützlich, der Strecke einen Totbereich zu spendieren (wenn
tolerierbar). Ich behaupte mal, dass du mit 3 oder 4
Geschwindigkeitsstufen schon zum Ziel kommst, weit weg von der
Sollposition volle Pulle, die Annäherung entsprechend weniger. Da wirst
du um ein wenig probieren nicht herum kommen.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@carzy horse
na klar braucht man nicht unbedingt einen PID-Regler. Ich meinte damit
allgemein einen Regler. PID Regler alleine funktionieren mit digitalen
Eingangswerten sowieso nicht einwandfrei, da der D-Anteil sowieso immer
gefiltert werde muss (Quantisierungsrauschen).

Die 4 Schaltsufen, von denen du sprichst, sind im übrigen nicht
weiteres als ein P-Regler mit 4-bit Auflösung. Benutzt man sowieso eine
PWM zur Geschwindigkeitsregelung, so kann man auch gleich die volle
Auflösung des PWM - Ausganges benutzen (das Reduziert auch ein wenig
das ahnungsloses Herumprobieren mit den Geschwindigkeiten, da sowieso
alle zur Verfügung stehen).

@Sven
Ich würde als erstes einen einfachen P-Regler realisieren.

1. Positionsabweichung messen (Sollposition - Istposition).
2. Daraus ein proportionales PWM-Signal generieren ( PWM-Signal =
Abweichung * P-Faktor).
 -> Der Motor fährt in die Gewünschte Stellung und wird automatisch,
"kontinuierlich" langsamer.

Wenn der Motor anfängt zu schwingen, dann einfach den Faktor
reduzieren.
Wenn eine absolute Position angefahren werden soll, ist es notwendig
einen I-Anteil dem Regler hinzuzufügen (Summieren der einzelnen
Regelabweichungen).

Das sollte auch schon reichen. Der D-Anteil sorgt lediglich für eine
starke Beschleunigung bei plötzlicher Regelabweichung.

Viel Spaß beim Ausprobieren

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich meinte natürlich 2-bit Auflösung

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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