본문 바로가기
전공 관련 (Major)/제어 (Control)

제어공학 - Steady-state Error (정상상태 오차)

by Jayce_choi 2022. 12. 29.
반응형

System Input (시스템 입력)

제어 공학에서 시스템의 종류 (type)는 `degree of the polynomial that it can reasonably track`로 정해집니다. 실제로 오차가 0이 될 때까지가 아닌 오차가 남을 때까지를 이야기하며 (reasonably) 몇 차수의 다항식을 가진지에 대해서 종류가 나눠집니다. 

예를 들어서 시간의 함수 f(t) = 1+t 와 같은 1차 다항식으로 input이 주어졌을 때 output이 input을 쫓아갈 수 있는 것인가를 따졌을 때, 만약 track이 가능하다면 constant error가 존재할 때 우리는 Type 1 시스템이라고 부릅니다. 그리고 2차 input인 t^2 의 입력에 대해서도 마찬가지로 추종이 가능하다면 Type 2라고 부릅니다. 

input의 종류는 많습니다. 

1. step input: 보통 위치 입력이라고도 불리며 식은 아래와 같습니다. 

 2. ramp input: 속도 입력이라고도 불리며 경사진 input입니다. 

3. parabolic input: 가속도 입력이며 곡선형의 input입니다. 

4. k-th order: 위에 식들을 통해서 일반화를 진행한다면 아래 식으로 요약할수있습니다. 

 

제어 시스템의 설계에서는 크게 3가지 관점에 초점을 맞춥니다. 3가지 관점이라 함은 : 1) transient response, 2) stability, 3) steady-state error를 의미합니다. 위의 3개 항목을 기반으로 시스템 설계를 진행하며 그다음으로 경제성, 외적 요인 등을 고려합니다. 각각을 테스트를 할 때  주로 위에 나열된 입력들을 사용하기도 하며 주요 항목 중 하나인 이번 글에서는 오차 (Error)와 정상상태오차 (Steady state error)에 대해서 다뤄보겠으며 외란과, 노이즈가 없는 상황에서 우선 정리해 보겠습니다. 

 

Error & Steady-State Error (오차와 정상상태 오차)  

오차는 출력과 입력간의 얼마만큼의 차이가 있는지에 대한 값입니다. 즉 아래의 시스템 다이어그램을 본다면 입력이 R(s)이며 출력이 Y(s)일 때 오차 E(s)는 아래와 같이 정의됩니다. 그러나 이 경우는 센서 노이즈와 외란이 0인 이상적인 상태에서의 오차입니다. 

만약 이러한 상태에서 무한한 시간이 흐른다면 어떻게 될까요. 이때의 오차를 우리는 정상상태오차 (Steady-State Error)라고 부르며 시스템의 Stability가 확보가 되었을 때 유의미한, 즉 분석을 할만한 값이기도 합니다.

위에서 k승을 가진 input을 4번에서 정의하였습니다. 이를 이용하여 시간이 무한으로 흐를때의 오차를 구해보면 아래와 같습니다. 

이때 중요한 것은 GD_cl의 차수에 따라서 오차도 달라지게 되며 pole값이 0을 가지는 (s=0) 차수에 따라서 s^k항과 다시 약분이 될 것입니다. 쉽게 계산하기 위해서 GD_cl(s)를 아래와 같이 재정의를 하겠습니다. 예를 들어서 GD_cl(s)가 1/s(s+1)일 때 아래와 같이 정의될 수 있으며.. 

이를 일반화 한다면 아래와 같이 표현됩니다 (Kn은 상수입니다. 계산을 간편하게 하기 위해서 가정합니다)

이를 이용하면 e_ss식은 아래와 같이 표현할 수 있습니다. 

 

이제 위에 정리된 e_ss 식을 이용하여 각각의 input과 차수에 대해서 어떠한 값을 가지는지 알아보겠습니다. 

1. Step input (k=0)

(1) if n=0: 만약 n=0이라면 시간이 무한대로 흘러가도 오차가 남게 됩니다. 그리고 이때의 GD_cl의 값을 보통 `고정위치오차`라고 부르기도 합니다. 

(2) if n=1: n=1이라면 s항이 남으면서 s->0에 의해서 0 값을 가지게 됩니다. 즉, e_ss = 0이며 완벽하게 tracking 한다는 의미입니다.

(3) if n=2: 마찬가지로 e_ss = 0이 됩니다. 

 

2. Ramp input (k=1)

(1) if n=0: 이때는 분모에 s가 남으면서 s->0에 의해서 1/0 => 무한대가 됩니다. 즉, 원점에 ramp입력을 넣게 되면 tracking이 안된다는 의미이며 e_ss = ∞가 됩니다. 

(2) if n=1: 이때는 type 1이며 그리고 이때의 GD_cl2의 값을 보통 `고정속도오차`라고 부르기도 합니다. 

(3) if n=2: 마찬가지로 s항이 남으면서 s->0에 의해서 0값을 가지게 됩니다. 즉, e_ss = 0

 

3. Parabolic input (k=2) 

(1) if n=0: e_ss = ∞ (분모의 차수가 더 크기 때문에 무한으로 갑니다) 

(2) if n=1: e_ss = ∞ (분모의 차수가 더 크기 때문에 무한으로 갑니다) 

(3) if n=2: 이때는 type 2이며 그리고 이때의 GD_cl2의 값을 보통 `고정가속도오차`라고 부르기도 합니다.

 

Summary 

위의 각각의 입력에 대해서 표로 정리하면 아래와 같습니다. 다시 한번, 무한으로 간다는 것은 tracking이 불가능하다는 의미이며, 0은 tracking을 잘 수행한다는 의미입니다. 그러나 밑의 표에서 주대각 라인에서 처럼 값이 잔존한다는 것은 tracking을 수행하여도 오차를 가지고 tracking을 한다는 의미입니다.

Additional Comment about System type 

System Type은 결국 Loop Gain이 원점에 몇개의 pole을 가지는가에 대한 값과 같으며 이를 이용해서 시스템의 type이 얼마인지를 파악한다면 input의 type이 어디까지 tracking이 될 것인지를 파악할 수 있습니다. 즉, 다르게 표현한다면 system type이 증가하면 차수가 낮은 input에 대해서는 tracking performance 또한 증가하게 되기에 성능에도 영향을 주게 됩니다.  

System type은 `Robust property with respect to parameter changes in the unity feedback` 입니다. 시스템의 robustness를 보여주는 하나의 지표이기도 하며 다만 지금까지 다뤘던 내용들은 모두 단위 피드백 (즉 출력에서 입력으로 연결될 때 x 1을 해주는 것)에 대한 시스템에 대해서 한정되기 때문에 피드백에 전달함수가 존재한다면 system type 만으로는 파악이 안 되게 됩니다. 

반응형

댓글