Systemy sterowania programowanego
Sterowanie pojazdem w labiryncie
Pojazd posiada napęd i sterowanie. Labirynt jest obszarem podzielonym na jednakowe komórki, które posiadają ścianki „przejezdne” lub „nieprzejezdne”. Labirynt posiada wejście i wyjcie i jest kwadratem, który posiada rozmiar N * N komórek. Zależnie od układu ścianek istnieje droga (trajektoria) jedna lub więcej dróg od wejścia do wyjścia labiryntu.
Rys. 1. Pojazd w labiryncie
Pojazd może wykonywać następujące ruchy: [M - „do przodu”, R - „do tyłu”, L - „w lewo”, P - „w prawo”]. Pojazd posiada czujniki zderzenia ze ścianką. Czujnik [Z] jest umieszczony z przodu pojazdu, czujnik [T] jest na tyle pojazdu. Zakładamy, że pojazd wykonuje manewry w granicach komórki labiryntu, co przedstawia rysunek poniżej
Rys. 2. Ruch pojazdu po zderzeniu ze ścianką komórki labiryntu
Założenia do systemu sterowania pojazdem
Rys. 3. Struktura systemu sterowania pojazdem
Działanie pojazdu.
Ustawiamy pojazd na wejściu do labiryntu i włączamy program. Program włącza i wyłącza napędy i skręty pojazdu zależnie od zderzeń z przodu i tyłu pojazdu. Zakładamy, że program wyznacza drogę pojazdu, która prowadzi do wyjścia labiryntu.
Identyfikacja programu sterowania.
Analiza zdarzeń, które są powodowane ruchem pojazdu w labiryncie. Przyporządkowanie do zdarzeń sterowań, które wyznaczą poprawną drogę pojazdu w labiryncie. Metodą zapisu wyników analizy, zdarzeń i sterowań, jest diagram blokowo - decyzyjny.
Program sterowania
Wariant 1
Zakładamy, że pojazd wykonuje sterowanie w przód. Po zderzeniu przodem wykonuje manewr cofania, jednocześnie skręt w lewo. Manewr cofania i skrętu jest wykonywany w czasie dT1, który jest tak dobrany, że manewr mieści się w granicach komórki labiryntu, co przedstawia rysunek poniżej.
Rys. 4 Ruch pojazdu w komórce labiryntu
Rys. 5. Analiza diagramu sterowania pojazdem
Program, który wykonuje tylko sterowanie R, L, przy pewnym układzie ścian w labiryncie nie wyprowadzi pojazdu z labiryntu. Pojazd, przy pewnym układzie ścian, będzie wykonywał niekończącą się pętlę, co przedstawia rysunek poniżej.
Rys. 6 Przykład drogi pojazdu, sterowanego diagramem z rysunku 5
Wariant 2
Zakładamy, że w labiryncie ustawiono ścianki jak na rysunku 7. Pojazd opuści labirynt, jeżeli pojedzie drogą, którą zaznaczono linią ciągłą.
Rys. 7. Ustawienie ścianek w labiryncie i droga pojazdu
Pojazd na drodze, przedstawionej na rysunku 7, wykonuje kolejno manewry: „zderzenie, w tył, w lewo”; „zderzenie, w tył, w lewo”; „zderzenie, w tył, w prawo”.
Rys. 8 Diagram sterowania pojazdem „manewr do tyłu, w lewo, po zderzeniu przodem”
Rys. 9 Diagram sterowania pojazdem „manewr do tyłu, w prawo, po zderzeniu przodem”
Diagram na rysunku 8 jest sterowaniem pojazdu, które po zderzeniu przodem wykonuje manewr „„manewr do tyłu, w lewo”, następnie pojazd kontynuuje jazdę „do przodu”.
Diagram na rysunku 8 jest sterowaniem pojazdu, które po zderzeniu przodem wykonuje manewr „„manewr do tyłu, w prawo”, następnie pojazd kontynuuje jazdę „do przodu”.
Sterowanie pojazdem zgodnie z trajektorią przedstawioną na rysunku 7 przedstawia diagram strukturalny na rysunku 10.
Rys. 10. Diagram strukturalny sterowania pojazdem
Diagram na rysunku 10 jest złożony z symboli strukturalnych postaci:
. Symbol strukturalny zastępuje dowolny diagram, który posiada „start” i „stop”. Na rysunku 10 symbole strukturalne nazwane „manewr do tyłu, w lewo, po zderzeniu przodem” posiadają diagram z rysunku 8, symbol nazwany „manewr do tyłu, w prawo, po zderzeniu przodem” posiada diagram z rysunku 9.
Diagram jest zakończony symbolem „wyjście sterowania”, postaci:
, który zawiera definicję wyjścia sterowania: M = 0, R = 0, L = 0, P = 0, powodujące „zatrzymanie pojazdu”.
Wariant 3
Zakładamy, że w labiryncie ustawiono ścianki jak na rysunku 11. Pojazd, odbijając się od wewnętrznej ścianki i ścianek granicznych nie opuści labiryntu. Początkową część trajektorii pojazdu przedstawiono na rysunku 11.
Rys. 11. Ustawienie ścianek w labiryncie i droga pojazdu
Wstawić ściankę do labiryntu, która zapewni, że pojazd opuści labirynt. Podać odpowiedni diagram sterowania, stosując symbole sterowania i diagramy z rysunku 8 i 9.
Rys. 12. Ustawienie ścianki dodatkowej i droga pojazdu w labiryncie
Rys. 13. Diagram strukturalny sterowania pojazdem
Na diagramie sterowania na rysunku 13, kolejny manewr, wykonywany po zderzeniu jest zależny od poprzedniego manewru. Załóżmy, że sterowanie posiada „pamięć”, w której są zapisywane wykonane manewry. Pamięcią sterowania są zmienne procesowe, które są liczbami przyjmującymi wartości od 1 do N. Diagram sterowania z zastosowaniem dwóch zmiennych procesowych/: ML, MP przedstawia rysunek 14. Zmienna ML jest „pamięcią” wykonanych manewrów „w lewo”, zmienna MP jest „pamięcią” wykonanych manewrów „w prawo”.
Rys. 14. Diagram sterowania z zastosowaniem zmiennych procesowych
|
|
|
|
|
|
|
|
|
WEJŚCiE
WYJŚCiE
P
P
Pojazd po zderzeniu może wykonać manewr cofania, jednocześnie wykonując skręt w lewo lub prawo.
Po wykonaniu manewru porusza się w przód
W przód
pojazd wykonuje „wstecz”, w lewo”
M = 1, R = 0
L = 0, P = 0
Z = 1
Wejście czujnika Z
Sterowanie
M = 0, R = 1, L = 1, P = 0
w czasie dT1
Wyjście
Zderzenie,
w lewo,
wstecz
Pojazd
Labirynt
|
|
|
|
|
|
|
|
|
Zderzenie,
w lewo,
wstecz
Stop
M = 1, R = 0, L = 0, P = 0
Stop
Stop
Labirynt
WYJŚCiE
WEJŚCiE
|
|
|
|
|
|
|
|
|
Zapętlenie drogi
Po zderzeniu sterowanie manewrem cofania i skrętu w lewo, które trwa w czasie dT1
Jeżeli nie nastąpiło zderzenie to Z = 0 i program ponownie odczytuje wejście Z
Wejście Z. czujnik zderzenia z przodu pojazdu.
Jeżeli nastąpi zderzenie to zmienna Z przyjmuje wartość 1
Podajemy zmienną M o wartości 1 na wejście układu wykonawczego napędu pojazdu
System sterowania gotowy
Pojazd na wejściu do labiryntu, rozpocznij interpretację programu
Nie
Tak
Start
Nie
W tył, w lewo
W tył, w lewo
W tył,
w prawo
N = 3
Labirynt
N = 3
„zderzenie ze ścianką”
W przód
P
T - zderzenie
tył
Pojazd
T
Z
Skręty pojazdu
Napęd
P - w prawo
L - w lewo
R - rewers
M - motor
Z - zderzenie
przód
Program
P
Pojazd po zderzeniu wykonuje manewr cofania, jednocześnie wykonuje skręt w lewo, w czasie dT1.
Po wykonaniu manewru porusza się w przód
W przód
pojazd wykonuje „wstecz”, w lewo”
„zderzenie ze ścianką”
W przód
dT
Tak
M = 0, R = 1, L = 1, P = 0
Wejście czujnika Z
Z = 1
Start
M = 1, R = 0
L = 0, P = 0
manewr do tyłu, w lewo, po zderzeniu przodem
Tak
manewr do tyłu, w prawo, po zderzeniu przodem
Nie
dT
manewr do tyłu, w lewo, po zderzeniu przodem
Start
M = 1, R = 0, L = 0, P = 0
M = 0, R = 1, L = 1, P = 0
Wejście czujnika Z
Z = 1
Start
M = 1, R = 0
L = 0, P = 0
M = 0, R = 0, L = 0, P = 0
Zatrzymanie pojazdu
W tył,
w prawo
W tył, w lewo
W tył,
w prawo
N = 3
Labirynt
WEJŚCiE
WEJŚCiE
|
|
|
|
|
|
|
|
|
WEJŚCiE
W tył, w lewo
W tył, w lewo
W tył,
w prawo
N = 3
Labirynt
WEJŚCiE
|
|
|
|
|
|
|
|
|
Dodatkowa ścianka
Zatrzymanie pojazdu
M = 0, R = 0, L = 0, P = 0
manewr do tyłu, w prawo, po zderzeniu przodem
manewr do tyłu, w lewo, po zderzeniu przodem
Stop
manewr do tyłu, w lewo, po zderzeniu przodem
Start
W tył,
w prawo
manewr do tyłu, w prawo, po zderzeniu przodem
MP = 0 ∧ ML = 0
Początkowy stan pamięci:
MP = 0, ML = 0
M = 0, R = 1
L = 1, P = 0
Nie
Tak
stan pamięci po „skręt w lewo”:
ML = ML + 1
Wejście czujnika Z
Z = 1
Start
M = 1, R = 0
L = 0, P = 0
Tak
Nie
Nie
Tak
stan pamięci po „skręt w prawo”:
MP = MP + 1
M = 0, R = 1
L = 0, P = 1
MP = 0 ∧ ML = 1
Nie
Tak
stan pamięci po „skręt w prawo”:
MP = MP + 1
M = 0, R = 1
L = 0, P = 1
MP = 1 ∧ ML = 1
Nie
Tak
stan pamięci po „skręt w lewo”:
ML = ML + 1
M = 0, R = 1
L = 1, P = 0
MP = 2 ∧ ML = 1