Microstepping

Advert

Microstepping

Viewing 21 posts - 1 through 21 (of 21 total)
  • Author
    Posts
  • #493207
    duncan webster 1
    Participant
      @duncanwebster1

      Not actually CNC, my milling machine X axis leadscrew is driven by a stepper motor connected 1:1 to the 0.1" pitch screw. At present it is set to 800 steps per rev, with a max input frequency of 1500 hz for cutting and 3000 hz for fast traverse.

      Would it be better set to 400 steps/rev with 750/1500 input? Easy to change, but I thought I'd get some expert opinion first.

      Advert
      #15298
      duncan webster 1
      Participant
        @duncanwebster1
        #493273
        The Novice Engineer
        Participant
          @thenoviceengineer

          The use of Microstepping enables smaller angular movement of the motor shaft that can give more precise positioning.

          The down side is that the Torque available to make the movement drops off markedly with the increasing number of microstep subdivisions

          Using 8 microsteps drops the available torque to ~20% compared to using a Single pulse

          This article goes into the detail

          **LINK**

          For your Non Critical positioning requirement [Just moving the table] Single Step Full pulse should give you the most power to move the table.

          Try it and see what happens , there maybe more resonance noise with fewer microsteps.

          In general terms increasing the voltage will increase the Speed of rotation, Increasing the current will increase the Torque , most Stepper Drivers have current limiting circuitry. Try not to exceed the rating of the motor they can get very hot Very quickly.

          Don't be alarmed by a motor that is hand hot, they should be able to run at 60-80 C quite happily for years.

          #493280
          duncan webster 1
          Participant
            @duncanwebster1

            The driver won't go less than 400 steps per rev, I'll give it a whirl tomorrow and report back. From the very interesting link it looks as tho I should get a useful increase in torque, and 0.00025" per pulse is good enough for my application

            #493281
            Michael Gilligan
            Participant
              @michaelgilligan61133
              Posted by The Novice Engineer on 28/08/2020 22:51:12:

              This article goes into the detail

              **LINK**

              .

              What an excellent link !!

              … glad I was looking-in yes

              MichaelG.

              #493286
              Martin Kyte
              Participant
                @martinkyte99762

                Some more intelligent drives use step size morphing to obviate this issue. For low frequency stepping they microstep for maximum resolution and when the frequency increases the transition to full stepping for maximum torque. That way you achieve higher maximum speeds with no los of resolution. All this takes place in the drive with the controlling software generating microsteps as normal. However you do have to generate acceleration ramp profiles rather than just jumping to a speed to profit from this and generally the drives are more costly.

                regards Martin

                #493318
                Kevin Hodgkins
                Participant
                  @kevinhodgkins45489

                  I think there's some miss-understanding going on here.

                  Micro-stepping does reduce the torque PER MICROSTEP, but your also increasing the number of microsteps. This is an issue for positional accuracy. i.e. with a high number of microsteps the motor might not move until multiple microsteps have been sent.

                  For a continuous motion movement you are not going to see any significant change in torque, but depending on the stepper driver increased micro-stepping will often make the motor run smoother and quieter.

                  The Nema 23 motor on my x-axis powerfeed is happiest at 3200 steps per rev.

                  #493321
                  Joseph Noci 1
                  Participant
                    @josephnoci1

                    Kevin is quite correct – The issue is HOLDING TORQUE – This is drastically reduced with microstepping – eg, to 0.6% of max when using 256 microsteps/step. When running, or using as a 'motor' – little torque is lost.

                    Microstepping also worsens motor position accuracy when loaded, and even when not, simply due to the torque required to overcome magnetic detent.

                    The major advantage of microstepping is to overcome step-losing low speed resonances.

                    Joe

                    #493324
                    Martin Kyte
                    Participant
                      @martinkyte99762

                      Required torque increases with speed. The primary compromise when microstepping is the reduction in maximum speed. The major advantage of microstepping is resolution.

                      regards Martin

                      #493326
                      duncan webster 1
                      Participant
                        @duncanwebster1

                        Should have read Kevin/Joe before I altered it. I'll go an alter it back again, as at 400 steps per rev there was a limit to how slow it would go. All down to how low you can make the Arduino tone() function work

                        Thanks chaps. Now to tie it in to the DRO (watch this space)

                        #493330
                        Iain Downs
                        Participant
                          @iaindowns78295

                          This is a very useful post. I was planning on doing some experimentation with microstepping once I've finished my controller software (don't ask, I'm currently trying to implement a windowing system on an arduino after a number of architectural false starts).

                          I did think about changing the number of microsteps from the ardiuno, but I have one of those TB6600 type drivers in it's own box and fancy neither opening it up, nor using some actualtors to flip the dip switches wink)

                          Iain

                          #493334
                          Kevin Hodgkins
                          Participant
                            @kevinhodgkins45489

                            Duncan

                            Just in case you haven't come across it. The Arduino Timerone library has a variable pwm function that is very useful for producing stepper pulses. It'll give you more range and resolution that the tone() function.

                            #493338
                            Martin Kyte
                            Participant
                              @martinkyte99762

                              Or you could use the stepper library functions here

                              **LINK**

                              regards Martin

                              #493342
                              Joseph Noci 1
                              Participant
                                @josephnoci1
                                Posted by Martin Kyte on 29/08/2020 11:31:01:

                                Required torque increases with speed. The primary compromise when microstepping is the reduction in maximum speed. The major advantage of microstepping is resolution.

                                regards Martin

                                well, therein lies the rub..the 'increase' in resolution is true to a very limited extent, and depends on many things. The proportional increase of resolution with increased microstepping exists only in the magnetic field vector, and in the math..This is not necessarily where the rotor actually moves to! With no load on the motor, the field vector may want the rotor to position itself say 20% away from the current full step position, toward the next, but the strong static magnetic field from the closer stator magnet pole is stronger than that dynamic field vector, so the rotor moves less than it should , sometimes not at all.Bearing stiction makes it worse. As the tween full step position torque is compromised, the rotor lags the field vector and at some point the forward vector is stronger than the lagging static field and stiction, and the rotor moves and catches up ( or almost does..or overshoots). Add to this a load, a leadscrew and the driven table stiction and inertia, and the delta worsens. The electromagnetic field vector is following the improved resolution almost perfectly, but the rotor not…

                                Microstepping is not the best way to achieve small feeds per stepper pulse…As I said, it does wonders in overcoming rough stepping at low speeds, ie, smoother running, but that can generally be achieved with 1/2 or at most, 1/4 stepping. In most cases where it is found that the 'system' runs more smoothly at some specific microstep value, it is because the system resonance and motor resonance are happiest at that rate – NOT because things are better at that 'resolution'. At 1/2 or 1/4 step, motor resolution does in fact quite closely follow the field vector, depending on the applied static loads.

                                Microstepping is also advantageous when the applied load dynamic profile is that of an undamped spring – a stepper driving a carriage via a toothed belt, with the carriage slides being low friction ball glides without slide wipers, etc. The mass is easily and quickly accelerated,but bounces and overshoots, etc. At full step, when accelerating thru the MOTOR resonance point(s), the inertial, undamped ' bounce', quickly makes the motor loose steps.

                                I spent many hours testing and tuning these setups on various cnc machines I built and retrofitted, to try get the most out of them, and if you stick to those concepts ( exceptions abound..) life is a little less difficult! Adding rotary dampers to the motor also works wonders in smoothing out motion and eliminating lost steps.

                                Joe

                                 

                                EDIT – just to add – stepper drivers/controllers are many a culprit in poor motor performance. The shape of the integrated PWM current waveform in the motor windings plays a huge role in stepper smoothness, acceleration and general performance. A simple PWM signal that attempts to simulate a sinusoidal current profile in the motor winding does not cut it when looking for smooth motors, or higher performance. The better range controllers ( analogue type..) will have some pots that allow the user to adjust the current waveform, while running the motor at the first, 2nd and third resonance RPM. The motor is simply placed on a hard surface – table top – and spun up from 0 rpm, slowly, till it vibrates madly. The pot(s) are then adjusted till smooth, and the next rpm point found, etc. All this is doing is pre-distorting the applied currents , and the magnetic field vector to help smooth the rotor steps. And this setting works only for this motor! This process must not be done with the motor fitted as it is the motor rotor resonance that is being compensated. The rest of the system friction and damping mass will mask this.

                                The good old GECKO drive controller worked this way and were fantastic. There new ones are digital..have not tried them yet.

                                Digital stepper controllers do exactly the same, but the controller itself observes the back-EMF to find the resonance points, and adjusts the PWM to achieve the same. The benefit of a digital controller is that it will compensate over the full user required RPM range, not just over the lower end.

                                Nuf now!

                                Joe

                                Edited By Joseph Noci 1 on 29/08/2020 14:00:41

                                #493347
                                Michael Gilligan
                                Participant
                                  @michaelgilligan61133

                                  It’s largely irrelevant to Duncan’s question, but I would just mention that it is possible to produce stepper motors with 800 step native mechanical resolution :

                                  .

                                  fb6028ee-2937-41ca-acac-18e0cb1cfecb.jpeg

                                  .

                                  A pair of these are destined for use on a microscope stage.

                                  MichaelG.

                                  #493353
                                  SillyOldDuffer
                                  Moderator
                                    @sillyoldduffer
                                    Posted by Kevin Hodgkins on 29/08/2020 12:37:06:

                                    Duncan

                                    Just in case you haven't come across it. The Arduino Timerone library has a variable pwm function that is very useful for producing stepper pulses. It'll give you more range and resolution that the tone() function.

                                    Good advice, but note Timer1.pwm() only works on a limited number of pins. Depends on the board: pins 9 or 10 on a Nano or Uno. If that's a problem Timer1 can be set to call an ISR that toggles any output pin, but the output switches at half frequency.

                                    Dave

                                    #493358
                                    Martin Kyte
                                    Participant
                                      @martinkyte99762

                                      "well, therein lies the rub..the 'increase' in resolution is true to a very limited extent, and depends on many things. The proportional increase of resolution with increased microstepping exists only in the magnetic field vector, and in the math..This is not necessarily where the rotor actually moves to!"

                                      Thats true of full stepping too. Steppers are essentially positional servo's. However you cut it microstepping gets you better resolution than full stepping. There are motors with smaller step angles available too. Just used 4 0.9deg step angle on a microscope stage controlling position to 0.1micron on the Z axis and 1micron in X and Y

                                      "The good old GECKO drive controller worked this way and were fantastic. There new ones are digital..have not tried them yet."

                                      Well I have and they work very well.

                                      regards Martin

                                       

                                       

                                      Edited By Martin Kyte on 29/08/2020 17:09:24

                                      Edited By Martin Kyte on 29/08/2020 17:09:45

                                      #493359
                                      duncan webster 1
                                      Participant
                                        @duncanwebster1

                                        I've altered it back to 800 steps per rev, it is a bit quieter, but otherwise no different, I don't measure torque, it is more than enough.

                                        On a side issue, when it contacted the end of travel microswitch, the software stops it , sets the speed to low but then allows travel in the opposite direction away from the stop position. Took me a bit to work out why it wouldn't accelerate away until it had done about 1 rev of leadscrew. Tracked it down to hysteresis in microswitch. Very small change to the code sorted that out.

                                        Thanks for the pointers to timerOne and accel stepper, more to learn! The lid is now on the box, and hopefully will stay there for a while.

                                        and thanks everyone for your contributions

                                        Edited By duncan webster on 29/08/2020 17:16:03

                                        #493365
                                        Emgee
                                        Participant
                                          @emgee

                                          Hi Duncan

                                          Could you please post a copy of your circuit drawing for the controller ? I for one am interested and guess others may be also.

                                          Emgee

                                          #493377
                                          duncan webster 1
                                          Participant
                                            @duncanwebster1

                                            Anyone wants it send me a pm with your email address and I'll return the circuit and the code, but as I say it's not quite finished, I'm going to add a bit to read the DRO so you can press a button to identify a stop point rather than sliding microswitches along the table. It works as is, so if you don't want that feature fine. It can be added later on, I've had it working in prototype form, but I've had enough of Arduino-ing for the time being, time to get on with metal cutting.

                                            #493417
                                            Neil Wyatt
                                            Moderator
                                              @neilwyatt

                                              Microstepping is notoriously inaccurate at anything other than low values of microsteps. What is useful, however, is that the errors are self-correcting as long as the motor isn't stalled.

                                              If looking at very small movements, steppers are quite insensitive to the small steps in parts of the waveform where the voltages are very low. Better driver chips either automatically increase the current to overcome 'stiction' or can be set to do so.

                                              Both of these issues are irrelevant to driving at speed but important if you want fine positioning.

                                              Neil

                                            Viewing 21 posts - 1 through 21 (of 21 total)
                                            • Please log in to reply to this topic. Registering is free and easy using the links on the menu at the top of this page.

                                            Advert

                                            Latest Replies

                                            Viewing 25 topics - 1 through 25 (of 25 total)
                                            Viewing 25 topics - 1 through 25 (of 25 total)

                                            View full reply list.

                                            Advert

                                            Newsletter Sign-up