Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Nierówna praca silnika DC przy sterowaniu PWM z uC

05 Sie 2007 11:40 2015 12
  • Poziom 19  
    Witam,
    chcę sterować silnikiem prądu stałego za pomocą PWM. Chodzi o maleńki silnik 5V DC razem z przekładnią ok 1:50 (zarówno silnik jak i przekładnia pochodzą z serwomechnizmu modelarskiego). A źródłem sygnału PWM jest mikrokontroler Atmega8, tranzystor kluczujący to ULN2803.
    Problem na jaki się natykam jest taki, że: wg tego co wiem, to PWM powinno zapewnić pełną (albo zbliżoną do pełnej) moc silnika przy pełnym zakresie obrotów. Tymczasem przy małym wypełnieniu (10%) silnik nie ma siły poruszyć przekładnią a zwiększając wypełnienie (25%) od razu zaczyna obracać się bardzo szybko. Gdy zwiększę preskaler dla PWM z 64 do 1024 (uC jest taktowany zegarem 1MHz) to sytuacja się poprawia, z tym że, silnik pracuje skokowo bo PWM na długie okresy.
    Nie wiem jak można poprawić ten stan, czy programowo poprawiając parametry PWM'u czy źródła problemu należałoby się doszukiwać w hardware'rze i dodać np. diody zapobiegające prądom wstecznym pochodzącym z silnika.
    Liczę na jakieś sugestie i pozdrawiam
    Takaba
  • Poziom 30  
    To akurat normalne...
    Charakterystyka jest zbliżona do logarytmicznej...
    Przy liniowej zmianie tracisz trochę zakresu regulacji...
    Sprawdź przy jakim wypełnieniu silnik już zaczyna się kręcić i od tego momentu dopiero zacznij regulację...
    Częstotliwość PWM powinna być gdzieś między 1-100kHz...
    Dla mniejszego silnika może być bliżej górnej granicy...
  • Poziom 36  
    Tego typu napędy są mocno wrażliwe na częstotliwość PWM, wię może sprawdź w jakim zakresie f silnik zachowuje się najlepiej.
  • Pomocny post
    Poziom 20  
    Przyczyną może być czas reakcji układu ULN 2803. (tam są wewnętrzne diody zwrotne - trzeba tylko podłączyć + tego układu do zasilania silnika)
    W pdf - ie pisze Turn On max 1uS - to przy sterowaniu PWM
    nie jest szybko - już przy f = 1kHz i wypełnieniu 1/255 mamy czas
    1 impulsu 4uS - jak dasz jeszcze większą częstotliwość - to
    jeszcze gorzej. Musisz dodatkowo uwzględnić Uce sat = ok. 1V
    Czyli rzeczywista amplituda U na silniku to ok. 4V
    Nie znam się jednak na AVR -ach i nie wiem jaka jest w tym układzie
    częstotliwość wyjściowa.
    A to chyba nie jest prawda że PWM zapewni Ci pełną moc silnika.
  • Poziom 27  
    Prawda prawda, tylko wywal ten stopien wyjsciowy i zrób własny na MOSFET'ach z RdsON rzędu kilku mOhm. Czestotliwość pracy dobierasz tak jak Ci wygodnie. U mnie silnik ze sporym obciazeniem fantastycznie pracował przy 60Hz a przy 30Hz jeszcze bardziej zwiększał sie moment (przy niskich obrotach). Wszystko zalezy od charakteru silnika i jego parametrów oraz obciązenia. Wywal sterownik bo on mimo, ze ma słabe tranzystory to bycmoze ma jeszcze zaimplementowana obsługe regulacji napięciem (nie przeczytałem podfa ale tak podejrzewam)
  • Poziom 19  
    Fajfer2:
    Cytat:
    (tam są wewnętrzne diody zwrotne - trzeba tylko podłączyć + tego układu do zasilania silnika)

    Mówisz o pinie 10 układu ULN2308? Jak mam go podłączyć bo aktualnie wisi w powietrzu.
    Cytat:
    Musisz dodatkowo uwzględnić Uce sat = ok. 1V

    nie znam takiego parametru, możesz mi to objaśnić?
  • Pomocny post
    Poziom 36  
    takaba napisał:
    Mówisz o pinie 10 układu ULN2308? Jak mam go podłączyć bo aktualnie wisi w powietrzu.
    Do plusa zasilania silnika (najwyższy potencjał w układzie. Przy odciętym kluczu tranzystorowym prad silnika zamknie się przez te diody. Brak tego połączenia powoduje przepięcia z możliwością przebicia kluczy, czy zniszczenia mikrokontrolera lub zakłócenia jego pracy.

    takaba napisał:
    Uce sat = ok. 1V. nie znam takiego parametru, możesz mi to objaśnić?
    Napięcie nasycenia wysterowanego tranzystora. Czyli zasilanie 5 rozłoży się tak: 1V na tranzystorze, 4V na silniku
    .
  • Poziom 19  
    Ch.M.
    Cytat:
    Wywal sterownik bo on mimo, ze ma słabe tranzystory to byc moze ma jeszcze zaimplementowana obsługe regulacji napięciem (nie przeczytałem podfa ale tak podejrzewam)


    Nie za bardzo rozumiem... Sterownik czyli co, uC mam wywalić?

    marek_Łódź:
    Cytat:
    Do plusa zasilania silnika

    Już podłączone :)

    Co do częstotliwości PWM to pojawiają się głosy, że powinno być 100kHz i że przy 30Hz pracuje dobrze :) Więc chyba będę musiał po prostu eksperymentować.
    Rozumiem, że częstotliwość PWM'u w Atmedze to:
    częstotliwość zegara (u mnie 1MHz) ÷ preskaler (1,8,64,256 lub 1024) ÷ rozdzielczość_pwm (8,9 lub 10bit). Czyli mogę uzyskać częstotliwość PWM od 4Hz do 4kHz, dobrze liczę?
  • Poziom 20  
    Wg. mnie f = 100 kHz to wiele za dużo - nawet dla małych silniczków
    i tranzystorów - będą dawały znać o sobie właśnie takie parametry
    jak "Turn On" Turn off" , moc strat w czasie przełączeń itd.
    Jak wybierzesz kilka kHz to będzie ok. (lub mniej)
  • Poziom 28  
    takaba napisał:

    Rozumiem, że częstotliwość PWM'u w Atmedze to:
    częstotliwość zegara (u mnie 1MHz) ÷ preskaler (1,8,64,256 lub 1024) ÷ rozdzielczość_pwm (8,9 lub 10bit). Czyli mogę uzyskać częstotliwość PWM od 4Hz do 4kHz, dobrze liczę?

    od 1Hz do 4kHz

    Dodano po 3 [minuty]:

    Generalnie tak jak pisze Ch.M. stosując niskie częstotliwości (30, 60Hz) będziesz miał dodatkowy efek w postaci większego momentu przy niższysz obrotach, bo to już nie będzie regulacja napięciem tylko tak jakby impulsowa.
  • Poziom 27  
    Chodziło mi o ULN2803, myślałem ze to scalony sterownik silników, a to tylko kilka darlingtonów... W każdym razie jak znudzi Ci się podgrzewanie otoczenia to poczytaj o MOSFETach.
    Pozdrawiam
  • Poziom 19  
    Tak chciałem to zrobić na mosfetach. Ale do ich wysterowania chyba potrzeba 10V-15V a cały układ pracuje na 5V...
  • Poziom 28  
    takaba napisał:
    Tak chciałem to zrobić na mosfetach. Ale do ich wysterowania chyba potrzeba 10V-15V a cały układ pracuje na 5V...

    Eeeee, nie. Jak byś się postarał to na 1.5V byś coś znalazł, albo nawet na 0.6V. Tylko zwracaj baczną uwagę na pojemność między G a S.