# 모델 기반 제어의 장점과 한계

#### 장점

**예측 능력**

모델 기반 제어(Model Predictive Control, MPC)의 가장 큰 장점 중 하나는 시스템의 미래 상태를 예측할 수 있다는 점이다. 이는 시스템의 수학적 모델을 바탕으로 향후 동작을 미리 계산하여 최적의 제어 입력을 찾아낸다. 제어 입력은 다음과 같은 비용 함수 $J$를 최소화하는 방향으로 결정된다:

$$
J = \sum\_{k=0}^{N-1} \left( \mathbf{x}(k)^\top \mathbf{Q} \mathbf{x}(k) + \mathbf{u}(k)^\top \mathbf{R} \mathbf{u}(k) \right)
$$

여기서 $\mathbf{x}(k)$는 시스템의 상태 벡터, $\mathbf{u}(k)$는 제어 입력 벡터, $\mathbf{Q}$는 상태 가중치 행렬, $\mathbf{R}$는 제어 입력 가중치 행렬이다. 이를 통해 제어 목표에 부합하는 시스템 상태를 유지하면서 제어 입력의 최적화를 이루는 것이 가능하다.

**제약 조건 처리**

MPC는 제약 조건을 효율적으로 처리하는 능력을 갖추고 있다. 실제 시스템에서는 제어 입력이나 시스템 상태에 다양한 물리적 제약이 있을 수 있다. 예를 들어, 연료 전지의 출력이나 배터리 충전 상태는 다음과 같은 제약 조건을 가질 수 있다:

$$
\mathbf{u}*{\text{min}} \leq \mathbf{u}(k) \leq \mathbf{u}*{\text{max}}
$$

$$
\mathbf{x}*{\text{min}} \leq \mathbf{x}(k) \leq \mathbf{x}*{\text{max}}
$$

이러한 제약 조건을 명시적으로 고려하여 제어 입력을 산출할 수 있는 점에서, MPC는 다른 제어 기법에 비해 더욱 안정적이고 안전한 제어를 보장할 수 있다.

**다목적 최적화**

MPC는 다목적 최적화 문제를 동시에 해결할 수 있는 장점을 가진다. 예를 들어, 연료 전지 차량에서 연료 전지와 배터리의 출력을 동시에 최적화하여 효율성을 극대화하는 문제는 복잡한 상호작용을 수반한다. 이 경우, MPC는 다양한 성능 지표를 고려하여 최적의 제어 입력을 계산한다. 제어 입력 $\mathbf{u}(k)$는 다음과 같이 시스템 모델과 목적 함수를 기반으로 최적화된다:

$$
\mathbf{u}^\*(k) = \arg \min\_{\mathbf{u}} \sum\_{k=0}^{N-1} \left( f(\mathbf{x}(k), \mathbf{u}(k)) \right)
$$

여기서 $f(\mathbf{x}, \mathbf{u})$는 시스템 성능을 나타내는 비용 함수로, 연료 소비, 배터리 상태, 열 관리 등이 포함될 수 있다. 이를 통해 다목적 최적화를 동시에 달성할 수 있다.

#### 한계

**높은 계산 복잡도**

MPC의 한계 중 하나는 **계산 복잡도**가 매우 높다는 점이다. 특히, 실시간 제어 시스템에서는 짧은 시간 안에 최적의 제어 입력을 계산해야 한다. 이때, 상태 벡터 $\mathbf{x}(k)$와 제어 입력 벡터 $\mathbf{u}(k)$의 차원과 예측 구간 $N$이 커지면 계산량이 급격히 증가한다. 예를 들어, 최적의 제어 입력을 찾기 위해 반복적으로 최적화 문제를 풀어야 하며, 이는 다음과 같은 비선형 제어 문제를 포함할 수 있다:

$$
\min\_{\mathbf{u}} \sum\_{k=0}^{N-1} \left( \mathbf{x}(k)^\top \mathbf{Q} \mathbf{x}(k) + \mathbf{u}(k)^\top \mathbf{R} \mathbf{u}(k) \right)
$$

이 최적화 문제는 시스템의 동작에 따라 비선형 제약 조건을 포함할 수 있으며, 이를 해결하기 위해선 고성능 프로세서가 요구된다. 따라서, 실시간 제어에서는 계산 시간이 제어 주기 내에 충족되지 않을 위험이 있다.

**시스템 모델 의존성**

MPC는 **정확한 시스템 모델**에 크게 의존한다는 한계를 갖는다. 시스템 모델 $\mathbf{f}(\mathbf{x}(k), \mathbf{u}(k))$는 시스템의 상태 변화와 제어 입력에 따른 영향을 수학적으로 설명하는데, 만약 모델이 정확하지 않다면 MPC는 부정확한 제어 결과를 초래할 수 있다. 모델 불확실성이나 외란에 의한 오차는 다음과 같은 방식으로 나타날 수 있다:

$$
\mathbf{x}(k+1) = \mathbf{f}(\mathbf{x}(k), \mathbf{u}(k)) + \mathbf{w}(k)
$$

여기서 $\mathbf{w}(k)$는 모델링 오차나 외란을 나타내는 벡터다. 시스템 모델이 부정확하거나 외부 요인에 의해 실제 동작이 모델과 차이가 나면, MPC가 예측하는 미래 상태도 부정확해져 최적 제어가 어려워질 수 있다.

**제어 주기와 실시간성**

MPC는 최적화 계산을 실시간으로 수행해야 하므로, **제어 주기 내**에 최적의 제어 입력을 계산할 수 없으면 제어 성능이 저하될 수 있다. 이는 특히 제어 주기가 짧은 시스템에서 문제가 된다. 연료 전지와 배터리의 제어 시스템에서 이러한 제어 주기 내의 계산이 실패할 경우, 다음과 같은 문제가 발생할 수 있다:

1. 연료 전지 출력이 과도하게 변화하여 시스템 안정성이 저하된다.
2. 배터리의 충전 상태가 적절히 관리되지 않아 과도한 충전/방전이 발생할 수 있다.

실시간성 확보를 위해선 최적화 알고리즘의 효율성을 높이거나 예측 구간 $N$을 줄이는 등 타협이 필요하다.

**모델링 오류와 불확실성**

마지막으로, MPC는 시스템의 모델이 **정확해야만** 최적의 성능을 발휘할 수 있지만, 실제 시스템은 다양한 **불확실성**과 **모델링 오류**가 존재한다. 모델링 오류는 다음과 같은 경우에 발생할 수 있다:

* 시스템 동작 중에 예기치 않은 외부 환경 변화가 있을 때
* 시스템의 비선형 특성이 모델에 정확히 반영되지 않을 때

이러한 불확실성은 예측 성능을 저하시켜 제어 성능에 부정적인 영향을 미칠 수 있으며, 이를 해결하기 위해선 **강건 제어**(robust control) 기법을 병행하거나 **적응 제어**(adaptive control)를 적용해야 한다. 예를 들어, 강건 MPC는 불확실성을 고려한 제어를 위해 다음과 같은 추가 제약 조건을 포함할 수 있다:

$$
\min\_{\mathbf{u}} \sum\_{k=0}^{N-1} \left( \mathbf{x}(k)^\top \mathbf{Q} \mathbf{x}(k) + \mathbf{u}(k)^\top \mathbf{R} \mathbf{u}(k) + \gamma \cdot \mathbf{w}(k) \right)
$$

여기서 $\gamma$는 불확실성을 고려한 가중치로, 시스템의 안전한 동작을 보장하면서 성능 저하를 최소화하려는 목적을 가진다.
