How to make non-sensored BLDC Motor?
Here's how to approach creating the sensorless control system:
Phase 1: Hardware Design (The Sensorless ESC)
-
Microcontroller (MCU):
-
Choose an MCU with sufficient speed, ADC channels, PWM outputs, and timers (e.g., STM32, ATmega, ESP32, PIC, TI C2000).
-
Needs fast ADC sampling for Back-EMF detection.
-
-
Power Stage (Inverter):
-
MOSFETs: Select N-channel MOSFETs with low Rds(on), appropriate voltage/current ratings, and fast switching. Often 6 MOSFETs in a 3-phase bridge configuration.
-
Gate Drivers: ICs to boost MCU PWM signals to drive MOSFET gates quickly and safely (e.g., IR2101, IR2184, DRV830x).
-
-
Back-EMF Sensing Circuit:
-
Voltage Dividers: Resistor networks to scale motor phase voltages (which can be high) down to the MCU's ADC input range (e.g., 0-3.3V).
-
Low-Pass Filtering (Optional): Small capacitors to reduce high-frequency switching noise from PWM.
-
Isolation (Critical for High Voltage): Use operational amplifiers in differential configuration or isolated voltage sensors for safety and accurate measurement if the DC bus voltage is high (>60V).
-
-
DC Power Input:
-
Capacitors (bulk and decoupling) to smooth input voltage and handle current ripple.
-
-
Current Sensing (Optional but Highly Recommended):
-
Shunt resistors + amplifiers for phase/bus current measurement. Essential for advanced control, over-current protection, and torque control.
-
-
Communication/Interface (Optional):
-
UART, CAN, I2C for configuration/speed commands.
-
Basic PWM input for RC-style speed control.
-
Phase 2: Firmware Development (The Sensorless Algorithm)
This is the complex core. Key steps:
-
Initialization & Setup:
-
Configure PWM channels (Complementary, Dead-Time insertion), ADC (timed/synchronized sampling), timers, interrupts.
-
-
Motor Startup (The Biggest Challenge):
-
Align: Apply a fixed pattern to phases (e.g., energize A-B phases) briefly to "lock" rotor to a known position.
-
Open-Loop Acceleration: Gradually ramp up PWM duty cycle and commutate phases at a predetermined sequence/timing, ignoring position feedback. This builds enough speed to generate measurable Back-EMF.
-
Advanced Start Methods: "Initial Position Detection" (IPD) using inductance variation or "High-Frequency Injection" (HFI) can provide smoother starts but are more complex.
-
-
Back-EMF Zero-Crossing Detection (ZCD):
-
Sample Floating Phase: During commutation, one phase is floating. Continuously sample its voltage via ADC.
-
Virtual Neutral Point: Calculate the expected neutral point voltage (
Vbus / 2) or measure it. -
Detect Zero-Crossing: Compare the floating phase voltage to the virtual neutral point. When they cross, a ZC event occurs.
-
Timing: A ZC event typically indicates the rotor is 30 electrical degrees past the ideal commutation point. The controller must wait 30 degrees (based on current speed) before commutating.
-
-
Commutation Control:
-
Based on ZC timing and calculated speed, trigger the next commutation step in the 6-step sequence.
-
Adjust PWM duty cycle to control speed/torque.
-
-
Speed Estimation:
-
Measure the time between consecutive ZC events. Since 6 commutations = 1 electrical revolution, speed can be calculated.
-
-
Closed-Loop Control (PID):
-
Use speed error (desired vs. estimated) to adjust PWM duty cycle via a PID controller.
-
-
Protection & Diagnostics:
-
Over-current, over-voltage, under-voltage, over-temperature, stall detection.
-
Phase 3: Implementation & Debugging
-
Prototype: Build the ESC hardware on a development board or custom PCB.
-
Connect Motor & Power: Use a current-limited bench power supply initially! Connect the 3 motor phases.
-
Firmware Flashing & Basic Testing:
-
Test PWM outputs, ADC readings (phase voltages, currents), MOSFET switching.
-
-
Startup Tuning:
-
Crucial and tricky. Adjust open-loop acceleration ramp rate/duration. Use an oscilloscope to monitor phase voltages and detect ZC events.
-
-
Running Tuning:
-
Fine-tune the ZC detection filtering and timing offset (the 30-degree delay).
-
Tune PID gains for speed control.
-
-
Load Testing: Gradually apply load and observe performance/stability.
Key Challenges & Tips
-
Startup Reliability: This is the hardest part. Expect lots of trial and error. Advanced techniques (IPD, HFI) significantly help but increase complexity.
-
Low-Speed Operation: Back-EMF is weak. Requires excellent signal conditioning and filtering. May need current sensing for commutation.
-
Noise: PWM switching creates massive electrical noise. Careful PCB layout (star grounding, short gate drive paths, shielded sensing) and analog filtering are critical.
-
MCU Performance: Needs fast ADC sampling (often synchronized with PWM center) and computation for real-time control.
-
Debugging Tools: An oscilloscope is essential. Logic analyzer helps with commutation sequence. Serial debug output is useful.
Starting Points for Hobbyists
-
Open-Source Firmware: Study and modify existing code:
-
SimpleFOC: Excellent Arduino-compatible library (supports sensorless).
-
VESC Project: Advanced open-source ESC platform.
-
BLHeli_S / Bluejay: Firmware for drone ESCs (highly optimized sensorless).
-
-
Development Kits: Use kits from TI (DRV830x), ST (STM32 PMSM FOC SDK), Infineon, Microchip. These include hardware and example code.
-
Pre-Built ESCs: Buy a cheap sensorless drone ESC (e.g., 30A BLHeli_S) to experiment with motor behavior before designing your own.
In essence: You "make" a sensorless BLDC motor system by combining a standard 3-phase BLDC motor (without Hall sensors) with a custom or modified Electronic Speed Controller (ESC) that implements a sensorless control algorithm based on Back-EMF zero-crossing detection. The complexity lies almost entirely in designing and programming the ESC. Start simple, use existing resources, and expect a significant learning curve!
What is two-phases BLDC Motor?
Why non-sensored BLDC Motor is important?
Related Article