Programierung eines PI-Reglers

viech

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und guten Tag!
Ich wäre sehr froh wenn mier jemand bestäigen könnte ob ich so einen PI-
Regler Richtig programiert habe.
Ich habe zur Programierung des P-Anteils Yp=Kp*e,und zur Programierubg des integralanteils Yi=(Kp*Ta/Tn)+Yi-1 ,Stellgrösse=Y=Yp+Yi
Kp=Proportionalfaktor
e=sollwert-Istwert=Regeldifferenz
Ta=Abtastzeit des reglers
Tn=Vorhaltezeit
Y-1=Integral der vorherigen berechnung

ich habe den Regler als FB programiert und um die abtastzeit konstant zu halten rufe ich in im OB35 der SPS alle sekunde auf.Natürlich begrenze ich die Stellgrösse auf 0.0 und auf 1.0 habe den Regler auch mit SPS Visu einigermassen simuliert da ich aber nicht gerade sehr viel verstehe von reglungstechnik wäre ich für jeden Tip dankbar.
Danke schon im voraus
 
Ich denke man sollte generell aufpassen dass der yi-Anteil nicht grösser wird als 1.0 - yp sonst hängt der Regler zu lange in der "Sättigung".

Aber:
Yi=(Kp*Ta/Tn)+Yi-1
schaut nicht richtig aus, weil es müsste

Yi=(e*Kp*Ta/Tn)+Yi-1
sein.
Die "Integrationsgeschwindigkeit" ist eine Funktion der Regelabweichung.

Die Siemensregler arbeiten so:

y= Kp * e ( 1 + 1/TN.s)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry

Habe vergessen in der formel die Regeldifferenz einzugeben da hast du recht.Ich habe diese formel aus dem Handbuch der S7-200serie.Das kleine s in deiner Formel isr die Abtastzeit oder was bedeutet es?
Das Der integral nicht zu gross wird habe ich eine begrenzung programiert sobald die Regeldifferenz wieder negativ wird Schreibe ich im den Wert 1.0
in Y-1 so Startet er gleich von der maximalen Stellgrösse abwärts und integriert wider nach unten.Das könnte schon funktionieren oder?
Danke Sehr für deine Antwort!!!
 
Ich habe diese formel aus dem Handbuch der S7-200serie.Das kleine s in deiner Formel isr die Abtastzeit oder was bedeutet es?

würde ich sagen so was ähnliches, Dein TA/TN schaut schon richtig aus.....


Das Der integral nicht zu gross wird habe ich eine begrenzung programiert sobald die Regeldifferenz wieder negativ wird Schreibe ich im den Wert 1.0
in Y-1 so Startet er gleich von der maximalen Stellgrösse abwärts und integriert wider nach unten.Das könnte schon funktionieren oder?
Danke Sehr für deine Antwort!!!

Ja, das schaut gut aus.... warum nimmst Du keinen Standardregler, ist das eine Schulaufgabe?
 
OH mein Gott.
Ich hoffe ich bin hier nicht der einzige der keinen Dunst von diesen Formeln hat und den PI-Regler nur nach Gefühl einstellt.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke nochmals-und eine kleine frage noch

Ja ich bin schon längere Zeit am erlernen des SPS programierens. Heuer habe ich mier dann die software von MHJ gekauft und würde gerne eine
Regelung für Heizkreise programieren.Der Standard regler hat so viele Parameter da war ich ein bisschen überfordert.
Noch eine kleine frage den Istwert habe ich mit der Funktion FC105 normiert.Mier ist dann aufgefallen das der Regler trotz gleichen Ist- und Sollwert in der Statusanzeig trotzdem langsam die stellgrösse immer nach oben trieb.Ich habe dann in der Statusanzeige von Real auf int format umgeschaltet dann ist mier aufgefallen das die werte in Real gleich waren und in int waren sie verschieden.Ich habe dann den Sollwert auch über die FC105 gehen lassen dann waren sie gleich.Gibt es da einen Tip um das anders zu lösen
 
Ja ich bin schon längere Zeit am erlernen des SPS programierens. Heuer habe ich mier dann die software von MHJ gekauft und würde gerne eine
Regelung für Heizkreise programieren.Der Standard regler hat so viele Parameter da war ich ein bisschen überfordert.
Noch eine kleine frage den Istwert habe ich mit der Funktion FC105 normiert.Mier ist dann aufgefallen das der Regler trotz gleichen Ist- und Sollwert in der Statusanzeig trotzdem langsam die stellgrösse immer nach oben trieb.Ich habe dann in der Statusanzeige von Real auf int format umgeschaltet dann ist mier aufgefallen das die werte in Real gleich waren und in int waren sie verschieden.Ich habe dann den Sollwert auch über die FC105 gehen lassen dann waren sie gleich.Gibt es da einen Tip um das anders zu lösen
schick mir mal den regler, ich schau mir das verhalten an....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Programm regler

Guten Tag!

Hier habe ich als Anhang das Programm einmal als S7 Datei einmal als Winsps Datei!
Wenn es dier nichts ausmacht wäre ich froh wenn du es dier eimal anschauen würdest.
Recht vielen Dank nochmal!
 

Anhänge

  • regler Pi s7.ZIP
    19,5 KB · Aufrufe: 40
  • regler pi win sps.ZIP
    32,5 KB · Aufrufe: 33
Ohne Prüfung Deines Programmcodes, lediglich des Reglerverhaltens:
für mich OK.... die XW- Abweichung stimmt.

Durchaus einsetzbar würde ich sagen....
ein bissel schnell kommt es mir vor aber vielleicht Einbildung
 
Zuviel Werbung?
-> Hier kostenlos registrieren
bei der ganzen reglerdiskussion solltet ihr die theorie nicht ganz ausser acht lassen.
ein pid regler ist ein mathematisch simples teil, jedoch kann er stabile sowie total instabile zustände einnehmen. ein pid regler (auch alle anderen regler) regeln nur dann vernünftig wenn sie an dioe regelstrecke angepasst sind.

im handbuch von oscat findet ihr diagramme wie sich die reglerparameter auf das verhalten auswirken.

noch ein tipp zur dimensionierung von reglern: schaut auf die wickipedia englisch, die deutsch ist hier unbrauchbar. dort findet ihr wichtige details zur poarametrisierung und dimensionierung von reglern
 
Danke nochmal

Recht herzlichen Dank für eure Hielfe!
Ich habe geschaut und in der formel von siemens multiplizieren sie den Integral anteil und den differenzial anteil auch mit Kp:
Y=Kp*(Sw-IW)+Kp*Ta/Tn*(Sw-IW)+YI-1
vieleicht ist das der grund fürs schnelle verhalten.Habe probiert den Integral ohne verstaärkung zu programieren .Funktioniert aber besser mit.
Danke nochmals für euren guten Rat!
 
Normierung inside

den Istwert habe ich mit der Funktion FC105 normiert.
Hallo,
der Reglerbaustein bringt bereits Normierungsfunktionen mit. Oft reicht es aus, mit CRP_IN den Istwert und/oder mit PV_NORM den Ausgang anzupassen.
Ausserdem:
GAIN auf "1" ergibt eigentlich keinen Regler sondern sowas wie einen MOVE oder (mit I-Anteil) eine freilaufende Rampe.
 
Zuletzt bearbeitet:
Zurück
Oben