MPC는 다음과 같은 제약조건을 갖는 선형 시스템에서
매 시간 스텝마다 다음 목적함수가 일정 성능 예측구간
실제 제어입력으로는 제어입력의 시퀀스에서 첫 번째 항인

위와 같은 동적 최적화 문제를 QP (quadratic program)문제로 변환한 후 정적 최적화 기법을 적용하여 푸는 것이 일반적인 MPC 알고리즘이다.
여기서는 QP 문제로 변환할 때 사용되는 두가지 방법에 대해서 알아보고자 한다.
먼저 가장 많이 사용되는 범용적 방법에 대해서 설명한다. 식 (1)에 의하면 시간 스텝(time step)
식 (4)를 행렬 형식으로 바꾸면 다음과 같이 된다.
또는 다음과 같이 표현할 수 있다.
여기서
이다. 식 (3)의 목적함수도 다음과 같이 행렬 형식으로 표현할 수 있다.
여기서
이다. 식 (6)을 (7)에 대입하면 식 (7)은 다음과 같이 된다.
여기서
이다. 식 (8)은
한편 식 (2)의 제약조건도
식 (9)를 시간 스텝별로 한 개의 식으로 표현하면 다음과 같이 된다.
식 (10)에 있는 모든 시간스텝의 제약조건을 한데 묶으면 다음과 같다.
또는
이다. 여기서
이다. 식 (6)을 (12)에 대입하면 다음과 같이 된다.
위 식은 다음과 같이 쓸 수 있다.
정리하면 식 (1), (2), (3)으로 주어지는 MPC의 동적 최적화 문제는 다음과 같이 QP 최적화 문제로 변환된다.
여기서
QP 솔버는 여러가지가 있지만 만약 Matlab을 사용하여 풀려면 함수 'quadprog' 를 사용하면 된다.

범용 솔버를 사용하여 QP문제를 풀 경우 시간이 많이 소요되기 때문에 MPC는 전통적으로 샘플 시간이 초 또는 분 단위로 측정되는 느린 역학을 가진 시스템으로 적용이 제한되었다. 반응 속도가 빠른 시스템에 MPC를 구현하는 한 가지 방안으로 모든 상태변수에 대해서 제어값을 미리 오프라인해서 계산한 다음 제어값을 룩업 테이블(lookup table)의 형태로 온라인으로 구현하는 방법이 있다. 이것이 explicit MPC 또는 리얼타임 MPC의 아이디어이다.
이 방법의 단점은 테이블의 항목 수가 예측구간, 상태 및 입력변수의 차원에 따라 기하급수적으로 증가할 수 있어서 테이블을 조회하는 시간 역시 기하급수적으로 증가한다는 데 있다. 하지만 룩업 테이블 대신에 최근 발전하고 있는 인공 신경망 기술을 이용하여 테이블을 피팅한다면 고속으로 제어입력을 계산해 낼 수 있을 것으로 생각된다.
'유도항법제어 > 최적제어' 카테고리의 다른 글
[Continuous-Time] 최적제어 문제 (0) | 2022.12.13 |
---|---|
[MPC] MPC를 위한 두가지 QP 모델 - 2 (0) | 2022.12.03 |
[MPC] 모델예측제어 개요 (0) | 2022.11.28 |
[PSOC-7] 유사 스펙트럴 방법 예제 (0) | 2022.04.24 |
[PSOC-6] 유사 스펙트럴 방법 (Pseudospectral Method) (0) | 2022.04.23 |
댓글