As you saw in the previous page, a trapezoidal stepping profile can increase the speed of your stepper motor considerably. But does it achieve the motors potential?
Well that depends on the ramp up gradient, a steep gradient will stall the motor at a relatively low speed. But using a persistant shallow gradient will take a lot longer to increase speed aswell as creating a lot of jitter at the lower speeds.
If we could calculate a sinusoidal increase gradient rather than just a straight linear ramp, this would allow us to achieve even greater speeds.
Calculating and effectively producing a stepping profile like this could be time consuming for the microcontroller, so maybe just altering the gradient to a different linear pofile at different speeds would work almost as well.
Take the maximum speed and minus the minimum speed.
For the first quarter of this, increase the speed by 4
For the second quarter increase the speed by 3
For the third quarter increase the speed by 2
For the fourth quarter increase the speed by 1
As represented here
By decreasing the acceleration level the faster it goes then the less chance you have of stalling.
The example program on the previous page actually does the opposite of this. Because I used the delay cycles as a way of changing the speeds it meant that a shallow gradient happened at slow speed which built up to a steep gradient at high speeds. Although on reflection the program is wrong, it does demonstrate that trapezoidal ramping is easy to achieve and shows that we can take a stepper motor to high speeds. - in fact because the gradient was reversed, my stepper motor was nowhere nearing the speeds it is capable of.
By optimizing these profiles, enhanced speed ranges can be achieved but at the expense of torque. Is there anything that we can do about that? Maybe we can reduce the ratio of lost torque a bit. See the next page