# Totzeit Systeme Regeln



## Aksels (5 Februar 2010)

Hallo liebe Mitleser,

ich würde gerne wissen wie Ihr Totzeit-behaftete Systeme regelt.

Beispiel: Behälter, der mit Sauerstoff versorgt werden soll. Dieser wird über Gebläse eingebracht.
Wenn man das FU-Gebläse auf 100% laufen lässt, bewegt sich die Sauerstoffsonde erst nach ca. 2 Minuten. Nach 10-15 Minuten ist der Maximalwert erreicht.

Programmiermöglichkeiten, die mir einfallen:

Normaler PID-Regler: schwierig, da unter unterschiedlicher Sauerstoffzehrung das System unterschiedlich elastisch ist und es in bestimmten Zuständen anfangen kann zu schwingen. Ich habe es z.B. mit dem Siemens PID der S5-115U versucht: recht Käse, das Ergebnis.

Eigener Regler: Ich habe in Step5 ein Progrämmchen geschrieben, das die Steigung und die Abweichung überwacht und versucht bei geringer Steigung die Abweichung zu reduzieren. Ein Problem ist die fehlende Genauigkeit durch Integer-Werte. Real wäre schon toll, vielleicht versuche ich es mal mit den FBs für Gleitpunktarithmetik......ansonsten klappt das ganz gut. Könnte aber besser sein.

Eigener Regler: Simulierte Strecke. Ich kenne das Prinzip: ich simuliere die Strecke und kann so vorhersagen, wie sie reagieren wird. Aber wie setze ich das in ein Programm um?
Ich muss eine Formel finden, die bei Eingabe des Regelwertes die Strecke zum Zeitpunkt t ausspuckt. Das bekomme ich in Step5 hin. Aber was mache ich dann damit?
Eine Überlegung war folgende: Ich möchte z.B. 0,5 mg O2 im Wasser haben. Ich frage meine Simulations-Formel, was ich für einen Stellwert brauche. Diesen lege ich dann auf das AW und warte 10 Minuten.
Dann sollte sich der erwartete Sauerstoff einstellen. Den vergleiche ich dann mit meinem Sollwert. Wenn es eine Abweichung gibt, dann ....ja und da stecke ich fest. Dann könnte ich einen I-Anteil aufschalten. Aber dann habe ich ja wieder einen extra Regler. Ab welcher Abweichung frage ich meine simulierende Formel? Irgendwie hab ich da glaube ich einen Denkfehler...kann mir jemand helfen?


Gibt es noch andere Strategien für eine Totzeitbehaftete Strecke?

Gruß,
Aksels


----------



## Thomas_v2.1 (5 Februar 2010)

Hallo,
geht es dir generell um Regelstrecken mit großen Totzeiten, oder wie du schreibst
um eine Sauerstoffregelung in einem Behälter?

Denn eine Sauerstoffregelung ist nicht nur eine Totzeit, was aber stark vom zu belüftenden Medium abhängt.
Was ist denn in deinem hypothetischen Behälter?
Abwasser mit immer unterschiedlicher Zusammensetzung und Sauerstoffzehrung?
Eine andere Flüssigkeit deren Zusammensetzung vorher bekannt ist?

Im Abwasserbereich gibt es (fast) so viele Regelstrategien wie Kläranlagen. Auch weil auf den Anlagen die Zusammensetzung des Abwassers immer verschieden ist.
Da gibt es dann von einfacher Sauerstoffregelung mit PID-Regler, intermittierende Betriebsarten mit
Redoxknickerkennung, Einberechnung der Ammonium- und Nitratwerte und Temperaturen, bis hin zum Fuzzy-Regler der alle Messwerte zusammen verarbeitet die wildesten Varianten.


----------



## Aksels (6 Februar 2010)

*Regler allgemein.*

Hallo Thomas,

Du vermutest richtig. Es handelt sich um eine Kläranlage. Die wollen dann auch Amonium und Nitrat mit beachten. Aber ich bekomme allein den Sauerstoff schon nicht ruhig. Unter Last (große Zehrung) regelt es perfekt, ist die Last klein schwingt sich es manchmal auf.

Gruß,
Axel


----------



## pvbrowser (6 Februar 2010)

Für Totzeit behaftete Strecken schaltet man ein Modell parallel zur Regelstrecke (Smith Predictor). 

Siehe:
http://www.mathworks.com/products/c...roducts/demos/shipping/control/smithdemo.html

Ich habe das mal bei einer Planheitsregelung von Warmbandwalzwerken gemacht. Dabei greift die Stellgröße im letzten aktiven Gerüst. Die Messung erfolgt aber erst im Abstand von ca. 5 Metern nach dem letzten Gerüst. Daher geht dort die Bandgeschwindigkeit als Totzeit mit ein.


----------



## Thomas_v2.1 (6 Februar 2010)

Bei einer Sauerstoffregelung im Abwasser ist allerdings das Problem, dass die Totzeit des Systems vom zufließenden Abwasser abhängig ist. Genauer gesagt von den reduzierenden Substanzen darin.
Es kann sein dass ich einen Sauerstoffwert von 0 mg/l messe, und bei einschalten der Belüftung dieser sofort steigt, oder es eben eine mehr oder weniger lange Zeit dauert bis sich eine Reaktion im Sauerstoffwert zeigt. Wenn zusätzlich eine Redoxmessung vorhanden ist kann man den Zusammenhang in Verlaufskurven sehr schön erkennen.
Wenn man ein Streckenmodell einsetzen will, müsste man aus vorhandenen Messwerten die Zusammensetzung des Abwassers erkennen können.

Bei Anlagen in denen eine separate Nitri-/Denitrifikation stattfindet, also dauerhaft belüftet wird, nehme ich einen einfachen PI-Regler den ich entsprechend träge einstelle. So schnell ändert sich der Abwasserzufluss auch nicht.


----------



## MarkusP210 (7 Februar 2010)

Zur Regelung von Strecken mit grossen Totzeiten im Kläranlagenbereich haben wir früher mit grossem Erfolg Fuzzy-Regler eingesetzt.

Wenn Du aber das Verhalten der Strecke vorhersagen kannst, müsste ein Algorithmus seinen Dienst eigentlich auch tun.

Markus


----------



## Aksels (8 Februar 2010)

*Fuzzy Regler*

Hmmm.... Fuzzy Regler.....

Das wär bestimmt mal lustig das auf der S5 umzusetzen.
Ich schau mal ob ich ein Ablaufdiagramm von einer Programmierung finde. Poste dann mein Ergebnis.

Gruß,
Aksels


----------



## marlob (9 Februar 2010)

Aksels schrieb:


> Hmmm.... Fuzzy Regler.....
> 
> Das wär bestimmt mal lustig das auf der S5 umzusetzen.
> ..


Für die S5 gibt/gab es ein Zusatzprogramm ProFuzzy. 
Damit konnte man auch Fuzzy-Regler auf einer S5 einsetzen


----------



## Tormentor2404 (15 Februar 2010)

Für solche Sachen könnte sich Model predictive Control eignen.... 
Aber dies soll nur ein Stichwort sein vielleicht hilfts ja weiter


----------



## Farinin (26 März 2010)

Hallo, ist auch denkbar die Totzeit über die Cycletime zu eliminieren?


----------



## Aksels (22 November 2010)

*Weiter gehts.*

Hallo liebe Mitleser.
Ich bin nun endlich wieder am Kläranlagen-Regeln.
Ich habe im Step 7 mal versucht, wie Farinin vorgeschlagen hat, den PID Baustein auf 1 Minute aufrufzeit zu setzen (OB35 in HW). Der PID Baustein hat ja einen Input für die Aufrufzeit. Dort habe ich natürlich auch T#1m eingesetzt. Nun bin ich etwas nachdenklich geworden bei den Einstellungen im S7 PID-Control. Dort steht z.B. Integrationszeit 10s.
Wie soll das gehen wenn der Baustein nur alle 1 m aufgerufen wird.
Muss ich hier die Werte umrechnen (also statt 1s 10m einstellen)?
Oder ist das nur eine fragwürdige Beschriftung und soll "Integrationszeit 10 Aufrufe" heissen?

Aksels


----------



## Onkel Dagobert (22 November 2010)

Aksels schrieb:


> ...bei den Einstellungen im S7 PID-Control. Dort steht z.B. Integrationszeit 10s...


Bist du dir sicher dass du auf den DB online zugegriffen hast? Default ist, glaube ich, offline voreingestellt. Das ist für mich die einzige Erklärung für dein Fehlerbild.


----------



## Aksels (24 November 2010)

*Fest in der Maske.*

Nein, nein, das hat nichts mit Online/Offline zu tun. Die Sekunden sind in der Eingabemaske des Siemens "PID Control parametrieren" fest hinterlegt (im grauen Bereich). 
Einfach mal auf Start-> Siematic -> Step 7 ->PID Control parametrieren gehen, dann sieht man's.


Gruß,
Axel


----------



## fdu (8 Oktober 2021)

Hallo zusammen,

hat jemand von euch mal einen Smith Predictor bei einer Niveau / Füllstandsregelung eingesetzt?
Die Aufgabenstellung wäre in einem Silo den Füllstand möglichst konstant zu halten.  Die Materialzufuhr zum Silo ist totzeitbehaftet (mehrere Förderbänder hintereinander).

Ich habe es versucht umzusetzen, stehe aber vor dem Problem, dass die Simulation des Füllstands nie mit der Realität übereinstimmt.
Der simulierte Füllstand läuft entweder immer gegen 0% oder 100%.

Bei google finde ich Artikel die einen Smith Predictor für Regelstrecken ohne Ausgleich (wie ich ja habe) vorstellen. Das wäre ein modifizierter Ansatz wie zum allgemein bekannten. Die Artikel sind für mich jedoch leider nicht verständlich. Um diese zu verstehen und anschließend umzusetzen fehlen mir schlichtweg mathematischen Kenntnisse...

Gruß
fdu


----------



## Maagic7 (4 November 2021)

Arbeitspunktregelung:
Regler auf Handbetrieb stellen und festen Handsollwert vorgeben. Wenn Sollwert erreicht ist, Handsteuerung wegnehmen,
somit regelt der Regeler vom aktuellen Handwert aus startend.

Falls der Sollwert zu weit wegläuft, wieder auf Handwert umschalten.

Das Problem ist, dass man um den Arbeitspunkt komplett andere Regelparameter braucht als nötig sind um den Arbeitspunkt von
irgendwoher anzufahren.

Einstellung des Reglers ist wahrscheinlich als PI-Regler besser als PID


Einstellung nach Ziegler-Nichols Kriterien
1. I und D Anteil durch Eingabe von Integrations- und Differenzierzeit := 0
2. Porportionalbeiwert (GAIN) soweit aufdrehen, bis Istwert schön schwingt
   z.B. (Pu=50)
3. Dauer einer Schwingung bestimmen: (z.B. Tu=4sec)

Reglerparameter bei
PID : Gain:= 0.6*Pu  TI:=0.5*Tu  TD:=0.12*Tu
PI  : Gain:= 0.4*Pu  TI:=0.8*Tu


----------

