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

Jak sterować silnikiem krokowym, żeby szybko i dokładnie działał?

_jta_ 03 Lut 2018 16:01 6156 113
  • #91
    _jta_
    Specjalista elektronik
    Nie wiem czy to lenistwo czy co... Przykład pierwszy z brzegu
    [url=]http://tomeko.net/other/lpt_winxp/lpt_winxp.php?lang=pl[/url][/quote]


    Próbowałeś na to kliknąć? Przeglądarka zgłasza błąd - "The URL is not valid and cannot be loaded." - trzeba pisać "Using LPT port without kernel-mode driver". A poza tym nie widzę tam żadnej wzmianki o precyzyjnym określaniu czasu, co jest całkiem zrozumiałe - tą metodą precyzyjnego czasu się nie uzyskuje, co sprawdziłem, zanim napisałem tu cokolwiek na ten temat. Używałem PortTalk, wypróbowałem parę innych, ale były problemy z poprawnym działaniem, a PortTalk działał. Niestety precyzja czasu pozostawiała sobie dużo do życzenia.

    Pewnie dałoby się odmierzać czas z dużą precyzją, gdyby zablokować przerwania - ale byłoby to dość ryzykowne (po błędzie system by się wieszał, musiałbym wyłączać komputer i włączać go na nowo) i niewygodne (podczas operacji trwającej parę sekund komputer nie reagowałby na nic). Instrukcji CLI nie mógłbym wykonać (to wymaga ustawienia IOPL, i w opisie PortTalk nie ma nic o tym, by mógł on to zrobić), ale mógłbym wpisać maskę 0xff do portu 0x21 - może tego spróbuję, jeśli bez tego nie da rady uzyskać potrzebnych wyników...

    Z tego, co zbadałem (jakkolwiek na innym terminalu - T5710, on ma inny procesor, który tylko emuluje Pentium - ciekawostka, że zrobili tę emulację tak, że to działa z rozsądną szybkością) operacja I/O trwa około mikrosekundy - w tym czasie program napisany w C wykonuje wiele instrukcji, więc nawet nie ma specjalnie potrzeby pisania w asemblerze, czas i tak zajmują głównie instrukcje I/O (WAIT STATE).
  • IGE-XAO
  • #92
    adversus
    Poziom 28  
    Nikt nie da Tobie gotowca, podałem przykład. Użyj mózgu i googla i poszukaj, wysil się trochę to naprawdę nie boli.
  • #93
    _jta_
    Specjalista elektronik
    Pisałeś Port LPT do sterowania silnikami krokowymi jest idealny - jakoś nie widzę tej idealności, pokażesz ją? Czy tylko ja mam proponować rzeczywiste rozwiązania, a koledzy dyskutanci poprzestaną na tworzeniu pozorów, że podsuwają rozwiązania?

    A ja mam jeszcze pomysł z portem COM: podłączyć do niego układ (z paru tanich elementów, jak popularne tranzystory, oporniki, kondensator - w sumie będą kosztowały mniej od jednej wtyczki, a będą potrzebne dwie, DE-9F do sygnałów i USB-M do zasilania - łączny koszt z 5zł), który nie przepuści krótkich impulsów - tak, żeby bit startu sam nie przeszedł, dopiero z dodanym bitem danych B0='0'. I wtedy można przez port szeregowy wysyłać dane tak, by impulsy na sterownik dochodziły tylko wtedy, gdy się zechce i wpisze odpowiednie dane. Wtedy port szeregowy będzie "pilnować" szybkości wysyłania i buforować dane.
  • #94
    _jta_
    Specjalista elektronik
    Policzyłem czasy pomiędzy kolejnymi impulsami, przy których silnik z pełnym krokiem (bez dzielenia) najszybciej się rozpędzi. Oto lista kolejnych czasów: 1.266542328, .9701001565, .6662295346, .5413131761, .4680020073, .4182697753, .3816663201, .3532652332, .3303953371, .3114648193, .2954578099, .2816912835, .2696867253, .2590975455, .2496657017, .2411945746, .2335313575, .2265552501, .2201693221, .2142947710, .2088667835, .2038314946, .1991437194, .1947652332, .1906634510, .1868104005, .1831819152, .1797569936, .1765172846, .1734466736, .1705309428, .1677574941, .1651151186, .1625938060, .1601845852, .1578793888, .1556709394, .1535526535, .1515185579, .1495632192, .1476816827, .1458694191, .1441222795, .1424364543, .1408084391, .1392350034, .1377131640, .1362401614, .1348134376, .1334306196, .1320895000, .1307880246, .1295242780, .1282964716, .1271029335, .1259420987, .1248125007, .1237127629, .1226415927, .1215977739, .1205801625, .1195876794, .1186193074, .1176740857, .1167511067, .1158495107, .1149684852, .1141072594, .1132651028, .1124413217, .1116352577, .1108462847, .1100738067, .1093172572, .1085760962, .1078498086, .1071379040, .1064399135, .1057553900, .1050839054, .1044250515, .1037784370, .1031436876, .1025204448, .1019083651, .1013071190, .1007163909, .1001358776

    Jednostką czasu jest (moment_bezwładności/moment_siły). Dla momentu bezwładności wirnika Ir=0.35kg*cm2 i momentu siły 42 N*cm (tyle powinienem mieć przy prądzie 0.6A) wychodzi 9ms.

    Dla mikrokroków wyniki będą inne - jakkolwiek można użyć przybliżenia i nie liczyć funkcji eliptycznych (użyłem do tego Maple). Można zacząć od szybkiego podania takiej ilości impulsów, przez ile krok został podzielony (wtedy silnik da maksymalny moment siły), a potem podawać kolejne impulsy w takich odstępach czasu, żeby średnio utrzymywało się przesunięcie w fazie dające maksymalny moment siły - i wtedy czasy wychodzą (w arbitralnych jednostkach) takie: 2., 1.464101616, 1.008034338, .819366668, .708497378, .633249580, .577852970, .534864142, .500244560, .471586636, .447353502, .426511656, .408336954, .39230485, .37802476, .36519912, .35359656, .34303428, .33336549, .32447094, .31625247, .30862858, .30153081, .29490134, .28869080, .28285686, .27736292, .27217719, .26727190, .26262263, .25820785, .25400852, .25000763, .24619004, .24254219, .23905182, .23570794, .23250059, .22942069, .22646006, .22361117, .22086716, .21822175, .21566920, .21320415, .21082177, .20851749, .20628717, .20412691, .20203314, .20000250, .19803190, .19611840, .19425932, .19245216, .19069448, .18898412, .18731896, .18569707, .18411657, .18257578, .18107302, .17960675, .17817557, .17677804, .17541290, .17407890, .17277490, .17149974, .17025242, .16903194, .16783730, .16666768, .16552215, .16439993, .16330022, .16222230, .16116544, .16012898, .15911224, .15811466, .15713558, .15617450, .15523080, .15430404, .15339366, .15249922, .15162023, .15075629, .14990692, .14907178, .14825042, .14744250, .14664764, .14586551, .14509575, .14433806, .14359210, .14285762, .14213426, .14142180; pierwszy podany czas jest od początkowej grupy do pierwszego impulsu po niej.
  • #95
    elektronikq
    Poziom 24  
    jta napisał, że korzysta z bitów startu i stopu. Więc razem będzie 10 bitów a nie 8.
  • #96
    _jta_
    Specjalista elektronik
    Poprawka: jednostką czasu jest √(moment_bezwładności/moment_siły) - zabrakło znaku √.

    Spróbowałem numerycznej symulacji i wychodzą dziwne efekty - podanie impulsu do sterownika zmienia kierunek pola magnetycznego, a przez to położenie równowagi, w rezultacie zaczynają się oscylacje wokół nowego położenia równowagi. W trakcie ich trwania przychodzi następny impuls, zmieniając stan tych oscylacji - jak się odpowiednio trafi, to zostaną one zmniejszone, ale na ogół rosną.

    Czy ktoś ma konkretne dane tego silnika, które by umożliwiły zrobienie symulacji bliższej rzeczywistości?
  • #97
    PTNW
    Poziom 12  
    Witam,
    _jta_ napisał:
    Spróbowałem numerycznej symulacji i wychodzą dziwne efekty - podanie impulsu do sterownika zmienia kierunek pola magnetycznego, a przez to położenie równowagi, w rezultacie zaczynają się oscylacje wokół nowego położenia równowagi. W trakcie ich trwania przychodzi następny impuls, zmieniając stan tych oscylacji - jak się odpowiednio trafi, to zostaną one zmniejszone, ale na ogół rosną.

    Jeśli masz sterownik ustawiony w pracy mikrokroku to taka sytuacja ma często miejsce, szczególnie jak wał silnika nie jest obciążony.

    _jta_ napisał:
    A ja mam jeszcze pomysł z portem COM: podłączyć do niego układ (z paru tanich elementów, jak popularne tranzystory, oporniki, kondensator - w sumie będą kosztowały mniej od jednej wtyczki, a będą potrzebne dwie, DE-9F do sygnałów i USB-M do zasilania - łączny koszt z 5zł), który nie przepuści krótkich impulsów - tak, żeby bit startu sam nie przeszedł, dopiero z dodanym bitem danych B0='0'. I wtedy można przez port szeregowy wysyłać dane tak, by impulsy na sterownik dochodziły tylko wtedy, gdy się zechce i wpisze odpowiednie dane. Wtedy port szeregowy będzie "pilnować" szybkości wysyłania i buforować dane.

    Wydaje mi się, że bardziej "opłacalne" byłoby zastosowanie jakiegoś uC pomiędzy PC, a TB6600. Chociaż jakieś Arduino nano. Koszt ok 15 zł na znanym portalu aukcyjnym, a dużo korzyści(uczelnie chyba przez to do ruiny nie doprowadzisz ;) ). W mikrokontroler wbudujesz programową rampę do płynnego startu i hamowania oraz ewentualnie jak w przyszłości będzie taka potrzeba to bez problemu jakieś sprzężenie zwrotne łatwo się zrobi.
    W swojej pracy dyplomowej korzystałem z dwóch TB6600. Pracowały z sterownikiem PLC i tak szczerze mówiąc to średnio byłem z jednego zadowolony. Co jakiś czas silnik krokowy nie mógł na nim wystartować, pomimo tego, że to był malutki silniczek (0,7A), a z drugim sterownikiem nie miałem problemów na takim samym silniku. Podejrzewam, że zakupiłem podróbkę podróbki sterownika z najtańszych elementów:)
  • IGE-XAO
  • #99
    PTNW
    Poziom 12  
    Jest gotowa biblioteka, choć przyznam szczerze, że nie korzystałem z niej. Przygodę z Arduino dopiero zaczynam.

    http://www.airspayce.com/mikem/arduino/AccelStepper/

    Aczkolwiek osobiście skusiłbym się z eksperymentami doświadczalnymi własnej rampy (hamowanie). Można by rozpędzać silnik do określonych prędkości obrotowych, a następnie zmierzyć kąt hamowania (do zatzymania) - tu niestety niezbędny będzie enkoder. Ewentualnie mam taki pomysł (pewnie jest on zły i mi się oberwie :) ) ale można by jako sprzężenie zwrotne o prędkości kątowej podczas hamowania wykorzystać wsteczne SEM silnika krokowego robiąc jego pomiar na kanałach ADC uC.

    Pewnie teraz wykażę się ignorancją, ale chyba umknęło to mojej uwadze jakie prędkości obrotowe i dokładność pozycjonowania chcesz uzyskać?
  • #100
    _jta_
    Specjalista elektronik
    Tam są odnośniki do artykułu, według którego napisano tę bibliotekę, i jest on całkiem ciekawy - w każdym razie dużo lepszy od Applying acceleration and deceleration profiles to bipolar stepper motors z linku w #2.

    Pomiar SEM to nie prosta sprawa, zwłaszcza przy wolnych obrotach: na uzwojeniach jest napięcie szybkozmienne około 20Vp-p, a SEM wywołana ruchem silnika to będzie ułamek V (szacuję na 0.1V w pierwszym kroku) - ale kto wie, może z dobrym filtrowaniem uda się ją zmierzyć.
  • #101
    danthe
    Poziom 30  
    Kolego JTA , po prostu zrobię delikatne podsumowanie:

    1 - Zrezygnuj z portu COM - droga donikąd, nie uda Ci się uzyskać poprawnych ramp rozruchowych / hamowania.
    2 - LPT -> BUFOR TTL (na płytce stykowej, na pająka, jak sobie wymarzysz, oby dało na wyjściu 20 mA dla diody transoptora).
    3 - Program sterujący przez LPT - demo MACH3, może linuksowy EMC2, w których w opcjach ustalisz właściwe rampy, max prędkość etc.
    4 - Za pomocą Gcode ustalisz sobie kąt lub odległość ruchu bez zbędnych obliczeń.
    5 - "Specjalista elektronik" - to do czegoś zobowiązuje. Szczególnie przy sugestii "informatyka" Szukanie błędów w prądach silnika, sterowniku, czy silniku , gdzie większość kolegów z forum wypunktowała Ci podstawowy błąd w braku bufora w LPT, i bezsens użycia portu COM ... No błagam...
  • #103
    _jta_
    Specjalista elektronik
    Nie widzę sposobu, żebym mógł sprawdzić, że to będzie działać lepiej, niż dotychczasowa wersja, bez inwestowania (zakup elementów, czas na montowanie) w opisany sprzęt. Ja chcę mieć rozsądny algorytm, bez tego żaden sprzęt nie będzie dobrze działać, a nie widzę, by ktoś na ten temat coś doradził. Algorytm i wyliczenie parametrów są tu sprawami podstawowymi, wszystkie inne są drugorzędne - tymczasem koledzy zajmują się tymi drugorzędnymi, a istotne pomijają.

    Inżynier, który budował układ mechaniczny, zmniejszył moment bezwładności poprzez wycięcie otworów w obracanej tarczy (tak, że chyba więcej ma otworów, niż pozostałego materiału). Jakoś działa, z wystarczającą szybkością, ale dość mocno trzęsie - i nie wiem, czy to się da jakoś poprawić. A może ktoś tu zna sposób na zbadanie (sposób wykonania odpowiednich pomiarów i analizy wyników), czemu tak trzęsie (wada silnika, sterownika?) i czy to można wyeliminować?
  • #104
    Pittt
    Poziom 31  
    _jta_ napisał:
    Jakoś działa, z wystarczającą szybkością, ale dość mocno trzęsie - i nie wiem, czy to się da jakoś poprawić.


    Jaka jakość sterowania, taka kultura pracy napędu. Cztery strony masz to tłumaczone.
  • #105
    TvWidget
    Poziom 33  
    _jta_ napisał:
    czemu tak trzęsie (wada silnika, sterownika?) i czy to można wyeliminować?

    Wielokrotnie były tu wskazywane gotowe rozwiązania sprawdzone w tysiącach zastosowań. Wymyśliłeś swoje, które nie ma prawa dobrze działać. Co potwierdziłeś doświadczalnie.
  • #106
    _jta_
    Specjalista elektronik
    Jak widzę, koledzy wierzą w magię gotowych rozwiązań - a ja nie mam podstaw do opinii, że one działają lepiej, ani przesłanek do wyboru któregoś z nich jako działającego lepiej. A dla mnie technika to sprawa wiedzy, a nie magii. Dlatego dyskutujemy już czwartą stronę i nie widać, byśmy zbliżali się to porozumienia.

    Niestety wiedza wskazuje na to, że takie samo trzęsienie będzie występowało z wieloma, a może nawet wszystkimi proponowanymi rozwiązaniami. Tylko po prostu nikt nie zwracał na to uwagi, więc nikt nie jest świadomy występowania takiego problemu. Ale tak już jest, jak się wierzy w magię, a nie używa rozumu.
  • #107
    danthe
    Poziom 30  
    To nie magia gotowych rozwiązań, to magia doświadczenia, wiedzy i sprawdzonych rozwiązań. Nawet jak byś gołą d##ą na jeża usiadł, to przez port COM nie uda Ci się wygenerować płynnie rosnącej czy malejącej częstotliwości. Jak byś nie próbował to będą powstawały jakieś drgania, szarpnięcia etc. Chyba że uda Ci się przejąć kontrolę nad linią tx bezpośrednio i programowo będziesz "machał" portem.
    Zaznaczam że masa amatorskich obrabiarek, frezarek czy tokarek CNC jest sterowana z portu LPT, za pomocą EMC2 lub MACH, i ich konstruktorzy nie mają problemu z poprawnym działaniem więc -
    Cytat:
    ja nie mam podstaw do opinii, że one działają lepiej, ani przesłanek do wyboru któregoś z nich jako działającego lepiej
    - w przeciwieństwie do setek osób zajmujących się tematem, nie zadałeś sobie nawet trudu by to sprawdzić. Jakie masz podstawy do opinii że Twoje rozwiązanie będzie działać lepiej? Popełniłeś błąd nie dodając buforów pomiędzy portem LPT a sterownikiem silnika krokowego, więc najprawdopodobniej prąd wyjściowy jest za mały aby zapalić diodę transoptora. Nie mając o tym pojęcia podłączyłeś się do portu COM i zaczęło działać "lepiej"

    IEEE 1284-2000 standard says this about a Level 1 Device:
    d) The high-level output voltage shall be at least 2.4 V at a source current of 0.32 mA.

    Port com za to może dostarczyć nawet 45mA.

    Więc przez własną ignorancję odrzuciłeś lepsze, zwykle stosowane rozwiązanie, i z niewiadomych mi powodów upierasz się jak osioł że masz rację.
  • #108
    _jta_
    Specjalista elektronik
    Drgania występują na poziomym odcinku rampy, kiedy wysyłam stałą częstotliwość. A linię TxD (tak się poprawnie nazywa, nie TX) jestem w stanie bezpośrednio sterować, tak samo jak LPT, a nawet prościej, bo nie potrzebuję specjalnego programu umożliwiającego dostęp do portu. Kolego danthe - teoretyzujesz nie znając faktów, nie tylko tych.

    w przeciwieństwie do setek osób zajmujących się tematem, nie zadałeś sobie nawet trudu by to sprawdzić

    Sprawdziłem na tyle, na ile mogłem, w ramach ograniczeń, jakim podlegam - nie dysponuję np. nieskończoną ilością czasu, ani zdolnością jasnowidzenia, żeby bez opisu wiedzieć, co się kryje za tym, czy innym rozwiązaniem. A niestety opisy często pozostawiają sobie bardzo wiele do życzenia.

    Popełniłeś błąd nie dodając buforów pomiędzy portem LPT a sterownikiem silnika krokowego, więc najprawdopodobniej prąd wyjściowy jest za mały aby zapalić diodę transoptora. Nie mając o tym pojęcia podłączyłeś się do portu COM i zaczęło działać "lepiej"

    Zapewniam, że zanim wypróbowałem port COM, uzyskałem działanie z podłączeniem do portu LPT. Tyle, że z portu LPT działało dużo gorzej - a myślałem, że będzie lepiej.

    ich konstruktorzy nie mają problemu z poprawnym działaniem

    Najwidoczniej niedokładnie sprawdzili. Ponoć psychiatrzy mawiają, że nie ma ludzi zdrowych psychicznie - są tylko niedokładnie zdiagnozowani. I pewnie nie ma w pełni sprawnych urządzeń...
  • #109
    danthe
    Poziom 30  
    Cytat:
    Impulsy wysyłam przez port szeregowy komputera PC (UART - czyli każdy wysłany bajt daje bit startu, 8 bitów danych, bit stopu).


    Czyli nie zmieniasz programowo stanu linii TxD, tylko zwalasz to na sprzęt - interface UART, więc tak naprawdę to nie masz nad tym precyzyjnej kontroli.

    Jaki to problem kupić kostkę np. 74HC245 za hmm 3zł?
    Jaki to problem pobrać ze strony http://linuxcnc.org gotową darmową dystrybucję LinuxCNC 2.7.12 (GNU - GPL2)?
    Jaki to problem skonfigurować EMC2 w środowisku graficznym? Czasy gdy linux kojarzył się tylko z konsolą dawno minęły.
    Jaki to problem przyznać się do tego że nie umiem oprogramować LPT aby dał stabilny sygnał na wyjściu? Podpowiem - ja też nie wiem, i dla tego korzystam z MACH lub EMC2.

    Nie wykluczam że może być uszkodzony sterownik (ach te chińczyki), że źle jest dobrany prąd, napięcie zasilające, czy może silnik, ale jak można dyskutować gdy kolega JTA broni się jak wściekły przed choćby prostym generatorem na NE555, który to mógłby w góra 10 minut polutować na pająka i sprawdzić kręcąc potencjometrem jak ten silnik przyspiesza / hamuje.

    Z postów kolegi JTA wynika że ma on wielki problem z zainwestowaniem kilku - kilkunastu zł w projekt. Godzina mojego czasu też sporo kosztuje, ale nie robię z tego problemu udzielając się na forum.

    Na tym zakończę próby pomocy, bo niestety teoretyk z 39-cio letnim stażem jak dotąd nie skorzystał praktycznie z żadnej naszej porady, brnąc ślepo i uparcie we własne teorie, i upierając się że wina leży po stronie sterownika, to prądu, czy podziału kroków, nie dopuszczając możliwości że wina leży po stronie sygnału sterującego.

    Pozdrawiam - Daniel (praktyk z ca. 25-cio letnim stażem).
  • #110
    pukury
    Poziom 35  
    Witam.
    Wszyscy jakoś chcą pomóc przecież.
    Więc - " włączyłem myślenie praktyczne ".
    Zastosowałem sterownik z linku - do tego silnik 4V/2A ( przypadkowy ) i sterownik ( zabytkowy ) na L297/ L298.
    Na osi zamocowałem koło od bębna z pralki automatycznej.
    Na kole przymocowałem transformator - tak z 1kG.
    Całość kręci i jakoś nie wpada w rezonans.
    Do silników krokowych stosuje się tłumiki rezonansu.
    Tak więc - bez wielkich teorii i rozmyślań można to zrobić.
    Co dopiero na takim sporym silniku ja w omawianej konstrukcji - oczywiście pod warunkiem zastosowania odpowiedniego zasilania i źródła sygnału.
    Ale jak widać konstrukcja została zaprojektowana bez analizy możliwości działania.
    Zresztą przy tak dużym podziale kroków pojawią się inne problemy.
    Ale to już inna sprawa - do analizy bez " działań pozornych".
    Pozdrawiam.
  • #111
    _jta_
    Specjalista elektronik
    Rozumiem, że wypróbowałeś dwa różne sterowniki - na ile różne, na ile ta różnica wpływała na działanie? To by dało podstawę do jakiejś oceny, jak typ sterownika wpływa na działanie.

    U mnie też jakoś się kręci. Nie wykluczam, że i to, że się kręci znacznie szybciej, niż się spodziewałem (uzyskuję ponad 30% szybkości, jaką miałem bez obciążenia, choć moment bezwładności obciążenia jest około 50X większy od momentu bezwładności samego silnika), i to, że przy tym trzęsie, ma wspólną przyczynę, i jest nią poślizg na połączeniu silnika z obciążeniem - to działa tak, że jak sterownik dostanie impuls i poda prąd na silnik, to silnik szybko wykonuje ruch, a obciążenie zostaje lekko popchnięte przez tarcie, które jest za małe, by wymusić ruch obciążenia bez poślizgu - ale tylko w pewnym zakresie, w którym jest luz (i w ramach tego luzu działa tylko to tarcie); jak dochodzi do końca zakresu, to silnik poprzez zamocowanie uderza w obciążenie tak, że ono robi szybszy ruch, wyprzedza ruch silnika... i znowu jest luz, trzeba następnych kilku impulsów, żeby się skończył. Jakimś modelem tego mogłoby być pudełko z płaskim dnem, na którym leży jakiś przedmiot, i to pudełko przesuwamy uderzając w nie - przedmiot w środku na skutek bezwładności ślizga się, dopóki nie dojdzie do brzegu pudełka, wtedy przy następnym uderzeniu dostaje solidnego "kopa" i przesuwa się daleko do przodu; w ruchu samego pudełka są tylko małe skoki, w ruchu przedmiotu wewnątrz dużo większe. Jeśli rzeczywiście mechanika tak działa (konstrukcja połączenia jest taka, że to jest możliwe, jeśli klin łączący wał silnika z obciążeniem ma luz), to niewiele można poprawić poprzez sterowanie - najwyżej zrobić jak najmniejszy krok (podział 1/32), wtedy energia "kopa" będzie mniejsza. Znacznie lepiej byłoby poprawić połączenie wału silnika z obciążeniem - powinno być sprężyste, a jednocześnie dawać tłumienie, i trzeba odpowiednio dobrać współczynniki sprężystości i tłumienia, kiedyś pokazywałem studentom, jak się wylicza tego typu układy, ale na czymś zupełnie innym - na tłumieniu wahań wskazówki miernika, co jest nieco prostsze. I można wykryć taką sytuację mocniej dokręcając śruby na połączeniu wału silnika z obciążeniem - zmiana zachowania układu pokaże, że występował poślizg.
  • #112
    _jta_
    Specjalista elektronik
    Co do trzęsienia, to sprawdziłem, że jak robię powoli pojedyncze kroki, to one są różne - i te różnice są naprawdę duże, mogą powodować obrót z trzęsieniem. Nie wiem, czy to wada sterownika, czy silnika, ale na pewno nie sposób komunikacji ze sterownikiem jest tu wyłącznym winowajcą (a i pewnie nie głównym). I chyba nieprędko będę mógł sprawdzić, czy to wina sterownika, czy silnika, bo układ w najbliższym czasie będzie używany (z tego powodu wczoraj zmieniono montaż z prowizorycznego na trwały, trudno w nim coś zmienić) i nie mogę z nim eksperymentować. Może kiedyś, jak układ będzie miał dłuższy przestój, a ja trochę czasu. Albo jakbym miał miernik pozwalający zmierzyć prąd w izolowanym przewodzie uzwojenia silnika.
  • #113
    pukury
    Poziom 35  
    Witam.
    Jak masz zastosowany podział 1 / 16 to silnik " chce zrobić " 1 / 16 kroku.
    Więc " celuje " na takie położenie.
    Z kolei jak wyłączysz napięcie - lub ENA ( różnie piszą - enable ) to silnik poleci do pierwszego pełnego kroku - w prawo lub w lewo - że tak powiem.
    Więc lepiej tego nie wyłączać - niech silnik będzie pod prądem.
    A że kroki są różne - tak już jest z silnikami krokowymi - błąd pozycjonowania jest dość spory.
    Na cały obrót zrobi 200 kroków - ale między krokami może być różnica.
    Zależy od jakości silnika.
    Ale skoro działa to chyba może być.
    Dlatego do dokładnego pozycjonowania - serwa - albo silnik krokowy z enkoderem ( takie niby serwo ).
    Pozdrawiam.
  • #114
    _jta_
    Specjalista elektronik
    Więc lepiej tego nie wyłączać - niech silnik będzie pod prądem.

    Nie wyłączam. Być może błąd pozycjonowania jest zwiększony przez to, że silnik jest zasilany prądem dużo mniejszym od nominalnego. Ale skoro jakoś działa, a użytkownicy nie narzekają, że trzęsie, to przynajmniej na razie tak zostanie. Może jeszcze będą narzekali, wtedy się rozważy kupno lepszego kontrolera - ale do najbliższego wyjazdu na pomiary (termin jest ustalony i nie można go zmienić) już się tego nie zdąży zrobić.