모델 예측 제어

**모델 예측 제어**(, **MPC**)는 일련의 제약 조건을 만족하면서 공정을 제어하는 데 사용되는 고급 공정 제어 방법이다. 모델 예측 제어기는 공정의 동적 모델에 의존하며, 대부분 시스템 식별을 통해 얻은 선형 경험적 모델을 사용한다. MPC의 주요 장점은 미래의 타임슬롯을 고려하면서 현재의 타임슬롯을 최적화할 수 있다는 점이다. 이는 유한한 시간 지평(time-horizon)을 최적화하되 현재의 타임슬롯만 구현한 후 다시 최적화를 반복함으로써 수행되며, 이러한 점에서 선형-이차 조절기(LQR)와 차이가 있다. 또한 MPC는 미래의 사건을 예측하고 그에 따라 제어 조치를 취할 수 있는 능력이 있다. PID 제어기에는 이러한 예측 능력이 없다. MPC는 거의 보편적으로 디지털 제어로 구현되지만, 특별히 설계된 아날로그 회로를 통해 더 빠른 응답 시간을 달성하려는 연구도 존재한다.

MPC는 1980년대부터 화학 공장 및 정유소와 같은 산업 공정 분야에서 사용되어 왔다. 최근에는 전력 계통 균형 모델 및 전력 전자공학 분야에서도 사용되고 있다.

일반화 예측 제어(GPC)와 동적 행렬 제어(DMC)는 MPC의 고전적인 예시이다.

## 개요
섬네일|3개의 상태와 3개의 액추에이터를 가진 다중 입력 다중 출력 MPC 시뮬레이션
MPC에 사용되는 모델은 일반적으로 복잡하거나 단순한 동역학계의 거동을 나타내기 위한 것이다. 일반적인 PID 제어기로도 충분히 잘 제어되는 단순한 시스템의 경우 MPC 제어 알고리즘의 추가적인 복잡성이 굳이 필요하지 않다. PID 제어기가 다루기 어려운 일반적인 동적 특성으로는 큰 시간 지연과 고차 동역학 등이 있다.

MPC 모델은 독립변수의 변화로 인해 발생하는 모델링된 시스템의 종속변수 변화를 예측한다. 화학 공정에서 제어기에 의해 조정될 수 있는 독립변수는 종속 제어 PID 제어기의 설정값(압력, 유량, 온도 등)이나 최종 제어 요소(밸브, 댐퍼 등)인 경우가 많다. 제어기에 의해 조정될 수 없는 독립변수는 외란(disturbance)으로 간주된다. 이러한 공정의 종속변수는 제어 목표나 공정 제약 조건을 나타내는 다른 측정값들이다.

MPC는 현재의 플랜트 측정값, 공정의 현재 동적 상태, MPC 모델, 공정 변수 목표 및 제한 사항을 사용하여 종속변수의 미래 변화를 계산한다. 이러한 변화는 독립변수와 종속변수 모두에 대한 제약 조건을 준수하면서 종속변수를 목표값에 가깝게 유지하도록 계산된다. MPC는 일반적으로 각 독립변수에 대해 첫 번째 변화량만 전송하여 실행하고, 다음 변화가 필요할 때 계산을 반복한다.

많은 실제 공정은 비선형이지만, 좁은 운전 범위 내에서는 종종 대략 선형으로 간주될 수 있다. 대부분의 응용 분야에서 선형 MPC 접근 방식이 사용되며, MPC의 피드백 메커니즘이 모델과 공정 사이의 구조적 불일치로 인한 예측 오차를 보상한다. 선형 모델로만 구성된 모델 예측 제어기에서는 선형대수학의 중첩 원리를 통해 여러 독립변수의 변화 효과를 합산하여 종속변수의 응답을 예측할 수 있다. 이는 제어 문제를 빠르고 견고한 일련의 직접 행렬 대수 계산으로 단순화한다.

선형 모델이 실제 공정의 비선형성을 나타내기에 충분히 정확하지 않은 경우 여러 접근 방식을 사용할 수 있다. 어떤 경우에는 비선형성을 줄이기 위해 선형 MPC 모델 전후에 공정 변수를 변환할 수 있다. 제어 애플리케이션에서 직접 비선형 모델을 사용하는 비선형 MPC로 공정을 제어할 수도 있다. 비선형 모델은 경험적 데이터 피팅(예: 인공 신경망) 형태이거나 근본적인 질량 및 에너지 균형에 기반한 고충실도 동적 모델일 수 있다. 비선형 모델을 선형화하여 칼만 필터를 유도하거나 선형 MPC를 위한 모델을 지정할 수도 있다.

