Mikrokrokowanie - problem

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
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

Re: Mikrokrokowanie - problem
W dniu 2010-02-21 01:47, Krzysztof pisze:
Quoted text here. Click to load it
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
| snipped-for-privacy@drut.org  GG:23319  tel +48 696455098  http://drut.org /
We've slightly trimmed the long signature. Click to see the full one.
Re: Mikrokrokowanie - problem
BartekK pisze:
Quoted text here. Click to load it

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


Re: Mikrokrokowanie - problem

Quoted text here. Click to load it

Mogłbyś dokładniej opisać połączenie sygnałowe ATmegi z L298 i algorytm tego
przesunięcia fazowego ?

Pozdrawiam
Roman


Re: Mikrokrokowanie - problem
Roman pisze:
Quoted text here. Click to load it

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

Re: Mikrokrokowanie - problem
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

Re: Mikrokrokowanie - problem

Quoted text here. Click to load it




L298 ma trzy wyprowadzenia do sterowania każdym uzwojeniem silnika.
Opisz dokładniej jak to podłączyłeś.

Paweł

Re: Mikrokrokowanie - problem
Quoted text here. Click to load it

KoF1%cF3%wka ENABLE jest na staB3%e ustawiona w stan wysoki, bo ukB3%ad na
etapie testF3%w ma caB3%y czas pracowaE6%. NF3%BFka SENSE jest podB3%B1cz=
ona do
masy, bo ukB3%ad nie wspF3%B3pracuje z L297, wiEA%c nie jest potrzebny pom=
iar
prB1%du. NF3%BFki In1, In2, In3 i In4, sB1% odpowiednio zasilane sygnaB3%a=
mi
A, /A, B, /B z mikrokontrolera.

Krzysiek

Re: Mikrokrokowanie - problem

Quoted text here. Click to load it

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


Re: Mikrokrokowanie - problem
Quoted text here. Click to load it

Silnik ma krok rF3%wny 1,8 stopnia. Przebieg napiEA%cia obserwowany na
silniku na oscyloskopie wskazuje, BF%e indukcyjnoB6%E6 silnika jest na tyl=
e
duBF%a, BF%e PWM jest wB3%aB6%ciwie uB6%redniane. Wszystko wyglB1%da tak, j=
akby
silnik byB3% nieczuB3%y na ten zakres 45-55% wypeB3%nienia, gdzie B6%rednia
wartoB6%E6 napiEA%cia jest bliska zeru. W pierwszym odruchu naleBF%aB3%oby
zmodyfikowaE6% tB1% funkcjEA% sinus, by byB3%a szybkozmienna dla pi i 2pi, =
ale
nie wiem jak skutecznie zaprojektowaE6% takB1% funkcjEA%. RobiB3%em jakie=
B6% z
tym prF3%by, owszem silnik siEA% obraca, ale pojawia siEA% jakaB6%
nierF3%wnomiernoB6%E6 pracy...

Krzysiek

Re: Mikrokrokowanie - problem

Quoted text here. Click to load it

najpierw spróbowałbym zmienić przesunięcie fazowe, znaczy nie sin/cos, tylko
sin(t) i sin(t+88), na przykład. No i zmienić przy zmianie kierunku. Czasem
bydlęta są trochę niesymetrycznie zbudowane.
Masz stałe obroty, czy chcesz jeszcze je zmieniać?

Waldek

Re: Mikrokrokowanie - problem
Quoted text here. Click to load it

Wszystkie takie rzeczy sprawdzaB3%em. Sprawa jest nietypowa. Wydaje mi
siEA%, BF%e przyczynB1% jest konstrukcja silnika, bo akurat mam hybrydowy
silnik krokowy, czyli z magnesem trwaB3%ym.

Quoted text here. Click to load it

PrzydaB3%oby siEA% zmieniaE6%.

W tej chwili obroty silnika, oczywiB6%cie w przypadku tych najniBF%szych
prEA%dkoB6%ci wyglB1%dajB1% tak jak na tym linku:


http://www.youtube.com/watch?v3D%OFueWFfLA1Y


Krzysiek

Re: Mikrokrokowanie - problem

Quoted text here. Click to load it

Moim zdaniem wyjścia PWM powinieneś podłączyć do wejść ENABLE a
wejściami In1,In2,In3,In4 sterować odpowiednio z uP (zmieniać ich stan
gdy funkcje SIN i COS zmieniają znak).

Paweł

Re: Mikrokrokowanie - problem
W dniu 2010-02-22 22:00, Paweł pisze:
Quoted text here. Click to load it
Też mi się tak wydaje, a w dodatku dlaczego nie używasz Sense? Przecież
wymuszanie prądu przy takich indukcyjnościach i wąziutkich szpileczkach
z pwm 30kHz to podstawa. Przecież tylko sterując "włączmy mu zasilanie i
niech sie martwi" to przy tak wąskich szpilkach - nic nie popłynie. A
siła/moment jest od prądu a nie napięcia! To się nie ma prawa kręcić,
jak momentu nie posiada

--
| Bartlomiej Kuzniewski
| snipped-for-privacy@drut.org  GG:23319  tel +48 696455098  http://drut.org /
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline