Kaminofen mit OH3 Steuern * PID-Regler

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

mr.b4
Beiträge: 51
Registriert: 11. Sep 2019 16:57

Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von mr.b4 »

Hallo zusammen,

ich habe meinen Kaminofen etwas getunt.
Der hat jetzt einen Abgastemperaturfühler und einen Servo an der Luftklappe.

Passend dazu habe ich in OH das PID Plug-In gefunden.

https://www.openhab.org/addons/automati ... ontroller/

Leider funktioniert es nicht so wie es soll.
Es wird keine Stellwert an das entsprechende Item mit Stellglied (0-100% Dimmer) ausgegeben
Ganz egal was ich an Paramern in den Regler schreibe.

Laufen tut der Regler irgendwie, denn die Regelabweichung (PID Fehler) wird korrekt ausgegebenen.

Die Doku und die Settings schweigen sich auch darüber aus, ob man das Stellsignal im Detail weiter konfigurieren muss.
Aktuell ist es in der Rule eine "Item Action" ohne Wert. (den soll der Regler dann einfügen - macht er aber ned)

Code: Alles auswählen

configuration: {}
triggers:
  - id: b437ceba-68ef-479c-8e8a-0f12bc9a362d
    label: PID Controller Trigger
    configuration:
      kd: 10
      kdTimeConstant: 1
      kp: 20
      ki: 10
      loopTime: 1000
      input: Kaminofen_Abgastemperatur
      setpoint: Abgastemperatur_Soll
      integralMinValue: 0
      integralMaxValue: 100
      eInspector: PID_Fehler
    type: pidcontroller.trigger
conditions:
  - id: "2"
    configuration:
      itemName: Status_PID
      operator: =
      state: ON
    type: core.ItemStateCondition
actions:
  - id: "1"
    configuration:
      itemName: Zuluftklappe_inv
    type: core.ItemCommandAction

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von udo1toni »

Vorweg: Ich habe keine Ahnung von Pid Regelkreisen, ich weiß nur, dass die ganze Angelegenheit nicht trivial ist (und damit meine ich nicht die Umsetzung in Code, sondern die korrekte Verwendung eines solchen Regelglieds).

Der Ausgang ist jedenfalls kein Dimmer Item, sondern ein Number Item, das wird Dein Problem sein. Ich habe das mal bei mir in der Testumgebung ausprobiert, und mit einem Number Item bekomme ich einen Wert am Ausgang, der unter 0 sinkt, wenn die gemessene Temperatur zu hoch ist und über 0 steigt, wenn die Temperatur zu niedrig ist. Wenn beide Temperaturen gleich sind ändert ich der Wert nur minimal.

Ich gehe davon aus, dass Du eine weitere Rule brauchst, um aus dem Zahlenwert eine Klappenstellung abzuleiten, wobei der Wertebereich natürlich auch festgelegt werden muss, also meinetwegen -100 = 0%, + 100 = 100%, 0 = 50%
Aber wie gesagt, ich habe keine Ahnung von dem Zeug.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

mr.b4
Beiträge: 51
Registriert: 11. Sep 2019 16:57

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von mr.b4 »

Vielen Dank.
Das deckt sich mit meinen letzten Ergebnissen.
Es war naiv anzunehmen, dass dieser Regler ein (für meinen Fall) passendes Signal ausgibt.

Wenn man das als P-Regler betriebt wird einfach die die mit P multiplizierte Differenz aus Soll und Ist ausgegeben.

Das in ein sinnvolles Stellsignal zu wandeln wäre eigentlich in dem Plug-In gut aufgehoben, hat der Entwickler aber an den Anwender ausgelagert.

Ziel meiner Bastelei (ähm Entwicklung) ist einfach, dass nach dem Anfeuern die Luft automatisch auf ein gutes Niveau zurück gefahren wird.
Wenn man das übersieht ist das teure Holz sehr schnell weg...

Und nachdem der Ofen abgebrannt ist, soll die Luftklappe ganz schließen (hat weniger dem PID-Regler zu tun) damit die Dunsthaube auch bei geschlossenem Fenster wieder eine Freigabe erhält.

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von mad-mike »

Was soll denn der Dimmer wohl für eine Aufgabe übernehmen?

Habe damit jetzt paar Mal gespielt.
Ich meine einen Stellmotor (Mischer) mit plus und minus Impulsen zu versorgen, habe ich nun schon hinbekommen.


Habe bei meiner Spielerei erstmal ein Item Sollwert Slider erstellt und einen einfachen Temperatur Sensor welcher hier rumliegt als "ist" wert verknüpft...

Nun kann man mit dem Wert und einer Rule halt positive und negative Impulse ausgeben.

Als nächstes würde ich versuchen wollen die Impuls Zeit in abhängigkeit von dem "Integralwert" zu setzen.

Heißt um den Wert 0 soll nix passieren, bei 10 bzw -10 soll dann 1sek in die jeweilige Richtung laufen.... Usw.

Mal gucken die nächsten Tage.

Nur wie gesagt, ein Dimmer verstehe ich nicht.
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

Mclupo
Beiträge: 178
Registriert: 6. Jun 2020 20:55
Answers: 2
Wohnort: Kirchheim Teck

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von Mclupo »

Normalerweise braucht ein PID Regler als Eingangsgrösse einen stetigen Wert, z.B ein analoges Thermoelement.
Wenn die Rule alle 1s den PID Regler triggert, aber der Temperaturwert nur minimum alle 15 Minuten erneuert wird (machen meine z-wave Temperaturgeber ), macht das alles keinen Sinn, bzw. der Regler springt ziemlich stark.
Wie sind denn die Erfahrungen mit der Ofensteuerung?
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von mad-mike »

So wie ich es verstanden habe mit meinem Beobachtung:

Der PID Regler triggert auf "every Change" vom Temperatur Sensor. (Habe die einen ds20b18 verlinkt) Und der pid triggert sich selbst mit einer Loop Funktion. Hier habe ich Mal 30 Sekunden eingestellt.

So wird der integral wert positiv und negativ gerechnet.

Es bedarf einer schlauen rule, damit man hiermit einen 3 Punkt Stellmotor betreiben kann.

Habe erstmal ganz naiv angefangen: wenn wert über 0 dann Mischer plus, wenn wert unter 0 dann Mischer Minus....
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

Mclupo
Beiträge: 178
Registriert: 6. Jun 2020 20:55
Answers: 2
Wohnort: Kirchheim Teck

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von Mclupo »

Schade um den Strom, den du mit dem PID Regler verballerst. Der rechnet 30 mal den selben Wert ( 15 Minuten für neue Temperatur / 30 sec looptine), bis er endlich eine neue Temperatur bekommt. Die ist vielleicht so unterschiedlich, dass der D Regler hochschiesst und dein Stellglied auf Vollausschlag geht.
In so einem Fall ist die Berechnung des Ausgangs besser mit einer normalen Rule, die bei Aktualisierung der Temperatur triggert.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von mad-mike »

Der rechnet immer neu.

Das bedeutet, mit jedem Trigger Event, gibt einen neuen integral wert. (Bis er halt am Ende angekommen ist.)

Auch wenn es keine Änderungen an der Sensorik gibt, wird sich der Wert verändern damit eine Aktion durchgeführt werden kann...

Und der sendet alle 30 Sekunden ein "refresh" das heißt das der Wert theoretisch alle 30 Sekunden aktualisiert wird.

Kann den loop Timer auch auf 15 Minuten stellen. Bringt nur nix wenn der Temperatur Sensor früher schon ein Update liefert.

Wie gesagt, das habe ich beobachtet bis jetzt.
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

mad-mike
Beiträge: 402
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von mad-mike »

bin hier ja noch immer am Probieren.

Nun wollte ich versuchen mit dem Integralwert Laufzeiten beeinflussen.

Im Positiven bereich hat dies auch geklappt, aber im Negativen gibt´s -> verständlicherweise, eine warnmeldung...

Wie kann ich aus einer Negativ Zahl das vorzeichen weg bekommen??

Code: Alles auswählen

Thread::sleep((PID.state as DecimalType).longValue * 1000)
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Kaminofen mit OH3 Steuern * PID-Regler

Beitrag von udo1toni »

Die benötigte Funktion dafür heißt Math::abs() oder alternativ Math.abs() (sollte beides gehen)

Code: Alles auswählen

Thread.sleep(Math.abs((PID.state as DecimalType).longValue) * 1000)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten