Jestem w trakcie budowanie małego robota (ok 2kg),
jednym z jego modułów jest sterownik silników
(atmega8@8Mhz, 2 enkodery szczelinowe 800pików/obrót+ 2 silniki DC z przekładnią
ok 200obr/min sterowane PWM, komendy przekazywane przez SPI)
I tak po wielu próbach udało mi się napisać mniej więcej działający
algorytm PID - robot już jeździ prosto z zadana przeze mnie
prędkością (mniej lub bardziej:) - tzn ma odchylenie o jakieś
5cm przy 1-2metrach)
Teraz pokusiłem się o dorobienia funkcji obrotu o zadaną ilość stopnie,
i tak dla dużych wartości tzn 45s,60s...itd jeszcze jakoś działa tzn
np dla 90s błąd +-5s (zależy od prędkości - przy wyższych większy błąd)
ale dla małych 1-10 stopni błąd jest duuuzy tzn zamiast 3 obraca się o 10s.
Związane jest to z tym ze robot przy starcie silników bardzo szarpie i musi minąć ten ułamek sekundy zanim
prędkość się ustabilizuje.
I tu właśnie moje pytanie - czy to jest normalnie i przy tego typu konstrukcjach trudno jest osiągnąć
dobre wyniki dla niedużych stopni - czy raczej wina jest po stronie algorytmu i dobrze napisany
powinien dawać możliwość obrotu nawet o 1s - a jeśli tak to czy można taki spokojnie napisać pod
atmege czy już lepiej kupić specjalny kontroler.
Dziękuje za wszelkie odpowiedzi.
Zmieniłem tytuł - regulamin p.11.2
[zumek]
jednym z jego modułów jest sterownik silników
(atmega8@8Mhz, 2 enkodery szczelinowe 800pików/obrót+ 2 silniki DC z przekładnią
ok 200obr/min sterowane PWM, komendy przekazywane przez SPI)
I tak po wielu próbach udało mi się napisać mniej więcej działający
algorytm PID - robot już jeździ prosto z zadana przeze mnie
prędkością (mniej lub bardziej:) - tzn ma odchylenie o jakieś
5cm przy 1-2metrach)
Teraz pokusiłem się o dorobienia funkcji obrotu o zadaną ilość stopnie,
i tak dla dużych wartości tzn 45s,60s...itd jeszcze jakoś działa tzn
np dla 90s błąd +-5s (zależy od prędkości - przy wyższych większy błąd)
ale dla małych 1-10 stopni błąd jest duuuzy tzn zamiast 3 obraca się o 10s.
Związane jest to z tym ze robot przy starcie silników bardzo szarpie i musi minąć ten ułamek sekundy zanim
prędkość się ustabilizuje.
I tu właśnie moje pytanie - czy to jest normalnie i przy tego typu konstrukcjach trudno jest osiągnąć
dobre wyniki dla niedużych stopni - czy raczej wina jest po stronie algorytmu i dobrze napisany
powinien dawać możliwość obrotu nawet o 1s - a jeśli tak to czy można taki spokojnie napisać pod
atmege czy już lepiej kupić specjalny kontroler.
Dziękuje za wszelkie odpowiedzi.
Zmieniłem tytuł - regulamin p.11.2
[zumek]
