Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

STEROWANIE silnikiem DC przez uP

tmpat 16 Lis 2003 17:45 5590 22
  • #1 16 Lis 2003 17:45
    tmpat
    Poziom 14  

    Problem jest następujący:

    Musze zrobić prosty sterownik silnika stałoprądowego ale z możliwością regulacji kąta przesówu, silnik sprzeżony z przetwornikiem obrotowo-
    impulsowym.

    Silnik jest sterowny w taki sposób, że mozna sterowąć kierunkiem przepływu prądu przez cewki (mostek z 4 MOSFET'ów).

    Założenie jest takie że po zadaniu pewnej ilośći kroków silnik to robi ale w praktyce tak nie jest :(

    Ale od początku, jak silnik ma stac w miejscu to przez cewke płynie prąd raz w jedną raz w drugą strone (prostokąt o tym samym wypełnieniu) i to ładnie działa. Przesów ma być realizowany w taki sposób że na krótki okres czasu zostanie zmienione wypełnienie przebiegu sterującego, ale to już nie działa, silnik nie wykonuje żadnych kroków jedynie lekko drgnie i wraca na swoje miejsce. Sterownie silnika z częstotliwością około 1kHz.

    Pytanie : Czy możliwe jest takie sterowanie stałoprądowca aby udawał krokowy ?? jeżeli nie to dlaczego, żeby zrezygnować z DC musze mieć jakieś dobre argumenty, bo to że łatwiej na krokowcu to nie wystarczy:)

    POZDRAWIAM :multi:
    patryk

  • #2 16 Lis 2003 18:18
    pawelradomsko
    Specjalista Automatyk

    Z Twojego opisu wniąskuję, ze usiłujesz wykonać serwomechanizm. Zastosowanie w takim wypadku silnika prądu stałego jest ekonomicznie uzasadnione, jednak należy pamiętać o bezwładności układu: zadajnik PWM-silnik-przetwornik. Jeżeli w tym łańcuchu występują zbyt duże opóźnienia w pętli czasu to cały zespół będzie działał tak jak opisujesz. Należy sprawdzić procesor i oprogramowanie pod względem zoptymalizowania długości pętli programowej. Nie jest to sprawą prostą- zespoły wielkich firm rozwiązują te problemy na profesjonalnym poziomie i posiadając dostęp do niezłych laboratoriów w kilka miesięcy.
    Jeżeli możesz zmienić Twój wybór na kierunek silników krokowych to są one niebywale prostsze do wysterowania. Sugerowałbym silnik czterofazowy.
    Powodzenia: Paweł

  • #3 16 Lis 2003 19:35
    TOMSON
    Poziom 19  

    A nie mógłbyś zastosować serwomechanizmu i układy sterującego serwem zrobionym na NE555 lumNE556 sterowanie czysto analogowe bardzo proste

  • #4 16 Lis 2003 20:34
    tmpat
    Poziom 14  

    Niestety musze zastosować silnik stałoprądowy bez żadnych zewnętrznych ukłądów sterujących w postaci firmowych sterowników itp.. Układ ma za zadanie jedynie zaprezentować możliwości sterowania silnika stałoprądowego połaczonego z przetwornikiem i to wszystko bez szczególnego zastosowania.

    PONAWIAM PYTANIE : czy jest możliwe wykożystanie zwykłaego silnika DC wydłubanego z radia samochodowego podobnie jak krokowego??

    Dziękuje za wszystkie podpowiedzi :multi:
    patryk

  • #5 17 Lis 2003 19:55
    serafo
    Poziom 12  

    tmpat, to co piszesz jest jak najbardziej mozliwe, ale musisz napisac sobie regulator na uP, najlepiej prosty reg PI lub PID, ale tak jak z nastrojeniem PI nie bedziesz mial problemow to D cie zgnebi.
    Skoro masz silnik z enkoderem to potrzebujesz jeszcze odpowiednio wydajnego uP. Ja cos takiego realizowalem na MSP430 i dzialalo dosc dobrze, ale to bylo na zal i nie przylozylem sie do strojenia :)
    Poczytaj sobie zrodla z zalacznika

  • #6 18 Lis 2003 22:12
    euromatic
    Poziom 21  

    Moim zdaniem jest to praktycznie niewykonalne.
    po to człowiek wymyślił silniki krokowe. Silnik o którym piszesz ma pewnie 3 uzwojenia , policz sobie więc jaki kąt obróci sie po przyłożeniu napięcia, jest to praktycznie nie do opanowania.pomijam grzanie się silnika

  • #7 19 Lis 2003 06:34
    Jarik
    Poziom 16  

    Nie masz szans na zrobienie takiego układu, niestety. Jedynie co można ewentualnie zrobić to pobawiś się w mechanika. Tzn. enkoder powinien być być połączony z silnikiem za pomocą przekładni o odpowiednim przełożeniu ( zależnym od wymaganej dynamiki ruchu). Wtedy masz sytuację taką że encoder obrócisz o pewien pożądany kąt ale silnik w tym momencie wykonuje kilka lub kilkadziesiąt obrotów, a nad tym jest już łatwiej zapanować.

  • #8 19 Lis 2003 12:09
    serafo
    Poziom 12  

    co wy za pierdoly wygadujecie, czy Jarik albo euromatic mieliscie taki silnik na warsztacie?
    ja sterowalem i potwierdzam ze sie da! warunek - ENKODER o odpowiedniej rozdzielczosci!

  • #9 19 Lis 2003 13:36
    tmpat
    Poziom 14  

    Serafo jak masz jakieś propozycje to będę wdzięczny...... Wszystko sterowne z AT89c51

    POZDRAWIAM :multi:
    patryk

  • #10 19 Lis 2003 18:10
    szymtro
    Poziom 30  

    Czy w tym sterowniku do silnika mozesz zamiast wlaczac napiecia naprzemiennie podac naprzyklad dwie masy na koncowki silnika(albo dwa dodatnie). Jak duzy jest to silnik(srednica rotora) i jaka ma moc. Nastepnie czy napedzasz bardzo wymagajace obciazenie czy silnik moze pracuje luzem?
    Zamiast sterowac naprzemiennie mozna caly czas hamowac silnik(dwa konce do masy albo do plusa) i na bardzo krotkie momenty jeden koniec przelaczac na przeciwny(do momentu osiagniecia zadanego polozenia). Mam na mysli taka sytuacje.
    1. silnik jest hamowany
    2. nastepuje zmiana zadanej pozycji
    3. silnik sterujemy naprzemiennie(troche wlaczony +/- i troche wylaczony -/-) i tak powiedzmy ze 100 razy na sekunde.
    4. impuls z enkodera ze juz mamy zadana pozycje
    5. przelaczamy sterowanie tylko na funkcje "hamowanie" czyli -/- lub +/+

    Hyba ten pomysl nie jest najlepszy ale jak ktos ma jakies laboratorium to mozna sprobowac.

  • #11 19 Lis 2003 19:20
    euromatic
    Poziom 21  

    Zastanawiam się Panowie , czy taki układzik może wykonywać jakąś sensowną czynność i czy silnik będzie szybszy od impulsów enkodera.
    Swojego czasu miałem za zadanie opracować płynne sterowanie sprzęgła (firmy Lenze) i po wielu tygodniach okazało się ze zwłoka meczaniczna sprzęgła jest zbyt duża, żeby można było nim sensownie sterować.
    Proponowany przez ciebie silnik także będzie zbyt wolny.
    Pozdrawiam

  • #12 19 Lis 2003 19:34
    Marek81
    Poziom 19  

    Myślę, że jest to możliwe. Czy ktoś z Was zwrócił uwagę jak pracują nowoczesne maszyny do szycia? Tam silnik może obracać się bardzo powoli, a po zatrzymaniu, wałek zawsze ustawia się w jednej pozycji. Tak się składa, że od paru lat naprawiam elektronikę takich maszyn (również hawciarek i overlocków). Są tam stosowane normalne silniki komutatorowe (na 220V lub ostatnio na 30V) mocy do 100W. Układ sterowania takim silnikiem, to po prostu PWM. Sygnał sterujacy z procesora maszyny wychodzi, porzez transoptor (przy 220V) na tranzystor MOSFET, w drenie którego włączony jest silnik. Procesor steruje prędkością obrotową zmieniając wypełnienie impulsów. Silnik zatrzymuje się przy wypełnieniu 0%.
    Jeśli Twój silnik obracał by się bardzo wolno, to przy sprzężeniu z przetwornikiem impulsowym, mógłbyś go zatrzymywać dosyć precyzyjnie. Jeśli by to nie wystarczyło, można dodać hamowanie silnika (poprzez zwieranie - tzw. hamowanie dynamiczne).

    Pozdrawiam.

  • #13 19 Lis 2003 19:51
    serafo
    Poziom 12  

    tmpat napisał:
    Serafo jak masz jakieś propozycje to będę wdzięczny...... Wszystko sterowne z AT89c51


    qrde, ciezko bedzie... jak juz pisalem, ja robilem to na MSP430, a to jest uP 16-to bitowy, pokusil bym sie o paisanie czegos takiego na AVRze z dosc szybkim zegarem, ale na zwyklym 51 obawiam sie ze bedzie problem
    po pierwsze jesli chcesz miec tylko uP bez peryferii to 51 na 100% nie nadazy zliczac impulsow z enkodera, czyli bedziesz musial zastosowac zewnetrzny licznik
    po drugie realizacja PI na arytmetyce staloprzecinkowej to bedzie nie lada wyzwanie, a zmienny przecinek na 51 moze nie dac rady zmiescic sie w czasie
    pomysl nad zmiana procka na jakiegos ATmega, chyba ze jestes dobry z lutowania, to mozesz w TME MSP430 kupic a program juz masz :)

  • #14 19 Lis 2003 20:00
    serafo
    Poziom 12  

    euromatic napisał:
    Zastanawiam się Panowie , czy taki układzik może wykonywać jakąś sensowną czynność i czy silnik będzie szybszy od impulsów enkodera.


    poszukaj w necie informacji o robocie wspinajacym sie o nazwie 'Safari' zbudowanym na Politechnice Poznanskiej - wlasnie takie sterowanie o jaim pisze jest tam zastosowane. Elementem wykonawczym sa silniki Maxona z enkoderami 500 imp/obrot z przekladniami planetarnymi

    euromatic napisał:
    Swojego czasu miałem za zadanie opracować płynne sterowanie sprzęgła (firmy Lenze) i po wielu tygodniach okazało się ze zwłoka meczaniczna sprzęgła jest zbyt duża, żeby można było nim sensownie sterować.


    podejrzewam, ze zabraklo ci nieco teorii. ide o zaklad, ze jesli dobrac odpowiedni regulator to dalo by sie coz sensownego z tym zrobic

    euromatic napisał:
    Proponowany przez ciebie silnik także będzie zbyt wolny.


    zdefiniuj prosze pojecie zbyt wolny

  • #15 19 Lis 2003 20:42
    euromatic
    Poziom 21  

    nie wiem czy wiesz jak wygląda sprzęgło czy hamulec
    firmy Lenze to nic innego jak dwie tarcze sklejane ze sobą siłą pola elektromagnetycznego
    krótki impuls nie miał energii żeby je skleić a zbyt duży powodował zablokowanie sprzęgłą. ponowne zwolnienie trwało zbyt długo( magnetyzm szczątkowy i bezwładność)
    i nie pomagało zastosowanie sprzęgu z pozycjonerem.
    co do silnika (zwykłego komutatorowego) to ma on moim zdaniem zbyt słabe magnesy, za dużą masę wirnika. Chcesz stosować bardzo szybki procesor do tak powolnego silnika?
    przecież żeby był sens w zastosowaniu takiego procesora to silnik musiałby mieć małą bezwładność i natychmiast reagować na stop i start
    a tego to on nie zrobi bo zwykłych praw fizyki nie przeskoczysz.
    moim zdaniem zrobienie tego to "przerost formy nad treścią"

  • #16 19 Lis 2003 22:51
    tmpat
    Poziom 14  

    Dzięki za wszystkie wypowiedzi.. zebrałem wszystkie wiadomości których mi dostarczyliście nieco popytałem sam i takie z tego wnioski.

    Co do sterowania to bedzie to wyglądało tak jak dotychczas, mój problem polegał na tym że wybrałem złą kolejnośc pisania programu zostawiając obsługę encodera na sam koniec.. A TO BYŁ BŁĄD !!!! :( no ale cóż teraz będzie to wyglądało tak jak trzeba, mam taka nadzieje:)

    Silnik sterowany jak wcześnie z tym że dzieki sprzężeniu z encodera bede kontrolował jego położenie, obawiam się jedynie bezwładności silnik ale to wszystko okaże sie po weekendzie jak siąde do dalszego pisania programu. Jakby co to dam znać, jedze raz DZIĘKUJE za wszystkie posty.

    POZDRAWIAM :multi:
    patryk

  • #17 20 Lis 2003 22:14
    bolek
    Specjalista - oświetlenie sceniczne

    moze nie wniose za wiele do tematu ale tak sterowane są silniki od głowic w drukarch HP.
    można "podgladnąć" przebiegi na silniku- moze to cos pomoże

  • #18 22 Lis 2003 22:39
    tmpat
    Poziom 14  

    Jestem po pierwszych testach i sprawa wygląda tak:

    Silnik potrafi już zatrzymac sie miedzy tymi sześcioma punkami które wyznacza jego budowa jednakże nie precyzyjnie wyglada to dość chaotycznie domyslam się że mój AT89c51 z 12MHz kwarcem to dużo za mało i za wolno dlatego mam następne pytanie czy bawić się dalej na procku czy raczej obsłuzyć to przy pomocy jakiś układów kombinacyjno-sekwencyjnych.

    POZDRAWIAM :multi:
    patryk

  • #19 23 Lis 2003 12:27
    serafo
    Poziom 12  

    tmpat napisał:

    Silnik potrafi już zatrzymac sie miedzy tymi sześcioma punkami które wyznacza jego budowa jednakże nie precyzyjnie wyglada to dość chaotycznie domyslam się że mój AT89c51 z 12MHz kwarcem to dużo za mało i za wolno dlatego mam następne pytanie czy bawić się dalej na procku czy raczej obsłuzyć to przy pomocy jakiś układów kombinacyjno-sekwencyjnych.


    jak realizujesz zliczanie impulsow i obliczenia? moze musisz pokombinowac z odblokowywaniem przerwan

  • #20 23 Lis 2003 13:03
    Nemo
    Poziom 31  

    Może pomoże wymiana kwarcu na 24MHz? Zyskasz nieco na szybkości i może wystarczy.
    Pozdrawiam.

  • #21 23 Lis 2003 13:21
    tmpat
    Poziom 14  

    nie no mysle że nawet 24MHz to za mało, kod starałem się optymalizować jak tylko się da.

    POZDRAWIAM :multi:
    patryk

  • #22 23 Lis 2003 15:42
    Nemo
    Poziom 31  

    A overclocking? Może wytrzyma nawet 36 MHz, albo i 48? Ostatnio w EP było kilka projektów z przetaktowanymi mikrokontrolerami. Tyle, że były to raczej AVR'y. Ale to ta sama technologia półprzewodnikowa.
    Pozdrawiam.

  • #23 24 Lis 2003 20:48
    tmpat
    Poziom 14  

    Myśle że nawet zwiększenie prędkości o 4x to za mało w tym przypadku i mimo że nie jestem zwolenikiem rozbudowy srzętu zamiast programu to chyba najprostrzym rozwiązaniem bedzie taki krok.

    POZDRAWIAM :multi:
    patryk

TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo