능동 외란 제거 제어(ADRC)
능동 외란 제거 제어(ADRC)는 모델 프리(model-free) 제어 기법으로, 동특성과 내부 외란, 외부 외란을 알 수 없는 플랜트에 대한 제어기를 설계할 때 유용합니다. 이 알고리즘은 오직 플랜트 동특성에 대한 근사를 바탕으로 오버슈트 없는 강인한 외란 제거를 수행하는 제어기를 설계할 수 있습니다.
ADRC를 구현하려면 Active Disturbance Rejection Control 블록을 사용합니다. 이 블록은 알려진 시스템 동특성의 1차 또는 2차 모델 근사를 사용하고 이와 함께 플랜트의 확장 상태로 모델링된 알 수 없는 동특성과 외란을 사용합니다. 일반적으로 차수는 동작 범위 내에서 플랜트의 개루프 계단 응답을 바탕으로 결정합니다.
1차 근사 —
2차 근사 —
여기서 각각은 다음을 나타냅니다.
y(t)는 플랜트 출력입니다.
u(t)는 입력 신호입니다.
b0은 임계 이득으로, 입력 u(t)에 대한 플랜트 응답을 설명하는 추정 이득입니다.
f(t)는 전체 외란으로, 알 수 없는 동특성과 기타 외란을 포함합니다.
이 블록은 ESO(확장 상태 관측기)를 사용하여 f(t)를 추정하고, 모델 근사의 알려진 부분에 대해 추정된 외란의 영향을 줄임으로써 외란 제거를 구현합니다.
이산시간 제어기와 연속시간 제어기를 모두 구현할 수 있습니다. 제어기의 시간 영역과 샘플 시간을 플랜트 모델의 시간 영역과 일치하도록 설정합니다.
제어기 구조
1차 근사
1차 플랜트 모델 근사 의 경우, 플랜트 출력 상태는 x1 = y(t)이고 확장 상태는 x2 = f(t)입니다.
상태공간 모델은 다음과 같습니다.
여기서 각각은 다음과 같습니다.
이러한 관측 가능한 시스템의 경우, 블록은 Luenberger 관측기를 사용하여 플랜트 상태와 전체 외란에 대한 추정값을 제공합니다. 제어기는 다음의 추정 상태를 사용하여
제어 입력 u(t)를 다음과 같이 계산합니다.
여기서 다음과 같이 정의됩니다.
다음은 추정에 기반한 상태 피드백 제어기로, 추정된 값과 실제 값이 같은 경우이며 시스템은 1차 폐루프 동작을 갖습니다. 이 폐루프 시스템의 극점은 s = –KP입니다.
이 제어기는 다음과 같은 제어 구조로 표현됩니다.
제어기 조정을 단순화하기 위해, 블록은 제어기 극점을 (s + ωc)에 설정하고 관측기 극점을 (s + ωo)2에 설정합니다. 여기서 ωc와 ωo는 각각 제어기와 관측기의 대역폭입니다.
2차 근사
2차 플랜트 모델 근사 의 경우, 플랜트 출력 상태는 x1 = y(t) 및 x2 = 이고 확장 상태는 x3 = f(t)입니다.
상태공간 모델은 다음과 같습니다.
여기서 각각은 다음과 같습니다.
이러한 관측 가능한 시스템의 경우, 블록은 Luenberger 관측기를 사용하여 플랜트 상태와 전체 외란에 대한 추정값을 제공합니다. 제어기는 다음의 추정 상태를 사용하여
제어 입력 u(t)를 다음과 같이 계산합니다.
여기서 다음과 같이 정의됩니다.
다음은 추정에 기반한 상태 피드백 제어기로, 추정된 값과 실제 값이 같은 경우이며 시스템은 2차 폐루프 동작을 갖습니다.
이 제어기는 다음과 같은 제어 구조로 표현됩니다.
제어기 조정을 단순화하기 위해, 블록은 제어기 극점을 (s + ωc)2에 설정하고 관측기 극점을 (s + ωo)3에 설정합니다. 여기서 ωc와 ωo는 각각 제어기와 관측기의 대역폭입니다.
제어기 파라미터 지정
플랜트에 ADRC를 구현하려면 플랜트 근사를 위해 임계 이득 값 b0에 합리적인 추측값을 제공하는 것이 필수적입니다. 한 가지 가능한 방법은 다음과 같습니다.
크기가 uOL인 계단 신호를 사용하여 개루프의 동작 범위 내에서 플랜트를 시뮬레이션합니다.
짧은 시간 동안 플랜트 출력의 변화를 기록합니다.
1차 ADRC의 경우 응답 근사 y = at를 사용하고 다음과 같이 a를 결정합니다.
예제는 Design Active Disturbance Rejection Control for Water-Tank System 항목을 참조하십시오.
2차 ADRC의 경우 응답 근사 y = ½at2를 사용하고 다음과 같이 a를 결정합니다.
예제는 Design Active Disturbance Rejection Control for Boost Converter 항목을 참조하십시오.
그런 다음 a 및 스텝 크기 uOL로부터 b0을 결정할 수 있습니다.
블록 파라미터에서 임계 이득 파라미터를 사용하여 이 값을 설정합니다.
그런 다음 제어기 응답 조정을 위해 제어기 대역폭과 관측기 대역폭을 사용하여 ω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.
참고 항목
Active Disturbance Rejection Control