Hallo nochmal,
ich habe jetzt mich mal ein bisschen in die Regelungstechnik/Kybernetik eingelesen. Es reicht zwar noch nicht für ein Studium, aber ich denke, ich habe die Grundlagen verstanden.
Ich hab mir nun folgendes überlegt/festgelegt:
Ziel ist es, 3 Motoren synchron zu betreiben. Das soll nicht heißen, dass alle immer in gleicher Rintung und gleicher Geschwindigkeit laufen sollen. Vielmehr geht es, wie in dem oben genannten Artikel angegeben, um die Bewegung eines Kreuztisches/eines Fräs-Kopfes. Zur Aufnahme der "Schritte" möchte ich eine PC-Maus umbauen. (Die enthält schon die ganze Elektronik zum Detektieren und speichert den Wert praktischerweise auch noch ab) Damit muss/kann auch die gesamte Regelung digital ablaufen. Am Ende soll per PWM der Motor entsprechend dem nötigen Moment ein-/ausgeschalten werden.
Ablaufen soll das in etwa so: Ich setze in meinem µC einen gewissen Wert für die Soll-Position (in Koordinaten) [xs,ys,zs]. Die Ist-Position ist in anderen Variablen abgelegt [xi,yi,zi]. Zusätzlich wird in einer Variable die gewünschte Verfahrgeschwindigkeit angegeben [v]. Dann wird zunächst die Geschwindigkeit proportional in einzelne Komponenten zerlegt [vx,vy,vz]. Das sind also die max. Geschwindigkeiten. Wärend der Bewegung werden xi,yi und zi regelmäßig aktualisiert.
Soweit zur Vorbereitung. Jetzt müssen die Motoren gestartet werden. Hier hab ich schon das erste Problem. Gehen wir mal davon aus, dass der Kopf um 30 Einheiten nach links (x-Richtung) und 40 nach hinten (y-Richtung) bewegt werden soll. Die max. Geschwindigkeit soll 5 Einheiten / Zeiteinheit sein. Das bedeutet: vx=3 und vy=4, da 3*3 + 4*4 = 5*5 (Satz des Pythagoras). Unter der Voraussetzung (momentan), dass beide Motoren etwa die selbe Masse zu beschleunigen haben, muss ein Motor deutlich stärker beschleunigen (y), er muss aber seine (verzögerte) Geschwindigkeit proportional zur (verzögerten) x-Geschwindigkeit halten. Wie kann man das erreichen? Dass also nicht nach einer gewissen Zeit beide Motoren bei z.B. v = 3 ankommen und dass dann der y-Motor noch um 1 weiter beschleunigt? Gleiches gilt auch für die Änderung der gewünschten Geschwindigkeit o.ä..
Ein anderes Problem sehe ich im Störverhalten: Wenn ein Motor an ein Hindernis stößt, der andere aber nicht, muss kräftig nachgeregelt werden. Sobald ein Motor baubedingt an seine Grenzen kommt (zu hohes Drehmoment), kann dieser möglicherweise die nötige Geschwindigleit von vy=4 nicht mehr einhalten und wird mit voller Betriebsspannung nur noch 3,5 liefern. Dann muss natürlich auch der x-Motor entsprechend seine Geschwindigkeit drosseln. Wodurch wird das erreicht? Ich weiß, das ist ein ähnliches Problem wie oben. Ggf. lösen sich beide Probleme gleichzeitig.
Innsbesondere ist davon auszugehen, dass nicht wie im oberen Teil angenommen, alle Motoren die gleiche Masse beschleunigen müssen. Vielmehr sind für jeden Motor andere Massen und Reibungswerte gegeben.
Gibt's zu den Problemen irgend welche Tipps?
Noch ein paar (hoffentlich banale) Fragen:
Ich habe schon gehört, dass ein Motor entweder als T1- oder als T2-Glied aufgefasst werden kann. Bei Berücksichtigung der Induktivität ist es halt T2.
Inwieweit ist die Betrachtung als T2 sinnvoll? Ist da die Genauigkeit ausreichend mit T1?
Wenn T2, welche Werte sind dann für T1 und T2 einzusetzen? Ich meine, welche Motorparameter. Für T1 hab ich mir die Sache selber hergeleitet mit den Motorparametern als Variablen, bei Bedarf kann ich es posten (muss es aber mit LaTeX schreiben, sonst ist die Verwirrung komplett und ich hab grad keine Lust).
Hier noch ein Post von bad-joker:
Was meinst du mit Encoder und Tacho? Ich weiß nicht, was das ist. (Zitat von bad-joker
Sorry) Sind das sowas wie Inkrementalgeber? Also das was ich mit meiner Maus machen will?
Ich hoffe, ich überfordere euch hier mal nicht.
Mfg
Christian
Lesezeichen