Main Content

Active Disturbance Rejection Control

동특성과 외란을 알 수 없는 플랜트에 대한 제어기 설계

R2022b 이후

  • Active Disturbance Rejection Control block

라이브러리:
Simulink Control Design / Adaptive Control

설명

Active Disturbance Rejection Control 블록을 사용하면 동특성과 내부 외란, 외부 외란을 알 수 없는 플랜트에 대한 능동 외란 제거 제어(ADRC)를 설계할 수 있습니다. ADRC는 모델 프리(model-free) 제어 기법으로, 오직 플랜트 동특성에 대한 근사만으로 강인한 외란 제거를 수행하는 제어기를 설계할 수 있습니다.

이 블록은 알려진 시스템 동특성의 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)를 추정하고, 모델 근사의 알려진 부분에 대해 추정된 외란의 영향을 줄임으로써 외란 제거를 구현합니다. ADRC를 조정하려면 시간 영역, 모델 유형과 임계 이득, 제어기와 관측기의 대역폭, 초기 조건을 적절하게 설정합니다.

자세한 내용은 능동 외란 제거 제어(ADRC) 항목을 참조하십시오.

예제

포트

입력

모두 확장

제어되는 시스템이 추종해야 하는 기준 신호를 제공합니다.

플랜트의 출력 신호를 제공합니다.

출력

모두 확장

제어 입력 신호를 플랜트 입력에 연결합니다.

확장 상태 관측기가 플랜트 모델에 대해 추정한 확장 상태입니다.

모델 유형1차이면, xhat는 길이가 2인 벡터이고 추정 상태 y^, f^(t)를 가집니다.

모델 유형2차이면, xhat는 길이가 3인 벡터이고 추정 상태 y^, y˙^, f^(t)를 가집니다.

종속 관계

이 출력 포트를 활성화하려면 추정된 확장 상태 파라미터를 선택하십시오.

파라미터

모두 확장

파라미터 탭

제어기 시간 영역을 지정합니다.

이산시간을 선택하는 경우, 샘플 시간 파라미터를 사용하여 샘플 시간을 지정합니다.

프로그래밍 방식 사용

블록 파라미터: 'time_domain'
유형: 문자형 벡터
값: 'discrete-time' | 'continuous-time'
디폴트 값: 'discrete-time'

이산시간 제어기의 샘플 시간 값을 지정합니다.

종속 관계

이 파라미터를 활성화하려면 시간 영역 파라미터를 이산시간으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터: 'Ts'
유형: 문자형 벡터
값: 유한한 양의 스칼라
디폴트 값: '0.01'

플랜트의 모델 유형을 다음 중 하나로 지정합니다.

  • 1차 — 플랜트가 1차 동적 시스템의 동작을 보이는 경우 이 옵션을 선택합니다.

  • 2차 — 플랜트가 2차 동적 시스템의 동작을 보이는 경우 이 옵션을 선택합니다.

프로그래밍 방식 사용

블록 파라미터: 'model_type'
유형: 문자형 벡터
값: 'first-order' | 'second-order'
디폴트 값: 'first-order'

모델 동작을 설명하는 임계 이득 b0을 지정합니다.

프로그래밍 방식 사용

블록 파라미터: 'b0'
유형: 문자형 벡터
값: 유한한 0이 아닌 스칼라
디폴트 값: '1'

제어기 대역폭을 지정합니다. 이 파라미터는 제어기 응답 속도를 결정합니다. 일반적으로 더 빠른 응답에는 더 큰 제어기 대역폭이 필요합니다.

프로그래밍 방식 사용

블록 파라미터: 'wc'
유형: 문자형 벡터
값: 유한한 양의 스칼라
디폴트 값: '1'

관측기 대역폭을 지정합니다. 일반적으로 이 값은 관측기가 제어기보다 더 빠르게 수렴할 수 있도록 제어기 대역폭의 5~10배로 설정됩니다.

프로그래밍 방식 사용

블록 파라미터: 'wo'
유형: 문자형 벡터
값: 유한한 양의 스칼라
디폴트 값: '10'

블록 탭

확장 상태 관측기의 초기 상태 값을 스칼라 또는 길이가 n인 벡터로 지정합니다.

모델 유형1차이면 n = 2입니다. 그 외의 경우에는 n = 3입니다.

프로그래밍 방식 사용

블록 파라미터: 'x0'
유형: 문자형 벡터
값: 유한한 스칼라 | 벡터
디폴트 값: '0'

블록 출력을 지정된 포화 한도로 제한하는 옵션입니다. 상한하한 파라미터를 사용하여 출력 포화 한도를 지정합니다.

프로그래밍 방식 사용

블록 파라미터: 'ulim_checkbox'
유형: 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

블록 출력의 상한을 지정합니다. 블록 출력이 이 값을 초과하게 될 경우 이 값으로 유지됩니다.

종속 관계

이 파라미터를 활성화하려면 출력 제한 파라미터를 선택하십시오.

프로그래밍 방식 사용

블록 파라미터: 'umax'
유형: 문자형 벡터
값: 스칼라
디폴트 값: 'inf'

블록 출력의 하한을 지정합니다. 블록 출력이 이 값보다 낮아지게 될 경우 이 값으로 유지됩니다.

종속 관계

이 파라미터를 활성화하려면 출력 제한 파라미터를 선택하십시오.

프로그래밍 방식 사용

블록 파라미터: 'umin'
유형: 문자형 벡터
값: 스칼라
디폴트 값: '–inf'

확장 상태 관측기로부터 상태를 출력하는 옵션입니다.

모델 유형1차이면, 블록은 y^, f^(t)를 출력합니다.

모델 유형2차이면 블록은 y^, y˙^, f^(t)를 출력합니다.

프로그래밍 방식 사용

블록 파라미터: 'xhat_checkbox'
유형: 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

확장 기능

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2022b에 개발됨

모두 확장

참고 항목