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.
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)) ) );