그라운드 임베디드 유튜브 구독

실험실

PID 제어 시뮬레이션

Kp, Ki, Kd를 움직이면서 스텝 응답의 오버슈트, 정착 시간, 정상상태 오차가 어떻게 바뀌는지 확인합니다.

게인

스텝 응답 목표 1 = 75°

노란 점이 지금 팔의 위치입니다. 세로 점선에서 추가 매달립니다.

성능

오버슈트
정착 시간 (2%)
추를 단 뒤 남은 오차

이렇게 해 보세요

  1. P만을 누르고 Kp를 천천히 올려 보세요. 팔이 목표 각도에 빨리 다가가지만 지나쳤다가 되돌아오는 출렁임이 커집니다.
  2. 2초에 팔 끝에 추가 매달립니다. P 제어만으로는 팔이 목표보다 조금 아래에서 멈춥니다. 빨간 호가 남은 오차입니다.
  3. PI를 누르세요. 적분이 남은 오차를 조금씩 밀어내 팔을 다시 목표까지 올립니다. 대신 출렁임이 늘어납니다.
  4. Kd를 올려 보세요. 팔이 움직이는 속도에 브레이크를 걸어 출렁임이 줄어듭니다.
  5. Kp를 낮춘 채 Ki만 크게 올리면 팔이 점점 크게 흔들리며 발산합니다. 게인에는 한계가 있습니다.

무엇을 모사했나

대상은 모터로 위치를 맞추는 서보 시스템입니다. 전달함수로 쓰면 다음과 같습니다.

G(s) = K / ( s (τs + 1) ),   K = 8,  τ = 0.15 s

목표값은 1이고, 2초에 일정한 부하가 걸립니다. 제어 주기는 1 ms입니다. 미분은 오차가 아니라 측정값의 변화에 걸어서, 목표값이 갑자기 바뀔 때 출력이 튀지 않게 했습니다.

세 게인의 역할

게인 반응하는 것 올리면 좋아지는 것 올리면 나빠지는 것
Kp 지금의 오차 응답 속도 오버슈트
Ki 쌓인 오차 정상상태 오차 오버슈트, 안정성
Kd 변화 속도 오버슈트 노이즈에 민감해짐

실제 모터 제어에서는 출력이 전압 한계에 걸리기 때문에, 적분 값이 끝없이 쌓이지 않게 막는 안티 와인드업이 추가로 필요합니다.