Sensorless (Back EMF) có ý nghĩa gì?

27/06/2026
sensorless-back-emf-co-y-nghia-gi

Đây chính là phần quan trọng nhất của điều khiển động cơ BLDC không Hall.

Back EMF là gì?

Back EMF (Back Electromotive Force - điện áp phản kháng) là điện áp do động cơ tự phát sinh khi rotor quay.

BLDC thực chất cũng là một máy phát điện.

Khi bạn quay trục động cơ bằng tay, giữa 3 dây sẽ xuất hiện điện áp AC.

Đó chính là Back EMF.


Ví dụ

Giả sử động cơ có 3 dây:

 
U
V
W

Khi cấp điện:

 
24V

U (+)

V (-)

W (không cấp điện)

Thì rotor quay.

Lúc này dây W không nối nguồn.

Nhưng STM32 đo được trên W có điện áp:

 
0.8V

1.5V

3.2V

7V
...

Điện áp này chính là Back EMF.


Tại sao phải đo Back EMF?

STM32 cần biết:

Rotor đang quay đến vị trí nào?

Nếu không biết vị trí rotor thì không biết lúc nào phải chuyển sang bước kế tiếp.

Ví dụ:

 
Step1

U+

V-

W đo Back EMF

Khi Back EMF của W đạt đúng thời điểm (điểm Zero Crossing), STM32 biết rotor đã quay đủ góc và chuyển sang:

 
Step2

U+

W-

V đo Back EMF

Cứ như vậy động cơ quay liên tục.


Nếu không đo Back EMF thì sao?

STM32 chỉ biết phát:

 
Step1

↓

Step2

↓

Step3

↓

...

theo thời gian cố định.

Điều này gọi là Open Loop.

Nhược điểm:

  • Tốc độ thấp dễ rung.
  • Dễ mất đồng bộ.
  • Tải thay đổi là có thể dừng.
  • Không biết rotor đang ở đâu.

Khi dùng Back EMF

STM32 sẽ điều khiển theo đúng vị trí thực của rotor.

Ưu điểm:

  • Quay rất êm.
  • Tiết kiệm điện.
  • Mô-men tốt hơn.
  • Có thể tăng tốc cao.
  • Không cần cảm biến Hall.

Minh họa

Rotor quay:

 
      N

 U          V

      S

      W

Step 1

 
U (+)

V (-)

W đo Back EMF

Sau một góc quay:

STM32 thấy điện áp W đổi dấu.

Chuyển sang

Step 2

 
U (+)

W (-)

V đo Back EMF

Lặp lại 6 bước.


Zero Crossing là gì?

Back EMF có dạng gần giống sóng sin hoặc sóng hình thang (tùy động cơ).

 
      /\
     /  \
----/----\------
   ^
Zero Crossing

Khi điện áp Back EMF đi qua mức tham chiếu (thường là điểm giữa điện áp DC bus hoặc 0 V tùy phương pháp đo), đó gọi là Zero Crossing.

STM32 dùng thời điểm này để tính thời điểm chuyển pha tiếp theo.


Khó ở chỗ nào?

Back EMF chỉ xuất hiện khi động cơ đã quay.

Nếu động cơ đang đứng yên:

 
Back EMF = 0V

STM32 không biết rotor ở đâu.

Vì vậy mọi hệ thống sensorless đều phải:

  1. Khởi động bằng Open Loop.
  2. Khi động cơ đủ tốc độ (Back EMF đủ lớn), chuyển sang Sensorless.

Có cần ADC không?

Có nhiều cách:

  • ADC: Đo điện áp pha rồi xử lý bằng phần mềm (linh hoạt, phổ biến trên STM32).
  • Comparator: Phát hiện Zero Crossing bằng phần cứng, giảm tải CPU.
  • Một số vi điều khiển có comparator tích hợp nên rất tiện.

Kết luận

Nếu mục tiêu của bạn là:

  • STM32F407
  • IR2130
  • Động cơ BLDC 3 dây
  • Chỉ cần quay được và điều chỉnh tốc độ bằng chiết áp

thì chưa cần Back EMF. Bạn có thể viết chương trình Open Loop Six-Step để động cơ quay ở tốc độ trung bình và điều chỉnh PWM bằng chiết áp.

Sau khi mạch chạy ổn định, mới bổ sung Back EMF để động cơ:

  • Khởi động tin cậy hơn.
  • Chạy êm hơn.
  • Hiệu suất cao hơn.
  • Tự đồng bộ theo tải.

Đó cũng là lộ trình mà hầu hết các dự án BLDC sensorless đều áp dụng.

Đây là điểm nhiều người mới làm BLDC thường nhầm. Back EMF không cần thêm cảm biến nào, mà đo trực tiếp trên 3 dây pha của động cơ.


Sơ đồ kết nối

Giả sử bạn dùng:

  • STM32F407
  • IR2130
  • 6 IRF3205
  • Động cơ BLDC 3 dây
 
           +24V
             │
        MOSFET 3 pha
             │
      U──────┐
      V──────┼────── BLDC
      W──────┘

Đồng thời:

 
U ─────► STM32 ADC1

V ─────► STM32 ADC2

W ─────► STM32 ADC3

Nhưng không được nối trực tiếp.


Vì sao?

Điện áp pha có thể lên:

 
24V
36V
48V

Trong khi ADC STM32 chỉ chịu:

 
0~3.3V

Nên phải chia áp.


Mạch chia áp

Ví dụ nguồn 24V

 
Pha U

      100k
U ───/\/\/\──────┐
                 │
               ADC STM32
                 │
      15k        │
GND─/\/\/\───────┘

Tỷ lệ khoảng

 
24V

↓

3.1V

ADC đọc được an toàn.

Ba pha đều giống nhau.

 
U → ADC1

V → ADC2

W → ADC3

Có cần lọc không?

Có.

Thông thường thêm:

 
100k

      │

ADC

      │

10nF

      │

GND

để giảm nhiễu PWM.


Đo pha nào?

Không phải lúc nào cũng đo cả 3.

Ví dụ

Step 1

 
U (+)

V (-)

W = Floating

Lúc này

chỉ đo W.


Step 2

 
U (+)

W (-)

V = Floating

Đo V.


Step 3

 
V (+)

W (-)

U = Floating

Đo U.


Bảng đầy đủ

Step Pha dương Pha âm Đo Back EMF
1 U V W
2 U W V
3 V W U
4 V U W
5 W U V
6 W V U

Đo cái gì?

Không phải đo tốc độ.

STM32 đo:

 
điện áp pha

Ví dụ

 
2.4V

2.2V

1.9V

1.65V

1.3V

0.8V

Khi điện áp đi qua mức tham chiếu (thường là Vbus/2 sau khi đã chia áp), đó là Zero Crossing.

STM32 sẽ biết:

 
Đến lúc chuyển Step tiếp theo.

Nếu nguồn 24V

Thường tạo thêm:

 
24V

↓

12V

để làm mức tham chiếu.

Sau đó chia áp về:

 
1.65V

cho ADC hoặc comparator.


Nếu dùng Comparator

Thay vì ADC.

 
Pha U

↓

Comparator

↓

STM32 Interrupt

Khi Zero Crossing xảy ra.

Comparator phát Interrupt.

Không cần ADC đọc liên tục.

Đây là cách nhiều bộ điều khiển BLDC thương mại sử dụng.


Mình khuyên với STM32F407

STM32F407 có:

  • ADC tốc độ cao
  • DMA
  • Timer rất mạnh

Nên cách dễ phát triển là:

 
U → Chia áp → ADC1

V → Chia áp → ADC2

W → Chia áp → ADC3

STM32 đọc liên tục bằng DMA, sau đó trong mỗi bước Six-Step chỉ xử lý pha đang để hở (floating phase) để phát hiện Zero Crossing.