Gleichung korrigiert
This commit is contained in:
+121
-57
@@ -123,8 +123,17 @@ Wobei $\alpha_S$ normalerweise immer bei 3° liegt und $\alpha_F$ von 3,6,9,12,1
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Förderer-Berechnung in 2D – Markdown-Ausgabe
|
||||
=============================================
|
||||
Förderer-Berechnung in 2D – beide Fälle
|
||||
====================================================
|
||||
Aufwärts (H1 > H0):
|
||||
ΔH = H1 - H0
|
||||
L_F = (ΔH + H_ES + H_AS + L_rest·tan(α_S)) / (tan(α_F) + tan(α_S))
|
||||
Probe: H_F - H_S - H_ES - H_AS = ΔH
|
||||
|
||||
Abwärts (H0 > H1):
|
||||
ΔH = H0 - H1
|
||||
L_F = (ΔH - H_ES - H_AS - L_rest·tan(α_S)) / (tan(α_F) - tan(α_S))
|
||||
Probe: H_ES + H_F + H_S + H_AS = ΔH
|
||||
"""
|
||||
|
||||
import math
|
||||
@@ -144,21 +153,52 @@ ALPHA_S = 3.0
|
||||
ALPHA_F_LIST = [3, 6, 9, 12, 15, 18, 24, 27, 33, 39, 45, 51]
|
||||
|
||||
|
||||
def berechne(delta_h, l1, l_es, h_es, l_as, h_as, alpha_f_deg, alpha_s_deg):
|
||||
def berechne(h0, h1, l1, l_es, h_es, l_as, h_as, alpha_f_deg, alpha_s_deg):
|
||||
"""
|
||||
Berechnet L_F, L_S, H_F, H_S.
|
||||
Unterscheidet automatisch aufwärts/abwärts anhand h0 vs h1.
|
||||
"""
|
||||
alpha_f = math.radians(alpha_f_deg)
|
||||
alpha_s = math.radians(alpha_s_deg)
|
||||
tan_f = math.tan(alpha_f)
|
||||
tan_s = math.tan(alpha_s)
|
||||
l_rest = l1 - l_es - l_as
|
||||
|
||||
if abs(tan_f - tan_s) < 1e-12:
|
||||
if h1 >= h0:
|
||||
# === AUFWÄRTS ===
|
||||
# (2): H1 - H0 = H_F - H_S - H_ES - H_AS
|
||||
delta_h = h1 - h0
|
||||
nenner = tan_f + tan_s
|
||||
if abs(nenner) < 1e-12:
|
||||
return None
|
||||
zaehler = (delta_h + h_es + h_as) + l_rest * tan_s
|
||||
fall = "aufwärts"
|
||||
else:
|
||||
# === ABWÄRTS ===
|
||||
# (2): H0 - H1 = H_ES + H_F + H_S + H_AS
|
||||
delta_h = h0 - h1
|
||||
nenner = tan_f - tan_s
|
||||
if abs(nenner) < 1e-12:
|
||||
return None
|
||||
zaehler = (delta_h - h_es - h_as) - l_rest * tan_s
|
||||
fall = "abwärts"
|
||||
|
||||
l_f = (delta_h - h_es - h_as - l_rest * tan_s) / (tan_f - tan_s)
|
||||
l_f = zaehler / nenner
|
||||
l_s = l_rest - l_f
|
||||
h_f = l_f * tan_f
|
||||
h_s = l_s * tan_s
|
||||
return {"L_F": l_f, "L_S": l_s, "H_F": h_f, "H_S": h_s}
|
||||
|
||||
# Gegenprobe
|
||||
if fall == "aufwärts":
|
||||
probe = h_f - h_s - h_es - h_as # soll = H1-H0
|
||||
else:
|
||||
probe = h_es + h_f + h_s + h_as # soll = H0-H1
|
||||
|
||||
return {
|
||||
"L_F": l_f, "L_S": l_s,
|
||||
"H_F": h_f, "H_S": h_s,
|
||||
"fall": fall, "delta_h": delta_h, "probe": probe,
|
||||
}
|
||||
|
||||
|
||||
def validierung(erg):
|
||||
@@ -166,33 +206,52 @@ def validierung(erg):
|
||||
for key in ("L_F", "L_S", "H_F", "H_S"):
|
||||
if erg[key] < 0:
|
||||
probleme.append(f"{key} < 0")
|
||||
# L_F und L_S dürfen auch nicht > L_rest sein (implizit durch L_S < 0)
|
||||
return (len(probleme) == 0, probleme)
|
||||
|
||||
|
||||
def md_tabelle(fall_name, h_anfang, h_ende):
|
||||
"""Erzeugt eine Markdown-Tabelle. ΔH = |H_Ende - H_Anfang| (immer positiv)."""
|
||||
delta_h = abs(h_ende - h_anfang)
|
||||
def md_tabelle(fall_name, h0_val, h1_val):
|
||||
"""Erzeugt Markdown-Tabelle. Fall wird aus h0/h1 abgeleitet."""
|
||||
l_rest = L1 - L_ES - L_AS
|
||||
delta_h = abs(h1_val - h0_val)
|
||||
richtung = "aufwärts" if h1_val >= h0_val else "abwärts"
|
||||
|
||||
lines = []
|
||||
lines.append(f"### {fall_name}")
|
||||
lines.append(f"H_Anfang = {h_anfang:.3f} m, H_Ende = {h_ende:.3f} m, "
|
||||
f"ΔH = {delta_h:+.4f} m\n")
|
||||
lines.append("| α_F [°] | L_F [m] | L_S [m] | H_F [m] | H_S [m] | Status |")
|
||||
lines.append("|--------:|--------:|--------:|--------:|--------:|--------|")
|
||||
lines.append(f"H₀ = {h0_val:.3f} m, H₁ = {h1_val:.3f} m → **{richtung}**, "
|
||||
f"ΔH = {delta_h:.4f} m, L_rest = {l_rest:.3f} m\n")
|
||||
|
||||
if richtung == "aufwärts":
|
||||
lines.append("Formel: L_F = (ΔH + H_ES + H_AS + L_rest·tan α_S) / "
|
||||
"(tan α_F **+** tan α_S)")
|
||||
lines.append("")
|
||||
lines.append("Probe: H_F − H_S − H_ES − H_AS = ΔH\n")
|
||||
else:
|
||||
lines.append("Formel: L_F = (ΔH − H_ES − H_AS − L_rest·tan α_S) / "
|
||||
"(tan α_F **−** tan α_S)")
|
||||
lines.append("")
|
||||
lines.append("Probe: H_ES + H_F + H_S + H_AS = ΔH\n")
|
||||
|
||||
lines.append("| α_F [°] | L_F [m] | L_S [m] | H_F [m] | H_S [m] | Probe | Status |")
|
||||
lines.append("|--------:|--------:|--------:|--------:|--------:|------:|--------|")
|
||||
|
||||
for alpha_f_deg in ALPHA_F_LIST:
|
||||
erg = berechne(delta_h, L1, L_ES, H_ES, L_AS, H_AS, alpha_f_deg, ALPHA_S)
|
||||
erg = berechne(h0_val, h1_val, L1, L_ES, H_ES, L_AS, H_AS,
|
||||
alpha_f_deg, ALPHA_S)
|
||||
if erg is None:
|
||||
lines.append(f"| {alpha_f_deg} | — | — | — | — | ⚠ α_F = α_S |")
|
||||
lines.append(f"| {alpha_f_deg} | — | — | — | — | — | ⚠ Nenner = 0 |")
|
||||
continue
|
||||
|
||||
gueltig, probleme = validierung(erg)
|
||||
status = "✓ gültig" if gueltig else f"✗ {', '.join(probleme)}"
|
||||
|
||||
lines.append(
|
||||
f"| {alpha_f_deg} "
|
||||
f"| {erg['L_F']:.4f} "
|
||||
f"| {erg['L_S']:.4f} "
|
||||
f"| {erg['H_F']:.4f} "
|
||||
f"| {erg['H_S']:.4f} "
|
||||
f"| {erg['probe']:.4f} "
|
||||
f"| {status} |"
|
||||
)
|
||||
lines.append("")
|
||||
@@ -202,6 +261,7 @@ def md_tabelle(fall_name, h_anfang, h_ende):
|
||||
def main():
|
||||
md = []
|
||||
md.append("# Förderer-Berechnung (2D-Modell)\n")
|
||||
|
||||
md.append("## Gegebene Werte\n")
|
||||
md.append("| Parameter | Wert |")
|
||||
md.append("|-----------|-----:|")
|
||||
@@ -214,27 +274,23 @@ def main():
|
||||
md.append(f"| H_AS | {H_AS:.3f} m |")
|
||||
md.append(f"| α_S | {ALPHA_S:.1f}° |")
|
||||
md.append("")
|
||||
|
||||
md.append("## Ergebnisse\n")
|
||||
|
||||
# Fall 1: aufwärts – von H0 nach H1
|
||||
md.append(md_tabelle("Aufwärts (H₀ → H₁)", h_anfang=H0, h_ende=H1))
|
||||
# Fall 1: Aufwärts – H0=2 → H1=5
|
||||
md.append(md_tabelle("Fall 1: Aufwärts", h0_val=H0, h1_val=H1))
|
||||
|
||||
# Fall 2: abwärts – von H1 nach H0, ΔH ebenfalls +3.0
|
||||
md.append(md_tabelle("Abwärts (H₁ → H₀)", h_anfang=H1, h_ende=H0))
|
||||
# Fall 2: Abwärts – H0=5 → H1=2 (vertauscht!)
|
||||
md.append(md_tabelle("Fall 2: Abwärts", h0_val=H1, h1_val=H0))
|
||||
|
||||
result = "\n".join(md)
|
||||
|
||||
with open("/mnt/user-data/outputs/foerderer_ergebnisse.md", "w", encoding="utf-8") as f:
|
||||
f.write(result)
|
||||
|
||||
print(result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
```
|
||||
# Förderer-Berechnung (2D-Modell)
|
||||
|
||||
# Förderer-Berechnung
|
||||
## Gegebene Werte
|
||||
|
||||
| Parameter | Wert |
|
||||
@@ -250,38 +306,46 @@ if __name__ == "__main__":
|
||||
|
||||
## Ergebnisse
|
||||
|
||||
### Aufwärts (H₀ → H₁)
|
||||
H_Anfang = 2.000 m, H_Ende = 5.000 m, ΔH = +3.0000 m
|
||||
### Fall 1: Aufwärts
|
||||
H₀ = 2.000 m, H₁ = 5.000 m → **aufwärts**, ΔH = 3.0000 m, L_rest = 6.000 m
|
||||
|
||||
| α_F [°] | L_F [m] | L_S [m] | H_F [m] | H_S [m] | Status |
|
||||
|--------:|--------:|--------:|--------:|--------:|--------|
|
||||
| 3 | — | — | — | — | ⚠ α_F = α_S |
|
||||
| 6 | 39.5767 | -33.5767 | 4.1597 | -1.7597 | ✗ L_S < 0, H_S < 0 |
|
||||
| 9 | 19.6794 | -13.6794 | 3.1169 | -0.7169 | ✗ L_S < 0, H_S < 0 |
|
||||
| 12 | 13.0226 | -7.0226 | 2.7680 | -0.3680 | ✗ L_S < 0, H_S < 0 |
|
||||
| 15 | 9.6759 | -3.6759 | 2.5926 | -0.1926 | ✗ L_S < 0, H_S < 0 |
|
||||
| 18 | 7.6531 | -1.6531 | 2.4866 | -0.0866 | ✗ L_S < 0, H_S < 0 |
|
||||
| 24 | 5.3092 | 0.6908 | 2.3638 | 0.0362 | ✓ gültig |
|
||||
| 27 | 4.5624 | 1.4376 | 2.3247 | 0.0753 | ✓ gültig |
|
||||
| 33 | 3.4934 | 2.5066 | 2.2686 | 0.1314 | ✓ gültig |
|
||||
| 39 | 2.7537 | 3.2463 | 2.2299 | 0.1701 | ✓ gültig |
|
||||
| 45 | 2.2009 | 3.7991 | 2.2009 | 0.1991 | ✓ gültig |
|
||||
| 51 | 1.7637 | 4.2363 | 2.1780 | 0.2220 | ✓ gültig |
|
||||
Formel: L_F = (ΔH + H_ES + H_AS + L_rest·tan α_S) / (tan α_F **+** tan α_S)
|
||||
|
||||
### Abwärts (H₁ → H₀)
|
||||
H_Anfang = 5.000 m, H_Ende = 2.000 m, ΔH = +3.0000 m
|
||||
Probe: H_F − H_S − H_ES − H_AS = ΔH
|
||||
|
||||
| α_F [°] | L_F [m] | L_S [m] | H_F [m] | H_S [m] | Status |
|
||||
|--------:|--------:|--------:|--------:|--------:|--------|
|
||||
| 3 | — | — | — | — | ⚠ α_F = α_S |
|
||||
| 6 | 39.5767 | -33.5767 | 4.1597 | -1.7597 | ✗ L_S < 0, H_S < 0 |
|
||||
| 9 | 19.6794 | -13.6794 | 3.1169 | -0.7169 | ✗ L_S < 0, H_S < 0 |
|
||||
| 12 | 13.0226 | -7.0226 | 2.7680 | -0.3680 | ✗ L_S < 0, H_S < 0 |
|
||||
| 15 | 9.6759 | -3.6759 | 2.5926 | -0.1926 | ✗ L_S < 0, H_S < 0 |
|
||||
| 18 | 7.6531 | -1.6531 | 2.4866 | -0.0866 | ✗ L_S < 0, H_S < 0 |
|
||||
| 24 | 5.3092 | 0.6908 | 2.3638 | 0.0362 | ✓ gültig |
|
||||
| 27 | 4.5624 | 1.4376 | 2.3247 | 0.0753 | ✓ gültig |
|
||||
| 33 | 3.4934 | 2.5066 | 2.2686 | 0.1314 | ✓ gültig |
|
||||
| 39 | 2.7537 | 3.2463 | 2.2299 | 0.1701 | ✓ gültig |
|
||||
| 45 | 2.2009 | 3.7991 | 2.2009 | 0.1991 | ✓ gültig |
|
||||
| 51 | 1.7637 | 4.2363 | 2.1780 | 0.2220 | ✓ gültig |
|
||||
| α_F [°] | L_F [m] | L_S [m] | H_F [m] | H_S [m] | Probe | Status |
|
||||
|--------:|--------:|--------:|--------:|--------:|------:|--------|
|
||||
| 3 | 37.3460 | -31.3460 | 1.9572 | -1.6428 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 6 | 24.8517 | -18.8517 | 2.6120 | -0.9880 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 9 | 18.5702 | -12.5702 | 2.9412 | -0.6588 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 12 | 14.7735 | -8.7735 | 3.1402 | -0.4598 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 15 | 12.2190 | -6.2190 | 3.2741 | -0.3259 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 18 | 10.3741 | -4.3741 | 3.3708 | -0.2292 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 24 | 7.8661 | -1.8661 | 3.5022 | -0.0978 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 27 | 6.9660 | -0.9660 | 3.5494 | -0.0506 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 33 | 5.5776 | 0.4224 | 3.6221 | 0.0221 | 3.0000 | ✓ gültig |
|
||||
| 39 | 4.5401 | 1.4599 | 3.6765 | 0.0765 | 3.0000 | ✓ gültig |
|
||||
| 45 | 3.7195 | 2.2805 | 3.7195 | 0.1195 | 3.0000 | ✓ gültig |
|
||||
| 51 | 3.0408 | 2.9592 | 3.7551 | 0.1551 | 3.0000 | ✓ gültig |
|
||||
|
||||
### Fall 2: Abwärts
|
||||
H₀ = 5.000 m, H₁ = 2.000 m → **abwärts**, ΔH = 3.0000 m, L_rest = 6.000 m
|
||||
|
||||
Formel: L_F = (ΔH − H_ES − H_AS − L_rest·tan α_S) / (tan α_F **−** tan α_S)
|
||||
|
||||
Probe: H_ES + H_F + H_S + H_AS = ΔH
|
||||
|
||||
| α_F [°] | L_F [m] | L_S [m] | H_F [m] | H_S [m] | Probe | Status |
|
||||
|--------:|--------:|--------:|--------:|--------:|------:|--------|
|
||||
| 3 | — | — | — | — | — | ⚠ Nenner = 0 |
|
||||
| 6 | 39.5767 | -33.5767 | 4.1597 | -1.7597 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 9 | 19.6794 | -13.6794 | 3.1169 | -0.7169 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 12 | 13.0226 | -7.0226 | 2.7680 | -0.3680 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 15 | 9.6759 | -3.6759 | 2.5926 | -0.1926 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 18 | 7.6531 | -1.6531 | 2.4866 | -0.0866 | 3.0000 | ✗ L_S < 0, H_S < 0 |
|
||||
| 24 | 5.3092 | 0.6908 | 2.3638 | 0.0362 | 3.0000 | ✓ gültig |
|
||||
| 27 | 4.5624 | 1.4376 | 2.3247 | 0.0753 | 3.0000 | ✓ gültig |
|
||||
| 33 | 3.4934 | 2.5066 | 2.2686 | 0.1314 | 3.0000 | ✓ gültig |
|
||||
| 39 | 2.7537 | 3.2463 | 2.2299 | 0.1701 | 3.0000 | ✓ gültig |
|
||||
| 45 | 2.2009 | 3.7991 | 2.2009 | 0.1991 | 3.0000 | ✓ gültig |
|
||||
| 51 | 1.7637 | 4.2363 | 2.1780 | 0.2220 | 3.0000 | ✓ gültig |
|
||||
|
||||
Reference in New Issue
Block a user