에듀테크 프로젝트 대시보드
PID 제어기 (PID Controller)
자동차 크루즈 컨트롤은 언덕을 만나도 속도를 100km/h로 유지한다. 에어컨은 방을 정확히 24℃로 맞춘다.
드론은 바람이 불어도 제자리에 뜬다. 이 모든 것의 뒤에는 PID 제어기가 있다.
원리는 단순하다 — 목표값(setpoint)과 현재값(measurement)의 차이인 오차 e = SP − PV 를 보고,
지금 얼마나(P) · 그동안 쌓인 만큼(I) · 변하는 추세(D) 세 가지를 더해 조절량을 정한다.
아래에서 Kp, Ki, Kd 를 직접 돌려 보며 그 감을 잡아 보자.
노란 선이 목표 속도(setpoint), 초록 선이 실제 속도(PV)다. 중간에 언덕(외란)이 들어오면 속도가 떨어지고, 제어기가 스로틀을 더 밟아 회복한다. P·I·D 각 항의 기여는 아래 막대로 실시간 표시된다.
Kp · e(t). 지금 오차가 클수록 세게 민다. 반응이 빠르지만, 오차가 작아지면
힘도 작아져 목표에 못 미치는 정상오차가 남는다. 너무 키우면 지나쳐서 진동한다.
Ki · ∫e dt. 작은 오차라도 계속 쌓아 서서히 힘을 키운다. 정상오차를 없앤다.
대신 반응이 느리고, 쌓인 값이 과해지면 오버슈트·와인드업을 일으킨다.
Kd · de/dt. 오차가 빠르게 줄고 있으면 브레이크를 걸어 오버슈트를 줄인다.
일종의 완충기(damper). 측정 잡음을 증폭하므로 값을 작게 쓰거나 필터를 건다.
u(t) = Kp·e + Ki·∫e dt + Kd·de/dt.
자이글러–니콜스(Ziegler–Nichols) 같은 방법으로 초기값을 잡고, 보통 P → I → D 순서로 손으로 다듬는다.
| 키우는 이득 | 상승 시간 | 오버슈트 | 정착 시간 | 정상오차 | 안정성 |
|---|---|---|---|---|---|
| Kp ↑ | 빨라짐 | 늘어남 | 조금 변함 | 줄지만 남음 | 나빠짐 |
| Ki ↑ | 빨라짐 | 늘어남 | 길어짐 | 0으로 제거 | 나빠짐 |
| Kd ↑ | 거의 그대로 | 줄어듦 | 짧아짐 | 영향 없음 | 좋아짐(잡음 주의) |
integral 이 거대해진다. 나중에 방향이 바뀌어도 그 값이 빠지는 데 한참 걸려 큰 오버슈트가 난다.
그래서 포화 상태에서는 적분을 멈추거나 되돌린다(anti-windup).