Main Content

BLDC 모터의 홀 센서 시퀀스 보정

이 예제에서는 개루프 제어에서 회전자의 위치 0을 기준으로 홀 센서 시퀀스를 계산합니다. 이 워크플로를 사용하면 홀 센서에 레이블을 지정할 필요 없이 6단계 정류를 사용하여 모터를 회전시키거나 스위칭 시퀀스를 도출할 수 있습니다. 이 예제를 실행하여 홀 시퀀스를 구하고 이 홀 시퀀스를 Six Step Commutation 블록과 함께 사용하여 센서 피드백을 사용한 BLDC 모터의 6단계 정류 예제에 설명된 대로 폐루프에서 모터를 구동합니다.

홀 효과 센서는 인가되는 자기장의 강도에 따라 출력 전압이 변화합니다. 표준 구성에 따라, 브러시리스 DC(BLDC)는 전기적으로 120도 간격으로 배치된 홀 센서 3개로 구성됩니다. 표준 홀 배치(센서가 전기적으로 120도 간격으로 배치되어 있음)를 사용하는 BLDC 모터는 6가지의 유효한 이진 상태 조합(예: 001, 010, 011, 100, 101, 110)을 제공할 수 있습니다. 이 센서는 60의 배수로 회전자의 각위치(단위: 도)를 제공하며, 제어기는 이를 사용해서 회전자가 있는 60도 섹터를 결정합니다.

타깃 모델은 개루프에서 낮은 속도(10RPM)로 모터를 구동하고 모터에서 V/f 제어를 수행합니다. 이 속도에서는 회전자의 d축이 고정자의 회전 자기장에 거의 정렬됩니다. 회전자의 위치 0을 기준으로 홀 시퀀스를 구한 후에 이 홀 시퀀스를 Six Step Commutation 블록과 함께 사용합니다. 그리고 (홀 시퀀스를 도출하기 위해) 이 예제에서 구한 것과 동일한 홀 순서를 센서 피드백을 사용한 BLDC 모터의 6단계 정류 예제에 사용하여 폐루프 제어에서 모터를 구동합니다.

회전자가 개루프 위치 0에 도달하면 고정자의 a상 축과 정렬됩니다. 이 위치(해당하는 홀 상태에 대한 위치)에서, 6단계 정류 알고리즘은 회전자가 항상 30도의 편차로 90도의 토크 각도(회전자 d축과 고정자 자기장 사이의 각도)를 유지하도록 고정자 권선의 다음 두 상에 전원을 공급합니다. Six Step Commutation 블록을 참조하여 이 워크플로에서 구한 홀 시퀀스를 사용하십시오.

홀 시퀀스 보정 알고리즘은 기계적 회전 전체에 걸쳐 모터를 구동하고 개루프 제어에서 회전자의 위치 0을 기준으로 홀 센서 시퀀스를 계산합니다.

참고: 이 예제는 모든 모터 상 또는 홀 시퀀스 연결에 사용할 수 있습니다.

참고: 홀 센서와 함께 6단계 정류를 사용하는 예제의 경우, 계산된 홀 시퀀스 값을 이 예제에 연결된 모델 초기화 스크립트의 bldc.hallsequence 변수에 업데이트하십시오. 자세한 지침은 Estimate Control Gains and Use Utility Functions 항목을 참조하십시오.

모델

이 예제에는 다음 모델이 포함됩니다.

이러한 모델은 코드 생성에만 사용할 수 있습니다.

지원되는 하드웨어 구성에 대한 자세한 내용은 "코드를 생성하고 타깃 하드웨어에 모델 배포하기" 섹션의 "필수 하드웨어"를 참조하십시오.

필요한 MathWorks 제품

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™(최적화된 코드 생성에만 필요함)

코드를 생성하고 타깃 하드웨어에 모델 배포하기

이 섹션에서는 코드를 생성하고 개루프 제어를 사용하여 모터를 구동하는 방법을 보여줍니다.

이 예제는 호스트 모델과 타깃 모델을 사용합니다. 호스트 모델은 제어기 하드웨어 보드에 대한 사용자 인터페이스입니다. 호스트 모델은 호스트 컴퓨터에서 실행할 수 있습니다. 호스트 모델을 사용하기 위한 선행 조건은 타깃 모델을 제어기 하드웨어 보드에 배포하는 것입니다.

호스트 모델은 직렬 통신을 사용하여 타깃 모델에 명령을 내리고 V/f 제어를 사용하여 개루프 제어에서 모터를 구동합니다. 호스트 모델은 계산된 홀 센서 시퀀스를 표시합니다.

필수 하드웨어

이 예제는 다음 하드웨어 구성을 지원합니다. MATLAB® 명령 프롬프트에서 타깃 모델 이름을 사용하여 해당 하드웨어 구성의 모델을 열 수도 있습니다.

이러한 하드웨어 구성과 관련된 연결은 LAUNCHXL-F28069M and LAUNCHXL-F28379D Configurations 항목을 참조하십시오.

코드 생성 및 타깃 하드웨어에서 모델 실행

1. 하드웨어 연결을 완료합니다.

2. 사용하려는 하드웨어 구성의 타깃 모델을 엽니다. 타깃 모델의 디폴트 하드웨어 구성 설정을 변경하려면 Model Configuration Parameters 항목을 참조하십시오.

3. 타깃 모델의 Configuration 패널에서 다음 모터 파라미터를 업데이트합니다.

  • Number of pole pairs

  • PWM frequency [Hz]

  • Data type for control algorithm

  • Motor base speed

  • Vd Ref in per-unit voltage

4. 샘플 프로그램을 LAUNCHXL-F28379D의 CPU2에 불러옵니다. 예를 들어, GPIO31을 사용하여 CPU2 파란색 LED를 작동하는 프로그램(c28379D_cpu2_blink.slx)을 사용할 수 있으며, 이로써 CPU2가 의도치 않게 CPU1용 보드 주변 기기를 사용하지 않도록 합니다. 샘플 프로그램 또는 모델에 대한 자세한 내용은 Getting Started with Texas Instruments C2000 Microcontroller Blockset (C2000 Microcontroller Blockset)의 "작업 2 - TI Delfino F28379D LaunchPad(Dual Core)용 모델 생성, 구성 및 실행" 섹션을 참조하십시오.

5. Hardware 탭에서 빌드, 배포, 시작을 클릭하여 타깃 모델을 하드웨어에 배포합니다.

6. 타깃 모델에서 host model 하이퍼링크를 클릭하여 연결된 호스트 모델을 엽니다.

호스트 모델과 타깃 모델 간의 직렬 통신에 대한 자세한 내용은 Host-Target Communication 항목을 참조하십시오.

호스트 모델의 Scope를 사용하여 개루프 회전자 위치와 홀 시퀀스 값을 모니터링할 수 있습니다.

7. 호스트 모델에서 Host Serial Setup 블록, Host Serial Receive 블록, Host Serial Transmit 블록을 열고 포트를 선택합니다.

8. 시뮬레이션 탭에서 실행을 클릭하여 호스트 모델을 실행하고 6단계 정류 제어를 위해 홀 시퀀스 보정을 시작합니다. 시뮬레이션을 시작하면 모터가 구동되고 보정이 시작됩니다. 보정 프로세스가 완료되면 시뮬레이션이 종료되고 모터가 자동으로 정지합니다.

참고: 모터의 시동 또는 회전이 원활하게 이루어지지 않는 경우, Configuration 패널에서 Vd Ref in Per Unit voltage 필드의 값(최대값은 1)을 늘리십시오. 그러나 모터가 높은 전류를 끌어오는 경우에는 이 값을 줄이십시오.

규칙에 따라, 6단계 정류 제어는 홀 시퀀스 보정 시에 사용한 회전 방향과 동일한 정방향 회전을 사용합니다. 이러한 정방향 규칙을 변경하려면, 모터 상 전선을 서로 바꿔 연결하고 홀 시퀀스 보정을 다시 수행한 다음 6단계 정류 제어를 사용하여 모터를 구동하십시오.

9. 보정 프로세스의 상태를 알아보려면 호스트 모델에서 다음 LED를 확인합니다.

  • Calibration in progress LED는 모터가 구동을 시작하면 주황색으로 바뀝니다. Scope에서 회전자 위치와 홀 시퀀스 값의 변동을 살펴봅니다(위치 신호는 0과 1 사이의 진폭을 가진 램프 신호를 나타냄). 보정 프로세스가 완료되면 이 LED는 회색으로 바뀝니다.

  • Calibration complete LED는 보정 프로세스가 완료되면 초록색으로 바뀝니다. 그런 다음, 계산된 홀 시퀀스 값이 Calibration Output 필드에 표시됩니다.

참고: 이 예제는 시뮬레이션을 지원하지 않습니다.

비상시 모터를 즉시 정지하려면 Emergency Motor Stop 버튼을 클릭하십시오.