Читать книгу Pojazdy autonomiczne i systemy transportu autonomicznego - Maciej Kozłowski - Страница 11
1.2.1.1. Opis reguł ruchu
ОглавлениеW chwili ustalenia struktury grafu odzwierciedlającego topologię sieci PRT elementy dynamiczne (tj. pojazdy, zajezdnie, skrzyżowania, moduły logiczne) otrzymują warunki początkowe (między innymi położenia, prędkości, wagi). Po ustaleniu i zdefiniowaniu wszystkich elementów składowych automatu komórkowego można przejść do opisu reguł określających ewolucję automatu w czasie.
Jak wspomniano, wszystkie komórki zmieniają stan synchronicznie, realizując pojedynczy „tik” (krok iteracji) upływu czasu. Realizację tiku można podzielić na kilka faz, które scharakteryzowano poniżej.
1 Sprawdzanie reguł przejść – w tej fazie jest sprawdzany aktualny stan komórki oraz stany komórek sąsiednich.
2 Sprawdzanie sąsiedztwa – w tej fazie bada się, czy jedna z komórek sąsiednich nie wchodzi w stan, w którym wykonanie kolejnego kroku iteracji jest niezgodne z założonymi zasadami ewolucji automatu (np. jeden pojazd najedzie na drugi). Takie stany będziemy nazywali konfliktami. Należy wyeliminować wszystkie istniejące konflikty według ustalonych wcześniej reguł (np. przez redukcję prędkości).
3 Sprawdzanie warunków brzegowych – sprawdzane są komórki znajdujące się na krawędziach automatu komórkowego (np. gdy pojazd wjeżdża do zajezdni). Należy je usunąć z automatu (pojazdy przebywające w zajezdni nie biorą udziału w ewolucji automatu do chwili, w której z niej wyjadą).
4 Sprawdzanie liczby iteracji – jeśli jest to automat o skończonym, z góry określonym cyklu życiowym, w tej fazie sprawdza się, czy może nastąpić koniec ewolucji automatu.
Rys. 1.9. Ewolucja automatu komórkowego w czasie
Aktualizacja konfiguracji modelu w ramach taktu (automat komórkowy realizuje zmiany stanów synchronicznie) składa się z faz wykonywanych równolegle dla wszystkich pojazdów w sieci (rys. 1.9), które opisano poniżej.
1 Przyspieszanie – gdy prędkość pojazdu v jest mniejsza od prędkości maksymalnej (ustalonej dla pojazdu bądź na odcinku drogi) oraz dystans do kolejnego pojazdu jest większy niż v + 1 komórek, wówczas zwiększ prędkość o jedną jednostkę, czyli wykonaj v = v + 1 (drugi wiersz na rys. 1.9 − ograniczeniem prędkości jest 2, pojazd czerwony zmienił prędkość z 1 na 2).
2 Zwalnianie – jeśli dwa pojazdy poruszają się odcinkiem drogi jeden za drugim w odległości j komórek, upewnij się, czy prędkość pojazdu jadącego z tyłu wynosi co najwyżej j; jeśli ten warunek nie jest spełniony, zredukuj prędkość do j − 1, czyli wykonaj v = j − 1 (trzeci wiersz na rys. 1.9 − pojazd zielony zmniejszył prędkość z 2 do 0, ponieważ przed nim stoi inny pojazd).
3 Randomizacja prędkości (faza opcjonalna) – z prawdopodobieństwem p1 prędkość pojazdu jest zmniejszana o 1 (jeżeli jest ona większa od 0), czyli v = v – 1.
4 Randomizacja awarii (faza opcjonalna) – z prawdopodobieństwem p2 pojazd ulega awarii na ustaloną liczbę jednostek czasu (wtedy prędkość pojazdu jest ustawiana na 0 przez ten okres).
5 Pierwszeństwo i ruch – jeśli w następnym kroku iteracji (jednostce czasu) pojazd przejeżdża przez skrzyżowanie, sprawdź następujące warunki:gdy nie ma konfliktu na skrzyżowaniu, tzn. inny pojazd z innego kierunku nie będzie w tym samym czasie przejeżdżał przez skrzyżowanie, nie rób nic;w przeciwnym razie ustal kolejność przejazdu pojazdów (za szeregowanie jest odpowiedzialny moduł logiki omawiany w następnym punkcie); pojazd z pierwszeństwem przejazdu przejeżdża normalnie, natomiast pojazdy, które muszą ustąpić, zwalniają i czekają przed skrzyżowaniem;ruch: przenieś pojazdy o v komórek w kierunku jazdy (ostatni wiersz na rys. 1.9 − pojazd czerwony prawdopodobnie stoi przed skrzyżowaniem, które jest zajęte, ponieważ jego prędkość została zmniejszona do 0; pojazd zielony nadal stoi, a pozostałe pojazdy − niebieskie – zostały przesunięte odpowiednio do przodu).