-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Verständin PI-Regler (Software) Überlauf?!?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.09.2005
    Ort
    Dachau
    Alter
    33
    Beiträge
    210

    Verständin PI-Regler (Software) Überlauf?!?

    Anzeige

    Hallo,
    kann mir jemand helfen den PI-Regler zu verstehen.
    Hier in Roboternetz steht der Code:

    esum = esum + e
    y = Kp * e + Ki * Ta * esum

    was ich nicht verstehe wenn ich die Regelabweichung e ständig integriere, läuft die nicht irgendwann über?
    Muss die nicht irgendwann gelöscht werden?

    Danke
    http://amiwerewolf.am.funpic.de
    Lieber ne Schwester im Puff als nen Bruder mit nem Opel!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    hoi,
    normalerweise wird deine regalabweichung ja immer kleiner bzw hat dann ein anderes vorzeichen, damit sich das wieder ausgleicht.
    es gibt aber vesrcheiden möglichhkeiten ein vergessen einzubauen, komplettes lösche würde ich lassen.
    vergessen ist möglich durch z.b. esum=0,9*esum+e der faktor vor deinem esum sollte halt dann deiner abtastzeit und der schnelligkeit deiner strecke angepasst werden.
    außerdem sollte unbedingt ein anti-wind-up eingebaut werden, wenn die stellgröße die beschränkung errreicht.
    mfg jeffrey

    edit: erste sätze korrigeiert, da ist wohl was in der reihenfolge durcheinader geraten.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Ich hab in diesem Thread http://www.roboternetz.de/phpBB2/viewtopic.php?t=42102 mal meinen PID Regler (mit Anti Windup) vorgestellt. Gibt aber auch schon eine neuere Version die weniger Float Variablen verwendet. Das ganze funktioniert eigentlich sehr gut!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Das Integral über die Regelabweichung würde nur "überlaufen", wenn der Regler nicht in der Lage ist, sie zu Null auszugleichen. Das ist ja gerade sein Job. Damit sie Null wird, wenn sie positiv ist, steuert er das Stellglied derart, dass sie zunächst negativ wird. Das ist dann ein Überschwinger, bzw. eigentlich eher ein "Unterschwinger", aber egal... Nach ein paar solcher Schwinger (die nur schlecht bzw. falsch eingestellten Reglern sichtbar werden), wird sie schließlich 0, sofern sich der Sollwert nicht wieder ändert.
    Löschen ist natürlich falsch, weil der Regler ja dann nicht richtig einschwingen kann.
    Gruß

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    30.01.2005
    Ort
    Tokyo
    Alter
    59
    Beiträge
    242
    Hallo,
    praktischerweise begrenzt man esum aber doch. Alleine schon einmal, um den Zahlenbereich einzugrenzen. Sonst kann es unerklärliche Effelkte geben, wenn man mal die Regelparameter falsch gewählt hat oder das System aus anderen Gründen nicht (so schnell) einschwingt.
    So sieht das bei mir aus:
    schnipp
    Code:
          // I Anteil begrenzen
          eSum += e;
          if (eSum > 50000) eSum = 50000;
          if (eSum < -50000) eSum = -50000;
    schnapp
    Gruß
    pctoaster

  6. #6
    Ich würde den Integralteil auf jeden Fall vor einem Überlauf schützten..

    Ich hab mal einen DC-Motor geregelt, wenn man den länger festgehalten hat ist er plötzlich in die andere Richtung gelaufen weil der I-Teil übergelaufen ist....

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Natürlich muss man in der Praxis vor Überläufen schützen, aber hier geht es doch um das Verständnis. Bei einem theoretischen Regler oder wenn der Regler normal arbeitet und keine Extremfälle eintreten oder Defekte oder sonstwas und der Regler richtig eingestellt ist usw, dann läuft der I-Anteil nicht über, aus beschriebenen Gründen
    Gruß

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.09.2005
    Ort
    Dachau
    Alter
    33
    Beiträge
    210
    ok ich hab jetzt
    bei P bei I und beim D regler vor überläufen gesichert.
    -P Regler: weil e * kp auch überlaufen kann
    -I Regler: durch die Integrale
    -D über den verstärkungsfaktor kd überlaufen kann

    der D-Regler flattert bei mir so ziemlich
    ich steuere eine Heizung an die einen Alublock erwärmt.
    das dauert hald mal seine 10 bis 20 sekunden.
    daher passiert es das ich von einem sample zum anderen keine messabweichung gibt. also e-ealt = 0
    oder durch äußere einflüsse, luftzug, ....
    ergibt sich ein negatives ergebniss, und im nächsten sample wieder positiv.
    ist das normal, oder soll ich den p-regler nur jedes 10.... sample anwenden?
    alle anderen regler steuern richtig!

    danke Amiwerewolf

  9. #9
    Bei einer Heizungssteuerung würde ich keinen D-Anteil verwenden, da das ganze ziemlich träge ist. Also versuch einfach mal den D-Anteil auf 0 zu setzen.

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    hallo,
    Zitat Zitat von MrLeeh
    Bei einer Heizungssteuerung würde ich keinen D-Anteil verwenden, da das ganze ziemlich träge ist. Also versuch einfach mal den D-Anteil auf 0 zu setzen.
    das würde ich so pauschal nicht sagen. ich verwende bei meiner heizungsregelung einen pd-regler. gerade weil das system so träge ist, wird damit wird dann das überschwingen verhindert. allerdings muss man dazusagen, dass bei mir die heizung nur an und aus geschaltet werden kann.
    ich verwwende für den d-anteil, deswegen aber noch einen filter. das würde ich an deiner stelle mal versuchen.
    mfg jeffrey

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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