Close

Avoiding Back EMF Feedback Need for BLDC Motor Controller

A project log for My Advanced Realistic Humanoid Robots Project

Building bio inspired realistic looking humanoid robots to do chores and sports and stuff.

larryLarry 2 days ago0 Comments

I had a eureka moment recently that I wanted to share. So basically I was thinking that I may not need to read back emf from a BLDC motor in my custom motor controller. Instead, I can have it just mindlessly advance the motor at a fairly low power mode by default and a default speed of advancement of the rotating electromagnetic field. Without feedback, it may overshoot, rotating faster than the output shaft and thereby skipping some turns. That is the reason why people want to read the back emf to avoid that issue and instead only advance the electromagnetic field forward at just the right moment - the zero point crossing moment. But I was thinking about it and realized that is not really necessary. For this application, if skips start happening, it doesn't really matter. To the degree that skips are happening, the motor will stop advancing the load with its winch system and this will show up when readings are taken by the potentiometer measuring the final joint angle. If alot of skips were taking place, the advancement of the potentiometer would not match the angle it thought it would be at were no skips involved and this would tell the motor controller that it has been having skips and give it an idea of how many skips as well based on the divergence of projected joint angle by now and actual joint angle by now. So then it would turn down the speed a bit or turn up the amount of on time of its pwm and thereby put more force into the rotating magnetic field to give a bit more oomph to the motor. It would then track progress by way of the potentiometer again and see if that solved it. If it still is skipping a fair amount that could indicate the load is more than expected or there is a jam in the system or it just needs more power and it could turn up the power more and slow the speed down more on its rotating magnetic field overall speed and try again. Rinse and repeat until it finds the sweet spot or finds out it simply cannot lift the load because its too heavy or there's a jam in the pulleys or w/e. So in a way then this would give it collision detection as well as the ability to have an idea of how heavy loads are based on how much it had to slow down and add forces to get the joint to move. I then see no real need to implement ANY back emf reading NOR any need for hall effect sensors etc to monitor rotation progress. The potentiometer on the final joint the motor is actuating is enough clues to tweak the rotating magnetic field to our satisfaction. By eliminating the back emf circuitry we greatly simplify the schematic of the motor controller, suffer negligible performance hit, and eliminate a lot of processing for the microcontroller chip handling the logic of many bldc motors simultaneously which means it can handle more bldc motors by itself. It doesn't get bogged down so much by having to read in all the zero point crossings as part of its routine. This saves on processing demands and processing speed demands. Getting this all to work in real time and perfecting it will require a fair bit of trial and error but this is how I'm seeing it working out and my proposed solution for simplifying things. I think it should work great! I'm excited to have much more dumbed down circuitry like this and to get to working on this soon. Just have to finish making my pulleys and then this electronics development can get underway again. That's why I've been thinking ahead about it a fair bit since it seems I'm likely nearing the end of solving the pulleys situation soon.

Discussions