Schön daß du den Verlauf der Temperatur gemessen hast. Du solltest in
diesem Diagramm aber auch anzeigen, wann die Heizung ein- und
ausgeschaltet war.
Worauf ich hinaus will: Wenn die Heizung abschaltet, strahlen die
Heizkörper noch weiter Wärme ab. Das könnte bereits die Ursache für die
Überschwinger sein.
Abhilfe schafft in diesem Fall, die Heizleistung (Vorlauftemperatur) zu
reduzieren.
Bedenke auch, daß die Luft im Raum sehr schnell erwärmt werden kann,
aber die kalten Wände und Einrichtungsgegenstände brauchen viel länger,
um auf Wunschtemperatur gebracht zu werden. Dies provoziert auch
Schwingungen.
Ich hatte mal (als ich noch Ahnungslos war) ein Raumthermostat gebaut,
daß möglichst schnell die Luft-temperatur erfassen sollte. Der Fühler
befand sich "nackt" an einer Stelle, wo immer viel Luft zirkuliert (ich
hatte extra diese Stelle gesucht) und er hatte nur 0,1°C Hysterese. Das
Resultat war, daß die Raumtemperatur ständig um satte 5°C auf und ab
schwankte.
Danach hatte ich den Sensor in das Gehäuse eingebaut, mit
Lüftungs-Schlitzen natürlich und die Hysterese auf 1°C erhöht. Seit dem
hat der Raum ein angenehmes Klima.
Also bitte nicht so:
1 | if (temperature >= temperatureSoll)
|
2 | {
|
3 | PORTC.OUT = 0;
|
4 | }
|
5 | else
|
6 | {
|
7 | PORTC.OUT =0xFF;
|
8 | }
|
Denn das würde einer Hysterese von 0,0°C entsprechen. Schalte ein, wenn
der Raum 0,5° Grad unter der Soll-Temepratur ist. Schalte aus, wenn die
SOll-Temperatur um 0,5°C überschritten wurde. Dazwischen hast du eine
Spanne von 1°C, wo nicht umgeschaltet wird.