DmitrMakeev commited on
Commit
93a28dc
·
verified ·
1 Parent(s): 029af13

Update calculate.html

Browse files
Files changed (1) hide show
  1. calculate.html +96 -90
calculate.html CHANGED
@@ -15,98 +15,104 @@
15
  <h1>Расчёт удобрений для смешивания с азотом</h1>
16
 
17
  <div>
18
- <h3>Введите состав удобрений:</h3>
19
- <label for="ca_content">Процент кальция (Ca) в Ca(NO₃)₂:</label>
20
- <input type="number" id="ca_content" value="19" placeholder="например, 19"><br>
21
-
22
- <label for="p_content">Процент фосфора (P) в KH₂PO₄:</label>
23
- <input type="number" id="p_content" value="22" placeholder="например, 22"><br>
24
-
25
- <label for="k_content_kh2po4">Процент калия (K) в KH₂PO₄:</label>
26
- <input type="number" id="k_content_kh2po4" value="28" placeholder="например, 28"><br>
27
-
28
- <label for="k_content_kno3">Процент калия (K) в KNO₃:</label>
29
- <input type="number" id="k_content_kno3" value="46" placeholder="например, 46"><br>
30
-
31
- <label for="mg_content">Процент магния (Mg) в MgSO₄·7H₂O:</label>
32
- <input type="number" id="mg_content" value="16" placeholder="например, 16"><br>
33
-
34
- <label for="s_content">Процент серы (S) в K₂SO₄:</label>
35
- <input type="number" id="s_content" value="18" placeholder="например, 18"><br>
36
-
37
- <h3>Введите требуемые концентрации элементов:</h3>
38
- <label for="ca">Кальций (Ca) (мг/л):</label>
39
- <input type="number" id="ca" placeholder="например, 50"><br>
40
-
41
- <label for="p">Фосфор (P) (мг/л):</label>
42
- <input type="number" id="p" placeholder="например, 50"><br>
43
-
44
- <label for="k">Калий (K) (мг/л):</label>
45
- <input type="number" id="k" placeholder="например, 100"><br>
46
-
47
- <label for="mg">Магний (Mg) (мг/л):</label>
48
- <input type="number" id="mg" placeholder="например, 25"><br>
49
-
50
- <label for="s">Сера (S) (мг/л):</label>
51
- <input type="number" id="s" placeholder="например, 20"><br>
52
-
53
- <h3>Введите азот (N) (мг/л):</h3>
54
- <label for="nitrogen">Азот (N):</label>
55
- <input type="number" id="nitrogen" value="50" placeholder="например, 50"><br>
56
-
57
- <h3>Регулировка соотношения азотных удобрений:</h3>
58
- <label for="n_ratio">Соотношение азота в аммиачной селитре:</label>
59
  <input type="range" id="n_ratio" min="0" max="100" value="50">
60
- <span id="n_ratio_value">50%</span> аммиачная селитра / 50% кальциевая селитра<br>
61
 
62
- <button onclick="calculate()">Рассчитать удобрения</button>
63
  </div>
64
 
