Piszę kod dla mikrokontrolera, który przyspieszy prędkość silnika krokowego tak szybko, jak to możliwe, dla przyrządu, który buduję, który przesuwa obrabiany przedmiot z jednej pozycji do drugiej wzdłuż liniowej szyny.
To pytanie nie dotyczy modyfikowania układu mechanicznego lub elektrycznego wokół silnika krokowego, ale po prostu szybkości, z jaką silnik krokowy jest przesuwany.
Biorąc pod uwagę żądaną prędkość, zwiększy prędkość silnika krokowego (a więc i prędkości przedmiotu obrabianego) ze stacjonarnego. (Silnik krokowy nie będzie miał żadnego sprzężenia zwrotnego do sterownika innego niż przełącznik na każdym końcu, aby mógł okresowo ustalać swoją pozycję i zatrzymać się, jeśli zostanie utracony / uzyska zbyt wiele kroków w jednym kierunku).
Dlatego będę musiał zaimplementować / napisać funkcję, która daje optymalną prędkość $ s $ (obroty na sekundę) w czasie $ t $ dla maksymalnego przyspieszenia. (Gdzie $ s (t = 0) = 0 $), który mikrokontroler użyje do określenia, jak szybko przyspieszyć obrabiany przedmiot / silnik krokowy.
Funkcja może wyglądać następująco:
$$ s = kt $$
Gdzie $ k $ jest zoptymalizowaną stałą, $ t $ jest w sekundach, $ s $ to obroty na sekundę.
Maksymalne maksymalne przyspieszenie zostanie określone przez wybranie wartości $ k $. Zostanie to określone przez eksperyment, a nie obliczenia.
Chcę wiedzieć:
- Jeden (lub więcej) wzorów, których mogę użyć. Próbowałem wtedy różnych rywali, zmieniając je, więc znajduję wartości, które powodują dobre przyspieszenie.
- Strategia określania tych stałych.
Na przykład. używając powyższego wzoru:
- zacznij od pewnej wartości $ k = k_0 $
- Próba # 1: Uruchom silnik z wartością $ k $, zaczynając od $ t = 0 $. Zapisz prędkość, z jaką silnik nie przyspieszył.
- Próba # 2: Podwójne $ k_0 $, nazwij to $ k_1 $. Powtórz krok 2.
- Próba # 3: Użyj połowy $ k_0 $ jako $ k _ {- 1} $. Powtórz krok 2.
- Jeśli $ k_1 $ daje najwyższą prędkość, podwoj ją jako $ k_2 $.
- Jeśli $ k _ {- 1} $ daje najwyższą prędkość, połowa to $ k _ {- 2} $.
- Jeśli $ k_0 $ daje najwyższą prędkość, a następnie $ k_1 $, weź średnią jako $ k_ {0,5} $
- Jeśli $ k_0 $ daje najwyższą prędkość, a następnie $ k _ {- 1} $, weź średnią jako $ k _ {- 0,5} $
- Powtórz krok 2.
- I tak dalej
Dalsze myśli
Myślę, że powyższa formuła może działać dobrze, zakładając, że istnieje odpowiednik koła zamachowego przymocowanego do silnika i:
- nie ma tarcia
- silnik wywiera stały moment obrotowy przy dowolnej prędkości
Czy to jest poprawne?
Podobnie zakładając:
- silnik i układ mają zerową masę / bezwładność
- silnik wywiera stały moment obrotowy przy dowolnej prędkości
- jedynym oporem wobec ruchu jest tarcie
Następnie silnik może natychmiast przyspieszyć do pełnej prędkości. (Więc $ k $ może być nieskończone). A jeśli jest bezwładność, zakładając, że siły tarcia są stałe (tj. Niezależne od prędkości), zakładając, że jak dotąd mam rację, to formuła jest nadal dobra; $ k $ będzie po prostu niższą wartością.
Ale to pozostawia pytania:
- Jaki jest typowy związek między prędkością silnika krokowego a momentem obrotowym? Wyraźnie odpada, gdy prędkość wzrasta, w przeciwnym razie nie byłoby ograniczenia prędkości. Tak więc wyraźnie nie będzie brany pod uwagę przez powyższy wzór. Badam ten link co idzie w wiele szczegółów, ale być może istnieją czynniki, które są bardziej znaczące niż inne, lub są bardziej podstawowe modele, które dają dobre przybliżenia.
- Jakie inne czynniki mogą być istotne, które nie mogłyby być modelowane w powyższym wzorze?