Enunțul temei: Scurtă descriere a temei lucrării de licență și datele inițiale [303260]

CONTROLUL TRAFICULUI RUTIER

LUCRARE DE LICENȚĂ

2018

Absolvent: [anonimizat]: Scurtă descriere a temei lucrării de licență și datele inițiale

Conținutul lucrării: (enumerarea părților componente) Exemplu: [anonimizat], titlul capitolului 1, titlul capitolului 2,… titlul capitolului n, bibliografie, anexe.

Locul documentării: Exemplu: [anonimizat], Departamentul Automatica

Consultanți:

Data emiterii temei: 1 noiembrie 2016

Data predării: 21 februarie 2018

Declarație pe proprie răspundere privind

autenticitatea lucrării de licență

Subsemnatul(a)___________Toderici Bianca____________________, legitimat(ă) cu _____CI_____ seria __KX___ nr. _____988813_____________
CNP ___________2950822124241__________________________, autorul lucrării _____________”Controlul traficului rutier”_______________________elaborată în vederea susținerii examenului de finalizare a [anonimizat] ________Automatică și Informatică aplicată___________ [anonimizat], sesiunea _______iulie____ a anului universitar ____2018___, [anonimizat], [anonimizat], și în bibliografie.

Declar, [anonimizat] a convențiilor internaționale privind drepturile de autor.

Declar, [anonimizat] a mai fost prezentată în fața unei alte comisii de examen de licență.

In cazul constatării ulterioare a [anonimizat], respectiv, anularea examenului de licență.

Cuprins

Capitolul 1. Introducere 1

1.1. Obiective și motivații 1

1.2. Structura lucrării 2

Capitolul 2. Teoria Traficului Urban 3

2.1. Conceptele fundamentale ale fluxului traficului urban 3

2.1.1. Media spațială 4

2.1.2. Media temporală 5

2.2. Diagrame relaționale 6

2.2.1. Diagrama fundamentală a traficului rutier (Debitul cu densitatea) 6

2.2.2. Relația dintre densitate și viteză 7

2.2.3. Relația dintre densitate și viteză 8

2.3. Modele pentru simularea traficului rutier 8

2.3.1. Modele macroscopice 9

2.3.2. Modele mesoscopice 9

2.3.3. Modele microscopice 9

Capitolul 3. Bibliografie 10

Capitolul 4. Criterii pentru modelare 10

4.1. Automatul celular 11

4.2. Componentele automatului celular 11

4.2.1. Mediul fizic 11

4.2.2. Starea celulei 12

4.2.3. Vecinătatea celulelor 12

4.2.4. O regulă de tranziție locală 12

4.3. Planul general al drumului și mediul fizic 12

4.4. Mișcările vehiculelor și setul de reguli 13

4.5. Rețelele Petri 14

4.5.1. Rețelele Petri: concepte de bază și aplicații 14

4.5.2. Definirea și formularea în termeni matematici 14

4.5.3. Proprietăți ale rețelelor Petri 16

4.5.4. Metode de analiză 17

4.5.5. Tipuri de rețele Petri 17

4.6. Automatele temporizate 19

4.6.1. Definiția formală a automatului temporizat 19

4.7. Selectarea automatelor temporizate 20

Capitolul 5. Modelarea traficului rutier 21

5.1. Modele simpliste de modelare 21

5.1.1. Model cu o bandă de circulație și mai multe automobile 21

5.2. Modele complexe de modelare 25

5.2.1. Model de trafic rutier cu mai multe străzi posibile (1, 2 sau 3), cu autovehicule în flux liber 26

5.2.2. Străzi cu mai multe posibilități de înaintare, cu automobile, autobuze și tramvaie, interacționând cu diferite elemente din trafic 35

Capitolul 6. Testare și Validare 46

Capitolul 7. Manual de Instalare si Utilizare 47

Capitolul 8. Concluzii 48

Bibliografie 49

Anexa 1 (dacă este necesar) 51

Figure 2.1 – Diagrama spațiu-timp 4

Figure 2.2 – Media spațială 4

Figure 2.3 – Media temporală 6

Figure 2.4 – Diagrama fluxurilor de trafic 7

Figure 2.5 – Diagrama densitate-viteză 7

Figure 2.6 – Diagrama densitate-viteză 8

Figure 2.7 – Metodele pentru simularea traficului rutier 8

Figure 4.1 Mediul fizic, diferite tipuri de celule (Stânga: dreptunghiular; Mijloc: triunghiular; Dreapta: hexagonal) 11

Figure 4.2 Diagramă schematică a automatelor celulare de trafic (TCA) cu o singură bandă 13

Figure 4.3 – Exemplu de automat programabil 20

Figure 5.1 Diagramă schematică unei benzi, traversată de mai multe automobile 22

Figure 5.2 Global declaration pentru modelul cu o singură bandă,traversat de mai mult automobile controlate de funții și variabile 22

Figure 5.3 Street declaration pentru modelul cu o singură bandă,cu mai multe automobile controlate de variabile și funcții 23

Figure 5.4 Automatizarea străzii pentru o bandă de circulație cu mai multe automobile coordonate cu variabile și funcții. 24

Figure 5.5 Automobilul auto pentru modelul cu o bandă de circulație și mai multe automobile,controlate de variabile și funcții 25

Figure 5.6 Diagrama schematică a modelului de trafic cu deplasarea a mai multor automobile cu trei străzi următoare posibile 27

Figure 5.7 Global declaration al modelului cu multiple automobile, cu trei următoare străzi posbile 28

Figure 5.8 Strada automată a modelului de trafic cu mai multe automobile, cu trei următoare străzi posibile 30

Figure 5.9 Street declaration pentru modelul de circulație cu mai multe automobile, cu trei următoare strazi posibile 31

Figure 5.10 Automobilul automat pentru modelul de trafic cu mai multe automobile, cu trei următoare străzi posibile. 32

Figure 5.11 Automobile declarations pentru modelul de trafic cu căteva automobile și trei următoare străzi posibile 34

Figure 5.12 Stația de autobuz în interiorul benzii de circulație implementată în matricea indexSC 36

Figure 5.13 Stația de tramvai în interiorul benzii de circulație implementată în matricea indexSC 36

Figure 5.14 Treceri pentru pietoni implementată în matricea indexSC 36

Figure 5.15 Variabilele de control necesare pentru modelul cu diferite elemente de trafic 37

Figure 5.16 Comportamentul variabilei de control roBSA[noA] când automobilul se deplasează 38

Figure 5.17 Comportamentul variabilei de control roBSBF[noB] si roBSBB[noB] când autobuzul de află în deplasare 39

Figure 5.18 Comportamentul variabilelor de control roBSTF [noT], roBSTM [noT] și roBSTB [noT] când tramvaiul se află în deplasare 40

Figure 5.19 Reprezentare schematică când un automobil se deplasează pe o trecere de pietoni 41

Figure 5.20 Reprezentare schematică când un autobuz se deplasează pe o trecere de pietoni 41

Figure 5.21 Reprezentare schematică când un autobuz traversează o stație de autobuz 42

Figure 5.22 Reprezentare schematică când un tramvai traversează o trecere de pietoni 42

Figure 5.23 Reprezentare schematică când un tramvai traversează o stație de tramvai 43

Figure 5.24 Automobilul automat pentru modelul cu mai multe vehicule care interacționează cu elemente de trafic 43

Figure 5.25 Autobuzul automat pentru modelul cu mai multe vehicule care interacționează cu diferite elemente de trafic. 44

Figure 5.26 Tramvaiul automat pentru modelul cu mai multe vehicule care interacționează cu diferite elemente de trafic 45

Introducere

Obiective și motivații

Creșterea continuă a numarului global de vehicule care se află în circulația urbană a devenit una dintre problemele principale a societății moderne. Impactul generat de rețelele de trafic asupra cetățenilor duce la un număr de dezavantaje: așteptarea prea mult timp, resursele fizice consumate în exces și posibila apariție a situațiilor stresante. În acest contex, simulările de calcul pot avea rol important, permițând moduri diferite de a controla și gestiona traficul urban .

Procupările în domeniul sistemelor inteligente de transport se îndreaptă atât infrastructurii rutiere cât și pentru crearea unor condiții de siguranță pe toate categoriile de drumuri, accentul fiind pus pe dezvoltarea serviciilor în sprijinul utilizatorilor sistemelor de transport, dar și asupra vehiculelor. Beneficiile sistemelor de transport inteligent se pot obține doar printr-un proces de analiză a caracteristicilor traficului, a modului în care acsta se desfășoară de-a lungul timpului și a modului în care acesta se desfășoară în cazul apariției unor evenimente .

Modelarea traficului vehiculelor reprezintă comportamentul unui grup de vehicule care circulă pe un drum sau un circuit. Există diferite strategii de modelare în funcție de nivelul de rezoluție necesar pentru simulare; Modele macroscopice, mezoscopice și microscopice.

Datorită importanței deosebite a drumurilor rutiere, cercetările trebuie inițializate în vederea reducerii efectelor de blocaje pe străzi, dimensionarea numărului optim de benzi în trafic și implementarea în Global Position Systems a informațiilor referitoare la condițiile de trafic (posibilități de evitare a blocajelor, existența sau nu a accidentelor sau lucrărilor în stradă) în timp real.

Obiectivul principal al acestei lucrări este crearea unui model de trafic urban folosind metoda automatizării celulare. Acest model conține principalele elemente prezente în trafic ca: străzi cu benzi de circulație multiple, diverse tipuri de vehicule (automobile, autobuze, tramvaie), intersecții cu mai multe străzi controlate de semafoare, stații de autobuz aflate în interiorul și în afara benzilor de circulație, stații de tramvai aflate în interiorul sau în exteriorul benzilor de circulație, parcări alături sau transversal cu banda de circulație corectă a unei străzi, treceri pentru pietoni.

Scopurile evidențiate în această lucrare sunt:

Caracterizarea traficului urban, explicând principalele sale variabile și relațiile dintre acestea;

Scruta descriere a rețelelor Petri și a automatelor temporizate

Creearea unei implementări sistematice și ușor de schimbat pentru diferite scenarii;

Definirea unui grup de străzi din Cluj-Napoca implementat în simulare

Simularea și verificarea modelului realizat și prezentarea rezultatelor respective.

Structura lucrării

Această lucrare este împărțită in opt capitole. În primul capitol sunt explicate motivația și obiectivele acestei lucrări.

În capitolul al doilea sunt prezentate conceptele fundamentale ale teoriei traficului urban și anume debit, viteză și densitate.

Teoria Traficului Urban

Privind în urmă, problema aglomerării traficului a fost privită ca o problema limitată la zonele metropolitane mari. De-a lungul anilor, problemele de circulație care existau în zonele ubane au început sa fie întâlnite și în suburbii. Progresele în domeniul tehnologiei automobilelor au permis mai multor persoane să conducă vehicule, iar stilul de viață modern a provocat probleme de aglomerare a traficului chiar și în orașele mici. Odată cu instalarea acestui scenariu, a apărut necesitatea dezvoltării unor soluții care îmbunătățesc traficul rutier, iar un rol esențial îl au simularile traficului rutier.

Buna înțelegere a dinamicii traficului rutier este fundamentală pentru a ajuta la alegerea strategiilor care sunt mai eficiente și mai adecvate .

În acest capitol sunt prezentate conceptele fundamentale ale teoriei traficului urban. În primul rând sunt prezentate principalele variabile fizice implicate în problemele rutiere (fluxul, viteza medie și densitatea). O prezentare a unor modele microscopice de simulare a traficului rutier închide acest capitol .

Conceptele fundamentale ale fluxului traficului urban

Traficul poate fi evaluat prin următoarele variabile: flux (), viteza medie () și densitate (). Acești parametrii sunt numiți parametrii de trafic, adică acele variabile care ajuta la determinarea stării drumului la un moment dat. Fluxul traficului este definit ca fiind cantitățile de vehicule care trec printr-o secțiune de drum într-o anumită perioadă de timp, iar unitățile sala sunt vehicule pe unitate de timp. Viteza medie este dată de unitățile de spațiu parcurse de aceste vehicule pe unitate de timp. Densitatea este determinată de numărul de vehicule pe unitate spațială.

În această secțiune sunt prezentate diferite metode de calculare a parametrilor traficului urban.

Comportamentul variabilelor este definit în diagramele spațiu-timp, reprezentând traiectoria fiecărui vehicul într-o perioadă de timp. Figura 2.1 descrie traiectoriile valide A și B, iar traiectoria C nu poate reprezenta o traiectorie a vehiculului, deoarece este imposibil ca un vehicul sa fie în mai multe poziții de spațiu în același moment.

Figure 2.1 – Diagrama spațiu-timp.

Caracteristicile traficului rutier variază în timp și spațiu. Pentru simplificarea acestor variații, se adoptă în mod obișnuit valori medii pentru parametrii de trafic. Aceste valori medii pot fi valori temporale sau spațiale. Astfel, există diferite expresii pentru variabilele de trafic, atunci când un drum este luat în considerare, într-un interval de timp,este numit medie temporală sau când o bandă din trafic este luată în considerare într-un anumit moment, este numit medie spațială .

Media spațială

Definirea densității pentru o întindere a unei benzi (L) într-o moment din timp (dt) este prezentată în Figura 2.2. Aceasta este numărul de traiectorii (vehicule) pe această întindere în momentul t1 împărțit la lungimea considerată (L).

Ecuația 2.1 prezintă expresia matematică a densității traficului.

(Ecuație 2.1)

Unde n este numărul de vehicule prezente în zona de trafic L.

Viteza medie a vehiculelor pe această bandă din trafic poate fi exprimată prin urmatoarea ecuație

Ecuație 2.2)

Unde vi este viteza vehiculului i, în întiderea considerată. Pentru un regim permanent de viteză, aceasta poate fi calculat prin

(Ecuație 2.3)

Cu alte cuvinte

Ecuație 2.4

Și în acest caz se consideră viteza vehiculului pe o secțiun)

Ecuație 2.5

Înlocuind ecuațiile 2.1 și 2.2 în ecuația 2.5, se poate scrie ecuația fluxului de trafic

Ecuație 2.6

Media temporală

În cazul anterior, toate informațiile sunt funcționale pentru un anumit moment din întinderea considerată a unei benzi din trafic. În mod normal,când este necesar obținerea unor date reale, sunt instalate detectoare de mișcare în orice bandă de trafic. Prin umare, est enecesat să se defineasca expresii care să ia în considerare mai multe măsurători pe aceeași secțiune de trafic xk. Astfel, media temporală constă într-o secțiune a benzii de circulație xk, într-o perioadă de timp T, după cum se poate observa în figura 2.3. Fluxul de trafic este dat de numărul de vehicule care traversează o secțiune din banda determinată (m), într-un anumit interval de timp (T), și anume

Ecuație 2.7

Figure 2.3 – Media temporală

În acest caz, viteza medie a vehiculului care traversează secțiunea benzii este exprimată prin ecuația 2.8

Ecuație 2.8

Unde vj este viteza vehiculului care traversează această secțiune. Înlocuind ecuațiile 2.7 și 2.8 în ecuația 2.5, densitatea medie a vehiculelor pe acea parte a benzii este dată de

Ecuație 2.9

Diagrame relaționale

Mai multe studii au fost realizate pentru a înțelege comportamentul vehiculelor pe drumuri, adică modul în care variabilele prezentate în secțiunile anterioare interacționează și modul în care acestea sunt legate. În această secțiune sunt prezentate principalele diagrame care descriu comportamentul relațional al parametrilor reali de trafic, cum ar fi: relația debitului cu densitata, debitului cu viteza și densității cu viteza.

Diagrama fundamentală a traficului rutier (Debitul cu densitatea)

În Figura 2.4 este prezentata diagrama fundamentala a fluxurilor de trafic. Un flux de trafic cu densitate redusa conduce la staționarea fluxului (pe un drum gol nu circulă nici un vehicul), în timp ce un flux cu densitate ridicată de asemenea, nu mai curge (reprezentat de vehiculele care stau la semafor). Fluxul maxim, denumit și capacitate, se atinge atunci când densitatea are valori medii .

Diagrama fluxurilor de trafic reprezentată prin k-densitatea traficului, q- viteza de deplasare a vehiculelor.

Figure 2.4 – Diagrama fluxurilor de trafic

Relația dintre densitate și viteză

O altă realție importantă este fluxul cu viteza, prezentat în figura 2.5, unde Vf este viteza medie finală, având o valoare ușor sub viteza maximă a benzii de circulație, deoarece într-un flux liber nu toate vehiculele sunt permanent la viteza maximă. Viteza care asigură un flux maxim de trafic Jmax, se numește viteză optimă.

De asemenea , se poate observa în figura 2.5, atunci când vehiculele circulă la viteză maximă sau minimă, fluxul de trafic are valoarea minimă. Acest lucru se datorează faptului că vehiculele circulă la viteză mică și se creează blocaje care, în ciuda denistății mari, generează un flux scăzut al vehiculelor. Atunci când vehiculele circulă cu viteză mare, apar mici interacțiune între acestea și, prin urmare, densitatea este mai mică, generând un debit redus al vehiculului.

Figure 2.5 – Diagrama densitate-viteză

Relația dintre densitate și viteză

Diagrama prezentată în figura 2.6 arată modul în care viteza scade cu saturația benzii de circulație. Datorită comportamentului său descrescător, unele modele matematice reprezintă această diagramă ca o funcție liniară.

Figure 2.6 – Diagrama densitate-viteză

Modele pentru simularea traficului rutier

Modelele matematice pentru simularea traficului rutier pot fi împărțite în trei abordări diferite: modele macroscopice, modele mezoscopice și modele microscopice. Figura 2.7 reprezintă schematic aceste trei motodologii diferite.

Figure 2.7 – Metodele pentru simularea traficului rutier

Modele macroscopice

Analiza macroscopică descrie comportamentul global al fluxurilor de trafic. Prin urmare ele se referă la densitatea, debitul și parametrii de viteză medie ai vehiculelor. Pentru a-și studia comportamentul, abordările macroscopice aplică regulile hidrodinamice. Acesta este motivul pentru care această abordare este, de asemena, cunoscută sub numele de analogie hidrodinamică a traficului. Modelele macroscopice sunt aplicate cu succes în studiul traficului de înaltă densitate, dar nu pot oferi cu ușurință rezultate precise pentru situațiile rare de trafic.

Modele mesoscopice

Modelele mesoscopice reprezintă comportamentul unui grup de vehicule; își bazează analiza traficului într-un grup de vehicule care se comportă conform unor criterii logice de grupare: o expediție, un comportament în cazul unor blocaje etc.

Modele microscopice

Modelele microscopice sunt cele care concentrează comportamentul individual al fiecărui vehicul pentru a obține comportamentul global al unui drum. Se consideră parametrii independenți care determină dinamica vehiculului. De exemplu, cunoașterea accelerației fiecărui vehicul la fiecare moment în care poate fi cunoscută poziția și viteza acestuia, dupa un interval de timp.

Criterii pentru modelare

În aceasta secțiune sunt definite automatele celulare, ulterior fiind descrise informațiile principale ale unui automat celular.

Automatul celular

Un automat celular (CA) este o colecție de celule pe o rețea de formă specificată care evoluează printr-un număr de pași discreți în conformitate cu un set de reguli bazate pe stările celulelor învecinate. Regulile sunt apoi aplicate iterativ pentru cât mai mulți pași de timp doriți. Von Neumann a fost unul dintre primii oameni care au considerat un astfel de model și a încorporat un model celular în “constructorul său universal”. Automatele celulare au fost studiate la începutul anilor 1950 ca un posibil model pentru sistemele biologice.

CA constă într-o rețea finită și regulată de celule; fiecare poate avea un număr finit de stări, variind în conformitate cu reguli deterministe care includ stările celulelor vecine. Timpul este de asemeanea discretizat, iar starea unei celule la momentul respectiv este o funcție a stării de atunci dintr-un număr finit de celule din vecinătatea sa. Toate celulele progresează conform aceleiași reguli de actualizare pe baza valorilor celulelor vecine. De fiecare dată când regulile sunt aplicate întregii rețele, se produce o nouă generație.

Automatele celulare sunt frecvent utilizate în modelele: fluxul de circulație și pietoni, fluide (gaze sau lichide), evoluția celulelor sau a virușilor, cum ar fi HIV, procesarea imaginilor și generarea de numere aleatorii.

Componentele automatului celular

Din punct de vedere teoretic, patru elemente principale joacă un rol important în modelele automate celulare: mediul fizic, starea celulei, zona învecinată și o regulă de tranziție locală.

Mediul fizic

Mediul fizic indică platforma fizică pe care se calculează CA. În mod normal, aceasta constă într-o rețea discretă de celule cu topologie dreptunghiulară, hexagonală sau de altă natură.

Toate aceste celulele sunt egale în mărime. Rețeaua însăși poate fi finită sau infinită în dimensiune și dimensionalitate și poate conține o singură celulă sau, mai frecvent, un număr mai mare de celule.

Figure 4.1 Mediul fizic, diferite tipuri de celule (Stânga: dreptunghiular; Mijloc: triunghiular; Dreapta: hexagonal)

Starea celulei

Fiecare celulă din rețea poate fi într-un anumit număr de stări distincte care definesc ocuparea celulei.

De obicei, un număr întreg reprezintă numărul de stări dinstincte în care o celulă poate fi. Starea tuturor celuleor este denumită în mod global: configurația globală CA. Această convenție indică faptul că stările sunt locale și se referă la celule, în timp ce configurația este globală și se referă la întreaga rețea.

Vecinătatea celulelor

Starea viitoare a unei celule depinde, în principal, de starea ei din celula de vecinătate, deci celulele vecine determină evoluția celulei. În general, laturile variază ca unidimensionale și bidimensionale. Într-o rețea unidimensională, vecinătatea constă în celula în sine, plus cele două celule adiacente. Într-o rețea bidimensională, există mai multe posibilități.

O regulă de tranziție locală

Această regulă acționează asupra unei celule și vecinătății sale directe,astfel încât starea celulei se schimbă de la un moment de timp discret la altul (adică iterațiile sistemului). CA evoluează în timp și spațiu, deoarece regula este aplicată ulterior tuturor celulelor. În mode obișnuit, aceeași regulă este utilizată pentru toate celulele; dacă contrariul este adevărat, atunci modelul este un CA hibrid. Atunci când nu există componente stochastrice prezente în această regulă, modelul se numește determinist, în opoziție modelul se numește CA probabilistic.

Planul general al drumului și mediul fizic

Mediul fizic al sistemului este reprezentat de drumul pe care vehiculele circulă. Într-o configurație clasică cu o singură bandă pentru automatele celulare de trafic, aspectul constă într-o rețea unidimensională. Fiecare celulă poate fi fie goală, fie ocupată de un singur vehicul (modele cu o singură celulă). O altă posibilitate este de a permite unui vehicul să ocupe mai multe celule consecutive (modele multicelulare).

În figura 4.2 este reprezentat un exemplu de dinamică spațiu-timp al TCA, unde două vehicule consecutive i și j conduc pe o rețea unidimensională. O schemă tipică de discretizare presupune și și corespunde creșterii vitezei . Discretizarea spațială corespunde lungimii medii pe care un vehicul o ocupă într-un blocaj de trafic (în acest context, lățimea nu este luată în considerare). Discretizarea temporală se bazează pe timpul de reacție tipic al șoferului.

Figure 4.2 Diagramă schematică a automatelor celulare de trafic (TCA) cu o singură bandă

În figura 4.2, axa temporală este orientată în jos, iar axa spațială se extinde spre dreapta. Configurația TCA este prezentată pentru doi pași consecutivi și în timpul cărora două vehicule i și j se propagă prin rețea.

În ceea ce privește structura sistemului, se pot distinge două cazuri principale: sisteme închise și sisteme deschise. Un sistem închis este de obicei implementat ca un inel închis de celule iar număul de vehicule este întotdeauna conservat. Un sistem deschis este considerat un drum deschis.

Mișcările vehiculelor și setul de reguli

Circulația vehiculelor individuale într-un flux de trafic este descrisă printr-un set de reguli care reflectă comportamentul de urmărire între vehicule cât și comportamentul schimbării benzii de circulație, evoluând în timp și spațiu. Acest set de reguli inclus în TCA este aplicat tuturor vehiculelor în paralel. Starea sistemului este modificată prin actualizări sincrone alea poziției tuturor vehiculelor: pentru fiecare vehicul se calculează noua viteză, dupa ce poziția sa este actualizată în funcție de noua sa viteză și în final este luată în considerare o posibilă manevră de schimbare a benzii de circulație.

Pentru modelele cu o singură bandă de trafic, se presupune că vehiculele acționează ca particule anizotrope, adică răspund doar la stimulii frontali. Următorii stimuli auto sunt stările din vecinătatea directă frontală a fiecărui vehicul. Raza acestei vecinătăți ar trebui sa fie suficient de mare pentru ca vehiculele să se poata mișca fără coliziuni. În mod obișnuit, această rază este egală cu viteza maximă pe care un vehicul o poate atinge, exprimată în celule pe treaptă de timp.

Din punct de vedere microscopic, procesul vehiculului urmărit de predecesorul său este exprimat folosind relația stimul-răspuns. De obicei, acest răspuns este viteza sau accelerația unui vehicul. În modelele TCA, stimulul unui vehicul este în principal compus din viteza sa și distanța față de lider. Ca răspuns direct, noua viteză a vehiculului este ajustată. Într-un sens strict, această abordare conduce numai la evitarea accidentelor. Unele modele includ stimuli de anticipare. Aceste forme de "anticipare" iau în considerare numai reacțiile liderilor. Atunci când aceste efecte sunt luate în considerare, fluxul de trafic este mai stabil evitând frânarea bruscă și accelerațiile puternice.

Rețelele Petri

În acest subcapitol se vor prezenta câteva concepte de bază ale rețelelor Petri și zone de aplicații ale acestora, ulterior, fiind prezentată definiția formală a rețelelor și a unor formulări în termeni matematici. Următorul subcapitol descrie proprietățile comportamentale ale rețelelor Petri iar în cele din urmă, este prezentată subclasa rețelelor stochastice Petri.

Rețelele Petri: concepte de bază și aplicații

Rețelele Petri sunt o modelare matematică, cu reprezentare grafică, care poate fi aplicabilă mai multor tipuri de sisteme. Ele sunt potrivite pentru descrierea și studiul sistemelor caracterizate ca fiind concurente, asincrone, distribuite, paralele, nedeterministe și/ sau stochastice. Ca instrument grafic, rețelele Petri pot fi folosite ca o comunicare vizuală, asemănătoare diagramelor de flux, diagrame bloc sau rețele, iar jetoanele sunt folosite pentru a simula dinamica sistemului.

Un dezavantaj major al rețelelor Petri îl reprezintă complexitatea acestora, adică modelele pe bază de rețele Petri tind să devină prea mari pentru analiză chiar și pentru un sistem de dimensiuni modeste.

Două domenii de aplicare cu succes a rețelelor Petri sunt: ​​evaluarea performanțelor și protocoalele de comunicare. Domeniile promițătoare ale aplicațiilor includ modelarea și analiza sistemelor software distribuite, programe concurente și paralele, sisteme flexibile de fabricație / control industrial, sisteme de evenimente discrete, sisteme de memorie multiprocesor, sisteme informatice de calcul, limbi oficiale, programe logice.

Utilizarea instrumentelor asistate de calculator este o necesitate pentru aplicațiile practice ale rețelelor Petri. Aceste aplicații au încorporat instrumente care ajută desenul, analiza și simularea. Un exemplu de software bazat pe rețelele Petri este Unified Modeling Language (UML) produs de e DARPA MoBIES (integrarea bazată pe modele a software-ului încorporat).

Definirea și formularea în termeni matematici

Elementele unei rețele Petri sunt locațiile (P), tranzițiile (T) și arcele. Locațiile sunt reprezentate grafic de cercuri iar tranzițiile sunt reprezentate prin casete sau bare. Arcele rulează dintr-un locație într-o tranziție sau invers, niciodată între locații sau între tranziții. Locațiile în care arcele sunt orientate de la o locație la o tranziție sunt numite locație de intrare a tranziției (pre). Locațiile în care arcele sunt orientate de la o tranziție către o locație sunt numite locație de ieșire a tranziției (post). O rețea Petri se numește ordinară dacă ponderea tuturor arcelor sale este egala cu unu. Similar, o tranziție poate fi tranziție de intrare sau tranziție de ieșire, pentru o anumită locație.

Pentru a reprezenta marcajul unei locații la un moment dat, se folosesc puncte desenate în interiorul cercului. Acestea poartă denumirea de jetoane. Jetoanele servesc la reprezentarea stării și deci la reprezentarea evoluției dinamice a sistemului. Prin convenție, ponderile arcelor egale cu unu nu se marchează pe figuri.

Configurația inițială a rețelei Petri se numeăte marcaj inițial (M0), iar orice ditribuție de jetoane peste locații va reprezenta o configurație a rețelei numită marcaj (Mn).

O rețea Petri este de forma:

Ecuație 4.1

Ecuația 4.1 reprezintă o structură de rețea Petri fără marcaj.

Unde:

P = {p1, p2,……,pn}, este mulțimea finită, nevidă, a locațiilor

T = {t1, t2,…..…,tn}, este mulțimea finite, nevidă, a tranzițiilor

pre: P x T → N este o funcție de incidență “înainte” sau de intrare, definită astfel:

post: P x T → Nn este o funcție de incidență “după” sau de ieșire, definite astfel:

Rețeaua Petri cu marcaj inițial se poate nota cu:

PN = (N, M0) Ecuație 4.4

Marcajul este starea sistemului (rețelei) modelat. Cu marcajele celor m locații se poate construi marcajul rețelei Petri la un moment dat prin:

M = [ M(p1), M(p2), … , M(pm)]T Ecuație 4.5

O altă caracteristică matematică a rețelelor Petri este matricea de incidență (C). Matricea de incidență este suficientă pentru a caracteriza schimbarea relativă a jetoanelor în fiecare locație în care se desfășoară o tranziție. Definiția matriciei de incidență este dată de următoarea ecuație:

C= post – pre; Ecuație 4.6

Comportamentul dinamic al unei rețele Petri poate fi calculat prin ecuația 4.70:

Ecuație 4.7

Atunci când este necesar să se calculeze mai multe tranziții, se foloște ecuația fundamentală 4.8:

Ecuație 4.8

Unde este un vector de numărare care conține secvența tranzițiilor care urmează sa fie executate.

În încheierea acestui subcapitol, un exemplu de rețea Petri este prezentat în figura 4.8, unde este calculată matricea de incidență.

Figură 4.1 Exemplu de rețea Petri și caracteristicile matematice

Proprietăți ale rețelelor Petri

Pot fi studiate două tipuri de proprietăți: cele care depind de marcaj și cele care nu depind de acesta. Proprietățile dependente de marcaj sunt proprietăți comportamentale, iar cele care sunt independente de marcaj sunt proprietăți de structură.

Realizabilitatea. Un marcaj Mn se spune că este realizabil dintr-un marcaj M0 dacă există o secvență de execuții care îl transforma pe M0 în Mn . = t1 ,…, tn este secventa de tranziții care efectuează transformarea; aceasta se va nota cu: . Setul tuturor marcajelor rețelei N care pot fi realizare din marcajul M0 se notează cu R(N,M0) sau R(M0).

Mărginirea. O rețea Petri PN = (N,M0) se numește mărginită daca numărul jetoanelor din fiecare locație nu depășește niciodată un anumit număr natural k, indifferent de marcajul realizat: pentru oricare p din P și oricare M din R(M0) rezultă M(p) ≤ k.

Viabilitatea. Acest concept este legat de absența interblocajelor în sistemele în care se pune problema utilizării în comun a mai multor resurse.

O rețea Petri PN = (N,M0) se numește viabilă dacă indiferent de marcajul realizabil din M0, se poate executa în continuare oricare tranziție din rețea, eventual executând în prealabil anumite secvențe. Dacă o rețea este viabilă, atunci se garantează lipsa interblocajelor.

O tranziție t din PN = (N,M0) se numește:

Moartă (sau L0 – viabilă), dacă t nu poate fi executatăîn nici o secvență din L(M0)

L1 – viabilă, dacă t poate fi executată cel puțin o dată în unele secvențe executabile din L(M0)

L2 – viabilă, dacă, dându-se un număr natural k, t poate fi executată de cel puțin k ori în unele secvențe din L(M0)

L3 – viabilă, dacă t apare de o infinitate de ori în unele secvențe din L(M0)

L4 – viabilă, dacă t este viabilă din oricare marcaj aparținând setului R(M0).

Reversabilitatea. O rețea Petri PN = (N,M0) este reversibilă dacă oricare ar fi marcajul M din setul R(M0), M0 este realizabil din M. Prin urmare, rețeaua este reversibilă dacă totdeauna se poate ajunge din nou la starea inițială.

Metode de analiză

Metodele de anliză pentru rețelele Petri pot fi clasificate în următoarele trei grupe: metoda graficului de accesibilitate, abordarea ecuației matrice și tehnicile de reducere sau de descompunere. Prima metodă implică enumerarea tuturor marcajelor care pot fi atinse sau a marcajelor acoperitoare. Aceasta ar trebui să se poată aplica tuturor claselor de rețele, dar este limitată la rețele de dimensiuni mici din cauza complexității. Pe de altă parte, ecuațiile de matrice și tehnicile de reducere sunt puternice, dar în multe cazuri ele sunt aplicabile numai subclaselor speciale ale rețelelor Petri.

Interfața grafică UPPAAL se bazează pe analiza graficelor de accesibilitate.

Tipuri de rețele Petri

În acest subcapitol este prezentată o scurtă descriere a trei subclase ale rețelelor Petri: rețele Petri temporizate, rețele Petri deterministe și rețele Petri stochastice.

Rețele Petri temporizate.

Necesitatea includerii variabilelor de timp în modelele de sisteme dinamice apare deoarece aproape toate evenimentele sunt legate de timp. Aceasta se poate realiza condiționând fie întârzierea jetoanelor în locații, pentru un anumit interval de timp, înainte de execuția tranzițiilor, fie introducând o întârziere între momentul în care tranzițiile sunt admisibile și momentul în care ele se executa (întârzierea tranzițiilor). Se introduce noțiunea de locație temporizată prin atașarea unei valori θ(p) , reprezentând durata dintre momentul de timp când un jeton este introdus in locație și momentul cand el poate fi extras pentru execuția unei tranziții de ieșire. Dacă un jeton este introdus într-o locație temporizată, el nu părăsește locatția (pentru execuția tranzițiilor de ieșire) până când nu a expirat intervalul de timp asociat locației respective. .

Rețele Petri deterministe cu locații temporizate.

Această metodă este aplicabilă unei categorii restrânse de sisteme numite plase fără decizii. Această clasă de rețele nu implică nici decizii, nici nedeterminism. În termeni structurali,fiecare locație este conectată la intrarea a nu mai mult de o tranziție, și la ieșirea a nu mai mult de o tranziție.

Rețele Petri stochastice.

Un proces stochastic este un model matematic util pentru descrierea problemelor probabilistice. Acesta poate fi vizualizat ca o familie de funcții de timp, numite căi ale procesului. Fiecare cale de eșantionare definește o anumită traiectorie din spațiul de stare și corespunde unui posibil comportament observat în sistem / proces.

În cazul unei rețelele Petri stochastice, temporizarea asociată unei tranziții este exprimată printr-o variabilă aleatoare X, cu o funcție de distribuție precizată. Spațiul stărilor unei rețele Petri stochastice este deterninat de setul stărilor realizabile. Datorită faptului că funcția de distribuție exponențială este fără memorie, se poate demonstra că graful de realizare al unei rețele Petri stochastice mărginite este izomorf cu un lanț Markov finit. Lanțul Markov al unei rețele Petri stochastice poate fi obținut utilizând graful de realizare al unei rețele Petri, după cum urmează: spațiul stărilor lanțului Markov este format din setul stărilor realizabile R(M0) și rata tranziției de la starea Mi la starea Mj este data de rata de execuție a tranziției care transformă marcajul Mi în marcajul Mj. Dacă există două sau mai multe tranziții care transformă marcajul Mi în marcajul Mj, notate cu t1, t2,….,atunci rata de execuție se va calcula cu formula: .

Elementul de generare al procesului Markov asociat cu o rețea Petri stochastică este o matrice pătratică (MC), e dimensiune L x L, unde L este egal cu numărul de stări al lanțului Markov. Matricea (MC) se numește matricea de tranziție a stării.

Figură 4.2 Exemplu rețea Petri stochastică și calcularea matricei de tranziție a stării (MC).

Automatele temporizate

Un automat este un dispozitiv care recunoaște o limbă determinată, având stări care reprezintă situațiile unui sistem. Dacă numărul de stări este finit, automatul este numit finit, altfel automatul este numit infinit.

Pentru a include variabilele de timp, a fost schimbată teoria automatelor finite și a fost dezvoltat conceptul de automate temporizate. În acest context, timpul a fost modelat într-un mod discret.

Anumite automate pot fi utilizate pentru a modela și analiza comportamentul de sincronizare a sistemelor informatice, adică a sistemelor sau a rețelelor în timp real. Au fost dezvoltate și studiate intensiv metode de verificare a proprietăților de siguranță și de viață.

Definiția formală a automatului temporizat

Un automat temporizat este un sextuplu A = (L, L0, C, A, E, I), unde:

L este un set de locații

L0 L este setul de locații inițiale

C este setul finit de ceasuri

A este un set acțiuni, co-acțiuni și acțiune internă

corelează setul de tranziții. Un arc reprezintă o tranziție de la o locație l la o locație l’ la introducerea simbolului a. Setul reprezintă ceasurile de resetat în această tranziție și b este o restricție de timp asupra lui C.

atribuie invariant locațiilor.

În figura 4.3 este prezentată o reprezentare grafică a unui automat temporizat. În tranziții sunt reprezentate guard, actions și reset, y și x sunt ceasurile, iar a, b, c sunt acțiuni.

Figure 4.3 – Exemplu de automat programabil

Selectarea automatelor temporizate

Automatele temporizate au fost adoptate ca formalism de modelare pentru modelare din două motive principale: în primul rând, studiul sistemului de trafic propus trebuie să ia în considerare timpul; în al doilea rând, este formalismul de intrare al modelului UPPAAL.

Extinderea automatelor temporizate implementate în UPPAAL permite o modelare mai detaliată, deoarece este un formalism cu o capacitate de modelare scăzută, deci pot fi generate modele de bază. Mai mult decât atât, este un software disponibil gratuit, care poate fi simulat și verificat în mod formal în același mediu, fără a fi necesară o conversie între simulare și verificare.

Modelarea traficului rutier

După cum s-a menționat în capitolul precedent, formalismul adoptat pentru modelarea sistemelor considerate în această lucrare este Timed Automata (TA , automatele temporizate).

De asemenea, mediul de simulare și verificare UPPAAL va fi utilizat pentru realizarea tehnicilor de simulare și analiză formală de verificare, așadar modelele au fost implementare pe editorul acestui instrument software.

În această secțiune este descris întregul proces de modelare până la modelul TA final care acoperă și reprezintă studiul de caz definit în capitolul șase.

Fiecare exemplu prezent în acest capitol definește o problemă concretă și evoluția modelelor până la crearea modelului final care conține toate caracteristicile necesare pentru a fi implementate în studiul de caz.

Scopul principal al acestei lucrări este de a crea o abordare sistematică a modelelor rutiere.

Modelele prezentate în acest capitol sunt împărțite în două: modele simpliste și modele complexe de modelare. Modele simpliste conțin:

Un model cu o singură bandă de circulație și mai multe automobile

Modelele cu o complexitate mai ridicată sunt reprezentate de următoarele modele:

Un model cu patru benzi de circulație conectate de o intersecție, unde automobilele vor alege strada pe care vor să își continue deplasarea.

Un model cu patru benzi de circulație conectate de o intesecție, fiind prezente mai multe tipuri de vehicule: automobile, autobuze și tramvaie

Un model circulat de cele trei tipuri de vehicule de mai sus, la care au mai fost adăugate ale elemente de traffic: treceri pentru pietoni

Modele simpliste de modelare

Primele modele create conțin interacțiunile simpliste dintre o stradă și vehicule. Aceste modele au fost utile pentru a înțelege tehnicile de modelare și structurile care au potențialul de a fi dezvoltate pentru a atinge scopul vrut.

Model cu o bandă de circulație și mai multe automobile

În acestă modelare, va fi simulată o stradă cu mai multe automobile care circulă și interacționează. În figura 5.1 este reprezentat schematic mediul fizic al modelului pentru o bandă de trafic și mai multe automobile.

Figure 5.1 Diagramă schematică unei benzi, traversată de mai multe automobile

În primul rând a fost declarată în global declaration numărul de celule pe care strada îl conține. În acest exemplu, au fost declarate patru celule stradale cu o lungime de 7,5 metri, acest număr de celule fiind ușor de modificat. Prin urmare, mediul fizic creat a fost o stradă de lungime de 30 metri. Numărul de automobile a fost declarat folosind funcția typedef, această funție leagă și indentifică fiecare automobil cu un număr întreg. În acest model au fost declarate patru automobile. Un automobil care se deplasează în interiorul străzii va ocupa o celulă stradală atunci când modelul evoluează. Pentru interacțiunea dintre vehicule au fost create cinci canale: approach, leave, stop, stay și go, reprezentând funții de ale numărului de automobile prezente pe stradă.

În figura 5.2 este prezentată global declaration, explicată, a modelului cu o singură bandă, cu mai multe automobile controlate de funcții și variabile.

Figure 5.2 Global declaration pentru modelul cu o singură bandă,traversat de mai mult automobile controlate de funții și variabile

Pentru a simula comportamentul dorit și interacțiunile dintre automobile, au fost necesare crearea unor noi funcții și a unor noi variabile auxiliare în street declaration. În primul rând, automobilele vor fi alocare pentru aceeași comandă care inițiază mișcarea, într-o listă cu aceeași dimensiune ca a numărului de celule. Aceasta înseamnă ca fiecare element al listei este o celulă stradală unde ultima celulă a listei cu ID 0 este celula ultimei străzi (sfârșitul străzii) și elementul cu ID egal cu numărul de celule din celula primei străzi (începutul străzii).

Funcția enqueue a fost creată și va începe să aloce ID-ul autovehiculului în ultima celula din stradă (lista ID 0) și va mari valoarea lungimii variabilei cu unu întotdeauna când se activează canalul approach. A fost declarată o nouă lungime variabilă, care reprezintă numărul total de automobile din interiorul străzii. Din acest motiv, lungimea va avea valoare maximă egală cu numărul de celule stradale, deoarece un automobil va ocupa întotdeauna o celulă stradală.

Funcția dequeue va elibera celula ultimei străzi atunci când respectivul automobil din interiorul străzii va părasi strada, și va scadea lungimea variabilei cu unu.

O altă funcție creată a fost funcția frontală, care, după ce un automobil a părăsit strada, va muta vehiculele în celula următoare a străzii. Această funcție este asociată canalului go.

Funcția tail a fost creată pentru a aloca un automobil care a fost forțat să se oprească în ultima poziție a cozii de așteptare și, din acest motiv, este asociată canalului stop.

În figura 5.3 sunt prezentate street declaration cu funcțiile și variabilele create.

Figure 5.3 Street declaration pentru modelul cu o singură bandă,cu mai multe automobile controlate de variabile și funcții

Strada automatizată este mai complexă și are trei locații:

STREET_START – când un automobil a fost detectat de senzorul Si1 la începutul străzii, iar strada nu are nici un automobil

OCCUPIED – când un automobil sau mai multe se află în interiorul străzii deplasându-se

OUT_of_the_STREET_END- când automobilul a fost detectat de senzorul So1 la capătul străzii și părăsește strada

Acest model presupune la începutul simulării că strada este goală, fără ca nici un automobil să se miște în interior. Din acest motiv, evoluția de la prima locație STREET_START la locația OCCUPIED înseamnă că un automobil călătorește în interiorul străzii și va fi actualizat funcția enqueue și variable length. În locația OCCUPIED, automobilul poate interacționa cu ceilalți. Strada automatizată evoluează numai spre locația STREET_END când un automobil a fost detectat de senzorul So1 și părăsește strada. Dacă strada este ocupată înseamnă ca lungimea este mai mare decât zero și automatul revine la locația OCCUPIED , iar dacă strada este goală (lungimea este egala cu zero) automatul revine la locația STREET_START.

Figura 5.4 prezintă configurația străzii automate pentru o bandă de circulație și mai multe automobile care se deplasează, coordonate cu variabile și funcții.

Figure 5.4 Automatizarea străzii pentru o bandă de circulație cu mai multe automobile coordonate cu variabile și funcții.

Automobilul auto are cinci locații:

OUT_of_the_STREET_START_MOVING – când automobilul se deplasează în direcția începutului următoarei străzi

MOVING_INSIDE_the_STREET – când automobilul a fost detectat de senzorul Si1 și este în interiorul străzii deplasându-se

STOPPED_INSIDE_of_STREET –când automobilul este oprit în interiorul străzii

AGAIN_IN_MOVEMENT – când după oprire, automobilul se deplasează din nou în interiorul străzii

OUT_of_the_STREET_END_MOVING – când un automobil a fost detectat de senzorul So1 și este în afara sfârșitului de strada,deplasându-se

Automobilul auto evoluează numai din locația inițială dacă a fost detectat de senzorul Si1 prezent la începutul străzii. Din momentul în care un automobil se află în interiorul străzii, are două posibilități: ori se deplaseazăpe toată lungimea străzii fără oprire, ori este forțat să oprească. Dacă automobilul ajunge la capătul străzii fără să se oprească, timpul necesar deplasării a patru celule ale străzii cu viteză între 1 km/h și 50 km/h este de 108 secunde, respectiv de două secunde. Un automobil este forțat să oprească dacă există un alt automobil în față care se deplasează mai lent decât acesta sau dacă timpul a fost mai mic sau mai mare decât timpul necesar pentru a se deplasa pe cele patru celule ale străzii.

Dacă automobilul se oprește în interiorul străzii, acesta se va mișca numai dacă condițiile străzii îi permit să meargă în față și această evoluți se face prin canalul de sincronizare go. Dacă după aceea strada este liberă până la capăt, automobilul va ajunge la capătul străzii, iar dacă este forțat să oprească, canalul stay va fi activat și automobilul se va opri din nou.

Figura 5.5 prezintă configurația automobilului auto pentru modelul cu o bandă de circulație și mai multe automobile,controlate de variabile și funcții.

Figure 5.5 Automobilul auto pentru modelul cu o bandă de circulație și mai multe automobile,controlate de variabile și funcții

Acest model are următoarele limitări și avantaje:

Este un model simplu, considerându-se un singur tip de vehicule (automobile)

Numărul de celule stradale poate fi modificat ușor, fiind necesar doar să se definească acele variabile în global declaration

Pentru punerea în aplicare a mai multor străzi și a mai multor automobile ar trebui creată fiecare stradă cu mai multe variabile de lungime și liste pentru a aloca automobilele în fiecare stradă, acest lucru fiind imposibil pentru extinderea unui scenariu cu un număr mare de străzi

Structura străzii automate nu permite crearea de străzi cu lungimi diferite,deoarece timpul necesar pentru deplasare pe toată strada este întotdeauna același

Crearea acestui model de complexitate scăzută a fost util pentru înțelegerea tehnicilor și structurilor de modelare care vor fi utilizate pentru a atinge scopul propus.

Așadar, pentru modelarea mediului fizic, soluția a fost crearea unei matrice de coordinate. Această matrice fiind capabilă să controleze în mod precis mișcarea vehiculelor, să poată fi introduce cu precizie elementele de traffic și să poată fi ușor extensibile, fiind necesar doar adăugarea mai multor rânduri. Pentru modelarea mediului fizic al străzilor în toate modelele următoare s-au folosit matrice.

Modele complexe de modelare

Pentru a modela mediul de trafic s-au creat modele bazate pe matrice. O matrice este o structură compactă de date care poate fi ușor de extins și va reprezenta o hartă a celulelor străzii.

Matricele implementate în aceste modele pentru modelarea mediului de circulație rutieră au următoarele caracteristici:

Fiecare linie corespunde unei benzi independente de trafic pe o stradă

Valoarea prezentă în prima coloană reprezintă numărul de celule pe care fiecare stradă o are

Următoarele coloane reprezintă celule stradale goale sau elemente de trafic

Datorită limitorilor din UPPAAL nu este posibil să se creeze vectori cu dimensiuni diferite și unele dintre valorile prezente în aceaste matrici nu au nici o importanță.

Model de trafic rutier cu mai multe străzi posibile (1, 2 sau 3), cu autovehicule în flux liber

Comportamentul unei străzi cu mai multe automobile a fost deja modelat; iar următorul nivel de complexitate este extinderea hărții. Astfel, la sfârșitul străzii la care aceastea și-au început mișcarea, vor trebui să aleagă între una dintre cele trei străzi pentru a-și continua deplasările. Regula de alegere a străzii următoare ar trebui să se bazeze pe datele statistice primite de senzorii implementați la capătul străzilor. Datele primite ar da procentul fluxului de trafic pentru străzile viitoare. Aceste date nefiind disponibile, a fost admis cazul în care mașina de la capătul străzii are două străzi posibile, fluxul fiind distribuit în mod egal între cele două străzi. Aceasta înseamnă că 50% din automobile continuă să se deplaseze pe o stradă, iar alte 50% își continuă deplasarea pe cealaltă stradă. Într-o stradă care se termină cu trei străzi posibile, fluxul de trafic va fi, de asemenea, distribuit în mod egal. În consecință, fiecare următoare stradă va avea 33% din fluxul de trafic care circulă pe strada precedentă.

În figura 5.6 este reprezentat schematic modelul cu mai multe autovehicule care se deplasează pe o stradă, iar la capătul străzii este aleasă o altă stradă. Paragraful anterior a explicat distribuirea fluxului de trafic cu regulile admise reprezentate în această schemă. Primul automobil (negru), care ajunge în intersecție (dreptunghiul albastru) se va deplasa pe strada cu ID 1, al doilea automobil care va ajunge în intersecție (albastru) va alege strada cu ID 2, al treilea automobil (roșu) va alege strada cu ID 3, iar acest ciclu de alegere a străzii va continua. Această distribuție a fluxului de trafic pare a fi rezonabilă și pentru a crea un model mai precis ar fi necesar să se ia informații de la fiecare bandă de trafic care va fi studiată.

Figure 5.6 Diagrama schematică a modelului de trafic cu deplasarea a mai multor automobile cu trei străzi următoare posibile

Crearea de modele generale care pot fi ușor extinse și punerea în aplicare de noi situații și caracteristici a fost scopul principal al autorului. Din acest motiv, definiția anterioară a celulei stradale utilizând lista de funcții a fost ștearsă iar în acest nou model, similiar cu definiția automobilelor, a fost folosită funcția typedef pentru a crea străzile în global declaration.

Pentru a defini mediul fizic a fost definită o variabilă maxnoCells. Această variabilă definește lungimea maximă a străzii considerate (numărul maxim de celule). Cu această variabilă nouă și cu numărul variabil de străzi (noS) a fost creată o matrice idexSC. Această matrice este o hartă a coordonatelor celulei străzii. Fiecare rând corespunde unui ID de stradă, primul rând fiind ID 0 al străzii, iar ultimul ID aparținând ultimei străzi. Coloana numărul unu corespunde numărului de celule pe care fiecare stradă o are și următoarele coloane sunt îndeplinite cu -1, ceea ce înseamnă că este o celulă stradă goală. Datorită limitărilor UPPAAL nu este posibil să se creeze vectori cu dimensiuni diferite, iar unele din -1 prezente în matrice nu au nici o semnificație. Prima coloană va fi importantă pentru a limita dimensiunea stradă. Prin urmare, este ușor să extindeți harta și să implementați alte caracteristici în modelele posterioare.

Alegerea străzii următoare într-o intersecție a fost implementată cu o aplicație similară. Mai întâi, a fost declarată o nouă variabilă maxNextStreets (maximul de străzi următoare). Această variabilă este egală cu trei, deoarece în această intersecție, un automobil poate avea trei străzi următoare posibile. Cu această variabilă și cu numărul variabil al străzilor (noS) a fost creată o altă matrice indexMAP. Fiecare linie corespunde unui ID de stradă, prima linie fiind a străzii 0 și ultima linie fiind ID-ul ultimei străzi. Prima coloană conține numărul următoarelor strazi posibile de la capătul străzii, iar celelalte coloane au codurile următoarelor străzi. Așa cum este prezentat în schema din Figura 5.6, ID-ul stradal 0 în capătul său, va avea trei următoare străzi posibile (străzile ID 1, 2 sau 3) și toate automobilele care vor fi în ultima celulă a ID-urilor străzilor 1 , 2 sau 3 au zero posibile străzi următoare. Astfel, atunci când un autovehicul părăsește ID-urile străzilor 1, 2 sau 3 este în afara hărții luate în considerare. Valoarea -1 înseamnă că nu există nici o stradă viitoare, iar autoturismul după deplasarea pe această stradă este în afara hărții. Variabila b este o variabilă de control, o funcție a numărului de străzi, iar pentru fiecare valoare b un automobil prezent la capătul străzii va avea o altă destinație.

Strada curentă pentru fiecare autoturism a fost definită, iar valoarea definită în vectorul currentStreet reprezintă ID-ul inițial al străzii pe care un autoturism va porni simularea. Acest vector conține intrările fluxului de trafic în simulare. Valoarea currentStreet se va schimba de fiecare dată când un automobil a părăsit o stradă și continuă să se deplaseze pe o altă stradă a hărții.

Toate canalele prezente sunt funcții ale numărul de automobile. Canalul approach este activat când un vehicul este detectat la începutul străzii (celula primei străzi), canalul traveling este activat atunci când un automobil are în față o celulă liberă, iar canalul leave este activat atunci când un automobil se află în ultima celulă a străzii.

În figura 5.7 variabilele globale sunt prezentate în banda de circulație a unui model cu multiple opțiuni posibile, pe măsură ce străzile următoare se apropie, automobilele se deplasează într-un flux liber.

Figure 5.7 Global declaration al modelului cu multiple automobile, cu trei următoare străzi posbile

Strada automată a fost simplificată deoarece există doar trei canale, dar continuă cu trei locații:

STREET_STARTS – când un automobil a fost detectat de un senzor Si1 la începutul unei străzi și strada nu are nici un automobil

UPDATING_CELLS – când un automobil sau mai multe se află în interiorul străzii pe care se deplasează

STREET_ENDS – când un automobil a fost detectat de senzorul So1 la capătul străzii și părăsește strada

Acest model presupune la începutul simulării ca întreaga hartă a străzilor este goală, fără ca nici un automobil să se miște înăuntru. Din acest motiv, evoluția de la prima locație STREET_START la locația UPDATING_CELLS înseamnă că un automobil se deplaseză în interiorul unei străzi și va fi actualizat cu funcția enqueue. Ca un guard va fi necesar să se verifice trei reguli: în primul rând, să se citească valoarea din interiorul vectorului curentStreet care va defini strada pe care automobilul ajunge; în al doilea rând, matricea indexSD trebuie să aibă în a doua coloană valoarea -1, ceea ce înseamnă că celula primei străzi este goală fără niciun vehicul și în final variabila novis (numărul vehiculelor din interiorul străzii) trebuie să fie mai mică sau egală decât numărul de celule ceea ce înseamnă că fiecare stradă poate conține un număr maxim de automobile egal cu numărul de celule ale străzilor, deoarece fiecare automobil va ocupa o celulă.

În locația UPDATING_CELLS, automobilul poate interacționa cu celelalte automobile. De exemplu, alte automobile pot intra pe stradă cu aceleași reguli descrise anterior și alte automobile își pot continua deplasarea dacă numărul de celule traversat (nocTA) este mai mic decât dimensiunea străzii (mai mică decât prima coloană a matricei indexSC) și dacă celula din față este liberă (celula trebuie să aibă valoarea -1). Pentru a cunoaște strada pe care o mașină se deplasează, este necesar să citiți valoarea prezentă în vectorul curentStreet. În acest caz va fi activat canalul traveling și, de asemenea, actualizată funcția moving.

Strata automată evoluează din locația UPDATING_CELLS numai atunci când un automobil a fost detectat de senzorul So1 și acesta părăsește strada. În acest caz, variabila nocTA este egală cu prima coloană a matricei indexSC. Pentru a cunoaște strada de pe care pleacă un automobil este de asemenea necesar să citiți valoarea prezentă în vectorul currentStreet. Dacă variabila novis este mai mare decât zero, street automaton se întoarce la locația UPDATING_CELLS deoarece strada nu este goală și continuă cu autoturismele din interior. Un alt scenariu este, dacă numărul de automobile din interiorul străzii este egal cu zero, automatul revine la locația STREET_START , strada fiind goală.

Stradă automată va fi "creierul" simulării având toate informațiile referitoare la condițiile de trafic, setul de reguli și regulile de tranziție ulterioare.

Figura 5.8 prezintă configurația străzii automate pentru banda de circulație și câteva automobile care deplasează, cu trei următoare străzi posibile.

Figure 5.8 Strada automată a modelului de trafic cu mai multe automobile, cu trei următoare străzi posibile

În street declarations au fost implementate trei funcții ( enqueue, dequeue și moving) care vor conține setul de reguli pentru o circulație corectă a traficului.

Funcția enqueue și dequeue sunt asociate cu următoarele două variabile: funcția nocTA [noA] a fiecărui automobil care este numărul de celule parcurse de un automobil și valoarea inițială este unu și variabila novis care este numărul de automobile din interiorul strazii și valoarea sa inițială este zero, deoarece la începutul simulării, străzile sunt considerate goale. Funcția moving este asociată doar cu variabila nocTA [noA].

Funcția enqueue are regulile pentru introducerea unui automobil pe o stradă. Într-un scenariu real, un automobil poate intra pe o stradă numai dacă strada nu este plină de vehicule și își va începe călătoria de la începutul străzii până la sfârșit. Funcția enqueue va verifica aceste două condiții și, dacă sunt validate, va introduce un automobil în interiorul unei străzi. În matricea indexSC, dacă a doua coloană a unei străzi este egală cu valoarea -1, înseamnă că celula primei străzi este liberă. Pentru a verifica dacă o stradă nu este plină de vehicule, variabila novis trebuie să fie mai mică decât prima coloană a matricei (indexSC [id_S] [0)]. Dacă aceste două condiții sunt verificate, celula primei străzi pe care un automobil ajunge va fi ocupată de ID-ul automobilului (indexSC [id_S] [nocTA [automobile]]: = automobile), iar variabila novis va crește cu unu (novis ++) deoarece automobilul din stradă va ocupa prima celulă a străzii.

Funcția moving conține regulile pentru o mașină continuă să se deplaseze. În realitate, un automobil se poate deplasa dacă există spațiu liber în față. Funcția moving va verifica această condiție și dacă este adevărată va muta autovehiculul în celula următoare. Dacă celula străzii este mai mare cu o unitate decât numărul curent de celule traversate (nocTA [automobile] +1) este egală cu -1 (indexSC [id_S] [nocTA [automobile] +1] == – 1) și dacă numărul celulelor traversate de automobil este mai mic decât dimensiunea străzii (mai mică decât prima coloană a matricei indexSC [id_S] [0]), automobilul poate continua să se miște. În acest caz, celula următoarei străzi va fi înlocuită cu ID-ul automobilului (indexSC [id_S] [nocTA [automobile] +1]: = automobile), iar celula precedentă va fi înlocuită cu valoarea -1 (indexSC [id_S] [nocTA [automobile]]: = – 1) și înseamnă că celula străzii este din nou liberă. De asemenea, numărul celulelor traversate de un automobil va crește cu o unitate (nocT [automobile] ++). Variabila novis nu trebuie să fie actualizată, deoarece automobilul s-a deplasat doar în interiorul străzii, numărul de vehicule din interiorul străzii rămânând constant.

Funcția dequeue cuprinde regulile pentru un automobil care părăsește strada.

Funcția dequeue va verifica dacă automobilul se află în ultima celulă a străzii și dacă această condiție este adevărată, automobilul va părăsi strada. Astfel, dacă numărul de celule ale străzii traversate de un automobil este egal cu valoarea din prima coloană a matricei indexSC (nocTA [automobile] == indexSC [id_S] [0]), automobilul este în situația de a părăsi strada. Celula actuală a automobilului va deveni liberă (indexSC [id_S] [nocTA [automobile]]: = -1) iar valoarea celulelor traversate de un automobil va fi resetată la valoarea inițială (nocTA [automobile]:= 1) iar numărul de vehicule din interiorul străzii scade (novis–).

În Figura 5.9 sunt prezentate street declaration, explicate atât funcțiile cât și variabilele create. Street declaration este locul în care sunt implementate toate regulile de tranziție din interiorul unei străzi.

Figure 5.9 Street declaration pentru modelul de circulație cu mai multe automobile, cu trei următoare strazi posibile

Automobilul auto a fost reconfigurat și are trei locuri:

OUT_of_the_STREET_START_MOVING: când un automobil se mișcă spre începutul străzii.

MOVING_INSIDE_the_STREET: când un automobil a fost detectat de către senzorul Si1 și din acel momen se află în interiorul străzii, deplasându-se.

OUT_of_MAP: când autovehiculul a fost detectat de senzorul So1 și nu există strazi posibile și se află în afara hărții luate în considerare.

Automobilul auto evoluează numai din locația inițială dacă a fost detectat un automobil de către senzorul Si1 prezent la începutul unei străzi. Abordarea canalului va fi activat, iar clock xC va avea o valoare cuprinsă între 0,5 și 27 de unități de timp, care reprezintă timpul necesar pentru a traversa o celulă stradală cu dimensiunea de 7,5 metri, cu un interval de viteză între 1 și 50 km / h.

După ce a intrat pe o stradă, automobilul va primi canalul traveling de la street automaton întotdeauna când celula străzii din față este liberă și își va actualiza poziția în interiorul străzii. Când un automobil ajunge la celula ultimei străzi, canalul leave va fi activat și funcția nextC va fi actualizată. Această funcție are algoritmul de alegere între următoarele străzi posibile. Dacă valoarea variabilei auxiliare este 1 valoarea currenStreet va fi actualizată și automobilul continuă să se miște în interiorul hărții considerate, dar într-un alt ID de stradă. Dacă valoarea răspunsului este egală cu -1 înseamnă că nu există posibile străzi următoare și că automobilul va fi în afara hărții, rămânând blocat în locația OUT_of_MAP.

Figura 5.10 prezintă configurația automobilului automat pentru circulație cu căteva automobile, cu trei străzi posibile.

Figure 5.10 Automobilul automat pentru modelul de trafic cu mai multe automobile, cu trei următoare străzi posibile.

Automobile declaration au un algoritm generic de a alege umătoarea stradă. Funcția numită nextC este o funcție a numărului de străzi. Astfel, atunci când un autovehicul se află în celula ultimei străzi, acesta poate avea patru scenarii posibile: zero străzi următoare pentru a trece mai departe, doar o stradă, două străzi sau trei străzi posibile pentru a-și continua deplasarea.

În figura 5.11 este prezentată funcția, iar în primul dreptunghi se tratează scenariul cu zero străzi posibile pentru a înainta. Dacă valoarea prezentă în prima coloană a matricei indexMAP este egală cu 0, noua valoare pe care vectorul currentStreet o va avea este -1 și, de asemenea, răspunsul variabilei va avea valoarea -1 pentru acest automobil și va fi în afara hărții.

Cel de-al doilea dreptunghi prezent în Figura 5.11 tratează cazul cu o singură stradă posibilă. Dacă valoarea prezentă în prima coloană a matricei indexMAP este 1 valoarea vectorului currentStreet va fi înlocuită cu valoarea prezentă în a doua coloană a matricei indexMAP și răspunsul va lua valoarea 1 automobilul continuându-și deplasarea în interiorul hărții, dar pe altă stradă.

Cel de-al treilea dreptunghi consideră că o stradă se termină cu două străzi posibile. Dacă valoarea prezentă în prima coloană a matricei indexMAP este egală cu 2 și dacă valoarea variabilei auxiliare b este egală cu 0, valoarea străzii curente va fi înlocuită cu elementul celei de-a doua coloane prezentă în matricea indexMAP și b va lua valoarea 1. Pentru următorul automobil care ajunge la aceeași intersecție valoarea lui b va fi egală cu 1 și valoarea currentStreet va fi înlocuită cu elementul prezent în coloana a treia a imatricei indexMAP și b va reveni la valoarea 0. În acest fel de intersecție fluxul de trafic pentru cele două străzi posibile va fi distribuit în mod egal cu 50% din fluxul de trafic de pe strada precedentă.

Cel de-al patrulea dreptunghi prezent în Figura 5.11 ia în considerare o intersecție cu trei următoare străzi posibile. Dacă valoarea primei coloane a matricei indexMAP este egală cu 3 și variabila b pentru acea stradă are valoarea 0 vectorul currentStreet va fi înlocuit cu elementul prezent în a doua coloană a matricei indexMAP și b va fi actualizat la 1. Dacă b este egal cu 1, valoarea străzii curente va fi înlocuită cu elementul prezent în cea de-a treia coloana a matricei indexMAP și b va avea valoarea 2. Dacă b are valoarea 2 vectorul currentStreet va fi înlocuit cu valoarea prezentă în a patra coloană a matricei indexMAP și b va reveni din nou la valoarea 0. Prin urmare, în această intersecție fluxul va fi distribuit în mod egal pe cele trei străzi următoare cu 33% din fluxul de trafic de pe strada precedentă.

Figure 5.11 Automobile declarations pentru modelul de trafic cu căteva automobile și trei următoare străzi posibile

Acest model reprezintă primul model relevant cu reguli de trafic incluse.

Străzi cu mai multe posibilități de înaintare, cu automobile, autobuze și tramvaie, interacționând cu diferite elemente din trafic

Odată ce comportamentul unei benzi de trafic cu deplasarea a mai multor automobile,cu trei străzi următoare a fost deja modelat, următorul nivel de complexitate este crearea de tipuri diferite de vehicule. Au fost definite două noi clase de vehicule: autobuze și tramvaie. Diferența dintre un automobil și un autobuz este lungimea lui. Autobuzul este mai lung decât un automobil și are un traseu definit pentru a trece de stațiile de autobuz prestabilite. Tramvaiul este, de asemenea, mai mare decât un automobil și în similar cu un autobuz are un traseu definit pentru a se deplasa prin opririle de tramvai.

Vehiculele interacționează cu alte elemente de trafic prezente, cum ar fi: treceri pentru pietoni, stații de autobuz și stații de tramvai.

Automobilul poate interacționa cu următoarele elemente de trafic implementate:

Treceri pentru pietoni;

Autobuzele pot interacționa cu următoarele elemente de trafic implementate:

Treceri pentru pietoni;

Stații de autobuz în interiorul benzii de circulație;

Stații de autobuz înafara benzii de circulație

Tramvaiele pot interacționa cu următoarele elemente de trafic implementate:

Treceri pentru pietoni;

Stații de tramvai în interiorul benzii de circulație;

Global declaration pentru modelele care conțin diferite elemente de trafic

Pentru implementarea acestor elemente de trafic au fost necesare instanțierea matricei indexSC, cu noi numere negative care vor avea un sens diferit față de celula goală, afectând comportamentul vehiculelor.

Semnificația (elementului de trafic) al cifrelor negative este următoarea:

-1 – celulă goală

-2 – stație de autobuz în interiorul benzii de circulație

-3- stație de tramvai în interiorul benzii de circulație

-4 – treceri pentru pietoni

-6 – stație de autobuz înafara benzii de circulație

-7 – stație de tramvai înafara benzii de circulație

-8 – sfârșit de stradă

Implementarea elemntelor de trafic în interiorul benzii de circulație

În figura 5.12 este prezentată configurația unei opriri de autouz în interiorul unei benzi de circulație. În acest exemplu strada fiind constituită din patru celule (primul element al matricei) iar celulele străzii cuprinzând stația de autobuz care este codificată cu -2. Toate celelalte celule codate cu -1, (celule goale) iar ultimul element al matricei (-8) însemnând sfârșitul străzii.

Figure 5.12 Stația de autobuz în interiorul benzii de circulație implementată în matricea indexSC

În figura 5.13 este prezentată configurația unei opriri de tramvai în interiorul unei benzi de circulație. În acest exemplu strada fiind constituită din patru celule (primul element al matricei) iar celulele străzii cuprinzând stația de tramvai care este codificată cu -3. Toate celelalte celule codate cu -1, (celule goale) iar ultimul element al matricei (-8) însemnând sfârșitul străzii.

Figure 5.13 Stația de tramvai în interiorul benzii de circulație implementată în matricea indexSC

În figura 5.14 este prezentată o bandă de circulație cu o trecere de pietoni. În acest exemplu, strada este strada este constituită din patru celule (primul element al matricei) și celula cu o trecere este codificată cu numărul -4. Toate celelalte celule sunt codificate cu -1 iar ultimul element al matricei (-8) înseamnă că este sfârșitul străzii.

Figure 5.14 Treceri pentru pietoni implementată în matricea indexSC

Aceste trei elemente de trafic din interiorul benzii de circulație (treceri pentru pietoni, stații de autobuz și tramvai în interiorul unei benzii) atunci când vehiculele se mișcă, a creat necesitatea variabilelor de control, pentru a restabili elementul de trafic din interiorul celulei străzii (în interiorul matricei indexSC) în aceeași poziție. În figura 5.15 sunt prezentate cele 18 variabile de control generate în global declaration. La începutul simulării, toate variabilele sunt setate cu valoarea 0 și în momentul în care interacționează cu elementul de trafic respectiv, valoarea se va schimba pentru 1.

Figure 5.15 Variabilele de control necesare pentru modelul cu diferite elemente de trafic

Pentru a coordona repoziționarea diferitelor elemente de trafic atunci când autovehiculele se mișcă, au fost create trei variabile: roBSA [noA], roTSA [noA] și roCWA [noA] fiind responsabile de repoziționarea stațiilor de autobuz din interiorul unei străzi , stațiile de tramvai din în interiorul unei străzi, respectiv trecerile de pietoni.

Variabila roBSA [noA] (repoziționarea stației de autobuz cu un automobil), întotdeauna că următoarea celulă stradală a unui automobil în mișcare este o stație de autobuz (-2), iar automobilul se deplasează deasupra acelei celule, variabila roBSA [noA ] va avea valoarea unu. În momentul în care automobilul se mișcă din nou în celula din față, valoarea variabilei revine la zero și se salvează informațiile pentru a înlocui celula anterioară ca o oprire de autobuz în interiorul străzii (cifra -2) în aceeași locație.

În figura 5.16, comportamentul variabilei roBSA [noA] atunci când autovehiculele se mișcă.

Figure 5.16 Comportamentul variabilei de control roBSA[noA] când automobilul se deplasează

De asemenea comportamentele variabilelor de control roTSA[noA] și roCWA[noA] atunci când automobilul se află în deplasare sunt similare modelului anterior.

Pentru a avea un control asupra deplasării autobuzului,au fost create variabile responsabile pentru repoziționarea diferitelor elemente de trafic. Odată ce autobuzul este un vehicul mai lung și ocupă două celule ale străzii, pentru repoziționarea fiecărui element de trafic sunt necesare două variabile, fiind responsabile de controlul frontal al autobuzului și al parții din spate a autobuzului. Trebuie menționat faptul că variabilele frontale ale autobuzului sunt necesare doar în momentul în care autobuzul părăsește strada pentru a înlocui corect ultima celulă stradală, deoarece în acest model un autobuz care părăsește o stradă este îndepărtat din ultimele două celule stradale. În timpul mișcării normale, variabilele responsabile pentru a înlocui elementul de trafic sunt cele dedicate spateluiautobuzlui.

Variabilele roBSBF [noB] (repoziționarea stației de autobuz pentru partea din față a autobuzului) și roBSBB [noB] (repoziționarea stației de autobuz pentru partea din spate a autobuzului) întotdeauna că celula următoare a străzii pentru partea fin față și partea din spate a unui autobuz este o stație de autobuz (-2), iar apartea din față și partea din spate a unui autobuz se deplasează deasupra acelei celule, aceste variabile vor avea valoarea unu. În momentul în care autobuzul se mișcă din nou în celula din față, valoarea acestor variabile revine la zero și se salvează informațiile pentru a înlocui celula anterioară ca o oprire de autobuz în interiorul străzii (cifra -2) în aceeași locație.

În Figura 5.17 se afișează comportamentul variabilelor roBSBF[noB] și roBSBB[noB] când autobuzele se mișcă.

Figure 5.17 Comportamentul variabilei de control roBSBF[noB] si roBSBB[noB] când autobuzul de află în deplasare

De asemenea comportamentul variabilelor de control roTSBF[noB], roTSBB[noB], roCWBF[noB] si roCWBB[noB] când autobuzul se află în mișcare este similar cu cel anterior.

