Hallo!
Ganz kurz zu mir: Ich heiße Andreas, ich komme aus Wiesbaden und
studiere Maschinenbau.
Seit einigen Wochen schreibe ich an einer Projektarbeit, im Rahmen derer
ich den bestehenden Programmcode eines Segway-Nachbaus verbessern soll.
Chip ist ein Atmega32, programmiert wird mit BASCOM.
Momentan beschäftige ich mich mit dem Herzstück, dem Regelalgorithmus.
Im Originalcode übernimmt ein PI-Regler diese Aufgabe, ich würde nun
gerne testen (erstmal virtuell), ob ein PID-Regler Vorteile haben
könnte.
Das ist der originale PI-Regler im Code:
Former_controller_input = Controller_input 'difference for D_controller_part
28
Return
29
30
End Sub
Bascom kann nur eine Operation pro Zeile ausführen, daher der etwas
umständliche Code.
Meine erste Frage: Passt das so?
Nun habe ich beide Regler in Simulink modelliert und beide als
Screenshot angehangen. Es wäre toll, wenn ihr Euch die Modelle mal
anschauen könnten und Euren Senf dazu geben könntet. ;) Es sind meine
ersten zwei Modelle.
Ich würde nun gerne vergleichen, wie groß die Vorteile des PID-Reglers
sind. Ich habe ein Delay-Glied in die Rückführung eingebaut und die
Regler mit unterschiedlichen Anstiegsfunktionen gefüttert, allerdings
dürften die Ergebnisse wohl sehr weit ab von der Realität liegen,
alleine natürlich schon, weil ich nur die Regelung betrachte und den
Rest ignoriere.
- Gibt es trotzdem eine Möglichkeit mit vertretbarem Aufwand auszusagen,
in wie weit das D-Glied Vorteile bringt?
- Und was für eine Steptime sollte ich in Simulink einstellen? Der Chip
läuft mit 16 Megahertz.
- Wie ist die gängige Praxis bzgl. des D-Glieds: Wird der alte Wert vom
neuen Wert abgezogen oder umgekehrt?
Und die letzte Frage: Ist es richtig, dass ein falsch eingesteller
Kd-Wert das System in krasse Schwingungen bringen kann? Eigentlich soll
es ja einem vorhaltenden und damit dämpfenden Effekt haben.
Es wäre super, wenn ich da etwas Licht ins Dunkel bringen könntet.
Beste Grüße
Andreas
Andreas W. schrieb:> Und die letzte Frage: Ist es richtig, dass ein falsch eingesteller> Kd-Wert das System in krasse Schwingungen bringen kann? Eigentlich soll> es ja einem vorhaltenden und damit dämpfenden Effekt haben.
Jede Verstärkung nimmt im Regelkreis Phasenreserve weg und bringt ihn
daher einen Schritt näher ans Schwingen.
Du kannst auch nen P-Regler implementieren mit viel zu großem Kp, der
schwingt dann auch.
Vielen Dank Euch Beiden für Eure Antworten!
Matthias S. schrieb:> Der D Anteil soll Sprungantworten beschleunigen und kann damit bei zu> grossen Faktoren zur Aufschaukelei führen.
Hallo Matthias,
aber wie wirkt denn der D-Anteil bei einer Sprungantwort? Dort sollte er
doch keine Funktion haben, da die Veränderung der Regeldifferenz in
infinitesimal kleiner Zeit geschieht.
Ich bin mir mittlerweile sicher, dass ich in Simulink nicht weiterkomme,
da eine auch nur annähernd komplette Modellierung des Segways mit allem
drum und dran viel zu aufwendig ist.
Ich speise morgen den PID-Code mal ein und versuche die Parameter mal
nach Gefühl einzustellen.
Gibt es eine sinnvolle Strategie bzgl. Kp, Ki und Kd, wenn man aus einem
ganz okay funktionierenden PI einen PID macht?
Beste Grüße
Hast Du schon mal das System modelliert? Ich hatte das vor einigen
Jahren an einem ähnlichen System gemacht. Interessant ist, dass das
Körpergewicht direkt in die Reglerparameter mit ein geht. Eine deutliche
Verbesserung bei wechselndem Fahrer hat mal also, wenn man einen
adaptiven Regler macht, der mit einem Beobachter das Gewicht schätzt und
die Reglerparameter nachregelt.
Andreas W. schrieb:> Vielen Dank Euch Beiden für Eure Antworten!>> Matthias S. schrieb:>> Der D Anteil soll Sprungantworten beschleunigen und kann damit bei zu>> grossen Faktoren zur Aufschaukelei führen.>> Hallo Matthias,> aber wie wirkt denn der D-Anteil bei einer Sprungantwort?
Differenziert man einen Sprung, kommt die Dirac Funktion heraus.
Andreas W. schrieb:> aber wie wirkt denn der D-Anteil bei einer Sprungantwort?
Lies dir die AVR221 ruhig mal durch. Da wird mit Grafiken die Funktion
von P,I und D erklärt und auch erste Voreinstellungen. So ein Regler
läuft dann recht vorhersehbar, wenn er in einem festen Intervall
aufgerufen wird, ein Timer kann also eine gute Idee sein.
Andreas W. schrieb:> aber wie wirkt denn der D-Anteil bei einer Sprungantwort? Dort sollte er> doch keine Funktion haben, da die Veränderung der Regeldifferenz in> infinitesimal kleiner Zeit geschieht.
Guck mal ins Tabellenbuch rein, dann siehst du, dass ein D-Anteil ohne
ein Verzögerungsglied schwingt!
> Ich speise morgen den PID-Code mal ein und versuche die Parameter mal> nach Gefühl einzustellen.
Das ist wie die berühmte Nadel im Heuhaufen. Schneller kommst du ans
Ziel, wenn du den Segway abbrennst.
> Gibt es eine sinnvolle Strategie bzgl. Kp, Ki und Kd, wenn man aus einem> ganz okay funktionierenden PI einen PID macht?
Ich kann es mir ehrlicher Weise nicht vorstellen, dass es vorher ein PI
Regler war.
Richtig wäre es einen PD-T1 Regler zu nehmen oder eine Zustandsregelung
mit Beobachter (Luenberger Beobachter).
Rumprobieren ist der falsche Weg. Eine konkrete Streckenidentifikation
muss erstellt werden, und den Regler auf die gewünschte
Winkelgeschwindigkeit und Dämpfung auslegen.
mfg
Andreas W. schrieb:> Gibt es eine sinnvolle Strategie bzgl. Kp, Ki und Kd, wenn man aus einem> ganz okay funktionierenden PI einen PID macht?
Die optimale Strategie in dem Fall ist, Kd auf Null zu setzen.
Danke für die Antworten!
@pit: Wie kann ich mir denn einen Regler in der Rückführung vorstellen?
Hast Du da zufällig ein Beispiel?
Und was meinst Du mit D-Anteil in die Rückführung? Der D-Anteil wird
doch gemeinsam mit P- und I-Anteil sowieso rückgeführt.
@Matthias: Ich denke auch, dass ich einen Timer implentieren werde.
@aSma
aSma>> schrieb:> Andreas W. schrieb:>> Ich speise morgen den PID-Code mal ein und versuche die Parameter mal>> nach Gefühl einzustellen.>> Das ist wie die berühmte Nadel im Heuhaufen. Schneller kommst du ans> Ziel, wenn du den Segway abbrennst.
Ist es das auch, wenn P- und I-Parameter bekannt sind?
aSma>> schrieb:> Ich kann es mir ehrlicher Weise nicht vorstellen, dass es vorher ein PI> Regler war.
Ich habe den Code ja oben eingefügt - ist das ein PI-Regler, oder nicht?
S. R. schrieb:> Andreas W. schrieb:>> Gibt es eine sinnvolle Strategie bzgl. Kp, Ki und Kd, wenn man aus einem>> ganz okay funktionierenden PI einen PID macht?>> Die optimale Strategie in dem Fall ist, Kd auf Null zu setzen.
Wieso ist dem so?
Viele Grüße
Andreas
Sascha_ schrieb:> Deine Fragen deuten darauf hin, dass dir jegliche Regelungstechnik> Grundlagen fehlen.
Bravo für diese Erkenntnis - diese versuche ich mir ja momentan, auch
mit Hilfe dieses Threads, anzueignen.
Regelungstechnik schreibe ich dieses Semester, und das hat gerade erst
begonnen.
Andreas W. schrieb:> Ich habe den Code ja oben eingefügt - ist das ein PI-Regler, oder nicht?
Das Problem ist, und das ist wohl der Grund warum du einen PID Regler
aufsuchst, dass der PI-Regler die vorgegebene Regelgüte nicht einhält.
Der Regler ist einfach zu langsam?! Was willst du da verbessern?
Instabile Stecken lassen sich nur schwer mit einen I-Anteil im Regler
regeln oder der I-Anteil muss verschwindend gering sein.
Bilde die offene Strecke und dann die geschlossene...