목적
모델 참조 적응 제어(Model Reference Adaptive Control)에서 $L_1$ 적응 제어로 넘어가는 과정에서 $L_1$ 적응 제어의 적응 법칙에 사용되는 Projection Operator에 대해 이해를 해보고자 참조문헌을 발췌하여 정리합니다.
본 글의 흐름은 [1-2]를 따라 정리됩니다.
목차는 다음과 같다.
1. Properties of Convex Sets and Functions
2. Projection
3. $\Gamma$-Projection
4. $L_1$ 적응 제어 법칙에서의 적용 영역
1. Properties of Convex Sets and Functions[1-2]
Projection Operator의 서술에 앞서 Convex set과 Convex function의 성질에 대해서 기술한다.
정의 1 Convex Set
집합 $E\subset \mathbb{R}^k $는 다음과 같은 조건을 만족할 때 convex하다.
$$\lambda x + ( 1 - \lambda) y \in E$$
$x \in E$ , $y \in E$이고 $0 \leq \lambda \leq 1$이다.
간단한 그림으로 표현하면 다음과 같다. 집합 $E_1$의 임의의 두 원소로 보간하여 $z$를 얻었을 때 집합 $E_1$에 속하지 않기 때문에, 집합 $E_1$은 convex 집합이 아니다.
정의 2 Convex Function
함수 $f:\mathbb{R}^k \rightarrow \mathbb{R}$은 다음과 같은 조건을 만족할 때 convex하다.
$$f(\lambda x + (1-\lambda) y ) \leq \lambda f(x) + (1-\lambda ) f(y)$$
간단한 그림으로 표현하면 convex function은 아래로 볼록한 형상을 가진다.
보조 정리 3
함수 $f:\mathbb{R}^k \rightarrow \mathbb{R}$이 convec 함수라고 하자. 그렇다면 어떤 상수 $\delta >0$에 대해서, 부분 집합 $\Omega_\delta = \{ \theta \in \mathbb{R}^k | f(\theta) \leq \delta \} $ 는 convex하다.
보조 정리 4
함수 $f(\theta) : \mathbb{R}^k \rightarrow \mathbb{R} $ 이 연속하고 미분가능하며, convex 함수 라고 하자. 상수 $\delta >0$를 선택하고 어떤 집합 $\Omega_\delta =\{ \theta \in \mathbb{R}^k | f(\theta) \leq \delta \} \subset \mathbb{R}$ 을 상정하자. $\theta^*$를 집합 $\Omega_\delta$의 interior point라고 하자. $\theta_b$를 경계점으로 선택하여 $f(\theta_b) = \delta$이다. 그렇다면 다음이 성립한다.
$$\left( \theta^* - \theta_b \right) ^T \nabla f(\theta_b) \leq 0 $$
2. Projection
정의 5
두 벡터 $\theta, y \in \mathbb{R}^k$ 에 대한 Projection Operator는 다음과 같이 소개한다.
$$\text{Proj} (\theta, y, f ) = \cases{y - \frac{\nabla f(\theta) \left( \nabla f(\theta) \right)^T }{|| \nabla f(\theta) ||^2 } y f(\theta) \hspace{5mm} \text{if} \hspace{2mm} f(\theta) > 0 \cap y^T \nabla f(\theta) > 0 \\ y \hspace{45mm} \text{otherwise.} }$$
함수 $f: \mathbb{R}^k \rightarrow \mathbb{R}$ 는 convex 함수이며 $\nabla f(\theta) = \nabla_\theta f(\theta)$ 이다. 참고할 점은 convex 함수 $f$의 정확한 구조가 중요하지 않다면, 표기상 $\text{Proj}(\theta, y) = \text{Proj}(\theta, y, f)$는 등가이다.
나의 사족
적응 제어의 적응 법칙이 튜닝하는 적응 변수를 $\theta$라고 한다면 함수 $f$의 공간으로 사상을 시키는 개념이다.
적응 변수가 움직이는 공간에 대해 제약 조건을 정해주지 않는 이상, 자유롭게 적응 변수의 상태 공간을 자유롭게 움직일 것이기 때문이다.
그래서 제약 조건 대신 convex 함수 $f(\theta)$를 이용하여 제약조건과 같은 기능으로 사용하는 것 같다.
$Proj$ 연산자의 기하학적 해석
다음과 같이 두 convex 집합 $\Omega_0$, $\Omega_1$를 정의하자.
$$\Omega_0 \triangleq \{ \theta \in \mathbb{R}^k | f(\theta) \leq 0 \}$$
$$\Omega_1 \triangleq \{ \theta \in \mathbb{R}^k | f(\theta) \leq 1 \}$$
식의 정의로부터 $\Omega_0 \subset \Omega_1$이다. projection 연산자의 정의로부터, $\theta \in \Omega_0$일 때, $\theta$는 수정되지 않는다.
다음과 같이 환형 영역을 나타내는 집합을 정의하자.
$$\Omega_{\mathcal{A}} \triangleq \Omega_1 \backslash \Omega_0 = \{ \theta | 0< f(\theta) \leq 1 \}$$
$\Omega_{\mathcal{A}}$ 내에서는 projection 알고리즘은 고리의 외곽 경계 $\{ \theta | f(\theta) = \lambda \}$에 직교하는 $y$의 성분을 뺀다. $\lambda=0$일 경우, 크기를 줄인 수직 성분은 0이다. $\lambda=1$일 때는 경계 $\Omega_1$에 직교하는 $y$의 구성 요소는 $y$로부터 완전히 제거된다. 이를 시각화하면 다음과 같다.
$f(\theta) =1$이면 $\left( \nabla f(\theta) \right)^T \text{Proj}(\theta, y) =0, \forall \theta$ 이다. $f(\theta)=1$일 때, $y^T \nabla f(\theta)$와 $\text{Proj}(\theta,y)$가 직교하다는 것으로부터 일반화한 알고리즘의 구조는 다음과 같다.
$$\text{Proj}(\theta,y) = y - \nabla f(\theta) \alpha (t) $$
또한 $y$의 직교성분을 제외하기 위해서 다음과 같이 시변 변수 $\alpha(t)$는 다음과 같이 정의할 수 있다.
$$\alpha(t) = \left[ \left(\nabla f(\theta)\right)^T \nabla f(\theta) \right]^{-1} y^T \nabla f(\theta)$$
$$\text{Proj} (\theta,y) = y - \nabla f(\theta) \left[ \left(\nabla f(\theta)\right)^T \nabla f(\theta) \right]^{-1} y^T \nabla f(\theta) \hspace{10mm} f(\theta) = 1 $$
- $y^T \nabla f(\theta)$ 는 $\nabla f(\theta)$방향의 $y$ 성분의 크기를 얻기 위해 내적을 하고 (스칼라)
- $\nabla f(\theta) $ 는 $y$에 대해 $\nabla f(\theta)$ 방향의 벡터로 변환해준다. (벡터)
- 그리고 $\left[ \left(\nabla f(\theta)\right)^T \nabla f(\theta) \right]^{-1}$는 앞서 2개의 식에서 사용한 $\nabla f(\theta)$의 크기로 나누어주는 항이다. (스칼라)
$f(\theta)$를 통해 스케일링을 한다는 점을 적용하면 다음과 같다.
$$\therefore) \text{Proj} (\theta,y) = y - \nabla f(\theta) \left[ \left(\nabla f(\theta)\right)^T \nabla f(\theta) \right]^{-1} \left( \nabla f(\theta) \right)^T y f(\theta) \hspace{10mm} 0 < f(\theta) <= 1 $$
보조 정리 6
projection operator의 중요한 성질은 다음과 같다. $\theta^* \in \Omega_0$에 대해서
$$\left( \theta - \theta ^* \right)^T \left( \text{Proj} (\theta, y,f) -y \right) \leq 0$$
정의 7
projection operator 의 일반형은 $n\times m$ 행렬을 위의 벡터를 이용한 정의로부터 확장된다.
$$\text{Proj} (\Theta, Y, F) = \left[ \text{Proj}(\theta_1 , y_1, f_1 ) , \cdots \text{Proj}(\theta_m , y_m, f_m )\right]$$
$\Theta = [\theta_1 ,\cdots ,\theta_m ] \in \mathbb{R}^{n\times m } $, $y=[y_1, \cdots y_m ]\in \mathbb{R}^{n \times m}$, $F={[f_1 (\theta_1) , \cdots f_m (\theta_m) ]}^T \in \mathbb{R}^{m\times 1}$이다.
보조 정리 8
$$trace \left\{ \left(\hat{\Theta} - \Theta \right)^T \left( \text{Proj} (\hat{\Theta},Y,F) -Y \right) \right\} \leq0$$
보조 정리 9
예를 들어 적응 법칙과 초기 조건을 가지는 적응 제어 알고리즘과 같은 초깃값 문제가 있다면 다음과 같이 정의된다.
1. $\dot{\theta} = \text{Proj}(\theta, y,f)$
2. $\theta(t=0) = \theta_0 \in \Omega_1 = \left\{ \theta \in \mathbb{R}^k | f(\theta) \leq 1 \right\}$
3. $f(\theta) : \mathbb{R}^k \rightarrow \mathbb{R} $이 convex하다.
그렇다면 $0 \leq \forall t$에 대해서 $\theta(t) \in \Omega_1 $ 이다.
Proof
convex function에 시간 미분을 취하면 다음과 같다.
$$\dot{f}(\theta) =\frac{\delta f(\theta)}{\delta \theta} \frac{\delta \theta}{\delta t}=\left(\nabla f(\theta)\right)^T \dot{\theta} = \left(\nabla f(\theta)\right)^T \text{Proj}(\theta,y,f)$$
Projection Operator 는 다음과 같았다.
$$\text{Proj} (\theta, y, f ) = \cases{y - \frac{\nabla f(\theta) \left( \nabla f(\theta) \right)^T }{|| \nabla f(\theta) ||^2 } y f(\theta) \hspace{5mm} \text{if} \hspace{2mm} f(\theta) > 0 \cap y^T \nabla f(\theta) > 0 \\ y \hspace{45mm} \text{otherwise.} }$$
이를 적용해서 열거해보면
$$\dot{f}(\theta) = (\nabla f(\theta))^T \text{Proj}(\theta,y,f)$$
$$=\cases{(\nabla f(\theta))^T y(1-f(\theta)) \hspace{5mm} \text{if}\hspace{2mm} f(\theta) > 0 \cap y^T \nabla f(\theta) > 0 \hspace{10mm} \cdots (1) \\ (\nabla f(\theta))^T y \hspace{25mm} \text{if}\hspace{2mm} f(\theta) \leq 0 \cup y^T \nabla f(\theta) \leq 0 \hspace{10mm} \cdots (2)}$$
$$=\cases{\dot{f}(\theta) >0 \hspace{5mm} \text{if}\hspace{2mm} 0 < f(\theta) <1 \cap y^T \nabla f(\theta) > 0 \hspace{10mm} \cdots (3) \\ \dot{f} (\theta) = 0 \hspace{5mm} \text{if}\hspace{2mm} f(\theta) = 1 \cap y^T \nabla f(\theta) > 0 \hspace{10mm} \cdots (4) \\ \dot{f}(\theta) \leq 0 \hspace{5mm} \text{if} \hspace{2mm} f(\theta) \leq 0 \cup y^T \nabla f(\theta) \leq 0 \hspace{10mm} \cdots (5)}$$
그래서 $f(\theta)$와 $y^T \nabla f(\theta) $에 대해서 표를 만들어 보면 다음과 같다.
$\dot{f}(\theta)$는 어떻게? | $$y^T \nabla f(\theta)>0$$ | $$y^T \nabla f(\theta)\leq0$$ |
$$1<f(\theta)$$ | (1)으로부터 $$\dot{f}(\theta)=(\nabla f(\theta))^T y(1-f(\theta))<0$$ ------ |
(2)으로부터 $$\dot{f}(\theta)=(\nabla f(\theta))^T y \leq0$$ ------ |
$$f(\theta)=1$$ | (1)->(4) 으로부터 $$\dot{f}(\theta)=0$$ ----- |
(2)->(5)으로부터 $$\dot{f}(\theta)=(\nabla f(\theta))^T y \leq0$$ ------ |
$$0<f(\theta)<1$$ | (1)->(3)으로부터 $$\dot{f}(\theta)>0$$ ++++++ |
(2)->(5)으로부터 $$\dot{f}(\theta)\leq0$$ ------ |
$$f(\theta)=0$$ | (2)으로부터 $f(\theta)$와 상관 없이 $$\dot{f}(\theta)>0$$ ++++++ |
(2)으로부터 $f(\theta)$와 상관 없이 $$\dot{f}(\theta)\leq0$$ ------ |
$$f(\theta)<0$$ |
위의 표로부터, $f(\theta_0) \leq1$ 이라면 $\theta(0\leq\forall t) \in \Omega_1$ 임을 알 수 있다. $y^T \nabla f(\theta) $이 어떻던 간에 $f(\theta)=1$인 $\theta$에 도달하면 $\dot{f}(\theta)\leq0$이기 때문에 멈추거나 작아지는 방향으로 이동한다.
유의할 점은 $\theta_0 \in \Omega_0$이라면 $y^T \nabla f(\theta)>0$ 조건에 의해 $f(\theta)=1$인 경계까지 증가하면서 $\theta$가 이동할 순 있다. 그래도 convex 집합 $\Omega_1$에 머무르게 된다.
3. $\Gamma$-Projection
정의 11
Def.7 의 내용을 적응 이득 $\Gamma$을 넣어 정리한 내용이다.
projection 알고리즘의 변형인 $\gamma$-projection은 대칭, 양의 정정 행렬 이득 $\Gamma$에 따라서 매개변수를 갱신한다.
$$\text{Proj}_\Gamma (\theta, y, f ) = \cases{\Gamma y - \Gamma \frac{\nabla f(\theta) \left( \nabla f(\theta) \right)^T }{\left(\nabla f(\theta)\right)^T \Gamma \nabla f(\theta) } \Gamma y f(\theta) \hspace{5mm} \text{if} \hspace{2mm} f(\theta) > 0 \cap y^T \Gamma \nabla f(\theta) > 0 \\ y \hspace{45mm} \text{otherwise.} }$$
정의 12
적응 이득 $\Gamma$를 넣어 보조 정리 6을 수행하는 내용이다.
4. $L_1$ 적응 제어 법칙에서의 적용 영역 [4-5]
적응 제어 법칙 중, MRAC(Model-Reference Adaptive Control)은 기준이 되는 모델의 응답을 추종하도록 제어법칙의 매개변수를 바꾸는 적응 법칙을 가진다. 그러나 MRAC의 적응 법칙이 가지는 문제점은 외란이 존재할 때, 적응 법칙 자체가 추종 오차 벡터와 상태 벡터의 곱으로 표현되기 때문에 추종 오차 벡터와 상태 벡터가 0이지 않는 이상 표류하게 된다는 점이다.
이러한 점을 해결하기 위해 다양한 변형이 존재한다.
- Dead-Zone modification : 일정 이하의 오차이면 끈다 - 채터링이 생기거나 $e_0$ 근처에서 이상하게 움직일 수 있음.
$$\dot{\theta} = \cases{ \Gamma x e^T PB \hspace{10mm} \text{if} ||e|| > e_0 \\ 0 \hspace{10mm} \text{if} || e|| <= e_0}$$
- $\sigma$ modification : 매개변수에 대해 댐핑을 하는 형태 - 매개변수가 0으로 계속 간다.
$$\dot{\theta} = \Gamma \left( xe^T PB - \sigma \theta \right) $$
- e-modulation : 매개변수와 추종 오차로 댐핑하는 형태 -
$$\dot{\theta} = \Gamma \left( xe^T PB - ||e^T PB|| \theta \right) $$
추종 오차가 커지면 댐핑 항을 가지는 Dead-Zone 과 e-modification은 적응이 느려진다. 위와 같은 원치 않은 효과들이 가능한 추종 오차를 줄인다는 제어 목적과는 충돌한다. 앞서 다룬 Projection Operator는 불확실성이 존재함에도 빠르게 적응하며, 동시에 적응 매개변수의 균질 유계함 (Uniform boundedness)을 만들어준다.
$$\dot{\hat{\theta}} = \Gamma \text{Proj} \left( \hat{\theta}, -x \tilde{x} PB \right) ,\hspace{10mm} \tilde{x} = \hat{x} - x$$
$$\dot{\hat{\theta}} = \Gamma \cases{ \left( x \tilde{x}^T PB \right) + \frac{ \nabla f \nabla f^T}{|| \nabla f ||^2} \left( x \tilde{x}^T PB \right) f \hspace{10mm} f > 0 \hspace{3mm} {\text{or}} \hspace{3mm} \left( x \tilde{x}^T PB \right)^T \nabla f < 0 \\ \left( x \tilde{x}^T PB \right) \hspace{10mm} \text{if not}} $$
Reference
1. Lavretsky, E., "Lecture 6 - 11. Adaptive Control in the Presence of Bounded Disturbances," Advanced Topics in Systems and Control : Adaptive Control, Units 2-0-7., May 2010, Available at http://www.cds.caltech.edu/archive/help/cms1312.html?op=wiki&wiki_op=view&id=237
2. Lavretsky, E., Gibson T. E., and Annaswamy, A. M. "Projection Operator in Adaptive Systems," Dec. 2011, Available at https://arxiv.org/pdf/1112.4232
3. Larchev, G. V., Campbell S. F. and Kaneshige, J. T., "Projection Operator : A Step towards Certificiation of Adaptive Controllers," AIAA Infoteh@Aerospace 2010, Apr. 2012, 10.2514/6.2010-3366
4. Lavretsky, E., Adaptive Control, Lecture Note 7, CDS270, 2005.
'G.N.C. > Basic' 카테고리의 다른 글
고장 진단 상황을 고려한 의사 역행렬을 이용한 조종면 재할당 (0) | 2022.02.13 |
---|---|
구동기 한계를 가지는 가중 의사 역행렬 재분배 조종면 할당 (0) | 2022.02.08 |
1차 필터의 연속/이산 시간 영역에서의 변환과 구현 (0) | 2020.12.23 |
대권 항로의 유도 - Great Circle Navigation (0) | 2020.11.18 |
[FRAME3] 좌표계의 회전과 병진 변환 (0) | 2020.05.28 |