Caut o ecuație pentru a găsi timpul necesar pentru o deplasarea poziției să se întâmple, având în vedere $ V_ {max} $ cunoscut, o accelerație constantă (cunoscută), decelerare, smucire și deplasare … și o viteză inițială de 0.
Încerc să estimez / calculați timpul necesar unei axe servo-motor pentru a parcurge o anumită distanță. Odată ce știu timpul estimat al acelei mișcări, pot rezolva pentru jerk pentru cealaltă axă. În acest fel, aleg o viteză optimă „lentă” pentru oricare axis are o distanță de mișcare mai mică pentru a profita la maximum de timpul meu.
FYI, acesta este un port-robot XY de tip pick and place.
Comentarii
- Presupunând $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, găsirea t este același lucru cu rezolvarea unui ecuație cubică
- Mulțumesc, voi ' voi începe cu asta și voi vedea ce vin th.
- Dacă sunteți de acord cu ecuația pe care o dau mai sus și dacă aveți probleme, voi încerca să vă dau un răspuns complet.
- Cool. Mulțumiri. Deci … fac o mișcare cu parametri:
- Hopa. Repost: fac o mutare cu parametrii: Vmax = 1000 mm / s, accel = 1000mm / s ^ 2, decel = 1000mm / s ^ 2, Jerk = 1000 mm / s ^ 3, iar deplasarea este de 2000mm. Am programat această mișcare la aproximativ 4,0 secunde, deci acesta ar trebui să fie răspunsul, dar trebuie să obțin ecuația care rezultă în aceasta pentru diferite variabile de intrare. (nota accel și decel nu sunt neapărat aceleași). Vă mulțumim că ați analizat-o, sunt puțin în afara ligii mele în materie de matematică.
Răspuns
vă dau rezultatul calculului meu fără detalii:
Rezultatul este:
$$ \ 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}) $$
unde:
$ \ Delta t $ este timpul total.
$ \ Delta x $ este deplasarea totală.
$ a $ este accelerația maximă.
$ d $ este deccelerarea maximă.
$ j $ este ciudat.
$ V_ {max} $ este viteza maximă.
Ca test, cu valorile dvs.:
$ \ Delta x = 2 m, a = 1m / s ^ 2, d = 1m / s ^ 2, j = 1 m / s ^ 3, V_ {max} = 1m / s $, găsesc:
$$ \ 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 $$
care este rezultatul corect.
Deci sunt destul de încrezător în formula.
[EDITARE] Formula pentru a obține jerk este:
$$ 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]
Modelul utilizat este:
Faza 1: constantă ( pozitiv) jerk $ j $
Faza 2: accelerare constantă $ a $
Faza 3: constant (negativ) jerk ($ – j $)
Faza 4: viteză constantă $ V_ {Max} $
Faza 5: constantă (negativă) ($ – j $)
Faza 6: decelerare constantă ($ d $)
Faza 7: jerk constant (pozitiv) ($ j $)
În formulele de mai sus, există constrângeri, mai precis durata fazelor 2, 4, 6 trebuie fii pozitiv:
$$ \ 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 $$
Dacă una dintre aceste constrângeri nu este satisfăcută, aceasta înseamnă că ipoteza luată pentru model este incohere nt, deci avem nevoie de un alt model.
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)) ) );