EBSILON®Professional Online Dokumentation
In diesem Thema
    Bauteil 130: PID-Regler (mit Anti-Windup)
    In diesem Thema

    Bauteil 130: PID-Regler (mit Anti-Windup)


    Vorgaben

    Leitungsanschlüsse

    1

    Eingangssignal

    2

    PID-Ausgang

    3

    Sollwert

    4

    Regeleingang für KP (als M), TN oder KI (als H) und TV oder KD (als P)

    Allgemeines       Vorgabewerte       Ergebniswerte       Kennlinien       Verwendete Physik       Bauteilform       Beispiel

     

    Allgemeines

    Die Aufgabe dieses Reglers (Bauteil 130) ist es, bei instationären Vorgängen eine Regeldifferenz (z.B. verursacht durch das Übertragungsverhalten eines transienten Bauteils) auszugleichen. Er kann nicht als Daten-Regler wie z.B. Bauteil 12 eingesetzt werden! Mit Hilfe einer Korrekturgröße  wird ein zeitlich variabler Istwert verändert, solange bis dieser den vorgegebenen Sollwert erreicht hat. Es handelt sich um einen Regelalgorithmus und nicht um das Errechnen eines Zielwertes mit Hilfe der Variation einer Eingangsgröße!

    Bei diesem Reglertyp ist die allgemeine Differentialgleichung für das Übertragungsverhalten von PID-Reglern hinterlegt:

    Gl. 1-1

    Sie liefert das Ausgangssignal y(t) mit den Parametern:

    Der integrale Anteil des Ausgangssignals y(t) ist aus der Historie der Eingangssignale zugänglich. Der Integrator wird durch Summation der vorangegangenen Eingangswerte e(t) realisiert. Die differentiellen Zeitschritte dt werden durch die Intervalle der Abtastzeit Dt ersetzt, welche im EBSILON-Zeitreihendialog abgelegt sind.

    Mit dieser Diskretisierung erhält Gl.1-1 folgendes Aussehen für den k-ten Zeitschritt:

    Gl. 1-2

    Bei der Verwendung dieses Reglers muss analog zu den Datenreglern der Typ der Korrekturgröße und der Typ des Istwerts angegeben werden. Die Korrekturgröße muss eine Basisgröße (Druck, Enthalpie oder Durchsatz) sein. Der Istwert kann auch eine abgeleitete Größe, nämlich Temperatur oder Wärmestrom, sein.

    Für die Korrekturgröße, bzw. das Reglerausgangssignal muss ein interner Startwert vorgegeben werden.

     

    Globale Initialisierung von transienten Bauteilen

    Alle transienten Bauteile, die über den Schalter FINIT verfügen, können über einen globalen Schalter gemeinsam gesteuert werden. Dazu wurde der Schalter FINIT um die
    Stellung GLOBAL:0 erweitert.
    Wird er auf diesen Wert gesetzt, so übergibt man die Steuerung der transienten Simulation an die globale Variable „Instationärer Modus“, welche unter

    Extras \Modell-Einstellungen\Simulation\Kombobox "Instationärer Modus"

    zu finden ist.

    Diese gibt dann den gewünschten Modus (Erster Durchlauf oder Folgedurchlauf) an die Bauteile weiter. Mit Hilfe des Ausdrucks “@calcoptions.sim.transientmode“ kann dieser
    vom Zeitreihendialog aus gesteuert werden.

    Optionale Logikleitung (Anschluss 4)

    Beim PID-Regler gibt es eine zusätzliche, optional zuschaltbare Logikleitung (Port 4), mit deren Hilfe die Reglerparameter (Kp, KI und KD) extern gesetzt werden können.
    Die Datenübernahme in das Modell findet hier bei jedem Iterationsschritt statt. Verbunden damit ist auch ein weiterer Schalter FPARAMIN zur Auswahl der Quelle der Parameter. 

     

    Vorgabewert FOUTUS: Vorgabe des Ausgangssignals

    Normalerweise ist der Ist-Wert der Zielgröße vor der Simulation unbekannt und er wird im Laufe der Iteration erst ermittelt. Andererseits hängt das Ausgangssignal des Reglers (PIN 2)
    vom Ist-Wert bzw. von seiner Differenz zur Führungsgröße ab. Dies kann zu Konvergenzproblemen führen. Um dieses Problem zu entschärfen wurde der Vorgabewert FOUTUS im Bauteil 130 eingeführt.

    Die Einstellung FOUTUS = 0 ist die Standardeinstellung. Es wird empfohlen, nur dann die Einstellung FOUTUS = 1 zu verwenden, wenn die Konvergenz mit anderen Mitteln nicht zu erreichen ist.


    Vorgabewerte

     FINIT

     Anfangszustand

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =0:  Global, die Steuerung erfolgt über die globale Variable "Instationärer Modus" unter Modell-Einstellungen:
            " Extras" -> "Modelleinstellungen" -> "Simulation" -> "Instationär" -> Kombobox "Instationärer Modus"
            (siehe dazu --> Allgemeines--> Globale Initialisierung von transienten Bauteilen)

     =1:  Erster Durchlauf/Initialisierung (TCOUNT := 1)
     =2:  Folgedurchlauf/Zeitreihe

     FTYPE

     Schalter für Spezifikation der Reglerparameter

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =0: Vorgabe Proportionalbeiwert und Zeitkonstanten           Vorgabe von Kp, Tn und Tv
     =1: Koeffizienten vorgeben                                                    Vorgabe von Kp, Ki, Kd

     FSPIN

     Quelle Sollwertvorgabe/Eingangssignal

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =0:  intern gegebener Wert
     =1:  extern über Anschluss 3
     =2:  Eingangssignal nur von Anschluss 1

     FPARAMIN

     Quelle der Regelparameter

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =0:  intern gegeben
     =1:  von außen über Anschluss 4 gegeben                  

     FSPTYPE

     Schalter für Typ der Reglerparameter  (Soll-und Istwert)

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck 

     =1: Druck
     =2: Temperatur
     =3: Enthalpie
     =4: Massenstrom
     =5: Leistung / Wärmestrom

     FPIDOUT

     Schalter für Typ der Stellgröße

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =1: Druck
     =3: Enthalpie
     =4: Massenstrom

     SETPOINT

     Interne Sollwertvorgabe

     KP

     Proportionaler Verstärkungsfaktor

     <0: Negative Reglercharakteristik

     >0: Positive Reglercharakteristik

     KI

     Integraler Verstärkungsfaktor, abhängig von FTYPE, nicht aktiv, wenn FTYPE = 0

     KD

     Differentieller Verstärkungsfaktor, abhängig von FTYPE, nicht aktiv, wenn FTYPE = 0

     TN

     Nachstellzeit, abhängig von FTYPE, nicht aktiv wenn FTYPE = 1

     TV

     Vorhaltezeit, abhängig von FTYPE, nicht aktiv, wenn FTYPE = 1

     YINI

     Startwert

     FPIDMODE

     Schalter für PID-Gleichung

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =1: Differenzengleichung
     =2: Stellungs-/Positionsalgorithmus

     FINTEGRAL

     Schalter Integrationsmethode

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =1: Rückwärtsintegration
     =2: Vorwärtsintegration
     =3: Trapez-Integration

     FYLIMIT

     Schalter für Reglerbegrenzung

     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =0: keine Begrenzung
     =1: Sättigungsrückkopplung
     =2: Integration beenden
     =3: Begrenzen des Integrators

     YMIN

     Minimalwert für die Ausgabegröße

     YMAX

     Maximalwert für die Ausgabegröße

     TPRE

     Index des vorheriger Zeitschritt (wenn auf 0 gesetzt, erfolgt komplette Initialisierung)

     TIMEINT

     Integrationszeit gesamt

     FOUTUS

     Verwendung Korrekturwert (siehe dazu unter "Allgemeines")
     Wie im Elternprofil (Unterprofil nur optional)

     Ausdruck

     =0: aus aktuellem Zeitschritt( höchste Genauigkeit)
     =1: aus vorherigem Zeitschritt (höchste Konvergenzgeschwindigkeit)

     CFLAG

     Indikator Integrator
     Anzeigewert für Integrator-Begrenzung (Clamping), keine Eingangsgröße, aktiv für FYLIMIT =3.  Wenn Anzeigewert (CFLAG)=1, dann wird damit angezeigt, dass Clamping  im letzten Zeitschritt aktiv war .  

     


      

    Ergebniswerte

    RKP

    Berechneter proportional Anteil

    RKI

    Berechneter integral Anteil

    RKD

    Berechneter differentieller Anteil

    RTN

    Berechnete Nachstellzeit 

    RTV

    Berechnete Vorhaltezeit

    RPROP

    Aktueller proportionaler Anteil des Ausgangssignals

    RINT

    Aktueller integraler Anteil des Ausgangssignals

    RDIFF

    Aktueller differentieller Anteil des Ausgangssignals

    RTCURR

    Index des aktuell berechneten Zeitschrittes

    RTIMETOT

    Gesamtzeit am Ende der Berechnung

    RCFLAG

    Status der Integratorspannung


    Kennlinien

    Diese Kennlinien stellen hier keine Zusammenhänge zur Charakterisierung des Bauteils her, sie dienen
    vielmehr der Verknüpfung , bzw. der Speicherung der im Regler verwendeten Signale. I.d.R werden
    keine Werte gesetzt, deren Übernahme erfolgt aus dem Zeitreihendialog.

    CCONTROLIN - Historie der Eingangssignale an Leitung 1

    Diese Kennlinie speichert den Verlauf der Reglereingangssignale an Leitung 1.

    x-Wert: Zeitschritte, kumulativ in [s] beginnend mit dem Dt vom ersten Zeitschritt zum zweiten

    y-Wert: Wert der Eingangssignale

    COUTPUT       - Historie der Ausgangssignale an Leitung 2

    Diese Kennlinie speichert den Verlauf der Reglerausgangssignale an Leitung 2.

    x-Wert: Zeitschritte, kumulativ in [s] beginnend mit dem Dt vom ersten Zeitschritt zum zweiten

    y-Wert: Wert der Ausgangssignale

    CINTEGRATOR - Historie der Integralanteile am Ausgangssignal

    Diese Kennlinie speichert den Verlauf der Integratorwerte für den I-Anteil am Reglerausgangssignal.

    x-Wert: Zeitschritte, kumulativ in [s] beginnend mit dem Dt vom ersten Zeitschritt zum zweiten

    y-Wert: Wert des Integrators

    CSETPOINT     - Historie der Sollwerte (Leitung 3 oder intern)

    Diese Kennlinie speichert den Verlauf der Wertes der Sollwerte.

    x-Wert: Zeitschritte, kumulativ in [s] beginnend mit dem Dt vom ersten Zeitschritt zum zweiten

    y-Wert: Wert des Sollwertes

     

    Ergebniskurven

    RACONTROLIN  - Historie der Eingangssignale an Leitung 1

    RAOUTPUT        - Historie der Ausgangssignale an Leitung 2

    RAINTEGRATOR - Historie der Integralanteile am Ausgangssignal

    RASETPOINT      - Historie der Sollwerte (Leitung 3 oder intern)

    Alle Ergebniskurven korrelieren mit den entsprechenden Kennlinien, sie zeigen die Werte am Ende des Zeitschrittes.


    Verwendete Physik

    Gleichungen 

     Es stehen grundsätzlich je nach Erfordernis zwei Algorithmen zur numerischen Abbildung der Reglergleichung Gl. 1-2 zur Verfügung:

    • PID-Differenzengleichung
    • Stellungs-/Geschwindigkeitsalgorithmus

     Differenzengleichung

     

      

     

     Stellungsalgorithmus

     

               
     y(k)     = y(k-1) + b0*e(k)+b1*e(k-1)+b2*e(k-2)

     mit b0 = KP + KI*DT+KD/DT

           b1 = -KP-2KD/DT

           b2 = KD/DT
            

     

     Zusammenhänge der Eingangsparameter (auf Basis des idealen PID-Reglers)

     


     KI  = KP/TN, bzw TN = KP/KI

     KD = KP*TV, bzw. TV=KD/KP
                     

     

    Kontrollmöglichkeiten für Reglerausgang (Anti Windup)

    Bei allen realen Reglern existiert eine Limitierung der Stellgröße, d.h. sowohl am unteren als auch oberen Ende des Ausgabe-Wertebereichs gibt es einen Grenzwert, der physikalisch nicht überschritten werden kann. Bei bleibender Regelabweichung kann ein Regler mit I-Anteil zu Problemen führen, wenn die Integration nicht kontrolliert wird (Windup-Effekte), d.h. der Integrator nimmt Werte an, die erst nach sehr langer Zeit wieder abgebaut werden können.

     Zur Kontrolle des Ausgangssignals, bzw. des Integrators können verschiedene Begrenzungsmethoden eingesetzt werden.

    Saturation Feedback  (FYLIMIT = 1)

    y(k)    <=  ymax && y(k) >= ymin 

    y(k)    = ymax, bzw. ymin

    y(k-1) = (ylim - KP*e(k) - KD/DT*(e(k) -e(k-1)))/KI*DT
              

     

    Bei dieser Methode wird das Ausgangssignal mit einem Grenzwert verglichen. Ist dieser über- oder unterschritten, so wird der Grenzwert auch den Reglerausgang gelegt und der Integralanteil wird um einen entsprechenden Differenzwert zurückgesetzt. Der Integrator bleibt aktiv, kann aber nicht zur Überschreitung des Wertebereichs führen.

     Stop Integration (FYLIMIT = 2)

     


     y(k)    <=  ymax && y(k) >= ymin 

     y(k)    = ymax, bzw. ymin

     y(k-1) = const. (y(k-2))

     

    Hier wird der Wert des Integrators selbst begrenzt.

     Clamp Integration (FYLIMIT = 3)

     


     y(k)    <=  ymax && y(k) >= ymin 

     Se(i)  = ymax, bzw. ymin

     

    Integrationsmethoden

    Für die Berechnung der Summenterme in der Reglergleichung stehen folgende Möglichkeiten zur Verfügung:

     Vorwärts

     

     Se(i) = e(k)

     

     Rückwärts

     

     Se(i) = e(k-1)      

     

     Trapez

     

      Se(i) = 1/2*(e(k)+e(k-1))               

     

     Variablenverknüpfungstabelle

    Gl. Nr.

     

    Leitung

       

    1

    2

    3

    1

    V1

    X  

    (X)

    1

    V2

     

    X

     

    V1 = (P oder T oder H oder M oder Q)
    V2 = (P oder H oder M)

     


     

    Bauteilform

    Form 1


    Beispiel

    Klicken Sie hier >> Bauteil 130 Demo << um ein Beispiel zu laden.

    Siehe auch