When to go from PWM to Block coil commutation ?

Fligh High

100 mW
Joined
Mar 31, 2010
Messages
35
Location
Europe
This has been a question that has been on my mind some time , hope that someone can make it clearer for me.

A brushless motor is driven by a controller that is making very tiny very quick current pulses 10 Khz and more to provide the required average amount of power wanted on the coils of the motor.
As far as I have understood , some controllers will change this PWM into 1 block-pulse at a certain moment. Just 1 block of electricity of a certain determined length instead of tiny pulses following each other up .
I can imagine when you (can) go from PWM to Block-pulses this has some advantages , maybe better efficiency or controller/Fet speed-related.

So my question is WHEN do you go from PWM to Block-pulse :? And do all the controllers you guys are using do that as a matter of fact already ?

My own best guess is that the best moment RPM-wise to do Block commutation is as quickly as possible , if the motor can rotate smoothly (rotating mass related ?) but that is just an idea of mine....
How does this work in practice ?
 
Olaf, for sure , I understand that eventually PWM will become a single blockpulse automaticly if the dead-time will become zero . Maybe it would have been better if I would have named the topic : "How does a controller for a brushless E-motor actually work ?" or something like that. And yes you might have guessed this already offcourse , it's for my Alternator-motor :wink: I will have to program my microcontroller for driving the mosfets soon...
I could ask this question on the RC forum ( there are some very knowleageble people over there who could answer it straight away I'm sure) but because of the Alternator-project I thought I'll try it here. I also have not looked into the Yahoo opensource diy controller yet , but that is mainly because I don't like the message-board format.....I really should though.

Let me try to make it clearer what I mean to ask (all this just my assumptions , if it's wrong someone please tell me !):

Let's assume in the first image point A is where you want to start putting current in the coil. This would be at a 90 degree magnetic force , what that is actually on mechanical degrees on the motor does not matter here. Also I understand wye and delta configuration (a combination of coils) does not show , but let's just take this image as a "working model". Anything before event A does not produce power and anything after event A is not the most efficient , though from A to B is what is making power that you use in practice ! on the E-motor. That is all the "space" and timing you have for driving the coils...

I think at startup/low revs the controller will use the entire period from A to B to give power to the coils repeating pulses. By the way we are talking about Hall-sensored controllers here ! Don't know about the sensor-less how they do it...
When at a certain RPM I suppose the PWM pulses will look something like in the second image : a number of pulses of a certain duration to make up the amount of power that you want from the E-motor , all starting from point A.

These are just my thoughts : As soon as you could get away with it , that is your E-motor would rotate at a fairly constant speed because of the mass of the spinning rotor and it would not be noticable or negative in any way , why not go to a single block-pulse from point A to whatever distance to B to make the desired amount of power ? Because it seems it would be the absolute most efficient way of doing this for the E-motor .

Do most controllers do this already ? I would like to understand how they work :)

I hope I made sense for you guys....
 
For a controller at full throttle, the moment the motor reaches a speed that the BEMF grows enough that it no longer needs to limit battery current, then it enters block mode. It only has the PWM mode to control power output, being either through the battery current setting, or through non-100% throttle input.


As far as how we either option works, the motor only feels current, and due to the induction of the windings, that phase current has nice curve to it, dispite the voltge looking like a string of spikes.
 
Okay sounds logical to me . LFP thanks for pointing out max allowed battery current completely forgot about that.

Another question : How long does the commutation last from point A to B ?

Because we have the varying duty cycle PWM at less than full throttle or a single full block-pulse at full throttle when allowed but it is as a whole event also lasting a certain length...
Completely from point A to B ? That looks possible but very innefficient to me. Does the controller arrange a certain period in which PWM/blockpulse happens ? Does this vary as the electric motor makes more rpm ?

And still my own question : Why is it not possible to completely forget about PWM , even under less than full throttle , and have a single blockpulse which simply varies in length to make the desired amount of power.
What are the downsides to this approach ?

Because to me , the further powering the coil lasts from point A , the less efficient the whole process of changing electricity into torque becomes . There is no way around this it is unavoidable but does it not mean that you would want that process to happen as quickly/close to point A as possible ?
 
An interesting idea. I am not aware of any controllers that use this technique to modulate the power. I guess the firmware would be a fait bit more complex, it may get to the point where it would be as easy to implement full field oriented control, where the magnetic field of the stator is always kept at 90 degrees to the rotor by modulating the currents in more than one phase at a time.

Burtie
 
Fligh High said:
Okay sounds logical to me . LFP thanks for pointing out max allowed battery current completely forgot about that.

Another question : How long does the commutation last from point A to B ?

Because we have the varying duty cycle PWM at less than full throttle or a single full block-pulse at full throttle when allowed but it is as a whole event also lasting a certain length...
Completely from point A to B ? That looks possible but very innefficient to me. Does the controller arrange a certain period in which PWM/blockpulse happens ? Does this vary as the electric motor makes more rpm ?

And still my own question : Why is it not possible to completely forget about PWM , even under less than full throttle , and have a single blockpulse which simply varies in length to make the desired amount of power.
What are the downsides to this approach ?

Because to me , the further powering the coil lasts from point A , the less efficient the whole process of changing electricity into torque becomes . There is no way around this it is unavoidable but does it not mean that you would want that process to happen as quickly/close to point A as possible ?

Fligh high, I think you referring to Sinusoidal driven BLDC, where two phase transition was smoothed by a ramp-liked power excitation of the stator. This was achieved by varying the PWM pulse width over time until a desired level (full block was only happening at full throttle right) and stays there until some point before next phase transition occurs and going down in voltage by decreasing PWM width over time until the actual transition occurs.

My Cave men controller used a straight/fix PWM width in every phase, i think this is my learning curve before the sinusoidal mode. May I suggest for you to download Atmel Application notes AVR447 for clearer view, this will includes the braking and starting commutation steps. By the way, programmatically we will now where are we exactly on point A-B is based on estimation based on last cycle period width, and approach this cycle based on those width (in the sense of internal timer)

By the way, if you wish once i've got my hand on my PC i will Post my program so we could have a communal knowledge about this particular area
 
not sure if it helps, but an application note on the infineon controllers goes into alot of tech detail on how the hall sensor signals are being filtered/modified, application note reference number is on the pic, cant post whole thing its too big.
1.jpg
its worth a read
 
>Whatever thanks , there is a lot of information about driving brushless DC motors in general (also Hall's) but not that much info about the whole commutation process ( I mean : powering the coils that is) what I've found on the internet.

But if someone can shed any light on what is happening in the A to B region what your average controller does exactly please let me know !

> Widodo , I will come back to the exact commutation procedure that you are using and programming in the Alternator-thread later on , best to keep it there where it belongs.

My own idea of driving the E-motor with specific block-pulses I will try in practice just for fun later on my own test-subject Alternator-motor if it gets completed , it was just an idea .... :wink:
 
This drive method is also called six-state drive, because there are 6 possible commutation states. A->B, A->C, B->C, ... Since there are six states, each one lasts 60 electrical degrees. If you have a two-pole motor (one pair of N-S magnets), one mechanical revolution is one electrical revolution so it will also be 60 mechanical degrees. If it's a 4-pole motor, then it makes two electrical revolutions per mechanical one, so it's 30 degrees per state, etc. The time duration of each state is obviously dependent on the speed of the motor.

I think the method you suggested has been done, but I don't think it's very common. What you're suggesting is to place a single pulse of varying duration at the center of the commutation period, so there is equal dead time before and after. That's basically a really crude form of sinusoidal control, I think. It would certainly work but I think the disadvantage would be more torque ripple since you're driving with full current at the midpoint and zero current at each end. True PWM is not very hard to implement so I'm not sure this saves enough effort to make it worthwhile.
 
Back
Top