# 안정성 제어를 위한 센서 활용

수소 전지 시스템의 안정성 제어를 위해서는 다양한 센서가 필요하다. 센서를 통해 얻은 데이터는 시스템의 동작을 실시간으로 모니터링하고, 안정성을 보장하기 위한 제어 알고리즘에 필수적인 피드백을 제공한다. 이 절에서는 시스템 안정성 제어에서 센서의 활용과 그 역할을 설명한다.

#### 1. 센서 데이터의 실시간 수집

시스템의 안정성을 보장하기 위해서는 다양한 물리량을 측정할 수 있는 센서들이 필요하다. 전형적으로 사용되는 센서들은 다음과 같다.

* **온도 센서**: 수소 전지의 작동 온도를 모니터링한다. 온도 변화는 전지 성능에 영향을 미치므로, 과열 방지를 위한 제어가 필요하다.
* **압력 센서**: 수소와 산소의 압력을 실시간으로 모니터링하여 적절한 반응이 이루어지도록 제어한다.
* **전류 및 전압 센서**: 수소 전지의 전력 출력을 모니터링한다. 이를 통해 과도한 전류나 전압으로 인한 손상을 방지할 수 있다.

#### 2. 센서 데이터의 수학적 모델링

센서로부터 수집된 데이터를 이용하여 시스템의 상태를 추정하고 제어에 반영하는 과정은 수학적으로 표현될 수 있다. 예를 들어, 센서 데이터를 상태 공간 모델로 변환하여 제어 목적에 맞게 활용한다.

**상태 공간 모델**

시스템의 상태를 $\mathbf{x}(t)$로 정의하고, 센서로부터 측정된 입력을 $\mathbf{u}(t)$로 정의한다. 상태 공간 모델은 다음과 같이 표현된다.

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

여기서, $\mathbf{A}$는 시스템 행렬, $\mathbf{B}$는 입력 행렬이다. 또한 센서 데이터로 측정된 출력은 다음과 같이 표현된다.

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

여기서, $\mathbf{C}$는 출력 행렬, $\mathbf{D}$는 전달 행렬이다.

이 모델을 통해, 센서로부터 얻은 데이터를 바탕으로 시스템의 현재 상태를 추정하고 제어 입력을 계산하는 것이 가능한다.

#### 3. 필터링 및 노이즈 처리

센서 데이터는 종종 노이즈가 포함되어 있다. 따라서 안정성 제어를 위해서는 노이즈를 제거하고 신뢰할 수 있는 데이터를 얻기 위한 필터링이 필요하다. 이를 위해 일반적으로 칼만 필터(Kalman Filter)가 사용된다.

**칼만 필터의 적용**

칼만 필터는 센서 데이터의 노이즈를 최소화하고, 정확한 상태 추정을 가능하게 한다. 센서에서 측정된 데이터를 $\mathbf{z}\_k$라 할 때, 시스템의 상태 추정은 다음과 같이 이루어진다.

1. **예측 단계**:

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

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

2. **업데이트 단계**:

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

