Go Down

Topic: "nan" Wert in der Anzeige (Read 3220 times) previous topic - next topic

SkobyMobil

Hallo,
wenn ich den Sketch über "Reset" am Arduino starte, dann bekomme ich bei der
Anzeige eines Wertes zuerst "nan" -und dann den richtigen Wert.

Das passiert aber nur beim "starten" des Programm (erster Durchlauf)
Danach kommt es in Echtzeit.
Ich weiß nicht, was soll das beteuten, dass…
Gruß und Dank
Andreas
die zweite Maus bekommt den Speck...

erni-berni

Hallo Andreas,

"nan" heißt normal "not a number". Was das in deinem Programm macht, können wir ohne das Programm nicht sagen.

Gruß
Reinhard

jurs


wenn ich den Sketch über "Reset" am Arduino starte, dann bekomme ich bei der
Anzeige eines Wertes zuerst "nan" -und dann den richtigen Wert.


Verstehe, "den" Sketch.
Welcher ist das?

"nan" ist eine ungültige Gleitkommazahl und steht für den Wert "Not a Number".

Dieser Wert tritt bei Gleitkommazahlen z.B. bei einer Division durch Null auf.

uwefed

Eine funktionierende Kristallkugel müßte man haben ...

SkobyMobil

Hallo,
den Sketch? Hier ließt sich niemend > 27kb durch:
ich reiße es einmal an:

Code: [Select]
float TPa = 17.271;
float TPb = 237.7;
float TpEX;
float TpIN;
float TpINtemp;
float TpEXtemp;

float INrF;
float INcT;
float EXrF;
float EXcT;


void setup()    
{
}

void loop()

{

TpINtemp = (TPa * INcT) / (TPb + INcT) + log(INrF / 100);
TpIN = (TPb * TpINtemp) / (TPa - TpINtemp);

TpEXtemp = (TPa * EXcT) / (TPb + EXcT) + log(EXrF / 100);
TpEX = (TPb * TpEXtemp) / (TPa - TpEXtemp);

tft.print(TpIN,1);

tft.print(TpEX,1);

}


Die "TpIN,1" kommt sofort richtig- bei der "TpEX,1" triit der Fehler auf.
Beide Werte haben die gleiche Quelle.

Läßt man sich die Variablen einzeln Anzeigen gibt es keine Probleme, erst
nach der obigen "Rechnerei" kommt es dazu.
Gruß und Dank
Andeas

P.S. "Eine funktionierende Kristallkugel müßte man haben ..."

Ich hab so´n Ding, aber die ist duster wie die Nacht...
die zweite Maus bekommt den Speck...

jurs


Läßt man sich die Variablen einzeln Anzeigen gibt es keine Probleme, erst
nach der obigen "Rechnerei" kommt es dazu.


Auch "log(0);" ergibt eine ungültige Zahl als Ergebnis.
Das kannst Du übrigens auch auf jedem Taschenrechner mit einer log-Funktionstaste ausprobieren, einschließlich Windows-Taschenrechner in der Rechneransicht "wissenschaftlich".

SkobyMobil

Hallo,
genau! ungültige Zahl! Hab´s probiert. Wer setzt denn so mistige Formel für den Taupunkt
ins Internet- und welche Rechenkünstler schreiben die ab? Ist nicht zu fassen.
Gruß und Dank
Andreas
die zweite Maus bekommt den Speck...

jurs


Wer setzt denn so mistige Formel für den Taupunkt
ins Internet- und welche Rechenkünstler schreiben die ab? Ist nicht zu fassen.


Die Formel ist vollkommen richtig.

Falsch ist nur, eine Luftfeuchtigkeit von 0 anzusetzen, und dann ausrechnen zu wollen, bei welcher Temperatur sich Tau niederschlägt, wenn man die Luft abkühlt.

Du dürftest wohl selbst in der trockensten Wüste auf der ganzen Welt nirgendwo kaum irgendwo einen Ort finden, an dem die relative Luftfeuchtigkeit deutlich unter 3% liegt. Eine Luftfeuchtigkeit von 0,0% existiert nirgends auf der Welt!

Und wenn Du trotzdem eine Rechnung mit 0,0% Luftfeuchtigkeit machst und den Taupunkt ausrechnen möchtest, an dem sich aus dieser Luft der Tau niederschlägt, dann ist nicht die Formel daran Schuld, sondern der eingesetzte Wert von 0,0% Luftfeuchtigkeit, der keinen Sinn ergibt, wenn Du "Tau" aus der Luft bekommen möchtest.

SkobyMobil

Hallo,
jetzt komme ich dahinter. Ich rechne mit null.
Dann ist die Formel nur eine einfache Art und Weise um ans Ziel zu kommen?
D.h. wenn ich dieses "nan" eliminieren möchte, dann muss eine andere Formel
her?
Gruß und Dank
Andreas
die zweite Maus bekommt den Speck...

uwefed

Gib  der Variablen
float EXrF;
float EXcT;
bei der Definition einen Anfangswert verschieden von null.

grüße Uwe

jurs


D.h. wenn ich dieses "nan" eliminieren möchte, dann muss eine andere Formel
her?


Nein. Du mußt nur VOR der Anwendung der Formel einen gültigen Wert für die einzusetzende Luftfeuchtigkeit haben. Und die Formel nur dann anwenden, wenn ein gültiger Luftfeuchtewert vorliegt.

SkobyMobil

Hallo,
ist ja ein netter LernEffekt gewesen. Die Formel habe ich ja begriffen.
Was aber viel schlimmer ist- da ist ein Fehler im ProgrammAblauf!

Beim ersten Durchlauf wird erst TpIN berechnet, die Werte für die Formel sind
vorhanden.
Danach wird TpEX berechnet, die Werte sind aber noch NICHT vorhanden.
"nan" blitzt kurz auf.
Erst beim zweiten Durchlauf sind diese Werte vorhanden. Kein "nan" mehr in der
Anzeige. Daher die sporadische "falsche" Anzeige.
Schönen Dank euch beiden.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

Go Up