일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- rospy.spin
- subsribe
- Package
- convex
- 비동기적
- gjk
- mock
- Gradient
- remapping
- namespace
- separating axis theorem(sat)
- optimization
- ROS
- broad-phase
- QT
- unittest
- MPC
- Topic
- patch
- Service
- gjk-epa
- UV
- CONSTRAINTS
- roslaunch
- narrow-phase
- Python
- 워크스페이스
- Turtle
- Publish
- Turtlesim
- Today
- Total
똑바른 날개
[MPC책 공부 - 13] 2장 - 최적 제어의 해는 언제 존재하는가? 본문
본 게시글은 최적제어의 해가 존재하는 조건은 무엇인지, 그렇다면, 해가 집합일 경우 어떻게 처리되는지에 대한 내용을 다루고 있다. 해당 최적제어는 연속이라는 가정에서 출발한다.
Assumption 2.2: 시스템과 비용의 연속성
다음 함수들은 모두 연속이라고 가정한다.
- 시스템 동역학 \( f(x, u) \)
- 단계 비용 함수 \( \ell(x, u) \)
- 종료 비용 함수 \( V_f(x) \)
또한 모두 원점에서 0의 값을 갖는다.
$$
\begin{aligned}
f(0, 0) &= 0 \\
\ell(0, 0) &= 0 \\
V_f(0) &= 0
\end{aligned}
$$
Assumption 2.3: 제약 집합의 성질
제약 없는 경우를 위한 정의
실제 대다수의 경우는 , 제어 입력에 제약이 존재하지만, 제약이 있는 경우와 제약이 없는 경우를 구분에서 다루기 위해, 추가적으로 제약집합을 사용한다. 이는 제약이 없을 경우에도 상태 집합을 수학적으로 정의하기 위해 사용된다.
- 비용이 어떤 값 \( c \) 이하인 제어 시퀀스 집합
$$
\mathcal{U}_N^{c}(x) := { u \mid V_N(x, u) \le c }
$$
- 이때 문제의 해가 존재하는 상태 집합
$$
\mathcal{X}_N^{c} := { x \mid \mathcal{U}_N^{c}(x) \ne \emptyset }
$$
제약 집합의 성질(가정)
- 상태-입력 제약 집합 \( Z \)는 닫힌 집합(closed set)이다.
- 제어 제약이 있다면, \( \mathcal{U}(x) \)는 모든 x에서 compact이고, bounded된 상태 \( X \)에서 uniform하다.
- 종료 집합 \( X_f \subseteq X \)는 compact하다.
- 모든 집합은 원점 \( (0, 0) \)을 포함한다.
- 제약이 없을 경우, 비용 함수 \( V_N(x, u) \)는 coercive이다. 즉, \( |u| \to \infty \)일 때 \( V_N(x, u) \to \infty \)
Proposition 2.4: 최적 제어 해의 존재성
Assumptions 2.2, 2.3을 만족하면 다음이 성립한다.
(a) \( V_N(x, u) \)는 \( (x, u) \)에 대해 연속이다.
이는 \( \ell \), \( V_f \)가 연속이고, 시스템 해 \( \phi(k, x, u) \)도 연속이기 때문에 성립한다.
(b) 제약 집합 \( \mathcal{U}_N(x) \) 또는 제약이없는 집합\( \mathcal{U}_N^{c}(x) \)은 compact하다.
가정2.3에서 이야기한바와 같다.
(c) Weierstrass 정리에 따라 최적 해가 항상 존재한다.
결론이 가장 중요하다.
가정 2.3, 2.3을 만족하면 우리는 최적해가 항상 존재함을 알 수 있다.
최적 제어 해와 MPC 제어 법칙
주어진 현재 상태 \( x \)에 대해, MPC는 다음 최적화 문제를 푼다
$$
u^0(x) := \arg\min_{u \in \mathcal{U}_N(x)} V_N(x, u)
$$
여기서
- \( V_N(x, u) = \sum_{k=0}^{N-1} \ell(x(k), u(k)) + V_f(x(N)) \)
- \( \mathcal{U}_N(x) \)는 상태와 입력이 제약을 만족하도록 하는 유효한 제어 시퀀스의 집합
- \( u \)는 제어 시퀀스 전체를 의미하고, 해 \( u^0(x) \)도 역시 전체 시퀀스를 의미
- \( u^0(x) = \left( u^0(0; x),\ u^0(1; x),\ \dots,\ u^0(N-1; x) \right) \)
- 최적 제어 시퀀스 \( u^0(x) \)를 계산하지만, 실제 시스템에 적용하는 것은 그 중 첫 번째 입력이다.
즉,
$$
\kappa_N(x) := u^0(0; x)
$$
이것이 실제 로봇이나 시스템에 적용되는 제어 입력이다. 나머지 제어 입력은 사용하지 않고,
다음 시간 스텝에서 상태를 새로 측정한 후, 문제를 다시 풀어 새로운 입력을 얻는다.
이 과정을 함수처럼 표현하면, 다음과 같이 쓸 수 있다:
$$
\kappa_N : x \mapsto u^0(0; x)
$$
즉, 상태 \( x \)가 주어졌을 때, MPC는 해당 상태에서 문제 \( P_N(x) \)를 풀고, 첫 번째 입력을 반환하는 함수로 작동한다. 이 함수 \( \kappa_N(x) \)가 바로 MPC 제어 법칙(control law)이다.
단, 이 함수는 정의역이 제한되어 있다. 제약을 만족하며 문제의 해가 존재하는 상태 \( x \)들로 구성된 집합
$$
x \in X_N := { x \in \mathbb{R}^n \mid \mathcal{U}_N(x) \ne \emptyset }
$$
해가 유일한 경우 vs 유일하지 않은 경우
- 해가 유일한 경우:
- \( u^0(x) \)는 단일 벡터로 정의됨
- 제어 법칙 \( \kappa_N(x) = u^0(0; x) \)도 일반적인 함수 형태
- 해가 유일하지 않은 경우:
- 최적 입력 시퀀스 \( u^0(x) \)가 여러 개 존재할 수 있음 (즉, argmin이 여러 개)
- 이때 제어 법칙은 집합 값을 갖는 함수 (set-valued function)이 됨:
- $$
\kappa_N(x) := { u^0(0) \mid u^0 \text{ is an optimal solution to } P_N(x) }
$$ - 이 경우 MPC는 그 집합에서 하나의 요소를 선택하여 적용한다. 이 선택은 문제 설계나 구현 방식에 따라 달라질 수 있다.
'제어 > mpc' 카테고리의 다른 글
[MPC책 공부 - 14] 2장 - Linear quadratic MPC예제 (2) | 2025.04.02 |
---|---|
[MPC책 공부 - 12] 2장 - 시스템 연속성, 제약, 비용 함수 (0) | 2025.03.25 |
[MPC책 공부] 2장도입, 표기법 정리 (0) | 2025.03.24 |
[MPC책 공부 - 11] 외란과 보정 Disturbances and Zero offset (0) | 2025.03.23 |
[MPC책 공부 - 10] Tracking (0) | 2025.03.21 |