DIY: asynchronous BLDC motor controller

circuit

100 kW
Joined
Mar 19, 2009
Messages
1,323
Location
EU
Hi.

I'm designing a 10kW BLDC controller for my electric scooter conversion. Currently I'm using BLDC motor with hall sensors on all three phases, but there are problems with timing - the sensors are not ideally aligned and I get a timing error that produces 1kW of waste energy.
So now I'm going for new approach: averaging sector times measured with hall sensors and using interpolation to guess the width of future sector and output a waveform of such width. The key in this algorithm is that motor phases are not tied to hall sensor phases and it automatically eliminates timing errors.
The problem I'm facing now: motor is accelerating (voltage is constant) beyond rated value (RPM/V*V) until loses the phase, stalls and starts over. This happens even when interpolation is disabled and only a sector time average is being used.

Any suggestions on this topic would be very appreciated. Thank you.
 
circuit said:
Hi.

I'm designing a 10kW BLDC controller for my electric scooter conversion. Currently I'm using BLDC motor with hall sensors on all three phases, but there are problems with timing - the sensors are not ideally aligned and I get a timing error that produces 1kW of waste energy.
So now I'm going for new approach: averaging sector times measured with hall sensors and using interpolation to guess the width of future sector and output a waveform of such width. The key in this algorithm is that motor phases are not tied to hall sensor phases and it automatically eliminates timing errors.
The problem I'm facing now: motor is accelerating (voltage is constant) beyond rated value (RPM/V*V) until loses the phase, stalls and starts over. This happens even when interpolation is disabled and only a sector time average is being used.

Any suggestions on this topic would be very appreciated. Thank you.

Without seeing your code we can't really help you find out what kind of bug is responsible, but it sounds like you're accumulating some kind of error in your timing variable(s). Might have something to do with the way you are calculating your average - maybe a funny division or something?

I'm sure Burtie who is working on his hall timing tool could help you since he's working exactly on this kind of stuff right now, but I'm not sure if he'd be willing to share his code with you.
 
ZapPat said:
Without seeing your code we can't really help you find out what kind of bug is responsible, but it sounds like you're accumulating some kind of error in your timing variable(s). Might have something to do with the way you are calculating your average - maybe a funny division or something?

I'm sure Burtie who is working on his hall timing tool could help you since he's working exactly on this kind of stuff right now, but I'm not sure if he'd be willing to share his code with you.
Wow, you are correct (but I solved this earlier, though)! It was my way of averaging: summing, say, 4 values, ant then dividing by 4 (>>2). When using integer (hardware timer), this equation looses the tiny remainder bit (for example: (10+10+10+9)/4 = 9), which builds up over time. I've solved this bug and now motor runs fine. Thanks.

Well, Burtie is working on addon for a controller. Since all of the widely known controllers are an absolute crap, I am designing my own. If it goes well, It will be available in quantity.
 
There are many existing threads (well, I hope they're still existing... some were quite old) of people building motor controllers. I remember liveforphysics had found some high power mosfets and a few people were working on a design that would use just 3 (i believe) of these mosfets for a 30 kw controller. Never saw what ended up happening to this, or any other high power motor controller builds. It really makes me wonder what the issue, because it seems to me like the gap in the ebike world right now is motor controllers which can handle the new breeds of motors (10 to 30 kw "RC" style motors).

So, have you had any luck with your controller so far? If not, what is the sticking point?
 
Currently BLDC controller is on hold, as we are working on distributed BMS (with many features) and public charging point (up to 42kW). Will publish our progress in other thread, if some time will be available some time. Our BMS will be available for order in a few days.
 
Back
Top