비선형 시스템의 개요

제어 시스템에서 다루는 시스템들은 크게 두 가지로 나뉜다: 선형 시스템과 비선형 시스템. 일반적으로 선형 시스템은 해석과 설계가 용이하지만, 많은 실제 시스템은 비선형적 성질을 갖고 있다. 비선형 시스템은 입력과 출력의 관계가 선형이 아닌 시스템을 의미하며, 이는 다음과 같은 수식으로 나타낼 수 있다:

\mathbf{f}(\mathbf{x}(t), \mathbf{u}(t), t)

여기서: - \mathbf{x}(t)는 상태 벡터 - \mathbf{u}(t)는 입력 벡터 - \mathbf{f}는 비선형 함수를 나타냄

비선형 시스템은 선형 시스템과 달리 중첩 원리(superposition principle)가 적용되지 않으며, 이는 해석적 접근을 어렵게 만든다.

비선형 시스템의 특성

비선형 시스템은 다양한 복잡한 동작을 보인다. 대표적인 비선형 특성으로는 다음과 같은 것들이 있다.

비선형 시스템의 수학적 모델링

비선형 시스템을 모델링하기 위해서는 비선형 방정식을 사용해야 한다. 가장 일반적인 비선형 시스템의 상태 방정식은 다음과 같다:

\dot{\mathbf{x}}(t) = \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t))

여기서: - \mathbf{x}(t)는 상태 벡터 - \mathbf{u}(t)는 제어 입력 벡터 - \mathbf{f}는 비선형 상태 방정식

이 상태 방정식에서 \mathbf{f}는 선형적이지 않은 함수로, 시스템의 비선형성을 정의한다. 이러한 비선형 방정식은 해석적으로 풀기 어려울 수 있으며, 주로 수치적 해법이 사용된다.

비선형 시스템의 예시

비선형 시스템의 대표적인 예로는 펜들럼 시스템을 들 수 있다. 일반적인 단순 펜들럼은 선형 근사로 해석이 가능하지만, 큰 각도에서의 움직임은 명백한 비선형성을 띠게 된다. 펜들럼의 운동 방정식은 다음과 같이 주어진다:

\ddot{\theta}(t) + \frac{g}{l} \sin \theta(t) = 0

여기서: - \theta(t)는 펜들럼의 각도 - g는 중력 가속도 - l은 펜들럼의 길이

이 방정식에서 \sin \theta(t) 항이 비선형성을 도입하며, 이는 작은 각도에서 \sin \theta(t) \approx \theta(t)로 근사하여 선형화할 수 있지만, 큰 각도에서는 이러한 근사가 불가능하다.

비선형 시스템의 안정성

비선형 시스템의 분석에서 중요한 요소 중 하나는 안정성이다. 선형 시스템의 경우 안정성 분석은 주로 특성 방정식의 고유값을 통해 이루어지지만, 비선형 시스템에서는 리아프노프 안정성 기준(Lyapunov stability criterion)과 같은 비선형 고유의 방법을 사용해야 한다.

비선형 시스템의 안정성은 다음과 같은 상태 방정식을 통해 분석할 수 있다:

\dot{\mathbf{x}}(t) = \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t))

여기서 \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t))는 비선형 상태 방정식을 나타내며, \mathbf{x}(t) = 0이 평형점(equilibrium point)이라고 가정한다.

리아프노프 함수

비선형 시스템에서 안정성을 분석하는 주요 도구는 리아프노프 함수(Lyapunov function)이다. 리아프노프 함수 V(\mathbf{x})는 시스템의 상태 \mathbf{x}에 대한 에너지 함수를 나타내며, 이 함수는 다음과 같은 조건을 만족해야 한다:

  1. V(\mathbf{x}) > 0 (모든 \mathbf{x} \neq 0에 대해 양수)
  2. V(\mathbf{x}) = 0 (평형점에서 \mathbf{x} = 0)
  3. \dot{V}(\mathbf{x}) < 0 (시간에 따라 함수가 감소)

이를 통해 시스템이 안정한지, 불안정한지를 판단할 수 있다.

안정성 분석의 예시

간단한 비선형 시스템의 예를 들어, 리아프노프 함수로 안정성을 분석해 보자. 다음과 같은 비선형 시스템이 있다고 가정한다:

\dot{x}_1 = x_2
\dot{x}_2 = -x_1 - x_1^3

이 시스템의 평형점은 (0, 0)이며, 다음과 같은 리아프노프 함수를 고려할 수 있다:

V(\mathbf{x}) = \frac{1}{2} x_1^2 + \frac{1}{2} x_2^2

여기서: - x_1x_2는 상태 변수

이 함수에 대해 시간에 따른 미분을 계산하면:

\dot{V}(\mathbf{x}) = x_1 \dot{x}_1 + x_2 \dot{x}_2 = x_1 x_2 + x_2(-x_1 - x_1^3)

이를 정리하면:

\dot{V}(\mathbf{x}) = -x_1^2 - x_1^4

따라서 \dot{V}(\mathbf{x})는 항상 음수이므로, 이 시스템은 리아프노프 안정성 조건을 만족하며 안정하다고 할 수 있다.

비선형 시스템의 선형화

비선형 시스템을 분석하거나 제어하기 위해 종종 선형화 기법을 사용한다. 이는 특정 작업점(operating point) 주변에서 시스템의 동작을 선형적으로 근사하는 방법이다. 시스템의 동작을 다음과 같은 상태 방정식으로 나타낼 수 있다:

\dot{\mathbf{x}}(t) = \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t))

이 방정식을 평형점 \mathbf{x}_0, \mathbf{u}_0 주변에서 테일러 급수로 전개하여 1차 항까지만 남기면, 다음과 같은 선형화된 상태 방정식을 얻을 수 있다:

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

여기서: - \Delta \mathbf{x}(t) = \mathbf{x}(t) - \mathbf{x}_0 - \Delta \mathbf{u}(t) = \mathbf{u}(t) - \mathbf{u}_0 - \mathbf{A} = \frac{\partial \mathbf{f}}{\partial \mathbf{x}} \Big|_{\mathbf{x}_0, \mathbf{u}_0} - \mathbf{B} = \frac{\partial \mathbf{f}}{\partial \mathbf{u}} \Big|_{\mathbf{x}_0, \mathbf{u}_0}

이 선형화된 방정식은 제어 설계를 위한 선형 시스템 모델로 사용할 수 있다.

선형화의 예시

예를 들어, 단순한 비선형 시스템인 펜들럼의 운동 방정식을 다시 살펴보면:

\ddot{\theta}(t) + \frac{g}{l} \sin \theta(t) = 0

작은 각도 \theta에 대해 \sin \theta \approx \theta로 근사할 수 있다. 그러면 선형화된 운동 방정식은 다음과 같이 된다:

\ddot{\theta}(t) + \frac{g}{l} \theta(t) = 0

이 선형 방정식은 펜들럼의 작은 각도에서의 동작을 설명하는데 유용하다.

비선형 시스템의 제어 설계

비선형 시스템을 제어하는 방법은 선형 시스템보다 훨씬 복잡하며 다양한 기법이 필요하다. 비선형 제어 설계에서는 시스템의 특성에 맞는 제어 기법을 선택해야 한다. 대표적인 비선형 제어 방법으로는 다음과 같은 기법들이 있다.

피드백 선형화 (Feedback Linearization)

피드백 선형화는 비선형 시스템을 선형 시스템으로 변환하여 제어하는 방법이다. 이를 위해, 비선형 시스템의 상태 방정식에 특정 형태의 피드백을 도입하여 선형 방정식을 얻는다. 비선형 시스템의 일반적인 상태 방정식은 다음과 같다:

\dot{\mathbf{x}}(t) = \mathbf{f}(\mathbf{x}(t)) + \mathbf{g}(\mathbf{x}(t)) \mathbf{u}(t)

여기서: - \mathbf{x}(t)는 상태 벡터 - \mathbf{u}(t)는 제어 입력 벡터 - \mathbf{f}\mathbf{g}는 비선형 함수들

피드백 선형화를 통해 \mathbf{u}(t)를 적절히 선택하면 시스템이 선형화되며, 이를 통해 선형 제어 이론을 적용할 수 있다. 예를 들어, 제어 입력을 다음과 같이 설정한다고 하자:

\mathbf{u}(t) = \mathbf{g}^{-1}(\mathbf{x}(t)) [\mathbf{v}(t) - \mathbf{f}(\mathbf{x}(t))]

이때 \mathbf{v}(t)는 새로운 제어 입력으로, 시스템은 다음과 같은 선형 시스템으로 변환된다:

\dot{\mathbf{x}}(t) = \mathbf{v}(t)

이 선형 시스템을 기반으로 \mathbf{v}(t)에 대해 제어기를 설계할 수 있다. 피드백 선형화는 시스템의 비선형성을 보정하여 제어기를 설계할 수 있게 해주지만, 모든 비선형 시스템에 적용 가능한 것은 아니다.

슬라이딩 모드 제어 (Sliding Mode Control)

슬라이딩 모드 제어(SMC)는 비선형 시스템에서 많이 사용되는 강건 제어 기법이다. 이 방법은 시스템이 특정 슬라이딩 면(Sliding Surface)으로 도달하도록 제어 입력을 설계한다. 슬라이딩 모드 제어는 시스템의 모델 불확실성이나 외란에 대해 강건성을 제공하며, 다음과 같은 형태로 표현할 수 있다:

  1. 슬라이딩 면의 설계: 상태 공간에서 슬라이딩 면 S(\mathbf{x}) = 0을 정의한다. 이때 S(\mathbf{x})는 시스템 상태 \mathbf{x}에 대한 함수이다.
S(\mathbf{x}) = \mathbf{C} \mathbf{x}
  1. 도달 법칙 (Reaching Law): 시스템 상태가 슬라이딩 면으로 수렴하도록 제어 입력 \mathbf{u}(t)를 설계한다. 제어 입력은 다음과 같이 설정할 수 있다:
\mathbf{u}(t) = \mathbf{u}_{eq}(t) + \mathbf{u}_{sw}(t)

여기서: - \mathbf{u}_{eq}(t)는 슬라이딩 면에서의 등가 제어 입력 - \mathbf{u}_{sw}(t)는 슬라이딩 면에 도달하기 위한 스위칭 제어 입력

슬라이딩 모드 제어는 모델링 오류나 외란에 대해 매우 강건한 성질을 가지고 있지만, 스위칭으로 인해 채터링(chattering) 현상이 발생할 수 있다. 채터링을 줄이기 위한 방법으로는 스무딩(smoothing) 기법이나 연속적 제어 입력을 사용하는 방법이 있다.

백스테핑 (Backstepping)

백스테핑 기법은 비선형 제어 시스템에서 단계적으로 제어 입력을 설계하는 방법이다. 이 기법은 시스템이 고차 비선형 구조를 가질 때 효과적으로 적용되며, 각 단계에서 적절한 가상 제어 입력을 설계하여 최종 제어 입력을 도출한다. 백스테핑은 다음과 같은 형태의 비선형 시스템에 적용된다:

\dot{\mathbf{x}}_1 = \mathbf{f}_1(\mathbf{x}_1) + \mathbf{g}_1(\mathbf{x}_1) \mathbf{x}_2
\dot{\mathbf{x}}_2 = \mathbf{f}_2(\mathbf{x}_2) + \mathbf{g}_2(\mathbf{x}_2) \mathbf{u}

여기서 \mathbf{x}_1, \mathbf{x}_2는 상태 벡터들이며, 백스테핑을 통해 각 단계에서 가상의 제어 목표를 설정하고 이를 통해 최종 제어 입력 \mathbf{u}를 설계한다. 이 방법은 상태 피드백을 이용해 비선형 시스템의 제어 문제를 단계적으로 해결하는데 효과적이다.

최적 제어와 비선형 시스템

비선형 시스템의 제어에서 최적 제어 기법은 주어진 성능 지표를 최소화하거나 최대화하는 제어 입력을 설계하는 방법이다. 특히, 비선형 시스템에서는 비용 함수와 상태 제약 조건을 반영하여 시스템의 동작을 최적화하는 것이 중요하다.

최적 제어 문제의 수식화

비선형 시스템의 최적 제어 문제는 다음과 같은 일반적인 형태로 수식화할 수 있다:

\min_{\mathbf{u}(t)} J = \int_{0}^{T} L(\mathbf{x}(t), \mathbf{u}(t), t) dt + \Phi(\mathbf{x}(T))

여기서: - J는 최적화할 비용 함수 - L(\mathbf{x}(t), \mathbf{u}(t), t)는 시간에 따른 상태와 제어 입력에 대한 비용 함수 - \Phi(\mathbf{x}(T))는 최종 상태에 대한 비용 함수 - \mathbf{x}(t)는 비선형 상태 방정식을 따르는 시스템의 상태 벡터 - \mathbf{u}(t)는 제어 입력 벡터

상태 방정식은 다음과 같은 비선형 방정식으로 주어진다:

\dot{\mathbf{x}}(t) = \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t), t)

이 문제의 목표는 주어진 시간 T 동안 시스템의 동작을 최적화하는 제어 입력 \mathbf{u}(t)를 찾는 것이다.

해밀턴 함수

최적 제어 문제를 풀기 위해 해밀턴 함수(Hamiltonian)를 정의할 수 있다. 해밀턴 함수는 다음과 같이 정의된다:

H(\mathbf{x}(t), \mathbf{u}(t), \mathbf{\lambda}(t), t) = L(\mathbf{x}(t), \mathbf{u}(t), t) + \mathbf{\lambda}^T(t) \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t), t)

여기서 \mathbf{\lambda}(t)는 공변 벡터(costate vector)로, 상태 변수의 변화에 따른 비용 함수의 민감도를 나타낸다.

최적 제어 문제의 해는 해밀턴의 정리에 따라, 다음과 같은 최적성 조건을 만족해야 한다:

  1. 상태 방정식:
\dot{\mathbf{x}}(t) = \frac{\partial H}{\partial \mathbf{\lambda}} = \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t), t)
  1. 공변 방정식:
\dot{\mathbf{\lambda}}(t) = -\frac{\partial H}{\partial \mathbf{x}}
  1. 최적성 조건:
\frac{\partial H}{\partial \mathbf{u}} = 0

이 방정식들을 동시에 만족하는 제어 입력 \mathbf{u}(t)와 상태 \mathbf{x}(t), 공변 벡터 \mathbf{\lambda}(t)를 찾는 것이 최적 제어 문제의 핵심이다.

예시: 최적 비선형 펜들럼 제어

간단한 비선형 시스템으로 펜들럼의 제어를 고려해 보자. 펜들럼 시스템의 비선형 상태 방정식은 다음과 같다:

\ddot{\theta}(t) + \frac{g}{l} \sin \theta(t) = u(t)

여기서 u(t)는 외부에서 가해지는 제어 입력이며, 이 시스템에 대해 최적 제어를 설계하려 한다. 비용 함수는 제어 입력의 크기를 최소화하는 것이 목표라면 다음과 같이 설정할 수 있다:

J = \int_0^T \left( \theta(t)^2 + u(t)^2 \right) dt

이 경우 해밀턴 함수는 다음과 같이 정의된다:

H(\theta, \dot{\theta}, \lambda_1, \lambda_2, u) = \theta^2 + u^2 + \lambda_1 \dot{\theta} + \lambda_2 \left( -\frac{g}{l} \sin \theta + u \right)

이 해밀턴 함수를 기반으로 최적성 조건을 만족하는 제어 입력 u(t)를 도출할 수 있다. 이를 통해 펜들럼의 최적 제어 문제를 풀 수 있게 된다.

최적 제어와 비선형성

비선형 시스템에서는 선형 시스템과 달리 해석적 해를 찾기 어려운 경우가 많다. 따라서 수치적 해법이나 근사 기법을 사용하여 최적 제어 문제를 푸는 것이 일반적이다. 최적 제어는 다양한 응용 분야에서 비선형 시스템의 성능을 극대화하거나 에너지를 최소화하는 데 유용하다.