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

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