주요 콘텐츠

유도 모터의 센서리스 자속 기준 제어

이 예제는 센서리스 위치 추정을 사용해서 3상 AC 유도 모터(ACIM)의 속도를 제어하는 자속 기준 제어(FOC) 기법을 구현합니다. FOC에 대한 자세한 내용은 자속 기준 제어(FOC) 항목을 참조하십시오.

이 예제에서는 회전자 Flux Observer 블록을 사용하여 회전자 플럭스의 위치를 추정합니다.

이 블록은 고정자 전압 $({V_\alpha },{V_\beta })$ 및 전류 $({I_\alpha },{I_\beta })$를 입력으로 사용하여 회전자 플럭스, 생성된 토크, 회전자 플럭스 위치를 추정합니다.

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

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

참고: Flux Observer 블록에서 추정한 속도는 실제 회전자 속도와 오차가 있습니다. 이 오차는 베이스 속도의 1퍼센트 허용오차 내에 있습니다. 이 오차를 최소화하려면 Flux Observer 블록의 위치 출력값에 오프셋 보상을 적용할 수 있습니다.

모델

이 예제에는 모델 mcb_acim_foc_sensorless_f28379d가 포함되어 있습니다.

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

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

필요한 MathWorks 제품

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

  • Motor Control Blockset™

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

  • Motor Control Blockset

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

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

선행 조건

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

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

3. 이 초기화 스크립트는 파생된 파라미터도 계산합니다. 총 누설률, 정격 플럭스, 정격 토크, 유도 모터의 고정자 인덕턴스와 회전자 인덕턴스 등을 예로 들 수 있습니다.

모델 시뮬레이션하기

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

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

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

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

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

이 섹션에서는 코드를 생성하고 타깃 하드웨어에서 FOC 알고리즘을 실행하는 방법을 설명합니다.

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

필수 하드웨어

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

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

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

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

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

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

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

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)의 "작업 2 - TI Delfino F28379D LaunchPad(Dual Core)용 모델 생성, 구성 및 실행" 섹션을 참조하십시오.

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

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

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

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

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

10. Debug signals 섹션에서, 모니터링하려는 신호를 선택합니다.

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

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

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

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

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

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

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