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 |
---|
6 | za použití multiagentního systému, kde |
---|
7 | každý agent ovládá signální skupiny jedné křižovatky a jsou mu dostupné příslušné údaje. |
---|
8 | Jako vhodná metoda bylo zvoleno LQ řízení, které jako stavovou proměnnou |
---|
9 | bere délku fornty, a tu se snaží minimalizovat pomocí nalezení |
---|
10 | vhodné hodnoty řídící proměnné, délku cyklu.\\ |
---|
11 | |
---|
12 | V následující části se budeme zabývat jak metodu popsanou v kapitolách \ref{sec:lq} a \ref{sec:lq_tuc} |
---|
13 | transformovat na decentralizované řízení délky cyklu v oblasti Praha-Zličín. Jako výchozí bod |
---|
14 | budeme 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} |
---|
44 | 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 |
---|
45 | mé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, |
---|
49 | pří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} |
---|
53 | Křižovtkou z daného jízdního pruhu v průjezdné fázi projede $S$ vozidel za sekundu, kde |
---|
54 | délka průjezdné fáze závisí na nastaveném poměru a délce cyklu. Před přechodem do nové |
---|
55 | fáze signálího plánu je potřeba vklidit křižovatku, což vede ke ztrátovému času $L$, který |
---|
56 | se 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} |
---|
60 | a 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} |
---|
67 | Za řídící proměnnou tedy vezmeme |
---|
68 | \begin{equation} |
---|
69 | y(t) = 1 - LC(t)^{-1} \;. |
---|
70 | \end{equation} |
---|
71 | takž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} |
---|
75 | kde $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} |
---|
79 | a $I_0(t)$ je vektor s prvky $I_{0_{j}} = T i_{j,0}(t)$. |
---|
80 | |
---|
81 | \subsection{Minimalizace kritéria} |
---|
82 | Podobně jako v publikaci \cite{6_tuc_lq} budeme minimalizovat kvaratické kritérium $J$. |
---|
83 | Matici $I_0(t)$, která vyjadřuje příjezd vozidel z okolí do sledované sítě, |
---|
84 | budeme v rámci minimalizačního horizontu považovat za konstantu značenou $I_0$ a |
---|
85 | vztah \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} |
---|
95 | Po 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} |
---|
103 | se 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} |
---|
107 | kde chybí konstantní člen. Poté již můžeme použít metodu popsanou v kapitole \ref{sec:minim}. |
---|
108 | |
---|
109 | \section{Popis algoritmu} |
---|
110 | Základ hlavní smyčky programu je postaven |
---|
111 | na knihovně BDM (Bayesian Decision Making), vyvýjena na |
---|
112 | ústavu teorie informace a automatizace. |
---|
113 | Knihovna obsahuje třídu \texttt{Participant}, od |
---|
114 | které je odvozena základní třída agenta \texttt{BaseTrafficAgent}. |
---|
115 | Ta má předdefinované metody, které jsou volány v každém cyklu simulace. |
---|
116 | Jsou to metody \texttt{Adapt}, sloužící k získání dat, \texttt{Broadcast}, ve které |
---|
117 | se posílají data sousedním agentům, \texttt{Receive}, kde se zprávy příjímají a zpracovávají |
---|
118 | a \texttt{Act}, metoda určená pro nastavení řídících parametrů, v našem případě délky cyklu.\\ |
---|
119 | |
---|
120 | Finální agent určený pro LQ řízení je odvozen od této ťrídy. V každém cyklu |
---|
121 | posílá ůdaje o délce front, zatížení detektorů a odbočovacích poměrech. |
---|
122 | Z těchto dat si poté podle rovnic \ref{eq:my_trans_02} a \ref{eq:my_trans_mat} sestaví |
---|
123 | matici $B$. Matice $A$ je jednotková a penalizační matice kvadratického kritéria $Q$ a $R$ jsou konstantně |
---|
124 | nastaveny podle významnosti dopravních pruhů. Tím jsou sestaveny vstupní parametry pro minimalizátor, |
---|
125 | který vypočte řídící matici $L$ potřebnou k získání optimální hodnoty délky cyklu. |
---|
126 | Zá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} |
---|
146 | Pro simulaci byl použit mikorsimulátor dopravy |
---|
147 | AIMSUN (Advanced Interactive Microscopic Simulator for Urban and Non-Urban Networks). |
---|
148 | Podstatou mikroskopické simulace (mikrosimulace) je modelování |
---|
149 | jízdy jednotlivých vozidel po dané komunikační síti, přičemž se zohledňují všechny parametry |
---|
150 | infrastruktury i dopravních prostředků. |
---|
151 | V této kapitole je popsána základní charakteristika mikrosimulátoru AIMSUN. |
---|
152 | Podrobnější informace lze nalézt například v \cite{aimsunget}. |
---|
153 | \\ |
---|
154 | \\ |
---|
155 | 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, |
---|
156 | požadovaných dopravních dat a plánů hromadné dopravy. |
---|
157 | Dále se AIMSUNU předává množina simulačních parametrů definujících experiment. |
---|
158 | Popis dopravní sítě obsahuje geometrii sítě, popis křižovatek a rozmístění detektorů, |
---|
159 | Dopravní data se dají zadat dvěma způsoby: Pomocí matice opbsahující informace kolik jízd se uskuteční |
---|
160 | z uzlu $i$ do uzlu $j$. Každému vozidlu je tedy přiřazena trasa. |
---|
161 | V 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} |
---|
164 | VGS API je rozhraní napsané v jazyce C++, které rozšiřuje funkčnost mikrosimulátoru AIMSUN. |
---|
165 | Zjednodušuje simulaci reálné situace, kdy podle tabulek naměřených ručně |
---|
166 | nebo zaznamenaných údajů z dopravních detektorů generuje |
---|
167 | vozidla v průběhu simulace. |
---|
168 | \\ |
---|
169 | \\ |
---|
170 | Druhým důležitým úkolem VGS API je shromažďovat data potřebná pro |
---|
171 | běh experimentu a jeho vyhodnocení. AIMSUN sice disponuje jednoduchým rozhraním pro |
---|
172 | vizualizaci dat a jejich export do textových souborů, není ale možné |
---|
173 | například porovnávat jednotlivé scénáře simulací. VGS API proto |
---|
174 | periodicky ukládá všechny klíčové ukazatele jak pro jednotlivé segmenty |
---|
175 | dopravní sítě, tak i pro celý simulovaný systém. |
---|
176 | Zprostředkovává tak důležitá data o počtu zastavení vozidla, o jeho zpoždění, |
---|
177 | průměrné rychlosti, době jízdy atd. |
---|
178 | Tato data jsou dostupná v průběhu simulace i po skončení k následujícímu zpracování. |
---|
179 | \\ |
---|
180 | \\ |
---|
181 | Důležitý údaj, který nám VGS API poskytuje, je délka fronty pro daný jízdní pruh. |
---|
182 | Fronta se podle dat z detektorů odhaduje velice obtížně, neboť ty vykazují zančnou chybovost, |
---|
183 | která u sledování průjezdů neni až tak zásadní, ale při použití na výpočet front by docházelo |
---|
184 | ke kumulaci této chyby a výsledky by byly prakticky nepoužitelné. |
---|
185 | Hlavní chyby detektorů spočívají v nerozpoznání mezery mezi vozidly a započtení |
---|
186 | dvou vozidel jako jedno, nebo zaznamenání jednoho vozidla dvěma detektory ve dvou |
---|
187 | jízdních pruzích zároveň. |
---|
188 | |
---|
189 | \subsection{Řadiče} |
---|
190 | Kvůli věrnějšímu napodobení skutečnosti, jsou použity k ovládání |
---|
191 | signálních skupin použity emulátory řadičů ELS3 firmy ELTODO. |
---|
192 | Ty to řadiče, strejně jako v reálné situaci kvůli bezpečnosti, mají |
---|
193 | pevně dané fáze a v nich definované průjezdnosti daných pruhů. |
---|
194 | Ovladatelné jsou pouze vnější parametry, jako je délka cyklu, poměry časů fází |
---|
195 | a offset. V našem případě budeme nastavovat pouze délku cyklu, po jakou se vystřídají |
---|
196 | vš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} |
---|
199 | Pro simulaci bylo použito schéma dvou křižovatek na ulici Řevnické. |
---|
200 | Následující schémata znázorňují křižovatky s označením |
---|
201 | 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) |
---|
202 | a 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} |
---|