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
Sterowanie sygnalizatorami świetlnymi
- Załączniki
-
- Bez tytułu.png (22.7 KiB) Przejrzano 7527 razy
Sterowanie sygnalizatorami świetlnymi
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!
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
Przykładów nie oglądałem ale rozwiązałem problem za pomocą maszyny stanów. Dzięki!
-
- Posty: 25
- Rejestracja: 17 lis 2012 19:30
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Rzeszów
Re: Sterowanie sygnalizatorami świetlnymi
Mógłbyś wrzucić ten program, z ciekawości chciałbym to zobaczyć???
Re: Sterowanie sygnalizatorami świetlnymi
To moja praca inżynierska, więc wolałbym tego na razie tak nie udostępniać. Mogę Ci powiedzieć co jak zrobiłem
Sterowanie sygnalizatorami świetlnymi
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.
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.