My understanding is, for motors with buried permanent magnets (high saliency they call it for some reason), you get some torque from the steel in the rotor, near the edges of the magnets, almost like an induction motor, and you get some torque from the buried magnets. To get the torque from both, you have to do a maximum torque per amp correction so that Id is negative (by some amount dictated by some hideously ugly formula based on several things including the "lambda" of the magnets, whatever that is). The correction isn't very hard to implement in the software though. Once you have the Id, then you can find how much of the rest of the current goes to Iq, based on the throttle command (you use the pythagorean theorem at that point to solve for Iq, since throttleCommand^2 = IdCommand^2 + IqCommand^2).
For a nonsalient motor (magnets on the surface) you have your throttle command, and you have to divvy it up between Id and Iq. Usually Id = 0, and Iq = throttleCommand. If you run out of voltage, and you don't like how fast the motor is spinning, you want to fight against the permanent magnets, you make Id negative, but then you waste some of the torque of the motor. But it's a tradeoff when you want the motor to spin faster (at the cost of lower torque).
|