Hi!
I turn to you with a question for which i cant get any answer.
I tried several forums but nobody can answer me.
I am developing a project using stepper motors(not a CNC project but it involves microstepping).
I use high torque microstepping(not sine-cosine) on Unipolar stepper.(please dont tell me bipolar is better,i know)
Since i could not find any document on showing the correct sequences i tried to figure out.
It looks the folowing:
1b +
1a 0-->+
------------
1a +
1b +-->0
------------
1a +
2b 0-->+
------------
2b +
1a +-->0
------------
2b +
2a 0-->+
------------
2a +
2b +-->0
------------
2a +
1b 0-->+
------------
1b +
2a +-->0
It has 8 sequences.I attached the picture which shows the coils(please ignore the sequences on the picture they are for full stepping)
My first question is if i built up the correct sequence.
If the sequence is correct,lets go ahead:
I wrote a program for microcontroller to rotate a stepper at 1/32 microstep ratio.It seems like i done some kind of microstepping but something is going wrong.
I see that its not full stepping but doing smaller steps.But the motor doesnt rotate continuously at fixed speed.
its micro-stepping then stops for a little while then again micro-stepping then again stop.It seems like the stop occurs between(or during) state(sequence) change.
However,it should rotate continuously.
One reason came up on my mind but dont know if its meaningful.duty100% shows the half-winding being fully energised and the other where duty cycle is going down and up.
Case1 illustrates the way i did it.
You can notice at step4 that only one half is at full power(no current is switched into any other winding).
case1:
step 1 2 3 4 5 6 7
duty100% ON ON ON ON ON ON ON
duty100-0% 3 2 1 0 0 0 0
dutt0-100% 0 0 0 0 1 2 3
And this is the second case i came up with:you can see that at step4 another half winding becomes increasing immediately after the first gone to zero(so there is no case when only one winding is energised(let it be full power or partial).
case2:
1 2 3 4 5 6 7
ON ON ON ON ON ON ON
3 2 1 0 0 0 0
0 0 0 1 2 3 4
My second question is which case should i use or the same question in another form:is there case when only one coil is energised or its need to energise some way both coils(remember that step4!!!)
Thanks!
PS: sorry for the arrangement of case1 and case2 i cant do it to be posted the aligned way!
a) Wavedrive is where only one winding is 'on' at a time. This gives inferior torque. Quadrature is:
001100110011
100110011001
b) Educate me. Please show me how SQRT (n^2 + x^2) stays constant while x varies as some function between 0 and n?
n = full current, x = 'varying' (?) current.
Only SQRT ((sin x)^2 + (cos x)^2) = 1 (vector sum stays constant).
Anything else results in a variable vector magnitude, thus torque ripple and resonance.
Maybe You are right(OK sure),but i heard about the method i am trying to realize.
Microchip wrote an appnote on how to microstep a bipolar stepper motor using its uCPU and there mine method was used and not sine-cosine method.
Believe it or not but many semiconductor mfg app notes are among the worst designs I have ever seen. They manufacture ICs after all, not the app note products.
Mariss is one of the best sources of information on this board, and knows what he is talking about.
While many of the Microchip app notes provide some useful information, most of the ones I have read, this one included, are not very practical.
There are two reasons for doing microstepping. In some instances, it is done to increase resolution, but for most CNC applications the main reason for microstepping is smoothness. If your application does one step at a time, stopping between steps, your method might be OK. However, if you are trying to get continuous smooth motion, the torque variation in your method will cause problems.
Smooth motion and evenly spaced microsteps are two faces of the same coin. If steps are not evenly spaced statically then the motor will resonate dynamically as it acellerates on the wider spaced steps and decelerates on the narrower spaced ones.
These appnotes say that sine cosine method produces less torque than : one coil 100percent duty the other winding varying.
What about that?
Then,lets say i will use the method you do not agree with.Could you confirm which is the correct case?
My project is a discolight effect. One mirror moves X axis and other moves Y axis and thus it can go around the room. The Y motor hold a little mirror which reflects the light from the source to any desired location(position).
So to see nice light-beam movement i have to do it smooth.
You want it smooth, use sine/cosine. You want maximum holding torque, use a full-step sequence.
Anything not smooth wastes torque by resonating. A full-step drive's low-speed torque is 65% of its holding torque. Where did the missing 35% go? To resonate and vibrate the motor.
A sine/cosine drive has 70.7% the holding torque of a full-step drive. It's low-speed torque is 70.7% the holding torque of a full-step drive.
65% vs. 70.7% Seems like a wash to me with the sine/cosine drive holding a slight advantage except it won't shake the fillings out of your teeth.
P.S. I have at one point or another tried every reasonable current waveform; trapazoidal, single phase constant displacement angle (your kind), etc. None match sin/cos.
OK,OK,i believe you and thanks!
Now i unfortunately havent got any H-bridge to try bipolar this is the reason i am trying unipolar first.
I now the logic of constant torque and even wondered why they call my method high torque but i have believe them till your explanation.Do you know why they call it high torque?
Please look at the following link containing that appnote: http://ww1.microchip.com/downloads/e...tes/00907a.pdf
It says on page 11 even with this method is smooth.
Even a similar question than this(which is in my first post) appears when using sine-cosine(speak now about bipolar):
There are some different states until the sequence starts to repeat again when rotating one direction.
So one winding starts from ON to Off and the other winding from Off to ON. When they reach it its time to change state(advance). The next state starts that the other winding goes from ON(which it reached in the previous state) to OFF and the first winding goes from OFF to ON( taking care about the current polarity in the winding of course).
So the problem is that one winding is at full ON at the end of a state and is at full ON at the start of the next state and thus its two times the time unit ON which can cause a little stop in motion if i dont mistake.
I hope you understand what i am talking about.I cant express myself better in english,sorry!
i attached a picture showing bipolar ustep sequences(using not sine-cosine but i marked with red and blue the thing i mean-as you can see from the blue winding is at zero two time units)
PS: sorry about my previous post:a little correction needs. one motor(and not mirror) moves X axis and the other Y axis.and the Y axis is mounted on the X axis and a small mirror is mounted on the Y axis.But never mind,its not about the microstepping.
Take a look at the first attached .gif pic. The red and blue traces show the motor currents over the span of 4 full steps. The resolution is 10 microsteps per step. Current direction thru the winding is left to right for +sine and +cosine, the opposite for -sine and -cosine. There is no pause (no change in winding currents) on step edges.
The second .gif shows a current probe reading of an actual motor phase current. It matches the first .gif nicely.