Reference: Prof Steve Brunton, Control Bootcamp
Youtube Link
Linear Systems (선형 시스템)
제어 입력이 없는 선형 시스템을 고려하자:
where A∈Rn×n,x∈Rn
이 미분방정식의 일반해는 다음과 같이 표현된다:
x(t)=eAtx(0)
여기서 행렬 지수함수 eAt는 Taylor 급수로 전개할 수 있다:
eAt=I+At+2!A2t2+3!A3t3+⋯
Eigenvalues & Eigenvectors (고유값과 고유벡터)
시스템 행렬 A의 고유값과 고유벡터는 다음 관계를 만족한다:
Aξ=λξ
고유벡터들을 열벡터로 하는 변환행렬 T와 고유값들의 대각행렬 D를 정의하면:
T=[ξ1,ξ2,…,ξn]
D=⎣⎢⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎦⎥⎥⎥⎥⎤
이들 사이의 관계는:
n×nAn×nT=n×nTn×nD
여기서:
- A∈Rn×n: 원래 시스템 행렬
- ξi∈Rn×1: i번째 고유벡터
- T∈Rn×n: 고유벡터들로 구성된 변환행렬
- D∈Rn×n: 고유값들의 대각행렬
- λi: i번째 고유값
좌표 변환을 통한 시스템 분리
새로운 좌표 z=T−1x를 도입하면:
x˙=Tz˙=Ax=ATz
양변에 T−1을 곱하면:
z˙=T−1ATz
앞서 유도한 관계식 AT=TD에서 T−1AT=D이므로:
이는 각 상태 변수가 독립적으로 분리된 시스템을 의미한다:
dtd⎣⎢⎢⎢⎢⎡z1z2⋮zn⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡z1z2⋮zn⎦⎥⎥⎥⎥⎤
핵심: 고유값 분해를 통해 복잡한 다변수 시스템을 독립적인 1차 시스템들의 조합으로 분석할 수 있다.
분리된 시스템의 해는:
z(t)=eDtz(0)=⎣⎢⎢⎢⎢⎡eλ1t0⋮00eλ2t⋮0⋯⋯⋱⋯00⋮eλnt⎦⎥⎥⎥⎥⎤z(0)
Proof (증명)
앞서 유도한 관계식들을 이용하여 해의 형태를 증명해보자.
고유값 분해로부터:
AT=TD⇒A=TDT−1
행렬 지수함수에 대입하면:
eAt=eTDT−1t
Taylor 급수에 적용하면:
eTDT−1t=I+TDT−1t+2!(TDT−1)2t2+3!(TDT−1)3t3+⋯
행렬의 거듭제곱을 계산해보자. TT−1=I이므로:
(TDT−1)2=TDT−1TDT−1=TD2T−1
(TDT−1)3=TD3T−1
일반적으로 (TDT−1)n=TDnT−1이므로:
eTDT−1t=T[I+Dt+2!D2t2+3!D3t3+⋯]T−1
대괄호 안은 eDt이므로:
eAt=TeDtT−1
따라서 원래 시스템의 해는:
x(t)=eAtx(0)=TeDtT−1x(0)
좌표 변환 관계 x=Tz, z(0)=T−1x(0)를 이용하면:
x(t)=x(t)Tz(t)eDtz(0)T−1x(0)
Numerical Example (수치 예제)
시스템 정의
A=[0−21−3],x(0)=[10]
고유값 분해
MATLAB에서 [T, D] = eig(A)를 실행하면:
D=[−100−2],T=[0.7071−0.7071−0.44720.8944]
안정성 분석: 모든 고유값이 음수이므로 시스템은 안정하다. 즉, 시간이 흐르면서 상태가 0으로 수렴한다.
해의 검증
다음 세 가지 방법으로 동일한 결과를 얻을 수 있다:
- 직접 계산: x(t)=eAtx(0)
- 고유값 분해: x(t)=TeDtT−1x(0)
- 수치 적분:
ode45(@(t,x) A*x, [0,10], x0)
MATLAB 코드
% Linear System Solution: x_dot = Ax
clear; clc;
% Define system matrix A
A = [0 1; -2 -3]; % Example 2x2 system matrix
x0 = [1; 0]; % Initial condition
t = linspace(0, 10, 100); % Time vector
% Method 1: Using eigenvalue decomposition
[T, D] = eig(A);
x_analytical = zeros(2, length(t));
for i = 1:length(t)
x_analytical(:, i) = T * expm(D * t(i)) * inv(T) * x0;
end
% Method 2: Using matrix exponential directly
x_direct = zeros(2, length(t));
for i = 1:length(t)
x_direct(:, i) = expm(A * t(i)) * x0;
end
% Method 3: Numerical integration for verification
[t_ode, x_ode] = ode45(@(t, x) A*x, [0, 10], x0);
% Plot results
figure;
plot(t, x_analytical(1,:), 'r-', 'LineWidth', 2); hold on;
plot(t, x_analytical(2,:), 'b-', 'LineWidth', 2);
plot(t_ode, x_ode(:,1), 'ro', 'MarkerSize', 4);
plot(t_ode, x_ode(:,2), 'bo', 'MarkerSize', 4);
xlabel('Time (s)'); ylabel('State');
legend('x_1 (analytical)', 'x_2 (analytical)', ...
'x_1 (numerical)', 'x_2 (numerical)');
title('Linear System Response');
grid on;

결론
고유값 분해를 통해 다음을 확인할 수 있다:
- 복잡한 다변수 시스템을 독립적인 1차 시스템들로 분해 가능
- 시스템의 안정성은 고유값의 부호로 판단
- 해석적 해와 수치적 해가 일치함을 검증