soapformulator
NL
Naslag

Elke formule, en waar die vandaan komt

De calculator is een dunne laag over een kleine, open formulebibliotheek. Deze pagina is die bibliotheek, uitgeschreven. Conventies staan aangeduid als conventies; constanten hebben hun bron erbij.

Op deze pagina

Verzeping en loog

SAP_NaOH (mg/g) = SAP_KOH × 39.997 ÷ 56.106                # molar masses, IUPAC 2013
KOH_100 (g)     = Σ oilᵢ (g) × SAP_KOHᵢ ÷ 1000               # SAP defined as mg KOH per g fat
KOH_sf          = KOH_100 × (1 − superfat ÷ 100)
NaOH to weigh   = KOH_sf × (1 − f_KOH) × 39.997 ÷ 56.106 ÷ (purity_NaOH ÷ 100)
KOH to weigh    = KOH_sf × f_KOH ÷ (purity_KOH ÷ 100)
superfat from a given lye = (1 − lye_supplied_KOHeq ÷ KOH_100) × 100

Water op drie manieren, en masterbatches

water = oils × p ÷ 100                    # p = water as % of oils (38 is the old default)
water = lye × (100 − c) ÷ c               # c = lye concentration % (33 is our default)
water = lye × r                           # r = water : lye ratio
c = lye ÷ (lye + water) × 100;  r = water ÷ lye;  p = water ÷ oils × 100

Master batch at strength s %:
solution = lye ÷ (s ÷ 100);  water_in = solution − lye;  water_add = water − water_in

Liquids replacing water:
plain water = max(0, water − Σ liquidᵢ × water%ᵢ ÷ 100)
  • Dunn, Kevin M. Scientific Soapmaking: The Chemistry of the Cold Process. Clavicula Press, 2010. Lye solution concentration and its effect on trace and gel.
  • Community convention: "full water" = 38 % of oil weight, the default that most hobby calculators have used since the 2000s; roughly a 27–28 % lye solution for a typical bar recipe. — A convention, not a chemical constant. Lye concentration is the better control variable because it does not drift with the oil blend.

Zuren en vette vloeistoffen

NaOH consumed (g) = mass × purity × n × 39.997 ÷ M_acid
  citric acid (anhydrous, triprotic, M 192.124):  0.6246 g NaOH per g   (0.8760 g KOH)
  citric acid monohydrate (M 210.139):            0.5710
  acetic acid (M 60.052):                         0.6660   → 5 % vinegar: 0.0333 per g
  lactic acid (M 90.078):                         0.4440
effective superfat = (oils × sf ÷ 100 + fat from milks) ÷ (oils + fat from milks) × 100

Een verzepingsgetal afleiden uit de samenstelling

M̄_fatty acid   = Σ wᵢ ÷ Σ(wᵢ ÷ Mᵢ)             # wᵢ = mass % of each acid: the number average
M_triglyceride = 3 × M̄_fatty acid + 38.049     # glycerol 92.094 less three waters
SAP (mg KOH/g) = 3 × 56 106 ÷ M_triglyceride    # three KOH per triglyceride

free fatty acids (stearic acid, lauric acid and the like) take one KOH each:
SAP = 56 106 ÷ M̄_fatty acid

Validated on the 36 Codex oils where the saponification range and the
fatty-acid ranges come from the same standard:
  median absolute error  0.84 %
  90th percentile        2.44 %
  worst                  3.57 %
  bias                  +0.55 %   # high: unsaponifiable matter
A derived value therefore carries a ±3 % band, and is offered only where the
published profile sums to between 95 % and 115 %.

Hoe nauwkeurig de gepubliceerde gegevens de loog vastleggen

KOH_low  = Σ(oilᵢ × SAP_minᵢ ÷ 1000)       # every oil at the bottom of its published range
KOH_high = Σ(oilᵢ × SAP_maxᵢ ÷ 1000)       # ...and at the top
KOH_mid  = Σ(oilᵢ × SAP_repᵢ ÷ 1000)       # what the lye is actually weighed from

supplied (as KOH equivalent) = KOH_mid × (1 − sf ÷ 100)

superfat actually achieved:
  worst case = (1 − supplied ÷ KOH_low)  × 100   # fat needs LESS lye than was weighed
  best case  = (1 − supplied ÷ KOH_high) × 100   # fat needs MORE, so more is left unsaponified

smallest nominal superfat whose worst case clears a floor f:
  sf ≥ (1 − (1 − f) × KOH_low ÷ KOH_mid) × 100

Vetzuurprofiel, zeepeigenschappen, joodgetal en INS

profile = Σ (oilᵢ ÷ total oils) × fatty acidsᵢ           # mass-weighted percent
hardness     = lauric + myristic + palmitic + stearic        (29–54)
cleansing    = lauric + myristic                             (12–22)
conditioning = oleic + linoleic + linolenic + ricinoleic     (44–69)
bubbly       = lauric + myristic + ricinoleic                (14–46)
creamy       = palmitic + stearic + ricinoleic               (16–48)
iodine value = Σ wᵢ × IVᵢ                                    (41–70)
INS          = Σ wᵢ × (SAP_KOHᵢ − IVᵢ)                       (136–165, ideal 160)
  • Community convention for soap qualities, in continuous use in hobby lye calculators since c. 2005: hardness = lauric + myristic + palmitic + stearic; cleansing = lauric + myristic; conditioning = oleic + linoleic + linolenic + ricinoleic; bubbly lather = lauric + myristic + ricinoleic; creamy lather = palmitic + stearic + ricinoleic. Recommended bands: hardness 29–54, cleansing 12–22, conditioning 44–69, bubbly 14–46, creamy 16–48, and iodine value 41–70. — A convention, not a measurement. It ignores superfat, water, cure and additives, and treats every fatty acid in a group as equal. The iodine value itself is measured (AOCS Cd 1-25); the 41–70 band beside it belongs to this convention, not to the method.
  • AOCS Official Method Cd 1-25, "Iodine Value of Fats and Oils, Wijs Method". g I₂ absorbed per 100 g of fat; a measure of unsaturation.
  • McDaniel, Robert S. Essentially Soap. Krause Publications, 2000. INS = saponification value (mg KOH/g) − iodine value; recommended range 136–165, ideal 160.

Geurdosering, IFRA en allergenen

f = oils × p ÷ 100                          # p = % of oils (PPO)
f = base × p ÷ (100 − p)                    # p = % of finished batch; base = everything but fragrance
% of finished product = f ÷ (base + f) × 100 ≤ certificate maximum for the product's IFRA category
blends (conservative): Σ loadᵢ ÷ maxᵢ ≤ 1
allergen % in product = Σ (fragrance % × allergen % in fragrance ÷ 100) ÷ (1 − cure mass loss)
declare if > 0.001 % leave-on, > 0.01 % rinse-off
suggested on a pick: 3 % of oils, or less to stay under the maximum: f = min(oils × 0.03, base × M ÷ (100 − M))

Malgrootte berekenen

V (mL) = l × w × h  |  π (d ÷ 2)² h  |  cavities × volume each     # 1 in³ = 16.387064 mL
batch (g) = V × ρ × fill                                        # ρ ≈ 1.0 g/mL, calibrate
oils = batch ÷ (1 + lye/oil + water/oil + additives/oil + fragrance/oil)
for comparison: the "in³ × 0.4 oz" rule assumes full water and 5 % superfat
  • Volume of a rectangular prism V = l × w × h; of a cylinder V = π × (d ÷ 2)² × h. 1 in³ = 16.387064 mL.
  • Empirical default. Fresh cold-process soap batter has a density close to water, ≈ 0.95–1.0 g/mL; the community rule "in³ × 0.4 = oz of oils" implies about 0.69 g/mL of oils, which is ≈ 1.05 g/mL of batter at 38 % water and 5 % superfat. Calibrate by weighing a filled mold once. — Density varies with whipping, fragrance, temperature and how full the mold is poured. Treat the default as a starting point and calibrate.

Vloeibare zeep verdunnen

solids = oils + pure KOH                 # mass is conserved in saponification
paste concentration = solids ÷ paste × 100
water to add = solids ÷ (target ÷ 100) − paste
  • Conservation of mass in saponification: the soap and glycerol formed weigh exactly what the fat and hydroxide weighed. Solids in a paste are therefore taken as oils + pure lye; the remainder is water.
  • Failor, Catherine. Making Natural Liquid Soaps. Storey Publishing, 2000. Paste method, dilution ratios and sequestering.

Waar een afgeleid verzepingsgetal vandaan komt

40 oliën in de database hebben geen verzepingsgetal in een primair document dat we konden gebruiken. In plaats van ze weg te laten uit de calculator of een getal te verzinnen, wordt het getal berekend uit de eigen gemeten vetzuursamenstelling van de olie. Dat is geen gok: drie mol hydroxide verzepen één mol triglyceride, en de molmassa van het triglyceride volgt uit de ketenlengtes van de zuren erin. De samenstelling bepaalt de waarde.

De vraag is hoe nauwkeurig het is, en dat is meetbaar. De eerlijke toets is de Codex-subset van de database, 36 benoemde oliën waarvan het verzepingsbereik en de vetzuurbereiken door dezelfde instantie uit hetzelfde materiaal zijn gepubliceerd. Daartegen is de mediane absolute fout van de methode 0,84 %, het negentigste percentiel 2,44 % en het slechtste geval 3,57 %. De methode zit gemiddeld iets te hoog, met 0,55 %: ze gaat uit van zuiver vet, terwijl een ruwe olie wat onverzeepbare bestanddelen bevat die de gemeten waarde verlagen. Te hoog is de loogrijke kant, en de marge die een afgeleide waarde meekrijgt, dekt dat. Het mediane gepubliceerde bereik in dezelfde database is ±2,9 % van het eigen midden, dus een afgeleide waarde is ongeveer even goed bepaald als een waarde die uit een norm is afgelezen.

Gemeten tegen de rest van de database is de schijnbare fout groter: een mediaan van 1,7 % en een slechtste geval van 22 %. Dat is geen falen van de methode. De grootste verschillen zitten in dezelfde records die de consistentiecontrole al als intern tegenstrijdig markeert, waar een gepubliceerd verzepingsgetal naast een samenstelling staat die het niet kan opleveren. Een vergelijking daarmee haalt methodefouten en gegevensfouten door elkaar; daarom gebruikt de validatie alleen de Codex-subset.

Elke afgeleide waarde staat overal waar die verschijnt als afgeleid aangeduid, krijgt een marge van ±3 % mee in het onzekerheidspaneel, en wordt volledig terzijde gelegd zodra je een gemeten waarde van je eigen partij invult.

Waarom de loog een bereik heeft

Een verzepingsgetal is geen constante. Codex geeft kokosolie 248–265 mg KOH/g omdat het vet echt verschilt naar herkomst, seizoen en raffinage. Elke zeepcalculator verbergt dat door één getal met één decimaal te tonen, en dat is schijnprecisie: het getal lijkt een meting van jouw olie en is in werkelijkheid het midden van andermans onderzoek.

Doorgerekend komt de bandbreedte terecht bij het getal dat ertoe doet. De overvetting is de marge tussen een mild stuk zeep en een bijtend stuk, en precies die marge wordt door de onzekerheid opgegeten. Een recept met 3 % overvetting op gewone olijf- en kokosolie kan in werkelijkheid overal tussen −0,2 % en 6 % uitkomen, en het negatieve uiteinde is een stuk zeep met te veel loog. Dat is geen reden om de berekening te wantrouwen; het is de reden dat het ambacht bij ongeveer 5 % overvetting is uitgekomen, en voor zover wij weten heeft geen enkele calculator ooit de berekening achter die gewoonte laten zien.

Elke olie tegelijk aan hetzelfde uiteinde van haar bereik nemen geeft een grens, geen betrouwbaarheidsinterval. Echte partijen zijn niet volmaakt gecorreleerd, dus de haalbare spreiding is smaller, en de berekening zegt niets over hoe waarschijnlijk elk van beide uitersten is. Alleen een meting brengt haar terug: vul het verzepingsgetal in van het analysecertificaat van je partij en die olie draagt helemaal geen onzekerheid meer bij.

Conventies die we conventies noemen

De vijf ‘zeepeigenschappen’ zijn sommen van vetzuurgroepen, vergeleken met bandbreedtes die hobbycalculators sinds het midden van de jaren 2000 gebruiken. Ze zijn nuttig om recepten te vergelijken en nutteloos om een echt stuk zeep te voorspellen: ze negeren overvetting, water, rijping, toevoegingen en proces, en behandelen elk zuur in een groep als gelijk. De standaard van 38 % ‘volledig water’ en de ‘× 0,4’-regel voor mallen zijn gewoontes, geen scheikunde. We rekenen ze allemaal exact uit, omdat makers in die taal vergelijken, en we zeggen erbij wat ze zijn.

Hoor het als er iets nieuws verschijnt

Een kort bericht zodra er iets nieuws verschijnt. Geen nieuwsbrief, niets te koop, met één klik afgemeld.