81 $("#jqxWidget").css('visibility', 'visible'); |
81 $("#jqxWidget").css('visibility', 'visible'); |
82 }); |
82 }); |
83 |
83 |
84 |
84 |
85 |
85 |
|
86 function ebc_to_srm(ebc) { |
|
87 return -1.32303E-12 * Math.pow(ebc, 4) - 0.00000000291515 * Math.pow(ebc, 3) + 0.00000818515 * Math.pow(ebc, 2) + 0.372038 * ebc + 0.596351; |
|
88 } |
|
89 |
|
90 |
|
91 |
|
92 function srm_to_ebc(srm) |
|
93 { |
|
94 var ebc = 0.000000000176506 * Math.pow(srm, 4) + 0.000000154529 * Math.pow(srm, 3) - 0.000159428 * Math.pow(srm, 2) + 2.68837 * srm - 1.6004; |
|
95 return Math.round(ebc); |
|
96 } |
|
97 |
|
98 |
|
99 |
|
100 /* |
|
101 * Kleurwerking naar SRM |
|
102 */ |
|
103 function kw_to_srm(colormethod, c) { |
|
104 |
|
105 if (colormethod == "Morey") |
|
106 return 1.4922 * Math.pow(c, 0.6859); |
|
107 if (colormethod == "Mosher") |
|
108 return 0.3 * c + 4.7; |
|
109 if (colormethod == "Daniels") |
|
110 return 0.2 * c + 8.4; |
|
111 } |
|
112 |
|
113 |
|
114 |
|
115 function kw_to_ebc(colormethod, c) { |
|
116 return srm_to_ebc(kw_to_srm(colormethod, c)); |
|
117 } |
|
118 |
|
119 |
|
120 |
86 /* |
121 /* |
87 * Berekeningen uit https://www.hobbybrouwen.nl/forum/index.php/topic,6079.msg69464.html#msg69464 |
122 * Berekeningen uit https://www.hobbybrouwen.nl/forum/index.php/topic,6079.msg69464.html#msg69464 |
88 */ |
123 */ |
89 function toIBU(Use, Form, SG, Volume, Amount, Boiltime, Alpha, Method) { |
124 function toIBU(Use, Form, SG, Volume, Amount, Boiltime, Alpha, Method) { |
90 var gravity = parseFloat(SG); |
125 var gravity = parseFloat(SG); |
94 var time = parseFloat(Boiltime); |
129 var time = parseFloat(Boiltime); |
95 var fmoment = 1.0; |
130 var fmoment = 1.0; |
96 var pfactor = 1.0; |
131 var pfactor = 1.0; |
97 var ibu = 0; |
132 var ibu = 0; |
98 |
133 |
99 console.log("toIBU("+Use+"," + Form + "," + SG + "," + Volume + "," + Amount + "," + Boiltime + "," + Alpha + "," + Method + ")"); |
|
100 |
|
101 if ((Use == "Dry Hop") || (Use == "Dry hop") || (Use == "Whirlpool") || (Use == "Aroma")) { |
134 if ((Use == "Dry Hop") || (Use == "Dry hop") || (Use == "Whirlpool") || (Use == "Aroma")) { |
102 fmoment = 0.0; |
135 fmoment = 0.0; |
103 } else if (Use == "Mash") { |
136 } else if (Use == "Mash") { |
104 fmoment += /* Settings.MashHopFactor.Value = -30% */ -30 / 100; // Brouwhulp |
137 fmoment += /* Settings.MashHopFactor.Value = -30% */ -30 / 100; // Brouwhulp |
105 } else if ((Use == "First Wort") || (Use == "First wort")) { |
138 } else if ((Use == "First Wort") || (Use == "First wort")) { |
111 } |
144 } |
112 if (Form == "Plug" ) { |
145 if (Form == "Plug" ) { |
113 pfactor += /* Settings.PlugFactor.Value = 2% */ 2 / 100; |
146 pfactor += /* Settings.PlugFactor.Value = 2% */ 2 / 100; |
114 } |
147 } |
115 |
148 |
116 // TODO: sg = (postBoilGravity - 1.0) * batchSize / boilSize; |
|
117 |
|
118 if (Method == "Tinseth") { |
149 if (Method == "Tinseth") { |
119 /* |
150 /* http://realbeer.com/hops/research.html */ |
120 * http://realbeer.com/hops/research.html |
|
121 * |
|
122 * decimal AA rating * grams hops * 1000 |
|
123 * mg/l of added alpha acids = ------------------------------------- |
|
124 * volume of finished beer in liters |
|
125 * |
|
126 * Bigness factor = 1.65 * 0.000125^(wort gravity - 1) |
|
127 * |
|
128 * 1 - e^(-0.04 * time in mins) |
|
129 * Boil Time factor = ---------------------------- |
|
130 * 4.15 |
|
131 * |
|
132 * decimal alpha acid utilization = Bigness factor * Boil Time factor |
|
133 * |
|
134 * IBUs = decimal alpha acid utilization * mg/l of added alpha acids |
|
135 */ |
|
136 var AddedAlphaAcids = (alpha * mass * 1000) / liters; |
151 var AddedAlphaAcids = (alpha * mass * 1000) / liters; |
137 var Bigness_factor = 1.65 * Math.pow( 0.000125, gravity - 1); |
152 var Bigness_factor = 1.65 * Math.pow( 0.000125, gravity - 1); |
138 var BoilTime_factor = ((1 - Math.exp(-0.04 * time)) / 4.15); // Glen Tinseth |
153 var BoilTime_factor = ((1 - Math.exp(-0.04 * time)) / 4.15); |
139 var utiisation = Bigness_factor * BoilTime_factor; |
154 var utiisation = Bigness_factor * BoilTime_factor; |
140 |
|
141 console.log(" AddedAlphaAcids:"+AddedAlphaAcids+" Bigness_factor:"+Bigness_factor+" BoilTime_factor:"+BoilTime_factor+" utilisation:"+utiisation); |
|
142 ibu = Math.round(utiisation * AddedAlphaAcids * fmoment * pfactor * 10) / 10.0; |
155 ibu = Math.round(utiisation * AddedAlphaAcids * fmoment * pfactor * 10) / 10.0; |
143 } |
156 } |
144 if (Method == "Daniels") { |
157 if (Method == "Daniels") { |
145 var boilfactor; |
158 var boilfactor; |
146 var sgfactor; |
159 var sgfactor; |
163 else |
176 else |
164 sgfactor = (gravity - 1050) / 200; |
177 sgfactor = (gravity - 1050) / 200; |
165 ibu = Math.round((mass * (alpha * 100) * boilfactor * 0.1) / (liters * (1 + sgfactor)) * 10) / 10; |
178 ibu = Math.round((mass * (alpha * 100) * boilfactor * 0.1) / (liters * (1 + sgfactor)) * 10) / 10; |
166 } |
179 } |
167 |
180 |
168 console.log(" fmoment:"+fmoment+" pfactor:"+pfactor+" IBU:"+ibu); |
181 console.log("toIBU("+Use+"," + Form + "," + SG + "," + Volume + "," + Amount + "," + Boiltime + "," + Alpha + "," + Method + ") :" + ibu); |
169 return ibu; |
182 return ibu; |
170 } |
183 } |
171 |
184 |
172 |
185 |
173 |
186 |