Plato-Tabelle aufpoliert und eingetütet

Hier kommt alles rein, was woanders keinen Platz hat.
Antworten
MaHoHeWa
Posting Junior
Posting Junior
Beiträge: 47
Registriert: Montag 20. Januar 2014, 21:17

Plato-Tabelle aufpoliert und eingetütet

#1

Beitrag von MaHoHeWa »

Hallo

Ich habe mir die Mühe gemacht die Plato-Tabelle durchzuackern und sie ein wenig aufpoliert.
Im Gegenzug habe ich ein bischen programmieren gelernt und ein par Formeln erhalten.

Damit es nicht zu trocken wird gibt's vorher eine kleine Fragerunde (Auflösung weiter unten).
Was meint ihr, was stimmt?

Bitte richtige Aussagen ankreuzen:

Code: Alles auswählen

1. [ ] Jeder Hobbybrauer muss die Platotabelle kennen.
2. [ ] Die Tabelle listet Messwerte der Würze in verschiedenen Grössen.
3. [ ] Die Tabelle enthält die Werte der Dichte.
4. [ ] Die Tabelle enthält die Werte des Alkoholgehalts.
5. [ ] Die Tabelle enthält Werte, die zueinander nicht redundant sind (es werden alle Werte benötigt).
6. [ ] Die Tabelle ist korrekt.
7. [ ] Die Tabelle ist einfach zu verstehen.

Zuerst die Tabelle aus dem Wiki.

Mit den Werten aus der Tabelle kann man Formeln (Polynome) ermitteln.
Der resultierende Graf ist in den Abbildungen als grüne Linie dargestellt.
Die Messwerte sind die roten Punkte.
pl_hb_falsch.png
Da haben sich zwei Fehler eingeschlichen.
Der Graf der Formel wird in Richtung der falschen Werte gezogen.
pl_hb_falsch_det1.png
pl_hb_falsch_det2.png
Diagnose: Ein Vampirzahn und eine Zahnlücke

Polierte respektive korrigierte SL20/20 (alias SG) Werte:

Code: Alles auswählen

# [ 1.03936, 7.40, 7.60, 7.32 ], Falscher Wert!
[ 1.02936, 7.40, 7.60, 7.32 ], # Korrigierter Wert
# [ 1.05069, 14.90, 15.78, 15.17 ], Falscher Wert!
[ 1.06069, 14.90, 15.78, 15.17 ], # Korrigierter Wert
Mit den Korrekturen ergibt sich folgendes Bild.
pl_hb_korr.png
pl_hb_korr_det1.png
Sieht schon besser aus.

Ermittelte Formeln:

Code: Alles auswählen

# sg=f(plato)
def pol_plato_to_sg(x):
    return  1.00001624e+00          + \
            3.86827404e-03 * x      + \
            1.27008512e-05 * x ** 2 + \
            6.47776336e-08 * x ** 3

Code: Alles auswählen

# plato=f(sg)
def pol_sg_to_plato(x):
    return   -611.42611212          + \
             1095.54352295 * x      + \
             -615.37912267 * x ** 2 + \
              131.25736754 * x ** 3

Code: Alles auswählen

# plato=f(sg*plato)
def pol_sg_plato_to_plato(x):
    return  1.85601171e-04          + \
            9.99793104e-01 * x      + \
           -3.82474279e-03 * x ** 2 + \
            1.37050445e-05 * x ** 3
Wozu die dritte formel?
http://morebeer.com/brewingtechniques/l ... nning.html
The weight of extract, WE (as sucrose), per unit volume of solution can be calculated as
WE=degree P/100 SG r [5]
where r is the density of water at the reference temperature for specific gravity.
Die Formel ein weing umgestellt ergibt:

Code: Alles auswählen

P*SG = WE*100/r
Beispiel:
Angenommen ich habe 10kg Extrakt pro 100L Würze (10 vol%), wieviel ist das in Plato?

Code: Alles auswählen

plato=pol_sg_plato_to_plato(WE*100/r)
Fehlt "nur" noch die Dichte von Wasser bei 20°C.

Aber, die Dichte von Wasser ist Variabel!
Sie hängt nicht nur von der Temperatur, sondern auch von der Zeit ab.
Stichwort IPTS-68 und ITS-90
Zu welcher Zeit wurden die Plato Tabellen erstellt?
Wer weiss.

Mit dem ITS-90 Wert ergibt sich:

Code: Alles auswählen

In [1]: d_h2o_20_its_90
Out[1]: 0.998203

In [2]: pol_sg_plato_to_plato(10.0/100.0*100.0/d_h2o_20_its_90)
Out[2]: 9.64604185578647
9.65 °Plato = 10%vol

Die entsprechnden Einträge in der Platotabelle:
2. Spalte ist Plato, 3. Spalte ist %vol

Code: Alles auswählen

[ 1.03837, 9.60,  9.95, 9.57 ],
[ 1.03880, 9.70, 10.06, 9.68 ],
Alles bestens.

Ps: Danke an Oli für die letzten zwei Links.


Dann habe ich noch diese Tabelle gefunden:
Schwieriger zu transkribieren und zu korrigieren.

Veranschaulicht:
pl_ts_falsch.png
pl_ts_falsch_det.png
Diagnose: Zahnspannge benötigt

Korrigierte SL20/20 (alias SG) Werte

Code: Alles auswählen

[ 1.02329, 5.9, 6.03, 5.79 ],    # ???
[ 1.05897, 14.5, 15.33, 14.72 ], # ???
[ 1.06241, 15.3, 16.22, 15.57 ], # ???
[ 1.06370, 15.6, 16.56, 15.90 ], # ???
[ 1.06672, 16.3, 17.36, 16.67 ], # ???
[ 1.06977, 17.0, 18.15, 17.42 ], # ???
[ 1.07107, 17.3, 18.50, 17.76 ], # ???
[ 1.07370, 17.9, 19.18, 18.41 ], # ???
Anmerkung:
Die Grenze zwischen Korrektur und Manipulation ist hier nicht klar.
Ich hoffe das Erstere ist der Fall.

Ermittelte Formeln:

Code: Alles auswählen

# sg=f(plato)
def pol2_plato_to_sg(x):
    return  1.00001576e+00          + \
            3.86788020e-03 * x      + \
            1.27600689e-05 * x ** 2 + \
            6.26940739e-08 * x ** 3

Code: Alles auswählen

# plato=f(sg)
def pol2_sg_to_plato(x):
    return   -619.27526997          + \
             1118.23469217 * x      + \
             -637.23504817 * x ** 2 + \
              138.27142438 * x ** 3

Code: Alles auswählen

# plato=f(sg*plato)
def pol2_sg_plato_to_plato(x):
    return  1.86330390e-04          + \
            9.99794236e-01 * x      + \
           -3.82481650e-03 * x ** 2 + \
            1.37060306e-05 * x ** 3
:zzz Aufwachen!

Und noch die Auflösung der Fragen (Oder auch: Meine Meinung):

Code: Alles auswählen

1. [ ] Jeder Hobbybrauer muss die Platotabelle kennen.
    -  Nein, die verfügbaren Programme leisten gute Dienste.
       Wer aber nicht weiss was die Werte bedeuten zieht den Kürzeren

2. [ ] Die Tabelle listet Messwerte der Würze in verschiedenen Grössen.
    -  Nein, die Tabelle listet Messwerte einer Wasser-Zucker Lösung.

3. [ ] Die Tabelle enthält die Werte der Dichte.
    -  Nein die relativen Dichten, SL20/20 sind gelistet.

4. [ ] Die Tabelle enthält die Werte des Alkoholgehalts.
    -  Nein, es lässt sich aber die Menge des Extraktes berechnen.
       Daraus lässt sich der potentielle Alkoholgehalt errechnen (für die Biersteuer).

5. [ ] Die Tabelle enthält Werte, die zueinander nicht redundant sind (es werden alle Werte benötigt).
    -  Nein, Spalte 3 und 4 sind ableitbare Werte

6. [ ] Die Tabelle ist korrekt.
    -  Ich denke nicht, dass die Tabelle falsch ist.
       Es wurden wahrscheinlich Fehler bei der Übertragung gemacht.
       In dem Sinne sind die verlinkten Tabellen nicht korrekt.

7. [ ] Die Tabelle ist einfach zu verstehen.
    -  Klar doch!
So, was habe ich nun in meiner Tüte?
- Sechs Formeln zur Plato-Tabelle.
- Verschiedene Werte für die Dichte von Wasser bei 20°C.

Mal sehen, wenn ich die schön in ein Programm verpacke, kommt vieleicht was nützliches dabei heraus...

Gruss
Kolja
Benutzeravatar
olibaer
Posting Freak
Posting Freak
Beiträge: 2889
Registriert: Dienstag 6. April 2004, 00:49
Kontaktdaten:

Re: Plato-Tabelle aufpoliert und eingetütet

#2

Beitrag von olibaer »

Hallo Kolja,

PlatoGames, hm ? :Wink

hier kannst Du Dir "meine Platotabelle" als Stück Software runterladen. Sie wurde aus dem Brew Recipe Developer entkoppelt.
Die Polynome arbeiten zwischen 0-50 GG%[g/100g] auf 5 Nachkommastellen genau.

Hier und hier findest Du weiterführende Informationen dazu. Quellcode gibt es leider keinen :Smile

Gruß
Oli
Gruss
Oli
_____________________________
Brauwasser - hier entlang
Gärschwierigkeiten - hier entlang
Grundlagen Karbonisierung - hier entlang
Rezeptberatung - hier entlang
Google Forensuche - hier entlang
MaHoHeWa
Posting Junior
Posting Junior
Beiträge: 47
Registriert: Montag 20. Januar 2014, 21:17

Re: Plato-Tabelle aufpoliert und eingetütet

#3

Beitrag von MaHoHeWa »

Hallo Oli

Ich wusste nicht das deine Platotabelle unter mono laufen sollte.
Hab's gleich mal ausprobiert, bin aber gescheitert.
Schlussendlich habe ich es mit wine zum laufen gebracht.

Dank der Exportfunktion habe ich jetzt Polynome, die ähnlich genau sind, wie deine. :Greets

Die Links zur Brew Recipe Developer Dokumentation kenn ich schon.
"Die Stammwürze im Detail" ist für mich Die Referenz.

Trotzdem stolpere ich immer wieder beim Begriff "Dichte p 20/4°C".
Gemeint ist doch die "relative Dichte 20/4°C", wenn ich es richtig verstehe, oder?

Danke und Gruss
Kolja
Benutzeravatar
olibaer
Posting Freak
Posting Freak
Beiträge: 2889
Registriert: Dienstag 6. April 2004, 00:49
Kontaktdaten:

Re: Plato-Tabelle aufpoliert und eingetütet

#4

Beitrag von olibaer »

Hallo Kolja
MaHoHeWa hat geschrieben:Hallo Oli
Ich wusste nicht das deine Platotabelle unter mono laufen sollte.
Hab's gleich mal ausprobiert, bin aber gescheitert.
Schlussendlich habe ich es mit wine zum laufen gebracht.
Naja, immerhin hast Du das Ding ans Fliegen gebracht :thumbup
MaHoHeWa hat geschrieben:Dank der Exportfunktion habe ich jetzt Polynome, die ähnlich genau sind, wie deine. :Greets
Höchst ehrbares Vorgehen. Andere hätten vielleicht versucht den Quellcode zu decompilieren :Wink . Es sei Dir gegönnt :Smile
MaHoHeWa hat geschrieben:Die Links zur Brew Recipe Developer Dokumentation kenn ich schon.
"Die Stammwürze im Detail" ist für mich Die Referenz.
Oh. Danke :Smile
MaHoHeWa hat geschrieben:Trotzdem stolpere ich immer wieder beim Begriff "Dichte p 20/4°C".
Gemeint ist doch die "relative Dichte 20/4°C", wenn ich es richtig verstehe, oder?
Ja richtig. Umgangssprachlich wird gerne auf das "relativ" verzichtet, aber "Dichte" vorangestellt - auch manchmal von mir :redhead

Gruß
Oli
Gruss
Oli
_____________________________
Brauwasser - hier entlang
Gärschwierigkeiten - hier entlang
Grundlagen Karbonisierung - hier entlang
Rezeptberatung - hier entlang
Google Forensuche - hier entlang
Antworten