|
|
Parameterwechsel PID-Regler nach Initialisierungsphase |
|
Henrik_PB |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 22.08.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2018, 11:18
Titel: Parameterwechsel PID-Regler nach Initialisierungsphase
|
|
|
|
|
Hallo zusammen,
nach einigen Grunderfahrungen in Matlab wollte ich mein erstes Simulink- Projekt starten.
Ich möchte mit einem PID-Regler die Temperatur eines Objektes mit bekannter Übertragungsfunktion regeln.
Da die Starttemperatur in aller Regel deutlich unter der Zieltemperatur liegt, lässt sich der Aufheizprozess grob in zwei Phasen aufteilen: Das initiale Hochheizen sowie anschließend das genaue Regeln auf die Temperatur.
Der erste Schritt soll so schnell wie möglich erfolgen, der zweite mit so wenigen Überschwingern wie möglich. Folglich variieren ist dies nicht mit den selben Reglerparametern möglich.
Wie kann ich meinem Regler sagen dass er nach 60 Simulationssekunden von Parametersatz 1 auf 2 umstellen soll?
Theoretisch möglich wäre eine sicherlich ein Aufbau mit zwei Reglern, wobei der Reglerausgang vom ersten nach 60 Sekunden mit 0 multipliziert wird, vom zweiten vor 60 Sekunden, Jedoch würde dies nicht den internen Integratorspeicher des Reglers mitnehmen, und richtig elegant wirkt diese Methode auch nicht.
Bin für jeden Tipp dankbar
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.08.2018, 11:55
Titel:
|
|
Hallo,
ich finde deine Idee gar nicht so schlecht. Die Änderung der Parameter führt zu einer Unstetigkeit im Verhalten, und ich kann mir vorstellen, dass die internen Informationen des Integrators dann nur noch begrenzt hilfreich sind.
Eine Alternative kann sein, mit einem Regler zu arbeiten. Davor soll ja vermutlich nur maximal geheizt werden, und dafür braucht man an sich keinen Regler.
Ich würde auch schauen, ob nicht ein ähnlich gutes Ergebnis mit nur einem Regler erzielt werden kann.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Erano1 |
Forum-Fortgeschrittener
|
|
Beiträge: 59
|
|
|
|
Anmeldedatum: 26.04.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2018, 12:01
Titel:
|
|
Hallo,
eine Alternative zu dem Ansatz wäre ene Regelung mit zwei Freiheitsgeraden (2DOF). Der Vorteil dabei ist, dass zum einen auf gutes Folgeverhalten sowie auf gute Störungsunterdrückung gleichzeitig geachtet werden kann. Somit wird kümmert sich die Steuerung sozusagen darum wie dein System auf Veränderung in der Führungsgröße verändert, und der Regler darum, dass Störungen unterdrückt werden.
Bei der Auslegung von einem Regler für beides muss man immer Kompromisse machen, da ein schneller Regler mit dem das System die gewünschte Größe erreicht, bei Störungen starkes schwingen verursachen kann. Umgekehrt dauert das Einschwingen länger, wenn dafür das halten der gewünschten Größe besser funktioniert.
VG, Erano1
|
|
|
Henrik_PB |
Themenstarter
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 22.08.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2018, 12:24
Titel:
|
|
In C und Python habe ich den Regler schon fertig, und er funktioniert recht gut.
Dort habe ich es über eine if-Bedingung gelöst.
Eine Regelung der Aufheizphase würde ich einer Steuerung schon vorziehen, da sie sowohl im Winter als auch im Sommer draußen funktionieren soll, und zwar unabhängig davon ob sie Anfangs komplett kalt oder schon vorgewärmt ist.
Bisher scheint mir zum Ausprobieren der Regelparameter eine wie im Startpost zeitabhängig geänderte Simulation das beste, bekomme bekomme es aber nicht zum laufen.
Alternativ den PID-Regler mit embedded Function Blocks nachbauen?
Und darein schreiben, dass sich die Parameter ändern sollen?
Falls ja, wie schreibe ich die Zeile nach der Zeitabfrage?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.08.2018, 12:47
Titel:
|
|
Hallo,
Zitat: |
Falls ja, wie schreibe ich die Zeile nach der Zeitabfrage? |
Du kannst einen Clock-Block als Eingang verwenden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|