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!

17.04.2013, 07:31
Beitrag #1

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
Question Einstellung des simple_ PID Regler
Guten Morgen liebe Labview Gemeinde,

seit einiger Zeit beschäftigt mich die Frage um einen PID Regler. Ich habe im Forum danach gesucht und den simple_PID.vi gefunden. Das Vi sah so simple aus und die Anschlüße waren klar definiert, darum habe ich ihn schnell eingebaut und fertig. Gestern konnte ich dann zum ersten mal meine Software an der Hardware mit realen Werten testen. Dabei ist mir aufgefallen, dass der Regler irgendwie nicht so funktioniert wie gedacht. Entweder er setzt meinen Strom auf 0 oder auf max Wert.

Kurze Erklären zu meinem Programm.
Ich muss eine Steuerung programmieren. Dort gibt es zwei Messmethoden, die den Strom regeln sollen und zwar einmal abhängig von der Leistung oder von der Frequenz eines Zählers. Sind zwei verschiedene Methoden. Die einfachere ist die mit der Leistung darum gehe ich darauf weiter ein.
Ich habe also meinem simple_PID.vi meinen Sollwert der Leistung den den Istwert übergeben. Dazu noch die Werte P, I und D und die grenzen von 0-3, da mein Strom 3 A nicht übersteigen darf.
Die Konstanten P, I und D können bei mir auch nur jeweiles den Wert 3 annehmen. Da ich mir dachte das ein höherer Wert nicht von Bedeutung ist aufgrund der gesetzten Limits. Oder irre ich mich hier?

Das ist meine Vorgehensweise. Ich glaube mein Problem ist die Wahl von P,I und D. Ich habe dafür ein extra Vi geschrieben, wo man genau das selbe passiert wie oben beschrieben nur das man die Konstanten über 3 Regler variable einstellen kann im Bereich 0-3. Aber egal was ich da einstelle, der Verlauf ändert sich nicht. -.-

Wo könnte also mein Problem liegen?

Gruß Atilla


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