### MPC의 이론적 배경
섬네일|이산 MPC 체계. MPC는 플랜트 모델의 반복적인 유한 시간 지평 최적화에 기반한다. 시간 t에서 현재 플랜트 상태를 샘플링하고, 상대적으로 짧은 미래 시간 지평 [t,t+T]에 대해 비용을 최소화하는 제어 전략을 (수치적 최소화 알고리즘을 통해) 계산한다. 구체적으로, 현재 상태에서 시작되는 상태 궤적을 탐색하고 (오일러-라그랑주 방정식의 해를 통해) 시간 t+T까지 비용을 최소화하는 제어 전략을 찾기 위해 온라인 또는 실시간 계산이 사용된다. 제어 전략의 첫 번째 단계만 실행된 후, 플랜트 상태를 다시 샘플링하고 새로운 현재 상태에서 계산을 반복하여 새로운 제어와 새로운 예측 상태 경로를 얻는다. 예측 지평이 계속 앞으로 이동하기 때문에 MPC는 **후퇴 지평 제어**(receding horizon control)라고도 불린다. 이 접근 방식이 이론적으로 최적은 아닐지라도 실제로는 매우 좋은 결과를 보여주었다. 오일러-라그랑주 유형 방정식의 빠른 해법을 찾고, MPC 국부 최적화의 전역 안정성 특성을 이해하며, 전반적인 MPC 방법을 개선하기 위해 많은 학술적 연구가 이루어졌다.

### MPC의 원리
모델 예측 제어는 다음을 사용하는 다변수 제어 알고리즘이다.
* 공정의 내부 동적 모델
* 후퇴 지평에 대한 비용 함수 J
* 제어 입력 u를 사용하여 비용 함수 J를 최소화하는 최적화 알고리즘

최적화를 위한 이차 비용 함수의 예시는 다음과 같다.

:J=\sum_{i=1}^N w_{x_i} (r_i-x_i)^2 + \sum_{i=1}^M w_{u_i} {\Delta u_i}^2

제약 조건(하한/상한)을 위반하지 않으면서 다음을 만족한다.

:x_i: i번째 제어 변수 (예: 측정된 온도)
:r_i: i번째 참조 변수 (예: 요구 온도)
:u_i: i번째 조작 변수 (예: 제어 밸브)
:w_{x_i}: x_i의 상대적 중요성을 반영하는 가중치 계수
:w_{u_i}: u_i의 상대적으로 큰 변화에 불이익을 주는 가중치 계수
등.

## 비선형 MPC
비선형 모델 예측 제어(NMPC)는 예측에 비선형계 모델을 사용하는 것이 특징인 모델 예측 제어의 변형이다. 선형 MPC와 마찬가지로 NMPC는 유한한 예측 지평에서 최적 제어 문제의 반복적인 해법을 요구한다. 선형 MPC에서는 이러한 문제가 볼록(convex)하지만, 비선형 MPC에서는 더 이상 반드시 볼록할 필요가 없다. 이는 NMPC의 안정성 이론과 수치적 해법 모두에 도전 과제를 제기한다.

NMPC 최적 제어 문제의 수치적 해법은 일반적으로 뉴턴 유형의 최적화 기법을 사용하는 직접 최적 제어 방법에 기반하며, 직접 단일 사격법, 직접 다중 사격법, 또는 직접 배열법(direct collocation) 중 하나를 사용한다. NMPC 알고리즘은 일반적으로 연속적인 최적 제어 문제가 서로 유사하다는 사실을 이용한다. 이를 통해 이전에 계산된 최적해로부터 적절히 이동된 추측값을 사용하여 뉴턴 유형의 해법 절차를 효율적으로 초기화함으로써 상당한 계산 시간을 절약할 수 있다. 후속 문제의 유사성은 경로 추적 알고리즘(또는 "실시간 반복")에 의해 더욱 활용되는데, 이는 어떠한 최적화 문제도 수렴할 때까지 반복하지 않고, 대신 적절히 초기화된 다음 문제로 넘어가기 전에 가장 최근의 NMPC 문제 해결을 위해 몇 번의 반복만 수행한다. 비선형 최적화 문제의 또 다른 유망한 후보는 무작위 최적화 방법을 사용하는 것이다. 최적해는 솔루션 공간의 제약 조건을 만족하는 무작위 샘플을 생성하고 비용 함수를 기반으로 최적의 샘플을 찾음으로써 발견된다.

과거에 NMPC 응용 프로그램은 샘플링 속도가 비교적 느린 공정 및 화학 산업에서 주로 사용되었지만, 제어기 하드웨어와 사전조건화 등의 계산 알고리즘의 발전으로 자동차 산업과 같이 샘플링 속도가 높은 분야나 상태가 공간에 분산된 경우(분포 매개변수 시스템)에도 점점 더 많이 적용되고 있다. 항공우주 분야의 응용 사례로, 최근 NMPC는 실시간으로 최적의 지형 추적/회피 궤적을 추적하는 데 사용되었다.

## 명시적 MPC
명시적 MPC(eMPC)는 온라인 MPC와 대조적으로 일부 시스템에서 제어 법칙을 빠르게 평가할 수 있게 해준다. 명시적 MPC는 파라메트릭 프로그래밍 기법에 기반하며, 여기서 최적화 문제로 공식화된 MPC 제어 문제의 해는 오프라인에서 미리 계산된다. 이 오프라인 해, 즉 제어 법칙은 종종 조각마다 아핀인 함수(PWA) 형태이므로, eMPC 제어기는 PWA가 일정한 상태 공간의 각 하위 집합(제어 영역)에 대한 PWA 계수뿐만 아니라 모든 영역의 파라메트릭 표현 계수를 저장한다. 선형 MPC의 경우 각 영역은 기하학적으로 볼록 다포체가 되며, 대개 그 면의 계수로 파라미터화되므로 양자화 정확도 분석이 필요하다. 최적의 제어 동작을 얻는 과정은 먼저 현재 상태를 포함하는 영역을 결정한 다음, 모든 영역에 대해 저장된 PWA 계수를 사용하여 PWA를 단순 평가하는 것으로 축소된다. 영역의 총 개수가 적다면 eMPC의 구현은 (온라인 MPC에 비해) 상당한 계산 자원을 필요로 하지 않으며 빠른 동역학을 가진 시스템을 제어하는 데 매우 적합하다. eMPC의 심각한 단점은 상태의 수와 같은 제어 시스템의 주요 파라미터에 따라 제어 영역의 총 개수가 기하급수적으로 증가하여 제어기 메모리 요구 사항이 급격히 늘어나고, 첫 번째 단계인 PWA 평가(즉, 현재 제어 영역 찾기)의 계산 비용이 비싸진다는 것이다.

## 강인 MPC
모델 예측 제어의 강인한 변형은 상태 제약 조건을 충족하면서도 유계된 외란을 고려할 수 있다. 강인 MPC의 주요 접근 방식은 다음과 같다.

* 최소-최대(Min-max) MPC. 이 방식에서는 외란의 가능한 모든 진화에 대해 최적화가 수행된다. 이는 선형 강인 제어 문제에 대한 최적해이지만 계산 비용이 높다. 최소-최대 MPC 접근 방식의 기본 아이디어는 온라인 "최소" 최적화를 "최소-최대" 문제로 수정하여, 불확실성 집합의 모든 가능한 플랜트에 대해 최대화된 목적 함수의 최악의 경우를 최소화하는 것이다.
* 제약 조건 강화(Constraint Tightening) MPC. 여기서는 외란의 어떠한 진화 하에서도 궤적을 찾을 수 있도록 상태 제약 조건을 주어진 여유만큼 확대한다.
* 튜브(Tube) MPC. 이는 시스템의 독립적인 명목 모델(nominal model)을 사용하고, 피드백 제어기를 사용하여 실제 상태가 명목 상태로 수렴하도록 보장한다. 상태 제약 조건으로부터 필요한 분리량은 강인 양의 불변(RPI) 집합에 의해 결정되는데, 이는 피드백 제어기와 함께 외란에 의해 발생할 수 있는 모든 가능한 상태 편차의 집합이다.
* 다단계(Multi-stage) MPC. 이는 불확실성 공간을 샘플 집합으로 근사화하여 시나리오 트리(scenario-tree) 구성을 사용하며, 예측의 모든 시간 단계에서 측정 정보를 사용할 수 있고 각 단계의 결정이 다를 수 있어 불확실성의 효과에 대응하는 수단으로 작용할 수 있다는 점을 고려하므로 보수적이지 않다. 그러나 이 접근 방식의 단점은 불확실성의 수와 예측 지평에 따라 문제의 크기가 기하급수적으로 커진다는 것이다.
* 튜브 강화 다단계(Tube-enhanced multi-stage) MPC. 이 접근 방식은 다단계 MPC와 튜브 기반 MPC를 시너지 효과가 나도록 결합한다. 불확실성의 분류와 예측에서의 제어 법칙 선택을 통해 최적성과 단순성 사이의 원하는 절충안을 선택할 수 있는 높은 자유도를 제공한다.

## MPC 소프트웨어
상업용 MPC 패키지가 출시되어 있으며, 대개 모델 식별 및 분석, 제어기 설계 및 튜닝, 제어기 성능 평가를 위한 도구를 포함하고 있다.
상업적으로 이용 가능한 패키지에 대한 조사는 S.J. Qin과 T.A. Badgwell에 의해 Control Engineering Practice 11 (2003) 733–764에 제공되었다.

(비선형) 모델 예측 제어를 위해 자유롭게 사용할 수 있는 오픈 소스 소프트웨어 패키지는 다음과 같다.

* Rockit (Rapid Optimal Control kit) — 최적 제어 문제의 프로토타입을 빠르게 제작할 수 있는 소프트웨어 프레임워크.
* acados — 비선형 최적 제어를 위한 빠르고 임베디드 가능한 솔버를 제공하는 소프트웨어 프레임워크.
* GRAMPC — (서브)밀리초 범위의 샘플링 시간을 갖는 동역학계에 적합하며 임베디드 하드웨어에서 효율적인 구현이 가능한 비선형 MPC 프레임워크.
* CControl - 임베디드 및 저비용 마이크로컨트롤러를 위한 MPC 및 칼만 필터링 기능이 포함된 제어 공학 선형대수 라이브러리.

## MPC vs. LQR
모델 예측 제어와 선형-이차 조절기는 모두 최적 제어의 표현이며, 최적화 비용을 설정하는 방식이 다르다.

모델 예측 제어기는 종종 고정된 길이의, 흔히 점진적으로 가중치가 부여된 오차 함수 집합을 살펴보는 반면, 선형-이차 조절기는 모든 선형 시스템 입력을 살펴보고 주파수 스펙트럼 전반에 걸쳐 총 오차를 줄이는 전달 함수를 제공하여 상태 오차와 입력 주파수 사이의 균형을 맞춘다.

이러한 근본적인 차이로 인해 LQR은 더 나은 전역 안정성 특성을 갖지만, MPC는 종종 더 국부적으로 최적화되고 복잡한 성능을 보여준다.

MPC와 LQR의 주요 차이점은 LQR이 전체 시간 창(지평)에 대해 최적화하는 반면 MPC는 후퇴하는 시간 창에서 최적화한다는 점이며, MPC는 새로운 해를 자주 계산하는 반면 LQR은 전체 시간 지평에 대해 동일한 단일(최적) 해를 사용한다는 점이다. 따라서 MPC는 일반적으로 전체 지평보다 작은 시간 창에서 최적화 문제를 해결하므로 부최적해(suboptimal solution)를 얻을 수 있다. 그러나 MPC는 선형성에 대한 가정을 하지 않기 때문에 엄격한 제약 조건뿐만 아니라 선형화된 작동 지점에서 벗어나는 비선형 시스템의 이동을 처리할 수 있으며, 이 두 가지는 LQR의 주요 단점이다.

이는 LQR이 안정적인 고정점에서 떨어져 작동할 때 약해질 수 있음을 의미한다. MPC는 이러한 고정점 사이의 경로를 설계할 수 있지만, 특히 문제 공간의 볼록성과 복잡성이 무시된 경우에는 해의 수렴이 보장되지 않는다.

## 같이 보기
* 제어공학
* 제어이론
* 앞먹임
* 시스템 식별

## 각주

## 더 읽어보기
* 
* 
* 
* 
* 
* 
* 
* 
* 
* Rawlings, James B.; Mayne, David Q.; and Diehl, Moritz M.; Model Predictive Control: Theory, Computation, and Design (2nd Ed.), Nob Hill Publishing, LLC,  (Oct 2017)
* Geyer, Tobias; Model predictive control of high power converters and industrial drives, Wiley, London, , Nov 2016

## 외부 링크
* Case Study. Lancaster Waste Water Treatment Works, optimisation by means of Model Predictive Control from Perceptive Engineering
* acados - Open-source framework for (nonlinear) model predictive control providing fast and embedded solvers for nonlinear optimization. (C, MATLAB and Python interface available)
* &mu;AO-MPC - Open Source Software package that generates tailored code for  model predictive controllers on embedded systems in highly portable C code.
* GRAMPC - Open source software framework for embedded nonlinear model predictive control using a gradient-based augmented Lagrangian method. (Plain C code, no code generation, MATLAB interface)
* jMPC Toolbox - Open Source MATLAB Toolbox for Linear MPC.
* Study on application of NMPC to superfluid cryogenics (PhD Project).
* Nonlinear Model Predictive Control Toolbox for MATLAB and Python
* Model Predictive Control Toolbox from MathWorks for design and simulation of model predictive controllers in MATLAB and Simulink
* Pulse step model predictive controller - virtual simulator
* Tutorial on MPC with Excel and MATLAB Examples
* GEKKO: Model Predictive Control in Python

분류:제어이론