INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

PID-Problem



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

16.08.2009, 23:20 (Dieser Beitrag wurde zuletzt bearbeitet: 16.08.2009 23:23 von Cruzaderz.)
Beitrag #1

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
PID-Problem
Heyho!

Nun hab' ich die letzten drei Wochen an der verflixten Regelung gebastelt und bekomme es alleine nicht hin. Auch die Kontaktaufnahme zu zwei Professoren der Regeltechnik brachte außer einer recht netten EInstellanleitung leider keine neuen Erkenntnisse. Darum frage ich nun euch... Lol

Da mein Problem ohne Regelstrecke wohl kaum nachzubauen ist spare ich mir anfänglich mal das VI und werde die Geschichte beschreiben. Später können ja Teile folgen, wenn es um Einzelheiten geht...

Hier worum es geht:
Ich habe einen Thermostaten - den hier (aber ohne das schicke Farbdisplay Huh): Huber . Inzwischen kann ich ihn mit vollen 9600 baud mit Stellbefehlen von -1000 bis 1000 füttern entsprechend 100.0% Kühlen bis Heizen. Das Suv-VI läuft auch ganz gut, dazu am Schluß noch eine Frage.
Nun lese ich in einem weiteren VI eine Temperatur am Pumpenausgang des kleinen Huber. Die kann ich mittlerweile mit 2000 Hz ganz guz erfassen und mache mir da 2 schöne Mittelwerte pro Sekunde draus - ca. +/- 0.0005 K. Diesen Wert gebe ich in den LV-PID Regler als Messgröße. Den Stellbereich habe ich mit -1000 bis 1000 eingestellt, weil dann der P-Anteil feiner zu stellen ist. Der Ausgangswert geht als Integer dann ins sub-VI für den Huber und das mit knappen 600 ms je Durchgang.
Ich würde die Regelstrecke nach reichlich Internetrecherche als PT2I einschätzen - strenggenommen höher aber die Elektronik nehme ich mal als "prompt" an. Dann bleibt PTI für das Heizbad und das zweite P für die paar Sekunden, die der Heizstab braucht um auf Temperatur zu kommen bzw. der Kompressor, um Druck aufzubauen.

Nun das Problem:
Der Ausgang schwingt bei P's ab 500 mit etwa 5-6 Hz Sad. Nicht erschrecken, 500 müßten "normalerweise" AFAIK 0,5 entsprechen, wenn man normiert. Dabei ist diese Schwingung gar keine per se erzwungene, da man deutlich das übergeordnete Verhalten des Thermostaten erkennt. Der P der Reglers reagiert aber mit +/- 1 in der Stellgröße drauf und so kommt es zu 5-10 mK Amplitude. Der Huber drückt einiges mehr pro SekundeWink. Interessanterweise bringen auch geringste (hohe) I's oder kleine D's das System total aus dem Trott. Dabei habe ich das Eingangssignal sogar mal über 2-3 Werte geglättet und es immer mitgeplottet - sieht absolut sauber aus, ebenso das dT/dt. Meine Befürchtung ist nun, das diese 5 sek genau die sind, die das Fluid aus dem Pott bis zum Fühler braucht und dann die Zeit, bis dieser sich angepasst hat (momentan noch 2 mm PT200). Aber wie kann man das im Regler berücksichtigen?

Oder wäre es gar schlauer mit Fuzzy zu arbeiten? Ich habe ihn im LV-Menü aber über den findet man rein gar nichts. Und selbst wenn bliebe die Frage, wie man schnell eine geeignete Matrix erstellt. Die erste mit "zu kalt" "etwas zu kalt" etc. geht schnell aber ich muß auch die Änderungsgeschwindigkeit der Temperatur damit zusammenbringen, wie der Thermostat reagiert. Dazu könnte man ihn mal mit 10, 20, 30...% Heizen und kühlen lassen und die Kurven auswerten. Vielleicht habt ihr da nen interessanten Literaturhinweis oder gar Tipps?!

