Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Temperatur steuerung ???????? (https://www.delphipraxis.net/138940-temperatur-steuerung.html)

Reinhard Kern 20. Aug 2009 18:11

Re: Temperatur steuerung ????????
 
Zitat:

Zitat von himitsu
nja, aber zumindestens ist für die Auswertung der aktuelle Zustand von HeatIsOn unwichtig :angel2:

Hi,

in der Praxis ist es so, dass bei eingeschalteter Heizung die Temperatur nur steigen kann und bei abgeschalteter nur fallen (ausser Überschwinger, aber da spielt das keine Rolle). Man spart sich also die Differenzierung des Temperaturverlaufs.

Alle 3 Algorithmen (RK,himitsu,guiness) sind verschieden, sie stellen aber alle einen 2Punkt-Regler dar, der Unterschied dürfte bloss in der erreichten mittleren Temperatur liegen wegen der unterschiedlichen Offsets.

Gruss Reinhard

himitsu 20. Aug 2009 19:09

Re: Temperatur steuerung ????????
 
mir ist hier sogar grad ein Fehler aufgefallen :shock:
Zitat:

Delphi-Quellcode:
if HeatIsOn then
  if ActualTemp > RefTemp + THysteresis then HeatIsOn := false
else
  if ActualTemp < RefTemp then HeatIsOn := true;

das ELSE gehört ja nicht zum ersten IF, sondern zum Zweiten,

also so
Delphi-Quellcode:
if HeatIsOn then
  if ActualTemp > RefTemp + THysteresis then HeatIsOn := false
  else
    if ActualTemp < RefTemp then HeatIsOn := true;
und so kann die Heizung nur ausgeschaltet werden, denn wenn die Heizung schon aus ist, wird hier nix mehr gemacht :nerd:

wobei es bestimmt so gedacht war
Delphi-Quellcode:
if HeatIsOn then
begin
  if ActualTemp > RefTemp + THysteresis then HeatIsOn := false;
end
else
  if ActualTemp < RefTemp then HeatIsOn := true;

aber das if HeatIsOn then ist hierbei eh "unwichtig", da die so abgekapselten Einzelvergleiche im jeweils anderen Zustand von HeatIsOn eh keine Veränderung hervorufen.

melssner 20. Aug 2009 19:39

Re: Temperatur steuerung ????????
 
Ich habs jetzt soweit gemacht allerdings ohne der vorherigen abfrage IsOn

Delphi-Quellcode:
if (Thermometer = 'OFF') and (StrToInt(AktTemp) > StrToInt(Temperatur)+0.1) then
 begin
  IsOn:= false;
 end;
if (Thermometer = 'OFF') and (StrToInt(AktTemp)+1.9 < StrToInt(Temperatur)) then
 begin
  IsOn:= true;
 end;
if (Thermometer = 'false') then
 begin
  IsOn:= true;
 end;
so funktioniert es auch im Timer über Zeitrutinen wenn das Thermometer deaktiviert ist.

Danke nochmal
Lg Mario

himitsu 20. Aug 2009 19:45

Re: Temperatur steuerung ????????
 
Delphi-Quellcode:
(StrToInt(AktTemp) > StrToInt(Temperatur)+0.1) then
...
(StrToInt(AktTemp)+1.9 < StrToInt(Temperatur)) then
0.1 und 1.9 ? :gruebel:

StrToInt erzeugt doch nur Integer, da haben die Fließkommazahlen dann nicht die Auswirkung, welche geplant ist

Klaus01 20. Aug 2009 20:01

Re: Temperatur steuerung ????????
 
Zitat:

Zitat von himitsu
Delphi-Quellcode:
(StrToInt(AktTemp) > StrToInt(Temperatur)+0.1) then
...
(StrToInt(AktTemp)+1.9 < StrToInt(Temperatur)) then
0.1 und 1.9 ? :gruebel:

StrToInt erzeugt doch nur Integer, da haben die Fließkommazahlen dann nicht die Auswirkung, welche geplant ist

.. man achte auf die Klammern

Schönen Abend noch
Klaus

himitsu 20. Aug 2009 20:23

Re: Temperatur steuerung ????????
 
Die Klammern sind vollkommen uninteressant ... Was ich meinte ist, daß das Ergebnis der in seiner Funktion diesem entspricht:
(wenn ich jetzt richtig gerundet hab)
Delphi-Quellcode:
StrToInt(AktTemp) > StrToInt(Temperatur) then
...
StrToInt(AktTemp)+1 < StrToInt(Temperatur) then
Da die Vergleichswerte eh nur ganzzahlig sind, interessiert im Vergleich auch nur der gerundete ganzahlige Wert.

Die Gleitkommaarithmetik ist hier allso vollkommen sinnlos enthalten.

melssner 20. Aug 2009 21:03

Re: Temperatur steuerung ????????
 
habs selbst gemerkt und geändert

jfheins 20. Aug 2009 21:16

Re: Temperatur steuerung ????????
 
Ach übrigens, deine ?-Taste klemmt :mrgreen:

Reinhard Kern 21. Aug 2009 07:58

Re: Temperatur steuerung ????????
 
Zitat:

Zitat von himitsu
...
das ELSE gehört ja nicht zum ersten IF, sondern zum Zweiten,
...

hatte ich auch mit begin-end geschrieben, aber dann wollte zur Veröffentlichung ich alles überflüssige streichen...

Nicht nur Anfänger machen Anfängerfehler.

Gruss Reinhard

hathor 21. Aug 2009 09:31

Re: Temperatur steuerung ????????
 
Statt "Temperatur steuerung ????????" bitte: Terrarium-Temperatursteuerung


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz