• Nie Znaleziono Wyników

Metody i algorytmy obszarowego sterowania ruchem drogowym Methods and algorithms of area traffic control

N/A
N/A
Protected

Academic year: 2021

Share "Metody i algorytmy obszarowego sterowania ruchem drogowym Methods and algorithms of area traffic control"

Copied!
27
0
0

Pełen tekst

(1)

 

Piotr Kawalec

Politechnika Warszawska, Wydział Transportu

Sylwia Sobieszuk-Durka

Urząd m. st. Warszawy, Biuro Drogownictwa i Komunikacji

METODY I ALGORYTMY OBSZAROWEGO

STEROWANIA RUCHEM DROGOWYM

Rękopis dostarczono, wrzesień 2011

Streszczenie: W artykule przedstawiono wybrane metody obszarowego sterowania ruchem

drogowym oraz opisano niektóre ze sposobów zapisu algorytmów srd. Dla rzeczywistego obszaru miasta zaprezentowano algorytm sterowania ruchem, utworzony z wykorzystaniem wspomagania komputerowego. Do specyfikacji algorytmu wykorzystano grafy przejść automatów skończonych, w tym grafy hierarchiczne. Opracowane algorytmy sterowania obszarowego zostały wyspecyfikowane w edytorze FSM, pozwalającym na weryfikację poprawności działania algorytmu w trybie funkcjonalnej symulacji komputerowej. Przytoczono wyniki specyfikacji i weryfikacji opracowanych algorytmów, oraz ich implementacji w programowalnych strukturach logicznych FPGA.

Słowa kluczowe: sterowanie ruchem drogowym, sterowanie obszarowe, algorytmy sterowania

adaptacyjnego, grafy hierarchiczne, układy FPGA

1. WSTĘP

Obserwowany od lat rozwój motoryzacji, którego niezwykła i nieprzewidziana intensywność daje się we znaki obecnie, oraz jego skutki, zauważalne szczególnie w obszarach miejskich, stały się oczywistym impulsem do poszukiwania nowych, bardziej złożonych metod sterowania ruchem drogowym. Usystematyzowany podział metod adaptacyjnego sterowania ruchem drogowym, z uwzględnieniem, bądź bez uwzględnienia, optymalizacji funkcji celu, przedstawiono na rys. 1 [6].

(2)

   

Rys. 1. Klasyfikacja metod sterowania ruchem drogowym

Nowe, z jednej strony - wymagania i obiektywne potrzeby, z drugiej – subiektywne (czasem wykluczające się wzajemnie) oczekiwania pewnych grup użytkowników w zakresie efektów sterowania ruchem, nakładają na projektantów sygnalizacji świetlnej obowiązek zmagania się z nierzadko bardzo złożonym, wielokryterialnym problemem. Właściwe jego rozwiązanie, a więc: znalezienie stosownej metody (zgodnej z zakładaną funkcją celu), wyznaczenie optymalnego algorytmu sterowania a następnie umożliwienie jego realizacji poprzez odpowiedni (kompatybilny pod względem systemowym, technicznym i sprzętowym) jego zapis, jest podstawą do uzyskiwania poprawnych rozwiązań [10].

2. METODY STEROWANIA OBSZAROWEGO

Kluczowym etapem procesu tworzenia projektu ruchowego każdej sygnalizacji świetlnej jest wybór sposobu sterowania. Cykliczne, bądź lokalnie adaptacyjne sterowanie na pojedynczym odosobnionym skrzyżowaniu, funkcjonujące na bazie choćby najskrupulatniej przygotowanego programu sygnalizacji, w sytuacji sąsiedztwa nierzadko wielu skrzyżowań sterowanych okazało się rozwiązaniem, co najmniej niewystarczającym. Zwiększająca się liczba skrzyżowań z sygnalizacją świetlną oraz dodatkowo fakt powszechnie już w miastach panujących stanów przeciążeń skrzyżowań, zrodziły potrzebę uzależniania od siebie (koordynowania, synchronizowania) sąsiednich sygnalizacji.     Skrzyżowanie nieprzeciążone Skrzyżowanie przeciążone Skrzyżowanie nieprzeciążone Skrzyżowanie przeciążone

Z optymalizacją funkcji celu

Wybór programu sygnalizacji

Sterowanie maksymalnym

przepływem pojazdów Sterowanie z wyrównaniem stopnia obciążenia

Bez optymalizacji funkcji celu

Sterowanie długością kolejki Wybór programu sygnalizacji z modyfikacją sygnałów zielonych Sterowanie długością

kolejki Sterowanie z wyrównaniem strat czasu Sterowanie z minimalizacją strat czasu

Wybór faz sygnalizacji Sterowanie z minimalizacją

strat czasu Sterowanie długością kolejki z minimalizacją strat czasu

(3)

Rys. 2. Wykres liniowej koordynacji sygnalizacji wraz z oznaczeniami podstawowych parametrów

Pierwsze z nowych metod, polegające na liniowej koordynacji sygnalizacji świetlnej (np. MAXBAND, SIGPROG, czy polskie: KORD, KORS), służące do zwiększania efektywności cyklicznego sterowania sygnalizacją na ciągach komunikacyjnych charakteryzowała wspólna cecha: jednakowy główny cel optymalizacji, tj. maksymalizacja sumy szerokości wiązek koordynacyjnych. Sposób optymalizacji, właściwy dla każdej z metod, sprowadza się tu zwykle do doboru (w pewnym narzuconym zakresie swobody) parametrów sterowania, takich, jak: szerokości wiązek koordynacyjnych, wartości offsetów, długość cyklu, splity lub długości sygnałów zielonych, przy wcześniej zdefiniowanych wielkościach charakteryzujących rozpatrywany ciąg (np. liczba skrzyżowań, odległości między nimi, proponowane czasy otwarcia dla kierunków koordynowanych, prędkość – średnia lub jej zakres od minimum do maksimum, proponowana długość cyklu lub jego zakres, czas przejazdu, itp.).

Wynikiem prowadzonych wspomnianymi metodami obliczeń, oprócz konkretnych wartości liczbowych, jest charakterystyczny wykres koordynacji, ilustrujący podstawowe jej parametry (rys. 2). Przedstawiony wykres jest wynikiem prowadzonych jeszcze w latach 70 przez biuro BPBK „Stolica” prac nad algorytmem liczenia koordynacji ulicznej sygnalizacji świetlnej (pisanego wówczas w języku FORTRAN 1900). Jest to ilustracja problemu koordynacji w prostokątnym układzie współrzędnych, gdzie na osi czasu (t) są odkładane odcinki odpowiadające założonej długości cyklu sygnalizacyjnego c, jednakowego dla wszystkich skrzyżowań rozpatrywanego ciągu.

Dla każdego ze skrzyżowań wydzielono tzw. czas otwarcia wlotu (tu interpretowany jako sygnał zielony wraz z czasem międzyzielonym) gi oraz czas zamknięcia wlotu.

(4)

Na osi drogi (l) są umieszczone punkty odpowiadające kolejnym, ponumerowanym skrzyżowaniom. Pierwsze skrzyżowanie jest umieszczone w początku układu współrzędnych. Odległość skrzyżowania i-tego od skrzyżowania pierwszego jest oznaczona li. l1 jest więc równa 0. W powyższy układ prostokątny wrysowano prostą ruchu

w kierunku A o równaniu (1).

t = 1/νA l (1) gdzie:

νA – jest prędkością średnią pojazdu poruszającego się w kierunku A,

1/νA – odpowiada współczynnikowi kierunkowemu tej prostej.

Fazy zielone na każdym skrzyżowaniu usytuowano tak, by przechodziła przez nie prosta ruchu, pamiętając o tym, by warunek ten zachodził dla obu kierunków ruchu. Konfiguracja faz zielonych cyklu na skrzyżowaniach powinna być taka, by jak najwięcej pojazdów mogło przejechać przez cały ciąg bez zatrzymania. Miarą tych pojazdów może być czas upływający pomiędzy momentem przejazdu przez dowolny punkt ciągu pierwszego i ostatniego pojazdu z grupy pojazdów jadących bez zatrzymania w poszczególnych kierunkach. Jest to nic innego jak wspominana wcześniej szerokość wiązek koordynacyjnych [12].

Metody koordynacji sygnalizacji świetlnej ulegały nieustannym modyfikacjom, zarówno ze względu na zwiększające się możliwości obliczeniowe, sprzętowe, jak i samo zmieniające się podejście do zagadnień sterowania ruchem. Niewątpliwie wiele z nowych rozwiązań powstało za sprawą rozwijających się równolegle: z jednej strony – metod sterowania adaptacyjnego, dających nowe możliwości za równo na lokalnym, jak i wyższym poziomie sterowania, z drugiej zaś - zrozumiałych tendencji sieciowego traktowania problemu synchronizacji sygnałów na sterowanych skrzyżowaniach.

Nasycenie układów komunikacyjnych i zauważalne problemy z przepustowością wlotów (szczególnie podporządkowanych) skrzyżowań wpłynęły znacząco na poszerzenie zbioru kryteriów optymalizacji. Popularne dotąd pojęcie „zielonej fali” związane z maksymalizacją szerokości wiązek koordynacyjnych wzdłuż ciągu skrzyżowań musiało zostać częściowo wyparte bądź przynajmniej uzupełnione kryteriami dotyczącymi lokalnych i globalnych strat czasu, liczby zatrzymań, czy długości kolejek, a niejednokrotnie jeszcze dopełnione koniecznością uprzywilejowania środków transportu zbiorowego.

Nowe potrzeby umożliwiły rozwój kolejnych metod, w zasadzie już systemów sterowania, od których oczekuje się, że funkcja celu łączyć będzie w sobie odpowiednio zdefiniowaną kombinację wielu kryteriów (nie pomijając przy tym faktu umiejscowienia skrzyżowań na przecięciu zazwyczaj co najmniej dwóch ciągów), dając tym samym optymalnie najefektywniejsze rezultaty.

Do jednych z bardziej popularnych współcześnie metod obszarowego sterowania ruchem drogowym należą m.in.: TRANSYT, MOTION i UTOPIA. Jako systemy nowej generacji, opierają się na realizacji sterowania poprzez wybór bądź generację planów sygnalizacji i dostosowaniu, bezpośrednim lub pośrednim, parametrów algorytmów sterowania do aktualnie występującej sytuacji ruchowej (informacje o ruchu zbierane na bieżąco przez detektory ruchu, odpowiednio przetwarzane). Nie podlegają one tak silnym

(5)

ograniczeniom czasu uaktualniania parametrów sterowania, jak systemy starszych generacji. Parametrami wyznaczanymi w procesie obliczania mogą być: split, offset, cykl, momenty rozpoczęcia poszczególnych grup bądź faz ruchu na skrzyżowaniach objętych sterowaniem.

Metodę TRANSYT (TRAffic Network StudY Tool) cechuje uniwersalność w zakresie uwzględnienia poszczególnych parametrów ruchu. Optymalizacja koordynacji w tej metodzie opiera się na procesie makrosymulacji potoków ruchu, a jej charakterystycznymi elementami są:

− model ruchu używany do obliczeń wartości funkcji strat dla danego zestawu offsetów i długości sygnałów zielonych,

− skokowa procedura optymalizacyjna.

Oprócz warunków na niezmienność offsetów i długości cykli zakłada się, że do skrajnych skrzyżowań oraz wlotów ruch dopływa równomiernie ze stałą wartością oraz, że procentowe udziały relacji skrętnych są stałe w poszczególnych cyklach.

Metoda TRANSYT jest też dobrym przykładem na wykorzystanie tak istotnych kombinowanych kryteriów optymalizacji. Funkcja celu łączy bowiem w sobie m.in.: względy ekonomiczne, ochrony środowiska, strat czasu oraz liczbę zatrzymań. Funkcję tę w literaturze opisuje się wzorem (2) [3]:

1 ( , ) ( ) 100 n i i i i i i i K ZD G W w d k z = ϕ =

⋅ ⋅ + ⋅ ⋅ zl h ⎡ ⎤ ⎢ ⎥ ⎣ ⎦ (2) gdzie: , ( i i)

ZDϕG – funkcja strat w sieci zależnych od zestawu offsetów ϕi i długości sygnałów zielonych Gi,

n – liczba połączeń w sieci,

W – ogólny koszt przeciętnej pojazdogodziny strat czasu [zł/E h], K – ogólny koszt 100 zatrzymań pojazdów [zł/100z],

wi – waga strat czasu na połączeniu i,

ki – waga zatrzymań na połączeniu i,

– straty czasu na połączeniu i [E h/h], – liczba zatrzymań na połączeniu i [z/h].

W obliczaniu strat czasu bazuje się na określeniu średniej długości kolejki pojazdów na wlocie w przedziale czasu. Wtedy wartość strat czasu w przedziale czasu otrzymuje się mnożąc średnią długość kolejki przez długość przedziału [12]. Ogólny schemat obrazujący ideę metody, wykorzystywanej aktualnie przez program komputerowy TRANSYT 13, przedstawiono na rys. 3 [1].

(6)

Rys. 3. Struktura programu „TRANSYT”

MOTION (Method for Optimization of Traffic signals in Online controlled Networks) jest również metodą o strukturze scentralizowanej. Reprezentowana przez program SITRAFIC MOTION posługuje się procedurą działania jak na rys. 4 [2].

Rys. 4. Idea sterowania w systemie MOTION   Model ruchu drogowego Zmiana ustawień sygnalizacji Wskaźnik efektywności Procedura optymalizacji Dane o sieci, dane o ruchu Sieć skrzyżowań Początkowe ustawienie sygnalizacji Straty czasu i liczba zatrzymań w sieci Wykresy charakterystyk ruchu dla danego cyklu optymalne programy sygnalizacji Dane optymalizacyjne Program „TRANSYT”

(7)

Metoda MOTION polega na automatycznym wyborze lub generowaniu programów sygnalizacji świetlnej skrzyżowań, dopasowując je do aktualnych warunków ruchu. Pierwszym etapem w systemie, po uprzednim zlokalizowaniu i zdefiniowaniu odpowiednich punktów pomiarowych, jest zbieranie informacji o ruchu na kluczowych ulicach wjazdowych i wyjazdowych z obszaru. Uzyskane dane, wstępnie przetworzone na poziomie sterowników lokalnych, przesyłane są do centrum systemu. Tam odbywa się analiza otrzymanych wartości i ewentualne uzupełnienie brakujących, umożliwiające stworzenie swoistej chwilowej charakterystyki sytuacji w sieci. Na jej podstawie system optymalizuje zmienne sterujące dla poszczególnych programów sygnalizacji w celu osiągnięcia najkorzystniejszych efektów sterowania w skoordynowanej sieci. Decyzje o kolejnych zmianach w programach sygnalizacji podejmowane są po stwierdzeniu możliwości uzyskania zauważalnych korzyści [2].

Rozpoznawanie sytuacji ruchowej w MOTION rozumiane jest jako zbieranie danych dotyczących: natężenia ruchu, struktury kierunkowej, występujących zatorów, średniej i maksymalnej długości kolejek, czasu oczekiwania. Na ich podstawie w sterowniku centralnym następuje pierwszy dobór parametrów sterowania, takich jak: offset, cykl, kolejność faz, zakres długości sygnałów zielonych dla poszczególnych grup użytkowników. Po oszacowaniu właściwych im wskaźników, np. liczby zatrzymań czy przepustowości, wartości parametrów sterowania poddawane są optymalizacji i ostatecznie przesyłane do sterowników lokalnych.

UTOPIA (Urban Traffic Optimisation by Integrated Automation) jest jednym z bardziej zaawansowanych adaptacyjnych systemów obszarowego sterowania ruchem o strukturze typowo zdecentralizowanej. Jego działanie oparte jest na metodach rozproszonej inteligencji, a proces optymalizacji zachodzi już na poziomie pojedynczego skrzyżowania.

Podstawą UTOPII jest predykcja. System przewiduje, na podstawie aktualnych histogramów potoków ruchu, jak będzie się kształtował ruch pojazdów w najbliższym czasie i wyznacza najkorzystniejszą strategię sterowania. Mimo, że strategia zasadniczo odnosi się do całego obszaru sterowania, podyktowana jest funkcjami kosztów wyznaczanymi osobno dla każdego ze skrzyżowań sieci, uwzględniając przy tym wpływ na skrzyżowania sąsiadujące. Działanie takie możliwe jest dzięki charakterystycznej dla sterowania zdecentralizowanego komunikacji między sterownikami lokalnymi.

UTOPIA pozwala również na zdefiniowanie w obrębie systemu specjalnych korytarzy koordynacyjnych. Ich implementacja polega na nadaniu wyższego niż standardowo współczynnika wagowego dla danego kierunku. Współczynniki wagowe mogą być dobierane dowolnie i dynamicznie przez zarządzającego siecią lub automatycznie wg wcześniej zaprogramowanego scenariusza.

Struktura systemu opiera się na trzech poziomach funkcjonalnych: układu detekcji i sterowników lokalnych, jednostki lokalnej (tzw. SPOT) oraz sterownika nadrzędnego.

Do zbierania informacji o ruchu służy specjalny układ detektorów (rys. 5). Detektory wyjściowe lokalizowane są na wylotach ze skrzyżowań zwykle wzdłuż kierunku głównego. Ich zadaniem jest przede wszystkim zliczanie pojazdów opuszczających poszczególne skrzyżowania. Pozyskiwaniu informacji o pojazdach wjeżdżających na wlot skrzyżowania służą detektory wejściowe, lokalizowane w odległości około 150 – 80 m od linii zatrzymania, zależnie od występujących na wlotach prędkości. Mimo, że system posiada algorytmy pozwalające na obliczanie modelu ruchu w oparciu o zredukowany system detekcji, dla jakości pomiarów istotna jest odpowiednia liczba użytych detektorów.

(8)

W celu zwiększenia elastyczności sterowania, szczególnie w okresach pozaszczytowych, możliwe jest zastosowanie dodatkowych detektorów zlokalizowanych tuż przy liniach zatrzymania zazwyczaj wlotów podporządkowanych [3, 7].

Rys. 5. Lokalizacja i rodzaje detektorów w systemie sterowania UTOPIA – SPOT

Sterowniki lokalne systemu odpowiedzialne są za pracę sygnalizacji na konkretnym skrzyżowaniu zgodnie z poleceniami otrzymanymi z wyższego poziomu – SPOT, oraz za ewentualne sterowanie awaryjne w przypadku braku informacji ze SPOT. Poziom SPOT odpowiedzialny jest za optymalizację sterowania na skrzyżowaniach poprzez określenie, za pomocą zaimplementowanego algorytmu opisującego funkcję celu zależną od ruchu, wartości zmiennych sterujących. Poszczególne jednostki SPOT wymieniają się informacjami o warunkach ruchu oraz wyznaczonych strategiach sterowania.

Pomimo dużej liczby i różnorodności współczesnych metod obszarowego sterowania ruchem drogowym, reprezentujące je systemy łączy wspólna cecha: wysoka złożoność – zarówno w od strony formalnej (struktura), jak i funkcjonalnej (proces sterowania). Dlatego często korzysta się z podziału grup pomiędzy różne podsystemy. I tak wyróżnić można co najmniej [3]:

podsystem zbioru, transmisji i przetwarzania danych o ruchu – odgrywający ważną rolę w zamkniętych systemach sterowania, składający się zazwyczaj z detektorów, stacji transmisji danych (modemów), pamięci i procesora, połączeń kablowych miedzy poszczególnymi urządzeniami,

podsystem sterowania ruchem – stanowiący zasadniczą część systemu, występujący we wszystkich systemach srd,

podsystem kontroli, sygnalizacji i dokumentacji – nadzorujący pracę całego systemu sterowania i wykrywający uszkodzenia i nieprawidłowości pracy.

Zależnie od liczby i rodzaju warstw systemu, umiejscowienia poszczególnych podsystemów funkcjonalnych czy sposobu komunikacji pomiędzy jego elementami, sprzyjające uproszczeniu pracy przy jego tworzeniu bądź analizie, jest stworzenie umownej struktury systemu sterowania.

detektory wejściowe detektory wyjściowe detektory dodatkowe

(9)

3. STRUKTURY SYSTEMÓW STEROWANIA RUCHEM

DROGOWYM

W przypadku sterowania ruchem drogowym, systemy sterowania, oprócz typowych podziałów, np. ze względu na sposób zbierania informacji o obiekcie (zamknięte lub otwarte – rys. 6), dzielą się dodatkowo na dwa podstawowe typy: scentralizowane i zdecentralizowane (rys. 7).

System scentralizowany to taki, w którym wszystkie lub prawie wszystkie decyzje są podejmowane w jednym miejscu obszaru i na jednym poziomie, tzn. w sterowniku centralnym, a wszystkie sterowniki lokalne i detektory są połączone bezpośrednio z nim; sterowniki lokalne są wówczas jedynie urządzeniami wykonawczymi. Na takim systemie opiera się metoda SCOOT, TRANSYT, MOTION.

Rys. 6. Schematy blokowe systemów sterowania: a) otwartego bez pomiaru zakłóceń, b) otwartego z pomiarem zakłóceń, c) zamkniętego

W systemie zdecentralizowanym, będącym trójwarstwowym układem składającym się z trzech poziomów: centralnego, nadrzędnego i lokalnego, istnieje możliwość podejmowania decyzji o sterowaniu w różnych punktach obszaru i na różnych poziomach; sterowniki lokalne mogą sterować skrzyżowaniem samodzielnie lub na podstawie ogólnych wymagań narzuconych przez sterownik nadrzędny lub centralny (np. UTOPIA).

US OS z U y US OS z U y a) b) c) OS US z U y

(10)

Rys. 7. Schematy systemów sterowania ruchem drogowym: a) scentralizowanego, b) zdecentralizowanego

Wyróżnia się również systemy łączące pewne cechy centralizacji i decentralizacji (tzw. mieszane, częściowo scentralizowane lub częściowo zdecentralizowane), w których funkcje sterowania są podzielone pomiędzy centrum sterowania i sterowniki lokalne, a poziom nadrzędny pełni wyłącznie rolę nadzorującą.

Łatwo zauważyć, że bez względu na wykorzystywaną metodę sterowania czy rodzaj systemu, wszystkie z nich charakteryzuje istnienie kilku zasadniczych poziomów sterowania. Poziomy te, choć odmienne w różnych systemach, zawsze wykazują pewną hierarchiczną zależność w strukturze danego systemu.

Funkcje poszczególnych poziomów (podsystemów funkcjonalnych), zależności między nimi, a przede wszystkim oczekiwane reakcje na określone sytuacje drogowe, czyli procedury podejmowania decyzji, muszą być w odpowiedni sposób zapisane. Opis taki – algorytm – jest bez wątpienia najistotniejszym elementem każdego systemu sterowania, a jego opracowanie (po uprzednio właściwie ustalonym matematycznym modelu obiektu) stanowi bezwzględnie najważniejszy etap projektowania systemu sterowania.

4. SPOSOBY ZAPISU ALGORYTMÓW ADAPTACYJNEGO

STEROWANIA RUCHEM DROGOWYM

Algorytm, ze względu na zawarty w nim opis zależności oraz funkcję podejmowania decyzji zależnych często od wielu i bardzo różnych zmiennych wejściowych, jest elementem zasadniczym całego systemu, a w szczególności układu sterującego. Jego forma, odpowiednia dla danego systemu oraz realizujących go urządzeń, odgrywa zawsze znaczącą rolę w procesie modelowania systemu sterowania.

Wśród algorytmów sterowania ruchem drogowym spotyka się następujące ich formy: − opis słowny (lista koków),

− opis tabelaryczny, Sterownik centralny SL SL SL D D D D D D Sterownik nadrzędny SL SL SL D D D D D D a) b)

(11)

− schemat blokowy (sieć działań),

− procedura zapisana językiem programowania (program komputerowy) lub językiem opisu sprzętu.

Opis słowny, ze względu na małą przejrzystość i wątpliwą przydatność w przypadku długich i skomplikowanych procedur, nie powinien być rekomendowany do stosowania dla algorytmów sterowania ruchem drogowym, które (w przypadku zaawansowanych metod sterowania) charakteryzują się wysoką złożonością.

Rys. 8. Fragment algorytmu sterowania ruchem drogowym w postaci tabelarycznej Tabelaryczna forma algorytmów srd (rys. 8), mimo swej prostoty i przejrzystości, choć często spotykana [8] – nie jest tak popularna w projektach sygnalizacji świetlnej, jak postać schematu blokowego (rys. 9). Sieć działań przedstawiona za pomocą schematu blokowego jest graficznym zapisem algorytmu rozwiązania zadania, przedstawiającym opis i kolejność wykonywania czynności. W schemacie blokowym poszczególne operacje przedstawione są za pomocą odpowiednio połączonych skrzynek (bloków: decyzyjnych i stanów). Połączenia określają kolejność i sposób wykonywania operacji realizujących dany algorytm [9].

