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

Silnik krokowy 5 fazowy - jak sterować?

19 Lut 2016 13:08 1761 13
  • Tłumacz Redaktor
    Mam pięciofazowy silnik krokowy (Berger Lahr RDM 596/50); nie mam wielkiego doświadczenia z takimi silnikami - jak nim sterować? zależy mi na prostym, gotowym (i tanim) sterowniku. Sterowniki jakie znajduje w sklepach są do sterowania silnikami dwufazowymi, czy da się je jakoś zastosować do tego silnika?
  • PCBway
  • Poziom 30  
    ghost666 napisał:
    Mam pięciofazowy silnik krokowy (Berger Lahr RDM 596/50); nie mam wielkiego doświadczenia z takimi silnikami - jak nim sterować?

    Na początek, zapoznaj się ze sposobami zasilania i sterowania, podobnych do w/w, silników 5 fazowych : Link
  • Tłumacz Redaktor
    januszx3 napisał:
    ghost666 napisał:
    Mam pięciofazowy silnik krokowy (Berger Lahr RDM 596/50); nie mam wielkiego doświadczenia z takimi silnikami - jak nim sterować?

    Na początek, zapoznaj się ze sposobami zasilania i sterowania, podobnych do w/w, silników 5 fazowych : Link


    Widzę, że źle się wyraziłem. Wiem jak wygląda sterowanie takiego silnika od strony przebiegu faz na poszczególnych uzwojeniach. Pytam od strony praktycznej jak tym sterować.
  • Poziom 13  
    Istnieją gotowe sterowniki do tego typu silników - np. SFC133 firmy Wobit. Powinien być dużo tańszy niż dedykowany sterownik Berger-Lahr.
  • PCBway
  • Tłumacz Redaktor
    cinepi napisał:
    Istnieją gotowe sterowniki do tego typu silników - np. SFC133 firmy Wobit. Powinien być dużo tańszy niż dedykowany sterownik Berger-Lahr.


    Też już natrafiłem na ten sterownik, ale jak widzę cena zaporowa. Kiedyś Sanken produkował scalone kontrolery takich silników, ale niestety są już nie do dostania :(.
  • Specjalista elektronik
    1. Czy to jest unipolarny, czy bipolarny? Unipolarny 5-fazowy powinien mieć 6 przewodów (1 wspólny, i końce 5 uzwojeń), bipolarny 10 - po 2 końce każdego uzwojenia.
    2. Jaka jest oporność uzwojenia, jakim napięciem to ma być zasilane (ewentualnie, jaki prąd chcesz/możesz przepuszczać przez każde uzwojenie)?
  • Tłumacz Redaktor
    _jta_ napisał:
    1. Czy to jest unipolarny, czy bipolarny? Unipolarny 5-fazowy powinien mieć 6 przewodów (1 wspólny, i końce 5 uzwojeń), bipolarny 10 - po 2 końce każdego uzwojenia.
    2. Jaka jest oporność uzwojenia, jakim napięciem to ma być zasilane (ewentualnie, jaki prąd chcesz/możesz przepuszczać przez każde uzwojenie)?


    Podałem oznaczenie silnika po to, aby uniknąć takiego pytania - katalog dostępny jest w sieci. No ale ok:

    Silnik jest unipolarny, rezystancja uzwojenia to 2,1 Ω, a nominalny prąd wynosi 1,25 A. Rozdzielczość silnika to 1000/500 kroków na obrót (nie rozumiem tego - są dwa sposoby sterowania takim silnikiem?). Moment wynosi 1,2 Nm (obrotowy) i 1,3 Nm (trzymający).

    Więcej danych znaleźć można tutaj - http://www.mikrocontroller.net/attachment/158780/5_mot-rdm_d-ds350d.pdf - niestety po niemiecku.
  • Specjalista elektronik
    Są dwa sposoby sterowania - można robić "kroki połówkowe". Silnik jest niestety bipolarny - co oznacza, że aby w pełni wykorzystać jego możliwości, potrzebujesz 5 układów mostkowych.

    Nie wiem jeszcze, jakim napięciem chcesz to zasilać - jeśli chcesz podawać na uzwojenia więcej, niż około 2.6V, to wypada zastosować PWM, żeby ograniczyć prąd, kiedy silnik stoi.

    Jeśli chcesz zastosować układy do silników krokowych dwufazowych, to potrzeba będzie 2 i 1/2 takiego układu na silnik, i jeszcze trzeba, żeby obie fazy działały niezależnie.
  • Tłumacz Redaktor
    _jta_ napisał:
    Są dwa sposoby sterowania - można robić "kroki połówkowe". Silnik jest niestety bipolarny - co oznacza, że aby w pełni wykorzystać jego możliwości, potrzebujesz 5 układów mostkowych.

    Nie wiem jeszcze, jakim napięciem chcesz to zasilać - jeśli chcesz podawać na uzwojenia więcej, niż około 2.6V, to wypada zastosować PWM, żeby ograniczyć prąd, kiedy silnik stoi.

    Jeśli chcesz zastosować układy do silników krokowych dwufazowych, to potrzeba będzie 2 i 1/2 takiego układu na silnik, i jeszcze trzeba, żeby obie fazy działały niezależnie.


    Mostek H, np. L298, na każde uzwojenie - to mnie jeszcze tak nie przeraża; co mnie przeraża to fakt, że to jest 15 wejść którymi trzeba sterować , alby przepuszczać przez uzwojenie w odpowiednim kierunku prąd lub nie. Czy jest jakiś sposób, aby to zestawić, bez wykorzystywania mikrokontrolera lub 'wiaderka' układów TTL?
  • Specjalista elektronik
    Na stronie 7 masz wykres przebiegów, o okresie 20... Można coś w tym uprościć: dla silnika nie ma znaczenia, jakie potencjały masz na końcach uzwojenia, a tylko ich różnica, więc nie trzeba podawać np. par potencjałów -1V i +1V, 0V i 0V, +1V i -1V, można je zastąpić 0V i +2V, 0V i 0V, +2V i 0V - a nawet pozwolić na to, żeby było albo 0V i 0V, albo +2V i +2V, bez pilnowania, która z tych możliwości będzie. A to załatwią 2 sygnały na każde uzwojenie; sygnał En powinien być uzależniony od napięcia na RS, które informuje, jaki prąd płynie - jeśli za duży, to zmienić En na '0', jeśli za mały, zmienić na '1', z jakąś histerezą.

    Potrzebujesz kręcić silnikiem w obie strony? Jeśli tak, to trzeba by zrobić układ cyklicznego przesuwania 10 bitów, który na początku zawiera np. same '0', ale bit przesunięty z końca na początek, albo z początku na koniec zmienia się na przeciwny. Z tych 10 bitów generujesz jeszcze negacje i uzyskujesz 20, w których jest ciąg 10 '1' i 10 '0'. I chyba wystarczy pod te 20 sygnałów podłączyć wejścia In L298 - tylko dobrze rozplanować, które wejście gdzie. A może zrezygnować z połówkowych kroków i mieć o połowę mniej bitów?

    Aha, jeszcze jedna koncepcja - ale potrzebny jest PROM (albo EPROM, czy EEPROM) z 16-bitową szyną danych, odpowiednio zaprogramowany - 10 bitów danych to wyjścia do sterowania, 5 łączy się przez przerzutniki D wyzwalane zboczem (74LS174) z wejściami adresowymi, jeszcze na jedno wejście adresowe podajesz sygnał "kierunek"; wpisujesz do niego 20 układów danych, i adresy do przeskakiwania między nimi w odpowiedniej kolejności, zależnie od sygnału "kierunek" do przodu, albo do tyłu. Całość, to ten PROM, 74LS174, 2 74LS04, 3 L298 i układ sterujący En.

    Jeszcze inaczej można to uprościć - nawet dla kroków połówkowych: potrzebny jest rejestr przesuwny 2-kierunkowy 5-bitowy, albo inaczej licznik, który zlicza do przodu i do tyłu, dając w kółko 10 wartości (bitowo): 00000 00001 00011 00111 01111 11111 11110 11100 11000 10000; do tego 5 inwerterów, i 5 przerzutników D wyzwalanych zboczem - powinny zmieniać stan na przeciwnym zboczu sygnału zegarowego, niż licznik. I powinny z tego wyjść wszystkie potrzebne sygnały. Na przykład na A i B podasz sygnały, które będą w przeciwnej fazie, ale np. B będzie opóźniony o pół okresu zegara przez przerzutnik D - czyli jak podczas obrotu A zmienia sie z 0 na 1, to B z 1 na 0 o pół okresu później, przez te pół okresu między A i B nie ma napięcia.
  • Tłumacz Redaktor
    _jta_ napisał:
    Na stronie 7 masz wykres przebiegów, o okresie 20... Można coś w tym uprościć: dla silnika nie ma znaczenia, jakie potencjały masz na końcach uzwojenia, a tylko ich różnica, więc nie trzeba podawać np. par potencjałów -1V i +1V, 0V i 0V, +1V i -1V, można je zastąpić 0V i +2V, 0V i 0V, +2V i 0V - a nawet pozwolić na to, żeby było albo 0V i 0V, albo +2V i +2V, bez pilnowania, która z tych możliwości będzie. A to załatwią 2 sygnały na każde uzwojenie; sygnał En powinien być uzależniony od napięcia na RS, które informuje, jaki prąd płynie - jeśli za duży, to zmienić En na '0', jeśli za mały, zmienić na '1', z jakąś histerezą.

    Potrzebujesz kręcić silnikiem w obie strony? Jeśli tak, to trzeba by zrobić układ cyklicznego przesuwania 10 bitów, który na początku zawiera np. same '0', ale bit przesunięty z końca na początek, albo z początku na koniec zmienia się na przeciwny. Z tych 10 bitów generujesz jeszcze negacje i uzyskujesz 20, w których jest ciąg 10 '1' i 10 '0'. I chyba wystarczy pod te 20 sygnałów podłączyć wejścia In L298 - tylko dobrze rozplanować, które wejście gdzie. A może zrezygnować z połówkowych kroków i mieć o połowę mniej bitów?

    Aha, jeszcze jedna koncepcja - ale potrzebny jest PROM (albo EPROM, czy EEPROM) z 16-bitową szyną danych, odpowiednio zaprogramowany - 10 bitów danych to wyjścia do sterowania, 5 łączy się przez przerzutniki D wyzwalane zboczem (74LS174) z wejściami adresowymi, jeszcze na jedno wejście adresowe podajesz sygnał "kierunek"; wpisujesz do niego 20 układów danych, i adresy do przeskakiwania między nimi w odpowiedniej kolejności, zależnie od sygnału "kierunek" do przodu, albo do tyłu. Całość, to ten PROM, 74LS174, 2 74LS04, 3 L298 i układ sterujący En.

    Jeszcze inaczej można to uprościć - nawet dla kroków połówkowych: potrzebny jest rejestr przesuwny 2-kierunkowy 5-bitowy, albo inaczej licznik, który zlicza do przodu i do tyłu, dając w kółko 10 wartości (bitowo): 00000 00001 00011 00111 01111 11111 11110 11100 11000 10000; do tego 5 inwerterów, i 5 przerzutników D wyzwalanych zboczem - powinny zmieniać stan na przeciwnym zboczu sygnału zegarowego, niż licznik. I powinny z tego wyjść wszystkie potrzebne sygnały. Na przykład na A i B podasz sygnały, które będą w przeciwnej fazie, ale np. B będzie opóźniony o pół okresu zegara przez przerzutnik D - czyli jak podczas obrotu A zmienia sie z 0 na 1, to B z 1 na 0 o pół okresu później, przez te pół okresu między A i B nie ma napięcia.


    To co mówisz ma wielki sens; można równie dobrze oprzeć całość na mikrokontrolerze, ale problem jest jeden - w ekonomii tego rozwiązania. Już potrzebne trzy układy L298 to jest ponad 30 zł - do tego dochodzi reszta elektroniki, PCB no i mój czas. Pewnie koszty będą większe (nie licząc czasu) niż zakup silnika dwufazowego i sterowanie kontrolerem, który już posiadam (na DRV8825). Szkoda.
  • Specjalista elektronik
    Jeśli potrafisz programować mikrokontrolery ATtiny, to na jakimś ATtiny2313 (4zł) + 3 L298 załatwiasz cały sterownik, poza PWM, które lepiej zrobić analogowo, np. na 10 tranzystorach po 6gr sztuka. Kosztują głównie L298 - to one tak podnoszą cenę dla silnika 5-fazowego bipolarnego - może jest coś tańszego? A najtańsze silniczki krokowe (unipolarne - sterowanie za grosze) kosztują kilka zł...
  • Tłumacz Redaktor
    _jta_ napisał:
    Jeśli potrafisz programować mikrokontrolery ATtiny, to na jakimś ATtiny2313 (4zł) + 3 L298 załatwiasz cały sterownik, poza PWM, które lepiej zrobić analogowo, np. na 10 tranzystorach po 6gr sztuka. Kosztują głównie L298 - to one tak podnoszą cenę dla silnika 5-fazowego bipolarnego - może jest coś tańszego? A najtańsze silniczki krokowe (unipolarne - sterowanie za grosze) kosztują kilka zł...


    Z tym, że PWM-a nie potrzebuje, bo po co? do mikrokroku? Nie przy takiej rozdzielczości, jaką daje silnik - tutaj nie ma to w zasadzie żadnego zastosowania, chyba tylko dla satysfakcji, że obracam silnikiem o setne części kąta.

    L298 jest istotnie drogie, dlatego spróbuję zastanowić się nad mostkami H na dyskretnych tranzystorach FET. Przy takim napięciu, z jakim pracuje ten silnik, to chyba 5 V z µC wystarczy do otwierania tranzystorów w pełni.

    Albo poszukam innego silnika w firmie ;)
  • Specjalista elektronik
    Liczyłem to - zrobienie mostka zastępującego L298 na dyskretnych MOSFET-ach kosztowało drożej. Choć ceny się zmieniają, może się udać, w tym przypadku masz mniejsze prądy (1.25A, a nie 4A, które może dać L298) i potrzebujesz 5 mostków, a 3 L298 dałyby 6 - może jakaś niewielka oszczędność wyjdzie. L298 zawiera 8 MOSFET-ów mocy, akurat STP16NE06 (16A) są po 70gr, ale P-MOSFET-y są dużo droższe (IRFR9024N 1.80zł) - stosując mostki N/P masz koszt 5zł/mostek... chyba i tak 5 mostków wyjdzie taniej, niż 3 L298.

    PWM jest po to, żeby ograniczyć prąd przy zatrzymaniu silnika - alternatywą jest użycie tak niskiego napięcia zasilania, żeby prąd na zatrzymaniu nie był za duży, ale wtedy znacznie maleje szybkość (i moc) silnika.

    Można spróbować podłączyć silnik jako unipolarny, wtedy na każde uzwojenie jest potrzebny 1 tranzystor, a nie mostek z 4, może to będzie działać, ale wtedy pogorszą się parametry silnika, przede wszystkim zmaleje moment siły, chyba o połowę.

    Można jeszcze użyć ATmega48 (albo 88, zależy ile pamięci potrzeba na program - kosztuje kilka zł, ma 6 ADC) i zrobić kompletne sterowanie (z PWM, do L298, albo do tranzystorów w układzie unipolarnym) bez dodatkowych układów, tranzystorów itp.