Hallo zusammen,
Ich habe einen Greifer gebaut, der im Bereich -120°...120° schwenken
kann.
Der Ablauf ist immer der selbe, in der Mittelstellung (0°) soll eine
Last aufgenommen werden und dann an eine beliebige Position nach links
oder nach rechts geschwenkt und wieder abgegeben werden.
Angetrieben wird das Teil von einem DC Getriebemotor (über PWM,
H-Brücke, ca. 50W, 200 U/min) über ein weiteres 1:12 Getriebe und einen
Zahnriemen (1:1).
Position wird über ein Potentiometer direkt an der Schwenkachse
rückgemeldet.
Der Positionsregler soll auf einem µC laufen.
1. Die Last kann irgendwo im Bereich 4-20kg liegen.
2. Die ganze Mechanik hat ein Spiel von etwa +-3°
Das Drehmoment des Motors reicht zwar locker aus, aber leider ist die
Zahnriemenverbindung hier die Schwachstelle. Schlecht ausgelegt,
Riemenscheibe einfach zu kleiner Durchmesser, kann ich leider aus
Platzgründen nicht mehr ändern.
Mein Problem ist nun dafür einen geeigneten Regler in Software
aufzubauen.
Bei optimaler Regelung wäre eine 90° Drehung (Vom Stillstand wieder in
den Stillstand) in etwa 2.5 Sekunden möglich, die Grenze ist da das
Drehmoment, das die Zahnriemenverbindung aufbringen kann.
Im Moment läuft ein P-Regler mit Stellgrößen-Begrenzung auf ca. 20%,
damit läufts zwar mit jeder Last geschmeidig, allerdings dauert die
Bewegung 8 Sekunden.
Meine Regelungstechnik Vorlesungen sind schon bissl her, ich glaube mein
Problem lautet "Totzeit".
Wie legt man einen Regler für so eine Strecke aus?
mech schrieb:> 2. Die ganze Mechanik hat ein Spiel von etwa +-3°mech schrieb:> Meine Regelungstechnik Vorlesungen sind schon bissl her, ich glaube mein> Problem lautet "Totzeit".
Ich glaub dein Problem heißt "Umkehrspiel" ;)
. . schrieb im Beitrag
#6123176:
> Nette Aufgabe. Allerdings fehlen Parameter, um zu bestimmen, ob es> überhaupt physikalisch möglich ist, die Masse (bis 20kg) in 2.5s zu> positionieren.
Ist es, das ist nämlich die Zeit die ich erreiche, wenn ich statt dem
Motor eine Handkurbel (bestehend aus Schraube + Schraubenschlüssel)
anbaue.
Sly_marbo schrieb:> Ich glaub dein Problem heißt "Umkehrspiel" ;)
Aus mechanischer Sicht ja, aber wie geht man das mit Regelungstechnik
an?
mech schrieb:> aber wie geht man das mit Regelungstechnik an?
Da Fuzzi Logik zu aufwändig ist, genügt evtl. ein PID Regler.
Einen Tiefpass (I-Anteil) mit einem Kondensator überbrückt (D-Anteil).
Hallo,
zunächst ist es wichtig ein Dynamikmodell aufzubauen. Dann kann man in
Matlab/Sikulink analysen durchführen und schliesslich einen geeigneten
Regler auslegen. Vielleicht mit SimScape multibody
Die Stichworte sind "Innere Regelschleife" und "Äussere Regelschleife".
Die innere arbeitet mit einem Geschwindigkeitssignal als
Rückkopplungssignal, die Endstufe hat eine Strombegrenzung um das Moment
nicht zu groß werden zu lassen. Dafür langt ein PI-Regler, der D-Teil
macht die Abstimmung nur komplizierter. Der I-Teil sollte eine
Begrenzung haben ("cut off value) sonst sammeln sich die Fehler zu stark
an.
Die äussere Regelschleife arbeitet mit einem Positionssignal zur
Rückkopplung. Es gibt ein Geschwindigkeitssignal (mit Rampen) an die
innere Regelschleife. Dafür langt ein P-Regler.
Die einzige zusätzliche Intelligenz die von einem PID regler abweicht
ist in der äusseren Regelschleife die (lastabhängige) mögliche
Beschleunigung zu erkennen und dann beim Abbremsen mit der Bremsrampe
entsprechend früher anzufangen.
Das Spiel lässt sich durch einen "threshold" abfangen. Also im P-Teil
erst ab einer bestimmten Abweichung zu reagieren.
Natürlich kann man das alles ineinanderwursteln, macht es aber nicht
einfacher.
Nick M. schrieb:> Die innere arbeitet mit einem Geschwindigkeitssignal als> ...
Gibt's für den ganzen Aufbau einen Begriff oder ist das schon eine
Sonderlösung? Ein Schaltbild würde mir da wohl unheimlich weiterhelfen,
aber ich kann schlecht erwarten, dass du mir eins malst :)
Mir geht nicht ganz ein, warum ich zu dem Problem nichts finde, Antriebe
mit Umkehrspiel sind doch nichts ungewöhnliches (?)
Auf jeden Fall verstehe ich jetzt schonmal ein grundsätzliches Problem:
Meine Hand "fühlt" das Drehmoment, meinem bisherigen Antrieb fehlt diese
Größe mangels Strommessung, das kann ich ändern.
Nick M. schrieb:> ineinanderwursteln
Bei "mehrere Regler ineinander" hat Google "Kaskadenregelung"
ausgespuckt, ist das wovon du sprichst?
Das seh ich mir mal an.
mech schrieb:> Ein Schaltbild würde mir da wohl unheimlich weiterhelfen
Ich habe da mal was von einer schwebenden Kugel gefunden:
Beitrag "Re: Ferromagnetischer Schwebekörper"
Das ist war nicht direkt mit einem Schwenkarm zu vergleichen, aber auch
hier muss mit einem D-Anteil kurz schnell nachgeregelt werden, damit die
Kugel nicht schwingt.
Bei deinem Schwenkarm kommen noch unterschiedliche Schwenklasten (je
nach Gewicht der aufgenommenen Last) und Schwenklängen hinzu. Da ist
eine zusätzliche Strommessung erforderlich. Die Positionsangabe des
Potenziometers alleine reicht da wohl nicht mehr aus.
mech schrieb:> Gibt's für den ganzen Aufbau einen Begriff oder ist das schon eine> Sonderlösung?
Nein, innere und äussere Regelschleife ist was ganz normales. Das sollte
sich auch ergoogeln lassen.
Die Sonderlösung ist nur die Erkennung der möglichen Beschleunigung und
dann die Bremsrampe entsprechend anzupassen.
Das Spiel bekommst du nie weg. Du kannst nur verhindern dass der Regler
in der Endlage hin und her regelt weil er die Position genauer halten
will als es mechanisch geht. Totgang nennt sich das.
"Kaskadenregelung"
Ehrlich, ich weiß es nicht. Klingt aber vernünftig. :-)
Mit eineinanderwurschteln meine ich, die beiden Regelschleifen zu einer
zu vereinen und die nicht als zwei verschiedene Prozesse zu sehen. Ich
glaub, das macht es nur schwerer zu verstehen und zu programmieren. Als
getrennte Prozesse überwacht die äussere Schleife nur die Position die
sie gerne hätte und muss nicht viel und schnell rumrechnen. Wenn sie die
maximal mögliche Beschleunigung kennen würde, dann könnte sie die Rampen
sogar komplett im Voraus berechnen und nur fein nachregeln.