0
$\begingroup$

I'm looking for an equation to find the time it will take for a position displacement to happen, given known $V_{max}$, a (known) constant acceleration, deceleration, jerk, and displacement... and an initial velocity of 0.

I am trying to estimate/calculate the time it will take for a servo motor axis to travel a certain distance. Once I know the estimated time of that move, I can solve for jerk for the other axis. That way, I choose an optimally "slow" speed for whichever axis has a shorter move distance to make the maximum use of my time.

FYI, this is a pick and place XY robot gantry.

$\endgroup$
12
  • $\begingroup$ Assuming $\Delta x = (a/2)*t^2 + (j/6)*t^3$, finding t is the same thing that resolving a cubic equation $\endgroup$
    – Trimok
    Jun 12, 2013 at 17:34
  • $\begingroup$ Thanks, I'll start with that and see what I come up with. $\endgroup$ Jun 12, 2013 at 19:06
  • $\begingroup$ If you agree with the equation I give above, and if you have problems, I will try to give you a complete answer. $\endgroup$
    – Trimok
    Jun 12, 2013 at 19:20
  • $\begingroup$ Cool. Thanks. So... I am doing a move with parameters: $\endgroup$ Jun 12, 2013 at 21:24
  • $\begingroup$ Oops. Repost: I am doing a move with parameters: Vmax = 1000 mm/s, accel = 1000mm/s^2, decel = 1000mm/s^2, Jerk = 1000 mm/s^3, and the Displacement is 2000mm. I have timed this move at around 4.0 seconds, so that should be the answer, but I need to get the equation that results in this for different input variables. (note accel and decel are not necessarily the same). Thanks for looking at it, I am a bit out of my league on the mathematics. $\endgroup$ Jun 12, 2013 at 21:30

1 Answer 1

0
$\begingroup$

I give you the result of my calculus without the details:

The result is :

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

where :

$\Delta t$ is the total time.

$\Delta x$ is the total displacement.

$a$ is the maximum acceleration.

$d$ is the maximum decceleration.

$j$ is the jerk.

$V_{max}$ is the maximum speed.

As a test, with your values :

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

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

which is the correct result.

So I am quite confident in the formula.

[EDIT] The formula to obtain jerk is :

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

The used model is :

Phase 1 : constant (positive) jerk $j$

Phase 2 : constant acceleration $a$

Phase 3 : constant (negative) jerk ($- j$)

Phase 4 : constant speed $V_{Max}$

Phase 5 : constant (negative) jerk ($- j$)

Phase 6 : constant decceleration ($d$)

Phase 7 : constant (positive) jerk ($j$)


In the formulas above, there are constraints, more precisely the duration of the phases 2, 4, 6 must be positive:

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

If one of these constraints is not satisfyed, this means that the hypothesis taken for the model are incoherent, so we need another model.

$\endgroup$
9
  • $\begingroup$ THANKS! I appreciate the time you spent to help me. I'll move that to the PLC and see how it goes. I still need to figure out solving for j when delta T is known, but I can probably manage that. Keep up the good work. $\endgroup$ Jun 14, 2013 at 14:21
  • $\begingroup$ Here is the PLC calc for time as you mentioned above: 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) ); $\endgroup$ Jun 14, 2013 at 16:25
  • $\begingroup$ NO, your first formula for jerk is not correct. I made an edit in the answer for the correct formula. Your last formula (for time) seems correct. By the way, what is PLC? $\endgroup$
    – Trimok
    Jun 14, 2013 at 16:53
  • $\begingroup$ Yes, you are right. I removed that comment. The correct PLC code for finding Jerk should be: fJerkCalc := (fAccel_M + fDecel_M) / ( ( 2 * (fMoveTime_S - (fDeltaPos_M / fVMax_M))) - (fVMax_M * ((1/fAccel_M)+(1/fDecel_M)) ) ); $\endgroup$ Jun 14, 2013 at 17:24
  • $\begingroup$ PLC is a 'programmable logic controller', basically a microcontroller or real time computer for industrial use. I'm using it to coordinate and control a 4 axis pick and place robot. I'm very close to having it right, but something is still off just a bit somewhere.. The formulas seem good though. $\endgroup$ Jun 14, 2013 at 17:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.