일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Turtle
- gjk
- gjk-epa
- roslaunch
- Turtlesim
- convex
- 워크스페이스
- 비동기적
- Service
- separating axis theorem(sat)
- broad-phase
- patch
- Publish
- subsribe
- Gradient
- mock
- remapping
- optimization
- rospy.spin
- narrow-phase
- Python
- namespace
- MPC
- UV
- CONSTRAINTS
- ROS
- Package
- QT
- unittest
- Topic
- Today
- Total
똑바른 날개
[MPC책 공부 - 12] 2장 - 시스템 연속성, 제약, 비용 함수 본문
책에서는 이 장 전체에서 다음과 같은 가정을 한다.
We assume in this chapter that the state \( x \) is known.
해당 말이 의미하는 바는 다음과 같다.
- 제어 입력을 계산할 때, 현재 시스템의 정확한 상태 \( x(k) \)를 완전히 알고 있다고 가정한다.
- 이 가정 하에서는 관측 오차나 센서 노이즈가 없으며, 제어기는 실제 상태를 완전히 관측 가능한 상황이다.
- 이 가정은 MPC의 기본 구조와 안정성 분석을 단순화하기 위한 것으로, 실제 시스템에서는 상태를 estimate해야 하며, 이때는 observer나 filter가 필요하다.
-> 해당 내용은 3장에서 본격적으로 다루지만, simple한 mpc부터 차근차근 공부해보겠다.
Proposition) 시스템 해의 연속성
함수 \( f(x, u) \)가 연속이면, 각 정수 \( k \)에 대해 시스템 해 \( \phi(k, x, u) \)는 \( x \)와 \( u \)에 대해 연속 함수이다.
즉:
$$
\begin{aligned}
f \text{ continuous} \quad \Rightarrow \quad \phi(k, x, u) \text{ continuous}
\end{aligned}
$$
이는 다음과 같은 의미를 가진다:
- 초기 상태 \( x \)나 제어 입력 시퀀스 \( u \)가 아주 조금만 변해도, 상태 \( x(k) \)는 급격하게 튀지 않고 부드럽게 변화한다.
- 실제 제어기 구현에서 필수적인 수치적 안정성과 연속적인 반응을 보장하는 기초이다.
시스템 제약 조건
시스템에는 아래와 같은 형태의 hard constraint이 존재할 수 있다.
$$
\begin{aligned}
(x(k), u(k)) \in Z \quad \text{for all } k \in \mathbb{I}_{\ge 0}
\end{aligned}
$$
여기서 Z는 일반적으로 다음과 같은 다면체(polyhedral) 집합으로 표현된다.
$$
Z = { (x, u) \mid Fx + Eu \le e }
$$
이는 시스템 상태와 입력이 항상 이 영역 Z 안에 있어야 한다는 의미다.
예시: 제어 입력 속도 제한
입력에 대해 다음과 같은 속도 제한(velocity constraint)이 주어질 수 있다:
$$
|u(k) - u(k-1)| \le c
$$
이 제약을 상태 \( z \)를 도입해서 다음과 같이 바꿔 쓸 수 있다:
$$
\begin{aligned}
z^+ &= u \\
z(k) &= u(k-1) \\
|u(k) - z(k)| &\le c
\end{aligned}
$$
즉, 새로운 상태 \( z \)를 통해 속도 제약도 일반적인 상태-입력 제약 \( (x, u) \in Z \) 형태로 표현 가능하다.
상태-입력 제약 의 구성
\( (x, u) \in Z \)는 다음 두 가지 의미를 포함한다.
입력 제약 (state-dependent control constraint)
어떤 상태 \( x \)에서 가능한 입력 \( u \)는 그 상태에 따라 달라진다:
$$
u \in U(x) := { u \in \mathbb{R}^m \mid (x, u) \in Z }
$$
상태에 의존적인 제약이라 해서, state-dependent control constraints라고 한다.
상태 제약
어떤 상태 \( x \)가 유효한 상태인지 여부는, 그 상태에서 사용할 수 있는 입력이 존재하는지로 결정된다.
$$
x \in X := { x \in \mathbb{R}^n \mid U(x) \ne \emptyset }
$$
비용 함수 정의
비용 함수는 다음과 같이 구성된다:
$$
\begin{aligned}
V_N(x, u) := \sum_{k=0}^{N-1} \ell(x(k), u(k)) + V_f(x(N))
\end{aligned}
$$
현재 상태가 \( x \)이고, 현재 시간이 \( i \)라면, 최적제어 문제는 시간 \( i \)에서 시간 \( N+1 \)까지의 구간에 대해 비용을 최소화하는 문제이다.
- \( \ell(x, u) \): stage cost (단계별 비용)
- \( V_f(x(N)) \): terminal cost (종료 상태 비용)
추가 notation
- optimal control sequence:
$$
\begin{aligned}
\mathbf{u}^0(x, i) = \left( u^0(i; (x, i)),\ u^0(i+1; (x, i)),\ \dots,\ u^0(i+N-1; (x, i)) \right)
\end{aligned}
$$
- state sequence:
$$
\begin{aligned}
\mathbf{x}^0(x, i) = \left( x^0(i; (x, i)),\ x^0(i+1; (x, i)),\ \dots,\ x^0(i+N; (x, i)) \right)
\end{aligned}
$$
- 초기 상태 조건 : \( x^0(i; (x, i)) = x \)
MPC에서는 위의 최적 입력 시퀀스 중 첫 번째 입력만을 실제 시스템에 적용한다
$$
u^0(i) = u^0(i; (x, i))
$$
Time Invariant
- 시스템, 비용 함수 \( \ell(x, u) \), 종료 비용 \( V_f(x) \) 모두 시간에 무관하므로, 어떤 시간 \( i \)에서 시작하든, 문제는 항상 \( P_N(x, 0) \)과 동일하다.
즉, 다음이 성립한다.
$$
\begin{aligned}
\mathbf{u}^0(x, i) &= \mathbf{u}^0(x, 0) \\
\mathbf{x}^0(x, i) &= \mathbf{x}^0(x, 0)
\end{aligned}
$$
'제어 > mpc' 카테고리의 다른 글
[MPC책 공부 - 14] 2장 - Linear quadratic MPC예제 (2) | 2025.04.02 |
---|---|
[MPC책 공부 - 13] 2장 - 최적 제어의 해는 언제 존재하는가? (0) | 2025.04.01 |
[MPC책 공부] 2장도입, 표기법 정리 (0) | 2025.03.24 |
[MPC책 공부 - 11] 외란과 보정 Disturbances and Zero offset (0) | 2025.03.23 |
[MPC책 공부 - 10] Tracking (0) | 2025.03.21 |