www/js/global.js

changeset 98
92d6bc8a4cdd
parent 96
107c12c3e49d
child 100
08c92cb740b9
equal deleted inserted replaced
97:22c277be7e7e 98:92d6bc8a4cdd
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

mercurial