www/includes/formulas.php

Wed, 14 Nov 2018 15:54:15 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 14 Nov 2018 15:54:15 +0100
changeset 91
44981507b781
parent 90
d4246abee34e
child 94
295c3af2a421
permissions
-rw-r--r--

Morey color method more precise.

11
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
83
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
3 define('EURO', chr(128));
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
4
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
5 define('MMCa', '40.048');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
6 define('MMMg', '24.305');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
7 define('MMNa', '22.98976928');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
8 define('MMCl', '35.453');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
9 define('MMSO4', '96.0626');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
10 define('MMCO3', '60.01684');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
11 define('MMHCO3', '61.01684');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
12 define('MMCaSO4', '172.171');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
13 define('MMCaCl2', '147.015');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
14 define('MMCaCO3', '100.087');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
15 define('MMMgSO4', '246.475');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
16 define('MMNaHCO3', '84.007');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
17 define('MMNa2CO3', '105.996');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
18 define('MMNaCl', '58.443');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
19 define('MMCaOH2', '74.06268');
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
20
11
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 function ebc_to_srm($ebc)
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 {
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 // Srm = -1.32303E-12*Ebc4-0.00000000291515*Ebc3+0.00000818515*Ebc2+0.372038*Ebc+0.596351
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 return -1.32303E-12 * pow($ebc, 4) - 0.00000000291515 * pow($ebc, 3) + 0.00000818515 * pow($ebc, 2) + 0.372038 * $ebc + 0.596351;
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 // return $ebc * 0.508;
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 }
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29
83
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
30
11
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 function srm_to_ebc($srm)
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 {
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 // EBC = 0.000000000176506*Srm4+ 0.000000154529*Srm3-0.000159428*Srm2+2.68837*Srm-1.6004
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 //
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 // Formule van Adrie Otten. brouwhulp.
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 $ebc = 0.000000000176506 * pow($srm, 4) + 0.000000154529 * pow($srm, 3) - 0.000159428 * pow($srm, 2) + 2.68837 * $srm - 1.6004;
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 return round($ebc);
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 }
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40
83
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
41
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
42 function ebc_to_color($ebc)
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
43 {
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
44 return srm_to_color(ebc_to_srm($ebc));
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
45 }
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
46
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
47
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
48
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
49 function srm_to_color($srm)
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
50 {
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
51 $i = abs($srm * 10);
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
52 if ($i < 0) {
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
53 $i = 0;
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
54 }
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
55 if ($i > 299) {
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
56 $i = 299;
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
57 }
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
58
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
59 /* Table copied from Brouwhulp/BrewBuddy */
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
60 $R = array( 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, // 0
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
61 250, 250, 250, 250, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, // 2
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
62 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, // 4
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
63 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 200, 199, 199, 198, 198, // 6
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
64 197, 197, 196, 196, 195, 195, 194, 194, 193, 193, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 8
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
65 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 10
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
66 192, 192, 192, 192, 192, 192, 192, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, // 12
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
67 179, 178, 177, 175, 174, 172, 171, 169, 168, 167, 195, 164, 162, 161, 159, 158, 157, 155, 154, 152, // 14
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
68 151, 149, 148, 147, 145, 144, 142, 141, 139, 138, 137, 135, 134, 132, 131, 129, 128, 127, 125, 124, // 16
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
69 122, 121, 119, 118, 117, 115, 114, 112, 111, 109, 108, 107, 105, 104, 102, 101, 99, 98, 97, 95, // 18
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
70 94, 92, 91, 89, 88, 87, 85, 84, 82, 81, 79, 78, 77, 75, 74, 72, 71, 69, 68, 67, // 20
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
71 65, 64, 62, 61, 59, 58, 57, 55, 54, 52, 51, 49, 48, 47, 45, 44, 43, 41, 39, 38, // 22
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
72 37, 37, 36, 36, 35, 35, 34, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29, 29, 28, 28, // 24
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
73 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 18, // 26
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
74 17, 17, 16, 16, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 10, 10, 9, 9, 8, 8 );
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
75
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
76 $G = array( 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
77 250, 250, 250, 250, 250, 250, 249, 248, 247, 246, 245, 244, 242, 240, 238, 236, 234, 232, 230, 228,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
78 226, 224, 222, 220, 218, 216, 214, 212, 210, 208, 206, 204, 202, 200, 198, 196, 194, 192, 190, 188,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
79 186, 184, 182, 180, 178, 176, 174, 172, 170, 168, 166, 164, 162, 160, 158, 156, 154, 152, 150, 148,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
80 146, 144, 142, 141, 140, 139, 139, 138, 137, 136, 136, 135, 134, 133, 133, 132, 131, 130, 130, 129,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
81 128, 127, 127, 126, 125, 124, 124, 123, 122, 121, 121, 120, 119, 118, 118, 117, 116, 115, 115, 114,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
82 113, 112, 112, 111, 110, 109, 109, 108, 107, 106, 106, 105, 104, 103, 103, 102, 101, 100, 100, 99,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
83 98, 97, 97, 96, 95, 94, 94, 93, 92, 91, 91, 90, 89, 88, 88, 87, 86, 85, 85, 84,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
84 83, 82, 82, 81, 80, 79, 78, 77, 76, 75, 75, 74, 73, 72, 72, 71, 70, 69, 69, 68,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
85 67, 66, 66, 65, 64, 63, 63, 62, 61, 60, 60, 59, 58, 57, 57, 56, 55, 54, 54, 53,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
86 52, 51, 51, 50, 49, 48, 48, 47, 46, 45, 45, 44, 43, 42, 42, 41, 40, 39, 39, 38,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
87 37, 36, 36, 35, 34, 33, 33, 32, 31, 30, 30, 29, 28, 27, 27, 26, 25, 24, 24, 23,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
88 22, 22, 22, 21, 21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 16, 16,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
89 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 9,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
90 9, 9, 8, 8, 8, 7, 7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3 );
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
91
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
92 $B = array( 210, 204, 199, 193, 188, 182, 177, 171, 166, 160, 155, 149, 144, 138, 133, 127, 122, 116, 111, 105,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
93 100, 94, 89, 83, 78, 72, 67, 61, 56, 50, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
94 47, 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
95 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
96 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
97 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
98 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
99 56, 56, 56, 55, 55, 55, 55, 54, 54, 54, 54, 53, 53, 53, 53, 52, 52, 52, 52, 51,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
100 51, 51, 51, 50, 50, 50, 50, 49, 49, 48, 47, 47, 46, 45, 45, 44, 43, 43, 42, 41,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
101 41, 40, 39, 39, 38, 37, 37, 36, 35, 34, 33, 32, 31, 29, 28, 27, 26, 25, 24, 23,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
102 21, 20, 19, 18, 17, 16, 15, 13, 12, 11, 10, 9, 8, 9, 9, 10, 10, 11, 11, 12,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
103 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
104 21, 21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 17, 16, 16, 15, 15,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
105 15, 14, 14, 14, 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 9, 9, 9, 8,
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
106 8, 8, 7, 7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2 );
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
107
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
108 return array($R[$i],$G[$i],$B[$i]);
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
109 }
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
110
85521c6e0022 Added recipe print yeasts section.
Michiel Broek <mbroek@mbse.eu>
parents: 11
diff changeset
111
85
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
112
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
113 function sg_to_plato($sg) {
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
114 if ($sg > 0.5)
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
115 return 259 - 259 / $sg;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
116 return 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
117 }
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
118
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
119
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
120
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
121 function plato_to_sg($plato) {
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
122 if ($plato < 259)
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
123 return 259 / (259 - $plato);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
124 return 1.000;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
125 }
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
126
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
127
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
128
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
129 /*
87
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
130 * sugars is the total extract weight of sugars.
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
131 */
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
132 function estimate_og($sugars, $batch_size) {
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
133 $plato = 100 * $sugars / $batch_size;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
134 $sg = plato_to_sg($plato);
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
135
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
136 /* Average loops, HansH 5x. Brouwhulp 20x, about 10x is enough so keep 20. */
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
137 for ($i = 0; $i < 20; $i++) {
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
138 if ($sg > 0)
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
139 $plato = 100 * $sugars / ($batch_size * $sg);
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
140 $sg = plato_to_sg($plato);
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
141 }
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
142 return $sg;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
143 }
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
144
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
145
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
146
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
147 function estimate_fg($percSugar, $percCara, $WGratio, $TotTme, $Temp, $attenuation, $og) {
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
148 if ($percSugar > 40)
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
149 $percSugar = 0;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
150 if ($percCara > 50)
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
151 $percCara = 0;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
152 if (($WGratio > 0) && ($TotTme > 0)) {
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
153 $BD = $WGratio;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
154 $BD = max(2, min(5.5, $BD));
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
155 $Temp = max(60, min(72, $Temp));
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
156 } else {
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
157 $BD = 3.5;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
158 $Temp = 67;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
159 $TotTme = 75;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
160 }
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
161 if ($attenuation < 30)
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
162 $attenuation = 77;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
163
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
164 $AttBeer = 0.00825 * $attenuation + 0.00817 * $BD - 0.00684 * $Temp + 0.00026 * $TotTme - 0.00356 * $percCara + 0.00553 * $percSugar + 0.547;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
165 $fg = 1 + (1 - $AttBeer) * ($og - 1);
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
166 return $fg;
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
167 }
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
168
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
169
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
170
88
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
171 function abvol($og, $fg) {
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
172 if ((4.749804 - $fg) <> 0)
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
173 return 486.8693 * ($og - $fg) / (4.749804 - $fg);
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
174 return 0;
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
175 }
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
176
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
177
89
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
178 /*
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
179 * Kleurwerking naar SRM
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
180 */
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
181 function kw_to_srm($colormethod, $c) {
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
182
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
183 if ($colormethod == "Morey")
91
44981507b781 Morey color method more precise.
Michiel Broek <mbroek@mbse.eu>
parents: 90
diff changeset
184 return 1.4922 * pow($c, 0.6859);
89
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
185 if ($colormethod == "Mosher")
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
186 return 0.3 * $c + 4.7;
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
187 if ($colormethod == "Daniels")
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
188 return 0.2 * $c + 8.4;
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
189 }
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
190
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
191
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
192
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
193 function kw_to_ebc($colormethod, $c) {
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
194 return srm_to_ebc(kw_to_srm($colormethod, $c));
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
195 }
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
196
082c23b26055 Missing Water agent costs from Brouwhulp import are now added from the imported miscs database. The printed recipe report now calculates the beer color from the ingredients. Also set during recipes import. This will later allow to set the color method for each recipe individually.
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
197
88
0a39cbdcf085 Added ABV clculation.
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
198
90
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
199 function calc_IBU($useat, $form, $sg, $volume, $mass, $boiltime, $alpha, $method) {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
200
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
201 $fmoment = 1.0;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
202 if (($useat == "Dry Hop") || ($useat == "Dry hop") || ($useat == "Whirlpool") || ($useat == "Aroma")) {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
203 $fmoment = 0.0;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
204 } else if ($useat == "Mash") {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
205 $fmoment += /* Settings.MashHopFactor.Value = -30% */ -30 / 100; // Brouwhulp
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
206 } else if (($useat == "First Wort") || ($useat == "First wort")) {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
207 $fmoment += /* Settings.FWHFactor.Value = 10% */ 10 / 100; // Brouwhulp, Louis, Ozzie
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
208 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
209
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
210 $pfactor = 1.0;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
211 if ($form == "Pellet") {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
212 $pfactor += /* Settings.PelletFactor.Value = 10% */ 10 / 100;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
213 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
214 if ($form == "Plug") {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
215 $pfactor += /* Settings.PlugFactor.Value = 2% */ 2 / 100;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
216 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
217
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
218 $ibu = 0;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
219 if (($method == "Tinseth") || ($method == "Garetz")) { // For Garetz, we need the $ibu
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
220 $AddedAlphaAcids = (($alpha / 100) * $mass * 1000) / $volume;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
221 $Bigness_factor = 1.65 * pow( 0.000125, $sg - 1);
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
222 $BoilTime_factor = ((1 - exp(-0.04 * $boiltime)) / 4.15);
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
223 $utiisation = $Bigness_factor * $BoilTime_factor;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
224 $ibu = (round($utiisation * $AddedAlphaAcids * $fmoment * $pfactor * 10) / 10.0);
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
225 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
226 if ($method == "Daniels") {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
227
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
228 if ($form == "Leaf")
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
229 $boilfactor = -(0.0041*$boiltime*$boiltime)+(0.6162*$boiltime)+1.5779;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
230 else
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
231 $boilfactor = -(0.0051*$boiltime*$boiltime)+(0.7835*$boiltime)+1.9348;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
232 if ($sg < 1.050)
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
233 $sgfactor = 0;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
234 else
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
235 $sgfactor = (($sg * 1000) - 1050) / 200;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
236 $ibu = $fmoment * (($mass * $alpha * $boilfactor * 0.1) / ($volume * (1 + $sgfactor)));
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
237 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
238 if ($method == "Rager") {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
239 $boilfactor = $fmoment * 18.11 + 13.86 * tanh(($boiltime * 31.32) / 18.27);
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
240 if ($sg < 1.050)
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
241 $sgfactor = 0;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
242 else
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
243 $sgfactor = (($sg * 1000) - 1050) / 200;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
244 $ibu = ($mass * $alpha * $boilfactor * 0.1) / ($volume * (1 + $sgfactor));
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
245 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
246 if ($method == "Garetz") {
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
247 /* Something is wrong, late hops and dryhops give negative results. */
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
248 $boilfactor = $fmoment * 6.03253 + 16.5289 * tanh(($boiltime - 19.17323) / 26.8013);
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
249 $cfactor = $volume / (1.1 * $volume); // ConcentratieFactor = (Volume na koelen) / (Volume bij Koken)
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
250 $kookdichtheid = ($cfactor * (($sg * 1000) - 1000) / 1000) + 1;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
251 $sgfactor = ($kookdichtheid - 1.05) / 0.2 + 1;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
252 $hopratefactor = (($cfactor * $ibu) / 260) + 1; // $ibu is Tinseth bitterness. Weird.
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
253 $tempfactor = (32.8/550)*0.02+1;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
254 $ibu = ($boilfactor * $alpha * $mass * 0.1) / ($volume * $sgfactor * $hopratefactor * $tempfactor);
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
255 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
256 /* TODO: Noonan and Mosher */
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
257
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
258 return $ibu;
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
259 }
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
260
d4246abee34e IBU calculation moved to formulas.php and added Daniels and Rager methods.
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
261
87
7f1d0abe5571 OG and FG are now calculated from the grist. The printed report has a summary an notes section at the end. The formulas are in the global formulas script.
Michiel Broek <mbroek@mbse.eu>
parents: 85
diff changeset
262 /*
85
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
263
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
264 Brouwhulp data.pas
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
265
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
266 Function THop.FlavourContribution : double; //in % * concentration in g/l
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
267 var bt, vol : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
268 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
269 bt:= FTime.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
270 vol:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
271 if FRecipe <> NIL then vol:= FRecipe.BatchSize.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
272 if FUse = huFirstWort then Result:= 0.15 * FAmount.Value * 1000 //assume 15% flavourcontribution for fwh
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
273 else if bt > 50 then Result:= 0.10 * FAmount.Value * 1000 //assume 10% flavourcontribution as a minimum
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
274 else
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
275 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
276 Result:= 15.25 / (6 * sqrt(2 * PI)) * Exp(-0.5*Power((bt-21)/6, 2))
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
277 * FAmount.Value * 1000;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
278 if result < 0.10 * FAmount.Value * 1000 then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
279 Result:= 0.10 * FAmount.Value * 1000 //assume 10% flavourcontribution as a minimum
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
280 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
281 if vol > 0 then Result:= Result / vol;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
282 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
283
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
284 Function THop.AromaContribution : double; //in % * concentration in g/l
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
285 var bt, vol : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
286 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
287 bt:= FTime.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
288 vol:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
289 if FRecipe <> NIL then vol:= FRecipe.BatchSize.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
290 if bt > 20 then Result:= 0
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
291 else if bt > 7.5 then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
292 Result:= 10.03 / (4 * sqrt(2 * PI)) * Exp(-0.5*Power((bt-7.5)/4, 2))
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
293 * FAmount.Value * 1000
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
294 else if FUse = huBoil then Result:= FAmount.Value * 1000
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
295 else if FUse = huAroma then Result:= 1.2 * FAmount.Value * 1000
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
296 else if FUse = huWhirlpool then Result:= 1.2 * FAmount.Value * 1000
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
297 else if FUse = huDryHop then Result:= 1.33 * FAmount.Value * 1000;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
298 if vol > 0 then Result:= Result / vol;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
299 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
300
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
301
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
302 Procedure TFermentable.SetpHParameters(force : boolean);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
303 var x, ebc : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
304 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
305 if Between(FDIpH.Value, -0.01, 0.01) or Between(FAcidTo57.Value, -0.1, 0.1) or force then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
306 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
307 ebc:= SRMtoEBC(FColor.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
308 case FGrainType of
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
309 gtBase, gtKilned:
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
310 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
311 FDIpH.Value:= -0.0132 * ebc + 5.7605;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
312 x:= 0.4278 * ebc - 1.8106;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
313 FAcidTo57.Value:= x;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
314 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
315 gtRoast:
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
316 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
317 FDIpH.Value:= 0.00018 * ebc + 4.558;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
318 FAcidTo57.Value:= -0.0176 * ebc + 60.04;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
319 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
320 gtCrystal:
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
321 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
322 FDIpH.Value:= -0.0019 * ebc + 5.2175;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
323 FAcidTo57.Value:= 0.132 * ebc + 14.277;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
324 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
325 gtSour:
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
326 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
327 FDIpH.Value:= 3.44;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
328 FAcidTo57.Value:= 337;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
329 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
330 gtSpecial: //this could be anything. Assume for now it is a non-acidulated base or kilned malt
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
331 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
332 FDIpH.Value:= -0.0132 * ebc + 5.7605;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
333 FAcidTo57.Value:= 0.4278 * ebc - 1.8106;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
334 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
335 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
336 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
337 //known parameters should be filled in here
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
338 if FSupplier.Value = 'Weyermann' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
339 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
340 if FName.Value = 'Vienna mout' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
341 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
342 FDIpH.Value:= 5.65;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
343 FAcidTo57.Value:= 1.6;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
344 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
345 if FName.Value = 'M√ľnchner I' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
346 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
347 FDIpH.Value:= 5.44;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
348 FAcidTo57.Value:= 8.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
349 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
350 if FName.Value = 'M√ľnchner II' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
351 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
352 FDIpH.Value:= 5.54;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
353 FAcidTo57.Value:= 5.6;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
354 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
355 if FName.Value = 'Caramunich I' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
356 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
357 FDIpH.Value:= 5.1;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
358 FAcidTo57.Value:= 22.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
359 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
360 if FName.Value = 'Caramunich II' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
361 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
362 FDIpH.Value:= 4.71;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
363 FAcidTo57.Value:= 49;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
364 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
365 if FName.Value = 'Caramunich III' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
366 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
367 FDIpH.Value:= 4.92;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
368 FAcidTo57.Value:= 31.2;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
369 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
370 if FName.Value = 'Cara-aroma' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
371 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
372 FDIpH.Value:= 4.48;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
373 FAcidTo57.Value:= 74.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
374 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
375 if FName.Value = 'Carafa I' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
376 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
377 FDIpH.Value:= 4.71;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
378 FAcidTo57.Value:= 42;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
379 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
380 if FName.Value = 'Carafa III' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
381 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
382 FDIpH.Value:= 4.81;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
383 FAcidTo57.Value:= 35.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
384 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
385 if FName.Value = 'Carafa II' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
386 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
387 FDIpH.Value:= 4.76;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
388 FAcidTo57.Value:= 38.7;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
389 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
390 if FName.Value = 'Carafa Special I' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
391 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
392 FDIpH.Value:= 4.73;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
393 FAcidTo57.Value:= 46.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
394 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
395 if FName.Value = 'Carafa Special II' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
396 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
397 FDIpH.Value:= 4.78;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
398 FAcidTo57.Value:= 42.9;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
399 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
400 if FName.Value = 'Carafa Special III' then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
401 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
402 FDIpH.Value:= 4.83;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
403 FAcidTo57.Value:= 38.9;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
404 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
405 if IsInString(FName.Value, 'Zuurmout') then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
406 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
407 FDIpH.Value:= 3.44;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
408 FAcidTo57.Value:= 358.2;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
409 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
410 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
411 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
412
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
413
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
414 function TFermentable.GetExtract: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
415 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
416 Result := 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
417 if FRecipe <> nil then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
418 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
419 Result := FAmount.Value * FYield.Value / 100 * (1 - FMoisture.Value / 100);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
420 if FAdded = atMash then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
421 Result := Result * FRecipe.Efficiency / 100;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
422 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
423 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
424
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
425
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
426 function TFermentable.GetKolbachIndex: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
427 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
428 if FProtein.Value > 0 then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
429 Result := FDissolvedProtein.Value / FProtein.Value
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
430 else
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
431 Result := 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
432 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
433
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
434
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
435 Procedure TWater.AddMinerals(Ca, Mg, Na, HCO3, Cl, SO4 : double);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
436 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
437 FCalcium.Add(Ca);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
438 FMagnesium.Add(Mg);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
439 FSodium.Add(Na);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
440 FBicarbonate.Add(HCO3);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
441 FChloride.Add(Cl);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
442 FSulfate.Add(SO4);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
443 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
444
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
445 function TWater.GetResidualAlkalinity: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
446 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
447 //Result in mg/l as CaCO3
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
448 Result:= FTotalAlkalinity.Value - (FCalcium.Value / 1.4 + FMagnesium.Value / 1.7);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
449 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
450
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
451 const
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
452 Ka1 = 0.0000004445;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
453 Ka2 = 0.0000000000468;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
454
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
455 Function PartCO3(pH : double) : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
456 var H : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
457 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
458 H:= Power(10, -pH);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
459 Result:= 100 * Ka1 * Ka2 / (H*H + H * Ka1 + Ka1 * Ka2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
460 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
461
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
462 Function PartHCO3(pH : double) : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
463 var H : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
464 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
465 H:= Power(10, -pH);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
466 Result:= 100 * Ka1 * H / (H*H + H * Ka1 + Ka1 * Ka2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
467 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
468
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
469 Function PartH2CO3(pH : double) : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
470 var H : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
471 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
472 H:= Power(10, -pH);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
473 Result:= 100 * H * H / (H*H + H * Ka1 + Ka1 * Ka2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
474 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
475
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
476 Function Charge(pH : double) : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
477 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
478 Result:= (-2 * PartCO3(pH) - PartHCO3(pH));
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
479 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
480
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
481 //Z alkalinity is the amount of acid (in mEq/l) needed to bring water to the target pH (Z pH)
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
482 Function TWater.ZAlkalinity(pHZ : double) : double; //in mEq/l
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
483 var CT, DeltaCNaught, DeltaCZ, C43, Cw, Cz : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
484 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
485 C43:= Charge(4.3);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
486 Cw:= Charge(FpH.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
487 Cz:= Charge(pHz);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
488 DeltaCNaught:= -C43+Cw;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
489 CT:= GetAlkalinity / 50 / DeltaCNaught;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
490 DeltaCZ:= -Cz+Cw;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
491 Result:= CT * DeltaCZ;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
492 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
493
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
494 //Z Residual alkalinity is the amount of acid (in mEq/l) needed to bring the water in the mash to the target pH (Z pH)
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
495 Function TWater.ZRA(pHZ : double) : double; //in mEq/l
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
496 var Calc, Magn, Z : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
497 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
498 Calc:= FCalcium.Value / (MMCa / 2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
499 Magn:= FMagnesium.Value / (MMMg / 2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
500 Z:= ZAlkalinity(pHZ);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
501 Result:= Z - (Calc / 3.5 + Magn / 7);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
502 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
503
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
504 Function TWater.ProtonDeficit(pHZ : double) : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
505 var i : integer;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
506 F : TFermentable;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
507 x : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
508 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
509 Result:= ZRA(pHZ) * FAmount.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
510 //proton deficit for the added malts
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
511 for i:= 0 to FRecipe.NumFermentables - 1 do
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
512 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
513 F:= FRecipe.Fermentable[i];
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
514 if (F.AddedType = atMash) and (F.GrainType <> gtNone) then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
515 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
516 x:= F.AcidRequired(pHZ) * F.Amount.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
517 Result:= Result + x;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
518 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
519 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
520 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
521
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
522 Function TWater.MashpH : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
523 var n : integer;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
524 pd : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
525 pH, deltapH, deltapd : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
526 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
527 Result:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
528 n:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
529 pH:= 5.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
530 deltapH:= 0.001;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
531 deltapd:= 0.1;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
532 pd:= ProtonDeficit(pH);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
533 while ((pd < -deltapd) or (pd > deltapd)) and (n < 1000) do
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
534 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
535 inc(n);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
536 if pd < -deltapd then ph:= ph - deltapH
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
537 else if pd > deltapd then pH:= pH + deltapH;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
538 pd:= ProtonDeficit(pH);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
539 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
540 Result:= pH;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
541 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
542
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
543 Function TWater.MashpH2(PrDef : double) : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
544 var n : integer;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
545 pd : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
546 pH, deltapH, deltapd : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
547 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
548 Result:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
549 n:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
550 pH:= 5.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
551 deltapH:= 0.001;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
552 deltapd:= 0.1;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
553 pd:= ProtonDeficit(pH);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
554 while ((pd < PrDef-deltapd) or (pd > PrDef + deltapd)) and (n < 1000) do
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
555 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
556 inc(n);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
557 if pd < PrDef-deltapd then ph:= ph - deltapH
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
558 else if pd > PrDef+deltapd then pH:= pH + deltapH;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
559 pd:= ProtonDeficit(pH);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
560 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
561 Result:= pH;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
562 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
563
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
564 function TWater.GetAlkalinity: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
565 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
566 Result := FBicarbonate.Value / 1.22; //mEq/l
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
567 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
568
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
569 function TWater.GetHardness: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
570 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
571 Result := 0.14 * FCalcium.Value - 0.23 * FMagnesium.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
572 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
573
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
574 function TWater.GetEstPhMash: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
575 {var
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
576 pHdemi, S: double;}
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
577 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
578 Result:= MashpH;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
579 { Result := 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
580 if FRecipe <> nil then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
581 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
582 pHDemi := FRecipe.pHdemi;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
583 S := 0.013 * FRecipe.MashThickness + 0.013;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
584 Result := pHDemi + ResidualAlkalinity / 50 * S;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
585 end;}
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
586 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
587
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
588
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
589 function TBeerStyle.GetBUGUMin: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
590 var
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
591 B, G: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
592 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
593 Result:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
594 if ((FOGMax.Value + FOGMin.Value) > 0) and ((FIBUMax.Value + FIBUMin.Value) > 0) then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
595 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
596 G := (FOGMax.Value - FOGMin.Value) / ((FOGMax.Value + FOGMin.Value) / 2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
597 B := (FIBUMax.Value - FIBUMin.Value) / ((FIBUMax.Value + FIBUMin.Value) / 2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
598 if G > B then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
599 Result := ((FIBUMin.Value + FIBUMax.Value) / 2) / (1000 * (FOGMax.Value - 1))
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
600 else
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
601 Result := FIBUMin.Value / (1000 * (((FOGMax.Value + FOGMin.Value) / 2) - 1));
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
602 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
603 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
604
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
605 function TBeerStyle.GetBUGUMax: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
606 var
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
607 B, G: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
608 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
609 Result:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
610 if ((FOGMax.Value + FOGMin.Value) > 0) and ((FIBUMax.Value + FIBUMin.Value) > 0)
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
611 and (FOGMin.Value > 1) then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
612 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
613 G := (FOGMax.Value - FOGMin.Value) / ((FOGMax.Value + FOGMin.Value) / 2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
614 B := (FIBUMax.Value - FIBUMin.Value) / ((FIBUMax.Value + FIBUMin.Value) / 2);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
615 if G > B then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
616 Result := ((FIBUMin.Value + FIBUMax.Value) / 2) / (1000 * (FOGMin.Value - 1))
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
617 else
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
618 Result := FIBUMax.Value / (1000 * (((FOGMax.Value + FOGMin.Value) / 2) - 1));
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
619 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
620 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
621
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
622
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
623 CalcBitterness;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
624
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
625 // Get concentration of ions in diluted brewwater (1) and target water (2) in mmol/l
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
626 Ca1 := W.Calcium.Value / MMCa;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
627 Ca2 := W2.Calcium.Value / MMCa;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
628 Mg1 := W.Magnesium.Value / MMMg;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
629 Mg2 := W2.Magnesium.Value / MMMg;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
630 Na1 := W.Sodium.Value / MMNa;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
631 Na2 := W2.Sodium.Value / MMNa;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
632
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
633 CO31 := W.Bicarbonate.Value / MMHCO3;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
634 CO32 := W2.Bicarbonate.Value / MMHCO3;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
635 SO41 := W.Sulfate.Value / MMSO4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
636 SO42 := W2.Sulfate.Value / MMSO4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
637 Cl1 := W.Sulfate.Value / MMSO4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
638 Cl2 := W2.Sulfate.Value / MMSO4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
639
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
640
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
641 procedure MixWater(W1, W2, Wr: TWater);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
642
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
643 function Mix(V1, V2, C1, C2: double): double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
644 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
645 if (V1 + V2) > 0 then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
646 Result := (V1 * C1 + V2 * C2) / (V1 + V2)
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
647 else
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
648 Result := 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
649 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
650
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
651 var
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
652 vol1, vol2: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
653 phnew: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
654 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
655 vol1 := W1.Amount.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
656 vol2 := W2.Amount.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
657 if (vol1 + vol2) > 0 then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
658 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
659 Wr.Amount.Value := vol1 + vol2;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
660 Wr.Calcium.Value := Mix(vol1, vol2, W1.Calcium.Value, W2.Calcium.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
661 Wr.Magnesium.Value := Mix(vol1, vol2, W1.Magnesium.Value, W2.Magnesium.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
662 Wr.Sodium.Value := Mix(vol1, vol2, W1.Sodium.Value, W2.Sodium.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
663 Wr.Bicarbonate.Value := Mix(vol1, vol2, W1.Bicarbonate.Value, W2.Bicarbonate.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
664 Wr.Sulfate.Value := Mix(vol1, vol2, W1.Sulfate.Value, W2.Sulfate.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
665 Wr.Chloride.Value := Mix(vol1, vol2, W1.Chloride.Value, W2.Chloride.Value);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
666 pHnew := -log10((power(10, -W1.pHWater.Value) * vol1 +
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
667 power(10, -W2.pHWater.Value) * vol2) / (vol1 + vol2));
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
668 Wr.pHwater.Value := pHnew;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
669 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
670 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
671
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
672
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
673
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
674 function TRecipe.CalcColorWort : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
675 var
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
676 i: integer;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
677 F: TFermentable;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
678 c, v: double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
679 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
680 c := 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
681 v := FBatchSize.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
682 if (v > 0) and (High(FFermentables) >= 0) then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
683 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
684 for i := Low(FFermentables) to High(FFermentables) do
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
685 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
686 F := TFermentable(FFermentables[i]);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
687 c := c + F.Amount.Value * F.Color.Value / v;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
688 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
689 c := c * 8.34436;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
690 case FColorMethod of
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
691 cmMorey: c := 1.49 * Power(c, 0.69);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
692 cmMosher: c := 0.3 * c + 4.7;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
693 cmDaniels: c := 0.2 * c + 8.4;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
694 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
695 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
696 Result:= c;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
697 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
698
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
699
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
700 procedure TRecipe.CalcWaterBalance;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
701 var
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
702 i: integer;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
703 F: TFermentable;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
704 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
705 FAbsorbedByGrain := 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
706 for i := Low(FFermentables) to High(FFermentables) do
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
707 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
708 F := TFermentable(FFermentables[i]);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
709 if (F.FermentableType = ftGrain) or (F.FermentableType = ftAdjunct) then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
710 FAbsorbedByGrain := FAbsorbedByGrain + F.Amount.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
711 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
712 FAbsorbedByGrain := FAbsorbedByGrain * Settings.GrainAbsorption.Value;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
713
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
714 if FEquipment.CalcBoilVolume.Value then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
715 {FBoilSize.Value := FBatchSize.Value / (1 - (FEquipment.EvapRate.Value / 100) *
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
716 (FBoilTime.Value / 60));}
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
717 FBoilSize.Value:= FBatchSize.Value + FEquipment.BoilSize.Value
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
718 * FEquipment.EvapRate.Value / 100 *
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
719 (FBoilTime.Value / 60);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
720 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
721
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
722
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
723
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
724
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
725
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
726 Procedure TRecipe.CalcCalories;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
727 var sug, alc, org, fig : double;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
728 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
729 if FOGFermenter.Value > 1.001 then org:= FOGFermenter.Value
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
730 else if FOG.Value > 1.001 then org:= FOG.Value
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
731 else org:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
732 if FFG.Value > 0.999 then fig:= FFG.Value
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
733 else if FEstFG.Value > 1.000 then fig:= FEstFG.Value
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
734 else if FEstFG2.Value > 1.000 then fig:= FEstFG2.Value
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
735 else fig:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
736 if (org > 0) and (fig > 0) then
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
737 begin
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
738 alc:= 1881.22 * fig * (org - fig) / (1.775 - org);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
739 sug:= 3550 * fig * (0.1808 * org + 0.8192 * fig - 1.0004);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
740 FCalories.Value:= (alc + sug) / (12 * 0.0295735296);
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
741 end
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
742 else FCalories.Value:= 0;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
743 end;
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
744
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
745
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
746
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
747
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
748 */
ca7a37586551 Added SG/Plato formulas for PHP. Added OG calculation in the recipe print.
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
749
11
d341f0a91a91 Added fermentable inventory
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
750 ?>

mercurial