Frage zu PID-Regler bei Arduino

Gast #7213019
Lesenswert?

Hallo,

ich habe einen Arduino-PID-Regler nach der on-Board Library von Arduino 
erstellt. https://github.com/br3ttb/Arduino-PID-Library/

Mein Problem ist nun, dass ich die Zahlenwerte um den PID schön 
einstellen zu können nicht verstehe.

Hintergrund meines Problems:

Ich habe einen Pufferspeicher einer Wärmepumpe mit Zusatzheizstäben. 
Momentan leite ich manuell von der Solaranlage ab einer gewissen 
Leistung den Strom in die Heizstäbe. Diese sind sowohl per PWM als auch 
ModBUS ansteuerbar. Zusätzlich haben diese eine Max-Temp Einstellung um 
Überhitzen zu vermeiden.
Meine WP möchte ich weder hart ein noch hart ausschalten. Der Kompressor 
hat ein Profil das er abarbeitet und somit kann ich nicht einfach 
Ein/Aus sagen. Der Nachlauf nach Start sind ca 30min. Zu lange für eine 
Wolke. Soweit so gut.

Die Heizstäbe haben jeweils 10kW und können bis herunter auf 2kW 
gedrosselt werden (PWM/Modbus) oder ganz abschalten. Allerdings geht die 
Übernahme der Befehle zum Heizen sehr langsam. Abschalten bzw runter 
regeln geht sofort.

Hier hab ich mein Problem des PID-Reglers. Ich messe den Strom am 
Stromzähler. Sehe 8kW Überschuss und sage meinem Heizstab das er 8kW 
kann. 5sek später sehe ich noch 6kW Überschuss und mein PID sagt dann, 
da geht noch was. Bei 10kW sehe ich dann 2kW Bezug und mein PID nimmt 
ihm die wieder weg (was gar nicht sein muss).

Als Grundlage habe ich diesen Code:
https://github.com/br3ttb/Arduino-PID-Library/blob/master/examples/PID_Basic/PID_Basic.ino

mit diesen Werten:
1
double Kp=1, Ki=1, Kd=1;

Ich habe leider keine Ahnung welche Werte ich für P I und D nehmen soll.
Der Überschwinger soll sofort reduziert werden und das Hochregeln 
langsam erfolgen, da der Heizstab nicht sofort reagiert.

Kann mir jemand a) erklären wie ich die PID zu verstehen habe und b) mir 
eventuell einen Zahlenwert nennen kann der für mein Projekt passt?

Grüße
Michael
Gast #7213046
Lesenswert?

> Kann mir jemand a) erklären wie ich die PID zu verstehen habe und b) mir

Nein, das geht leider nicht. Regelungstechnik ist eine Vorlesung ueber 
2-3Semester im Rahmen eines Nachrichtentechikstudium wo der Professor 
bereits weiss das du die notwendigen Mathe-Grundlagen drauf hast. Das 
ist gerne mal ein Fach wo man laestige Studenten los wird.
Du kannst dir natuerlich die entsprechenden Buecher zulegen, aber die 
liesst man nicht so einfach. .-)

> eventuell einen Zahlenwert nennen kann der für mein Projekt passt?

Nein, koennen wir auch nicht weil das natuerlich genau auf dein System 
passen musst.

Fuer Leute wie dich haben die Herren Ziegler und Nichols oder auch Chron 
und Renswick Einstellformeln/Verfahren hergeleitet.  Danach kannst du 
suchen. Die liefern eine Annaeherung die oftmals ausreichend ist, 
manchmal auch nicht. Daher ist es dann empfehleswert das deine Software 
immer die Systemparameter ausgibt und du dir das mal grafisch darstellt. 
Dann kann man die letzten Feinheiten nach Gefuehl verstellen und dann 
passt es meistens.

Olaf
Gast #7213048
Lesenswert?

Der P-Regler besteht ausschließlich aus einem proportionalen Anteil der 
Verstärkung Kp. Mit seinem Ausgangssignal u ist er proportional dem 
Eingangssignal e

Ein I-Regler (integrierender Regler, I-Glied) wirkt durch zeitliche 
Integration der Regelabweichung e(t) auf die Stellgröße mit der 
Gewichtung durch die Nachstellzeit T N {\displaystyle T_{N}} T_N

