0
\$\begingroup\$

Hi, i am currently working on BLDC motor controller (ESC without Back EMF), i want to know what is the max and the min delay time to switch between the 6 steps to control the speed of the motor . I am using atmega328p (with quartz 16MHZ). Motor : Turnigy 2627 Brushless Outrunner 3800kv ( 12 v and P = 260 w )

\$\endgroup\$
  • 1
    \$\begingroup\$ What does the datasheet of the motor tell you? As it is the question is unanswerable as you do not reveal which motor you're using. \$\endgroup\$ – Bimpelrekkie Nov 27 '17 at 14:57
  • \$\begingroup\$ ok i will add it \$\endgroup\$ – Mourad Nov 27 '17 at 15:01
  • \$\begingroup\$ This question does not make much sense. Timing is entirely dependent on the speed you want to run it at and the load the motor is pulling. You need to study up on BLDC motor driving. Running it open loop, it is just a synchronous motor. \$\endgroup\$ – Trevor_G Nov 27 '17 at 15:03
  • \$\begingroup\$ i want to run it ( for now ) without load \$\endgroup\$ – Mourad Nov 27 '17 at 15:04
  • \$\begingroup\$ There is always a load, even if the load is just friction and air resistance. It is clear from your question that you doing understand how BLDCs work. That's ok, we all have to start somewhere. Please take some time to read the plethora of free information available online that explain BLDC fundamentals. \$\endgroup\$ – Dan Laks Nov 27 '17 at 15:56
0
\$\begingroup\$

With sensorless commutation the zero crossing occurs approximately half way between commutation points, so you need a delay of half a step to switch at the correct time. The motor does 6 steps per 'electrical' revolution, but the mechanical speed is divided by the number of magnet pole pairs (1 for 2 poles, 2 for 4 poles etc.).

The Turnigy 2627-3800Kv has 6 magnet poles so its electrical speed multiplier is 6/2 = 3, and mechanical to commutation speed multiplier is 3*6 = 18. So at a motor speed of eg. 30000rpm the commutation frequency would be (30000/60)*18 = 9000Hz, and the step time would be 1/9000 = 111us. The required 1/2 step delay would then be 111us/2 = 56us.

To determine the maximum and minimum delay times you need to decide what minimum and maximum motor speeds to support. At very low speed back-emf is insufficient to get reliable zero-crossing detection so the motor is started 'open-loop'. In this mode you don't need any delay, but the initial step time could be 100ms or longer.

High-end motor speed is limited by mechanical constraints (bearings, rotor balance, centrifugal forces) magnetic losses, and loading. Your motor has a Kv of ~4330rpm/V so on 12V with no load it would do ~52000rpm, which equates to a commutation frequency 1/(52000/60)*18 = 15.6kHz. The minimum delay time required is therefore (1/15.6kHz)/2 = 32us.

Note that these calculations are for neutral timing. At high speed the winding inductance significantly retards current rise so 'advanced' timing (= shorter delay) is often applied to improve motor performance.

\$\endgroup\$
0
\$\begingroup\$

Obviously the maximum delay between states is infinite, which would be stationary and holding a position (a bit like a stepper motor).

The minimum delay depends on the motor characteristics (such as slip) and the load (which will vary).

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.