NEU! UPGRADE IP 11 verfügbar!
NEU! LICHTWIDGET - DPT 7.600 - Logik Manager Update - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/B9MUEJj2

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur VISU
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Beantwortet] [3.5.1] Heizungssteuerung mit "PID awu"

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Benutzeravatar

Ersteller
Wallaby1999
Reactions:
Beiträge: 12
Registriert: So Aug 12, 2018 10:23 pm
Hat sich bedankt: 64 Mal
Danksagung erhalten: 14 Mal

[3.5.1] Heizungssteuerung mit "PID awu"

#1

Beitrag von Wallaby1999 »

Hallo,

nach 3 1/2 Jahren habe ich endlich angefangen, meinen Timberwolf richtig in Betrieb zu nehmen, weil schlussendlich das Wiregate doch den Geist aufgegeben hat. Man braucht nur die richtige Motivation, dann läuft es auch wie am Schnürchen :D

Erster und wichtigster Baustein für mich ist die Raum-Steuerung meiner Fußbodenheizung, da meine Heizungsaktoren keine eingebaute Steuerung haben. Dazu habe ich mir die Logikmodule angeschaut und den "PID awu" als passend ausgesucht. Allerdings bin ich nicht so richtig fündig geworden, was die sinnvolle Wahl der Paramter Kp, Ki und Kd anbelangt. Im Wiki unter https://elabnet.atlassian.net/wiki/spac ... gik-Module wird zwar das Modul generell erläutert, aber nicht die genaue interne Berechnungsweise. Auch die verlinkten Seiten helfen mir nur bedingt weiter. Ich habe auch keine Möglichkeit gefunden, mir die Internas des Moduls anzuschauen, wie es bei den Custom-Logiken funktioniert.
Ich habe mal einen Screenshot meiner aktuellen Einstellungen gemacht: Bild

Gibt es Erfahrungswerte, welche Parameter passend sind? Bin ich mit Kp = 2, Ki = 0,7 und Kd = 0 halbwegs richtig unterwegs?
Ich hatte anfangs mir die Werte aus diesem Beitrag viewtopic.php?f=65&t=3882&p=43478&hilit=pid#p43478 als Vorlage genommen, da bin ich aber nie auch nur ansatzweise über einen Wert von 6% Stellgröße hinausgekommen.
Zuletzt geändert von Robert_Mini am Fr Dez 16, 2022 12:05 pm, insgesamt 1-mal geändert.
Michael

Timberwolf Server 960Q / #367 (VPN offen / Reboot jederzeit)

cheater
Reactions:
Beiträge: 613
Registriert: Sa Aug 11, 2018 11:16 pm
Hat sich bedankt: 384 Mal
Danksagung erhalten: 274 Mal

#2

Beitrag von cheater »

Servus,
was genau möchtest du denn ansteuern? Den Heizungsmischer, oder die Stellventile im Heizkreisverteiler.

Nur mal so aus meiner Erfahrung heraus. Man liest immer wieder das Leute komplett ohne diese Stellventile klarkommen. In unserem Haus würde das nicht gut funktionieren. Liegt wahrscheinlich an den recht großen Räumen und einem nicht ganz so guten hydraulischen Abgleich. Ich habs mal ohne Stellventile probiert, hat aber nicht zufriedenstellend funktioniert.
Dann habe ich die Stellventile von einem MDT Heizungsaktor mit PWM steuern lassen. Das war ganz okay, aber auch nicht so ganz perfekt. Mittlerweile steuert die Loxone meine Stellventile und zwar nicht mit PWM, sondern einfach auf und zu. Funktioniert besser, als zuvor mit dem MDT Aktor. Das Schöne ist, das man sich hier nicht mit Kp und Ki rumärgern muss.
Btw. die Loxone steuert auch meine Heizungsmischer. Zum einen nach Außentemperatur, aber auch mit dynamischer Korrektur nach tatsächlichem Heizbedarf (wie weit ist Isttemp. von Solltemp. entfernt). Hat hier ebenfalls den Vorteil, das die Einstellwerte für den Mischer nur einigermaßen passen müssen, der Rest wird dynamisch geregelt.

Ich weiß, dass ich jetzt nicht ungbedingt die Antwort, die du suchst, aber vielleicht wäre es zielführender die Sache anders anzupacken. Es gibt einfach kein Patentrezept für Heizungsregelung.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Grüße, Dominic

Timberwolf 2400 #126, VPN offen, Reboot nach Absprache

gbglace
Reactions:
Beiträge: 3615
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1272 Mal
Danksagung erhalten: 1674 Mal

#3

Beitrag von gbglace »

cheater hat geschrieben: Do Dez 15, 2022 7:23 pm Dann habe ich die Stellventile von einem MDT Heizungsaktor mit PWM steuern lassen. Das war ganz okay, aber auch nicht so ganz perfekt. Mittlerweile steuert die Loxone meine Stellventile und zwar nicht mit PWM, sondern einfach auf und zu. Funktioniert besser, als zuvor mit dem MDT Aktor.
Was ist der Unterschied von AN/AUS zu PWM? Das ist auch nur AN/AUS. Wenn dann bräuchtest Ventilantriebe die man wirklich stetig ansteuern kann und die dann auch wirklich 60% Durchfluss einstellen können.

Eine Regelung die einfach AUS macht wenn Ziel-Temperatur erreicht ist und AN macht wenn Zieltemperatur unterschritten ist. ist schon eine sehr "primitive" Regelung. bis keine Regelung. Und je nach Wärmeverteiler ungünstig. je träger der Wärmeverteiler desto ungünstiger (FBH/Wandheizungen).

Was also gut oder schlecht funktioniert kommt immer auf die Art und Dimensionierung der Heizungsanlage an. Ich habe bei mir auch Jahre lang keine Ventile verbaut gehabt und im haus eine konstante Temperatur und habe das mit Heizkörpern im sanierten Altbau. habe mir halt einige Wochen Monate im Winter zeit genommen um das ordentlich hydraulisch abzugleichen.

Wenn das mit dem MDT und einem PID Regler nicht gut gepasst hat, dann werden da wohl die Reglerwerte zu Zykluszeiten für die PWM Ansteuerung nicht gepasst haben und dann die Anlage Überschwungen hat.
Grüße
Göran

#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#3 PBM 3 Kanäle, #4 Modbus-Extension

Robosoc
Reactions:
Beiträge: 1884
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 639 Mal
Danksagung erhalten: 775 Mal

#4

Beitrag von Robosoc »

Falls du die VL Temperatur in Abhängigkeit der Aussentemperatur und mit Heizkurve steuern willst siehe hier
viewtopic.php?f=65&t=2036

Wenn Du Fragen dazu hast, poste die gerne dort.
Die Cometvisu Lösung ist inzwischen an CV V12 angepasst und daher ein wenig anders.

Erfahrungswerte für Stellventil mit "PID awu" habe ich nicht. Ich Regel tatsächlich auch nur noch über die Vorlauftemp. Und in manchen Räumen drossel ich die Temperatur dann noch zusätzlich über einen Stellenwert, der fest z.B. 50 % über PWM hat. Das aktivieren ich dann manchmal für ein paar knackige Tage.
Zuletzt geändert von Robosoc am Do Dez 15, 2022 9:25 pm, insgesamt 1-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
Benutzeravatar

Ersteller
Wallaby1999
Reactions:
Beiträge: 12
Registriert: So Aug 12, 2018 10:23 pm
Hat sich bedankt: 64 Mal
Danksagung erhalten: 14 Mal

#5

Beitrag von Wallaby1999 »

Gesteuert werden sollen die Stellventile im Heizkreisverteiler.

Bisher hatte ich das mit dem Multi-RTR-Plugin auf dem Wiregate gesteuert (gekürzt):

Code: Alles auswählen

#############################################################################
# Plugin for multiple RTR (room temperature controllers) by using a PI 
# controller
#############################################################################

#############################################################################
# Configuration
my @controllers = (
{Name => "KG-Gaestezimmer", SollDefault => 21, IstGA => "2/0/0", SollGA => "2/0/1", WertGA => "2/0/2", Proportional => 2, Nachstellzeit => 2.5 * 60},
);

my $debug = 0;
my $cycle = 2 * 60; # 2 minutes
my $updateRate = 3 * $cycle; # 6 minutes
my $updatePercentage = 5 / 100; # 5 %


#############################################################################
# Initialisation
foreach my $element (@controllers) {
    # Initialise controller state variables
    if (not exists $plugin_info{$plugname.'_'.$element->{Name}.'_Integral'}) {
        $plugin_info{$plugname.'_'.$element->{Name}.'_Soll'} = $element->{SollDefault};
        $plugin_info{$plugname.'_'.$element->{Name}.'_Integral'} = ($element->{Proportional} * 60.0 * $element->{Nachstellzeit}) / 2;
        $plugin_info{$plugname.'_'.$element->{Name}.'_Wert'} = 0;
    }
} # end Initialisation


#############################################################################
# Update the controllers
foreach my $element (@controllers) {
    my $prefix = $plugname.'_'.$element->{Name};

    # time stamp
    my $time = time();
    my $timeDiff = $time - $plugin_info{$prefix.'_lastTime'};

    my $tempIs = knx_read($element->{IstGA}, 0);
    my $tempBe = $plugin_info{$prefix.'_Soll'};
    my $tempDiff = $tempBe - $tempIs;
    my $proportional = $element->{Proportional};
    my $nachstellzeit = $element->{Nachstellzeit};
    my $integral = $plugin_info{$prefix.'_Integral'};
    my $controlValueOld = $plugin_info{$prefix.'_Wert'};

    # calculate the new integral and the control value
    $integral = $integral + ($tempDiff * $timeDiff);
    my $controlValue = 100.0 * (($tempDiff + ($integral / (60.0 * $nachstellzeit))) / $proportional);
    # clip at maximum to avoid windup:
    if ($controlValue > 100) {
        $controlValue = 100;
        $integral = $proportional * 60.0 * $nachstellzeit;
    }
    # clip at minimum
    if ($controlValue < 0 or $integral < 0) {
        $controlValue = 0 if $controlValue < 0;
        $integral = 0;
    }

    # Send the new actuator value, if update rate or percentage are reached
    if ($timeDiff >= $updateRate or ($controlValueOld ne 0 and abs(1 - ($controlValue / $controlValueOld)) >= $updatePercentage)) {
        knx_write($element->{WertGA}, $controlValue);
        $plugin_info{$prefix.'_lastTime'} = $time;
    }

    # persist necessary values
    $plugin_info{$prefix.'_Integral'} = $integral;
    $plugin_info{$prefix.'_Wert'} = $controlValue;
}

return;
Da ich beim Modul "PDI awu" halt nicht mehr Infos sehen kann als die Parameter, die ich angeben kann, frage ich nach, was da eigentlich passiert.

Die Steuerung der Wärmepumpe ist ohne einen unverhältnismäßig hohen finanziellen Aufwand nicht von außen steuerbar und die Heizungsaktoren will ich nun auch nicht nach 13 Jahren plötzlich tauschen, damit diese selbst die Regelung übernehmen, wenn es auch andere weniger kostspielige Möglichkeiten gibt mit einer vorhandenen Steuerungslogik im Timberwolf gibt.
Zuletzt geändert von Wallaby1999 am Fr Dez 16, 2022 1:05 am, insgesamt 1-mal geändert.
Michael

Timberwolf Server 960Q / #367 (VPN offen / Reboot jederzeit)

gbglace
Reactions:
Beiträge: 3615
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1272 Mal
Danksagung erhalten: 1674 Mal

#6

Beitrag von gbglace »

Ich kenne mich da halt nicht so aus mit der Regelungslogik. Ich würde es mal ausprobieren.

Das Wetter an sich bietet sich ja an wenn man mal ein wenig experimentiert mit den Werten. Den Rest der Familie immer mal im Garten spielen schicken, dann kommt denen das kalte Haus auch nicht so kalt vor ;-) wenn die Parameter nicht direkt passen.
Grüße
Göran

#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#3 PBM 3 Kanäle, #4 Modbus-Extension

StefanW
Elaborated Networks
Reactions:
Beiträge: 9775
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4879 Mal
Danksagung erhalten: 7820 Mal
Kontaktdaten:

#7

Beitrag von StefanW »

Verehrte Moderatoren,

wolltet Ihr den TE nicht auf die Einhaltung der Forenregeln hinweisen?

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1171 Mal
Danksagung erhalten: 2076 Mal

#8

Beitrag von Robert_Mini »

Hallo Michael!

Ich habe bei mir im DokMode eine Simulation dazu gestartet, Ergebnis kann ich erst am Nachmittag teilen.

Bitte zwischenzeitlich die Softwareversion bekanntgeben (wenn noch möglich per Edit im Titel).

Danke
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Benutzeravatar

Ersteller
Wallaby1999
Reactions:
Beiträge: 12
Registriert: So Aug 12, 2018 10:23 pm
Hat sich bedankt: 64 Mal
Danksagung erhalten: 14 Mal

#9

Beitrag von Wallaby1999 »

Da ich keine Möglichkeit sehe, den Titel zu ändern, muss ich das leider als Beitrag reinschreiben.

Version 3.5.1
Michael

Timberwolf Server 960Q / #367 (VPN offen / Reboot jederzeit)

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1171 Mal
Danksagung erhalten: 2076 Mal

#10

Beitrag von Robert_Mini »

Hallo Michael!

Danke für die Version, es gibt einen edit Button, kann aber sein, dass der nur 24h verfügbar ist.

Im Anhang 2 Tests
1) Kp=2 und Ki=0,7
2) Kp=2 und Ki=0,0083 das sind deine 2x60 aus dem Plugin als 1/120sec

Der Fall 1 ist unbrauchbar, da läuft der Stellwert in 1,5min auf 100%, da kann sich die Temperatur im Raum noch gar nicht geändert haben.
Fall 2 schein nicht schlecht, da läuft der I-Anteil in 3h20min auf 100%. Da könnte realistischerweise die Raumtemperatur schon steigen und das Integrieren langsamer werden.

Ich würde mal Kp=20 (statt 2) und Ki=0,008 probieren. Kp=2 bedeute ja, dass 1°C Abweichung nur 2% Stellgröße machen, das ist sicher zu wenig.

lg
Robert
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“