이 프로젝트는 강화학습으로 PID 제어에 필요한 적절한 (P, I, D) 값을 구하는 오토 튜너 구현을 목표로 한다. PID 제어는 드론, 로봇등에 널리 사용되는 제어 방법 중 하나이다.
이 제어에는 튜닝이 반드시 필요한데 튜닝의 과정은 다음과 같다. 기기를 동작시켜 데이터를 쌓은뒤, 기기를 멈추고 쌓은 데이터를 통해 사람이 튜닝 값을 조정한다. 이를 적절한 값을 찾을 때 까지 반복한다. 이런 번거로움을 해결하고자 기기가 동작함과 동시에 온라인으로 튜닝을 할 수 있는 튜너를 강화학습을 통해 구현했다.
먼저 간단한 환경을 구현한 뒤, A2C 알고리즘을 이용한 튜너를 학습시켰다. 그 후 학습시킨 튜너를 적용한 PID 제어기를 Open AI의 gym 환경 중 LunarLander로 테스트했다. 추가적으로, 학습이 안된 튜너를 적용한 PID제어기도 테스트했다. 결과적으로, 두 경우 다 불필요한 튜닝 시간을 단축시켜 빠른시간 내에 필요 작업을 할 수 있었다.
PID 제어 도중 P, I, D 값을 업데이트 한다면?
제어 중 업데이트으로 실시간으로 최적 P, I, D 값을 찾아 튜닝이 가능함을 먼저 확인했다.
환경의 난이도를 낮추기 위해 P, I, D 세 값이 아닌 P 값만 튜닝하는 것을 목적으로 하였다.