Przeczytałem kilka artykułów na temat sterowania układami nieliniowymi (np. Wahadło nieliniowe). Istnieje kilka podejść do kierowania systemów nieliniowych. Najczęstsze z nich to kontrolery trybu liniowego sprzężenia zwrotnego , cofania i przesuwania .
W moim przypadku zrobiłem teoretyczne i praktyczne części sterowania nieliniowym modelem prostego wahadła oraz inne problemy z manipulatorami w C ++. W przypadku wahadła wykorzystałem kontroler cofania do rozwiązania zadania śledzenia przesunięcia kątowego i prędkości. Wyniki są
gdzie oraz .
Wyniki są dobre. Strojenie kontrolera jest jednak czasochłonne. Większość artykułów używa algorytmów genetycznych do dostrajania swoich sterowników, takich jak PD, PID i kontrolery cofania. Nie mam pojęcia w tej dziedzinie i mam nadzieję, że ktoś rzuci nieco światła na tę koncepcję, najlepiej, jeśli istnieje próbka MATLAB do przynajmniej kontrolowania prostego wahadła.
Do tej pory zaprojektowałem prosty GUI w C ++ / Qt, aby ręcznie dostroić kontroler. Na poniższym zdjęciu odpowiedź sterownika na funkcję kroku.
Algorytmy genetyczne są techniką uczenia maszynowego, która eliminuje potrzebę „dostrojenia” systemu przez użytkownika, a zamiast tego pozwala komputerowi dowiedzieć się, jak dostroić system. Korzyści z tego podejścia polegają na tym, że zwalniają czas badaczy / użytkowników i często mogą prowadzić do lepszego dostosowania systemu niż to, co naukowiec / użytkownik byłby w stanie osiągnąć samodzielnie.
Ogólna idea użycia algorytmu genetycznego byłaby zgodna z pewnym podstawowym przepływem kontroli, jak następuje:
Najlepszym przykładem, jaki mogę łatwo wykazać w praktyce w tej zasadzie, jest ta „gra”, która wykorzystuje ewolucję genetyczną do projektowania pojazdów zdolnych do jazdy na kursie. Ten sam pomysł dotyczy każdego systemu, który chcesz dostroić bez konieczności samodzielnego strojenia. Przykład: http://rednuht.org/genetic_cars_2/
źródło
Jestem zdezorientowany tym, co nazywasz algorytmem genetycznym. Kontrolery PD, PID itp. Nie są metodami heurystycznymi ani stochastycznymi i nie są oparte na algorytmach ewolucyjnych. Są to natomiast algorytmy deterministyczne, które mają na celu umiejscowienie biegunów i zer odpowiedzi systemu w celu zapewnienia pożądanej wydajności (minimalizacja błędów, szybkość odpowiedzi, czas ustalania, stabilność i odrzucanie zakłóceń). Moim zdaniem dobrym odniesieniem do nauki jest książka Kuo's Automatic Control Systems . Mniej rygorystyczne podejście można znaleźć w książce Raven's Automatic Control Engineering .
źródło