Files
SSG-Ruledesigner-Konfigurator/Doku/variofoerderer.md
T

7.8 KiB
Raw Blame History

Gleichungen Förderer aufwärts

Varioförderer aufwärts violett ist F wie Förderer hellblau ist S wie Strecke AS ist Ausschleus- Element ES ist Einschleus- Element

Gegeben

H_0, H_1, L_1, \alpha_F, \alpha_S, L_{ES}, H_{ES}, L_{AS}, H_{AS}

Gesucht

L_F, L_S, H_F, H_S


Grundgleichungen (H_1 > H_0, Förderrichtung: von H_0 nach H_1)

(1) Horizontal:

L_1 = L_{ES} + L_F + L_S + L_{AS}

(2) Vertikal:

H_1 - H_0 = H_F - H_S - H_{ES} - H_{AS}

(3) Neigung F:

\tan(\alpha_F) = \frac{H_F}{L_F} \quad \Rightarrow \quad H_F = L_F \cdot \tan(\alpha_F)

(4) Neigung S:

\tan(\alpha_S) = \frac{H_S}{L_S} \quad \Rightarrow \quad H_S = L_S \cdot \tan(\alpha_S)

Lösung (Einsetzen von (3),(4) in (1),(2))

(I)

L_F + L_S = L_1 - L_{ES} - L_{AS}

(II)

L_F \cdot \tan(\alpha_F) - L_S \cdot \tan(\alpha_S) = (H_1 - H_0) + H_{ES} + H_{AS}

Ergebnis

L_F = \frac{(H_1 - H_0 + H_{ES} + H_{AS}) + (L_1 - L_{ES} - L_{AS}) \cdot \tan(\alpha_S)}{\tan(\alpha_F) + \tan(\alpha_S)} L_S = (L_1 - L_{ES} - L_{AS}) - L_F H_F = L_F \cdot \tan(\alpha_F) H_S = L_S \cdot \tan(\alpha_S)

Gleichungen Förderer abwärts

Varioförderer abwärts

Gegeben

H_0, H_1, L_1, \alpha_F, \alpha_S, L_{ES}, H_{ES}, L_{AS}, H_{AS}

Gesucht

L_F, L_S, H_F, H_S


Grundgleichungen (H_0 > H_1, Förderrichtung: von H_0 nach H_1)

(1) Horizontal:

L_1 = L_{ES} + L_F + L_S + L_{AS}

(2) Vertikal:

H_0 - H_1 = H_{ES} + H_F + H_S + H_{AS}

(3) Neigung F:

\tan(\alpha_F) = \frac{H_F}{L_F} \quad \Rightarrow \quad H_F = L_F \cdot \tan(\alpha_F)

(4) Neigung S:

\tan(\alpha_S) = \frac{H_S}{L_S} \quad \Rightarrow \quad H_S = L_S \cdot \tan(\alpha_S)

Lösung (Einsetzen von (3),(4) in (1),(2))

(I)

L_F + L_S = L_1 - L_{ES} - L_{AS}

(II)

L_F \cdot \tan(\alpha_F) + L_S \cdot \tan(\alpha_S) = (H_0 - H_1) - H_{ES} - H_{AS}

Ergebnis

L_F = \frac{(H_0 - H_1 - H_{ES} - H_{AS}) - (L_1 - L_{ES} - L_{AS}) \cdot \tan(\alpha_S)}{\tan(\alpha_F) - \tan(\alpha_S)} L_S = (L_1 - L_{ES} - L_{AS}) - L_F H_F = L_F \cdot \tan(\alpha_F) H_S = L_S \cdot \tan(\alpha_S)

Zusammenfassung

Wobei \alpha_S normalerweise immer bei 3° liegt und \alpha_F von 3,6,9,12,15.. 51° läuft.

#!/usr/bin/env python3
"""
Förderer-Berechnung in 2D  Markdown-Ausgabe
=============================================
"""
 
import math
 
# ============================================================
# KONSTANTEN [alle in Meter / Grad]
# ============================================================
H0   = 2.0
H1   = 5.0
L1   = 8.0
L_ES = 1.0
H_ES = 0.3
L_AS = 1.0
H_AS = 0.3
 
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):
    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:
        return None
 
    l_f = (delta_h - h_es - h_as - l_rest * tan_s) / (tan_f - tan_s)
    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}
 
 
def validierung(erg):
    probleme = []
    for key in ("L_F", "L_S", "H_F", "H_S"):
        if erg[key] < 0:
            probleme.append(f"{key} < 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)
 
    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("|--------:|--------:|--------:|--------:|--------:|--------|")
 
    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)
        if erg is None:
            lines.append(f"| {alpha_f_deg} | — | — | — | — | ⚠ α_F = α_S |")
            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"| {status} |"
        )
    lines.append("")
    return "\n".join(lines)
 
 
def main():
    md = []
    md.append("# Förderer-Berechnung (2D-Modell)\n")
    md.append("## Gegebene Werte\n")
    md.append("| Parameter | Wert |")
    md.append("|-----------|-----:|")
    md.append(f"| H₀ | {H0:.3f} m |")
    md.append(f"| H₁ | {H1:.3f} m |")
    md.append(f"| L₁ | {L1:.3f} m |")
    md.append(f"| L_ES | {L_ES:.3f} m |")
    md.append(f"| H_ES | {H_ES:.3f} m |")
    md.append(f"| L_AS | {L_AS:.3f} m |")
    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 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))
 
    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

Gegebene Werte

Parameter Wert
H₀ 2.000 m
H₁ 5.000 m
L₁ 8.000 m
L_ES 1.000 m
H_ES 0.300 m
L_AS 1.000 m
H_AS 0.300 m
α_S 3.0°

Ergebnisse

Aufwärts (H₀ → H₁)

H_Anfang = 2.000 m, H_Ende = 5.000 m, ΔH = +3.0000 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

Abwärts (H₁ → H₀)

H_Anfang = 5.000 m, H_Ende = 2.000 m, ΔH = +3.0000 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