Go Down

Topic: Neue MCU und Pin Mapping (Read 4899 times) previous topic - next topic

DrDiettrich

Praktisch weiterhelfen kann ich leider nicht. Ich bin zwar ein absoluter Fan von (adaptiven) Zustandsreglern, weil sie sich digital so einfach programmieren lassen. Aber ich bin schon im Studium daran gescheitert, daß ich die Regelstrecke nicht modellieren konnte, mangels Kenntnissen in Physik und Mechanik. Danach hatte ich mit Reglern nichts mehr zu tun, und so ist auch der Rest dem Vergessen anheim gefallen, bis auf die grundlegenden Prinzipien :-(

agmue

Ich kann mir nicht vorstellen, daß hier im Forum niemand mit profunden Kenntnissen der Regelungstechnik aktiv ist. Beim Thema "Neue MCU und Pin Mapping" werden die geeigneten Kandidaten aber nicht mitlesen. Wie wäre es mit einem neuen Thema?

Sonst bin ich noch auf das Faustformelverfahren gestoßen.

DrDiettrich

Ich fürchte, daß sich die Regelungstechniker wo anders rumtreiben, nicht in einem Arduino Forum. PID Regler sind noch so anschaulich, daß sie auch von (hartnäckigen) Laien hingetrimmt werden können. Bei den digitalen Reglern braucht man ein physikalisch/mathematisches Modell der Regelstrecke, das zwar auch nicht besonders kompliziert sein muß, aber kaum mehr anschaulich ist. Kommen dann noch Beobachter und Schätzer hinzu, die fehlende Sensoren ersetzen sollen, wird die Sache noch komplizierter. Der eigentliche Regler wäre leicht zu programmieren, im Prinzip ist das nur ein rückgekoppeltes Schieberegister, aber ohne die richtigen Parameter ist das leider nutzlos.

agmue

... die Regelungstechniker wo anders rumtreiben, nicht in einem Arduino Forum.
Wenn dem so ist, mache ich einen Vorschlag:
  • Fange mit einem P-Regler an. Stelle den so ein, daß er, abgesehen von der bleibenden Regelabweichung, vernünftig regelt. Die gezeigte Kurve deutet auf eine zu hohe Verstärkung, runter damit. Nicht wenige Thermostate sind P-Regler.
  • Wenn sich die Isttemperatur nicht mehr großartig ändert, könntest Du die bleibende Regelabweichung messen und den Sollwert entsprechend erhöhen. Also Sollwert 30°, Istwert 28°, Sollwert um zwei Grad erhöhen.
  • Dasselbe macht der I-Anteil, der die bleibende Regelabweichung reduziert. Ein wenig "I" sollte das tun.
  • Sollte die Regelung nun noch etwas Pepp benötigen, könntest Du mit dem D-Anteil die Reaktion erhöhen.
Was ich in 2. beschrieben habe, könnte man natürlich in einer Tabelle ablegen, also den Sollwert 30° intern gleich auf 32° erhöhen. Diese Tabelle hängt aber von den Störfaktoren (Außentemperatur, davon abhängig die Temperatur des Heizungswassers, offene Türen, Menschen als Heizungen usw.) ab.

Leon333

Also nur mit dem P-Regler (wenn das Kp > 0.8 ist) gibt es bei mir keine bleibende Regelabweichung.
Das kommt von der Rückführung des Temperatursensors, denn damit hat man ein I-Glied im System.
Ziel ist vor allem, so nahe wie möglich an den Sollwert ran zu kommen, aber diesen nicht weit und/oder lange zu überschreiten.

Das Ki bewirkt immer eine trägere Reaktion. Das ist beim aufheizen zwar kein Problem, aber sobald die Solltemp erreicht ist, wird nur langsam runter geregelt.
Daher Ki=0.

Da mein Temperatursensor total verrauscht ist, bewirkt der D-Anteil momentan leider nur ein Schwingen (nach oben).

Ich werde also erstmal nur den P-Regler laufen lassen.
Sobald der TMP36 kommt, wird der D-Anteil nochmal geprüft.

Falls ich den D-Anteil auch dann nicht benötige, werde ich den P-Regler selbst programmieren, weil ich dann die ganze PID library vom platz her sparen kann.
Einen simplen Faktor mit der Regeldifferenz zu verheiraten sollte in 15min gemacht sein, wenn man beim "perfekten" System mittels PID-Regler im Processing schauen kann, welche Abweichungen welchen Wert ausspucken...

Zusätzlich habe ich gestern eine einigermaßen reproduzierbare Aufheizzeit festlegen können (zumindest vom Zustand komplett kalt. Weiteres habe ich noch nicht getestet).
Das ist momentan auch wirklich noch komplett Zeitbasiert.
Dabei wird 55 Sekunden voll geheizt und anschließend mindestens 70 Sekunden gewartet.
Leider erkennt der Laptop aus irgendeinem Grund seit gestern Abend meine UNOs nicht mehr (Hardware-Manager spuckt Code 43 aus).
Ich werde aber wenn das wieder geht mal einen Verlauf anhängen.

Sobald der TMP36 da ist (und falls der zuverlässig läuft), wird gemessen, welche Temperatur der Sensor beim Aufheizen um den Zeitpunkt von 55 Sekunden hat.
Eventuell lässt sich damit eine allgemeine Regel beim Aufheizen ableiten die auch für "halbwarme" Zustände gilt.
Je nach Regelabweichung wird dann auf "Aufheizen" oder "P-Regeln" umgeschaltet.
Dann hätte ich sowas wie eine "billig adaptive Regelung mit billig P-Regler" :D
Hauptsache es funktioniert zuverlässig und mit wenig Platzverbrauch.

agmue

Also nur mit dem P-Regler (wenn das Kp > 0.8 ist) gibt es bei mir keine bleibende Regelabweichung.
Das kommt von der Rückführung des Temperatursensors, denn damit hat man ein I-Glied im System.
Ein P-Regler verursacht immer eine bleibende Regelabweichung. Woher das I-Glied kommen soll, erschließt sich mir nicht, hier könnte ein Irrtum vorliegen.

Ob ich Deine Regelung verstehe, ist aber gänzlich nebensächlich. Wenn Du tatsächlich keine Regelabweichung feststellst, umso besser  :)

Ich drücke die Daumen, daß der neue Sensor Besserung im Istwert bringt.

DrDiettrich

Der Integrator steckt in der Regelstrecke (langsamer Temperaturübergang), dem sollte ein D-Anteil im Regler entgegenwirken.

Bei der Recherche im Web bin ich über Temperaturregler mit der Erkennung offener Fenster (Lüftung) gestolpert. Wie könnte sowas implementiert werden?

agmue

Wenn ich auf meinen Raumheizkörper mit Thermostat schaue, frage ich mich, über welche ominöse Regelstrecke wir hier sprechen.

Zum Erreichen der Solltemperatur benötigen wir einen von Null verschiedenen Stellwert, das Ventil muß geöffnet sein. Würde der Istwert den Sollwert erreichen, wäre die Regelabweichung Null. Null mal dem Proportionalfaktor ergibt Null, damit eine Stellgröße Null, die Temperatur würde ohne Energienachschub fallen. Sie fällt auf so viel Grad, wie die Regelabweichung groß sein muß, um einen Stellwert zu erreichen, der die Temperatur konstant hält. Nach meinem Verständnis hat die Regelstrecke keinen Einfluß darauf.

Bei einer Änderung der Solltemperatur sieht das anders aus, da spielt das Verhalten der Regelstrecke natürlich eine wesentliche Rolle.

Ich halte die ausbleibende Regelabweichung daher eher für eine niederfrequente Schwingung oder irgend sowas.

Bei der Recherche im Web bin ich über Temperaturregler mit der Erkennung offener Fenster (Lüftung) gestolpert. Wie könnte sowas implementiert werden?
Was soll den passieren? Im Hotelzimmer geht dann die Klimaanlage aus.

michael_x

