www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Algorithmus fuer PID (Heizungsregelung)

Autor: Thomas H. (Gast)
Datum: 26.06.2002 10:34

Hallo,

ich muss eine kleine Heizung regeln. Ein kleiner Metallblock muss einen
konstante Temperatur aufweisen - auf mind. 0,1 °C genau (besser waere
besser). Gemessen wird ueber einen Sensor.

Ich habe also einen Temperatur ist-Wert und habe einen Temperatur
soll-Wert. Die Heizung wird ueber ein/aus geregelt (geht nicht anders).

Am liebsten wuerde ich die Regelung via PID machen. Gibt es hierzu schon
einen fertigen Algorithmus - Struktugramme helfen mir auch schon weiter.
Das dann in Assembler umzusetzen ist dann kein Problem.

Ich bin auch fuer andere Regelungstechniken/-Algorithmen offen - die
Regelgenauigkeit muss halt recht hoch sein.

ielen Dank und viele Gruesse,

Thomas H.
Autor: Thomas H. (Gast)
Datum: 26.06.2002 10:36

Entschuldige mich fuer ein paar Tippfehler im Nachhinein!

Thomas H.
Autor: Lars (Gast)
Datum: 26.06.2002 13:53

PID Regler wenn du nur eine Ein/Aus-Steuergroesse hast ?! Naja jedem das
seine ;)

P ist klar, I und D Anteile musst du numerisch machen. D.h. I = I_alt +
dt*x und D = (x-x_vorher)/dt
Autor: Michael (Gast)
Datum: 26.06.2002 20:02

Hallo Thomas
Ich habe schon PID-Regler realisiert. Es ist kein großes Geheimnis. Du
mußt die folgenden drei Größen berechnen und diese mit geeigneten
Verstärkungen als Korrekturgröße verwenden.
1) für P-Anteil:  (Istwert-Sollwert)
2) für D-Anteil: ((Änderung des istwertes seit letzter
Berechnung)/zeitdifferenz)
3) für I-Anteil: (Istwert-Sollwert)*Zeitdifferenz
Allerding solltest Du bei der gewünschten Genauigkeit mit PWM
(Pulsbreiten-Modulation) deine Heizungsregelung steuern sonst sehe ich
schwarz.

Die Wirkung der einzelnen Parameter ist wie folgt:
Der P-Anteil macht die Regelung schnell (mit nur dieser Verstärkung
solltest Du anfangen bis der Regelvorgang anfängt zu schwingen).
Der D-Anteil (Geschwindigkeitsrückführung) wird zur Dämpfung von
Überschwingen verwendet. er macht die Regelung langsamer.
Der I-Anteil macht deine Regelung genau (eigentlich unendlich genau da
die Heizleistung so lange verändert wird bis Soll=Ist)
Das Optimun hast Du falls der Istwert einer Sprunghafte Änderung des
Sollwertes mit ca 10 % Überschwingen folgt.
Gruß
Michael
Autor: Thomas (Gast)
Datum: 26.06.2002 20:21

Hallo Michael,

das heisst also fuer meinen Programm-Algorithmus:

* messe ist-Wert
* speichere Ist-Wert (fuer naechste Differenzbildung)
* berechne P
* berechne D
* berechne I

Wie verwerte ich jetzt die P, I, D-Werte weiter um einen passenden
Heizwert ueber PWD fuer meine Heizung zu bekommen - also einen Wert
zwischen z. B. 0 (Heizung aus) bis 1000 (Heizung immer an)?

Danke schon 'mal,

Thomas H.
Autor: Michael (Gast)
Datum: 26.06.2002 22:41

Hallo Thomas
Jetzt definierst Du 3 Verstärkungen also beispielsweise KP, KD, KI.
Deine Ausgangsgröße also dein PWM Ausgang berechnest Du wie folgt:
Ausgang = KP*P + KD*D + KI*I
Wichtig ist noch daß du am Start mit dem Wert I=0 anfängst damit der
Heizvorgang langsam anfängt.
Nehmen wir an Du willst 100 Grad haben und hast die Verstärkungen
 KP=5 bits/Grad
 KD=1 bit/(grad/sec)
 KI=2 (bit*sec) /grad
und nehmen wir weiter an Du hast 20 Grad als Istwert und 19 Grad beim
letzten loop und dein loop dauer 0,1 sec so ergibt sich
KP*P=(20-100)*5=-400
KD*D=(20-19)/0,1=+10
KI*I=(20-100)*0,1*2=-16+(Summe aller bisherigen  KI*Is)

Ausgang=-(-400+10-16=-406)gilt nur beim ersten loop.
Beim zweiten loop haben wir bei gleichen Temperaturen -400+10-16-16=-422
Hinweis: Das Minus vor der Klammer hatte ich vergessen
Nach mehreren loops wird KP*P immer kleiner weil Soll und Istwert sich
annähern. KD*D geht gegen Null weil sich die Temperatur nicht mehr
ändert  und Integral(KI*I) wird praktisch gleich dem Ausgang.
Ok?
Gruß
Michael
Autor: Weide (Gast)
Datum: 26.06.2002 23:11

Hallo Michael,

wenn ich mich richtig an meine Regelungstechnikvorlesungen erinnere,
dann macht der D-Anteil die Regelung nicht langsamer sondern schneller.
Der D-Anteil ist dazu da, kurzfristige Soll-/Istwertdifferenzen schnell
auszuregeln. Dadurch ist die Schwingungsneigungsgefahr durch diesen
Anteil übrigens recht hoch.

Der I-Anteil macht die Regelung zwar präzise, aber auch langsamer. Als
Stellgröße wird hier die Differenz Soll-/Istwert, multipliziert mit ki,
angenommen und zum alten Regelwert addiert. Ein I-Regler ist in der
Lage, den Sollwert korrekt zu erreichen.

Beim P-Anteil ist die Differenz Soll-/Istwert gleichzeitig die
Stellgröße des Reglers. Ein reiner P-Regler hat somit immer eine
Soll-/Istwertdifferenz.

Für den Heizunganwendungszweck von Thomas würde ich eher zu einem reinen
I-Regler greifen. Ein D-Anteil würde für eine wahrscheinlich träge
reagierende Heizung viel zu schnell regeln und beim P-Regler würde die
Präzision nicht erreicht werden. Ergo käme ein reiner I-Regler oder
höchstens einen PI-Regler für mich in Frage.

Gruß Weide
Autor: Michael (Gast)
Datum: 26.06.2002 23:45

Hallo Weide
Deine Anmerkungen bezüglich D-Anteil stimmen so nicht. Es gibt
allerdings eine Ausnahme nämlich wenn der Sollwert sich ständig oder
schnell ändert. dann bewirkt dieser D-Anteil eine schnellere Regelung.
Bei einem Temperaturregler ist dieses jedoch wohl nicht der Fall. Es ist
allerdings richtig daß bei zu hoher D-Verstärkung eine Schwingungsgefahr
besteht. Dieses hängt jedoch damit zusammen daß der D-Anteil dazu führt
daß hohe Frequenzen entstehen (durch das Differenzieren). Hat das zu
regelnde System eine höhere Ordnung (Beispielsweise 2 Ordnung wie ein
Feder-Masse system) so kommt es bei diesen hohen Frequenzen zu
Phasenverschiebungen die dazu führen das der D-Anteil nich mehr dämpft
sondern wie eine Erhöhung der P-Verstärkung wirkt.
Ein anderes Problem beim Differenzieren ist noch daß man oft nicht merkt
daß man irgendwo in Sättigung kommt und daher nichtlinear wird

Beim reinen I-Regler gibt es Probleme beim Einschalten da ein starkes
Überschießen auftritt weil, gemäß der Definition des Integrals, das
Produkt Zeit*Temperaturabweichung ausgeglichen werden muß. Das bedeutet
daß nach dem Einschalten und Aufheizen für längere Zeit eine zu hohe
Temperatur entsteht.
Der beste Regler ist fast immer ein PID-Regler aber auf die Zutaten
kommt es an also die richtige Kombination der drei Verstärkungen.
Gruß
Michael

Ps:Ich habe 10 Jahre in der Flugregelung von Hubschraubern gearbeitet
und das ist noch nicht lange her.
Autor: Weide (Gast)
Datum: 27.06.2002 00:03

Hallo Michael,

