Issue with sensorless BLDC motor

Thread Starter

RenesasT1

Joined Jul 6, 2017
107
Hello guys,

I am in big trouble with sensorless BLDC motor project. I am trying to achieve the control of sensorless BLDC motor using microcontroller.

I am using renesas microcontroller. I am able to run the motor but not getting first start.

I am trying by sequence changing with particular delay but its not working.

Once I rotate motor with hand, the motor is starting and then control is through back EMF.

At back EMF stages the motor is working properly. I am worried about my project just because of start up issue.

Please guys help me with the code to start the initial rotations.

Seriously I am worried about my project.

Requesting you all to reply me.
 

Thread Starter

RenesasT1

Joined Jul 6, 2017
107
Hello Robin,

Thanks for your reply.

First I had connected the sensored to the motor and captured the hall sequences and wrote code accordingly.

Then I had removed the sequences and used same positions sequencially.

If you know the other way, please let me know.
 

Robin66

Joined Jan 5, 2016
281
It seems that you already have working code to generate the correct sequence because it works when you spin it up by hand and regulates itself using back emf. So all you need to do is run through the same sequence at a slow enough speed so that the motor starts to follow it even though initially it'll be at some random angle.
 

Thread Starter

RenesasT1

Joined Jul 6, 2017
107
Yes Robin,

Thank god you understood my issue.

What I am doing is, I am trying with delay to tilt motor slightly. But the thing is that it does not works.

Let us consider two commutation -

1) manual commutation- using delay
2) motor commutation- using motors back emf

At start we need manual commutation. If motor has some load, then it is not starting. Also the current at start even with load or without load is higher.

Please suggest your views.

Awaiting for your valuable reply.
 

Robin66

Joined Jan 5, 2016
281
Yes this is the difficulty with sensorless commutation - you need revs to get emf, and you need emf to detect revs. So initially you'll be running blind. The current will be much higher when starting because the armature is at some random angle and isn't synchronised with the electrical cycles so there's no back emf. Therefore the current is only limited by the circuit resistance which is generally very low for motors. You can lower the current consumed by lowering the voltage applied by PWM'ing the output. If the load's unpredictable then start up will be even more difficult.
 

Thread Starter

RenesasT1

Joined Jul 6, 2017
107
Hey Robin ,

Very good morning to you .

Yes. My load is fixed.

Could you please describe me, how to do the first start? I need your suggestions.

Thanks a lot in advance. Awaiting for your valuable reply.
 

Thread Starter

RenesasT1

Joined Jul 6, 2017
107
Hello Keepitsimple,

Good Morning.

I have read this application note of ST semiconductors and able to achieve the c language code to run motor using back emf. But I am not getting technique to drive motor initially when its stand still.

I know the concept , i.e. using delay we can push that motor but not able to write program for initial start.

Could you please help me to give some tips and tricks to do that. Awaiting for your valuable reply.
 

Robin66

Joined Jan 5, 2016
281
Can Anyone tell me the exact way to do the start commutation?
You've already done the difficult part. All you have to do is run through the same commutation sequence but with a delay between switches that reduces each loop. I've pointed out the difficulties and how you can reduce the otherwise excessive current that will be required. Short of writing the code for you, I don't have anything else to offer you.
 

Thread Starter

RenesasT1

Joined Jul 6, 2017
107
Hello Robin,

Thanks for your reply.

Please give the basic idea to write code for starting commutation.

Do not write whole code, just explain me how to write. I will do that.

Please help me. My project is at last stage. Awaiting for your reply.
 
I think the ST ap note is pretty comprehensive, but a little hard to understand.

The two things that I get out tof the note that are especially important are:

1) Trapezoidal excition of 2 windings at a time combined with "detection".
2) It gave some reasons as to which one to use based on application.
3) "quote st note" In the non-energized winding (phase C here), the current is zero and the voltage measured is
the BEMF of the motor
4) "quote st note" the sensorless BEMF methods described can only be implemented using a trapezoidal signal drive

"detection" is how and where you sample the values.

An2030 http://www.st.com/content/ccc/resou...df/jcr:content/translations/en.CD00043112.pdf is a companion note.

From those values, you get where you should start the rotation in terms of phase angle. Once it moves, you can use back EMF.
 

Thread Starter

RenesasT1

Joined Jul 6, 2017
107
Hi All,

Good News is that, I am able to drive the motor initially.

Thanks. After your suggestion and support, I am able to drive the motor and drive the motor initially.

Now , What I am facing is, I am not getting torque for the motor. With sensor, my motor reaching upto 20A. But without sensor, it is reaching upto 6A only.

Please suggest the same.

Awaiting your help.
 

Alec_t

Joined Sep 17, 2013
15,106
Current takes time to build up in an inductor. Does your code allow enough time for the current to peak?
 
Last edited:
Top