- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 16

Thema: Verständnisprobleme mit Regler und Kaskadenregler

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2004
    Beiträge
    19
    Mit Waschmaschine und Autoaufladung wird das Problem noch diffuser und komplizierter. Man könnte es eher mit einer Einspeiseleistung ins Verbundnetz vergleichen. Also besser keine Vergleiche. Habe daher erst mal eine Skizze zur besseren Ordnung der Gedanken gemacht. Die Subsysteme Erzeuger->Akku->Verbraucher sind gegeben und funktionieren auch bestimmungsgemäß. Offensichtlich sind sie aber Teil meiner Regelstrecke, haben jeweils einen oder mehrere Regler selbst drin. Ich habe den Laderegler MPPT und den Batterie Monitor BMS eingezeichnet, weil ich vermute, von denen einige Signale für meine Regelung abgreifen zu müssen.

    Momentan wird die Fahrleistung rein manuell vorgegeben. Da ist es in der Früh sehr gefährlich mit dem Teil zu fahren. Der Akku SOC ist sowieso niedrig. Sobald eine Wolke aufzieht welche die Erzeugung beeinträchtigt muß man reagieren und anhalten weil sonst das Risiko einer Unterspannungsabschaltung vom Akku kommt. Das kommt leider regelmässig vor, weshalb ich durch Wegnehmen der Fahrleistung automatisch anhalten oder zumindest rechtzeitig bremsen möchte. Bei Unterspannungsalarm bzw. Abschaltung dauert es ziemlich lange bis das System überhaupt wieder kommunizieren kann und sich zurückmeldet. Das ist die Hysterese vom BMS, aber es ist alles schwarzstartfähig für autonomen Betrieb. Akkus sind schwer und teuer, weshalb massive Reserven keine Alternative zu einer fast vollständigen Entladung sind. Bei Sonnenaufgang soll ja möglichst früh losgefahren werden um tagsüber maximal viel abspeichern zu können.

    Eines meiner Verständnisprobleme ist aktuell vermutlich, daß es im Schema sozusagen Hauptstromkreise und Hilfsstromkreise gibt was ich irgendwo sträflich vermische. Den Hauptstromkreis habe ich deshalb mal als Punktlinie gezeichnet. Es ist das DC Lastkabel welches den Laderegler, die Batterie und den Motor-Wechselrichter als Verbraucher miteinander verbindet. Hierauf findet ja eine vorzeichenrichtige Addition der Ströme statt, welche ich für den Regler wahrscheinlich in irgend einer Weise nachbilden müsste?

    Laderegler und BMS sind über CAN Schnittstellen lesbar. Den DC Versorgungsstrom vom WR sehe ich nicht direkt, könnte ihn aber mit PV Leistung plus Akku Leistung ausrechnen. Ausserdem ist er grundsätzlich gleich der vorgegebenen Fahrleistung zzgl. WR Wirkungsgrad weil der WR ja intern auch einen Stromregler hat von welchem ich annehme daß er perfekt ausregelt. Die Fragezeichen im Schema sind an der Stelle, wo ich die Addition von PV Leistung und Akku Leistung vermutlich nachbilden muß um auf die Ausgangsgröße der Fahrleistung zu kommen.

    Oder noch mal anders: Ein Regler gleicht durch seine Arbeit die Störgröße aus. Diese ist bei mir die PV Erzeugung (?). Nachdem diese als Messwert aber bekannt ist, könnte ich diese als Fahrleistung auch direkt hinzurechnen anstelle sie in einer Regelschleife aus Sicht des Akkus wegzuregeln? Ein Regler ist natürlich trotzdem passend weil sich der WR Wirkungsgrad u.v.m. ja mit der Temperatur verändert bzw. andere Ungenauigkeiten weggeregelt werden können.

    Edit: Es ist wohl einfach eine ziemlich unverschämt unübersichtliche Regelstrecke, bestehend aus mehreren weiteren Reglern einschliesslich ihrer Regelstrecken welche die Sicht auf das Wesentliche vernebeln. Aber egal wie die Regelstrecke auch aussieht und welche Störgrößen wo eingreifen, probiere ich das jetzt einfach aus die Batterieleistung (Vorzeichen in beiden Richtungen) durch Verstellen der Fahrleistung (Vorzeichen nur in der Verbrauchsrichtung) konstant einzustellen.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Screenshot from 2025-07-06 15-20-54.jpg  
    Geändert von Janvi (06.07.2025 um 22:08 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2004
    Beiträge
    19
    Also, der innere DC Regler funktioniert. Es gibt Arbeitspunkte für einen reinen P Regler wo der Fehler im Vorzeichen hin und herschwingt. Bei größeren Leistungen ist das Schwingen vom Nullpunkt weiter weg. Also habe ich noch einen I Anteil hinzugefügt. Das regelt schon mal lustig hin und her und ich kann mit Kp und Ki rumspielen.

    Ein Problem dabei hat sich schon rausgestellt. Die Stromaufnahme des WR folgt der Vorgabe in verschiedenen Fahrsituationen unterschiedlich schnell. D.h. die Regelstrecke hat keine konstanten Eigenschaften. Das ist aber wohl eher eine klassische Optimierungsaufgabe aus der Regelungstechnik.

    Hier ist mein Javascript für NodeRed, abgeschrieben hier aus dem Regler Wiki. Für C und Assembler Programmierer etwas gewöhnungsbedürftig. Soll und Istwert werden in globalen Variablen übergeben. Zum Zugriff braucht man dann die Methoden flow.get und flow.set. Das msg Objekt wird in einer Rückkopplungsschleife mit einer Zykluszeit von derzeit 1 sek wieder hinten eingespeist bzw. msg.out vorne als Stellgröße an den Wechselrichter ausgekoppelt.

    Code:
    //flow.sv = Setpoint Value, Sollwert ist gewuenschter SOC Batterie Ladezustand
    //flow.pv = Process Value, Ist wert ist der aktuelle SOC Batterie Ladezustand
    
    const Kp = 0.5;                                    // proportional parameter
    const Ki = 0.1;                                       // integraion parameter
    const Kd = 0;                                       // differential parameter
    
    let error = (flow.get("pv2") - flow.get("sv2"));    // difference between setpoint value and process value
    msg.errsum += error;                                // integral difference
    
    msg.out =   (Kp * error)+ (Ki * msg.errsum);
    
    // + Kd * (error - msg.errold); // PID Regulator
    
    msg.errold = error;                             // save Error for next cycle
    msg.out = Math.round(msg.out)*-1 ;              // negative Einspeisung, positive Akkulast
    
    if (msg.out < -33000) msg.out = -33000;         // top saturation
    if (msg.out >   -333) msg.out =   -333;         // bottom saturation
    
    return msg;
    Edit: Die Kommentare im Code sind natürlich noch falsch bzw. stammen von einer älteren Version wo ich ohne Kaskade probiert habe. Soll und Istwert sind nicht der SOC sondern die Batterie-Leistungen.
    Geändert von Janvi (07.07.2025 um 08:06 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    907
    Bei Sonnenaufgang soll ja möglichst früh losgefahren werden um tagsüber maximal viel abspeichern zu können.
    Hmmm,
    dazu müsstest Du dann aber auch wissen, was wann an Ladeleistung im Tagesverlauf zur Verfügung stehen wird.

    Weist Du das, wenn Du um 9:00 Uhr noch 20% SOC hast und zum Sonnenuntergang 30% Reserve haben willst?
    Hast Du eine Wetter-Api?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2004
    Beiträge
    19
    Die Wettervorhersage ist zur Einspeisung später möglich und auch vorgesehen. Erst mal sollte aber der Regler vernünftig funktionieren weil es sonst keinen Sinn macht die Parameter aufgrund von Wetterdaten zu optimieren. Mit Kp=0,5 und Ki=0,1 geht es schon ganz ordentlich bei Überschwingern <5%. Unabhängig von der Stromerzeugung kann ich den Akku jetzt gezielt mit einer bestimmten Leistung laden oder entladen. Laden geht natürlich nur wenn die Erzeugung größer als der Mindestverbrauch im Standby ist.

    Typischerweise ist 9 Uhr die Zeit, wo die Produktion der Solarzelle den möglichen Verbrauch übersteigt, bzw. dann der Ladebetrieb des Akkus anfängt. Das hängt natürlich stark von den Jahreszeiten und vom Wetter ab. Aber genau diesen Punkt möchte ich wegen der Unsicherheiten regelungstechnisch treffen. D.h. der Regler fängt bei Sonnenaufgang an zu arbeiten, geht dann irgendwann in die Sättigung. Umgekehrt könnte er auch bis Sonnenuntergang mit anderen Parametern regeln. Dort ist der SOC aber recht hoch und muß nicht so genau zum Zeitpunkt des Sonnenuntergangs getroffen werden. Dazu gibt es ja dann die voraussichtlichen Nachtstunden dividiert durch Akkubestand. Auch das braucht nur in etwa getroffen zu werden.

    Aber die minimal mögliche Akkufüllung soll genau zu dem Zeitpunkt erreicht werden, wo die Produktion den möglichen Verbrauch übersteigt. Das geht natürlich nur mit einem automatischen Regler irgenwie sinnvoll zu machen. Beim Fahren von Hand macht man da viel zu viel Fehler und es ist nervig solange davorzusitzen und den passenden Zeitpunkt dann doch zu verpassen.

    Es ist eine Freude zwischenzeitlich zuzschauen wie die Messwerte und Zeiger in der Visualisierung zappeln. Durch hohe Fahrleistung wird der Ladestand nach Sonnenaufgang bzw. heute rasch wechselnde Bewölkung auch noch nach 9 Uhr mit konstanter Entladung automatisch niedrig gehalten. Die raschen Wolkenzüge sind mitunter schneller als mein Regler mit 1 sek Zykluszeit. Vielleicht mach ich das noch etwas schneller. Jetzt nur noch den äusseren Regler der Kaskade damit der Ladezustand nicht doch wieder mal versehentlich zu niedrig wird.
    Geändert von Janvi (07.07.2025 um 09:28 Uhr)

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2004
    Beiträge
    19
    Nachdem ich dem Regler jetzt eine Zeit lang zugeschaut habe, wird in obenstendem Code (aus dem Wiki hier abgeschrieben) ein Problem klar: Der Regler läuft lange Zeit am "Anschlag". Deshalb habe ich eine Begrenzung des Ausgangssignals von -333 auf -33000 eingstellt was sinnvollen Vorgabewerten für den Fahrmotor entspricht.

    Befindet sich der Regler länger in der Sättigung, so nimme die Fehlersumme für den I -Anteil errsum = errsum+error mitunter riesige Werte an die viel größer sind als der Ausgangsbereich des Reglers. NodeRed arbeitet hier mit langen Integers praktisch ohne Begrenzung. Bei einer Vorzeichenumkehr des Fehlers nimmt die Fehlersumme zwar wieder ab, aber das kann viel zu lange dauern. Macht es deshalb Sinn, errsum ähnlich dem Ausgangssignal zu begrenzen? Falls ja auf das wievielfache des Ausgangswertes?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    907
    Macht es deshalb Sinn, errsum ähnlich dem Ausgangssignal zu begrenzen?
    Ja, macht Sinn. Im analogen Original ist der I-Anteil ein Tiefpass und kann damit nicht gegen Unendlich verschwinden.

    Probier mal mit 4*maximalen Fehler. Und pass dabei auch die kI-Konstante an.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2004
    Beiträge
    19
    Danke, die Begrenzung hat sich bereits bewährt und macht deutlichen Sinn. Gestern war ein absolut chaotisch bewölkter Tag wo es potentiell wirklich viel auszuregeln gab. Mit Robotern ist es wie an der Börse: Hin und Her macht Akku (Konto) leer. Hier die Ertragskurve, deren Leistung mit einer Nullregelung praktisch 1:1 an den Fahrmotor weitergegeben werden könnte um so auch mit einen minimal kleinen Akku bauen zu können. Neben der Energieerzeugung werde ich demnächst noch eine Visualisierung der Kurven bateln wo man sieht wie gut oder schlecht das ausgeregelt wird. Die Regelstrecke ist leider auch langsamer als erwartet. Erstmalig habe ich jetzt sogar die Rekuperation der Massen beobachtet.

    Klicke auf die Grafik für eine größere Ansicht

Name:	Screenshot from 2025-07-09 10-17-19.png
Hits:	7
Größe:	11,6 KB
ID:	36077

    Hier mal die aktuellen Kurven der Ausregelungen.
    AC Chart ist der Wechselrichter mit der Fahrleistung, also praktisch die Regelstrecke. Achse /100, also von 100 bis 160 Watt. Wegen Verbrauch Zuwachsnach unten negativ. Dunkelblau: Vorgabe der Fahrleistung, hellblau tatsächlich gefahrene Leistung.
    DC Chart ist der PID Regler für die DC Batterieleistung. Steht hier auf einem Sollwert von 0 und hält den Akku damit "schadfrei". Es wird also weder geladen noch entladen. Gelb ist die Leistung vom PV Modul, hier etwa zwischen 100 und 200 Watt.
    Um 18:24 reist die Wolkendecke auf. Es steht Leistung zur Verfügung um schneller fahren zu können. Das spiegelt sich gleichzeitig im AC Chart wieder dessen Solwert der Ausgang des DC Regler ist. DC_Ist und BatP beide grün sind gleich (Legende falsch). Es ist die Ladeleistung der Batterie. Beim Ansteigen der zur Verfügung stehenden Leistung muß die Batterie zunächs mal einen kleinen Teil der Energie zwischenpuffern, weil der Fahrantrieb nicht so schnell reagiert. Danach ist der Batteriestrom wieder auf Null ausgeregelt. Leider schiebt sich sogleich eine weitere Wolke vor die Sonne, so daß die Leistung wieder sinkt. Um sachte Abbremsen zu können, liefert der Akku jetzt etwas gepufferte Energie. Insgesamt ist die neue Wolke nicht so dunkel, bzw. am Rand des Wolkenfelds weshalb die Stromproduktion und damit auch die Fahrleistung kontinuierlich weiter ansteigt.

    Den SOC Regler hatte ich heute früh auch bereits am Laufen. Als reiner P-Regler reicht das völlig aus. Der Sollwert für die Akkuleistung ist der Ausgang des SOC Reglers (äussere Regelschleife. Bei erreichtem SOC Wert gibt es eine Nullregelung der Akkuleistung wie oben gezeigt. Die Zykluszeit beider Regler habe ich auf 5 Sekunden hoch gesetzt. Reicht völlig aus weil ein Prozentpunkt SOC auch bei maximaler Fahrleistung mindestens 10 Minuten ausmachen. Damit ist es heute früh problemlos gelungen, mit leerem Akku bei 5% SOC eine längere Strecke zu fahren. Direkt vom Solarmodul versorgt ohne die sonst permanente Gefahr einer Abschaltung wegen Unterspannung zu riskieren.

    Klicke auf die Grafik für eine größere Ansicht

Name:	Screenshot from 2025-07-12 18-28-11.png
Hits:	3
Größe:	59,9 KB
ID:	36079

    Klicke auf die Grafik für eine größere Ansicht

Name:	Screenshot from 2025-07-12 18-27-57.png
Hits:	4
Größe:	53,1 KB
ID:	36078
    Geändert von Janvi (Gestern um 17:49 Uhr)

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 13.05.2013, 12:47
  2. I2C Verständnisprobleme
    Von Ezalo im Forum Robby RP6
    Antworten: 24
    Letzter Beitrag: 01.05.2011, 17:06
  3. Verständnisprobleme -> Drehmomentrechner
    Von selan im Forum Motoren
    Antworten: 9
    Letzter Beitrag: 13.11.2006, 14:25
  4. Syntax - Verständnisprobleme
    Von R2D3212 im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 05.07.2006, 01:41
  5. Serielle Verständnisprobleme
    Von steffenvogel im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 09.04.2006, 13:23

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress