Archiv verlassen und diese Seite im Standarddesign anzeigen : Positionsregelung für bürstenlose DC-Servomotoren
Johann75
08.11.2004, 11:56
Hallo Leute,
ich habe einen 5-achsigen Roboter, deren Achsen jeweils über einen bürstenlosen DC-Servomotor der Firma Faulhaber angetrieben wird. Nun möchte ich eine Positionsregelung aufbauen. Die Istposition bekomme ich über den Encoder-Ausgang des Motors, die Sollposition wird aus einem Sensor berechnet. Jetzt möchte ich gerne wissen, wie ich so etwas realisiere, bzw. welche Motordaten ich benötige, welche ich experimentell ermitteln kann, wenn ich diese nicht habe. Vor allen Dingen spielt die Last, also die gesamte Kinematik des Roboters ja auch eine Rolle. Wie geht man an sowas heran? Ich benutze Matlab/Simulink in Verbindung mit XPC-Target.
Ich hoffe mir kann jemand helfen. Bin natürlich auch über kleine Tipps sehr dankbar.
Vielen Dank im Voraus.
Grüße, Johann
Servus,
Also an deiner Stelle würde ich mir ein gutes Regelungstechnik Buch besorgen oder eins das sich speziell mit diesem Thema beschäftigt und dann unter Kaskadenregelung nachschauen.
z.B.:Pfaff, G.; Meier, C.: Regelung elektrischer Antriebe. R. Oldenbourg Verlag Band 1 (Motorengleichungen), 1990 und Band 2 (Regelung), 1988
Es kommt halt auch darauf an, wie deine Kentnisse in Regelungtechnik sind.
MfG Distel
P.S. Wenn du Matlab/Simulink benutzt, was hast du denn bisjetzt damit gemacht ?
Johann75
16.11.2004, 14:35
Hallo,
vielen Dank für Deine Antwort. Bezüglich Regelungstechnik kenne ich mich eigentlich recht gut aus. Also die Auslegung eines Regelkreises z.B. anhand eines Bode Diagramms mit Durchtrittsfrequenz, Phasenrand etc. um bestimmte Eigenschaften wie Schnelligkeit oder Stabilität zu erhalten ist mir ganz gut bekannt. Was ein Luenberger Beobachter ist und ein Kalman-Filter weiß ich auch. Der theoretische Hintergrund ist auf jeden Fall vorhanden. Bei der ganzen Sache möchte ich die Positionsregelung natürlich so einfach wie möglich halten.
Was mir jetzt schwer fällt ist die Theorie in die Praxis umzusetzten, also wie ich meinen Roboter (Trägheitsmomente etc.) incl. der Ansteuerung (Verstärker, Motoren) modelliere. Was muss ich überhaupt modellieren bzw. welche Teile meiner Strecke kann ich als Blackbox betrachten? Welche Eigenschaften kann ich zum Beispiel mit der Auswertung einer Sprungfunktion beschreiben? In Lehrbüchern sind zwar oftmals auch praktische Beispiele aufgeführt, allerdings werden dort die Übertragungsfunktionen solcher Elemente direkt vorgegeben, und es wird nicht beschrieben, wie man diese z.B. empirisch oder auf anderem Wege ermittelt.
Mit Matlab/Simulink habe ich bisher die Ansteuerung "zu Fuß" gemacht. Also z.B. dass alle Achsen an einen Endschalter fahren und von da an in eine bestimmte Referenzposition. Dabei benutzte ich aber alles fest vorgegebene Werte (Spannungen für die Motoren). Jetzt möchte ich an Simulink eine bestimmte Sollposition übergeben und dann für jede Achse aus der Differenz von Soll- und Istposition eine Rampenfunktion berechnen lassen, so dass die Sollposition so schnell wie möglich aber auch möglichst ruckfrei erreicht wird. Nur ganz grob beschrieben.
Für Matlab gibt es ja auch noch einige Toolboxen, wie die Control-System Toolbox, dabei weiß ich aber auch nicht, inwieweit man dort schon die Bewegungsgleichungen bzw. Übertragungsfunktionen seines Systems kennen muss. Beim Matlab Support sitzen nur Leute, die wissen wie man Matlab startet und wieder beendet, das wars aber auch schon ;-).
Kennst Du Dich damit aus, oder hast Du noch Tipps zur Systemmodellierung?
Vielen Dank und schöne Grüße,
Jörn
N'Abend,
Also vorab muss ich sagen, dass es mir so ungefähr wie dir geht. Es happert oft an der praktischen Realisierung.
Ich würde auf jeden Fall versuchen ein mechanisches Modell von deinem Roboter aufzustellen, das kannst du dann als Simulink-Block zusammenfassen. Deine Eingänge wären dann die Motorenanschlüsse, die Ausgänge wären Sensorsignale. Auf experimentelle Modellbildung würde ich erstmal verzichten.
Ein paar Tipps:
1. Mechanik: Dein Roboter stellt ein Mehrkörpersystem dar, also verschiedene starre Körper die untereinander gekoppelt sind. Dieses gekoppelte System lässt sich durch Differentialgleichungen beschreiben. (Stichwort: Lagrange) An deiner Stelle würde ich erstmal versuchen das Modell so einfach wie möglich zu machen, aber ich denke mal bei einem 5-achsigen Roboter is das bestimmt nicht ohne (das wird eine schöner Haufen mathematische Formeln). Es lohnt sich auf jedem Fall in die Modellbildung einige Zeit zu investieren, wenn das Modell passt hast du es später leichter!
2. Programme: In Simulink gibt es eine Toolbox: SimMechanics, mit der kannst du Mehrkörpermodelle berechnen ( wenn du keine anderen Programme wie z.B. Alaska, Adams,... hast). Du kannst aber auch die DGLs direkt als Block in Simulink eingeben. Deine Aktoren, Leistungsstellglieder, Regelstrecke etc sind alles extra Blöcke (auch durch DGLs beschrieben) die dann drumherrum gebaut werden. Die Euler-Lagrange Gleichung bewerkstelligt die Kopplung. Der Vorteil vom Lagrange-Formalismus ist, das er über Energiegrenzen hinweg funktioniert, ohne was beachten zu müssen ( also mechanische Energie, elektrische Energie,...).
Wenn du vielleicht noch ein Bild oder ein Technisches Prinzip posten kannst, könnte ich dir vielleicht noch ein bischen mehr sagen.
Hier noch ein Link:
Dimensionierung/Entwurf von Regelkreisen: http://141.24.37.187/lernmodul_mechatronik/komponenten/regler/regelung_dimensionierung.html
MfG Distel
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.