Harveg / templates

Hier sind alle Vorlagen abgelegt welche im Studio zur Verfügung stehen.
MIT License
0 stars 0 forks source link

Grundlage um VPD zu berechnen #1

Open Harveg opened 3 years ago

Harveg commented 3 years ago

Für die Kalkulation des VPD Wertes der Pflanze in jedem Raum müssen wir eine entsprechende Funktion definieren welche nach dem Auslesen der Feuchtigkeit aufgerufen wird. Die Funktion sollte mit mehreren Messpunkten bis zu 3 "Fibermesser" umgehen können Am Schluss soll nur ein Wert pro Raum berechnet werden und im item vpd_roomX übertragen werden. @davideee könntest du bei deiner Literatur Recherche auch einplanen die Grundlagen der VDP Berechnung anzugehen?

/ Calculate plant relevant climate values based on https://pulsegrow.com/blogs/learn/vpd Future implementation of VPD (difference between VPmeristem and VProom based on https://vpdchart.com/ /

function calculateVDP(room){ var meristemTemp = itemRegistry.getItem('unihubT2_room' + room).getState() var SVP = 610.78 * (Math.E * (meristemTemp / (meristemTemp +238.3) x 17.2694))); //saturation vapore pressure of plant in pascal var VP = SVP (1 - airHum / 100); // Vapore pressure of plant events.postUpdate(("vdp_room" + room), VP); }

Davideee commented 3 years ago

Siehe PN.

Harveg commented 3 years ago
function getVapourPressureDeficit(room){
var A = parseFloat('-1.0440397e4')
var B = parseFloat('-11.29465')
var C = parseFloat('-2.7022355e-2')
var D = parseFloat('1.289036e-5')
var E = parseFloat('-2.4780681e-9')
var F = parseFloat('6.5459673')
// Convert to °Rankine
var meristemTemp = itemRegistry.getItem('unihubT2_room' + room).getState()
airT_rankine = this.airTemp * 1.8 + 491.67;
T_rankine = meristemTemp * 1.8 + 491.67;
// Calculate saturated PSI
airVP_saturated_psi = A / airT_rankine + B + C * airT_rankine + Math.pow(D * airT_rankine, (2 + E * airT_rankine + F * Math.log(airT_rankine)));
VP_saturated_psi = A / T_rankine + B + C * T_rankine + Math.pow(D * T_rankine, (2 + E * T_rankine + F * Math.log(T_rankine)));
// Convert from PSI to kPA and return
var airVP_sat = VP_saturated_psi * 6.89476
var vdp = (VP_saturated_psi * 6.89476) - airVP_sat * (this.airHum / 100);
events.postUpdate(("vpd_room"), vdp);
}