Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kleine Verständnisfrage zu PID-Reglern (https://www.delphipraxis.net/159494-kleine-verstaendnisfrage-zu-pid-reglern.html)

Deep-Sea 30. Mär 2011 15:03

Kleine Verständnisfrage zu PID-Reglern
 
Hallöchen allerseits :-D

Ich bin gerade an einem neuen Projekt dran, in dessen "Lastenheft" eine PID-Regelung gefordert ist. Da ich mich noch nie mit so etwas beschäftigt habe, bin ich seit einigen Tagen erst einmal am Lesen und Probieren - so langsam blicke ich ja auch durch *stolz* :P

So, nun zur Frage:
Die Regeländerung des D-Glieds wirkt sich ja nur von einem Zyklus zum nächsten aus. Das heißt also, wenn das zu regelnde System und/oder der Aktor träge sind, dann ist der nur kurzlebige D-Anteil praktisch vernachlässigbar und ich habe nur einen PI-Regler. Oder? :stupid:

guinnes 30. Mär 2011 15:08

AW: Kleine Verständnisfrage zu PID-Reglern
 
Nein, der D-Teil ist nicht nur einen Zyklus aktiv.
In der Definition ( so wie ich sie gelernt habe vor 40 Jahren ) ist die D-Zeit die Zeit, die der D-Anteil braucht, um auf den Wert zu fallen, den der P-Anteil hat. Ich kann morgen mal kucken, ich hab da mal einen programmiert, bin mir aber nicht sicher, ob ich den noch finde

jfheins 30. Mär 2011 15:15

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von Deep-Sea (Beitrag 1092019)
Die Regeländerung des D-Glieds wirkt sich ja nur von einem Zyklus zum nächsten aus. Das heißt also, wenn das zu regelnde System und/oder der Aktor träge sind, dann ist der nur kurzlebige D-Anteil praktisch vernachlässigbar und ich habe nur einen PI-Regler. Oder? :stupid:

Umgekehrt wird ein Schuh draus: Gerade wenn das System träge ist, also z.B. ein I Glied enthält, kann man den D Anteil erhöhen um den Sollwert schneller zu erreichen :-)

Deep-Sea 30. Mär 2011 15:28

AW: Kleine Verständnisfrage zu PID-Reglern
 
Hach, dieser D-Anteil macht mich noch verrückt :? Ich werde mal etwas konkreter:

In meinem aktuellen Testaufbau versuche ich einfach mal eine Temperatur zu regeln. Zum heizen nutze ich einen Widerstand, der direkt auf dem Temperaturfühler liegt. Ein Lüfter sorgt zudem für etwas schnellere Abkühlung, außerdem kann ich damit sehr einfach Änderungen oder Störungen simulieren.

Meine Regelfunktion rufe ich nun jede Sekunde auf. Es ist nun so, dass die Temperatur direkt nach dem einschalten des Widerstands viele Sekunden braucht, um 1°C zu steigen.
Wenn ich nun von der aktuellen Temperatur genau 1°C steigen möchte, existiert der D-Anteil ja aber nur in der ersten Sekunde. Irgendwie wie ein Tropfen auf den heißen Stein. :gruebel:

guinnes 30. Mär 2011 17:29

AW: Kleine Verständnisfrage zu PID-Reglern
 
Soweit ich mich erinnere :
Code:
Zyklus 0 : D := 0; XAlt := X;
Zyklus 1 : D := D / Faktor + (XAlt - X); XAlt := X;
Zyklus 2 : D := D / Faktor + (XAlt - X); XAlt := X;
Zyklus 3 : D := D / Faktor + (XAlt - X); XAlt := X;
usw.
Der Faktor hängt von Tv und dem Kp ab und ist immer größer 1 ( Ich benutze eigentlich meistens Xw )
Anstelle von X kann man auch Xw nehmen ( Ist bei den Reglern, die ich kenne, einstellbar )
Vielleicht hilft dir die Beschreibung des Kreuzbalgreglers weiter
Dazu müssen natürlich die Parameter ( Kp, Tn, Tv ) zur Regelstrecke passen. Die Einstellung ist alles andere als trivial. Ich kenne Leute, die machen das aus dem Handgelenk, andere haben einfach das Gespür, und der Rest scheitert wahrscheinlich.

hathor 30. Mär 2011 17:38

AW: Kleine Verständnisfrage zu PID-Reglern
 
Wer hier denkt, dass ein PID-Regler nur in Software realisiert werden kann, liegt falsch!

PID-Regler gibt es schon sehr lange - da wussten viele noch nicht, was ein Computer ist.
PID-Regler wurden früher in diskreter Hardware realisiert mit vielen ICs und Transistoren, um z.B. eine Metallkugel oder etwas anderes unterhalb eines Elektromagneten schweben zu lassen. Da war keine Zeile Software im Spiel.

guinnes 30. Mär 2011 18:17

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von hathor (Beitrag 1092087)
Wer hier denkt, dass ein PID-Regler nur in Software realisiert werden kann, liegt falsch!

Hat das jemand behauptet ?
Hier geht es darum, wie macht man das in Software

guinnes 30. Mär 2011 18:27

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von hathor (Beitrag 1092087)
PID-Regler wurden früher in diskreter Hardware realisiert mit vielen ICs und Transistoren, um z.B. eine Metallkugel oder etwas anderes unterhalb eines Elektromagneten schweben zu lassen.

Oder sogar in Pneumatik,so kenne ich meine erste PID-Regler

haentschman 30. Mär 2011 18:58

AW: Kleine Verständnisfrage zu PID-Reglern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo alle miteinander...

vieleicht hilft angehängtes PDF die Berechnungen zu verstehen...
PS: alles läßt sich auch mit einer Software berechnen. :zwinker:

hathor 30. Mär 2011 19:25

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von guinnes (Beitrag 1092096)
Zitat:

Zitat von hathor (Beitrag 1092087)
Wer hier denkt, dass ein PID-Regler nur in Software realisiert werden kann, liegt falsch!

Hat das jemand behauptet ?
Hier geht es darum, wie macht man das in Software

Warum so giftig?
Nur weil mein Thread nach Deinem folgt, musst Du Dich nicht angegriffen fühlen - HAT MIT DIR NICHTS ZU TUN !!!

jfheins 30. Mär 2011 19:42

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von Deep-Sea (Beitrag 1092034)
Hach, dieser D-Anteil macht mich noch verrückt :? Ich werde mal etwas konkreter:
In meinem aktuellen Testaufbau versuche ich einfach mal eine Temperatur zu regeln. Zum heizen nutze ich einen Widerstand, der direkt auf dem Temperaturfühler liegt. Ein Lüfter sorgt zudem für etwas schnellere Abkühlung, außerdem kann ich damit sehr einfach Änderungen oder Störungen simulieren.
Meine Regelfunktion rufe ich nun jede Sekunde auf. Es ist nun so, dass die Temperatur direkt nach dem einschalten des Widerstands viele Sekunden braucht, um 1°C zu steigen.
Wenn ich nun von der aktuellen Temperatur genau 1°C steigen möchte, existiert der D-Anteil ja aber nur in der ersten Sekunde. Irgendwie wie ein Tropfen auf den heißen Stein. :gruebel:

Ja, aber wenn du einen Sprung reingibst, kommt ja erstmal ein Diracimpuls raus. D.h. dein Widerstand wird erstmal "volle Pulle" angeheizt (eine Sekunde lang, ja) und dann "normal" weitergeregelt.

Wenn den Widerstand nur an/aus kann erübrigt sich so ein PID Regler natürlich. Dann tut es auch ein P Glied. (Wenn Temp. unter Solltemp. dann ein, sonst aus)

guinnes 31. Mär 2011 05:32

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von hathor (Beitrag 1092111)
Warum so giftig?

Sorry, wenn sich das giftig anhörte, was absolut nicht so gemeint

Deep-Sea 31. Mär 2011 08:13

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von guinnes (Beitrag 1092083)
Code:
[...]
Zyklus 1 : D := D / Faktor + (XAlt - X); XAlt := X;
[...]

Anstatt addieren, wohl eher multiplizieren, oder? Sonst würde immer etwas größer Null raus kommen, egal ob sich was ändert oder nicht.


Zitat:

Zitat von jfheins (Beitrag 1092115)
Wenn den Widerstand nur an/aus kann erübrigt sich so ein PID Regler natürlich. Dann tut es auch ein P Glied. (Wenn Temp. unter Solltemp. dann ein, sonst aus)

Er kann - hardwarebedingt - nur voll an oder aus sein, Richtig. Aber ich steuere ihn mit PWM an, kann also ich auch mit 50% oder so heizen :-D

Zitat:

Zitat von jfheins (Beitrag 1092115)
Ja, aber wenn du einen Sprung reingibst, kommt ja erstmal ein Diracimpuls raus. D.h. dein Widerstand wird erstmal "volle Pulle" angeheizt (eine Sekunde lang, ja) und dann "normal" weitergeregelt.

Und genau das meinte ich. Wenn ich nun z.B. die Regelung alle 10ms aufrufen würde, und ich selbst bei 100% Heizleistung eine Minute bräuchte um die Temperatur um 1°C zu steigern, dann ist der Effekt des D-Anteils praktisch Null.
Darum, und nur darum geht es mir gerade ...


PS: Schön, dass nun diskutiert wird, in welchen Formen PID alles auftritt. Aber das bringt mir nix :wink:

guinnes 31. Mär 2011 08:32

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von Deep-Sea (Beitrag 1092168)
Anstatt addieren, wohl eher multiplizieren, oder? Sonst würde immer etwas größer Null raus kommen, egal ob sich was ändert oder nicht.

Nene, Addieren ist schon richtig. Bei Gleichheit kommt nichts neues dabei, aber das alte D muß ja noch abgearbeitet werden. Dazu : Wenn der Regelkreis geschlossen ist, sollte der Istwert auch irgendwann mal steigen, dadurch ändert sich das Vorzeichen der Differenz.

hathor 31. Mär 2011 08:54

AW: Kleine Verständnisfrage zu PID-Reglern
 
Bei PWM wäre ein FUZZY-Programm besser geeignet als die PID-Regelung.

Deep-Sea 31. Mär 2011 09:31

AW: Kleine Verständnisfrage zu PID-Reglern
 
@guinnes:
Ah. AHHHH. Ja, so gibt das Teil auch langsam mal einen Sinn für mich! Weil so kann ich endlich auch mal einstellen, wie lange der D-Anteil existiert. Hab gerade mal zum Testen ein Überschwingen der Temperatur (weil P- und I-Anteil bei großen Ist-Soll-Differenzen zu lange Heizen) damit kompensiert.
Danke erst mal für diesen Lichtblick :thumb:


Zitat:

Zitat von hathor (Beitrag 1092188)
Bei PWM wäre ein FUZZY-Programm besser geeignet als die PID-Regelung.

Ähm joa, aber seit wann habe ich hier was zu sagen?! PID will der Kunde, also hab ich das zu machen, Diskussion beendet :roll:
Bzw: Jetzt zum testen ist es ein Widerstand mit PWM, später dann aber was ganz anderes.

guinnes 1. Apr 2011 09:10

AW: Kleine Verständnisfrage zu PID-Reglern
 
Du hast auch hoffentlich daran gedacht, den I-Anteil zu begrenzen ?

Deep-Sea 4. Apr 2011 08:09

AW: Kleine Verständnisfrage zu PID-Reglern
 
Zitat:

Zitat von guinnes (Beitrag 1092370)
Du hast auch hoffentlich daran gedacht, den I-Anteil zu begrenzen ?

Jap :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz