Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Stepper driver with adjustable acceleration/deceleration function

Status
Not open for further replies.

Pavel30

Newbie level 2
Joined
Apr 21, 2017
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
32
Colleagues,
I am working on one very specific product and required to find stepper driver with possibility to adjust acceleration/deceleration. Without this function my steppers loosing steps. This function need to be applied only in driver, because i am using very special controller to generate puls/dir signal, and it can not be done in controller. I need to find end user solution, preferable ready made product which should be compact in design to fix inside my product. Thanks lot in advance for any suggestion.
 

If you are generating pulse and direction in your controller as you say, then YOUR CONTROLLER IS DETERMINING THE ACCELERATION. unless I'm misunderstanding you.
 

Unfortunately controller can't do that. It was designed for simple operation to convert show lighting equipment DMX512 protocol in to puls/dir signals. There is no possibility to change anything in controller. I need to smooth motor start/stop somehow after controller, and this is probably can be done in only in driver.
There is millions of servo drivers which is have acceleration/deceleration parameters adjustment. And if i am connecting puls/dir signal to any of that servo drives i can do what i need. But my target to use stepper motors, not servo.
 

Hi,

I assume you didn't recognize that there is a fixed relationship between pulse frequency and RPM.
If you want to change the acceleration,
--> then you need to modify RPM (behaviour)
--> thus - there is no way around - you need to modify the pulses (pulse frequency).

Klaus
 

one option is to buid a controller that sits in between the pulse/dir signal from your original controller and the stepper driver .

monitor the pulse coming from the original controller and apply your accl/decl profile once you detect the pulse. With the dir signal you can emit the appropriate drive sequence to the driver.

This solution will introduce a delay because of the additional block inserted. The delay may be negligible or significant depends upon your final application.
 

You can do that by regulating the stepper motor voltage /current.

When the puls/sec is low, the motor may stop between the pulses completely and if the current is insufficient, it may skip a beat. The max current should be determined by the max power the motor can take.

When the pulse/sec is high, the motor has not come to a complete stop before the second pulse arrives and if the winding current is high the motor may overheat.

You can filter the pulse signal (C-R) and the output will whether the pulse rate is high or low. Use this voltage to control the motor voltage.
 

You can do that by regulating the stepper motor voltage /current.

No, you can't. That will only control the torque, unless you're talking about micro stepping, which I don't think you are.
 

Hi,

Even with microstepping there is a fixed relationship between clock pulse frequency and RPM.

Srizbf's solution is the one that will work..but it will be a lot of effort in hardware and software.

Klaus
 

Hi,

Even with microstepping there is a fixed relationship between clock pulse frequency and RPM.

Srizbf's solution is the one that will work..but it will be a lot of effort in hardware and software.

Klaus
Right. maybe he just needs a different controller.
 

No, you can't. That will only control the torque, unless you're talking about micro stepping, which I don't think you are.

If there are no missing steps, then the RPM will depend only on the pulse rate.

The current (within limits) determine the torque and the power (current and RPM both)

If the motor is starting from rest, most of the power goes into the rotor inertia (KE of the rotor). If there is insufficient current, it will miss some steps.

If the motor is going to stop, you need to have similar consideration else it will again miss some steps.

Accel /Decel cannot be done with a fixed pulse freq and no missed steps. For low pulse rate this may be less important.

Basically you need to get to speed (or stop) within one single pulse. OP is concerned about missing steps.
 

Hi,

I'm not sure if I understood correct.

But with stepper motors one explicitely wants to avoid to miss steps. (Otherwise you loose the benefit of a stepper motor)
Not at still motor, not at accelerating, not at running, not at decelerating.

Therefore the only valid approach is to modify the pulse rate.
Modified voltage or current will result in missing steps/ position and most probably the motor will stall at all.
****

You may current limit a brushed DC motor to control acceleration/deceleration.

Klaus
 

If there are no missing steps, then the RPM will depend only on the pulse rate.

The current (within limits) determine the torque and the power (current and RPM both)

If the motor is starting from rest, most of the power goes into the rotor inertia (KE of the rotor). If there is insufficient current, it will miss some steps.

If the motor is going to stop, you need to have similar consideration else it will again miss some steps.

Accel /Decel cannot be done with a fixed pulse freq and no missed steps. For low pulse rate this may be less important.

Basically you need to get to speed (or stop) within one single pulse. OP is concerned about missing steps.
With all due respect, I don't think you understand how a stepper motor works. You cannot 'get to top speed in one single pulse'. And you are proposing that missed steps are 'less important' at low speed?!
 

Stepper Motors in HDD's circa 1984 from NPL/Hitachi had smooth de/acceleration to full speed and stop by varying the commutation rate. Full torque is obtained in full steps and torque is compromised with resolution using half steps and more with micro stepping. They also used a viscous brass/oil damper disk attached to rotor for smooth faster response at stop.

Then years later VCM or voice coil servo's replaced this technology... Old school.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top