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

제어공학 - PID 제어

by Jayce_choi 2023. 1. 1.
반응형

PID 제어는 매우 막강한 제어 방법 중 하나입니다. 

보통 시스템에서 출력이 아래와 같을 때 Overshoot가 지나치게 발생할 수도 있으며, 목표치가까지 Settling time이 길 수도 있으며, 또한 최종 도달 값이 목표치와 차이가 존재하는 Steady-State Error가 존재할 수도 있습니다. 

이전의 글에서 우리는 System Type이 증가할수록 오차를 효과적으로 제거할 수 있다는 것을 보았습니다. 

수많은 제어기 설계를 진행하면서 시행착오를 겪은 결과 사람들은 `Integral Control (적분 제어)`가 상당히 잔존하는 에러 (bias offset)를 잘 제거할수있다는 것을 보았습니다. 

또한 Overshoot와 같은 dynamic 한 신호의 response에 대처하기 위해 `Derivative Control (미분 제어)`방법이 또한 효과적이라는 것을 발견하였습니다. 

기존에 비례 제어만을 사용해서 얻어진 결과에서 이처럼 미분과 적분 개념을 같이 이용하여 결합한 효과적인 제어기를 만들었으며 이를 PID 제어기라고 부릅니다 (P = Proportional, I = Integral, D = Derivative)

PID 제어기의 전달함수는 아래와 같으며 Kp, KI, KD는 각각의 제어 방법에 곱해지는 이득값 (Gain)입니다. 상수값이며 해당 값에 따라서 제어기의 성능 또한 변하기 때문에 잘 튜닝하는 것이 중요합니다. 

 

좀 더 들어가기 위해서 각각의 제어 방법에 대해 알아보겠습니다. 

 

1. Proportional Control (P) 비례 제어

우선 비례제어부터 살펴보겠습니다. 비례 제어는 현재 나오는 출력과 목표 출력 사이의 오차 (Error)에 상수값 (Kp 또는 비례이득값)을 곱하여 다시 입력에 반영하는 제어 방법입니다. 비례제어의 역할은 시스템의 반응속도를 빠르게 만들어주는 동시에 단점으로는 이득값 (kp)에 따라서 시스템이 불안정해진다는 단점 또는 특징이 있는 제어 방법입니다.  

이때 비례 제어기의 전달함수는 아래와 같으며 비례이득값 (Kp)만 남은 상수항 형태로 표현됩니다. 

Characteristics of P Control

Closed Loop system

해당 시스템에서 Plant 및 Controller 값이 아래와 같을 때... 

 

특성방정식을 구하면 다음과 같습니다.

이때 자연주파수 (natural frequency)는 비례이득값 (kp)를 이용하여 영향을 줄 수 있습니다. 즉 kp를 증가시키면 자연주파수가 증가하여서 시스템이 빨라지게 되며 Damping ratio는 감소하게 되어서 oscillation이 커지게 되어서 안정성이 떨어지게 됩니다. 

시스템의 type을 결정하는 것은 원점에 pole을 몇 개 가지고 있는 것인지에 따라서 결정됩니다. 하지만 G(s)의 분모에서 s=0인 항이 없기 때문에 위의 시스템은 Type 0입니다. 즉, 오차가 존재한다는 것을 의미하며 잔존하는 오차는 하단의 e_ss로 표현됩니다. 

 계산을 통해서 얻어진 e_ss의 특징은 kp값이 증가하게 되면 e_ss가 작아지게 되며 반대로 kp가 작아지게 되면 점점 e_ss가 1에 가까워지게 됩니다. 그러나 위에서 보았듯이 kp값이 커지게 되면 oscillation 또한 증가하기 때문에 오차는 작아져도 시스템이 불안정하게 되는 trade-off가 존재하는 상황이 생깁니다 (아래 그림).

Proportional Controller

위 그림을 통해서 K값이 증가하게 되면서 목표치에는 점점 접근을 하지만 그만큼 진동이 커지는 것을 확인할 수 있었습니다. 

 

이번에는 Disturbance (W(s))에 의한 오차를 구해보겠습니다. 이때 Superposition 원리에 의해서 R(s) 입력값은 0이라고 가정하여서 우리는 Disturbance에 의해서 발생하는 오차만 고려할 것입니다. 때문에 밑의 식에서 오차에 대한 외란 값은 E/W이며 이때 원래 E = 입력 (R) - 출력 (Y)였지만 R = 0이므로 -Y/W로 정리됩니다. 

 

외란이 step input으로 들어올 때 E/W는 아래와 같습니다. 

 

식에서 확인할 수 있듯이 kp값이 커지게 되면 에러는 작아지게 됩니다. 그러나 결국은 오차를 0으로는 만들 수가 없는 한계가 존재합니다. 

만약 시스템이 2차 이상으로 구성되고 더 복잡해져서 큰 이득값을 사용하게 된다면 시스템의 response는 좋아지지만 아주 큰 transient overshoot를 야기하게 되며 동시에 전반적으로 작은 Damping 효과를 얻게 됩니다. 즉 안정성이 떨어지게 되는 결과를 초래합니다.

잔존하는 에러를 제거하기 위해서는 다른 제어 방법이 필요하며 이를 위해서 Type을 증가시켜야 하며 즉, 증가시킨다는 것은 적분이며 때문에 적분제어가 도입됩니다. 

 

2. Integral Control (I) 적분 제어

적분 제어의 목표는 P제어에서 잔존하는 에러 (Steady-State Error)를 제거하기 위해서 도입되었으며 또한 외란 (Disturbance)에 대한 대항 능력을 증가시키기 위한 목표를 지녔습니다. 

방법은 시작된 시점부터 오차들을 다 더합니다. 더해진 오차의 합에 비례상수 (KI)를 곱해서 시스템 입력으로 다시 주는 제어 방법입니다. 

그림으로 표현하면 아래와 같이 Controller의 에러를 지속적으로 계산하는 것이며 누적되는 면적이 크면 클수록 마찬가지로 인풋에 많은 영향을 주게 됩니다. 에러를 계산하는 것이기에 Control의 다음 action은 시스템 오차의 history에 영향을 받는다라고 생각하시면 되겠습니다. 

 

적분 제어의 전달함수는 아래와 같습니다. 

 

Characteristics of I Control

Closed Loop system

이번에는 Controller (D_cl)가 적분제어기를 가질 때 특징을 보겠습니다.

전달함수는 아래와 같으며, 오차에 대한 전달함수는 오른쪽 식과 같습니다. 

 

이때 R(s) 입력값이 unit-step (1/s)이라고 가정하며, DC Gain값 (G(s))이 G(0) = 1일 때 Steady-State Error를 구해보면 아래와 같습니다.  

시간이 무한대로 갈수록 출력값은 결국 원하는 1로 가게 되며, e_ss (Steady-State Error) 값은 0으로 가게 됩니다. 

매우 이상적인 상황으로 가게 되었는데 이러한 원인은 시스템의 Loop Gain인 DG는 식에서 볼 수 있듯이 s=0인 곳에서 pole을 가집니다. 때문에 System Type은 1이며 이전 글에서 보았듯이 step input에 대해서는 완벽하게 tracking 할 수 있었습니다. 

 

하지만 Ramp input이라면 오차가 남게 되는데 오차 값은 1/K_I이며 이를 속도오차라고 불렀습니다. 

오차를 줄이기 위해서 K_I를 증가시킬 수도 있지만 마찬가지로 시스템이 불안정하게 됩니다. 

 

마찬가지로 이번에는 Disturbance에 대한 오차를 구해보겠습니다. Disturbance에 의해서 ramp input이 주어질 때는 -1/K_I가 발생하게 됩니다.

 

정리하면 적분제어기는 type 1 시스템이기에 이를 통해서 step input에 대해서는 정상상태오차와 외란의 영향을 0으로 만들게 할 수 있습니다. 또한 Plant의 파라미터가 조금씩 변화를 해도 어느 정도 용인되는 결과를 보여주며 이러한 특징을 우리는 `robust`라고도 부릅니다. 하지만 마찬가지로 이득값이 커지게 된다면 시스템을 불안정하게 만드는 영향을 가져오기도 합니다. 

 

3. Derivative Control (D) 미분 제어

미분제어의 효과 또는 목적은 다음과 같습니다. 위에서 언급한 P, D제어에서 Gain값의 변화에 따른 시스템 안정도가 떨어지는 것을 막아주거나 또는 향상할 수 있으며, transient response에 대해 빠르게 대응하며, Overshoot를 줄일 수 있습니다. 

정말 이상적인 제어방법이지만 정상상태오차에 대해서는 대응이 불가능하다는 단점 및 특징을 지녔습니다. 이때 I 제어를 사용합니다. 즉, D 제어 혼자만으로 절대로 사용하지는 않으며 반드시 다른 제어 방법에 곁들어서 사용합니다 (보통은 P제어와 같이 사용합니다). 또 다른 단점은 noise를 증폭시키는 특징을 가지고 있습니다. 

 

미분제어의 전달함수는 아래와 같습니다. 

 

미분을 한다는 것은 기울기를 보는 것입니다. 기울기는 변화의 경향성을 관찰할 수 있는 것이며 신호의 trend가 어떻게 변화하는 것인지 관찰하는 것이기에 비례 제어기는 미래를 예측하는 역할 (anticipatory behavior)을 수행합니다. 

그러나 미분을 모든 곳에 미분을 수행하면 안 됩니다. 갑자기 짧은 시간에 대해 값이 튀는 (jump) 곳을 미분한다면 자칫 무한대에 가까운 기울기 값이 나올 수도 있습니다. 때문에 미분 제어기만 따로 떼어서 후에 계산을 진행하는 방식으로 사용하기도 합니다 (아래 그림의 위쪽 다이어그램). 아래쪽 다이어그램을 보면 R, Y를 둘 다 미분을 하게 되는데 갑작스러운 변화가 생길 때에 대해서도 미분을 하기 때문에 문제가 발생할 수도 있습니다. 때문에 위쪽 다이어그램이 성능이 더 좋을 때도 많으며 어떤 신호를 처리하는가에 따라서 위치도 달라질 수 있습니다. 

 

 

4. Summation of Controllers

한 개의 제어기만으로는 만족할만한 성능을 보통 못 가집니다. 때문에 최소 2개를 결합하여 결과를 만들어내는데 대표적으로 아래와 같이 총 3가지가 사용됩니다.

1. PI 제어기

2. PD 제어기 

3. PID 제어기

 

*PD Controller 

PD 제어기는 2차 시스템에서 효과적으로 제어가 가능한 제어기입니다. 보통 빠르게 움직이거나 안전이 필요한 시스템에서 사용이 됩니다. PD 제어기의 효과는 아래와 같습니다. 

  • Improves damping and maximum overshoot.
  • Reduces rise time & settling time.
  • Increases Bandwidth
  • Improves Gain Margin and Phase Margin
  • May attenuate high frequency noise

로봇 분야에서는 로봇 팔을 제어할 때 로봇팔 관절 (Joint)에 토크를 부여하여 움직이게 합니다. 이때 토크를 이용하여서 로봇팔 끝단의 위치를 제어하는 것이며, 토크는 힘이며 가속도가 포함되어 있습니다 (2차 미분방정식). 이때 위치 오차를 줄이는 것이기에 결국 Oscillation이 최대한 발생이 안나는 쪽으로 제어를 해야 하며 (Damping이 필요함) 때문에 반드시 D 제어기가 필요하며 PD, PID 제어기가 사용됩니다. 

또한 PD 제어기는 Reference Point를 track 할 때 매우 효과적이기에 Spring Damper 시스템의 대표적인 자동차 현가시스템에서 많이 사용됩니다. 아래는 이해하기 쉬운 좋은 tutorial이라서 가져와봤습니다. 링크를 타고 직접 해볼 수가 있습니다. 

https://www.matthewpeterkelly.com/tutorials/pdControl/index.html

 

PD-controllers

A proportional-derivative (PD) controller can be used to make a simple system track some reference point. The suspension in a car is an analogue example: the spring and damper work together to hold the car at some desired height. The spring exerts a force

www.matthewpeterkelly.com

[1] https://www.matthewpeterkelly.com/tutorials/pdControl/index.html

 

*PI Controller 

PI 제어기는 적분항이 붙었기 때문에 PD 제어기보다 비교적 더 Steady-State Error를 확실하게 잡을 수 있습니다. PI 제어기의 효과는 아래와 같습니다. 

  • Improves damping and reduces maximum overshoot.
  • Increases Rise Time.
  • Decreases Bandwidth
  • Improves Gain Margin, Phase margin & Peak Resonance (Mr).
  • Filter out high-frequency noise.

PI 제어기는 Oscillation이 어느 정도 용납이 되는 상황에서 Steady State Error를 없애고 싶은 분야에서 사용되며, 유량, 증기압력, 열교환기의 온도 조절등에 보통 사용됩니다. 또한 Capacitor의 전압을 조절할 때 전류 제어에서도 사용됩니다. 

 

*PID Controller

PID제어기는 제일 많이 사용되는 제어기 중 하나인데 상당히 산업현장에 쉽게 적용이 가능하다는 장점과 그에 걸맞은 최적의 성능을 보장해주는 장점을 가지고 있습니다. 

때문에 전분야에서 사용이 되고 있으나 다만 이러한 생각이 드실 겁니다. `모든 분야에서 PID 제어기를 사용하면 되는 거 아니야?` 물론 다방면에서 좋은 성능을 보여주고 있지만 PID 제어기는 선형시스템을 기본적으로 다루기에 비선형 시스템에서의 대응은 미숙합니다. 또한 미분제어기는 Noise에 대해 영향을 많이 받기 때문에 조금의 영향이라도 과도한 결과를 불러오는 시스템에서는 치명적 일수 있습니다 때문에 이러한 경우 보통 전처리를 필수적으로 동반합니다. 사용을 위해서는 PID 제어기의 각각의 이득값을 최적으로 설정해주는 것 또한 시간이 걸리는 게 특징입니다. 

 

-거인의 어깨에 올라서서 더 넓은 세상을 바라보라

반응형

댓글