NEWS
Hilfe bei Blockly Berechnung (Formel)
-
Hallo zusammen,
ich habe ein Problem mit der Mathefunktion von Blockly.
Ich Messe die Temperatur und Rel. Luffeuchte mit einem BME280 und möchte aus diesen Werten den Feuchtkugeltemperaturwert berechnen.
dazu gibt es eine Näherungsformel (siehe Bild)
Ich hab jetzt schon einiges versucht die Formel in Blockly umzusetzen leider ohne Erfolg bzw. mit falschen Ergebnissen...
Ich denke das irgendwas mit den klammern bzw. dem Exponenten nicht stimmt...?Wäre super wenn sich da. Mal jemand mit reindenken könnte!
Liebe Grüße
Felix -
@Felix-Merk
Die Formel ist ohne Zeichen für die Multiplikation schlecht zu lesen.
Bei atan() muss man berücksichtigen, ob der Wert in Bogenmaß oder Grad angegeben ist. -
@Felix-Merk said in Hilfe bei Blockly Berechnung (Formel):
peratur und Rel. Luffeuchte mit e
Warum postest du nicht deinen blockly-Versuch, da könnte man sehen was falsch läuft. Ich würde das in mehrere Rechenschritte aufteilen und mit Variablen innerhalb des blockly arbeiten:
- var1=Wurzel(RH%+8.313659)
- var2=atan (var1)
usw
und am Ende dann TW=var2 + var3 +...-4.686035
und wenn das funktioniert kannst du versuchen es Schritt für Schritt in eine Formel zu basteln.
-
@amg_666
guter Ansatz!Kann das mal jemand für mich überprüfen? Wie mache ich in Blockly einen Wert hoch 2/3 ? bzw. Wert hoch 1,5?
Ich habe mir nicht anders zu helfen gewusst als: Wurzel Wert * Wurzel Wert * Wurzel Wert....Passen die einzelnen Blöcke so?
Liebe Grüße
Felix<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="math_arithmetic" id="3#^r^xtPlR)Ze(MZhI5`" x="-237" y="63"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="JQT5tU%]ZecGlU4@*awi"> <field name="NUM">1</field> </shadow> <block type="get_value" id="M6U!t21[|XqPe/uk9_1^"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Temp</field> </block> </value> <value name="B"> <shadow type="math_number" id="ctjeLIuj!n]T.^UBIQWW"> <field name="NUM">1</field> </shadow> <block type="math_trig" id="VGBWu]i-7SAFO9=Uw)z;"> <field name="OP">ATAN</field> <value name="NUM"> <shadow type="math_number" id="%n@iOcl%Fj,;fghz%OJX"> <field name="NUM">45</field> </shadow> <block type="math_arithmetic" id="rGJezh[AMi$A_)kj!NH~"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="!a3k2S)i6glaeNT**OTo"> <field name="NUM">0.151977</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="Kij3;EDR[Jp!cPk6@Jmn"> <field name="NUM">1</field> </shadow> <block type="math_single" id="x)c4WRRD,p?on.q2m~$C"> <field name="OP">ROOT</field> <value name="NUM"> <shadow type="math_number" id="$iTr9=`)5Q(=Y0Cqi@Ws"> <field name="NUM">9</field> </shadow> <block type="math_arithmetic" id="SF4zMNZRd/H,E0MbSpL)"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="k34:6xlfaOTs#H4Egow)"> <field name="NUM">1</field> </shadow> <block type="get_value" id="0*I.[p@!RU-;D!Rh/aLr"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Feuchte</field> </block> </value> <value name="B"> <shadow type="math_number" id="][=AINKNg[LRBk1_?MKa"> <field name="NUM">8.313659</field> </shadow> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> <block type="math_trig" id="+V-kj?2x6$`RZ)f%vW?b" x="-237" y="138"> <field name="OP">ATAN</field> <value name="NUM"> <shadow type="math_number" id="%n@iOcl%Fj,;fghz%OJX"> <field name="NUM">45</field> </shadow> <block type="math_arithmetic" id="5`SS%x)p_[/{f$77@egm"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="_/b$!?#yiwjHynAtuT^W"> <field name="NUM">0.151977</field> </shadow> <block type="get_value" id="R_M}a#2AWv/T-p}8]VB4"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Temp</field> </block> </value> <value name="B"> <shadow type="math_number" id="Kij3;EDR[Jp!cPk6@Jmn"> <field name="NUM">1</field> </shadow> <block type="get_value" id="u7PANch2jjl=cS/l9Sdp"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Feuchte</field> </block> </value> </block> </value> </block> <block type="math_trig" id="he{#.mO.ew_Jj|@NrNUQ" x="-237" y="188"> <field name="OP">ATAN</field> <value name="NUM"> <shadow type="math_number" id="%n@iOcl%Fj,;fghz%OJX"> <field name="NUM">45</field> </shadow> <block type="math_arithmetic" id="|rt6:r=iER5-yn==dYAN"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="_/b$!?#yiwjHynAtuT^W"> <field name="NUM">0.151977</field> </shadow> <block type="get_value" id="I_YM~GtkSk.ZcItv:lcK"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Feuchte</field> </block> </value> <value name="B"> <shadow type="math_number" id="Kij3;EDR[Jp!cPk6@Jmn"> <field name="NUM">1.676331</field> </shadow> </value> </block> </value> </block> <block type="math_arithmetic" id="JX4]@]aB9c(EwR{oon$3" x="-237" y="238"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="#vkPUG*123UyF$x)O8?y"> <field name="NUM">0.00391838</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="naGvWi=:s9Msgi2RKbp-"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="yb0f##.w@mubL`v}d8*V"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="?IE,Lb;Edgdb)uP;G]jW"> <field name="NUM">0.00391838</field> </shadow> <block type="math_single" id="BzDMFQe,?5qcF7G0JMWi"> <field name="OP">ROOT</field> <value name="NUM"> <shadow type="math_number" id="5;Ccguw-S`/%7?(d]gO+"> <field name="NUM">9</field> </shadow> <block type="get_value" id="-Ok]}n`!4ZLTdA7OkvmN"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Feuchte</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="p4=SM5($[5bmYk|{Q@`j"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="tg`{E}hi.E*69HEZQV=s"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="14fYOvfMrfVO:38j^HWB"> <field name="NUM">1</field> </shadow> <block type="math_single" id="4|UFEN`*Y!7~0Hn^PnV8"> <field name="OP">ROOT</field> <value name="NUM"> <shadow type="math_number" id="5;Ccguw-S`/%7?(d]gO+"> <field name="NUM">9</field> </shadow> <block type="get_value" id=",]75lXE2fU2Z^$ajp%2O"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Feuchte</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="*TL0AUxc%{f4`@ma9Xd{"> <field name="NUM">1</field> </shadow> <block type="math_single" id="}QdhKQ++%5x:zmZr`/Og"> <field name="OP">ROOT</field> <value name="NUM"> <shadow type="math_number" id="5;Ccguw-S`/%7?(d]gO+"> <field name="NUM">9</field> </shadow> <block type="get_value" id="l0ER*|O4)jsuX#12kC?~"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Feuchte</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> <block type="math_arithmetic" id="|!0iKQdnBo|9J-3PG{-~" x="-238" y="313"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="d$[:Jl#qUw05@:Rg@0*^"> <field name="NUM">1</field> </shadow> <block type="math_trig" id="pRz(RdH#(~gNpZ%QNWxB"> <field name="OP">ATAN</field> <value name="NUM"> <shadow type="math_number" id="%n@iOcl%Fj,;fghz%OJX"> <field name="NUM">45</field> </shadow> <block type="math_arithmetic" id="30Gu!y_WBDf#5k}tjL7l"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="_/b$!?#yiwjHynAtuT^W"> <field name="NUM">0.23101</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="F`tT#{Vi7*)+f4Vj7L?/"> <field name="NUM">1.676331</field> </shadow> <block type="get_value" id="GLH{ph7zme7Ak4!.BT`_"> <field name="ATTR">val</field> <field name="OID">mqtt.0.lift.Sensoren.Feuchte</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="|+LJh(sF,bPu-=J]XiBi"> <field name="NUM">4</field> </shadow> </value> </block> </xml>
-
@paul53
Hallo Paul, es geht ums BogenmaßLiebe Grüße
-
@Felix-Merk said in Hilfe bei Blockly Berechnung (Formel):
Ich habe mir nicht anders zu helfen gewusst als: Wurzel Wert * Wurzel Wert * Wurzel Wert....
irgendwas hoch 2/3 ist dasselbe wie Wurzel aus (irgendwas hoch 3) und hoch 3 scheint in blockly nicht zu gehen, ich hab nirgendwo "hoch x" gefunden, insofern sieht deine Lösung nicht schön aus, scheint aber so "alternativlos" zu sein
-
...habe ich befürchtet
Könntest du mal überprüfen ob die einzelnen Terme so noch korrekt sind?
Wegen Operatorrangfolge usw.?Ich seh den Wald vor Bäumen nicht mehr
Liebe Grüße
-
@Felix-Merk sagte.
es geht ums Bogenmaß
Die Blockly-Funktionen verwenden bzw. liefern Grad, müssen also umgerechnet werden (* Math.PI / 180).
@Felix-Merk sagte in Hilfe bei Blockly Berechnung (Formel):
Wert hoch 1,5?
Weshalb versuchst Du Blockly zu "vergewaltigen", wenn es in Javascript ganz einfach ist?
return t * Math.atan(0.151977 * Math.sqrt(rh + 8.313659)) + Math.atan(t + rh) - Math.atan(rh - 1.676331) + 0.00391838 * Math.pow(rh, 1.5) * Math.atan(0.023101 * rh) - 4.686035;
-
@paul53
vielen Dank für deine Hilfe!Ich bin absoluter Einsteiger auf dem Gebiet - mit JS kenn ich mich gar nicht aus!
Ziel wäre es die ermittelten Werte in ein erstellten Datenpunkt zu schreiben - kannst du mir da helfen?Gruß
Felix -
-
VIELEN HERZLICHEN DANK! Ich werde das heute Abend gleich testen
-
@paul53
kannst du mir das bitte noch als Blockly exportieren?
Ich finde das Objekt "Falls Objekt" mit zwei "Objekt IDs" nicht.... -
Einfach auf das Zahnrad im Falls Baustein klicken.