BLDC(Brushless DC) 모터 제어를 위한 Six-Step Commutation

Six-Step Commutation 제어는 BLDC(Brushless DC) 모터를 구동하는 가장 기본적이고 널리 사용되는 제어 방식 중 하나로, 6단계로 전류를 스위칭하여 모터를 구동하는 방식입니다. 이 방식은 구조가 단순하고 구현이 쉬워 저비용 애플리케이션에서 많이 사용됩니다.


Six-Step Commutation의 기본 원리

BLDC 모터는 3개의 상(A, B, C)을 가지고 있으며, Six-Step Commutation은 이 3상의 전류를 순차적으로 스위칭하여 로터를 회전시킵니다.

1. 3상 전류 흐름

  • 한 번에 2개의 상에 전류를 인가하고 나머지 한 상은 High-Z 상태(떠 있는 상태)로 둡니다.
  • 전류는 6개의 스위칭 단계를 통해 순차적으로 흐릅니다.

2. 6단계 스위칭

  • BLDC 모터의 회전자는 회전자석으로 구성되며, 이 자석의 극성을 따라 전류가 스위칭됩니다.
  • 6단계는 아래와 같은 순서로 이루어집니다:
    단계 A상 B상 C상
    1 + Z
    2 + Z
    3 Z +
    4 + Z
    5 Z +
    6 Z +
    • +: 전류 공급
    • : 전류 흡수
    • Z: High-Z 상태 (떠 있는 상태)

3. 홀 센서 기반 위치 감지

  • 로터의 위치를 감지하기 위해 일반적으로 **홀 센서(Hall Sensor)**가 사용됩니다.
  • 3개의 홀 센서는 로터 자석의 극성을 감지하며, 이를 통해 스위칭 타이밍을 결정합니다.
  • 홀 센서는 3비트 신호(000~111)를 생성하며, 이 신호는 로터의 60도 회전마다 변경됩니다.

Six-Step Commutation의 제어 흐름

1. 홀 센서 신호 읽기

  • 로터의 현재 위치를 감지하기 위해 홀 센서 신호(3비트 값)를 읽습니다.

2. 스위칭 타이밍 결정

  • 홀 센서의 출력값을 기반으로 현재 로터 위치에 적합한 상 전류 스위칭 조합을 선택합니다.

3. 전류 인가

  • 전류를 두 개의 상에만 인가하고, 나머지 한 상은 High-Z 상태로 둡니다.

4. PWM 제어

  • 전류 크기를 제어하기 위해 PWM(Pulse Width Modulation) 신호를 사용하여 상 전압을 조정합니다.

5. 스위칭 반복

  • 로터가 회전하면서 홀 센서 신호가 변경되며, 새로운 위치에 따라 스위칭 단계가 반복됩니다.

Six-Step Commutation의 특징

장점

  1. 구현이 간단:
    • 복잡한 계산 없이도 제어 가능.
    • 센서 신호를 기반으로 간단한 스위칭 로직만으로 동작.
  2. 저비용:
    • 추가적인 계산 리소스나 고급 센서를 필요로 하지 않음.
    • 저가형 애플리케이션에 적합.
  3. 빠른 응답성:
    • 홀 센서 신호에 따라 즉각적인 스위칭 가능.

단점

  1. 진동과 소음:
    • 전류 스위칭이 순간적으로 이루어져 진동과 소음이 발생할 수 있음.
  2. 효율성 제한:
    • 자속(Flux)와 전류가 완전히 정렬되지 않아 에너지 효율이 떨어질 수 있음.
  3. 저속 성능 부족:
    • 저속에서의 제어 정밀도가 낮음.
  4. 토크 리플(Torque Ripple):
    • 스위칭 단계 간 간격 때문에 일정한 토크 생성이 어려워 불규칙한 토크 발생.

Six-Step Commutation의 구현

1. 제어 하드웨어

  • 홀 센서 입력:
    • BLDC 모터의 로터 위치를 감지하기 위해 3개의 홀 센서를 사용.
    • 센서 출력값은 마이크로컨트롤러 또는 게이트 드라이버로 전달.
  • PWM 제어:
    • 상 전압을 제어하기 위해 H-브리지 구성에서 MOSFET을 스위칭.

2. 제어 소프트웨어

홀 센서 기반 스위칭 테이블

  • 홀 센서 출력값에 따른 전류 스위칭 테이블:
    void sixStepCommutation(uint8_t hallSensorValue) {
        switch(hallSensorValue) {
            case 0b001:
                setPhaseCurrent(A, +); setPhaseCurrent(B, -); setPhaseCurrent(C, Z);
                break;
            case 0b010:
                setPhaseCurrent(A, +); setPhaseCurrent(B, Z); setPhaseCurrent(C, -);
                break;
            case 0b100:
                setPhaseCurrent(A, Z); setPhaseCurrent(B, +); setPhaseCurrent(C, -);
                break;
            case 0b101:
                setPhaseCurrent(A, -); setPhaseCurrent(B, +); setPhaseCurrent(C, Z);
                break;
            case 0b011:
                setPhaseCurrent(A, -); setPhaseCurrent(B, Z); setPhaseCurrent(C, +);
                break;
            case 0b110:
                setPhaseCurrent(A, Z); setPhaseCurrent(B, -); setPhaseCurrent(C, +);
                break;
            default:
                stopMotor();
                break;
        }
    }
    

PWM 속도 제어

  • 속도는 PWM 듀티 사이클로 조절:
    setPWMDutyCycle(phase, dutyCycle);
    

센서리스 Six-Step Commutation

센서를 사용하지 않고 로터 위치를 추정하여 제어하는 방식도 있습니다:

  • Back-EMF 기반:
    • 코일에 발생하는 Back-EMF 신호를 감지하여 로터 위치를 추정.
    • 홀 센서를 대체하며 비용 절감 가능.

Six-Step Commutation의 사용 사례

  1. 소형 가전제품
    • 선풍기, 헤어드라이어, 진공청소기.
  2. 전동 공구
    • 전기 드릴, 전기톱 등.
  3. 팬 및 펌프
    • 정밀도가 덜 중요한 모터 구동 애플리케이션.
  4. 저가형 드론
    • 비용 효율적인 BLDC 모터 제어.

Six-Step Commutation vs. FOC

특징 Six-Step Commutation FOC (Field-Oriented Control)
효율성 중간 높음
소음 및 진동 높음 매우 낮음
구현 복잡성 낮음 높음
정밀도 낮음 매우 높음
토크 리플 높음 적음
저속 성능 부족 우수

요약

Six-Step Commutation은 BLDC 모터의 전류를 6단계로 스위칭하여 제어하는 간단하고 비용 효율적인 방식입니다. 홀 센서를 사용해 로터 위치를 감지하며, 구현이 쉽고 빠른 응답성을 제공하지만, 소음과 진동이 크고 효율성이 낮다는 단점이 있습니다. 이는 저비용 애플리케이션이나 복잡한 제어가 필요 없는 경우에 적합하며, 고급 제어가 필요한 경우 FOC(Field-Oriented Control)로 업그레이드될 수 있습니다.