Motor inductance, controller PWM frequency vs BEMF & RPM

zombiess

10 MW
Joined
Jan 31, 2011
Messages
3,048
Location
Oklahoma City
Any of the gurus have a general formula for figuring out the minimum PWM frequency needed to keep low inductance motors happy?

I know the EB2XX controllers run at about 16khz based on a 100% throttle showing a 63uS period when in PWM (less than 100% throttle) as seen here.
eb236-scope01.jpg


At 100% throttle you can see the time on is close to the commutation time for the phase under measure, this is a reading of the high side at 100% throttle which shows no PWM at 46V into the controller under no load.
eb236-scope02.jpg


It's holding the FETs on for almost 2mS.

According to bigmoose's spreadsheet (if I'm reading it correctly and I'm guessing it's static as in not rotating at all) while in PWM my 18x4 Hubzilla motor with 275uH won't exceed about 29A on the FETs, but at 100% throttle where there is no PWM it's on for 2mS and the FETs then have to carry a 701A burst for that long if it's allowed to achieve 100% voltage at a dead stop or low RPM under a heavy load. I believe the Xie Chang controllers prevent this condition in most cases, but I have not had a bike under load and my scope probes on the gate drive to verify it. The fact that a 18 FET controller with three IRFB4115 FETs in parallel and current limits of 100A battery 130A phase leads me to believe that it does stay in PWM because a 700A burst for 2.0mS should exceed the current carrying capability of 3 paralleled IRFB4115 FETs at 125V.

If it did not stay in PWM and assuming equal load sharing of the FETs it would mean an 18 FET controller would have to dissipate 2850W in the bank of 3 FETs during that 2mS on time which I believe in most cases would mean pop goes the FETs. Assuming my 130A phase limit is actually working at 130A (and that's a big assumption) and not over shooting for too long I think that means my bank of 3 FETs is only having to cope with about 98W for 2.0mS if I'm against the current limit (we could probably back calculate the PWM % needed to hold this wattage) in this case which is easy for them to handle. The scope picture is showing the signal under a no load situation so even though it's at 100% on it was only drawing about 1.7A from the battery which means the power dissipated was only about 1/10th of a watt. The faster you spin the motor the shorter this period becomes and I believe the inductance increases. Starting from a dead stop or low RPM and pegging the throttle on the other hand could cause an over shoot condition until the current was clamped which could also blow FETs as some have experienced on here with low inductance motors on these controllers.

Now one of my questions is what happens to the inductance as RPM increases and BEMF starts to come into effect? Is there a formula to calculate this if you are able to find the knee point based on current limit settings and where the BEMF effect starts to happen? The knee is very visible in every motor simulation I've run and it's always best to be past it if you want things to be easier on your controller. I'm trying to understand the relationship between BEMF, motor inductance, PWM frequency and commutation speed (RPM).

Anyone care to help me out with some formulas on how to calculate the inductance once the motor is spinning?

I'm trying to learn more. I hope the way I worded this makes sense to those with and understanding of what I'm asking for.

Thanks.
 
I think we just need to look at the spread sheet to see what the max amps at a given amount of time would be and select a PWM frequency that works with that. But I do hope a GURU chimes in.!
 
zombiess said:
Lebowski said:
Inductance does NOT change !

Sure looks like it changes to me based on the stator vs magnet position when it's hooked up to my inductance meter, even when sitting static.

Yeah OK but that's only a little bit. I've had people asking me whether the motor inductance increases with
motor speed, and limit the motor current in that way. What you're seeing is the non-linearity of the motor
iron, I will try to use this in the next version of my motor controller IC to have sensorless startup under
heavy load (to have the same startup behavior as a sensored controller, but without the hall sensors).
 
Arlo1 said:
I think we just need to look at the spread sheet to see what the max amps at a given amount of time would be and select a PWM frequency that works with that. But I do hope a GURU chimes in.!

Link to BigMoose spreadsheet. http://www.endless-sphere.com/forums/viewtopic.php?f=30&t=29852#p431643
 
Yes, that spread sheet was "static" it does not bring back EMF into the equation.

The thought process that you want to think through is this control loop:
1) How do I measure phase current?
2) How do I react to phase current going above my limit?
3) How do I force commutation within the PWM period?

Then start refining that loop for speed. The latency from 1 to 3 must not exceed the available dI/dt * Time window that you have to play with before the FETs go "poof." The window is smallest when there is no back EMF, so things tend to go "poof" off the line from a standstill.

