{{위키데이터 속성 추적}}

다음은 '''와바의 문제'''에 관한 내용이다.

==정적 자세 결정==
정적인 자세 결정은 고정된 시간에서 알고 있는 특정 물체의 방향을 측정하는 별센서와 같은 광학센서등을 이용하여 현재 우주비행체의 자세를 결정하는 방법이다. 즉,

<math> A{\bf r}_R^i = {\bf r}_B^i</math>, <math>i=1, 2, \ldots, n</math>,

여기에서 <math>A</math>는 현재 우주비행체의 자세를 기준좌표계에 대하여 나타내는 방향코사인행렬이고, <math>{\bf r}_R^i</math>는 알고 있는 별의 방향을 가르키는 벡터로 기준좌표계에서 표현되어 있고, <math>{\bf r}_B^i</math>는 별센서에서 측정된 해당 별의 방향벡터로 우주비행체의 몸체좌표계로 표현되어있고, <math>n</math> 은 현재 고정된 시간에서 관측된 별 방향 벡터의 갯수이다. 이렇게 주어진 <math>{\bf r}_R^i</math> 와 <math>{\bf r}_B^i</math> 로 <math>A</math>를 결정하는 것이 정적 자세 결정 문제이다.

===와바의 문제===
정적 자세 결정 문제는 다음과 같이 <math>L(A)</math>의 값이 최소가 되게하는 자세, 즉 방향코사인행렬 <math>A</math>를 찾는 문제로 표현될 수 있다.

<math>L(A) = \frac{1}{2} \sum_{i=1}^n a_i \|A{\bf r}_R^i - {\bf r}_B^i \|^2</math>

여기서 <math>a_i</math>는 각 측정 벡터의 잡음의 세기에 반비례하도록 가중치를 주는데 사용되는 상수이다. 이 최적화 문제는 와바(Wahba)가 처음으로 제시하였으며 ''와바의 문제''라고 불린다.<ref name="wahba's problem">{{인용|author=Wahba, G.|title=A Least Squares Estimate of Satellite Attitude|journal=SIAM Review|volume=7|issue=3|pages=409|year=1965|doi=10.1137/1007077}}</ref>

==퀘스트 (QUEST: Quaternion Estimation) 알고리즘==
퀘스트는 슈스터 (Shuster)와<ref>http://www.malcolmdshuster.com/</ref><ref>http://www.acsu.buffalo.edu/~johnc/shusym/</ref>오 (Oh)가 만든 방법이며<ref name="QUEST">{{인용|author=Shuster, M.D. and Oh, S.D.|title=Three-axis attitude determination from vector observations|journal=Journal of Guidance and Control|volume=4|issue=1|pages=70-77|year=1981|doi=10.2514/3.19717}}</ref> [[쿼터니언]] (Quaternion) 추정 (Quaternion Estimation)의 줄임말이다. 퀘스트 알고리즘은 와바의 자세 최적화 결정 문제를 매우 효율적인 방법으로 푼다. 이 알고리즘은 아래와 같이 요약된다.

우선 <math>B</math>를 <math>{\bf r}_B^i</math> 와 <math>{\bf r}_R^i</math>를 이용하여 아래와 같이 구성한다.

<math>B = \sum_{i=1}^k a_i {\bf r}_B^i \left( {\bf r}_R^i \right)^T</math>

여기서 <math>a_i</math>는 흔히 해당 측정잡음 분산의 역수가 사용된다.

아래식을 이용하여 <math>S, \sigma, \delta, \kappa</math>를 계산한다.

<math>S = B + B^T,</math>
<math>\sigma = \text{trace}(B),</math>
<math>\delta = \text{det}(S),</math>
<math>\kappa = \text{trace}\left[\text{adj}(S)\right]</math>

여기서 det(<math>\cdot)</math>는 행렬식이고 adj(<math>\cdot</math>)는 수반(adjugate) 행렬([[고전적_수반_행렬]])이고, 이는 다음과 같이 주어진다.

<math>\kappa = (s_{22} s_{33} - s_{23}^2) + (s_{11} s_{33} - s_{13}^2) + (s_{11} s_{22} - s_{12}^2)</math>

여기서 <math>s_{ij}</math>는 <math>S</math>의 i번째 행 j번째 열의 값이다.

<math>{\bf z}</math>를 다음과 같이 구성한다.

<math>{\bf z} = \sum_{i=1}^k a_i {\bf r}_B^i \times {\bf r}_R^i</math>

와바의 문제는 다음과 같은 <math>4\times 4</math> 행렬 <math>K</math>에 대해

<math>K = \begin{bmatrix} S - \sigma I_3 &  {\bf z}\\ {\bf z}^T & \sigma \end{bmatrix}</math>

고유치 문제를 아래와 같이 푸는데, 여기서 최대 고유치를 찾는 문제로 바뀐다.

<math>K {\bf q}= \lambda {\bf q}</math>

이 고유치 문제는 아래 4차다항식 방정식을 만족하는 최대크기의 <math>\lambda</math>를 계산하는 문제로 바뀐다. 즉,

<math>f(\lambda) = \lambda^4 - (a+b) \lambda^2 - c \lambda + (ab+c\sigma-d) = 0</math>

여기서 계수를 아래와 같이 계산한다.

<math>a = \sigma^2 - \kappa, b =\sigma^2 + {\bf z}^T{\bf z}, c = \delta  + {\bf z}^T S {\bf z}, d = {\bf z}^T S^2 {\bf z}</math>

이 다항식을 0 이 되게하는 가장 큰 <math>\lambda^*</math>를 구하는데는 흔히 Newton-Raphson 방법이 ([[뉴턴_방법]]) 쓰인다.  Newton-Raphson 방법을 사용할 때 초기 <math>\lambda^*</math>의 값은 보통 1에서 출발한다. 그 이유는 최대 <math>\lambda^*</math>이 1 근처에 있는 것으로 알려져있기 때문이다.

<math>\lambda^*</math>를 계산했으면, 다음단계는 아래와 같다.

<math> {\bf y}^* = \left[ (\sigma + \lambda^*) I_3  - S\right]^{-1}{\bf z}</math>

그러면 최적의 쿼터니언 (<math>q^*</math>)은 다음과 같이 계산된다.

<math>q^* = \dfrac{1}{\sqrt{1+\|{\bf y}^*\|^2}} \begin{bmatrix} {\bf y}^*\\ 1\end{bmatrix}</math>

== 각주 ==
{{각주}}

[[분류:항공우주공학]]
[[분류:로봇공학]]
[[분류:역학]]
[[분류:제어공학]]