Skip to content

LZB 80: Bremsweg-Simulation mit zugspezifischer Verzögerung - #21

Merged
vanlueckn merged 1 commit into
mainfrom
t3code/docs-lzb-braking-curve-simulation
Aug 14, 2026
Merged

LZB 80: Bremsweg-Simulation mit zugspezifischer Verzögerung#21
vanlueckn merged 1 commit into
mainfrom
t3code/docs-lzb-braking-curve-simulation

Conversation

@vanlueckn

Copy link
Copy Markdown
Collaborator

Summary

  • LZB-Mittelpunkt implementiert: authority()-Funktion baut Bewegungsbefugnisse aus Leitungstopologie und Stellwerksstate auf – läuft zu Grenzen, die nicht frei sind (besetzte Blockabschnitte oder Signals im Halt)
  • Bremsweg train-spezifisch: Verzögerung folgt BRH (Bremsgewichtssatz) und BRA (Bremskraftaufbauzeit) statt fest – oberhalb 150 km/h fallende Kurve mit Adhäsionsmodell
  • BlockMarker als Liniendata: Blockaufteilung ist eine Eigenschaft der Strecke, keine Sendungsvariable – Full/Partial Mode ergibt sich automatisch aus Vorhandensein von Blockmarkern
  • LzbSection neu: Payload der LineConductor-Geräte (Länge, CIR-ELKE-Flag, Bereichsende) statt Telegramm
  • Lookahead nach sim-core: Shared mit KI-Fahrer und LZB-Zentrum; erfasst nun auch Blockgrenzen
  • Test-Abdeckung: Sechs neue Szenarien für Mittelpunkt-Logik (Blockbesetzung, Blockaufteilung, Geschwindigkeitsbeschränkungen, Full/Partial Mode)
  • Dokumentation: README und MODS.md aktualisiert; STATUS.md detailliert Bremskurve und Vereinfachungen

Testing

  • cargo test -p sim-core – Bremsweg-Mathematik mit BRH-Varianten
  • cargo test -p content::lzb_centre – LZB-Zentrum mit 6 Szenarien:
    • Autorität endet an besetztem Block
    • Blockaufteilung aus Linienmarkern
    • Geschwindigkeitsbeschränkung wird Ziel
    • Train in Echtzeit-Simulation mit Übernahme
    • Signal im Halt endet Autorität (Partial Mode)
  • cargo run -p app -- --line example:beispielstrecke – Musterbahn lädt mit neuer Topologie (4 km LZB-Bereich, Blockmarker)
  • cargo test --workspace – Alle 240 Tests grün, Clippy OK

- Refactor LZB centre: movement authority now built from line data and interlocking state
  rather than telegram payload. Block division falls out of BlockMarker devices.
- Add train-specific deceleration to LzbTelegram: derives from brake percentage (BRH),
  brake apply time (BRA), and speed-dependent falloff above 150 km/h.
- Split line conductor payload: LzbSection (cable properties) separate from LzbTelegram
  (movement authority). Centre regenerates authority each step, so signals stopping ahead
  shorten it at once.
- Introduce BlockMarkerPayload for block boundaries. Block mode (Full/Partial) is no longer
  a setting—determined by presence of BlockMarker devices in the line.
- Move lookahead from ai-driver to sim-core; add block boundary scanning for LZB centre use.
- Add lzb_centre integration test: authority ends at occupied blocks, respects block markers,
  handles signal stops, and tracks train running through the area.
- Update Musterbahn demo: add block markers to sections 1 and 2, extend line conductor
  over edge 1 (full block mode), document the mechanism in MODS.md and README.
@vanlueckn
vanlueckn merged commit 18becdc into main Aug 14, 2026
2 of 3 checks passed
@vanlueckn
vanlueckn deleted the t3code/docs-lzb-braking-curve-simulation branch August 14, 2026 00:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant