Hallo, ich bin gerade dabei einen Schrittmotor zu regeln. Hört sich vllt für manche blöd an, aber Tatsache ist, dass der Motor auf 2400 Schritte (4 Schritt Betrieb, 800 Schritte pro Umdrehung) ca. 20 Schritte. Benutze für die Ansteuerung einen fertig gekauften Schrittmotortreiber. Da meine Aufgabe konkret die ist, eine Regelung zu implementieren ( und eben nichts an Ansteuerung etc. zu ändern) verwende ich nun optische Drehgeber. Meine Idee ist nun, dass ich mit einem Timer ISR die tatsächlich gefahrenen Schritte (vom Drehgeber) mit dem PWM Signalen, die ich mitzähle und somit den "virtuellen" Schritten vergleiche. Ist eine Abweichung vorhanden, setze ich die virtuellen Schritte auf die des Drehgebers zurück. Soweit ich das bisher beurteilen kann klappt das "fast" ganz gut. Nur wenn es dann um den finalen Schritt geht passiert es, dass er 1-2 Sekunden brauch um sich auszutarieren und hektisch hin und her dreht was natürlich auch ein sehr unbequemes Geräusch verursacht. Bei einer Toleranz von ±5 Schritten tritt dies nur noch sehr selten auf, allerdings hätte ich eben dennoch eine relativ hohe Abweichung. Hättet ihr einen Vorschlag hierzu? Oder eine andere sinnvolle Idee wie ich den Schrittmotor regeln kann? Vielen Dank und Grüße, Frank
> Oder eine andere sinnvolle Idee wie ich den Schrittmotor regeln kann?
Du bemerkst gerade, daß ein Schrittmotor, dessen aktuelle Stellung mit
einem Encoder erfasst wird wodurch man Schrittverluste erkennen und
ausgleichen könnte, schwer anzusteuern ist.
Es gibt im wesentlichen 2 Methoden wie man klarkommt:
Wenn der Schrittmotor so langsam bewegt werden kann, daß er keine
Beschleunigungspahse und Abbremsphase benötigt, kann man einfach so
lange vorwärts Impuls geben, wei die Encoder-Position kleiner ist als
die Sollposition und so lange rückwärts-Impulse geben, wie die Encoder
Position grösser ist als die Sollposition, und dabei darf sich die
Sollposition sogar jederzeit ändern.
Wenn der Schrittmotor jedoch so schnell bewegt werdne soll, daß er eine
Beschleunigungsphase und eine Abbremsphase braucht, muß man bereits vor
dem Erreichen der Zielposiotn abbremsen, und die könnte sich während
dieser Zeit sogar gemeinerweise noch ändern so daß man zwangsweise über
das Ziel hianusschiesst. Man ändert also (pro Zeiteinheit) das TEMPO des
Motors, und kann ihn nur "ein bischen schneller" oder " ein bischen
langsamer bis hin zum Stillstand und nachfolgender Drehrichtungsumkehr"
stellen. Auch hier vergleicht man Sollposition und Istposition und
entscheidet danach, in welche Richtung man das Tempo ändert.
Hallo, wie du offenbar selbst weisst, kann man einen Schrittmotor nicht regeln, aber: Eine Lageregelung besteht üblicher- und zweckmässigerweise aus 2 Regelkreisen, einer Geschwindigkeitsregelung und einer übergeordneten Lageregelung. Im Fall eines Schrittmotors ist die Geschwindigkeitsregelung in Wirklichkeit eine Geschwindigkeitssteuerung, aber das ist für die Lageregelung egal, die funktioniert unter diesen Umständen ganauso wie bei einem DC-Motor. M.a.W. die Ausgangsgrösse der Lageregelung bestimmt die Schrittgeschwindigkeit. Gruss Reinhard
Die einfachste Regelung wäre die Schrittgeschwindigkeit in abhängigkeit zur entfernung der Sollposition zu verringern (Bei jedem Compare muß auch die aktuelle Differenz zwischen Ist- und Sollwert ausgewertet werden und die Geschwindigkeit angepaßt werden)
Noch einfacher wäre, zu untersuchen, WARUM der Schrittmotor Schritte verliert.
Frank schrieb: > Nur > wenn es dann um den finalen Schritt geht passiert es, dass er 1-2 > Sekunden brauch um sich auszutarieren und hektisch hin und her dreht was > natürlich auch ein sehr unbequemes Geräusch verursacht. Das hört sich nach einem Problem im Regelalgorithmus an, ggf. Timing zwischen Schrittausgabe und Sensorabfrage. Evtl. hilft eine Hysterese von einem Schritt.
>Hallo, > >wie du offenbar selbst weisst, kann man einen Schrittmotor nicht regeln, ...falshc! In der DDR Schreibmaschine S6001 wurde der Wagenschrittmotor dieser Typenradmaschine als auch der Typenradmotor analog nachgeregelt. Der Wagenmotor (kräftiges Teil mit ca. 10cm Durchmesser und ca 14cm lang, 36V) hatte einen 2 phasigen kapazitiven Geber montiert, der Schrittmotor des Typenrades einen optischen, wobei hier natürlich der Sonderfall eintrat, dass die jeweiligen "Zahnungen" mit den Schrittzahlen der Motoren übereinstimmten. Das Teil hat es jedenfalls geschafft >10 Zeichen/Sekunde zu drucken und mit atemberaubender Geschwindigkeit den mehr als 2Kg schwehren Typenradschlitten zu tabulieren. Gesteuert wurde dieses Analog/Digitalkonglomerat mit 3 Schrittmotoren von einem einzigen Z80. Schaltungsunterlagen dazu hatte ich früher einmal, möglicherweise lassen sich da bei Robotrontechnik.de sogar noch welche auftreiben, aber der Kram war schon sehr speziell, nutze als Komparatoren für die Chopper wohl irgendwelche Leitungsempfänger und Dergleichen.. Die Assemblerquellen für den Z80 waren schon zu DDR Zeiten den Weg alles irdischen gegangen, ich hatte damals versucht diese aufzutreiben, weil ich die Platinen bekommen hatte und das Typenraddruckwerk einzeln im Bastlerbedarf gehandelt wurde. Ein Wahnsinnsversuch einen drucker selbst zu bauen. Die Programme wurden wohl in Sömmerda auf einem KRS4200 (Honneywell 9000 Derivat) mit einem Crossassembler erstellt, die Lochstreifen nicht mehr auffindbar... Lange Rede kurzer Sinn: es geht doch! Gruß, Holm
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.