Skocz do zawartości

Pomocna odpowiedź

Wykorzystywałeś pełną rozdzielczość tych enkoderów, nie miałeś problemów odpowiednio precyzyjnym ustawieniem magnesu?

Wykorzystuje pełną rozdzielczość. Błąd ustawienia magnesu jest bardzo duży (w praktyce). Błąd ustawienia nie wpływa widocznie na odczyty.

  • 2 tygodnie później...

Program

W robocie zastosowany jest algorytm P. Wylicza on prędkości które są podawane do kolejnych regulatorów p które kontrolują prędkość silników. Silniki pracują w zamkniętej pętli sprzężenia zwrotnego wykonywanej co 1ms.

Czy mógłbyś powiedzieć coś więcej o pętli sprzężenia zwrotnego? Czym to się charakteryzuje?

Program

W robocie zastosowany jest algorytm P. Wylicza on prędkości które są podawane do kolejnych regulatorów p które kontrolują prędkość silników. Silniki pracują w zamkniętej pętli sprzężenia zwrotnego wykonywanej co 1ms.

Czy mógłbyś powiedzieć coś więcej o pętli sprzężenia zwrotnego? Czym to się charakteryzuje?

http://pl.wikipedia.org/wiki/Regulator_PID

https://www.forbot.pl/forum/topics20/algorytmy-pid-w-robotyce-amatorskiej-linefollower-cz1-czlon-p-vt5973.htm

MatManiak, tu nie chodzi o to. Sprzężenie zwrotne w tym wypadku to odczyty aktualnej prędkości z enkoderów względem tej zadanej.

No tak, tylko miałem wrażenie, że autor pytania nie wiedział skąd bierze się to sprzężenie.

Nie wiedziałem co mam rozumieć pod tym pojęciem. Doczytałem definicję a w połączeniu z Waszymi podpowiedziami już wszystko jasne. Dzięki :->

A nie przepełniają się te zmienne od enkoderów?

Przepełniają, ale co to zmienia? W programie i tak liczysz różnicę z poprzednim odczytem, więc wiedząc jaka jest maksymalna wartość zmiennej, nadal łatwo to policzyć. Poza tym, jak nie chcesz by się przepełniały, możesz sobie zerować zmienne. Sposobów jak zrealizować kontrolę prędkości na podstawie odczytów z enkoderów jest mnóstwo - to chyba na 5 różnych sposobów można napisać (różne podejścia).

Zdaję sobie z tego sprawę, jednak np. wykorzystywane typy zmiennych mogą być na tyle duże, że starcza na jeden przejazd, później i tak jest to resetowane.

Byłem po prostu ciekaw jak jest to tutaj zrealizowane.

Poza tym jest jeszcze jedna kwestia (chociaż nie wiem jak jest w tym przypadku), mianowicie prędkości mogą być ujemne, także różnica wyjdzie także ujemna, podobnie jak by to miało miejsce w przypadku przepełnienia, zatem chyba najlepiej, żeby się programista wypowiedział 🙂

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...