Main Content

센서 피드백을 사용한 BLDC 모터의 6단계 정류

이 예제에서는 120도 전도 모드를 사용해 6단계 정류 기법을 구현하고 3상 브러시리스 DC(BLDC) 모터의 회전 속도와 회전 방향을 제어합니다. 또한 Six Step Commutation 블록으로 생성된 스위칭 시퀀스를 사용하여 3상 고정자 전압을 제어하며, 결과적으로 회전자 속도와 방향도 제어합니다. 이 블록에 대한 자세한 내용은 Six Step Commutation 항목을 참조하십시오.

6단계 정류 알고리즘에는 홀 시퀀스 또는 회전자 위치 피드백 값(쿼드라쳐 인코더 또는 홀 센서에서 구한 값)이 필요합니다.

쿼드라쳐 인코더 센서는 위상이 90도(전기각) 다르게 코딩된 두 개의 트랙 또는 채널이 있는 원판으로 구성됩니다. 이는 90도의 위상차를 갖는 두 개의 펄스(A와 B)와 인덱스 펄스(I)를 만듭니다. 제어기는 A 채널과 B 채널 간의 위상 관계와 채널 상태의 전환을 사용하여 모터의 속도, 위치, 회전 방향을 결정합니다.

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

제어기는 홀 시퀀스 또는 회전자 위치를 사용하여 모터를 제어합니다. 그리고 회전자가 항상 30도의 편차로 90도의 토크 각도(회전자 d축과 고정자 자기장 사이의 각도)를 유지하도록 고정자 권선의 다음 두 상에 전원을 공급합니다.

참고: 홀 시퀀스는 다양할 수 있습니다. BLDC 모터의 홀 센서 시퀀스 보정 예제를 사용하여 홀 시퀀스를 확인하십시오.

이 예제는 시뮬레이션을 지원합니다. Simscape™ Electrical™의 와이 권선 BLDC와 함께 3상 스위칭 인버터를 포함하는 플랜트 모델을 시뮬레이션할 수 있습니다.

모델

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

이들 모델을 시뮬레이션과 코드 생성에 모두 사용할 수 있습니다.

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

필요한 MathWorks 제품

모델을 시뮬레이션하려면:

1. 모델 mcb_bldc_sixstep_f28069mLaunchPad의 경우

  • Motor Control Blockset™

  • Fixed-Point Designer™

  • Simscape™ Electrical™

2. 모델 mcb_bldc_sixstep_f28379d의 경우

  • Motor Control Blockset

  • Simscape Electrical

코드를 생성하고 모델을 배포하려면:

1. 모델 mcb_bldc_sixstep_f28069mLaunchPad의 경우

  • Motor Control Blockset

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer

2. 모델 mcb_bldc_sixstep_f28379d의 경우

  • Motor Control Blockset

  • Embedded Coder

  • C2000 Microcontroller Blockset

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

선행 조건

1. 모터 파라미터를 가져오십시오. Simulink 모델과 함께 디폴트 모터 파라미터가 제공되며, 이들 파라미터를 모터 데이터시트 또는 다른 소스의 값으로 바꿀 수 있습니다.

하지만 모터 제어 하드웨어가 있는 경우에는 Motor Control Blockset 파라미터 추정 툴을 사용해서 해당 모터의 파라미터를 추정할 수 있습니다. 자세한 지침은 Estimate PMSM Parameters Using Recommended Hardware 항목을 참조하십시오.

파라미터 추정 툴은 (MATLAB® 작업 공간에 있는) motorParam 변수를 추정된 모터 파라미터로 업데이트합니다.

2. 모터 데이터시트 또는 다른 소스에서 모터 파라미터를 가져오는 경우에는 Simulink 모델과 연결된 모델 초기화 스크립트의 모터 파라미터와 인버터 파라미터를 업데이트하십시오. 자세한 지침은 Estimate Control Gains and Use Utility Functions 항목을 참조하십시오.

파라미터 추정 툴을 사용하는 경우 인버터 파라미터를 업데이트할 수 있지만, 모델 초기화 스크립트의 모터 파라미터는 업데이트하지 마십시오. 이 스크립트는 업데이트된 motorParam 작업 공간 변수로부터 모터 파라미터를 자동으로 추출합니다.

모델 시뮬레이션하기

이 예제는 시뮬레이션을 지원합니다. 다음 단계에 따라 모델을 시뮬레이션합니다.

1. 이 예제에 포함된 모델을 엽니다.

2. 모델에서 QEP 또는 Hall Speed_Feedback 라디오 버튼을 선택합니다.

3. 시뮬레이션 탭에서 실행을 클릭하여 모델을 시뮬레이션합니다.

4. 시뮬레이션 탭에서 데이터 인스펙터를 클릭하여 시뮬레이션 결과를 확인하고 분석합니다.

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

이 섹션에서는 코드를 생성하고 타깃 하드웨어에서 6단계 정류 알고리즘을 실행하는 방법을 보여줍니다.

이 예제는 호스트 모델과 타깃 모델을 사용합니다. 호스트 모델은 제어기 하드웨어 보드에 대한 사용자 인터페이스입니다. 호스트 모델은 호스트 컴퓨터에서 실행할 수 있습니다. 호스트 모델을 사용하기 위한 선행 조건은 타깃 모델을 제어기 하드웨어 보드에 배포하는 것입니다. 호스트 모델은 직렬 통신을 사용하여 타깃 Simulink 모델에 명령을 내리고 폐루프 제어에서 모터를 구동합니다.

필수 하드웨어

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

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

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

1. 타깃 모델을 시뮬레이션하고 시뮬레이션 결과를 관찰합니다.

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

3. 이 모델은 기본적으로 ADC(또는 전류) 오프셋 값을 계산합니다. 이 기능을 비활성화하려면 모델 초기화 스크립트의 변수 inverter.ADCOffsetCalibEnable을 값 0으로 업데이트하십시오.

또는 ADC 오프셋 값을 계산하고 모델 초기화 스크립트에 해당 값을 수동으로 업데이트할 수 있습니다. 자세한 지침은 개루프 제어에서 3상 AC 모터를 구동하고 ADC 오프셋 보정하기 항목을 참조하십시오.

4. 쿼드라쳐 인코더를 사용하는 경우, 쿼드라쳐 인코더 인덱스 오프셋 값을 계산하고 타깃 모델과 연결된 모델 초기화 스크립트의 사용 가능한 bldc.PositionOffset 변수에 해당 값을 업데이트합니다. 자세한 지침은 Quadrature Encoder Offset Calibration for PMSM 항목을 참조하십시오.

5. 홀 센서를 사용하는 경우, 홀 시퀀스 값을 계산하고 타깃 모델과 연결된 모델 초기화 스크립트의 사용 가능한 bldc.hallsequence 변수에 해당 값을 업데이트합니다. 자세한 지침은 BLDC 모터의 홀 센서 시퀀스 보정 항목을 참조하십시오.

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

7. 타깃 모델에서 Quadrature Encoder 또는 Hall Speed_Feedback 라디오 버튼을 선택합니다.

8. 샘플 프로그램을 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)용 모델 생성, 구성 및 실행" 섹션을 참조하십시오.

9. Hardware 탭에서 구축, 배포 및 시작을 클릭하여 타깃 모델을 하드웨어에 배포하고 변수를 타깃 모델에서 기본 작업 공간으로 불러옵니다.

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

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

11. 타깃 모델과 연결된 모델 초기화 스크립트에서 변수 target.comport를 사용하여 통신 포트를 지정합니다. 이 변수는 호스트 모델에서 사용할 수 있는 Host Serial Setup 블록, Host Serial Receive 블록, Host Serial Transmit 블록의 Port 파라미터를 업데이트합니다.

12. 호스트 모델의 Reference Speed (RPM) 필드에서 기준 속도 값을 업데이트합니다.

13. 호스트 모델에서, 모니터링하려는 디버그 신호를 선택합니다.

14. 시뮬레이션 탭에서 실행을 클릭하여 호스트 모델을 실행합니다.

15. Motor 스위치의 위치를 Start로 변경하여 모터 구동을 시작합니다.

16. 호스트 모델의 Scope 블록과 Display 블록에서 RX 서브시스템의 디버그 신호를 관찰합니다.