Das D-Glied ist ein Differenzierer, der nur in Verbindung zu Reglern mit 
P- und/oder I-Verhalten als Regler eingesetzt wird. Er reagiert nicht 
auf die Höhe der Regelabweichung e ( t ) {\displaystyle e(t)} e(t), 
sondern nur auf deren Änderungsgeschwindigkeit.

Probier es mal mit einem Studium in Regelungstechnik. Da wird dir 
beigebracht, wie man die Regelstrecke berechnet, so dass passende Werte 
rauskommen.

Ohne genaue Kentnisse deiner Regelparameter bleibt nur die Methode 
ausprobieren. Was welcher Wert macht, habe ich dir ja oben beschrieben.
(Firma: matzetronics) #7213057
Lesenswert?

Dreh am besten den D-Anteil erstmal auf 0. P bestimmt dann die Stärke 
der Regelung und I ist für die Trägheit. P also langsam erhöhen, bis der 
Ausgang in etwa auf den richtigen Wert regelt. Laständerung machen und I 
so einstellen, das die Einregelungsgeschwindigkeit in etwa passt.
Zuletzt D aktivieren und bei Laständerung so justieren, das es gerade 
keine Überschwinger gibt.
Allerdings ist ein PID Regler vermutlich die falsche Applikation für 
deinen Fall.
Gast #7213087
Lesenswert?

So wie ich das sehe, gehst es hier nicht darum die Temperatur der 
Heizstäbe zu regeln sondern den überschüssigen Strom in die Heizstäbe 
reinzuleiten? Warum möchtest du dafür eine Regelung?
Gast #7213317
Lesenswert?

Michael schrieb:
> Damit ich keinen Strom aus dem Netz ziehe.

Michael schrieb:
> Ich messe den Strom am
> Stromzähler. Sehe 8kW Überschuss und sage meinem Heizstab das er 8kW
> kann. 5sek später sehe ich noch 6kW Überschuss ...
... und drum du sagst deinem Heizstab, dass er 6kW kann.
> Bei 10kW sehe ich dann ...
... 10kW Überschuss und sagst dem Heizstab, dass er 10kW kann.

Zu regeln gibt es da gar nichts.
Gast #7213442
Lesenswert?

Jester schrieb:
> Michael schrieb:
>> Damit ich keinen Strom aus dem Netz ziehe.
>
> Michael schrieb:
>> Ich messe den Strom am
>> Stromzähler. Sehe 8kW Überschuss und sage meinem Heizstab das er 8kW
>> kann. 5sek später sehe ich noch 6kW Überschuss ...
> ... und drum du sagst deinem Heizstab, dass er 6kW kann.
>> Bei 10kW sehe ich dann ...
> ... 10kW Überschuss und sagst dem Heizstab, dass er 10kW kann.
>
> Zu regeln gibt es da gar nichts.

Du hast es leider nicht kapiert!

Der Heizstab zieht nicht sofort die Leistung, sondern erst ca 30-60 
Sekunden nach dem Befehl. Leistung reduzieren geht aber sofort.

Willst du deine Aussage nochmals überdenken?

Hast du verstanden was passiert wenn man den Stab 8kW freigibt und misst 
bevor der Stab die Leistung voll angenommen hat? Es gibt einen 
Messfehler der sich aufaddiert und zu Überschwingern führt.
Gast #7213473
Lesenswert?

Michael schrieb:
> Du hast es leider nicht kapiert!
>
> Der Heizstab zieht nicht sofort die Leistung, sondern erst ca 30-60
> Sekunden nach dem Befehl. Leistung reduzieren geht aber sofort.

Und du bist dir ganz sicher, dass du verstanden hast, was ein 
(PID)-Regler macht?

Du verheizt die von deinem Stromzähler gemeldete, überschüssige Leistung 
in deinen Heizstäben. So weit so gut.

Dank sofort reagierender Leistungsreduktion ziehst du keinen Strom aus 
dem Netz. So weit so gut.

Viel Spaß mit den Totzeiten beim Hochfahren der Heizstäbe. Während 30 
... 60 Sekunden verschenkst du Leistung. Das bekommst vielleicht in 
Griff, wenn du zusätzlich eine Glaskugel verbaust. So weit so gut.

Oder du schließt deine Fotovoltaik direkt an deine Heizstäbe - ganz ohne 
depperte PWM/Modbus-Steuerung. Dann verschenkst du nichts. So weit so 
gut.

Michael schrieb:
> Meine WP möchte ich weder hart ein noch hart ausschalten. Der Kompressor
> hat ein Profil das er abarbeitet und somit kann ich nicht einfach
> Ein/Aus sagen. Der Nachlauf nach Start sind ca 30min. Zu lange für eine
> Wolke. Soweit so gut.

Die WP steuern, bei Totzeiten von ~30min - damit ist in jedem Fall eine 
Glaskugel fällig - und zwar eine der wamperten Sorte!  So weit so gut!
Gast #7213491
Lesenswert?

So ein Aufriss wegen eines Pufferspeichers....
Miss die Temperatur, mach dir 3-5 Leistungsstufen und hau die passende 
PWM raus. Das wars. Kein Regler, sicherer Programmablauf, keine 
Probleme. Einen Pufferspeicher ausregeln, ich glaub es geht los. Dir ist 
doch egal ob der Eimer 85 oder 85,3°C hat. Hauptsache die max PV Energie 
geht da rein und die Tonne fliegt nicht durchs Dach. Das kann dein 
Programm leich berechnen und dann den PWM Ausgang setzen...Mach dir 
lieber Gedanken wie du die obere Abschaltung hin bekommst und am besten 
redundant auslegst, damit wenigstens eins von beiden den ungewollten 
Start der Boiler 5 Rakete verhindert.

VG Paul
Gast #7213530
Lesenswert?

Re D. schrieb:
> Warum eigentlich immer PID Regler? Gibt es heute nicht besser,
> selbstlernende Algorithmen? Oft ist die Reaktion der Regelstrecke über
> die Zeit doch nicht konstant.

Nein. Bei diesen gibt es keine Sicherheiten was die Funktion angeht. 
Damit für viele Anwendungen unzureichend
Gast #7213545
Lesenswert?

Ich fürchte dass das überhaupt nicht geht.

Auf der einen Seite bekommst du zeitnahe Informationen, wie viel 
Energie-Überschuss deine Solarzellen produzieren.

Du möchtest den Überschuss zum Heizen verwenden, kannst die Heizleistung 
aber nur mit 30 Minuten verzögerung reduzieren.

Wenn ich dich soweit richtig verstanden habe, müsste dein Regler in die 
Zukunft schauen können, um schon eine halbe Stunde vorher abzuregeln, 
bevor sich eine Wolke vor die Sonne schieben wird. Wie soll das gehen?
Gast #7213772
Lesenswert?

Kolja L. schrieb:
> Michael schrieb:
>> Kann mir jemand a) erklären wie ich die PID zu verstehen habe
>
> P schaut in die Gegenwart,
> I in die Vergangenheit,
> D in die Zukunft.
>
> Dein Problem ist aber die Totzeit in der Regelstrecke. Denn D kann nicht
> die Sonne bzw die Wolken sehen...

Woher kommt eigentlich die Totzeit von 30min?
(Firma: matzetronics) #7213925
Lesenswert?

Blackoutgroßaktionär schrieb:
> Woher kommt eigentlich die Totzeit von 30min?

Die scheint es nicht zu geben, der TE redet aber von 30-60s, die seine 
vorhandenen Mimik braucht, um die Heizdingse aufzudrehen.
M.E. ist damit schon Ende Banane, denn es gibt bei der PV keine Prognose 
und schon gar nicht die Prophetschaltung. Am besten speist man in die 
Heizstäbe das, was da ist und schaltet nur bei mangelnder PV irgendwann 
auf Netzbetrieb.
Gast #7213928
Lesenswert?

Kolja L. schrieb:
> Michael schrieb:
>> Kann mir jemand a) erklären wie ich die PID zu verstehen habe
>
> P schaut in die Gegenwart,
> I in die Vergangenheit,
> D in die Zukunft.
>
> Dein Problem ist aber die Totzeit in der Regelstrecke. Denn D kann nicht
> die Sonne bzw die Wolken sehen...

Danke für die Aufklärung! Ja genau, das ist mein Problem. Sonne ist weg 
und die Regelung fängt an den Stab zurück zu regeln bis er keinen Strom 
mehr aus dem Netz zieht. Das dauert aber und kostet unnötig Geld.

Stefan F. schrieb:
> Du möchtest den Überschuss zum Heizen verwenden, kannst die Heizleistung
> aber nur mit 30 Minuten verzögerung reduzieren.

Das ist bei der Wärmepumpe. Deshalb aktiviere ich ja die Heizstäbe. 
Diese sind aber beim Anfahren her träge und brauchen 1min. Runterregeln 
hingegen geht sofort.

Eigentlich brauche ich einen Heizstab der keine Elektronik enthält und 
ggf über Phasenabschnitt/Anschnitt geregelt werden kann.
Gast #7214277
Lesenswert?

Helge schrieb:
> Braucht man überhaupt einen Regelalgorithmus? Reicht es nicht, dem
> Heizer die Überschußleistung als Stellparameter rüberzuschicken?

Bitte lese meinen Text. Dort ist beschrieben weshalb dies nicht geht, 
ohne dabei es zu Überschwingern kommen zu lassen.
Gast #7214283
Lesenswert?

aufschreiben welche Totezeiten und Übertragungsglieder man im System 
hat...
Dann simulieren... eventuell müssen auch mehrere Regler arbeiten mit 
verschiedenen Übertragungsgliedern und später intelligent fusioniert 
werden...
#7214526
Lesenswert?

Michael schrieb:
> Bitte lese meinen Text. Dort ist beschrieben weshalb dies nicht geht,
> ohne dabei es zu Überschwingern kommen zu lassen.

Dein Problem liegt außerhalb des Einflussbereiches des (was auch immer) 
Reglers. Solange du diese Totzeit nicht eliminierst, oder eine 
funktionierende Glaskugel in die Regelstrecke implementierst, wird das 
nix...
Gast #7214901
Lesenswert?

Ich habe einen Fehler gemacht!

Ich habe den Begriff und den Code für "PID" verwendet anstatt zu fragen 
welcher Regler man nehmen muss. Jetzt hängen sich alle an dem PID-Regler 
auf, anstatt mir zu erklären welche Regelart und welche Regeltechnik man 
dafür nutzt. Es fehlt jetzt nur noch das Verhalten der Amateurfunker, 
die dann zu Politik wechseln und am Ende bei Gesundheitsfragen sind.

Es war einfach ein Versuch, da ich glaubte ein PID-Regler wäre dafür 
brauchbar. OK, ist er nicht.

Ich experimentiere nun etwas mit der vorgeschlagenen 60Sek-Regelung. Ist 
halt  aufwändiger, da keine fertige Lib.
Gast #7214997
Lesenswert?

Es wurde doch schon erklärt, dass die Totzeit druch Prädiktion (Zukunft 
vorhersagen) berücksichtigt werden muss. Da gibt es zum Beispiel den 
Smith-Prädiktor. Sprich du müsstest das Wetter 60 sekunden vorhersagen. 
Wenn also eine Wolke im Anmarsch ist müsstest du das der Regelung 
sagen...
#7215151
Lesenswert?

Michael schrieb:
> Ich habe den Begriff und den Code für "PID" verwendet anstatt zu fragen
> welcher Regler man nehmen muss. Jetzt hängen sich alle an dem PID-Regler
> auf, anstatt mir zu erklären welche Regelart und welche Regeltechnik man
> dafür nutzt.

Du brauchst einen reinen P-Regler oder aber einen PI-Regler (oder einen 
PID-Regler mit kd=0) mit einer vorgebbaren Begrenzung des 
Ausgangssignals. In erster Linie wird der gemessenen "Rückstrom" am 
Einspeisepunkt mit einem Faktor multipliziert (P-Anteil), der zu einer 
entsprechenden Ansteuerung der Heizstäbe führt (was offensichtlich bei 
Dir eine gewisse Zeit dauert z.B. 60s). Soweit, so gut.
Sollte über eine gewisse Zeit (z.B. 30min) durch den P-Regler ein 
restlicher "Rückstrom" verbleiben, was bei einem P-Regler normal wäre, 
kann man zusätzlich einen integralen (I-) Anteil hinzufügen. Dann würde 
sich der verbliebene "Reststrom" langsam zu "Null" verringern. Hierbei 
ist aber das Ausgangssignal des Reglers zu begrenzen (0kW bzw. +10kW). 
Das ist mathematisch notwendig wegen des ins möglicherweise unendliche 
steigende Integral bei Messunsicherheiten und Lastwechseln. In der 
Praxis nutze ich für die gleiche Aufgabenstellung einen PI-Regler mit 
Eingangssignal in [W] (Überschussleistung), Ausgangssignal in [W] 
(anzusteuernde Heizleistung), kr=-0,4 Tn=6,0s Xamin=0W Xamax=1700W. Da 
mein System sofort reagiert, können auch Lastwechsel im Netz 
(Herdplatten mit Zykluszeit=15s) relativ gut beherrscht werden.
Dir würde ich einen reinen P-Regler empfehlen, wie bereits zu Anfang 
gepostet wurde:

