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

Poszukuje programu w Bascom do sterowania silnika 3F

04 Paź 2007 21:08 5460 25
  • Poziom 22  
    Witam

    W programowaniu uC jestem niezbyt mocny. Potrzebuje wysterowac silnik z CD-romu (3 fazowy). Posiada on halotrony jednak ja chce je ominąć. Czytalem cos o takich sterownikach, podobno dzialaja one na zasadzie włączania kolejnej cewki silnika z wyprzedzeniem 120 stopni. Nie wiem czy dobrze to sformułowalem. Byłbym wdzieczny za jakies wstawki w bascome (najlepiej), ewentualnie w C. Znalazlem kilka programów jednak sa one w ASM a z tego jestem niestety zielony :)

    z góry dzieki za pomoc
    Pozdrawiam !
  • PCBway
  • Poziom 21  
    Witam.
    Silniki w napędach Cd i Hdd to silniki bezszczotkowe.
    Mam oprogramowanie do tych 4 wyprowadzeniowych ( z wyprowadzonym punktem wspólnym). Programuje w asemblerze na 51. Jeżeli Cię interesuje podeślę program i projekt takiego sterownika.
    Pozdrawiam
  • Poziom 22  
    mnie zalezy na sterowaniu tych ktore mają 3 wyprowadzenia, ale moze idea programu jest podobna ?? nawet jesli tak to programu w ASM i tak niezrozumie :((((
  • Poziom 21  
    Idea jest podobna ale sprzętowo wygląda to inaczej.
    Asm nie jest trudny. Jak wiesz co robi program, to po przeanalizowaniu go chwycisz o co chodzi. Asm jest najbliżej sprzętu ze wszystkich języków.
    Pozdrawiam
  • PCBway
  • Poziom 42  
    adamowicz -> a ja mam pytanie czy kolega mogły udostępnić te swoje źródła i projekt do sterowania tymi silnikami? Wpradzie już prawie nie pamiętam asm '51nki ale znam obecnu asm AVR i może uda mi się jakoś przenieść ten kod. A bardzo interesuje mnie uruchomienie takiego silnika z CD albo HDD

    pozdrówka
  • Poziom 22  
    to moze ja tez poprosze :)
  • Poziom 21  
    Witam.
    Program przez prostą modyfikację umożliwia sterowanie silnikami bezszczotkowymi oraz silnkami krokowymi unipolarnymi . Jako driver wykorzstany został układ ULN 2003. Możliwa zmiana ilości uzwojeń na 3 , czy 5, zmiana kroku...
    Pozdrawiam
  • Poziom 42  
    Wielkie dzięki kolego adamowicz - jak się na to popatrzy to rzeczywiście nie wygląda to aż tak źle jak na początku myślałem ;) ... jak tylko będę miał czas to spróbuję to samo zrobić tylko na jakimś AVRku - tylko miałbym jeszcze prośbę - gdybyś mógł się podzielić schematem - czyli konkretnym rozwiązaniem z którego jak rozumiem skorzystałeś i to działa w praktyce. Bardzo mnie interesuje wykorzystanie właśnie do pewnych moich celów silników ze starszych hdd których mam troszkę. Napisałeś że sterowanie bezpośrednio przez ULN2803 a gdzie podłączyć ten wspólny punkt ? Nie znam się do końca na tym i dla tego przydałby mi się schemat praktycznego rozwiązania

    pozdrawiam
  • Poziom 35  
    mirekk36 napisał:
    Wielkie dzięki kolego adamowicz - jak się na to popatrzy to rzeczywiście nie wygląda to aż tak źle jak na początku myślałem ;) ... jak tylko będę miał czas to spróbuję to samo zrobić tylko na jakimś AVRku - tylko miałbym jeszcze prośbę - gdybyś mógł się podzielić schematem - czyli konkretnym rozwiązaniem z którego jak rozumiem skorzystałeś i to działa w praktyce. Bardzo mnie interesuje wykorzystanie właśnie do pewnych moich celów silników ze starszych hdd których mam troszkę. Napisałeś że sterowanie bezpośrednio przez ULN2803 a gdzie podłączyć ten wspólny punkt ? Nie znam się do końca na tym i dla tego przydałby mi się schemat praktycznego rozwiązania

    pozdrawiam


    uln to 8 darlingtonow npn .. zazwyczaj podlaczamy punkt wspolny do + zasilania a pozostale wyprowadzenia zasilanego odbiornika do wyjscia tych darlingtonow
  • Poziom 21  
    Witam.
    To mój własny projekt. Projekt płytki znajdziesz tu:
    http://8051.ovh.org/ . Ze zdjęcia możesz wywnioskować jak umieścić elementy. Wiele wynika z programu, tz. gdzie podłączyć diody, gzie wejście ULN, gdzie przyciski sterujące. Na płytce może być błąd . Sugeruje wykorzystać inne drivery , bardziej wydolne prądowo lub zastosować oddzielnie tranzystory połączone w układ darlingtona.
    Pozdrawiam
  • Poziom 39  
    Cytat:
    Potrzebuje wysterowac silnik z CD-romu (3 fazowy).

    mała uwaga zaproponowany sterownik nie nadaje się do silników bldc , być może silnik będzie się kręcił ale zupełnie bez większej dynamiki i obrotów
    silnik bldc wymaga przesunięcia fazowego 120° oraz przebiegu sinusoidalnego lub zbliżonego czego na ULN nie osiągniesz , proponuje zapoznać się z sposobem sterownia tego typu silnikami http://www.zmine.ps.pl/download/ane_BLDC_1.pdf
  • Poziom 13  
    żadne sinusy....!

    Co do samego silnika, to są 2 rozwiązania:
    - proste: z wykorzystaniem halotronów (lub innego czujnika położenia) i to można sobie łatwo w bascomie 'wystrugać'
    - trudne: bez halotronów, gdzie czujnikiem położenia jest 'martwe' uzwojenie.

    W drugim wypadku trzeba dobudować sprzężenie zwrotne z uzwojeń poprzez komparatory lub podłączyć je do przetworników A/C; wykrywać przejście przez zero i na podstawie tego wyliczać, kiedy należy zmienić fazę.
    Jak szukasz gotowca, to szukaj tematu regulatorów modelarskich silników 3f. Jak chcesz teorii, to na stronie Atmela i Microchipa są noty aplikacyjne wyjaśniające dokładnie jak to popodłączać i jak oprogramować.
    Drugi sposób jest tym bardziej trudny, bo rozkręcić silnik trzeba 'w ciemno', bo przy niskich obrotach nie będziemy mieli informacji indukowanej w luźnych uzwojeniach. Do tego trzeba obsłużyć fakt ewentualnej blokady silnika, którą też ciężko wykryć, a brak tego może się skończyć spaleniem silnika lub regulatora...

    Jeżeli przeróbka silnika nie jest konieczna i musi być ten bascom, to radziłbym zostawić te halotrony.
  • Poziom 39  
    Cytat:
    żadne sinusy....!

    kolego majekw przebieg sinusoidalny jest najbardziej wskazanym dla każdego silnika 3f , faktem jest że otrzymanie go w prostych układach elektronicznych jest bardzo trudne ale możliwe ( modulacja sygnałem PWM ) i nie jest to idealna sinusoida tylko przebieg schodkowy w dolnej i górnej połówce przebiegu , taki przebieg pozwala na liniowe narastanie i opadanie prądu w uzwojeniach silnika co jest korzystne dla silnika i kluczy przełączających stopnia mocy , czego nie można powiedzieć o typowym przebiegu prostokątnym gdzie masz gwałtowny wzrost i zanik prądu
    to że stosuje się sterowanie sygnałem prostokątnym w prostych układach z silnikami 3f małej mocy to zupełnie coś innego
  • Poziom 13  
    Kolego Bogdan, każesz sterować silniczkiem od cd-romu sinusoidą... Silnik BLDC jest silnikiem prądu stałego z elektronicznym komutatorem. Poczytaj sam co jest napisane w podanym przez Ciebie linku. Proszę o podanie przykładów sterowania sinusoidą silników BLDC w praktyce, bo ja takich nie znalazłem. Owszem, jak podasz sinusoidę, to będzie się kręcił, tak samo jak wlejesz rzepak do ropniaka, to też pojedzie. Ale nie znaczy to, że tak się robi normalnie na codzień i że jest to właściwe podejście.
    Jakoś noty aplikacyjne Microchipa czy Atmela dotyczące sterowania silnikami BLDC nigdzie nawet słowem nie wspominają o sinusie, nie wspominając o producentach dedykowanych sterowników do tych silników.

    Jeszcze inaczej: w BLDC elektronika robi za komutator, który ma nadążać za ruchem wirnika (to silnik wyznacza czas kiedy należy przełączyć fazy), natomiast w normalnych 3f sterowanych falownikiem zasada działania jest dokładnie odwrotna: to silnik ma nadążyć za zmianami prądu. To taka subtelna różnica, ale bardzo znacząca.
  • Poziom 16  
    Jeśli silnik z CD-romu ma być zasilany bez kontroli położenia wirnika, to tylko przez podanie przebiegu sinusoidalnego - tak jak w normalnych trójfazowych silnikach synchronicznych - jeżeli na taki silnik poda się przebieg prostokątny, to wirnik będzie tylko dragł.
    A jeżeli wykożystane mają być hallotrony, to nie jest do niczego potrzebny mikrokontroler.
    Można to wykonać na 3 wzmacniaczach operacyjnych. Zasilanie takiego silnika rozpracowaliśmy w temacie
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=799887&highlight=
    w 21 poście licząc od góry jest gotowy schemat.
  • Poziom 13  
    Panowie, zanim zaczniecie pisać o sinusoidach w BLDC, proszę trochę o tym poczytać. Silnik BLDC to NIE jest zwykły silnik trójfazowy!

    Bez halotronów jedno z uzwojeń aktualnie nie zasilanych może służyć jako czujnik położenia ponieważ indukuje się w nim SEM (back EMF). Jedyny problem z back EMF jest taki, że przy rozruchu jest bardzo małe, więc ciężko je wtedy wykorzystać. Dlatego sterowanie takim silnikiem odbywa się w dwóch fazach:
    1. Rozruch, gdzie w ciemno próbujemy go rozkręcić do takich obrotów, gdzie zaczyna być użyteczne back EMF (i dzieje się to jak najbardziej prostokątem!);
    2. Normalne kręcenie z wykorzystaniem uzwojeń jako czujników położenia. W tej sytuacji napięcie z tych luźnych uzwojeń zmienia się i charakterystycznym punktem jest przejście przez 0, które następuje w połowie cyklu pomiędzy przełączeniami faz. Mając czas od przełączenia do przejścia przez 0 wyliczamy czas w którym trzeba zrobić kolejne przełączenie faz. Oczywiście ten czas jeszcze modyfikujemy w zależności od zadanego wyprzedzenia kątowego i już mamy właściwy czas. Dla utrudnienia przy sterowaniu PWM uzwojeń, pomiar napięcia na luźnym uzwojeniu można przeprowadzać tylko przy załączonych dwóch pozostałych, więc dochodzi tu również nietrywialna i bardzo rygorystyczna czasowo sprawa synchronizacji ADC z generowanym PWMem.

    Nie pisałem o tym wcześniej tylko dlatego, że nie jest to po prostu soft do napisania w bascomie.

    Jeżeli wątkotwórcę zadowoli tylko 'kręci się', to może kombinować tylko z punktem 1. Jak chce wykorzystać ten silniczek do czegoś użytecznego, to bez przejścia do normalnej pracy (punkt 2) się nie obejdzie.
    Jako ciekawostkę wspomnę, że z takiego silniczka (po wymianie magnesów, przewinięciu grubszym drutem i odpowiednim chłodzeniu) można wycisnąć z 50W i z 10k rpm, więc temat ogólnie jest wart uwagi.

    A dla tych od sinusoid i 'nie da się':
    AVR444: Sensorless control of 3-phase brushless DC motor (Atmel)
    AN970 - Using the PIC18F2431 for Sensorless BLDC Motor Control

    Co do podanego wątku, to widać w nim właśnie niewiedzę nt. silników BLDC - nie wiecie jak sterować prędkością; nie wiecie, że dobry regulator w fazie pierwszej również powinien kontrolować (lub przynajmniej ograniczać) prąd, żeby nie spalić się i silnika; nie wpadliście, że zamiast przetwornicy do górnych n-mosów łatwiej dać tam po prostu p-mosy itp...
  • Poziom 16  
    Ja podałem prosty przykład pozwalający na uruchomienie takiego silnika, w którym nie jest potrzebny uK, stąd brak zależności u/f=const, itp.
    W tym przypadku prędkością sterujemy tak jak w silnikach bocznikowych prądu stałego - przez zmianę napięcia - było o tym w tamtym temacie (może za daleko). 2. - to nie był dobry regulator - to był działający regulator. 3. N-mosy - bo takie miałem. - Czego jeszcze można się uczepić?
    Ten odnośnik miał pomóc w zrozumieniu zasady działania (dla autora) ewentualnie podsunięcia jakiegoś pomysłu i nic więcej.

    Jeszcze coś: jeśli ta "sinusoida" jest tak bezwzględnie zakazana, to napisz mi proszę, czym w takim razie zasilać taki silnik, bez kontroli położenia wirnika?
  • Poziom 13  
    Cytat:
    Przecież kto każe robić z silnika od CD-romu silnik BLDC

    Nikt. Bo to jest silnik BLDC.

    Cytat:
    ja podałem przykład w którym w ogóle nie jest potrzebny uK - i też działa. I w moim przykładzie nie jest to żaden BLDC.

    Ten twój przykład z halotronami to również BLDC.

    Co do bascoma, to starałem się autorowi zasugerować nie wywalanie tych halotronów, bo takie sterowanie jest tak banalne, że jak sam zauważyłeś, nie wymaga nawet procesora. Natomiast wywalenie ich, to albo próba przerobienia tego na silnik synchroniczny, albo zrobienie BLDC bez halotronów. Pierwsze podejście daje wątpliwą moc i niepewność działania (po pierwsze nieśmiertelny problem z rozruchem, jak jeszcze chcesz sobie generować sinusa, to zapomnij znowu o bascomie); drugie daje bardziej skomplikowany układ (wykorzystanie komparatorów lub ADC) i o wiele trudniejszy soft (również nie na bascoma).

    Dodano po 36 [minuty]:

    Wyedytowałeś swojego posta w międzyczasie jak ja odpowiadałem, więc, żeby uniknąć, to piszę osobno:

    Cytat:
    Jeszcze coś: jeśli ta "sinusoida" jest tak bezwzględnie zakazana, to napisz mi proszę, czym w takim razie zasilać taki silnik, bez kontroli położenia wirnika?

    Napisałem to w miarę dokładnie w poście na który odpowiedziałeś. Jest to również dokładnie rozrysowane i opisane w notach aplikacyjnych podanych poprzednio. Ale jeszcze jeden hint: zasilając prostokątem na raz zasilamy tylko 2 uzwojenia, trzecie wisi i indukuje się w nim siła elektromotoryczna (bo silnik się kręci). Napięcie indukowane od ruchu w tym trzecim uzwojeniu jest właśnie tym naszym czujnikiem. Żeby nie było za
    łatwo, to po każdej zmianie fazy inne uzwojenie wisi i inne jest tym czujnikiem.

    Cytat:
    Ja podałem prosty przykład pozwalający na uruchomienie takiego silnika, w którym nie jest potrzebny uK

    Bardzo dobry przykład jak proste jest sterowanie silnika BLDC z wykorzystaniem halotronów :D

    Cytat:
    W tym przypadku prędkością sterujemy tak jak w silnikach bocznikowych prądu stałego - przez zmianę napięcia

    Dokładnie, bo to nie jest silnik synchroniczny jak było wcześniej sugerowane i skąd pewnie wyszła ta sinusoida. To jest w końcu zwykły silnik prądu stałego tylko z elektronicznymi szczotkami.
  • Poziom 22  
    Witam !

    nadmiszcz dzieki wielkie za schemat :), z ciekawosci nasuneły mi sie 3 pytania.

    1. Czy niezbedny jest ten podwajacz napiecia ???
    2. Dlaczego tylko jeden z IRF'ow jest sterowany poprzez tranzystor BC547
    3. Czy zasilanie TL074 ma byc podpiete do +UZ ??

    Pozdrawiam i sory za smieszne pytania :)
  • Pomocny post
    Poziom 16  
    1. W tym układzie, który zamieściłem podwajacz jest potrzebny, ponieważ "górne" tranzystory IRF potrzebują napięcia na bramce wyższe o kilka woltów niż mają na źródle. Bez podwajacza te tranzystory nie "otworzyły" by się zupełnie i wytracało by się w nich zbyt dużo mocy.
    Tak naprawdę to można zastosować inną końcówkę do sterowania 3-f, w której takie patenty nie będą potrzebne. (W tamtym temacie chodziło o uzyskanie jak największych prądów przepływających przez silnik stąd właśnie takie rozwiązania).
    Wcześniej zamieściłem schemat układu zasilającego z tranzystorami pnp i npn - one nie wymagają żadnych dodatkowych napięć, ale mają taką wadę, że jeśli wejścia nie są do niczego podłączone, to po prostu robią zwarcie.
    2. BC547 tylko odwraca sygnał - z "zera" logicznego robi "jedynkę" i na odwrót. Takie same IRFy muszą być sterowane na przemian a nie jednocześnie, bo zrobiły by zwarcie.
    3. TL074 jest zasilany, tak jak reszta, z +Uz.
    Maksymalna wartość tego napięcia to ok 16V bo tyle może dostać NE555.
    W każdym razie - najważniejszą częścią tego "sterownika" są właśnie komparatory w TL074, cała reszta to tylko jedna z możliwości zasilania silnika.

    Można się zgodzić co do sposobu sterowania z majekw, ale jeśli masz zamiar dopiero próbować uruchomić taki silnik, to jest to rzucanie się na głęboką wodę. Lepiej najpierw w ogóle uruchomić ten silnik, przyjrzeć się działaniu, a później rozpracowywać sterowanie przez pomiar SEM itp.
  • Poziom 16  
    Pozwolę sobie dołożyć zdanie do tematu.
    Silnik BLDC jest zdecydowanie synchroniczny. Proszę nie sugerować się sterownikami modelarskimi, w których następuje regulacja mocy a obroty ustalają się w zależności od obciążenia.
    Sterowane są falą prostokątną, gdyż tylko taki przebieg napięcia pozwala na naturalny, liniowy przyrost prądu fazowego, który bezpośrednio przekłada się na moment obrotowy.
    Profesjonalne sterowniki silników z magnesami trwałymi w maszynach CNC generują przebieg sinusoidalny ale wyłącznie dla uzyskania dużej płynności ruchu na małych obrotach.
    Ktoś pisał, że sterowniki bezczujnikowe (sensorless) badają moment przejścia przez zero. Który z przewodów w układzie gwiazdy czy trójkąta ma potencjał 0V? Komparatory SEM (siła elektromotoryczna, powstająca na skutek przesuwania się magnesu nad nabiegunnikiem elektromagnesu) "szukają" momentu przejścia przez połowę napięcia zasilania.
  • Poziom 13  
    Leoo napisał:
    Pozwolę sobie dołożyć zdanie do tematu.
    Silnik BLDC jest zdecydowanie synchroniczny.

    Pozwolę sobie nie zgodzić się z tym (opisywałem wyżej dlaczego - wystarczy przeczytać ze zrozumieniem).

    Cytat:
    Proszę nie sugerować się sterownikami modelarskimi, w których następuje regulacja mocy a obroty ustalają się w zależności od obciążenia.


    Błędne założenie, to i błędne wnioski.

    Cytat:
    Profesjonalne sterowniki silników z magnesami trwałymi w maszynach CNC generują przebieg sinusoidalny ale wyłącznie dla uzyskania dużej płynności ruchu na małych obrotach.

    Tam zazwyczaj są silniki krokowe, a nie BLDC.

    Cytat:
    Ktoś pisał, że sterowniki bezczujnikowe (sensorless) badają moment przejścia przez zero. Który z przewodów w układzie gwiazdy czy trójkąta ma potencjał 0V?

    Punkt wspólny (w gwieździe).

    Cytat:
    Komparatory SEM (siła elektromotoryczna, powstająca na skutek przesuwania się magnesu nad nabiegunnikiem elektromagnesu) "szukają" momentu przejścia przez połowę napięcia zasilania.

    Punkt wspólny ma potencjał 1/2 Vcc o ile zasilasz to napięciem niesymetrycznym i obydwie pozostałe fazy mają włączone zasilanie. Generalnie to co opisałeś, to skutek niesymetrycznego zasilania, a nie wyjście od przyczyny, którą jest SEM dodane do potencjału punktu wpólnego.
  • Poziom 16  
    Napięcie punktu środkowego gwiazdy mogło by być punktem odniesienia ale sterowniki BLDC nie wymagają jego fizycznego podłączenia. W temacie silników i sterowania maszyn CNC zapraszam na forum cnc.info.pl.
    O maszynach synchronicznych radzę zwyczajnie poczytać.
  • Poziom 13  
    Leoo napisał:
    Napięcie punktu środkowego gwiazdy mogło by być punktem odniesienia ale sterowniki BLDC nie wymagają jego fizycznego podłączenia.

    Ale to nie zmienia zasady działania, a zasadą jest to, że w wolnym uzwojeniu generuje się SEM, które zmienia swój znak i jest to określane w literaturze jako przejście przez zero (dosyć logicznie z resztą). To, że bez podłączenia tego punktu można się obejść, to już całkiem inna sprawa.

    Cytat:
    O maszynach synchronicznych radzę zwyczajnie poczytać.

    Również, ze zrozumieniem.
    BLDC nie jest silnikiem synchronicznym, co było już wiele razy tu powiedziane. Ja polecam zapoznać się z definicją silnika prądu stałego i rozwinąć sobie skrót BLDC (znowu ze zrozumieniem). Gdyby to nie pomogło, to porównać charakterystyki (obroty/obciążenie) silnika asynchronicznego, synchronicznego i prądu stałego. Gdybu nawet to nie pomogło, to podpowiem, że charakterystyka silnika prądu stałego jest dziwnie podobna do silnika asynchronicznego i jakoś mało podobna do synchronicznego...
  • Poziom 16  
    Kolega pewnie ma rację, że jestem tępy i głupi, skoro sugeruje mi to w każdym zdaniu.
    W całej swej głupocie powiem jedynie, że silnik asynchroniczny różni się tym od synchronicznego, że występuje zjawisko poślizgu, które objawia się mniejszą prędkością obrotową wirnika względem wirującego pola magnetycznego. Silnik, którego wirnik zawiera magnesy stałe nie spełnia powyższego, w związku z czym jest synchroniczny. System hallotronów, czy czujników SEM, służy wyłącznie utrzymaniu synchronizmu.
  • Poziom 43  
    Koledzy widzę, że nie wszyscy z Was rozumieją skrót i zasadę działania silników BLDC. Znaczy on Brushless Direct Current (Bezszczotkowy silnik prądu stałego) i jest to typem silnika synchronicznego !. Wiele firm produkuje specjalne sterowniki do tego tymu silników. Np. na stronie Atmela, jest opis sterownika na ATMega48.

    W silniku BLDC, uzwojony jest stojan, a za wytwarzanie pola magnetycznego wirnika odpowiedzialne są magnesy stałe. Mechaniczny układ komutatora został tutaj zastąpiony elektronicznym falownikiem.

    Pozwólcie że zacytuję:
    "BLDC motors are a type of synchronous motor. This
    means the magnetic field generated by the stator and
    the magnetic field generated by the rotor rotate at the
    same frequency. BLDC motors come in single-phase, 2-phase and
    3-phase configurations. Corresponding to its type, the
    stator has the same number of windings"