Spaces:
Running
Running
Update nutri_call.html
Browse files- nutri_call.html +28 -24
nutri_call.html
CHANGED
@@ -857,37 +857,41 @@ function updateNPK(data) {
|
|
857 |
|
858 |
|
859 |
function calculateEC(data, temperature) {
|
860 |
-
|
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 |
-
|
874 |
-
|
875 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
876 |
}
|
877 |
}
|
878 |
|
879 |
-
|
880 |
-
totalEC = totalEC / 1000;
|
881 |
|
882 |
-
//
|
883 |
-
const
|
884 |
-
|
885 |
|
886 |
-
return
|
887 |
-
ec25: totalEC.toFixed(3), // EC при 25°C
|
888 |
-
ecTemp: compensatedEC.toFixed(3), // EC с учетом температуры
|
889 |
-
temperature: temperature
|
890 |
-
};
|
891 |
}
|
892 |
|
893 |
|
|
|
857 |
|
858 |
|
859 |
function calculateEC(data, temperature) {
|
860 |
+
console.log("=== РАСЧЕТ ЭЛЕКТРОПРОВОДНОСТИ (EC) ===");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
861 |
|
862 |
+
// Извлекаем значения элементов из actual_profile
|
863 |
+
const profile = data.actual_profile;
|
864 |
let totalEC = 0;
|
865 |
+
|
866 |
+
// Список значимых элементов для расчета EC
|
867 |
+
const significantElements = ["P", "K", "Mg", "Ca", "S", "N (NO3-)", "N (NH4+)"];
|
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 |
+
// Суммируем EC для каждого значимого элемента
|
877 |
+
for (const element of significantElements) {
|
878 |
+
if (profile[element] && ecConstants[element]) {
|
879 |
+
const ppm = profile[element]; // Уже в г/л
|
880 |
+
const elementEC = ppm * ecConstants[element];
|
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 |
+
console.log(`Общая EC без компенсации: ${totalEC.toFixed(5)}`);
|
|
|
889 |
|
890 |
+
// Применяем температурную компенсацию
|
891 |
+
const compensatedEC = totalEC * (1 + 0.02 * (temperature - 25));
|
892 |
+
console.log(`Компенсированная EC: ${compensatedEC.toFixed(5)} (при температуре ${temperature}°C)`);
|
893 |
|
894 |
+
return compensatedEC;
|
|
|
|
|
|
|
|
|
895 |
}
|
896 |
|
897 |
|