View Single Post
Old 10-14-2014, 07:26 AM   #1198 (permalink)
MPaulHolmes's Avatar
Join Date: Feb 2008
Location: Maricopa, AZ (sort of. Actually outside of town)
Posts: 3,832

Michael's Electric Beetle - '71 Volkswagen Superbeetle 500000
Thanks: 1,368
Thanked 1,135 Times in 749 Posts
yes. you sure can write it that way. i hadn't thought about it. i had always just thought of it as multiplying the rps by 16 for more resolution. so, about 2400 RPM.

high rpm and field weakening have been a challenge, with some surprises. The PI loops were tuned very fast, which means huge voltage swings to get the current to match the desired current. The problem is, at 72vdc on that motor, at around 390 Rev/ (16sec), if you are commanding the torque and field components to be some fixed value, you run out of voltage. If you still insist on holding them constant, the PI loop blasts the Vd and Vq voltages to kingdom come. They of course have to be clamped, and transformed back to the 3 phase voltages, and theres the problem. unfortunately you can't clamp Vd and Vq separately. you have to clamp the distance of 《Vd,Vq》to the origin. So, when Vd goes stupidly big (like a jump from 800 to 6000), Vq wants to be left alone, holding the torque component constant at, say, 800. but now we have to clamp the distance 《6000, 800》to a radius of 1729 (that happens to be the radius). that means the new value of 《Vd,Vq》 is something like 《1700,220》. well, through no fault of his own, the torque component was cut way down. But the torque component PI loop is still trying to force Iq back to what was commanded (say, 800). So, you get angry fighting between the torque and field, trying to hog all available voltage so their respective current can be the commanded value. so the field is all over the place, and so is the torque component. this does not make for a very smoothly sounding motor when that happens!

So, I was trying various things so hitting the rpm ceiling doesn't cause a problem. Now this is like 50VAC on a 480VAC motor, so of course it would have an issue of running out of voltage. But it would be nice to deal with the high rpm case all the same. Here is what I have tried:
reduce Id linearly from rpm1 to rpm2. That works OK, but needs to depend on Iq too.
Each time a clamp is about to happen, reduce the clamped variable's current commanded value. That works really well, but it needs to be fine tuned.
kits and boards

Last edited by MPaulHolmes; 10-14-2014 at 07:36 AM..
  Reply With Quote
The Following 2 Users Say Thank You to MPaulHolmes For This Useful Post:
e*clipse (10-14-2014), thingstodo (10-14-2014)