Update calculate.html
Browse files- calculate.html +36 -18
calculate.html
CHANGED
@@ -92,48 +92,66 @@
|
|
92 |
return;
|
93 |
}
|
94 |
|
95 |
-
// 1.
|
96 |
-
let kh2po4 = p / pContent;
|
97 |
-
let kFromKH2PO4 = kh2po4 * kContentKH2PO4;
|
98 |
-
|
99 |
-
// 2. Ca(NO₃)₂·4H₂O от Ca
|
100 |
let caNO3 = ca / caContentCa;
|
101 |
let nFromCaNO3 = caNO3 * caContentN;
|
102 |
|
|
|
|
|
|
|
|
|
103 |
// 3. MgSO₄·7H₂O от Mg
|
104 |
let mgso4 = mg / mgContent;
|
105 |
let sFromMgSO4 = mgso4 * sContentMgSO4;
|
106 |
|
107 |
-
// 4.
|
108 |
-
let
|
109 |
-
let
|
110 |
-
let
|
|
|
|
|
|
|
|
|
111 |
|
112 |
-
//
|
113 |
-
let
|
114 |
-
let kno3 = kRemaining > 0 ? kRemaining / kContentKNO3 : 0;
|
115 |
let nFromKNO3 = kno3 * nContentKNO3;
|
|
|
116 |
|
117 |
-
//
|
118 |
-
|
119 |
let nh4no3 = nRemaining > 0 ? nRemaining / nContentNH4NO3 : 0;
|
120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
// Итоговые концентрации
|
122 |
let totalN = (nFromCaNO3 + nFromKNO3 + nh4no3 * nContentNH4NO3).toFixed(2);
|
123 |
let totalP = (kh2po4 * pContent).toFixed(2);
|
124 |
-
let totalK = (kFromKH2PO4 +
|
125 |
let totalCa = (caNO3 * caContentCa).toFixed(2);
|
126 |
let totalMg = (mgso4 * mgContent).toFixed(2);
|
127 |
-
let totalS = (sFromMgSO4 +
|
128 |
|
129 |
// Результаты
|
130 |
let resultText = `
|
131 |
<h3>Результаты расчёта (г/1000 л):</h3>
|
132 |
<p>Ca(NO₃)₂·4H₂O: ${caNO3.toFixed(2)} (Ca: ${totalCa}, N: ${nFromCaNO3.toFixed(2)})</p>
|
133 |
<p>KH₂PO₄: ${kh2po4.toFixed(2)} (P: ${totalP}, K: ${kFromKH2PO4.toFixed(2)})</p>
|
134 |
-
<p>KNO₃: ${kno3.toFixed(2)} (K: ${
|
135 |
<p>MgSO₄·7H₂O: ${mgso4.toFixed(2)} (Mg: ${totalMg}, S: ${sFromMgSO4.toFixed(2)})</p>
|
136 |
-
<p>K₂SO₄: ${k2so4.toFixed(2)} (S: ${
|
137 |
<p>NH₄NO₃: ${nh4no3.toFixed(2)} (N: ${(nh4no3 * nContentNH4NO3).toFixed(2)})</p>
|
138 |
<h3>Итоговые концентрации (мг/л):</h3>
|
139 |
<p>N: ${totalN}, P: ${totalP}, K: ${totalK}, Ca: ${totalCa}, Mg: ${totalMg}, S: ${totalS}</p>
|
|
|
92 |
return;
|
93 |
}
|
94 |
|
95 |
+
// 1. Ca(NO₃)₂·4H₂O от Ca
|
|
|
|
|
|
|
|
|
96 |
let caNO3 = ca / caContentCa;
|
97 |
let nFromCaNO3 = caNO3 * caContentN;
|
98 |
|
99 |
+
// 2. KH₂PO₄ от P
|
100 |
+
let kh2po4 = p / pContent;
|
101 |
+
let kFromKH2PO4 = kh2po4 * kContentKH2PO4;
|
102 |
+
|
103 |
// 3. MgSO₄·7H₂O от Mg
|
104 |
let mgso4 = mg / mgContent;
|
105 |
let sFromMgSO4 = mgso4 * sContentMgSO4;
|
106 |
|
107 |
+
// 4. KNO₃ от остатка N (приоритет N)
|
108 |
+
let nRemaining = n - nFromCaNO3;
|
109 |
+
let kno3FromN = nRemaining > 0 ? nRemaining / nContentKNO3 : 0;
|
110 |
+
let kFromKNO3FromN = kno3FromN * kContentKNO3;
|
111 |
+
|
112 |
+
let kRemaining = k - kFromKH2PO4;
|
113 |
+
let kno3FromK = kRemaining > 0 ? kRemaining / kContentKNO3 : 0;
|
114 |
+
let nFromKNO3FromK = kno3FromK * nContentKNO3;
|
115 |
|
116 |
+
// Выбираем меньший KNO₃, чтобы не превысить N или K
|
117 |
+
let kno3 = Math.min(kno3FromN, kno3FromK);
|
|
|
118 |
let nFromKNO3 = kno3 * nContentKNO3;
|
119 |
+
let kFromKNO3 = kno3 * kContentKNO3;
|
120 |
|
121 |
+
// 5. NH₄NO₃ для остатка N
|
122 |
+
nRemaining = n - nFromCaNO3 - nFromKNO3;
|
123 |
let nh4no3 = nRemaining > 0 ? nRemaining / nContentNH4NO3 : 0;
|
124 |
|
125 |
+
// 6. K₂SO₄ для остатка K и S
|
126 |
+
kRemaining = k - kFromKH2PO4 - kFromKNO3;
|
127 |
+
let k2so4FromK = kRemaining > 0 ? kRemaining / kContentK2SO4 : 0;
|
128 |
+
let sFromK2SO4FromK = k2so4FromK * sContentK2SO4;
|
129 |
+
|
130 |
+
let sRemaining = s - sFromMgSO4;
|
131 |
+
let k2so4FromS = sRemaining > 0 ? sRemaining / sContentK2SO4 : 0;
|
132 |
+
let kFromK2SO4FromS = k2so4FromS * kContentK2SO4;
|
133 |
+
|
134 |
+
// Выбираем меньший K₂SO₄, чтобы не превысить K
|
135 |
+
let k2so4 = Math.min(k2so4FromK, k2so4FromS);
|
136 |
+
let kFromK2SO4 = k2so4 * kContentK2SO4;
|
137 |
+
let sFromK2SO4 = k2so4 * sContentK2SO4;
|
138 |
+
|
139 |
// Итоговые концентрации
|
140 |
let totalN = (nFromCaNO3 + nFromKNO3 + nh4no3 * nContentNH4NO3).toFixed(2);
|
141 |
let totalP = (kh2po4 * pContent).toFixed(2);
|
142 |
+
let totalK = (kFromKH2PO4 + kFromKNO3 + kFromK2SO4).toFixed(2);
|
143 |
let totalCa = (caNO3 * caContentCa).toFixed(2);
|
144 |
let totalMg = (mgso4 * mgContent).toFixed(2);
|
145 |
+
let totalS = (sFromMgSO4 + sFromK2SO4).toFixed(2);
|
146 |
|
147 |
// Результаты
|
148 |
let resultText = `
|
149 |
<h3>Результаты расчёта (г/1000 л):</h3>
|
150 |
<p>Ca(NO₃)₂·4H₂O: ${caNO3.toFixed(2)} (Ca: ${totalCa}, N: ${nFromCaNO3.toFixed(2)})</p>
|
151 |
<p>KH₂PO₄: ${kh2po4.toFixed(2)} (P: ${totalP}, K: ${kFromKH2PO4.toFixed(2)})</p>
|
152 |
+
<p>KNO₃: ${kno3.toFixed(2)} (K: ${kFromKNO3.toFixed(2)}, N: ${nFromKNO3.toFixed(2)})</p>
|
153 |
<p>MgSO₄·7H₂O: ${mgso4.toFixed(2)} (Mg: ${totalMg}, S: ${sFromMgSO4.toFixed(2)})</p>
|
154 |
+
<p>K₂SO₄: ${k2so4.toFixed(2)} (S: ${sFromK2SO4.toFixed(2)}, K: ${kFromK2SO4.toFixed(2)})</p>
|
155 |
<p>NH₄NO₃: ${nh4no3.toFixed(2)} (N: ${(nh4no3 * nContentNH4NO3).toFixed(2)})</p>
|
156 |
<h3>Итоговые концентрации (мг/л):</h3>
|
157 |
<p>N: ${totalN}, P: ${totalP}, K: ${totalK}, Ca: ${totalCa}, Mg: ${totalMg}, S: ${totalS}</p>
|