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
Kurz bevor der Sollwert erreicht ist die Motordrehzahl heruntersetzen.
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.
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
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.
@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
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.