Forum: Mikrocontroller und Digitale Elektronik PID Parameter ermitteln für träge selbstgebaute Kühlbox


von Ricco S. (ricco_s)


Angehängte Dateien:

Lesenswert?

Hallo Community,

villeicht kann mir jemand ein paar Tips bezüglich der Parameterfindung 
für meine Kühlbox-PID-Steuerung geben anhand des angehängten Plot's. Man 
sieht, dass die Kühlbox um die Zieltemperatur recht stark Schwingt (Ziel 
9Grad). Der Plot ist über einen Zeitraum von ca 13min gemacht. Zum 
Kühlen verwende ich 8 Peltier-Elemente und PWM.

Als Software-Regelung verwende ich simple_pid (python 
https://pypi.org/project/simple-pid/) mit den Parametern:
PID_P = -1
PID_I = -0.1
PID_D = -0.05

Kann mir jemand auf wirklich einfache weise erklären, wie ich villeicht 
über das anpassen der Parameter Schritt für Schritt an bessere Werte 
komme, damit die gewünschte Zieltemperatur besser gehalten wird.

Oder villeicht kann ja jemand schon was aus dem beigelegtem Graphen 
herauslesen, welche Parameter man evtl erhöhen müsste oder verringern?

Für jegliche Tipps bin ich sehr dankbar.

von Oliver S. (oliverso)


Lesenswert?

Was ist denn das Ziel der Übung? Und was spricht gegen den klassischen 
Kühlschrank-Zweipunktregler?

Oliver

von Dieter H. (kyblord)


Lesenswert?

8 peltier elemente werden gemeinsam angesteuert oder einzeln?
Wo sind diese platziert? Wo und wie wird die Temperatur gemessen?
Das Ziel soll eine möglichst homogene Temperaturverteilung in der 
Kühlbox sein nehme ich an?

von Ricco S. (ricco_s)


Lesenswert?

Oliver S. schrieb:
> Was ist denn das Ziel der Übung? Und was spricht gegen den klassischen
> Kühlschrank-Zweipunktregler?
>
> Oliver

Ich möchte eine möglichst genaue Temperatur halten können (So gut es mir 
halt möglich ist), so wie ich das im Internet recherschiert habe kann 
PID das besser als der Zweipunktregler.

von Ricco S. (ricco_s)


Lesenswert?

Dieter H. schrieb:
> 8 peltier elemente werden gemeinsam angesteuert oder einzeln?
> Wo sind diese platziert? Wo und wie wird die Temperatur gemessen?
> Das Ziel soll eine möglichst homogene Temperaturverteilung in der
> Kühlbox sein nehme ich an?

Alle Elemente werden über ein Mosfet gemeinsam gesteuert. Kann als ein 
Gesamtsystem betrachtet werden, wo man eine bestimmte power von 0%-100% 
übergeben kann.

Ja genau die Temperatur besser auf einem bestimmten Grad halten zu 
können wäre das Ziel. Hab einen simplen digitalen Temp Sensor in der 
Box, Daten werden am raspi ausgewertet (mittels oben erwähnter software) 
und dann werden alle peltier elemente gleichzeitig über den Mosfet 
gesteuert.

Also ich bin mir sicher dass man bessere Parameter finden kann nur weis 
ich nicht wie und kann auch meine Messung nicht dahingehend 
interpretieren, sodass ich wüsste was ich anpassen kann damit die 
temperatur nicht mehr so stark schwingt.

von Andras H. (kyrk)


Lesenswert?


von Olaf (Gast)


Lesenswert?

> Also ich bin mir sicher dass man bessere Parameter finden kann nur weis
> ich nicht wie

Wieso googlest du nicht?

https://tlk-energy.de/blog/pid-regler-einstellen

Olaf

von MaWin (Gast)


Lesenswert?

Ein D-Anteil für eine so träge Temperaturregelung ist schon einmal 
Unsinn.
Ein so großer I-Anteil auch.

Ich würde einen simplen 2-Punkt-Regler nehmen.
Oder eventuell einen P-Regler mit größerem Faktor, wenn es denn kein 
2-Punkt sein darf.

von Erwin D. (Gast)


Lesenswert?

Ricco S. schrieb:
> Alle Elemente werden über ein Mosfet gemeinsam gesteuert.

Was dabei auch eine Rolle spielen kann: Die Pelztiere sollte man NICHT 
mit PWM ansteuern, sondern nur mit Gleichstrom.

von wendelsberg (Gast)


Lesenswert?

PID-Regler sind immer schwierig, wenn die Regelstrecke eine (grosse) 
Totzeit hat.

Mein Ansatz waere, bei Annaeherung an die Zieltemperatur die 
Peltierelemente einzeln abzuschalten, eines nach dem anderen (aber immer 
mit min. 2 Min. Abstand).
Wenn dann die Temperatur wieder steigt, wieder einzeln einschalten.

wendelsberg

von Udo S. (urschmitt)


Lesenswert?

wendelsberg schrieb:
> Mein Ansatz waere, bei Annaeherung an die Zieltemperatur die
> Peltierelemente einzeln abzuschalten

Zwei Peltierelemente mit halben Strom ist besser als eins mit ganzem 
Strom.
Warum?
Die Verluste steigen quadratisch mit dem Strom, die Kühlleistung linear.

Aus diesem Grund ist

Ricco S. schrieb:
> PWM

maximal ungünstig. Wie schon gesagt ist eine (geschaltete) Stromregelung 
viel besser. 10% Ripple im Strom sind völlig ok.

Zur Regelung:
digitale Regelungen haben als ersten und wichtigsten Parameter die 
Abtastzeit (rate). In dem Reglercode oben sehe ich nur ein "while ..."
Eine sich ändernde und viel zu schnelle Abtastzeit ist absolut Mist, 
weil die Auswirkung der Parameter direkt vonb der Abtastzeit abhängt.
Hat man eine für das System viel zu hohe Abtastrate, dann werden die 
notwendigen Parameter unhandlich klein.

Die Schwingung würde ich erst mal auf eine viel zu hohe Abtastrate und 
dafür zu hohe P und/oder I Parameter tippen.

Also als erstes mal eine sinnvolle Abtastrate wählen. Vieleicht mal mit 
10s starten.

Zur Zweipunktregelung gilt das gleiche wie zu PWM. Maximnal schlechter 
Wirkungsgrad plus zusätzlich thermischen Stress für das Paltierelement.

von Udo S. (urschmitt)


Lesenswert?

Siehe dazu auch
https://rn-wissen.de/wiki/index.php/Regelungstechnik
Vor allem Kapitel 6 und Kapitel 7

In Kapitel 7 steht eine rein empirische Methode um die Parameter 
anzunähern.

von Udo S. (urschmitt)


Lesenswert?

Ricco S. schrieb:
> Ich möchte eine möglichst genaue Temperatur halten können

Dann sollte in der Box noch ein kleiner Miefquirl sein, der eine 
Temperaturschichtung verhindert.

von Ricco S. (ricco_s)


Lesenswert?

MaWin schrieb:
> Ein D-Anteil für eine so träge Temperaturregelung ist schon einmal
> Unsinn.
> Ein so großer I-Anteil auch.
>
> Ich würde einen simplen 2-Punkt-Regler nehmen.
> Oder eventuell einen P-Regler mit größerem Faktor, wenn es denn kein
> 2-Punkt sein darf.

Hi du hast recht, ich habe den P wert erhöht und den I wert verkleinert. 
Ein maßgeblicher Unterschied ich komme auf eine Abweichung von +-0.4 
Grad

von jo (Gast)


Lesenswert?

Deine Konstruktion heizt besser als sie kühlt - sagt mir wenigstens dein 
Bild. Untersuche mal woran das liegt. Vorher brauchst nicht groß an den 
Regler-Parametern drehen.
Oder muss das so?

von c-hater (Gast)


Lesenswert?

Udo S. schrieb:

> digitale Regelungen haben als ersten und wichtigsten Parameter die
> Abtastzeit (rate).
[...]
> Die Schwingung würde ich erst mal auf eine viel zu hohe Abtastrate und
> dafür zu hohe P und/oder I Parameter tippen.

I dürfte der Knackpunkt sein. Insbesondere ohne Anti-Windup kommt dann 
näherungsweise doch wieder nur das grundsätzliche Verhalten einer 
Zweipunktregelung heraus. Nur mit sehr viel mehr Rechenaufwand und 
deutlich schlechterem Regelverhalten als eine echte primitive 
Zweipunktregelung...

> Also als erstes mal eine sinnvolle Abtastrate wählen. Vielleicht mal mit
> 10s starten.

So isses. Wobei man allein der Grafik nicht entnehmen kann, wo die 
Zeitkonstante der Schnwingung herkommt. Ein Teil ist sicher die 
Regelstrecke. Aber ich vermute anhand der Kurvenform, dass der weitaus 
größere Teil ursächlich der I-Komponente des "Turbo-Reglers" 
zuzuschreiben ist. Um das abzuklären, könnte man erstmal alles so 
lassen, wie es ist, nur den I-Koeffizienten auf 0 setzen und dann 
nochmal dieselbe Grafik aufnehmen. Die wird sehr wahrscheinlich völlig 
anders aussehen.

von Olaf (Gast)


Lesenswert?

Ich denke schon das man sowas gut und brauchbar mit PID regeln kann.
Hab ich schon gemacht. Aber man sollte natuerlich schon die Leistung
linear und ohne PWM steuern koennen.

Was ich aber bei diesem Vorhaben als interessante Herausforderung
sehen wuerde, die Regelkonstanten werden sich vermutlich stark
unterscheiden ob deine Kiste leer oder randvoll Bier ist.
Erzaehl mal wenn du das in den Griff bekommen hast.....

Olaf

von Ricco S. (ricco_s)


Lesenswert?

Udo S. schrieb:
> Siehe dazu auch
> https://rn-wissen.de/wiki/index.php/Regelungstechnik
> Vor allem Kapitel 6 und Kapitel 7
>
> In Kapitel 7 steht eine rein empirische Methode um die Parameter
> anzunähern.

Vielen Dank!

von Ricco S. (ricco_s)


Lesenswert?

Udo S. schrieb:
> Ricco S. schrieb:
>> Ich möchte eine möglichst genaue Temperatur halten können
>
> Dann sollte in der Box noch ein kleiner Miefquirl sein, der eine
> Temperaturschichtung verhindert.

guter hinweis, ja hab zwei eingebaut

von Rainer V. (a_zip)


Lesenswert?

Olaf schrieb:
> die Regelkonstanten werden sich vermutlich stark
> unterscheiden ob deine Kiste leer oder randvoll Bier ist.

Und wenn es nur eine Kiste Bier wäre, die von Zimmertemperatur auf 
bekömmliche 10°C gekühlt würde, wette ich, dass das buchstäblich Tage 
dauern wird. Das hört man zumindest von diversen Getränkekühlschränken 
(mit Peltier)...wenn das Trinkgut nicht schon vorgekühlt ist, sollen die 
meisten die gewünschte Temperatur gar nicht erreichen (in welchem Fall 
ja auch noch keine Regelung einsetzen konnte :-). Nun weiß man ja hier 
nicht, was der TO konkret an Peltierelementen verbaut hat und wie die 
Box konstruiert/isoliert ist, aber die Aufgabe, mittels PID-Regler eine 
"absolut" gleichmäßige Temperatur zu erzielen, kann man getrost als 
akademisch und damit als realitätsfern einstufen. Abgesehen davon, dass 
ich mir keine Anwendung einer Kühlbox vorstellen kann, wo die Temperatur 
so genau gehalten werden muß, wäre vielleicht auch der Ansatz mit 
Peltierelementen zu überdenken. Die Steuerung per PWM ist jedenfall 
schon mal falsch...auch wenn es natürlich immer Leute gibt und geben 
wird, die genau das Unsinnige machen und es schon seit Jahrzehnten 
erfolgreich laufen haben. Ich glaube es nicht...
Gruß Rainer

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Oliver S. schrieb:
> Was ist denn das Ziel der Übung?
Zum bisherigen Verlauf siehe den
Beitrag "Mosfet IRFP4568PbF wird extrem heiß - warum?"

: Bearbeitet durch Moderator
von Rainer V. (a_zip)


Lesenswert?

Lothar M. schrieb:
> Zum bisherigen Verlauf siehe den

Alle klar...danke...

von Ricco S. (ricco_s)


Angehängte Dateien:

Lesenswert?

Hier ein kurzes Update mit neuen Parametern, kann tatsächlich auf 
schonmal ungefähr kleiner 0.5Grad abweichung gehalten werden und das mit 
meiner Canon Eos 2000D in der Box drinnen. Den neuen Graphen hab ich 
angehägt die Parameter sind derzeit:

TARGET ist hier 20 GRAD

PID_P = -15
PID_I = -0.05
PID_D = -0.01

Ob man das noch verbessern kann, wrsl irwie schon aber bin schon fast 
zufrieden..

: Bearbeitet durch User
von Manfred K. (4for)


Lesenswert?

Tagelang hatte ich versucht Parameter für einen sehr trägen Brennofen zu 
finden - dann hab ich einen selbstoptimierenden OMRON E5CW genommen und 
nach einer Fahrt hat alles gepasst.
Man kann sich das Leben auch schwer machen...

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ricco S. schrieb:
> Ob man das noch verbessern kann
Du musst den Regler einfach so abgleichen, wie alle Welt einen Regler 
abgleicht. Erst nur P, dann D dazu und zum Schluss noch den I dazu wie 
dort:
http://www.vias.org/mikroelektronik/regler_pid.html
Oder alternativ erst nur P, dann I dazu und das Schwingen mit dem 
D-Regler unterdrücken:
https://tlk-energy.de/blog/pid-regler-einstellen
Siehe dort auch unter "Empirische Dimensionierung":
https://de.wikipedia.org/wiki/Faustformelverfahren_(Automatisierungstechnik)

> aber bin schon fast zufrieden..
Dann ist es ja gut.
Allerdings solltest du im mittleren der drei Links mal noch den 
Abschnitt "Robustheit" ansehen. Denn du hast deinen Regler jetzt auf 
genau 1 einzigen Arbeitspunkt "optimiert" (und er schwingt da trotzdem 
immer noch). Wenn du jetzt einen anderen Arbeitspunkt hast (andere 
Aussentemperatur oder Versorgungsspannung), dann kann das Schwingen auf 
einmal wieder stärker werden.

: Bearbeitet durch Moderator
von Walter T. (nicolas)


Lesenswert?

Ricco S. schrieb:
> PID_P = -1
> PID_I = -0.1
> PID_D = -0.05

Ist der Regler komplett in Parallelstruktur, oder werden die Zeitanteile 
noch mit PID_P multipliziert? Wenn ja, hast Du aufgrund der Vorzeichen 
teilweise Mitkopplung.

von Achim M. (minifloat)


Lesenswert?

Walter T. schrieb:
> Ricco S. schrieb:
>
>> PID_P = -1
>> PID_I = -0.1
>> PID_D = -0.05
>
> Ist der Regler komplett in Parallelstruktur, oder werden die Zeitanteile
> noch mit PID_P multipliziert? Wenn ja, hast Du aufgrund der Vorzeichen
> teilweise Mitkopplung.

Würde der dann nicht einfach abhauen, also in die Stellgliedbegrenzung 
rein fahren, weil der zunehmende error den Integrator weiter/schneller 
voll laufen lässt?

Für alle die sich wundern... Die Minusse kommen durch den Umstand, dass 
es durch zugeführten Strom letztendlich kälter in der Kiste wird. Ich 
hab zuerst an falsche Polarität des Error-Signals gedacht :D

mfg mf

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Achim M. schrieb:
> Würde der dann nicht einfach abhauen, also in die Stellgliedbegrenzung
> rein fahren, weil der zunehmende error den Integrator weiter/schneller
> voll laufen lässt?

Guter Punkt. Wenn kein Anti-Windup vorhanden ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.