Spaces:
Sleeping
Sleeping
Update nutri_call.html
Browse files- nutri_call.html +25 -29
nutri_call.html
CHANGED
|
@@ -856,42 +856,38 @@ function updateNPK(data) {
|
|
| 856 |
}
|
| 857 |
|
| 858 |
|
| 859 |
-
function calculateEC(data, temperature) {
|
| 860 |
-
|
| 861 |
-
|
| 862 |
-
|
| 863 |
-
|
| 864 |
-
|
| 865 |
-
|
| 866 |
-
|
| 867 |
-
|
| 868 |
-
|
| 869 |
-
// Коэффициенты электропроводности
|
| 870 |
-
const ecConstants = {
|
| 871 |
-
'P': 0.0012, 'K': 0.0018, 'Mg': 0.0015,
|
| 872 |
-
'Ca': 0.0016, 'S': 0.0014,
|
| 873 |
-
'N (NO3-)': 0.0017, 'N (NH4+)': 0.0019
|
| 874 |
};
|
| 875 |
|
| 876 |
-
// С
|
| 877 |
-
|
| 878 |
-
|
| 879 |
-
|
| 880 |
-
|
| 881 |
-
totalEC += elementEC;
|
| 882 |
-
console.log(`EC для ${element}: ${elementEC.toFixed(5)} (ppm=${ppm}, const=${ecConstants[element]})`);
|
| 883 |
-
} else {
|
| 884 |
-
console.warn(`Пропущен элемент: ${element}`);
|
| 885 |
}
|
| 886 |
}
|
| 887 |
|
| 888 |
-
|
|
|
|
| 889 |
|
| 890 |
-
//
|
| 891 |
-
const
|
| 892 |
-
|
| 893 |
|
| 894 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
| 895 |
}
|
| 896 |
|
| 897 |
|
|
|
|
| 856 |
}
|
| 857 |
|
| 858 |
|
| 859 |
+
function calculateEC(data, temperature = 25) {
|
| 860 |
+
// Правильные коэффициенты (μS/cm на ppm)
|
| 861 |
+
const EC_COEFFICIENTS = {
|
| 862 |
+
'N (NO3-)': 0.74, // Нитраты
|
| 863 |
+
'N (NH4+)': 0.53, // Аммоний
|
| 864 |
+
'K': 0.52, // Калий (K⁺)
|
| 865 |
+
'Ca': 0.42, // Кальций (Ca²⁺)
|
| 866 |
+
'Mg': 0.38, // Магний (Mg²⁺)
|
| 867 |
+
'S': 0.60, // Сульфаты (SO₄²⁻)
|
| 868 |
+
'P': 0.48 // Фосфаты (H₂PO₄⁻)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 869 |
};
|
| 870 |
|
| 871 |
+
// Считаем вклад каждого элемента
|
| 872 |
+
let totalEC = 0;
|
| 873 |
+
for (const [element, ppm] of Object.entries(data.actual_profile)) {
|
| 874 |
+
if (EC_COEFFICIENTS[element]) {
|
| 875 |
+
totalEC += ppm * EC_COEFFICIENTS[element];
|
|
|
|
|
|
|
|
|
|
|
|
|
| 876 |
}
|
| 877 |
}
|
| 878 |
|
| 879 |
+
// Переводим μS/cm → mS/cm (делим на 1000)
|
| 880 |
+
totalEC = totalEC / 1000;
|
| 881 |
|
| 882 |
+
// Температурная компенсация (1.9% на °C от 25°C)
|
| 883 |
+
const compensationFactor = 1 + 0.019 * (temperature - 25);
|
| 884 |
+
const compensatedEC = totalEC * compensationFactor;
|
| 885 |
|
| 886 |
+
return {
|
| 887 |
+
ec25: totalEC.toFixed(3), // EC при 25°C
|
| 888 |
+
ecTemp: compensatedEC.toFixed(3), // EC с учетом температуры
|
| 889 |
+
temperature: temperature
|
| 890 |
+
};
|
| 891 |
}
|
| 892 |
|
| 893 |
|