Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo zusammen, > > zur Zeit steuere ich 2 Pumpen (Solar und Fußbodenheizung) drehzahlgesteuert mittels IWP an. > Die Solarpumpendrehzahl wir proportional der Differenztemperatur Solar-Puffer gesteuert. > Die Fußbodenpumpe je nach Anzahl offener Kreise (Raumthermostat und Stellmotor). > > Bis vor einigen Wochen fuhr ich die Einstellung > Zeitbasis 6,4 us und Periodenlänge 15625 Ticks, ergibt 100 ms oder 10 Halbwellen. > Ab 3 Halbwellen ein und 7 aus drehen sich die Pumpen. > > Hiebei entsteht aber bei ungerader Halbwellenanzahl (z.B. 5 Ein / 5 Aus = 50 %) ein Gleichstromanteil, > der die Pumpen angeblich bremst (Info irgendwo aus dem Netz). > > Ich hab nun auf 110 ms oder 11 Halbwellen (6,4 us und 17188 Ticks) umgestellt und habe den Eindruck, > dass die Solarpumpe dadurch etwas runder läuft, weniger vibriert und auch mehr Wasser pumpt. > Sie drehen nach wie vor ab 3 Halbwellen an aber nun bis "110 %", -> größerer Regelbereich. > > - Kann mir jemand diesen Effekt bestätigen, aus Erfahrung berichten oder berechnen? > > - Was fahrt ihr für Einstellungen? > > - Die Timebasis ist nun nicht mehr geradzahlig (eigentlich 17187,5 Ticks) was meiner Meinung nach > nicht aus macht, ist das so? > > viele Grüße > Karl-Heinz > > und hier der Code Auszug: > > <code> > > const Perioden=11; //=11 Halbwellen (Periodendauer ganzes Vielfaches der Netzfrequenz) > const Ticks=17188; // 100 000 / 6,4 =15625 // 110 000 / 6.4 = 17187,5 > const PLM_Base=4 //=6.4 us > > //Init PLM-Port 0=Fußbodenpumpe 1=SolarPumpe > plm.settimebase(1, PLM_Base); //4=6.4us; 5=12.8us; 6=25.6us PLM_Base=4 > plm.setmode(1, 0); // Digital mode > //15625 Ticks * 6.4 us = 100 ms => 10 Halbwellen > //17188 Ticks * 6.4 us = 110 ms => 11 Halbwellen > plm.setperiod(1, Ticks); > > > > //Solarthread > > GrenzWert = Ticks*0.39; // Pumpe einschalten ab 40 % > AusWert = Ticks*0.30; // Pumpe aus kleiner 30% > > loop > { > . > . > . > > //SolarDifferenz zwischen Speicher und Kollektor in 1/10 °C > diff = SolTemp - SpTemp ; > if diff < 0 diff = 0; > if diff > 300 diff = 300; > > //Stellgrösse: PropRegler + Offset kPSolar=80 Offset=500 > y = diff * kPSolar + SolarOffset; > if y >= Ticks y = Ticks - 2; // Auf 100% begrenzen > > // Einschalten und regeln > if y > GrenzWert iSolPumpe=true; > // SolarPumpe sperren bei zu kleiner Drehzahl oder Temperatur zu niedrig > if y < AusWert or SolTemp < TSolarEinMin iSolPumpe=false; > > if iSolPumpe SolarPumpDrehzahl = y; //Drehzahl stellen > else SolarPumpDrehzahl = 0; // Ausschalten > > // Drehzahl Ausgeben (30% .. 100%) > plm.out(1, SolarPumpDrehzahl); > > > </code>