Inną formą przedstawiania algorytmów sterowania ruchem drogowym, popularną szczególnie w dobie rozwijającej się informatyzacji, mogą być języki programowania. Do najbardziej znanych i najczęściej stosowanych należą m.in.: ABC, Algol, Asembler, Basic, Beta, C, C++, Delphi, Fortran, Java, Pascal, Perl i inne. W procesie tworzenia systemu sterowania są one wyjątkowo przydatne na etapie implementacji algorytmu w sterowniku sygnalizacji świetlnej. Producenci urządzeń sterujących tworzą często autorskie języki programowania, kompatybilne wyłącznie z określoną grupą sterowników.

Mając na względzie cały proces modelowania systemu obszarowego sterowania ruchem - od momentu sformułowania zadania i określenia danych wejściowych, poprzez opracowanie metody rozwiązania i algorytmu sterowania, po analizę poprawności wykonania i ostateczne testowanie modelu wraz z oceną efektywności - warto etapowi wyboru sposobu zapisu algorytmu poświęcić należytą uwagę.

(12)

Rys. 9. Fragment algorytmu sterowania ruchem drogowym w postaci schematu blokowego W ostatnich latach prowadzone są badania dotyczące wykorzystania innego jeszcze sposobu zapisu algorytmów, a także modelowania systemów sterowania ruchem drogowym – z zastosowaniem języków opisu sprzętu HDL. Języki te (VHDL, Verilog, Abel i inne) służą do opisu układów cyfrowych i dają możliwość projektowania układów w oparciu o programowalne lub specjalizowane układy cyfrowe, takie jak PLD (Programmable Logic Device) czy FPGA (Field-Programmable Gate Array). Dotychczasowe badania potwierdzają możliwość realizacji wszelkich zadań sterowania ruchem drogowym przez odpowiednio skonstruowane i wyspecyfikowane układy cyfrowe, a próby realizacji sterowników lokalnych w programowalnych strukturach logicznych [4, 5] pozwalają wręcz stwierdzić, że zasadne jest rozważenie zastosowania takich rozwiązań na poziomie sterowania obszarowego. Niewielkie bowiem wykorzystanie zasobów struktur FPGA przez sterowniki lokalne na pojedynczym skrzyżowaniu, stwarza szansę wykorzystania specjalizowanych sterowników zrealizowanych w FPGA, do sterowania w obszarze ulic.

Użycie HDL do projektowania urządzeń cyfrowych umożliwia opis struktury lub funkcji urządzenia (systemu), jego dekompozycję na mniejsze bloki oraz na połączenia miedzy poszczególnymi blokami. Są to bardzo istotne zalety, niesłychanie przydatne przy modelowaniu systemów sterowania ruchem, które, jak wiadomo, składają się nie z jednego, lecz wielu połączonych ze sobą układów. Możliwość dekompozycji pozwala podzielić duży układ na mniejsze, ograniczające swoje działanie do realizacji prostych

F1A

t=0, t1=0, t2=0, t3=0, t4=0, K2=0

t<T1min lub t1<T1min

L1 lub t≥T2 N T N T T L13 N t≤(T12+18) PF1A2A 11 2A T N T Y L5 lub L6 lub L13 N t<Tc T N t<Tc T N t<(Tc-T1min) N t20=0 T 1A 1AX 1AX t1 = t1 + ½ t= t+ ½ t20 = t20 + ½

(13)

funkcji, co z jednej strony w znacznym stopniu ułatwia projektowanie, z drugiej zaś – pozwala na szybsze znalezienie źródła ewentualnych błędów, poprzez możliwość osobnej weryfikacji każdej ze składowych układu.

Model systemu sterowania ruchem drogowym jest zwykle złożonym układem, w którego skład wchodzi wiele, bardziej lub mniej skomplikowanych, algorytmów, tworzących pewną ściśle określoną, narzuconą przez projektanta, hierarchiczną strukturę.

Analizując wymagania systemów srd oraz możliwości języków opisu sprzętu, zauważyć można szereg argumentów przemawiającymi za wykorzystaniem HDL do specyfikacji systemów sterowania ruchem drogowym:

− możliwość tworzenia układów o strukturze hierarchicznej,

− opis działania układów przy pomocy przejrzystego ciągu instrukcji, − możliwość odwzorowania procesów współbieżnych,

− łatwość opisu działania układu na komputerze,

− jednolita postać dokumentacji sprzętu i algorytmów jego funkcjonowania,

− możliwość weryfikacji projektowanego urządzenia drogą symulacji komputerowej, − możliwość realizacji w programowalnych strukturach logicznych przy

odpowiedniej postaci specyfikacji projektu.

5. SPECYFIKACJA ALGORYTMU OBSZAROWEGO

STEROWANIA RUCHEM DROGOWYM W JĘZYKU VHDL

VHDL (Very Hardware Description Language) jest językiem używanym obecnie przez większość projektantów układów cyfrowych. Cechuje go::

wspieranie metodologii hierarchicznego projektowania sprzętu;

możliwość opisu projektu oraz jego sprawdzenie w całym procesie jego powstawania (na różnych poziomach abstrakcji);

− możliwość generowania nowych wersji projektów realizowanych w nowych technologiach na podstawie rozwiązań projektowych przechowywanych w bibliotece projektów; oraz niezależność od konkretnej technologii, metodologii projektowania i narzędzi wspomagania projektowania;

− możliwość reprezentacji dynamiki układu cyfrowego oraz współbieżnych operacji w sprzęcie, jak również tworzenia równoważnych modeli funkcjonalnych;

− łatwość dokumentowania projektu; możliwość gromadzenie doświadczeń projektantów;

− łatwość wymiany informacji między projektantami oraz całymi zespołami projektowymi;

− możliwość wykorzystania do projektowania w różnych metodologiach projektowania lub za pomocą wybranego przez użytkownika narzędzia wspomagania projektowania.

Środowisko podstawowe języka VHDL składa się z następujących elementów [11]: − edytora tekstu programu źródłowego w języku VHDL,

(14)

− edytora diagramu stanów wraz z generatorem kodu źródłowego (niezwykle przydatny element – umożliwia opisywanie zachowania się układu za pomocą diagramów stanu, ściśle współpracujących z generatorem kodu źródłowego, którego zadaniem jest zamiana projektu opisanego za pomocą diagramów stanu w równoważny opis w języku VHDL),

− edytora tabeli prawdy (opisuje zachowanie się projektu za pomocą tabeli prawdy; edytor ten współpracuje z generatorem kodu źródłowego),

