PID Control

개요 및 구성

  • PID Control은 비례(Proportional), 적분(Integral), 미분(Derivative) 을 결합한 피드백 제어 기법으로, 산업환경 및 드론과 자율주행 로봇 등의 자세 안정화에 폭넓게 활용된다.
  • PID 제어기는 차량의 목표값과 현재값 사이의 오차(Error)를 이용하여 제어 입력을 생성하며, 차량의 정확한 동역학 모델을 알 필요가 없기 때문에 Black Box Control로 분류된다.
  • Vehicle Control 개요 참고 : (AD) Vehicle Control - Overview

+full

  • PID Control의 기본 구조는 다음과 같이 목표값과 현재 측정값의 차이를 이용해 제어 입력 을 생성 한다.
  • : 목표값 (Reference)
  • : 측정값 (Measurement)
  • : 오차 (Error)

PID Control 알고리즘

  • PID Control의 수학적 표현은 다음과 같이 세개의 항을 더하여 제어값 를 계산하도록 구성되어 있다.
  • : 목표값과 측정값의 차이 (Error)
  • : 비례 항 - 현재 발생한 오차의 크기에 비례하여 제어 작용을 함.
  • : 적분 항 - 과거부터 누적된 오차의 합을 계산하고 보정함.
  • : 미분 항 - 오차의 변화율을 예측하여 제어함. 과도응답의 오버슈트를 억제함.

+full

P Control

  • 비례(Proportional) 제어는 현재 오차에 비례하여 제어 입력을 생성한다.
  • 오차가 더 클수록 더 큰 제어 입력을 생성한다.
  • 값을 크게 하면 응답 속도는 빨라지지만 진동이 커지므로 목표값 부근에서 Overshoot 발생 가능성이 있고, 정상상태 오차 (Steady-State Error)가 남을 수 있다. +full
  • 정상상태 오차는 목표값의 일정 범위 내에 제어값이 들어오기는 했으나, 끝내 없어지지 않고 남아있는 오차를 말한다. (잔류편차)
  • 즉, 설정값에 매우 근접한 상태에서 안정화되어 측정값과 설정값이 같아질 수 없는 상태가 된다.

I Control

  • 적분(Integral) 제어는 과거 오차의 누적 값을 바탕으로 제어값을 생성한다.
  • 비례 제어만으로는 해결할 수 없는 시스템의 정상상태 오차를 제거하는 역할을 한다.
  • 값이 클수록 Overshoot가 커지고 상승시간이 약간 감소한다. +full
  • 물리적 한계나 외란 등으로 인해 오차가 계속 누적되어 적분 값이 과도하게 부풀어 오르는 Integral Windup 현상이 발생 할 수 있다. (제어량의 발산 유발)
  • 이러한 문제를 막기 위해 실제 제어 소프트웨어를 구현할 때는 적분 값의 한계를 설정하거나 적분을 초기화하는 등의 Anti-Windup 기법을 사용한다.

D Control

  • 미분(Derivative) 제어는 오차의 변화율을 이용하여 미래에 발생할 오차를 예측하고 미리 감쇠(Damping) 시키는 역할을 한다.

+full

  • 짧은 샘플링 시간이나 갑작스런 외란 등 노이즈는 미분값을 크게 변화시킬 수 있어 저역통과필터(Low-Pass Filter) 등을 통과한 값을 미분 항에 사용한다.

PID Control은 이러한 P, I, D 동작을 조합하여 단일 제어로는 얻기 어려운 빠른 응답, 오차 제거, 안정성 향상 등 다양한 제어 성능을 동시에 얻을 수 있으며, 조합에 따라 PI Control, PD Control 등 역시 주로 사용된다.

PID Control 파라미터 튜닝

  • 빠르게 목표값을 달성할 수 있는 적절한 값을 찾아야 하며, 이러한 과정을 게인 튜닝(Gain Tuning)이라 한다.
  • 모델에 대한 정보가 없는 Balck Box Contorl에서 PID의 파라미터를 경험적으로(휴리스틱) 설정하는 대표적인 방법으로 Ziegler-Nichols 방법이 있다.

Ziegler-Nichols Method

  1. 으로 둔 상태에서 시스템이 일정한 진폭으로 진동할 때까지 값을 서서히 올린다.
  2. 이때의 값을 임계이득(Ultimate Gain), 진동하는 주기(Oscillation Period)를 라고 측정한다.
  3. 측정된 값을 바탕으로 아래와 같이 파라미터를 공식에 따라 설정한다.
  • 이러한 공식은 경험적 시작값일 뿐이며, 실제 도메인에서 미세조정(Fine Tuning)이 필요하다.

PID Control in Self-Driving

  • 자율주행의 Vehicle Control 에서 PID Control의 예시

Longitudinal Vehicel Control

차량 목표 속도 추종

  • 현재 시점의 목표 속도 는 아래와 같이 설정할 수 있다.
  • 선행 차량과 가까워지면 목표 속도가 감소한다.
  • : 최대 허용 속도
  • : 선행 차량과의 거리
  • : 거리-속도 관계를 조정하는 파라미터

PID Control 정의

  • 목표값 = = = target velocity
  • 제어값 = = gas/brake pedal
  • 관찰값 = = current velocity
  • 에러 = =

Lateral Vehicel Control

  • 차량과 경로 사이의 횡방향 오차를 이용하여 경로를 추종한다.

PID Control 정의

  • 목표값 = = 0 = minimize track error
  • 제어값 = = = steering angle
  • 관찰값 = = track error
  • 에러 = = = track error

Waypoint-based Vehicel Control

  • Longitudinal, Lateral PID Control 를 이용하여 경로의 점 집합을 추종한다.

+full

  • : 미래 경로상의 waypoints
  • Vehicle Controller는 이 waypoint들을 보고 얼마나 빠르게 갈것인가 (Longitudinal), 어느 방향으로 조향할 것인가 (Lateral)을 결정한다.

PID Control 정의

Velocity Control
  • 두 waypoint 사이의 거리()를 시간 간격 로 나눈 값 (=waypoint 사이의 속도)의 평균
  • 이 평균 속도 를 PID Control의 목표값 으로 설정하여 속도를 제어할 수 있다.
Steering Angle Control
  • 는 waypoint 들을 원형 피팅하여 얻은 목표점 이며 차량 좌표계를 기준으로 의 위치로 나타낸다.
  • 차량에서 목표점 까지의 방향각을 그대로 조향각 로 사용한다.
  • 이 조향각 를 PID Control의 목표값 로 설정하여 조향각을 제어할 수 있다.

참고