PWM and controller heat

swbluto

10 TW
Joined
May 30, 2008
Messages
9,430
Hello, I was wanting to know what evidence and calculations have people done on controller heat and PWM. It's posited by many in the RC forums that partial throttle greatly increases the temperature of the controller which is largely due to the ohmic region of mosfets during switching. However, is that really the case? People have put up "nice and pretty graphics" WITHOUT numbers and I can definitely tell the graphics have been exaggerated for purposes of demonstration, but people have furthermore taken the ill-proportioned graphics as direct evidence as to the magnitude of mosfet heating during the ohmic region.

So, I did some quickie calculations based on the 3006 Fairchild mosfet (A mosfet a little better than the 4110) and found that, yes, PWM resulted in average power dissipation on the order of 10 to 40 times as much during switching than when fully turned on. So, yes, everybody is correct that more heat is generated during switching than when the mosfet is fully turned on.

However, heat alone is somewhat misleading - the amount of "heating up" will also depend on the duration. One can dissipate 1 MW of power, but if you're dissipating that much for exactly one picosecond, you're only dissipating 1 milliJoule of thermal energy.

So, let's talk about duration. The amount of time to charge the gate's capacitor will depend on the gate resistance and the gate's capacitance as it's an RC circuit - there's also some ringing due to stray inductance, but we'll assume proper circuit design has minimized this (I wouldn't assume too much from cheap chinese electronics). The 3006 has a gate capacitance of ~7000 pf. With a 10 ohm gate resistor, the time constant is RC which is 10*7000*10^-12 = 7 x 10^-8 S = 70 nS: For "fully on", we'll assume two time constants which would be around 140 nS or .14 uS. The period of a 10 khz PWM signal is 100 uS - if the duty cycle is 50%, the on time is about 50 uS. Since there will be an on and off transition for the mosfet's ON time, the time to compare one transition with for heat generation will be 25 uS.

I calculated the heat generation for a mosfet at 50 watts when fully on when passing 130 amps in a "typical circuit". (It'll actually be lower in real life because any sane designer will parallel more mosfets, but it's OK for comparison purposes.) The same mosfet in that typical situation would generate something like 500-1000 watts when switching.

Thermal energy = power * time.

So,

The on-period's energy = 50 watts * 25 uS = 0.00125 joules
The switching energy = 1000 watts * .14 uS = 0.00014 joules.

The "heat" generated from being on is 10 times greater than the heat from switching in this "typical" example. However, the gate resistance is pretty critical. If the gate resistor is 100 ohm instead of the 10 ohm, it'd take 10 times as long to switch which would mean the switching would generate more heat than for the mosfet to just be simply fully on.

So, it appears that switching time has a lot to do with it. Anybody know typical controller gate resistances?

For 10 ohms, it appears the on-resistance dominates heat generation for this stellar mosfet. For 100 ohms, it appears the switching losses would dominate heat generation.

For those with crappier mosfets with higher resistances and/or higher gate capacitances, the results might turn out differently. Also, non-even current sharing during switching and/or pulse periods might also result in too high instantaneous power loss in a mosfet at a given moment resulting in instant FET destruction however proper circuit design should minimize this possibility.
 
wrobinson0413 said:
The question that you should have asked is what the typical turnon turnoff times are. After all that is more suited for calculating the amount of joules being dissipated during the switching instants. For my designs, the fets are typically switching at 650ns to 1000ns turn on time, and 250ns to 400ns turn off. When I reversed engineered the discrete drivers used in a lot of the chinese controllers with Jeremy, I did a pspice simulation on it which showed roughly ~3usec turn on time and turn off ~1.3usec which is fairly slow(I think that it is actually about half that for real hardware ).

Indeed. It was a question I had in mind, but I didn't expect anyone to go out and scope the gate_source voltage let alone do pspice simulations but it looks like I was lucky enough to get a respondent who did. Kudos.

Anyways, that's pretty interesting to learn that the turn on time is .65-1 uS with a 10-15R resistor. I did know that the gate capacitance increases with increasing V_ds, but I've only seen increases of 20% or less so it didn't seem *that* significant for higher voltages. However, 20% greater turn on time would increase the switching losses by quite a bit relative to the fully on state.

With 3 uS turn on times for chinese controllers, that would explain why they would get quite hot under partial throttle.

So, assuming that the average switching energy is 10 times as much as I originally conjectured due to 10 times the switching time, it appears that the turn on dissipates as much energy (Even a little more) as half the on time at 50% throttle. So, if that's true, that would suggest that the controller would dissipate more energy per unit time at partial throttle above 50% throttle. Of course, in real life, the variables will vary by a bit so this doesn't apply to everything.

So, let's say someone has the partial throttle at 70%. The energy / time is higher than full throttle, and given the fact that ones going slower, than the controller will be hotter than otherwise assuming insufficient cooling over a given distance. This seems to agree with my experience.

However, the heat at really low throttle should be slightly less than higher partial throttle due to the less ON time, but the time will also be longer over a given distance due to the slower speed, so assuming insufficient cooling, the controller would be even hotter at lower throttle over a given distance.

The numbers and equations seem to agree with common experience. 'Tis good. Finally, a solid understanding has been achieved.

(Fechter mentioned that he found switching losses to be less than ON resistance losses and he's a veritable expert but who knows, maybe he was testing at no load or something? According to your experiences, it appears this will differ depending on the controller. I wonder what castle's on time is?)

Oh yeah, to respond to an earlier claim about insufficient turn on times due to high capacitances despite several peak amps available, I was under the impression gate resistors rendered the "peak amps" useless. At 12v, 10 ohms results in 1.2 A and so a 4+ amp driver is pretty much useless.
 
wrobinson0413 said:
The charging up of this capacitance is not a simple RC time constant.

What do you mean by that? Are you saying that the capacitance varies depending on several other variables (like V_ds) and so it's "not a simple RC time constant"? Or is that, even after capacitance is determined after those variables are taken into account, that a simple RC time constant can't be used?

If the latter, then is it due just to the drive circuit? It seems as if you're saying that it just can't supply enough amps to satisfy the "simple RC time constant" equation. However, 12V and 10 ohms should result in a 1.2 peak amps, and that should be easy peasy for a 4 amp driver. Or are you mainly thinking of stray inductance in the circuit that limit the rate of current increase? That would be a problem of the circuit design and not the "concept itself", no? Or is that really inherent and significant in all designs, no matter how good or "perfect" the design is? By minimizing the supply, gate, source drive loop, one would minimize the stray inductance to nothing, yes? And if one can minimize it to any arbitrary desired value, then one can make it insignificant, yes?
 
Here is something to blow your mind Swbluto.

Lets pretend FETs switch instantly (which they don't) but just ignore any losses from delta-resistance across the gate being <infinity.

PWM multiplies battery current, and the battery current is not indicative of the fet heating current until you're at 100% duty.


If the controller is drawing 50amps from the battery at 100% duty cycle, the FETs feel the heat load of 50amps of current.

If the controller is drawing 50amps from the battery at 50% duty cycle, the FETs feel the heat load of 100amps of current, but for half the time.

Like Jeremy has worked out, the current loads on the FETs can easily jump to 3-4 times the battery current during PWM current limiting by the controller.

The proof for this is very simple when you view it from an energy perspective, which is how the infinions have the settings for limiting phase current, not just battery current. They have no shunts to measure phase current, but it doesn't matter, because they know the PWM% and the battery current, so they can calculate the phase currents.


If your controller is limiting max battery current to some fixed amount, lets say 50amps and lets say the battery voltage is 50v. So the controller is drawing a constant 2,500w while you're in the current limiting stage of acceleration.

The PWM + inductor (motor windings) circuit results in the phase voltage being roughly cut in half when the duty cycle is 50%. (you understand this part right?)

The controller is still drawing 2500w, but it's outputting half the voltage, meaning the average phase current is TWICE the average phase current at 100% duty cycle with 2500w input (like the moment the motor reaches a speed that the controller no longer needs to use PWM to limit battery current.)

The controller eats few percent on it's own, so it's not exactly double or exactly inverse linear with PWM, but it's close enough for our needs.
 
liveforphysics said:
If the controller is drawing 50amps from the battery at 100% duty cycle, the FETs feel the heat load of 50amps of current.

If the controller is drawing 50amps from the battery at 50% duty cycle, the FETs feel the heat load of 100amps of current, but for half the time.

Your example entails different motor torque loadings which entails DIFFERENT situations.

A "given situation" is what we're discussing here as people have noticed that lower throttle / slower in a "given situation" / "in the same situation" results in greater controller temperature. This post is to discuss why / the validity of different hypotheses. Your examples do not address that as the motor current isn't just going to magically jump because you decreased the throttle and introduced PWM. Its like your example is addressing the difference between a person on the flat, and someone going up a hill. Well, yeah, the heat's going to be different - the load is different.

In real life, if you've hit the current limit, typically decreasing the throttle doesn't do jack because the controller's duty cycle is below the duty cycle "requested" by the throttle. It doesn't decrease the duty cycle until the duty cycle request is below whatever it's operating at.
 
swbluto said:
liveforphysics said:
If the controller is drawing 50amps from the battery at 100% duty cycle, the FETs feel the heat load of 50amps of current.

If the controller is drawing 50amps from the battery at 50% duty cycle, the FETs feel the heat load of 100amps of current, but for half the time.

Your example entails different motor torque loadings which entails DIFFERENT situations.


I was seeing those situations as PWM cycle being a factor of BEMF. In other words, when you're at lower speeds vs higher speeds... No hills or whatever involved, after all, neither the motor or controller have an inclinometer in them to tell them you're on a hill... lol ;)
 
liveforphysics said:
swbluto said:
liveforphysics said:
If the controller is drawing 50amps from the battery at 100% duty cycle, the FETs feel the heat load of 50amps of current.

If the controller is drawing 50amps from the battery at 50% duty cycle, the FETs feel the heat load of 100amps of current, but for half the time.

Your example entails different motor torque loadings which entails DIFFERENT situations.


I was seeing those situations as PWM cycle being a factor of BEMF. In other words, when you're at lower speeds vs higher speeds... No hills or whatever involved, after all, neither the motor or controller have an inclinometer in them to tell them you're on a hill... lol ;)

