NEWS
Leistungssteuerung PV-Wechselrichter "0-Einspeisung"
-
@fellpower sagte: Sobald ich den PID jedoch anschalte, startet mein Dimmer sofort los
Er startet bei etwas unter 50 %. Der I-Anteil sorgt aber dafür, dass er bei Bezug Richtung 0 % läuft.
Wie hoch ist die Ladeleistung? Wie oft aktualisiert der Shelly?@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Fehler?
Richtig: setze
i
auflasti
-
@paul53
Die Ladeleistung ist ja die, welche der PID ausregeln soll. Shelly aktualisiert alle 2 Sekunden.Sagen wir, ich habe einen Bezug von -100W. Dann soll der PID das 0-10V Signal am Dimmer (0-100%) solange regeln, bis diese -100W auf 0W runtergeregelt sind.
Das Netzteil nimmt diese 100W dann - und packt sie in einen Akku.Damit ist der vom WR generierte Überschuss im Akku gelandet.
-
@fellpower sagte: Die Ladeleistung ist ja die, welche der PID ausregeln soll.
Ich meinte die Ladeleistung bei 100 % (10 V).
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Shelly aktualisiert alle 2 Sekunden.
Dann verringere Tn auf 4 s, damit der I-Anteil schneller regelt.
-
Aufm Papier hat das Netzteil 480W DC Leistung. Verluste sind nicht inbegriffen AC dürfte aber etwas höher sein ^^
Aber der PID dürfte doch gar nicht loslegen, wenn ich aktuell +250W Bezug habe ^^
Er regelt quasi genau verkehrt herum.
-
@fellpower sagte: 480W DC Leistung.
Dann verringere Xp auf 5000, damit der Regler schneller reagiert.
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
250W Bezug
250 / 5000 = 5 %, also startet der Regler (bei Xp = 5000) mit 45 % und läuft Richtung 0 %.
-
Ich glaube wir missverstehen uns gerade.
Sobald ich den PI anmache und 250W Bezug habe, regelt der PI den Dimmer hoch, damit erzeugt er noch mehr Bezug, den ich ja nicht haben will. Da gerade +250W Bezug anstehen, darf er ja nicht das Ladegerät anmachen, da ja gerade kein Überschuss produziert wird. Es ist dunkel draussen - und mein WR liefert nix mehr.
Also die Richtung ist verkehrt. Er versucht die +250W auf NULL zu regeln, aber da er ja ein Ladegerät steuert, erzeugt er mehr Bezug, wenn er hochregelt. Er müsste jetzt gar nix machen, bzw den Dimmer auf NULL halten, bis wieder negativer Bezug, also Einspeisung vorliegen würde ^^
PS: Der Regler läuft bis 100% durch und bleibt da auch ^^
-
@fellpower sagte: regelt der PI den Dimmer hoch
Im Bild sehe ich -100. Also sollte er bei Einspeisung (negative Werte) hoch und bei Bezug runter regeln.
-
@paul53
tut er aber nicht.Schalte ich ein, geht er in Schritten auf 100% Dimmerwert
-
@fellpower sagte: Wo liegt der Fehler?
Das müssen Additionen sein - keine Divisionen:
Verkleinere Tn auf 4.
-
oh man, na klar! das war natürlich der super FAIL
Ich geh in die Ecke und schäme mich. Danke Paul!
-
@fellpower bitte keine externen "Hoster" verwenden
-
Okay, merke ich mir für die Zukunft. Mein Video war leider zu groß zum Einbetten. Ich nehms raus.
-
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Mein Video war leider zu groß zum Einbetten.
versuch es beim nächsten mal mit screen2gif.
(natürlich auch nur mit minimalen Einstellungen und nicht 4k 24fps ) -
Moin Leute
Seit dem neusten JS Controller Update, geht das PID Script nicht mehr. Der Wert für den Shelly, also die Stellgröße Springt nur noch hin und her. Hat jemand ne Idee?
Rechts bei Dimmer ist das Steuersignal. Es spinnt total, obwohl ich keine Einspeisung habe (Leistung Haus). Es sollte also bei Null sein. Habe ich Überschuss, springt es auch nur rum.
Jemand ne Idee?
Nachtrag: Ich habe mal mein "altes" Script probiert - das funktioniert tadellos. Muss also am PID liegen ^^
Hab dann ne komplett frische Installation gemacht. Und es passiert genau das Gleiche. Also muss es am neuen JS Controller liegen - das ist das Einzige, was ich geändert habe.
-
@fellpower
Kann mir nicht wirklich vorstellen welchen Einfluss der js-controller auf dein Blockly hätte. Wenn dann liegt es eher am (wahrscheinlich auch vorgenommenen) Upodate des javascript Adapters.Aber debug mal dein Skript und grenze ein welche Daten sich wie unverändert verändern. Log z.B. den Shella Power Wert, die Timestamps udn die berechneten Werte mit. Dann solltest du sehen können wo unerwartete Daten auftauchen.
Wenn dein "altes Skript" besser funktioniert dann schau auch mal was der Unterschied in den Skripten ist.
P.S: Bitte nenn mal die Version des javascript Adapters und die Version von node die du im Einsatz hast.
-
@fellpower sagte Hat jemand ne Idee?
Am js-controller kann es nicht liegen. Ist vielleicht
Xp
zu klein, so dass die Regelung instabil ist?
Bau Debug ein, um das Verhalten zu testen.Anmerkung: Es handelt sich um einen PI-Regler (nicht PID).
-
Nein - es liegt am Update des Controllers / JS Adapters.
Bevor ich das Update gemacht habe, hat das Script sehr gut funktioniert. Der PI hat smooth und schön auf Null geregelt, ohne diese Sprünge. Und genau die sind das Problem. Der Wert für "Helligkeit" des Shelly springt, wie man sieht - und zwar sieht man den "echten" Regelwert auch sehr gut - nur das da irgendwas überlagert wird. Und nein, kein anderer Adapter schreibt in diese Variable.
Sorry, für die Verwirrung, natürlich ist es ein PI.
Ich sende euch gleich einen Debug. (Wird schwierig, da ich gerade keinen Überschuss produziere) - aber man sieht am ersten aufgenommenen GIF ja, wie der Stellwert (Dimmer - Ladegerät in %) springt. Das er mal schnell steigt, kann ja mal sein, aber man sieht, das dort irgendwie 2 Werte drin sind. Einmal der richtige Wert - und irgendwas, was nicht gelöscht wird.
Ein Debug atm sieht so aus - aber er regelt ja jetzt auch nix.
javascript.0 17:01:18.969 info script.js.PID: Bezug:602.88W, p:-20.096%, i:-10.068096%, Output:19.835904 javascript.0 17:01:20.960 info script.js.PID: Bezug:592.69W, p:-19.756333333333334%, i:-19.911689083333336%, Output:10.33197758333333 javascript.0 17:01:22.960 info script.js.PID: Bezug:599.5W, p:-19.983333333333334%, i:-29.903355750000003%, Output:0.11331091666666282 javascript.0 17:01:24.967 info script.js.PID: Bezug:605.75W, p:-20.191666666666666%, i:-29.903355750000003%, Output:0 javascript.0 17:01:26.959 info script.js.PID: Bezug:599.03W, p:-19.967666666666666%, i:-29.903355750000003%, Output:0 javascript.0 17:01:28.958 info script.js.PID: Bezug:599.14W, p:-19.971333333333334%, i:-29.903355750000003%, Output:0 javascript.0 17:01:30.955 info script.js.PID: Bezug:597.95W, p:-19.93166666666667%, i:-29.903355750000003%, Output:0 javascript.0 17:01:32.954 info script.js.PID: Bezug:596.56W, p:-19.88533333333333%, i:-29.903355750000003%, Output:0 javascript.0 17:01:34.924 info script.js.PID: Bezug:607.37W, p:-20.245666666666665%, i:-29.903355750000003%, Output:0 javascript.0 17:01:37.942 info script.js.PID: Bezug:592.42W, p:-19.74733333333333%, i:-29.903355750000003%, Output:0 javascript.0 17:01:38.953 info script.js.PID: Bezug:596.78W, p:-19.892666666666667%, i:-29.903355750000003%, Output:0 javascript.0 17:01:40.953 info script.js.PID: Bezug:595.22W, p:-19.840666666666667%, i:-29.903355750000003%, Output:0
Hier mal, wenn ich den PI "umdrehe". also anstatt -100 habe ich mal auf 100 gestellt. Er spring wieder brutal.
javascript.0 17:07:07.258 info Start JavaScript script.js.PID (Blockly) javascript.0 17:07:07.261 info script.js.PID: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 17:07:09.071 info script.js.PID: Bezug:734.37W, p:24.479%, i:12.31905675%, Output:86.79805675 javascript.0 17:07:11.063 info script.js.PID: Bezug:731.67W, p:24.389%, i:24.46477875%, Output:98.85377875 javascript.0 17:07:13.062 info script.js.PID: Bezug:721.68W, p:24.055999999999997%, i:24.46477875%, Output:100 javascript.0 17:07:15.061 info script.js.PID: Bezug:924.39W, p:30.813%, i:24.46477875%, Output:100 javascript.0 17:07:17.070 info script.js.PID: Bezug:1212.5W, p:40.416666666666664%, i:24.46477875%, Output:100 javascript.0 17:07:19.065 info script.js.PID: Bezug:1209.46W, p:40.315333333333335%, i:24.46477875%, Output:100 javascript.0 17:07:20.974 info Stopping script script.js.PID
Man sieht aber auch, das einige Werte anders aussehen, obwohl er nicht regelt. "p" hat mal mehr Nachkommastellen, mal nicht.
javascript.0 17:11:13.758 info Start JavaScript script.js.PID (Blockly) javascript.0 17:11:13.760 info script.js.PID: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 17:11:15.137 info script.js.PID: Bezug:715.96 W, p:-23.865333333333336 %, i:-12.016195333333334 %, Output:14.11847133333333 javascript.0 17:11:17.126 info script.js.PID: Bezug:715.53 W, p:-23.851 %, i:-23.876105083333336 %, Output:2.272894916666665 javascript.0 17:11:19.171 info script.js.PID: Bezug:706.51 W, p:-23.550333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:21.127 info script.js.PID: Bezug:706.82 W, p:-23.56066666666667 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:23.130 info script.js.PID: Bezug:723.13 W, p:-24.104333333333333 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:25.132 info script.js.PID: Bezug:734.86 W, p:-24.495333333333335 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:27.129 info script.js.PID: Bezug:705.18 W, p:-23.505999999999997 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:29.146 info script.js.PID: Bezug:699.43 W, p:-23.31433333333333 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:31.134 info script.js.PID: Bezug:670.96 W, p:-22.365333333333336 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:33.271 info script.js.PID: Bezug:666.57 W, p:-22.219 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:35.134 info script.js.PID: Bezug:666.46 W, p:-22.215333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:37.160 info script.js.PID: Bezug:671.75 W, p:-22.391666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:39.207 info script.js.PID: Bezug:622.61 W, p:-20.753666666666668 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:41.151 info script.js.PID: Bezug:704.9 W, p:-23.496666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:43.305 info script.js.PID: Bezug:699.36 W, p:-23.312 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:45.157 info script.js.PID: Bezug:695.66 W, p:-23.188666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:47.205 info script.js.PID: Bezug:680.47 W, p:-22.682333333333332 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:49.242 info script.js.PID: Bezug:695.27 W, p:-23.175666666666665 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:51.149 info script.js.PID: Bezug:688.67 W, p:-22.955666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:53.153 info script.js.PID: Bezug:686.35 W, p:-22.878333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:55.145 info script.js.PID: Bezug:696.13 W, p:-23.204333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:57.154 info script.js.PID: Bezug:654.18 W, p:-21.805999999999997 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:59.143 info script.js.PID: Bezug:692.86 W, p:-23.095333333333333 %, i:-23.876105083333336 %, Output:0 javascript.0 17:12:00.882 info Stopping script script.js.PID
Ein richtiges Debug kann ich erst wieder morgen früh machen, wenn er auch richtig regeln kann.
-
Hier mal, wenn ich den PI "umdrehe". also anstatt -100 habe ich mal auf 100 gestellt. Er spring wieder brutal.
Das überrascht dich?
Man sieht aber auch, das einige Werte anders aussehen, obwohl er nicht regelt. "p" hat mal mehr Nachkommastellen, mal nicht.
Na dass die Nachkommastellen variieren ist ja wohl kein Problem. Ergänze die fehlenden Stellen einfach mal mit Nullen - trailing Nullen werden halt nicht angezeigt.
Werte mal dein Log aus, rechne manuell nach und eruiere welcher Wert sich da anders verhält als du erwartest.
Wenn du mit js-Adapter den Javascript Adapter meinst - ja der kann hier mitspielen. Nur das der js-controlelr hier einen nennenswerten Einfluss hat (ausgenommen dein Skript ist empfindlich auf verändertes Timing) bezweifle ich nach wie vor.
Das ist noch ioffen:
Bitte nenn mal die Version des javascript Adapters und die Version von node die du im Einsatz hast.
-
@mcm1957
Nein, das überrascht mich nicht. Aber wir reden aneinander vorbei.Das Script hat vor dem Update von JS-Controller und Scriptausführung mit Node.js: v18.20.4 sehr gut funktioniert. Erst NACHDEM JS-Controller und Scriptausführung geupdatet wurden, funktioniert es nicht mehr, wie es soll. Da brauch ich nichts nachrechnen, ob es stimmen könnte. Es hatte bis vor dem Update gestimmt.
Node.js: v18.20.4 und Scriptausführung: 8.7.6 SInd die fehlenden Infos, die du noch haben wolltest.
Guck dir doch mal das GIF an:
Bei "Leistung Haus" siehst du den Wert, der bei Überschuss auf NULL geregelt werden soll. Bei "Dimmer Ladegerät" siehst du den Wert, der das macht. Das ist meine Steuergröße für ein Ladegerät.
Dieser Wert sollte (und ist vorher) - jeh nach Höhe des Überschusses, durchaus auch mal sprunghaft - auf einen Wert gestiegen.
NACH dem Update, sieht man es 2 Werte sind, welche da irgendwie ne Rolle spielen. Man sieht am Zeiger, das einmal der Output Wert angezeigt wird - und einmal ein anderer Wert - scheinbar.Er könnte / sollte ja so regeln: 0% - 10% - 20% usw
Was er aber macht ist: 0% - 10%(30% Sprung) - wieder 10% - 40% Sprung.
Sieht man doch eindeutig auf dem Bild, das es so nicht richtig ist. Und DAS hat er vor den Updates nicht gemacht - und es stört massiv meine Akkuladung ^^
-
@fellpower sagte: Man sieht aber auch, das einige Werte anders aussehen, obwohl er nicht regelt.
Schau mal die Berechnung von
output
an. Da passt was nicht. In diesen Zeilen passt die Berechnung mit "output = 50 + p + i":javascript.0 17:11:15.137 info script.js.PID: Bezug:715.96 W, p:-23.865333333333336 %, i:-12.016195333333334 %, Output:14.11847133333333 javascript.0 17:11:17.126 info script.js.PID: Bezug:715.53 W, p:-23.851 %, i:-23.876105083333336 %, Output:2.272894916666665
In dieser und weiteren Zeilen müsste
output
> 0 sein:javascript.0 17:11:39.207 info script.js.PID: Bezug:622.61 W, p:-20.753666666666668 %, i:-23.876105083333336 %, Output:0
EDIT: Das kommt wahrscheinlich von dieser Oder-Verknüpfung:
Was soll sie bewirken?