1. Ihr seid alle im falschen Thread. ( Neue MCU und Pin Mapping ? )
2. Die meisten Thermostate sind keine P - Regler, sondern 2Punkt Schalter (Heizen bis es warm ist, fertig)
3. Auch PID Regler brauchen ein Modell der Regelstrecke und gehen davon aus, dass diese linear ist.
4. Wenn dies offensichtlich nicht der Fall ist (passendes lineares Modell), bieten digitale Regler vielfältigste Möglichkeiten.
Aber hier geht es offensichtlich um Wohnungs-Heizung

5. Bei offenem Fenster wird, wennn dies erkannt wird und die Regelung beeinflussen soll, diese meist mehr oder weniger abgeschaltetet.

agmue

Aber hier geht es offensichtlich um Wohnungs-Heizung
Da bin ich mir nicht so sicher, ich habe mir aber auch nicht das Thema von vorne bis hinten durchgelesen.

Kennst Du Dich mit Regelung aus? Wenn ja, wäre ich froh, wenn Du etwas Substantielles für den TO beitragen könntest, da es nicht mein Lieblingsthema ist. ::)

Leon333

So da bin ich wieder.
michael_x hat schon auch recht.
Da es hier die ganze Zeit um ein Projekt geht, ist es von den Anfängen bis jetzt vom Inhalt etwas abgedriftet.

Ich werde das hier noch schreiben um das sozusagen "abzurunden" und wenn es noch weiter abdriftet ein neues Thema aufmachen.

Es geht übrigens um die Regelung eines Wohnungs-Heizkörpers.
Da mein Vermieter allerdings mittels elektronischen Heizkostenverteiler abrechnet und diese Teile in dem am wenigsten geheizten Raum (nicht mal 17°) am meisten Verbrauch anzeigen und die Abrechen-Firma noch dazu alle Heizkörper (trotz unterschiedlicher Heizleistung und nicht "neu Programmierung" der Zähler nach Heizkörperwechsel) einheitlich behandelt, muss ich etwas dagegen tun. Es kann nämlich nicht sein, dass meine Mitmieter unter und über mir (Erdgeschoss und Dach) jedes Jahr eine Rückzahlung bekommen und ich ihr Heizen mit einer satten Nachzahlung subventioniere - und das obwohl ich in der hälfte der Räume gar nicht heize.

Der Heizkörper wird also versucht ohne Überschwingen mit möglichst konstanter Temperatur zu heizen.
Die normalen Thermostate haben ständig "sau heiß" geheizt und dann wieder über Stunden abkühlen lassen.
Resultat war, dass man entweder manuell nachregeln oder ständig seine Bekleidung ändern musste - und dabei dann auch noch zu viel gezählt wurde.

Ich habe mir daher einen Heizkörperregler gekauft, diesen dank eurer Hilfe mit der Arduino IDE programmierbar gemacht und mit einem zusätzlichen Temperatursensor versehen um die Heizkörpertemperatur zu erfassen.
Der Heizkörper wird dann versucht konstant auf 30°C zu heizen und zu halten.
Bisher macht sich das schon bemerkbar.
Der Raum ist (leicht) wärmer und es werden weniger Heizkosten gezählt.
Das leicht wärmer ist wörtlich zu verstehen. Es sind gerade mal 17,8 statt maximal 17°, aber immerhin...

Falls jemand noch weitere Ideen dazu hat, kann er mir gerne eine PN schicken.
Hier werde ich ab jetzt versuchen nur noch Sachen zum Themen-Titel zu schreiben (wenn ich es hinbekomen habe, dann, wie man einen Bootloader passend zur MCU erstellt).

Liebe Grüße

Gerhard34

Hallo Leon333,

ich würde meine Comet V3 auch gerne mit einer alternativen FW bespielen. (... um ggf via MQTT mit OpenHab zu kommunizieren)

Ist deine Einbindung in die Arduino IDE erfolgreich abgeschlossen?

Ist der Sourcecode zu haben? (.... damit ich nicht bei Null beginnen muss;-)


lG
Gerhard

Leon333


Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy