Stepper Dynamometer Mechanics

Combine two of those mounts with one of those couplers, add two NEMA 17 steppers (the one on the right is that one), slide a baseplate underneath, sprinkle with various screws, and shazam you get a stepper motor dynamometer:

Stepper Dynamometer
Stepper Dynamometer

The baseplate puts the mounts 65 mm apart on the 10-32 screw centers, which is entirely a function of the coupler length, and is easy with manual CNC on the Sherline.

Changing the motors is straightforward: loosen coupler setscrew, remove base screws, slide motor away from coupler, remove mount screws. Won’t happen that often, methinks.

The general idea is to drive one stepper with a known current, apply a known resistive load to the other motor’s windings, and then plot torque vs. speed. It won’t be quite that simple, of course, but should produce some interesting data.


16 thoughts on “Stepper Dynamometer Mechanics

  1. Awesome! I’ve always been interested in motor dynos… but have not spent much time experimenting with them. One thing I’ve always wanted to do is to put a shaft encoder on the motor and measure the phase between when the step signal was sent to the motor drive and when it actually moved. My thought is you can see how close you are to loosing sync, or getting an idea of how much the motor is loaded with respect to what it can put out.

    Just thought I’d try planting an idea to see if anyone (who might have more time than me at the moment) might take it and run with it…. :-)

    – Steven Ciciora

    1. the phase between when the step signal was sent to the motor drive and when it actually moved.

      You’d need a pretty fine encoder to pull that off, but it’s not unreasonable. Maybe some day …

      1. Hmm, maybe you misunderstand…. For example, most of my drives are 10 uStep. 200 steps/rev * 10 uStep/step = 2,000 uStep/rev. Put a 500 line encoder, measure every transition, and you get 2,000 pulses/rev. Interestingly, one pulse in for every pulse out. Nice, but not necessary. Anyway, you measure the _phase_ difference between the input pulse and output pulse by measuring the time difference and knowing the frequency. They don’t have to line up at no load; just an offset you calibrate out.

        This is just an example. I bet you could get useable data with just a single pulse per rev (the index pulse on any resolution encoder). A little more complicated, as in would require more than just a 2 channel scope.

        Drat, I was hoping that someone _else_ would take this idea and run with it. Now you are going to make me try it to _prove_ that it works… darn you!! :-)

        Earlier (weeks ago?) I cut and pasted a procedure where you load the stepper until it stalls while measuring the peak current (and voltage at that time). The person who came up with that compared it to results found on a calibrated dyno and unbelievably found them to agree within a few percent. Should be simpler than what you came up with (nothing to build).

        I also gave some thought to a rotational inertia dyno, but didn’t spend much more time thinking about it because it couldn’t measure the mid-band resonance (the flywheel would dampen it out). Not sure why I really wanted to measure mid-band resonance anyway; as soon as you hook your stepper to a different load (like a mill or Thing-o-matic or whatever…) the mid-band resonance of the system will likely change.

        – Steven Ciciora

        1. you are going to make me try it

          Alas! My devilish plan has been exposed!

          useable data with just a single pulse per rev

          That would work better with an actual encoder than the printed wheel & optical interrupter switch I’m using. The pulse transitions are way too slow for any meaningful results compared with a microstep.

          load the stepper until it stalls while measuring the peak current (and voltage at that time)

          That technique was applied to a DC motor, where it will work fine.

          Remember that microstepping stepper drivers do active current control, so the winding current is pretty much the same even after the motor stalls and the voltage across the winding is pretty much the power supply voltage all the time. Steppers are constant power devices, so the input doesn’t tell you a lot about what the output is doing…

        2. Take a look at the austrian microsystems AS5045. You stick a magnet on the end of the shaft, and put the AS5045 up close, and it’ll tell you the angle of the shaft to 1/4096 of a circle. It’s good up to somewhere near 30,000 rpm. I’ve written arduino code for reading the digital output from the chip. (I sell dev boards for the chip and its 1/1024 cousin, but the code’s free.)
          I’ve been messing about with the same thing you’re talking about, trying to measure current flow through the motor and the lag between sending a pulse and getting the stage to move to the commanded position to try to detect incipient stall or crash. I haven’t gotten anything really grat yet, but I’m hopeful.

  2. It seems like the load motor would be highly non-linear. I do not have math to back that up, but when spinning one by hand there seem to be distinct discontinuities. I would think a brake would leave much less to guesswork.

    How are you going to get torque for your torque vs speed plot? Infer it from electrical?

    1. the load motor would be highly non-linear

      Breathtakingly so, but some rough-and-ready measurements beat nothing at all…

      For a given output resistor (or pair of ’em), the power varies roughly as the square of the rotational speed: voltage is linear with speed (a plot coming soon), power in the resistor varies as the square of the voltage.

      Torque is power/speed, so basically you (well, I) measure the total power (including that in the winding resistance) and divide by speed. Some fiddling with RMS and peak values will be useful, because torque varies as the peak current, but the two windings give juice in quadrature and need the Pythagorean / vector sum; measure RMS power, add together, divide, get peak torque.

      a brake would leave much less to guesswork.

      I’m not convinced I can do one justice, if only because getting any friction load is easy, but setting and getting a constant load while reading off voltage and force and current seems iffy… particularly when the motor is about to stall in the middle of the festivities.

      distinct discontinuities

      That’s the detent torque, which is a few percent of the maximum torque. As nearly as I can tell, it’ll be lost in the roundoff with all the other errors in this thing. I’ll be doing the measurements close to the maximum torque anyway, soooo

      I’d use a DC motor, but then I’d have to figure out how to mount it and measure the internal resistances and work with pulsating DC output and all that seems even messier.

  3. I haven’t thought this through, but would an inertial dynamometer work for your purposes? Basically it would be just a flywheel with a position encoder. Torque is proportional to angular acceleration.

    1. an inertial dynamometer

      Hadn’t thought of that one. The only catch I can think of is that it would require many pulses per revolution with correspondingly high-resolution time measurement to get good velocity resolution. Computing acceleration from noisy velocity is ugly, but I don’t see anything inherently impossible. Heck, maybe it could even benefit from an Arduino! [grin]

      Assuming good-enough accuracy for the flywheel’s moment of inertia, then the acceleration falls directly out: a nice touch!

      Another thought: you’d need high-resolution control of the motor drive pulse timing, too.

      That CC column just went read-only, but I’ll doodle up some numbers in a while. I like it!


  4. From left field – Not having enough knowledge and just needing to learn.

    Would a brushed/brushless DC motor be a match to run your steppers against? The output would not be stepped (digital) but smooth (analog)? This would then transfer the entire motion of the stepper to create a closely associated voltage/current output for measurements?

    Ed, keep the language simple. This is stretching the brain already. I don’t want to fry brain cells on this question. I just want to stretch them for growth. ;-)

    1. Part of what I wanted to do here is Keep It Simple: a permanent magnet motor can serve as a perfectly good alternator, but anything more complex than that probably isn’t worth the effort.

      In particular, driving the load motor (the generator / alternator) with a current introduces all manner of calibration issues. Believe it or not, I really didn’t want this thing to turn into a career… [grin]

Comments are closed.