본문 바로가기
유도항법제어/데이터기반제어

Ho-Kalman 식별 알고리즘

by 깊은대학 2023. 3. 24.

다음과 같이 미지의 이산시간(discrete-time) 선형 시스템이 있다고 하자.

 

(1)xk+1=Axk+Bukyk=Cxk+Duk

 

여기서 xkRn, ukRp, ykRq, ARn×n, BRn×p, CRq×n, DRq×p 이다.

 

 

이 시스템의 마코프 파라미터 Yi 가 주어졌을 때,

 

(2)Yi={D,i=0CAi1B,i>0

 

시스템 (1)의 행렬 A,B,C,D 및 차수(order) n 을 추정할 수 있을까. 즉, 시스템을 식별(identification)할 수 있을까.

식별하기에 앞서서 위 시스템의 가관측성(observability) 행렬 On와 가제어성(controllability) 행렬 Rn 을 서로 곱해보자.

 

(3)OnRn=[CCACA2CAn1][BABA2BAn1B]=[CBCABCA2BCAn1BCABCA2BCA3BCAnBCA2BCA3BCA4BCAn+1BCAn1BCAnBCAn+1BCA2n2B]

 

식 (3)의 행렬은 항켈(Hankel) 행렬이 되고 각 구성 성분은 Y0 를 제외한 마코프 파라미터인 것을 알 수 있다. 따라서 식 (3)은 다음과 같이 쓸 수 있다.

 

(4)H=OnRn=[Y1Y2YnY2Y3Yn+1YnYn+1Y2n1]

 

Ho-Kalman 식별 알고리즘은 미지의 시스템의 마코프 파라미터 Yi 가 주어졌을 때 시스템 행렬 A,B,C,D 및 차수 n 을 추정하는 알고리즘이다.

행렬 DY0 와 같으므로 바로 추정이 가능하고, 행렬 A,B,C 와 차수 n 은 마코프 파라미터를 이용하여 항켈 행렬을 구성한 다음 추정한다. 다음과 같이 행이 r, 열이 s 인 항켈 행렬 Hr,s(0) 을 정의한다.

 

(5)Hr,s(0)=[Y1Y2YsY2Y3Ys+1YrYr+1Yr+s1]Rqr×ps

 

식 (5)의 행렬을 Hr,s(0)=OrRs 로 분할하면 다음과 같다.

 

(6)Or=[CCACA2CAr1],   Rs=[BABA2BAs1B]

 

여기서 rs 는 예상되는 시스템의 차수 n 보다 크게 잡아야 한다. 만약 시스템의 차수가 n 이면 마코프 파라미터를 r>n, s>n 이상 쌓아도 항켈 행렬 Hr,s(0) 의 랭크(rank)는 n 이 될 것이므로, 행렬 Hr,s(0) 의 랭크가 더 이상 증가하지 않을 때까지 마코프 파라미터를 추가하고 시스템의 차수 n 을 다음과 같이 계산하면 된다.

 

(7)n=rank(Hr,s(0))

 

그러나 실제 적용에 있어서는 노이즈나 다른 영향으로 인하여 Hr,s(0) 의 랭크가 계속 증가할 수 있다. 이럴 경우에는 다음과 같이 특이값 분해(SVD, singular value decomposition)를 이용하여 특이값이 현격하게 차이나는 지점을 시스템의 차수 n 으로 정한다.

 

(8)Hr,s(0)=UΣVTUnΣnVnT=UnΣn1/2Σn1/2VnT=O^rR^s

 

 

식 (6)과 (8)에 의하면 O^rR^s 는 각각 다음과 같다.

 

(9)O^r=[CCACA2CAr1]=UnΣn1/2R^s=[BABA2BAs1B]=Σn1/2VnT

 

이제 행렬 A,B,C 를 추정하기 위하여 다음과 같이 항켈 행렬 Hr,s(0) 을 한칸 이동시킨 항켈 행렬 Hr,s(1) 을 정의한다.

 

(10)Hr,s(1)=[Y2Y3Ys+1Y3Y4Ys+2Yr+1Yr+2Yr+s]  Rqr×ps=[CCACA2CAr1]A[BABA2BAs1B]

 

식 (9)에 의하면 Hr,s(1) 은 다음과 같이 근사화 할 수 있다.

 

(11)Hr,s(1)UnΣn1/2AΣn1/2VnT

 

식 (11)로부터 A는 다음과 같이 계산할 수 있다.

 

(12)A^=Σn1/2UnTHr,s(1)VnΣn1/2

 

식 (9)의 R^s 로부터 B 는 다음과 같이 계산할 수 있다.

 

(13)B^=[BABAs1B][Ip00]=Σn1/2VnTEp

 

식 (9)의 O^r 로부터 C 는 다음과 같이 계산할 수 있다.

 

(14)C^=[Iq00][CCACAr1]=EqUnΣn1/2

 

Ho-Kalman 식별 알고리즘을 정리하면 다음과 같다.

    1. 미지의 시스템의 임펄스 반응을 이용하여 마코프 파라미터를 구한다.
    2. 마코프 파라미터로 항켈 행렬 Hr,s(0), Hr,s(1) 을 만든다.
    3. 항켈 행렬 Hr,s(0) 의 SVD를 계산하고 시스템 차수를 구한다.
    4. 시스템 행렬 A,B,C,D 를 계산한다.

 

 

'유도항법제어 > 데이터기반제어' 카테고리의 다른 글

OKID (Observer Kalman Filter Identification)  (0) 2023.03.25
ERA (Eigensystem Realization Algorithm)  (0) 2023.03.25
마코프 파라미터 (Markov Parameters)  (0) 2023.03.22
[DMD-3] DMDior  (0) 2022.11.08
[DMD-2] DMDio  (0) 2022.10.31

댓글