Motion Control Profiles: Good, Better, and Best

Motion control is the skill and art of controlling the performance parameters of a motor and its load to optimally reach a desired goal. Behind that simple sentence are many variables: which one or more of the parameter attributes are you seeking to control; position, velocity, acceleration, or jerk (the change in acceleration)? Is the primary goal to achieve accurate position or velocity? Does optimum solution mean reaching an objective as quickly as possible, with the accuracy required? What about overshoot? What about changes in load? What about power efficiency and handling inevitable faults such as stalls?

Meeting all these goals—which are often in conflict, to some extent—is not simple. Doing so is largely a function of the motor’s motion controller. This controller acts as the “brains” of the control system, implementing algorithms that have been designed and tuned to the objectives of the application. These algorithms also need to take into account the motor type, which can be a stepper, brushed, brushless DC (BLDC), or AC, among others. The algorithms must also account for the nature of the load (solid, liquid, powder, gears, rails), as well as any linkages and backlash.

The controller works in conjunction with a motor driver which contains the power devices such as MOSFETs which modulate the current to the motor as directed by the controller. Note there is some functional overlap between the two roles, as some drivers have basic controller capabilities, and some controllers can incorporate low-power MOSFETs.

Start with a good profile

The obvious way to get the motor to where it needs to be is to simply “pour on” the power, accelerate the motor to the maximum speed possible, hold that speed, and then stop when the motor reaches the desired endpoint position or velocity (Figure 1).

Figure 1: The simplest tactic for motor motion management is to accelerate the motor at the maximum possible rate until the desired endpoint is reached, and then suddenly stop. (Image source: Trinamic Motion Control GmbH)

Called a trapezoidal profile, this approach works and is widely used, but is unacceptable in many applications. For example, the large jerk that results as the acceleration goes from zero to maximum at the start and stop transitions can disrupt and slosh liquids; also, there is often unacceptable overshoot since real-world motors and their loads do not stop instantly.

Getting a better profile

A standard improvement is to add gentle transitions between the start and run phases, and the run and stop phases. This is known as the S-curve profile (Figure 2).

Figure 2: The S-curve profile adds rounding to the velocity transition points between stop and run phases, and to the reverse action. (Image source: Trinamic Motion Control GmbH)

How sharp or round that “S” part should be and for how long it lasts within the total profile depends on the application, load, and system priorities in the balance of tradeoffs among the many performance objectives and constraints.

In addition, there’s a good reason to minimize the jerk: high jerk values tend to induce oscillation of the load as they put more frequencies into the spectrum of the motion profile, and there may be one or more that match the system’s natural resonances. The real-world impact of such oscillation can range from annoying noise to harmful and possible destructive vibration.

As a result, any such oscillation, which is distinct from simpler and also undesirable overshoot, is generally unacceptable.

Go for the “best” profile

The basic S-curve is effective but may not provide a motion profile that is optimum in the application. The reason is that the dynamics of the motor, the linkage to load, and the load itself greatly complicate the initial simple motion model.

It’s further complicated by the type of motor being controlled. Also, the addition of a feedback sensor for closed-loop control offers the possibility of higher precision along with faster response, but this requires the use of more advanced control strategies, such as the proportional-integral-derivative (PID) algorithm.

One option for providing S-curve and more advanced control is to use a microprocessor with enhanced numeric processing capabilities to implement the required equations in real-time, supported by other integral hardware functions and features that are focused on motion control. These application-optimized processors can execute motion control software which is often provided by the processor vendor.

For example, the Texas Instruments C2000 family is targeted at this application and includes the F28M35H52C1RFPS, a C28x/ARM Cortex-M3 series microcontroller with a 32-bit dual-core processor running at 100 megahertz (MHz), supported by 512 kilobytes (Kbytes) of flash memory, 2 Kbytes of RAM, and an array of communication ports.

The processor is only part of the solution to tailor the algorithm to the application, as Texas Instruments offers two different paths for C2000-based motor control. Its Digital Motor Control (DMC) Library is a broad set of motor control software building blocks created over years and presumes users will develop the optimal control-loop tuning themselves. The library includes baseline system examples available on hardware evaluation modules to be used as starting points for experienced motor control engineers.

