주요 콘텐츠

능동 외란 제거 제어(ADRC)

능동 외란 제거 제어(ADRC)는 모델 프리(model-free) 제어 기법으로, 동특성과 내부 외란, 외부 외란을 알 수 없는 플랜트에 대한 제어기를 설계할 때 유용합니다. 이 알고리즘은 오직 플랜트 동특성에 대한 근사를 바탕으로 오버슈트 없는 강인한 외란 제거를 수행하는 제어기를 설계할 수 있습니다.

ADRC를 구현하려면 Active Disturbance Rejection Control 블록을 사용합니다. 이 블록은 알려진 시스템 동특성의 1차 또는 2차 모델 근사를 사용하고 이와 함께 플랜트의 확장 상태로 모델링된 알 수 없는 동특성과 외란을 사용합니다. 일반적으로 차수는 동작 범위 내에서 플랜트의 개루프 계단 응답을 바탕으로 결정합니다.

  • 1차 근사 — y˙(t)=b0u(t)+f(t)

  • 2차 근사 — y¨(t)=b0u(t)+f(t)

여기서 각각은 다음을 나타냅니다.

  • y(t)는 플랜트 출력입니다.

  • u(t)는 입력 신호입니다.

  • b0은 임계 이득으로, 입력 u(t)에 대한 플랜트 응답을 설명하는 추정 이득입니다.

  • f(t)는 전체 외란으로, 알 수 없는 동특성과 기타 외란을 포함합니다.

이 블록은 ESO(확장 상태 관측기)를 사용하여 f(t)를 추정하고, 모델 근사의 알려진 부분에 대해 추정된 외란의 영향을 줄임으로써 외란 제거를 구현합니다.

이산시간 제어기와 연속시간 제어기를 모두 구현할 수 있습니다. 제어기의 시간 영역과 샘플 시간을 플랜트 모델의 시간 영역과 일치하도록 설정합니다.

제어기 구조

1차 근사

1차 플랜트 모델 근사 y˙(t)=b0u(t)+f(t)의 경우, 플랜트 출력 상태는 x1 = y(t)이고 확장 상태는 x2 = f(t)입니다.

상태공간 모델은 다음과 같습니다.

x˙=Ax+Bu+(0f˙(t))y=Cx,

여기서 각각은 다음과 같습니다.

A=(0100),B=(b00),C=(10).

이러한 관측 가능한 시스템의 경우, 블록은 Luenberger 관측기를 사용하여 플랜트 상태와 전체 외란에 대한 추정값을 제공합니다. 제어기는 다음의 추정 상태를 사용하여

z1=y^(t)z2=f^(t),

제어 입력 u(t)를 다음과 같이 계산합니다.

u(t)=u0(t)z2b0,

여기서 다음과 같이 정의됩니다.

u0(t)=KP(r(t)z1).

다음은 추정에 기반한 상태 피드백 제어기로, 추정된 값과 실제 값이 같은 경우이며 시스템은 1차 폐루프 동작을 갖습니다. 이 폐루프 시스템의 극점은 s = –KP입니다.

이 제어기는 다음과 같은 제어 구조로 표현됩니다.

Control loop structure for active disturbance rejection control for first-order model approximation.

제어기 조정을 단순화하기 위해, 블록은 제어기 극점을 (s + ωc)에 설정하고 관측기 극점을 (s + ωo)2에 설정합니다. 여기서 ωcωo는 각각 제어기와 관측기의 대역폭입니다.

2차 근사

2차 플랜트 모델 근사 y¨(t)=b0u(t)+f(t)의 경우, 플랜트 출력 상태는 x1 = y(t)x2 = y˙(t)이고 확장 상태는 x3 = f(t)입니다.

상태공간 모델은 다음과 같습니다.

x˙=Ax+Bu+(00f˙(t))y=Cx,

여기서 각각은 다음과 같습니다.

A=(010001000),B=(0b00),C=(100).

이러한 관측 가능한 시스템의 경우, 블록은 Luenberger 관측기를 사용하여 플랜트 상태와 전체 외란에 대한 추정값을 제공합니다. 제어기는 다음의 추정 상태를 사용하여

z1=y^(t)z2=y˙^(t)z3=f^(t),

제어 입력 u(t)를 다음과 같이 계산합니다.

u(t)=u0(t)z3b0,

여기서 다음과 같이 정의됩니다.

u0(t)=KP(r(t)z1)KDz2.

다음은 추정에 기반한 상태 피드백 제어기로, 추정된 값과 실제 값이 같은 경우이며 시스템은 2차 폐루프 동작을 갖습니다.

이 제어기는 다음과 같은 제어 구조로 표현됩니다.

Control loop structure for active disturbance rejection control for second-order model approximation.

제어기 조정을 단순화하기 위해, 블록은 제어기 극점을 (s + ωc)2에 설정하고 관측기 극점을 (s + ωo)3에 설정합니다. 여기서 ωcωo는 각각 제어기와 관측기의 대역폭입니다.

제어기 파라미터 지정

플랜트에 ADRC를 구현하려면 플랜트 근사를 위해 임계 이득 값 b0에 합리적인 추측값을 제공하는 것이 필수적입니다. 한 가지 가능한 방법은 다음과 같습니다.

  1. 크기가 uOL인 계단 신호를 사용하여 개루프의 동작 범위 내에서 플랜트를 시뮬레이션합니다.

  2. 짧은 시간 동안 플랜트 출력의 변화를 기록합니다.

  3. 그런 다음 a 및 스텝 크기 uOL로부터 b0을 결정할 수 있습니다.

    b0=auOL

    블록 파라미터에서 임계 이득 파라미터를 사용하여 이 값을 설정합니다.

그런 다음 제어기 응답 조정을 위해 제어기 대역폭관측기 대역폭을 사용하여 ωcωo 값을 각각 지정합니다. 이 값은 제어기의 성능 요구 사항에 따라 달라집니다. 일반적으로 더 빠른 응답에는 더 큰 제어기 대역폭이 필요합니다. 또한 관측기가 제어기보다 더 빠르게 수렴해야 합니다. 따라서 관측기 대역폭을 제어기 대역폭의 5~10배로 설정합니다.

추가적으로 이 블록은 상태의 초기 조건을 지정하고, 제어기 출력을 제한하고, 추정된 상태 값을 출력할 수 있습니다.

참고 문헌

[1] Han, Jingqing. “From PID to Active Disturbance Rejection Control.” IEEE Transactions on Industrial Electronics 56, no. 3 (March 2009): 900–906. https://doi.org/10.1109/TIE.2008.2011621.

[2] Herbst, Gernot. “A Simulative Study on Active Disturbance Rejection Control (ADRC) as a Control Tool for Practitioners.” Electronics 2, no. 3 (August 15, 2013): 246–79. https://doi.org/10.3390/electronics2030246.

[3] Zhiqiang Gao. “Scaling and Bandwidth-Parameterization Based Controller Tuning.” In Proceedings of the 2003 American Control Conference, 2003, 6:4989–96. Denver, CO, USA: IEEE, 2003. https://doi.org/10.1109/ACC.2003.1242516.

참고 항목

도움말 항목