Ja, zu guter letzt die Versprochene "direkte" LV-Frage: Ich habe wie gesagt den Thermo als Sub-VI und die A/D-Karte als Sub-VI. In der Mitte sitzt das Main-VI mit dem PID drin, was beide Sub-VIs anstößt. Aber warum kann die A/D nicht schon den nächsten Wert lesen während der Thermo gerade den letzten verarbeitet? Der kann 30,40 Werte pro Sekunde verdauen, also warum wartet das Haupt-VI bis er fertig ist? Da gibt es doch bestimmt irgendeine Parallelisierung via Rahmen o.Ä., stimmt's? Wenn später noch die Auswertung der weiteren Temperaturen dazu kommt bleibt das VI sonst stehen und es wäre doch schade, wenn die A/D nur alls 2 sek mal ihre 1000 Werte abholtWink

Ich hoffe, ihr habt schonmal "geregelt" und könnt mir TIpps geben? Blush

Liebe Grüße,
Dennis


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.08.2009, 23:54
Beitrag #2

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
PID-Problem
EDIT (geht nicht): Hab mal ein Bildchen gemacht. Links Temp, rechts Stellgröße an Thermo und oben dT/dt. Oder sind das gar schon die Ziegler-Nichols-Schwingungen? Das Problem ist, dass die daraus gewonnenen I und D-Werte die Regelung nur deutlich verschlimmern und ohne I und D und mit niedrigem P ist mir der Regler ehrlich gesagt zu lahm und ungenau...Sad


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2009, 13:15
Beitrag #3

MichaDu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 115
Registriert seit: Jun 2008

8.5
2008
en

47
Deutschland
PID-Problem
Hallo

Zitat:Die kann ich mittlerweile mit 2000 Hz ganz guz erfassen und mache mir da 2 schöne Mittelwerte pro Sekunde draus - ca. +/- 0.0005 K

Verstehe nicht ganz, warum du bei einer Temperaturmessung so hoch abtasten musst? Die Temperaturänderungen bei einem Thermostaten sind doch bestimmt nicht größer als 1K/s, oder? Auch die extreme hohe Temperaturauflösung ist mir unklar und auch wie du darauf kommst? Ein dT von 0,1K sollte eigentlich ausreichen, darunter nimmt das Rauschen bestimmt stark zu, was durch den D-Anteil noch verstärkt wird. Wie groß ist denn deine Reglerzykluszeit?

Zitat:Meine Befürchtung ist nun, das diese 5 sek genau die sind, die das Fluid aus dem Pott bis zum Fühler braucht und dann die Zeit, bis dieser sich angepasst hat (momentan noch 2 mm PT200). Aber wie kann man das im Regler berücksichtigen?

So viel ich weiß, gibt es im PID-Toolkit auch ein VI, welches Totzeiten berücksichtigt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.08.2009, 16:44
Beitrag #4

BerndDasBrot Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 128
Registriert seit: Feb 2008

8.2.1, 2012, 2017, 2020
2007
EN

7206
Schweiz
PID-Problem
Hallo Dennis

Vergiss' den D-Faktor ( =0 setzen ). Das gibt nur Ärger (Schwingungen).

Was Du dagegen brauchst, ist der I-Faktor. Der reine P-Regler hat eine sogenannte "bleibende Regelabweichung". Deshalb wird in den meisten fällen ein PI-Regler verwendet.

Zum Fuzzy Regler kann ich nur sagen, dass er für diese Anwendung geeignet ist. Erfahrungen mit den vorhandenen VIs habe ich aber keine.

Gruss, BDB
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.08.2009, 11:35 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2009 11:36 von Cruzaderz.)
Beitrag #5

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
PID-Problem
@Micha: Die hohe Abtastrate kommt von der A/D-Karte an sich. Ich habe festgestellt, dass sich bis etwa 20 kHz (netto) das Signal kaum verschlechtert und cross-talking keine Rolle spielt. Da meine Auswertung mit 1 Hz klar kommt, ich mit 2 Hz aber später schöner glätten kann, habe ich mich für 2 Hz entschieden, die dann halt auch die PID-Regelung gefüttert bekommt. Rauschen ist überhaupt kein Problem mehr, wenn man über 2-3 Werte gleitend mittelt, der D-Anteil macht aber trotzdem nur Mist...Sad

Das Bauteil was Du meinst kann eigentlich nur der "PID Lead Lag" sein. Klingt für mich frei übersetzt nach "verzögerter Führungsgröße" aber neben der Kontexthilfe schweigt sich NI über die Verwendung leider aus. Interesanterweise scheint das Teil auch selbst zu regeln, da es neben in und out auch PID-Parameter hat. Ich werd' das Ding wenn nachher noch etwas zeit bleibt mal mit ein paar generierten Signalen quälen.


@Bernd: Generell oder nur im LabVIEW? Ich hab' irgendwie das Gefühl, dass der D-Anteil im LV nicht ganz sauber arbeitet obwohl er nach flüchtiger Durchsicht wohl genau der mathematischen Definition entspricht. Hast aber Recht - der D-Anteil macht hier noch mehr Ärger, als der I-Anteil obwohl eigentlich ja ersterer dafür bekannt ist, das System zum schwingen zu bringen.

Thema Fuzzy: Ich glaub', der dürfte sogar noch viel besser regeln, als der PID. Man findet bloß leider gaaaaaaaar nichts drüber - weder bei NI, noch in den drei Büchern dir wir hier haben oder in der Kontexthilfe. ich werd' gleich nochmal die DVDs durchwühlen - vielleicht hab' ich da ja nen PDF oder so übersehen Huh

So oder so ist mir irgendwann heute Nacht der Schlauch vom Huber zum Doppelmantel gerissen (heißer Kohlenwasserstoff im Gewebeschlauh = nix gut!Wink). Das heißt, ich muß weitere Fragen in diesem Zusammenhang erstmal theoretisch abarbeiten bzw. den Thread nach dem Urlaub (in 2 Wochen für 2 Wochen) wieder hoch holen. Gleich werde ich jedenfalls erstmal die dünnsten PT100 und Themoelemente ordern, die unser Lieferant auf Lager hat und die Leitungen aus Edelstahl biegen. War nämlich nicht das erste Mal mit dem Schlauch... :angry2:
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.08.2009, 12:35
Beitrag #6

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
PID-Problem
Nachtrag (EDIT-Button gibts irgendwie grad nicht?!): Ich kann ggf. Tipps doch wieder praktisch umsetzen. Es hatten sich nur die Schlauchschellen gelöst und das niedrigviskose Marlotherm hat sich tropfenweise an den verbindern vorbeigedrückt. Nun wälzt er wieder brav bei 60°C umSmile. Rohre werden demnächst dennoch verbaut, jedoch mit 0,25 mm Thermos und 1,5 mm PT100, da alles dünnere unverhältnismäßige Aufpreise kostet (0,15mm Thermoelement z.B. 270€ O)

So - nun bestell' ich nochmal etwas 14 mm Rohr und dann wird der "PID Lead Lag" ausprobiert...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.08.2009, 20:27
Beitrag #7

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
PID-Problem
Sp, hier nochmal ein neues Bildchen nach nem "autotune" über drei mal +/- 0.5 Amplitude (=Solltemp.). Ich hab das noch nicht nachgerechnet aber es wird wohl nach dem Sprungantwortverfahren ausgewertet. Man sieht auch hier wieder die Schwingung von ~0.15 Hz die der "großen" Welle übergelagert ist. Warum macht der doofe LV-Regler das? Der interne PID-Regler des Huber hält doch auch +/- 0.001 K Mellow

Jetzt werdet ihr sagen "nutz' doch den" aber geht nicht: Das tolle an der Steuerung aus LV ist, dass ich dem Ausgangssignal später ganz einfach Profile vorgeben bzw. dazuaddieren kann und so über nen Sinus z.B. einen Wärmedurchgang herausbekomme Rolleyes

Gruß,
Dennis


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.08.2009, 23:19
Beitrag #8

MichaDu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 115
Registriert seit: Jun 2008

8.5
2008
en

47
Deutschland
PID-Problem
Vielleicht solltest du mal den Fehler etwas mehr eingrenzen. So eine Ferndiagnose ist nicht so einfach ;-) Hier einige Vorschläge:

- Eingangssignal mit Multimeter/Oszi überprüfen
- konstantes Signal an Reglereingang oder Regelabweichung forcen und Ausgang mit Multimeter/Oszi beobachten
- nacheinander Regleranteile zu-/abschalten (P,I,D)
- es können auch Schwebungen durch Unterabtastung auftreten: mal mit der Samplingfrequenz rumspielen und reale Zykluszeiten ausgeben lassen
- D- und I-Anteil sind zeitabhängig und benötigen als Info ein dt. Ist die Zykluszeit konstant oder ändert sie sich evtl durch andere Codeschnippsel?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2009, 23:09
Beitrag #9

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
PID-Problem
Heyho!

Ich gehe mal einzeln auf die Fragen ein:

>>Eingangssignal mit Multimeter/Oszi überprüfen

Die A/D kann bis 20 kHz - soll ich...?!Wink. Ne, im Ernst: Wenn die Temp. stabil ist, ist auch das Signal super stabil. Das hab' ich mal im temperierten Dewar getestet. Rauschen tut er etwa 0.0005 K, momentan sogar noch weniger, weil der vorgeschaltete OP mit doppelter Verstärkung läuft.

>>konstantes Signal an Reglereingang oder Regelabweichung forcen und Ausgang mit Multimeter/Oszi beobachten

Also dem Huber z.B. "200" entsprechend 20% heizen aufdrücken und gucken, ob die Temp. sich irgendwann stabilisiert? Gute Idee - das darf er mal heute Nach machen...Big Grin

>>nacheinander Regleranteile zu-/abschalten (P,I,D)

Hatte ich tagelang probiert. Bei 70° schwingt er ab etwa Kp=550 konstant. Die aus der Periode bestimmten I und D brachten nur Chaos ebenso wie manuelles zugeben von I und/oder D. Das, was LV per autotune bestimmt klappt einigermaßen, ist aber schnarchlangsam und schwingt meist zweimal über - selbst bei kleinen Änderungen. P allein ist mir leider zu weit weg vom Ziel...Sad

>>es können auch Schwebungen durch Unterabtastung auftreten: mal mit der Samplingfrequenz rumspielen und reale Zykluszeiten ausgeben lassen

Denke eher nicht. Ich hatte ganz zu Anfang meiner Dipl.-Arbeit mal nen Oszi an der Analogkiste und bis auf nen ganz bißchen Hochfrequenz rauscht da nichts. Dann hatte ich ne Batterie mit Poti an der Keithley-Karte und das Signal war auch fast bis aufs nV stabil. Wenn man nen Dewar oder nen Pott mit 3L Öl drin lang genug temperiert ist das Signal wie gesagt auch mehr als gleichmäßig.

>>D- und I-Anteil sind zeitabhängig und benötigen als Info ein dt. Ist die Zykluszeit konstant oder ändert sie sich evtl durch andere Codeschnippsel?

Doch, das tut sie leider, allerdings scheint der LV-PID das selbst zu errechnen. Ich lasse mir zumindest von diesem das dt ausgeben und es pendelt immer so zwischen 480 und 490 ms, macht jedoch auch ab und an nen kurzen Satz auf 500-600 ms. Das ist lustigerweise auch im Angehängten Beispiel noch so, wenn auch die Zeit ein paar ms kürzer geworden ist.


Ja, Stichwort angehängtes Bsp: Ich habe mich mal ein wenig in die geschichte mit Queues und Meldern eingelesen, weil ja noch Module folgen sollen. Vielleicht habt ihr Lust mal ins angehängte VI zu schauen, ob das so einigermaßen sauber gestrickt ist. Problem ist wie gesagt momentan noch die Zykluszeit ungleich 500 ms obwohl ich die in der Mess-Schleife vorgebe. Dessen Signal geht dann an PID und dT/dt-Bestimmung zwecks paralleler Bearbeitung während der nächsten Messung und das, was der PID errechnet wird schnellstmöglich über sub-VI an den Huber geschickt.

Lv85_img1

Achja - und ich hab mal spaßeshalber die gleitende Mittelung der Messwerte auf eine Breite von 9 hochgeschraubt. Das Ergebnis seht ihr im Bild. Die Schwingungen müssen also tatsächlich von einer unberücksichtigten Zeitkonstante kommen, ich könnte wetten von der des dicken PT100. Zum Glück sind die neuen, dünnen Fühler schon bestellt...Smile


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  CALWIN___Regelung_testen.vi (Größe: 177,55 KB / Downloads: 229)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.08.2009, 23:26
Beitrag #10

Cruzaderz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 81
Registriert seit: Apr 2008

2010
-
de_en

22846
Deutschland
PID-Problem
:unsure:Hast Recht - scheint tatsächlich ein Problem mit dem Sampling zu sein. Konstanter Output, trotzdem Schwingungen. Ich werd mir das Signal morgen mal ungemittelt und notfalls nochmal analog mit dem Oszi angucken. Nicht, dass da irgendein Ventil im Huber immer auf und zugeht - das wäre der worst case...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: