Forum: Mikrocontroller und Digitale Elektronik Kurze Frage zur PID Regelung


von GS (chromosoma)


Lesenswert?

Ich muss ein einfaches PI Regler zusammenbasteln.

Es geht um ein Heizofen und die Regelung der Temperatur mit der 
Leistung.
Ich habe jetzt  die Messkurve aufgenommen und  alle wichtige Werte laut
https://controls.engin.umich.edu/wiki/index.php/PIDTuningClassical

ermittelt.
Nun habe ich ein Denkfehler.
Falls e(t), also der Unterschied zwischen Ist und Soll  zu NUll wird, 
geht der Steuerungssignal eben auf Null?

Nehmen wir an, ich benutze einfach die P Regelung, dann ist u(t)=K*0=0. 
Das macht aber keinen Sinn, oder?

Verstehe ich irgendwas falsch? Ist u(t) irgendwie nur der Korrekturwert?

von Dussel (Gast)


Lesenswert?

Du erreichst auch mit einem reinen P-Regler nicht den Sollwert. Der hat 
praktisch immer eine bleibende Regelabweichung.
Stell dir vor, die Stellgröße ist die Heizleistung. Sei jetzt der Raum 
auf Solltemperatur aufgewärmt, ist die Heizleistung, wie du festgestellt 
hast, null und der Raum kühlt ab. Damit steigt langsam die Heizleistung, 
da sich eine Abweichung zwischen Soll und Ist einstellt. Solange die 
Heizleistung gering ist, kühlt der Raum weiter ab. Dadurch steigt die 
Leistung. Irgendwann ist der Punkt erreicht, an dem Heizleistung und 
Wärmeverlust sich ausgleichen. An dem Punkt bleibt der Regler dann 
stehen.

Der I-Anteil sorgt dafür, dass bei einer Differenz von null die 
Stellgröße nicht (immer) auch null ist. Wir befinden uns an dem Punkt, 
auf den der reine P-Regler regelt (unter der Solltemperatur). Jetzt wird 
ein I-Anteil dazugeschaltet. Der Integrator sieht die Differenz und 
läuft deswegen langsam hoch. Er erhöht also zusätzlich die Heizleistung, 
bis irgendwann die Solltemperatur erreicht ist. Dann liegt am Integrator 
ein Eingangswert von null an und er bleibt bei der eingestellten 
Heizleistung stehen.

von GS (chromosoma)


Lesenswert?

Danke, ich denke mein Denkfehler lag am Integrator. Was passiert wenn 
die Abweichung negativ ist, also Sollwert>Istwert.
Dann ist U(t), unter Umständen auch negativ (bei reinem P Regler 
sowieso). Aber ich kann ja die Heizleistung nicht negativ Stellen. Soll 
ich in diesem Fall die Heizleisutng einfach auf NUll stellen?
Wie werden solche Fälle behandelt?

von Karl M. (Gast)


Lesenswert?

Hallo,

ich definiere mal negative Heizleistung als Kühler, aber das schafft ein 
Brenner nicht.
Somit bleibt nur nicht Heizen, z.B. im Sommer bei 30°C über die Fenster 
etc.

von GS (chromosoma)


Lesenswert?

Alles klar, es geht um ein Induktionsofen  die bis 1800 °C aufheizt.
Ich denke ich werde bei negative u(t) die Leistung schrittweise, 
proportional zu u(t) verringern

von pit (Gast)


Lesenswert?

>Aber ich kann ja die Heizleistung nicht negativ Stellen. Soll
>ich in diesem Fall die Heizleisutng einfach auf NUll stellen?
>Wie werden solche Fälle behandelt?

Du machst dir zuviel und zu abwegige Gedanken.

Der P-Anteil kann bedingt durch die Art der Strecke nicht negativ werden 
(es gibt keine Kühlung bei dir).
Also muß deine Software den P-Anteil auf einen Minimalwert von 0 
begrenzen.


Der I-Anteil wird bei soll>ist negativ werden. Das soll er auch. Er 
verringert die Stellgröße.

Also wird U durch den I-Anteil verkleinert, bis soll<=ist.

Einfach mal den P und I Anteil überdenken.

Alos U nicht auf Null setzen, wenn soll>ist.
Damit baust du einen Zweipunktregler und keinen PI-Regler.

von GS (chromosoma)


Lesenswert?

pit schrieb:
> Alos U nicht auf Null setzen, wenn soll>ist.
> Damit baust du einen Zweipunktregler und keinen PI-Regler.

Nein nein, ich meinte, falls U(t)<0 dann Leistung=0,oder besser 
Leistung=Leistung*0.9 um Temperatursprünge zu vermeiden

von Possetitjel (Gast)


Lesenswert?

pit schrieb:

>>Aber ich kann ja die Heizleistung nicht negativ Stellen. Soll
>>ich in diesem Fall die Heizleisutng einfach auf NUll stellen?
>>Wie werden solche Fälle behandelt?
>
> Du machst dir zuviel und zu abwegige Gedanken.

Absolut nicht.

Die Tatsache, dass ein üblicher Ofen zwar heizen, aber nicht
kühlen kann, ist der Grund dafür, dass die übliche lineare
Regelungstheorie strenggenommen nicht angewendet werden darf.

Die Zeitkonstanten für Anstieg und Abfall sind nämlich deutlich
unterschiedlich.

Wie solche Fälle normalerweise behandelt werden, weiss ich
leider auch nicht.
Ich würde den Regler auf minimales Überschwingen hin auslegen.

von Olaf (Gast)


Lesenswert?

> Wie solche Fälle normalerweise behandelt werden, weiss ich
> leider auch nicht.

Man sorgt dafuer das die maximale moegliche Heizleistung nicht zu weit 
von der benoetigten Heizleistung entfernt ist. Wenn man wie in diesem 
Falle auf 1800Grad heizen will dann dimensioniert man die Heizung so das 
sie bei 100%ED vielleicht 2000-2200Grad schafft. Will man denselben Ofen 
jedoch auch auf 100Grad regeln dann wird es schon sportlicher. Ich hab 
in so einem Fall schonmal unterschiedliche Parameter je nach 
Temperaturbereich verwendet.

Olaf

von Pandur S. (jetztnicht)


Lesenswert?

Der sinnvolle Ansatz bei einer Heizung ist die Abhaengigkeit der 
Heizleistung zur Umgebungstemperatur aufzunehmen, und das Stellglied so 
anzusteuern.  Denn sonst muss der Integrator erst mal an diesen Punkt 
hinfahren. Dem ueberlagert man dann den Regler.

von Dussel (Gast)


Lesenswert?

Andere haben ja schon geschrieben, dass bei einer Heizung eine negative 
Stellgröße nicht sinnvoll ist. Es gibt aber natürlich Anwendungsfälle, 
in denen die Stellgröße negativ werden muss.
Eine Heizung (auch eine Ofenheizung) ist normalerweise ziemlich 
genügsam, was die Regelung betrifft. Ich würde sagen, dass in den 
meisten Fällen ein Hystereseregler ausreicht. Wenn man einen PI-Regler 
nutzen will, muss man sich zumindest keine großen Gedanken machen über 
die genauen Parameter machen.

von pit (Gast)


Lesenswert?

>Die Tatsache, dass ein üblicher Ofen zwar heizen, aber nicht
>kühlen kann, ist der Grund dafür, dass die übliche lineare
>Regelungstheorie strenggenommen nicht angewendet werden darf.

Wer bei einer Heizung (und noch dazu bei mehr als 1000 Grad) ans Kühlen 
denkt, um eine Regelung zu entwerfen, der macht irgendwas falsch.

Normal reicht ein Zweipunktregler aus. Selbst die Hytereese ergibt sich 
aus der lahmen Strecke.

PI ist Luxus, den man sich leisten kann. Zumal ein PI-Regler in Software 
obereasy zu realisieren ist. Auch eine Begrenzung des I-Anteils ist da 
sehr, sehr einfach. Auch ein Einsatzpunkt des I-Anteils nur um kleine 
Temperaturdifferenzen herum ist locker zu implementieren.

von GS (chromosoma)


Lesenswert?

Verdammt, ich brauche wieder Hilfe.
Anbei die Kurve, die ich aufgenommen habe.
Für diese Messung habe ich die Heizleistung um 1% erhöht (die Leistung 
lässt sich zwischen 0 und 100% auswählen) und gewartet.

Kp sollte dann sein *

Kp= (1%/115°C)*(1331/7)
für P-Teil ergibt sich der Wert von 1.04.
Das Macht aber keinen Sinn. Falls die Temperaturdifferenz 100 °C ist, 
soll die Leistung doch nicht über 100% gehen.
Hab ich irgendwas vergessen?

*
https://controls.engin.umich.edu/wiki/index.php/PIDTuningClassical

von Karl H. (kbuchegg)


Lesenswert?

Böser K. schrieb:

> Das Macht aber keinen Sinn. Falls die Temperaturdifferenz 100 °C ist,
> soll die Leistung doch nicht über 100% gehen.

du wirst immer wieder den Fall haben, dass dein Regeler einen Wert 
ermittelt, der physikalisch nicht möglich ist. Genauso wie dein Ofen 
nicht aktiv kühlen kann, kann er auch keine Heizleistung von über 100% 
erbringen. Also wirst du bei der Ausgabe der gewünschten Heizleistung 
dann eben auf einen Bereich 0..100 beschränken müssen. Dein PID Regler 
weiss nichts von Physik. Für den ist ein Stellwert von 104 einfach nur 
eine Zahl und nicht mehr. Für den Regler macht es keinen Unterschied, ob 
er eine Prozentzahl errechnet, oder die Anzahl Briketts, die nachgelegt 
werden sollen. Zahl ist Zahl
1
  stellWert = ...... PI Gleichung
2
3
  // auf physikalisch moegliche Werte eingrenzen
4
  if( stellWert < 0 )
5
    stellWert = 0;
6
  if( stellWert > 100 )
7
    stellWert = 100;
8
9
  output_to_Oven( stellWert );

von GS (chromosoma)


Angehängte Dateien:

Lesenswert?

Karl H. schrieb:
> Stellwert von 104 einfach nur
> eine Zahl

Na ja, es liegt nicht daran dass die Zahl größer als 104% ist,  ehe 
daran, dass  bei 10% Leistung die Temperatur schon weit über 1000 °C 
geht :D

Selbst bei e(t) = 1°C wird ein sprung von 1% berechnet, das ist ja mega 
viel.
Und keiner Weiss genau, wie hoch die Temperatur bei 100% Sprung  geht, 
das ist ein experimenteller "Eigenbau" in einer Uni-Labor
Übrigens, ich habe  den Graph vergessen, hier ist es.
Für diese Messung wurde die Leistung von 2.4% auf 3.4% erhöht

von Karl H. (kbuchegg)


Lesenswert?

Böser K. schrieb:
> Karl H. schrieb:
>> Stellwert von 104 einfach nur
>> eine Zahl
>
> Na ja, es liegt nicht daran dass die Zahl größer als 104% ist,  ehe
> daran, dass  bei 10% Leistung die Temperatur schon weit über 1000 °C
> geht :D

Aber du hast immer noch eine Regelabweichung von 100°
Also heizt der Regler. Der Ofen wird wärmer, die Regelabweichung wird 
geringer und der P Anteil nimmt dann seinen Einfluss immer mehr zurück.

Du scheinst zu übersehen, dass sich das ganze ja auch in der Zeit 
entwickelt. Das ganze ist ein dynamischer Prozess! Alle t Zeiteinheiten 
bewertet der Regler die Situation anhand der Messgröße und der damit 
verbundenen Regelabweichung neu.
Du fährst ja dein Auto auch nicht dauernd mit komplett durchgedrücktem 
Gaspedal. Das machst du beim Anfahren und beim Beschleunigen. Aber wenn 
die Zielgeschwindigkeit 80km/h in Reichweite kommt, nimmst du das 
Gaspedal wieder zurück. Und das machst du deshalb, weil du ja so schnell 
wie möglich die 80 erreichen willst. Also gibst du zum Beschleunigen 
soviel Gas, wie nur geht und nimmst das Gas erst dann zurück, wenn du 
schon 'in der Nähe' der 80 bist.

von Olaf (Gast)


Lesenswert?

> Und keiner Weiss genau, wie hoch die Temperatur bei 100% Sprung  geht,
> das ist ein experimenteller "Eigenbau" in einer Uni-Labor

Noch ein kleiner Punkt. Bei vielen Oefen gibt es eine definierte 
maximale Anstiegsgeschwindigkeit der Temperatur an die man sich halten 
sollte wenn der Ofen alt werden soll. Aber bei einem experementellen 
Eigenbau koennt ihr da ja notfalls neu bauen. :-)

Olaf

von Dussel (Gast)


Lesenswert?

Die Frage bleibt, ist die Regelung durch eine PI-Regler vorgegeben, muss 
der Ofen hochgenau die Temperatur halten oder hast du einfach Interesse 
an dem Thema?
Wenn alle drei Antworten 'nein' sind, empfehle ich weiterhin einen 
Hysterese-/Zweipunktregler. Der ist deutlich einfacher und für normale 
Heizanwendungen ausreichend.

von Dussel (Gast)


Lesenswert?

Dussel schrieb:
> Der ist deutlich einfacher
Was jetzt nicht heißt, dass ein PI-Regler übermäßig schwierig ist. Aber 
um Vorteil gegenüber einem Zweipunktregler zu haben, muss man schon ein 
bisschen Aufwand treiben, um passende Parameter zu finden.

von Amateur (Gast)


Lesenswert?

Du solltest auch die Zeiten im Auge behalten.

Ist Dein Ofen 10 Min. lang etwas im Saldo, so sollte sich der I-Teil 
nicht gleich auf 588% aufsummieren.

Beim Heizen von Massen passiert oft sogar im 10-Minuten-Bereich nichts. 
Das ist aber kein Grund, für den Integrator, kalte Füße zu bekommen.

Natürlich reagiert ein "kalter" Ofen im ersten Moment. Das gibt sich 
aber sehr schnell.

Derlei kann man am besten "sehen", indem man sich die beteiligten Werte 
in einer Tabelle auflistet. Natürlich zusammen mit der "echten" Zeit.

von GS (chromosoma)


Lesenswert?

Dussel schrieb:
> Die Frage bleibt, ist die Regelung durch eine PI-Regler vorgegeben, muss
> der Ofen hochgenau die Temperatur halten oder hast du einfach Interesse
> an dem Thema?

Das ist meine Projektarbeit:)
Mein Betreuer hat gesagt, ich soll das alles mit PI-Regelung realisiern.
Mein Vorschlag wäre einfach:

Falls Tist<Tsoll
    Leistung=Leistung+PositivSlope,
Falls Tis>Tsoll
    Leistung=Leistung-NegativSlope

 Wobei Pos/Neg Slopes Temperaturabhängig sein können.

Aber der Betreuer will unbedingt PI.

von Amateur (Gast)


Lesenswert?

Ein PI-Regler, bei dem der I-Anteil bei 0,00000000001 liegt ist immer 
noch ein PI-Regler und kein P-Regler.

von Karl H. (kbuchegg)


Lesenswert?

Böser K. schrieb:

> Aber der Betreuer will unbedingt PI.

Na dann künstel nicht lang rum. Wirf deinen ermittelten Wert in den 
Regler, das Ki setzt du erst mal auf 0 und dann lässt den den mal 
heizen. Die Fragestellung lautet zu diesem Zeitpunkt dann noch NICHT, ob 
die Zieltemperatur erricht wird, sondern die Fragstellung lautet: 
beginnt die Temperatur zu schwingen
(der P Regler schiesst dann übers Ziel hinaus, drosselt zu sehr, die 
Temperatur fällt zu weit, der Regeler heizt wieder volle Kanne, die 
Temperatur steigt wieder, etc. etc.). Wenn die Temperatur schwingt, dann 
gehst du mit dem Kp kleiner, bis es nicht mehr schwingt. Wenn es von 
anfang an nicht schwingt, dann kannst du versuchen das Kp größer zu 
machen, bis Schwingen einsetzt.
Das erste Ziel ist es also, das Kp so einzustellen, dass keine 
Schwingneigung vorhanden ist.
Und erst dann, wenn du das erreicht hast, erst dann wird Ki erstmals 
ungleich 0. Dann sollte sich der Regler dann auch an die Zieltemperatur 
herantasten. Je größer das Ki, desto schneller. Aber auch hier: wenn 
danach die Temperatur schwingt, dann hast du es übertrieben und dein Ki 
ist zu groß.

Du wirst dabei etwas auf den ersten Blick erstaunliches feststellen: 
Wenn der Regler sauber auf der Zieltemperatur sizt, dann ist der 
P-Anteil im Regler 0 und nur noch der I-Anteil hält das System auf dem 
Vorgabewert.

von GS (chromosoma)


Lesenswert?

Ja, das hab ich auch vor.
Nur hat keiner das System mit der Leistung über 15% betrieben 
(entspricht ca 1500 °C).
Mal sehen was der Betreuer von meinen Werten hält.
Ich will das Labor nicht verbrennen:)

von Karl H. (kbuchegg)


Lesenswert?

Böser K. schrieb:
> Ja, das hab ich auch vor.
> Nur hat keiner das System mit der Leistung über 15% betrieben
> (entspricht ca 1500 °C).

Vergiss diesen Zusammenhang. Dein Regler belässt es ja nicht bei 15% auf 
Dauer.

von Lurchi (Gast)


Lesenswert?

Auch mit einem kleinen I Anteil änder sich das Verhalten gegenüber dem 
reinen Proportionalregler. Ein kleiner I Anteil macht den Regler halt 
besonders langsam, halt also sogar großen Einfluss.

In den Fällen von Heizung ganz aus oder ganz an verlässt man den 
linearen Bereich für den der PI Regler gemacht ist. Um zu verhindern das 
der I Anteil in den Zeiten zu groß wird, gibt es verschiende Strategien 
(Anti Windup). In der einfachsten Form wird einfach der I Anteil nicht 
weiter verändert wenn das Stellglied die Sättigung ( 0 oder 100%) 
erreicht hat. Es gibt da auch noch leicht bessere Versionen.

Die Zeitkonstanten (für die mehr oder weniger exponentielle Annäherung 
an den Endwert) für Heizen und Abkühlen des ungeregelten Systems sind 
übrigens trotzdem praktisch gleich. Nnur kann man im Bereich Heizen 
nachregeln, so dass es mit Regelung dann schneller wird als das freie 
Abkühlen. Je nach Ofen hängt die Zeitkonstante ggf. von der Temperatur 
ab und es wird bei höherer Temperatur meist schneller.

Für die Auslegung des Reglers gibt es Einstellregeln, sowohl für den PI 
als auch den PID Fall. Das geht oft über die Aufnahme der 
Sprungfunktion.

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
Noch kein Account? Hier anmelden.