Hallo, Ziel Ich will konstante einstellbare Dampf-Temperatur in einer kleinen Box haben. Aufbau Wasserkocher erzeugt Wasserdampf, dieser geht durch einen Schlauch zu der Box. In der Box in ein digitaler Temperatursensor verbaut. Der Wasserkocher kann AUS/EIN geschaltet werden (per elektronischem Relais). Software (C++ Code) mit Display & Knopf (für Eingabe) Temperatursensor ect läuft schon alles. Meine Frage zu dem Regler Kann man, wenn man nur zwischen EIN/AUS wählen kann einen normalen Software PID Regler verwenden? Welcher Regler ist am sinnvollsten PI, PD, PID? Anmerkung Dass Wasserdampf normalerweise 100°C hat weiß ich. Da ich auch nicht den Druck steuern kann ist höchstwahrscheinlich die Temperatur nur sehr begrenzt einstellbar (schlimmstenfalls soll es bloß die Temperatur halten). Das ganze ist ein Dampfkasten um Holz mit Wasserdampf weich zu bekommen dass man es anschließend gut biegen kann. Ich Hoffe das man meinen Aufbau samt Frage versteht... Danke!
blub hat Recht Zweipunktregler(Zwei-Zustände) ist das Stichwort, nix mit PI, PID... dein Relais wird also nicht zur Ruhe kommen :-)
1 | //init
|
2 | boolean oben = false; |
3 | |
4 | //Polling loop
|
5 | if ((temperatur <= (solltemperatur+1)) && !oben) heat(); |
6 | else oben = true; |
7 | |
8 | if ((temperatur >= (solltemperatur-1)) && oben) noheat(); |
9 | else oben = false; |
10 | |
11 | //heat() schaltet Heizung EIN
|
12 | //noheat() schaltet Heizung AUS
|
so müsste es funktionieren oder? Hab ganz schön geknobelt...
Hallo Rolf, so müsste es funktionieren. Wozu benötigst du die bool-variable oben? Der Code könnte auch kürzer sein: if (momentaneTemperatur >= sollTemperatur) { heizungAus(); } else { heizungAn(); } Alternativ: if (momentaneTemperatur > maxTemperatur) heizungAus(); if (momentaneTemperatur < minTemperatur) heizungAn(); Dein Regler wird genauer je öfter du die if-Abfrage bzw. je aktueller der momentane gemessene Temperaturwert ist. Zudem ist zu überlegen wo dein Sensor liegt, in der Mitte oder am Rand? Da in der Mitte die Temperatur schneller ansteigt als am Rand. Liegt dein Sensor in der Mitte benötigst du einen Puffer/Buffer. Das heißt eine gewisse Zeitspanne darf geheizt werden obwohl der Sensor eine Höhere Temperatur mitteilt. Bsp: int buffer = XX; // als Beispiel entspricht XX ~ YY °C if (momentaneTemperatur-buffer > maxTemperatur) heizungAus(); if (momentaneTemperatur+buffer < minTemperatur) heizungAn(); Beste Grüße Frank
Gesättigter Wasserdampf hat bei Atmosphärendruck immer die gleiche Temperatur und das sehr genau. Darauf kann man nicht regeln. Mit einem Temperatursensor kann man bestenfalls feststellen, ob überhaupt Dampf vorhanden ist. Wenn ich das richtig verstanden habe, soll ja auch eher der Volumenstrom des Dampfs geregelt werden. Das ist einfach über einen Leistungssteller vor dem Dampferzeuger möglich. Die Dampfmenge ist im eingeschwungenen Zustand direkt proportional zu der Heizleistung. Ein einfacher Phasenanschnittdimmer genügt dafür. Grüße, Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.