Main Content

전류 제어기 서브시스템 설계하기

다음 단계를 사용하여 전류 제어기 서브시스템을 설계합니다.

  1. Simulink® 라이브러리 브라우저의 Motor Control Blockset™ 라이브러리에서 PI Controller 블록(Controls/Controllers 라이브러리에 있음)을 사용하여 d축 및 q축 전류 제어를 설계합니다. 예를 들어 다음 이미지는 d축 전류 제어기 서브시스템을 보여줍니다.

    (모델 초기화 스크립트의) MATLAB® 함수 mcb_SetControllerParameters는 d축 및 q축 전류 제어기와 속도 제어기의 PI 제어 이득을 계산합니다. 제어기 이득 계산에 대한 자세한 내용은 Estimate Control Gains and Use Utility Functions 항목을 참조하십시오. 예를 들어 50μs의 샘플링 시간(Ts)을 사용하는 모델 초기화 스크립트 파일 mcb_pmsm_foc_qep_f28379d_data.m(예제 Field-Oriented Control of PMSM Using Quadrature Encoder에 사용됨)을 참조하십시오.

    서브시스템 다이어그램에서 Enable 변수는 제어기를 재설정하는 데 사용되는 Data Store Memory입니다. Enable 변수 추가는 선택 사항입니다.

    또한 이 서브시스템은 다음 값을 가진 Constant 블록 3개를 사용합니다.

    • PI_params.Kp_i

    • PI_params.Ki_i*Ts

    • 0

    q축 전류 PI 제어기에 대해 유사한 서브시스템을 만듭니다. d축 및 q축 PI 제어기의 서브시스템을 d축 및 q축 전류를 제어하는 단일 서브시스템(Current_Controllers)에 통합합니다.

  2. 아래 그림과 같이 Motor Control Blockset/Controls/Math Transforms 라이브러리의 Clarke Transform, Park Transform, Inverse Park Transform, PWM Reference Generator 블록을 (1단계에서 만든) Current_Controllers 서브시스템에 추가합니다.

  3. 아래 그림과 같이 2단계에서 만든 컴포넌트를 단일 서브시스템(폐루프 자속 기준 제어를 구현하는 Closed Loop Control)에 통합합니다.

  4. 펄스 폭 변조(PWM) 출력을 스케일링하는 Output Scaling 서브시스템을 만듭니다. 이 서브시스템은 플랜트 모델에 대해 정규화된 PWM 듀티 사이클(0-1)을 출력합니다.

  5. 전류 스케일링(Calculate Phase Currents), QEP 위치 디코딩(Calculate Position and Speed), Closed Loop Control, Output Scaling 서브시스템을 통합하여 새로운 서브시스템을 만듭니다. Simulink/Ports & Subsystems 라이브러리의 Trigger 블록을 이 서브시스템에 추가하고 트리거 유형 파라미터를 함수 호출로 설정합니다.

  6. Simulink/Ports & Subsystems 라이브러리의 Function-Call Generator 블록을 5단계에서 만든 서브시스템에 추가합니다. 블록의 샘플 시간 파라미터를 제어 루프 샘플 시간 Ts(디폴트 값은 50e-6s임)와 동일하게 설정합니다.

  7. 6단계에서 만든 플랜트 모델과 제어기 서브시스템을 통합합니다. 모터 제어 시스템에 대한 플랜트 모델을 만드는 방법의 자세한 단계는 Motor Control Blockset을 사용하여 플랜트 모델 만들기 항목을 참조하십시오.