Main Content

PMSM의 센서리스 자속 기준 제어

이 예제에서는 3상 영구 자석 동기 모터(PMSM)의 속도를 제어하는 자속 기준 제어(FOC) 기법을 구현합니다. FOC에 대한 자세한 내용은 자속 기준 제어(FOC) 항목을 참조하십시오.

이 예제는 센서리스 위치 추정 기법을 사용합니다. 이 예제에 사용된 FOC 알고리즘을 위한 위치 피드백을 추정하기 위해 슬라이딩 모드 관측기, 자속 관측기 또는 확장 EMF 관측기를 선택할 수 있습니다.

Sliding Mode Observer(SMO) 블록은 측정된 위치와 추정된 위치 사이의 오차에 대해 슬라이딩 모션을 생성합니다. 이 블록은 측정된 위치에 밀접하게 비례하는 추정 값을 생성합니다. 이 블록은 고정자 전압 $({V_\alpha },{V_\beta })$ 및 전류 $({I_\alpha },{I_\beta })$를 입력으로 사용하여 모터 모델의 기전력(EMF)을 추정합니다. 또한 EMF를 사용하여 회전자 위치와 회전자 속도를 추가로 추정합니다.

Flux Observer 블록은 동일한 입력 $({V_\alpha },{V_\beta },{I_\alpha },{I_\beta })$를 사용하여 고정자 플럭스, 생성된 토크, 회전자 위치를 추정합니다.

Extended EMF Observer 블록은 고정자 alpha-beta 기준 프레임에서 측정된 전압과 전류로부터 PMSM의 기계적 속도뿐만 아니라 전기적 위치 ${\theta _e}$(또는 $\sin {\theta _e}$$\cos {\theta _e}$)를 계산합니다.

검출된 회전자 위치의 정확성을 위해, 인버터 보드 저항 값을 모터 블록의 고정자 위상 저항 파라미터에 추가하고 Sliding Mode Observer, Flux Observer, Extended EMF Observer 블록의 고정자 저항 파라미터에 추가하십시오.

자속 관측기를 사용하는 경우 이 예제에서는 PMSM 및 브러시리스 DC(BLDC) 모터를 모두 실행할 수 있습니다.

센서리스 관측기와 알고리즘에는 베이스 속도(base speed)를 초과하여 모터를 작동할 경우 알려진 제약이 있습니다. 센서리스 예제는 베이스 속도를 초과하지 않는 작동에 대해서만 사용할 것을 권장합니다.

모델

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

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

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

필요한 MathWorks 제품

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

1. 모델: mcb_pmsm_foc_sensorless_f28069MLaunchPad

  • Motor Control Blockset™

  • Fixed-Point Designer™

2. 모델: mcb_pmsm_foc_sensorless_f28379d

  • Motor Control Blockset™

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

1. 모델: mcb_pmsm_foc_sensorless_f28069MLaunchPad

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™

2. 모델: mcb_pmsm_foc_sensorless_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 작업 공간 변수로부터 모터 파라미터를 자동으로 추출합니다.

파라미터 추정 툴을 사용하여 추정된 모터 파라미터와 함께 Sliding Mode Observer를 사용하는 경우 Sliding Mode Observer 파라미터를 조정해야 합니다.

모델 시뮬레이션하기

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

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

2. Position Estimator 버튼을 사용하여 다음 센서리스 위치 추정 기법 중 하나를 선택합니다.

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

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

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

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

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

필수 하드웨어

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

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

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

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

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

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

또는 ADC 오프셋 값을 계산하고 모델 초기화 스크립트에서 수동으로 업데이트할 수 있습니다. 자세한 지침은 Run 3-Phase AC Motors in Open-Loop Control and Calibrate ADC Offset 항목을 참조하십시오.

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

5. 샘플 프로그램을 LAUNCHXL-F28379D의 CPU2에 로드합니다. 예를 들어, GPIO31을 사용하여 CPU2 파란색 LED를 작동하는 프로그램(c28379D_cpu2_blink.slx)을 로드하여 CPU2가 의도치 않게 CPU1용 보드 주변 기기를 사용하지 않도록 합니다. 샘플 프로그램 또는 모델에 대한 자세한 내용은 Getting Started with Texas Instruments C2000 Microcontroller Blockset (C2000 Microcontroller Blockset)의 "Task 2 - Create, Configure and Run the Model for TI Delfino F28379D LaunchPad (Dual Core)" 섹션을 참조하십시오.

6. Position Estimator 버튼을 사용하여 센서리스 위치 추정 기법을 선택합니다.

7. Hardware 탭에서 Build, Deploy & Start를 클릭하여 타깃 모델을 하드웨어에 배포합니다.

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

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

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

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

참고:

  • (Sliding Mode Observer, Flux Observer 또는 Extended EMF Observer를 사용하여) 필요한 Reference Speed로 모터를 구동하기 전에 개루프 제어를 사용하여 0.1 x pmsm.N_base 속도로 모터 구동을 시작하십시오. 그런 다음 속도를 0.25 x pmsm.N_base(여기서 pmsm.N_base는 모터의 베이스 속도에 대한 MATLAB 작업 공간 변수임)로 늘려 폐루프 제어로 전환합니다.

  • 가속과 감속의 값을 높게 설정하면 센서리스 위치 계산에 영향을 미칠 수 있습니다.

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

12. Start / Stop Motor 스위치의 위치를 On으로 변경하여 개루프 조건에서 모터 구동을 시작합니다(기본적으로 모터는 베이스 속도의 10%로 회전함).

참고: (이 예제를 사용하여) 모터를 개루프 조건에서 장시간 구동하지 마십시오. 모터가 높은 전류를 소비해 과도한 열이 발생할 수 있습니다.

개루프 제어는 베이스 속도의 10%보다 작거나 같은 Reference Speed로 모터를 구동하도록 설계되었습니다.

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

13. 모터의 Reference Speed를 베이스 속도의 10%를 넘는 값으로 지정하여 개루프 제어에서 폐루프 제어로 전환합니다.

참고: 모터의 회전 방향을 변경하려면 모터의 Reference Speed를 베이스 속도의 10%보다 작은 값으로 줄이십시오. 그러면 모터가 개루프 조건으로 다시 돌아갑니다. 회전 방향을 변경하되 Reference Speed 크기는 일정하게 유지합니다. 그런 다음 폐루프 조건으로 전환합니다.

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

참고:

  • 기준 속도와 기준 토크의 값이 높으면 Sliding Mode Observer 블록 성능에 영향을 미칠 수 있습니다.

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

기타 시도해 볼 작업

SoC Blockset™으로 센서리스 폐루프 모터 제어를 위한 응용 사례를 구현하여 ADC-PWM 동기화, 제어기 응답, 다양한 PWM 설정 연구와 관련한 과제를 해결해 볼 수 있습니다. 자세한 내용은 Integrate MCU Scheduling and Peripherals in Motor Control Application 항목을 참조하십시오.

또한 SoC Blockset™으로 센서리스 실시간 모터 제어 개발을 통해 복수의 프로세서 코어를 사용해서 설계를 모듈화하고, 제어기 성능을 개선하고, 다양한 설계 목표를 달성해 볼 수 있습니다. 자세한 내용은 Partition Motor Control for Multiprocessor MCUs 항목을 참조하십시오.