PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie modelliert man eine servo - strecke???



brott
04.02.2011, 19:48
ich habe folgendes Problem: für eine Reglerauslegung benötige ich eine
Übertragungsfunktion für einen Servo (Stellglied). Dazu habe ich mir
eine Sprungfunktion aufgenommen ( 0 > 90° ), auf Grund des Bildes auf
ein PT1-Verhalten geschlossen, die Zeitkonstante ermittelt und in Matlab
simmuliert.

Jetzt habe ich das Problem, dass normalerweise natürlich keine
90°-Drehung nötig ist, sondern deutlich weniger. Das heißt, dass die
Zeit bis zum Erreichen des Endwertes auch deutlich kleiner ist.

Ich hatte geglaubt, dass das PT1-Verhalten das abbildet - und damit
liege ich offensichtlich falsch, denn in der Simulink-Simmulation
(Sprung -> PT1 -> Scope) bekomme ich bei egal welcher Sprunggröße (1
oder 90) den selben graphen - also es dauert immer gleich lange, bis die
Zielstellung angefahren ist, was ja nicht der Realität entspricht.

Meine Frage nun: wie modelliert man richtig einen Servo?
oder wo liegt mein Fehler?
wie macht ihr das, wenn ihr regler mit servo-stellern auslegt (kommt doch sicher in 90% der Roboter vor)?

Vielen Dank für Antworten
beste Grüße
brott

ranke
07.02.2011, 10:44
Üblicherweise haben Servos nur bei kleinen Regeldifferenzen annähernd lineares Verhalten zwischen Regeldifferenz und Stellgeschwindigkeit. Bei großen Regeldifferenzen tritt der Effekt ein, dass der Motor mit maximal möglicher Geschwindigkeit läuft (also nicht mehr proportionel zur Regeldifferenz).
Bei der Umsetzung des Effekts in Matlab kann ich kaum helfen, weil ich mich in Matlab nicht auskenne. Möglicherweise gibt es dort eine Funktion, mit der man den Betrag der Regeldifferenz begrenzen kann (wenn man das Servo als Regler modellieren will)? Oder alternativ den Betrag der Steigung der Eingangsfunktion (wenn man das Servo nur als Verzögerungsglied modellieren will)?

oberallgeier
07.02.2011, 16:41
... wie macht ihr das, wenn ihr regler mit servo-stellern auslegt ...1. Meine Regelungen beziehen sich stets auf ein "Se rvo" ohne Originalelektronik, daher können Differenzen auftreten. An einem so umgebauten Billigservo (klick) (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=437282#437282) hatte ich Sprungantworten gemessen, siehe hier (klick). (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=463986#463986) Daraus kann auf die Sprungantwort bei leichter Belastung des Se rvo geschlossen werden. Meist stelle ich bis zum Anfahren meines Motors aus dem Stillstand eine Anfangsverzögerung von wenigen Millisekunden fest - das war aber nicht meine Fragestellung. Hier (klick) (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=465839#465839) kann bei verschiedenen Messungen nochmal die Anfangsverzögerung abgeschätzt werden.

Nachdem der Se rvo seine Endgeschwindigkeit erreicht hat, fährt er mit der in den Datenblättern genannten Geschwindigkeit, meist 60° in 0,15 sec, entspricht rund 1 sec pro Umdr. bis zur Einschwingrampe. Die hatte ich nie gemessen. Die Geschwindigkeitsvorgabe in meinen Tests entspricht ziemlich gut der Drehzahl, die der von mir verwendete Motor als Se rvo fahren würde.

brott
08.02.2011, 16:59
Hallo,

danke für eure Antworten.

Der Tip mit der Begrenzung kam für mich leider zu spät - da hatte ich es auch schon, trotzdem vielen dank für die Mühe.

Für alle, die es interessiert, ich habe es wie folgt in Simulink gelöst:

>Sollwert> -- >neg. Rückführung> -- > P-Regler> -->Begrenzung>-- >PT1> -- >Integrierer>-->Ausgang und Zweig zur Rückführung.

Das PT1-Glied habe ich aus den Werten der Sprungfunktion ermittelt (T bei ~0.63%K) und den Proportionalen Regelanteil sowie die Begrenzung dann empirisch ermittelt - anhand der gemessenen/Simmulierten Werte.

Das kommt so ziemlich gut hin, sodass ich erstmal zufrieden bin.