Szukam równania, aby znaleźć czas potrzebny na przemieszczenie pozycji, biorąc pod uwagę znane $ V_ {max} $, (znane) stałe przyspieszenie, zwalnianie, szarpnięcie i przemieszczenie … oraz prędkość początkową równą 0.
Próbuję oszacować / obliczyć czas potrzebny na przebycie określonej odległości przez oś serwomotoru. Znając szacowany czas tego ruchu, mogę znaleźć szarpnięcie dla drugiej osi. W ten sposób wybieram optymalnie „małą” prędkość dla dowolnej oś ma mniejszą odległość ruchu, aby maksymalnie wykorzystać mój czas.
FYI, to jest portal robota XY typu „wybierz i umieść”.
Komentarze
- Zakładając, że $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, znalezienie t to to samo, co rozwiązanie równanie sześcienne
- Dzięki, ' zacznę od tego i zobaczę, co wymyślę wi th.
- Jeśli zgadzasz się z równaniem, które podałem powyżej, i jeśli masz problemy, postaram się udzielić pełnej odpowiedzi.
- Super. Dzięki. Więc … wykonuję ruch z parametrami:
- Ups. Repost: Robię ruch z parametrami: Vmax = 1000 mm / s, accel = 1000mm / s ^ 2, decel = 1000mm / s ^ 2, Jerk = 1000 mm / s ^ 3, a Displacement to 2000mm. Ustawiłem ten ruch na około 4,0 sekundy, więc to powinno być odpowiedź, ale muszę uzyskać równanie, które powoduje to dla różnych zmiennych wejściowych. (uwaga accel i decel niekoniecznie są takie same). Dzięki za przyjrzenie się temu, jestem trochę poza swoją ligą w matematyce.
Odpowiedź
I podam wynik mojego rachunku różniczkowego bez szczegółów:
Wynik to:
$$ \ Delta t = \ frac {\ Delta x} {V_ {Max}} + \ frac {1} {2} (\ frac {V_ {Max}} {a} + \ frac {a} {j}) + + \ frac {1} {2} (\ frac {V_ {Max}} {d } + \ frac {d} {j}) $$
gdzie:
$ \ Delta t $ to całkowity czas.
$ \ Delta x $ to całkowite przemieszczenie.
$ a $ to maksymalne przyspieszenie.
$ d $ to maksymalne przyspieszenie.
$ j $ to szarpnięcie.
$ V_ {max} $ to maksymalna prędkość.
Jako test, z twoimi wartościami:
$ \ Delta x = 2 m, a = 1 m / s ^ 2, d = 1 m / s ^ 2, j = 1 m / s ^ 3, V_ {max} = 1 m / s $, znajduję:
$$ \ Delta t = \ frac {2} {1} + \ frac {1} {2} (\ frac {1} {1} + \ frac {1} {1}) + + \ frac {1} {2} (\ frac {1 } {1} + \ frac {1} {1}) = 2 + 1 + 1 = 4 $$
co jest poprawnym wynikiem.
Jestem więc całkiem pewny wzór.
[EDYTUJ] Wzór na otrzymanie jerk to:
$$ j = \ frac {a + d} {2 (\ Delta t – \ large \ frac {\ Delta x} {\ large V_ {max}}) – V_ {max} (\ large \ frac {1} {a} + \ large \ frac {1} {d})} $$
[EDIT 2]
Zastosowany model to:
Faza 1: stała ( dodatni) szarpnięcie $ j $
Faza 2: stałe przyspieszenie $ a $
Faza 3: stałe (ujemne) szarpnięcie ($ – j $)
Faza 4: stała prędkość $ V_ {Max} $
Faza 5: stałe (ujemne) szarpnięcie ($ – j $)
Faza 6: stałe zwalnianie ($ d $)
Faza 7: stały (dodatni) szarpnięcie ($ j $)
W powyższych wzorach istnieją ograniczenia, a dokładniej czas trwania faz 2, 4, 6 musi bądź pozytywny:
$$ \ Delta t_2 = \ frac {V_ {Max}} {a} – \ frac {a} {j} \ ge 0 $$
$$ \ Delta t_4 = \ frac {\ Delta x} {V_ {Max}} – \ frac {1} {2} (\ frac {V_ {Max}} {a} + \ frac {a} {j}) – \ frac {1} {2} (\ frac {V_ {Max}} {d} + \ frac {d} {j}) \ ge 0 $$
$$ \ Delta t_6 = \ frac {V_ {Max}} {d} – \ frac {d} {j} \ ge 0 $$
Jeśli jedno z tych ograniczeń nie jest spełnione, oznacza to, że hipotezy przyjęte dla modelu są niespójne nt, więc potrzebujemy innego modelu.
fMoveTime_s := (fDeltaPos_M / fVMax_M) + (0.5)*( (fVMax_M / fAccel_M) + (fAccel_M / fJerk_M) )+ (0.5)*( (fVMax_M / fDecel_M) + (fDecel_M / fJerk_M) );
fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );