본문 바로가기

용어(Terminology)

모델 예측 제어, MPC(Model predictive control)

 

 

모델 예측 제어 / MPC(Model predictive control)

 

MPC를 생각할 때 흔히 오픈 루프 컨트롤 시스템(open-loop control system), 혹은 클로즈 루프 컨트롤 시스템(closed-loop control system)으로 나뉘어서 생각한다. 

2020/03/20 - [용어(Terminology)] - Open-loop control | Closed-loop control.

 

 

MPC는 오픈 루프 컨트롤 시스템과 클로즈 루프 컨트롤 시스템, 즉 두 컨트롤 시스템의 개념을 사용한 제어 시스템이다.

처음 단계에서 N번째 까지의 상황을 예측하고, 첫 번째 컨트롤러만 기계 혹은 모델에 적용한다.

이 단계까지 반복되는 오픈 루프 컨트롤 시스템을 사용한다. 

이 단계들을 반복하여 얻어지는 결과 값을 클로즈 루프 컨트롤 시스템에 대입한다.

클로즈 루프 컨트롤 시스템을 사용 함으로써 피드백이 얻어지고, 그 피드백을 기반으로 시스템은 계속 모델을 수정한다.

반복되는 피드백과 그에 따른 수정으로 모델은 최상의 결과 값을 찾는다.

이 과정들을 마지막 문단에 자율 주행 자동차가 방향을 바꾸는 예시로 설명할 것이다. 

 

MPC 기능은 자동차의 자율 주행과 산업등에 유용하게 쓰인다.

 

MPC의 장점

 

Multivariable control system:

모델에 쓰이는 컨트롤러 중에는 PID(Proportional-Integrate-Derivative) 컨트롤을 자주 사용한다.

PID 컨트롤러는 인풋을 PID컨트롤 시스템에 넣고 피드백을 얻고 다시 수정하는 클로즈 루프 컨트롤이다.

하지만, 하나의 모델에 많은 PID 컨트롤러들이 필요할 때 알고리즘은 매우 복잡해진다.

그리고 이 복잡한 컨트롤러들을 한데 통합시켜주는 것이 MPC이다.

 

자동차의 자율 주행과 MPC:

예시로, MPC로 제어 되는 자동차는 앞의 주행되고 있는 차량의 거리를 계산하여 차의 가속도와 속력을 조절한다.

MPC 기능이 없는 자율 주행 자동차가 커브길을 돈다고 가정해보자.

자동차는 일정 거리를 유지하지 못한 채 속력을 조절하지 못해, 커브길에 다다라서야 방향을 트는 것이다.

하지만 카메라가 부착된 MPC로 제어되는 자동차는 사정거리 내의 커브길을 확인한 후 속력을 조절해 안전하게 방향을 제어한다.

 

MPC 예시

 

자율 자동차가 커브길을 주행하는 시스템으로 바라보는 MPC:

Lane-following system

카메라 센서 혹은 라이다(Lidar) 센서가 부착된 자율 주행 자동차는 일정 거리 안에 커브를 포착한다.

커브를 중점으로 자동차가 커브를 돌려면 이동해야 할 기준선(reference line)을 만든다.

그리고 MPC로 현재의 시간(t)을 기준으로, 방향을 틀어 기준선까지 주행하게 될 거리에 따른 방향을 도착하는 시간(t+n)까지 여러 개의 모델들을 제시한다(t, t+1, t+2, t+3,..., t+n).

여기까지가 반복되는 오픈 루프 컨트롤 시스템을 이용하여 여러 개의 모델들을 만들어 낸 것이다.

그 후에 주행자들을 고려해 방향이 확 꺾이지 않고 기준선에서 오차가 상대적으로 적은 모델을 하나 선택한다.

그 모델에서 t+1, 즉 단 하나의 컨트롤만 인풋으로 넣고 t+1까지 주행한다.

하지만, 예상되는 주행 거리와 실제로 이동되는 거리와 경로는 같지 않을 수 있다. 

이유는 외부적인 요소들(바람, 도로의 상태 혹은 그 외)로 실제로 주행되는 거리에 영향을 끼치는 것이다.

이렇게 얻은 피드백들을 다시 MPC에 계속 반복하여 값을 도출하고 주행한다. 

그리고 여기까지가 클로즈 루프 컨트롤 시스템을 이용하여 도출되는 아웃풋을 피드백으로 수정을 거치는 것이다.

 

이처럼, MPC는 미래(t+n)에 원하는 결괏값을 기반으로 수학적인 추정 값을 오픈/클로즈 컨트롤 시스템을 사용하여 피드백을 만들고, 다시 그 피드백을 바탕으로 한 인풋을 시스템에 넣는 예측 제어 시스템이다.

 

 

'용어(Terminology)' 카테고리의 다른 글

Open-loop control | Closed-loop control  (0) 2020.03.20