lastnamesong

[System Modeling] 동적 시스템 모델링 본문

Control Theory/System Modeling

[System Modeling] 동적 시스템 모델링

응솩이 2024. 9. 9. 22:22
반응형

동적 시스템이란 시간에 따라 변화하는 물리적인 시스템을 뜻하며, 보통 미분방정식의 형태로 쉽게 볼 수 있다. 시스템이라는 개념은 매우 광범위하게 사용되지만, 일반적으로 특정한 목적을 위해 설계되거나 자연적으로 존재하는 상호 작용하는 요소들의 집합체로 정의할 수 있을 것이다. 예를 들어, 자동차, 생태계, 경제 시스템 등을 모두 시스템으로 볼 수 있다.

시스템을 정의하기 위한 요소 중 핵심은 입력과 출력일 것이다. 입력은 시스템에 영향을 주는 외부의 자극이나 변수를 뜻한다. 예를 들어, 자동차의 경우 가속 페달을 밟는 것이 입력이 될 수 있다. 출력은 시스템이 생성하는 결과물로서 자동차의 경우 속도가 출력이 될 수 있다.

 

제어 시스템 설계에 있어서 가장 기초가 되는 단계는 제어하고자 하는 시스템을 수학적으로 모델링하는 것이다. 합리적인 모델이 세워져야 시스템에 맞는 제어기 설계가 가능하며, 실제 제어를 할 때에 고생을 덜 할 수 있다. 제어에 대해 학습하기에 앞서 물리적인 시스템의 동적 모델을 세우는 방법에 대한 기본적인 방법에 대해 정리해보는 것을 목표로 한다.


앞서 소개한 내용을 종합해보면, 동적 시스템을 수학적으로 모델링한다는 것은 입력과 출력의 관계를 수학적 (e.g, 미분방정식의 형태)으로 표현하는 것이라고 할 수 있을 것이다. 대표적인 제어 대상인 기계적 시스템, 전기적 시스템, 그리고 이 둘을 합친 서보 시스템에 대한 모델링 방법을 정리한다.

기계적 시스템 모델링

우리가 잘 아는 뉴턴 방정식을 이용해 동역학적인 모델을 세울 수 있다. 질량 (mass, M), 스프링 (spring, K), 댐퍼 (damper, C)로 대부분의 모델이 가능하며 힘을 입력으로 받는 시스템이라면 출력은 위치와 속도, 가속도 등이 될 수 있다. 여러 질량이 연결된 시스템에 대해서는 각각을 분리하고 각 질량에 작용하는 힘을 모두 표시하는 자유물체도 (Free body diagram, FBD)를 그려 문제를 해결하기도 한다. 자동차의 서스펜션 시스템, 건물의 진동, 로봇과 주변과의 상호작용 (contact model), MEMS 센서 (e.g., IMU) 등 매우 복잡해보이는 기계 시스템 대부분이 이 M-C-K 모델로 표현이 가능하다.

 

가장 단순한 예시로 단일 질량에 대한 mass-spring-damper 시스템에 대한 모델을 도식화하면 아래와 같다.

중력을 포함해 작용하는 모든 외력을 \( F_{ext} \)로 정의하면, 입력 \( F_{ext} \)에 대한 출력 \( x \)의 모델은 이 물체의 운동방정식을 세움으로써 정의할 수 있다. (수직으로만 움직인다고 가정)

$$ \sum F = F_{ext} - c \dot{x} - kx = m \ddot{x}$$

진동공학에서 배우는 것처럼 식을 다시 쓰면 아래와 같이 정리가 가능하다.

$$ \ddot{x} + 2\zeta \omega_{n} \dot{x} + \omega_{n}^2 x = u $$

여기서 \( \omega_n = \sqrt{\dfrac{k}{m}} \)은 고유진동수 (natural frequency), \( \zeta = \dfrac{c}{2m\omega_{n}} \)은 감쇠비 (damping ratio), \( u = \dfrac{F_{ext}}{m} \)는 mass-spring-damper 시스템에 가해지는 입력으로 정의된다.

 

이 위에 mass-spring-damper가 하나 더 달려있는 시스템을 생각해볼 수도 있다. 이 때 두 개의 질량은 움직임이 서로 다른 양상을 보일 수 있다. 이처럼 시스템이 독립적으로 움직일 수 있는 방향 또는 축을 자유도라고 정의한다. 때문에 두 개의 mass-spring-damper 시스템은 2자유도 시스템이라고 할 수 있다 (i.e., 각각의 움직임을 다른 변수로 쓸 수 있음). 이 부분은 시스템을 서술하는 방법을 다룰 때 예시와 함께 더 자세하게 설명할 수 있을 것이다.

전기적 시스템 모델링

전기적 시스템의 동적 특성은 주로 전기 회로의 구성 요소들, 즉 저항 (resistance, R), 인덕터 (inductor, L), 캐패시터 (capacitor, C)에 의해 결정된다. 이들 요소는 전압과 전류 사이의 관계를 시간에 따라 변화시키며, 이에 따라 회로의 상태가 시간에 따라 변한다. 전기적 시스템에서는 전압과 전류에 대한 키르히호프의 법칙으로 모델링이 가능하다.

 

예시로, 직렬 RLC 회로에 대한 거동을 해석하여 모델을 만들 수 있다.

전압이 입력, 전류가 출력으로 정의되는 모델을 세우기 위해 키르히호프의 법칙을 쓰면 다음과 같다.

$$ V = V_R + V_L + V_C $$

여기서 \( V_Z \)는 소자 \( Z \)에서의 전압 강하를 의미한다. 각 소자에서의 전압과 전류 관계는 회로이론 내용에서 찾아볼 수 있다.

$$ V = iR + L\frac{di}{dt} + \frac{1}{C}\int i \,dt$$

전압 입력이 일정하다면 (i.e., \( \frac{dV}{dt} = 0\)), 시간에 대한 미분을 수행하여 2차 미분방정식 형태로 쓸 수 있다.

$$ \dfrac{d^2i}{dt^2} + \dfrac{R}{L}\dfrac{di}{dt} + \dfrac{1}{LC}i = 0 $$

 

앞서 M-C-K 모델에서 했던 것처럼 고유 진동수와 감쇠비를 정의할 수 있다.

$$ \omega_0 = \dfrac{1}{\sqrt{LC}}, \, \zeta = \dfrac{R}{2}\sqrt{\dfrac{C}{L}} $$

회로에서는 공진 주파수 (i.e., 고유 진동수)를 \( \omega_0 \)로 쓴다. 회로에서는 \( \zeta \) 대신에 감쇠 진동수 (Neper frequency)라고 불리는 \( \alpha =  \dfrac{R}{2L} \)를 쓰기도 한다. 그러면 위에서 정의한 직렬 RLC 회로의 거동은 아래와 같이 간단하게 쓸 수 있다.

$$ \dfrac{d^2i}{dt^2} + 2 \alpha \dfrac{di}{dt} + \omega_0^2 i = 0 $$

서보 시스템 모델링

서보 시스템 (Servo System)은 기계적 시스템과 전기적 시스템의 특성을 통합하여 정밀한 위치, 속도, 가속도 제어를 구현하는 복합적인 제어 시스템이다. 앞서 기계적 시스템 모델링과 전기적 시스템 모델링에서 다룬 개념과 수식을 바탕으로, 서보 시스템은 이러한 시스템들의 동적 특성을 결합할 수 있다.

서보 시스템은 회로 부분과 구동기 부분으로 나눠서 도식화할 수 있다.

\( V \)는 입력 전압, \(R\), \(L\)은 저항과 인덕턴스, \(V_{EMF}\)는 모터 회전에 의한 역기전력을 의미한다. 회로 부분에 대해 키르히호프 법칙을 사용하면 아래와 같이 표현 가능하다.

$$ V - Ri - L \dfrac{di}{dt} - V_{EMF} = 0 $$

\( V_{EMF} \)는 역기전력 계수인 \( k_e \) 와 모터의 회전 각속도인 \( \dot{\theta}(t) = \omega (t) \)의 곱으로 구해진다. 또한 모터의 토크 상수를 \( k_T\), 점성 마찰 계수를 \( b\)라고 할 때 기계적인 부분에 대한 \( T\)와 전류와의 관계는 아래 식과 같다.

$$ T = k_T i = J\ddot{\theta} + b\dot{\theta} $$

 

두 식을 종합해서 정리하면 아래와 같다.

$$ LJ \ddot{\omega} + (RJ+Lb) \dot{\omega} + ( Rb + k_ek_T)\omega = k_T V$$

전압을 입력으로 하고, 속도를 출력으로 하는 2차 미분 방정식 꼴의 모델링이 가능하다는 것을 알 수 있다. 모터의 속도 제어는 이런식으로 하겠구나 하고 생각할 수 있다.

선형 및 비선형 시스템

앞서 예시를 든 것들은 모델링이 선형성을 갖는 시스템이지만, 실제 시스템은 이렇게 이상적이지 않다. 실제 기계적, 전기적, 서보 시스템은 다양한 요인에 의해 비선형 특성을 보인다. 이는 시스템의 기계적인 마찰, 입력의 saturation, hysteresis, drift 등으로 인해 발생한다. 이러한 비선형 특성은 시스템의 동작을 복잡하게 만들며, 단순한 선형 모델로는 정확한 예측이 어렵다.

 

어떤 시스템 \( y = f(u) \)가 있고, 입력 \( u_1, u_2 \)와 임의의 스칼라 \( \lambda_1, \lambda_2 \in \mathbb{R} \)에 대해 다음이 성립하면 선형 시스템이라고 한다.

$$ f(\lambda_1 u_1 + \lambda_2 u_2) = \lambda_1 f(u_1) + \lambda_2 f(u_2) $$

수학적인 정의는 이렇게 쓸 수 있고, 실제 로봇이나 회로 시스템을 모델링 할 때 비선형 term이 생겨서 모델링이 어려워지는 practical한 이슈가 꽤 많이 발생한다. 동역학을 공부했다면 많이 접했을 회전운동 모델링에서 발생하는 삼각함수 부분이나, 전자회로를 공부하면 접하게 되는 rectifier 회로를 예로 들 수 있다.

 

각각의 경우 모두 적절한 가정 (e.g., 충분히 작은 각도 \(\theta\)에 대해 \(\sin{\theta} \approx \theta \)로 둘 수 있다거나, 정류된 교류 신호를 그 power가 같은 직류 신호 (RMS)로 근사하는 것 등)을 통해 시스템을 선형화 할 수 있다. 실제 시스템은 더 많은 자유도를 가지고, 더 복잡한 물리 법칙을 기반으로 모델링이 세워져야 하는 경우도 많다. 그런 시스템 각각에 대한 모델링만 해도 꽤 긴 글을 쓸 수 있을 것이다.


시스템 모델링에 대한 내용부터 시스템을 분류하는 기준 중 하나인 선형성에 대한 내용까지 정리했다. Discrete-time/Continuous-time, Time-invariant/Time-varying, Causal/Non-causal, SISO/MIMO, Memory/Memoryless, Lumped/Distributed 등 훨씬 더 많은 기준으로 시스템이 분류되며 각각을 해석할 때에 수학적인 배경이 많이 필요하다.

 

시스템 모델링을 하는 방법 중 미분방정식을 통해 식을 세우는 방법에 대해서만 소개했는데, 그 외에도 Laplace domain에서의 모델링, state space (상태 변수) 모델링 등 제어를 설계하거나 시뮬레이션을 할 때 더 많이 쓰이는 방법들이 있다. 다음 글에서는 이 부분들에 대해 다뤄볼 수 있을 것이다.

반응형