'2016/12'에 해당되는 글 9건

  1. 2016.12.26 PID 제어에 대해서..
반응형

 드론에서 모터의 제어는 PID 제어기로 제어한다. PID는 현재의 오차에서 비례(Proportional), 누적 오차에서 적분(Integral), 오차 변화율에서 미분(Derivative) 요소를 가지고 변화의 정도를 산정한다. (비례-적분-미분 제어기라고도 한다)

 기본적으로 피드백(feedback) 제어기의 형태를 가지고, 제어하고자 하는 대상의 출력값(output)을 측정하고 이를 원하는 설정값(setpoint)과 비교하여 오차(Error)를 계산하고, 이 오차 값을 이용하여 제어에 필요한 제어 값을 계산하는 것이다. 다음 그림은 각각이 어떻게 계산되는지를 개념적으로 표현한 그림이다. 


 이 그림은 수식으로는 다음과 같이 표현된다.


 각각의 의미는 다음과 같다.

Proportional: 현재 상태에서 오차 값의 크기에 비례한 제어 작용

Integral: 일정한 상태로 유지되는 오차를 없애는 작용

Derivative: 출력 값의 급격한 변화에 제동을 걸어 목표 값을 지나가 버리는 오버 슛을 줄여 안정성 향상


PID 제어를 좀더 복잡하게 만든 이중 루프 PID 제어기도 있다. 다음은 이중 루프 PID 제어기의 예이다.


각 제어기의 동작을 좀더 상세하게 설명하면..


1. [P]roportional 제어기

 수식에서 보여지는 것처럼 비례 제어기는 오차에 따라 출력을 바꿔주는 제어항이다. Kp 값에 따라서 오차에 출력이 크게 반응하거나 작게 반응할 수 있다. 아래 그림은 Kp 값을 조정하였을떄 복표하는 Reference에 대해서 오차에 따라 반응하는 그래프를 나타낸다.


그림에서 보이는 것처럼 Kp값이 크면(보라색 라인) Reference에 금방 도달하지만, Reference를 중심으로 진동하게 된다. Kp가 작으면 안정적이지만 Reference의 도달에 늦게 된다. 


2. [I]ntegral

 I는 누적 오차를 고려한 것이다. P 제어기만으로는 오차를 제거하기가 충분하지 않고, 현재의 오차 뿐만 아니라 지금까지의 누적 오차를 고려해서 제어해야 하는 것이다. 



 Kp가 1인 경우에 Ki를 변화시킨 경우인데, Ki 가 높으면 파형의 상승과 진동이 많지만, 몇번 진동 후 Reference 에 도달하게 된다. (P 제어기의 경우에 비하여..) P 제어기에 비하여 빠르게 안정화가 되는 것을 알 수 있다.


3. [D]erivative

 오차 변화율을 계산하여 그 결과를 출력에 더하는 것으로, 오차의 변화가 크지 않다면 미분 항의 값은 작게 되어 출력에 영향을 크게 미치지 않는다. 하지만 오차가 갑작스럽게 변한다면 오차를 바로 잡기 위해서 출력에 영향을 많이 주게 된다. 결국 오차의 변화량을 출력에 반영하는 것이다.


 드론을 제어하기 위해서 PID 값을 이용해서 튜닝한다. P 는 오차에 대해서 직접적으로 출력을 조정하는 양이 되고, I 는 누적 오차를 반영하며, D 는 오차의 변화량을 반영한다. 


 PID 제어기의 투닝 방법은 여러가지가 있는데, 이중 유명한 것은 Ziegler-Nichols 방법이 있다. 이 방법은 Wikipedia를 참고하기 바란다.


https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method


반응형
Posted by alias
,