본문 바로가기
유도항법제어/비행제어

연속시간 상태공간 방정식의 이산화 (Discretization)

by 깊은대학 2024. 2. 12.

보통 제어기는 디지털 방식으로 구현되고 있다. 이 방식에서는 제어기의 출력도 디지털 신호이기 때문에 일정한 시간 간격에서만 사용할 수 있다. 즉 이산시간(discrete-time) 단계에서만 새로운 제어입력 값을 사용할 수 있다. 하지만 제어 대상 시스템이 연속시간(continuous-time) 시스템이라면 연속적인 입력이 필요하기 때문에 간헐적으로 계산되는 제어 입력을 사용할 수는 없다. 이 때 일반적으로 사용하는 방법은 다음 샘플링 시간까지 제어입력 값을 일정하게 유지시키는 것이다. 이를 0차홀드(ZOH, zero-order hold) 방식이라고 한다. 물론 더 복잡한 유형의 홀드 연산도 가능하지만, ZOH가 가장 널리 사용된다.

 

 

연속시간 (continuous-time) 선형 시불변 (LTI, linear time-invariant) 시스템은 다음과 같이 상태공간 방정식(state-space equation)으로 표현할 수 있다.

 

(1)x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)

 

여기서 x(t)Rn, u(t)Rp, y(t)Rq 이고 A, B, C, D 는 상수 행렬이다.

이제 시스템의 입력 u(t) 가 시간 t=tk 에서만 바뀌고, 시간 tkt<tk+1사이에서는 일정한 값으로 유지된다고 가정하자. 즉,

 

(2)u(t)=u(tk),     tkt<tk+1

 

여기서 T=tk+1tk 는 샘플링 시간이고 u(tk) 는 시간 t=tk 에서 u(t) 값을 의미한다. k 는 시간스텝(time step)을 나타내는 인덱스로서 정수 값을 갖는다.

 

 

그러면 샘플링 구간 t[tk, tk+1) 에서 연속시간 시스템의 해를 구하면 다음과 같이 된다 (https://pasus.tistory.com/296).

 

(3)x(tk+1)=eATx(tk)+tktk+1eA(tk+1τ)Bu(τ) dτ=eATx(tk)+tktk+1eA(tk+1τ)B dτ u(tk)

 

위 식에서 적분변수를 λ=τtk 로 변환하면,

 

(4)x(tk+1)=eATx(tk)+0tk+1tkeA(tk+1tkλ)B dλ u(tk)=eATx(tk)+0TeA(Tλ)B dλ u(tk)

 

이 된다. 다시 τ=Tλ 로 변환하여 정리하면,

 

(5)x(tk+1)=eATx(tk)+T0eAτB (dτ) u(tk)=eATx(tk)+0TeAτB dτ u(tk)

 

이 된다. 이산시간 시스템의 기호를 따르기 위하여 다음과 같이 정의하면,

 

(6)xk+1=x(tk+1),   xk=x(tk),   uk=u(tk)

 

다음과 같이 연속시간 시스템 (1)의 이산시간 등가 모델(equivalent model)을 얻을 수 있다.

 

(7)xk+1=Fxk+Guk

 

여기서

 

(8)F=eATG=0TeAτB dτ=A1[eAτ]0TB=A1[eATI]B

 

이다. 식 (8)에서는 A 의 역행렬이 존재함을 가정하였다.

식 (1)의 측정 모델은 동적운동이 없는 정적 시스템이기 때문에 다음과 같이 간단히 샘플링된 변환식을 구할 수 있다.

 

(9)yk=Cxk+Duk

 

여기서 yk=y(tk) 이다. 식 (7)과 (9)를 이산시간(discrete-time) 차분 방정식(difference equation)이라고 한다.

식 (8)을 테일러 시리즈(Taylor series)로 전개하면 다음과 같다.

 

(10)F=eAT=I+AT+T22A2+G=A1[eATI]B=A1[AT+T22A2+]B=BT+T22AB+

 

만약 샘플링 시간 T 가 매우 작다면 위 식에서 T2 이상은 절삭할 수 있다. 이를 오일러 근사 (Euler's approximation)라고 한다.

오일러 근사식은 식 (1)에서 미분을 다음과 같이 근사화하여 직접 구할 수도 있다.

 

(11)x˙(tk)x(tk+1)x(tk)T=Ax(tk)+Bu(tk)  x(tk+1)=(I+AT)x(tk)+BTu(tk)  xk+1=(I+AT)xk+BTuk

 

식 (11)에서 x˙(tk) 을 근사화할 때 미래 시간과 현재 시간의 x(t) 값을 이용(forward difference)했는데, 현재 시간과 과거 시간의 값을 이용(backward difference) 할 수도 있다.

 

(12)x˙(tk)x(tk)x(tk1)T=Ax(tk)+Bu(tk)  x(tk)=ATx(tk)+x(tk1)+BTu(tk)  xk=(IAT)1xk1+(IAT)1BTuk     (I+AT)xk1+BTuk

 

식 (12)에서 세번째 줄은 T 가 매우 작다는 가정하에서 성립한다. 식 (7) 또는 (11)과 식 (12)의 차이점은 제어입력 uk 가 가해지는 싯점에 있다. 식 (7) 또는 (11)에서는 xk+1 를 계산할 때 uk 가 적용된 반면 식 (12)에서는 xk 를 계산할 때 uk 가 적용되었다.

 

 

제어 분야에서는 식 (7) 또는 (11)의 형식이 일반적으로 사용되는 반면에, 기계학습 분야에서는 식 (12)의 형식이 사용되기도 한다.

 

 

만약 시스템의 입력 u(t) 가 시간 tk1<ttk 사이에서는 일정한 값 u(t)=u(tk) 로 유지된다고 가정하면, 식 (1)의 해는 다음과 같이 된다.

(13)x(tk)=eATx(tk1)+tk1tkeA(tkτ)B u(τ) dτ=eATx(tk1)+tk1tkeA(tkτ)B dτ u(tk)

 

그러면 연속시간 시스템 (1)의 이산시간 등가 모델은 다음과 같다.

(14)xk=Fxk1+Guk

 

여기서 FG 는 식 (8)과 동일하다. 식 (14)는 식 (12)와 마찬가지로 제어입력이 가해지는 싯점이 식 (7) 또는 (11)과 차이가 있다.

지금까지 ZOH에 의한 등가 이산화 방법에 대해 설명했다. 이 방법은 샘플링 순간에 정확한 이산시간 모델을 제공한다. 이밖에 연속시간 전달함수(transfer function)를 이산시간 등가 함수로 변환하는 방법도 있다.

댓글