1 | \def \obr {Implementation/fig/} |
---|
2 | |
---|
3 | \chapter{Implementace} |
---|
4 | |
---|
5 | |
---|
6 | |
---|
7 | % \section{Seznam proměnných} |
---|
8 | % Všechny proměnné jsou zavedeny pro každého agenta reprezentujícího jednu křižovatku zvlášť |
---|
9 | % a jsou označeny indexem $i$ signální skupiny. Tavždy ovládá jeden jízdní pruh. Pokud jsou bez indexu, |
---|
10 | % jedná se o proměnnou agenta, případně oblasti simulace. |
---|
11 | |
---|
12 | \begin{tabular}{ccp{5cm}p{5cm}} |
---|
13 | \textbf{V textu} & \textbf{V programu} & \textbf{Název} & \textbf{Popis} \\ |
---|
14 | $T \in \mathbb{N}$ & \texttt{T} & Vzorkovací perioda & \\ |
---|
15 | $C \in \mathbb{N}$ & \texttt{Tc} & Délka cyklu & \\ |
---|
16 | $S = 0,5$ & \texttt{ss} & Saturovaný tok & Maximální počet vozidel, která projedou křižovatkou za sekundu \\ |
---|
17 | $L \in \mathbb{R}^+$ & \texttt{L} & Ztrátový čas & Čas potřebný k vyklizení křižovatky mezi dvěma fázemi\\ |
---|
18 | $J = \{j_1, ..., j_n\}$ & & Množina signálních skupin & \\ |
---|
19 | $J_A \subset J$ & \texttt{} & Množina signálních skupin agenta $A$ & Skupiny náležící jednomu agentovi \\ |
---|
20 | $I_j \subset J$ & \texttt{} & Množina vstupů signální skupiny & Signální skupiny ostatních agentů ústících do příslušné skupiny $g$ \\ |
---|
21 | $g_j^N \in <0,1>$ & & Nominální poměr zelené & Defi novaný poměr fází \\ |
---|
22 | $g_j(t) \in <0,1>$ & & Efektivní poměr zelené & Část z délky cyklu, kdy je signální skupina průjezdná \\ |
---|
23 | $i_j(t) \in \mathbb{R}^+$ & \texttt{i\_g} & Hustota vstupů & Počet přijíždějících vozidel do pruhu signální skupiny za jednotku času \\ |
---|
24 | $o_j(t) \in \mathbb{R}^+$ & \texttt{} & Hustota výstupů & Počet vyjíždějících vozidel z pruhu signální skupiny za jednotku času \\ |
---|
25 | $q_j(t) \in \mathbb{N}_0^+$ & \texttt{} & Fronta & Počet vozidel jedoucí menší rychlostí než $3,6 km/h$ \\ |
---|
26 | $\alpha_{j,k} \in <0,1>$ & \texttt{} & Odbočovací poměr z $j$ do $k$ & |
---|
27 | \end{tabular} |
---|
28 | |
---|
29 | \section{Použitá metoda} |
---|
30 | Účelem této práce je řídit provoz pomocí nastavení optimální délky cyklu za použití multiagentního systému, kde |
---|
31 | každý agent ovládá signální skupiny jedné křižovatky a jsou mu dostupné příslušné údaje. |
---|
32 | Jako vhodná metoda bylo zvoleno LQ řízení, které se snaží minimalizovat fronty a penalizovat délku cyklu. |
---|
33 | |
---|
34 | \subsection{Přechodové vztahy} |
---|
35 | Jako údaj popisující stav systému byla zvolena délka fronty $q_j(t)$, což je počet aut v jízdním pruhu jedoucích |
---|
36 | méně než 3,6 km/h. Pro danou frontu v čase $t+1$ platí zřejmě vztah |
---|
37 | \begin{equation}\label{eq:my_trans_01} |
---|
38 | q_j(t+1) = q_j(t) + T ( i_j(t) - o_j(t) ) , |
---|
39 | \end{equation}kde hustota vstupu $i_j(t)$ je součtem výstupů sousedů pronásobený odbočovacími poměry, |
---|
40 | případně vstupu do systému $i_{j,0}(t)$, pokud se jedná o koncové rameno řízené oblasti, tedy |
---|
41 | \begin{equation} |
---|
42 | i_j(t) = i_{j,0}(t) + \sum_{k \in I_j} \alpha_{k,j} o_k(t) . |
---|
43 | \end{equation} |
---|
44 | Křižovtkou z daného jízdního pruhu v průjezdné fázi projede $S$ vozidel za sekundu, kde |
---|
45 | délka průjezdné fáze závisí na nastaveném poměru a délce cyklu. Před přechodem do nové |
---|
46 | fáze signálího plánu je potřeba vklidit křižovatku, což vede ke ztrátovému času $L$, který |
---|
47 | se projeví vždy jednou za cyklus. Efektivní délka zelené je tedy |
---|
48 | \begin{equation} |
---|
49 | g_j(t) = (C(t) - L) g_j^N |
---|
50 | \end{equation} |
---|
51 | a pro hustotu výstupu platí |
---|
52 | \begin{equation} |
---|
53 | o_j(t) = \frac{S_j g_j(t)}{C(t)} = S_j g_j^N \left( 1 - LC(t)^{-1} \right) \;. |
---|
54 | \end{equation} Rovnice \ref{eq:my_trans_01} tedy přechází do tvaru |
---|
55 | \begin{equation}\label{eq:my_trans_02} |
---|
56 | q_j(t+1) = q_j(t) + T \left( i_{j,0}(t) + \sum_{k \in I_j} \alpha_{k,j} S_k g_k^N \left( 1 - LC(t)^{-1} \right) - S_j g_j^N \left( 1 - LC(t)^{-1} \right) \right) \;. |
---|
57 | \end{equation} |
---|
58 | Za řídící proměnnou tedy vezmeme |
---|
59 | \begin{equation} |
---|
60 | y(t) = 1 - LC(t)^{-1} \;. |
---|
61 | \end{equation} |
---|
62 | takže můžeme rovnici \ref{eq:my_trans_02} přepsat do maticové formy |
---|
63 | \begin{equation}\label{eq:my_trans_mat} |
---|
64 | q(t+1) = A_0 q(t) + B_0 y(t) + I_0(t) \;, |
---|
65 | \end{equation} |
---|
66 | kde $A$ je jednotková matice, $B$ je diagonální matice s prvky |
---|
67 | \begin{equation} |
---|
68 | b_{jj} = T \left( \sum_{k \in I_j} \alpha_{k,j} S_k g_k^N - S_j g_j^N \right) \;, |
---|
69 | \end{equation} |
---|
70 | a $I$ je vektor s prvky $I_{0_{j}} = T i_{j,0}(t)$. |
---|
71 | |
---|
72 | |
---|
73 | %\input{Implementation/ChangingFlow.tex} |
---|
74 | \input{Implementation/Minimalization.tex} |
---|
75 | |
---|
76 | |
---|
77 | |
---|
78 | |
---|
79 | |
---|
80 | \section{Simulace} |
---|
81 | Pro simulaci byl použit mikorsimulátor dopravy |
---|
82 | AIMSUN (Advanced Interactive Microscopic Simulator for Urban and Non-Urban Networks). |
---|
83 | Podstatou mikroskopické simulace (mikrosimulace) je modelování |
---|
84 | jízdy jednotlivých vozidel po dané komunikační síti, přičemž se zohledňují všechny parametry |
---|
85 | infrastruktury i dopravních prostředků. |
---|
86 | V této kapitole je popsána základní charakteristika mikrosimulátoru AIMSUN. |
---|
87 | Podrobnější informace lze nalézt například v \cite{aimsunget}. |
---|
88 | \\ |
---|
89 | \\ |
---|
90 | AIMSUN potřebuje pro svůj běh simulační scénář skládající se z popisu dopravní sítě, plánů řízení dopravy, |
---|
91 | požadovaných dopravních data, a plánů hromadné dopravy |
---|
92 | a množinu simulačních parametrů definujících experiment. |
---|
93 | Popis dopravní sítě obsahuje geometrii sítě, popis křižovatek a rozmístění detektorů, |
---|
94 | Dopravní data se dají zadat dvěma způsoby: Pomocí matice opbsahující informace kolik jízd se uskuteční |
---|
95 | z uzlu $i$ do uzlu $j$. Každému vozidlu je tedy přiřazena trasa. |
---|
96 | V fruhém případě se pro určitá místa zadají hustoty provozu a vozidla se rozmístí stochasticky podle požadovaných počtů a poměrů odbočení do dopravní sítě. |
---|
97 | |
---|
98 | \subsubsection{VGS API}\label{ss:vgs_api} |
---|
99 | VGS API je rozhraní napsané v jazyce C++, které rozšiřuje funkčnost mikrosimulátoru AIMSUN. |
---|
100 | Zjednodušuje simulaci reálné situace, kdy podle tabulek naměřených ručně |
---|
101 | nebo zaznamenaných údajů z dopravních detektorů generuje |
---|
102 | vozidla v průběhu simulace. |
---|
103 | \\ |
---|
104 | \\ |
---|
105 | Druhým důležitým úkolem VGS API je shromažďovat data potřebná pro |
---|
106 | běh experimentu a jeho. AIMSUN sice disponuje jednoduchým rozhraním pro |
---|
107 | vizualizaci dat a jejich export do textových souborů, není ale možné |
---|
108 | například porovnávat jednotlivé scénáře simulací. VGS API proto |
---|
109 | periodicky ukládá všechny klíčové ukazatele jak pro jednotlivé segmenty |
---|
110 | dopravní sítě, tak i pro celý simulovaný systém. |
---|
111 | Zprostředkovává tak důležitá data o počtu zastavení vozidla, o jeho zpoždění, |
---|
112 | průměrné rychlosti, době jízdy atd. |
---|
113 | Tato data jsou dostupná v průběhu simulace i po skončení k následujícímu zpracování. |
---|
114 | \\ |
---|
115 | \\ |
---|
116 | Důležitý údaj, které nám VGS API poskytuje, je délka fronty pro daný jízdní pruh. |
---|
117 | Fronta se podle dat z detektorů odhaduje velice obtížně, neboť ty vykazují zančnou chybovost, |
---|
118 | která u sledování průjezdů neni až tak zásadní, ale při použití na výpočet front by docházelo |
---|
119 | ke kumulaci této chyby a výsledky by byly prakticky nepoužitelné. |
---|
120 | Hlavní chyby detektorů spočívají v nerozpoznání mezery mezi vozidly a zpočtení |
---|
121 | dvou vozidel jako jedno, nebo zaznamenání jednoho vozidla dvěma detektory ve dvou |
---|
122 | jízdních pruzích zároveň. |
---|
123 | |
---|
124 | \subsection{Řadiče} |
---|
125 | Kvůli věrnějšímu napodobení skutečnosti, jsou použity k ovládání |
---|
126 | signálních skupin použity emulátory řadičů ELS3 firmy ELTODO. |
---|
127 | Ty to řadiče, strejně jako v reálné situaci kvůli bezpečnosti, mají |
---|
128 | pevně dané fáze a v nich definované průjezdnosti daných pruhů. |
---|
129 | Ovladatelné jsou pouze vnějí parametry, jako je délka cyklu, poměry časů fází |
---|
130 | a offset. V našenm případně budeme nastavovat pouze délku cyklu, po jakou se vystřídají |
---|
131 | všechny fáze. Offset a ani poměr fází, tedy i poměr doby zelených, se nemění. |
---|
132 | |
---|
133 | \subsection{Oblast simulace}\label{ss:oblast_simulace} |
---|
134 | Pro simulaci bylo použito schéma dvou křižovatek na ulici Řevnické. |
---|
135 | Následující schémata znázorňují křižovatky s označením |
---|
136 | 495 - Na Radosti a 601 - terminál BUS, jejich pruhy (VA, VB, VC, VD, VE, VF a VA, VAa, VB, VBa, VC, VD, VE, Se) |
---|
137 | a detektory, znázorněné zelenými obdélníky. |
---|
138 | |
---|
139 | \begin{figure}[H] |
---|
140 | \begin{center} |
---|
141 | {\includegraphics[width=12cm]{\obr 601.eps}} |
---|
142 | \caption{Křižovatka 601}\label{fig:601} |
---|
143 | \end{center} |
---|
144 | \end{figure} |
---|
145 | |
---|
146 | \begin{figure}[H] |
---|
147 | \begin{center} |
---|
148 | {\includegraphics[width=12cm]{\obr 495.eps}} |
---|
149 | \caption{Křižovatka 495}\label{fig:601} |
---|
150 | \end{center} |
---|
151 | \end{figure} |
---|
152 | |
---|
153 | |
---|
154 | \section{Popis algoritmu} |
---|
155 | |
---|
156 | |
---|