앞 글에서 PD 제어를 학습했다. PD 제어는 현재 상태의 오차와 미분값을 이용하여 물체를 원하는 상태로 만들기 위해 설계된 제어기법이다. 피드백 루프를 통해 open loop 시스템의 폴과 제로를 움직일 수 있었다. 이때 P gain과 D gain을 이용하여 폴과 제로를 원하는 위치로 옮길 수 있다. 일반적으로 PD 제어기는 외란이 없거나 매우 작은 상태에서 충분한 성능을 가진다. 성능이라고 하면, 명령값을 얼마나 잘 추종하는지를 뜻한다. 그러나 외란이 불규칙적이거나 시스템에 영향을 주는 정도가 클 경우에 PD 제어기만으로는 충분한 성능을 만들어내기 어렵다. 이 경우에 시스템을 제어하기 위해 만들어진 기법이 PID 제어 이다.
1. I-Control
Integral control 이라고 하는 I 제어기는, 오차의 적분값을 계산하여 제어기에 반영하도록 설계된 제어기 이다. 오차의 적분값이라고 하면, 오차의 누적값이라고 생각하면 된다. 외란이 있는 경우 혹은 Steady state error가 있는 경우 오차의 누적값은 시간이 지남에 따라 커지게 될 것이다. 이 값만큼 역으로 빼주어 제어기에 반영하는 것이다. 그렇기에 I 제어기는 steady state error를 없애는데 효과적이다. Block diagram으로 나타내면 다음과 같다.
왼쪽은 PD 제어기, 오른쪽은 PID 제어기 이다. 오른쪽 그림에서 오차의 적분항이 추가된 것을 볼 수 있다.
전달함수를 구해보자.
$$G_{pd}(s)=\frac{K_p}{ms^2+(b+K_d)s+K_p}$$
$$G_{pid}(s) = \frac{ \frac{Kp+Ki/s}{s(ms+(b+Kd))} }{ 1+ \frac{Kp+Ki/s}{s(ms+(b+Kd))} }=\frac{sKp+Ki}{ms^3+s^2(b+Kd)+sKp+Ki}$$
두 시스템의 전달함수를 보자. DC gain은 1로 동일하다. 외란이 없는 경우에 두 시스템 모두 명령값을 잘 추종하도록 만들 수 있다. 그러나, PID 제어 시스템의 경우 분모의 차수가 PD 제어 시스템보다 크다. 또한 오차의 적분값이 제어 입력에 더해져 있다. 이로 인해서 PD 제어기보다 좋은점이 있다. 그러나, 단점 또한 존재한다. 여러가지 경우에 대해서 비교해보자.
2. PID control
먼저 외란이 없는 경우, 시스템의 출력을 비교해 보자. $m=1,b=1,Kp=1,Kd=2$ 로 가정한다. I gain은 0.1로 설정했다.
- Case 1. Unit step input
Unit step input에 대한 출력을 살펴보자.
왼쪽 그림은 PD제어기, 오른쪽 그림은 PID 제어기 이다. 두 제어기 모두 목표값 1에 수렴하는 것을 알 수 있다.
그러나 PID 제어기의 경우 오버슛이 발생한다. 분모의 차수가 1 늘어남에 따라 오버슛이 발생하기 쉬워진 것이다. 물론 Gain을 적절히 조절한다면 오버슛을 최소화 시킬 수 있다. 이 특징은, 오버슛이 발생하면 안되는 시스템의 경우에 I-Control의 단점이 될 수 있다. 이러한 이유로 외란이 없는 경우에는 주로 PD 제어기를 사용한다.
I-Control의 장점은, Unit step input에서는 드러나지 않는다. 오히려 단점으로 작용한다. 그러나 실제 시스템에서 입력이 Unit step만 있는것은 아니다. Ramp input이나 불규칙적인 입력 등 다양하게 존재한다. 이러한 경우에 I-Control의 장점이 나타난다.
- Case 2. Unit Ramp input
Ramp input은 기울기가 1로 계속 증가하는 입력이다. 이에 대한 출력을 살펴보자.
두 시스템의 출력 모두 기울기가 1로 증가하면서 입력값을 추종하는 것 처럼 보인다. 그런데 자세히 보면 확실히 다르다.
30초의 경우 PID 제어기의 출력은 30인 반면에, PD 제어는 30보다 작다. PD 제어기가 명령 입력값을 잘 추종하지 못하고 있다. 확실한 비교를 위해 다음 표를 보자.
노란색 선은 PD 제어기, 초록색 선은 PID 제어기, 빨간색 선은 Ramp 입력이다. 미리 예상했듯이 PD 제어기는 명령값에 수렴하지 않는다. 반면 PID 제어기는 수렴한다. 이 점이 I-control의 장점 중 하나이다. I-control을 통해 적분기를 시스템에 추가하고, 분모의 차수가 높아졌다. 분모의 차수가 높아짐에 따라, 차수가 높은 입력에 대해서도 잘 추종하는 것이다.
3. Input disturbance
시스템에 외란이 있는경우를 고려하자. 외란의 종류는 보통 인풋 외란, 출력 외란이 존재한다. 인풋 외란이란 아래 그림과 같이 시스템 입력값에 외란이 존재하는 경우이고, 출력 외란이란 시스템의 출력에 존재하는 외란이다. 아래 시스템의 경우 적분기 뒤에 외란이 더해지는 경우에 해당한다. 이 글에서는 인풋 외란에 대해 다룰 것이다. 인풋 외란이 있는 경우 시스템의 출력은 어떻게 달라질까? 전달함수를 구해보자.
인풋을 하나의 입력이라고 생각한다면, 이 시스템은 입력이 2개인 것으로 간주할 수 있다. 이때 시스템의 출력은 두 입력에 대한 출력을 합친 것과 같다. 측 명령 입력에 대한 출력과 외란에 대한 출력의 합과 같다.
명령 입력에 대한 출력의 전달함수는 앞서 구한 전달함수와 동일하다. 그렇다면 외란에 대한 출력의 전달함수는 어떻게 될까? 전달함수를 구하기 앞서, 전달함수가 어떤 특징을 가져야 할 지 생각해보자.
외란에 대해 시스템의 출력이 크게 변한다면, 좋은 시스템이라고 할 수 있을까. 아닐 것이다. 외란이 있어도 시스템의 출력은 변하지 않아야 하며 명령값을 잘 추종해야 좋은 (강인한) 시스템 이라고 할 수 있다. 이런 관점에서 외란에 대한 출력의 전달함수는 DC gain은 0이 되어야 좋다고 할 수 있다.
PD 제어기먼저 살펴보자. 외란에 대한 출력의 전달함수는 다음과 같이 계산할 수 있다.
Inner loop : $\frac{1}{ms+b+Kd}$
Outer loop : $\frac{\frac{1}{s(ms+b+Kd)}}{1+\frac{Kp}{s(ms+d+Kd)}}=\frac{1}{ms^2+(b+Kd)s+Kp}$
그러므로 외란에 대한 출력의 DC gain은 1/Kp 이다. 설정된 Kp=1 이므로 외란의 DC gain은 1일 것이다. 외란이 0.1 이라면 이에 따른 출력은 0.1라는 의미가 된다. 즉 명령값이 1일 때, 출력값은 1.1이 될 것이다. PD 제어기는 인풋 외란에 대해 전혀 강인하지 못하다.
이번에는 PID 제어기를 보자. 전달함수는 다음과 같이 계산할 수 있다.
Inner loop : $\frac{1}{ms+b+Kd}$
Outer loop : $\frac{ \frac{1}{s(ms+b+Kd} }{ 1 + \frac{Kp+Ki/s}{s(ms+d+Kd)} }=\frac{s}{ms^3+s^2(d+Kd)+Kps+Ki}$
PID 제어기에서 인풋 외란에 대한 출력의 DC gain은 0이다. 즉 steady state에서 외란의 영향이 무시된다는 의미이다. 즉, 외란이 있는 경우에도 명령 입력을 잘 추종한다는 의미이다. 아래는 시뮬레이션 결과이다.
왼쪽 그림은 PD 제어기, 오른쪽 그림은 PID 제어기의 결과이다. 전달함수를 통해 살펴보았듯이 PD 제어기는 0.1만큼의 오차가 지속적으로 존재하고 그 오차는 줄어들지 않는다. 반면 PID 제어기는 오차가 점점 줄어들다가 최종적으로 명령 입력값에 수렴한다. I-Control을 통해 입력 외란 혹은 입력 오차에 대해 강인한 제어기를 만들 수 있다. 이 점이 I-Control이 갖는 최대 장점이 된다.
시뮬레이션에서는 Gain tunning을 진행하지 않았기 때문에 오버슛이 크게 발생한다. 오차의 누적값이 제어 입력에 더해지기 때문에 매우 큰 입력값이 생성될 수 있다. Gain tunning을 통해 오버슛을 줄이고 시스템에 적합은 출력을 만들어낼 수 있다.
To Do
PD 제어기와 PID 제어기를 다루었다. 이 두 가지 제어기는 고전적인 제어 기법에서 가장 널리 알려져 있고, 가장 많이 쓰이는 제어기 이다. 이 두 제어기만 잘 설계해도 대부분의 시스템을 제어할 수 있다. 인풋 외란이 작거나 없는 경우에는 PD 제어기를 사용하고, 인풋 외란이 큰 경우에는 PID 제어기를 사용할 수 있다. PID 제어기는 시스템의 적분기를 하나 추가하는 것으로 볼 수 있는데, 이로인한 장점과 단점을 살펴보았다. I-Control은 강인함에 대해 장점을 가지고 있지만, 단점도 분명히 존재한다. 그렇기 때문에 I-Control을 설계한다면 다양한 상황을 고려해 설계하는 것이 필요하다. 특히 오버슛에 대해 매우 민감해 지므로 오버슛이 시스템에 미치는 영향을 잘 고려해 주어야 한다.
앞으로 살펴볼 내용은 PD 제어기 혹은 PID 제어기를 어떻게 잘 설계할 수 있을까에 대한 내용이다. 피드백을 한다고 해서 무조건 수렴하는 것은 아니다. 이전 글에서 살펴본대로 피드백은 단순히 폴과 제로의 위치를 움직여줄 뿐 수렴성을 보장하는 것은 아니다. P, I, D gain값을 조절하여 시스템의 damping, overshoot, frequency response, DC gain을 종합적으로 설계하고 안정성 또한 확보하는 것이 필요하다. 그러므로 각각의 gain값을 적절히 설정하는 것이 중요하다. 어떻게 적절히 설정할 수 있을까. 그 기본이 되는 것이 Root Locus 이다. 이는 gain이 변화함에 따라 시스템의 Pole과 Zero가 어떻게 움직이는지를 나타낸 그래프 이다. 이 그래프를 통해 피드백 gain 값과 시스템의 Pole, zero 이동의 관계를 직접적으로 살펴볼 수 있다.