Strona 1 z 1

Sterowanie sygnalizatorami świetlnymi

: 21 lis 2012 16:52
autor: Marcin_K
Witam,
mam stworzoną aplikację sterującą sygnalizatorami na skrzyżowaniu.
Próbuję stworzyć sterowanie adaptacyjne, które uruchamia odpowiednie sygnalizatory w zależności od liczby pojazdów oczekujących na przejazd.
Mam problem ze wstawieniem stanów pośrednich (czerwone+żółte i żółte).
W uproszczeniu: na danym wlocie skrzyżowania mam najwięcej pojazdów -> sygnalizator otrzymuje światło zielone -> kończy się pętla dająca zielone na sygnalizator i w tym momencie muszę się jakoś dowiedzieć jakie będzie światło w następnej pętli żeby ustawić stan przejściowy. Załóżmy, że będzie to czerwone więc muszę wstawić pętlę pośrednią ze stanem żółtym.
Mój program wygląda tak, że mam algorytm liczący która faza ma być aktywna ( tzn. np zielony na danym sygnalizatorze -> oznaczenie 1). Ta jedynka trafia na pętle case która wylicza algorytmem czas dla tego stanu później i jedynka i czas trafiają na kolejną pętlę case która uruchamia zielone na sygnalizatorze przez określony czas.
Jak 'przewidzieć przyszłość' i dorzucić stan przejściowy??

Poniżej mój schemat testowy. Numericem zadaje fazę wyliczoną przez algorytm. Wchodzę do odpowiedniego case czas mam ustawiony stały (5) idę dalej na wykonanie fazy i aktualną fazę mam porównywaną z przykładowo 1 a kolejną z 2. Jeśli i to i to jest spełnione to mam stan przejściowy. Według mnie działałoby to jeśli bym informację o kolejnej fazie dostawał w momencie kiedy informacja o aktualnej jest przekazywana do porównywania ale nie wiem jak to zrobić :(
Na screenie jest błąd, w ostatnim case T dla diody przejścia powinno być w True

Sterowanie sygnalizatorami świetlnymi

: 21 lis 2012 18:04
autor: trooper
Witam,

Skrzyzowanie jest standardowym problemem przygotowującym do egzaminu CLD, stąd też znajdziesz wiele przykładów rozwiązania podstawowego problemu zmiany kolejności, która powinna być zbudowana z wykorzystaniem wzorca maszyny stanów. Każdy z przykładów (lepiej lub gorzej) rozwiązuje to poprawnie.

Jako punkt pierwszy proponuję zapoznać się i zrozumieć takie przykłady. Może ktos z WEAIiIB AGH ma swojego dobrego gotowca i zechce wrzucić? (to jest prosba, ja nie mam dobrego przykladu pod ręką)

Modyfikacja do Twoich potrzeb nie będzie trudna. Poszukaj CLD Sample Exams.

Pozdrawiam i powodzenia w kodowaniu!

Re: Sterowanie sygnalizatorami świetlnymi

: 21 lis 2012 18:48
autor: Marcin_K
Przykładów nie oglądałem ale rozwiązałem problem za pomocą maszyny stanów. Dzięki!

Re: Sterowanie sygnalizatorami świetlnymi

: 21 lis 2012 23:36
autor: plejek
Mógłbyś wrzucić ten program, z ciekawości chciałbym to zobaczyć???

Re: Sterowanie sygnalizatorami świetlnymi

: 22 lis 2012 06:42
autor: Marcin_K
To moja praca inżynierska, więc wolałbym tego na razie tak nie udostępniać. Mogę Ci powiedzieć co jak zrobiłem :P

Sterowanie sygnalizatorami świetlnymi

: 22 lis 2012 18:16
autor: Mikrobi
Proponuję przeglądnąć zasoby NI w kontekście przykładowych rozwiązań zadań z CLD.
Jeśli dobrze poszukać można znaleźć bardzo dobrą prezentację z dyskusją każdego z rozwiązań.
To kilka słów, jednak zawsze jest to wskazówka kiedy jak i dlaczego programista wybiera określone sposoby realizacji programu.