-
1. Data: 2026-01-22 20:53:47
Temat: PID - jeszcze raz
Od: Mirek <m...@n...dev>
Próbuję okiełznać po raz kolejny sterowanie nadążne PID silnika z
enkoderem. Enkoder jest podłączony do Pi Pico, odczytuje go program w
PIO, a wartość czytam w micropythonie i obliczam dane dla PWM. Działa mi
to tak, że wystrojenie do +- kilkadziesiąt podziałek enkodera zachowuje
się przewidywalnie.
Ale można to zrobić praktycznie do jednej działki, i pamiętam, że ktoś
tu na grupie się chwalił że to zrobił.
Zwiększam kP, układ zaczyna nadążać, ale powoli, zwiększam dalej... już
blisko, pojawia się przerzut, jeszcze trochę i pojawiają się oscylacje.
Te oscylacje można zniwelować kD. Zwiększam kD, oscylacje zaczynają
maleć... jeszcze bardziej maleć... już prawie... i zwiększenie dalej
powoduje, że pojawiają się nowe oscylacje, tylko szybsze (krótszy okres)
i dalsze zwiększanie kD zwiększa amplitudę jeszcze bardziej.
Co tu jest grane?
Mam swoją teorię, ale zanim napiszę - może ktoś puści parę - to na pewno
szkolny błąd i znane zjawisko.
--
Mirek
-
2. Data: 2026-01-22 23:44:40
Temat: Re: PID - jeszcze raz
Od: "J.F" <j...@p...onet.pl>
On Thu, 22 Jan 2026 20:53:47 +0100, Mirek wrote:
> Próbuję okiełznać po raz kolejny sterowanie nadążne PID silnika z
> enkoderem. Enkoder jest podłączony do Pi Pico, odczytuje go program w
> PIO, a wartość czytam w micropythonie i obliczam dane dla PWM. Działa mi
> to tak, że wystrojenie do +- kilkadziesiąt podziałek enkodera zachowuje
> się przewidywalnie.
> Ale można to zrobić praktycznie do jednej działki, i pamiętam, że ktoś
> tu na grupie się chwalił że to zrobił.
>
> Zwiększam kP, układ zaczyna nadążać, ale powoli, zwiększam dalej... już
> blisko, pojawia się przerzut, jeszcze trochę i pojawiają się oscylacje.
> Te oscylacje można zniwelować kD. Zwiększam kD, oscylacje zaczynają
> maleć... jeszcze bardziej maleć... już prawie... i zwiększenie dalej
> powoduje, że pojawiają się nowe oscylacje, tylko szybsze (krótszy okres)
> i dalsze zwiększanie kD zwiększa amplitudę jeszcze bardziej.
> Co tu jest grane?
> Mam swoją teorię, ale zanim napiszę - może ktoś puści parę - to na pewno
> szkolny błąd i znane zjawisko.
Masz metodę Zieglera-Nicholsa:
https://www.podkontrola.pl/regulacja-w-oparciu-o-par
ametry-pid-cz-2/
Wyłaczasz człony D i I, podkręcasz powoli wzmocnienie, az wystąpią
oscylacje. Znalazłes wzmocnienie krytyczne Kc, i mierzysz okres
oscylacji Pc.
A następnie jak w tabelce:
Kp = 0.6*Kc
Ki = 2*Kp/Pc
Kd = Kp*Pc/8
IMO - w zależności od tego czym silnik kręci - może się okazać,
ze to krytyczne wzmocnienie jest inne, w zalezności od zadanych
obrotów.
Program jest wystarczająco szybki, nie gubi kroków z enkodera?
Enkoder bezpośrednio na osi silnika, czy po jakiejs przekładni ... bo
luzy mogą być tu wredne ...
J.
-
3. Data: 2026-01-23 20:23:06
Temat: Re: PID - jeszcze raz
Od: Mirek <m...@n...dev>
W dniu 22.01.2026 o 23:44, J.F pisze:
> Masz metodę Zieglera-Nicholsa:
Nie sprawdza się.
Nie udało mi się doprowadzić do stabilności z jakimkolwiek Ki.
Może to jest kwestia jednostek?
Uchyb jest liczony w działkach enkodera, przyrost uchybu w działkach na
mikrosekundę, okres oscylacji to jakieś 0,2-0,5sekundy, to ki jakoś
strasznie małe wyjdzie, kd ogromne.
Kp rozumiem że w tym wzorze 1 oznacza maksymalną moc?
> IMO - w zależności od tego czym silnik kręci - może się okazać,
> ze to krytyczne wzmocnienie jest inne, w zalezności od zadanych
> obrotów.
>
> Program jest wystarczająco szybki, nie gubi kroków z enkodera?
> Enkoder bezpośrednio na osi silnika, czy po jakiejs przekładni ... bo
> luzy mogą być tu wredne ...
Silnik kręci bezpośrednio enkoderem. próbowałem też przez przekładnie
ale nic to nie zmienia - wolniej wszystko się odbywa, ale nadal nie da
się wystroić lepiej niż +- 50 - 100 podziałek.
Kroków nie gubi, bo kroki odczytuje PIO.
Program szybki... a jaki szybki ma być? Jaki powinien być krok pomiędzy
kolejnymi obliczeniami?
--
Mirek
-
4. Data: 2026-01-23 22:34:28
Temat: Re: PID - jeszcze raz
Od: "J.F" <j...@p...onet.pl>
On Fri, 23 Jan 2026 20:23:06 +0100, Mirek wrote:
> W dniu 22.01.2026 o 23:44, J.F pisze:
>> Masz metodę Zieglera-Nicholsa:
>
> Nie sprawdza się.
> Nie udało mi się doprowadzić do stabilności z jakimkolwiek Ki.
> Może to jest kwestia jednostek?
Być może - przy bardzo wolnym narastaniu powinno jakoś działać.
Nie mówię, że całkiem stabilnie, bo jakies tarcie i histereza silnika
dochodzi. Ale okres mógłbys wydłużać w nieskonconosc.
A z kolei szybkie procesory bardzo szybko całkują :-)
i kiepsko różniczkują :-)
> Uchyb jest liczony w działkach enkodera, przyrost uchybu w działkach na
> mikrosekundę, okres oscylacji to jakieś 0,2-0,5sekundy, to ki jakoś
> strasznie małe wyjdzie, kd ogromne.
> Kp rozumiem że w tym wzorze 1 oznacza maksymalną moc?
Wzmocnienie częsci P
>> IMO - w zależności od tego czym silnik kręci - może się okazać,
>> ze to krytyczne wzmocnienie jest inne, w zalezności od zadanych
>> obrotów.
>
>> Program jest wystarczająco szybki, nie gubi kroków z enkodera?
>> Enkoder bezpośrednio na osi silnika, czy po jakiejs przekładni ... bo
>> luzy mogą być tu wredne ...
>
> Silnik kręci bezpośrednio enkoderem. próbowałem też przez przekładnie
> ale nic to nie zmienia - wolniej wszystko się odbywa, ale nadal nie da
> się wystroić lepiej niż +- 50 - 100 podziałek.
> Kroków nie gubi, bo kroki odczytuje PIO.
> Program szybki... a jaki szybki ma być? Jaki powinien być krok pomiędzy
> kolejnymi obliczeniami?
Na tyle szybki, żeby nie gubił impulsów z enkodera. Chyba, że masz
jakiś absolutny.
A sam regulator niekoniecznie musi być szybki - sam widzisz, że
oscylacje maja 0.2-0.5s
J.
-
5. Data: 2026-01-24 15:14:24
Temat: Re: PID - jeszcze raz
Od: Mirek <m...@n...dev>
W dniu 23.01.2026 o 22:34, J.F pisze:
> Być może - przy bardzo wolnym narastaniu powinno jakoś działać.
Nie działa. Tak jak zauważyłeś silnik ma tarcie, zaskok magnetyczny -
jak sygnał narośnie na tyle że ruszy to przejedzie kilkadziesiąt -
kilkaset kroków i zaczyna się kołysanie.
Tak to powinno działać:
https://youtu.be/PU6tgQ84CEA
No chyba że to jest ściema i enkoder jest w rzeczywistości 100-1000 razy
dokładniejszy.
--
Mirek
-
6. Data: 2026-01-24 20:04:34
Temat: Re: PID - jeszcze raz
Od: a...@f...org (Waldek Hebisch)
Mirek <m...@n...dev> wrote:
> W dniu 22.01.2026 o 23:44, J.F pisze:
>
>> Masz metodę Zieglera-Nicholsa:
>
> Nie sprawdza się.
> Nie udało mi się doprowadzić do stabilności z jakimkolwiek Ki.
> Może to jest kwestia jednostek?
> Uchyb jest liczony w działkach enkodera, przyrost uchybu w działkach na
> mikrosekundę, okres oscylacji to jakieś 0,2-0,5sekundy, to ki jakoś
> strasznie małe wyjdzie, kd ogromne.
Bez członu "całkowego" prawie niemożliwe jest uzyskanie naprawdę
małego błedu. W praktyce liczy się sumy i odwrotność okresu sterownika
PID daje współczynnik skalujący sumę do całki. Oczywiście musisz
użyć zgodne jednoski inaczej wyjdą błędne wartości współczynników.
Działki enkdera wyglądają OK, ale musisz poprawnie uwzględnić czas.
--
Waldek Hebisch
-
7. Data: 2026-01-25 12:34:36
Temat: Re: PID - jeszcze raz
Od: Mirek <m...@n...dev>
W dniu 24.01.2026 o 15:14, Mirek pisze:
> Tak to powinno działać:
> https://youtu.be/PU6tgQ84CEA
> No chyba że to jest ściema i enkoder jest w rzeczywistości 100-1000 razy
> dokładniejszy.
Tak mnie jeszcze nachodzi:
Przecież taki układ jest w drukarkach atramentowych. Nie przyszło mi do
głowy sprawdzić jaka tam jest rozdzielczość tego enkodera, nie mam
żadnej drukarki rozwalonej w tej chwili, bo bym sprawdził.
A może silnik musi być specjalny - w sensie nie może mieć zaskoków i
symetryczny moment w obie strony?
--
Mirek
-
8. Data: 2026-01-25 14:03:58
Temat: Re: PID - jeszcze raz
Od: alojzy nieborak <g...@g...com>
W dniu 2026-01-25 o 12:34, Mirek pisze:
> W dniu 24.01.2026 o 15:14, Mirek pisze:
>
>> Tak to powinno działać:
>> https://youtu.be/PU6tgQ84CEA
>> No chyba że to jest ściema i enkoder jest w rzeczywistości 100-1000
>> razy dokładniejszy.
>
> Tak mnie jeszcze nachodzi:
> Przecież taki układ jest w drukarkach atramentowych. Nie przyszło mi do
> głowy sprawdzić jaka tam jest rozdzielczość tego enkodera, nie mam
> żadnej drukarki rozwalonej w tej chwili, bo bym sprawdził.
W osi Y 200 linii na cal.
W osi X (karetka z tuszami) 200 lub 400 linii na cal.
I to to z układem optyki (rozdzielczość x4) na wyjściu układu daje
odpowiednio rozdzielczość 800-1600 pikseli na cal. Tyle co do prostych
enkoderów bez jakiejś specjalnej ochrony pyłoszczelnej.
> A może silnik musi być specjalny - w sensie nie może mieć zaskoków i
> symetryczny moment w obie strony?
>
W drukarkach masz zwykły DC tyko wolnoobrotowy z ciut większym momentem
obrotowym.
OT
https://elm-chan.org/works/smc/report_e.html
-
9. Data: 2026-01-25 14:12:24
Temat: Re: PID - jeszcze raz
Od: alojzy nieborak <g...@g...com>
W dniu 2026-01-25 o 14:03, alojzy nieborak pisze:
> W dniu 2026-01-25 o 12:34, Mirek pisze:
>> W dniu 24.01.2026 o 15:14, Mirek pisze:
>>
>>> Tak to powinno działać:
>>> https://youtu.be/PU6tgQ84CEA
>>> No chyba że to jest ściema i enkoder jest w rzeczywistości 100-1000
>>> razy dokładniejszy.
>>
>> Tak mnie jeszcze nachodzi:
>> Przecież taki układ jest w drukarkach atramentowych. Nie przyszło mi
>> do głowy sprawdzić jaka tam jest rozdzielczość tego enkodera, nie mam
>> żadnej drukarki rozwalonej w tej chwili, bo bym sprawdził.
>
>
> W osi Y 200 linii na cal.
> W osi X (karetka z tuszami) 200 lub 400 linii na cal.
> I to to z układem optyki (rozdzielczość x4) na wyjściu układu daje
> odpowiednio rozdzielczość 800-1600 pikseli na cal. Tyle co do prostych
> enkoderów bez jakiejś specjalnej ochrony pyłoszczelnej.
>
>> A może silnik musi być specjalny - w sensie nie może mieć zaskoków i
>> symetryczny moment w obie strony?
>>
>
> W drukarkach masz zwykły DC tyko wolnoobrotowy z ciut większym momentem
> obrotowym.
>
> OT
> https://elm-chan.org/works/smc/report_e.html
>
Drugi raz OT
https://www.youtube.com/watch?v=qYJpl7SNoww
+
https://www.pmdcorp.com/resources/type/articles/get/
mathematics-of-motion-control-profiles-article
-
10. Data: 2026-01-25 14:36:45
Temat: Re: PID - jeszcze raz
Od: Mirek <m...@n...dev>
W dniu 25.01.2026 o 14:12, alojzy nieborak pisze:
>> W osi Y 200 linii na cal.
>> W osi X (karetka z tuszami) 200 lub 400 linii na cal.
>> I to to z układem optyki (rozdzielczość x4) na wyjściu układu daje
>> odpowiednio rozdzielczość 800-1600 pikseli na cal. Tyle co do prostych
>> enkoderów bez jakiejś specjalnej ochrony pyłoszczelnej.
>>
No i kluczowe pytanie: ile wynosi błąd sterowania - ustawia do jednej
działki?
> Drugi raz OT
> https://www.youtube.com/watch?v=qYJpl7SNoww
> +
> https://www.pmdcorp.com/resources/type/articles/get/
mathematics-of-
> motion-control-profiles-article
Krzywymi sterowania będę się bawił jak PID będzie chodził tak jak powinien.
--
Mirek


do góry
Ceny mieszkań stabilne a zdolność kredytowa rośnie. O ile nie masz dzieci