− systemu pomocy.

Przed przystąpieniem do opisu algorytmu działania zaprojektowanego układu, a więc przed użyciem języka VHDL, bardzo ważne jest wcześniejsze słowne opisanie sposobu jego działania. Ten, powiedzmy – wstępny, opis może zawierać założenia oraz wymagania projektowe. Dopiero po tym etapie możliwa jest specyfikacja układu, jego weryfikacja, synteza, ponowna weryfikacja oraz implementacja. Proces specyfikacji dobrze jest też poprzedzić utworzeniem hierarchii projektu, lub schematu blokowego. Umożliwia to projektantowi usprawnienie pracy poprzez możliwość równoległej pracy nad poszczególnymi blokami. Specyfikacja polega wówczas na tworzeniu opisów w języku VHDL składowych bloków i ich połączeń, z możliwością wykorzystania pomocnych edytorów: diagramów i schematów blokowych. W trakcie specyfikacji konieczne jest, zwykle wielokrotne, kompilowanie programu, podczas którego sprawdzana jest poprawność opisu głównie pod kątem składni języka. Sprawdzenie poprawności działania całego układu lub jego składowej części odbywa się w trakcie jego symulacji funkcjonalnej. Po stwierdzeniu przez projektanta zgodności uzyskanego przebiegu z oczekiwaniami, można przystąpić do etapu syntezy. Polega ona na przetworzeniu kodu wynikowego z kompilatora na opis połączeń sieci elementów przyjętych do realizacji fizycznej. Następnym krokiem jest odwzorowanie (mapping, implementacja) projektu

logicznego do postaci odpowiedniej dla wybranej technologii i wielkości układu

fizycznego. Po dokonaniu implementacji możliwe jest ponowne sprawdzenie poprawności działania układu, tym razem już z możliwością oceny opóźnień czasowych.

Jako przykład zastosowania VHDL do odwzorowania złożonego algorytmu sterowania ruchem drogowym wybrano obszar trzech warszawskich skrzyżowań: ul. Okopowa – ul. Leszno – Al. Solidarności (rys. 10) [10].

(15)

Rys. 10. Obszar objęty sterowaniem

Przed przystąpieniem do wykonania projektu niezbędne było zebranie informacji o geometrii skrzyżowań (szerokości wlotów) i o ruchu (wartości natężenia w godzinach szczytowych i pozaszczytowych) oraz policzenie: przepustowości wlotów i minimalnych czasów międzyzielonych. Wyniki obserwacji i obliczeń posłużyły do wyznaczenia bazowych programów sygnalizacji dla poszczególnych skrzyżowań, przy czym w programach tych za stałe uważać można jedynie przedziały międzyfazowe, długości poszczególnych faz natomiast wynikają z długości cyklu aktualizowanej co dziesięć minut i zależą od występującego natężenia, a dokładniej od wartości współczynników obciążenia dla grup miarodajnych. Po opracowaniu programów możliwe było wyznaczenie sekwencji realizowanych na poszczególnych skrzyżowaniach faz ruchu (rys. 11).

(16)

Rys. 11. Sekwencja faz na skrzyżowaniu: a) A, b) B, c) C

Przyjęta metoda sterowania opiera się na prostej skokowej procedurze optymalizacji, wykorzystującej kryterium kombinowane (głównym jego elementem jest minimalizacja strat czasu), oraz jednakowej dla wszystkich skrzyżowań długości cyklu. „Skokowość” w przyjętej tu optymalizacji polega na możliwości zmiany programów sterowania (długości cyklu, długości faz) nie częściej, niż co dziesięć minut. Wyjątkiem jest tzw. czas „rozruchowy”, tzn. dwudziestominutowy przedział zaraz po uruchomieniu, w którym układ zbiera informacje o natężeniu ruchu, wyświetlając jednocześnie sygnał żółty migający dla grup kołowych całej sieci. Zaraz po tym czasie, na podstawie zebranych danych (ich źródłem są umieszczone na skrzyżowaniach detektory przejazdu – rys. 12), układ albo ustala optymalną długość cyklu i dostosowuje długości faz poszczególnych skrzyżowań zgodnie z występującymi współczynnikami obciążenia dla grup miarodajnych, albo też pozostaje w stanie „żółte migające”.

a)

b)

(17)

Rys. 12. Schemat sieci z rozmieszczeniem detektorów D i oznaczeniem natężeń na wlotach Wyjście ze stanu „żółte migające”, nazwane dalej niesterowanym, jest możliwe po spełnieniu tzw. warunku natężenia Q. Warunek ten jest spełniony wówczas, gdy na którymkolwiek wlocie sieci wystąpi natężenie większe niż 200 poj/h.

Po spełnieniu warunku Q, na skrzyżowaniach kolejno zaczynają być realizowane tzw. programy wstępne (wejściowe), poprzedzające wejście w fazę pierwszą – koordynowaną. Proces ten rozpoczyna skrzyżowanie A, a po nim kolejno C i B, przy czym odstęp czasowy pomiędzy początkami poszczególnych programów wstępnych jest zależny od przyjętych wartości offsetów.

Odwzorowanie proponowanej metody sterowania ruchem zawarte zostało w opisanej dalej poglądowej sieci działań (rys. 13). Przyjęto w niej następujące oznaczenia:

q1, q2, …, q10 - wartości natężeń na poszczególnych wlotach skrzyżowań,

Q - warunek natężenia; jest spełniony, jeśli: q1>200 lub q2>200 lub….. lub q10>200, ta, tb, tc - czasy trwania faz lub przedziałów międzyfazowych na poszczególnych skrzyżowaniach;

(18)

fa1, fa2, fb1, fb2, fc1, fc2 - ustalone długości faz poszczególnych skrzyżowań (aktualizowane co 10 min.);

Faza1 A, Faza 2A, …, Faza 2C - przedziały programów sygnalizacji, w których ustalone grupy sygnałowe otrzymują sygnał zielony; PF1_2A, PF2_1A, …, PF2_1C - przedziały międzyfazowe programów sygnalizacji o stałej długości, uwzględniające minimalne czasy międzyzielone grup sygnałowych, umożliwiające przejście z jednej fazy do drugiej.

START Żółte migające Q Prg. wst. A 8 s Q Żółte migające dla A Offac = 1 FAZA 1 A ta = fa1 PF1_2 A 14 s T N T N N T FAZA 2 A PF2_1 A 14 s Q ta = fa2 N T N ta = fa2 T N T N T Prg. wst. C 9 s FAZA 1 C tc = fc1 PF1_2 C 22 s N T FAZA 2 C PF2_1 C 17 s Q tc = fc2 N Offac = 1 T N T N T Żółte migające dla C Q N T Offcb = 1 Prg. wst. B 8 s FAZA 1 B tb = fb1 PF1_2 B 13 s N T FAZA 2 B PF2_1 B 16 s Q tb = fb2 N Offcb = 1 T N T N T Żółte migające dla B Q N T T N

(19)

Przedstawiona sieć działań, choć bardzo ogólna, jest, jak widać, i tak dość złożona, dlatego podczas specyfikacji odpowiadającego jej szczegółowego algorytmu, wykorzystane zostały wspomniane wcześniej zalety języka VHDL – możliwość dekompozycji i hierarchizacji.

Realizacja opracowanego algorytmu sterowania jest możliwa dzięki stworzeniu systemu sterowania obszarowego, obejmującego trzy sterowniki lokalne A, B, C, oraz sterownik nadrzędny (rys. 14). Jest to system pracujący w trybie on-line. Sterowanie jest tu realizowane przy współdziałaniu czterech podstawowych bloków tworzących strukturę drzewiastą. Struktura ta ma charakter dwuwarstwowy: jedną warstwę (lokalną), tworzą trzy sterowniki lokalne przynależne do każdego ze skrzyżowań, drugą zaś stanowi sterownik nadrzędny

Rys. 14. Struktura systemu sterowania obszarowego

Na poziomie lokalnym zbierane są informacje o ruchu oraz realizowane są funkcje zbierania informacji o ruchu, oraz wszystkie funkcje realizowane przez sterownik lokalny. Natomiast optymalizacja funkcji sterowania realizowana jest w sterowniku nadrzędnym.

Specyfikację sterownika obszarowego przeprowadzono w edytorze BDE, poczynając od jego podziału na bloki sterowników lokalnych, oraz na blok sterownika nadrzędnego (rys. 15).

Każdy z bloków został zdekomponowany na mniejsze bloki funkcjonalne. Takie podejście upraszcza proces specyfikacji, bowiem rozbija złożone układy na prostsze bloki realizujące wyodrębnione funkcja poszczególnych poziomów sterowania (rys. 16).

(20)
(21)

Rys. 16. Schemat blokowy sterownika lokalnego A

Proces dekompozycji na prostsze bloki prowadzi się do momentu uzyskania modułów, które mogą być specyfikowane w innych edytorach. Jeśli moduł odpowiada układowi kombinacyjnemu, specyfikację prowadzi się bezpośrednio w kodzie języka VHDL, wykorzystując edytor tekstowy HDE.

Moduły odpowiadające synchronicznym układom sekwencyjnym, specyfikuje się, zgodnie z podaną metodyką, w edytorze grafów przejść automatów skończonych FSM, z możliwością zastosowania grafów hierarchicznych. Przykładową specyfikację bloku algorytm_a sterownika lokalnego A, w edytorze FSM, z wykorzystaniem grafów hierarchicznych, przedstawiono na rys. 17.

Pod każdym z wierzchołków hierarchicznych znajduje się podgraf realizujący określony algorytm. Na przykład pod wierzchołkiem hierarchicznym PF1_2 znajduje się podgraf algorytmu przejścia międzyfazowego z fazy 1 do fazy 2 (rys. 18). W analogiczny sposób wyspecyfikowano pozostałe bloki i moduły.

(22)

Rys. 17. Specyfikacja w FSM bloku algorytm_a

Rys. 18. Podgraf przejścia międzyfazowego PF1_2

Ze względu na złożoność opisanego układu, tzn. występowanie nie jednego, ani nawet kilku modułów, lecz kilkudziesięciu bloków w strukturze hierarchicznej, najprostsza metoda weryfikacji, czyli kompilacja jest zdecydowanie niewystarczająca. Dlatego w celu sprawdzenie poprawności działania układu potrzebne było wykonanie symulacji funkcjonalnej. Symulacja polegała na podawaniu na wejścia układu pewnych wartości (‘0’ lub ‘1’), interpretowanych jako przejazd pojazdu, a następnie obserwowaniu zachowania się układu, poprzez odczytywanie wartości wyjściowych rejestrowanych na przebiegu. Podczas symulacji funkcjonalnej istnieje też możliwość „podglądania” działania układu.

(23)

Ilustracje układu z kilku charakterystycznych momentów symulacji przedstawiono na rysunkach 19 – 21.

Rys. 19. Odwzorowanie symulacji uruchomienia programu wstępnego w systemie sterowania obszarowego na schemacie bloków poszczególnych sterowników

(24)

Rys. 20. Odwzorowanie symulacji uruchomienia programu wstępnego dla skrzyżowania A na schemacie blokowym sterownika lokalnego A

(25)

Rys. 21. Odwzorowanie symulacji uruchomienia programu wstępnego na skrzyżowaniu A na grafie algorytmu A

Po specyfikacji układu wykonano jego syntezę. Do syntezy modelu wybrany został układ programowalny Virtex xcv400hg240-4. Układ ten ma 400000 układów przeliczeniowych i 240 wyprowadzeń, a jego wybór związany był ze złożonością syntezowanego modelu. Wynikiem przeprowadzonej syntezy jest raport, zawierający informacje dotyczące m.in. liczby wykorzystanych komórek logicznych, przerzutników, układów kombinacyjnych, czy maksymalnego późnienia.

Implementacja jest procesem poszukiwania sposobu dopasowania użytych w opisie układu funkcji logicznych lub połączeń do wybranego układu programowalnego. Dopasowywanie to polega na opisie umieszczania funkcji logicznych w matrycy komórek logicznych (Slices) układu FPGA oraz prowadzenia sygnałów między tymi komórkami a zaciskami wejścia/wyjścia.

Implementacja modelu w układ Virtex xcv400hg240 powiodła się, dzięki czemu możliwe było dokonanie kolejnej weryfikacji, tym razem podczas symulacji czasowej. Symulacja czasowa pozwala już nie tylko na sprawdzenie reakcji układu na zadane zmiany sygnałów wejściowych, ale także na ocenę występujących w układzie opóźnień czasowych. Wycinek przebiegu czasowego wspomnianej symulacji przedstawiono na rysunku poniżej.

