Sto cercando unequazione per trovare il tempo necessario per un lo spostamento di posizione si verifica, dato $ V_ {max} $ noto, unaccelerazione, una decelerazione, un jerk e uno spostamento costanti (noti) … e una velocità iniziale di 0.

Sto cercando di stimare / calcolare il tempo necessario allasse di un servomotore per percorrere una certa distanza. Una volta che conosco il tempo stimato di quel movimento, posso risolvere il jerk per laltro asse. In questo modo, scelgo una velocità “lenta” ottimale per qualsiasi lasse ha una distanza di spostamento più breve per sfruttare al massimo il mio tempo.

Cordiali saluti, questo è un portale robot XY pick and place.

Commenti

  • Supponendo $ \ Delta x = (a / 2) * t ^ 2 + (j / 6) * t ^ 3 $, trovare t è la stessa cosa che risolvere un equazione cubica
  • Grazie, ' inizierò con quello e vedrò cosa mi viene in mente th.
  • Se sei daccordo con lequazione che ho fornito sopra e se hai problemi, cercherò di darti una risposta completa.
  • Fantastico. Grazie. Quindi … sto facendo una mossa con i parametri:
  • Oops. Ripubblicazione: sto eseguendo una mossa con i parametri: Vmax = 1000 mm / s, accel = 1000mm / s ^ 2, decel = 1000mm / s ^ 2, Jerk = 1000 mm / s ^ 3 e lo spostamento è 2000mm. Ho cronometrato questa mossa a circa 4,0 secondi, quindi questa dovrebbe essere la risposta, ma ho bisogno di ottenere lequazione che si traduce in questo per diverse variabili di input. (nota che accel e decel non sono necessariamente uguali). Grazie per averlo esaminato, sono un po fuori dalla mia portata in matematica.

Risposta

Io darti il risultato del mio calcolo senza i dettagli:

Il risultato è:

$$ \ 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}) $$

dove:

$ \ Delta t $ è il tempo totale.

$ \ Delta x $ è lo spostamento totale.

$ a $ è laccelerazione massima.

$ d $ è la decelerazione massima.

$ j $ è il jerk.

$ V_ {max} $ è la velocità massima.

Come test, con i tuoi valori:

$ \ Delta x = 2 m, a = 1 m / s ^ 2, d = 1 m / s ^ 2, j = 1 m / s ^ 3, V_ {max} = 1 m / s $, trovo:

$$ \ 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 $$

che è il risultato corretto.

Quindi sono abbastanza fiducioso nel la formula.

[EDIT] La formula per ottenere jerk è:

$$ 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]

Il modello utilizzato è:

Fase 1: costante ( jerk positivo) $ j $

Fase 2: accelerazione costante $ a $

Fase 3: jerk costante (negativo) ($ – j $)

Fase 4: velocità costante $ V_ {Max} $

Fase 5: jerk costante (negativo) ($ – j $)

Fase 6: decelerazione costante ($ d $)

Fase 7: jerk costante (positivo) ($ j $)


Nelle formule precedenti ci sono dei vincoli, più precisamente la durata delle fasi 2, 4, 6 deve essere positivo:

$$ \ 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 $$

Se uno di questi vincoli non è soddisfatto, significa che le ipotesi prese per il modello sono incoerenti nt, quindi abbiamo bisogno di un altro modello.

Commenti

  • GRAZIE! Apprezzo il tempo che hai speso per aiutarmi. Lo ' lo sposterò nel PLC e vedrò come va. Ho ancora bisogno di capire come risolvere per j quando delta T è noto, ma probabilmente posso gestirlo. Continua così.
  • Ecco il PLC calcola il tempo come hai menzionato sopra: 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) );
  • NO, la tua prima formula per lo scatto non è corretto. Ho apportato una modifica alla risposta per la formula corretta. La tua ultima formula (per il tempo) sembra corretta. A proposito, cosè il PLC?
  • Sì, hai ragione. Ho rimosso quel commento. Il codice PLC corretto per trovare Jerk dovrebbe essere: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) );
  • PLC è un ' controllore logico programmabile ', fondamentalmente un microcontrollore o un computer in tempo reale per uso industriale. Lo ' lo sto usando per coordinare e controllare un robot pick and place a 4 assi. ' sono molto vicino ad avere ragione, ma qualcosa è ancora un po fuori posto da qualche parte .. Le formule sembrano buone però.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *