Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Speed control of stepper motor using phase locked loop

Status
Not open for further replies.

ibro10

Electrical
Feb 28, 2013
3
i am trying to control the speed of the stepper motor using phase locked loop, using simulink for the simulation. Want to know if i can use the stepper motor transfer function for this approach of controlling the speed using phase locked loop.
 
Replies continue below

Recommended for you

It's not my area of speciality, so forgive me if I'm off base.

Stepper motors are position (angle) based. Therefore, cannot they be perfectly controlled open loop?
 
Notwithstanding VE1BLL's very valid suggestion, you might need to be a bit clearer about what you're after.

Is the stepper motor really part of the loop? What are the inputs and outputs? It's just that "this approach" you refer to doesn't ring any bells for me and there's certainly not enough information in your post to figure it out. Hopefully that's just my ignorance and others know what you're talking about.

Finally, it actually looks like you're asking about a "stepper motor transfer function". That sounds like a Simulink component to me. You might be better served over in the Simulink forum:
Judging by the post[1] on the Mathworks site, you've already exhausted the Simulink experts anyway. Maybe it's time to revise your question?

[1]
 
As VE1BLL has said, stepper motors are angular, i.e. 'n' degrees rotation per step cycle, and as there is normally no feedback mechanism it is not possible to have a true closed loop system. However, with stepper motors as the step waveform p.r.f. increases there comes a point where the motor can be said to move in a near-continuous smooth step-free manner due to the rotor inertia. Beyond this 'synchronous' speed the motor will get out of step with the drive waveform and perform erratically. Are you trying to control the motor to maintain this synchronous speed 'sweet spot'?.
 
thanks to you all. basically the aim is to control the speed of the stepper motor, it is possible to have a closed loop system because what the phase locked loop does is that it synchronizes the motor speed with respect to the reference frequency so in essence controlling the freqeuncy in turn controls the speed. yeah the stepper motor is part of the loop, my question was if i can use the motor winding transfer function which is 1/Ls + R. i av uploaded the simulink model i have so far so that you can have a clearer idea of what im looking to do. thanks
 
 http://files.engineering.com/getfile.aspx?folder=1122db4d-18ea-4801-941a-d1c805219469&file=stepperPLL.mdl
People have done closed loop systems with steppers, but they generally required a separate feedback mechanism, like an encoder or synchro.

TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529
 
I don't have simulink so can't open your model, however, basic stepper motors are normally two-phase (more with micro stepping types) and controlling the frequency always controls the speed. The reference frequency itself will determine the speed of rotation (once it's split into two overlapping phases) and the stepper motor will follow accurately up to a certain speed (see previous post), but with some angular time delay. This does not mean that the only way to drive it is with a PLL just because the two driver phases are nominally 90 degrees apart. Note that your description of a PLL does NOT form a closed loop system as there is no feedback from the motor shaft to any part of the drive circuit. The benefit of stepper motors is that they are open loop devices requiring no feedback - they just follow the frequency of the drive pulses they are given so always rotate to a given position with the right number of pulses, or rotate continuously at the right speed determined by a continuous pulse train.
 
I think here PLL is about generated frequency only. As was explained, step motor speed is in normal conditions syncronized with frequency of voltage applied. In such way may use step motor in open loop BUT you are not very sure about speed or position because motor may lose some steps because load or any other factors. So, depending of application requirments, cost and other factors may use or not open loop. PLL in open loop it's a quarantee regarding frequency stability and value of signal applied to motor and not about motor speed and/or position.
 
Frequencies in this sort of kHz range are typically generate in software (or use a stepper motor controller IC).


Perhaps this is more of an academic exercise to learn about PLLs rather than being a practical application?

 
I've had a look at the model and sure enough, the motor is part of the PLL, in between the low-passed error signal and the VCO. I see no rhyme or reason for this but again, that may be my ignorance.

The transfer function you're talking about - what is the input and output? Judging by the function, is sounds like you're modelling the motor as an RL circuit, setting voltage as input and current as output? You then stick that in the middle of the PLL, so the input voltage becomes the low-passed error signal and the output current becomes the input to the VCO. What makes you think that will work?

As already suggested, the only way I can think of to actually make this work is to get some feedback from the motor shaft. Hopefully I'm wrong and someone knows what you're trying to do, but it's not looking promising!
 
@LiteYear, thanks for taking the time to have a look at d model, i appreciate that, so you think having the motor model in d middle of the loop wont make it work, you could be right because on simulation i did get some errors, however with your idea of getting feedback from the motor shaft, how do you think i can implement that?
 
If you really want to put the stepping motor in the loop, you need to study
or maybe

I.e., you need to model some logic circuit that feeds the PLL oscillator's output to four drivers, which beat on two coils, which beat the crap out of the rotor, which may or may not move the load, which you also have to model, and some kind of encoder attached to the load.

You might want to model a DC motor first; steppers are complicated and weird.





Mike Halloran
Pembroke Pines, FL, USA
 
?? How did you plan on locking phase if you have no measurement of phase?

Is a PLL even the right solution? PLLs are really intended for steady state behaviors, e.g., matching something to a reference crystal. If there is going to be large variations in the motor speed, a PLL is probably inappropriate and a conventional servo loop is probably more apropos , although you would still need some means of measuring the motor speed.

TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529
 
A stepper motor control circuit without a PLL is a bit like a fish without a bicycle.

A typical printer (for exampke) might contain a half dozen stepper motors, and zero PLLs.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor