Forum: Mikrocontroller und Digitale Elektronik Frage zu PID-Regler bei Arduino


von Michael (Gast)


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

von ReglerForBeginner (Gast)


Lesenswert?

double Kp=1, Ki=0, Kd=0;

KP langsam erhöhen und testen.

von Blackoutgroßaktionär (Gast)


Lesenswert?

Da du absoluter Regelungstechnik Laie bist versuche es doch mit den 
Einstellregeln nach Ziegler Nichols

von Olaf (Gast)


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

von Chris (Gast)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Michael (Gast)


Lesenswert?

Matthias S. schrieb:
> Allerdings ist ein PID Regler vermutlich die falsche Applikation für
> deinen Fall.

Hallo Matthias,

DAS habe ich sogar vermutet. Ich versuche nun einen anderen Ansatz. 
Eventuell sogar per Hand.

von Blackoutgroßaktionär (Gast)


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?

von Michael (Gast)


Lesenswert?

Blackoutgroßaktionär schrieb:
> 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?

Genau!

> Warum möchtest du dafür eine Regelung?

Damit ich keinen Strom aus dem Netz ziehe.

von Jester (Gast)


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.

von Michael (Gast)


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.

von Jester (Gast)


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!

von Re D. (Gast)


Lesenswert?

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

von Paul (Gast)


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

von Blackoutgroßaktionär (Gast)


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

von Stefan F. (Gast)


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?

von Kolja L. (kolja82)


Lesenswert?

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...

von Blackoutgroßaktionär (Gast)


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?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Michael (Gast)


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.

von Klaus H. (nikolaus10)


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.

Fuzzy logik ?

von Michael (Gast)


Lesenswert?

Klaus H. schrieb:
> 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.
>
> Fuzzy logik ?

Kannst du das bitte näher beschreiben?

von uwe (Gast)


Lesenswert?


von Helge (Gast)


Lesenswert?

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

von Michael (Gast)


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.

von uwe (Gast)


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...

von Klaus H. (nikolaus10)


Lesenswert?

Michael schrieb:
> Klaus H. schrieb:
>> 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.
>>
>> Fuzzy logik ?
>
> Kannst du das bitte näher beschreiben?


Frank Hoffmann - Entwurf von Fuzzy-Reglern mit genetischen Algorithme

von Lars R. (larsr)


Lesenswert?

Kann man nicht einfach den Regler so langsam laufen lassen, dass er nur 
einmal alle 60 Sekunden die Stellgröße ändert? Bzw. nach dem 
Einschaltbefehl einfach 60 Sekunden warten.

von Kolja L. (kolja82)


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...

von Michael (Gast)


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.

von Kolja L. (kolja82)


Lesenswert?

Michael schrieb:
> anstatt mir zu erklären welche Regelart und welche Regeltechnik man
> dafür nutzt.

Kolja L. schrieb:
> 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...

von Joachim B. (jar)


Lesenswert?

Michael schrieb:
> Ich habe einen Pufferspeicher einer Wärmepumpe mit Zusatzheizstäben

wozu dann PID?
Bei der Zeitkonstante überflüssig, 2-punkt reicht völlig.
Bloß weil es PID gibt musss man das nicht überall anwenden.

von Blackoutgroßaktionär (Gast)


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...

von Stefan F. (Gast)


Lesenswert?

Blackoutgroßaktionär schrieb:
> Sprich du müsstest das Wetter 60 sekunden vorhersagen.

Du meinst 60 Minuten, oder?

von Uuu B. (hansdampf2)


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.

von Uuu B. (hansdampf2)


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...

von Uuu B. (hansdampf2)


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.

von Michael (Gast)


Lesenswert?

Moin,

ich hab nun den Code selbst von Hand geschrieben. Keine Ahnung wie man 
den Reglertyp nennt, aber es funktioniert.

von Uuu B. (hansdampf2)


Lesenswert?

Du kannst ihn ja mal posten..

von Michael (Gast)


Lesenswert?

Uuu B. schrieb:
> Du kannst ihn ja mal posten..

mal schauen.

von Heinz S. (heinz_s709)


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.

von Uuu B. (hansdampf2)


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.

von Michael B. (laberkopp)


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.

von Heinz S. (heinz_s709)


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

von Michael B. (laberkopp)


Lesenswert?

Heinz S. schrieb:
> Damit wäre die Schwingungspaket-Lösung eine gute und einfache
> Ersatzlösung.

Schwingungspaketsteuerung hat wegen der Flickergrenze eine Periodendauer 
von 4s oder mehr zu haben. Selbst dein Ceranfeld-Energieregler hält sich 
dran.

von Uuu B. (hansdampf2)


Lesenswert?

Michael B. schrieb:
> Schwingungspaketsteuerung hat wegen der Flickergrenze eine Periodendauer
> von 4s oder mehr zu haben.

Aber erst bei Lasten ab 300W - siehen oben, und Heinz weiß das schon!

von Michael B. (laberkopp)


Lesenswert?

Uuu B. schrieb:
> Aber erst bei Lasten ab 300W -

Welcher Heizstab soll weniger als 300W haben und wozu, damit bringt man 
weniger Warme als durch die Isolierung wieder flöten geht, selbst ein 
Untertischspeicher hat mehr. Lötkolben in Kaffeetasse ?

Und 0.9W 1/3 der Zeit zählt nicht als 300W.

von Uuu B. (hansdampf2)


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!

von Chris S. (Firma: hier&da) (keiningenieur)


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

von Weingut P. (weinbauer)


Lesenswert?

Woher soll der Regler wissen, dass in 30s die Leistung x anliegt um die 
Heizstäbe vorauseilend hoch zu fahren? Gib eben die Leistung frei wenn 
sie anliegt, ist sie nach der Totzeit noch da, alles gut, ist sie nicht 
da Regel eben runter, was wohl wie beschrieben schnell geht.

von Pandur S. (jetztnicht)


Lesenswert?

Was soll ein PID ? Das System ist viel zu komplex, da brauchts schon 
Einiges mehr. Ich empfehle mal ein paar Simulationen zu fahren bis alles 
genau verstanden wurde.

von Wolle G. (wolleg)


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.

von Heinz S. (heinz_s709)


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ß!

von Manfred P. (pruckelfred)


Lesenswert?

Heinz S. schrieb:
> Im letzten Jahr schenkte ich meinem Energieversorger ca. 280kWh

Also der 93te Schwachsinnspost, an Balkonsolar mit Wunderelektronik die 
Physik / den Zähler austricksen zu wollen.

Suche Dir ein passenderes Spielzeug, z.B. eine Holzeisenbahn.

von Lukas T. (tapy)


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.

von Christian B. (cb1969)


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.

von Chris S. (Firma: hier&da) (keiningenieur)


Lesenswert?

Wolle G. schrieb:
> 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.

ja sehr sicher! Dein Link bestätigt ja nur meine einfachen Aussagen...

von Uuu B. (hansdampf2)


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.

von Klaus (feelfree)


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.

von Uuu B. (hansdampf2)


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.

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.