65
- <div class="result" id="result">
66
- <!-- Результаты будут отображаться здесь -->
67
- </div>
68
-
69
- <script>
70
- function calculate() {
71
- // Получаем состав удобрений из полей ввода
72
- let nitrogen = parseFloat(document.getElementById("nitrogen").value); // Азот (N)
73
-
74
- // Получаем соотношение азота из ползунка
75
- let nRatio = parseFloat(document.getElementById("n_ratio").value) / 100;
76
-
77
- // Рассчитываем количество азота в разных удобрениях в зависимости от ��оотношения
78
- let ammoniumNitrate = (nitrogen * nRatio * 0.34).toFixed(2); // аммиачная селитра (N)
79
- let calciumNitrate = (nitrogen * (1 - nRatio) * 0.26).toFixed(2); // кальциевая селитра (N)
80
- let potassiumNitrate = (nitrogen * 0.20).toFixed(2); // калиевая селитра (N)
81
-
82
- // Вычисляем нужное количество удобрений для каждого элемента
83
- let caAmount = (parseFloat(document.getElementById("ca").value) / 0.22).toFixed(2);
84
- let pAmountKH2PO4 = (parseFloat(document.getElementById("p").value) / 0.18).toFixed(2);
85
- let kAmountKH2PO4 = (parseFloat(document.getElementById("k").value) / 0.25).toFixed(2);
86
- let kAmountKNO3 = (parseFloat(document.getElementById("k").value) / 0.43).toFixed(2);
87
- let mgAmount = (parseFloat(document.getElementById("mg").value) / 0.06).toFixed(2);
88
- let sAmount = (parseFloat(document.getElementById("s").value) / 0.07).toFixed(2);
89
-
90
- // Формируем итоговый текст
91
- let resultText = `
92
- <h3>Необходимые удобрения:</h3>
93
- <p>Азот (N): ${nitrogen} мг/л</p>
94
- <p>Аммиачная селитра (NH₄NO₃) (азот): ${ammoniumNitrate} г/л</p>
95
- <p>Кальциевая селитра (Ca(NO₃)₂) (азот): ${calciumNitrate} г/л</p>
96
- <p>Калиевая селитра (KNO₃) (азот): ${potassiumNitrate} г/л</p>
97
- <p>${caAmount} г/л - Кальциевая селитра (Ca(NO₃)₂)</p>
98
- <p>${pAmountKH2PO4} г/л - Фосфат калия (KH₂PO₄)</p>
99
- <p>${kAmountKH2PO4} г/л - Калий фосфат (KH₂PO₄)</p>
100
- <p>${kAmountKNO3} г/л - Калиевая селитра (KNO₃)</p>
101
- <p>${mgAmount} г/л - Магний сульфат (MgSO₄·7HO)</p>
102
- <p>${sAmount} г/л - Калий сульфат (K₂SO₄)</p>
103
- `;
104
-
105
- // Выводим результат
106
- document.getElementById("result").innerHTML = resultText;
107
- }
108
- </script>
109
-
110
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  </body>
112
- </html>
 
15
  <h1>Расчёт удобрений для смешивания с азотом</h1>
16
 
17
  <div>
18
+ <h3>Введите состав удобрений (%):</h3>
19
+ <label>Ca в Ca(NO₃)₂·4H₂O:</label>
20
+ <input type="number" id="ca_content" value="19.3" step="0.1"><br>
21
+ <label>P в KH₂PO₄:</label>
22
+ <input type="number" id="p_content" value="21.8" step="0.1"><br>
23
+ <label>K в KH₂PO₄:</label>
24
+ <input type="number" id="k_content_kh2po4" value="27.4" step="0.1"><br>
25
+ <label>K в KNO₃:</label>
26
+ <input type="number" id="k_content_kno3" value="38" step="0.1"><br>
27
+ <label>Mg в MgSO₄·7H₂O:</label>
28
+ <input type="number" id="mg_content" value="10.14" step="0.1"><br>
29
+ <label>S в K₂SO₄:</label>
30
+ <input type="number" id="s_content" value="18" step="0.1"><br>
31
+
32
+ <h3>Требуемые концентрации (мг/л):</h3>
33
+ <label>Ca:</label><input type="number" id="ca" placeholder="50" step="0.1"><br>
34
+ <label>P:</label><input type="number" id="p" placeholder="50" step="0.1"><br>
35
+ <label>K:</label><input type="number" id="k" placeholder="100" step="0.1"><br>
36
+ <label>Mg:</label><input type="number" id="mg" placeholder="25" step="0.1"><br>
37
+ <label>S:</label><input type="number" id="s" placeholder="20" step="0.1"><br>
38
+ <label>N:</label><input type="number" id="nitrogen" value="50" step="0.1"><br>
39
+
40
+ <h3>Соотношение N (NH₄NO₃):</h3>
41
+ <label>NH₄NO₃ (%):</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  <input type="range" id="n_ratio" min="0" max="100" value="50">
43
+ <span id="n_ratio_value">50%</span><br>
44
 
45
+ <button onclick="calculate()">Рассчитать</button>
46
  </div>
47
 
48
+ <div class="result" id="result"></div>
49
+
50
+ <script>
51
+ document.getElementById('n_ratio').addEventListener('input', function() {
52
+ document.getElementById('n_ratio_value').textContent = this.value + '%';
53
+ });
54
+
55
+ function calculate() {
56
+ // Состав удобрений (% → доли)
57
+ const caContent = parseFloat(document.getElementById("ca_content").value) / 100;
58
+ const pContent = parseFloat(document.getElementById("p_content").value) / 100;
59
+ const kContentKH2PO4 = parseFloat(document.getElementById("k_content_kh2po4").value) / 100;
60
+ const kContentKNO3 = parseFloat(document.getElementById("k_content_kno3").value) / 100;
61
+ const mgContent = parseFloat(document.getElementById("mg_content").value) / 100;
62
+ const sContent = parseFloat(document.getElementById("s_content").value) / 100;
63
+ const nContentCaNO3 = 0.149; // N в Ca(NO₃)₂·4H₂O
64
+ const nContentNH4NO3 = 0.34; // N в NH₄NO₃
65
+ const nContentKNO3 = 0.135; // N в KNO₃
66
+
67
+ // Требуемые концентрации (мг/л)
68
+ const ca = parseFloat(document.getElementById("ca").value) || 0;
69
+ const p = parseFloat(document.getElementById("p").value) || 0;
70
+ const k = parseFloat(document.getElementById("k").value) || 0;
71
+ const mg = parseFloat(document.getElementById("mg").value) || 0;
72
+ const s = parseFloat(document.getElementById("s").value) || 0;
73
+ const nitrogen = parseFloat(document.getElementById("nitrogen").value) || 0;
74
+ const nRatio = parseFloat(document.getElementById("n_ratio").value) / 100;
75
+
76
+ // Проверка ввода
77
+ if ([ca, p, k, mg, s, nitrogen].some(v => isNaN(v))) {
78
+ document.getElementById("result").innerHTML = "Введите все значения!";
79
+ return;
80
+ }
81
+
82
+ // Расчёт массы удобрений (г/1000 л)
83
+ const caNO3FromCa = ca / caContent; // Ca(NO₃)₂ от Ca
84
+ const nFromCaNO3Min = caNO3FromCa * nContentCaNO3; // Минимальный N от Ca(NO₃)
85
+ const nRemaining = nitrogen - nFromCaNO3Min; // Остаток N
86
+ const nNH4NO3 = nRemaining * nRatio; // N от NH₄NO₃
87
+ const nCaNO3Extra = nRemaining * (1 - nRatio); // Дополнительный N от Ca(NO₃)₂
88
+ const nh4no3 = nNH4NO3 / nContentNH4NO3; // Масса NH₄NO₃
89
+ const caNO3Total = caNO3FromCa + (nCaNO3Extra / nContentCaNO3); // Итоговая масса Ca(NO₃)₂
90
+ const kh2po4 = p / pContent; // KH₂PO₄ от P
91
+ const kFromKH2PO4 = kh2po4 * kContentKH2PO4; // K от KH₂PO₄
92
+ const kRemaining = k - kFromKH2PO4; // Остаток K
93
+ const kno3 = kRemaining > 0 ? kRemaining / kContentKNO3 : 0; // KNO₃
94
+ const nFromKNO3 = kno3 * nContentKNO3; // N от KNO₃
95
+ const mgso4 = mg / mgContent; // MgSO₄
96
+ const k2so4 = s / sContent; // K₂SO₄ (S)
97
+
98
+ // Итоговые концентрации для проверки
99
+ const totalN = (caNO3Total * nContentCaNO3 + nh4no3 * nContentNH4NO3 + kno3 * nContentKNO3).toFixed(2);
100
+ const totalK = (kh2po4 * kContentKH2PO4 + kno3 * kContentKNO3).toFixed(2);
101
+
102
+ // Вывод результата
103
+ const resultText = `
104
+ <h3>Необходимые удобрения (г/1000 л):</h3>
105
+ <p>Ca(NO₃)₂·4H₂O: ${caNO3Total.toFixed(2)} (N: ${(caNO3Total * nContentCaNO3).toFixed(2)}, Ca: ${ca})</p>
106
+ <p>NH₄NO₃: ${nh4no3.toFixed(2)} (N: ${(nh4no3 * nContentNH4NO3).toFixed(2)})</p>
107
+ <p>KH₂PO₄: ${kh2po4.toFixed(2)} (P: ${p}, K: ${kFromKH2PO4.toFixed(2)})</p>
108
+ <p>KNO₃: ${kno3.toFixed(2)} (N: ${nFromKNO3.toFixed(2)}, K: ${(kno3 * kContentKNO3).toFixed(2)})</p>
109
+ <p>MgSO₄·7H₂O: ${mgso4.toFixed(2)} (Mg: ${mg})</p>
110
+ <p>K₂SO₄: ${k2so4.toFixed(2)} (S: ${s})</p>
111
+ <h3>Итоговые концентрации (мг/л):</h3>
112
+ <p>N: ${totalN}, P: ${p}, K: ${totalK}, Ca: ${ca}, Mg: ${mg}, S: ${s}</p>
113
+ `;
114
+ document.getElementById("result").innerHTML = resultText;
115
+ }
116
+ </script>
117
  </body>
118
+ </html>