Main Content

홀 센서를 사용한 PMSM의 자속 기준 제어

이 예제에서는 3상 영구 자석 동기 모터(PMSM)의 속도를 제어하는 자속 기준 제어(FOC) 기법을 구현합니다. FOC 알고리즘은 회전자 위치 피드백이 필요하며 이는 홀 센서를 통해 구합니다. FOC에 대한 자세한 내용은 자속 기준 제어(FOC) 항목을 참조하십시오.

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

모델

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

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

여러 다른 하드웨어 구성에 사용 가능한 모델의 이름은 "코드를 생성하고 타깃 하드웨어에 모델 배포하기" 섹션의 "필수 하드웨어" 항목을 참조하십시오.

필요한 MathWorks 제품

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

1. 모델: mcb_pmsm_foc_hall_f28069m

  • Motor Control Blockset™

  • Fixed-Point Designer™

2. 모델: mcb_pmsm_foc_hall_f28379d

  • Motor Control Blockset™

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

1. 모델: mcb_pmsm_foc_hall_f28069m

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™

2. 모델: mcb_pmsm_foc_hall_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. 모델을 시뮬레이션하려면 시뮬레이션 탭에서 실행을 클릭합니다.

3. 시뮬레이션 결과를 보고 분석하려면 시뮬레이션 탭에서 데이터 인스펙터를 클릭합니다.

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

이 섹션은 코드를 생성하고 타깃 하드웨어에서 FOC 알고리즘을 실행하기 위한 지침을 제공합니다.

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

필수 하드웨어

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

위의 하드웨어 구성과 관련된 연결은 F28069 control card configuration 항목을 참조하십시오.

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

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

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

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

3. 모델이 아날로그-디지털 컨버터(ADC) 또는 전류 오프셋 값을 자동으로 계산합니다. 이 기능(기본적으로 활성화되어 있음)을 비활성화하려면 모델 초기화 스크립트에서 변수 inverter.ADCOffsetCalibEnable을 값 0으로 업데이트하십시오.

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

4. 홀 센서 오프셋 값을 계산하고 타깃 모델과 연결된 모델 초기화 스크립트에서 업데이트합니다. 자세한 지침은 Hall Offset Calibration for PMSM 항목을 참조하십시오.

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

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

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

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

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

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

10. 호스트 모델에서 Reference Speed 값을 업데이트합니다.

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

12. Start / Stop Motor 스위치의 위치를 On으로 변경하여 모터 구동을 시작합니다.

참고: 하드웨어에서 Reference Speed를 낮은 값으로 설정한 상태에서 이 예제를 실행할 경우 알려진 문제로 인해 PMSM이 낮은 Reference Speed를 추종하지 않을 수 있습니다.

13. 호스트 모델의 시간 스코프에서 RX 서브시스템의 디버그 신호를 관찰합니다.

참고: F28379D 기반 제어기를 사용하는 경우 모니터링하려는 디버그 신호를 선택할 수도 있습니다.