Controlul mișcării a tramvaiului este efectuat utilizând variabile responsabile de repoziționarea diferitelor elemente de trafic. Tramvaiul este un vehicul mai mare decât autobuzul și ocupă trei celule de stradă, pentru repoziționarea fiecărui element de trafic sunt necesare trei variabile, fiind responsabile de partea din față a tramvaiului, de partea din mijloc și de partea din spate a acestuia.

Variabilele roBSTF[noT] (repoziția stației de tramvai pentru partea din față a tramvaiului) roBSTM[noT] (repoziția stației de tramvai pentru partea din mijloc a tramvaiului) și roBSTB[noT] (repoziția stației de tramvai pentru partea din spate a tramvaiului), întotdeauna când următoarea celulă a părții din față, a părții din mijloc și a părții din spate a tramvaiului este o stație de autobuz (-2), iar când cele trei părți ale tramvaiului traversează aceasta, aceste variabile vor avea valoarea unu. În momentul în care tramvaiul se mișcă din nou în celula din față, valoarea acestor variabile revine la zero și se salvează informațiile pentru a înlocui celula anterioară ca o stașie de autobuz în interiorul străzii (cifra -2) în aceeași locație strada.

În figura 5.18 se prezintă comportamentul variabilelor roBSTF [noT], roBSTM [noT] și roBSTB [noT] când tramvaiele se află în deplasare.

Figure 5.18 Comportamentul variabilelor de control roBSTF [noT], roBSTM [noT] și roBSTB [noT] când tramvaiul se află în deplasare

Implementarea unor funcții noi în strada automatizată

Noile elemente de trafic implementate în matricea indexSC au generat noi stimulente, prin urmare, au fost generate noi comportamente ale vehiculelor. Imaginile prezente mai jos reprezintă schematic comportamentul respectiv al funcțiilor implemetate.

Noi funcții implementate automobilelor

Una dintre interacțiunile posibile este atunci când un automobil trece printr-o celulă care conține o trecere de pietoni, reprezentată în figura 5.19. Aceasta descrie situația când următoarea celulă stradală este o trecere de pietoni nesemaforizată, prin urmare, canalul stoppped_in_NCCWA[A]! este activat.

Funcția stopped_in_crosswalkA(A) este actualizată, practic, aceasta mută automobilul în următoarea celulă stradală. Diferența între această funcție și funcția movingA este timpul în care automobilul se va deplasa în această celulă.

Figure 5.19 Reprezentare schematică când un automobil se deplasează pe o trecere de pietoni

Noi funcții implementate pentru autobuze

Una dintre interacțiunile posibile este atunci când un autobuz trece printr-o celulă care conține o trecere de pietoni,reprezentată în figura 5.20. Aceasta descrie situația când următoarea celulă stradală este o trecere de pietoni nesemaforizată, prin urmare, canalul stoppped_in_NCCWB[B]! este activat.

Funcția stopped_in_crosswalkB(B) este actualizată, practic, aceasta mută autobuzul în următoarea celulă stradală. Diferența între această funcție și funcția movingB este timpul în care automobilul se va deplasa în această celulă.

Figure 5.20 Reprezentare schematică când un autobuz se deplasează pe o trecere de pietoni

O altă interacțiune posibilă este atunci când un autobuz trece printr-o celulă care conține o stație de autobuz, reprezentată în figura 5.21. Aceasta descrie situația când următoarea celulă este o stație de autobuz, iar canalul stopped_in_bus_station_inside_streetB[B]! este activat.

Funcția stopped_in_bus_station_inside_of_the_streetB(B) este actualizată, aceasta mută autobuzul pentru următoarea celulă stradală. Diferența între această funcție și funcția movingB sau stopped_in_crosswalkB(B) este timpul în care autobuzul traversează această celulă.

Figure 5.21 Reprezentare schematică când un autobuz traversează o stație de autobuz

Noi funcții implementate tramvaielor

Una dintre interacțiunile posibile este atunci când un tramvai trece printr-o celulă care conține o trecere de pietoni,reprezentată în figura 5.22. Aceasta descrie situația când următoarea celulă stradală este o trecere de pietoni nesemaforizată, prin urmare, canalul stoppped_in_NCCWT[T]! este activat.

Funcția stopped_in_crosswalkT(T) este actualizată, practic, aceasta mută tramvaiul în următoarea celulă stradală. Diferența între această funcție și funcția movingT este timpul în care automobilul va traversa această celulă.

Figure 5.22 Reprezentare schematică când un tramvai traversează o trecere de pietoni

O altă interacțiune posibilă este atunci când un tramvai trece printr-o celulă care conține o stație de tramvai, reprezentată în figura 5.23. Aceasta descrie situația când următoarea celulă este o stație de tramvai, iar canalul stopped_in_tram_station_inside_streetT[T]! este activat.

Funcția stopped_in_tram_station_inside_of_the_streetT(T) este actualizată, aceasta mută tramvaiul pentru următoarea celulă stradală. Diferența între această funcție și funcția movingT sau stopped_in_crosswalkT(T) este timpul în care tramvaiul traversează această celulă.

Figure 5.23 Reprezentare schematică când un tramvai traversează o stație de tramvai

Automobilul automat

În figura 5.24 este prezentată configurația automobilului automat pentru modelul cu mai multe automobile care interacționează cu elemente de trafic.

Figure 5.24 Automobilul automat pentru modelul cu mai multe vehicule care interacționează cu elemente de trafic

Automobilul auto evoluează numai din locația inițială dacă a fost detectat un automobil de către senzorul Si1 prezent la începutul unei străzi. Canalul approachA va fi activat, iar ceasul time_cellA[id_A] va avea o valoare cuprinsă între 0.5 u.t. și 27 unități de timp, care reprezintă timpul necesar pentru a trece peste celula unei străzi de 7.5 metri, cu o viteză cuprinsă între 1 și 50 km/h.

Dacă celula din față este o trecere de pietoni, canalul stop_in_NCCWA este activat, iar ceasul time_cellA[id_A] va avea o valoare între 0,5 unități de timp și 50 unități de timp, deoarece automobilul poate fi forțat să oprească dacă pietonii traversează.

Autobuzul automat

În figura 5.25 este prezentată configurația autobuzului automat pentru modelul cu mai multe vehicule care interacționează cu diferite elemente de trafic.

Figure 5.25 Autobuzul automat pentru modelul cu mai multe vehicule care interacționează cu diferite elemente de trafic.

Autobuzul evoluează numai din locația inițială dacă a fost detectat un autobuz de către senzorul Si1 prezent la începutul unei străzi. Canalul approachB va fi activat, iar ceasul time_cellB [id_B] va avea o valoare cuprinsă între 1 unitate de timp și 54 de unități de timp, care este timpul necesar pentru a trece peste o celulă stradală cu 7,5 metri, cu o viteză de viteză cuprinsă între 1 și 50 km / h.

Dacă celula din față este o trecere de pietoni, canalul stopped_in_NCCWB este activat. Într-o trecere de pietoni a fost admis că ceasul time_cellB [id_B] va avea o valoare cuprinsă între 0,5 și 50 de unități de timp, deoarece autobuzul poate fi forțat să se oprească dacă pietonii traversează. Dacă celula din față este o stație de autobuz în interiorul unei străzi, canalul stop_in_bus_station_inside_streetB [id_B] este activat. În toate stațiile de autobuz a fost admis faptul că ceasul time_cellB [id_B] va avea o valoare între 60 de unități de timp și 30 de unități de timp care corespunde unei stații de autobuz situate în centrul orașului și în zonele periferice ale orașului, similară cu studiul de caz.

Tramvaiul automat

În figura 5.26 este prezentată configurația tramvaiului pentru modelul cu mai multe vehicule care interacționează cu diferite elemente de trafic.

Figure 5.26 Tramvaiul automat pentru modelul cu mai multe vehicule care interacționează cu diferite elemente de trafic

Tramvaiul evuluează numai din locația inițială dacă a fost detectat un tramvai de către senzorul Si1 prezent la începutul unei străzi. Canalul approachT va fi activat, iar ceasul time_cellT [id_T] va avea o valoare cuprinsă între 1,5 unități de timp și 81 de unități de timp, ceea ce reprezintă timpul necesar pentru traversarea unei celule de 7,5 metri, cu o viteză de viteză cuprinsă între 1 și 50 km / h .

Dacă celula din față este o trecere de pietoni, canalul stopped_in_NCCWT este activat. Într-o trecere de pietoni a fost recunoscut faptul că ceasul time_cellT [id_T] va avea o valoare cuprinsă între 0,5 și 50 de unități de timp, deoarece tramvaiul poate fi forțat să se oprească dacă pietonii traversează. Dacă celula din față este o stație de tramvai în interiorul unei străzi, canalul stopped_in_tram_station_inside_street [id_T] este activat. În toate stațiile de tramvai a fost admis că ceasul time_cellT [id_T] va avea o valoare între 30 de unități de timp și 60 unități de timp, bazate pe aceleași valori pentru autobuze.

Testare și Validare

Aproximativ 5% din total.

Manual de Instalare si Utilizare

Toate simulările au fost făcute în versiunea UPPAAL 4.1.19 (rev 5649), septembrie 2014, utilizare academică și non-comercială.

Datorită volumului mare de interacțiuni intre vehicule, elemente de trafic și străzi, întreaga hartă luată în considerare nu a putut fi simulată. Memoria alocată pe care UPPAAL o poate utiliza în timpul simulării este restricționată și nu poate fi extinsă.

Concluzii

În contextul teoriei traficului urban, automatele celulare bazate pe modele microscopice au capacitatea de a simula în detaliu toate elementele prezentate în acest mediu de trafic. Cantitatea elementelor de trafic implementate, a generat un model care conține un număr mare de reguli și interacțiuni.

Scopul principal al acestei lucrări a fost crearea unei abordări sistematice a unui scenariu complex al traficului urban, iar structura implementată poate fi dezvoltată în continuare. Această abordare sistematică poate fi ușor extinsă, singura limitare fiind puterea de calcul disponibilă.

Acest model prezintă flexibilitate în funcție de mediul în care va fi aplicat, deoarece este implementat un grup mare de elemente de trafic și posibile interacțiuni. Stimulii creați în fiecare vehicul vor depinde de elementele de trafic din stradă și de condițiile de trafic, datorită modularității instalate.

S-a demonstrat că softul UPPAAL este capabil să facă față modelelor de complexitate scăzută / medie, dar pentru implementarea în modelele de complexitate ridicată este în mare măsură limitat, deoarece puterea de calcul pe care UPPAAL o poate accesa este limitată și nu poate fi extinsă.

Bibliografie

x

x

Anexa 1 (dacă este necesar)

Secțiuni relevante din cod

Alte informații relevante (demonstrații etc.)

Lucrări publicate (dacă există)

etc.

Similar Posts