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)
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