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.

Comentarii

  • MULTUMESC! Apreciez timpul pe care l-ați petrecut pentru a mă ajuta. ' îl voi muta pe PLC și voi vedea cum merge. Încă trebuie să-mi dau seama de rezolvarea pentru j când delta T este cunoscută, dar probabil că o pot face. Continuați treaba bună.
  • Iată calculul PLC pentru timp așa cum ați menționat mai sus: 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) );
  • NU, prima dvs. formulă pentru smucitură nu este corectă. Am făcut o modificare în răspunsul pentru formula corectă. Ultima dvs. formulă (pentru timp) pare corectă. Apropo, ce este PLC?
  • Da, ai dreptate. Am eliminat comentariul respectiv. Codul PLC corect pentru găsirea Jerk ar trebui să fie: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );
  • PLC este un ' controler logic programabil ', practic un microcontroler sau computer în timp real pentru uz industrial. Îl ' îl folosesc pentru a coordona și controla un robot de selectare și plasare pe 4 axe. ' sunt foarte aproape de a avea dreptate, dar ceva este încă oprit doar undeva .. Formulele par totuși bune.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *