PID Parameter ermitteln für träge selbstgebaute Kühlbox

OP #6853517
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.
Angehängte Dateien:
OP #6853542
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.
Gast #6853554
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.
Gast #6853599
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
#6853641
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.
OP #6853666
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
Gast #6853668
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.
Gast #6853693
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
#6853714
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
OP #6853951
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..
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #6854084
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.
#6855133
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren