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

287 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Gleichungen Förderer aufwärts
![Varioförderer aufwärts](bilder/Variofoerderer_aufwaerts.svg)
**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](bilder/Variofoerderer_abwaerts.svg)
## 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.
```python
#!/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 |