PI-Regler Script

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

PI-Regler Script

Beitrag von paul53 » 16.08.2012, 21:39

Das folgende PI-Regler Script benötigt für den I-Anteil eine Systemvariable und muss wegen des I-Anteils per Zeitmodul zyklisch (im Beispiel alle 30 Sekunden) ausgelöst werden:

Code: Alles auswählen

! PI-Regler (Heizung)

! Raum als Bestandteil des Kanalnamens bzw. des Namens der Systemvariablen 
! Raum.Sensor  Raum.Regler  Raum.Ventil  Raum.I-Anteil  Raum.Autosollwert
string raum = "Wohnen";

! lokale Variablen
real tz = 30.0;  ! Zykluszeit in s
real xp = 4.0;   ! P-Band
real tn = 600.0; ! Nachstellzeit in s
real x;          ! Istwert
real w;          ! Sollwert 
real y;          ! Reglerausgang
real p;          ! P-Anteil
real i;          ! I-Anteil

! Wandthermostat einlesen
x = dom.GetObject(raum+".Sensor").DPByHssDP("TEMPERATURE").Value(); 
w = dom.GetObject(raum+".Regler").DPByHssDP("SETPOINT").Value(); 
        
! Sollwert
if ((w >= 6.0) && (w <= 30.0)) 
{dom.GetObject(raum+".Autosollwert").State(w);}
else
{w = dom.GetObject(raum+".Autosollwert").Value();} 

! P-Regler
y = (100.0 / xp) * (w - x);
p = y + 50.0;
if (p > 100.0) {p = 100.0;}
if (p < 0.0) {p = 0.0;}

! I-Regler bei Auslösung alle z Sekunden
i = dom.GetObject(raum+".I-Anteil").Value();
i = i + ((tz / tn) * y);

! PI-Regler
y = p + i;
if (y > 100.0) 
{ y = 100.0;
  i = 100.0 - p;
}
if (y < 0.0)
{ y = 0.0;
  i = 0.0 - p;
}

! I-Anteil speichern
dom.GetObject(raum+".I-Anteil").State(i);

! Stellsignal ausgeben
dom.GetObject(raum+".Ventil").DPByHssDP("LEVEL").State(y / 100);
Das Script ist geeignet für diejenigen, die keine Stellantriebe HM-CC-VD verwenden wollen oder können, sondern eine stetige Regelung mittels thermoelektrischer Stellantriebe über Dimmaktoren oder mittels 3-Punkt-Antrieben über Jalousieaktoren realisieren wollen.

Eine weitere Anwendungsmöglichkeit ist die Raum-/Zuluftkaskaden-Regelung bei einer Luftheizung.
Zuletzt geändert von paul53 am 05.09.2013, 19:25, insgesamt 5-mal geändert.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: PI-Regler Script

Beitrag von PaulG4H » 13.09.2012, 11:10

Hallo,

habt ihr keine Performace Probleme mit der CCU wenn ihr ein Script alle 10 Sekunden ausführt?

Bei mir hört die CCU nach spätestens zwei Tagen auf ein ähnliches Programm alle 30 Sekunden auszuführen und der ELV Support hat mir geschrieben das ich es alle 5 Minuten ausführen soll da die CCU nicht dafür gemacht ist!?

Die Lösung für mich ist das ich das script alle 30 Sekunden von meinem Linux Server per Cron Job über die xml-api (oder db add-on) starte, denn dieser Funktoniert zuverlässig!

LG
Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: PI-Regler Script

Beitrag von paul53 » 13.09.2012, 12:54

Das hängt von der Auslastung der CCU ab.
Ich habe das Script einige Tage lang ohne Probleme getestet.
Allerdings ist die normale Auslastung meiner CCU eher gering.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

Techisan
Beiträge: 28
Registriert: 13.09.2011, 17:12

Re: PI-Regler Script

Beitrag von Techisan » 23.09.2012, 17:03

PaulG4H hat geschrieben:habt ihr keine Performace Probleme mit der CCU wenn ihr ein Script alle 10 Sekunden ausführt?
Ich habe für eine Taupunktheizung (Infrarotheizung über Dimmer) ein PID-Regler-Script am laufen. Bei mir reicht es jedoch, bedingt durch die Trägheit der Heizung, dieses alle zwei Minuten auszuführen. Dieses läuft bereits über ein Jahr ohne Probleme.

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: PI-Regler Script

Beitrag von paul53 » 28.01.2013, 20:29

Eine offenbar funktionierende Anwendung des Scripts für eine Fußbodenheizung, ergänzt um eine PWM-Ansteuerung eines Schaltaktors, findet man hier: http://homematic-forum.de/forum/viewtop ... =40#p86065
Ergebnis: http://homematic-forum.de/forum/viewtop ... =64#p87054
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

qwertz
Beiträge: 272
Registriert: 15.02.2012, 19:35
Hat sich bedankt: 6 Mal
Danksagung erhalten: 18 Mal

Re: PI-Regler Script

Beitrag von qwertz » 14.03.2016, 23:26

Hallo zusammen !

Ich versuche gerade den in CUXD-implementierten PI-Regler (welcher laut Anleitung auf diesem Skript beruht) zu nutzen, um den Regler für die Vorlauftemperatur einer Fußbodenheizung zu steuern. D.h. über den Stellantrieb wird abhängig von der IST-Vorlauftemperatur heißes Wasser zugemischt, um die SOLL-Vorlauftemperatur zu erhalten.

Grundsätzlich klappt das auch, aber ich habe das Gefühl das Thermostat regelt zu oft und zu stark (s.Bilder).Die Batterien werden das nicht all zu lange mitmachen.

Nun habe ich mit mäßigen Erfolg versucht mich in die Theorie der Regelung einzulesen, um sinnvoll die Variablen optimieren zu können...Das Ergebnis entspricht noch nicht ganz meinen Vorstellungen: Vor allem Tagsüber schwingt die Temperatur arg viel rum.

Hat jemand einen Ratschlag zur Einstellung des PI-Regelmoduls für diesen Anwendungszweck bzw. leicht verdauliche Lektüre zum Thema Regelung ?

Besten Dank und Gruß,
qwertz

Konfig:
CCU 2 Fw2.15.5
CuxD 1.5
EUROtronic EnOcean Stellantrieb Stella E, (zum Einregeln aktuell 1min Kommunikatonsabstände)
trend.gy.png
Bildschirmfoto 2016-03-14 um 23.12.57.png

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: PI-Regler Script

Beitrag von paul53 » 22.03.2016, 19:40

Wenn die Regelung schwingt, ist XP zu klein bzw. die Totzeit zu groß.
Versuche es mal mit
XP = 15
TN = 300 s
TZ = 30 s
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

qwertz
Beiträge: 272
Registriert: 15.02.2012, 19:35
Hat sich bedankt: 6 Mal
Danksagung erhalten: 18 Mal

Re: PI-Regler Script

Beitrag von qwertz » 24.03.2016, 11:04

Hi Paul !
Vielen Dank !

Habe es jetzt umgstellt und berichte wenn es 2-3Tage so gelaufen ist.

Besten Gruß,
qwertz

qwertz
Beiträge: 272
Registriert: 15.02.2012, 19:35
Hat sich bedankt: 6 Mal
Danksagung erhalten: 18 Mal

Re: PI-Regler Script

Beitrag von qwertz » 26.03.2016, 08:18

Hi Paul !

So siehts jetzt aus.
Die Soll-Temp schwankt um +/- 1°C, wobei der Stellantrieb fast minütlich nachregelt.
trend.gy88.png
Bildschirmfoto 2016-03-26 um 08.11.01.png
trend.gy.png

Soll ich XP weiter hochdrehen ?

Besten Gruß und Frohe Ostern,
qwert

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: PI-Regler Script

Beitrag von paul53 » 26.03.2016, 09:36

qwertz hat geschrieben:Soll ich XP weiter hochdrehen ?
Ja, und TN auf 600 s.

Frohe Ostern
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“