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

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