DmitrMakeev commited on
Commit
ac67369
·
verified ·
1 Parent(s): 229477c

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +28 -24
nutri_call.html CHANGED
@@ -857,37 +857,41 @@ function updateNPK(data) {
857
 
858
 
859
  function calculateEC(data, temperature) {
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
 
 
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