DmitrMakeev commited on
Commit
45b020d
·
verified ·
1 Parent(s): f2890ea

Update calculate.html

Browse files
Files changed (1) hide show
  1. calculate.html +36 -18
calculate.html CHANGED
@@ -92,48 +92,66 @@
92
  return;
93
  }
94
 
95
- // 1. KHPO₄ от P
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. K₂SO₄ от остатка S
108
- let sRemaining = s - sFromMgSO4;
109
- let k2so4 = sRemaining > 0 ? sRemaining / sContentK2SO4 : 0;
110
- let kFromK2SO4 = k2so4 * kContentK2SO4;
 
 
 
 
111
 
112
- // 5. KNO от остатка K
113
- let kRemaining = k - kFromKH2PO4 - kFromK2SO4;
114
- let kno3 = kRemaining > 0 ? kRemaining / kContentKNO3 : 0;
115
  let nFromKNO3 = kno3 * nContentKNO3;
 
116
 
117
- // 6. NH₄NO₃ от остатка N
118
- let nRemaining = n - nFromCaNO3 - nFromKNO3;
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 + kFromK2SO4 + kno3 * kContentKNO3).toFixed(2);
125
  let totalCa = (caNO3 * caContentCa).toFixed(2);
126
  let totalMg = (mgso4 * mgContent).toFixed(2);
127
- let totalS = (sFromMgSO4 + k2so4 * sContentK2SO4).toFixed(2);
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: ${(kno3 * kContentKNO3).toFixed(2)}, N: ${nFromKNO3.toFixed(2)})</p>
135
  <p>MgSO₄·7H₂O: ${mgso4.toFixed(2)} (Mg: ${totalMg}, S: ${sFromMgSO4.toFixed(2)})</p>
136
- <p>K₂SO₄: ${k2so4.toFixed(2)} (S: ${(k2so4 * sContentK2SO4).toFixed(2)}, K: ${kFromK2SO4.toFixed(2)})</p>
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₃)₂·4HO от 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>