Angehängte Datei(en)
11.0 .vi  PID-bestimmen.vi (Größe: 185,39 KB / Downloads: 476)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.04.2013, 07:56 (Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2013 08:08 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

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

ja, das gute alte SimplePID...

- Zum Einstellen von PID-Reglern gibt es die "Faustformel" nach Ziegler-Nichols, sehr gut beschrieben bei Wikipedia (suche dort nach den genannten Herren oder nach PID-Regler)...
- Die Werte für P,I,und D (eigentlich Kp, Tn, Tv) haben nichts mit den Outputlimits zu tun! Oder hat dein Regler plötzlich ein anderes Zeitverhalten, nur weil du bsw. eine Pumpe mit Drehzahl bis 3000rpm ansteuerst?

Zu deinem VI: Heavy overuse of local variables! ("Wert"-Propertynodes sind auch nur lokale Variablen, bzw. sogar die schlimmeren...)

Zum SimplePID: Es gibt keinen Grund, warum man an alten LV5-Programmierweisen (oder gar noch älter) festhalten sollte. Siehe Anhang...


Angehängte Datei(en)
11.0 .vi  simple_PID.vi (Größe: 11,34 KB / Downloads: 569)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 08:03 (Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2013 08:04 von Atilla.)
Beitrag #3

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Hallo GerdW

Zitat:- Die Werte für P,I,und D (eigentlich Kp, Tn, Tv) haben nichts mit den Outputlimits zu tun! Oder hat dein Regler plötzlich ein anderes Zeitverhalten, nur weil du bsw. eine Pumpe mit Drehzahl bis 3000rpm ansteuerst?
Ok das habe ich nicht gewusst. Nein ich denke nicht, dass das Zeitverhalten ändert das sollte konstant bleiben. Ok danke, dass du mir sagst das P,I und D eigentlich Kp, Tn, und Tv sind erleichtern schon so einiger, aber den artikel auf Wikipedia verstehe ich nicht so ganz deshlab mache ich mich nun auf den Weg in die Bibliothek hoffe das ich da was brauchbares finde. Danke GerdW


Zitat:Zu deinem VI: Heavy overuse of local variables! ("Wert"-Propertynodes sind auch nur lokale Variablen, bzw. sogar die schlimmeren...)
Was meinst du mit schlimmeren?

Gruß Atilla
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 08:10
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

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

"echte" lokale Variablen sind wenigstens (meist) schnell, wohingegen PropertyNodes mit zu den langsamsten Konstrukten gehören.
Nicht nur, dass ein Großteil der lokalen Variablen in deinem VI bei einem ordentlichen Design unnötig wären, du hast auch noch die prozessor-hungrigste Variante gewählt...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 08:58
Beitrag #5

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Gibt es noch andere Varianten vom simple-PID? Da sind doch keine Eigenschaftsknoten enthalten?

Lokale Variablen habe ich vermieden in meinem VI habe ich keine benutzt, dafür aber einige Eigenschaftsknoten. Da ich manchmal mitten im Ablauf genau diesen einen Wert kurz benötige. Ist das Schlimm?

Übrigens habe ich in der Bibliothek nichts gefunden. Oder auf jeden fall gemerkt, das ich auf die schnell einen gute kleine Anleitung wie ich P,I und D bestimme nicht so leicht finde. Die Faustformel von Ziegler-Nichols benötigt immer die kritischen Werte und ich bin mir nicht sicher wie ich die bestimme. Dann gab es noch ein anderes einfachers verfahren doch auch da musste ich etwas zuvor betimmen und ich weiß nicht wie ich das an meiner steuerung bewerkstellige, da ist schon sehr träge reagiert, viel Zeit braucht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 09:15 (Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2013 09:17 von GerdW.)
Beitrag #6

GerdW Offline
______________
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:dafür aber einige Eigenschaftsknoten
"Einige" ist hoffentlich humoristisch gemeint Smile

Zitat:Dann gab es noch ein anderes einfachers verfahren doch auch da musste ich etwas zuvor betimmen und ich weiß nicht wie ich das an meiner steuerung bewerkstellige
Genau, eine Sprungantwort. Einmal einen Sprung der Stellgröße vorgeben und die Systemreaktion aufzeichnen!
Aus der Sprungantwort dann die PID-Parameter nach der Tabelle bei Wikipedia abschätzen. Weiter unten stehen noch ein paar Hinweise, wie man die Parameter empirisch ermitteln kann...
Ganz ohne Theorie sollte man mit (PID-)Reglern nicht anfangen.

Zitat:da ist schon sehr träge reagiert, viel Zeit braucht.
Ein träges System. Totzeiten sind auch unschön...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 11:10
Beitrag #7

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
Zitat:"Einige" ist hoffentlich humoristisch gemeint Smile

hmm eigentlich nicht, also ich habe schon so einige davon verwendet, aber wenn du das so schreibst, dann glaube ich langsam das es keine gute idee war -.-

Zitat:Genau, eine Sprungantwort. Einmal einen Sprung der Stellgröße vorgeben und die Systemreaktion aufzeichnen!
Aus der Sprungantwort dann die PID-Parameter nach der Tabelle bei Wikipedia abschätzen. Weiter unten stehen noch ein paar Hinweise, wie man die Parameter empirisch ermitteln kann...
Ganz ohne Theorie sollte man mit (PID-)Reglern nicht anfangen.
Ich habe es gerade probiert, aber irgendwie erhalte ich nicht das gewünschte Ergebnis. Ich habe zu erst versucht den Regelverstärker Kkrit rauszubekommen. Dafür muss ich langsam den P-Regler erhöhen bis ein periodischer Verlauf zu erkennen ist. Das ist dann mein Kkrit. Aber es lässt sich keine Änderung erkennen. Ich habe I und D auf 0 gesetzt und P zu beginn auch. Da passiert nichts und sieht alles ordentlich aus. Erhöhe ich nun den P Regler, und dabei ist egal wie hoch, erkenne ich zwar einen periodischen Verlauf, aber der ist immer der Selbe, bei egal welchem Wert P. Meine Steuerung setzt in einem gewissen Abstand entweder den Strom auf Max oder auf 0. Und sonst passiert nichts. Es pendelt sich nichts um meinen Wunschwert ein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 12:00
Beitrag #8

GerdW Offline
______________
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:glaube ich langsam das es keine gute idee war
Ich habe nichts dagegen, mal eine Propertynode "Wert" zu verwenden, insbesondere wenn man den ErrorCluster als Sequenzierung nutzt. Aber dauernd und überall und nur als Ersatz für eine lokale Variable? Und wenn nebenan noch die Terminals ungenutzt rumliegen?
Außerdem: Man kann Settings etc in einem Cluster sammeln und nur diesen einen Cluster per Schieberegister speichern. In jedem Case holt man sich die nötigen Werte aus dem Cluster und schreibt neue hinein...

Zitat:Ich habe zu erst versucht den Regelverstärker Kkrit rauszubekommen...
Das ist Ziegler-Nichols. Bei Wikipedia wird auch die vereinfachte Variante beschrieben: anhand einer Sprungantwort die nötigen Parameter abschätzen! Die Sprungantwort nimmt man ohne aktiven PID-Regler auf: einfach die Systemreaktion auf einen Sprung der Stellgröße aufzeichnen...

Zitat:Meine Steuerung setzt in einem gewissen Abstand entweder den Strom auf Max oder auf 0.
Hört sich an, als wenn das System zu träge reagiert und der Regler jedesmal (zu schnell für das System) ins Outputlimit läuft...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 12:14
Beitrag #9

Atilla Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2012

11
2012
DE


Deutschland
RE: Einstellung des simple_ PID Regler
(17.04.2013 12:00 )GerdW schrieb:  
Zitat:Meine Steuerung setzt in einem gewissen Abstand entweder den Strom auf Max oder auf 0.
Hört sich an, als wenn das System zu träge reagiert und der Regler jedesmal (zu schnell für das System) ins Outputlimit läuft...

Wie kann ich den Regler abbremsen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2013, 12:30
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

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

den Regler "bremst" man mit Kp, Tn und Tv...

Wie schon gesagt: es hilft ungemein, wenn man sich einmal die Theorie dazu aneignet. Einfach so (mit einem anscheinend schwerfälligem System) an den Parametern rumspielen bringt nicht viel...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
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: