Hallo stochri und alle die sich noch in die Tiefen der Regelungstechnik vorwagen wollen.
Ich habe die Simulationsdatei „Pendel4.cos“ angehängt. Zur Simulation muss Scilab/Scicos auf dem Rechner installiert sein, es steht hier zum Download zur Verfügung. Nach der Installation reicht ein Doppelklick auf die entpackte Datei „pendel4.cos“ um Scicos zu starten und das Blockschaltbild anzuzeigen.
Vermutlich ist es für einen Außenstehenden nicht ganz so einfach, sich in die Simulation einzuarbeiten, noch dazu wenn das Programm für einen neu ist. Deshalb hier eine kleine Beschreibung für die ersten Gehversuche. Das Blockschaltbild zeigt auf der rechten Seite die Regelstrecke mit dem Antrieb und dem invertierten Pendel. Im Antriebsblock gibt es Leitungen, die mit x’’, x’ und x bezeichnet sind. Das sind die Signale:
x’’: Beschleunigung
x’: Geschwindigkeit
x: Position
Entsprechend gibt es im Pendelblock die Signale:
phi’’: Winkelbeschleunigung
phi’: Winkelgeschwindigkeit
phi: Winkel
Eine Auswahl der Signale (Position, Geschwindigkeit, Winkel) geht auf die Anzeige (Mscope). Die Uhr darüber ist der Taktgeber für das Scope.
In dem Ersatzschaltbild der Regelstrecke wurde einiges vereinfacht, damit es nicht zu kompliziert wird. So wurde auf die Nachbildung der Reibung sowohl im Antrieb als auch im Pendel verzichtet. Die Reibung des Antriebs ist nur insoweit berücksichtigt, indem die Ansteuerspannung auf 3,5 Volt, anstatt 5V begrenzt wird. Die 1,5V Differenz entspricht dem Wert zur Überwindung der Reibung. Im Code wird dafür zur Kompensation auf die PWM ein Offset entsprechend den 1,5V addiert. Der Antrieb selbst wird als PT1-Glied mit dem Übertragungsmaß k und der Zeitkonstante T simuliert. Eine weitere Vereinfachung ist die Wirkung des Antriebs auf das Pendel. In Wirklichkeit geht das mit dem Cosinus ein. Da der Asuro aber nur bis ca. 13 Grad Neigung ausgleichen kann und der Cosinus von kleinen Werten annähernd 1 ist, habe ich darauf verzichtet.
Die Variablen k, T, g und l können über den Menüpunkt ‚Edit – Context’ geändert werden. Die Bedeutung ist:
k = Übertragungsmaß des Antriebs
T = Zeitkonstante des Antriebs
g = Erdbeschleunigung
l = Länge des Pendels von Schwerpunkt zu Drehachse
Auf dem linken Teil des Blockschaltbilds sind die Regler. Links unten eine PID-Struktur, wobei der I-Anteil zu 0 gesetzt ist, also einen PD-Regler ausübt. Dieser Regler stabilisiert den Winkel. Die Parameter KP, KI und KD können durch einen Mausklick auf den entsprechenden Verstärkerblock geändert werden. Links oben ist ein weiterer Regler, der die Geschwindigkeit regelt und einen möglichen Offset des Abstandssensors ausgleicht. Dieser Teil des Reglers ist für sich alleine nicht funktionsfähig, er regelt nur in Kombination mit dem anderen Regler richtig.
Eine Simulation wird über das Menü ‚Simulate – Run’ gestartet. Danach erscheinen 2 Fenster mit den Ergebnissen. Das Fenster ‚ScilabGraphic1’ zeigt die Kurven Position (schwarz), Geschwindigkeit (grün) und Winkel (rot). Die Skalierung ist in den Grundeinheiten, also Position in m, Geschwindigkeit in m/s und Winkel in rad. Man sieht, dass der Winkel bei 0.2 rad startet und dann ausgeregelt wird. Den Anfangszustand des Winkel kann man im Blockschaltbild durch einen Mausklick auf den letzten Integratorblock (unter phi0) im Pendelteil einstellen. Es öffnet sich ein Fenster, dort unter ‚Initial Condition’ einen neuen Wert eingeben. Das Einschwingen des Winkels zeigt nach 2sec einen Ausschlag, dieser wird durch eine simulierte Störung verursacht. Für die ersten Gehversuche in der Simulation, würde ich vorschlagen die Störung vorerst wegzulassen. Die Störung kann mit dem Block unter Stoerung ausgeschaltet werden, dort den ‚Final value’ auf 0 setzen. Das 2. Grafikfenster ‚ ScilabGraphic2’ zeigt 2 Stellgrößen. Einmal die vom Winkelregler und eine weitere, die das endgültige Ansteuersignal für den Motor zeigt.
Der Block S/H (Sample and Hold) simuliert die Abtastverzögerung. Um diese zu ändern, einfach auf die Uhr darüber klicken und eine neue Taktrate unter ‚Period’ eingeben. Damit kann die Auswirkung einer längeren Abtastzeit untersucht werden.
Ich denke das reicht erst mal, um damit spielen zu können. Mein Vorschlag: KPv, KIOffset und die Störung auf 0 setzen und nur mit dem PID-Regler versuchen das Pendel für längere Zeit zu stabilisieren. Dabei beobachten, was die Position und die Geschwindigkeit macht.
Lesezeichen