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

Revision 1434, 11.5 kB (checked in by jabu, 13 years ago)

finalni verze

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, a tu 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 článku \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  $Y = \{j_1, ..., j_n\}$ &  & Množina signálních skupin &  \\
30  $Y_A \subset Y$ & \texttt{} & Množina signálních skupin agenta $A$ & Skupiny náležící jednomu agentovi \\
31  $I_j \subset Y$ & \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_0(t)$ je vektor s prvky $I_{0_{j}} = T i_{j,0}(t)$.
80
81\subsection{Minimalizace kritéria}
82Podobně jako v publikaci \cite{6_tuc_lq} budeme minimalizovat kvaratické kritérium $J$.
83Matici $I_0(t)$, která vyjadřuje příjezd vozidel z okolí do sledované sítě,
84budeme v rámci minimalizačního horizontu považovat za konstantu značenou $I_0$ a
85vztah \ref{eq:my_trans_mat} se dá tedy přepsat do tvaru
86\begin{equation}\label{eq:prechod_subs_01}
87  \left( \begin{array}{c} q(t+1) \\ 1 \end{array} \right)  =
88    \left( \begin{array}{cc} A_0 & I_0 \\ 0 & 1 \end{array} \right)
89    \left( \begin{array}{c} q(t) \\ 1 \end{array} \right)
90    +
91    \left( \begin{array}{c} B_0 \\ 0  \end{array} \right)
92    u(t)
93\;.
94\end{equation}
95Po provedení substituce
96\begin{equation}
97  \begin{array}{cccc}
98    x(t) = \left( \begin{array}{c} q(t) \\ 1 \end{array} \right) \;, &
99    A = \left( \begin{array}{cc} A_0 & I_0 \\ 0 & 1 \end{array} \right) \;, &   
100    B = \left( \begin{array}{c} B_0 \\ 0  \end{array} \right) \;,
101  \end{array} 
102\end{equation}
103se rovnice \ref{eq:prechod_subs_01} zjednoduší na
104\begin{equation}\label{eq:prechod_mat_po_subs}
105 x(t+1) = Ax(t) + Bu(t) \;,
106\end{equation}
107kde chybí konstantní člen. Poté již můžeme použít metodu popsanou v kapitole \ref{sec:minim}.
108
109\section{Popis algoritmu}
110Základ hlavní smyčky programu je postaven
111na knihovně BDM (Bayesian Decision Making), vyvýjena na
112ústavu teorie informace a automatizace.
113Knihovna obsahuje třídu \texttt{Participant}, od
114které je odvozena základní třída agenta \texttt{BaseTrafficAgent}.
115Ta má předdefinované metody, které jsou volány v každém cyklu simulace.
116Jsou to metody \texttt{Adapt}, sloužící k získání dat, \texttt{Broadcast}, ve které
117se posílají data sousedním agentům, \texttt{Receive}, kde se zprávy příjímají a zpracovávají
118a \texttt{Act}, metoda určená pro nastavení řídících parametrů, v našem případě délky cyklu.\\
119
120Finální agent určený pro LQ řízení je odvozen od této ťrídy. V každém cyklu
121posílá ůdaje o délce front, zatížení detektorů a odbočovacích poměrech.
122Z těchto dat si poté podle rovnic \ref{eq:my_trans_02} a \ref{eq:my_trans_mat} sestaví
123matici $B$. Matice $A$ je jednotková a penalizační matice kvadratického kritéria $Q$ a $R$ jsou konstantně
124nastaveny podle významnosti dopravních pruhů. Tím jsou sestaveny vstupní parametry pro minimalizátor,
125který vypočte řídící matici $L$ potřebnou k získání optimální hodnoty délky cyklu.
126Základní body algoritmu hlavní smyčky tedy jsou:
127\begin{itemize}
128 \item Získání potřebných údajů
129 \item Výměna dat se sousedními agenty
130 \item Sestavení matic pro minimalizaci
131 \item Minimalizace kritéria a získání optimální délky cyklu
132 \item Vyjednávání o délce cyklu
133 \item Nastavení délky cyklu
134\end{itemize}
135
136
137
138%\input{Implementation/ChangingFlow.tex}
139\input{Implementation/Minimalization.tex}
140
141
142
143
144
145\section{Simulace}
146Pro simulaci byl použit mikorsimulátor dopravy
147AIMSUN (Advanced Interactive Microscopic Simulator for Urban and Non-Urban Networks).
148Podstatou mikroskopické simulace (mikrosimulace) je modelování
149jízdy jednotlivých vozidel po dané komunikační síti, přičemž se zohledňují všechny parametry
150infrastruktury i dopravních prostředků.
151V této kapitole je popsána základní charakteristika mikrosimulátoru AIMSUN.
152Podrobnější informace lze nalézt například v \cite{aimsunget}.
153\\
154\\
155AIMSUN potřebuje pro svůj běh simulační scénář skládající se z popisu dopravní sítě, plánů řízení dopravy,
156požadovaných dopravních dat a plánů hromadné dopravy.
157Dále se AIMSUNU předává množina simulačních parametrů definujících experiment.
158Popis dopravní sítě obsahuje geometrii sítě, popis křižovatek a rozmístění detektorů,
159Dopravní data se dají zadat dvěma způsoby: Pomocí matice opbsahující informace kolik jízd se uskuteční
160z uzlu $i$ do uzlu $j$. Každému vozidlu je tedy přiřazena trasa.
161V druhé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ě.
162
163\subsubsection{VGS API}\label{ss:vgs_api}
164VGS API je rozhraní napsané v jazyce C++, které rozšiřuje funkčnost mikrosimulátoru AIMSUN.
165Zjednodušuje simulaci reálné situace, kdy podle tabulek naměřených ručně
166nebo zaznamenaných údajů z dopravních detektorů generuje
167vozidla v průběhu simulace.
168\\
169\\
170Druhým důležitým úkolem VGS API je shromažďovat data potřebná pro
171běh experimentu a jeho vyhodnocení. AIMSUN sice disponuje jednoduchým rozhraním pro
172vizualizaci dat a jejich export do textových souborů, není ale možné
173například porovnávat jednotlivé scénáře simulací. VGS API proto
174periodicky ukládá všechny klíčové ukazatele jak pro jednotlivé segmenty
175dopravní sítě, tak i pro celý simulovaný systém.
176Zprostředkovává tak důležitá data o počtu zastavení vozidla, o jeho zpoždění,
177průměrné rychlosti, době jízdy atd.
178Tato data jsou dostupná v průběhu simulace i po skončení k následujícímu zpracování.
179\\
180\\
181Důležitý údaj, který nám VGS API poskytuje, je délka fronty pro daný jízdní pruh.
182Fronta se podle dat z detektorů odhaduje velice obtížně, neboť ty vykazují zančnou chybovost,
183která u sledování průjezdů neni až tak zásadní, ale při použití na výpočet front by docházelo
184ke kumulaci této chyby a výsledky by byly prakticky nepoužitelné.
185Hlavní chyby detektorů spočívají v nerozpoznání mezery mezi vozidly a započtení
186dvou vozidel jako jedno, nebo zaznamenání jednoho vozidla dvěma detektory ve dvou
187jízdních pruzích zároveň.
188
189\subsection{Řadiče}
190Kvůli věrnějšímu napodobení skutečnosti, jsou použity k ovládání
191signálních skupin použity emulátory řadičů ELS3 firmy ELTODO.
192Ty to řadiče, strejně jako v reálné situaci kvůli bezpečnosti, mají
193pevně dané fáze a v nich definované průjezdnosti daných pruhů.
194Ovladatelné jsou pouze vnější parametry, jako je délka cyklu, poměry časů fází
195a offset. V našem případě budeme nastavovat pouze délku cyklu, po jakou se vystřídají
196všechny fáze. Offset ani poměr fází, tedy i poměr doby zelených, se nemění.
197
198\subsection{Oblast simulace}\label{ss:oblast_simulace}
199Pro simulaci bylo použito schéma dvou křižovatek na ulici Řevnické.
200Následující schémata znázorňují křižovatky s označením
201495 - Na Radosti a 601 - terminál BUS, jejich pruhy (VA, VB, VC, VD, VE, VF a VA, VAa, VB, VBa, VC, VD, VE, Se)
202a detektory, znázorněné zelenými obdélníky.
203
204\begin{figure}[H]
205\begin{center}
206    {\includegraphics[width=12cm]{\obr 601.eps}}
207    \caption{Křižovatka 601}\label{fig:601}
208\end{center}
209\end{figure}
210
211\begin{figure}[H]
212\begin{center}
213    {\includegraphics[width=12cm]{\obr 495.eps}}
214    \caption{Křižovatka 495}\label{fig:601}
215\end{center}
216\end{figure}
217
218
219
220\section{Možné vylepšení do budoucna}\label{sec:vylepseni}
221
222\input{Implementation/ChangingFlow.tex}
Note: See TracBrowser for help on using the browser.