PID Baustein

2009-01-30
2009-02-01
  • guynougouapi - 2009-01-30

    Hallo,

    hat jemand schon der gefertigte PID baustein von CodeSys? Falls ja wie gehts?

    LG

     
  • hugo - 2009-01-30

    Einen PID Controller findest du in der open source library von OSCAT

    oscat ist open source und kann lizenzfrei verwendet werden

    w www.oscat.de w

     
  • guynougouapi - 2009-01-31

    Hallo,

    Hast du schon diesen Baustein für eine konkrete Anwendung verwendet?

    mfg

    Guy

     
  • gravieren - 2009-01-31

    HI

    Hast du schon diesen Baustein für

    eine konkrete Anwendung verwendet?

    Mehrere Regler u.a. für Wasserregelung, Klimaanlage kühlen, Industrieheizung (Hallenbeheizung über FU-Regler).

    Keine Probleme

     
  • guynougouapi - 2009-01-31

    Hallo,

    Wie bist du auf die Reglerparameter gekommen?

    Momentan hab ich für meine Regelungsaufgabe der PID Baustein von Codesys benutze. Er hat in vorwärtsrichtung gearbeitet aber nicht rückwärtsrichtung.

    Ich hab momentan willkürliche paramter eingesetzt (KP=1, TN=0.1). Ich mache eine Kraftregelung über den DRuck als Stellgrösse. In Vorwärtsrichtung wird den Druck nach oben gebracht bis die regeldiff=0.

    Regeldiff= Kraft_Soll-Kraft_Ist.

    Aber wenn ich den Sollwert der Kraft verringere, verändert der Regler seine Stellgrösse (Stellgrösse) nicht.

    Warum kann der Baustein nicht der Druck zurückstellen?

    mfg

    Guy

     
  • gravieren - 2009-01-31

    Hi

    Momentan hab ich für meine Regelungsaufgabe

    der PID Baustein von Codesys benutze.

    Er hat in vorwärtsrichtung gearbeitet aber nicht rückwärtsrichtung.

    Hatte ich auf mal verwendet.

    Dieser funktioniert.

    Auch hier keine Probleme.

    Es fehlet jedoch z.b. das Anti-Winds-up des I-Anteil

    und sonst noch eingige Sachen.

    D.h. wenn der Regler einige minuten oder länger auf "anschlag" läuft

    addiert sich der I-Anteil ziemlich hoch.

    Dieser I-Anteil muss jedoch wieder erst abgebaut werden, bis eine aktuelle Stellsignaländerung auswirkt.

    Möglicherweise ist das dein Problem.

    Wie bist du auf die Reglerparameter gekommen?

    Es gibt verschiedene Möglichkeiten.

    Z.b. Einstellregeln von "Ziegler und Nichols"

    Mal danach Googlen oder auf :

    w www.magnia.de w --> Hauptmenue --> Linksammlung --> Hochschulen ...

    Ich hab momentan willkürliche paramter eingesetzt (KP=1, TN=0.1).

    Ich mache eine Kraftregelung über den DRuck als Stellgrösse.

    In Vorwärtsrichtung wird den Druck nach

    oben gebracht bis die regeldiff=0.

    Regeldiff= Kraft_Soll-Kraft_Ist.

    Aber wenn ich den Sollwert der Kraft verringere, verändert der Regler >seine Stellgrösse (Stellgrösse) nicht.

    Siehe oben.

    I-Anteil hochintegriert ?

    Warum kann der Baustein nicht der Druck zurückstellen?

    ?

    Mach doch mal einen Test mit der WebVisu.

    Solldruck und Istdruck als Variablen, die du jederzeit ändern kannst.

    Regelt nun der Ausgang noch oben und unten ?

    Soll 50 Ist 10 --> Ausgang grösser

    Soll 50 Ist 60 --> Ausgang wird kleiner

    Wichtig, einen Bausteinreset solltest du NICHT vergessen (Initialisierung)

     
  • guynougouapi - 2009-01-31

    Es fehlet jedoch z.b. das Anti-Winds-up des I-Anteil

    und sonst noch eingige Sachen.

    Wie kann ich das Anti-Wind-up programmieren und einbauen?

    Wie bist du auf die Reglerparameter gekommen?

    ich habe vor später meine Parameter über eine Sprungantwort zu bestimmen

    I-Anteil hochintegriert ?

    Das weiss ich nicht, wie kann ich es überprüfen. Das Anti-Winds-up hab ich nur aus der theorie gelernt. Wie ich es in der Realität einsetze weiss ich nicht wie es geht. Vielleicht kannt du mir bitte dabei helfen und werde ich mal probieren.

    Mach doch mal einen Test mit der WebVisu.

    Solldruck und Istdruck als Variablen, die du jederzeit ändern kannst.

    Bin noch nicht so gut in CodeSys dass ich eine WebVisu herstellen kann. Kann es nicht auch durch eine normale Visualisierung gehen? Das programm w¨rde ich auch gerne zu hause testen, aber weiss es nicht wie es ohne Hardware gehen kann. Hast du ein Tipp dazu?

    Wichtig, einen Bausteinreset solltest du NICHT vergessen (Initialisierung)

    Wann soll ich den Reset machen? Momentan ist mein reseteingang permanent auf false. Hab mir gedacht dass wenn ich reset mache wird es nicht so gut für den regler sein.

    Bild meiner realen Strecke

    Strecke.rar [110.41 KiB]

     
  • gravieren - 2009-01-31

    Es fehlet jedoch z.b. das Anti-Winds-up des I-Anteil

    und sonst noch eingige Sachen.

    Wie kann ich das Anti-Wind-up programmieren und einbauen?

    Willst du das RAd neu erfinden ?

    Wenn du z.b. einen Anti-Winds-Up benötigst, solltest du geeignete Biliotheken deines Steuerungshersteller verwenden.

    Diese sind teilweise NICHT kostenlos und HARDWAREABHÄNGIG.

    D.h. Wechselst du den Hersteller musst du einen "Neuen PID-Regler" des jeweils aktuellen Hestellers verwenden.

    Zudem kannst du den Code nicht einsehen/verändern.

    ODER du benutzt die OSCAT-LIB unter w www.oscat.de w kostenlos, Quelltextoffen.

    Wenn du Zeit und Lust hast kannst du bei der Weiterentwicklung dieser umfangreichen freien Bibliothek mithelfen.

    Wie bist du auf die Reglerparameter gekommen?

    ich habe vor später meine Parameter über eine

    Sprungantwort zu bestimmen.

    O.K.

    I-Anteil hochintegriert ?

    Das weiss ich nicht, wie kann ich es überprüfen.

    Lag dein Stellwert länger auf 100% ?

    Falls ja, ist er "hochintegriert" (Beim CoDeSys PID-Regler)

    Wenn du nie auf "Regler-Anschlag" fährst, funktioniert der CoDeSys-Regler gut.

    Das Anti-Winds-up hab ich nur aus der theorie gelernt.

    Wie ich es in der Realität einsetze weiss ich nicht wie es geht.

    Vielleicht kannt du mir bitte dabei helfen und werde ich mal probieren.

    Nim einen der geeigneten/gewollten PID-Regler, dann brauchste dir keine Gedanken mehr zu machen.

    Mach doch mal einen Test mit der WebVisu.

    Solldruck und Istdruck als Variablen, die du jederzeit ändern kannst.

    Bin noch nicht so gut in CodeSys dass ich eine WebVisu herstellen kann.

    Welche Hardware hast du. (Conrollertyp)

    Ein Example für eine einfache Visu findest du hier: (Wago 750-841)

    http://www.magnia.de/index.php?option=c ... &Itemid=53

    Kann es nicht auch durch eine normale Visualisierung gehen?

    Auch, ist aber mehr Arbeit

    Das programm würde ich auch gerne zu hause testen

    Geht.

    Aber weiss es nicht wie es ohne Hardware gehen kann.

    Hast du ein Tipp dazu?

    Lade dir die Kostenlose CoDeSys hier auf der 3S-Homepage runter.

    Einbinden der OSCAT-LIB.

    Anwahl Simulation.

    Testen.

    FERTIG

    Wichtig, einen Bausteinreset solltest du NICHT vergessen

    (Initialisierung)

    Wann soll ich den Reset machen?

    Beim 1 durchlauf deines Programmes.

    Oder als Test mit einem VISU-Button.

    Momentan ist mein reseteingang permanent auf false.

    D.h. du bist der Meinung, die haben einen "unnützen" Eingang programiert

    Hab mir gedacht dass wenn ich reset mache

    wird es nicht so gut für den regler sein.

    Keine Angst, der Regler geht NICHT kaputt.

     
  • guynougouapi - 2009-01-31

    Hallo,

    was verstehst du hier unter Anschlag? Meinst du Y_MAX? Falls ja, hat mein aktueller Regler niemals Y_MAX erreicht weil mein Sollkraft nicht so hoch dass Y_MAX erreicht wurde.

    Oder meinst du der Wert bei dem der Reglerausgang sich stabilisiert hat, wenn mein gewünschter Sollkraft erreicht wurde? Falls du es meinst, ja war hat er den Wert länger behalten. Wie kann ich jetzt die Hochintegration des Reglers abbauen damit der regler auch rückwärts (der Istwert der kraft, d.h indirekt die stellgrösse bei mir Druck) arbeiten kann.

    Ich habe Druckreglerventile (mit der roten Marke Rexroth siehe Bild der Strecke) als Hardware, die 1 intern regler haben, um den gewünschten Sollwert des Drucks einzustellen.

    Der Ausgang des reglers von CodeSys stellt den gewünschten Sollwert des Drucks für den internen Regler des Ventils, so dass der Druck langsam erhöht wird.

    mfg

    Guy

    Strecke.rar [437.31 KiB]

     
  • gravieren - 2009-02-01

    Hast du dir die Software runtergeladen ?

    Mache dir doch mal den WEBVISU-Aufbau.

    Somit kannst du alle Werte beobachten und auch testen.

    "Regler auf Anschlag" --> längere Zeit "mehr" als 100% Stellwert.

    I-Anteil integriert sich hoch.

    Den Inhalt der Variablen kannst du dir "anschauen".

    Du solltest unbedingt eine Webvisu erstellen, so dass du das verhalten deines Regler erkennen kannst.

    Welche Hardware/Comntroller verwendest du.

    Welchen PID-Regler willst du verwenden ?

     
  • guynougouapi - 2009-02-01

    Hallo,

    hab schon die software runtergeladen, und eine webvisu gemacht.

    In der Realität als Hardware habe ich Busklemmen der Firma Wago 750-333.

    Anbei ist ein mit einem PID Baustein. Aber ich weiss nicht wie ich das Program zu Hause richtig testen kann, so dass ich das Reglerverhalten beurteilen kann.

    Ich möchte gerne den PID regler der CodeSys Bibliotheke verwendet.

    Vielleicht kann jemand mein Programm verbessern so dass einigermasse die Realität mehr oder weniger simulieren kann. Mein problem ist haupsächlich die Anwendung des PID_Baustein. Der Baustein möchte ich gerne zuerst heute testen und schauen wie er sich verhält, bevor ich wieder in meiner realen Anwendung einsetzen kann.

    mfg

    guy

    RegTest.rar [255.88 KiB]

     
  • gravieren - 2009-02-01

    Hi

    In der Realität als Hardware habe ich

    Busklemmen der Firma Wago 750-333.

    Ist ein Interface und KEIN Controller.

    Hast du eine Soft-SPS ?

     
  • gravieren - 2009-02-01

    Hi

    Hab dir mal kurz das Example umgebaut.

    Verändere mal die Werte in der Variable:

    Regler_Soll_Wert und Regler_Ist_Wert.

    Sollwert > Istwert Stellwert wird grösser

    Sollwert < Istwert Stellwert wird kleiner

    Nur mal so zum Rumspielen.

    RegTest_01.pro [42.92 KiB]

     
  • guynougouapi - 2009-02-01

    hi ,

    ich habe eine Soft-SPS. Ich werde mal mit dem Beispiel rumspielen;

    mfg

    guy

     
  • guynougouapi - 2009-02-01

    hi,

    anbei ist das programm dass ich in der realität einsetze. Im Schritt "F_Ist_Auf_Kraft_bei_Start_Bringen" ist mein Regler dort eingebaut.

    Ich hab mit dem programm rumgespielt und er reagiert richtig.

    Bloss wie gesagt in der Realität bei mir er geht nicht mit der Stellgrösse runter obwohl er nicht den Anschlag erreicht hat.

    Als näschte würde ich gerne ein realer Regelkreis simulieren und das Gleiche verhalten wie bei dem Beispiel sehen. Ich weiss es dass möglich zu simulieren aber tipp dazu würde ich gerne haben.

    Wie gesagt eine soft-sps habe ich, wie soll ich vorgehen?

    mfg

    guy

    Ohne_Kraft_Ohne_Adaptation_11_01_09_Ferdinand_bon.rar [286.26 KiB]

     
  • gravieren - 2009-02-01

    Hi

    anbei ist das programm dass ich in der realität einsetze.

    Woher kommt bei "Steuerung_zwei" die Inputvariable F_ist und F_Soll ?

    Grundsätzlich:

    Ein PID-Regler sollte Permanent aufgerufen werden.

    Den kompletten ablauf kann ist NICHT einordnen.

    Wie sieht das Zeitdiagramm aus.

    Soll der Regler im 150 ms Takt ausregeln können/müssen ?

    Wie lange hat er Zeit, die Stellgrösse auszuregeln/zu ermitteln.

     
  • gravieren - 2009-02-01

    F_Ist_Suche(ACTUAL:=F_Ist, SET_POINT:=F_Soll,

    KP:=1, TN:=0, TV:=0, Y_MANUAL:=0,

    Y_OFFSET:=0, Y_MIN:=1500, >Y_MAX:=4000, MANUAL:=FALSE, RESET:=FALSE, );

    Dein Stellwert bewegt sich zwischen 1500 und 4000 ist das O.K ?

    F_soll und F_ist werden NICHT als VAR_INPUT übergeben.

    Die Werte sind beide 0 ?

     

Log in to post a comment.