Most pick a 20 kHz PWM frequency to keep it above audible, but that frequency is not typically the best electrical choice for losses. It wants to be a bit lower. Of course high pole count, very high RPM motors will need a higher base PWM period than low pole count, low RPM motors for commutation. Just do the math and see where you stand.
 
bigmoose said:
Yes, that spread sheet was "static" it does not bring back EMF into the equation.

The thought process that you want to think through is this control loop:
1) How do I measure phase current?
2) How do I react to phase current going above my limit?
3) How do I force commutation within the PWM period?

Then start refining that loop for speed. The latency from 1 to 3 must not exceed the available dI/dt * Time window that you have to play with before the FETs go "poof." The window is smallest when there is no back EMF, so things tend to go "poof" off the line from a standstill.

Most pick a 20 kHz PWM frequency to keep it above audible, but that frequency is not typically the best electrical choice for losses. It wants to be a bit lower. Of course high pole count, very high RPM motors will need a higher base PWM period than low pole count, low RPM motors for commutation. Just do the math and see where you stand.

If they go poof due to lack of back emf why not have the option to add a time limit window and or limit the rise time to the gates, possibly by switching out an extra gate resistor in series once you are moving? Wouldn't that help alleviate some of the poof problem?

Do High rpm motors need the extra pwm time because they need more time to build the field up? You said higher base period so I'm thinking you mean lower frequency but did you really mean it that way or were you referring to a shorter base period with a longer pwm on% forr high pole count high rpm motors. I can see how that could make fets go poof by asking for too much out of them. That makes more sense to me but I'm far from fully understanding this yet.

Do any controllers use a high freq start for low L motors then vary the pwm frequency lower as it gets up to speed to improve efficiency?
 
SO from the chart if I was Motor A colossus to be limited to 150 phase amps thinking 200 amps is where the fets will pop then I would aim for 15uS max on time for the fets so then I would chose 65khz?? 1 second / 65,000 = .00001538 Is this right?? OK and the fail safe is with lebowski's chip if it reads over 150 amps we have it shut the phase down. It has settings for this in the setup manual. And if we want to use a different approach we have the SD pin on the fet drivers Im currently using ir2113 (I think they are) You can set up a flip flop as discussed in my not simple controller thread to latch the SD pin for the rest of the communication cycle.
 

Attachments

  • Capture  motorcurrents (800 x 441).jpg
    Capture motorcurrents (800 x 441).jpg
    65.6 KB · Views: 2,190
I have a similar problem with my system. I did not consider the inductance problem until my controller failed. Now I have to go back to basic electronics. ( The controller is a servo drive from A-M-C with IGBT switching as it a high voltage system , nominal 360 volts.) One equation (1) that is critical is E= -Ldi/dt, this is the back emf produced when you change the current flowing through an inductor. During the on pulse the current rises and the simplest configuration would be a resistor , R, ( the resistance of the phase ) in series with the inductance. The current follows an exponential based on the "time constant" L/R and ( equ. 1).
At the instant the pulse is ON the current starts to rise based on i=E/R(1-2.7^-(tR/L)) ( equ 2)where i=instantaneous current, R=phase resistance, L= phase inductance ( actually two phases for a Y 3 phase motor, and also for the resistance R, since the phases are in series ), t = time . E = voltage of the pulse in our use usually the battery volts, The ^ means power raised in math terminology the 2.7 is the base of natural logarithms called "e" in math.
So trying some typical numbers in static setup :
L= 200 microhenrys. ( just an aside here: the inductance for a motor is not a constant because it changes with the current due to the iron magnetization curve not being linear but as far as this explanation goes I am assuming it stays constant and anyway it becomes too messy to deal with ..!)
PWM frequency 10 khZ , R= .02 ohms, E= 100 volts. R/L is called the time constant and for us it is 200 x 10^-6/.02 =.01 seconds. Now t= pulse duration is 0.1/2 millsecs or 0.05 x 10^-3 seconds. so from equ 2.... i=100/0.02( 1-2.7^-(.05 /1000x100)) =5000 (1-2.7^-.005) = 5000( 1-0.995) = 24.9 amps...If there was no inductance the current would be 100/.02= 5000 amps. Now it is 3:00 AM and it is nearly 60 years since i did this kind of thinking so please cirrect as needed, but I think I have gist of the problems.
 
Back
Top