My Question is related only to servo systems that still use step/dir as input.

Consider a typical advanced servo loop of an amplifier in the figure below: enter image description here (source: "Mechatronics system Control and logic" book by Robert Bishop)

A motion Card (not showen here) will generate a profile based on selected acc , dec , speed etc.. then this profile will be translated into a series of pulses with varing frequency.

The Amplifier can easily count the number of pulses to feed the position loop using for example internal quadrature decoder / or counter.

Now for the question : How does the amplifier caluculate the Required Acceleration and Velocity feedforward from the pulse train input ? or is this only possible with field bus amplifiers ?


  • \$\begingroup\$ This is a rather poor design if there is no computed or measured acceleration feedback to regulate a, v & p. This is usually done by measuring current. \$\endgroup\$ Nov 19, 2019 at 19:17
  • \$\begingroup\$ Obviously, if you can count the pulses for position, you can also measure the rate of the pulses for velocity and the change of that rate for acceleration. What's the problem? \$\endgroup\$
    – Dave Tweed
    Nov 19, 2019 at 19:21
  • \$\begingroup\$ @DaveTweed the problem is how does the amplifier compute the optimum ka,kv parameters then implement it using black box PLC's but he ought to expand on his assumptions and limitations on solutions. \$\endgroup\$ Nov 19, 2019 at 19:46
  • \$\begingroup\$ The "tell" is the Field bus amp. This is not an ideal solution for performance. But then there are no specs. \$\endgroup\$ Nov 19, 2019 at 19:52
  • \$\begingroup\$ Generally step/direction as an input to a servo amplifier would only be used when retrofitting a system where the motion profiler thinks it is still commanding stepper motors. A servo system can relatively easily be made to perform better than those, even if still not performing at its theoretical best. \$\endgroup\$ Nov 19, 2019 at 20:47

1 Answer 1


Not stated in your problem is the assumption that the step pulses are sent in a serial burst and not actually commutating the motor as they were done in 1st generation servo machines. This could be a 100kHz rate supported by Arduino CNC shields or any other required speed by specific design.

So acceleration can be computed ahead of time and limited by the feed-forward design parameters for max velocity and max acceleration. Acceleration depends on the electro-mechanical design limitations but when raised too high can create under-damped oscillations or overshoot due to the step input = broad-band spectrum generated when switching from constant de-acceleration mode to position error mode.

After the target has been reached within 1/2 track by the servo position count method ( sensor or counter) it switches from acceleration, velocity control mode to position control mode.

For a linear servo, a position error sensor is cycling and is used to count tracks and thus velocity and acceleration can be measured and regulated. Acceleration can also be increased or limited by linear current feedback or current limit control.

When switched to position control signal (PES) mode, the PES can be regulated with the motor current to null the position error. But since position is the 2nd integration of acceleration or current, the lag causes phase margin to be inherently unstable without compensation.

In stepper type servos such as floppy disk drives (FDD) and some CNC machines will use a micro-controller unit (MCU or uC) with specialized microcode to limit the velocity and de/acceleration then using the required step size for torque and resolution tradeoffs will apply the final step current to minimize overshoot and ringing. Microsteps give more resolution but less torque. This sub-step size can range from 1 to 64 and is pre-determined by design.

Implementation Specific solutions have not been defined because that restricts the choices and arbitrarily assumes budget, size and design parameters not given.

  • \$\begingroup\$ Thank u for the reply although i stated the opposite of your assumption . when i said there is an external motion profile card that "will generate a profile based on selected acc , dec , speed etc.. then this profile will be translated into a series of pulses with varing frequency" . SO the pulses will NOT be sent as a burst... and I AM interested in 1st generation servo machines. \$\endgroup\$
    – Eng Sam
    Nov 20, 2019 at 8:53

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.