Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

manipulator na silnikach krokowych 3 stopnie swobody

baloonex 13 Nov 2007 11:48 1436 7
  • #1
    baloonex
    Level 10  
    mam do zrobienia biblioteke w C dla avr do obslugi 3 silnikow krokowych.

    obszar roboczy obraniczony x,y,z. 3 stopnie swobody.

    mam pytanie czy mikrokontroler bedzie musial rozwiazywac odwrotne zadanie kinematyki czy wystarczy jakis latwiejszy sposob.
    z moich przemyslen wynika ze wynikiem obliczenia powinnien byc wektor ktory pozniej trzeba przeliczyc na ilosc impulsow do poszczegolnych silnikow krokowych.

    czy moje przemyslenia sa dobre...
    prosze o propozycje rozwiazania tego problemu
  • #2
    Fyszo
    Level 37  
    Rozdziel na 2 moduły: sterowanie silnikami, oraz pozycjonowanie. Oczywiście bez sprzężenia zwrotnego cały projekt nie ma szans. Czyli musisz wyposażyć każdy element wykonawczy w układy wyznaczania pozycji - czujniki zbliżeniowe itp. Wtedy wszystko ci się nie rozjedzie w różne strony, tylko będzie trzymać zadaną pozycję.
  • #3
    bogdan_p
    Level 39  
    jeżeli jedynym warunkiem jest ograniczenie ruchu w płaszczyznach x.y,z to najprostsze rozwiązanie to krańcówki , którymi ograniczysz zakres ruchu w danej płaszczyźnie , natomiast jeżeli wymagania będą większe to jedna krańcówka ustalająca pozycję wstępną ( punkt odniesienia ) następnie liczenie kroków ( mało dokładne z powodu możliwości zgubienia kroków ) lub zastosowanie enkodera liczącego faktyczną ilość obrotów silnika
    doświadczalnie wyznaczysz ilość obrotów silnika potrzebną do wykonania ruchu w danej płaszczyźnie reszta to czysta matematyka , przy takim rozwiązaniu poza ograniczeniem pola ruchu masz możliwość dokładnego określenia pozycji
  • #4
    baloonex
    Level 10  
    dzieki za odpowiedzi..

    na razie jednak chcialbym sie skupic na napisaniu biblioteki do obslugi tych 3 silnikow. powiedzmy, jaka operacje matematyczna wykonac aby obliczyl mi wektor z punktu biezacego do zadanego no i jak ten wektor [x,y,z] przeksztalcic na odpowiednia ilosc impulsow do sterownika silnika.

    ps. czy czestotliwosc impulsow odpowiada za szybkosc krokow silnika ?
  • #5
    bogdan_p
    Level 39  
    wydaje mi sie że zbyt chcesz skomplikować sprawę zupełnie prostą teoretyczne założenie :
    silnik 7,5° / krok = 48 kroków na obrót
    układ mechaniczny przeniesienia napędu ( napęd śrubowy ) 1obr = 2 mm posuwu
    zakres ruchu 100 mm
    tak więc cały zakres to 100 / 2 = 50 obr lub 50 x 48 = 2400 kroków
    wystarczy że program w momencie startu wysteruje silniki tak aby znalazły sie w punkcie odniesienia ( sygnał z krańcówki ) teraz wystarczy tylko liczyć obroty lub kroki i znasz aktualną pozycję
    tak częstotliwość zmiany impulsów sterujących wpływa na szybkość , odsyłam do przyklejonego tematu o silnikach krokowych
  • #6
    Zdzicho
    Level 24  
    Możesz też według powyższych obliczeń "pojechać" silnikiem 2400 kroków i wiesz że jest na pozycji "0". Wykona tyle kroków ile pozwoli mechanizm a resztę "zgubi". I krańcówki nie potrzebne :D
  • #7
    baloonex
    Level 10  
    chyba doszedlem jak rozwiazac problem pracy jednoczesnej 3 silnikow i nie myslalem ze moze to byc to az takie proste. moj tok myslenia:

    poruszamy sie w 3 osiach z punktu a do punktu b:

    1 patrzymy jaka odleglosc na jakiej osi jest najwieksza
    2 obliczamy czas jaki potrzebuje silnik aby dotrzec to tego punktu (znamy predkosc silnika)
    3 wyliczamy dla pozostalych 2 silnikow odpowiednia predkosc poruszania dla tego samego czasu

    takim sposobem wszystkie 3 silniki zaczna prace w tym samym czasie i skoncza prace w tym samym czasie a droga bedzie najmniejsza.

    w jaki sposob regulujemy szybkosc silnika krokowego ? czy to zaley od czestotliwosci ? sygnal sterujacy jest prostokatny ?
  • #8
    bogdan_p
    Level 39  
    zapomnij o liczeniu drogi na czas , wystarczą opory mechaniczne , zgubienie kroków , zmiana częstotliwość sterowania i na nic Twoje obliczenia
    a co zrobisz jak silniki nie będą pracować równocześnie lub wykonywać przeciwne ruchy ?
    krańcówka i enkoder to najpewniejsze rozwiązanie
    Quote:
    w jaki sposob regulujemy szybkosc silnika krokowego ? czy to zaley od czestotliwosci ? sygnal sterujacy jest prostokatny ?

    to już jest lenistwo , wszystko masz na forum wystarczy kliknąć https://www.elektroda.pl/rtvforum/topic594106.html