In contrast, for designers with limited experience in motion control, TI’s InstaSPIN motor control solution gives access to high-performance algorithms, while simplifying many of the real-world challenges of developing advanced solutions. It includes automated self-tuning that may not be quite as good as that of user-optimized but may be more than adequate for the application.

Other vendors offer standalone ICs and complete PC board modules, often with associated motor drivers that are fully pre-programmed with sophisticated motion control algorithms yet still allow the user to set key parameters and provide custom profiles. A good example can be seen in the Trinamic Motion Control GmbH TMC5041-EVAL evaluation board for its TMC5041-LA-T dual controller/driver for stepper power management (Figure 3).

Figure 3: The TMC5041 dual controller/driver for stepper power management, seen here on the TMC5041-EVAL evaluation board, includes sophisticated, embedded motion control algorithms and functions, and supports user programmability of key operating parameters. (Image source: Trinamic Motion Control GmbH)

The TMC5041 includes functions such as flexible ramp generators for automatic target positioning for advanced stepper motor drivers, and it ensures noiseless operation combined with maximum efficiency and best motor torque. Among its other pre-programmed features is accommodation for variations of the motor’s back electromotive force (BEMF) caused by acceleration and deceleration, which may require quicker regulation. This allows the user to adjust and optimize the associated setting (designated PWM_GRAD) for the fastest possible acceleration and deceleration ramp (Figure 4).

Figure 4: The level of sophistication of the TMC5041 is shown by the provision for the user-specified setting of current-drive values to ensure the fastest acceleration and deceleration, commensurate with crisp performance with minimal overshoot. (Image source: Trinamic Motion Control GmbH)

Conclusion

Effective motion control and profile management requires careful balancing of the tradeoffs between position, speed, and acceleration while providing accuracy and crisp performance. By using a sophisticated motion controller to set key parameters for the current and voltage driving the motor, it is possible to achieve outstanding accuracy and precision, along with fast response.

Motion controllers can be implemented via algorithms executed in high-performance microprocessors, or by dedicated devices which are pre-programmed with embedded firmware, allowing users to adjust and tune operating points for advanced performance.

Recommended Reading

1: Digital Motor Control Methodology for C2000™ Real-Time Control Microcontrollers

https://www.digikey.com/en/articles/digital-motor-control-methodology-for-c2000-real-time-control-microcontrollers

2: Use Sensorless Vector Control with BLDC and PMS Motors to Deliver Precise Motion Control

https://www.digikey.com/en/articles/use-sensorless-vector-control-with-bldc-and-pms-motors

3: Use Specialized MCUs to Simplify Motion-Control Design

https://www.digikey.com/en/articles/use-specialized-mcus-to-simplify-motion-control-design

4: Control for Advanced Motion

https://www.digikey.com/en/articles/control-for-advanced-motion

About this author

Image of Bill Schweber

Bill Schweber is an electronics engineer who has written three textbooks on electronic communications systems, as well as hundreds of technical articles, opinion columns, and product features. In past roles, he worked as a technical web-site manager for multiple topic-specific sites for EE Times, as well as both the Executive Editor and Analog Editor at EDN.

At Analog Devices, Inc. (a leading vendor of analog and mixed-signal ICs), Bill was in marketing communications (public relations); as a result, he has been on both sides of the technical PR function, presenting company products, stories, and messages to the media and also as the recipient of these.

Prior to the MarCom role at Analog, Bill was associate editor of their respected technical journal, and also worked in their product marketing and applications engineering groups. Before those roles, Bill was at Instron Corp., doing hands-on analog- and power-circuit design and systems integration for materials-testing machine controls.

He has an MSEE (Univ. of Mass) and BSEE (Columbia Univ.), is a Registered Professional Engineer, and holds an Advanced Class amateur radio license. Bill has also planned, written, and presented on-line courses on a variety of engineering topics, including MOSFET basics, ADC selection, and driving LEDs.

More posts by Bill Schweber
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum