Gast
#1562372
Hallo zusammen, erst mal eine kurze Vorgeschichte worum es geht. Ich hab mir im Gartenhaus eine Fußbodenheizung gebaut. Das Wasser dafür wird in einem, mit Kohle beheizten, Boiler erwärmt. Zzt. wird das System durch einen Industrieregler, welcher die Wassertemperatur im Boiler regelt, gesteuert. Der Reglerausgang geht auf eine Schaltung mit einem MEGA8 welche über einen Schrittmotor die Luftzufuhr am Boiler entsprechend dem Regelausgang öffnet und schließt. Mit folgenden Parametern läuft die Regelung zzt. ganz gut Kp=12 Tn=3600s Tv=900s. Aufgrund des Wasserspeichers von ca. 100l ist das system recht träge. Mein Ziel ist es jetzt den Industrieregler einzusparen und die Regelei dem AVR aufzudrücken. Der P- und I-Teil sind mir soweit klar. Der D-Teil macht mir allerdings noch etwas kopfzerbrechen. Für die Temperaturmessung nutze ich den eingebauten ADC des AVR. Damit erreiche ich eine Auflösung von 0,1°C. Die PID Routine würde ich einmal/sekunde ausführen. Nun ändert sich innerhalb dieser Sekunde die gemessene Temperatur nur unwesendlich. Der entscheidende part des D-Teils "e_alt-e" wird also in den meisten Fällen 0 und ab und zu mal 0,1 sein. So kann der D-Teil also nicht wirklich funktionieren. Ich hab schon recht viel im Netz gesucht, auf dieses Problem wurde allerdings nie eingegangen. Bei schnellen Strecken, wo zwischen e und e_alt eine genügend große differenz besteht, spielt es warscheinlich nur eine untergeordnete Rolle. Bei langsamen Strecken wie sie bei Temperaturregelungen auftreten, halte ich diese einfache Umsetzung für problematisch. Hatte schon mal jemand dieses problem und eine Idee für eine Lösung? gruß oliver