$$
\hat{\mathbf{x}}*{k|k} = \hat{\mathbf{x}}*{k|k-1} + \mathbf{K}\_k (\mathbf{z}*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{P}$는 오차 공분산 행렬, $\mathbf{K}$는 칼만 이득, $\mathbf{Q}$는 시스템 노이즈, $\mathbf{R}$는 측정 노이즈를 나타낸다.

#### 4. 센서 융합을 통한 안정성 향상

각 센서는 다양한 데이터를 제공하지만, 하나의 센서만으로 시스템 전체 상태를 완벽히 추정할 수는 없다. 따라서 여러 센서 데이터를 융합하여 보다 정확한 상태 추정과 안정성 제어를 달성할 수 있다. 이를 위해 흔히 사용되는 방법 중 하나는 \*\*확장 칼만 필터(Extended Kalman Filter, EKF)\*\*이다.

**확장 칼만 필터(EKF)의 수학적 표현**

비선형 시스템의 경우, 시스템 모델과 센서 모델이 비선형일 수 있다. 이때는 선형화 과정을 통해 칼만 필터를 확장하여 사용할 수 있다. 일반적으로 상태 방정식과 측정 방정식은 다음과 같은 형태로 주어진다.

$$
\mathbf{x}\_{k+1} = f(\mathbf{x}\_k, \mathbf{u}\_k) + \mathbf{w}\_k
$$

$$
\mathbf{z}\_k = h(\mathbf{x}\_k) + \mathbf{v}\_k
$$

여기서 $f$는 상태 방정식, $h$는 측정 방정식, $\mathbf{w}\_k$는 시스템 노이즈, $\mathbf{v}\_k$는 측정 노이즈이다.

1. **예측 단계**:

$$
\hat{\mathbf{x}}*{k|k-1} = f(\hat{\mathbf{x}}*{k-1}, \mathbf{u}\_{k-1})
$$

$$
\mathbf{P}*{k|k-1} = \mathbf{F}*{k-1} \mathbf{P}*{k-1|k-1} \mathbf{F}*{k-1}^\top + \mathbf{Q}\_{k-1}
$$

여기서 $\mathbf{F}\_{k-1}$는 상태 방정식을 $\mathbf{x}\_k$에 대해 테일러 급수로 1차 선형화한 자코비 행렬이다.

$$
\mathbf{F}*{k-1} = \frac{\partial f}{\partial \mathbf{x}}\bigg|*{\hat{\mathbf{x}}*{k-1}, \mathbf{u}*{k-1}}
$$

2. **업데이트 단계**:

$$
\mathbf{K}*k = \mathbf{P}*{k|k-1} \mathbf{H}\_k^\top (\mathbf{H}*k \mathbf{P}*{k|k-1} \mathbf{H}\_k^\top + \mathbf{R}\_k)^{-1}
$$

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

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

여기서 $\mathbf{H}\_k$는 측정 방정식을 $\mathbf{x}\_k$에 대해 선형화한 자코비 행렬이다.

$$
\mathbf{H}*k = \frac{\partial h}{\partial \mathbf{x}}\bigg|*{\hat{\mathbf{x}}\_{k|k-1}}
$$

이와 같은 EKF 방법을 통해 여러 센서 데이터를 융합하여 비선형 시스템의 상태를 보다 정확하게 추정할 수 있다.

#### 5. 센서 융합을 위한 신뢰성 평가

센서 융합 과정에서 중요한 요소 중 하나는 각 센서 데이터의 신뢰성을 평가하는 것이다. 각 센서는 다양한 환경적 요인에 의해 오차가 발생할 수 있으므로, 제어 시스템에서 이들 오차를 적절히 고려해야 한다.

**신뢰성 가중치 적용**

센서 데이터의 신뢰성은 측정 노이즈 공분산 $\mathbf{R}\_k$에 반영된다. 만약 특정 센서의 신뢰성이 떨어진다면, 해당 센서의 노이즈 공분산을 증가시켜 시스템이 그 센서의 데이터를 덜 신뢰하도록 만들 수 있다. 이를 통해 시스템의 안정성을 향상시킬 수 있다. 각 센서 데이터의 신뢰성 가중치는 다음과 같이 조정된다.

$$
\mathbf{R}\_k = \alpha\_k \mathbf{R}\_k
$$

여기서 $\alpha\_k$는 센서의 신뢰성을 나타내는 가중치로, 0에서 1 사이의 값을 갖는다. 신뢰성이 높은 센서일수록 $\alpha\_k$ 값이 작아지며, 신뢰성이 낮은 센서일수록 $\alpha\_k$ 값이 커진다.

#### 6. 센서 고장 진단 및 관리

안정성 제어 시스템에서 센서 고장을 조기에 진단하고 대응하는 것은 매우 중요하다. 고장 진단을 통해 시스템이 잘못된 센서 데이터를 받아들이지 않도록 하며, 대체 데이터를 활용할 수 있는 메커니즘이 필요하다.

**고장 진단의 수학적 모델링**

센서 고장을 감지하기 위한 방법 중 하나는 \*\*잔차(residual)\*\*를 이용하는 방식이다. 잔차는 센서 데이터와 시스템 모델 간의 차이를 측정하여, 이 값이 일정 임계값을 초과하면 센서에 문제가 있음을 추정한다. 잔차는 다음과 같이 정의된다.

$$
\mathbf{r}\_k = \mathbf{z}*k - h(\hat{\mathbf{x}}*{k|k-1})
$$

여기서 $\mathbf{z}*k$는 실제 센서로부터 측정된 값이고, $h(\hat{\mathbf{x}}*{k|k-1})$는 상태 추정값으로부터 계산된 측정값이다.

고장이 발생할 경우, 잔차의 크기는 비정상적으로 증가하며, 이를 통해 고장을 감지할 수 있다. 잔차 기반 고장 진단 방법은 다음과 같은 단계를 거친다.

1. **잔차 계산**: 센서 데이터와 추정된 데이터의 차이를 계산하여 잔차 $\mathbf{r}\_k$를 구한다.
2. **임계값 설정**: 잔차의 크기가 일정 임계값 $\epsilon$을 초과하면 센서 고장을 의심한다.

$$
|\mathbf{r}\_k| > \epsilon
$$

3. **고장 판단**: 잔차가 임계값을 지속적으로 초과하면 해당 센서의 고장을 판단하고, 그 센서의 데이터를 사용하지 않도록 한다.

**대체 센서 데이터 활용**

센서 고장이 발생하면, 고장 진단 시스템은 해당 센서의 데이터를 제외하고 나머지 센서 데이터를 이용해 상태 추정을 계속 진행한다. 이를 위해 대체 센서 데이터를 이용하는 방법을 적용할 수 있다. 예를 들어, 온도 센서가 고장난 경우, 그 데이터를 다른 관련된 센서(예: 압력 센서)로부터 보완할 수 있다.

이때 시스템 상태를 유지하기 위해서는 다른 센서의 데이터를 기반으로 한 보정 방법이 필요하며, 이를 위해 **중복 센서 시스템**을 도입할 수 있다. 중복 센서 시스템에서는 동일한 물리량을 측정하는 여러 센서를 설치하여, 특정 센서가 고장났을 때에도 다른 센서로부터 데이터를 받아 안정성을 유지한다.

#### 7. 센서 데이터 융합을 위한 상태 관찰자 설계

안정성 제어에서 핵심적인 요소는 시스템 상태를 정확히 추정하는 것이다. 센서 데이터는 직접적인 상태를 측정하지 못할 때가 많으며, 상태 추정은 필수적이다. 이를 위해 \*\*상태 관찰자(state observer)\*\*가 설계된다.

**상태 관찰자의 개념**

상태 관찰자는 센서로부터 측정된 데이터를 바탕으로 시스템의 내부 상태를 추정하는 알고리즘이다. 상태 관찰자는 다음과 같은 상태 공간 모델을 기반으로 한다.

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

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

여기서 $\mathbf{x}(t)$는 상태 벡터, $\mathbf{u}(t)$는 입력, $\mathbf{y}(t)$는 출력이다.

상태 관찰자는 다음과 같은 형식으로 설계된다.

$$
\hat{\mathbf{\dot{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}$은 관찰자 이득(observer gain)이다. 관찰자 이득은 시스템의 안정성과 수렴성을 보장하기 위해 설계된다. 관찰자의 역할은 출력 데이터 $\mathbf{y}(t)$와 모델 기반 추정값 $\hat{\mathbf{y}}(t) = \mathbf{C}\hat{\mathbf{x}}(t)$ 간의 차이를 이용하여 시스템 상태를 보정하는 것이다.

#### 8. 센서 데이터 융합의 비선형성 고려

수소 전지 시스템은 다양한 비선형성을 포함하고 있다. 따라서 센서 데이터를 융합할 때 비선형 시스템 특성을 고려해야 한다. 앞서 설명한 확장 칼만 필터(EKF)는 이와 같은 비선형성을 다루기 위한 방법 중 하나이다. 그러나 비선형성이 심한 경우에는 \*\*입자 필터(Particle Filter)\*\*와 같은 고차원 비선형 필터링 기법을 적용할 수 있다.

**입자 필터의 개념**

입자 필터는 확률론적 필터링 기법으로, 상태 공간을 여러 개의 입자(particle)로 분해하여 상태를 추정한다. 각 입자는 시스템의 상태에 대한 가설을 나타내며, 센서 데이터와의 일치도를 기반으로 가중치가 부여된다.

입자 필터의 기본적인 단계는 다음과 같다.

1. **입자 초기화**: 초기 상태에 대한 분포를 기반으로 여러 입자를 생성한다.
2. **입자 예측**: 각 입자의 상태를 시스템 모델을 기반으로 예측한다.
3. **입자 업데이트**: 센서 데이터를 이용하여 각 입자의 가중치를 업데이트한다.
4. **입자 재샘플링**: 가중치가 낮은 입자를 제거하고, 가중치가 높은 입자들을 복제하여 재샘플링한다.

입자 필터는 복잡한 비선형 시스템에서 높은 정확도를 보장하는 장점이 있으나, 계산 비용이 많이 들기 때문에 실시간 시스템에서는 제한적으로 사용될 수 있다.