stimmt, wenn der Istwert sich nur relativ langsam ändert, greift die
D-Regelung nicht, von daher ist sie im beschriebenen Anwendungsfall
relativ unerheblich - da habe ich nicht weit genug gedacht, sorry.
Allerdings verstehe ich immer noch nicht, warum ein D-Regler die
Regelung langsamer machen soll. Schneller macht er sie meiner Meinung
nach in jedem Fall.

Gruß Weide

PS: Flugregelung von Hubschraubern - das hört sich interessant an :-)
Autor: Michael (Gast)
Datum: 27.06.2002 00:47

Hallo Weide
Das hängt mit dem Vorzeichen zusammen. Mit dem D-Anteil wird die
Änderungsgeschwindigkeit des Istwertes zurückgeführt.
Am einfachsten vergleichst Du es mit einer KFZ Federung. Die Feder ist
die proportionale Größe weil die  Kraft mit zunehmender Kompression
zunimmt. Der Stoßdämpfer entspricht dem D-Anteil und der sorgt dafür das
das Federbein langsamer in die Ausgangslage zurückkehrt.
Thomas wird noch einige Hürden meistern müssen falls er 0,1 Grad
Genauigkeit braucht so muß er etwa 0,02 Grad  Auflösung haben . Das
bedeutet bei 10 Bit AD-Wandlern  daß er einen Meß-Bereich von nur 20,4
Grad hat und in diesen Bereich muß die Regelung nache dem einschalten
einschwingen. Oder er muß einen 16 bit AD-Wandler einsetzen. Die
Genauigkeit von 0,1 Grad erreicht man  vermutlich nur mit 4-Leiter
PT-100 oder PT-1000 Technik. Eine anspruchsvolle Sache.
Gruß
Michael
Autor: Retro (Gast)
Datum: 27.06.2002 01:52

Ich habe auch mal ne "Heizung" gebaut, allerdings ohne Digitaltechnik.
Ein Peltierelement, ein Thermometer und eine Stromreglung, so hab ich
einfach den Durchgangsstrom geregelt und konnte eine sehr konstante
Temperatur halten. Voraussetzung ist natürlich eine statische Heizlast.
Autor: Meiserl (Gast)
Datum: 27.06.2002 07:20

Hallo

Ich bin eigentlich kein Regelungstechniker.
Aber ist bei Digitalreglern die (konstante) Abtastzeit nicht sehr
wichtig.

Falls jemand einen C-Code für einen Digitalregler (PID oder PI) hat
hätte ich auch interesse.
Autor: Thomas (Gast)
Datum: 27.06.2002 08:39

Hallo Michael und Weide,

vielen Dank fuer den Exkurs in die Regelungstechnik Ich denke ich blicke
soweit durch und bin soweit ein erstes Programm zu schreiben. Euere
eitraege haben mir sehr geholfen!

Noch eine Frage: du hast fuer den PWM-Ausgang einen Wert berechnet aus
der Summe der ganzen (Kx * Faktor). Wie skaliere ich am besten den Wert,
d. h. welche Summe entspricht meinem Maximum (Null ist klar)?

Noch als Hinweis an Michael:
Ich habe einen 16/18-Bit-AD-Wandler zur Verfuegung (eh schon in der
Schaltung und habe noch ein paar Kanaele frei) und werde PT 100 mit
4-Pol-Messung verwenden mit Offsetabgleich.

Viele Gruesse,

Thomas H.
Autor: Michael (Gast)
Datum: 27.06.2002 16:38

Hallo Thomas
Ich programmiere seit kurzem mit BASCOM auf ATMega103 und bisher mit dem
CC-Basic Motorola 68HC05-Chip von Conrad.
Hast Du einen 8 Bit-PWM oder Zähler so ist 255 die volle Heizleistung
und 0 ist Heizung aus.
Bei 10 bit ist entsprechend 1023 die volle Heizleistung und 0 ist
Heizung aus. Feiner glaube ich muß es nicht sein. Wichtig ist daß Du die
Temperatur genau messen kannst und da hast Du ja vorgesorgt.
Gruß
Michael
Autor: Thomas (Gast)
Datum: 27.06.2002 20:41

Hallo Michael,

ich habe wohl meine letzte Frage etwas unklar gestellt. Ich wollte noch
wissen, bei welcher Summe der einzelnen P, I und D Werte ich sagen soll,
dass mein PWD 100 % Heizleistung ansteuern soll. Die Summe kann ja rein
theoretisch bis unendlich gehen - oder gibt es da einen Maximalwert?

Danke,

Thomas H.
Autor: Michael (Gast)
Datum: 27.06.2002 21:32

Hallo Thomas
Du mußt die einzelnen Verstärkungen, angefangen mit der
Proportionalverstärkung, experimentell erhöhen bis das Ergebnis auf eine
Sprunghafte Änderung der Eingangsgröße (Beispiel Sollwertänderung von 50
auf 60 Grad) einen Temperaturverlauf ergibt bei dem der Istwert rasch
auf 60 Grad ansteigt und dabei nicht über 61 Grad kommt (10% von 10
Grad=1 Grad Überschwingen).
Eine Mathematische Simulation, beispielsweise unter Zuhilfenahme einer
Tabellenkalkulation, kann dabei recht hilfreich sein. Deinen Metallblock
mit Heizung kannst Du dabei als Verzögerung erster Ordnung ansetzen. Du
kannst dir dann die Auswirkung deiner Verstärkungsänderungen grafisch
anschauen.
Programmierst Du in Assembler oder in einer Hochsprache?
Gruß
Michael
Autor: Thomas (Gast)
Datum: 27.06.2002 23:30

Hallo Michael,

erst einmal danke. Ich denke jetzt werde ich einmal loslegen muessen und
koennen mit den gewonnen Erkenntnissen. Alles sehr interessant und
lehrreich. Danke!

Ich programmiere in Assembler.

Viele Gruesse,

Thomas H.
Autor: Michael (Gast)
Datum: 29.06.2002 23:24

Hallo Thomas
Zwei Fragen hab ich noch
Wie groß (Gewicht) ist der Aluklotz den Du temperaturregeln willst und
welche Heizleistung hast Du vorgesehen.
Ich hatte die Idee mit einem meiner Experimentierboards einen solchen
PID-Regler zu programmieren. Den dazu notwendigen Temperaturverstärker
(pt100 auf 5 Volt) habe ich in ca 10 Tagen und das Programm ist schon
fast fertig. Allerdings nur mit 10 bit ADC. Wenns klappt schick ich Dir
das Ergebnis
Gruß
Michael
Autor: Thomas (Gast)
Datum: 30.06.2002 00:52

Hallo Michael,

Der "Klotz" ist aus Kupfer, mit Zylinderabmesungen mit einem Druckmesser
von ca. 24 mm und einer Hoehe von ca. 20 mm.

Als Heizung dient ein Drahtwiderstand mit 10 W.

Das waere toll, wenn das mit deinem Programm klappen wuerde. Viel Erfolg
schon 'mal,

Thomas H.
Autor: Michael (Gast)
Datum: 16.07.2002 23:19
Dateianhang: PID.doc (154 KB, 1190 Downloads)

Hallo Thomas
Ich hoffe Du hast nicht zu lange warten müssen. In der Anlage ist ein
Basic Listing und ein erstes Ergebnis des PID-Reglers
Der Regler ist noch nicht optimal aber es funktioniert soweit alles. Als
Verstärkungen habe ich folgende Werte verwendet:
KP=36
KD=960
KI=0,67
Die Einheit ist jeweils %-PWM je Grad bzw. grad/sec bzw Grad*sec
Rühr Dich falls Du noch weitere Fragen hast.
Für mich war es eine nette Übung da ich den ATMega erst seit kurzem
verwende.
Gruß
Michael
Autor: Thomas H. (Gast)
Datum: 17.07.2002 09:12

Hallo Michael,

vielen Dank fuer deine Bemuehungen. Ich werde mir die Sachen in Ruhe
einmal ansehen.

Bis dahin viele Gruesse,

Thomas H.
Autor: Harald Hoopmann (Gast)
Datum: 27.08.2002 12:22

Guten Tag allerseits,
Ich habe mit Interesse eure Beiträge gelesen und habe dazu eine Frage :
Ich arbeite gerade an einer Motorregelung mit einem PIC87F626 in
Verbindung mit einer PWM-gesteuerten 3 Phasen-Brücke. Die Rückführung
des Geschwindigkeitssignals kommt aus dem Drehstromgenerator, der die
Hallsignale des Motors auswertet. Pro Umdrehung habe ich damit 6 Impulse
zu Verfügung.
Um den D- und I-Anteil zu berechnen, benutze ich immer die Zeitdifferenz
zwischen den Impulsen, die sich natürlich je nach Drehzahl ändert. Die
Berechnung läuft per Interrupt nach jedem Impuls ab.

Sollte ich lieber eine feste Abtastrate einstellen über einen Timer,
oder macht sich die Berechnung in verschiedenen Zeitabständen nicht
bemerkbar, da die Differenzen ohnehin in die Berechnung einfließen ?

PS: Ein Ergebnis liegt leider noch nicht vor, da die Schaltung noch
nicht ganz fertig ist.
Autor: Schrotty (Gast)
Datum: 22.10.2002 19:39

Hallo,
für eine Temperaturregelung braucht man eigentlich nur einen P-Regler.
Da man einen Metallklotz als PT1-Glied nähern kann(Strecke mit
Ausgleich). Den I-Anteil benötigt man um stationäre Genauigkeit zu
erreichen und für die Ausregelung von Störgrößen.

Die digitale Regelung muß in Zeitscheiben abgearbeitet werden. D.h. eine
feste Abtastzeit und eine feste Zeitintervall des Reglers (z.b.
10ms-100ms müßten ausreichen). PI-Regler sind in jedem guten
Regelungstechnikbuch beschrieben.

Wenn das Projekt funktioniert kannst du mir mal darüber berichten.

Gruß Schrotty
Autor: babu (Gast)
Datum: 31.03.2004 16:28

Hallo Michael,

Ich hatte die Idee mit einem meiner Experimentierboards einen solchen
PID-Regler zu programmieren. Den dazu notwendigen Temperaturverstärker
(pt100 auf 5 Volt) habe ich in ca 10 Tagen und das Programm ist schon
fast fertig. Allerdings nur mit 10 bit ADC. Wenns klappt schick ich
Dir
das Ergebnis


kannst Du mir das aucheinmal schicken ?

Grüße
Autor: Ulrich Strobel (Gast)
Datum: 31.03.2004 22:25

vergiss die lieben herren der VDE nicht, für PWM auf Netz gibt es genaue
Vorschriften,d.h. kommt auf die entnommene Nennlast drauf an,

am besten realisierst du das ganze mit fertig aufgebauten
Pulspacketsteueerungen, phillips müsste welche im program haben [bei
phillips einfach auf der homepage durchwühlen] sie sind recht genau und
steuern immer 16 Vollwellen nach der Ist- Sollwert differenz. Die
Heizung selbst würde ich dafür nicht überdimensionieren, da dies nur
eine längere Heiznachlaufzeit bedeuted, und diese nicht allzu leicht in
Griff zu bekommen ist. Für schnellere Anheizphase könnte man eine
seperate Heizung dazuschalten.

mfg
Autor: wolli (Gast)
Datum: 01.04.2004 09:10

Der D-Anteil dämpft die Regelung. Prinzipiell wird dadurch zwar der
Sollwert später, der stationäre Zustand aber wird schneller erreicht.
Der D-Anteil ist somit nur bei schnellen Regelungen sinnvoll.
Die beschriebene Strecke ist bei einer 10W Heizung so langsam, dass ein
PI-Regler wohl optimal ist.

Ob der I-Anteil sinnvoll ist hängt von den Genauigkeitsanforderungen
ab. Da die Regelabweichung mit steigender Proportionalverstärkung
abnimmt aber die Phasenreserve (und damit die Stabilität) sinkt und die
Einschwingzeit steigt, ist die Verstärkung des P-Anteils begrenzt. Zur
Verringerung (bis auf 0) der Regelabweichung kann daher ein I-Anteil
eingesetzt werden.
Autor: wolli (Gast)
Datum: 01.04.2004 09:34

Das starke Überschwingen des PI-Reglers beim Einschalten lässt sich
einfach unterdrücken, indem man die Anstiegsgeschwindigkeit der
Führungsgröße auf die Anstiegsgeschwindigkeit der Strecke begrenzt.

Der beschriebene Klotz hat (wenn ich mich nicht verrechnet habe) eine
Wärmekapazität von 31,6 J/K, woraus bei 10 W eine
Anstiegsgeschwindigkeit von 0,32 K/s der Temperatur unter
vernachlässigung der Wärmeabgabe an die Umgebung resultiert.
(zur Sicherheit nachrechnen)
Begrenzt man also die Anstiegsgeschwindigkeit der Führungsgröße auf
diesen Wert, was man in Software sehr schön machen kann (einfacher als
mit analogen Reglern), so verringert sich auch die Regelgeschwindigkeit
nicht, da die Strecke eh nicht schneller kann. Gleichzeitig verhindert
man das wachsen des integrativen Anteils über alle Grenzen.
Autor: wolli (Gast)
Datum: 01.04.2004 09:49

Ich habs nicht gleich bemerkt, aber wer zum Teufel schreibt in einen 2
Jahre alten Thread?
Autor: babu (Gast)
Datum: 02.04.2004 08:39

jep, ist zwei Jahre alt, was macht das schon. Interessiert mich halt.
Wozu einen neuen Thread anfangen ;-)
Autor: Alex (Gast)
Datum: 29.06.2005 15:03

Ich brauche Hilfe. Wer hat einen PID regler programmier, was ich für ein
Luftschift anpassen kann, der im Raum fliegen soll. Ein Höhenkreis
Autor: Irfan (Gast)
Datum: 21.12.2005 10:29

Hallo,
Ich fange mit eine projekt an,diese beispielanwendung habe ich.aber
punkt 2,3 und 4 kann ich nicht verstehen.könntest du bitte das
erzählen.Ich möchte einen Flussdiagramm machen.

Beispielanwendung:
In der Abteilung existiert ein Strömungskanal, der automatisiert werden
soll. Mit dem Strömungskanal sollen definierte Strömungen von 0 bis
10m/s bei verschiedenen Lufttemperaturen eingestellt werden.



Die Heizung besteht aus einem elektrischen Heizregister, das stufenlos
gedimmt werden kann.
Die Strömungsgeschwindigkeit wird über die Drehzahl eingestellt. Die
Drehzahl selbst wird geregelt.
Folgende Funktionen sind zu automatisieren bzw. anzuschließen.
1.  Heizung: ein/ aus, Sollwert und Istwert für zwei Messstellen
anzeigen, Anwahl welcher Wert zur Regelung verwendet wird.

2.  Drehzahlsollwert: Wahlweise Drehzahl oder Geschwindigkeit vorgeben

3.  Drehzahlmessung: Ausgabe TTL Pulse Skalierung x Pulse pro Umdrehung,
Anzeige der Istwerte von Drehzahl und Geschwindigkeit.

4.  Geschwindigkeitsmessung: TSI Sensor mit 0-10V Ausgang

Die Werte sind unabhängig von einander einzustellen. Man sollte
Programme speichern können. Z. B. fahre x min mit 30°C bei 2m/s dann
30min bei 40°C und 3m/s. Andere Programmarten sollten überlegt werden.
Alarmwerte müssen überwacht werden. Es darf im Kanal nicht wärmer als
60°C werden. Die Temperatur in der Elektronik sollte nicht mehr als
55°C (wählbar) betragen. Die Heizung darf nicht eingeschaltet sein,
wenn der Lüfter steht.
Autor: markus__ (Gast)
Datum: 31.07.2007 15:24

Hallo,

vielen Dank für die Beiträge. Hat mir sehr weitergeholfen.
Hat jemand von euch eine SW-Lösung für die Anpassung der
Stellgröße y und einem Relais?

Gruss Markus
Autor: Roman (Gast)
Datum: 21.11.2007 15:32

Hallo zusammen


Ich mach grad ne Heizungsregelung für ein Drahtnetz das einfach als
Widerstandsheizung benutzt wird.
Mein PID funktioniert so weit aber ich hätte noch 2 Fragen.

1. der PID gibt auch negative Werte aus, ich kann nur aus schalten um zu
"kühlen".Kann man da was am regler machen dass er das "weiss"?

2. Die Heizrate des Reglers ist ca 800°C/s so wie ich ihn jetzt auf die
einstellung der Solltemperatur getrimmt habe. Ich möchte gern Heizraten
einstellen können (300°C/s bis 1200°C/s) Wie geht das?
Der Regler soll sozusagen langsamer loslegen.


Vielen Dank Roman
Autor: Leszek Cielecki (Gast)
Datum: 16.01.2008 07:09

I am interesting in example of software for temperature pid regulator.

Thanks
Autor: Karim L. (louk)
Datum: 18.02.2008 13:55

Hallo,

wir sind gerade dabei, ein eigenes Programm für den Thermostaten HR20E
von Heneywell zu schreiben, das zusätzlichen Kompfort und
Fernsteuerbarkeit bieten soll (siehe:

http://www.mikrocontroller.net/articles/Heizungsst...
Beitrag "Honeywell Rondostat HR20E per AVR steuern und konfigurieren")

Für die Regelungstechnik könnten wir etwas Unterstützung von jemanden
brauchen, der sich damit gut ausgekennt. Wie bestimmt man z.B. die
Parameter KP, KD und KI? Reicht ein PI Regler oder ist ein PID Regler
besser. Je nach vorraussetzung könnte man auch ein dynamisches Verhalten
implementieren also nach Bedarf PI oder PID (z.B. Temp. soll nur
gehalten werden oder große Temp. differenz ist nach dem Einschalten
schnell aber mit wenige überschwinger auszuregeln). Die Adaption an
größe des Raumes und Kapazität/Vorlauftemp. des Heizkörpers soll
automatisch erfolgen, optional mit Einbeziehung der Aussentemperatur.
@Michael oder wer sich sonst dazu berufen fühlt, wäre toll, wenn sich
jemand zur Mithilfe finden würde.

Gruß

Karim
Autor: Jankey (Gast)
Datum: 18.02.2008 13:58

Autor: Karim L. (louk)
Datum: 18.02.2008 17:07

Hallo Jankey,

hast Du Dich mit automatischer Adaption beschäftigst?

Wie ermittelst Du die Parameter Kp und Ki?

Hast Du mit PID Regler experimentiert?

Gruß

Karim
Autor: Reinhard (Gast)
Datum: 27.02.2008 14:23

Frage:

Wird im Programm der D-Anteil richtig berechnet?

Ausschnitt:

      D = Lastistwert - Istwert
      D = D / Zeit
      D = D * Kd


hier wird des letzten zum aktuellen Istwertes für den D-Anteil genutzt.
Müsste nicht die Differenz der aktuellen Regelabweichung (e) zur letzten
Regelabweichung benutzt werden?
Autor: Reinhard (Gast)
Datum: 27.02.2008 14:46

beziehe mich auf das Programm:

Datum: 16.07.2002 23:19
Dateianhang: PID.doc

(s.o.)
Autor: Jankey (Gast)
Datum: 27.02.2008 16:16

Ke und Ki waren vorgegeben, ma kanns aber auch durch rumspielen
(Empirisch) rausfinden, komischerweise besitzt der Mensch ein gefühl
dafür solche werte herauszufinden. Auserdem kanns unter umständen
schneller gehen als wenn ma zum rumrechnen anfängt.

Was aber auch sehr gut geht, meiner meinung nach, um einen PI/PID
auszulegen ist es mit einem 2Punkt Regler zu versuchen und aus den
hochfahrzeiten/überschwingern die IstWerte zu ermitteln kann man dann
gut das Tau & Regelzeiten / Regelkonstanten ausrechnen.
Autor: Michael Haberler (mah)
Datum: 28.02.2008 16:42

Jankey -

es gehört zwar nicht in dieses Forum, aber Du hast auf
Beitrag "Drehstrom Motor steuern mit AVR über die PWM's" mal einen Umrichter
beschrieben, an dem sicher nicht nur ich interessiert wäre


kannst Du einen aktuellen Link posten zur Beschreibung? der in dem
Beitrag funktioniert nicht.

danke

Michael
Autor: Jankey (Gast)
Datum: 28.02.2008 17:04

omg, ich wurde wegen dem Frequenzumrichter sicher schon 200 mal per mail
angeschrieben. ja ich poste sie mal rein.

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel





Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net