We left off last time with a new “Hybrid” drive that controls the magnitude of the motor’s current based on how large the rotor lagged behind the commanded step position.The larger the lag the more current is pumped into the winding to try to keep it from lagging more. It’s a linear relationship. If the rotor lags by ¼ of a full step then the winding current is approximately ¼ of 2 amps or ½ an amp. If it lags by ½ of a full step then the current is 1.0 amp.
So when the rotor gets to lagging by a full step the motor is producing its maximum torque at the maximum set current of 2 amps. At this point we set an output, based upon the 1 full step lag, to indicate that the machine needs service . The trip routine triggered by the lag will bump the maximum current by 10%, to say 2.25 amps. And that keeps the machine running as we wait for the machine to have some preventative maintenance.
Now if it’s like my car, we may not get to it right away and that’s okay, because the max current setting can keep on increasing all the way up to 3.0 amps. However, it can’t pump more current than this and if the rotor is still lagging by a full step when we hit 3.0 amps, then we better have the machine serviced and change the metaphorical “water pump” while we’re at it. Because we can’t get more torque out of the motor. It’s maxed out.
But wait a minute, we know from our previous postings that if we maintain a rotor-stator lag on 1 full step the motor will generate its maximum torque and it won’t stall. Stalling will only take place when the rotor lags by more than two full steps. What if we introduced another new concept? Our new “Hybrid” design is already tracking the rotor’s lag position by tracking the rotor’s encoder information in relation to the number of commanded steps that were directed to the stator.
When the rotor lags the stator’s position by, say 1.1 full steps, something slightly more than one full step, and the set current has been increased to its maximum, then why don’t we just skip sending some of the commanded steps to the stator? Sending them would just create a larger lag and possibly cause the motor to stall. Remember that the torque is going to decrease if the lag goes beyond one full step and the motor stalls when the lag gets beyond two full steps.
The idea is that we’re using the 1.1 full step rotor-stator lag information and making a choice as to whether or not the drive will send all the steps it has received to the stator. If it doesn’t send some and sends others, because the rotor is still in motion, it can maintain the stator-rotor lag relationship of 1.1 full steps. We’ll just count the steps we didn’t send and put them in our “back pocket.” And latter, when the move profile begins to slow down and the lag angle decreases, we’ll pull the same number that we put in our “back pocket” and put them back into the “step stream” at an appropriate place and time so we end up not missing any of the steps, and equally, or maybe even more important, the motor didn’t stall. That’s very servo like, don’t you think?
Remember we could be dealing with 256 micro steps per full step, so the “Hybrid” drive can be dealing with very small step increments. These small step increments make the removal and the insertion of the steps, along with when we do it, reasonably smooth and seamless.
Now we have two lines of stall defense in our “Hybrid” drive. One is the “variable current mode” and this new one, let’s call “position make up.”
Are we good or what?
More next time.