99% vw 100% PWM, does it make a difference?

zombiess

10 MW
Joined
Jan 31, 2011
Messages
3,048
Location
Oklahoma City
OK, decided it was time to brush up on my 3 phase operation and figure out if this is fact or fiction. I believe I have the basics of 3 phase operation down but I need to understand why some controllers will PWM one side but not the other and if that even matters for controllers that use the same mode of operation as the Xie Chang based ones currently do.

Keeping PWM on the high side helps to deal with low inductance by keeping the current from spiking out of control due to being interrupted frequently, the more frequently this happens the lower the current peak reaches, how high it gets is determined by the inductance, lower inductance equals higher di/dt which means lower inductance motors spike faster and need more control. The low side on the Xie Chang controllers many of us run is fully on. If I have my 3 phase BLDC commutation correct that means that any phases low side experiences the a full on time current for the 2/3rd the time it takes a BLDC to move to the next commutation block. Therefore the more poles the shorter this time of stress is on the low side FETs (or high side FETs if they are held at 100% PWM).

If the high side is in PWM and the low side is just held on, isn't it too under the effect of PWM since the PWM'd high side is completing the circuit through it.

i.e.
Phase A in PWM
Phase B full on completing the circuit from A to B
Phase C Off

next step

Phase A in PWM
Phase B Off
Phase C full on completing the circuit from A to C

Next step

Phase A in OFF
Phase B PWM
Phase C full on completing the circuit from B to C
.
.
etc



If this is infact the case, then holding the PWM to 99% on the high or low side (depending on what the controller does, high side for Xie Chang aka "Infineon") should protect both the low and high side FETs.

Going to full block commutation at 100% PWM aka no PWM works OK on what most consider high inductance motors with many poles because the controllers limit the input battery current and output phase current.

I am bringing this up because I was looking at one of my test controllers I destroyed the low side FETs on and some discussions I have had with Arlo1 and John in CR. I am continuing to work on some 3 phase driver / power stages and want to make sure I have my theory of operation correct, at least for this simple method of control.

I believe I popped the low side because it just happened to be weaker than the high side. All 3 FETs failed on the low side and it was a cascading destruction as noticed by the failure being more severe sequentially from left to right leading me to guess the far right FET (the one with the least damage, a very tiny hole) occurred first until the last FET, the left most one with a hole the size of a pin head and the middle one having a hole in between the size of the other 2. This was a minor failure by board standards, no smoke soot or bangs, just stopped working after I programmed in some ambitious settings and got on it hard from a dead stop with a 30uH 23 pole motor, controller was set to 99% PWM.
 
I think you have it Jeremy. Yes the PWM on only one side is to save BOTH sets of fets You will have a High side Doing PWM on one side of the motor and a differnt Low side turned on, on the other side of the motor and when the Hi side is off current is dropping which will save both sets of fets.

SO in another thread you said the Hi side will stay in pwm at 99% so it only saves the HI side... This is wrong it will hopefully save BOTH sets of fets if (BIG IF) done right.
In reality it is very possible it will cause higher switching losses in the Hi side fets causing them to fail.... Depends on your case.

IN my case there is almost NO chance a controller like this can ever run Colossus without external inductance or rewinding for more inductance (lower KV)
I will spend some time trying the 99% PWM thing.
I will also fet match one and change out the caps to better ones and maybe add some more... This will be in time Im very buisy but I do want to try this 1 more time now that I know more and have a dyno and good scope....

Now the PWM on both sides.....
This will give you a benefit of a few things
1 It will let you get the same as 2 x the PWM of a normal 1 sided PWMing controller. Yes china controller at 16 kHz is the same as 8 khz in a center aligned PWM controller with PWM on both sides.
2 It will let you turn on the opposite fet in an H bridge just after the fet flowing the current is shut off to help reduce diode losses... :)

Confused yet?
 
I don't think it matters whether you PWM the high side or the low side if you have independent supplies. If you bootstrap the cap for the high side you have to recharge it.

A lot of this is layout I think. Even a half a cm can make a difference. The levels folks here are taking these controllers is way out of the normal reliability envelope. Zomb you found the advantages and the need to plateau match the FETs and John has gone to multiple controllers. At the dI/dt levels of these low inductance motors I think laminated bus bars in the controller are necessary technically and inverter rated rail caps. But no one will pay the resultant costs and the size will be 2 to 3 times the infineon size. 300/400 phase amps is a whole different world than 100! You pioneers have found that out and shared it openly. The laws of physics come into play especially if there is an I^2 term involved.

Look at the phase currents the commercial guys are doing with the technology. They can spend a million bucks on modeling the layout to get their performance and reliability. To think we can swing more current faster than an industrial baseline is highly optimistic. You can run high voltage, say 400 volt busses, in a car; but I don't think that is safe on a bicycle. One can debate it on a motorcycle. In order to get the phase amps down. I think bicycles will stay below 60 or 70 volts for safety, and above about 150 to 170 I think you enter another world with respect to real safety. Not just nanny state safety, but real safety with that level of DC floating around.
 
My point has always been that the controllers can't get to 100% duty until the motor is at sufficiently high rpm that BEMF keeps it safe. The only time I've ever blown a controller was at well below half speed, so regardless of throttle position it was less than full duty. The only hint that I've seen the controller go to full duty too soon was with one rig that with certain current limit settings I experienced a burst of extra thrust during acceleration somewhere around 50% of top speed. The controller never blew and that symptom grew weaker and then went away as I turned the current limits higher. I always attributed it to a mismatch in point where the phase current limit was dominant and the battery current limit took over. That system is shelved right now and not on a bike, or I would set the current limits to where the burst of thrust is strongest, and then try 99% vs 100%.

I've been unable to find an explanation of high side vs low side. One side lets battery current through, and the current flows through the motor and back up one of the other phases to return to the other terminal of the battery. Having one side on for the duration of that portion of the commutation, and the other side handling the on/off switching of PWM makes perfect sense too me.

Regarding 100% or 99% settings, what is that top box in the programmer that has 99% as the max selection, ie no 100% offered? It's called limit speed.

FWIW, I did try 99% with the pair of Zombiess 24fet high voltage controllers I'm running now, but I couldn't tell any difference in performance or controller temps. That doesn't say much though because I very rarely get to 100% throttle. I don't go on the highway much and that 4 lane divided roadway is the only place traffic is spaced enough to feel safe getting on the throttle more than just short bursts.
 
I think we need some more testing on this.... I have the equipment. My inertia dyno puts a very good load on a ebike I will try to get a test maybe tomorow as we charge them up before I ship my brother off to the plane. I will just be looking at a rpm where full block time starts with 100% vs 99 and I should be able to put a phase wire in my dyno current sensor to see phase currents as well. I will just be useing a cheep electric scooter motor in a drift trike with up graded phase wire run by a 12 fet on 84 v (20s) for this.
 
John in CR, for what it's worth the Xie Chang controllers will command 100% throttle at any RPM as far as I can tell. I tested this with my scope and pegging the throttle WOT by shorting it to the +4.5V (with the safety disabled) as my trigger point while watching the gate signal. 100% throttle = 100% PWM aka no PWM if you command it at any speed, these controllers are nothing more than simple speed controllers. The Limit speed option in the software is if you want to set a "speed limiter" function in the controller from what I understand in the instructions. If you jumper the SL connection to ground this setting takes effect. Never played with it myself, just read the Xie Chang documentation I translated using Google and my extremely basic (but still useful) understanding of Chinese.

Bigmoose, I completely agree with everything you said, especially about the voltage; I treat all packs with respect, my 125V 17AH LiPo pack has an amazing amount of destructive energy and the voltage level make me extra cautious when I worked with it.
I'm still dumbfounded as to how much power we push these controllers to and have them live. I know the design "technically sucks", but functionally it's pretty darn amazing when you build one up with all the little tricks and have a 20kW 30 sec burst controller for about $200 in parts. To pull +50A per TO-220 case FET with 4 in parallel and do it repeatably is amazing to me. I know from reading documents and talking to pro's such as yourself, Highopes and others on here that getting 4 discrete FETs to current share well is a pretty big achievement (at least I feel it is for an amateur like me) and I have been able to do it with repeatable results... so far as I can tell having around 40 controllers out there built with matched fets. I've had a few customers tell me they are pushing them beyond the levels I spec'd and they are working fine. Even my own test 24 FET IRFB4115 controller has seen 180A battery / 225A phase and I was unable to get the FET body temp over 80C on the high side with the throttle limited to 99% with repeated purposeful abusive acceleration/full regen style riding to see how hot I could get the FETs. John's 6 phase motors are one of the next steps to get to higher power with affordable controllers, it's a pretty simple solution to solve a tough problem.

Another thing I have learned is running +150A at 75V feels like a lot more power than it sounds like on paper, even on a high KV hub motor. We have some real speed / power freaks on here.

I'm going to go back to my 99% settings as I push the limits of my test controllers, I'll sacrifice some efficiency as heat to hopefully save the FETs. Having a temp probe on the high side provides me with a lot of feedback to know when I'm pushing too hard. It's how I learned the 18 FET controllers cases are very poor compared to the 24 FET cases... of course most people would say duh to this, but I've measured the FET case temps vs the amps running through them.

Arlo1, you now have me wondering how low of an inductance motor with lower pole count one of these could run. I wish I had a RC motor setup on a bike so I could do some testing but that's beyond me mechanical skills unless someone has a kit. I have been pondering your failures with colossus against having matched FETs and limiting to 99% PWM. Unmatched all it takes is one big overshoot which we know occurs on the Colossus to take out the weakest link and then the rest fall like dominoes. I'm wondering if matching would resolve a lot of this. I did not expect these controllers, especially 18 FET controllers to be able to run my 30uH hub motor at the power levels I am, but they work really well.

Does anyone know what the eRPM limit of the Xie Chang controllers is? I am trying to design a compact 12 FET TO-247 add on board to play around with utilizing some of the knowledge I have gained. It's the opposite of what I'm doing for driver/ power stage I am using for Lebowskis controller which I just started building. I am going for functional, power and compactness vs reliability.
 
Xie Chang controllers are limited to 120 000 e-rpm.
I don't need to test a lot fet matching is a good thing but.... Remember the resistance changes as the temperature. So even though matched fets are good its not the answer for survival in my case. It's about time if the fets were given enough time in the on position ~30 uS in a 24 fet with colossus then matched or not a set of 4110 fets are making fireworks.
The temperature vs resistance balance happens uber fast and I will ask in a sevcon with 70 something fets do you think they matched them?
I'm not trying to say matching them is a bad thing its a very good thing but not what is needed to make my 24 fet survive pushing electrons through colossus. I will try to gather all the data I can asap.
 
Arlo1, we are not talking about a Sevcon which has a proper driver and fast switching on/off times; we are talking about Xie Chang which has a very poor driver and very slow switching. This makes matching paralleled FETs very critical due to the time spent in transconductance.

A single 30 uS pulse through 4 paralleled IRFB4110's at 25C Tj an all switch at the same time should be able to do over 2000A... problem is it derates very quickly with junction temp, but for 30uS... behold the amps :lol:

120k eRPM? wow, that's pretty good.
 
Arlo keep in mind that a mismatch in the switching transient will drive the thermal mismatch and off you go to the races. I would say that zomb's plateau matching is the "bees knees." He is humble about it, but there is nothing wrong with how he matches them. He took great care to do it right in my opinion. I could do no better. It's the mismatch that drives the thermal issue, as long as the heat sinking is consistent FET to FET.

Also if you are going to put a Xie Chang controller on test scope the bootstrap supply on one of the upper rails. I'm going to bet it gets "flakey" at 100% PWM, but is more "solid" at 99% PWM. Like you guys said, everything is on the ragged edge with these controllers and the FET drive circuitry stinks... but it "works" ... most of the time.
 
zombiess said:
100% throttle = 100% PWM aka no PWM if you command it at any speed

Ah, now I understand where this 99% thing came from. If it worked like that we would blow every controller as fast as Arlo1 popped them on Colossus early on in his quest to drive it. Phase current limiting is what prevents full duty at 100% throttle in the lower half of the rpm range. Current limiting is done through PWM, the only means of any control because they are simple speed controllers. That's the way Luke taught it to me anyway, and it makes sense, because the only things between the two poles of the batter are the fets and phase wires, so the only way to regulate current or speed is by varying with width of the ON pulse.

We may ask for full duty with the throttle, but we don't get it. As proof, when you launch from a full stop, it doesn't matter whether you turn the throttle to 50% or 100%, the launch will have the same force. More proof is that If it worked the way you suggest, then our current limit settings would be meaningless, since if we twisted the throttle to 100% we would get the same max current results regardless of the current limit settings. PWM is the only means of control, so the only time they go to full duty is when the throttle is at 100% and BEMF is sufficient to push back against the current and not allow it to exceed the current limits.

If you go to 100% throttle with 100% speed setting, does the controller allow full duty for 1 measurement period, and then say ooops the voltage drop across the shunt is too high. I need to kick PWM back in. ? I guess it's possible, but I doubt it, because wouldn't that blow smaller controllers instantly.
 
Sorry John, I was taking the current limiting as a given. As long as we are under the current limit... or until it kicks in, 100% throttle will = 100% PWM. Thank you for bringing that up because every time I've posted about this I was assuming we were under the current limit and in my scope tests I was always under the limits I had set. I have been more concerned with the overshoot that occurs when 100% PWM is commanded at 0 to low RPM and the current limiting has not been able to start, such as a locked rotor situation which is worst case because it has an infinite time and really tests any protection the controller has.

We need to measure how long it takes the controller to engage the battery and phase current limits, the phase current limit being the most important. Once this information is known we can extrapolate some maximum safe settings based on motor inductance/resistance because this time period is where things are likely to go kaboom from uncontrolled current. I am also wanting to see the differences between phase current limiting in EB2xx vs EB3xx boards because I believe the EB3xx boards do a much better job and actually make an attempt at measuring the phase current vs the EB2xx which uses some unknown set of parameters and the battery shunt.

I can do this test myself with the current sensors I have and setting low limits in the controller to keep from blowing stuff up, just need to make the time to set it up.
 
Ok 100% is still pwm until almost top speed then its block time john is right I will post video later. Found at all settings a 400 uS on time in the middle of the cycle for no reason.... That will kill controllers when hooked to colossus. Explain more later.
 
Zombiess, any rig where someone can turn their throttle to 100% so fast that current limiting hasn't had a chance to kick in regardless of rpm, isn't much of a rig. Can you even turn it that fast on any rig, since the time is a lot faster than the pwm rate isn't it for current limiting to work at all?

My take, which isn't much but is based on things like BigMoose's suggestion for better caps, is that the problem is byproducts of switching. I always think of current like water in a pipe. If you go and start slamming a high pressure high volume flow of liquid in a pipe on and off really fast, and bad stuff happens. Low inductance motors make it so those valves opening and closing are able to do so fully more immediately resulting in water hammers banging into stuff. Voltage spikes that blow stuff in controllers is the electrical equivalent of water hammers. Is that far off?

John

PS- I hope you're right about the EB3's being better. Every EB2 has gotten hotter than I like.
 
Proof at low rpm 100% is still in PWM
[youtube]cn3JHuV9I_8[/youtube]
 
Ok this is with 99% only and there is still a 480 second on time in the middle of the communication cycle. I think... can you guys help me understand this.

PS its a 12 fet with 4110 fets using mostly charged 20s lipo.
[youtube]8nIXNmknK2M[/youtube]
 
Arlo1 thank you so much. Your test has now given me some more info I have been wondering about. My seeing 100% PWM so easily must have been caused by my motor not being loaded down and not able to reach the current limits that were set at the time. My scope is not a storage scope either (I keep putting off buying one) so I can't scroll back like you do. This info is great and we now know a lot more about these controllers than we did before. Which controller is that, EB2xx or EB3xx? What settings? I hope the block time was set to 0.0S for the test as well. I really wish I had a way to load a motor down for testing, doing any kind of design work is near impossible without being able to hold a load, especially without a storage scope.

So we now know that that controller could experience a maximum on time of ~475uS even when it's supposed to be in PWM / current limiting. With this info it should be possible to make an educated guess to what kind of settings you can input and have the controller survive from a dead stop when going WOT. This might also explain some of John in CR's failures depending on his motor specs (most likely a miss matched FET in the paralleled group seeing one of these periods), hard to say though, it's just a guess.

Here is an educated guess on current that could be experienced from a locked rotor based on what I have plugged into the spreadsheet from Bigmoose

At 480uS on time these are the currents for a few motors
Cromotor 9.3KV 120uH = 342A <--- this thing is easy to drive
Cromotor 18KV 30uH = 1198A <--- much higher than I thought it would be
Colossus 8.0 uH = 4,562A!!! <--- there's the problem LOL
CC80100-130 40uH = 1062A <--- and now we see another reason RC motors tend to pop these controllers easily

I hate to sound like a broken record, but this also shows the importance of why the FETs need to make it through the transconductance zone at virtually the same time, and also as quickly as possible to keep heat build up down. As soon as the weakest link goes, the chain reaction starts.

I wonder if what you saw was phase current limiting or battery limiting causing the PWM to start up.

Great info Arlo1.
 
Hopefully the EB3's don't have that block of ON time in the middle of the cycle. I can see that being a non-issue with typical inductance hubmotors, but as soon as you drop below a certain level of inductance, that block of ON time is a problem that shows up as controller heat. I never could understand how others report controllers that aren't warm at all to the touch, when every EB2 I've used runs quite warm even at fairly modest current limits. I hope they fixed that glitch for the EB3's. That may also explain why Wuxi board controllers run so much cooler with my higher Kv motors.
 
That 'on' pulse seems be on while the current ramps up, and then it hits current limit and starts on/off to keep it below a certain limit. This would mean that the controller always acts like it doesn't need to do on/off (PWM) of the phase except when it hits the current limit. If you put *constant* part-throttle with no load and let it reach a constant speed, will there be PWM (on all commutations)?
 
Njay said:
That 'on' pulse seems be on while the current ramps up, and then it hits current limit and starts on/off to keep it below a certain limit. This would mean that the controller always acts like it doesn't need to do on/off (PWM) of the phase except when it hits the current limit. If you put *constant* part-throttle with no load and let it reach a constant speed, will there be PWM (on all commutations)?
Part throttle was constant PWM full throttle had the 480 uS on pulse with both 100% and 99% settings.
It maybe waiting till the current limit is hi BUT the current is monitored on the shunt which is DC current. So a lower inductance motor will cause a bigger spike in phase current while the controller is waiting to see the max DC current before it hits PWM.

I am pretty sure the 480 uS on pulse (even if its only 50 or 60 uS when on other motors) is what keeps blowing controllers on colossus.
 
Now I have an idea guys.... I will scope the shunt on the controller at the same time as watching the pwm and see what it looks like.

Then maybe I can use 2 of the current sensors on 2 phase wires and feed the signal from them to the chip and disconnect the chip from the shunt...

Might take some work and a bit of a circuit to make it work but if the brain sees actual phase current it might have a chance.
 
original question was on the theory. China controllers, by the sounds of it, are using 6-step unipolar PWM scheme. This is outdated by today's standards (actually has been outdated for at least 10 years). But it is a cheap to implement solution and CAN be appropriate for low power application like a bicycle.

otherwise i agree with everything Bigmoose said except that it will take a million dollars to make it work the way you WANT it to work. hopefully it will cost less :)

the basic problem in this forum that i see time and time again is a cheap controller being used beyond its capability. then it blows up. this includes lowbowski comment in this thread about boot-strap supplies needing 99% PWM.

here is the solution, design the controller to your desired use/application. long story short, my belief, is that zombies soon to be tested (already released) inverter design + lowbowski controller should meet this for mid power application (bi-cycle and motor cycle, but not car). to go higher power into a car is another thing.

on the subject of low inductance machine.. basically it is a machine with a very low electrical time constant. if you want to control this type of motor including during significant acceleration, then you need a closed loop current regulator capable of keeping up with a bandwidth 10x higher than the electrical time constant (L/R of motor). this can be done.. basically if that bandwidth requires 20kHz then conventional solutions in a *good* design should be enough. if that bandwidth must be higher then you must concern yourself a lot with to achieve higher switching frequency in a PRACTICAL way. you must reduce total propagation delay to 500ns or less. you must have current measurement of 100kHz bandwidth, with minimal group delay on the phase measurement (by syncrhonizing ADC sample at time of least amount of noise in the system) and .. if needed.. completely eliminate the deadtime (yes this can be done, but it is only for extreme high bandwidth controllers). or in otherwords... you must DESIGN for your application. don't expect a china controller to do this..

HighHopes
 
High hopes comes from a no cost limit style of design which is awesome because we learn a lot. But cost does matter. I will be back on my controller development asap I just need to finish the carbonfiber.
I have been bugging zombies to get testing with lebowskis chip but he keeps chasing the China controller carrot . I am sure I will have a hi power ebike/motor controller sorted out before he does. Maybe we should get Marko or accountant to donate a couple colossus motors to the winner of the first one with something reliable in the 20-30 kw teratory.
 
HighHopes,

What I actually found is that many motors have an L/R timeconstant of about 1 milli-sec, even the
Colossus used by Arlo (8uH and 8 mOhm). The AF motors I use are actually outside of the norm with
an L/R of 0.5 m-sec (170uH at 330 mOhm). There is an excel sheet floating around somewhere (made
by Mr BigMoose) in which a large number of motors are listed. This is where I first noticed the 1-msec
being fairly typical....
How about a 3rd order control loop for fast accelleration ? As a rule of thumb:
1st order can have 0 phase error for a motor at standstill
2nd order can have 0 phase error for a motor at a constant speed
3rd order can have 0 phase error for constant acceleration
Implementing 3rd order is not so hard, but it will be slow to respond I think... 1st order responds
almost instantaneous, 2nd order already need some persuasion to get going so 3rd will be a pig I think...
 
Back
Top