Hallo Community! Ich stehe vor der Herausforderung einen Regler zu entwerfen. in Bild_1 kann man grob das Umfeld erkennen. Bild_2 zeigt wie ich mir das ganze vorstelle: Ein Generator (z.B. PV Anlage) speist über einen Smart meter in das Niederspannugsnetz ein. Der Smart meter misst Energie bezug oder Rückspeisen in das Netz. Ist der Eigenverbrauch im Haushalt kleiner als die erzeugte Energie entsteht ein Überschuss. Diesen Überschuss möchte ich durch eine Leistungsgesteuerte Heizpatrone (So weit wie möglich) selbst in Wärme umsetzen. Nun zur Frage: welchen Regler brauche ich dafür? 1.P-Regler: Angenommen ein Überschuss X tritt auf und mein Regler stellt über das Stellglied X ein. Das würde dazu führen, dass bei der nächsten Messung ein Überschuss von 0 eintritt und der regler wieder 0 einstellt: Ich kriege ein Pendelndes System! Wie lässt sich das ganze Vermeiden? Mit besten Grüßen Student
Martin mg schrieb: > 1.P-Regler: Angenommen ein Überschuss X tritt auf und mein Regler stellt > über das Stellglied X ein. Das würde dazu führen, dass bei der nächsten > Messung ein Überschuss von 0 eintritt und der regler wieder 0 einstellt: > > Ich kriege ein Pendelndes System! > > Wie lässt sich das ganze Vermeiden? mit nem PI-Regler
Du solltest dir erst den Unterschied zwischen kWh und kW klar machen.
Wie schon erwähnt, PI, aber dann mit sehr kleinem P-Anteil, oder auch ein PT1. Deine Strecke ist ja schnell und hat Verstärkung 1 (10W Änderung am Heizkörper verursachen sofort 10W Änderung am Ausgang). Ein P-Anteil der zu einer Verstärkung bei offenem Kreis von >1 führt wird daher, wie du erkannt hast, freilich Schwingungen bei der halben Abtastfrequenz erzeugen. Also musst du die Verstärkung des Reglers deutlich unter der Abtastfrequenz absenken oder überhaupt klein halten. PS: Ist das eigentlich ein Rechenbeispiel, ein Schüler-/Studentenprojekt oder soll das ein reales System und praktisch eingesetzt werden?
Naja, die Leute haben eine Solaranlage, aber keine Einspeiseverguetung. Daher soll das Einzuspeisende verbraten werden ... duemmlich.
In der Zeichnung fehlt der Packen Leistungswiderstände oder der Heizkörper mit Magnetventil am Dach, damit man auch ja nix herschenkt falls man das Warmwasser nicht brauchen sollte ;-)
>klaus schrieb: > > Martin mg schrieb: >> 1.P-Regler: Angenommen ein Überschuss X tritt auf und mein Regler stellt >> über das Stellglied X ein. Das würde dazu führen, dass bei der nächsten >> Messung ein Überschuss von 0 eintritt und der regler wieder 0 einstellt: >> >> Ich kriege ein Pendelndes System! >> >> Wie lässt sich das ganze Vermeiden? > > mit nem PI-Regler > > >Gerhard W. schrieb ebenfalls: >Wie schon erwähnt, PI, aber dann mit sehr kleinem P-Anteil Daran habe ich auch schon gedacht. Schauen wir uns dafür die Formel (Für ein PI-Regler)an:
Nun angenommen wir sind wieder an der Stelle bei der wir einen Überschuss X=0 haben. Damit ist die Regeldifferenz e(t)= x-w [w:Führungsgröße = 0] -> e(t)=0
Integrationskonstante ist doch auch 0. Sofort sind wir wieder bei unserem Pendel! Noch andere Ideen? >Siebzehn oder Fuenfzehn schrieb: > Naja, die Leute haben eine Solaranlage, aber keine Einspeiseverguetung. > Daher soll das Einzuspeisende verbraten werden ... duemmlich. >Gerhard W schrieb auch: >In der Zeichnung fehlt der Packen Leistungswiderstände oder der >Heizkörper mit Magnetventil am Dach, damit man auch ja nix herschenkt >falls man das Warmwasser nicht brauchen sollte ;-) Der Hintergrund wird in diesem Beitrag erläutert: http://www.volker-quaschning.de/artikel/2013-03-Heizen-mit-PV-Strom/index.php >Gerhard W schrieb: >PS: Ist das eigentlich ein Rechenbeispiel, ein Schüler-/Studentenprojekt >oder soll das ein reales System und praktisch eingesetzt werden? Das soll ein reales System werden!
Martin mg schrieb: > Nun angenommen wir sind wieder an der Stelle bei der wir einen > Überschuss X=0 haben. Damit ist die Regeldifferenz e(t)= x-w > [w:Führungsgröße = 0] > -> e(t)=0 > Integrationskonstante ist doch auch 0. > > Sofort sind wir wieder bei unserem Pendel! Nö: wenn die momentane Regeldifferenz e(t)=0 ist bedeutet das ja nicht, dass das Integral über die bisherige Regeldifferenz auch Null ist: das Integral ändert nur einfach seinen Wert nicht weiter. Sobald die Regeldifferenz also Null wird, springt y_R deswegen nicht auch auf Null, sondern es bleibt bei dem bisherigen Wert stehen (und die Regeldifferenz bleibt idealerweise bei Null stehen). Martin mg schrieb: > Der Hintergrund wird in diesem Beitrag erläutert: > http://www.volker-quaschning.de/artikel/2013-03-Heizen-mit-PV-Strom/index.php Na ja, dann wartet aber lieber bis zum für 2016 prognostizierten Preisverfall, ehe ihr die Anlage in Betrieb wirklich nehmt. Bei mir zuhause ist es übrigens so, dass der Wärmespeicher bei Sonnenschein ohnehin bis zur Maximaltemperatur aufgeheizt ist. Zusätzliches elektrisches Heizen würde nur zum früheren Abschalten der Kollektoren führen und wäre genau so effizient, wie die Umgebungsluft direkt zu heizen.
Achim S. schrieb: > Na ja, dann wartet aber lieber bis zum für 2016 prognostizierten > Preisverfall, ehe ihr die Anlage in Betrieb wirklich nehmt. Na mit dem Preisverfall wäre ich vorsichtig. Wenn man sich heute so ein Solarmodul an sieht, das z.B. 140€ bei 200Wpk kostet, dann sehe ich da keine großen Preistendenzen nach unten mehr. Für den Preis bekommt man kaum eine gleichgroße Verbundglasscheibe. Auch werden die Installationskosten nicht weniger und die Preise für das Montagesystem fallen sicher auch nicht ins Bodenlose. Je weniger die Module kosten, desto weniger macht sich eine weitere Verbilligung im Gesamtsystem bemerkbar. Aber eins steht fest, auf die Einspeisevergütung kann man nicht mehr setzen. Selbst wenn man beim direkten Heizen noch weniger Wirkungsgrad hat als mit Kollektoren, die Option Strom für alles Mögliche hat man in der Hinterhand. Und wenn der Strom erst über die Wärmepumpe geht ist es noch besser. Es steht nicht immer der absolute finanzielle Nutzen im Vordergrund. Für einen Satz Alufelgen für's SUV bekommt man schon gut 3KWpk Solarmodule. Und wenn damit nur der Pool um 2 Grad wärmer wird oder man wie zur Zeit der frierenden Frau ein paar Grad mehr in die Bude zaubert, der Nutzen ist größer als der von Alu-Felgen.
"Preisverfall" war eine schlechte Formulierung von mir. Die oben verlinkte Studie sagt für 2016 die "Oil Parity" voraus und folgert, dass es sich ab dann lohnt, den privat erzeugten Solarstrom in der Heizung zu verbraten. Ich bezweifle diese Argumentation, deshalb habe ich Martin zum "Abwarten" geraten. Jürgen Liegner schrieb: > Für > einen Satz Alufelgen für's SUV bekommt man schon gut 3KWpk Solarmodule. Ich würde mir zwar auch eher eine kleine Photovoltaikanlage kaufen als Alufelgen für einen nicht vorhandenen SUV. Aber bloß weil Alufelgen für mich ein völlig unsinniger Invest wären bedeutet das noch lange nicht, dass ich eine Photovoltaikanlage zum Heizen von Wasser für sinnvoll halte ;-)
Achim S. schrieb: > Martin mg schrieb: >> Der Hintergrund wird in diesem Beitrag erläutert: >> http://www.volker-quaschning.de/artikel/2013-03-Heizen-mit-PV-Strom/index.php > > Na ja, dann wartet aber lieber bis zum für 2016 prognostizierten > Preisverfall, ehe ihr die Anlage in Betrieb wirklich nehmt. Bei mir > zuhause ist es übrigens so, dass der Wärmespeicher bei Sonnenschein > ohnehin bis zur Maximaltemperatur aufgeheizt ist. Zusätzliches > elektrisches Heizen würde nur zum früheren Abschalten der Kollektoren > führen und wäre genau so effizient, wie die Umgebungsluft direkt zu > heizen. Da hab ich mich ungenau ausgedrückt: Ich möchte einen Prüfstand aufbauen um experimentell das Modell zu überprüfen - mehr nicht. >Achim S. (Gast) schrieb: >Nö: wenn die momentane Regeldifferenz e(t)=0 ist bedeutet das ja nicht, >dass das Integral über die bisherige Regeldifferenz auch Null ist: das >Integral ändert nur einfach seinen Wert nicht weiter. > >Sobald die Regeldifferenz also Null wird, springt y_R deswegen nicht >auch auf Null, sondern es bleibt bei dem bisherigen Wert stehen (und die >Regeldifferenz bleibt idealerweise bei Null stehen). Ich habe den PI-Regler in Matlab simuliert und tatsächlich: Achim S. hat Recht. Allerdings: Wie kann ich 0 als untere Grenze festlegen? Damit Y_R nicht bei einem mangel im negativen Bereich bleibt?
Hallo Liebe Community Ich bin endlich bei der Software für den PIC-uC angekommen. Als C-Code habe ich das hier gefunden: e = w - x; //Vergleich esum = esum + e; //Integration I-Anteil y = Kp*e + Ki*Ta*esum; //Reglergleichung if (y < 0) {y = 0;} //Begrenzung Stellgröße if (y > 1000) {y = 1000;} Kaskade = y; //Übergabe Stellgröße Quelle: http://www.rn-wissen.de/index.php/Regelungstechnik Nun habe ich anstatt des Dimmers aus Bild_2 5 Verschiedene Heizpatronen genommen (50;100;200;250;400)W, die es mir erlauben in 50Watt Schritten von 0-1kW die Heizleistung einzustellen. Diese 5 Heizpatronen sind jeweils per solid state relais an an einen Digital out des PIC 18f25k22 uC angeschlossen. Jetzt suche ich einen Vorschlag wie ich die Kaskade programmieren könnte um die verschiedenen Liestungen einzustellen. Beste Grüße
Vorsicht: Du begrenzst zwar die Stellgröße y, nicht aber den Integralteil esum. Wenn Dein Regler also z.B. am oberen Stellgrößenanschlag liegt (Du also noch mehr Strom hast also Du verheizen kannst), steigt zwar die Stellgröße nicht mehr (wegen y>1000), aber esum integriert fröhlich die Regelabweichung weiter. Stichwort zum grugeln: Windup Jörg
Jörg K. schrieb: > Vorsicht: > Du begrenzst zwar die Stellgröße y, nicht aber den Integralteil esum. > Wenn Dein Regler also z.B. am oberen Stellgrößenanschlag liegt (Du also > noch mehr Strom hast also Du verheizen kannst), steigt zwar die > Stellgröße nicht mehr (wegen y>1000), aber esum integriert fröhlich die > Regelabweichung weiter. > Stichwort zum grugeln: Windup > > Jörg Danke schnell verbessert: e = w - x; //Vergleich esum = esum + e; //Integration I-Anteil if (esum < -1000) {esum = -1000;} //Begrenzung I-Anteil if (esum > 1000) {esum = 1000;} y = Kp*e + Ki*Ta*esum; //Reglergleichung if (y < 0) {y = 0;} //Begrenzung Stellgröße if (y > 1000) {y = 1000;} Kaskade = y; //Übergabe Stellgröße Bleibt aber die Frage wie ich die Kaskaden Funktion am sinnvollsten lösen könnte. Mir fällt erstmal nur eine große if, else abfrage ein
Hm, würde es so machen: Zwischenspeicher = Soll-Leistung Zwischenspeicher > 400W -> 400W einschalten, Zwischenspeicher:=Zwischenspeicher-400W Zwischenspeicher 250W -> 250W einschalten, Zwischenspeicher:=Zwischenspeicher-250W und so weiter... Jörg
Hallo Martin, dies ist ein spannendes Projekt. Mit dem Pendel am Anfang hast Du sicherlich recht, wenn alle Baugruppe ohne Zeitverzögerung arbeiten, aber wenn Du die Ansteuerung mit Zeitverzögerung oder als PT1 deklarierst funktioniert dies mit einem PI-Regler recht gut (Habs in der Simulation ausprobiert). Nun aber zur Kaskade: Wir nehmen nur Heizpatronen, die ihren Wert verdoppeln, also 50,100,200,400 - damit kann man einen Wert von 750 W erreichen. Es wird nun die Stellgröße auf binär umgewandelt: 50 --> 2^0 --> 1 100 --> 2^1 --> 2 200 --> 2^2 --> 4 400 --> 2^3 --> 8 ----------------- 750 ----------> 15 Die Stellgröße muss also durch 750/15=50 geteilt werden, dann ergibt sich eine Integerzahl von 0 bis 15. Nun wird aus der Integerzahl das jeweilige Bit extrahiert (kann jeder uC). Beispiel: Stellgröße 300 -> 300/50 = 6 --> Binär 0110 --> 100+200= 300 W Stellgröße 450 -> 450/50 = 9 --> Binär 1001 --> 50+450= 450 W usw.... Der Trick ist eigentlich nur der, dass die Heizperioden den Faktor 2 besitzen. Dann kannst Du Dir die ganzen If-then-else sparen. Ich hoffe es war verständlich. Gruß Marvol
> Ich hoffe es war verständlich. > > Gruß > Marvol Ich denke schon aber mich plagt noch eine andere Überlegung: Falls y zwischen 2 Lestungsstufen liegt : Also Überschuss von z.B. 70 Watt würde dann die Leistung zwischen 100 und 50 Watt pendeln? und vor allem wie lässt sich das dann verhindern? Grüße
Hallo Martin, okay, ich habe einen Zwischenschritt nicht sauber erläutert. Es wird ein Casting auf Integer erfolgen. Beispiel 70: Stellgröße=70 --> 70/50 = 1.4 intStellgröße = int(1.4) = 1 -> Binär: 0001 Beim Integer werden die Nachkommastellen abgeschnitten. Somit pendelt die Vorgabe nicht zwischen zwei Werten sondern bringt nur 50W. Der Fehler ist somit 20 W. Wie groß ist dann der max. Fehler? Beispiel 399.9: Stellgröße=399.9 --> 399.9/50 = 7.998 intStellgröße = int(7.998) = 7 -> Binär: 0111 Es wird somit eine Leistung von 50+100+200=350 W eingestellt. Der Fehler liegt bei 49.9W. Dies kann man nun beliebig fortführen, der max. Fehler ist immer kleiner der kleinsten Kaskade. Die Programmierung ist relativ einfach: AusgangBinär_1 = int(Stellgröße/50.0) & 1; // 50 W AusgangBinär_2 = int(Stellgröße/50.0) & 2; // 100 W AusgangBinär_4 = int(Stellgröße/50.0) & 4; // 200 W AusgangBinär_8 = int(Stellgröße/50.0) & 8; // 400 W Allerdings muss vermieden werden, dass negative Zahlen als Stellgröße auftreten. Soll allerdings der Wert 70 genau gefahren werden, so muss sicherlich eine Pulsmodulation (PWM) eingesetzt werden, die dann etwas aufwendiger ist. Noch ein Hinweis, wenn das Thermoelement die Grenztemperatur erreicht, muss die Stellgröße zu Null gesetzt werden, der PI-Regler deaktiviert werden und vorallem die Integrationssumme esum zu Null gesetzt werden, sonst kommt es beim Wiederanfahren zu einem Überschwinger. Gruß Marvol
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.