ReglerForBeginner schrieb:
> double Kp=1, Ki=0, Kd=0;
Kp kannst Du dann variieren und sehen ob es besser oder schlechter wird.
#7215166
Lesenswert?

noch eine Ergänzung: fange mit einem Wert von Kp=0,4 an und steigere ihn 
dann. Die Einstellreglen nach Nichols/Ziegler sind in Deinem Fall nicht 
hilfreich, da die Regelstrecke (das Stromnetz) viel schneller reagiert 
als das Stellglied (Deine Heizelemente mit Zeitverzögerung). Eine KI an 
dieser Stelle wäre zu überdimensioniert und ist auch in der Industrie 
noch nicht angekommen. Bei meinem Studium waren wir froh, wenn der 
Regler doppelt so schnell reagierte als die Regelstrecke. Daher bleibt 
tatsächlich nur ein P-Regler oder der direkte Anschluss der Heizelemente 
an die PV-Anlage...
#7216913
Lesenswert?

nochmal ich. Um eine saubere lineare Regelung hinzubekommen, muss die 
gemessene Regelgröße (hier beim TO die Solarleistung, bei anderen 
Projekten der gemessener Strom am Einspeisepunkt) per Filter soweit 
geglättet werden, dass der maximale Signalanstieg kleiner ist als die 
Geschwindigkeit, mit der das Stellglied die Regelstrecke beeinflussen 
kann. Z.B. mit einem pt1 Glied, also einer Mittelwertbildung. Da in 
diesem Thread die Regelstrecke sehr langsam ist, kann man mit einem 
Regler also keinesfalls schnelle Wechsel der Solareinstrahlung oder 
Lastwechsel im Netz abfangen.
Es bleiben dann nur zwei Wege: 1. Die Führungsgröße bzw. den Sollwert 
auf einen Wert <0 zu verschieben und damit die Effizienz zu 
verschlechtern (Rückspeisung ins Versorgungsnetz) und/oder 2. einen 
speziellen nichtlinearen Regler zu adaptieren, der die vielen möglichen 
Regelungsfälle heuristisch/vorhersagbar "möglichst gut" umsetzt. Dabei 
wäre die Aussage hilfreich:

Michael schrieb:
> Allerdings geht die
> Übernahme der Befehle zum Heizen sehr langsam. Abschalten bzw runter
> regeln geht sofort.
Konkret bei einem PI-Regler müßte dann die Integralbildung bei Zu- bzw. 
Abnahme des Eingangssignals unterschiedlich erfolgen, z.B. mit einem 
resetbaren Regler oder 2 verschiedenen Ki.
#7842089
Lesenswert?

Ich baue mir gerade ein ähnliches System. Allerdings mit kleinerer Leistung. Wenn ich das richtig verstanden habe, regelst Du die Leistung der Heizstäbe mit PWM. Irgendwo habe ich gelesen, dass die Zählermessfrequenz deutlich größer ist als 50Hz. In diesem Fall würde wirklich nur Phasenanschnitt helfen, um eine Messung des Zähler im Scheitelpunkt zu vermeiden. Kannst Du das bestätigen. Bis jetzt habe ich einen Phasenanschnitt Steuerung realisiert. Ich habe den Phasenwinkel rechnerisch bestimmt und plage mich auch mit dem Problem, dass die Heizleistung möglichst immer <= der ans das RWE gespendeten Leistung ist.

#7842119
Lesenswert?

Mit "Zählermessfrequenz" meinst Du sicher das Abfrageintervall im Zähler für die Energiemessung in einem Strompfad. Dieses Intervall muss zwingend viel kleiner als die Dauer einer Halbwelle sein, damit die vielen "unmöglichen" U/I Kurvenformen im realen Netz korrekt erfasst werden (Stichwort Schaltnetzteile). Für die Ansteuerung von Heizstäben ist ein anderer Wert des Zählers wichtig: Die Intervallzeit in der die Energie-Addition aller 3 Phasen erfolgt (saldierende Messung). Da die 3 Phasen gegeneinander um 120° verschoben sind beträgt diese Intervallzeit mindestens 50-60ms. In der Praxis sind es bei E-Zählern eher mehr als 100ms. Damit kann man sehr wohl eine Schwingungspaket-PWM mit 10 Halbwellen je Zyklus realisieren. Die Genauigkeit liegt dann allerdings auch nur bei +/-10%, da ja immer nur ganzzahlige Halbwellen durchgelassen werden. Also Zykluszeit für die PWM: 0,1s ... 0,13s und eine (störintensive) Phasenanschnittsteuerung kann vermieden werden.

#7842125
Lesenswert?

Heinz S. schrieb:

Ich baue mir gerade

Heinz baut erst mal bevor er recherchiert. Heinz ist ein Macher, kein Denker.

Bis jetzt habe ich einen Phasenanschnitt Steuerung realisiert.

In einem an das öffentliche Netz angeschlossenem Hausnetz ist es laut TAR deines Netzbetreibers untersagt, Heizungen grösser 300W per Phasenanschnitt zu steuern.

Interessiert dich nicht weil du eh immer machst wonach die Nase gewachsen ist oder upps, überlesen ?

Sinusdimmer ist die Lösung, und viele Sinzsdimmer dimmen nur noch den Rest und schalten grob schon mal in Stufen um.

#7842231
Lesenswert?

Vielen Dank für die superschnelle Reaktion!

Saldier-Intervall > 100ms das ist eine gute Info! Damit wäre die Schwingungspaket-Lösung eine gute und einfache Ersatzlösung.

Das mit den max. 300Watt ist mir schon bekannt. Da es sich hier aber nur um ein Balkonanlage handelt, ist mit großen Leistungen, die zurück ins Netz gehen, sowie nicht zu rechnen. . Nochmal vielen Dank für die Unterstützung

#7842270
Lesenswert?

Ich muss mich korrigieren was die mögliche Zykluszeit der PWM betrifft - der EasyMetec Q3MA hat eine Saldierungszeit von 0,08-0,09s. Wahrscheinlich sind auch andere Zähler mittlerweile so schnell unterwegs. Daher sollte die Zykluszeit für die PWM eher bei 0,08s - 0,1s liegen. Es wäre auch eine Frage, wie "falsch" der Zähler messen würde, wenn die Zykluszeit der PWM nur wenig größer als das Saldierungsintervall des Zählers ist. Bei 0% und bei 100% PWM wäre ja immer alles korrekt und bei Zwischenwerten (am ungünstigsten bei 50% PWM) würde der Zähler ja nur manchmal auch "Bezug" zählen, der vermieden werden soll. Falls MaWin vorbeikommt: ja, der Zähler misst immer richtig!

(Firma: hier&da) #7842277
Lesenswert?

Michael schrieb:

Hallo,

ich habe einen Arduino-PID-Regler nach der on-Board Library von Arduino erstellt. https://github.com/br3ttb/Arduino-PID-Library/

Mein Problem ist nun, dass ich die Zahlenwerte um den PID schön einstellen zu können nicht verstehe.

Hintergrund meines Problems:

Ich habe einen Pufferspeicher einer Wärmepumpe mit Zusatzheizstäben. Momentan leite ich manuell von der Solaranlage ab einer gewissen Leistung den Strom in die Heizstäbe. Diese sind sowohl per PWM als auch ModBUS ansteuerbar. Zusätzlich haben diese eine Max-Temp Einstellung um Überhitzen zu vermeiden. Meine WP möchte ich weder hart ein noch hart ausschalten. Der Kompressor hat ein Profil das er abarbeitet und somit kann ich nicht einfach Ein/Aus sagen. Der Nachlauf nach Start sind ca 30min. Zu lange für eine Wolke. Soweit so gut.

Die Heizstäbe haben jeweils 10kW und können bis herunter auf 2kW gedrosselt werden (PWM/Modbus) oder ganz abschalten. Allerdings geht die Übernahme der Befehle zum Heizen sehr langsam. Abschalten bzw runter regeln geht sofort.

Hier hab ich mein Problem des PID-Reglers. Ich messe den Strom am Stromzähler. Sehe 8kW Überschuss und sage meinem Heizstab das er 8kW kann. 5sek später sehe ich noch 6kW Überschuss und mein PID sagt dann, da geht noch was. Bei 10kW sehe ich dann 2kW Bezug und mein PID nimmt ihm die wieder weg (was gar nicht sein muss).

Als Grundlage habe ich diesen Code: https://github.com/br3ttb/Arduino-PID-Library/blob/master/examples/PID_Basic/PID_Basic.ino

mit diesen Werten:double Kp=1, Ki=1, Kd=1;

Ich habe leider keine Ahnung welche Werte ich für P I und D nehmen soll. Der Überschwinger soll sofort reduziert werden und das Hochregeln langsam erfolgen, da der Heizstab nicht sofort reagiert.

Kann mir jemand a) erklären wie ich die PID zu verstehen habe und b) mir eventuell einen Zahlenwert nennen kann der für mein Projekt passt?

Grüße Michael

Hier brauchst du keinen PID Regler sondern einfach nur ne Abfrage vom Umrichter wieviel Leistung gerade als Überschuss zur Verfügung steht. Bei den Umrichtern kannst du Ausgänge programmieren die du dann abfragst...

Anhand der Überschussleistung und aus dem wieviel Leistung deine Heizstäbe haben, errechnest du einfach einen Faktor der genau das widerspieglt was du willst und damit kannst du dann eine PWM oder sinnvoller eine Schwingungspacketsteuerung bauen.

Zu deinem Überschwinger wo soll der entstehen ? Heizstab 10kW Wassertemperatur bei 30°C. Anhand der Wärmemengenlehre könntest du zusätzlich berechnen wieviel Leistung du real benötigst oder wieviel Zeit oder wieviel Energie, such dir was aus.

Aber viel wichtiger ist wo stecken denn die Heizstäbe im Wasser gestaffelt oben mitte unten oder doch nur mittig.

Der PID Regler muss immer für die jeweilige Strecke berechnet werden aber simpel gesagt geht beim PID um folgendes: P = proportinal Abweichung erzeugt gleich größe Regeldifferenz I = Zeitlicher Faktor wie stark P wirken soll D = das ist die Glaskugel die sagt um wieviel P&I vorzuhalten sind um on Point das Ziel zu erreichen

#7842311
Lesenswert?

Chris S. schrieb:

aber simpel gesagt geht beim PID um folgendes: P = proportinal Abweichung erzeugt gleich größe Regeldifferenz I = Zeitlicher Faktor wie stark P wirken soll D = das ist die Glaskugel die sagt um wieviel P&I vorzuhalten sind um on Point das Ziel zu erreichen

Sicher? Meine Empfehlung: https://rn-wissen.de/wiki/index.php/Regelungstechnik Hier gibt es eine gute Erklärung (einschl. Gleichungen) zu PID-Regler und für die Ermittlung der PID-Parameter für einen Regelkreis.

#7842455
Lesenswert?

Ich glaube, die ganze Diskussion verrutscht ein wenig. Im letzten Jahr schenkte ich meinem Energieversorger ca. 280kWh Leistung, die ich von meiner Photovoltaikanlage nicht verbraucht aber erzeugt habe. Bei den heutigen Strompreisen kann man dafür schon mal einige Bier trinken. Das hat mich geärgert. Was tun? LIPOS mit entsprechender Steuerung rechnen sich bei diesen kleinen Leistungen nicht. Ich habe auch darüber nachgedacht, einen Frequenzumrichter mit 400Hz zu betreiben und dort Wellenpakete zu packen. Da gibt es für mich aber noch zu viele Unbekannte und ich habe auch gerade keinen überzähligen Frequenzumrichter in der Kiste, um das zu testen. Die einfachste Lösung ist die, die überschüssige Leistung in Wärme zu verwandeln. Entweder über einen elek. Heizstab im Warmwasserbehälter der Heizung oder in einem externen Wasserspeicher, der an die Zirkulation des Warmwasserkreislaufs angeschlossen wird. Die Kosten müssen auf alle Fälle im Verhältnis bleiben. Bis jetzt habe ich nur 50€ für einen Zähler ausgegeben, mit dem ich die Saldos über MODbus auslesen kann. Alles andere war in der Krabbelkiste oder bekam ich geschenkt. Der Warmwasserspeicher hat 4 Heizstäbe. 2 a 2kW und 2 a 1kW. Ich benutze nur einen 1kW Heizstab. Zur Simulation habe ich einen 1kW Tauchsieder benutzt. Über Phasenanschnittsteuerung kann ich hier jede beliebige Leistung einstellen. Störungen: Bei kleinen Leistungen konnte ich keinerlei Störungen feststellen. Bei größeren Leistung (so ca. 500W) beschwerte sich die LED in der Lampe über meinem Arbeitstisch. Da gibt es also noch was zu tun. Die ganze Anlage wird im Keller neben der Heizung installiert. HF-Abstrahlung ist dort nicht das Thema. Über die Störungen, die über das Netz verbreitet werden, muss ich mir noch Gedanken machen und natürlich testen. PS. Ich will die Lösung nicht verkaufen und ich fahre auch schon mal schneller als 50 obwohl nur 50 erlaubt sind. Asche auf mein Haupt! Selbst wenn das Ganze wegen möglicher Verluste nur einen Wirkungsgrad von 10% hat, ist das immer noch besser, als die Leistung zu verschenken und außerdem macht das Ganze auch noch Spaß!

#7842471
Lesenswert?

Das System schwingt, weil mit dem derzeitigen Überschuss verzägert gestellt wird.

Eigentlich wird aber die aktuelle Leistung Haus (P1) benötigt, die aktuelle Leistung PV (P-1) und die aktuelle Leistung Heizstäbe (P2). P2 ist in P1 enthalten.

Die Heizstäbe müssen also jederzeit und ruhig verzögerungsfrei auf Psoll = P-1 - (P1 - P2) gestellt werden.

Schon schwingt nichts mehr.

Oder ich habe einen Denkfehler drin, gut möglich.

Dass das Prinzip ggf. humpelt, weil die Heizstäbe und PV vom Zähler ggf. nicht wie gewünscht verrechnet werden, wurde angesprochen.

Gast #7842480
Lesenswert?

Heinz S. schrieb:

Der Warmwasserspeicher hat 4 Heizstäbe. 2 a 2kW und 2 a 1kW.

Ich bin auch gerade dabei so etwas zu bauen. Ich hab mir einen Heizstab mit 3 unabhängigen 1kW Stäben gekauft. Diesen werde ich mittels Relais derart verschalten, dass ich sieben Leistungsstufen von 333W - 3kW bekomme. Auf der Leiterplatte werde ich noch einen Anschluss für einen Dimmer für die kleinste Stufe vorsehen. Ich denke das sollte der kleinste Aufwand mit dem größten Ertrag sein.

#7842922
Lesenswert?

Chris S. schrieb:

Anhand der Überschussleistung und aus dem wieviel Leistung deine Heizstäbe haben, errechnest du einfach einen Faktor der genau das widerspieglt was du willst und damit kannst du dann eine PWM oder sinnvoller eine Schwingungspacketsteuerung bauen. ja sehr sicher! Dein Link bestätigt ja nur meine einfachen Aussagen...

.. ja, sicher und danach schaltet der Heizstab zu, die Überschussleistung geht in den Keller, der Heizstab geht wieder aus und dann das Spiel von vorn. Davon abgesehen, dass nicht jeder Wechselrichter "programmierbare Ausgänge" hat. Soo einfach ist es nicht, digitale Regelungen mit Totzeit zu programmieren. Ein digitaler PID-Regler ist schon "etwas" komplexer ;-) Hier wird übrigends auch nur ein PI-Regler benötigt, der D-Anteil (die Glaskugel :-) wäre bei der großen Totzeit eher kontraproduktiv.

#7842924
Lesenswert?

Uuu B. schrieb:

ja, sicher und danach schaltet der Heizstab zu, die Überschussleistung geht in den Keller, der Heizstab geht wieder aus und dann das Spiel von vorn.

Natürlich darf man nicht die Überschussleistung als neuen Zielwert nehmen, sondern PWMneu = Momentane Überschussleistung + PWMaktuell.

Funktioniert dann sogar automagisch richtig wenn die momentane Überschussleistung negativ wird.

#7843214
Lesenswert?

Klaus schrieb:

Natürlich darf man nicht die Überschussleistung als neuen Zielwert nehmen, sondern PWMneu = Momentane Überschussleistung + PWMaktuell.

"Fast" richtig. Es fehlt noch der Sollwert: PWM_n = Momentane Überschussleistung - Sollwert + PWM_n-1 Dann kann auch der PWM-Fehler von +/-10% vorab berücksichtigt werden, da ansonsten der Zähler regelmäßig etwas "Bezug" misst. Die Gleichung gilt aber auch nur bei Zykluszeiten (Messung und Berechnung) >= PWM Intervall. Ist das Messintervall kleiner, ist die Messung vor der Berechnung entsprechend zu glätten.

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