Skocz do zawartości

STM32f103 Regulator PID do silnika DC


Pomocna odpowiedź

Napisano

Witam,
Mój problem polega na napisaniu regulatora PID do silnika DC. W moim programie odczytuję wartość prędkości kół z enkodera, silnik steruję PWM. Chciałbym napisać funkcję dzięki której mój model będzie poruszał się ze stałą prędkością niezależnie od obciążenia czy ukształtowania terenu. Wartości kp, ki oraz kd jestem w stanie wyznaczyć przy pomocy MATLABa chodzi mi o kod programu. Proszę o jakieś artykuły, jakąś podpowiedź jak to zrobić chyba że ktoś już wykonał taką funkcję i jest w stanie się podzielić.

  • 3 miesiące później...

Biblioteka CMSIS-DSP ma moduł PID: https://www.keil.com/pack/doc/CMSIS/DSP/html/group__PID.html

CMSIS to biblioteka, gdzie spora część kodu jest dobrze zoptymalizowana pod ARMy i konkretne rdzenie.

Jak już uda Ci się zaincludować to w swoim projekcie, to użycie jest całkiem proste:

- tworzysz strukturę typu arm_pid_instance_f32

- wypełniasz w tej strukturze Kp, Ki, Kd

- wywołujesz funkcję arm_pid_init_f32 z tą strukturą

- w głównej pętli programu wywołujesz arm_pid_f32 z tą strukturą, funkcja zwraca wyjście z regulatora

  • Lubię! 1

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...