From a359040f4eaa8faf20322810baee6b361d34daeb Mon Sep 17 00:00:00 2001 From: Wolfgang Nowak Date: Thu, 27 Oct 2022 10:31:34 +0200 Subject: [PATCH] Benzinrechner - berechnet CO2bilanz von Autofahrten 1.0 --- benzinrechner.py | 67 ++++++++++++++++++++++++++++++++++++++++++++ minibenzinrechner.py | 28 ++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100755 benzinrechner.py create mode 100755 minibenzinrechner.py diff --git a/benzinrechner.py b/benzinrechner.py new file mode 100755 index 0000000..f15ea51 --- /dev/null +++ b/benzinrechner.py @@ -0,0 +1,67 @@ +#!/usr/bin/python3 +""" + +Berechnet den Benzinverbrauch auf der Basis von Octan. Je nach Treibstoffart und Motortyp können die realen Werte +- 20% abweichen, dieses Programm +liefert aber für den Alltag brauchbare Anhaltswerte. +1 Joule = 1 Wattsekunde = 1 Newtonmeter +1 Joule wird benötigt, um 100 g um 1 Meter anzuheben. +1 Joule = 0,2388 Kalorien +""" + +# N-Octan = C8H18 mit Dichte 0.7 +carbonatome_pro_mol = 8 +hydrogenatome_pro_mol = 18 +cgewicht = 12 # Atomgewicht Kohlenstoff +hgewicht = 1 # Atomgewicht Wasserstoff +ogewicht = 16 # Atomgewicht Sauerstoff +molgewco2 = 44 # Molekulargewicht CO2 +molgewicht = carbonatome_pro_mol * cgewicht + hydrogenatome_pro_mol * hgewicht +strecke = 0 +radfahrcalkm = 20 +literprokm = 0 +dichte = 0.7 +kalorienfaktor = 9000 # kCal pro Kilogramm Sprit +print( + "Berechnet den Benzinverbrauch auf der Basis von Octan.\nJe nach Treibstoffart und Motortyp können die realen Werte +- 20% abweichen, dieses Programm liefert aber für den Alltag brauchbare Anhaltswerte." +) +literprokm = float(input("Wieviele Liter/100km braucht die Karre? ")) / 100 + +strecke = float(input("Wieviele Kilometer willst du fahren? ")) +gesamtverbrauch = strecke * literprokm +spritgewicht = strecke * literprokm * dichte + +# Gewichtsverhältnis C zu CO2 +gainco2 = (cgewicht + 2 * ogewicht) / cgewicht + +# Gewichtsverhältnis H zu H2O +gainh2o = (2 * hgewicht + ogewicht) / 2 * hgewicht + +# Von C8H18 sind 8*12/(8*12+18) ~~ 84.2 Gewichtsprozent C und 18/(8*12+18) ~~15.8 Gewichtsprozent H +prozent_c = carbonatome_pro_mol * cgewicht / molgewicht +prozent_h = hydrogenatome_pro_mol * hgewicht / molgewicht +co2 = spritgewicht * prozent_c * gainco2 +h2o = spritgewicht * prozent_h * gainh2o +# 200 kCal ---> 10 km Radfahren +kalorienverbrauch = spritgewicht * kalorienfaktor +radtourstrecke = kalorienverbrauch / radfahrcalkm + +# Avogadro: 1 Molekülgewicht in Gramm bei Gasen und 20°C braucht 22.4 Liter +# CO2 hat 44 +co2volume = co2 / molgewco2 * 22.4 * 1000 +print( + "Das verbraucht\n ", + gesamtverbrauch, + "Liter \nbzw\n", + spritgewicht, + "kg Sprit \nund erzeugt\n", + int(co2 * 1000) / 1000, + " kg co2\nmit einem Gesamtvolumen von", + int(co2volume) / 1000, + " m³ \nund\n", + int(h2o * 1000) / 1000, + " kg Wasser.\nFür Nahrung umgerechnet auf Kilokalorien wären das etwa ", + kalorienverbrauch, + "kCal.\nEin Mensch benötigt über den Tag etwa 2000 kCal, 10 km Radfahren auf flachem Land etwa 200.\nDer Sprit, würde, wäre es anders produziert, als Nahrung für ", + radtourstrecke, + "km ausreichen.\nLass es. Iss lieber was Leckeres und nimm das Rad. Oder iss nix und geh zu Fuß, wolltest doch eh abnehmen.", +) diff --git a/minibenzinrechner.py b/minibenzinrechner.py new file mode 100755 index 0000000..6168294 --- /dev/null +++ b/minibenzinrechner.py @@ -0,0 +1,28 @@ +#!/usr/bin/python3 +cp, hp, cg, hg, og, m2, m3 = 8, 18, 12, 1, 16, 44, 1000 +mw = cp * cg + hp * hg +dc = 0.7 +lk = float(input("Liter/100km? ")) / 100 +st = float(input("Strecke? ")) +gv = st * lk +sw = gv * dc +gc2 = (cg + 2 * og) / cg +gh2 = (2 * hg + og) / 2 * hg +p_c = cp * cg / mw +p_h = hp * hg / mw +co2 = sw * p_c * gc2 +h2o = sw * p_h * gh2 +cvl = co2 / m2 * 22.4 * m3 +print( + "", + gv, + "l", + sw, + "kg Sprit\n", + int(co2 * m3) / m3, + "kg", + int(cvl) / m3, + "m³ CO2\n", + int(h2o * m3) / m3, + "kg H2O", +)