root/applications/doprava/texty/novotny_vyzk_LQ/Implementation/Implementation.tex @ 1427

Revision 1427, 9.5 kB (checked in by jabu, 12 years ago)

restrukturalizace

Line 
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
31každý agent ovládá signální skupiny jedné křižovatky a jsou mu dostupné příslušné údaje.
32Jako vhodná metoda bylo zvoleno LQ řízení, které se snaží minimalizovat fronty a penalizovat délku cyklu.
33
34\subsection{Přechodové vztahy}
35Jako ú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
36mé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,
40pří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}
44Křižovtkou z daného jízdního pruhu v průjezdné fázi projede $S$ vozidel za sekundu, kde
45délka průjezdné fáze závisí na nastaveném poměru a délce cyklu. Před přechodem do nové
46fáze signálího plánu je potřeba vklidit křižovatku, což vede ke ztrátovému času $L$, který
47se 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}
51a 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}
58Za řídící proměnnou tedy vezmeme
59\begin{equation}
60 y(t) = 1 - LC(t)^{-1} \;.
61\end{equation}
62takž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}
66kde $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}
70a $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}
81Pro simulaci byl použit mikorsimulátor dopravy
82AIMSUN (Advanced Interactive Microscopic Simulator for Urban and Non-Urban Networks).
83Podstatou mikroskopické simulace (mikrosimulace) je modelování
84jízdy jednotlivých vozidel po dané komunikační síti, přičemž se zohledňují všechny parametry
85infrastruktury i dopravních prostředků.
86V této kapitole je popsána základní charakteristika mikrosimulátoru AIMSUN.
87Podrobnější informace lze nalézt například v \cite{aimsunget}.
88\\
89\\
90AIMSUN potřebuje pro svůj běh simulační scénář skládající se z popisu dopravní sítě, plánů řízení dopravy,
91požadovaných dopravních data, a plánů hromadné dopravy
92a množinu simulačních parametrů definujících experiment.
93Popis dopravní sítě obsahuje geometrii sítě, popis křižovatek a rozmístění detektorů,
94Dopravní data se dají zadat dvěma způsoby: Pomocí matice opbsahující informace kolik jízd se uskuteční
95z uzlu $i$ do uzlu $j$. Každému vozidlu je tedy přiřazena trasa.
96V 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}
99VGS API je rozhraní napsané v jazyce C++, které rozšiřuje funkčnost mikrosimulátoru AIMSUN.
100Zjednodušuje simulaci reálné situace, kdy podle tabulek naměřených ručně
101nebo zaznamenaných údajů z dopravních detektorů generuje
102vozidla v průběhu simulace.
103\\
104\\
105Druhým důležitým úkolem VGS API je shromažďovat data potřebná pro
106běh experimentu a jeho. AIMSUN sice disponuje jednoduchým rozhraním pro
107vizualizaci dat a jejich export do textových souborů, není ale možné
108například porovnávat jednotlivé scénáře simulací. VGS API proto
109periodicky ukládá všechny klíčové ukazatele jak pro jednotlivé segmenty
110dopravní sítě, tak i pro celý simulovaný systém.
111Zprostředkovává tak důležitá data o počtu zastavení vozidla, o jeho zpoždění,
112průměrné rychlosti, době jízdy atd.
113Tato data jsou dostupná v průběhu simulace i po skončení k následujícímu zpracování.
114\\
115\\
116Důležitý údaj, které nám VGS API poskytuje, je délka fronty pro daný jízdní pruh.
117Fronta se podle dat z detektorů odhaduje velice obtížně, neboť ty vykazují zančnou chybovost,
118která u sledování průjezdů neni až tak zásadní, ale při použití na výpočet front by docházelo
119ke kumulaci této chyby a výsledky by byly prakticky nepoužitelné.
120Hlavní chyby detektorů spočívají v nerozpoznání mezery mezi vozidly a zpočtení
121dvou vozidel jako jedno, nebo zaznamenání jednoho vozidla dvěma detektory ve dvou
122jízdních pruzích zároveň.
123
124\subsection{Řadiče}
125Kvůli věrnějšímu napodobení skutečnosti, jsou použity k ovládání
126signálních skupin použity emulátory řadičů ELS3 firmy ELTODO.
127Ty to řadiče, strejně jako v reálné situaci kvůli bezpečnosti, mají
128pevně dané fáze a v nich definované průjezdnosti daných pruhů.
129Ovladatelné jsou pouze vnějí parametry, jako je délka cyklu, poměry časů fází
130a offset. V našenm případně budeme nastavovat pouze délku cyklu, po jakou se vystřídají
131vš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}
134Pro simulaci bylo použito schéma dvou křižovatek na ulici Řevnické.
135Následující schémata znázorňují křižovatky s označením
136495 - Na Radosti a 601 - terminál BUS, jejich pruhy (VA, VB, VC, VD, VE, VF a VA, VAa, VB, VBa, VC, VD, VE, Se)
137a 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}
155Základ hlavní smyčky programu je postaven
156na knihovně BDM (Bayesian Decision Making), vyvýjena na
157ústavu teorie informace a automatizace.
158Knihovna obsahuje třídu \texttt{Participant}, od
159které je odvozena základní třída agenta \texttt{BaseTrafficAgent}.
160Ta má předdefinované metody, které jsou volány v každém cyklu simulace.
161Jsou to metody \texttt{Adapt}, sloužící k získání dat, \texttt{Broadcast}, ve které
162se posílají data sousedním agentům, \texttt{Receive}, kde se zprávy příjímají a zpracovávají
163a \texttt{Act}, metoda určená pro nastavení řídících parametrů, v našem případě délky cyklu.
164\\
165\\
166Finální agent určený pro LQ řízení je odvozen od této ťrídy. V každém cyklu
167posílá ůdaje o délce front, zatížení detektorů a odbočovacích poměrec.
168Z těchto dat si poté podle rovnic \ref{eq:my_trans_02} a \ref{eq:my_trans_mat} sestaví
169matici $B$. Matice $A$ je jednotková a penalizační matice kvadratického kritéria $Q$ a $R$ jsou konstantně
170nastaveny podle významnosti dopravních pruhů. Tím jsou sestaveny vstupní parametry pro minimalizátor,
171který vypočte řídící matici $L$ potřebnou k získání optimální hodnoty délky cyklu.
172
173\section{Možné vylepšení do budoucna}
174
175\input{Implementation/ChangingFlow.tex}
Note: See TracBrowser for help on using the browser.