Moin erstmal! Jetzt als neues Thema, da da sonst ja doch einiges durcheinander zu kommen scheint. Ich habe mich in den letzten Wochen zum 1sten mal mit PID-Reglern befasst. Ohne die tiefsten Tiefen der mathematischen Herleitungen wirklich begriffen zu haben, zugegebener Maßen. So ein ungefähres Bild, was P-, I-, und D-Anteil bewirken sollen (und warum sie das auch tun) hat sich aber schon eingestellt. Aber genau bei dem Skalierungsproblem komme ich auch nicht weiter. Also angenommen man möchte eine Temperatur regeln, z.B. auf 50°C. Und angenommen, irgendwann würde diese Temperatur ereicht und sich nicht mehr ändern (also quasi Störgröße konstant -> Regleroutput (z.B. 50%)auch konstant und gleicht die Störgröße aus). Dann müsste ja der I-Anteil des Reglers bei einem Ausgangssignalbereich von 0..100 (%) permanent 50 rausgeben, oder? (Damit dann ein einfaches Stellventil z.B. immer in dieser Stellung bleibt). Ist das soweit richtig bzw. nachvollziehbar? Dieter Werner schrieb: > Das stimmt so. > > Da bei Regelabweichung 0 der P-Anteil der Stellgröße ebenfalls 0 ist, > muss der I-Anteil allein die erforderliche Stellgröße liefern. > > btw. Stellventile steuert man oft mit einem Dreipunktschrittregler an. > > siehe z.B. > http://www.jumo.de/de_DE/support/faq-weiterbildung/faq/regler/T2/Q16.html Stefan schrieb: > Moin Dieter Werner, > > danke für die schnelle Antwort! > > Nun denn. > > wenn ich jetzt mal die u.A. auch in diesem Forum benutzte Formel > > esum += e_neu > > y= Kp *e + Ki*esum + Kd* (e_neu-e_alt) > > wobei esum (oder auch Ki*esum) dann ja oft auf y_max begrenzt wird (was > dann oft als Anti-Wind-Up bezeichnet wird). Meine ich auch hier und > anderswo gefunden zu haben. > > Dann müsste, wenn ich Ki auf z.B. 0.5 gesetzt hätte, esum ja 100 sein? > > Wenn ich jetzt den Sollwert auf z.B 60° setzen würde, müsste ich also Ki > vergrößern, um die Regelabweichung im oben angenommenen ZUSTAND > überhaupt noch kompensieren zu können, da esum ja auf 100 begrenzt > ist?? > > Soweit auch noch richtig? > > Stefan Stefan schrieb: > ... > > Den Drei-punkt-schrittregler habe ich mir schon schön programmiert- und > zwar so, dass er immer 0..100% möchte. > > Jumo- PID-Regler beschreibung, Adruino-PID-Regler (sehr schön! Den > Hinweis habe ich, glaube ich. auch hier im Forum gefundenund) und > vieles, vieles andere habe ich mir auch schon 'reingezogen' > > Stefan
>Ist das soweit richtig bzw. nachvollziehbar?
Ja. Deshalb ist es auch eine duemmliche Loesung.
Ókay, is mir jetze schon ein bisserl peinlich, aber: Wer Rechtschreibfehler findet darf diese sammeln und behalten. Sind diese doch Teil meines persönlichen, künstlerischen Ausdrucks ist - abhängig meiner weiteren Entwicklung - auch eine Wertsteigerung nicht ausgeschlossen.
Fuer eine bessere Loesung lehnt man sich erst mal zurueck. Wir wissen, die Stellgroesse setzt sich zusammen aus einem P-Teil, einem I-Teil und allenfalls einem D-Teil. Und wir wissen auch, dass Stellgroesse:=funktion(T). Dann sollten wir das auch so machen und nicht warten bis ein Regler das irgendwann herausfindet. Also Stellgroesse:= P-Teil + I-Teil + D-Teil + funktion(T) : T=Soll Diese Funktion(T) finden wir mit einem Durchgang heraus und passen sie in eine Tabelle oder ein Polynom. So genau muss das auch nicht sein, denn der PID-Regler macht den Rest dann schon.
Deine Erlaubnis haben wir nicht nötig. Aber Du hast unseren guten Willen nötig. Denk' noch mal über das Problem nach. Oder kannst Du das auch nicht?
короткое троль schrieb: > > Also Stellgroesse:= P-Teil + I-Teil + D-Teil + funktion(T) : T=Soll > > Diese Funktion(T) finden wir mit einem Durchgang heraus und passen sie > in eine Tabelle oder ein Polynom. So genau muss das auch nicht sein, > denn der PID-Regler macht den Rest dann schon. Das soll heißen, man soll den erforderlichen Stellwert zu einem gewollten Sollwert "manuell" herausfinden und dann einfach hinzu addieren?
Bitflüsterer schrieb: > Deine Erlaubnis haben wir nicht nötig. > Aber Du hast unseren guten Willen nötig. > Denk' noch mal über das Problem nach. > Oder kannst Du das auch nicht? Ne, deswegen frag ich ja
> Ne, deswegen frag ich ja
Dann lern' häkeln!
Bitflüsterer schrieb: >> Ne, deswegen frag ich ja > > Dann lern' häkeln! Wahrscheinlich wäre man in den entsprechenden Foren hilfsbereiter als Du es zu sein scheinst. Wie schade. Ich werd's mir dann anders beipulen Danke an короткое троль Ulrich Dieter Werner
>Wahrscheinlich wäre man in den entsprechenden Foren hilfsbereiter als Du >es zu sein scheinst. Wir waren hilfsbereit. In Bezug auf Dein Regler-Problem und in Bezug auf Deine Rechtschreibung. Was ich nicht vertragen kann sind diese schnoddrigen um nicht zu sagen frechen Antworten.
Btflüsterer schrieb: >>Wahrscheinlich wäre man in den entsprechenden Foren hilfsbereiter > als Du >>es zu sein scheinst. > > Wir waren hilfsbereit. In Bezug auf Dein Regler-Problem und in Bezug auf > Deine Rechtschreibung. > Was ich nicht vertragen kann sind diese schnoddrigen um nicht zu sagen > frechen Antworten. Okay, DEN geb ich mir jetzt noch: Du hast Dein Pseudonym eben falsch geschrieben, Schatz ;-) Tschau ( das schreibt man ciao, gell)
>Das soll heißen, man soll den erforderlichen Stellwert zu einem
gewollten Sollwert "manuell" herausfinden und dann einfach hinzu
addieren?
Genau. Das muss man ja sowieso. Man stellt also 10% Stellgroesse ein und
wartet bis das ungeregelte System stabil ist. Ablesen und auf 20% gehen.
... bis zum Maximum. Das muss man eh machen, um eine Ahnung zur
Linearitaet des Systems zu haben.
Es kann ja sein, dass die Stellgroesse eine Spannung ist, fuer das
System aber die Leistung zaehlt. Dann muss man eben irgenwo noch eine
Wurzel einbauen. Heizsystems sind meist irgendwie nichtlinear. Die macht
der I-Anteil dann schon weg, man sollte aber eine Idee der Abhaengigkeit
haben.
Meine Güte. Du kannst schon ein fehlendes 'i' erkennen, wenn man Dir 'ne Vorlage gibt. Beindruckend - ist das überhaupt nicht.
Btflüsterer schrieb: >> Wahrscheinlich wäre man in den entsprechenden Foren hilfsbereiter >> als Du es zu sein scheinst. > > Wir waren hilfsbereit. In Bezug auf Dein Regler-Problem und in Bezug auf > Deine Rechtschreibung. Wo und wann warst du denn hilfsbereit? Das Einzige, was man von dir gelesen hat, waren Antworten wie: > Dann lern' häkeln! womit wir beim Thema Antworten sind: > Was ich nicht vertragen kann sind diese schnoddrigen um nicht zu sagen > frechen Antworten. ...die in diesem Falle ausschließlich von dir kamen!
@Comment: Danke, dass das noch jemand so sieht und auch äußert! @короткое троль: Okay, ich nehme dem I-Anteil also den größten Teil der 'Arbeit' ab, indem ich immer den zu erwartenden Stellwert zum PID-Algorithmus hinzuaddiere. Macht es dann nicht auch Sinn, den Regler erst in einem Bereich aktiv zu schalten, der nahe dem Sollwert liegt (Also z.B. Soll=500° (oder was auch immer) -> Regler aktiv zwischen z.B. 480°..520°; dann schaltet sich der Regler z.B. erst bei 480° hinzu, bei Werten weit über 520° ist er auch nicht aktiv)? Stefan
Stefan schrieb: > Macht es dann nicht auch Sinn, den Regler erst in einem Bereich aktiv zu > schalten, der nahe dem Sollwert liegt (Also z.B. Soll=500° (oder was > auch immer) -> Regler aktiv zwischen z.B. 480°..520°; dann schaltet sich > der Regler z.B. erst bei 480° hinzu, bei Werten weit über 520° ist er > auch nicht aktiv)? nennt sich AntiWindup!
Okay!?! Alles was ich bisher gefunden habe, sah immer so aus, das esum oder auch Ki*esum begrenzt wurden, und irgendwie resultiert mein Problem ja auch genau daraus..... Wenn ich jetzt also den Regler nur in einem kleinen Bereich um den Sollwert aktiv schalte, kann ich dann ja esum (oder eben Ki*esum) wieder auf y_max (in meinem Fall 100%) begrenzen und alles ist gut?! Stefan
... Wenn ich also verschiedene Sollwerte habe, müsste ich den Bereich "Regler aktiv" jedesmal mit verschieben (und wahrscheinlich auch in der Größe anpassen, bzw. die Beiwerte (Kp,Ki,Kd) umrechnen)?
>Macht es dann nicht auch Sinn, den Regler erst in einem Bereich aktiv zu
schalten, der nahe dem Sollwert liegt (Also z.B. Soll=500° (oder was
auch immer) -> Regler aktiv zwischen z.B. 480°..520°; dann schaltet sich
der Regler z.B. erst bei 480° hinzu, bei Werten weit über 520° ist er
auch nicht aktiv)?
Nee. Wenn man weit vom Ziel weg ist, muss die Stellgroesse in die
Begrenzung. Anti-windup verhindert, dass der Integrator dann
weiterlaeuft. Das ist vernuenftig. Vom Regler brauchen wir in diesem
Bereich erst mal den P-Anteil, denn der jagt das Stellglied in den
Anschlag.
Die Begrenzung des Integralanteils auf einen festen Wert ist eine nicht so gute Möglichkeit für Anti-Windup. Nach dem dazu addieren des ersten Schätzwertes für den Ausgang geht es damit ggf.. Die einfachere Lösung ist das Aufaddieren von esum auszusetzen wenn der Ausgang am Limit ist. Das ist einfacher und braucht keine individuelle Anpassung der Grenzen. Man kann auch zusätzlich ein Limit setzen - muss es aber nicht. Den I Anteil erst zu aktivieren wenn der Fehler nicht zu groß ist, kann Vorteile habe - ist aber eher keine Alternative zum Anti Windup. Es kann aber auch nach hinten los gehen, wenn ohne den Integralanteil der Wert nicht erreicht wird. Ob es damit besser wird hängt vom System und den Ansprüchen ab - es ist jedenfalls im Gegensatz zum Anti-windup über die Grenzen des Ausgangs keine Standardlösung. Die Linearität sollte man schon grob überprüfen, aber so kritisch ist das nicht - man muss im nichtlinearen Fall nur die PID Koeffizienten nach dem Arbeitspunkt mit der größten Empfindlichkeit abstimmen. Besser wird es aber wenn man so etwas wie den bekannten Zusammenhang Spannung - Heizleistung gleich linearisiert.
короткое троль schrieb: > Also Stellgroesse:= P-Teil + I-Teil + D-Teil + funktion(T) : T=Soll > > Diese Funktion(T) finden wir mit einem Durchgang heraus und passen sie > in eine Tabelle oder ein Polynom. So genau muss das auch nicht sein, > denn der PID-Regler macht den Rest dann schon. Nun gut, also werde ich diesen Weg gehen und dazu eine Standard-mäßige I-Anteil-Begrenzung. Das wird erst irgendwann Mitte Mai getestet- ich werde mich dann noch mal (kurz oder lang, je nach Erfolg ;-) melden. Soweit erstmal DANKE an Alle die versucht haben meinen dunklen Kopf etwas zu erhellen ;-) Bleibt noch die Frage nach den verschiedenen zu findenden Algorüthmen (;-). oft: Y= Kp *e + Ki*esum + Kd*(e_alt-e_neu) manchmal: y = Kp * [e(i) + Ta/Tn * SUM_k=0..i(e(k)) + Tv/Ta (e(i) - e(i-1))] Mal abgesehen von der unterschiedlichen Schreibweise und einmal Abtastzeit in der Formel und einmal sozusagen außen: Einmal wird nur der aktuelle Fehler mit Kp multipliziert das andere mal "Alles". Fehlt mir nur der mathematische Hintergrund um das als gleich anzusehen zu können, oder sind das unterschiedliche Ansätze, oder...? Stefan
Die beiden gezeigten Formen sind noch äquivalent. Bei der ersten Version ist nur esum = SUM_k=0..i(e(k)) extern berechnet (macht auch Sinn). Die alten Fehlerwerte muss man sich ja auch nicht merken, es reicht die Summe zu aktualisieren (oder wegen Windup ggf. auch nicht). Sonst sind einfach Ki = Kp*Ta/Tn und Kd = Kp*Tv/Ta als vorweg berechnete Größen genutzt. Die Parameter Tn, Tv sind als Zeiten etwas anschaulicher als Ki,Kp, vor allem für die Eingabe. Viele fertige Regler programmiert man daher meist mit Kp (Alternativ auch 1/Kp als proportional band - wegen der Anschaulicheren Einheit), Tn und Tv. Für einen relativ langsamen Temperaturregler sollte man ggf. noch eine Tiefpass Filterung für das D Glied einbauen, um den Einfluss von höher frequentem Rauschen zu reduzieren. Da gibt es mehrere Möglichkeiten: Die Abtastzeit anpassen und ggf. schon bei den Messwerten mitteln, oder eine Filterung (z.B. ein einfacher IIR Tiefpass) für die Daten oder nur die Ableitung. Mit klassischem Anti-Windup kann man auf den Schätzwert für die Leistung auch verzichten - zumindest für den Anfang. Wenn man den Teil dann später noch braucht (für eine schnellere Reaktion auf geänderte Sollwerte), kann man das gut aus einem Dreieckförmigen Temperaturprofil ablesen. Bei so was langsamen wie Temperaturregelung kann man sich auch den Luxus einer Berechnung mit Fließkommazahlen leisten.
Ulrich schrieb: > Die beiden gezeigten Formen sind noch äquivalent. Bei der ersten Version > ist nur esum = SUM_k=0..i(e(k)) extern berechnet Klar, verstehe ich. Ulrich schrieb: > Die Parameter Tn, Tv sind als Zeiten etwas anschaulicher als Ki,Kp, vor > allem für die Eingabe. Viele fertige Regler programmiert man daher meist > mit Kp, Tn und Tv. Auch klar. Ulrich schrieb: > Sonst sind einfach Ki = Kp*Ta/Tn und Kd = Kp*Tv/Ta als vorweg berechnete > Größen genutzt. Tja, da mangelt es dann wohl an der mathematischen Herleitung des Ganzen bei mir. Für mich scheinen Kp und Ki (bzw. Ta/Tn) und Kd (bzw. Tv/Ta) völlig unabhängig von einander parametrierbare Werte (dass sie den Regelungsprozess beeinflussen und, mmh, wie soll ich es sagen, die Größe des einen das Verhalten des anderen irgendwie mitbeinflusst, kann ich mir noch vorstellen). Ulrich schrieb: > Mit klassischem Anti-Windup kann man auf den Schätzwert für die Leistung > auch verzichten Mmh- dieses Problem dachte ich gerade losgeworden zu sein.. Wenn ich einen Sollwert und einen Istwert von 500 habe (Also einen "stabilen" Zustand), den I-Anteil auf 100 (y_max sozusagen) begrenze einen Reglerausgang von 50 (0..100%) müsste Ki ja 5.0 sein. Das Gleiche bei Soll/Ist = 100 -> Ki müsste 0.5 sein. Ein derart unterschiedliches Ki beeinflusst aber doch das Reglerverhalten extrem, oder nicht? Deshalb kam mir короткое трольs Vorschlag genau sinnvoll vor (ich habe das bei nem Synchronlauf 2er Antriebe auch schon mal erfolgreich so gemacht: Y= Y_Soll + Kp*Fehler, wobei Y der Geschwindigkeitssollwert des geführten Antriebs ist; wie ich genau den Fehler errechnet habe müsste ich erst mal nachschauen..). Ich glaube, bald steck ich auf... Oder teste es dann eines Tages einfach so oder so- und bekomme dann ein Gefühl dafür (oder eben auch nicht ;-) Stefan
Stefan schrieb: > Das Gleiche bei Soll/Ist = 100 -> Ki müsste 0.5 sein. Das Gleiche bei Soll=Ist = 100
Stefan schrieb: >einen Reglerausgang von 50 (0..100%) müsste Ki ja 5.0 sein. >Das Gleiche bei Soll/Ist = 100 -> Ki müsste 0.5 sein. einen Reglerausgang von 50 (0..100%) müsste Ki ja mindestens 5.0 sein. Das Gleiche bei Soll/Ist = 100 -> Ki müsste mindestens 0.5 sein. Beide eher noch um Einiges größer!
Ulrich schrieb: > Die Begrenzung des Integralanteils auf einen festen Wert ist eine nicht > so gute Möglichkeit für Anti-Windup. Nach dem @Ulrich.. Sorry, ich Dein mit oben zitiertem Satz beginnende Posting übersehen. Gut, wenn man den I-Anteil nicht begrenzt, sind meine Überlegungen bezüglich Ki vielleicht hinfällig. Ich denke, ich werde mehrere Varianten implementieren und hoffe Mitte Mai dann genug Zeit zum Testen zu bekommen..Oft macht man sich ja im Vorhinein auch zu viele Gedanken.. ich persönlich neige zumindest dazu ;-) Und melde mich dann, wie's ausgegangen ist. Vielen Dank Euch allen noch mal! Ihr habt Euch wirklich Mühe mit mir gegeben ;-) Danke Stefan
Die Regelparameter (Kp,Ki,Kp bzw. Kp,Tn,Tv)) muss man schon an das System anpassen - nicht an die Begrenzung des Integrals. Man muss andersherum die Grenze an Kp anpassen. Oft ist es auch besser gleich die Grenze für Ki*esum festzulegen. Da kann man sich dann auch was drunter vorstellen. Bei der Summe gleich den Faktor Ki mit drin zu haben hat auch den Vorteil, dass man damit Ki auch bei laufendem Regler verändern kann, ohne das es zu großen Sprüngen kommt. Für das Anti-Windup gibt es halt verschiedene Möglichkeiten: 1) Eine Grenze für esum. Da muss man die Grenze aber an Ki anpassen, etwa als Grenze = Max_ausgang / Ki , oder einen Teil davon. Hilfreich ist dabei auch wenn man den Schätzwert in der Formel dazu nimmt - das sorgt dafür das die Grenzen etwa passend mit wandern. Damit können die Limits ggf. kleiner werden. Es bleibt aber, dass man sich passende Grenzen noch Aussuchen muss: nicht zu klein, damit der Endwert auch erreicht wird und wenn möglich auch schnell genug, aber auch nicht zu groß, sonst hat man weiter Windup - wenn auch mit begrenzter Größe. 2) Man nutzt das Limit beim Ausgang als Kriterium. Etwa so das man beim Erreichen des Limits esum nicht mehr weiter aufaddiert, oder dann wenn das Limit erreicht wird esum neu berechnet, so das gerade so das Limit erreicht wird. Für diese Version braucht man den Schätzwert nicht, weil man halt keine starre Grenze mehr hat, sondern die feste Grenze des Aktors. Der Schätzwert kann trotzdem Hilfreich sein um Änderungen des Sollwertes schneller zu folgen - das hat dann aber nichts mehr mit den Anti-Windup zu tun. Meiner Meinung nach ist die 1. Version vom Anti-Windup keine gute alleinige Lösung. Das ist bestenfalls eine Ergänzung zur Ausführung 2). Die beiden Gleichungen Ki = Kp*Ta/Tn und Kd = Kp*Tv/Ta bekommt man einfach durch den Vergleich der Koeffizienten vor dem Integral und der Ableitung - so dass die beiden Formen halt gleich sind.
Rückmeldung: Das war ja leicht!! es werden 2-3 m3 Wasser erhitzt, eine Pumpe wälzt die gesamte Menge in ca. 3 Minuten um. Es geht immer Wasser verloren, das neue (kalte) wird ein paar Meter (Rohrleitung) vor dem Brenner eingeleitet. Es gibt einen Temp-Sensor direkt hinter dem Brenner, einen irgendwo in der Wanne, in der sich das Wasser befindet. Durch Wsser-Ablass konnte die Störgröße (eigentlich vor allem kalte Lebensmittel, die gekocht werden sollen (95°C)) grob simuliert werden. Ich hatte alles mögliche vorbereitet, so z.B., dass bei erstmaligem Überschreiten des Sollwertes der I-Anteil (und somit quasi auch das Ausgangssignal des Reglers) auf den "Arbeitspunkt" gesetzt wird. Das ganze ist aber VIEL dynamischer, als ich mir das vorgestellt habe, dass heißt, der Brenner fährt "ständig", voll auf oder zu. Der Inbetriebnehmer, der ansonsten die gleiche Funktion mit eingekauften Reglern umgesetzt hat, meinte, das sehe genau so aus, wie es sollte. Nach 6 Stunden (mit vorherigem Umbau und späterem Rückbau) waren wir schon wieder auf dem Heimweg-COOL ;-) Was ich gelassen habe, ist, dass der I-Anteil auf min./max. Stellwert begrenzt wird. Wie gesagt, ich hätte nie gedacht, dass sich die ganze Geschichte SOOO dynamisch verhält. Mein Fazit ersteinmal: geht doch- die anderen kochen auch nur mit Wasser (sic!) ;-) Euch noch einmal vielen Dank, insbesondere an Ulrich, der sich auch nicht zu schade war, Dinge mehrmals zu beschreiben, weil ich sie beim ersten Lesen noch nicht gerafft hatte, aber auch an die russische (?) Fraktion- Ihr habt mir alle sehr geholfen- ich denke mal, der erste Schritt zum Verständnis von Regelungstechnik ist getan! Besten Dank und bis dahin, Stefan
Korrektur Rückmeldung Ich muss das noch mal richtig stellen, wenn es auch schon lange her ist: diese von mir beschriebene 'Dynamik' ist so gar nicht vorhanden, sie entstand nur dadurch, dass wir durch Kaltwasserzulauf den Prozess zu simulieren versuchten. Im echten Betrieb zeigte sich dann, dass sich das ganze doch sauber ausregelt, und die Temperatur, bei einigermaßen konstanten Umgebungs- und Produktionsbedingungen, mit kleinen (3-5%) Änderungen des Brennerventils auf +/- 0,2° C genau halten lässt. Mit einem Arbeitspunkt konnte ich nicht arbeiten- der läge manchmal bei 10%, ein anderes mal bei 70% (je nach Umgebungs- und Produktionsbedingungen). Mit den Anteilen habe ich lange herumgespielt- am wichtigsten, war aber die Erkenntnis, dass die ABTASTZEIT passen muss- ich konnte sehen, dass, wenn das System ausgeregelt war, eine Änderung des Brennerventils erst ca. 30-35 Sekunden später am Sensor 'ankam'! Dies habe ich dann als Abtastzeit genommen. Allerdings nur, solange die Temperatur sich innerhalb eines Fensters von -0,4° bis +0,3° um den Sollwert befindet. Denn wenn sich die Bedingungen ändern (z.B. kein Material kommt nach), kann die Temperatur schnell über 102,103° Grad kommen, was ich dann mit Abschaltung des Brenners quittieren muss. Ich wusste mir nicht anders zu helfen, als außerhalb dieses Fensters (-0,4° bis +0,3° um den Sollwert), Ta auf 5 Sekunden zu setzen. Dass ist natürlich eigentlich für die Regelung totaler Unsinn, funktioniert aber zum Glück; meist ist das System nach 60-120 Sekunden wieder in Ruhe. Wenn kaltes Wasser zugeführt wird (die Temperatur am Sensor hinter dem Brenner sinkt rapide um ca. 5-10° C), wird das ganze unruhig. Um nach dem Wasserzulauf kein zu heftiges Überschwingen zu haben, friere ich den I-Anteil solange ein (Zeiten gestoppt, es dauert ca. 45 Sekunden vom Öffnen des Wasserventils bis es am Sensor angelangt). So schwingt das ganze um max. ca 1,5 Grad über (Brenner war zuvor bei 80-100%). Ich habe ein Diagramm meines Datenloggings angehängt. Dort kann man die Temperatureinbrüche durch die Wasserzufuhr auch erkennen (meistens mehrmals direkt nacheinander). Vielleicht hilft das ja irgendjemandem, ansonsten nochmals vielen Dank für Eure Hilfe! Stefan
Ich vergaß: Wenn die Temperatur außerhalb des 'Fensters' ist, arbeite ich mit anderen Parametern (u.A. schalte ich einen D-Anteil hinzu) Wenn Ist-Temperatur = Soll-Temperatur UND die Ist-Temperatur vorher 30 Sekunden lang innerhalb des 'Fensters' war, schalte ich auf Ta=35 Sekunden zurück. Schön wäre eigentlich noch, irgendeine kaskadierte Regelung zu haben, um direkt auf die Temperatur des Bassins regeln zu können; da habe ich mich aber dann nicht ran getraut, mein Kunde hielt das für unnötig, der Endkunde wollte natürlich produzieren- keine Zeit, keine Zeit.... Stefan
Soo, jetzt habe ich das Ganze noch einmal mit einem Dampfventil anstatt eines Brenners in Betrieb genommen. Das Ventil reagiert sehr schnell (0..100% in vielleicht 2 Sekunden, im Gegensatz zum Brenner: 35 Sekunden). Durch ein viel kürzeres und optimiertes Rohrsystem, wird das Wasser nun auch wirklich in wenigen Minuten komplett "durchgespült". Ich habe im Prinzip alles so gelassen, lediglich die Abtastzeit und die PID-Parameter verändert. So weit so gut. Was mir jetzt allerdings noch mal klar wurde: eines meiner anfänglichen Verständnisprobleme hat sich nicht wirklich geklärt: Durch die lange Aufheizphase steigt der I-Anteil bis zum Erreichen der Solltemperatur bis auf sein Maximun (habe ich max. Stellwert = 100 gesetzt) an, sodass dann der I-Anteil erst wieder auf den jeweiligen "Arbeitspunkt" herabschrumpfen muss. Dadurch würde aber die Temperatur viel zu stark überschwingen. Mache ich Tn aber sehr klein, fällt der I-Anteil zwar schneller wieder ab, aber die Regelung im wirklichen Prozess würde instabil. Ich begrenze den I-Anteil bei Überschreitung von Soll * 0,3° jetzt einfach auf 50%- das funktioniert, ist aber auch nicht gerade elegant und könnte, wenn der Arbeitspunkt irgendwann vielleicht mal bei 80 oder 90% läge zu Problemen führen. Irgendjemand Vorschläge? Stefan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.