dlaczego ogranicza całke do -0,1 .. 0,1, bo pewnie tak mu wyszlo doswiadczalnie
masz racje ze uzywa zmiennych 64 bitowych, ale sa to zmienne 'zmiennoprzecinkowe', no ale to nie tlumaczy tak małej liczby. Spojrz, ze wartość sterowania (ster1 i ster2) również są zmiennymi tego samego typu.
pisze tam, ze ster = error * PID_P + całka * PID_I + różniczka * PID_D; i teraz ta suma też nie może przekroczyć wartości maksymalnej zmiennej float.
W takim projekcie spokojnie można sobie dobrac parametry pod konkretny projekt.
Zwróć uwage, że dla drugiego sterowania ma już limit nie 0,1 ale 10 (a to też dodaje do pierwszego sterowania),.
Niestety nie ma opisanje funkcji Control_LR(ster,ster2) która zamienia wartości obrobione przed PID na wartości wysyłane do silników, ale na rysunku 5.25 str 88 widac wykres sterowan gdzie wartości sterowania sa w zakresie +/- 50.
zakładając, że maksymalna wartość będzie +/- 100 (%) to gdy PID_P = 10, PID_I = 25, PID_D = 30, to będzie wsam raz (przelicz sobie nawet na kartce kilka pętli regulacji zakladajac oscylacje wejscia wlasnie w zakresie ) Autor pewnie to doswiadczalnie okiełznał tak aby wartości nastaw i wartości uzyskiwanych błedów po kalkulacji całości nie byly wieksze niz max i dawały dobre regulacje