-
1. Data: 2010-02-21 00:47:17
Temat: Mikrokrokowanie - problem
Od: Krzysztof <k...@w...pl>
Witam!
Potrzebuję zrobić układ, który zapewni praktycznie płynne obracanie się
wału silnika krokowego (12V, 0.5A, 24om, bipolarny, 2-fazowy). Prędkość
obrotowa to jeden obrót na 15 sekund.
Zrobiłem układ próbny z ATmega8 i L298, który generuje odpowiednie
przebiegi PWM, przesunięte w fazie o 90 stopni. PWM pracuje z
częstotliwością około 30kHz, wypełnienie zmieniane jest z
rozdzielczością 8 bitów.
W czym mam problem? Okazuje się, że tak sterowany silnik wcale nie
obraca się jednostajnie, tylko ma chwilowe zatrzymania w momencie, gdy
wypełnienie wynosi około 50%, czyli średnia wartość napięcia jest w
okolicach zera.
Trochę nie potrafię zidentyfikować przyczyny. Przypuszczam, że związane
jest to z krzywą magnesowania, która powoduje, że po przejściu napięcia
na przeciwną polaryzację natężenie pola nie rośnie dopóki prąd nie
przekroczy pewnej wartości, dlatego silnik przez moment stoi.
Rozwiązaniem tego problemu jest zatem dobranie takiej krzywej napięcia
(układ jest relatywnie prosty i nie mierzy chwilowej wartości prądu)
przebiegu napięcia, by zniwelować ten efekt.
Poprawne rozumowanie? Jak dobrać tą krzywą, bo przebadałem
paręnaście/dziesiąt różnych wariantów i wciąż brak satysfakcjonującej
poprawy. Czy może w takiej aplikacji pomiar prądu jest niezbędny?
Pozdrawiam
Krzysiek
-
2. Data: 2010-02-21 10:41:08
Temat: Re: Mikrokrokowanie - problem
Od: BartekK <s...@N...org>
W dniu 2010-02-21 01:47, Krzysztof pisze:
> W czym mam problem? Okazuje się, że tak sterowany silnik wcale nie
> obraca się jednostajnie, tylko ma chwilowe zatrzymania w momencie, gdy
> wypełnienie wynosi około 50%, czyli średnia wartość napięcia jest w
> okolicach zera.
> Rozwiązaniem tego problemu jest zatem dobranie takiej krzywej napięcia
> (układ jest relatywnie prosty i nie mierzy chwilowej wartości prądu)
> przebiegu napięcia, by zniwelować ten efekt.
Ja kiedyś coś podobnego popełniłem, to faktycznie prędkość chwilowa
"pływała" pomimo stałego sterowania, więc wartości pwm nie liczyłem +n
tylko brałem z tablicy, obliczone wg sinusa (czy cosinusa?), i już
pływanie było praktycznie niezauważalne. Może tak spróbuj?
--
| Bartlomiej Kuzniewski
| s...@d...org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338
173
-
3. Data: 2010-02-21 10:54:13
Temat: Re: Mikrokrokowanie - problem
Od: Krzysztof <k...@w...pl>
BartekK pisze:
> (... )to faktycznie prędkość chwilowa
> "pływała" pomimo stałego sterowania, więc wartości pwm nie liczyłem +n
> tylko brałem z tablicy, obliczone wg sinusa (czy cosinusa?), i już
> pływanie było praktycznie niezauważalne. Może tak spróbuj?
Hej!
Tą opcję właśnie testuję i jest niewiele lepiej niż z n++. Zauważyłem,
że silnik zatrzymuje się kiedy następuje zmiana kierunku prądu na
przeciwny, czyli wypełnienie jest własnie bliskie 50%, ale ten moment
trwa przecież nadzwyczaj krótko. Wygląda obecnie to tak, że silnik
zatrzymuje się gdzieś przy wypełnieniu w zakresie 45 - 55%. Wymyśliłem
więc by zmodyfikować funkcję sinus tak, by w tych okolicach była funkcją
bardzo szybko zmienną, ale rezultat nadal jest kiepski, bo pojawia się
lekka nierównomierność, przy tak szybkiej zmianie prądu...
Krzysiek
-
4. Data: 2010-02-21 13:22:21
Temat: Re: Mikrokrokowanie - problem
Od: "Roman" <r...@p...onet.pl>
Użytkownik "Krzysztof" <k...@w...pl> napisał w
wiadomości news:hlq0g1$r65$1@nemesis.news.neostrada.pl...
> Zrobiłem układ próbny z ATmega8 i L298, który generuje odpowiednie
> przebiegi PWM, przesunięte w fazie o 90 stopni. PWM pracuje z
> częstotliwością około 30kHz, wypełnienie zmieniane jest z
> rozdzielczością 8 bitów.
Mogłbyś dokładniej opisać połączenie sygnałowe ATmegi z L298 i algorytm tego
przesunięcia fazowego ?
Pozdrawiam
Roman
-
5. Data: 2010-02-21 13:43:58
Temat: Re: Mikrokrokowanie - problem
Od: Krzysztof <k...@w...pl>
Roman pisze:
> Mogłbyś dokładniej opisać połączenie sygnałowe ATmegi z L298 i algorytm tego
> przesunięcia fazowego ?
Układ ATmega generuje dwa przebiegi PWM (na Timerze 1, tryb Fast-PWM,
8-bit). By poprawnie realizować sterowanie potrzeba oczywiście mieć
również zanegowany każdy z sygnałów. Realizuję to przez dwa zewnętrzne
tranzystory.
Zatem sygnały bezpośrednio z PWM trafiają na piny A i C układu L298, i
odpowiednio zanegowane na B i D. Uzwojenia silnik krokowego są
podłączone do wyjść Output1-Output2 (jedna para biegunów) i
Output3-Output4 (druga para biegunów).
Próbki przebiegu sinusoidalnego są stablicowane i zapisane w pamięci
(tablica 255 elementowa). Wartości wypełnienia są pobierane według schematu:
Pseudokod:
for n=1 to 256
kanał A PWM = tab(n) // zmiany wypełnienia zgodnie z sinusem
kanał B PWM = tab(n+64) // zmiany wypełnienia zgodnie
// z cosinusem
end
Część elektroniczna jest raczej poprawna, bo wszystko mam posprawdzane
oscyloskopem. Ostatnio doczytałem, że mam hybrydowy silnik krokowy (z
magnesem trwałym na wirniku). Może w tym tkwi ten problem...?
Krzysiek
-
6. Data: 2010-02-21 15:43:22
Temat: Re: Mikrokrokowanie - problem
Od: ici <i...@p...onet.pl>
Coś mi się widzi, ze na PWM to ty nie uzyskasz 1 obrotu na 15s.
Sterowanie PWM to sterowanie mocą skuteczną. Zmniejszając wypełnienie do
pewnego momentu obroty owszem spadają, ale potem wirnik się "klei" do
stojana z braku odp momentu napędowego "zamachu" i co najwyżej szarpie,
później staje. Moc w tym przedziale obrotowym też jest już żadna.
Sugerował bym użycie przekładni jeśli koniecznie chcesz używać tego
silnika i sterowania PWM.
Widziałem w ogłoszeniach Elektroniki Praktycznej motoreduktory małych
mocy. Pewnie wygrzebiesz je też w sieci pod hasłem: motoreduktor.
Nie wiem co to za urządzenie, ale ja kiedyś adoptowałem stary
motoreduktor planetarny od wkrętarki 12V?
Uzyskałem:
- zmniejszenie obrotów,
- znaczny moment napędowy,
- duży moment hamujący (szybki stop, dodatkowo zwierałem silnik),
- w miarę małe urządzenie i
- stosunkowo tanio mi to wyszło.
Może i tobie się coś podobnego nada?
ici
-
7. Data: 2010-02-21 18:12:30
Temat: Re: Mikrokrokowanie - problem
Od: Paweł <p...@n...pl>
>> Mogłbyś dokładniej opisać połączenie sygnałowe ATmegi z L298 i
>> algorytm tego
>> przesunięcia fazowego ?
>
> Układ ATmega generuje dwa przebiegi PWM (na Timerze 1, tryb Fast-PWM,
> 8-bit). By poprawnie realizować sterowanie potrzeba oczywiście mieć
> również zanegowany każdy z sygnałów. Realizuję to przez dwa zewnętrzne
> tranzystory.
>
> Zatem sygnały bezpośrednio z PWM trafiają na piny A i C układu L298, i
> odpowiednio zanegowane na B i D. Uzwojenia silnik krokowego są
> podłączone do wyjść Output1-Output2 (jedna para biegunów) i
> Output3-Output4 (druga para biegunów).
>
L298 ma trzy wyprowadzenia do sterowania każdym uzwojeniem silnika.
Opisz dokładniej jak to podłączyłeś.
Paweł
-
8. Data: 2010-02-21 23:01:24
Temat: Re: Mikrokrokowanie - problem
Od: Krzysiek Gedroyć SQ4IXA <k...@o...pl>
On 21 Lut, 19:12, Paweł <p...@n...pl> wrote:
> L298 ma trzy wyprowadzenia do sterowania każdym uzwojeniem silnika.
> Opisz dokładniej jak to podłączyłeś.
Końcówka ENABLE jest na stałe ustawiona w stan wysoki, bo układ na
etapie testów ma cały czas pracować. Nóżka SENSE jest podłączona do
masy, bo układ nie współpracuje z L297, więc nie jest potrzebny pomiar
prądu. Nóżki In1, In2, In3 i In4, są odpowiednio zasilane sygnałami
A, /A, B, /B z mikrokontrolera.
Krzysiek
-
9. Data: 2010-02-22 00:00:01
Temat: Re: Mikrokrokowanie - problem
Od: Waldemar Krzok <w...@z...fu-berlin.de>
Krzysiek Gedroyć SQ4IXA wrote:
> On 21 Lut, 19:12, Paweł <p...@n...pl> wrote:
>> L298 ma trzy wyprowadzenia do sterowania każdym uzwojeniem silnika.
>> Opisz dokładniej jak to podłączyłeś.
>
> Końcówka ENABLE jest na stałe ustawiona w stan wysoki, bo układ na
> etapie testów ma cały czas pracować. Nóżka SENSE jest podłączona do
> masy, bo układ nie współpracuje z L297, więc nie jest potrzebny pomiar
> prądu. Nóżki In1, In2, In3 i In4, są odpowiednio zasilane sygnałami
> A, /A, B, /B z mikrokontrolera.
Nie napisałeś jeszcze ile kroków na obrót ma twój silnik. Bo może się
okazać, że 30kHz PWM to za mało. Ewentualnie dodanie RC na wyjścia może
pomóc. Sterujesz wtedy "prawdziwym" sin/cos.
Waldek
-
10. Data: 2010-02-22 06:40:24
Temat: Re: Mikrokrokowanie - problem
Od: Krzysiek Gedroyć SQ4IXA <k...@o...pl>
On 22 Lut, 01:00, Waldemar Krzok <w...@z...fu-berlin.de> wrote:
> Nie napisałeś jeszcze ile kroków na obrót ma twój silnik. Bo może się
> okazać, że 30kHz PWM to za mało. Ewentualnie dodanie RC na wyjścia może
> pomóc. Sterujesz wtedy "prawdziwym" sin/cos.
Silnik ma krok równy 1,8 stopnia. Przebieg napięcia obserwowany na
silniku na oscyloskopie wskazuje, że indukcyjność silnika jest na tyle
duża, że PWM jest właściwie uśredniane. Wszystko wygląda tak, jakby
silnik był nieczuły na ten zakres 45-55% wypełnienia, gdzie średnia
wartość napięcia jest bliska zeru. W pierwszym odruchu należałoby
zmodyfikować tą funkcję sinus, by była szybkozmienna dla pi i 2pi, ale
nie wiem jak skutecznie zaprojektować taką funkcję. Robiłem jakieś z
tym próby, owszem silnik się obraca, ale pojawia się jakaś
nierównomierność pracy...
Krzysiek