drbitboy
Lifetime Supporting Member
Look at Ron's example. How would you keep the feed speed constant? Ron's cam table shows places were the speed increases rapidly. This is because the x scale is indexing at a constant rate.
Another example. An operator has a teaching pendent. He can jog the three axes, x, y, and z to different points and then hit enter. The motion controller will save the points but what is the distance in time between the points? The operator doesn't have control of the speed between points. What ensures that the speed between the points is constant and at the desired speed?
The answer to both queries is (by) controlling the rate of change of M, the master index, i.e. dM/dt:
dx/dM, dy/dM, and dz/dM are all known as a function of M,
and
speed = |dV/dt| = sqrt((dx/dM dM/dt)**2 + (dy/dM dM/dt)**2 + (dz/dM dM/dt)**2)
where V = vector with Cartesian components [x,y,z].
Solve for dM/dt:
dM/dt = Target_speed / sqrt(dx/dM**2 + dy/dM**2 + dz/dM**2)
I thought that was obvious. The rest is bookkeeping (mostly multiplying by unity) and dealing with divby0 events.
Last edited: