added translation into english, transformed into neutral design

master v0.4
railtoolkit 2018-11-22 15:28:16 +01:00
parent 033ec850e5
commit 711330a841
28 changed files with 943 additions and 349 deletions

21
.gitignore vendored
View File

@ -124,7 +124,7 @@ acs-*.bib
# knitr
*-concordance.tex
# TODO Comment the next line if you want to keep your tikz graphics files
*.tikz
# *.tikz
*-tikzDictionary
# listings
@ -240,3 +240,22 @@ TSWLatexianTemp*
# generated if using elsarticle.cls
*.spl
# sublime text with LaTeX
Output
# OS X temporary files that should never be committed
#
Desktop DF
Desktop DB
.Spotlight-V100
.DS_Store
.Trashes
.com.apple.timemachine.supported
.fseventsd
.syncinfo
.TemporaryItems
*.swp
*.lock
profile
._*

View File

@ -0,0 +1,34 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\newcommand{\MS}{Martin Scheidt}
\newcommand{\FN}{Felix Nebel}
\newcommand{\LG}{Lukas Gruber}
\newcommand{\SZ}{Stephan Zieger}
\begin{versionhistory}
%\vhEntry{<Version>}{<Date>}{<Author1>|<Author2>|...}{<Changes>}
\vhEntry{0.1}{2018-04-17}{MS|FN|LG}{
\IfLanguage{ngerman}{Ersten Prototyp mit Fahrdynamik erstellt}
\IfLanguage{english}{First prototype created with driving dynamics}
}
\vhEntry{0.2}{2018-05-15}{MS|LG}{
\IfLanguage{ngerman}{Lehrspiel mit Blocklogik erweitert}
\IfLanguage{english}{Educational game with block logic extended}
}
\vhEntry{0.3}{2018-09-03}{MS}{
\IfLanguage{ngerman}{Handbuch erstellt}
\IfLanguage{english}{Handbook created}
}
\vhEntry{0.3.1}{2018-10-17}{MS}{
\IfLanguage{ngerman}{Handbuch mit neutralem Design}
\IfLanguage{english}{Handbook with neutral design}
}
\vhEntry{0.4}{2018-11-16}{MS|SZ}{
\IfLanguage{ngerman}{Übersetzung ins Englische}
\IfLanguage{english}{Translation into english}
}
\end{versionhistory}
\vhListAllAuthorsLongWithAbbrev

14
figures/composition.tex Normal file
View File

@ -0,0 +1,14 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{composition.tikz}
\end{tikzpicture}
\end{document}

50
figures/composition.tikz Normal file
View File

@ -0,0 +1,50 @@
%!TEX TS-program = pdflatexmk
%!TEX root = composition.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}[>=latex]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 0,0) rectangle ++(1,0.5);
\draw [dashed] ([shift={(base)}] 15,0) rectangle ++(1,0.5);
\foreach \x in {1,...,14}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\draw [<->] ([shift={(base)}] 10.5,0.9) -- ++ (4,0) node [fill=white,midway] {
\IfLanguage{english}{train movement}
\IfLanguage{ngerman}{Zugbewegung}
};
\draw ([shift={(base)}] 5,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4);
\draw ([shift={(base)}] 5,0.8) -- ++ (3,0) node [above,midway] {
\IfLanguage{english}{platform}
\IfLanguage{ngerman}{Bahnsteig}
};
% distant signal
\draw [dashed] ([shift={(base)}] 2,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2);
\path[draw, line width=1pt] ([shift={(base)}] 2,-0.5) -- ++(0,-0.2);
\path[draw, line width=1pt] ([shift={(base)}] 2,-0.6) -- ++(0.5,0);
\path[draw, fill] ([shift={(base)}] 2.5,-0.75) rectangle ++(0.2,0.3);
\path[draw, fill] ([shift={(base)}] 2.5,-0.45) arc (90:270:0.15);
\draw [->] ([shift={(base)}] 5.0,-0.5) -- ([shift={(base)}] 2.9,-0.6) node [near start,align=right,fill=white] {
\IfLanguage{english}{distant signal}
\IfLanguage{ngerman}{Vorsignal}
};
% main signal
\draw [dashed] ([shift={(base)}] 9,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2);
\path[draw, line width=1pt] ([shift={(base)}] 9,-0.5) -- ++(0,-0.2);
\path[draw, line width=1pt] ([shift={(base)}] 9,-0.6) -- ++(0.5,0);
\path[draw, fill] ([shift={(base)}] 9.5,-0.75) rectangle ++(0.2,0.3);
\path[draw, fill] ([shift={(base)}] 9.7,-0.75) arc (90:270:-0.15);
\draw [->] ([shift={(base)}] 6.5,-1.2) -- ([shift={(base)}] 8.9,-0.6) node [near start,align=right,fill=white] {
\IfLanguage{english}{main signal}
\IfLanguage{ngerman}{Hauptsignal}
};
% axle counter
\path[draw, line width=1pt] ([shift={(base)}] 9.85,-0.4) -- ++(0.3,0);
\path[draw, line width=1pt, fill] ([shift={(base)}] 9.94,-0.4) circle (0.04);
\path[draw, line width=1pt, fill] ([shift={(base)}] 10.06,-0.4) circle (0.04);
\draw [->] ([shift={(base)}] 13.5,-0.8) -- ([shift={(base)}] 10.2,-0.45) node [near start,align=right,fill=white] {
\IfLanguage{english}{track vacancy detector}
\IfLanguage{ngerman}{Gleisfreimeldegrenze}
};
\end{scope}

14
figures/control_lever.tex Normal file
View File

@ -0,0 +1,14 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{control_lever.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,42 @@
%!TEX TS-program = pdflatexmk
%!TEX root = control_lever.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}
\coordinate (base) at (0,0);
% arrows
\draw [->,>=latex,line width=1.5pt,green] (1.5,0) .. controls ( 2,-0.5) and ( 4,-0.5) .. ( 4.5,0);
\draw [->,>=latex,line width=1.5pt,green] (5.5,0) .. controls ( 6,-0.5) and ( 8,-0.5) .. ( 8.5,0);
\draw [->,>=latex,line width=1.5pt,green] (9.5,0) .. controls (10,-0.5) and (12,-0.5) .. (12.5,0);
\draw [<-,>=latex,line width=1.5pt,green] (1.5,2) .. controls ( 2,2.5) and ( 4,2.5) .. ( 4.5,2);
\draw [<-,>=latex,line width=1.5pt,green] (5.5,2) .. controls ( 6,2.5) and ( 8,2.5) .. ( 8.5,2);
\draw [<-,>=latex,line width=1.5pt,green] (9.5,2) .. controls (10,2.5) and (12,2.5) .. (12.5,2);
\foreach \x in {0,4,8,12}
\draw [fill=white] ([shift={(base)}] \x,0) rectangle ++(2,2);
\node [align=center] at ( 1,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at ( 1,1 ) {\Large $0$};
\node [align=center] at ( 1,0.3) {\color{blue} $0$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
};
\node [align=center] at ( 5,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at ( 5,1 ) {\Large $40$};
\node [align=center] at ( 5,0.3) {\color{blue} $1$
\IfLanguage{english}{field}
\IfLanguage{ngerman}{Feld}
};
\node [align=center] at ( 9,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at ( 9,1 ) {\Large $80$};
\node [align=center] at ( 9,0.3) {\color{blue} $2$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
};
\node [align=center] at (13,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at (13,1 ) {\Large $120$};
\node [align=center] at (13,0.3) {\color{blue} $3$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
};
\end{scope}

14
figures/initial_setup.tex Normal file
View File

@ -0,0 +1,14 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{initial_setup.tikz}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,22 @@
%!TEX TS-program = pdflatexmk
%!TEX root = initial_setup.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}[>=latex]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [below=18pt,left,align=right] {\tiny \x};
\draw ([shift={(base)}] -2,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4);
\draw ([shift={(base)}] -2,0.8) -- ++ (3,0) node [above,midway] {
\IfLanguage{english}{Stn. A}
\IfLanguage{ngerman}{Bf A}
};
\path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\draw [->] ([shift={(base)}] 5,1.4) -- ([shift={(base)}] 0.85,0.35) node [near start,align=right,fill=white] {
\IfLanguage{english}{Train (direction of travel to the right)}
\IfLanguage{ngerman}{Zug (Fahrtrichtung rechts)}
};
\end{scope}

View File

@ -0,0 +1,12 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{scope}

View File

@ -0,0 +1,12 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (1.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{scope}

View File

@ -0,0 +1,12 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (3.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{scope}

View File

@ -0,0 +1,12 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (6.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{scope}

View File

@ -0,0 +1,12 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{scope}
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (9.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{scope}

BIN
figures/sketch.pdf Normal file

Binary file not shown.

14
figures/sketch.tex Normal file
View File

@ -0,0 +1,14 @@
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[tikz,border=2,preview=true]{standalone}
\usepackage[prefix=]{xcolor-solarized}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\input{sketch.tikz}
\end{tikzpicture}
\end{document}

91
figures/sketch.tikz Normal file
View File

@ -0,0 +1,91 @@
%!TEX TS-program = pdflatexmk
%!TEX root = sketch.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
% dimensons for signal construction
\def\length{2.0}
\def\height{1.5}
\def\thick{0.4}
\def\gap{0.05}
\def\depth{2.0}
\tikzset{
block_signal/.pic={
% frame
\draw [thick] ( -1.5,-2.0) -- ( 1.5,-2.0) -- (1.5,-4.0) -- (-1.5,-4.0) --cycle;
};
}
\tikzset{
block_signal_cross_section/.pic={
% lever
\draw [thick] (0,0) -- ++( 0,\height) -- ++(\thick,0) -- ++(0,-\height)
-- ++(\length,0) -- ++(0,-\thick) -- ++(-\length,0) -- ++(-\thick,0) -- ++(-\length,0)
-- ++(0,\thick,0) -- cycle;
% frame
\draw [thick] (-\gap,\gap) -- ++(-\length,0)
-- ++(0,-\gap) -- ++(0,-\thick) -- ++(0,-\gap) % inner height
-- ++(\gap,0) -- ++(\length,0) -- ++(\length,0) -- ++(\length,0) -- ++(\gap,0) % inner bottom
-- ++(0,\gap) -- ++(0,\thick) -- ++(0,\gap) % inner height
-- ++(-\length,0)
-- ++(0,\thick)
-- ++(\length,0) -- ++(\thick,0)
-- ++(0,-\thick) -- ++(0,-\gap) -- ++(0,-\thick) -- ++(0,-\gap) -- ++(0,-\thick) % outer height
-- ++(-\thick,0) -- ++(-\gap,0) -- ++(-\length,0) -- ++(-\length,0) -- ++(-\length,0) -- ++(-\gap,0) -- ++(-\thick,0) % outer bottom
-- ++(0,\thick) -- ++(0,\gap) -- ++(0,\thick) -- ++(0,\gap) -- ++(0,\thick) % outer height
-- ++(\length,0) -- ++(\thick,0)
-- cycle;
};
}
\tikzset{
block_signal_top_view/.pic={
% lever
\draw [thick] (0,0) rectangle ++(\thick,\depth);
% frame
\draw [thick] (-\gap,0) -- ++(-\length,0) -- ++(-\thick,0)
-- ++(0,\depth)
-- ++(\length,0) -- ++(\thick,0)
-- cycle;
\draw [thick] (\length,0) -- ++(\length,0) -- ++(\thick,0)
-- ++(0,\depth)
-- ++(-\length,0) -- ++(-\thick,0)
-- cycle;
};
}
\tikzset{
track_straight/.pic={
% rails
\filldraw [base1!60] (0, 1.0) rectangle ++ (14.5, 0.5);
\filldraw [base1!60] (0,-1.0) rectangle ++ (14.5,-0.5);
% frame
\draw [thick] ( 0.0,-2.0) -- ( 0.0,-0.3) --
( 0.7,-0.3) arc[start angle=36.6, end angle=323.4, radius=-0.5] --
( 0.0,0.3) -- ( 0.0,2.0) --
(14.5,2.0) -- (14.5,0.3) --
(15.2,0.3) arc[start angle=323.4, end angle=36.6, radius=-0.5] --
(14.5,-0.3) -- (14.5,-2.0) -- cycle;
};
}
\tikzset{
track_curved/.pic={
% % rails
% \filldraw [base1!60] (0,3.0) rectangle ++ (14.5,0.5);
% \filldraw [base1!60] (0,0.5) rectangle ++ (14.5,0.5);
% % frame: radius (center) 20,5 cm
% \draw [thick] ( 0.0,0.0) -- ( 0.0,1.7) --
% ( 0.7,1.7) arc[start angle=36.6, end angle=323.4, radius=-0.5] --
% ( 0.0,2.3) -- ( 0.0,4.0) --
% (14.5,4.0) -- (14.5,2.3) --
% (15.2,2.3) arc[start angle=323.4, end angle=36.6, radius=-0.5] --
% (14.5,1.7) -- (14.5,0.0) -- cycle;
};
}
\begin{tikzpicture}
% \pic at ( 0.0,0) {track_straight};
% \pic at (14.5,0) {track_straight};
% \pic at (14.5,0) {block_signal};
\pic at (14.5,4) {block_signal_cross_section};
\pic at (14.5,0) {block_signal_top_view};
\end{tikzpicture}

41
frontmatter/preambel.tex Normal file
View File

@ -0,0 +1,41 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\chapter*{\IfLanguage{english}{Aim and Materials}\IfLanguage{ngerman}{Ziel und Materialien}}
\noindent
\IfLanguage{english}{The aim of the learning game is to simulate and experience the driving dynamics of trains in the context of block division. This requires:}
\IfLanguage{ngerman}{Ziel des Lernspieles ist die Fahrdynamik von Zügen im Zusammenhang mit Blockteilung zu simulieren und zu erfahren. Dafür wird benötigt:}
\begin{itemize}
\IfLanguage{english}{
\item two trains with different driving dynamics
\item a track consisting of spaces
\item train berths
\item signals for block division
\item if necessary, turnouts
}
\IfLanguage{ngerman}{
\item zwei Züge mit unterschiedlicher Fahrdynamik
\item eine Strecke, bestehend aus Spielfeldern
\item Halteplätze für die Züge
\item Signale für die Blockteilung
\item ggf. Weichen
}
\end{itemize}
\IfLanguage{english}{Real continuous dimensions time ($t$) and distance ($s$) are assigned to discrete units of rounds ($t$) and spaces ($s$).
Thus, the simulation is round-based in order to imitate the steps of a computer.}
\IfLanguage{ngerman}{Reale kontinuierliche Größen Zeit ($t$) und Strecke ($s$) werden dabei in diskrete Einheiten von Runden ($t$) und Felder ($s$) eingeteilt.
Die Simulation erfolgt also Rundenbasiert, um im Schrittverfahren einen Computer nachzuahmen.}
\vspace*{\fill}
\IfLanguage{english}{
{\noindent\large Version \vhCurrentVersion\ from \vhCurrentDate } \\[0.3cm]
\ccLogo \ccAttribution ~This work is licensed under a Creative Commons License (CC BY 4.0).
}
\IfLanguage{ngerman}{
{\noindent\large Version \vhCurrentVersion\ vom \vhCurrentDate } \\[0.3cm]
\ccLogo \ccAttribution ~Dieses Werk steht unter der Creative Commons Lizens (CC BY 4.0).
}

24
frontmatter/titlepage.tex Normal file
View File

@ -0,0 +1,24 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{titlepage}
%--------------------------------------------
\thispagestyle{empty}
\vspace*{\fill}
\begin{center}
\bfseries\Huge
\IfLanguage{english}{Traffic Flow in Railway Systems}
\IfLanguage{ngerman}{Verkehrsfluss bei Bahnsystemen}
\end{center}
\vspace*{\fill}
\vspace*{\fill}
\vspace*{\fill}
%--------------------------------------------
\end{titlepage}

Binary file not shown.

View File

@ -1,328 +1,41 @@
% Hinweis:
% Alle Einstellungen, die dem Briefschreiber und seinem Institut zugeordnet sind,
% stehen jeweils in einer eigenen .lco-Datei.
% Der Brief lädt dann die Autorendatei, welche wiederum die Institutsdatei lädt
%!TEX TS-program = pdflatexmk
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\documentclass[
nexus, % Schriftart Arial wählen
% mono , % Darstellung in schwarz -weiß
10pt, % gewählte Schriftgröße (standard)
oneside,
draft=true,
green,
% paper=a5, paper=landscape,
]{tubsbook} % class from http://tubslatex.ejoerns.de/
draft,
paper=a4,
version=3.25,
pagesize=pdftex,
twoside=false,
DIV=12,
headinclude=true,
footinclude=false,
toc=listof,
]{scrbook}
\input{header.tex}
\logo{\includegraphics[height=\tubslogoHeight]{instituts_logo.pdf}}
\title{Verkehrsfluss bei Bahnsystemen}
\subtitle{Lernspiel}
\author{}
\date{}
\begin{document}
\maketitle[image,logo=right]
\section*{Ziel und Materialien}
\noindent Ziel des Lernspieles ist die Fahrdynamik von Zügen im Zusammenhang mit Blockteilung zu simulieren und zu erfahren.
Dafür wird benötigt:
\begin{itemize}
\item zwei Züge mit unterschiedlicher Fahrdynamik
\item eine Strecke, bestehend aus Spielfeldern
\item Halteplätze für die Züge
\item Signale für die Blockteilung
\item ggf. Weichen
\end{itemize}
Reale kontinuierliche Größen Zeit ($t$) und Strecke ($s$) werden dabei in diskrete Einheiten von Runden ($t$) und Felder ($s$) eingeteilt.
Die Simulation erfolgt also Rundenbasiert, um im Schrittverfahren einen Computer nachzuahmen.
% Eine Runde ist eine Zeiteinheit, in der sich Züge um eine Distanz/Felder fortbewegen.
\vfill
{\noindent\large Version \vhCurrentVersion\ vom \vhCurrentDate } \\[0.5cm]
\ccLogo \ccAttribution ~Dieses Werk steht unter der Creative Commons Lizens (CC BY 4.0).
\selectlanguage{english} % currently supported: english, ngerman
\input{frontmatter/titlepage.tex}
\newpage
\newcommand{\MS}{Martin Scheidt}
\newcommand{\FN}{Felix Nebel}
\newcommand{\LG}{Lukas Gruber}
\begin{versionhistory}
%\vhEntry{<Version>}{<Date>}{<Authors>}{<Changes>}
\vhEntry{0.1}{17.04.2018}{MS|FN|LG}{ersten Prototyp mit Fahrdynamik erstellt}
\vhEntry{0.2}{15.05.2018}{MS|LG}{Lehrspiel mit Blocklogik erweitert}
\vhEntry{0.3}{03.09.2018}{MS}{Handbuch erstellt}
\end{versionhistory}
\vhListAllAuthorsLongWithAbbrev
\vfill
\tableofcontents
\cleardoublepage
\part{Anleitung}
\chapter{Aufbau der Strecke}
\noindent Die Strecke besteht aus einer beliebigen Anzahl von Feldern. An die Strecke können Signale oder Bahnsteigkanten angeordnet werden.\\[0.5cm]
\begin{center}
\begin{tikzpicture}[>=latex]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 0,0) rectangle ++(1,0.5);
\draw [dashed] ([shift={(base)}] 15,0) rectangle ++(1,0.5);
\foreach \x in {1,...,14}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5);
\draw [<->] ([shift={(base)}] 10.5,0.9) -- ++ (4,0) node [fill=white,midway] {Zugbewegung};
\draw ([shift={(base)}] 5,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4);
\draw ([shift={(base)}] 5,0.8) -- ++ (3,0) node [above,midway] {Bahnsteig};
% distant signal
\draw [dashed] ([shift={(base)}] 2,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2);
\path[draw, line width=1pt] ([shift={(base)}] 2,-0.5) -- ++(0,-0.2);
\path[draw, line width=1pt] ([shift={(base)}] 2,-0.6) -- ++(0.5,0);
\path[draw, fill] ([shift={(base)}] 2.5,-0.75) rectangle ++(0.2,0.3);
\path[draw, fill] ([shift={(base)}] 2.5,-0.45) arc (90:270:0.15);
\draw [->] ([shift={(base)}] 5.0,-0.5) -- ([shift={(base)}] 2.9,-0.6) node [near start,align=right,fill=white] {Vorsignal};
% main signal
\draw [dashed] ([shift={(base)}] 9,-0.1) -- ++(0,-0.2) -- ++(1,0) -- ++(0,0.2);
\path[draw, line width=1pt] ([shift={(base)}] 9,-0.5) -- ++(0,-0.2);
\path[draw, line width=1pt] ([shift={(base)}] 9,-0.6) -- ++(0.5,0);
\path[draw, fill] ([shift={(base)}] 9.5,-0.75) rectangle ++(0.2,0.3);
\path[draw, fill] ([shift={(base)}] 9.7,-0.75) arc (90:270:-0.15);
\draw [->] ([shift={(base)}] 6.5,-1.2) -- ([shift={(base)}] 8.9,-0.6) node [near start,align=right,fill=white] {Hauptsignal};
% axle counter
\path[draw, line width=1pt] ([shift={(base)}] 9.85,-0.4) -- ++(0.3,0);
\path[draw, line width=1pt, fill] ([shift={(base)}] 9.94,-0.4) circle (0.04);
\path[draw, line width=1pt, fill] ([shift={(base)}] 10.06,-0.4) circle (0.04);
\draw [->] ([shift={(base)}] 13.5,-0.8) -- ([shift={(base)}] 10.2,-0.45) node [near start,align=right,fill=white] {Gleisfreimeldegrenze};
\end{tikzpicture}
\end{center}
\input{frontmatter/preambel.tex}
\chapter{Signalbegriffe}
\cleardoublepage
\noindent Das Hauptsignal darf nur Fahrt zeigen, wenn im nachfolgenden Blockabschnitt (von Gleisfreimeldegrenze zu Gleisfreimeldegrenze) kein Zug ist.
Das Vorsignal steht im Bremswegabstand vor dem Hauptsignal und spiegelt den Signalbegriff vom Hauptsignal.
\begin{center}
\begin{tabular}{rcc}
\toprule
& Halt & Fahrt \\
\hline
Hauptsignal &
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=red] (0,0) circle (0.3);
\draw (-0.3,0) -- (0.3,0);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture} &
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=green] (0,0) circle (0.3);
\draw (0,-0.3) -- (0,0.3);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture} \\
Vorsignal &
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=yellow] (0,0) circle (0.3);
\draw (-0.22,-0.22) -- ++(0.44,0.44);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture} &
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=green] (0,0) circle (0.3);
\draw (0,-0.3) -- (0,0.3);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture} \\
\bottomrule
\end{tabular}
\end{center}
\input{mainmatter/manual.tex}
\chapter{Simulation der Fahrdynamik}
\noindent Die Simulation erfolgt Rundenbasiert.\\ Jede Runde besteht aus mindestens zwei aufeinanderfolgenden Schritten:
\begin{enumerate}
\item Der Zug macht die Bewegung, die in der vorhergehenden Runde gesetzt wurde.
\item Alle Signale werden entsprechend der Gleisbelegung eingestellt.
\item (optional) Eine neue Schalthebelposition kann gewählt werden.
\end{enumerate}
Beim Start des Spiels steht der Zug. Schalthebelposition beginnen bei dem Feld ``$0$''.
Die unterschiedliche Fahrdynamik von Zügen wird durch unterschiedliche mögliche Schalthebelbewegung abgebildet.
\input{mainmatter/challenges.tex}
\newpage
\chapter{Beispiel}
Der Schalthebel wird entlang der grünen Pfeile bewegt. Schalthebelpositionen für einen Personenzug:
\begin{center}
\begin{tikzpicture}[scale=0.8]
\coordinate (base) at (0,0);
% arrows
\draw [->,>=latex,line width=1.5pt,green] (1.5,0) .. controls ( 2,-0.5) and ( 4,-0.5) .. ( 4.5,0);
\draw [->,>=latex,line width=1.5pt,green] (5.5,0) .. controls ( 6,-0.5) and ( 8,-0.5) .. ( 8.5,0);
\draw [->,>=latex,line width=1.5pt,green] (9.5,0) .. controls (10,-0.5) and (12,-0.5) .. (12.5,0);
\draw [<-,>=latex,line width=1.5pt,green] (1.5,2) .. controls ( 2,2.5) and ( 4,2.5) .. ( 4.5,2);
\draw [<-,>=latex,line width=1.5pt,green] (5.5,2) .. controls ( 6,2.5) and ( 8,2.5) .. ( 8.5,2);
\draw [<-,>=latex,line width=1.5pt,green] (9.5,2) .. controls (10,2.5) and (12,2.5) .. (12.5,2);
\foreach \x in {0,4,8,12}
\draw [fill=white] ([shift={(base)}] \x,0) rectangle ++(2,2);
\node [align=center] at ( 1,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at ( 1,1 ) {\Large $0$};
\node [align=center] at ( 1,0.3) {\color{blue} $0$ Felder};
\node [align=center] at ( 5,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at ( 5,1 ) {\Large $40$};
\node [align=center] at ( 5,0.3) {\color{blue} $1$ Feld};
\node [align=center] at ( 9,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at ( 9,1 ) {\Large $80$};
\node [align=center] at ( 9,0.3) {\color{blue} $2$ Felder};
\node [align=center] at (13,1.6) {\si{\kilo\metre\per\hour}};
\node [align=center] at (13,1 ) {\Large $120$};
\node [align=center] at (13,0.3) {\color{blue} $3$ Felder};
\end{tikzpicture}
\end{center}
Ein Zug soll auf folgender Strecke beschleunigen:
\begin{center}
\begin{tikzpicture}[>=latex]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [below=18pt,left,align=right] {\tiny \x};
\draw ([shift={(base)}] -2,1.1) -- ++(0,-0.4) -- ++ (3,0) -- ++(0,0.4);
\draw ([shift={(base)}] -2,0.8) -- ++ (3,0) node [above,midway] {Bf A};
\path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\draw [->] ([shift={(base)}] 5,1.4) -- ([shift={(base)}] 0.85,0.35) node [near start,align=right,fill=white] {Zug (Fahrtrichtung rechts)};
\end{tikzpicture}
\end{center}
Für den Verlauf des Lernspiels beginnen wir mit der ersten Runde und befolgen den Ablauf aus vorheringen Abschnitt \emph{Simulation der Fahrdynamik}.
In der ersten Runde steht der Zug aus der Anfangsbedingung. Im Beispiel gibt es keine Signale die eingestellt werden können.
Wir können den Schalthebel um eine Position auf \SI{40}{\kilo\metre\per\hour} nach vorne bewegen. Die Runde ist beendet.
Die zweite Runde beginnt mit dem Ausführen der Bewegung um ein Feld nach rechts.
Der Schalthebel kann wieder weiterbewegt und die Runde ist damit beendent.
Die dritte Runde beginnt mit dem Ausführen der Bewegung um \emph{zwei} Felder nach rechts.
Der Schalthebel kann wieder weiterbewegt und die Runde ist damit beendent.
Und so weiter, bis man auf der Position auf \SI{120}{\kilo\metre\per\hour} angekommen ist und der Zug sich gleichmäßig mit drei Felder pro Runde weiter bewegt.\\[0.5cm]
\begin{tabular}{rcccl}
\toprule
Runde & aktuelle & 1.Schritt & 2.Schritt & \\
& Geschwind- & Bewegen & Schalthebel & \\
& igkeit & um & auf & \\
\hline
$1$ & \SI{0}{\kilo\metre\per\hour} & $0$ Felder & \SI{40}{\kilo\metre\per\hour} &
\begin{tikzpicture}[scale=0.6]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (0.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{tikzpicture} \\
$2$ & \SI{40}{\kilo\metre\per\hour} & $1$ Felder & \SI{80}{\kilo\metre\per\hour} &
\begin{tikzpicture}[scale=0.6]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (1.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{tikzpicture} \\
$3$ & \SI{80}{\kilo\metre\per\hour} & $2$ Felder & \SI{120}{\kilo\metre\per\hour} &
\begin{tikzpicture}[scale=0.6]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (3.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{tikzpicture} \\
$4$ & \SI{120}{\kilo\metre\per\hour} & $3$ Felder & \SI{120}{\kilo\metre\per\hour} &
\begin{tikzpicture}[scale=0.6]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (6.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{tikzpicture} \\
$5$ & \SI{120}{\kilo\metre\per\hour} & $3$ Felder & \SI{120}{\kilo\metre\per\hour} &
\begin{tikzpicture}[scale=0.6]
\coordinate (base) at (0,0);
\draw [dashed] ([shift={(base)}] 10,0) rectangle ++(1,0.5);
\foreach \x in {-2,...,9}
\draw ([shift={(base)}] \x,0) rectangle ++(1,0.5) node [above=5pt,left,align=right] {\tiny \x};
\path[draw, line width=1pt, fill=white] (9.9,0.25) -- ++(-0.2,-0.2) -- ++(-2.6,0) -- ++(0,0.4) -- ++(2.6,0) -- cycle; % train
\end{tikzpicture} \\
etc. & & & & \\
\bottomrule
\end{tabular}
\part{Ablauf}
\chapter{Stufe}
\section{Einführung Fahrdynamik}
\subsection*{Ausgangssituation}
\begin{itemize}
\item ein Zug,
\item Strecke mit Feldern $-2$ bis $37$,
\item Bahnsteig A am Feld $-2$ bis $0$,
\item Bahnsteig B am Feld $14$ bis $16$,
\item Bahnsteig C am Feld $35$ bis $37$.
\end{itemize}
\aufgabe
Der Zug (auf Feld $0$ in Richtung $37$) steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}.
\begin{enumerate}[a)]
\item Wenn der Zug maximal beschleunigt, bis zu welchen Feld gelangt er in \emph{neun} Runden?
\item Wie viele Runden benötigt man minimal, wenn der Zug in jedem Bahnhof halten soll?
\end{enumerate}
Notiere die Lösungschritte in einem Protokoll!
\begin{center}
Beispiel für ein Protokoll:\\
\begin{tabular}{cccc|c}
\toprule
Runde & aktuelle & (1. Schritt)& aktuelle & (2. Schritt) \\
& Geschwindigkeit & Bewegen um & Position Zugspitze& Schalthebel auf \\
\hline
$1$ & \SI{0}{\kilo\metre\per\hour}& $0$ Felder & Feld $0$ & \SI{40}{\kilo\metre\per\hour} \\
\hline
$2$ & $\cdots$ & & & \\
\hline
$\vdots$& & & & \\
\hline
& & & & \\
\bottomrule
\end{tabular}
\end{center}
\aufgabe
Der Zug (auf Feld $0$ in Richtung $37$) fährt gerade durch den ersten Bahnhof durch und hat seinen Schalthebel auf der maximalen Geschwindigkeit.
\begin{enumerate}[a)]
\item Wie viele Felder braucht der Zug, bis er zum Stehen gekommen ist?
\item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll?
\end{enumerate}
\newpage
\section{Sicht- und Bremsweg}
\subsection*{Ausgangssituation}
Unbekannte Strecke mit verschiedenen Sichtverhältnissen:\\[0.5cm]
\begin{tabular}{rl}
\toprule
Sichtverhältnis & Sicht in Feldern \\
\hline
Sehr gut & 3 \\
Normal & 2 \\
Schlecht & 1 \\
\bottomrule
\end{tabular}
\aufgabe
\begin{enumerate}[a)]
\item Wie schnell kann der Zug bei sehr gutem Sichtverhältnis maximal Fahren um vor einem Hindernis rechtzeitig anzuhalten?
\item Wie viele Runden benötigt man minimal, um gefahrlos bei normalen Sichtverhältnissen in einem $14$ Felder entfernten Bahnhof zu gelangen?
\item Wie viele Felder weit müsste man sehen können, um \SI{160}{\kilo\metre\per\hour} fahren zu können?
\end{enumerate}
\chapter{Stufe}
\section{Blockteilung}
\subsection*{Ausgangssituation}
Ein Zug und eine beliebig lange Strecke, mit mindestens 3 vollständigen Blöcken.
Ein Block besteht aus: Sichtpunkt, Vorsignal, Hauptsignal, Signalzugschlussstelle und Räumweg.
\aufgabe
\begin{enumerate}[a)]
\item Platziere die Vor- und Hauptsignale mindestens so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt!
\item Wie viele Runden ist ein Block mit einer Zugfahrt belegt (vollständige Sperrzeit)?
\end{enumerate}
\newpage
\section{Verkehrsfluss}
\subsection*{Ausgangssituation}
\begin{itemize}
\item Zwei verschiedene Züge mit unterschiedlicher Fahrdynamik.
\item Beliebige Länge der Strecke, mit mindestens 3 vollständigen Blöcken.
\item Am Anfang und Ende der Strecke kann jeweils ein Bahnhof mit Weichen angeordnet werden oder die Strecke im Kreis geführt werden.
\end{itemize}
\aufgabe
\begin{enumerate}[a)]
\item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der schnelle vor dem langsamen Zug fährt?
\item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der langsame vor dem schnellen Zug fährt?
\end{enumerate}
\cleardoublepage
\appendix
\input{backmatter/versionhistory.tex}
\end{document}

151
header.tex Executable file → Normal file
View File

@ -1,44 +1,125 @@
%!tex root=handbook.tex
% ===============================
% Kodierung und Sprache
% ===============================
% \usepackage[T1]{fontenc} % ermoeglicht die Silbentrennung von Woertern mit Umlauten
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[ngerman]{translator}
%!TEX TS-program = pdflatexmk
%!TEX root = handbook.tex
% -----[ revision history ]----------
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
% --------[ Coding and Language ]----------
\usepackage{scrhack}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[main=english,ngerman]{babel}
\usepackage{iflang}
% % --------[ revision history ]----------
\usepackage{vhistory}
% -----[ Creative Commons License ]----------
% % --------[ Creative Commons License ]-------
\usepackage[scale=1.5]{ccicons}
% ===============================
% Tabellen und Abbildungen
% ===============================
\usepackage{graphicx} % ermoeglicht einbinden von Graphiken
\usepackage{subfigure} % ermoeglicht Bilder nebeneinander aufzureihen
\usepackage{tabularx} % ermoeglicht seitenbreite Tabellen
\usepackage{booktabs} % schoenere Tabellen
\usepackage{multirow}
%\usepackage{longtable} % ermoeglicht Tabellen mit Seitenumbruch
\usepackage{amsmath}
\usepackage{xfrac} % ermoeglich schräg gestellte Brüche mit \sfrac{}{}
\usepackage[locale=DE]{siunitx} % for SI-Units
% --------[ drafting ]----------
\usepackage{ifdraft}
\ifdraft{%
\usepackage{draftwatermark}
\SetWatermarkColor{solarized-base1!10}
}{}
%
\setlength{\marginparwidth }{2cm}
\usepackage[obeyDraft,textsize=footnotesize]{todonotes}
% --------[ Layout ]-----------
\pretolerance=8000
\tolerance=9500
\hbadness=8000
\vbadness=10000
\displaywidowpenalty=10000
\clubpenalty=10000
\widowpenalty=10000
\usepackage{microtype}
\usepackage{lmodern}
\usepackage{mathptmx,courier}
\usepackage[scaled=0.92]{helvet}
\usepackage[
automark,
headsepline,
draft=false
]{scrlayer-scrpage}
\pagestyle{scrheadings}
\usepackage{etoolbox}
\makeatletter
% \@addtoreset{chapter}{part} % reset chapter numbering for each part
\patchcmd{\scr@startchapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{} % remove page break after chapter
\makeatother
% -----------[ PDF linking ]----------------
\usepackage[
pdftex,
pdfpagelabels, % modify PDF page labels
hyperindex,
hyperfigures,
bookmarksopen,
bookmarksnumbered,
draft=false,
pageanchor=true, % Determines whether every page is given an implicit anchor at the top left corner
%pagebackref, % Adds ‘backlink’ text to the end of each item in the bibliography, as a list of page numbers
%linktocpage, % make page number, not text, be link on TOC, LOF and LOT
breaklinks=true, % allow links to break over lines by making links over multiple lines into PDF links to the same target
colorlinks=true, % Colors the text of links and anchors
citecolor=solarized-violet, % Color for bibliographical citations in text
linkcolor=solarized-base01, % Color for normal internal links
urlcolor=solarized-blue, % Color for web links
]{hyperref} % PDF with a linked TableOfContent
\usepackage{bookmark} % Adding package bookmark improves bookmarks handling.
\usepackage{url}
% -------[ PDF Informations ]---------
\hypersetup{
pdftitle={Traffic Flow in Railway Systems},
pdfsubject={game based learning},
pdfauthor={Martin Scheidt and contributers},
pdfkeywords={railway, railroad, infrastructure, serious game},
}
% -------[ Symbols ]---------
\usepackage{amsmath,amsthm}
\usepackage{xfrac} % provides slanted fractures with \sfrac{}{}
\usepackage{wasysym} % \permil
\usepackage{siunitx} % for SI-Units
\sisetup{
per-mode=fraction,
fraction-function=\sfrac
}
\usepackage{wasysym} % \permil
\usepackage{enumerate} % Nummeriung aendern
\usepackage{listings}
\usepackage{rotating}
\usepackage{tikz}
% \usepackage{framed} % Rahmen zeichnen
% ===============================
% chapter/section numbering
% ===============================
\newcounter{question}
\newcommand{\aufgabe}{\stepcounter{question}\bigskip\par\noindent{\normalfont\large\bfseries Aufgabe \arabic{question}}\medskip\par\noindent}
\makeatletter\@addtoreset{chapter}{part}\makeatother%
% -------[ Tables and Figures ]---------
\usepackage{graphicx}
\setkeys{Gin}{draft=false} % disable draft for graphicx to see pictures in draft-mode
\usepackage{booktabs,longtable,tabularx,ltxtable}
% \usepackage{multirow}
\usepackage{enumerate}
\usepackage{enumitem} % change numbering
\usepackage{tikz,adjustbox}
\usepackage[prefix=solarized-]{xcolor-solarized}
% -------[ costum commands ]---------
\newcommand{\TODO}[1]{\todo[linecolor=orange,backgroundcolor=orange!20,bordercolor=orange,inline,]{\textcolor{orange}{Todo:~}#1}}
\newcommand{\REWRITE}[1]{\todo[linecolor=magenta,backgroundcolor=magenta!20,bordercolor=magenta,noline]{\textcolor{magenta}{Rewrite:~}#1}}
\newcommand{\ADDFIGURE}[1]{\missingfigure[figcolor=white]{#1}}
\newcounter{task}
\DeclareRobustCommand{\task}{\stepcounter{task}\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Task~}\IfLanguage{ngerman}{Aufgabe~}\arabic{task}}\medskip\par\noindent}
\DeclareRobustCommand{\setup}{\bigskip\par\noindent{\normalfont\large\bfseries\IfLanguage{english}{Setup}\IfLanguage{ngerman}{Ausgangssituation}}\medskip\par\noindent}
\DeclareRobustCommand{\tikzfigure}[2][\textwidth]{
\begin{adjustbox}{width=#1}
\begin{tikzpicture}[font=\sffamily]
\input{figures/#2}
\end{tikzpicture}
\end{adjustbox}
}
\newcommand{\IfLanguage}[2]{\IfLanguageName{#1}{#2}{}}

Binary file not shown.

126
mainmatter/challenges.tex Normal file
View File

@ -0,0 +1,126 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\part{\IfLanguage{english}{Challenges}\IfLanguage{ngerman}{Aufgaben}}
\chapter{\IfLanguage{english}{First Stage}\IfLanguage{ngerman}{Erste Stufe}}
\section{\IfLanguage{english}{Introduction to Driving Dynamics}\IfLanguage{ngerman}{Einführung Fahrdynamik}}
\setup
\begin{itemize}
\IfLanguage{english}{
\item A single train,
\item Line with fields $-2$ to $37$,
\item Platform A at field $-2$ to $0$,
\item Platform B at field $14$ to $16$,
\item Platform C at field $35$ to $37$.
}
\IfLanguage{ngerman}{
\item ein Zug,
\item Strecke mit Feldern $-2$ bis $37$,
\item Bahnsteig A am Feld $-2$ bis $0$,
\item Bahnsteig B am Feld $14$ bis $16$,
\item Bahnsteig C am Feld $35$ bis $37$.
}
\end{itemize}
\task
\IfLanguage{english}{ The train (on field $0$ towards $37$) stands still and has its shift lever at \SI{0}{\kilo\metre\per\hour}.}
\IfLanguage{ngerman}{Der Zug (auf Feld $0$ in Richtung $37$) steht und hat seinen Schalthebel auf \SI{0}{\kilo\metre\per\hour}.}
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item If the train accelerates as much as possible, which field can it get to in \emph{nine} rounds?
\item How many rounds are minimally needed, if the train stops at every station?
}
\IfLanguage{ngerman}{
\item Wenn der Zug maximal beschleunigt, bis zu welchen Feld gelangt er in \emph{neun} Runden?
\item Wie viele Runden benötigt man minimal, wenn der Zug in jedem Bahnhof halten soll?
}
\end{enumerate}
\IfLanguage{english}{Note the solution steps in a protocol!}
\IfLanguage{ngerman}{Notiere die Lösungschritte in einem Protokoll!}
\begin{center}
\IfLanguage{english}{Example for a protocol:}
\IfLanguage{ngerman}{Beispiel für ein Protokoll:}
\\
\input{tables/example_protocol.tex}
\end{center}
\task
\IfLanguage{english}{ The train (on field $0$ towards $37$) just passes through the first station and has its shift lever on maximum speed.}
\IfLanguage{ngerman}{Der Zug (auf Feld $0$ in Richtung $37$) fährt gerade durch den ersten Bahnhof durch und hat seinen Schalthebel auf der maximalen Geschwindigkeit.}
\begin{enumerate}[label=a)]
\IfLanguage{english}{
\item How many fields does the train need to come to a stop?
\item How many rounds are needed if the train shall leave the track completely without stopping?
}
\IfLanguage{ngerman}{
\item Wie viele Felder braucht der Zug, bis er zum Stehen gekommen ist?
\item Wie viele Runden benötigt man, wenn der Zug ohne Halt die Strecke vollständig verlassen soll?
}
\end{enumerate}
\section{\IfLanguage{english}{Sight and Braking Distance}\IfLanguage{ngerman}{Sicht- und Bremsweg}}
\setup
\IfLanguage{english}{Unknown line with different visibility conditions:}
\IfLanguage{ngerman}{Unbekannte Strecke mit verschiedenen Sichtverhältnissen:}
\\[0.5cm]
\input{tables/visibility_conditions.tex}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item What is the maximum speed for the train with very good visibility in order to stop in front of an obstacle in time?
\item How many rounds are minimally needed, to arrive safely with normal visibility in a $14$ fields away station?
\item How many fields far would you have to be able to see in order to drive \SI{160}{\kilo\metre\per\hour}?
}
\IfLanguage{ngerman}{
\item Wie schnell kann der Zug bei sehr gutem Sichtverhältnis maximal Fahren um vor einem Hindernis rechtzeitig anzuhalten?
\item Wie viele Runden benötigt man minimal, um gefahrlos bei normalen Sichtverhältnissen in einem $14$ Felder entfernten Bahnhof zu gelangen?
\item Wie viele Felder weit müsste man sehen können, um \SI{160}{\kilo\metre\per\hour} fahren zu können?
}
\end{enumerate}
\chapter{\IfLanguage{english}{Second Stage}\IfLanguage{ngerman}{Zweite Stufe}}
\section{\IfLanguage{english}{Block Segmentation}\IfLanguage{ngerman}{Blockteilung}}
\setup
\IfLanguage{english}{One train and any length of line, with at least 3 complete blocks.
A block consists of: visual point, distant signal, main signal, signal clearing point and clearing distance.}
\IfLanguage{ngerman}{Ein Zug und eine beliebig lange Strecke, mit mindestens 3 vollständigen Blöcken.
Ein Block besteht aus: Sichtpunkt, Vorsignal, Hauptsignal, Signalzugschlussstelle und Räumweg.}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item Place the distant and main signals so that \SI{160}{\kilo\metre\per\hour} can be driven and bad visibility does not lead to impairment!
\item How many rounds is a block occupied with a train running (complete blocking time)?
}
\IfLanguage{ngerman}{
\item Platziere die Vor- und Hauptsignale mindestens so, dass \SI{160}{\kilo\metre\per\hour} gefahren werden kann und schlechte Sichtverhältnisse nicht zur Beeinträchtigung führt!
\item Wie viele Runden ist ein Block mit einer Zugfahrt belegt (vollständige Sperrzeit)?
}
\end{enumerate}
\section{\IfLanguage{english}{Traffic Flow}\IfLanguage{ngerman}{Verkehrsfluss}}
\setup
\begin{itemize}
\IfLanguage{english}{
\item Two different trains with different train dynamics.
\item Any length of the track, with at least 3 complete blocks.
\item At the beginning and the end of the track, a station with switches can be arranged or the track can be lead in a circle.
}
\IfLanguage{ngerman}{
\item Zwei verschiedene Züge mit unterschiedlicher Fahrdynamik.
\item Beliebige Länge der Strecke, mit mindestens 3 vollständigen Blöcken.
\item Am Anfang und Ende der Strecke kann jeweils ein Bahnhof mit Weichen angeordnet werden oder die Strecke im Kreis geführt werden.
}
\end{itemize}
\task
\begin{enumerate}[label=\alph*)]
\IfLanguage{english}{
\item How many rounds are needed if both trains shall run unimpeded and the fast train runs in front of the slow train?
\item How many rounds are needed if both trains shall run unimpeded and the slow train runs in front of the fast train?
}
\IfLanguage{ngerman}{
\item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der \emph{schnelle} vor dem \emph{langsamen} Zug fährt?
\item Wie viele Runden benötigt man, wenn beide Züge behinderungsfrei fahren sollen und der \emph{langsame} vor dem \emph{schnellen} Zug fährt?
}
\end{enumerate}

79
mainmatter/manual.tex Normal file
View File

@ -0,0 +1,79 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\part{\IfLanguage{english}{Manual}\IfLanguage{ngerman}{Anleitung}}
\chapter{\IfLanguage{english}{Setup of a Line}\IfLanguage{ngerman}{Aufbau der Strecke}}
\noindent
\IfLanguage{english}{The line consists of any number of spaces. Signals or platforms can be arranged along the line.}
\IfLanguage{ngerman}{Die Strecke besteht aus einer beliebigen Anzahl von Feldern. An die Strecke können Signale oder Bahnsteigkanten angeordnet werden.}
\\[0.5cm]
\tikzfigure{composition.tikz}
\chapter{\IfLanguage{english}{Signal Aspects}\IfLanguage{ngerman}{Signalbegriffe}}
\noindent
\IfLanguage{english}{The main signal may only show the proceed aspect if there is no train in the following block section (from track vacancy detector to track vacancy detector).
The distant signal is located in front of the main signal in braking distance and reflects the signal aspect of the main signal.}
\IfLanguage{ngerman}{Das Hauptsignal darf nur Fahrt zeigen, wenn im nachfolgenden Blockabschnitt (von Gleisfreimeldegrenze zu Gleisfreimeldegrenze) kein Zug ist.
Das Vorsignal steht im Bremswegabstand vor dem Hauptsignal und spiegelt den Signalbegriff vom Hauptsignal.}
\begin{center}
\input{tables/signal_aspects.tex}
\end{center}
\chapter{\IfLanguage{english}{Simulation of Driving Dynamics}\IfLanguage{ngerman}{Simulation der Fahrdynamik}}\label{sec:Simulation_Driving_Dynamics}
\noindent
\IfLanguage{english}{The simulation is based on rounds.\\ Each round consists of at least two consecutive steps:}
\IfLanguage{ngerman}{Die Simulation erfolgt Rundenbasiert.\\ Jede Runde besteht aus mindestens zwei aufeinanderfolgenden Schritten:}
\begin{enumerate}
\IfLanguage{english}{
\item The train makes the movement set in the previous round.
\item All signals are set according to the track occupancy.
\item (optional) A new shift lever position can be chosen.
}
\IfLanguage{ngerman}{
\item Der Zug macht die Bewegung, die in der vorhergehenden Runde gesetzt wurde.
\item Alle Signale werden entsprechend der Gleisbelegung eingestellt.
\item (optional) Eine neue Schalthebelposition kann gewählt werden.
}
\end{enumerate}
\IfLanguage{english}{At the start of the game, the train stands still. Shift lever positions start at the ``$0$'' field.
The different train dynamics are depicted by different possible movements of the shift lever.}
\IfLanguage{ngerman}{Beim Start des Spiels steht der Zug. Schalthebelposition beginnen bei dem Feld ``$0$''.
Die unterschiedliche Fahrdynamik von Zügen wird durch unterschiedliche mögliche Schalthebelbewegung abgebildet.}
\chapter{\IfLanguage{english}{Example}\IfLanguage{ngerman}{Beispiel}}
\IfLanguage{english}{The shift lever is moved along the green arrows. Shift lever positions for a passenger train:}
\IfLanguage{ngerman}{Der Schalthebel wird entlang der grünen Pfeile bewegt. Schalthebelpositionen für einen Personenzug:}
\begin{center}
\tikzfigure[0.8\textwidth]{control_lever.tikz}
\end{center}
\vspace*{0.5cm}
\IfLanguage{english}{A train is supposed to accelerate on the following track:}
\IfLanguage{ngerman}{Ein Zug soll auf folgender Strecke beschleunigen:}
\\
\tikzfigure{initial_setup.tikz}
\\[0.5cm]
\IfLanguage{english}{ For the course of the learning game, we start with the first round and follow the process from the previous section \emph{\nameref{sec:Simulation_Driving_Dynamics}}.
In the first round, the train from the initial condition stands still. In the example there are no signals that can be set.
We can move the shift lever by one position to \SI{40}{\kilo\metre\per\hour} forward. The round is over.}
\IfLanguage{ngerman}{Für den Verlauf des Lernspiels beginnen wir mit der ersten Runde und befolgen den Ablauf aus vorheringen Abschnitt \emph{\nameref{sec:Simulation_Driving_Dynamics}}.
In der ersten Runde steht der Zug aus der Anfangsbedingung. Im Beispiel gibt es keine Signale die eingestellt werden können.
Wir können den Schalthebel um eine Position auf \SI{40}{\kilo\metre\per\hour} nach vorne bewegen. Die Runde ist beendet.}
\IfLanguage{english}{ The second round begins with the execution of the movement one field to the right.
The shift lever can be moved on and the round is over.
The third round begins with the execution of the movement by \emph{two} fields to the right.
The shift lever can be moved on again and the round is over.
Continue until the position of \SI{120}{\kilo\metre\per\hour} is reached and the train moves evenly with three fields per round.}
\IfLanguage{ngerman}{Die zweite Runde beginnt mit dem Ausführen der Bewegung um ein Feld nach rechts.
Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet.
Die dritte Runde beginnt mit dem Ausführen der Bewegung um \emph{zwei} Felder nach rechts.
Der Schalthebel kann wieder weiterbewegt werden und die Runde ist damit beendet.
Und so weiter, bis man auf der Position auf \SI{120}{\kilo\metre\per\hour} angekommen ist und der Zug sich gleichmäßig mit drei Felder pro Runde weiter bewegt.}
\\[0.5cm]
\input{tables/example_movement.tex}

View File

@ -0,0 +1,52 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{tabularx}{0.95\textwidth}{rcccX}
\toprule
\IfLanguage{english}{
Round & current & 1.Step & 2.Step & \\
& speed & Move & shift lever & \\
& & & on & \\
}
\IfLanguage{ngerman}{
Runde & aktuelle & 1.Schritt & 2.Schritt & \\
& Geschwin- & Bewegen & Schalthebel & \\
& digkeit & um & auf & \\
}
\hline
$1$ & \SI{0}{\kilo\metre\per\hour} &
$0$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
& \SI{40}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example1.tikz}
\\
$2$ & \SI{40}{\kilo\metre\per\hour} &
$1$
\IfLanguage{english}{field}
\IfLanguage{ngerman}{Feld}
& \SI{80}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example2.tikz}
\\
$3$ & \SI{80}{\kilo\metre\per\hour} &
$2$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
& \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example3.tikz}
\\
$4$ & \SI{120}{\kilo\metre\per\hour} &
$3$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
& \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example4.tikz}
\\
$5$ & \SI{120}{\kilo\metre\per\hour} &
$3$
\IfLanguage{english}{fields}
\IfLanguage{ngerman}{Felder}
& \SI{120}{\kilo\metre\per\hour} & \tikzfigure[\linewidth]{movement_example5.tikz}
\\
etc. & & & & \\
\bottomrule
\end{tabularx}

View File

@ -0,0 +1,32 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{tabular}{cccc|c}
\toprule
\IfLanguage{english}{
Round & curent & (1. Step) & current position & (2. Step) \\
& speed & Move by & head of train & shift lever at \\
}
\IfLanguage{ngerman}{
Runde & aktuelle & (1. Schritt)& aktuelle & (2. Schritt) \\
& Geschwindigkeit & Bewegen um & Position Zugspitze& Schalthebel auf \\
}
\hline
\IfLanguage{english}{
$1$ & \SI{0}{\kilo\metre\per\hour}& $0$ fields & field $0$ & \SI{40}{\kilo\metre\per\hour} \\
}
\IfLanguage{ngerman}{
$1$ & \SI{0}{\kilo\metre\per\hour}& $0$ Felder & Feld $0$ & \SI{40}{\kilo\metre\per\hour} \\
}
\hline
$2$ & $\cdots$ & & & \\
\hline
$\vdots$& & & & \\
\hline
& & & & \\
\bottomrule
\end{tabular}

45
tables/signal_aspects.tex Normal file
View File

@ -0,0 +1,45 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{tabular}{rcc}
\toprule
&
\IfLanguage{english}{halt}
\IfLanguage{ngerman}{Halt}
&
\IfLanguage{english}{proceed}
\IfLanguage{ngerman}{Fahrt}
\\
\hline
\IfLanguage{english}{main signal}
\IfLanguage{ngerman}{Hauptsignal}
&
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=red] (0,0) circle (0.3);
\draw (-0.3,0) -- (0.3,0);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture} &
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=green] (0,0) circle (0.3);
\draw (0,-0.3) -- (0,0.3);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture}
\\
\IfLanguage{english}{distant signal}
\IfLanguage{ngerman}{Vorsignal}
&
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=yellow] (0,0) circle (0.3);
\draw (-0.22,-0.22) -- ++(0.44,0.44);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture} &
\begin{tikzpicture}[anchor=base,baseline=-3]
\draw [fill=green] (0,0) circle (0.3);
\draw (0,-0.3) -- (0,0.3);
\path (-0.5,-0.5) rectangle ++(1,1); % background rectangle to unify every cell containing a symbol
\end{tikzpicture} \\
\bottomrule
\end{tabular}

View File

@ -0,0 +1,27 @@
%!TEX TS-program = pdflatexmk
%!TEX root = ../handbook.tex
% Copyright 2018 Martin Scheidt (ISC license)
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\begin{tabular}{rl}
\toprule
\IfLanguage{english}{
Visibility & Sight in fields \\
}
\IfLanguage{ngerman}{
Sichtverhältnis & Sicht in Feldern \\
}
\hline
\IfLanguage{english}{
Very good & 3 \\
Normal & 2 \\
Bad & 1 \\
}
\IfLanguage{ngerman}{
Sehr gut & 3 \\
Normal & 2 \\
Schlecht & 1 \\
}
\bottomrule
\end{tabular}