Our last posting had us choosing a 3 amp motor that produce 75 oz-in of torque at 3000 FS/Sec. We chose to reduce the torque spec by 20 % to take into account the motor-to-motor manufacturing variations and then de-rated it from 60 oz-in (at 3 amps.)
Our application required only 40oz-in at 3000 FS/sec so we further de-rated it to 40 oz-in by operating it at only 2 amps. This produced a cooler running motor. Sweet!
So we happily go ahead and build our machine with our new drive and two years down the road it has produced lots of widgets and the mechanical mechanisms are getting a bit dirty. The torque requirement that we designed the machine to (40 oz-in) has been exceeded because of the normal wear and tear of the motion.
Oh, that reminds me, I need to take my car in for the 100,000 mile service and change the oil and the timing belt.
Sorry, where was I?
Oh yeah, we’ve learned a lot about steppers through this blog, we know that the maximum torque takes place when the rotor lags behind the stator’s position by one full step. So if we change our drive design to monitor this lag by adding an encoder (uSteps actually taken) and compare it to the number of uSteps sent to the motor by the control it will now know how far back the rotor is lagging. Thus, we have a way to track the relationship between the rotor and the stator’s position.
So what do we do with this information?
We know that the motor is rated to 3 amps and that we are only pumping 2 amps through it. So why don’t we let the drive decide how much current to pump. We can call this “variable current mode.”
If the rotor lags the stator by one full step then let it raise the current, which raises the torque that makes sure that the rotor is less than one full step behind the stator. It can raise the current all the way to 3 amps and safely generate 60 oz-in.
But wait a minute, what happens when we stop?
Let’s assume that there are no static forces trying to push the rotor out of position when it stops. Thus, the rotor would come very close, if not exactly to the commanded position and not be lagging at all. We could reduce the winding current to very low values and create even less motor heat. We could vary the current all the way up to 3 amps if there were forces that tried to move the rotor out of position. The drive would now control what current level is needed, not just some fixed programmed values.
Whoa, what a great idea!!!
Are we good or what?
Talk about taking the heat out of a stepper too!
Beyond using variable current control to control motor lead/lag (rotor vs stator), we could even turn a digital output on that tells us that the position (steps commanded vs steps taken) is leading or lagging by more than a preset threshold. This signal “flags” us that the mechanical system is getting a bit dirty and needs attention because the commanded motor steps were not taken.
Note that the motor didn’t stall; because the current needed to complete the move was supplied. It’s still working fine. We found out that the mechanical system was deteriorating because the position lag increased. That’s all. Once we “clean” the mechanical system it will operate just like it did for the past two years.
More design improvements next time.
I need to call and make an appointment for my car.