CommentsAdd a comment
Although I generally use stepper motors for positioning, I did complete a project using a stepper motor to provide a precise velocity profile for acceleration, constant velocity travel, followed by deceleration for a linear slide with the target load. For my design I selected a controller by "Moons" which allowed easy programming, micro-stepping for smooth motion and limit switches etc, and my PIC micro just had to perform the user interface functions. Turned out to be a nice and simple project. Gecko and others also provided good modules. These had the advantage of not having to develop code to provide the motion which is a huge advantage for limited volume development. Again there have probably been many revisions and new products since this project, but it is certainly not a "Black Art" for control.
The bigger issue is selecting the correct motor as it can be complicated knowing the actual project requirements such as staring torque and running torque.
Forgot about this project as it was a one off and ran reliably from delivery....
My sense is that it has become easier, as smarter controllers have become available at lower prices than in the past. Companies like Pololu here in the states offer some very compact intelligent dc motor controllers offering multiple input control methods with and without feedback, with configuration / tuning setup via USB. All on a board < 11 cm², needing no heat sink. At the inexpensive end boards like the Ramps board used in many 3D printers control multiple stepper motors and offer some built-in auto-tuning of parameters. Certainly higher knowledge is still required to eek the most performance out of high-end motion control systems and applications. But the increased availability of affordable off-the-shelf building blocks is opening the doors to application of motion control to a wider range of markets, many of which don't demand the utmost in performance.
I was amazed back in year 2000 what was available if you were prepared to pay for all the knowledge, experience and design that was available in commercial servo controllers. Plug in your motor, plug in your PC and configure the controller by the motor model or key parameters. Set limits to how hard you want to drive the motor for the application. Enter a 'tune mode' and let the controller decide the best parameters and tweak as required. It wasn't cheap, but an excellent time saving module.
Haven't looked what is available now, so will be interested in up to date info.