PID Regler parametrieren

ralfsps

Level-1
Beiträge
38
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Kollegen,
ich habe ein Problem mit der Einstellungen eines PI Reglers zu Gasdurchflussregelung.

Daten:

Steuerung:
S7-315 + CONT_C (als Regelbaustein)


Regelventil :
Leistung: 0.78 KW
Eigenschaft: Es braucht ca 30 s um zu schließen / aufzumachen (vom Anfang zu Ende)
Strecke:
Gasleitung: 100% entspricht 340 m3/h

Um den Regler zu parametrieren habe ich bissel gegogelt.
da stand:
1. Einstellung des Reglers als reinen P-Regler: Ki = 0 und Kd = 0
Das habe ich auch gemacht
2. Die Reglerverstärkung Kp wird solange vergrößert, bis sich der geschlossene Regelkreis an der Stabilitätsgrenze befindet und Dauerschwingungen ausführt.
Von welchem Wert soll man anfangen? (habe von 0.01 angefangen )
Was heißt stabilitätgrenze? Ist das wenn der Istwert schwingt (Sieh bitte die Anlage)?
3. Der dabei eingestellte Wert Kp wird als Kpkrit bezeichnet.
4. Die Periodendauer der sich einstellenden Dauerschwingung Tkrit wird gemessen.
5. Faustformel anwenden (Zieglers Formel für PI Regler):
KP=0.45 Kpkrit , TI=0.85* Tkrit

Ich habe leider nur Dauerschwingungen (Istwert) und ich komme in keinster Weise zu einem vernünftigen Ergebnis. Kann jemand weiter helfen?

Danke im voraus

Ralf
 

Anhänge

  • Reglerkurve.doc
    44,5 KB · Aufrufe: 154
Dein Problem ist, dass das Stellorgan langsam ist.
Bei der Kurve wäre y zwecks Analyse auch nicht schlecht.

Bist Du sicher, dass die Werte richtig normiert sind?
Für mich schaut das fast so aus.
Wie sieht die Reglerbeschaltung aus?

Dreh mal das TI ab und versuche einen bestmöglichen P-Regler zu machen.
Wenn Du den hast kannst Du eine Nachstellzeit, geschätzt mal mit so 1,5min ausprobieren und mit dem Kp etwas runtergehen.

lG
Karl


edit: ach ja: und stimmt das Aufrufintervall mit dem am Regler überein?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
1. Einstellung des Reglers als reinen P-Regler: Ki = 0 und Kd = 0
Das habe ich auch gemacht
GUT!
2. Die Reglerverstärkung Kp wird solange vergrößert, bis sich der geschlossene Regelkreis an der Stabilitätsgrenze befindet und Dauerschwingungen ausführt.
Von welchem Wert soll man anfangen? (habe von 0.01 angefangen )
Was heißt stabilitätgrenze? Ist das wenn der Istwert schwingt (Sieh bitte die Anlage)?
Ja, der will dass Du eine STATIONÄRE Dauerschwingung hast (mit konstanter Amplitude)- das in der Anlage ist ein PI-Regler und kein P-Regler!
3. Der dabei eingestellte Wert Kp wird als Kpkrit bezeichnet.
4. Die Periodendauer der sich einstellenden Dauerschwingung Tkrit wird gemessen.
5. Faustformel anwenden (Zieglers Formel für PI Regler):
KP=0.45 Kpkrit , TI=0.85* Tkrit

Ich habe leider nur Dauerschwingungen (Istwert) und ich komme in keinster Weise zu einem vernünftigen Ergebnis. Kann jemand weiter helfen?

Das wird schon!

lG
Karl
 
Hallo Ralf,

aufgrund des dargestellten Kurvenverlaufes incl. Parameter würde ich zu folgenden Einstellungen tendieren:

P = 0.2
TI = 25..30s
TD = 0s


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
..2. Die Reglerverstärkung Kp wird solange vergrößert, bis sich der geschlossene Regelkreis an der Stabilitätsgrenze befindet und Dauerschwingungen ausführt.
Von welchem Wert soll man anfangen?..
Wenn er schwingt, verringere die Verstärkung bis das Schwingen aufhört. Anderenfalls erhöhe die Verstärkung bis es dauerhaft schwingt. Dabei den Regler immer wieder durch Sollwertsprünge anstoßen.

..Was heißt stabilitätgrenze? Ist das wenn der Istwert schwingt..
Genauer gesagt, wenn er durch erhöhen der Verstärkung den Punkt erreicht hat, wo er nach einem Sollwertsprung dauerhaft zu schwingen beginnt. Wird die Amplitude von Periode zu Periode kleiner, so wird er allmählich stabil.


Gruß, Onkel
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Ferrari unter den Reglern? Nein! Wenn man bedenkt dass bei der Berechnung des I-Anteils der Faktor TA/TI (Abtastzeit/Integrationszeit) eine Rolle spielt, dann sollte einem was auffallen.

Der CONT_C begrenzt aber den I-Anteil bausteinintern auf CYCLE / 2.

Also wenn man an TI 0ms parametriert und an CYCLE 100 ms stehen, wird intern der I-Anteil mit 50ms berechnet.
 
..Also wenn man an TI 0ms parametriert und an CYCLE 100 ms stehen, wird intern der I-Anteil mit 50ms berechnet.
Wirklich? Ich hatte jahrelang den FB41/42 eingesetzt. Das hätte mir aufffallen müssen. Heute verwende ich einen eigenen PID-Regler, bei dem eine integrationszeit von "0" abgefangen wird. Eigentlich war ich der Meinug dass es bei den Siemens-Reglern auch so war. Sicher bin ich mir nicht, da ich damals eigene Bausteine hatte, die die Siemens-Regler "bedienten".
 
Wirklich? Ich hatte jahrelang den FB41/42 eingesetzt. Das hätte mir aufffallen müssen. Heute verwende ich einen eigenen PID-Regler, bei dem eine integrationszeit von "0" abgefangen wird. Eigentlich war ich der Meinug dass es bei den Siemens-Reglern auch so war. Sicher bin ich mir nicht, da ich damals eigene Bausteine hatte, die die Siemens-Regler "bedienten".

Also zumindest die Version 1.5 aus der Standard-Bibliothek die ich mal unter die Lupe genommen habe macht das so (hab mir mal die Mühe gemacht, dern AWL-Code in SCL zurückzuübersetzen, und da komm fast der gleiche AWL-Code raus...fast, weil der SCL-Compiler von Siemens besser zu optimieren scheint).

Aber da steht dann sowas:
Code:
    IF (rTi < (rCycle * 0.5)) THEN
        rTi := rCycle * 0.5;
    END_IF;

Intern wird alles in Real-Zahlen mit Sekunden gerechnet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen,

das mit der 0.5 * SampleTime wusste ich bis jetzt auch nicht. Ich hatte aber eben die Erfahrung gemacht, dass TI = 0 den I-Anteil nicht abschaltet, sondern der Regler sich so verhält, wie wenn ich einen sehr kleinen Wert gegen 0 eingebe.

Ich halte es deshalb in meinen Programmen so, dass ich den Wert von TI auf 0 vergleiche und den Ausgang des Vergleichers mit I_SEL verschalte. Gleiches für TD und D_SEL.
 
Zuletzt bearbeitet:
Moin,

alles klar, ich hatte das in meinem "Bedienbaustein" abgefangen.

Code:
//+++ I_SEL
      L     #P.HMI.PID.TI
      L     0
      <>I   
      =     #P.HMI.PID.I_SEL            // I_SEL an HMI
      =      [AR2,P#0.4]                // I_SEL an Regler
 
Zurück
Oben