And why would your motor need more torque at lower speeds that a lower throttle would correspond to? I think we're on the same page that motor torque corresponds to a constant multiple of motor current.

The hill versus flats was just an example of "different loadings", i.e., high versus low. "high speed" and "low speed" is just another example of that, that is different loadings, high versus low. Notice, a low speed in a given situation doesn't require more torque. Quite the opposite.
 
swbluto said:
Notice, a low speed in a given situation doesn't require more torque. Quite the opposite.


Umm... Are you saying 99% of the time people don't just pin the throttle to take off from a stop every stoplight or stopsign or whatever? Isn't the typical way of riding an e-bike (perticularly anything lower powered) is just to pin the throttle until it's time to coast or stop again?

It doesn't matter what torque the situation demands. The controller (if it's current limited) is almost instantly on current limit the moment you start out, and stays on current limit until you get up to enough speed the BEMF makes PWM voltage reduction not needed.

I think a lot of typical E-bike setups, like things with maybe 20amp 48v controllers and a hubmotor never even get out of PWM current limiting unless they picked a very high turn-count winding.
 
swbluto - I looked for my post with the FET swithching times I measured about a year ago on a 12FET infinion controller... but could not find it. This old post may be of interest to you though, but you will have to change the switch on time to something over 1us (Instead of the 400ns I assumed at the time).Infineon transistor modification

Minimizing switching times is a whole story in itself, and one can get obsessed with *only* this for a very long time. I know I spent huge amounts of time thinking about this, and reflecting on the best physical layout to achieve ever faster switching times (along with clean waveforms of course). Wayne (wrobinson) is one of the most knowlegeable members here when it comes to the subleties of FET switching, from who I have learned a few very important points (including how to spot when we are switching the FETs too fast --> Cgd induced turn-on blip). Anyways, here's a post of his about the infinion's FET drivers, including simulated waveforms. As he mentioned above, the real transistion times are less than half of that, I seem to recall measuring ~300ns Off and ~1300ns On (but it was a year ago).
 
Glad you mentioned gate bounce zap-pat.

I used a 7amp (biggest I could find) fet driver in my cell testing circuit. I ran 8 x TO247 FETs. I started out with 5ohm gate drive resistors, and the thing would plasma ball on me in about 5 seconds, never even getting the copper heatsink warm. Bigmoose told me to try some 100ohm gate drive resistors, and whoa! It ran fantasticly stable and cool. On paper, it should be like 20times more switching loss. In practice, just eliminateing the gate bounce was all the help the circuit needed.
 
liveforphysics said:
swbluto said:
Notice, a low speed in a given situation doesn't require more torque. Quite the opposite.


Umm... Are you saying 99% of the time people don't just pin the throttle to take off from a stop every stoplight or stopsign or whatever? Isn't the typical way of riding an e-bike (perticularly anything lower powered) is just to pin the throttle until it's time to coast or stop again?

It doesn't matter what torque the situation demands. The controller (if it's current limited) is almost instantly on current limit the moment you start out, and stays on current limit until you get up to enough speed the BEMF makes PWM voltage reduction not needed.

I think a lot of typical E-bike setups, like things with maybe 20amp 48v controllers and a hubmotor never even get out of PWM current limiting unless they picked a very high turn-count winding.

If they do or don't is beside the point of my original post. I'll agree with you that different situations produce different heats (i.e., full throttle current limit at a stop and full throttle at while cruising), but that doesn't explain why PWM *itself* is so significant for an arbitrary situation, other than some arbitrary situations draw a lot of current and ... etc.
 
OK, I have new data!

You guys have to assume I'm looking at this mosfet, http://www.fairchildsemi.com/ds/FD%2FFDP030N06.pdf, which is the one I have.

So you're telling me it's unrealistic to switch below 1 uS?

Nevermind that it states the input capacitance (I think they already summed the V_gd and V_gs capacitance) is 7000-10,000 pf which is what my original calculations were based on, it actually explicitly states the turn on time! (For the following parameters: VDD = 30V, ID = 75A VGS = 10V, RGEN = 4.7Ohm)

It says a typical turn on time is 217 nS (Sum of delay and rise time), whereas a max turn on time is 453 nS. In your experiences where you cite ~1 uS (1000 nS) turn on times, is the difference due to a different mosfet you're thinking of? Or is it due to a significant difference in the input parameters? 75 Amps is a pretty healthy test current, as that would be equivalent to an 225 amp phase current with an 18 fet controller, and everyone said greater current = greater switching times. So then I'm thinking the difference is probably the input voltage - what, no one's operating at 30V? But then I'm thinking it's the gate resistance (And I assume RGEN is that, so yours is like 2-3x as much.). I'm thinking probably a combination of gate resistance and input voltage.

Anyways, assuming you're referring to the 4110 which has a higher gate capacitance and is usually operated at higher V_ds, extrapolating from this datasheet, it seems something like 600 nS - 1 uS might be reasonable. It just seems so much worse than the above mosfet, and I want to know why. Is it really just the higher V_ds? Or is that datasheet just *sooo* misleading?
 
swbluto said:
OK, I have new data!

You guys have to assume I'm looking at this mosfet, http://www.fairchildsemi.com/ds/FD%2FFDP030N06.pdf, which is the one I have.

So you're telling me it's unrealistic to switch below 1 uS?

Nevermind that it states the input capacitance (I think they already summed the V_gd and V_gs capacitance) is 7000-10,000 pf which is what my original calculations were based on, it actually explicitly states the turn on time! (For the following parameters: VDD = 30V, ID = 75A VGS = 10V, RGEN = 4.7Ohm)

It says a typical turn on time is 217 nS (Sum of delay and rise time), whereas a max turn on time is 453 nS. In your experiences where you cite ~1 uS (1000 nS) turn on times, is the difference due to a different mosfet you're thinking of? Or is it due to a significant difference in the input parameters? 75 Amps is a pretty healthy test current, as that would be equivalent to an 225 amp phase current with an 18 fet controller, and everyone said greater current = greater switching times. So then I'm thinking the difference is probably the input voltage - what, no one's operating at 30V? But then I'm thinking it's the gate resistance (And I assume RGEN is that, so yours is like 2-3x as much.). I'm thinking probably a combination of gate resistance and input voltage.

Anyways, assuming you're referring to the 4110 which has a higher gate capacitance and is usually operated at higher V_ds, extrapolating from this datasheet, it seems something like 600 nS - 1 uS might be reasonable. It just seems so much worse than the above mosfet, and I want to know why. Is it really just the higher V_ds? Or is that datasheet just *sooo* misleading?

One word probably explains these numbers: LAYOUT.

As LFP has experienced (in his own extreme way :wink: ), you can only switch your FETs as fast as your *whole* switching circuit will permit you to. Ths is true anyways for slack layouts like these controllers have, and thus choosing better-performing switching FETs (better Cgd/Cgs ratio...) wont really help in this case. When you're trying to switch high currents really fast, you have to deal with the enormous spikes generated in the switching path... or actually you want to make your layout so snug and clean that there's hardly any inductance in your FET branches, and have excellent high frequency bypassing for what's left.

I bet that Luke toasted his FETs by having *huge* shoot-through currents when his high side and low side FETs were conducting together. His bypass caps must have been getting pretty toasty pretty fast too! I know of this by having done the exact same thing of course... :p
 
The theoretical turn on time (and turn off time for that matter) given on a data sheet is just the value that the manufacturer managed to measure using the test circuit (which is often also on the data sheet). Sure, you can achieve the datasheet turn on and turn off times IF you use their test circuit and layout. The snag is, the test circuit more often than not uses a megabucks pulse generator to drive it, one with extremely fast edges and an extremely low source impedance, and also uses a drive circuit layout that doesn't resemble the sort of practical circuit we can achieve in an ebike controller.

I'd guess that we'd be lucky to get turn on times of better than around 1uS in a practical ebike controller, maybe slower. The PCB layout will be a limit, as will the relatively slow edges coming from the microcontroller that's driving the gate driver. Add in the effect of limited gate drive current and a bit of stray capacitance and the gate signals pretty soon get slugged down into the uS region.

Jeremy
 
Jeremy Harris said:
The theoretical turn on time (and turn off time for that matter) given on a data sheet is just the value that the manufacturer managed to measure using the test circuit (which is often also on the data sheet). Sure, you can achieve the datasheet turn on and turn off times IF you use their test circuit and layout. The snag is, the test circuit more often than not uses a megabucks pulse generator to drive it, one with extremely fast edges and an extremely low source impedance, and also uses a drive circuit layout that doesn't resemble the sort of practical circuit we can achieve in an ebike controller.

I'd guess that we'd be lucky to get turn on times of better than around 1uS in a practical ebike controller, maybe slower. The PCB layout will be a limit, as will the relatively slow edges coming from the microcontroller that's driving the gate driver. Add in the effect of limited gate drive current and a bit of stray capacitance and the gate signals pretty soon get slugged down into the uS region.

Jeremy
All very true, however I don't think that the MCU --> gate driver signal paths are a limiting factor in most practical controllers, since they are very low current signals at logic levels. The gate driver <--> FET path layout is much more important, and even more so is the power stage (FETs, HF bypass caps). At each of these stages the current levels involved go up by 100X or more, so things get more complicated as you go along. I guess if use use optocouplers between your MCU and gate driver then signal transition speed and delays can become a problem for sure... I've tried that, but it's much better to have a low noise design and dump the isolation if you're aiming for performance and simplicity.

Pat
 
Hey, trying to incorprate inductance into my simulator, I was reviewing justin's post at http://endless-sphere.com/forums/viewtopic.php?f=2&t=6892&start=105 and I'm looking at this graphic.

file.php


Starting left and looking at the amps, I noticed that there's a "sudden rise" in the first wave and then it sharply rotates to a "gentle rise"... and then it peaks, slightly decreases, gently rises again and then "suddenly falls".

I take it the "sudden rise" part is the part where the two mosfets are turning on: that's the "Turn on" time, right? According to the chart, that looks like it's 300 uS. I don't know where people are getting their 1000 uS figures...

Wait... EDIT... it appears I should be looking at the Volts line as that's what the mosfet "lets through" (current is affected by inductance as well); looking at that, it looks like the mosfet takes around 200 uS to "turn on". That's very different from other people's calculations...
 
swbluto said:
Hey, trying to incorprate inductance into my simulator, I was reviewing justin's post at http://endless-sphere.com/forums/viewtopic.php?f=2&t=6892&start=105 and I'm looking at this graphic.

file.php


Starting left and looking at the amps, I noticed that there's a "sudden rise" in the first wave and then it sharply rotates to a "gentle rise"... and then it peaks, slightly decreases, gently rises again and then "suddenly falls".

I take it the "sudden rise" part is the part where the two mosfets are turning on: that's the "Turn on" time, right? According to the chart, that looks like it's 300 uS. I don't know where people are getting their 1000 uS figures...

Wait... EDIT... it appears I should be looking at the Volts line as that's what the mosfet "lets through" (current is affected by inductance as well); looking at that, it looks like the mosfet takes around 200 uS to "turn on". That's very different from other people's calculations...

You are confused with your time units refered to here, swbluto! Divide your switching times by 1000, and you'll get 300nS-3000nS switching times instead of in microseconds. This makes much more sense, else how could these motor controllers be doing 20kHz PWM (50uS period)?

A 9C @ 510RPM as shown here yields about a 850uS commutation period, which looks like it fits well into Justin's graph.

The current ripple seen here is what happens when we drive a not-quite trapezoidal shaped BEMF producing BLDC motor with a simple square wave. The difference between the open circuit voltage produced by the motor and the controller's square output voltage produces the current ripple. The motor's resistance and inductance smooths this out somewhat (slows down delta I because of the RL filter). Justin's hub simulator gives R and L figures for many hub motors so you can experiment a bit with these figures.

This unwanted current/torque ripple is what causes most of the DD hub motor noise we talk about here sometimes, specially with lighter built hubs such as the 9C. The magnetic ripple must enter into resonnance with the 9C's structure at a certain speed, around 25-30km/h in a 26" wheel I believe.

Pat
 
Whoops, you're right zappat. I guess I get things off by a metric magnitude when I revisit threads from >2 months ago.

So, looking at the graph from 0 ms to 2 ms, the graph does a...

-Sharp rise
-gentle rise #1
-slight fall
-gentle rise #2
-Sharp fall

The sharp rise's rate is dictated by L/R ? And then "gentle rise #1", slight fall, "gentle rise #2" is called the "ripple" and due to non-matching BEMF? A part of the "slight fall" is due to the switching phase, right? Is the "sharp fall" 's rate also dictated by L/R? That is, if one were to calculate L/R, those sharp rises and falls would match it pretty closely?
 
Okay, so I'm thinking on this again and I'm wondering...

is it possible that IN THE SAME SITUATION (Say cruising speed on flat land), that the peak motor current is higher at lower throttle? It seemed bizarre to me, but now that I think about it, a motor with a low enough inductance will allow the full voltage to reach the stall current more quickly, after accounting for the bemf, while the lower bemf at lower throttle/speed allows for a greater peak current despite less average motor current and throttle?

Is this the reason why a controller may heat more at a lower duty cycle?
 
Back
Top