MMC_basic – Einzelarm

Ein einzelner MMC-Arm (MMCMultiCell, N=6 Halbbrueckenzellen, p_cellType="HB") in Reihe mit einer Arminduktivitaet an einer Spannungsquelle mit DC- und AC-Anteil (5000 V DC, 3000 V Amplitude bei 50 Hz). Die Parameter aller Elemente koennen geaendert werden. Dazu den #-Button an den Elementen druecken. Die Simulation kann fortgesetzt werden durch Druecken auf den „Start"-Button.

Regelungsstruktur: Kaskade aus Energiebalance und Arm-internem Levelregler

Die Regelung ist zweistufig kaskadiert. Der aeussere, langsame Kreis (PI_vCavg) regelt die mittlere Zellspannung vCavg_pu auf 1.0 p.u.; sein Ausgang wird additiv in den Sollstrom eingespeist (p_iRef = 1*sin(2π·50·t) + PI_vCavg.ctrl). Der innere, schnelle Kreis laeuft vollstaendig arm-intern im MMCMultiCell-Block und bildet aus diesem Sollstrom die diskrete Stellgroesse: die Ist-Zellanzahl n_ist – also die Anzahl der Zellen, die aktuell tatsaechlich eingeschaltet (zugeschaltet) sind. Ueberall im Folgenden, wo von n_ist oder n_ff die Rede ist, ist damit konkret eine Zellanzahl gemeint, kein abstrakter Regelparameter.

Innerer Kreis: Schwellwert-/Relaisregler statt PI

Die Stellgroesse n_ist (Ist-Zellanzahl) ist ganzzahlig (0..N) – ein klassischer PI-Regler mit stetigem Stellsignal passt auf eine derart grobkoernige Stellgroesse nicht. Stattdessen vergleicht ein Schwellwertkontroller den Iststrom i_pu direkt mit einer Schwelle iRefStatik: liegt der Strom darueber, wird ein Level zugeschaltet, liegt er darunter, eines abgeschaltet – im Grenzfall ein P-Regler mit Kp → ∞, also ein reiner Relaisregler.

Vorsteuerung (Feedforward)

p_pre liefert die Vorsteuerungs-Zellanzahl n_ff = round(p_pre·N) – die Anzahl Zellen, die laut Vorsteuerung eigentlich eingeschaltet sein sollte, unabhaengig davon, wie viele tatsaechlich (n_ist) gerade eingeschaltet sind. Hier ist p_pre = V1001.emk / (N·vCNom), also die aus der Quellspannung direkt geschaetzte, momentan benoetigte Einfuegespannung, umgerechnet in eine Zellanzahl. Der Schwellwertkontroller muss dadurch nur noch die Regelabweichung zwischen Ist- und Soll-Zellanzahl um n_ff herum ausgleichen (Korrekturband ±p_nCorrMax Zellen), statt die Stellgroesse von Grund auf aufzubauen.

Statik statt Totband: Vermeidung von Relais-Schwingen

Ein Schwellwertvergleich ohne Gegenmassnahme wuerde bei so grobkoerniger Stellgroesse (ein Zellflip aendert die Armspannung um vCNom) chattern: jeder Flip erzeugt sofort einen Fehler in Gegenrichtung, der Regler schaltet permanent. p_kStatik (hier 80e-3) verschiebt die Vergleichsschwelle selbst um kStatik·(n_ist−n_ff) – also proportional zur Differenz aus Ist-Zellanzahl und Soll-Zellanzahl (Vorsteuerung) – analog zur Slope-Compensation bei Peak-Current-Mode-Reglern – und zieht die Ist-Zellanzahl aktiv Richtung Vorsteuerungs-Zellanzahl zurueck, ohne ein nichtlineares Totband einzufuehren. Rueckfuehrgroesse ist bewusst die diskrete Ist-Zellanzahl n_ist, nicht der Strom i selbst oder ein gefilterter Strom (jedes Zeitglied in der Regelstrecke kostet Phase).

Hysterese als zweite Verteidigungslinie

p_iHyst (Default 0.15 p.u.) legt zusaetzlich ein Totband um iRefStatik – fuer Faelle, in denen die Statik allein nicht reicht (z.B. wenn gerade kein alternativer Zellkandidat fuer einen Flip eligibel ist). Ein 21×21-Parameter-Sweep ueber kStatik×iHyst zeigte kStatik=0.05/iHyst=0.15 als Bereich, in dem mittlere Schaltfrequenz und RMS-Regelabweichung gemeinsam nahe ihrem Optimum liegen.

Sperrzeiten: Schaltfrequenzbegrenzung

p_tSperr (hier 30 µs) begrenzt, wie oft der Arm insgesamt schalten darf (Vergleichswert fsArmMax = 1/p_tSperr); p_tSperrCell (hier 400 µs) erzwingt zusaetzlich eine Mindestruhezeit pro Einzelzelle – thermisch begruendet, siehe die fsTh-Plots. Ist gerade keine Zelle eligibel, wird ein faelliger Flip verschoben, statt eine zu frueh wiederverwendete Zelle zu erzwingen.

Zellauswahl (Balancing)

Bei jedem Flip waehlt der Block aus dem eligiblen Zellpool diejenige Zelle, die am besten zur Spannungsbalance beitraegt: bei Richtungswechsel wird zuerst eine Zelle der Gegenpolaritaet in Bypass zurueckgefahren (die hoechste, wenn sie gerade laedt, sonst die niedrigste), danach wird aus dem Bypass-Pool aktiviert (die niedrigste bei Ladevorgang, die hoechste bei Entladevorgang). Dadurch bleiben die Einzelkondensatorspannungen (Plot „Einzelkondensatorspannungen") ohne separaten Balancing-Regler eng beieinander.

Stroeme
Soll-/Iststrom Arm
Spannungen
Einzelkondensatorspannungen
Zellausgangsspannungen
Zellbalance (normiert)
Schaltfrequenzen je Zelle
Schaltfrequenzen je Zelle (thermisch gefiltert, tau=p_tauTh)
Summenschaltfrequenz Arm (Kontrolle p_tSperr)
Zellanzahl: Ist (n_ist) und Vorsteuerung (n_ff)