[제어이론] 모델 예측 제어 (MPC: Model Predictive Control) (2)

Study/Control Theory · 2020. 4. 10. 09:41

이전 게시물에 예측 제어에 관한 기본 사항을 확인했다.

 

이번에는 NNLS 기반 MPC 제어기를 구성하는 것에 대해 기술한다.

 

1. 시스템 모델

 

일단 제어하고자 하는 시스템에 대한 상태 공간 모델이 필요하다.

최적화 문제를 풀기전에 위의 모델을 이산 시간 상태 공간 모델로 변환해줘야 한다.

k는 현재 스텝이고, x는 상태 벡터, u는 입력 벡터, y는 출력 벡터이다.

 

A, B, C, D 행렬은 매트랩의 c2d 함수를 사용해 쉽게 얻을 수 있다.

 

확장된 모델을 사용해야 하는 경우에 경우에 따라 상태 공간 모델을 수정할 수 있다.

 

해당 논문은 ball-plate 시스템을 사용하는데 서보 모터가 입력 증분에 제한이 있어 아래와 같은 확장 모델을 사용한다.

 

delta u(k)는 입력 증분이고 u(k) = u(k-1) + delta u(k)와 같이 사용된다.

 

 

2. MPC 최적화

 

MPC는 매 샘플링 타임 마다 아래 비용 함수와 제약 조건에 따라 최적화 문제를 푼다. 

 

m은 the dimension of output, Nu는 the control horizon, Np는 the prediction horizon, r은 reference, y는 the output, (sigma)는 weight, (lambda)는 the weight on the input increment이다.

 

위의 제약 조건은 벡터를 이요하여 아래와 같이 표현할 수 있다.

 

 

y_hat은 the prediction of output, (Sigma)는 the weight matrix on the tracking error이다.

 

y_hat은 아래의 관계에 따라 계산되어질 수 있다. 

=> 이거 패드에 정리해 놓았다.

 

위 식의 첫번째 term은 free reponse이다. 

-> delta u = 0일 때 prediction output을 말한다.

=> 아래와 같이 표현할 수 있다.

위의 y_hat과 f를 cost function을 벡터 형식으로 표현한 것에 대입하면 다음 식을 얻을 수 있다.

윗 식에서 마지막 항은 상수이기 때문에 최적화 문제에서 영향을 주지 않는다.

 

따라서, 제약조건을 포함한 최적화 문제의 해는 다음과 같다.

아래 조건에서 u_upper와 u_under는 각각 the maximum and minimum of the input, delta u_upper와 delta u_under는 the input increment이다.

 

 

3. NNLS solution을 이용한 QP algorithm (이전 게시물과 동일함)

 

위의 최적 delta u*을 구하기 위해서 NNLS 기반의 QP algorithm을 사용한다.

 

일반적인 QP 문제는 다음과 같은 형식을 가진다.

 

P is the symmetric matrix, q is a vector, and Aη and bη are the constraint matrix and vector, respectively. Suppose P is positive definite. Then the QP problem becomes strictly a convex optimization, which guarantees the existence of a global unique solution.

=> 이건 저번 게시물에 설명되어 있다.

 

least squares를 위한 비용함수를 inequality (LSI) 문제로 정의한다.

 

따라서, 아래와 같이 QP 문제의 x*를 표현할 수 있다. (x* == J)

 

J는 J_hat에 대한 단조 증가 함수이다.

 

따라서 J_hat이 최소일 때 J 역시 최소가 된다.

 

그러므로, QP 문제는 다음과 같은 LSI 문제로 변환할 수 있다.

 

LSI 문제는 LDP 문제로 reformulate 될 수 있다.

 

LDP 문제는 NNLS 문제와 등가로 변환될 수 있다.

 

이러한 방법을 통해 QP 문제를 해결한다.

 

아래와 같이 P^(1/2)를 정의한다.

이때 P가 positive definite이기 때문에 항상 S의 역함수가 존재한다.

 

게다가, U는 orthogonal matrix이기 때문에 J_hat은 다음과 같이 표현된다.

1번

위와 같이 z, Az, bz 를 가정했을 때 LSI 문제는 LDP 문제와 동등하게 변환될 수 있다.

위 문제의 해인 z*는 다음과 같은 NNLS 문제를 통해 얻을 수 있다.

NNLS 문제의 해는 d*라고 한다.

 

NNLS 문제의 해 d*와 LDP 문제의 해 z*는 다음과 같은 관계를 가진다.

 

2번

결과적으로 원래의 QP 문제는 아래와 같이 유도될 수 있다. (1번식과 2번식을 이용한다.)

 

 

4. 제약조건

 

아래 두 식을 등가로 생각한다.

 

 

따라서 P, q, x를 다음과 같이 설정한다

제약조건 행렬은 입력과 입력 증분에 대한 것으로 고려한다. 

이게 아래 행렬로 표현한다.

위의 행렬은 horizon length에 대해 적절한 차원으로 설정된다.

 

delta U가 연속된 입력에 대한 집합이라고 할 때 (input horizon Nc 만큼이겠지?), 이는 곳 QP 문제의 해가 되고 다음과 같이 제약조건을 표현할 수 있다.

따라서, QP 문제의 제약 조건은 아래와 같이 표현한다.

 

반응형