MATLAB Answers

BLDC motor - 6 step commutation, phase voltages of energized phases are not equal

3 views (last 30 days)
Martin Zavis
Martin Zavis on 4 Mar 2021
Edited: Dakai Hu on 26 Apr 2021
Hi I am using slightly edited model example "BLDC Speed control" (Three-winding brushless DC motor with trapezoidal flux distribution). I am using 3 phase wye wound BLDC motor. I will be using motor control where all phase-to-phase voltages must be known.
My cosideration:
I suppose when BLDC motor is connected to 3 phase inverter and lets say phase A is connectet to + and B -. Current is passing throught two winding which have same resistance, self inductance, mutual inductance (and lets say stator inductance fluctation will be 0), back emf is e_a = -e_b so I suppose that at neutral point of motor we will have half of DC voltage. So |ua| - |ub| = 0.
When I try to check it in matlab simulink, difference is zero only in part of waveform - wafeforms in attachments.
In block BLDC motor there is defalut value for "Rotor angle over which back emf is constant" pi/2*p, where p is pole pairs, but for 1 pole pair motor it is 90°, and from image above it takes 120°, is defalut value in example wrong? Why there is no zero difference between |ua| - |ub| during this entire commutation step (except demagnetization)? (In BLDC block I have Stator inductance fluctuation, Lm: set to 0.)
Model in attachements (r2020b).
Description for BLDC simulink block is here:
Literature link:
Literature link 2:

Answers (1)

Dakai Hu
Dakai Hu on 26 Apr 2021
Edited: Dakai Hu on 26 Apr 2021
Hi Martin,
When you connect the BLDC to an inverter, the way you measure ua, ub, uc in your model is not actually measuring the back EMF of the BLDC.
To measure the actual back EMF, three phase terminals of the BLDC need to be open. In Simscape Electrical / Connectors & References (R2020b), you'll find the "Open Circuit" block which would allow you to measure the true back EMF of your BLDC. Here is the video that shows you how to do that.
Another thing to keep in mind when you are parameterizing the BLDC block is that the "Rotor angle over which back emf is constant" field takes in a mechanical angle value. For example, in an 8 pole BLDC, if you specify the above parameter to be "pi/(2*p)", then it is pi/ (2*4) = 0.3927 rad which is 22.5 MECHANICAL DEGREES. You'll expect to see the actual flat top of your measured back EMF to be 22.5*4 = 90 electrical degrees.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!