(26)

Rys. 22. Przebieg czasowy działania układu

6. PODSUMOWANIE

Dla zapewnienia optymalnego sterowania w sieci ulic konieczne jest stosowanie sterowania obszarowego. Takie sterowanie stanowi obszar intensywnych badań naukowych, w wyniku których powstają nie tylko naukowe lecz również komercyjne systemy sterowania ruchem w miastach. Ze względu na złożoność problemu badawczego, przy tworzeniu algorytmów sterowania obszarowego konieczne jest stosowanie odpowiedniego wspomagania komputerowego, zarówno na etapie specyfikacji jak i zwłaszcza na etapie weryfikacji algorytmów.

Przedstawione wyniki badań dla konkretnego obszaru sterowania, wskazują na celowość jak i przydatność zastosowania języków opisu sprzętu HDL, a zwłaszcza języka VHDL. Dzięki możliwości tworzenia struktur hierarchicznych, złożone algorytmy sterowania obszarowego mogą być zdekomponowane na proste moduły, specyfikowane niezależnie. Zastosowanie edytorów grafów przejść pozwala w łatwy sposób przejść od

algorytmu do grafu sterowania, a następnie do kodu języka VHDL. Natomiast

wykorzystanie edytorów schematów blokowych pozwala w sposób graficzny integrować wyspecyfikowane moduły, tworząc model systemu sterowania.

Dodatkową zaletą stosowania wspomnianych narzędzi jest łatwość weryfikacji działania systemu, zarówno w trybie symulacji funkcjonalnej jak i czasowej. Jak pokazano w artykule, bezpośrednią korzyścią wykorzystania języka VHDL jest możliwość

przeprowadzenia syntezy i implementacji opracowanych algorytmów sterowania

obszarowego w układach FPGA, a więc budowy prototypu sytemu sterowania obszarowego w programowalnych strukturach logicznych.

(27)

Bibliografia

1. Binning J. C., Burtenshaw G., Crabtree M.: Transyt 13 User Guide. Copyright Transport Research Laboratory, 2009.

2. Borowski Ł.: System koordynacji pracy sterowników w Krakowie. Prezentacja, 2009. 3. Jamroz K.: Systemy sterowania ruchem ulicznym. WKŁ, Warszawa 1984.

4. Kawalec P.: Analiza i synteza specjalizowanych układów modelowania i sterowania ruchem w transporcie. Oficyna Wydawnicza Politechniki Warszawskiej, Prace Naukowe-Transport, z. 68, Warszawa, 2009.

5. Kawalec P., Firląg K.: Synteza specjalizowanych układów sterowania ruchem drogowym w strukturach FPGA. Pomiary Automatyka Kontrola, 7bis 2006, Agenda Wydawnicza Stowarzyszenia SIMP, Warszawa, s. 8–10.

6. Kurzak H.: Steuerung und Bewertung verkehrsabhangiger Signalanlagen im Stadtstrassennetz. Strassenbau und Strassenverkehrstechnik. H.172, 1974.

7. Peek Traffic Sp. z o.o.: UTOPIA. Nowoczesne Zarządzanie Transportem. Broszura informacyjna, Warszawa, 2008.

8. Siwek Z., Klimkiewicz J.: Projekt budowlano wykonawczy. Sygnalizacja świetlna. Skrzyżowanie ulic: Kapelanka - Grota-Roweckiego w Krakowie. Kraków 2009.

9. Sobieszuk-Durka S.: Projekt ruchowy sygnalizacji świetlnej. Skrzyżowanie Sobieskiego – Piłsudskiego – Wysockiego. Legionowo, 2011.

10. Sobieszuk-Durka S.: Zastosowanie języków opisu sprzętu do modelowania wybranych algorytmów sterowania ruchem drogowym. Praca magisterska, Wydział Transportu PW, Warszawa, 2006.

11. Wrona W.: VHDL – język opisu i projektowania układów cyfrowych. Wydawnictwo Pracowni Komputerowej J. Skalmierskiego, Gliwice 1998.

12. Wrześniowski Z.: Koordynacja sygnalizacji świetlnej. WKŁ, Warszawa 1977.

METHODS AND ALGORITHMS OF AREA TRAFFIC CONTROL

Summary: The article presents selected methods of area traffic control and describes some ways to record

traffic control algorithms. A traffic control algorithm for a real city area is presented, using computer aided methods. Access graphs of finite automata, including hierarchical graphs have been used to specify the algorithm. Developed area traffic control algorithms have been specified in a FMS editor that allows to verify the correctness of the algorithm in a given functional computer simulation mode. The results of the specification and verification for developed algorithms and their implementations in FPGA devices have been quoted.

Keywords: area traffic control, algorithms of adaptive control, hierarchical graphs, FPGA devices

Cytaty

Powiązane dokumenty

Podczas trzech wczeœniejszych konferencji (2001, 2005, 2007) poszczególne wyst¹pienia by³y ujête w 6 blo- ków tematycznych, obejmuj¹cych szeroki wachlarz zagad- nieñ — od

The the events or causal factors which led the Community Based Networks in developing countries to facilitate Broadband Infrastructure in the loop are similar to the CBNM

Do punktu, w jakim w danej chwili funkcjonuje przedsiębiorstwo, doprowadza szereg zdarzeń, może i często przypadkowych. Jednak większość, wydawałoby się, przypadków

Oznacza to, że decydując się na dysponowanie i korzystanie ze środków publicznych, oba sektory muszą mieć na względzie poddanie się również przepisom ustawy z 17 grudnia

Przede wszystkim powinny jednak poszukiwać możliwych do wykorzystania źródeł finansowania działań rewitalizacyjnych (w szczególności gdy rozpatrywany jest finansowy aspekt

$E\ ]DVSRNDMDü L UyZQRZDĪ\ü ZHZQĊWU]QH MHM SRWU]HE\ L SU]\VWRVRZ\ZDü VLĊ GR ZDUXQNyZSDQXMąF\FKZRWRF]HQLXRUJDQL]DFMDPXVLUR]ZLą]\ZDüUyĪQH]DGDQLD QDGąĪDü

Even though practices consisting in purposeful application of professional knowledge to solving assessment problems are desirable, it is worth looking at the role of the

The biggest average attendance in the primary stage was observed in the municipality of Dobrich villages – 38 children and in the municipality of Krushari – 26 children, and