Main Content

PID Controller를 사용한 안티와인드업 제어

모델 설명

이 예제에서는 액추에이터가 포화되었을 때 PID 제어기의 적분 와인드업을 방지하기 위해 안티와인드업 기법을 사용하는 방법을 보여줍니다. 여기서는 Simulink®의 PID Controller 블록을 사용합니다. 이 블록에는 두 개의 내장 안티와인드업 방법인 back-calculationclamping이 포함되어 있으며 더 복잡한 시나리오를 처리할 수 있는 추종 모드도 제공합니다.

제어할 플랜트는 불감 시간을 갖는 포화되는 1차 공정입니다.

모델을 열어 시작합니다.

그림 1: 입력 포화가 있는 플랜트의 PID 제어 Simulink 모델.

이 모델을 열려면 MATLAB® 터미널에 sldemo_antiwindup을 입력하십시오.

이 PID Controller는 Simulink® Control Design™의 PID 조정기로 포화를 무시하는 설정을 사용하여 조정되었습니다.

제어하는 플랜트는 불감 시간을 갖는 1차 공정으로 다음과 같이 정의됩니다.

$$P(s)=\frac{1}{10s+1}e^{-2s}$$

플랜트는 알려진 입력 포화 제한 [-10, 10]을 가지며, 이 제한은 Plant Actuator로 레이블이 지정된 Saturation 블록에 반영되어 있습니다. Simulink의 PID Controller 블록에는 두 개의 안티와인드업 방법이 내장되어 있어서 PID Controller 블록이 플랜트 입력 포화에 대해 제공받은 정보를 고려할 수 있습니다.

안티와인드업을 사용하지 않았을 경우의 성능

먼저, PID Controller 블록에서 포화 모델을 고려하지 않았을 경우 포화가 폐루프에 미치는 영향을 검토해 보겠습니다. 그림 1의 모델을 시뮬레이션하면 아래와 같은 결과가 생성됩니다.

그림 2: 안티와인드업을 사용하지 않을 경우의 설정점과 측정된 출력 비교.

그림 3: 안티와인드업을 사용하지 않을 경우의 제어기 출력과 포화된 입력.

그림 2와 3에는 입력 포화가 있는 시스템을 제어할 때 발생하는 문제들 중 두 가지가 주요하게 나타나 있습니다.

  1. 설정점 값이 10일 때, PID 제어 신호는 약 24 정도에서 정상 상태에 도달하는데, 이는 액추에이터의 범위에서 벗어나 있습니다. 따라서 제어 신호가 증가해도 시스템 출력에 영향이 없는 비선형 영역에서 제어기가 동작하고 있는 것입니다. 이러한 상태를 와인드업이라고 합니다. 플랜트의 DC 이득은 단위 이득이므로 제어기 출력이 액추에이터 범위 밖에서 정상 상태 값을 갖을 이유가 없습니다.

  2. 설정점 값이 5가 되면 PID 제어기 출력이 액추에이터 범위 내로 돌아가기까지 상당한 지연이 있습니다.

포화 효과를 고려하도록 PID 제어기를 설계하면 PID 제어기가 대체로 선형 영역에서 동작할 수 있고 비선형으로부터 빠르게 복구할 수 있어서 성능이 향상됩니다. 안티와인드업 회로가 이를 달성하기 위한 한 가지 방법입니다.

블록이 역계산에 기반한 안티와인드업을 수행하도록 구성하기

역계산 안티와인드업 방법은 제어기가 특정 포화 제한에 도달하여 비선형 동작에 진입하면 피드백 루프를 사용하여 PID Controller 내부 적분기를 방출(보상)합니다. 안티와인드업을 활성화하려면 블록 대화 상자의 출력 포화 탭으로 이동하여 출력 제한을 선택하고 플랜트의 포화 제한을 입력하십시오. 그런 다음, 안티와인드업 방법 메뉴에서 역계산을 선택하고 역계산 계수(Kb)를 지정합니다. 이 이득의 역이 안티와인드업 루프의 시정수입니다. 이 예제에서 역계산 이득은 1로 선택되었습니다. 이 값을 선택하는 방법에 대한 자세한 정보는 참고 문헌[1]을 참조하십시오.

그림 4: 역계산 안티와인드업 방법 활성화.

역계산이 활성화되면 블록은 적분기 출력을 방출(보상)하는 내부 추종 루프를 가지게 됩니다.

그림 5: 역계산을 사용할 경우의 PID Controller 블록의 마스크 내부.

그림 6과 7은 안티와인드업을 활성화한 상태에서 모델을 시뮬레이션한 결과를 나타냅니다. PID 제어 신호가 빠르게 선형 영역으로 되돌아가고 루프가 포화로부터 복구되는 것을 볼 수 있습니다.

그림 6: 역계산을 사용할 경우의 설정점과 측정된 출력 비교.

그림 7: 역계산을 사용할 경우의 제어기 출력과 포화된 입력.

그림 7은 출력 제한이 활성화되었으므로 제어기 출력 u(t)와 포화된 입력 SAT(u)가 서로 일치하는 것을 보여줍니다.

안티와인드업이 미치는 영향을 더 잘 시각화하기 위해 그림 8은 안티와인드업을 사용했을 때와 사용하지 않았을 때 플랜트에서 측정한 출력 y(t)를 보여줍니다.

그림 8: 안티와인드업을 사용했을 때와 사용하지 않았을 때 측정된 출력.

블록이 적분기 고정에 기반하여 안티와인드업을 수행하도록 구성하기

흔히 사용되는 또 다른 안티와인드업 전략은 조건부 적분에 기반합니다. 안티와인드업을 활성화하려면 블록 대화 상자의 PID 고급 탭으로 이동하여 출력 제한을 선택하고 플랜트의 포화 제한을 입력하십시오. 그런 다음, 안티와인드업 방법 메뉴에서 고정을 선택합니다.

그림 9: 고정을 사용할 경우의 설정점과 측정된 출력 비교.

그림 10: 고정을 사용할 경우의 제어기 출력과 포화된 입력.

그림 10은 출력 제한이 활성화되었으므로 제어기 출력 u(t)와 포화된 입력 SAT(u)가 서로 일치한다는 것을 보여줍니다.

고정 사용에 대한 자세한 내용은 참고 문헌[1]을 참조하십시오.

복잡한 안티와인드업 시나리오를 처리하기 위해 추종 모드 사용하기

앞에서 논의한 안티와인드업 전략은 대화 상자를 통해 블록에서 제공하는 내장 방법을 사용하여 블록에 전달되는 포화 정보를 처리하는 방식입니다. 이러한 내장 기법이 의도한 대로 작동하려면 두 개의 조건이 충족되어야 합니다.

  1. 플랜트의 포화 제한이 알려져 있고 이를 블록 대화 상자에 입력할 수 있습니다.

  2. PID Controller 출력 신호가 액추에이터에 전달되는 유일한 신호입니다.

일반 안티와인드업 시나리오를 처리할 때는 이러한 조건이 제한적일 수 있습니다. PID Controller 블록은 추종 모드를 제공하여 사용자가 역계산과 안티와인드업 루프를 외부적으로 설정할 수 있도록 합니다. 안티와인드업 목적으로 추종 모드를 사용하는 사례로 다음의 두 경우를 고려할 수 있습니다.

  1. 종속적으로 연결된 동특성을 갖는 액추에이터 포화의 안티와인드업

  2. 피드포워드를 사용하는 PID 제어의 안티와인드업

종속적으로 연결된 동특성을 갖는 액추에이터 포화에 대해 안티와인드업 회로 구성하기

다음 모델에서 액추에이터는 복잡한 동특성을 갖습니다. 이는 대개 액추에이터가 자체 폐루프 동특성을 갖는 경우입니다. PID 제어기는 외부 루프에 있으면서 액추에이터 동특성을 내부 루프로 인식하거나, 그림 1처럼 단순하게 종속적으로 포화되는 동특성으로 인식합니다.

그림 11: 종속적으로 연결된 액추에이터 동특성을 갖는 PID 제어기의 Simulink 모델.

이 모델을 열려면 MATLAB 터미널에 sldemo_antiwindupactuator를 입력하십시오.

이 경우 안티와인드업을 성공적으로 수행하려면 그림 11과 같이 PID Controller 블록의 추종 포트에 액추에이터 출력을 다시 전달해야 합니다. PID Controller 블록의 tracking mode를 구성하려면 블록 대화 상자의 PID 고급 탭으로 이동하여 추종 모드 활성화를 선택한 다음 이득 Kt를 지정하십시오. 이 이득의 역이 추종 루프의 시정수입니다. 이 이득을 선택하는 방법에 대한 자세한 내용은 참고 문헌[1]을 참조하십시오.

그림 12와 13은 플랜트의 측정된 출력 y(t)와 제어기 출력 u(t)가 설정점의 변화에 거의 즉시 응답하고 있는 것을 보여줍니다. 안티와인드업 회로를 사용하지 않으면 긴 지연으로 인해 응답이 느릴 것입니다.

그림 12: 설정점과 측정된 출력 비교.

그림 13: 제어기 출력과 유효한 포화 입력.

피드포워드를 사용하는 PID 제어의 안티와인드업 회로 구성하기

또 다른 일반적인 제어 구성은 액추에이터가 PID 제어 신호와 피드포워드 제어 신호가 결합된 제어 신호를 수신하는 것입니다.

역계산 안티와인드업 루프를 정확하게 빌드하려면 추종 신호가 피드포워드 신호에 의해 기여되는 부분을 차감해야 합니다. 이렇게 하면 PID Controller 블록이 액추에이터에 적용된 유효한 제어 신호 부분을 알 수 있습니다.

다음 모델은 피드포워드 제어를 포함합니다.

그림 14: 피드포워드를 사용하는 PID 제어기의 Simulink 모델과 플랜트 입력 포화.

플랜트는 DC 이득이 1이므로 여기서 피드포워드 이득은 단위 이득으로 선택됩니다.

이 모델을 열려면 MATLAB 터미널에 sldemo_antiwindupfeedforward를 입력하십시오.

그림 15와 16은 플랜트의 측정된 출력 y(t)와 제어기 출력 u(t)가 설정점의 변화에 거의 즉시 응답하고 있는 것을 보여줍니다. 설정점 값이 10일 때, 그림 16에서 제어기 출력 u(t)가 액추에이터 범위 내로 감소하는 것을 볼 수 있습니다.

그림 17: 안티와인드업을 사용하지 않을 경우의 설정점과 측정된 출력 비교.

그림 18: 안티와인드업을 사용할 경우의 제어기 출력과 포화된 입력.

요약

PID Controller 블록은 산업 시나리오에서 흔히 발생하는 제어기 와인드업 문제를 처리할 수 있는 여러 기능을 지원합니다.

참고 문헌

  1. K. Åström, T. Hägglund, Advanced PID Control, ISA, Research Triangle Park, NC, August 2005.

참고 항목

관련 항목