Model Predict Control (MPC, 모델 예측 제어)
개요----------------------------------
모든 산업현장 혹은 기계조작에 우리는 최적(Optimal)의 효율적인 조작을 할려고 합니다. 가장 적은 자원을 사용해서, 최고의 결과물을 나오게 해야 하는것이 생산성의 기본 원리이죠! 그리고 MPC는 이를 가능하게 해주는 제어공학 분야에서 활용되는 고급 알고리즘중 하나 입니다. 함께 보시죠
동작방식----------------------------------
간단합니다. 3단계를 반복하는 구조 입니다.
현재 상태를 기반으로, 여러개의 미래를 예측합니다. (편의상 4수 앞까지 본다고 하겠습니다. 몇수까지 볼건지는 사용자가 조작할수 있습니다.) 닥터스트레인지가 타임스톤을 활용해서 다양한 미래를 예측하는것이라고 생각하는거라고 생각하시면 됩니다.
다음 단계는 예측한 여러개의 미래중 가장 우수한 미래를 선택한뒤, 1Step(한번의 수)만 진행합니다.
4수앞까지 다 계산했는데 굳이 1수만 진행하는 이유는, 미래는 불확실성을 가지고 있기에, 계획과 실제결과가 다를수도 있기 때문입니다.
마지막으로 1step 제어를 진행했으니, 시간이 흘러서 현재상태는 또 새로고침이 됩니다. 그러면?
다시 1단계로 돌아가서 또 미래에 대한 예측을 진행합니다.
당연히 매번마다 여러개의 미래를 계산해야 하니 계산을 위해 많은 자원과 시간이 소모된다는 단점이 있습니다.
현대에 이르어서는 GPU의 등장으로 인해 이를 극복해낼수 있기에 각광받고 있습니다!
기초구조----------------------------------
MPC를 구현하기 위해서는 4개의 요소가 필요합니다.
우선 비용함수에 대해서 설명해드리겠습니다. 우리가 여행을 가는 경우를 가정한다면, 관광지를 돌아다니기 위해서 가장 시간이 덜 걸리고 비용이 저렴한 루트를 고르는게 최고이겠죠? 이렇게 비용함수는 사용자가 고려해서 설정하게 됩니다. MPC 모델의 성능에 직접적인 영향을 미치는 만큼, 매우 중요한 요소 입니다.
동적모델은 시스템이 어떻게 움직이는지를 나타냅니다. 자전거를 예시로 들면, 바퀴의 지름과 페달을 밟는힘을 운동방정식 형태로 나타낼수가 있겠죠? 자전거 시스템을 정의한 동적모델이 이에 해당합니다. (제가 쓰지는 않지만, 위의 자전거 예시는 운동방정식을 라플라스변환을 통해서 차분방정식 혹은 미분방정식 형태로 공식화 할수 있습니다.)