Wpis z mikrobloga

Zapowiadany wcześniej artykuł, o który pytało kilka osób,
Jak zaimplementować regulator PID dla silnika z enkoderem? W praktyce na STM32 + FreeRTOS!
http://forbot.pl/blog/artykuly/teoria/jak-zaimplementowac-regulator-pid-dla-silnika-z-enkoderem-id6310

Moim zdaniem jeden z ciekawszych tekstów (na Forbocie) dla zainteresowanych podstawami teorii sterowania ( ͡° ͜ʖ ͡°)

#elektronika #automatyka #majsterkowanie #forbot #stm32 #zainteresowania #programowanie #matlab
Pobierz
źródło: comment_JaEV46EEa9DD5saRxjZZfxHaUXFKEvJn.jpg
  • 7
@Forbot: albo tego nie widzę w kodzie albo jest błąd przy różniczkowaniu.
Człon różniczkujący jest tak wyznaczony jako (pidparams.errlast - pid_params.err) * kd
a powinien być (pidparams.errlast - pid_params.err) / T * kd, w końcu różniczkujemy po czasie :)

Nie wiem też, gdzie jest właściwie pidparams.errlast przypisywane ale przejrzałem tylko pid.c, więc się nie wypowiadam.

Nie podoba mi się też konkluzja. Brzmi to jakby regulator
@andzej74: dzięki za uwagi - przekażę do autora. Co do kwestii porównywania ze sterowaniem w pętli otwartej, jest to sporo uproszczenie w kierunku osób początkujących. Dla nich jedynym słusznym, w tym przypadku, sterowaniem jest własnie pętla otwarta. Dlatego artykuł ma pokazać, że to lepsza "alternatywa".

Czy T w różniczkowaniu jest faktycznie potrzebne? Zakładamy, że pomiary są w stałych odstępach czasu - więc teoretycznie T * kd jest stałe i tutaj uproszczone
@Forbot: nie T * kd a (err_last-err) / T .

Bez tego po pierwsze nie możemy mówić o różniczkowaniu a jedynie różnicy dwóch wartości a po drugie - w badanym przypadku, gdzie okres próbkowania to T = 0.005 - człon różniczkujący jest 200 razy mniejszy niż powinien być. Rzekłbym, że praktycznie go nie ma :)
@andzej74: racja, mój błąd - wychodzi, jakby T było przyjęte "1". Przekażę, do autora artykułu. Jednak tak czy inaczej działa, testowałem - można się bawić ( ͡° ͜ʖ ͡°)
@samotan: a czemu nie? Nie wiesz przecież gdzie pracuje, czym się zajmuje, więc czasami nie warto osądzać ( ͡° ͜ʖ ͡°)
Po drugie artykuł głównie dla studentów, więc każdy może legalnie skorzystać z oprogramowania na uczelni. W innych artykułach używamy darmowych alternatyw, więc spokojnie ( ͡° ͜ʖ ͡°)