본문 바로가기
정리, 공부/전기, 전자, 통신

PID 제어 (Proportional Integral Derivative control) 원리/정리/튜닝

by 쉬고 싶다 2020. 9. 20.
반응형

- Proportional Integral Derivative control

- P제어

- I제어

- PI제어

- PD제어

- PID제어

- 튜닝 (Tuning)

 

 

 Proportional Integral Derivative control

 

개루프 제어가 아닌, 폐루프(closed loop feedback control) 제어의 대부분이 PID 제어라고 보아도 무방하다.

그정도로 많이 쓰이는 control 법으로, 그 시작인 P 제어부터 차근차근 정리해볼까 한다.

Control 시스템제어

E: 에러값. error(e) = setpoint(r) - (previous, sensing한)output(cn)

  • 모터의 속도나 보일러에서 끓는 물의 온도 등등
  • 에러값들은 제어 회로의 구성에 따라 전압의 아날로그 값이 되거나, 시간 간격에 따른 펄스의 개수, 혹은 펄스의 길이 등이 될 수 있다.

U: 조작량 (output)

Gain 값(=이득값,증폭값): input 값, 에러값에 대한 제어량의 기준값, 튜닝하며 우리가 직접적으로 시스템에 넣어주는 값.

튜닝(tuning): 적절한 Gain 값을 수학적/실험적 방법으로 계산/구하는 과정

 

 P 제어

P 제어는 Proportional의 약자로, 비례제어. 즉, 증폭시키는 역할을 한다.

하지만, 정상상태 오차 (Steady State Error)가 없어지지 않는다. (목표값에 수렴하지 못하고 진동하는 오차 값)

http://www.selco.kr/PIDcontrol.pdf

비례 제어이기에, 목표값에 수렴하더라도 같아질 수는 없다. 우연히 집어 넣은 Gain값이 좋아 같아지더라도, 조금 지나면 다시 오차가 발생하게 된다.

P 응답곡선

Kp가 높으면

  • 시스템은 설정값/목표값(setpoint)에 빨리 도달하지만
  • 시스템은 불안정한 상태 + 설정점 근처에서 계속 진동한다.

Kp가 낮으면

  • 목표점에 늦게 도달
  • 몇번의 진동 후 시스템은 설정점 아래에서 일정한 오차를 가지며 안정된 상태
  • 시스템이 마지막 위치에 닿는데 필요한, 충분한 힘의 출력(output)이 공급되지 못하기 때문에 목표점에 닿지 못한다.

 

 I 제어

dt: 센서 입력 주기

I 제어는 Integral의 약자로 적분제어를 의미한다. 적분 제어의 물리적 의미는 Error가 지속된 만큼 더 큰 신호를 내보낸다. 즉, 오랫동안 Error의 크기가 줄어들지 않는다면 더 큰 신호를 만들어 수렴할 수 있도록 한다.

 

P제어에서 남은 미소한 잔류편차를 시간단위로 적분하여 그 값이 어떤 크기가 되면 조작량을 증가시켜 편차를 없애는 방식이 I 제어이다.

보통 Target,목표까지 가는 시간을 단축시켜 준다.

하지만 큰 신호를 만들어 내기 때문에 안정성(stability)을 악화시킬 수 있다.

 

 

 PI 제어

 

Kp만큼 증폭 시키는 동시에 에러의 지속시간이 길어짐에 따라 신호도 점점 커지고

이는 빠르게 error값이 줄어들게 하지만, oscillatory response를 증가 시킬 수 있다.

위와 같은 경우가 PI제어가 발산해 버리는 경우이다. 게인값이 크다면 이렇게 불안정한 시스템이 되어 버릴 수 있다.

 

낮은 Kp에서 Ki에 따른 PI 응답곡선

Ki가 높으면

  • 시스템은 설정점/목표점(setpoint)에 빨리 도달
  • 하지만 파형의 상승부가 크다 (파형이 들쑥날쑥하다.)
  • 높은 상승부가 있다 하더라도, P제어와는 달리 시스템이 불안정한 상태로 남지 않고 몇번의 진동 후 setpoint에 붙어 안정된다.

Ki가 낮으면

  • 늦게 설정점 도달
  • 적은 진동, 진동에 비해 빠른 안정
  • 시스템이 도달하는 시간과 진동의 정도를 맞추기 위해 optimize 필요

 

 PD 제어

D는 Derivative로, Error의 미분값. 즉, 변화량에 반응하는 신호를 반생시킨다.

이는 Damper 역할을 할 수 있지만, 신호의 미분에 반응하기 때문에 노이즈의 영향이 커질 수 있다. (마구잡이로 변하는 노이즈 값의 변화값을 그대로 반영하기 때문에, e'값의 변동이 매우 커진다.)

 

 

 PID제어

PID 제어는 PI제어에서 발생될 수 있는 osillatory response d제어의 damping이 잡아준다.

 

 

P 제어: 목표값 도달 시간을 줄인다.

I 제어: 정상상태 오차를 줄인다.

D 제어: 오버슈트(현재값의 급변이나 외란)을 억제한다. 안정성을 향상시킨다.

 

세 역할이 함께 이루어지며 목표값에 빠르게 접근하고, 안정적으로 유지할 수 있다.

 

 

 튜닝, 지글러-니콜스

 

from wiki

Ku, Tu 값 찾기

  • Ki, Kd를 0으로 놓고, Kp를 0부터 최대까지 올려보기
  • Ku: 최대 증폭값 or 시스템 출력 값이 일정한 진폭으로 진동하는 시점의 Kp값
  • Tu: 이 시점의 진동 주기

 

 

마무리

 

https://en.wikipedia.org/wiki/PID_controller

 

제어기마다 주로 두어야 할 컨트롤 목표가 다를 것이다.

절대 목표값을 넘지 말아야하는 제어기도 있을수 있고,

  • 오버슈트(overshoot): 목표값에 비해 오차가 커지는 부분이 얼마인가. 이 값이 너무 커지게 되면 시스템에 무리를 주는데, 장치가 오동작을 하거나 손상될 수 있다.

무엇보다 빠르게 목표값에 도달해야 하는 제어(빠른응답)도 있을수 있다.

  • 제어는 완전히 100% 수렴할 수는 없다. 그래서 목표값의 몇%에 들어가면 제어가 완료된 것으로 본다.

오차가 작은게 무엇보다 중요한 제어도 있을수 있다.

  • 정상상태 오차: 제어량이 목표량의 일정범위에 도달하였으나 없어지지 않고 남아있는 오차. (주로 P 제어에서 남는다.)

Pixabay로부터 입수된 Clker-Free-Vector-Images님의 이미지 입니다.  

 

 

반응형

댓글