PID 제어란?
실제값과 목표값의 차이(error)를 이용한 제어 방식
P 제어: Proportional (비례 제어)
I 제어: Intergral (적분 제어)
D 제어: Differential (미분 제어)
P 제어
현재의 오차(목표값 - 현재값)에 비례해서 제어량을 결정하는 방식이다.
오차가 크면 강하게, 오차가 작으면 약하게 제어한다.


예를 들어, 모터의 목표 속도가 1000 RPM인데 현재 500 RPM이라면, 500만큼의 오차에 비례해서 전압을 강하게 인가한다.
목표 속도에 가까워질수록 인가하는 전압이 줄어든다.
P 제어는 목표값에 가까워지면 오차가 0에 수렴하게 되고, 제어기가 더 이상 힘을 주지 않아 목표값에 완전히 도달하지 못하고 살짝 못 미친 상태로 유지되는 잔류 편차(Steady-state error)가 발생하는 단점이 있다.
PI 제어
P 제어의 단점인 잔류 편차를 제거하기 위해서, 과거부터 지금까지 쌓인 오차들을 누적(적분)해서 제어량에 더해준다.


I 제어 조작량은 특정 수치 이상이 지나면 I 제어를 시작해 편차를 없앤다.
반응 속도가 느린 시스템에서는 오차가 누적되어 목표값에 도달하였음에도 불구하고 제어량이 증가해 overshoot가 발생할 수 있다.
PID 제어
I 제어에서 발생하는 overshoot를 방지하기 위해서, 오차 변화의 반대 방향으로 제어한다.
오차의 변화율을 계산하여 앞으로의 오차를 계산하고 목표값에 너무 빠르게 접근하면 브레이크를 걸어준다.


D 제어를 추가하여 overshoot를 방지하고 반응속도도 높일 수 있어, 가장 안정적이고 빠른 제어가 가능하다.
그러나, 미세한 노이즈가 오차 변화율에 영향을 미쳐 값이 크게 튀는 문제가 있다.
따라서 실제 환경에서는 Low-pass Filter를 함께 사용하거나 PI 제어로 타협해 사용한다.
질문 정리
1. PI 제어에서 error가 누적되는 integral Windup 문제에 대해서 설명하고 해결방법은?
>* 답변 전략: 모터가 낼 수 있는 최대 출력이 100인데 제어기가 150을 요구할 때, 초과한 50만큼의 오차가 계속 적분항에 쌓여 나중에 목표값을 오버슈팅하는 현상이라고 설명
> 제어 출력이 PWM의 최대 듀티비(Duty Cycle)에 도달하면 더 이상 적분항을 누적시키지 않도록 조건문을 걸어주는 Anti-windup 로직을 구현한다.
2. 실제 모터 제어 환경에서 D 제어를 사용하지 않거나, 사용 시 주의해야 할 점은?
>* 답변 전략: ADC(아날로그-디지털 변환기)를 통해 들어오는 전류나 속도 데이터에는 필연적으로 고주파 노이즈가 섞여 있다고 답변
> 미분기는 노이즈의 변화율까지 증폭시키므로 제어 출력이 심하게 튀게 됩니다. 따라서 실무에서는 PI 제어로 타협하거나, D 제어를 꼭 써야 한다면 센서 데이터 입력단에 Low-pass filter(저역통과필터)를 거쳐 노이즈를 먼저 제거한 뒤에 미분값을 구해야 한다.
'Mobility > 제어공학' 카테고리의 다른 글
| 제어 시스템 개요: 제어, 개루프, 폐루프 (0) | 2026.09.22 |
|---|---|
| Feedback 제어와 FeedForward 제어 (0) | 2026.07.03 |