Main Content

PMSM의 약계자 제어(MTPA 사용)

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

약계자 제어

FOC 알고리즘을 사용하여 정격 플럭스로 모터를 구동하는 경우 최대 속도는 고정자 전압, 정격 전류, 역기전력에 의해 제한됩니다. 이 속도를 베이스 속도라고 합니다. 이 속도를 넘어가면 역기전력이 공급 전압보다 크기 때문에 기계의 작동이 복잡해집니다. 그러나 d축 고정자 전류(Id)를 음수 값으로 설정하면 회전자 쇄교 자속이 감소하므로 모터가 베이스 속도보다 높게 구동될 수 있습니다. 이러한 작동을 모터의 약계자 제어라고 합니다.

기계의 연결 부하와 정격 전류에 따라, 약계자 제어의 기준 d축 전류(${I_d}$)가 기준 q축 전류(${I_q}$)를 제한하며, 그에 따라 토크 출력도 제한합니다. 따라서 모터는 베이스 속도에 이를 때까지는 토크가 일정한 영역에서 작동합니다. 베이스 속도를 넘어서면 위의 그림에 나와 있는 것처럼 제한된 토크의 정전력 영역에서 작동합니다.

기준 전류 ${I_d}$에 대한 계산은 모터 파라미터와 인버터 파라미터에 따라 달라집니다.

참고:

  • 일부 표면형 PMSM의 경우, (파라미터에 따라) 정격 전류에서는 더 높은 속도를 달성하지 못할 수도 있습니다. 더 높은 속도를 달성하려면 정격 전류보다 높은 최대 전류로 모터에 과부하를 걸어야 합니다(기계의 열적 조건이 허용 한도 이내인 경우).

  • 베이스 속도보다 높게 모터를 작동할 때는 모터의 온도를 모니터링하는 것이 좋습니다. 모터 작동 중에 모터 온도가 제조업체에서 권장하는 온도보다 높아지는 경우 안전을 고려해 모터를 끄십시오.

  • 베이스 속도보다 높게 모터를 작동하는 경우, 일부 시스템을 불안정하게 만들 수 있는 약계자의 동특성을 방지하기 위해 작은 스텝으로 속도 기준을 증분하는 것이 좋습니다.

암페어당 최대 토크(MTPA)

매립형 PMSM의 경우, 회전자 자기 회로의 돌극성(saliency)으로 인해 ${{{L_q}} \over {{L_d}}}$ 비가 더 높아집니다(1보다 큼). 이에 따라 (기존 전자기 토크 외에) 회전자에 릴럭턴스 토크가 생성됩니다. 자세한 내용은 MTPA Control Reference 항목을 참조하십시오.

따라서 ${I_d}$${I_q}$의 최적 조합에서 기계를 작동하고 동일한 고정자 전류 ${I_{\max }} = \sqrt {I_d^2 + I_q^2}$에서 더 높은 토크를 얻을 수 있습니다.

이렇게 하면 고정자 전류 손실이 최소화되므로 기계의 효율성이 향상됩니다. 기계에서 최대 토크를 생성하기 위해 기준 ${I_d}$ 전류와 ${I_q}$ 전류를 생성할 때 사용하는 알고리즘을 암페어당 최대 토크(MTPA)라고 합니다.

매립형 PMSM(IPMSM)의 경우, 이 예제에서는 베이스 속도까지 MTPA 방법을 사용하여 기준 ${I_d}$ 전류와 ${I_q}$ 전류를 계산합니다. 표면형 PMSM(SPMSM)의 경우, 이 예제에서는 베이스 속도까지 제로 d축 기준 전류를 사용하여 MTPA 작동을 달성합니다.

베이스 속도보다 높게 모터를 작동하기 위해, 이 예제에서는 모터 유형에 따라 MTPA와 약계자 제어를 위한 기준 ${I_d}$${I_q}$를 계산합니다. 표면형 PMSM의 경우, 정전압 정전력(CVCP) 제어 방법이 사용됩니다. 매립형 PMSM의 경우, 전압 및 전류 제한 최대 토크(VCLMT) 제어 방법이 사용됩니다.

MTPA Control Reference 블록에 대한 자세한 내용은 MTPA Control Reference 항목을 참조하십시오.

타깃 통신

하드웨어 구현을 위해 이 예제에서는 호스트 모델과 타킷 모델을 사용합니다. 호스트 컴퓨터에서 실행 중인 호스트 모델은 모터에 연결된 하드웨어에 배포된 타깃 모델과 통신합니다. 호스트 모델은 직렬 통신을 사용하여 타깃 모델에 명령을 내리고 폐루프 제어에서 모터를 구동합니다.

약계자 제어와 MTPA에는 둘 다 다음과 관련된 제한을 준수하는 기준 전류 생성이 필요합니다.

  • 전류 제한 원

  • 전압 제한 타원

  • 모터 온도

이러한 제한을 준수하는 동작점을 확인하려면 Obtain Motor Characteristics 함수로 생성되는 플롯을 참조하십시오.

약계자 영역에서 일부 PMSM에는 모터의 정격 전류보다 높은 고정자 전류가 필요합니다. 자세한 내용은 Obtain Motor Characteristics 함수로 생성되는 플롯을 참조하십시오.

모델

이 예제에서는 다음 하드웨어 구성을 위해 여러 모델을 사용합니다.

약계자와 MTPA를 사용하는 PMSM의 속도 제어:

약계자와 MTPA를 사용하는 매립형 PMSM(IPMSM)의 속도 제어:

참고: 이 모델은 모델 초기화 스크립트에 정의된 ADLEE-BM-180E IPMSM 파라미터를 사용합니다. ADLEE-BM-180E IPMSM의 돌극성(saliency)은 약 10%(${L_q}$${L_d}$보다 약 10% 더 높음)입니다. 돌극성이 낮기 때문에 이 모터가 약계자 영역에 진입한 후 정격 속도보다 높은 속도로 모터를 구동하려면 더 높은 ${I_d}$ 전류가 필요합니다. 그러나 모터의 정격 전류는 9A에 불과합니다. 따라서 이 모터를 약계자 영역에서 구동하는 경우, 돌극성이 낮기 때문에 모터는 높은 ${I_d}$ 전류를 빠르게 끌어오면서(그리고 정격 전류 제한에 빠르게 도달하면서) 베이스 속도보다 제한된 크기만큼만 더 증가한 속도를 얻습니다. 이 모델을 사용하면 돌극성(saliency)이 더 높은 IPMSM을 사용하여 베이스 속도보다 높은 속도를 달성할 수 있습니다.

MTPA를 사용하는 PMSM의 토크 제어:

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

필요한 MathWorks 제품

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

1. 모델 mcb_pmsm_fwc_qep_f28069LaunchPadmcb_pmsm_mtpa_qep_f28069LaunchPad의 경우

  • Motor Control Blockset™

  • Fixed-Point Designer™

2. 모델 mcb_pmsm_fwc_qep_f28379d, mcb_ipmsm_fwc_qep_f28379dmcb_pmsm_mtpa_qep_f28379d의 경우

  • Motor Control Blockset™

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

1. 모델 mcb_pmsm_fwc_qep_f28069LaunchPadmcb_pmsm_mtpa_qep_f28069LaunchPad의 경우

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™

2. 모델 mcb_pmsm_fwc_qep_f28379d, mcb_ipmsm_fwc_qep_f28379dmcb_pmsm_mtpa_qep_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. 시뮬레이션 탭에서 데이터 인스펙터를 클릭하여 시뮬레이션 결과를 확인하고 분석합니다.

속도 제어 모델의 시뮬레이션 결과 분석하기

이 모델은 per-unit 시스템을 사용하여 속도, 전류, 전압, 토크, 전력을 나타냅니다. 작업 공간에 PU_System를 입력하면 이러한 수량에 대해 하나의 per-unit 값에서 SI 단위로의 변환을 확인할 수 있습니다.

속도 제어기와 전류 제어기에 대한 시스템의 동특성을 관찰합니다. 그리고 베이스 속도보다 높게 모터를 작동하는 경우 Id 전류가 음이라는 점에 유의하십시오.

참고: 처음에 이 예제는 개루프 제어에서 모터를 구동합니다. 쿼드라쳐 인코더 센서의 인덱스 펄스를 감지한 후 모터는 폐루프 제어를 사용하여 구동을 시작합니다. 시동 알고리즘이 이러한 전환을 수행하는 데에는 약 0.5초가 걸립니다. 이 초기 기간에는 속도 피드백 신호와 위치 피드백 신호에서 관측된 과도 현상을 무시합니다.

토크 제어 모델의 시뮬레이션 결과 분석하기

다음 세 가지 방법으로 생성된 Id 기준 전류와 Iq 기준 전류를 사용하여 시뮬레이션을 실행합니다.

1. MTPA Control Reference 블록을 사용하여 기준 전류를 생성합니다.

2. Vector Control Reference 블록을 사용하여 MTPA 기준 전류를 수동으로 생성합니다.

3. MTPA 없이 Control Reference를 생성합니다.

첫 번째 방법은 선형 인덕턴스가 있는 것으로 간주한 후 수학적 계산을 사용하여 기준 전류 Id 및 Iq를 결정합니다.

두 번째 방법은 비선형 인덕턴스가 있는 모터에 대해 MTPA 룩업 테이블을 수동으로 생성하려는 경우에 사용합니다. +(π/2)와 -(π/2) 사이의 토크 각도를 스윕하여 생성된 Id 기준 전류와 Iq 기준 전류를 사용하여 이를 나타낼 수 있습니다.

마지막 방법은 MTPA 알고리즘 없이 기준 전류를 구하려는 경우에 사용합니다.

이 세 가지 방법으로 생성된 토크와 전력을 데이터 인스펙터에서 비교할 수 있습니다.

위의 예제에서, MTPA를 사용하여 생성된 전기 토크는 0.34PU인 반면 MTPA 없이 생성된 전기 토크는 0.27PU임을 알 수 있습니다. 또한 변동하는 토크 각도를 사용하면 최대 생성 토크가 MTPA로 생성된 토크와 일치한다는 것을 알 수 있습니다. 음의 d축 전류는 MTPA가 매립형 PMSM의 릴럭턴스 토크를 활용하고 있음을 보여줍니다.

참고: 표면형 PMSM으로 작업할 경우, 다음 위치에 있는 MTPA Control Reference 블록에서 모터 유형 파라미터를 매립형 PMSM에서 표면형 PMSM으로 변경하십시오.

  • mcb_pmsm_fwc_qep_f28069LaunchPad/Speed Control

  • mcb_pmsm_fwc_qep_f28379d/Speed Control

  • mcb_pmsm_mtpa_qep_f28069LaunchPad/Torque Control/MTPA_Reference

  • mcb_pmsm_mtpa_qep_f28379d/Torque Control/MTPA_Reference

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

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

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

필수 하드웨어

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

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

모델을 실행하여 약계자와 MTPA를 사용하는 속도 제어와 토크 제어 구현하기

1. 모델을 시뮬레이션하고 위의 섹션을 사용하여 시뮬레이션 결과를 분석합니다.

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

3. 토크 제어 모델에는 (속도 제어 모델을 사용하는) 속도 제어를 갖춘 외부 동력계로 구동되는 QEP 센서가 있는 매립형 PMSM이 필요합니다.

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

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

5. 쿼드라쳐 인코더 인덱스 오프셋 값을 계산하고 타깃 모델과 연결된 모델 초기화 스크립트에 해당 값을 업데이트합니다. 자세한 지침은 Quadrature Encoder Offset Calibration for PMSM 항목을 참조하십시오.

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

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

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

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

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

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

11. 속도 제어 모델에서 Reference Speed (RPM) 블록 값을 업데이트합니다. 토크 제어 모델에서 Imag Reference 블록을 사용하여 현재 요청을 업데이트합니다.

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

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

14. 다양한 기준 속도(또는 전류)를 입력하고 호스트 모델의 Time Scope에서 RX 서브시스템의 디버그 신호를 관찰합니다.

참고:

  • 이 예제에서 위치 오프셋이 올바르지 않으면 모터에 과도한 전류가 발생할 수 있습니다. 이를 방지하려면, 위치 오프셋이 올바르게 계산되고 작업 공간 변수 pmsm.PositionOffset에 업데이트되었는지 확인하십시오.

  • 베이스 속도보다 높게 모터를 작동하는 경우, 모터의 온도를 모니터링하는 것이 좋습니다. 모터 작동 중에 모터 온도가 제조업체에서 권장하는 온도보다 높아지는 경우 안전을 고려해 모터를 끄십시오.

  • 베이스 속도보다 높게 모터를 작동하는 경우, 일부 시스템을 불안정하게 만들 수 있는 약계자의 동특성을 방지하기 위해 작은 스텝으로 속도 기준을 증분하는 것이 좋습니다.

참고 문헌

[1] B. Bose, Modern Power Electronics and AC Drives. Prentice Hall, 2001. ISBN-0-13-016743-6.

[2] Lorenz, Robert D., Thomas Lipo, and Donald W. Novotny. "Motion control with induction motors." Proceedings of the IEEE, Vol. 82, Issue 8, August 1994, pp. 1215-1240.

[3] Morimoto, Shigeo, Masayuka Sanada, and Yoji Takeda. "Wide-speed operation of interior permanent magnet synchronous motors with high-performance current regulator." IEEE Transactions on Industry Applications, Vol. 30, Issue 4, July/August 1994, pp. 920-926.

[4] Li, Muyang. "Flux-Weakening Control for Permanent-Magnet Synchronous Motors Based on Z-Source Inverters." Master's Thesis, Marquette University, e-Publications@Marquette, Fall 2014.

[5] Briz, Fernando, Michael W. Degner, and Robert D. Lorenz. "Analysis and design of current regulators using complex vectors." IEEE Transactions on Industry Applications, Vol. 36, Issue 3, May/June 2000, pp. 817-825.

[6] Briz, Fernando, et al. "Current and flux regulation in field-weakening operation [of induction motors]." IEEE Transactions on Industry Applications, Vol. 37, Issue 1, Jan/Feb 2001, pp. 42-50.

[7] TI Application Note, "Sensorless-FOC With Flux-Weakening and MTPA for IPMSM Motor Drives."

참고 항목