주요 콘텐츠

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

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

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

    (모델 초기화 스크립트의) MATLAB® 함수 mcb.getPIControllerParametersd축 및 q축 전류 제어기와 속도 제어기의 PI 제어 이득을 계산합니다. 제어기 이득 계산에 대한 자세한 내용은 제어 이득 추정 및 유틸리티 함수 사용하기 항목을 참조하십시오. 예를 들어 50μs의 샘플링 시간(Ts)을 사용하는 모델 초기화 스크립트 파일 mcb_pmsm_foc_qep_f28379d_data.m(예제 쿼드라쳐 인코더를 사용한 PMSM의 자속 기준 제어에 사용됨)을 참조하십시오.

    서브시스템 다이어그램에서 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을 사용하여 플랜트 모델 만들기 항목을 참조하십시오.