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.

Komentarze

  • DZIĘKUJEMY! Doceniam czas, który spędziłeś, aby mi pomóc. ' przeniosę to do PLC i zobaczę, jak to działa. Nadal muszę znaleźć rozwiązanie dla j, kiedy znana jest delta T, ale prawdopodobnie dam radę. Tak trzymaj.
  • Oto kalkulator czasu PLC, jak wspomniałeś powyżej: 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) );
  • NIE, Twoja pierwsza formuła kretyn nie jest poprawny. Dokonałem edycji w odpowiedzi na poprawną formułę. Twoja ostatnia formuła (na czas) wydaje się poprawna. A propos, co to jest PLC?
  • Tak, masz rację. Usunąłem ten komentarz. Prawidłowy kod PLC do znalezienia Jerka powinien wyglądać następująco: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );
  • PLC to ' programowalny sterownik logiczny ', w zasadzie mikrokontroler lub komputer czasu rzeczywistego do użytku przemysłowego. Używam go ' do koordynowania i sterowania 4-osiowym robotem typu „pick and place”. Jestem ' bardzo blisko, ale coś jest gdzieś nie tak, ale formuły wydają się dobre.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *