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 

Einstellung des simple_ PID Regler



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!

18.04.2013, 14:59
Beitrag #11

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Ich bin nun seit gestern dabei mir die theorie etwas näher zu bringen und bin mäßig erfolgreich, aber ich denke mittlerweile, das ich einfach den simple PID falsch anwende, weil ich einfach nicht verstehen kann, warum er mal meinen Wert setzt und dann wieder auf 0 setzt. Sogar wenn ich die Leistung erreicht habe, die ich haben möchte.

Mir ist durchaus bewusst, dass mein VI nicht sauber und ordentlich programmiert ist. Möglicherweise sind eine Funktionen unötige, aber das möchte ich gerade nicht hören. Mich interessiert ob ich den simple_PID.vi im Fall Leistungssteurung richtig plaziert habe. In diesem Fall befindet sich ein kleiner Zustandsautomat, doch davon wird im moment nur ein einziger Fall angesprochen (PID) den rest braucht man nicht zu beachten.

Der Output-Value von simple_PID wird an ein Vi geschickt, was dann aus dem Wert einen String macht und ihn an die Steuerung sendet. alle anderen SubVi's sind hier, denke ich, nicht von Bedeutung.

Ich hoffe ihr könnt mir da irgendwie weiter helfen, da ich extrem am verzeifeln bin.

gruß Atilla


11.0 .vi  simple_PID.vi (Größe: 12,73 KB / Downloads: 239)


11.0 .vi  PID-bestimmen.vi (Größe: 208,02 KB / Downloads: 252)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.04.2013, 19:52
Beitrag #12

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: Einstellung des simple_ PID Regler
Ich versuche mal aus deinen Andeutungen zu verstehen was du probiert hast und an welcher Stelle es Probleme gibt. Prinzipiell scheinst du die "korrekten" Quellen bzw. Senken verbunden zu haben.
(18.04.2013 14:59 )Atilla schrieb:  Ich bin nun seit gestern dabei mir die theorie etwas näher zu bringen und bin mäßig erfolgreich, aber ich denke mittlerweile, das ich einfach den simple PID falsch anwende, weil ich einfach nicht verstehen kann, warum er mal meinen Wert setzt und dann wieder auf 0 setzt. Sogar wenn ich die Leistung erreicht habe, die ich haben möchte.
Für die letzten Punkte würde ich einfach "falsche" PID-Parameter vermuten. Je nach Parametrierung versucht der PID einem Überschwingen über den Sollwert entgegenzusteuern. Und das kann auch bedeuten das er die Stellgröße auf 0 fährt.

Wie bist du mit deinen Versuchen vorgegangen? Wie sahen hierbei die PID-Parameter aus?
Was nutzt du um dir die Theorie näher zu bringen? Evtl. helfen hier ein paar Ressourcen von der NI Seite wie z.B. PID Theory Explained weiter.
Interessant wären sicher auch mal Graphen mit Sollwert, Istwert und Stellgröße. Einerseits für dich um die Regelparameter einstellen zu können und andererseits für uns um dir helfen zu können.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2013, 08:53
Beitrag #13

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Zitat:Für die letzten Punkte würde ich einfach "falsche" PID-Parameter vermuten. Je nach Parametrierung versucht der PID einem Überschwingen über den Sollwert entgegenzusteuern. Und das kann auch bedeuten das er die Stellgröße auf 0 fährt.
Das Interessante ist halt, dass selbst wenn ich meinen Wunschwert erhalten habe setzt der Regler meinen Strom weiter, entweder zu hoch oder zu niedrig.

Zitat:Wie bist du mit deinen Versuchen vorgegangen? Wie sahen hierbei die PID-Parameter aus?
Zu aller erst habe ich einfach per Try and Error ausprobiert. Dafür habe ich meinen P Regler langsam hoch gesetzt und geschaut was passiert. Ich habe nun festgestellt das ich bei einem P-Wert von ca. 0,5 einen realtiv stabilen Verlauf habe, damit meine ich das die Überschläge nicht so groß sind und mein Strom im Bereich von 1,8-2,2 schwingt. Wenn ich jetzt die anderen Paramter und langsam hochsetze, so ergibt sich nur das die Auschläge wieder größer werden. Er hält einfach keinen Wert. Es ist egal welchen Wert ich an gebe, der Sollwert ist auch variabel, also der Nutzer stellt einen Wert ein und der bleibt, aber ich bin mittlerweile froh wenn ich überhaupt einen Wert halten kann.

Zitat:Was nutzt du um dir die Theorie näher zu bringen? Evtl. helfen hier ein paar Ressourcen von der NI Seite wie z.B. PID Theory Explained weiter.
Dafür habe ich mich erst in Wikipedia umgesehen und anschließend eine passenden Fachliteratur gesucht und gefunden. Dort habe ich mir das 1. Kapitel durchlesen um einfach das Vokabular zu verstehen. Anschließend habe ich mir versuch die Methoden der Einstellung näher zu bringen. Dabei habe ich mich für die Methode von ZIegler und Nichols entschieden, da sie mir sehr einfach schien.    
Ich habe also erstmal meine Hochspannung auf 1000V gesetzt und die Strombegrenzung dafür auf 20mA. Aus diesem beiden Werten wird auch die Leistung berechnet, die konstant gehalten werden soll. Der Filamentstrom ist die Stellgröße, je nach dem wie dieser eingestellt ist, ändert sich der Emissionsstrom und die Hochspannung. Ab einem Filamentstrom von 2A erhalte ich erst einen Auschlag bei der Leistung.
Ich habe erst einen Strom von 0 gehabt und ihn dann auf 2,2 gesetzt. Die Sprungantwort habe ich aufgezeichnet und versucht mittels einer ausgleichgeraden eine Wendetangente zu bestimmten und daraus dann die Werte Tn=1,58 und Tv=2,239(siehe Wikipedia) aus zu rechnen. Aber die ausgerechneten Werte ergaben auch keine Besserung. Ich habe noch eine 2. Sprungantwort aufgezeichnet und erhielt ähnliche Werte für Tn und Tv.
Ich habe mir versucht einige Beispiele von Labview klar zu machen, doch ganz ohne Erklärung ist das etwas schwer. Danke für den Link ich werde mir das mal durchlesen.

Zitat:Interessant wären sicher auch mal Graphen mit Sollwert, Istwert und Stellgröße. Einerseits für dich um die Regelparameter einstellen zu können und andererseits für uns um dir helfen zu können.
Ich hoffe das dieses Bild Antwort genug ist :    
Wie schon erwähnt ist der Filamentstrom die Stellgröße und diese schwnakt von 0,1 bis 2,3 hin und her. Manchmal werden einige Werte dazwischen gesetzt. Und mein Sollwert von 5W wird ein paar mal erreicht, aber er wird nicht gehalten.
An der Kommunikation liegt es nicht, da, wie ihr im Bild sehen könnte, ich jeden Sende- und Empfangsstring anzeigen lassen haben und diese genau die Werte wieder geben die anzeiget werden.

Danke für eure Bemühungen.

Gruß Atilla
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2013, 09:47
Beitrag #14

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Eine kleine Anmerkung. Ich habe mir nun diese Seite durchgelesen und musste feststellen, dass ich das eigentlich alles schon wusste.
Ich habe auch versucht mit der dort beschriebenen Methode des Tunings meine Werte einzustellen, aber ich bekomme nicht diese gleichmäßig oszillierenden Fall um meinen Sollwert hin. Die Oszilation ist viel zu stark.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2013, 11:22
Beitrag #15

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Ich entschuldige mich zu tiefst für meinen dreifach Post, aber ich habe hier noch zwei Diagramm aufgenommen, wo ich denke, das sie etwas hilfreicher sein könnten.
Ich möchte euch nicht dränge, sondern euch nur genug Informationen liefern. Ich hoffe das ihr mir damit helfen könnt.

Mit freundlichen Grüße

Atilla

   
   

Hier ist die starke Schwankung um den Sollwert gut zu erkennen und das der Ausschlag nach unten immer sehr stark ist. Egal wie ich meine Paramter einstelle, ich schaffe es nicht einmal P so einzustellen, das ruhig um den Sollwert schwankt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2013, 17:43
Beitrag #16

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: Einstellung des simple_ PID Regler
Dein System ist scheinbar erheblich dynamische wie du mit deiner Datenerfassung bzw. Regelung. Zu sehen ist das an den wenigen (meist 3) Datenpunkten welche einen Peak und das Tal abbilden. Du regelst quasi zu selten. Um hier mit einer langsamen Regelung bessere Ergebnisse zu erzielen solltest du die Regelparameter stark zurückdrehen um ein eher träges Regelverhalten zu bekommen. Aktuell gibt dein Regler eine Stellgröße vor und wenn er den nächsten Ist-Wert sieht ist die Strecke schon sonstwohin geschossen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.04.2013, 10:01
Beitrag #17

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
(19.04.2013 17:43 )Holy schrieb:  Dein System ist scheinbar erheblich dynamische wie du mit deiner Datenerfassung bzw. Regelung. Zu sehen ist das an den wenigen (meist 3) Datenpunkten welche einen Peak und das Tal abbilden. Du regelst quasi zu selten. Um hier mit einer langsamen Regelung bessere Ergebnisse zu erzielen solltest du die Regelparameter stark zurückdrehen um ein eher träges Regelverhalten zu bekommen. Aktuell gibt dein Regler eine Stellgröße vor und wenn er den nächsten Ist-Wert sieht ist die Strecke schon sonstwohin geschossen.

Es wirkt so, das habe ich mir auch gedacht. Darum habe ich die Wartezeit der Schleife variable einstellbar gemacht und festgestellt das bei einer Zeit unterhalb von 350ms mein Programm nicht mehr mitkommt und zwischenzeitlich einfach nur alles 0 ausgibt.

Dann habe ich versucht niedrige Regelparamter zu verwenden und bin dafür die Regler in 0,001 Schritten hochgelaufen um sehen was passiert. Bis zu dem Zeitpunkt wo mein ich über 2A Filamentstrom komme läuft alles ganz gut. Die Schwankungen sind nur minimal. Aber dann irgendwann werden die Ausschläge stärker und jeder 3. Wert wird auf Null gesetzt. Mit I und D konnte ich da keine Glättung erzwingen. Stattdessen wurden die Auschlägen stärker.
Das doofe ist, dass meine Regelung erst ab 2A Strom anfangen kann, denn ab da erhöht sich auch der Emissionsstrom und somit die Leistung. Aber in diesem Bereich erhalte ich keine Glättung. Angry

Gruß Atilla
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.04.2013, 10:17
Beitrag #18

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Einstellung des simple_ PID Regler
Hallo Attila,

Zitat:festgestellt das bei einer Zeit unterhalb von 350ms mein Programm nicht mehr mitkommt und zwischenzeitlich einfach nur alles 0 ausgibt.
Dein Programm kommuniziert per VISA und serieller Schnittstelle (?) mit deinem Gerät. Leider hast du bisher nicht angegeben, mit welcher Geschwindigkeit hier Daten ausgetauscht werden:
- die Geschwindigkeit der Schnittstelle ist begrenzt durch die Baudrate und die Anzahl der zu übertragenden Bytes
- das Gerät könnte selbst noch einiges (von Millisekunden bis Sekunden) an Zeit für eine Antwort/Messung benötigen
Außerdem hast du die subVIs nicht angehangen, in denen die Kommunikation stattfindet. Hier könnte das Problem sein, dass dein Gerät nicht schnell genug antwortet und deshalb eine Null ausgegeben wird - als Standardwert für fehlende/fehlerhafte Daten in der Geräte-Botschaft. Hast du das per Debugging überprüft? Liefert dein Gerät überhaupt korrekte Daten?

Wie schon geschrieben: wenn dein System schneller agiert als du überhaupt Daten messen/austauschen kanst, wird eine Regelung schwierig. Da bleibt dann nur der vorgeschlagene Weg, mit sehr langsamen Regelparametern zu arbeiten und sich (extrem) langsam dem Sollwert anzunähern...

Zu der gezeigten Sprungantwort oben: Kannst du das nochmal plotten mitsamt dem Sprung des Stellparameters? Man sieht nur eine Kurve, weiß aber nicht, was/wie/wann der Sprungbefehl abgesetzt wurde. Ein Zählindex an der X-Achse ist auch nicht hilfreich, echte Zeitangaben vereinfachen die Interpretation...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.04.2013, 10:44
Beitrag #19

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Zitat:Dein Programm kommuniziert per VISA und serieller Schnittstelle (?) mit deinem Gerät. Leider hast du bisher nicht angegeben, mit welcher Geschwindigkeit hier Daten ausgetauscht werden:
- die Geschwindigkeit der Schnittstelle ist begrenzt durch die Baudrate und die Anzahl der zu übertragenden Bytes
- das Gerät könnte selbst noch einiges (von Millisekunden bis Sekunden) an Zeit für eine Antwort/Messung benötigen
Außerdem hast du die subVIs nicht angehangen, in denen die Kommunikation stattfindet. Hier könnte das Problem sein, dass dein Gerät nicht schnell genug antwortet und deshalb eine Null ausgegeben wird - als Standardwert für fehlende/fehlerhafte Daten in der Geräte-Botschaft. Hast du das per Debugging überprüft? Liefert dein Gerät überhaupt korrekte Daten?

Die Baudrate beträgt 9600 und ja das Gerät liefert korrete Daten. Die Subvis setzen einen String zusammen und senden diesen an das Gerät. Ich lasse mir durchgehend den String ausgeben und das was gesetzt oder ausgelesen wird passt mit meiner Ausgabe überein. Die Kommunikation habe ich per Konsole geprüft und daran sollte es nicht liegen, das die Werte falsch sind.

Zitat:Wie schon geschrieben: wenn dein System schneller agiert als du überhaupt Daten messen/austauschen kanst, wird eine Regelung schwierig. Da bleibt dann nur der vorgeschlagene Weg, mit sehr langsamen Regelparametern zu arbeiten und sich (extrem) langsam dem Sollwert anzunähern...
Wie langsam? In 0,0001 Schritten?

Zitat:Zu der gezeigten Sprungantwort oben: Kannst du das nochmal plotten mitsamt dem Sprung des Stellparameters? Man sieht nur eine Kurve, weiß aber nicht, was/wie/wann der Sprungbefehl abgesetzt wurde. Ein Zählindex an der X-Achse ist auch nicht hilfreich, echte Zeitangaben vereinfachen die Interpretation...
Ich weiß nicht genau was du damit meinst. Ich habe die Paramter P,I und D für die Sprungantwort nicht verwendet sondern manuell eingestellt. Also ich habe die Hochspannung und die Strombegrenzung eingestellt. Nach einigen Sekunden habe ich dann meinen Filamentstrom auf 2,2 Amper hochgesetzt und das Ergebnis aufgezeichnet. Anschließend habe ich dann den Wert erhöht auf 2,5 Amper.
Ich habe das ganze nochmal aufgenommen und diesemal ist die Einheit auf der x-Achse Sekunde auch wenn es da nicht steht.

   
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.04.2013, 12:09
Beitrag #20

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Einstellung des simple_ PID Regler
Hallo Attila,

Zitat:Die Baudrate beträgt 9600 und ja das Gerät liefert korrete Daten.
D.h. du hast eine Übertragungsrate von ca. 1kByte/s, bei Botschaften von 10 Byte also max. 100 Messwerte pro Sekunde (exklusive Befehlsverarbeitungszeit des Geräts). Realistisch dürften 25Hz Samplerate sein...

Zitat:Die Subvis setzen einen String zusammen und senden diesen an das Gerät. Ich lasse mir durchgehend den String ausgeben und das was gesetzt oder ausgelesen wird passt mit meiner Ausgabe überein. Die Kommunikation habe ich per Konsole geprüft und daran sollte es nicht liegen, das die Werte falsch sind.
Und was sendet dein Gerät, wenn du mittendrin "Null"-Werte erhälst? Wo kommen diese Nullen her?

Zitat:Wie langsam? In 0,0001 Schritten?
Du sollst während der Regelung nicht an den PID-Parametern rumspielen!
Man stellt diese Parameter einmal ein und der Regler/das System soll sich dann (bei dir sehr langsam) an den Sollwert annähern...

Zitat:Nach einigen Sekunden habe ich dann meinen Filamentstrom auf 2,2 Amper hochgesetzt und das Ergebnis aufgezeichnet.
Diese Kurve ist noch "schön": das Gerät reagiert in einem Zeitraum von ca. 20s auf den Sprung und arbeitet "monoton steigend". P sollte ca. 1 sein: Stellwertänderung von 2,2 führt zu Istwertänderung von ca. 2,5.

Zitat:Anschließend habe ich dann den Wert erhöht auf 2,5 Amper.
Und hier wird's kritisch: Dein System reagiert innerhalb von 3s - und das sind bei dir gerade mal 3 Messwerte! Schlimmer noch: erst gibt es eine Reaktion in die falsche Richtung (diese Null bei 16s), danach dann innerhalb von 2 Messwerten auf den Sollwert. Wie soll ein PID-Regler damit klarkommen, wenn er womöglich noch auf Integral(E) und Diff(E) reagieren soll und das Resultat seiner Stellwertänderung immer erst eine Sekunde später "sieht"?
Dein P-Wert sollte hier eine ganz andere Größenordnung haben (Stellwertänderung von 0,3 führt zu Istwertänderung von 13). Solche stark nichtlinearen Systeme fahre ich gern mit einem PID-Regler mit Vorsteuerung: man macht eine grobe Abschätzung des Stellwertes über eine Vorsteuerung (die das nichtlineare Verhalten in einer Kennlinie abbildet) und der PID-Regler muss dann nur relativ kleine Fehlerwerte "wegregeln". Allerdings haben meine System typischerweise Zeitkonstanten in der Größenordnung 30s bis 2min, da ist das ganze unkritisch...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Timing Einstellung DAQ-assistent bachatero18 6 4.423 26.02.2019 15:11
Letzter Beitrag: bachatero18
  PID Regler belu003 14 25.759 12.01.2015 14:41
Letzter Beitrag: se
  Einstellung in "Signal simulieren" JoKo 4 5.278 06.06.2013 10:23
Letzter Beitrag: JohnnyBlack
  PID-Regler itsme87 12 21.181 05.10.2011 11:50
Letzter Beitrag: itsme87
  PID-Regler jooh 3 7.056 14.06.2011 15:22
Letzter Beitrag: jooh
  PID-Regler-VI Aleph1 3 9.673 16.09.2010 08:40
Letzter Beitrag: Aleph1

Gehe zu: