티스토리 뷰
PID 제어기
핵심 내용 : 피드백 제어(Feedback Control)
Feedback Control (출처 : google)
Feedback Control 원리
- 제어하고자 하는 대상(드론)에 의해 정해지는 입력 값(Input)을 측정)
- 목표로 하는 목표 값/설정 값(setpoint)와 비교하여 오차(error)를 계산
- 오차를 이용해서 제어에 필요한 제어 값(Output)을 계산
- 계산 된 제어값은 다시 Feedback을 하러 제어하고자 하는 대상에 입력으로 사용됨
PID 제어기 일반 구조[출처 : 위키백과]
출처 : 위키백과
그러면 여기서 3개의 항인 P, I, D가 무엇인지 한번 알아보도록 하겠습니다.
P제어( 비례항 )
간편요약 : 현재 제어값이 오차에 비례하여 제어량(Output)을 변화시키는 방법
-> 즉, 오차에 따라 출력이 출력(Output)을 바꿈
[수식]
응답곡선이란?
시간에 대한 출력 값(Output) 자취 곡선
P(비례항)의 Kp 매개변수에 대한 응답 곡선
빨간색 파형 : 높은 Kp 값에 대한 응답 곡선
파란색 파형 : 낮은 Kp 값에 대한 응답 곡선
검은색 선 : 목표점(setPoint)
#1 매개변수 Kp가 높으면?
시스템은 점점더 빨리 설정점/목표점(setPoint)에 도달하게 된다.
단점 : 시스템은 불안정한 상태가 되고 설정 점 근처에서 계속 진동을 하게 됨 ( 값이 0이 아니라 계속 그 근처 값 이여서)
#2 매개변수 Kp가 낮으면?
시스템은 목표점(setPoint)에 더 느리게 도달하게 된다.
특징 : 몇번의 진동 후 시스템은 설정 점 아래에서 일정한 오차(error)를 가지며 안정된 상태가 된다.
-> 일정한 오차를 가지는 이유는 비례항의 특징입니다.
시스템이 마지막 위치(값 : 0)에 닿는데 필요한 충분한 힘을 출력(Output)이 공급하지 못하기 때문에 목표점에 닿지 못하게 되는 것 입니다.
정리
장점 : 편차는 점점 줄어든다.
단점 : 그러나 오차가 0이 되지 않고 근사값에 점점 가까워 지게 된다. 이로 인해서 진동도 발생!
그러면 왜.... P(비례항)의 단점을 보안해 줄 수 있는 제어법은 없는걸까요??
있습니다!!!
그 제어법은 바로 적분항(I)!!
비례항과 적분항을 같이 이용해서 적용시키는 제어가 PI 제어라고 합니다.
일단 적분항(I)에 대해 알아보고 PI 제어기에 대해 알아보도록 하겠습니다.
I제어( 적분항 )
간편 요약 : 일정한 상태[정상 상태(Steady state)]로 유지되는 오차를 없애는 작용을 한다.
장점 : 비례항(P제어)의 단점을 보안하기 위해 적합함
왜 단점을 보안하기 위해 적합한가??
.
.
적분항은 시간에 걸친 오차의 합을 의미하기 때문
이말은 즉, 오차가 클 경우 적분 항에 의해 시간이 지나면 오차의 합이 쌓이며 출력은 빠르게 변해 오차를 제거하게 된다는 말 입니다.
[수식]
적분 항에 대해 알아보았으니 이제 비례항과 적분항을 접목시킨 PI 제어기에 대해 알아보도록 하겠습니다.
낮은 Kp에서 적분 항(Ki)에 대한 매개변수 크기에 따른 PI 응답곡선
현재 위 그래프는 낮은 비례항의 매개변수와 적분항의 매개변수 Ki의 크기에 따른 응답곡선입니다.
빨간색 파형 : LowKp + HighKp
파란색 파형 : LowKp + Medium Ki
초록색 파형 : 이상적인 최적의 Ki값
#1 매개변수 Ki가 높으면?
시스템은 더 빨리 설정점/목표점(setPoint)에 도착
단점 : 파형의 상승부가 크다(파형이 들쑥날쑥거림이 심하다.)
그러나!!!
장점 : 높은 상승부가 있다 하더라도 비례항(P)과는 달리 시스템이 불안정안 상태로 남지 않으며 몇번의 진동 후 시스템은 설정점(setPoint)에 붙어 안정이 된다.(비례제어 Kp가 작을때랑 비슷한 점이 많다.)
#2 매개변수 Ki가 작으면?
시스템은 늦게 설정점(SetPoint)에 도착한다.
장점 : 그대신 적은 진동과 함께 훨씬 더 빨리 안정이 된다.(대신 도착은 늦게 함)
#3 드론에서 필요한 시스템은 최적의 Ki 매개변수
시스템은 아주 늦게 설정 점에 도착을 하지만 거의 진동이 없이 설정 점에 도착을 해서 안정화가 된다.
[PI 제어기의 출력]
정리를 해보자면 p(비례항)은 목표값이 0에 도달을 못하게 됩니다. 그래서 적분항(I)를 이용해서 이 점을 보안한게 바로 PI제어라고 생각이 됩니다.
D제어 ( 미분항 )
특징 : 오차 변화율을 계산하고 그 결과를 출력에 더한다.
생각해야할 점
- 오차(error)의 변화가 크지 않는다면?
- 미분 항의 값은 작으며 출력에 거의 영향을 미치지 않는다.
- 오차의 변화가 갑자기 커진다면?
- 시스템의 진동을 피하기 위해 미분항의 값은 커지게 된다.
각 매개변수에 대해 변화하는 응답곡선 (출처 : 위키백과)
'드론' 카테고리의 다른 글
[드론] PID 제어 알고리즘 구현 (8) | 2016.08.26 |
---|---|
[드론] PID 게인 튜닝 방법 (0) | 2016.08.24 |
[드론] 가속도 센서를 이용한 각도 구하기_소스코드 (2) | 2016.08.22 |
[아두이노] 수학,삼각함수 정리 (0) | 2016.08.15 |
[드론]시간 처리 루틴을 구현하기(회전각 구하기) (0) | 2016.08.15 |