# 비센서 제어 방법

#### 개요

비센서 제어 방법은 센서를 사용하지 않고 시스템의 상태를 추정하거나 제어하는 방법을 말한다. 센서가 없거나 고장난 상황에서도 시스템을 안정적으로 제어할 수 있도록 하기 위해 사용된다.

#### 상태 추정기(State Observer)

상태 추정기는 시스템의 현재 상태를 추정하기 위해 사용된다. 관찰 가능한 시스템에서는 상태 추정기를 사용하여 시스템의 상태를 정확하게 추정할 수 있다.

* **루엔버거 관측기 (Luenberger Observer)**: 루엔버거 관측기는 선형 시스템의 상태를 추정하기 위해 주로 사용된다. 시스템이 완전히 상태관측 가능하다면, 이 관측기를 통해 시스템의 상태를 추정할 수 있다.

  시스템이 다음과 같이 주어진다고 가정하겠다:

$$
\dot{\mathbf{x}}(t) = \mathbf{A}\mathbf{x}(t) + \mathbf{B}\mathbf{u}(t)
$$

$$
\mathbf{y}(t) = \mathbf{C}\mathbf{x}(t)
$$

```
루엔버거 관측기의 상태 추정 식은 다음과 같다:
```

$$
\dot{\hat{\mathbf{x}}}(t) = \mathbf{A}\hat{\mathbf{x}}(t) + \mathbf{B}\mathbf{u}(t) + \mathbf{L}(\mathbf{y}(t) - \mathbf{C}\hat{\mathbf{x}}(t))
$$

```
여기서, $\hat{\mathbf{x}}(t)$는 상태의 추정값이며, $\mathbf{L}$은 관측기 이득 행렬이다. 이 이득 행렬 $\mathbf{L}$은 시스템의 관측 가능성을 보장하기 위해 설계된다.
```

#### 루엔버거 관측기의 설계

관측기 이득 행렬 $\mathbf{L}$을 설계하기 위해, 관측기 폴을 시스템이 원하는 위치에 배치해야 한다. 이를 위해, $\mathbf{A} - \mathbf{LC}$의 고유값을 적절히 배치한다.

#### 칼만 필터 (Kalman Filter)

칼만 필터는 잡음이 있는 환경에서 선형 시스템의 상태를 추정하는 데 사용되는 알고리즘이다. 이 필터는 상태의 추정치와 오차 공분산 행렬을 업데이트한다.

시스템이 다음과 같은 상태 공간 모델로 주어진다고 가정한다:

$$
\mathbf{x}\_{k+1} = \mathbf{A}\mathbf{x}\_k + \mathbf{B}\mathbf{u}\_k + \mathbf{w}\_k
$$

$$
\mathbf{y}\_k = \mathbf{C}\mathbf{x}\_k + \mathbf{v}\_k
$$

여기서, $\mathbf{w}\_k$와 $\mathbf{v}\_k$는 각각 시스템 노이즈과 측정 잡음이다. 이들은 보통 가우시안 잡음으로 가정한다.

칼만 필터의 업데이트는 다음 두 단계로 이루어진다:

1. **예측 단계 (Prediction Step)**:

$$
\hat{\mathbf{x}}*{k|k-1} = \mathbf{A}\hat{\mathbf{x}}*{k-1|k-1} + \mathbf{B}\mathbf{u}\_k
$$

$$
\mathbf{P}*{k|k-1} = \mathbf{A}\mathbf{P}*{k-1|k-1}\mathbf{A}^T + \mathbf{Q}
$$

```
여기서, $\mathbf{P}$는 오차 공분산 행렬이며, $\mathbf{Q}$는 시스템 노이즈의 공분산이다.
```

2\. **업데이트 단계 (Update Step)**:

$$
\mathbf{K}*k = \mathbf{P}*{k|k-1}\mathbf{C}^T (\mathbf{C}\mathbf{P}\_{k|k-1}\mathbf{C}^T + \mathbf{R})^{-1}
$$

$$
\hat{\mathbf{x}}*{k|k} = \hat{\mathbf{x}}*{k|k-1} + \mathbf{K}\_k (\mathbf{y}*k - \mathbf{C}\hat{\mathbf{x}}*{k|k-1})
$$

$$
\mathbf{P}\_{k|k} = (\mathbf{I} - \mathbf{K}*k \mathbf{C})\mathbf{P}*{k|k-1}
$$

```
여기서, $\mathbf{K}_k$는 칼만 이득이며, $\mathbf{R}$은 측정 잡음의 공분산이다.
```

#### 비센서 제어를 위한 모델 기반 접근법

모델 기반 접근법은 시스템의 동적 모델을 이용하여 상태를 추정하고 제어하는 방법이다. 시스템의 모델이 정확하다면, 센서 없이도 시스템의 상태를 추정할 수 있다.

* **모델 예측 제어 (Model Predictive Control, MPC)**: MPC는 시스템의 모델을 이용하여 미래의 제어 입력을 예측하고 최적화하는 제어 방법이다. 시스템의 현재 상태를 추정하여 미래의 입력을 계산한다.
  * **비센서 MPC**: 비센서 MPC에서는 시스템의 상태를 추정하기 위해 모델을 사용한다. 모델을 이용하여 미래의 상태와 출력을 예측하고, 이를 기반으로 최적의 제어 입력을 계산한다.

#### 비센서 적응 제어

적응 제어는 시스템의 모델 파라미터가 불확실한 경우에 유용한 제어 방법이다. 시스템의 동적 모델을 이용하여 제어기를 적응적으로 조정한다.

* **MRAC (Model Reference Adaptive Control)**: MRAC는 참조 모델을 따라가기 위해 제어기를 적응적으로 조정하는 방법이다. 시스템의 모델 파라미터를 추정하고, 이를 이용하여 제어기를 조정한다.

  MRAC의 일반적인 구조는 다음과 같다:

$$
\dot{\mathbf{x}}\_m = \mathbf{A}\_m\mathbf{x}\_m + \mathbf{B}\_m\mathbf{r}
$$

$$
\mathbf{u} = -\mathbf{K}\_x\mathbf{x} + \mathbf{K}\_r\mathbf{r}
$$

```
여기서, $\mathbf{x}_m$은 참조 모델의 상태이며, $\mathbf{K}_x$와 $\mathbf{K}_r$은 적응적으로 조정되는 제어기 이득이다.
```

#### 비센서 학습 제어

학습 제어는 반복적인 작업에서 시스템의 성능을 개선하기 위해 학습 알고리즘을 사용하는 방법이다. 비센서 학습 제어는 센서 없이도 시스템의 성능을 학습하고 개선하는 방법이다.

* **강화 학습 (Reinforcement Learning, RL)**: 강화 학습은 에이전트가 환경과 상호작용하며 보상을 통해 최적의 행동을 학습하는 방법이다. 센서 없이 상태를 추정하는 경우, 강화 학습 알고리즘을 통해 최적의 제어 정책을 학습할 수 있다.
  * **모델 자유 강화 학습 (Model-Free RL)**: 모델 자유 강화 학습은 시스템의 동적 모델 없이 환경과의 상호작용을 통해 최적의 제어 정책을 학습한다. 센서 없이도 시스템의 상태를 추정하고 제어할 수 있다.
  * **모델 기반 강화 학습 (Model-Based RL)**: 모델 기반 강화 학습은 시스템의 동적 모델을 사용하여 시뮬레이션 환경에서 최적의 제어 정책을 학습한다. 모델을 이용하여 상태를 추정하고 제어할 수 있다.

#### 비센서 제어의 응용

비센서 제어는 다양한 분야에서 응용될 수 있다. 아래는 몇 가지 예시이다.

* **로봇 제어**: 로봇 시스템에서 센서가 고장난 경우, 비센서 제어 방법을 사용하여 로봇의 상태를 추정하고 제어할 수 있다. 예를 들어, 비센서 학습 제어를 통해 로봇의 경로 추적 성능을 개선할 수 있다.
* **자율 주행 차량**: 자율 주행 차량에서 센서가 고장난 경우, 비센서 제어 방법을 사용하여 차량의 상태를 추정하고 제어할 수 있다. 모델 기반 예측 제어를 사용하여 차량의 경로를 예측하고 제어할 수 있다.
* **항공기 제어**: 항공기에서 센서 고장 시, 비센서 제어 방법을 사용하여 항공기의 상태를 추정하고 제어할 수 있다. 칼만 필터를 사용하여 항공기의 상태를 추정하고, 적응 제어를 통해 제어 성능을 유지할 수 있다.

***

비센서 제어 방법은 센서 없이도 시스템의 상태를 추정하고 제어할 수 있는 유용한 기술이다. 상태 추정기, 칼만 필터, 모델 기반 예측 제어, 강화 학습 등의 다양한 기법을 사용하여 비센서 제어를 구현할 수 있다. 이 방법들은 로봇, 자율 주행 차량, 항공기 등 다양한 분야에서 응용될 수 있으며, 센서 고장 시에도 안정적인 제어를 보장할 수 있다.
