[Controls]PID 제어 / PID Controls
안녕하세요
오늘은 제어의 꽃이라 불리는 PID 제어에 대해 개념적으로만 한번 알아보도록 하겠습니다.
1. 개념
PID란 Proportional / Integral / Differential 의 줄임말로 즉 비례/적분/미분 제어기라 합니다. 실제 여러 산업군에서 사용되며, PLC의 경우 각 메이커마다 자체의 PID 제어 함수를 제공하고 있고. Micro processor를 이용한 개발을 할 경우에는 Github 같은 곳에 오픈소스로 많이 제공되고 있으니 가져다가 쓰면 되겠습니다.
하지만 오픈소스/제공된 함수를 가져다 쓸때 쓰더라도 그 원리와 개념정도는 이해하고 있는게 참된 엔지니어의 길이라 할 수 있겠으니, 저도 공부하고 이 글을 읽고 계시는 여러 산업직종에 몸담고 계시는 분들도 공부하는 의미에서 가볍게 한번 정리해보겠습니다.
2. 구조
PID 제어기를 도식화한 그림이다. 결국 PID는 Process를 원하는 값에 맞추는데 목적이 있다. 단순히 이 Process의 온도가 몇도에 맞추는지, 밸브를 몇 % 개방할껀지등이 아닌 Heater 의 온도를 맞추거나, 탱크의 레벨을 맞추거나할 때 사용한다.
즉, 탱크에 일정한 수위를 유지하고 싶을 때, 탱크의 레벨을 확인하여 그 레벨값을 PID 함수에 Feedback을 주고, 그 Feedback 값과 Setpoint를 연산하고 PID 계수에 맞춰서 밸브를 Open/Close 하고, 그때의 Tank 레벨을 확인하고 다시 Feedback 값을 주고 . . . . . .
이짓을 계속해서 수행하는 것이 PID 제어기의 목적이자 제어 포인트라 생각하면 된다.
3. 수식
이 항들은 각각 오차값, 오차값의 적분, 오차값의 미분에 비례한다.
(비례항): 현재 상태에서의 오차값의 크기에 비례한다
(적분항): 정상상태 오차를 없애는 작용을 한다.
(미분항): 출력값의 급격한 변화에 발산(Overshoot)을 방지하여 Stability를 향상 시킨다.
즉, 비례항은 오차값에 곱해주고, 적분항은 오차값을 누적하고, 미분항은 오차값을 잘게 쪼개는 역할을 한다.
4. 튜닝
결국 우리는 이러한 수식을 정확하게 이해하였던, 이해하지 못하였던 결국엔 Process를 원하는 값으로 맞춰줘야 하는데 목적이 있다. Kp, Ki, Kd를 Gain 이라 하며, 이 파라미터값을 조정하여 흔들리지 않고 우리가 원하는 Set point에서 일정하게 유지되도록 하는 것이 결국 PID의 목적이라 생각하면 된다.
하지만, 이 Gain값을 맞춰주는 것은 보통일이 아닌데 결국 수식적/실험적/경험적 방법을 통해 게인값을 셋팅하고 이 또한 여러 PLC 메이커에서 자동으로 Gain값을 맞춰주는 솔루션을 제공하기도 한다.
그 상황에 맞게 비레 제어 (P제어), 비례 적분제어 (P-I 제어) 등 다양하게 적용이 가능하다.
5. 마무리
다음시간에는 이 Gain값을 설정하는 방법에 대해 알아보도록 하겠다.