system identification toolbox manual · qmßà9't pzvá}a ßঠßàv5 en*ªtâÉna±²´...

207
사용자 지침서

Upload: others

Post on 17-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

시스템 식별툴박스System Identification Toolbox

사용자 지침서

Page 2: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

목 차

제 1 장. 시스템 식별의 기본 개념

제 2 장. The System Identification Problem

제 3 장. 시스템 식별에서 사용되는 일반적인 용어

제 4 장. The Basic Steps of System Identification

제 5 장. 시스템 식별 도구박스 함수들

제 6 장. Nonparametric Model Estimation ☞ 예제 포함

제 7 장. Parametric Model Estimation

제 8 장. Defining Model Structures ☞ 예제 포함

제 9 장. Examining Models ☞ 예제 포함

제 10 장. Model Structure Selection and Validation ☞ 예제 포함

제 11 장. Dealing with data

제 12 장. Recursive Parameter Estimation ☞ 예제 포함

제 13 장. Some Special Topics ☞ 예제 포함

Reference Paper

List of Functions

List of Examples

Page 3: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 1 -

PARTⅠ. Tutorial

1. 시스템 식별의 기본 개념

시스템 식별법은 시스템의 관측된 데이터를 가지고 동적 모델의 수학적

모델을 찾는 문제를 다룬다. 즉, 시스템의 분석이나 제어를 위해 대상

시스템의 수학적 모델을 선정하여 식별하고 평가하는 방법이다. 최소

자승법, 최대 공산법, Bayes 추정법 등의 계수 추정기법을 기초로 한

기본적인 식별법으로서 입출력 모델에서의 등식오차법과 출력 오차법을

익히고 전달함수 추정법 및 상태공간 모델에서의 식별법도 다루며 적절한

모델의 선정, 계산량 축소법, 식별 모델의 평가 기법 등을 논한다.

구해진 모델의 적합성을 시험하기 위해 모델을 구할 때 사용되지 않은 데

이터(Validation Data)를 가지고 측정 출력과 모델의 출력을 비교해본다.

이 도구박스는 일반적인 모델에 적용할 수 있다. 가장 일반적인 모델들은

선형 상태 공간 모델뿐만 아니라 ARX와 ARMAX모델과 같은 미분 방정

식으로 나타나는 것들이다.

매개변수 표시 방정식에 대해서는 구조를 정해줘야만 한다. 그러나 만약

시스템이 선형이라면, 상관해석이나 스펙트럼 해석을 사용한 주파수 응답

을 이용해서 임펄스나 단위계단 응답을 직접 추정할 수 있다. 이것은 다른

추정된 모델과의 유용한 비교를 제공한다. 또한 선형 모델로 한정하는 큰

제약이 있는 것은 아니다. 대부분의 일반적인 모델 비선형성은 측정된 데

이터가 비선형적으로 변환되었기 때문이다. 시스템을 물리적으로 조사해서

모델링을 하고 새로운 변수를 사용해 모델이 선형화 되도록 변환을 해야

한다. 이 도구박스에는 모든 종류의 선형 모델에서 매개변수를 조정하기

위한 일반적인 기법들을 포함하고 있다.

동적 모델에 대한 기본 개념

시스템 식별은 동적 모델을 구하는 것이다. 그러므로 도구박스를 성공적으

로 사용하려면 모델에 대한 몇 가지 정보가 필요하다. 이장에서 몇 가지

다루어질 영역을 설명한다. 도구박스의 기본적인 사용에 대해 동적 모델에

대한 간단한 조사는 충분조건으로 필요하다.

Page 4: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 2 -

The Signals

모델의 측정 신호들 사이의 관계를 표현한다. 입력 신호와 출력 신호를 구

분하는 것이 편리하다. 그러면 출력은 부분적으로 입력에 의해서 결정된다.

대부분의 경우 출력은 또한 측정 된 입력보다 다른 신호들에 의해 영향을

받는다. “Unmeasured inputs"은 외란 신호 혹은 잡음으로 부른다. 여기서,

입력, 출력과 외란을 u, y, 그리고 e 라고 하면, 이들 관계는 다음과 같은

그림으로 표현된다.

입력 신호 u, 출력 신호 y, 그리고 외란 e

모든 신호들은 시간 함수이고, 시간 t에서의 입력의 값은 u(t)이다. 식별 문

맥에서 종종 이산 시간 이 고려된다. 종종 샘플링 간격 T을 갖는 시간으로

확장하기도 한다. 모델링 문제는 이들 3개의 신호가 어떻게 서로 관계가

있는지 표현한 것이다.

The Basic Dynamic Model

기본 관계는 선형 미분 방정식이다. 식의 예제는 다음과 같다.

y( t)-1.5y( t-T)+0.7y( t-2T)= 0.9u ( t-2T)+0.5+u( t-3T)+e( t) (ARX)

입력이 알려졌고, 외란은 무시될 수 있다면 다음은 출력 y(t)를 어떻게 구

하는지 보여준다.

y( t)= 1.5y( t-T)-0.7y(2-2T)+0.9u (t-2T)+0.5u ( t-3T)

시간 t에서 출력은 지난 출력과 지난 입력의 선형 결합으로 계산된다. 예

를 들어 시간 t에서 출력은 많은 이전 시간에서 입력 신호에 따라 결정된

다. 식별문제는 해를 구하기 위해 u와 y의 측정치를 사용한다.

∙위 식의 계수들 (즉, -0.5, 0.7 등등)

얼마나 많은 지연된 출력이 이 식에서 사용되는가.(예에서는 2개:

y( t-T)와 y( t-2T))

∙시스템에서 시간 지연은 (예제에서, 2T : 두 번째 식으로부터 이것은 u

Page 5: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 3 -

가 y에게 영향을 미치기 전인 2T 시간 단위이다.

∙얼마나 많은 지연된 입력들이 사용되는가(예제에서, 2개 : u( t-2T)와

u (t-3T) )

Variants of Model Descriptions

위에서 주어진 모델은 ARX 모델이다. 이것은 출력 오차(OE) 모델,

ARMAX 모델, FIR 모델, 그리고 Box-Jenkins(BJ) 모델로서 알려진 약

간의 변형이 존재한다. 이들은 뒤에서 언급한다. 기본적으로 ARX 모델의

변형으로서 이들도 역시 외란 e의 특징을 사용할 수 있다.

일반적인 선형 모델들은 다음과 같이 표현할 수 있다.

y=Gu+He

측정된 출력 y(t) 는 입력 u에 의한 것과 외란 e 에 의한 것의 합이다. 기

호 G는 시스템의 동적 특성을 나타낸다. 측 출력이 입력에 의해 어떻게 구

성되는지를 나타낸다. 선형 시스템의 경우 이것은 입력과 출력의 전달함수

라고 부른다. 기호 H는 잡음 특징을 나타내고, 잡음 모델이라고 부른다. 이

것은 출력에서 외란이 표준화된 잡음 소스 e(t)로부터 어떻게 구성되는지

를 나타낸다.

State-space models

이것은 동적 모델들의 일반적인 표현이다. 이것은 ARX 모델에서처럼 입력

과 출력사이의 관계를 선형 미분 형식으로 표현한다. 그러나 이들은 표현

에서 단지 하나의 delay를 갖고 정리되어 있다. 이것을 얻기 위해 몇 가지

확장된 변수들(state variables)들이 소개된다. 이들은 측정되지 않지만, 측

정된 입력-출력 데이터로부터 재구성될 수 있다. 몇 개의 출력 신호가 있

을 때(즉, y(t) 가 벡터일 때) 이들을 필수적으로 사용한다. 도구상자의 기

본적인 사용을 위해서, 선형 미분 방정식에서 사용된 지연된 입력과 출력

의 개수와 관련된 상태 공간 모델의 차수를 알아야 한다. 상태 공간 표현

은 다음과 같다.

x(t+1)=A(x(t)+Bu(t)=Ke(t)y(t)=Cx(t)+Du(t)+e(t)

여기서 x(t)는 상태 변수 벡터이다. 행렬 K는 잡음 속성을 결정한다. K=0

이라면, 잡음 소스 e(t)는 단지 출력에만 영향을 주고, 잡음 속성을 정하는

Page 6: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 4 -

모델은 구성되지 않는다. 일반적인 표현에서 이것은 H=1일 때와 같고, 출

력-오차 모델로서 취급된다. D=0 이라는 것은 u(t)가 y(t)에 직접적으로 영

향을 미치지 않는 다는 것을 의미한다. 그래서 출력에 대한 입력의 영향은

모두 x(t)를 통해서 이루어지고 적어도 한 샘플에서 delay가 존재할 것이

다. 상태 변수 벡터의 첫 번째 값 x(0)는 데이터 기록이 시작될 때 시스템

의 초기 조건이다. 상태공간 형태에서 모델을 다룰 땐, 전형적으로 D, K

그리고 x(0)를 추정할 것인지 아닌지, 아니면 영으로 놓을 것인지는 선택

이다.

시스템 식별에 대한 전체적인 개략도는 다음과 같다.

Page 7: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 5 -

2. The System Identification Problem

이 장에서는 선형 동적 시스템을 표현하는 다른 기본적인 방법들에 대해

논의한다. 또한 이 모델들의 추정에 가장 중요한 방법들도 소개한다.

Impulse Responses, Frequency Functions, and Spectra

기본 입력-출력 구성은 위에 나타나 있다. 단위 샘플링 간격을 가정하고,

입력 신호는

u(t) ; t=1,2,⋯N

출력 신호는

y(t) ; t=1,2,⋯,N

이라고 가정한다.

신호들은 선형 시스템과 관련이 있다고 가정하며, 이들 관계는 다음과 같

이 쓸 수 있다.

y(t)=G(q)u(t)+v(t) (2.1)

여기서 q는 shift operator이고 G(q)u(t)는 다음과 같다.

G(q)u (t)= ∑∞

k=1g(k)u (t-k) (2.2)

그리고

G(q)= ∑∞

k=1g(k)q-k; q- 1u(t)= u(t-1) (2.3)

g(k)는 시스템의 임펄스 응답이라고 부른다. 입력이 시간 영에서 임펄스라

면, 이것은 시간 k에서 시스템의 출력이다. G(q) 함수는 시스템의 전달함

수라고 부른다. 이 함수는 주파수 함수를 주는 단위 원에서 계산된다.

G(e jw) (2.4)

Page 8: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 6 -

식 (2.1)에서 v(t)는 추가적으로 unmeasurable 외란 (잡음)이다. 이것은 특

성은 스펙트럼을 사용해서 표현될 수 있다.

Φv(w) (2.5)

이것은 다음과 같이 정의된다.

Φ v(w) = ∑∞

τ=-∞R v(τ )e

- jwt (2.6)

여기서, R v(τ)는 v(t)의 상호 분산 함수이다.

R v(τ)Ev(t)v(t-τ)

(2.7)

그리고, E 는 수학적 기대치를 의미한다. 외란 v(t)는 필터링된 백색잡음으

로 표현될 수도 있다.

v(t)=H(q)e(t)

(2.8)

여기서, e(t) 는 분산 λ를 갖는 백색잡음이고,

Φv(w)=λ|H(e iw)| 2 (2.9)

식 (2.1)과 식 (2.8)은 모두 시스템의 시간 영역 표현을 나타낸다.:

y(t)=G(q)u(t)+H(q)e(t) (2.10)

반면에 식 (2.4)와 식 (2.5)는 주파수 영역 표현을 나타낸다. :

G(e iw); Φ v(w) (2.11)

임펄스 응답(2.3)과 주파수 영역 표현 (2.11)은 이들이 제한된 수의 매개 변

수로 정의되지 않기 때문에 Nonparametric model descriptions라고 부른

다. 기본 표현(2.10)는 또한 다변수의 경우에도 사용된다. 이 경우 G(q)는

ny×nu 행렬이고 H(q)와 Φv(w)는 ny×ny 행렬이다.

Polynomial Representation of Transfer Function

식 (2.10)에서 주파수 변수 w 의 함수로 함수 G와 H를 정하는 대신에, 지

수 함수( q- 1)와 분자 분모 계수로 표현할 수 있다.

일반적으로 사용되는 계수화 모델은 ARX 모델이고 다음과 같다.

G(q)=q-nk B(q)A(q)

; H(q)=1

A(q)(2.12)

여기서, B 와 A 는 delay operator q- 1을 갖는 다항식이다.

Page 9: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 7 -

A(q) = 1+a 1q-1+⋯+a naq

-na (2.13)

B(q) = b1+b2q- 1+⋯+bnbq

-nb+ 1

(2.14)

여기서, na와 nb들은 각각 다항식의 차수이다. nk는 입력으로부터 출력까

지의 delay의 수이다. 모델은 일반적으로 다음과 같이 표현된다.

A(q)y(t)=B(q)u(t-nk)+e(k) (2.15)

혹은

y( t)+a 1y(t-1)+⋯+a nay(t-na )=b1u(t-nk)+b2u ( t- nk-1)+⋯+bnbu ( t-nk-nb+1)+ e(k)

(2.16)

식(2.15)-식 (2.16)은 또한 다변수 경우에도 적용될 수 있다. 여기서, A(q)

와 계수들 a i는 ny×ny 행렬이다. B(q)와 계수들 b i 는 ny×nu 행렬이다.

또 다른 좀더 일반적인 모델 구조는 ARMAX 구조이다.

A(q)y(t)=B(q)u(t-nk)+C(q)e(t) (2.17)

여기서, A(q)와 B(q)들은 식 (2.13)-(2.14)과 같다. 반면에

C(q) = 1+c 1q-1+⋯+c ncq

-nc

(2.18)

출력-오차(OE) 구조는 다음과 같다.

y(t)=B(q)F(q)

u(t-nk)+e(k) (2.19)

여기서,

F(q) = 1+f 1q-1+⋯+f nfq

-nf (2.20)

Box-Jenkins(BJ) 모델이라 불리는 구조는 다음과 같이 주어진다.

y(t)=B(q)F(q)

u(t-nk)+C(q)D(q)

e(t) (2.21)

여기서,

D(q)=1+d 1q-1+⋯+d ndq

-nd (2.22)

Laguerre 모델 구조는 다음과 같이 주어진다.

y(t) = G(q,θ)u(t)

= ∑n

k= 1gkL k(q,a) u ( t)

= φ(t)'θ

Page 10: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 8 -

φ(t)=[u 1(t) ⋯ u n(t)] u k(t) = Lk(q,a)u (t)

θ= [ g1 ⋯ gn]'

여기서,

Lk(q,a) =K

q-a ( 1-aqq-a )

k-1

, K= (1-a 2 )T

이들 모델은 일반적인 계수화 모델 구조의 특별한 경우이다.

A(q)y(t)=B(q)F(q)

u(t-nk)+C(q)D(q)

e(t) (2.23)

백색잡음 {e(t)}의 분산은 λ로 가정한다.

식 (2.23)의 구조에서, 실제적으로 일반적인 선형 블랙-박스 모델 구조의

모든 것이 특별한 경우로서 얻어진다. ARX 구조는 명백히 nc=nd=nf=0에

서 얻어진다. ARMAX 구조는 nf=nd=0과 일치한다. ARARX 구조는

nc=nf=0에서 얻어진다. 반면에 ARARMAX 구조는 nf=0일 때와 일치한다.

출력-오차 모델은 na=0 과 일치한다.

같은 형태의 모델들은 입력의 임의의 개수를 갖는 시스템으로 정의될 수

있다. 이들은 다음과 같은 구조를 갖고 있다.

A(q)y(t)=B 1(q)

F 1(q)u 1(t-nk1 )+⋯+

B nu(q)

F nu(q)u nu(t-nk nu)+

C(q)D(q)

e(t)

State-Space Representation of Transfer Functions

선형 시스템을 표현하는 일반적인 모델은 상태 공간 형태를 사용하는 것이

다.

x(t+1)=Ax(t)+Bu(t) (2.24a)

y(t)=Cx(t)+Du(t)+v(t) (2.24b)

입력 u(t)와 출력 y(t)사이의 관계는 nx-차원 상태 벡터 x(t)로 정의된다.

(2.24)의 전달 함수 형태는 (2.1)과 같다.

G(q)=C(qI nx-A)-1B+D (2. 25)

여기서, I nx는 nx×nx 단위 행렬이다. 명백히 (2.24)는 전달 함수의 계수화

방법중 한가지로 볼 수 있다. (2.25)를 통해 G(q)는 행렬 A,B,C 그리고 D

Page 11: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 9 -

의 요소들의 함수이다.

게다가 식 (2.24)에서 잡음 항 v(t)의 특징은 상태 공간 모델의 flexible

innovations 형태로 나타낼 수 있다.

x(t+1)=Ax(t)+Bu(t)+Ke(t) (2.26a)

y(t)=Cx(t)+Du(t)+e(t) (2.26b)

이것은 식 (2.25)에서 주어진 G(q)와 다음에 주어진 H(q)를 갖는 식 (2.10)

과 같다.

H(q) =C(qI nx-A)- 1K+I ny (2.27)

여기서 ny는 y(t)와 e(t)의 차원이다.

이것은 종종 innovations 형태에서 직접적으로 시스템을 표현할 수 있다.

다른 경우에, 시스템을 동작시키는 외란의 첫 번째 속성을 표현한다. 이것

은 확률적 상태 공간 모델을 유도한다.

x(t+1)=Ax(t)+Bu(t)+w(t) (2.28a)

y(t)=Cx(t)+Du(t)+e(t) (2.28b)

여기서, w(t) 와 e(t)는 어떤 상호분산을 갖는 확률과정이다. 식 (2.28)는 행

렬 K가 정상상태 칼만 게인으로 선택되면 식 (2.26)과 같다. Control

System Toolbox에 식 (2. 28)로부터 K를 어떻게 계산하는지 나타나 있다.

Continuous-Time State-Space Models

물리적 모델로부터 연속 시간 모델을 사용해서 시스템을 표현하는 게 종종

더욱 쉬운 경우가 있다. 대부분의 물리적 법칙이 미분 방정식으로 연속

시간에서 표현된다. 그러므로, 물리적 모델링은 전형적으로 다음과 같은 상

태 공간 표현을 유도한다.

x( t)=Fx(t)+Gu(t) (2.29a)

y(t)=Hx(t)+Du(t)+v(t) (2.29b)

여기서, x는 x의 미분을 의미한다. 입력이 시간 간격 kT≤t< (k+1)T에

걸쳐 부분적 상수를 갖고 있다면, u[k]=u(kT)와 y[k]=y(kT)사이의

관계가 식 (2.24)에 의해서 정확하게 표현될 수 있다.

A=eFT; B=⌠⌡

T

τ=0e FτGdτ; C=H (2.30)

y(t)와 관련된 건 y[t].

Page 12: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 10 -

연속 시간 innovation 형태로부터 출발한다면,

x( t)=Fx(t)+Gu(t)+ Ke( t) (2.31a)

y(t)=Hx(t)+Du(t)+e(t) (2.31b)

이산 시간에 관한 것은 식 (2.26)에 주어졌다. 여기서도 역시 (2.30)의 관계

가 유지된다. K와 K 사이의 정확한 관계는 다소 복잡할 수 도 있다. An

ad hoc 해는 다음을 사용한다.

K=⌠⌡

T

τ=0e Fτ Kdτ (2.32)

이것은 짧은 샘플링 간격 T에서 매우 적합하다.

Estimating Impulse Responses

(2.1)식을 고려하자. 입력 u(t)가 백색 잡음이라고 가정하자 ; 즉, 이것의 상

호분산 함수는

R u(τ)=Eu(t+τ)u(t)= { λ if τ=00 else

그러면, 입력과 출력의 교차 상호분산함수는

R yu(τ)=Ey(t+τ)u(t)=λg(τ)

여기서 g(τ)는 시스템의 임펄스 응답이다. 이런 경우, 이것은 관측된 입력

-출력 데이터를 기반으로 다음과 같이 쉽게 추정될 수 있다.

g( τ )=1λN

∑N

t=1y(t+τ)u (t) (2.33)

입력이 백색 잡음이 아닐 경우, whitening filter L(q)는 정해질 수 있다.

필터링된 시퀀스는

u F(t)=L(q)u (t) (2.34)

는 근사적으로 백색이다. 같은 필터를 사용해서 출력 시퀀스를 필터링해서

필터링된 데이터를 기반으로 (2.33)을 계산해서, 임펄스 응답 계수 g(k)의

자연스런 추정이 얻어진다. 이 과정은 상관 해석으로서 알려져 있다.

Estimating Spectra and Frequency Functions

이 장은 주파수 함수 추정과 직접적으로 스펙트럼(2.11) 추정에 대한 방법

들을 설명한다. y(t)와 u(t) 사이의 교차 상호분산 함수 R yu(τ)는 위에 정

Page 13: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 11 -

의되어 있다. 이것의 푸리에 변환, 교차 스펙트럼, Φ yu(w)는 (2.6)과 유사

하게 정의된다. 입력 u(t)가 v(t)에 독립적이면, (2.1)의 관계는 다음에 오는

스펙트럼사이의 관계를 암시한다.

Φy(w)= |G(e jw)| 2Φ u(w)+Φv(w)

Φ yu(w)=G(e jw)Φ u(w)

다양한 스펙트럼을 포함한 추정에 의해, 주파수 함수와 외란 스펙트럼은

다음과 같이 추정될 수 있다.

상호분산 함수의 추정은 ((2.7)에 정의된 것처럼), R y( τ ), R yu( τ ), 그리고

R u( τ )는 다음을 사용한다.

R yu( τ )=1N ∑

N

t=1y(t+τ)u ( t) (2.35)

일치하는 스펙트럼의 추정은,

Φ y( w)= ∑M

τ=-MR y( τ )WM(τ)e

- iwτ (2.36)

그리고 Φu와 Φyu에 관한 것도 유사하다. 여기서 WM(τ)는 lag window로

불리고 M 은 lag window 의 폭이다. 추정은 다음과 같은 형태이다.

G N( eiw)=Φ yu( w)

Φ u( w); Φ v( w)= Φ y( w)-

|Φ yu( w)| 2

Φ u( w)(2.37)

이 과정은 스펙트럼 해석으로서 알려져 있다.

Estimating Parametric Models

(2.10)에 주어진 식과 측정된 입력-출력 데이터 u, y를 갖고, 식 (2.10)에서

(예측)오차 e(t)는 다음과 같은 방법으로 계산된다.

e(t)=H-1(q) [y(t)-G(q)u(t)] (2.38)

이들 오차들은 주어진 데이터 y와 u에 대한 G와 H의 함수이다. 이들은 식

(2.15)-(2.23)에서 다항식으로서 계수화되거나 식 (2.29)-(2.32)에서 정의된

상태공간행렬에서의 항에 의해 계수화된다. 가장 일반적인 계수적 식별 방

법은 다음 식을 최소화함으로써 G와 H의 추정치를 결정하는 것이다.

VN(G,H)= ∑N

t= 1e 2(t) (2.39)

Page 14: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 12 -

[ G N, HN] =argmin ∑N

t= 1e 2(t) (2.40)

이것은 예측 오차 방법이라고 부른다. 가우시안 외란에 대해 이것은

maximum likelihood method를 갖고 결정한다.

Page 15: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 13 -

3. 시스템 식별에서 사용되는 일반적인 용어.

이 장은 시스템 식별 도구박스를 사용할 때 자주 접하게 될 용어를 정의해

놓았다.

∙Estimation Data :

모델이 데이터에 적합한지를 검사할 때 사용하는 데이터이다.

∙Validation Data:

모델 평가 목적을 위해 사용되는 데이터 집합이다. 이것은 이들 데이터

를 사용한 모델 시뮬레이션을 포함하고 이들 데이터에 모델이 적용되었을

때 residual을 계산한다.

∙ Model Views :

모델의 속성을 조사는 다양한 방법이다. 이것은 영점과 극점, 과도와 주파

수 응답, 그리고 유사한 것들을 포함하고 있다.

∙Data Views :

데이터 집합의 속성을 조사하는 다양한 방법이다. 가장 일반적이고 유용

한 것은 데이터를 그림으로 도시하는 것이다. 데이터 신호의 주파수 성분

들(periodograms나 스펙트럼 추정)은 또한 유용한 방법이다.

∙Model Sets or Model Structure

적용 가능한 매개 변수들을 갖는 모델들의 집합이다. 계수 추정은 이들

매개변수들과 가장 일치하는 값을 찾는 것이다. 시스템 식별 문제는 좋은

모델 구조와 매개변수의 값을 모두 찾는 것이다.

∙Parametric Identification Methods

주어진 모델 구조에서 매개 변수를 추정하는 기법이다. 기본적으로, 이것

은 모델의 출력과 측정된 것들 사이에 가장 일치하는 값이 나오는 매개변

수의 값을 찾는 것이다.

∙Nonparametric Identification Methods

주어진 계수화된 모델 집합을 사용할 필요 없이 모델의 동작을 추정하는

것이다. 전형적으로 Nonparametric methods는 시스템의 임펄스 응답을 추

정하는 상관 해석과 시스템의 주파수 응답을 추정하는 스펙트럼 해석을

포함한다.

∙Model Validation

추정된 모델의 성능을 보장하는 과정이다. 필수적으로 이것은 모델의 모

든 면을 자세히 조사하기 위해 “twisting and turning" 모델에 의해서 얻어

Page 16: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 14 -

진다. 특별히 중요한 점은 평가 데이터 집합들의 행동을 재현하는 모델의

능력이다. 그래서 평가 데이터를 적용할 때 모델로부터 residual의 속성을

조사하는 것이 매우 중요하다.

Page 17: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 15 -

4. The Basic Steps of System Identification

시스템을 표현하고 존재하는 이런 표현을 추정하는 몇 가지 방법이 있다.

이 장에서는 가장 중요한 방법들이 간략하게 주어진다.

측정된 입력-출력 데이터로부터 동적 모델의 모델을 결정하기 위한 과정은

다음 3가지 기본 항을 포함하고 있다.

∙ 입력-출력 데이터

∙ 모델 집합(모델 구조)

∙ 이 집합에서 데이터를 정보를 기반으로 특정한 모델을 선택하는 법(식

별 방법)

식별 과정은 반복적으로 모델 구조를 선택하고 가장 좋은 모델을 계산하

며, 이 구조가 만족스럽다면, 이 모델의 속성을 조사한다. 이런 과정은 다

음과 같이 요약 될 수 있다.

① 식별하기 위해서 공정으로부터 입력-출력 데이터를 실험하고 수집한

다.

② 데이터의 유용한 부분을 선택하고 주요한 주파수 범위를 강조하기 위

해 필터링을 적용한다.

③ 모델 구조를 선택하고 정의한다.

④ 입력-출력 데이터와 주어진 적합률 기준에 따라 모델 구조에서 가장

좋은 모델을 계산한다.

⑤ 얻어진 모델의 속성을 검사한다.

⑥ 모델이 충분히 만족스러우면, 정지한다. 그렇지 않으면 ,또 다른 모델

집합을 갖고 스텝 ③번부터 다시 반복한다. 가능한 다른 추정 방법(스

텝 ④)을 시도하거나 입력-출력 데이터에서 다시 작업한다.(스텝 ① 과

②)

시스템 식별 도구상자는 이들 각 스텝에 해당하는 함수들을 제공한다.

스텝 ②에 대해서는, 데이터 도시, 데이터 필터링 그리고 데이터에서

trends를 없애는 과정이 있다.

스텝 ③에 대해서는 시스템 식별 도구상자는 모든 가장 일반적인 블랙 박

스 입력-출력 구조 그리고, 상태 공간 구조뿐만 아니라, 다양한

Page 18: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 16 -

nonparametric 모델들을 제공한다. 그리고, 또한 이산 시간과 연속 시간에

서 일반적인 tailor-made 선형 상태 공간 모델을 제공한다.

스텝 ④에서는 일반적인 예측 오차(maximum likelihood) 방법과 도구변수

방법 과 sub-space 방법이 parametric 모델에 대해서 제공된다. 반면에 기

본적인 상관해석과 스펙트럼 해석 방법들은 nonparametric 모델 구조에서

사용된다.

스텝 ⑤에서 모델을 시험하기 위해 ,모델을 사용한 예측과 시뮬레이션뿐

만 아니라 주파수 함수와 극점과 영점을 표현하고 계산하는 많은 함수를

제공한다. 함수들은 또한 연속 시간과 이산 시간 모델사이의 변환을 포함

하고 있다.

Page 19: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 17 -

5. 시스템 식별 도구박스 함수들

1). Basic Tools

이것은 상관해석과 스펙트럼 해석을 위한 기본적인 함수와 최소 자승 법

을 사용하는 ARX 모델로 불리 우는 추정을 포함하고 있다. 이것은 또한

구해진 모델을 시험하는 기본적인 함수도 제공한다. 함수들은 다음과 같다.

ar, arx bodeplot, comparey , cray, dtrendy, ffplot ,firid, laguerre,

simid, present, residy, spay, par2arx, para2ff, para2zp, zpplot

2) 모델 구조 선택

차수와 지연을 선택하는 유용한 기술을 포함한다. 그리고, 보다 일반적인

입력-출력 모델 구조 추정을 포함하고 있다. 함수들은

armax, arxstruc, bjy, etfe, firid, idfilt, iv4y, laguerre, n4sidy, oe,

poly2para, selstruc, para2poly

명령어 arx 와 iv4y 는 또한 다입력, 다출력 시스템에도 적용 가능하다.

3) 모델을 검사하고 다 입력 시스템에 대한 방법

연속시간과 이산시간 사이의 변환을 포함하고, 완벽하게 일반적인 다입

력 모델 구조 추정에 대한 함수를 포함한다.

pey, pem, predict, para2ss, para2tf, pac2pad, pad2pac

4) 회귀형 식별

계수 추정의 회귀형(적응, 온라인) 방법들은 다음과 같은 함수들을 포함한

다.

rarmax, rarx, rbj, roe, rpem, rplr

5) 상태 공간 모델링

상태 공간 형태에서 모델(연속시간 과 이산시간 모두)을 만들기 위해, 그

리고, 다 출력 구조를 다루기 위한 함수는 다음과 같다.

Page 20: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 18 -

canstart, fixpar, modstruc, ms2para, unfixpar

Page 21: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 19 -

6. Nonparametric Model Estimation

이 장에서는 시스템 식별 도구상자에서 사용되는 기본적인 함수들을 소개

한다. 여기서 표현된 함수들을 사용할 때 모든 옵션이 가능한 것은 아니다.

: PART Ⅱ를 참고해라.

Data Representation

측정된 출력과 입력 신호(y(t)와 u(t))들은 시스템 식별 도구상자에서는 열

벡터로서 표현된다. k번째 행은 샘플 수 k와 같다. 다변수 시스템에 대해

각각의 입력(출력) 내용은 열벡터로 표현된다. u는 nu 행렬에 의해 N이 된

다. (N=샘플링된 측정의 수, nu= 입력 신호의 개수).

이들 출력-입력 데이터는 명령어 idploty을 사용해서 그래프로 도시될 수

있다.

idplot(y,u)

이것은 시각적으로 입력과 출력의 모든 결합을 그래프로 도시한다.

시스템 식별 도구상자에서 몇몇 함수들은 단지 하나의 출력 데이터(ny=1)

에만 적용되고, 또는 하나의 입력과 하나의 출력 데이터에만 적용되는 것

도 있다. (ny=1, nu=1).

Correlation Analysis

상관해석은 “시스템 식별 문제“에서 나타난 함수 cray를 사용해서 구현된

다.

ir = cray(y,u)

이 함수는 벡터 ir 로 추정된 임펄스 응답 값을 반환한다. 이것은 또한 선

택적으로 whitening filter의 성공 여부를 검사하기 위해 y와 u에 대해 추

정된 상관함수를 도시할 수도 있다. 추정된 임펄스 응답으로부터 단위계단

응답은 쉽게 구할 수 있다.

// ex6_1.cem

load dryer2

y=dtrendy(y2(1:300));

u=dtrendy(u2(1:300));

ir=cray(y,u);

sr=cumsum(ir);

Page 22: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 20 -

t=[1:20]';

plot(t,sr);

Spectral Analysis

함수 spay 는 (2.35)-(2.37)의 과정을 따라 스펙트럼 해석을 한다.

[G, PHIV] = spay(y,u)

여기서, y와 u는 위에서 언급한 출력-입력 데이터들이다. G와 PHIV는 추

정된 주파수 함수 GN 과 식 (3.37)에 나와있는 추정된 외란 스펙트럼 Φv

을 포함한 행렬이다. 이들은 함수 bodeplot 이나 ffplot을 사용해서 그래프

로 도시될 수 있도록 특별한 형태(freqfunc format)로 만들 수 있다.

[G, PHIV] = spay(y,u)

bodeplot(G)

bodeplot(PHIV)

bodeplot은 로그함수 진폭과 주파수 영역(rad/sec) 그리고 선형 위상 영역

를 나타내고, ffplot은 선형 주파수 영역(Hz)을 나타낸다. 정확한 주파수 영

역을 얻기 위해서 G에 명령어 setty 혹은 spay의 선택 옵션인 샘플링 간

격을 주고 동작할 수 있다.

PHIV를 생략하면, 전달 함수 추정 G만 계산된다.

G = spay(y,u)

PHIV를 포함하면, G와 PHIV의 추정된 표준 편차들이 또한 spa를 사용해

서 반환되고 이것은 freqfunc 형태에 포함되어 있다.

만일 입력이 없고 y가 시간 급수이면, spay는 가장 최소차인 30을 기본길

이 M으로 갖는 Hamming window,W(τ)를 사용한다. 이 윈도우 크기 M

Page 23: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 21 -

는 다음과 같은 사용으로 임의의 수로 바꿀 수 있다.

[G,PHIV] = spay(y,u, M)

M이 증가할수록 추정된 주파수 함수는 좀더 정확하게 보이지만, 또한

random 외란에 더 많은 영향을 받는다. 전형적으로 다음과 같은 명령어들

은 다른 크기의 윈도우를 테스트하는 것이다.

//ex6_2.cem

load dryer2

y=dtrendy(y2(1:300));

u=dtrendy(u2(1:300));

g10 = spay(y,u,10)

g20 = spay(y,u,25)

g30 = spay(y,u,50)

bodeplot([g10 g20 g30])

경험적으로 전달 함수 추정은 다음을 사용해서 출력과 입력의 비율로서 얻

어진다.

G = etfe(y,u)

이것은 또한 데이터 길이와 같은 윈도우 크기에 대한 스펙트럼 해석 추정

으로 볼 수 있다. 단일 신호에 대해서, etfe는 스펙트럼 추정인

periodogram을 구한다.

Page 24: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 22 -

7. Parametric Model Estimation

시스템 식별 도구상자는 parametric 추정에 대한 몇 가지 함수들을 포함한

다. 이들은 모두 같은 명령어 구조를 공유한다.

para = function (y,u, paras)

입력 변수들 y와 u는 출력과 입력 시퀀스를 포함하는 열 벡터들이다. 행렬

paras 는 추정될 모델의 특정한 구조를 정한다. 결과적으로 추정된 모델은

para에 포함된다. 이것은 para 형태로 이루어진다. 이것이 시스템 식별 도

구상자에서 모델을 표현하는 기본적인 형태이다. 이 행렬에는 모델 구조와

차수, 지연, 매개 변수와 추정된 매개변수의 상호분산 추정값을 포함한다.

para 형태는 다른 유용한 모델 표현으로 변환될 수 있다. 모델 정보를 표

시하기 위해서 다음과 같은 명령어가 존재한다.

para = function(y,u,paras)

present(para)

ARX Models

ARX 모델(2.15)의 변수 a i와 b i를 추정하기 위해 함수 arx를 사용한다.

para = arx(y,u,[na nb nk])

여기서, na, nb, 그리고 nk는 정확한 모델 구조를 정의하는 식 (2.16)에서

차수와 delay를 의미한다. 함수 arx는 최소 자승 추정법을 사용해서 구현

된다.

식(2.41)과 연결하여 표현된 도구 변수(Iv) 방법을 사용할 수도 있다. 이것

은 다음과 같은 명령어를 사용해서 얻어진다.

para = iv4y(y,u,[na nb nk])

이것은 자동으로(근사적으로 최적인) 식 (2.41)에서 필터 N과 M을 선택한

다.

arx와 iv4y 모두 임의의 다변수 시스템에 적용 가능하다. ny의 출력과 nu

의 입력을 갖고 있다면, 차수들은 다음과 같이 정의된다. na는 i-j 항이

y j의 과거 값에서 y i의 현재값과 관련된 다항식의 차수를 갖고 있는

ny×ny 행렬이다. (즉, y j의 yj(t-na(i,j))까지의 과거값은 y i(t)을 예측

할 때 사용된다. ) 유사하게, ny×nu 행렬 nu 와 nk 는 각각, 출력 Y를 예

측할 때 입력 j로부터 차수와 지연을 포함하고 있다.

Page 25: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 23 -

AR Models

단일 신호 y(t)에 대해서, ARX 모델과 유사한 것이 AR 모델이다. :

A(q)y(t)=e(t) (7.1)

또한 ARX 명령어는 이런 특별한 경우도 포함한다.

para = arx (y,[ ], na)

그러나 scalar 신호들에 대해 더 많은 선택사항이 다음과 같은 명령어를

사용해서 제시된다

para = ar (y, na)

이 옵션을 사용해서 최소 자승 AR 모델 계산에 대해 몇 가지 유명한 기술

들의 집합에서 알고리즘을 선택할 수 있다. 이들은 Burg's method,

geometric lattice method, the Yule-Walker approach, 그리고 modified

covariance method 들이다. iv4y 명령어는 다음과 같다.

para = ivary (y,na)

시간 급수의 AR 부분을 계산하기 위해 도구 변수 기술을 사용한다.

FIR Models

식(2.23)에서 FIR 모델은 다음과 같이 표현된다.

y(t)=B(q)u(t-nk)+e(t)

변수 b i를 추정하기 위해 firid 명령어를 사용한다.

para = firid(y,u,[nb nk])

여기서, nb 그리고 nk는 정확한 모델 구조를 정의하는 식 (2.16)에서 A(q)

항이 없는 fir모델의 차수와 delay를 의미한다. 함수 firid는 최소 자승 추정

법을 사용해서 구현된다.

LAGUERRE Models

laguerre모델은 다음과 같이 표현된다.

y( t)= ∑n

k= 1gkL k(q,a),u (t)

변수 θ=[ g1⋯ gn]'을 추정하기 위해 laguerre 명령어를 사용한다.

para = laguerre(y,u,a,n)

laguerre 모델에 대한 계수추정은 다음과 같은 최소 자승 추정법을 사용해

서 구현되며,

Page 26: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 24 -

θ= argminθ

[y(kT)-φ(kT)'θ] 2

a와 u는 laguerre 계수들이다.

일반적인 다항식 블랙-박스 모델

예측 오차 방법(2.40)을 기반으로, 기본적인 구조의 모델을 구성할 수 있다.

일반적인 모델(2.23)에 대해, 함수는

para = pem(y,u nn)

여기서 nn는 모든 차수와 지연을 갖는다.

nn= [na nb nc nd nf nk]

pem 명령어는 블랙-박스 선형 시스템 모델의 모든 경우를 포함한다. 모든

루틴은 또한 단일 입력, 다음과 같은 형태의 다입력 시스템을 포함한다.

A(q)Y(T)=b1(q)

F 1(q)u 1(t-nk1 )+⋯+

B nu (q)

F nu (q)u nu (t-nk ν )+

C(q)D(q)

e(t) (7.2)

여기서, nb, nf 와 nk는 차수와 지연을 포함하는 입력 채널의 숫자와 같은

길이의 행 벡터이다.

nb= [nb1 ⋯ nb nu];

nf= [nf 1 ⋯ nf nu];

nk= [nk1 ⋯ nk nu];

이들 매개변수 추정 루틴은 함수(2.39)의 최소값으로 반복 찾기를 요구한

다. 이 조사는 최소 자승과 도구 변수를 기반으로 하는 특별한 시작 과정

을 사용한다. 초기 추정으로부터, 가우스-뉴턴 최소화 과정은 가우스 뉴턴

방향의 놈이 어떤 내성보다 적을 때까지 실행된다. 이 장의 끝에서 조사와

관련된 선택사항이 또한 보여진다.

루틴 pem, armax, oe와 bj는 또한 어떤 초기 값 parai에서 시작될 수 있다.

para = pem(y,u, parai)

반면에 전형적으로 초기화된 찾기는 단지 자수와 지연이 주어진 만들어진

시작 과정을 사용한다. 특정한 초기 조건으로 보내는 능력은 매우 유용하

다. 몇 개의 예제 13장에 나와 있다.

마지막 옵션에 “trace" 가 추가되면,

para = armax (y,u,nn,"trace")

이 루틴은 최소화하는 동안 화면에 손실 함수와 관련된 현재와 이전 상태

를 표시해 주고, 가우스 뉴턴 update vector와 이것의 놈을 표시해 준다.

추정치들은 열 벡터로 표시되고 변수들은 알파벳 순서로 나타난다.

Page 27: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 25 -

이들 루틴은 para의 일부분으로 추정된 변수 벡터의 추정 상호분산 행렬을

반환한다. 이것은 추정의 신뢰성을 반영한다. 상호 분산 행렬 추정은 주어

진 구조에서 “true" 표현이 얻어질 수 있다는 가정 하에 계산된다.

State-Space Models

Black-box, discrete-time, parametrizations. 먼저, 이산 시간 상태 공

간 모델의 내부 구조에 대한 사전 지식이 없다고 가정한다. 주어진 차수의

선형 모델을 생각하자. 그러면, (2.16)과 같이 상태 공간 모델 추정을 위한

두가지 다른 방법이 존재한다. 가장 간단한 것은 n4sidy를 사용하는 것이

다.

para = n4sidy (y,u, order)

이것은 상태 공간 형태 모델을 만든다. 이것은 자동적으로 조건에 가장 알

맞는 것을 선택한다. 이 알고리즘의 기본 개념은 “The system

identification problem"에 나타나 있다.

밑에 나오는 식(7.3)을 최소화하는 예측 오차 방법을 사용하는 다른 방법이

있다. n4sidy 모델에서 찾기를 초기화하는 것은 매우 좋은 생각이다. 이것

은 다음과 같은 방법으로 얻어진다.

parai = canstart (y,u order, nu)

para = pem(y,u,parai)

arbitrarily parameterized models in discrete and continuous time.

주어진 구조의 상태 공간 모델들에 대해 대부분의 시도는 구조를 정의하고

조정하는 것과 관련이 있다. 이것은 “모델 구조 정의”에서 다룬다. 일단 구

조가 paras와 같이 para 형태로 정의되면 다음과 같은 방법으로 변수들을

추정할 수 있다.

para = pem (y,u paras)

시스템이 다출력일 때 다음과 같은 규칙이 최소화하는데 사용된다.

min det ∑N

t=1e(t)eT(t) (7.3)

모르는 상호 분산 행렬을 갖는 가우시안 잡음에 대한 maximum likelihood

criterion 이다.

예측 오차 기법(2.39)나 (7.3)의 숫자형 최소화는 일반적인 모델 계수화에

Page 28: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 26 -

대해서 어려운 문제가 될 수 있다. 자유 변수의 함수로서 이 규칙은 좁은

지역에서 많은 local minima를 갖는 복잡한 경우로 정의할 수 있다. 이것

은 사용자로부터 합리적인 초기 변수 값과 또한 다른 것들이 자유롭게 되

는 동안 어떤 변수 값 고정을 제공하는 substantial interaction을 요구한다.

pem는 쉽게 그들의 공칭값으로 변수들을 고정시킬 수 있다. fixpar와

unfixpar 함수들이 또한 사용될 수 있다. 상태 공간 모델에 대해서 종종 사

용되는 과정은 동적 부분의 합리적인 모델이 얻어질 때만 K 행렬에서 잡

음 변수를 자유롭게 하는 것이다. “some Special Topics"를 참고해라.

Optional Variables

함수 pem, arma, oe, 그리고 bj는 하나 이상의 출력 뿐만 아니라 최소화에

영향을 주는 3개의 추가 입력 선택사항을 갖고 있다.

[para, iter_info ]= bj (y,u, nn, maxiter, tol,lim]

형식은 다른 함수들과 일치한다. 이들 변수들이 주어지지 않으면, 기본 값

이 이들 값으로 지정된다.

maxiter : 이 변수는 최소화를 찾는 과정에서 행해지는 iterations의 최대

개수를 결정한다. 기본 값은 10이다. maxiter의 값을 0으로 설정하면 시작

과정으로부터 추정을 반환한다.

tol : iterations들은 가우스 뉴턴 updata vector의 놈이 tol 값보다 적을 때

까지 계속된다. iterations는 또한 maxiter에 도달했을 때 정지한다.

잡음과 관련된 변수들은(C와 D) 종종 동적 변수(A, B, 그리고 F)를 추정

하는 것보다 어렵다.

lim : 이차형 공식(2.39)는 가중치가 큰 예측 오차에 어떻게 연관이 되는

지를 보여준다. robust 추정 기법을 사용해서 이들의 영향을 제한할 수 있

다. 추정 함수 ar, bj, max, oe 그리고 pem에서 예측 오차는 lim을 2차형,

가중치보다 선형으로 실행하는 것 보다 크다.

lim의 기본 값은 1.6 이다. lim=0은 robust 추정이 안되고 순수한 이차형

공식을 사용한다. 표준 편차는 0.7로 나누어지는 median으로부터 절대 편

차의 median 으로서 견실하게 추정된다 .

present(para)에 의해 표시되는 손실 함수는 이차형이고 data-dependent

delimiter는 최소화를 시작하기 전에 단 한번만 계산된다는 점을 주의해라.

iter_info : 이것은 iteration에 대한 정보를 제고하는 3개의 항을 갖는 열벡

터이다. 첫 번째 항은 사용된 iterations의 개수이다. 두 번째 항은 마지막

Page 29: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 27 -

iteration에서 fit의 향상이고 3번째 항은 가우스 뉴턴 search 벡터의 놈이

다. 사용된 iterations의 개수가 maxiter보다 적다면, 동시에 이 놈이 tol 보

다 크다면, 이것은 지적된 search 방향에 따라 더 나은 fit를 구할 수 없기

때문에 iteration이 무시됐다는 것을 의미한다.

스펙트럼 해석 추정에 대해서, 임의 주파수에서 주파수 함수를 계산할 수

있다.; 주파수가 행 벡터 w 로 정해진다면

[G,PHIV] = spay(y,u,M,w)

결과값 G 와 PHIV는 이들 주파수에서 계산된 것이다. 이 계산은 기본 주

파수를 사용하는 것보다 다소 느리다.

또한 logspace 함수를 사용해서 대수 공간 주파수를 만들 수 있다. 예를

들어

w= logspace(-3, pi, 128)

뒤에 오는 선택사항은 생략될 수 있고 이럴 경우 이들의 기본값이 사용된

다.

Page 30: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 28 -

8. Defining Model Structures

시스템 식별 도구상자는 다른 모델 구조들의 다양성을 광범위하게 다루기

때문에 유연한 방법으로 이들을 정의될 수 있다는 점이 매우 중요한 것이

다. 이전 장에서 어떻게 일반적인 모델(2.23)의 특별한 경우인 모델 구조가

다양한 추정 루틴 arx, iv4y, oe, bj, armax, 그리고 pem에서 차수와 지연

을 정함으로서 정의될 수 있는가 하는 것을 보았다. 이 장에서는 어떻게

모델 구조와 모델이 직접 정의될 수 있는가를 보여준다. 예를 들어

black-box 모델(2.23)에 대해서 시뮬레이션을 위한 모델을 만들 때 이것이

요구된다. 상태공간 모델 구조를 만들기 위한 명령어들이 이 장에서 소개

된다.

시스템 식별 도구상자에서 모델과 모델 구조를 표현하는 일반적인 방법은

para 형식을 사용하는 것이다. 이 장은 para 형식으로 모델을 만드는 명령

어들을 소개한다.

polynomial Black-Box Models

일반적인 입력-출력 형태(2.23)

A(q)y(t)=B(q)F(q)

u(t-nk)+C(q)D(q)

e(t) (8.1)

는 다섯 개의 다항식(A(q), B(q), C(q), D(q) 그리고 F(q) )으로 정의된다.

다항식 계수들은 차수가 줄어드는 순서의 행 벡터로 저장된다. 예를 들어

다항식

A(q) = 1+a 1q-1+a 2q

-2+⋯+a nq-n

여기서

A=[1 a 1 a 2 ⋯ a n]

시스템에서 지연은 B(q) 다항식에서 영에 의해서 정해진다. 예를 들어,

ARX 모델,

y(t)-1.5y(t-1)+0.7y(t-2)=2.5u(t-2)+0.9u(t-3) (8.2)

는 다음과 같은 다항식으로 표현된다.

A=[1 -1.5 0.7]

B=[0 0 2. 5 0.9]

(8.1)의 PARA 형태 표현은 다음과 같은 명령어를 사용해서 만들어진다.

para = poly2para(A, B, C, D, F, lam, T)

Page 31: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 29 -

여기서 lam은 백색 잡음원 e(t)의 분산값이고 T는 샘플링 간격이다. 뒤에

오는 것들은 생략될 수 있다. 시스템 (8.2)는 다음과 같은 방법으로 표현될

수 있다.

para = poly2para ([1 -1.5 0.7 ], [0 0 0.5 0.7] )

다 입력의 경우(7.2)에서 B와 F는 k번째 입력과 일치하는 k번째 행을 갖는

행렬이다. 명령어 poly2para는 또한 연속 시간 시스템을 정의하는데 사용

될 수 있다.

Multivariable ARX Models

다변수 ARX 모델은 다음과 같이 주어진다.

A(q)y(t)=B(q)u(t)+e(t) (8.3)

여기서 A(q)는 항들이 delay operator q- 1에서의 다항식을 갖고 있는

ny×ny 행렬이다. 이것은 다음처럼 표시할 수 있다.

A(q) = I ny+A 1q-1+⋯+A naq

-na (8.4)

또한 행렬로서

A(q)=

a 11(q) a 12(q) ⋯ a 1ny(q)a 21(q) a 22(q) ⋯ a 2ny(q)⋮ ⋮ ⋱ ⋮

a ny1(q) a ny2(q) ⋮ a nyny(q)

여기서 각 요소 a kj들은 delay operator q- 1로 이루어진 다항식이다.

a kj(q)= δ kj+a 1kjq

-1+⋯+ana kj

kj q-na kj (8.6)

이 다항식은 k 번째 출력에 영향을 받는 출력 j 가 얼마나 오래된 값인가

를 표시한다. 여기서, δ kj는 Kronecker-delta; 이것은 k=j 일 때 1하고 같

다. 그렇지 않으면, 0이다. 유사하게 B(q)는 ny×nu 행렬이다.

B(q) =B 0+B 1q-1+⋯+B nbq

-nb (8.7)

혹은

B(q)=

b11(q) b12(q) ⋯ b1ν(q)b21(q) b22(q) ⋯ b2ν(q)⋮ ⋮ ⋱ ⋮

bny1(q) bny2(q) ⋮ bnynu(q)

여기서,

bkjq= b1kjq

- nk kj+bnbkj q

- nb ij - nb ij+ 1

Page 32: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 30 -

입력 수 j부터 출력 수 k 까지의 지연은 nkkj이다. arx 와 iv4 명령어에서

[na nb nk ]의 항인 구조 정의와 연결하기 위해 na 는 kj 요소가 na kj인

행렬이다. 반면에 nb 와 nk 의 kj 요소는 nbkj와 nkkj이다.

모델 (8.3)의 para 형태 표현은 다음과 같이 만들어 진다.

para = arx2para (A,B,ny,nu)

여기서, ny 와 nu 는 출력과 입력 개수이다. A와 B는 다항식 (8.4)와 (8.7)

에서 정의된 행렬이다.

A=[eye(ny) A1 A2 .... Ana ]

B=[B0 B1 ... Bnb ]

다음과 같은 두 개의 출력과 세 개의 입력을 갖는 시스템을 고려해보자.

y1-1.5y1(t-1)+0.4y2(t-1)+0.7jy1(t-2)= 0.2u 1(t-4)+0.3u 1(t-5)+0.4u 2(t)-0.1u 2(t-1)+0.15u 2(t-2)+e 1(t)

y2(t)-0.2y1(t-1)-0.7y2(t-2)+0.01y1(t-2)=u 1(t)+2u 2(t-4)+3u 3(t-1)+4u 3(t-2)+e 2(t)

시스템이 정의되고 입력 u에 대해 시뮬레이션을 한다.

구조안에서 어떤 매개변수들은 알려진 값으로 고정되어 추정하지 않기 위

해 ARX 구조를 조절하기 위한 fixpar 와 unfixpar 두 개의 명령어를 사용

할 수 있다.

State-space Models with Free Parameters

기본 상태 공간 모델들은 다음과 같다.

Discrete-Time innovations Form

x(kT+T)=Ax(kT)+Bu(kT)+Ke(kT) (8.8a)

y(kT)=Cx(kT)+Du(kT)+e(kT) (8.8b)

x(0)=x0 (8.8c)

여기서 T는 샘플링 간격이고, u(kT)는 시간 kT에서 입력이고 y(kT는 시

간 kT에서 출력이다.

System Dynamics Expressed in Continuous Time

x( t)=Fx(t)+Gu(t)+ Kw( t) (8.9a)

y(t)=Hx(t)+Du(t)+w(t) (8.9b)

Page 33: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 31 -

x(0)=x0 (8.9c)

물리적인 법칙이 종종 미분 방정식으로 표현되기 때문에 연속 시간에서 계

수화된 상태 공간 모델을 정의하는 것이 더 쉬울 수도 있다. 행렬 A, G, H

그리고 D는 물리적인 항을 포함한 요소이다. 이들의 숫자 값들은 알려져

있거나 모를 수 있다. 표본 데이터를 기반으로 모르는 변수를 추정하기

위해 먼저 (8.9)를 (8.8)로 식 (2.30)을 사용해서 변환한다. 식 (8.8)에서 칼

만 게인 행렬 K 난 (8.9)에서 K는 (2.28)에서 덧셈형 잡음 w(t)와 e(t)의

특징에 의존하고 이것은 연속 시간 부분이다.

시스템 식별 도구상자는 (8.8)이나 (8.9)에서 임의의 계수화된 행렬을 정의

할 수 있다. 구조를 정의할 때, 행렬에서 알고있는 요소는 그들의 숫자 값

으로 채워지고, 반면에 모르는 요소들은 NaN으로 채워진다. 명령어

modstruc 과 ms2para를 사용한다.

The Black-Box , Discrete-Time Case

(8.8)에서처럼, 어떤 특별한 내부 구조가 없는 이산 시간 모델에 대해선, 모

델을 추정하기 위해 canstart 혹은 n4sid를 사용하는 것이 더 자연스럽다.

예 8.1 : 이산 시간 구조. 다음과 같은 이산 시간 모델을 고려하자.

x(t+1)= [ ]1 θ 1

0 1x(t)+ [ ]θ 2

θ 3

u(t)+ [ ]θ 4

θ 5

e(t)

y(t)= [10]x(t)+e(t)

x(0)= [ ]00여기엔 5개의 알려지지 않은 변수 θ i, i= 1,⋯,5을 갖고 있다. 이 구조는

다음과 같은 방법으로 para 형태로 정의된다.

//ex8_1.cem

A = [ 1 nan ; 0 1];

B = [ nan ; nan ];

C = [1 0];

D = 0;

K = [nan ;nan ];

x0 = [0 ; 0];

ms1 = modstruc (A, B, C, D, K, x0)

para1 = ms2para(ms1, "d");

Page 34: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 32 -

CEMTool>>para1

1 열부터 7 열까지

1 1 1 1 1 5 20 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 01 NAN NAN 1 0 NAN 00 1 NAN 0 0 NAN 01 0 0 0 0 0 0

8 열부터 10 열까지

8 2 00 0 210 0 00 0 00 0 00 0 01 0 02 0 00 0 0

먼저 실제 구조(알려진 그리고 알려지지 않은 변수 값)가 행렬 ms1으로

되고 그런 후 para 형태 행렬이 ms2para를 사용해서 만들어진다. 문자 “d"

는 구조가 이산 시간 구조라는 것을 지적한다. 다른 선택사항들은 e(t)의

상호 분산 행렬과 샘플링 간격 T를 정할 뿐만 아니라 알려지지 않은 변수

들의 예상 값을 정할 수 있다. 초기 값 벡터 x(0)에서 모르는 요소를 정

할 수도 있다.

canonical 형태로 계수화된 모델에 대해, 모델 구조를 정의하기 위해

modstuc 대신에 canform를 사용한다.

예제 8.2. : 연속 시간 모델 구조 다음과 같은 모델 구조를 고려하자.

x(t)= [ ]0 10 θ 1

x(t)+ [ ]0

θ 2

u(t)

y(t)= [ ]1 00 1

x(t)+e(t)

x(0)= [ ]θ 3

0

이것은 전기 모터와 일치한다. 여기서 y1(t)= x1(t)는 모터 shaft의 각 위

Page 35: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 33 -

치이고, y2(t)= x2(t)는 각속도이다. 변수 -θ 1은 모터의 역 시간 상수이

고 -θ 2/θ 1은 입력으로부터 각속도까지의 고정 게인이다. 모터는 시간 0

에서 모르는 각 위치에서 정지해 있다. θ 1는 -1 주위에 θ 2가 0.25 주위

에 있다고 가정하자. 위치 측정에서 오차의 분산이 0.01이라는 것과 각속도

가 0.1 이라는 것을 알고 있다면, 다음과 같이 사용해서 para 구조를 정의

할 수 있다.

//ex8_2.cem

F = [ 0 1 ;0 nan ]

G = [0 ; nan ];

H = eye(2);

D = zeros(2,1);

K = zeros(2,2);

x0 = [nan;0];

ms2 = modstruc (F, G, H, D, K, x0);

paraguess = [-1 0.25 0];

noisevar = [0.01 0 ;0 0.1];

para2 = ms2para ( ms2,"c", paraguess, noisevar)

CEMTool>>para2

1 열부터 7 열까지

0.0010 0.0010 -1.0000 1.0000 2.0000 3.0000 2.0000-1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.00000.2500 0.0000 0.0000 0.0000 0.0000 0.0000 0.00000.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.00000.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.00000.0000 NAN NAN 0.0000 1.0000 0.0000 0.00000.0100 0.0000 0.0000 0.0000 0.0000 0.0000 0.00000.0000 0.1000 0.0000 0.0000 0.0000 0.0000 0.0000

8 열부터 12 열까지

10.0000 1.0000 0.0000 0.0000 0.00000.0000 0.0000 21.0000 0.0000 0.00000.0000 0.0000 0.0000 0.0000 0.00000.0000 0.0000 0.0000 0.0000 0.00000.0000 NAN 2.0000 0.0000 0.00000.0000 0.0000 2.0000 0.0000 0.00000.0000 0.0000 0.0000 0.0000 0.00000.0000 0.0000 0.0000 0.0000 0.0000

구조 para2는 밑에 나오는 명령어를 사용해서 측정 데이터 Y=[y1

Page 36: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 34 -

y2],U=[u]로부터 알려지지 않은 변수 θ i를 추정하는데 사용될 수 있다.

model = pem(Y,U,para2);

최소화를 위한 반복 찾기는 paraguess에서 초기화된다. 구조는 또한 위에

서 주어진 샘플링 간격 T=0을 갖고 시스템을 시뮬레이션 하는데 사용할

수 있다. 입력 u와 잡음 e 에 대해

//ex8_3.cem

B = [0 1 0.5];

A = [1 -1.5 0.7];

para0 = poly2para(A,B,[1 -1 0.2]);

e = rand(300,2);

u = idinput(300);

para2 = setty (para0, 0.1) // 샘플링 간격 설정

y = simid([u e],para2);

idploty(y,u);

공칭 변수값 paraguess 가 사용되고, 잡음 시퀀스는 행렬 noisevar에 따라

조정된다.

모델을 추정할 때, “ 이 변수를 특정 값으로 고정시키면 어떠한 현상이 발

생하는지”, 혹은 “ 이 들 변수를 고정시키지 않으면 어떤 현상이 발생하는

지”와 같은 “neighboring" 구조를 시도할 수 있다. 구조를 정의하는데 전

체 과정을 거쳐서 하는 것보다 fixpar와 unfixpar 명령어를 사용할 수 있

다. 예를 들어 변수 x2(0)를 고정시키지 않으려면, 다음과 같이 사용한다.

Page 37: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 35 -

para = unfixpar (para2, "x0", [2 1])

초기 조건을 조정하기 위해, 함수 parainit가 또한 사용된다.

Page 38: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 36 -

9. Examining Models

일단 모델이 추정되면, 이것의 속성을 조사할 필요가 있다. 이것을 시뮬레

이션 해야만 한다. 이것의 예측값을 테스트하고, 이것의 극점과 영점 등등

을 계산해야 한다. para 형태로부터 모델을 다른 표현을 하는 방법으로 변

환해야 한다.

PARA Format :para

시스템 식별 도구상자에서 모델을 표현하는 기본적인 형태는 para 형태이

다. 이것은 사용된 모델 구조에 대한 모든 정보를 포함하고 있다. 즉, 추정

된 변수들의 값, 변수의 추정 상호분산 값, 그리고 추정된 innovations 분

산 값 등을 포함하고 있다. 이것은 또한 어떻게 모델이 만들어 졌는지에

대한 정보도 포함한다. “Defining Model Structures"에 몇가지 다른 명령어

를 사용해서 para 형태의 모델을 어떻게 만들어 지는 지 설명되어 있다.

para 형태에서 정보는 present 명령어를 사용해서 표시된다.

present(para)

모델 구조의 특징에 따라, 이 정보는 (8.1)에서의 다항식과 (8.8)혹은 (8.9)d

서의 행렬로 혹은 (8.3)에서의 ARX 다항식으로 주어진다. 변수들에 대한

추정된 표준 편차는 항상 주어진다. 다변수 ARX 모델과 상태 공간 행렬에

대해, 표준 편차는 허수를 변수들에 더한 형태로 주어진다. 다항식에 대해

이것들은 두 개의 행으로 주어진다. 예를 들어, present를 사용하면, 다음

과 같은 사항이 표시된다.

다항식 계수와 이들의 표준 편차는

B =

0.0000 0.0000 1.7345

0.0000 0.0000 0.0563

A =

1.0000 -1.5312 0.6983

0.0000 0.0214 0.0022

이것은 A(q) = 1-1.5312q-1+0.6983q-2로 해석되고 “1”의 표준 편차

는 영이다. a 1의 표준 편차는 0.0214이다. B 다항식에서 leading zeros는

“Defining Model Structures"에서 정의한 것처럼 지연을 의미한다.

Page 39: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 37 -

실제 변수들은 다음과 같은 방법으로 para 형태로부터 뽑아 낸다.

[par, p]= para2par (para)

여기서 par 은 변수를 포함하는 행벡터이고, P는 변수들의 추정된 상호 분

산 행렬이다. 다항식 모델(6.1)에 대해서, A,B,C,D와 F 다항식의 계수들은

q- 1이 증가하는 순서로 주어진다.(예제, 8.2를 봐라) B의 leading zeros들

과 leading 1들은 이들이 추정된 변수들과 일치하지 않기 때문에 생략된다.

상태 공간 모델(8.8)에 대해 이 변수들은 행렬 A가 처음에 추정된 변수들

을 행으로 하나씩 찾을 때마다 얻어진 차수로서 주어진다. B와 C도 마찬

가지이다. 이것은 연속 모델(8.9)에 대해서도 마찬가지이다. 다변수 ARX

모델에 대해 변수들의 차수는 다소 속임수가 있고 이것은 좀더 안전하게

para2arx를 사용한다.

para 형태로부터 샘플링 간격은 다음 명령어를 사용해서 구할 수 있다.

T = getty (para)

T가 음수인 것은 para가 연속 시간 시스템이라는 것을 의미한다. 그러면

시스템 abs(T)는 추정된 모델의 데이터에 대한 샘플링 간격을 의미한다.

또한 para가 시뮬레이션이나 예측에 사용될 때 샘플링 간격이 적용될 수

있다.

Frequency Function Format : ff

주파수 함수와 외란 스펙트럼은 모델 para와 일치한다. para 형태는 다음

과 같이 계산된다.

[G,PHIV] = para2ff(para)

이것은 추정된 변수들의 상호 분산으로부터 변환된 표준 편차에 따라 식

(2.11)에서의 G와 Φv 값을 반환한다. para가 연속 시간 모델이라면, 주파

수 함수들은 적절하게 계산된다. 결과 값인 행렬 G와 PHIV는 freqfunc 형

태로 주어진다. 이 형태는 주파수 함수와 스펙트럼 그리고 열 벡터로 이들

의 표준 편차를 포함한다. 첫 번째 행은 입력과 출력 개수에 대해 자세하

게 주어지는 관리적인 정보를 보장한다. 주파수 값들은 임의로 선택될

수 있지만, 기본적으로 0 사이에서 차지하는 128 값으로 설정된다. 연속

시간 모델에 대한 기본 주파수 범위는 모델을 기본으로 하는 추출된 데이

터들에 대한 Nyquist frequency을 통해 decade로 확장된다.

함수 para2ff는 특정한 입력-출력 쌍 선택과 임의의 주파수에서 주파수 함

수와 스펙트럼을 계산할 수 있는 선택사항을 갖고 있다.

Page 40: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 38 -

para가 시간 급수의 모델이라면 이것의 스펙트럼은 다음처럼 구해진다.

PHIV = para2ff(para)

주파수 형태에서 모델들은 nonparametric 추정 루틴인 spa 와 etfe에 의해

서 구해 질 수 있다.

이 세가지 함수들은 주파수 함수와 스펙트럼을 그래프로 표시할 수 있다:

bodeplot, ffplot

bodeplot(G)

은 G의 Bode diagram을 도시한다. G가 스펙트럼이라면, 진폭만이 도시된

다. 같은 다이어그램에 몇 개의 곡선을 그릴 경우에는 다음과 같이 사용한

다.

bodeplot([G1 G2 ... Gn])

표준 편차에 대한 정보가 G에 포함되어 있다면, sd 표준 편차와 일치하는

확실한 간격으로 그려진다.

bodeplot(G,sd)

명령어 ffplot은 bodeplot과 같은 구문을 갖고 있다. 그러나 이것은 선형 주

파수 영역과 Herz 단위에서 동작한다.

Zero-Pole Format: zp

명령어 para2zp는 영점, 극점을 계산하고 para와 관련된 시스템의 고정 게

인을 계산한다.

[zepo,K]=para2zp(para)

행렬 zepo는 이들의 추정된 표준 편차에 따라 모델의 영점과 극점에 대한

정보를 갖고 있다. 이것은 또한 그림을 도시하는데 사용되는 입력과 출력

개수에 대한 관리적인 정보를 갖고 있다. 유사하게 K는 고정 게인과 이들

의 표준 편차를 갖고 있다. zepo의 정보를 이용하는 가장 좋은 방법은 영

점과 극점을 다음과 같은 방법으로 도시하는 것이다.

zpplot(zepo)

표준 편차 sd와 일치하는 확실한 영역은 다음과 같은 방법으로 설명된다.

zpplot(zepo,sd)

몇 가지 모델들의 비교는 다음과 같이 구해진다.

zp1 = para2zp(para1)

zp2 = para2zp(para2)

zpplot(zpform(zp1, zp2))

zpplot은 다른 모델에 대한 정보와 다른 입력-출력 쌍을 어떻게 설명되는

Page 41: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 39 -

지 결정하기 위한 선택사항을 갖고 있다. 명령어 para2zp는 또한 다변수

모델의 경우에 특정한 입력-출력 서브 시스템의 선택이 가능하다.

함수 getzp는 영점-극점 형태로부터 확실하게 영점과 극점을 뽑아낼 수 있

다.

State-Space Format : ss

명령어

[A, B, C, D, K, X0 ] = para2ss (para)

는 para의 상태 공간 표현 행렬을 계산한다. (8.8)과 같은 이산 시간에서

혹은 (8.9)와 같은 연속 시간에서 표현은 para의 상태에 의존한다. 기본적

인 모델 구조가 상태 공간이라면, 행렬 A, B 등등, 원래 정의대로 같은

baiss에서 주어진다. 기본적인 모델이 입력-출력 다항식에서 정의되었다면,

상태 공간 표현은 관측 가능한 canonical 형태가 된다. 상태 공간 행렬은

제어 시스템 툴박스와 Signal Processing 툴박스에서 더 자세한 해석과 디

자인에 사용될 수 있다.

명령어 para2ss는 또한 상태 공간 행렬들에서 요소들의 표준 편차를 계산

할 수 있다.

Transfer Function Format : tf

para 모델과 관련된 전달 함수는 다음과 같이 계산된다.

[NUM,DEN] = para2tf (para)

NUM과 DEN은 Control System Toolbox와 System Processing Toolbox

에서 사용되는 것과 같은 형태로 주어진다. 일반적으로 행벡터인 분모

DEN과 NUM의 k번째 행은 출력 수 k와 관련된 분자 다항식을 제공한다.

para 모델이 몇 개의 입력을 갖고 있다면 문자로서 입력 개수를 정해야 한

다. 다항식들은 s나 z 혹은 q(이산 시간에서)가 줄어드는 순서로 행 벡터로

표현된다. 이것은 그래서 다항식 형태와 다르다. 예를 들어, 연속 시간 시

스템

1s(s+2)

는 다음과 같이 표현된다.

NUM = [0 0 1] 혹은 (단지, 1)

DEN = [1 2 0]

반면에 이산 시간 시스템

Page 42: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 40 -

q- 3

1-1.5q- 1+0.7q-2 =1

q3-1.5q2+0.7q(9.1)

는 다음과 같이 표현된다.

NUM = 1

DEN = [1 -1.5 0.7 0 ]

Polynomials Format ; poly

다항식 형태에서,(2.23)에서 다항식 A, B, C, D 그리고 F는 다음과 같이 주

어진다. 다항식 계수들은 열 벡터로 delay operator q- k, k = 0, ... ,에서

가 상승하는 순서로 되어 있다. 이것은 (7.1)이 다음과 같이 표현된다는 것

을 의미한다.

B = [ 0 0 0 1];

A = [ 1 -1.5 0.7];

delay들은 그래서 B에서 leading zeros들에 의해 표시된다. 전달 함수 표현

과 다르게 leading zero들은 보조적으로 주어져야 한다. A와 B의 길이가

같을 때만 형태가 결정된다. para와 일치하는 다항식들은 다음과 같은 방

법으로 얻어진다.

[A, B, C, D, F] = para2poly(para)

이것은 결국 “Defining Model Structures"에서 표현된 poly2para의 반대의

경우이다.

연속 시간 시스템들은 또한 다항식 형태로 표현될 수 있다. 그러면 다항식

들은 행 벡터들로 주어지고 전달 함수의 경우와 마찬가지로 라플라스 변수

인 s가 줄어드는 순서로 된다.

The ARX Format : arx

par 모델로부터 ARX 표현을 얻으려면

[A, B] = para2arx(para)

행렬 A와 B는 그러면 ARX 다항식을 포함한다. para2arx는 arx2par의 반

대이다.

Transformations Between Discrete and Continuous Models

Continuous-Time Models

para 형태의 모델은 내부적으로 연속 시간 모델로서 표현될 수 있다. 이것

Page 43: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 41 -

은 구조가 원래 ms2th 가 “c"를 갖는 상태 공간 모델로서 정의되면 발생

한다. 그러면 모델은 추출된 데이터를 사용해서 추정을 할 지라도 pem을

갖고 추정하는 동안 연속 시간 모델로서 남아 있다. 다항식 형태에서 (8.1)

형태의 연속 시간 모델은 또한 음수의 샘플링 간격을 갖고 poly2para를 사

용해서 얻을 수 있다. 그러나 이 구조는 더 추정을 진행시키는데 사용될

수 없다. 마지막으로, 연속 시간 모델들은 명령어 pad2pac를 사용해서 얻

어진다.

연속 시간 모델들은 음의 샘플링 간격에 의해 지적된다. 다음과 같은 방법

으로 빠르게 검사할 수 있다.

getty(para) < 0

모든 모델 변환 para2ff, para2zp, para2ss, para2tf,그리고 para2poly들은 모

델 para에 대한 연속 시간에서의 특징과 일치하는 결과를 얻는다. 시뮬레

이션과 예측에 대해서는 모델이 먼저 이산 시간으로 변환된다.

연속 시간 모델의 샘플링 간격의 절대값은 추정된 모델에 대한 데이터들의

샘플링 간격이다. 이것은 또한 par2ff에서 알맞는 기본 주파수 간격을 선택

하는데 사용될 수도 있다. T의 절대값은 모델이 시뮬레이션이나 예측할 때

사용된다.

Discrete-Time Models

이들 모델은 추정 함수 ar, armax, arx, bj, ivary, iv4y, n4sid, 그리고 oe로

부터 얻어진다. 이들은 또한 (8.1)에 적용될 때 그리고 ms2para를 “d"를 갖

고 사용해서 나온 상태 공간 모델에 적용될 때 pem으로부터 구해진다. 이

산 시간 모델들은 또한 샘플링 간격이 양이거나 기본 값에서 poly2para로

부터 구해지기도 한다. 마지막으로 이산 시간 모델들은 명령어 pac2pad를

사용해서 얻어진다.

샘플링 간격 T는 T=getty(para)를 사용해서 구한다. 이것은 적용된 모델에

대한 데이터뿐만 아니라 모델의 샘플링 간격을 지적한다. 이것은 또한

freqfunc 형태에서 적당한 주파수 영역에 사용될 수 있다.

Transformations

연속 시간과 이산 시간 모델사이의 변환은 pac2pad와 pad2pac를 이용해서

구할 수 있다. uncertainty measure가 또한 대부분의 경우에서 변환된다.

구문은

parac = pad2pac(parad)

Page 44: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 42 -

parad = pac2pad(parac, T)

이산 시간 모델이 순수한 시가 지연(nk>1)을 갖고 있다면, 기본 명령어는

연속 시간 모델을 구성하기 전에 이들을 제거한다. 이 들은 추가적인 dead

time으로 추가된다. 이것은 para2ff, pad2pac들이 한정 차원 시스템에 의한

dead time을 적절하게 선택하는 기능을 제공해 주므로 자동적으로 된다.

상호 분산 행렬은 미분을 사용해서 가우스 근사 공식에 의해 해석된다. 그

러면, cem 파일 nuderst가 불려 진다.

여기에 추정된 모델의 Bode plot과 이것의 연속 식이나 piecewise part를

비교하는 예제가 있다.

//ex9_1.cem

load dryer2

y=dtrendy(y2(1:300));

u=dtrendy(u2(1:300));

para = armax(y,u, [2 2 1 2]);

gd = para2ff(para);

parac = pad2pac(para);

gc = para2ff(parac);

bodeplot([gd gc]);

Page 45: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 43 -

Simulation and Prediction

어떤 모델이 para 형태로 주어질 때 다음과 같은 방법으로 시뮬레이션 될

수 있다.

y = simid ([u e], para)

여기서 u와 e는 입력과 잡음 시퀀스를 포함하는 열 백터(혹은 행렬)이다. e

가 생략되면 잡음이 없는 순수한 시뮬레이션이 얻어진다.

A= [1 -1.5 0.7 ];

B = [0 1 0.5];

para0 = poly2para(A,B,[1 -1 0.2])

u = idinput(400, "rbs" , [0 0.3])

e = rand(400,l)

y = simid([u e], para0)

plot(y)

주어진 입력-출력 데이터로부터 예측 오차를 계산하는 (2.38) “inverse

model"이 다음과 같은 방법으로 시뮬레이션 된다.

e = pey([y u], para)

모델 para를 기반으로 하는 출력 신호의 k-step ahead prediction을 계산하

기 위해 다음과 같은 과정을 거친다.

yhat = predict([y u], para ,k)

예측 값 y( t|t-k)는 s=t 시간까지의 u(s)의 정보와 s=t-k 까지의 시간

y(s)의 정보를 사용해서 계산된다. 실제 방법은 지난 출력에 대한 정보가

para에서 잡음 모델에 의존되어 사용된다. 예를 들어 출력 오차 모델

A=C=D=1은 과거 출력에 대한 정보가 없으므로 예측과 시뮬레이션이 동시

에 일어난다.

predict는 시간 급수 모델이 데이터의 미래 값을 얼마나 제대로 예측하는가

를 평가한다. 모델은 첫 번째 절반 데이터를 가지고 추정되고, 이것의 예측

능력을 검사하기 위해 나머지 절반 데이터를 사용한다.

idploty(y)

y1 = y(1:48), y2 = y(49:96)

para = ar(y1,4)

yhat = predict(y2, para, 6)

plot([y2 yhat])

명령어 comparey는 idsim과 predict를 포함하는 비교에서 매우 유용하다.

Page 46: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 44 -

10. Model Structure Selection and Validation

목적에 맞는 적당한 모델에 대한 가장 좋은 표현을 얻으려면, 몇 번에 걸

쳐 데이터를 해석한 후에, 여러 종류의 차수와 구조를 갖는 많은 양의 모

델을 얻고 나서 끝낸다. 이 중에 가장 좋은 것을 선택할 필요가 있다. 이것

이 model validation 문제이다.

model validation은 식별 문제에서 가장 중요한 부분이다. 그러나 이것을

행하는 절대적인 방법이 정해진 것은 아니다. 이것은 모델의 특징을 평가

하기 위해 여러 종류의 도구를 다양하게 적용해봐야 한다. 이장은 시스템

식별 도구상자를 이용해서 model validation을 하는 여러 가지 기술들을 서

술하고 있다.

Comparing Different Structures

다른 차수를 갖는 모델 구조로부터 얻어진 결과들을 비교하는 것이 일반

적이다. 상태 공간 모델에 대해서 이것은 n4sidy에서 차수에 대한 벡터 항

을 사용해서 쉽게 얻어진다.

para = n4sidy (y,u, 1:10)

이것은 가장 좋은 차수를 선택한 것으로부터 그림을 도시한다.

ARX 형태의 모델에 대해 다양한 차수와 지연이 필수적으로 명령어

arxstruc과 고려될 수 있다. 조사하고자 하는 ARX 구조 모두를 행렬 NN

으로 수집한다. NN의 각 행은 다음과 같은 형태이다.

[na nb nk]

V = arxstruc(ye,ue,yv,uv, NN)

ARX 모델은 NN에서 구조들의 각각에 대해 데이터 집합 ye, ue에 일치

하게 된다. 다음에 이들 모델들 각각에 대해, 2차형 예측 오차들은 이들이

데이터 집합 yv, uv에 적용하는 것처럼 계산된다. 결과적으로 손실 함수

들은 구조와 함께 V에 저장된다.

평가 집합 yv, uv에 대한 손실함수가 가장 작은 구조를 선택하기 위해 다

음을 사용한다.

nn = selstruc (V, 0)

이런 과정은 cross validation으로 알려져 있고 이것이 모델 선택 문제 접

근에 가장 좋은 방법이다.

일반적으로 추정된 변수들의 수를 변화시키면서 어떻게 일치 되는 가를 시

Page 47: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 45 -

각적으로 보여주는 것이 좋은 방법이다. 이 일치도의 그래프는 변수들의

수를 거쳐 다음과 같은 방법으로 구해진다.

nn = selstruc(V)

이 루틴은 그래프의 시각적 조사를 기반으로 추정하기 위한 변수들의 수를

선택하려는 시도이다. 그리고 이것은 변수들의 수에 대해 가장 잘 일치하

는 구조를 선택한다.

명령어 struc는 단일 입력 시스템에 대한 전형적인 구조 행렬 NN을 만드

는데 도움을 준다. 명령어의 전형적인 사용은

//ex10_1.cem

load dryer2

ye=y2(1:500);

ue=u2(1:500);

yv=y2(501:1000);

uv=u2(501:1000);

ye=dtrendy(ye);

ue=dtrendy(ue);

yv=dtrendy(yv);

uv=dtrendy(uv);

V = arxsturc(ye, ue, yv, uv, struc(2,2,1:10)

nn = selstruc (V, 0);

CEMTool>>nn

2 2 3

nk = nn(3) ;

V = arxstruc(ye, ue,yv,uv, struc(1:5, 1:5, nk-1: nk+1));

nn = selstruc(V)

CEMTool>>nn

2 1 3

Page 48: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 46 -

여기서 먼저 1과 10 사이의 delay를 갖고 2차형 모델을 테스트해서 delay

의 적당한 값을 정해야 한다. 가장 일치하는 지연을 선택하고 5개까지의 a

와 b 매개 변수를 갖는 ARX 모델의 모든 combination들이 선택된 값 주

의의 delay를 갖고 테스트된다.

모델이 추정된 것으로부터 같은 데이터 집합을 갖고 평가되면, 즉, yv=ye,

uv=ue, 모델 구조가 증가함에 따라 fit도 증가한다. 손실함수의 자동적인

감소에 대해 보상할 필요가 있다. 이것을 위한 몇 가지 방법이 있다. 가장

잘 알려진 기법은 Akaike's Theoretic Criterion(AIC)이다. 모델이 다른 데

이터 집합에서 테스트되는 곳에서 cross validation 상황을 시뮬레이션 한

다.

FPE는 다음과 같은 형태이다.

FPE=1+n/N1-n/N

*V

여기서, n 은 추정된 변수들의 전체 개수이고 N는 데이터의 길이이다. V

는 구조에 대한 손실 함수이다. AIC는 다음과 같은 형태이다.

AIC= log [ (1+2n/N)*V]

다른 모델의 수집에서 Akaike의 이론에 따라, 가장 작은 FPE(혹은 AIC)

를 갖는 것을 선택한다. FPE 값은 present 명령어를 사용해서 표시될 수

있고 para 행렬의 (1;1)의 항으로서 주어진다. AIC를 최소화 하는 구조는

다음과 같은 식으로 얻어진다.

nn = selstruc(V, "AIC")

Page 49: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 47 -

여기서 V는 arxstruc에 의해서 만들어 진다.

이것과 관련된 방법은 Rissanen's minimum description length(MDL) 접근

법이다. 이것은 관측된 데이터의 모든 표현에 걸쳐 가장 짧은 구조를 선택

한다. 이것은 다음과 같은 식으로 구해진다.

nn = selstruc(V, "MDL")

실질적인 잡음이 존재한다면, ARX 모델들은 동시에 잡음 특성과 시스템

동적 특성을 표현하기 위해 높은 차수가 필요하다.

(ARX 모델에 대해 잡음 모델 1/A(q)는 직접적으로 동적 모델 B(q)/A(q)

에 커플링 되어 있다. ) 다른 방법은 iv 기법을 사용해서 동적 모델만 계산

하고, 평가 데이터 집합 yv, uv에서 출력과 모델의 시뮬레이션 출력사이에

얼마나 일치하는 가를 계산하는 것이다. 이것은 다음과 같은 방법으로 얻

어진다.

V = ivstruc(ye,ue,yv,uv, NN)

V에 대한 정보는 위에서 표현한 것처럼 다루어질 수 있다. 이런 경우, V는

또한 iv 추정 해결방법으로부터 행렬의 조건 수를 포함한다. 이 행렬의

안 좋은 조건은 높은 차수의 모델이 불필요하다는 것을 지적한다.

Checking Pole-zero Cancellations

동적 모델에서 극점-영점 상쇄는 모델의 차수가 너무 높다는 것을 암시한

다. 함수 para2zp는 영점과 극점들에 대한 확실한 영역을 계산하고 다음과

같은 방법으로 도시화된다.

zpplot(para2zp(para),1)

여기서, 1은 확신할 수 있는 간격 범위에서 얼마나 많은 표준 편차가 존재

하는가를 지시한다. 확실한 영역이 겹치게 되면, 모델의 차수를 낮추기 위

한 시도를 한다.

이 검사는 모델이 arx에 의해서 만들어 질 때 필수적으로 사용된다. 밑에

서 “Comparing Different Structures" 언급된 것처럼, 차수들은 1/A(q)가

잡음 특징을 표현하기 위해 요구 되는 것으로 투입된다. B(q)/A(q)에서 상

쇄 검사는 armax, oe, 그리고 bj 모델 구조로부터 차수를 선택하는데 매우

좋은 지적을 제공한다.

Residual Analysis

식(2.38)에서 처럼 데이터와 주어진 모델사이에 관련된 잔차들은 이상적으

로 백색이고, 모델이 시스템 표현을 수정하기 위한 입력에 독립적이다.

Page 50: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 48 -

함수는

e = residy(y,u,para)

잔차 e를 계산하고 백색성과 독립적인 해석을 실행한다. e의 자동 상관 함

수와 e와 u 사이의 교차 상관함수가 계산되고 lag 25까지 표시된다. 또한

e는 백색성이고 u와 독립이라는 가정하에 이들 변수들에 대한 99%의 확

실한 간격을 표시한다.

상관 함수가 충분히 이들 확실한 간격 밖에 있다면, 모델이 시스템의 좋은

표현이라고 받아들일 수 없다. 여기에 몇 가지 조건이 필요하다.

․(2.19)의 OE 구조와 같은 모델 구조와 IV 방법(2.41)과 같은 방법은 잡

음 속성 H보다는 동적 특성 G에 초점을 더 둔다. 만약 G에 관심이 더

있다면, e의 백색성 보다는 e와 u의 독립성에 관심을 둔다.

․negative lag에 대해 e와 u사이의 상관 혹은 미래의 u(t)에 영향을 주는

현재 e(t)는 출력 피이드백을 의미한다. 이것은 모델을 거부하기 위한

이유는 아니다. negative lag에서 어떤 방법은 피이드백이 입력-출력 데

이터에서 존재할 때 제대로 동작하지 않기 때문에 상관에 관심을 두는

것이다. 그러나 모델 평가를 목적으로 할 경우에는 교차 상관 그림엣

positive lags에 초점을 둔다.

․ARX 모델(2.15)을 사용할 때, 최소 자승 방법은 자동적으로 추정에 사

용된 데이터에 대해 e(t)와 u(t-k) 사이의 상관을 만든다.

평가 과정의 일부분으로서, 다음을 사용해서 잔차를 그래프로 도시할 수

있다.

plot(e)

Noise-Free Simulations

모델이 실제 입력으로 유도될 때 이것이 측정된 출력과 같이 다시 만들어

낼수 있는지를 검사하기 위해 다음과 같은 시뮬레이션을 행한다.

yh = simid(u,para)

plot([y yh])

다음과 같은 명령어를 사용하면 위와 같은 결과를 얻는다.

comparey([y u], para)

여기서 [y u]는 모델 para를 추정할 때 사용되지 않은 데이터 집합이다. 이

것을 cross validation이라고 부른다.

Page 51: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 49 -

Assessing the Model Uncertainty

측정 데이터에서의 외란과 정확한 모델 구조의 부재로 추정된 모델은 항상

uncertainty를 갖고 있다. 대부분의 추정 과정에 의해 추정된 출력에 임의

의 외란이 있기 때문에 모델의 변이성이 존재한다. 그리고 이것은 방법들

에 대해 숫자로서 설명되고 표시될 수 있다. 이 변이성은 같은 모델을 갖

고 같은 입력 시퀀스를 갖는 다른 데이터 집합을 갖고 식별 과정을 반복해

서 만들어진 모델이 얼마다 다른가에 대한 대답이다. 이것은 모델 구조의

부적절한 선택으로 인한 시스템적인 에러 때문인 것은 아니다. 이것은

“true system"이 확실한 간격 안에 있는지 보장할 수 없다.

주파수 응답에서의 uncertainty는 다음과 같이 계산된다.

[g, phiv] = para2ff(para)

그리고 bodeplot을 사용해서 그래프로 도시할 수 있다. 시간 응답에서

uncertainty는 다음과 같은 방법으로 표시된다.

simsdid(u, para)

열 개의 가능한 모델들이 그려진다. 이들 각각의 입력 u에 대한 응답은 같

은 다이어그램에 도시된다.

이들 응답의 uncertainty는 외부적이고, 모델의 입력-출력 특성으로 고려된

다. 이것은 부적절한 여자와 외란 존재성의 영향을 반영한다.

또한 직접적으로 시뮬레이션 결과의 표준 편차를 구할 수 있다.

[Ysim, ysimsd] = simid(u, para)

내부 표현에서의 uncertainty는 추정된 변수들의 상호 분산 행렬을 명시한

다.

present (para)

그리고 극점과 영점 위치의 표준 편차가 계산된다.

zepo = para2zp (para)

그리고 zpplot을 사용해서 그래프로 표시한다. 이들 표현들에서의 매우 큰

uncertainty는 지나치게 높은 모델 차수, 부적절한 여자, 혹은 안 좋은 신

호대 잡음 비율에 의해서 유발된다.

Comparing Different Models

변수 자체보다 물리적인 의미를 갖는 모델 속성을 표시하는 것이 좋은 생

각이다. Bode plots, zero-pole plots 그리고 모델 시뮬레이션은 모두 모델

에 의해 표현된 시스템의 특성을 제공한다. 다른 특성의 여러 개의 모델들

이 관심 있는 주파수 영역에서 매우 유사한 Bode plot를 갖고 있다면, 이

Page 52: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 50 -

들은 실제 모르는 시스템을 제대로 반영하고 있다고 확신할 수 있다. 그러

면, 이들 사이에 가장 간단한 모델을 선택할 수 있다.

전형적인 식별은 몇 가지 다른 구조와 모델 속성의 평가에 추정을 포함하

고 있다. 밑에 예제가 있다.

a1 = arx(y,u,[2 2 1])

[gs, nss] = spay(y,u)

[ga1,nsa1] = para2ff(a1)

bodeplot([gs ga1])

bodeplot([nss nsa1])

zpa1 = para2zp(a1)

am2 = armax(y,u, [2 2 2 1])

[gam2,nsam2] = para2ff(am2)

bodeplot([gs gam2])

Page 53: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 51 -

zpam2 = para2zp(am2)

zpplot(zpa1);

holdon

zpplot(zpam2)

Conditioning of Prediction Error Gradient

(2.23)에서 모델의 차수가 지나치게 추정되면, 극점-영점 상쇄가 모델에서

발생하고, 예측 오차 변화도는 이론적으로 행이 부족하게 된다. 추정된 상

호 분산 행렬이 singular가 될 때 행렬의 역행렬과 가우스 뉴턴 조사법은

모호해진다.

지나치게 추정된 모델 차수들은 일반적으로 큰 추정 변수 분산과 가우스

뉴턴 벡터의 놈이 커지는 것을 볼 수 있다. 결구, 이들은 모델 차수를 지나

치게 증가시킬 때 좋은 지적을 해 준다.

Selecting Model Structures for Multivariable Systems

다변수 시스템은 종종 매우 어려운 모델이다. 기본 과정과 약간의 도움말

이 “The Basic Steps of System Identification"에 나와 있다. 이 장에서는

다변수 시스템의 식별에 대한 좀더 기술 적인 사항을 설명한다.

여기서 주어진 기본 설명은 또한 이런 시스템에 적용할 수 있다. 그러나

몇 개의 출력을 갖는 시스템에 대해서 매우 많은 수의 가능한 구조가 있

고, 매우 많은 가능성을 갖는 조직적인 테스트들이 실용적이지 못하다. 이

Page 54: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 52 -

문제가 어려운 것 중에 하나이다.

무엇보다도, 물리적인 조사가 다른 어떤 것보다 중요하다. 물리적인 계수화

된 상태 공간 모델 형태에 대한 사전 지식이 충분할 때마다. 이것을 테스

트해야 한다. 좀 더 정확한 지식이 부족할 지라도, 물리적인 조사는 차수와

지연을 먼저 암시하는데 도움을 준다.

다 출력 black-box 모델에 대해, 모델 추정에 n4sid를 사용해서 상태 공간

모델을 시도하는 것이 가장 쉽다.

다변수 ARX 모델들은 또한 쉽게 다루어 질 수 있다. 이런 모델을 만들

때, 간단한 시작으로 변수로 채워져 있는 구조를 갖는 arx를 시도하는 것

이다. 그러면, 그들의 표준 편차로서 같은 크기를 갖는 추정을 고려한다.

그리고 이것을 자동으로 0으로 보내기 위한 차수와 지연을 시도한다. arx

에 대해 각 행은 다른 것과 독립적으로 추정된다.

출력 수 I와 관련된 차수와 지연을 바꾸는 것은 다른 행과 관련된 변수 추

정을 바꾸지 않는다. 합리적인 구조가 발견되면, 이것을 갖고 iv4y를 시도

하고, 일반적인 방법으로 모델을 평가한다.

신호대 잡음 레벨이 좋지 않다고 이것이 잡음 특성을 표현하는 모델을 갖

는데 중요하다면, 상태 공간 모델을 시도해라.(이들은 다변수 ARMAX 모

델과 같다.)다시, 특정한 구조를 정하지 않고 직접 상태 공간 모델을 추정

하는 것이 더 쉽다. 이것은 n4sid를 사용해서 이루어진다.

다른 하나는 canonical 상태 공간 형태를 사용해서 예측 오차 방법을 적용

하는 것이다. 이것은 canstart 명령어를 사용해서 얻을 수 있다. 이것은

pseudo-observability 지시로부터 canonical 형태 구조를 정의한다. 이들 항

은 출력과 같은 수의 항을 갖는 벡터로 구성된다. 간단히 말하면, 인덱스

수 Kk는 yk의 얼마나 많은 지연된 값들이 yk의 현재값에 영향을 미치는

지를 나타낸다. 이런 지표들의 합은 시스템 차수와 같다. p 출력을 갖는 차

수 n의 시스템에 대한 가능한 pseudo-observability 지표들의 수는

( )np그러나, 이것은 차수 n의 거의 모든 시스템이 합이 n인

pseudo-observability 지표들의 집합과 일치하는 구조에서 표현될 수 있다

는 것을 보장한다. 시스템의 차수를 추정할 수 있고 차수와 일치하는

pseudo-obsevability 지표들의 집합을 고를 수 있다. 이들 지표들의 기본

선택은 차수만 정해졌다면, canstart에 의해서 행해진다.

canonical 형태 계수화는 입력 delay를 다룰 수 없다는 것에 주의해라. 입

Page 55: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 53 -

력(s)으로부터 특정한 delay를 다루기 위해서는 입력 시퀀스를 이동시킨다.

또한 fixpar는 어떤 canonical 형태 계수화든 행렬 K를 0으로 고정시켜서

출력 오차 구조와 일치하도록 변환할 수 있다.

Page 56: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 54 -

11. Dealing with Data

데이터로부터 정보를 뽑아내는 것은 전체적으로 직선방향 작업은 아니다.

게다가 모델 구조 선택과 validation을 결정할 필요가 있다. 데이터는 조심

스럽게 다루어야 한다. 이 장은 몇 가지 일반적인 상황을 다루는 데 조언

을 하고 있다.

Offset Levels

물리적인 플랜트로부터 데이터가 수집될 때 이들은 전형적으로 물리적 단

위에서 측정된다. 이들 raw 입력과 출력에서 level은 연속적인 방법에서

match 되지 않을 수도 있다. 이것은 모델이 level을 수정하는데 변수를 낭

비할 수 있다.

Offset들은 쉽게 다루어진다. 추정하기 전에 입력과 출력 시퀀스로부터 평

균 레벨을 유도해낸다. 평균 레벨이 물리적인 상황과 일치하지만, 이떤 값

들이 알려지지 않은 경우, 샘플 평균을 사용한다.

y=dtrendy(u);

u=dtrendy(u);

또한, dtrendy 명령어을 사용해서, piece-wise linear trends을 제거 할 수

있다.

Outliers

실제 데이터들은 안 좋은 환경들에 의해 영향을 받을 수 있다. ; 일반적이

지는 않지만 매우 큰 외란, 일시적인 센서나 변환기 고장 등. 이들 outliers

들은 모델에 매우 강하게 영향을 주지 않는 점이 중요하다.

오차 규정의 robustification은 여기에 도움이 되고, 그러나 이것은 항상, 특

별히 큰 값에 대한 잔차를 검사할 때 매우 유용하다. 그리고 큰 값을 유발

하는 원래 데이터를 계산한다. raw 데이터가 명백히 error가 존재한다면,

이들은 smoothed 될 수 있다. 그리고 추정 과정이 반복된다.

Filtering Data

모델에 대한 관심을 특정한 주파수 밴드에 초점을 둘 수 있다. 추정하기

전에 데이터를 필터링 하는 것은 이 밴드들을 강화하고 관심있는 영역에서

fit율을 향상시킬 수 있다. 이것은 시스템 식별 도구 상자 함수에서 idfilt로

Page 57: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 55 -

사용된다. 예를 들어, 0.02* π와 0.1* π 사이의 주파수 밴드에서 데이터를

강조하고 싶다면

zf=idfilt(y,u,5, [0.02 0.1]);

이것은 지정한 주파수 사이에 통과영역을 갖는 5차 Butterworth bandpass

필터를 사용해서 계산된다.

SITB는 관련된 문제들에 대해 다른 유용한 명령어들을 포함한다. 예를 들

어, 5의 요소에 의해 더 낮은 샘플링 비율를 원한다면,

z5 = idresamp(y,u 5);

를 사용한다.

Feedback in Data

시스템이 폐루프에서 동작한다면, 데이터를 수집할 때, 좀더 조심해서 실행

해야만 한다.

기본적으로, 모든 예측 오차 방법들은 폐루프 데이터에 대한 것과 똑같이

동작한다. 그러나, 출력-오차 모델(2.19)과 Box-Jenkins 모델(2.21)들은 일

반적으로 H가 잡음 특성을 표현하는데 정확하지 않다고 하더라도 G의 정

확한 표현을 할 수 있다. 이것은 더 이상 폐루프 데이터에 대해서 사실이

아니다. 조심스럽게 잡음 특성들에 대한 모델을 필요로 한다.

스펙트럼 해석 방법과 도구 변수 기술들은 폐루프 데이터에 적용될 때 신

뢰할 수 없는 결과가 나온다. 이들 방법은 피이드백이 존재할 때 피해야만

한다.

피이드백이 존재하는지 검사하기 위해서, 임펄스 응답을 추정하는데 cra를

적용하는 기본 적인 방법을 사용한다. negative lags에서 임펄스 응답의 충

분한 값은 피이드백의 존재를 명백하게 지적한다. 계수화 모델이 추정되고

resid 명령어가 적용될 때, 잔차와 주어진 입력들 간의 상관관계 그래프를

도시한다. negative lags에서 충분한 상관은 입력 발생에서 출력 피이드백

을 지적한다. 피이드백을 테스트하는 것은 모델 validation의 자연스런 부

분이다.

Delays

모델 구조에서 지연 nk의 선택은 좋은 식별 결과를 얻기 위한 가장 중요

한 단계이다. cray를 사용한 임펄스 응답 추정을 통해 시스템에서 지연에

대한 아이디어를 얻을 수 있다. 부정확한 지연들이 또한 계수화 모델에서

보여질 수 있다. Underestimated delays(nk가 매우 작음)들은 그들의 표준

Page 58: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 56 -

편차와 비교해서 bk 추정의 매우 작은 값을 보여준다. Overestimated

delay(nk가 매우 큼)들은 일반적으로 빠진 bk 항과 일치하는 lags에서 잔

차와 입력사이에서 충분한 상관으로서 보여진다.

가장 좋은 과정은 2차형 모델과 함께 모든 feasible delays를 테스트하기

위해 arxstruc를 사용해서 시작하는 것이다. 더 나은 모델링에 대해 가장

좋은 fit를 주는 delay를 사용한다. 다른 만족스러운 구조를 발견했다면, 다

양한 nk가 구조내의 공칭 값 주의에 있고 결과를 평가한다.

Page 59: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 57 -

12. Recursive Parameter Estimation

많은 경우에서, 입력-출력 데이터가 나올 때마다 같은 시간에 실시간으로

모델을 추정할 필요성이 있다. 모델을 적응 제어, 적응 필터링, 혹은 적응

예측처럼 온라인 표현을 만들기 위해 필요하다. 데이터를 모으는 동안 시

스템(혹은 신호)의 특성에서의 가능한 시간 변화를 조사할 필요가 있다. 이

런 알고리즘을 위해, recursive identification, adaptive parameter

estimation, sequential estimation, online algorithms 처럼 표시한다.

The Basic Algorithm

전형적인 순환형 식별 알고리즘은

θ( t)= θ( t- 1)+K(t)(y(t)- y( t)) (12.1)

여기서 θ( t)는 시간 t에서의 계수 추정이고 y(t)는 시간 t에서 측정된 출

력이다. 게다가, y( t)는 시간 t-1까지의 측정과 시간 t-1에서의 현재 모델

을 기반으로 한 y(t)의 예측 값이다. 게인 K(t)는 현재 예측 오차

y(t)- y( t)가 변수 추정 갱신에 영향을 주는 방법을 결정한다. 이것은 전

형적으로 다음과 같이 선택된다.

K(t)=Q(t)Ψ(t) (12.2)

여기서 Ψ(t)는 y( t|θ)의 θ와 관련된 변화량이다. 마지막 기호는 θ에 의

해서 표현된 모델에 따른 y(t)의 예측 값이다. AR과 ARX 와 같은 모델

구조는 다음과 같이 쓸 수 있는 선형 회귀와 일치한다.

y(t)=ΦT(t)θ 0(t)+e(t) (12.3)

여기서 회귀 벡터 Ψ(t)는 측정된 입력과 출력값의 과거값을 포함하고

θ 0(t)는 시스템의 실제 표현을 나타낸다. 더구나 e(t)는 잡음원이다. 식

(2.15)와 비교해 보라. 자연스런 예측은 y( t)=ΨT(t)θ(t-1)이고 θ에 관

한 이것의 변화량은 정확하게 Ψ(t)가 된다.

선형 회귀형태로 쓸 수 없는 모델에 대해서, 회귀적으로 정확한 예측과 현

재 추정 θ( t-1)에 대한 변화량을 계산할 수 없다. 그러면 근사적으로

y( t)와 Ψ(t)가 대신에 사용되어야 한다.

적응 게인과 갱신이 되는 방향에 영향을 주는 행렬 Q(t)는 몇 가지 다른

방법들로 선택될 수 있다. 이것은 다음 장에서 언급하겠다.

Page 60: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 58 -

Choosing an Adaptation Mechanism and Gain

적응 문제에 대한 가장 논리 적인 접근법은 “true" 변수 θ 0가 어떻게 변

하는지에 대한 어떤 모델을 가정하는 것이다. 이들 변수들을 표현하기 위

해 하는 전형적인 선택은

θ 0(t)=θ 0(t-1)+w(t) (12.4)

여기서 w(t)는 다음과 같은 상호 분산 행렬을 갖는 백색 가우시안 잡음이

라고 가정한다.

Ew(t)wT(t) = R 1 (12.5)

관측 표현이 선형 회귀(12.3)이라고 가정한다. 식 (12.1)-(12.2)에서 Q(t)의

최적인 선택은 칼만 필터로부터 계산될 수 있다. 완벽한 알고리즘은 다음

과 같다.

θ( t)= θ( t- 1)+K(t)(y(t)- y( t)) (12.6a)

y( t)=ΨT(t) θ( t-1) (12.6b)

K(t)=Q(t)Ψ(t) (12.6c)

Q(t)=P(t-1)

R 2+Ψ(t)TR(t-1)Ψ(t)

(12.6d)

P(t)=P(t-1)+R 1-P(t-1)Ψ(t)Ψ( t)TP(t-1)

R 2+Ψ(t)TP(t-1)Ψ(t)

(12.6e)

여기서 R 2는 식 (12.3)에서의 innovations의 분산이다. : R 2=Ee 2(t)(스

칼라). 알고리즘 (12.6)은 이동 행렬 R 1을 갖는 적응 방식 칼만 필터(KF)

라 부른다. 알고리즘은 전체적으로 R 1, R 2, P(0) , θ(0)와 데이터 y(t)의

시퀀스를 정하는 것이다. 알고리즘이 선형 회귀 모델 구조로부터 시작했

음에도 불구하고, 이것은 다른 방법(12.6b)으로 y( t)가 계산되는 일반적인

경우에도 적용 가능하다.

또 다른 접근 방식은 지난 측정치를 지수적으로 감소시키는 것이다. 이것

은 밑의 식이 식(2.39)보다 시간 t에서 최소화된다는 것을 의미한다.

∑t

k= 1λ t- ke 2(k) (12.7)

여기서 λ는 명백히 1보다 작은 양수이다. 식 (12.7)에서 가중치를

τ=1/(1-λ)로 실행할 때보다 더 오래된 측정치들은 03보다 작아진다.

λ의 전형적인 값은 0.97-0.995 사이이다.

Page 61: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 59 -

식(12.7)은 선형 회귀의 경우 다음과 같은 방법으로 Q(t)를 선택해서 식

(12.6abc)을 사용해서 정확하게 최소화될 수 있다.

Q(t)=P(t)=P(t-1)

λ+Ψ(t)TP(t-1)Ψ(t)(12.8a)

P(t)= (P(t-1)-P(t-1)Ψ(t)Ψ(t)TP9t-1)

λ+Ψ(t)TP(t-1)Ψ(t))/λ (12.8b)

이 알고리즘은 forgetting factor λ를 갖는 적응 Forgetting Factor(FF)라

고 부른다. 알고리즘은 선형 회귀의 경우 회귀형 최소자승인 RLS로서 알

려져 있다. 이 접근 방법에서 λ=1은 칼만 필터 접근방법에서

R 1=0 , R 2=1로서 같은 알고리즘을 제공한다.

세 번째 접근방법은 행렬 Q(t)가 단위 행렬의 곱이 되도록 하는 것이다.

Q(t) = γI (12.9)

이것은 또한 Ψ의 크기와 관련해서 정규화시킬 수 있다.

Q(t)= γ|Ψ(t)| 2

I (12.10)

Q(t)의 이런 선택들은 식 (12.1)에서 θ의 생성을 식(2.39) 공식의 음의 변

화 방향으로 이동시킨다. 그러므로 (12.9)는 Unnormalized Gradient(UG)라

고 부르고 (12.10)은 게인 γ를 갖는 적응 Normalized Gradient(NG) 접근

방법이라고 부른다. gradient 방법들은 또한 선형 회귀의 경우에서 LMS,

least mean squares로서 알려져 있다.

Available Algorithms

시스템 식별 도구상자는 모델 구조들에 대해 일반적인 회귀형 식별 알고리

즘을 구현한 다음과 같은 함수들을 제공한다. : rarmax, rarx, rbj, rpem,

rplr 그리고 roe. 이들은 모두 다음과 같은 기본 구문을 공유한다.

[param, yh] = rfcn(y,u,nn,adm,adg)

y와 u는 출력, 입력 데이터이고, nn은 모델 구조를 정하는 것이다. 문자

adm 과 adg는 위에 언급된 적응 기법과 적응 게인을 선택하는 것이다.

adm = "ff" ; adg = lam

은 forgetting factor lam을 갖고 식 (12.8)의 forgetting factor algorithm을

사용한다.

adm = "ug" ; adg = gam

은 게인 gam을 갖는 식 (12.9)의 unnormalized gradient approach를 사용

Page 62: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 60 -

한다. 유사하게

adm ="ng" ; adg = gam

은 식 (12.10)의 normalized gain approach를 사용한다. 이동 행렬 R1dfm

갖는 칼만 필터 접근(12.6)을 얻기 위해서는

adm = "kf" ; adg = R1

을 넣는다. R 2의 값은 항상 1이다. 식(12.6)에서 추정치 θ은 모든 행렬

R 1, R 2과 P(0)가 같은 수로 되어 있다면 영향을 주지 않는다. 그러므로

항상 R 2가 1이 되기 위해 원래 문제를 조정해야 한다.

출력 문자 param은 다른 샘플들에서 현재 모델을 포함한다. param의 행 k

는 샘플링 시간 k에서 데이터 행렬 y와 u에서 행 k와 일치하는 변수들의

순서는 알파벳 순서로 모델 변수들을 포함한다.

출력 문자 yh는 지난 측정치와 현재 모델을 기반으로 한 y(k)의 예측 값을

행 k에 포함하는 열 벡터이다. 그래서 벡터 yh는 출력의 적응 예측 값을

포함하고 또한 잡음 상쇄와 다른 적응 필터 적용에 유용하다.

또한 함수들은 θ(0), P(0).그리고 Ψ(0)을 정할 수 있도록 하는 입력 문

자를 선택항으로 제공하고 있다. 선택적 출력문자는 행렬 P와 벡터 Ψ의

마지막 값을 포함한다.

이제, rarx는 arx의 회귀형이다. 유사하게 rarmax는 armax의 회귀형이다.

rarx가 다출력 시스템을 다룰 수 없고 rpem은 상태 공간 모델을 다룰 수

없다는 점에 주의해라.

함수 rplr은 rpem의 다른 형태이다. 이것은 gradient Ψ의 다른 근사방법을

사용한다. 이것은 recursive pseudo-linear regression approach 로서 알려

져 있고, 특별한 경우로 잘 알려진 것들을 포함하고 있다. 이것이 출력 오

차 모델에 적용될 때, 이것은 HARF("ff")와 SHARF("ng")로서 알려진 방

법이다. 일반적인 확장 최소 자승(ELS) 방법이 ARMAX 모델에 대한 rplr

알고리즘이다. (nn =[ na nb nc 0 0 nk])

다음에 오는 예제는 회귀형으로 구성된 2차형 출력 오차 모델을 보여준다.

이것의 시변 변수 추정은 시간 함수로서 그래프로 도시된다.

param = roe(y,u, [ 2 2 1], "ff", 0.98)

2차형 ARMAX 모델은 ELS 방법과 칼만 필터 적응을 사용해서 회귀적으

로 추정된다. 추정된 모델의 고정 게인들이 시간 함수로서 그래프로 도시

된다.

[N,dumy] = size(y)

Page 63: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 61 -

[N1,dumu]=size(u)

dum=dumy+dumu;

param = rplr(y,u,[2 2 2 0 0 1],"kf",0.01*eye(6));

nums = sum(param(: ; 3:4)' )' ;

dens = ones(N,1)+sum(param(: ; 1:2)' )' ;

stg = nus./dens;

plot(stg)

그러나 알고리즘은 계산된 모델이 어떤 온라인 결정을 내리는데 사용될 때

실제 온라인 적용이 된다. 이것은 θ(t-1)과 P(t-1)에 갱신 정보와

φ(t-1)에서 지난 데이터들에 대한 정보를 저장하고, 다음 시간 단계를

위한 초기 단계로 정보를 사용함으로써 이루어진다. 다음에 오는 예제는

회귀형 최소 자승 알고리즘이 온라인으로 사용되는 것을 보여준다. (그림

은 단지 현재 변수 추정값만 도시된다. )

// initialization, first I/O parir y, u (scalars)

[param,yh,P,phi] = rarx(y,u,[2 2 1],"ff",0.98);

plot(1, para(1), "*"), holdon

//The online loop;

for (k = 2;50;++){

// At time k receive y, u

[para, yh, P, phi] = rarx(y, u, [2 2 1],"ff",0.98,para',P,phi);

}

plot(kk1,para1(:;1),"*",kk1,para1(:;2),"+",kk1,para1(:;3),"o",kk1,para1(:;4),"*")

Page 64: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 62 -

회귀형 알고리즘에 대한 것이 iddemo5y에 설명되어 있다.

Segmentation of Data

가끔씩 시스템이나 신호에 데이터가 수집되는 시간동안 갑작스런 변화가

존재할 수 있다. 어떤 적용에서는 변화가 발생한 시간 상수 값을 찾고 시

스템이 변하지 않는 동안 다른 segments에 대한 모델을 변환하는 것이 중

요할 수 도 있다. . 이것이 분할(segmentation) 문제이다. 시스템에서의 이

상 검출과 시간 급수에서 trend breaks의 검출은 전형적인 문제들의 두 가

지 예제가 도움이 된다.

시스템 식별 도구상자는 분할 문제를 다루기 위한 함수 segment를 제공한

다. 기본 구문은

param = segment(y,u,nn);

rarx나 rarmax와 같은 형태이다. 행렬 parm은 이장의 초기에 표현된 알고

리즘과 일치하는 형태에서 piecewise 상수 모델을 포함하고 있다.

segment에 의해 구현된 알고리즘은 변화 항 w(t)가 거의 모든 시간에서 0

인 식(12.4)와 같은 모델 표현을 기반으로 하고 있다. 그러나 가끔씩 이것

은 갑자기 시스템 변수 θ 0(t)을 바꾸기도 한다. 이들 변수들을 추정하는

몇 개의 칼만 필터들은 병렬로 동작하고 이들 각각은 시스템이 실제로 변

하는 순간에 대한 특정한 가정과 일치한다. 이들 가정된 시스템 동작들의

상대적 신뢰도는 순간적으로 판단되고, 그럴 리 없지만 hypotheses들은 새

로운 것에 의해 대체된다. 선택항목들은 식 (12.3)에서 측정 잡음 분산 R 2

의 규정과 jump할 확률, 사용하고 있는 병렬 모델들의 수를 선택할 수 있

다.

Page 65: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 63 -

13. Some Special Topics

이 장은 다양한 주제를 다루고 있다. 여기에 있는 대부분의 정보는 매뉴얼

의 다른 부분에서 이미 언급된 것들이다. 그러나 매뉴얼을 좀처럼 모두 읽

지 않기 때문에 여기서 특정한 주제에 대한 것들을 검사할 수 있다.

Time Series Modeling

입력이 존재하지 않을 때, 일반적인 모델(8.1)은 ARMA 모델 구조로 축소

될 수 있다.

A(q)y(t)=C(q)e(t) (13.1)

여기서 C(q)=1이다.

기본적으로 모든 명령어들은 여전히 이들 시간 급수 모델들에 적용할 수

있다. 그러나 자연히 약간의 수정이 있어야 한다. 이들은 다음과 같이 서술

해 놓았다.

para = poly2th(A,[ ],C,1,[ ], lam)

y = simid(e, para)

스펙트럼 해석(etfe와 spa)와 para2ff 함수는 첫 번째 출력 문자로 y의 스

펙트럼 추정값을 반환한다.

PHIY = para2ff(para)

PHIY = spa(y)

PERIOD = etfe(y)

etfe는 스펙트럼의 periodogram 추정 값을 준다는 것에 주의해라.

armax와 arx는 같은 식으로 동작한다. 그러나 nb와 nk를 정할 필요가 없

다.

para = arx(y,[ ], na)

para = armax(y,[ ],[na nc])

arx는 또한 다변수 신호를 다룰 수 있다. 시간 급수의 상태 공간 모델은

modstruc, ms2para에서 단순히 B=[ ], D=[ ]로 정해서 구성할 수 있다.

residy는 시간 급수 모델에 대해 같은 식으로 동작하지만 어떤 입력 잔차

상관 그림을 제공하지는 않는다.

e = residy(y,[ ],para)

게다가 여기에는 2개의 명령어가 시간 급수의 AR 모델 구성에 대해 특정

하게 구성되어야 한다. 하나는

Page 66: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 64 -

para = ar(y,na)

이것은 최소 자승 AR 모델을 계산하기 위한 몇 개의 유명한 기법들로부터

알고리즘을 선택하는 선택사항을 갖고 있다. 이 중에는 Burg;s method, a

geometric lattice method, the Yule-Walker approach, 그리고 modified

covariance method 들이 있다. 다른 명령어는

para = ivary (y, na)

이것은 시간 급수의 AR 부분을 계산하기 위해 도구 변수 기법을 사용한

다.

마지막으로, 입력이 존재하지 않을 때, 함수 bj, iv, iv4 그리고 oe 는 정의

되지 않는다.

여기에 시간 급수 시뮬레이션, 스펙트럼 추정 비교, 상호분산 함수 추정 그

리고 모델 예측을 할 수 있는 예제가 있다.

ts0 = poly2para([1 -1.5 0.7], [ ]);

// the true spectrum

spe0 = para2ff(ts0);

ir = simid([1; zeros(24,1)], ts0);

// the true covariance function

Ry0 = covfy(ir, ir(25:1:-1),24);

e = rand(200,1);

y = simid(e,ts0);

t=[1:length(y)];

plot(t,y)

Page 67: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 65 -

per = etfe(y,[]);

speh = spay(y,[]);

ffplot([speh, per, spe0])

// the covariance function estimates

Ryh = covfy(y,[],24);

ir2 = simid([1;zeros(24,1)],ts0);

Ry2 = covfy(ir2, ir2(25: 1: -1),24);

t1=[1:length(Ryh)]';

plot(Ryh);holdon plot(Ry2); plot(Ry0);

Page 68: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 66 -

The Sampling Interval

시스템 식별 도구상자는 특별히 정해지지 않으면 일반화된 샘플링 간격 2

로 가정한다. 이것은 주파수 단위가 “radians per sampling interval”이 된

다는 것을 의미하고, 연속시간 모델과 이산 시간 모델사이의 모든 변환은

단위와 일치하는 숫자형 변수값으로 주어진다. 이런 경우 정확한 물리적

단위를 얻기 위해서는 샘플링 간격이 정해져야만 한다.

샘플링 간격 T를 포함하는 para 형태의 모든 모델들로부터 다음과 같은

방법으로 샘플링 간격을 찾을 수 있다.

T = getty(para)

그리고 이것은 다음과 같은 방법으로 바꿀수도 있다.

paranew = setty(paraold, T)

이것은 T의 값만을 바꾼다. 변수들은 setty에 의해 변환되지 않는다.

T가 음수인 것은 모델이 연속시간에서 주어졌다는 것을 의미한다. T의 절

대값은 추정된 모델에 대한 데이터의 샘플링 간격이다. 이것은 또한 모델

이 시뮬레이션이나 예측할 때 사용되는 샘플링 간격이기도 하다. 모든 다

른 변환들(주파수 함수, 영점과 극점, 전달 함수와 상태 공간 행렬)은 연속

시간 모델의 경우이다. para2ff의 경우 abs(T)는 주파수 범위의 기본 선택

으로 사용된다.

샘플링 간격은 para 구조를 만드는 모든 함수들에서 선택사항을 집어 넣어

정해줄 수 있다. 이것은 일반적으로 가장 마지막 항에 있다. ms2para에서

이것은 정해줄 필요가 있는 데이터 샘플링 간격이다. 모델 자체가 연속 시

가에서 계수화가 되었다 할 지라도 말이다. pem, armax, bj, 그리고 oe에서

초기 구조가 para 형태의 행렬 para로 주어지면, T의 기본 값은 para에 주

어진 것 중의 하나이다. 샘플링 간격 T는 또한 기본 주파수 범위를 결정하

기 위해 etfe, spa 그리고 para2ff에 의해 사용된다. 이산 시간 시스템에 대

해, 이 기본값은 [1:128]/.12**pi/T이고 연속 시간 시스템에서 이것은

logspace(log10(pi/abs(T)/100), log10(10*pi/abs(T)), 128)

이다. 이산 시간 기본 주파수 범위는 sett에 의해 바꿀 수 있다.

g = spay (y,u)

g = setty (g, T)

Initial Parameter Values

단지 차수와 지연만이 정해졌을 때, 함수 armax, bj, oe 그리고 pem은 초

기 값을 만들기 위해 시작 과정을 사용한다. 시작 과정은 4개의 최소 자승

Page 69: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 67 -

과 도구 변수 단계를 위해 2가지로 진행된다. 예를 들어 같은 구조의 출력

오차 모델을 추정하기 위한 초기 조건으로서 초기에 계산된 iv4y 추정치를

사용할 수 있다.

para1 = iv4y(y,u,[na nb nk])

[a,b] = para2poly(para1)

para2 = poly2para(1,b,1,1,a);

para3 = oe(y,u,para2)

또 다른 예제는 leading b 계수가 너무 작아서 하나 이상의 지연을 갖는

모델을 시도하고자 할 때이다.

para1 = armax(y,u,[3 3 2 2])

[a,b,c] = para2poly(para1)

b(3) = 0;

para2 = poly2para(a,b,c)

para3 = armax(y,u,para2);

위의 예제에서 3개에서 2개의 지연을 줄인다고 가정하자.

para1 = armax(y,u,[3 3 2 3])

[a,b,c] = para2poly(para1)

b(3) = 0.00001;

para2 = poly2th(a,b,c);

para3 = armax(y,u,para2)

상태 공간모델과 다 출력 모델에 대해, ms2para에서 구조를 정의할 때 초

기 변수 값을 적어줘야만 한다. 아니면 특정한 초기 함수 parainit를 사용

한다. 기본 접근 방법은 물리적인 상황에서 변수들의 초기 값을 선택하기

위해 물리적인 조사를 하는 것이다. 그리고 다른 것들에 대해서 다른 초

기 값을 가지고 시도한다. canonical 상태 공간 형태에서 계수화된 모델에

대해서는 시작하기 위해 canstart를 사용한다.

Linear Regression Models

선형 회귀 모델은 다음과 같은 형태이다.

y(t)=θTφ(t)+e(t) (13.2)

여기서 y(t)와 φ(t)는 측정된 값들이고 e(t)는 잡음을 표현한다. 이런 모델

들은 대부분의 적용에서 매우 유용하다. 시스템 식별 도구상자 함수 arx는

임의 개수의 입력을 사용할 수 있다. 그러므로 arx를 사용해서 임의의 선

형 회귀 모델을 다룰 수 있다. 예를 들어 다음과 같은 형태의 모델을 구성

Page 70: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 68 -

하고자 할 때,

y(t)= b0+b1u(t)+b2u2(t)+b3u

3(t) (13.3)

다음을 부른다.

y = y;

u =[ ones(u) u u.^2 u.^3 ];

para = arx (y,u,[0 1 1 1 1 0 0 0 0])

이것은 하나의 출력과 4개의 입력을 갖는 모델로 형성된다. 그러나

compary, simid 그리고 resid의 항에서 모든 모델 테스트는 앞의 모델을

위한 방법으로 동작한다. 일단 데이터 행렬 y와 u가 위와 같이 정의된다.

pem이 선형 회귀 구조에 적용될 때, 기본적으로 견실한 quadratic criterion

이 사용된다. criterion 함수의 최소화를 찾는 것은 반복적인 과정을 통해서

이루어진다.

Spectrum Normalization and the Sampling interval

함수 spa에서 스펙트럼 추정은 샘플링 간격 T에 의해 정규화된다.

Φ y(w)=T ∑M

k=-MR y( kT )e - iwTWM(k) (13.4)

여기서,

R y( kT )=1N ∑

N

l=1y( lT-kT)y( lT)

etfe에서 normalization은 위 식 (13.3)을 유지한다. 이 normalization은

Φy(w)의 단위가 “power per radians/time "이고 주파수 영역은

”radians/time " 단위이다. 그러면

Ey2(t)=12π⌠⌡

π/T

-π/TΦ y(w)dw (13.5)

sp = spay(y) ; sp = setty(sp,T)

[om,PHIY] = getff(sp);

S1 = Sum(PHIY)/length(PHIY)/T

S2 = sum(y.^2 ) / length(y)

PHIY는 w=0와 w=π/T 사이에서 주파수 단계 π/T/(length(ΦY))를 갖

는 Φy(w)를 포함한다. 합 S1은 그러므로 식(13.5)에서 적분의 rectangular

approximation이다. 스펙트럼 정규화는 Signal Processing Toolbox에서

spectrum에 의해 사용되는 것과는 다르고 위 예제가 그 차이점을 보여준

Page 71: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 69 -

다.

식(13.4)에서 T를 갖는 정규화는 또한 시간 급수가 데시미터로 될 때 같은

결과를 얻는다.

para0 = poly2para(1,[],[1 1 1 ]);

// 4th order MA-process

y = simid(randn(2000,1),para0)

g1 = spay(y)

g2 = spay(y(1:2000:4)); g2 = setty(g2,4);

ffplot([g1 g2]) // Folding effects

계수화된 잡음(시간 급수)모델에 대해

y(t)=H(q)e(t) Ee 2(t)=λ

스펙트럼은 다음과 같은 방법으로 계산된다.

Φ y(w)=λ⋅T⋅|H(e iwt)| 2 (13.6)

이것은 식(13.4)와 (13.5)와 일치한다. λT를 백색 잡음원 e(t)의 스펙트럼

밀도라고 생각한다.

계수화된 잡음 모델이 연속 시간과 이산 시간 사이의 변환, 그리고/혹은

다른 샘플링 비율에서 다시 샘플링 될 때 시스템 식별 도구상자에 있는 함

수 pac2pad, 와 pad2pac 사용한다. 이런 근사법은 스펙트럼 밀도 Tλ를 위

Page 72: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 70 -

해 변화되는 innovations e(t)의 분산값을 변환하는 동안 잡음의 대역폭과

비교해서 T가 매우 작을 때 좋은 성능을 보인다. 이것은 2가지 효과를 갖

고 있다.

․ 잡음 스펙트럼이 필수적으로 다시 샘플링 하는 동안 변하지 않기 위해

서 스펙트럼 스케일은 항상 일정하다.

․ simid를 사용해서 잡음을 갖는 시뮬레이션은 빠른 샘플링에서 실행될

때 매우 높은 수준의 잡음을 갖고 있다.

연속 시간 모델은 연속 시간 백색 잡음 외란과 측정치를 샘플링하기 전에

적절한 저역 통과 필터링을 적용해서 유도된다. 이 효과가 특정한 적용에

서는 원하지 않는다면, simid를 적용하기 전에 잡음 소스를 적절하게 조절

한다.

Page 73: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 71 -

PART Ⅱ Solver Function

AR

▷ 목적

Scalar time series에 대한 AR 모델의 계수 추정

▷ 문법

para = ar(y,n)

[para,ref1] = ar(y,n,approach,win,maxsize,T)

▷ 설명

AR 모델 구조의 매개변수들은

A(q)y(t)= e(t)

다양한 최소자승 방법을 사용해서 추정된다.

열 벡터 y는 time series data를 포함한다. 상수 n 는 추정될 모델의 차수

를 정한다. 이 루틴은 scalar 시간 급수만 가능하다는 것에 주의해라. 다변

수 데이터에 대한 사용은 arx를 사용한다.

추정치는 para 형태로 반환된다. 첫 번째 열은 zero-para 차수 모델이다.

첫 번째 행의 (1;1) 요소는 시간 급수의 놈이다.

최소 자승 AR 모델을 계산하는 몇 가지 알려진 기법을 옵션항을 사용해서

이용할 수 있다. 가능한 방법은 밑에 설명되어 있다.

approach = "fb" : the forward-backward approach, 이것이 기본 approach

이다. forward 모델에 대한 최소 자승 기법과 시간 reversed 모델에 대한

유사한 식의 합이 최소화된다.

approach ="ls" : 최소 자승 기법. 2차형 forward 예측 오차의 합이 최소화

된다.

approach="yw" : The Yule-Walker approach. 표본 상호분산으로부터 구

성된 Yule-Walker 공식이 풀어진다.

approach="burg" : Burg's lattice-based method. lattice 필터 공식이 해결

된다. forward와 backward 2차형 예측 오차들의 harmonic mean을 사용한

다.

Page 74: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 72 -

approach="gl“ : geometric lattice approach, Burg's method와 유사하지만

harmonic mean 대신에 geometric mean을 사용한다.

상호분산의 계산은 approach 항의 마지막에 0을 붙여서 위의 방법들을 억

제할 수 있다.

Windowing: 과거와 미래 데이터들이 부족하다는 정보를 다루는 기법이다.

여기에 다양하게 가능한 것이 설명되어 있다.

window="now": No windowing. approach="yw"가 사용될 때를 제외하곤

이것이 기본 값이다. 실제 측정된 데이터만이 regression 벡터를 구성하는

데 사용된다. criteria에서 합은 시간 n에서만 시작한다.

window="prw" : Pre-windowing. 빠진 과거 데이터들이 0으로 대체되고,

criteria에서 합은 시간 zero에서 시작될 수 있다.

window="pow" : Post-windowing. 빠진 마지막 데이터들이 영으로 대체되

고 합산은 시간 N+n으로 확산될 수 있다. (N은 측정 개수이다.)

window="ppw" : Pre- and Post-windowing. 이것은 Yule-Walker 접근방

법에서 사용된다.

approach와 windowing의 여러 가지 결합으로 다양한 이름을 갖고 있다.

No windowing을 갖는 최소 자승 접근방법은 상호분산 방법으로 알려져

있다. 이것은 arx 루틴에서 사용되는 것과 같은 방법이다. no windowing을

갖는 forward-backward 방법은 modified 상호분산 방법이라고 종종 부른

다. Yule-Walker 접근방법, 최소 자승 더하기 pre-and post-windowing은

상관 방법으로 잘 알려져 있다.

입력 항인 maxsize와 T는 auxvar를 참고해라.

▷예제

잡음 신호를 갖는 주어진 사인파에 대한 forward-backward nonwindowed

방법으로부터 발견된 것과 Burg's method의 스펙트럼 추정을 비교한다.

y=sin([1:300]')+ 0.5*rand(300,1);

parab=ar(y,4,"burg");

parafb=ar(y,4);

sgb=para2ff(parab);

sfb=para2ff(parafb);

bodeplot([sgb sfb]);

Page 75: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 73 -

▷ 관련함수

auxvar, arx, etfe, ivar, spay, para

Page 76: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 74 -

ARMAX

▷ 목적

ARMAX 혹은 ARMA 모델의 매개변수를 추정한다.

▷ 문법

para = armax(y,u,nn)

para = armax(y,u,nn,"trace")

[para, iter_info] = armax(y,u,nn,maxiter,tol,lim,maxsize,T,"trace")

▷ 설명

ARMAX 모델 구조의 매개변수는

A(q)y(t)=B(q)u(t-nk)+C(q)e(t)

예측 오차 방법을 사용해서 추정된다.

y,u는 열 벡터로 출력과 입력을 나타내고 nn은 다음과 같은 형태로 주어진

다.

nn = [na nb nc nk]

혹은

nn = parai

전자의 경우 na, nb, 그리고 nc는 ARMAX 모델의 차수들이고 nk는 지연

이다. 마지막의 경우 parai는 para 형태로 주어진 초기값이다. 차수에 대한

정확한 정의가 알고 싶다면 Tutorial의 2장을 참고해라.

다 입력 시스템의 경우 nb 와 nk는 k번째 항이 k번째 입력에 해당하는 차

수와 지연을 나타낸다.

만약 u가 없고 nn=[na nc]라면, armax는 y에 대한 ARMA 모델을 계산한

다.

A(q)y(t)=C(q)e(t)

para 형태로 추정된 상호분산과 추정된 매개변수를 반환한다.

armax는 다출력 모델을 지원하지 않는다. 이런 경우에는 상태 공간 모델

을 사용해라(canstart, n4si, pem)

마지막 항인 “trace"는 셈툴 창에 모델을 찾는 과정에 대한 정보를 보여준

다.

Page 77: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 75 -

임의의 선택 항인 iter_info, lim, maxiter, tol, maxsize, T는 auxvar에 설명

되어 있다.

▷ 관련함수

arx, auxvar, bjy, oe, pem, para

Page 78: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 76 -

ARX

▷ 목적

ARX나 AR 모델의 계수들을 추정한다.

▷ 문법

para=arx(y,u,nn);

para=arx(y,u,nn,maxsize,T);

▷ 설명

ARX 모델 구조의 계수들은

A(q)y(t)=B(q)u(t-nk)+e(t)

최소 자승 기법을 사용해서 추정된다.

행렬 y, u, 는 출력- 입력 데이터들이고, 여기서 y 와 u는 열 벡터들이다.

nn은 다음과 같이 주어진다.

nn= [na nb nk]

ARX 모델의 차수와 지연을 정의한다.

para는 계수들의 최소 자승 추정치를 반환한다.

입력 u가 없고 nn=na를 갖는 y에 대한 na 차수의 AR 모델은 다음과 같

이 계산된다.

A(q)y(t)=e(t)

여러 개의 입력을 갖는 모델은

A(q)y(t)=B 1(q)u 1(t-nk1 )+⋯+B nuu nu(t-nk nu)+e(t)

열 벡터로서 각 입력을 다음같이 구성해서 다루어진다.

u= [u1 ⋯ u nu]

그리고 행 벡터 nb와 nk를 사용해서 각 입력에 관계된 차수와 지연을 정

의한다.

여러 개의 출력과 입력을 갖는 모델은 nn이 각 출력 수에 대한 행을 포함

하도록 해서 다룰 수 있다.

추가적인 선택사항인 maxsize와 T 는 auxvar에 설명되어 있다. ARX 모

델 구조에서 실제 잡음항 e(t)가 백색잡음이 아니고 na가 영이 아닐 때 추

정치는 정확한 모델이 아니다. 이럴 땐 armax, bj, iv4 혹은 oe를 사용하는

것이 낫다.

Page 79: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 77 -

▷예제 :

A=[1 -1.5 0.7]; B=[0 1 0.5];

para0=poly2para(A,B);

u=idinput(300,"rbs“);

y=simid([u,rand(300,1)], para0);

para=arx(y,u,[2 2 1]);

para=[0.6849 0.6669 1.0000 1.0000 2.0000 2.0000 0.0000

-1.4897 0.0006 -0.0005 0.0000 0.0006 0.0000 0.0000

0.6826 -0.0005 0.0006 0.0001 -0.0005 0.0000 0.0000

1.0102 0.0000 0.0001 0.0025 -0.0003 0.0000 0.0000

0.6004 0.0006 -0.0005 -0.0003 0.0031 0.0000 0.0000

8 열부터 10 열까지

0.0000 0.0000 1.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000 ]

▷ 관련함수

auxvar, ar, ivy, iv4y, para

Page 80: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 78 -

ARXSTRUC

▷ 목적

단일 출력 ARX 형태의 서로 다른 모델 구조들에 대한 손실 함수를 계산

한다.

▷ 문법

v = arxstruc(ye,ue,yv,uv,NN)

v = arxstruc(ye,ue,yv,uv,maxsize)

▷ 설명

NN은 ARX 형태의 서로 다른 구조들의 수를 정의한다. NN의 각 행은 다

음과 같은 형태이다.

nn = [na nb nk]

arx에서 설명된 것과 같은 해석을 할 수 있다. 단일 입력 시스템에 대한

전형적인 NN 행렬을 쉽게 만들려면 struc를 참고해라.

ye,ue 그리고 yv, uv는 출력-입력 데이터를 포함한다. 다입력 시스템에 대

해 u는 같은 수의 행을 갖고 있고, 반면에 시간 급수에 대해서는 u가 존재

하지 않는다. NN에 의해서 정의된 모델 구조들의 각각은 데이터인 ye, ue

에 의해 추정된다. 이들 모델들에 대한 손실 함수들은 yv, uv를 사용해서

계산된다. 데이터 집합 ye,ue 그리고 yv, uv는 같은 크기일 필요는 없다.

그러나 크기가 같다면 좀 더 빠른 계산이 된다.

arxstruc은 단일 출력 시스템에서만 가능하다는 것에 주의해라.

v의 첫 번째 행은 손실 함수를 포함한다. v의 남는 행들은 차수와 지연들

이 해당하는 손실함수 밑에 주어지도록 NN의 transpose를 포함한다. v에

서의 정보를 가지고 적당한 모델 구조를 선택하기 위한 가장 좋은 방법은

selstruc을 사용하는 것이다.

maxsize에 대한 설명은 auxvar를 봐라.

▷예제

데이터 집합의 절반을 갖고 corss-validation을 사용해서 5차 차수와 하나

의 delay을 갖는 모델을 비교한다. 그런 후 validation 데이터 집합에 가장

적합한 모델 차수를 선택한다.

Page 81: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 79 -

NN = struc(1:5, 1:5,1)

V=arxstruc(y(1:200;1),u(1:200;1),y(201:400;1),u(201:400;1),NN);

nn = selstruc(V,0);

para = arx(y,u,nn);

▷ 관련함수

arx, ivstruc, selstruc, struc

Page 82: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 80 -

ARX2PARA

▷ 목적

ARX 다항식으로부터 para 형태 행렬을 구성한다.

▷ 문법

para = arx2para(A,B,ny,nu)

para = arx2para(A,B,ny,nu,lam,T)

▷ 설명

arx2para는 ARX 형태의 일반적인 다입력, 다출력 모델 구조를 표현하는

매개 변수를 포함하는 행렬을 만든다.

y(t)+A 1y(t-1)+A 2y(t-2)+⋯+A nay(t-na)=B 0u(t)+B 1u(t-1)+⋯+B nbu(t-nb)+e(t)

여기서 A k와 B k는 ny×ny 그리고 ny×nu 차원의 행렬이다. (ny는 출력

개수, 즉, 벡터 y(t)의 차원이고 nu는 입력 개수)

A와 B는 모델의 A 행렬과 B 행렬을 포함하는 행렬들이다.

A=[I A1 A2⋯Ana]

B=[B0 B1 ⋯ Bnb]

A는 항상 단위 행렬로 시작하고 모델에서 지연은 B에서 일치하는 항을 0

으로 설정함으로서 정의될 수 있다. 다변수 시간 급수에 대해 B=[]이다.

ny와 nu는 각각 출력과 입력의 개수를 나타낸다.

옵션사항인 lam은 위의 모델에서 구동 잡음원 e(t)의 상호분산 행렬을 설

정한다. 기본값은 단위행렬이다.

옵션사항인 T는 샘플링 간격을 의미한다.(기본 1)

arx2para의 사용은 2가지 경우가 있다. 먼저 이것은 시뮬레이션이나 해석

될 모델을 만드는 것이고 또한, 나중에 데이터에 적용시킬 초기 모델 값을

정할 때 이것을 사용한다. 구조에서 자유 변수들은 A와 B의 구조로 일치

된다. 즉, B의 행에서 leading zeros들은 고정된 지연으로 취급된다. Ahk

B의 trailing zeros들은 낮은 차수 다항식의 정의로서 취급된다. 이들 zeros

Page 83: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 81 -

들은 고정된다. 반면에 모든 다른 변수들은 자유로워진다. 이들 자유 변수

들의 공칭 값들은 A와 B의 값과 같도록 설정된다. 자유 변수들은 parainit

을 사용해서 바꿀 수 있고 구조는 fixpar와 unfixpar에 의해서 조정될 수

있다.

단일 출력을 갖는 모델에 대해, arx2para는 poly2para와 유사하다. 그러나

내부 표현은 다르고, arx2para에 의해서 정의된 모델 구조만이 fixpar와

unfixpar를 사용해서 조정할 수 있다.

▷예제

A1 = [-1.5 0.1;-0.2 1.5];

A2 = [0.7 -0.3;0.1 0.7];

B1 = [1;-1];

B2 = [0.5;1.2];

para0 = arx2para([eye(2) A1 A2],[[0;0],B1 B2],2,1);

u = idinput(300);

rand("normal")

e = rand(300,2);

y = simid([u e],para0);

para = arx(y,u,[[2 2;2 2],[2;2],[1;1]]);

▷ 관련함수

arx, fixpar, poly2para, para2arx, unfixpar

Page 84: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 82 -

AUXVAR

▷ 목적

보조 변수 iter_info, lim, maxiter, maxsize, tol, T을 설명한다.

▷ 문법

help auxvar

▷ 설명

함수들 대부분이 메모리 사용과 속도사이의 trade-off를 정의하는 maxsize

를 선택항으로 갖고 있다. 함수들 몇몇은 샘플링 간격 T를 정할 수도 있

다. armax, bj, oe, 그리고 pem에서 반복적인 찾기 과정은 이 세가지 변수

lim, maxiter, lim에 의해서 제어된다.

maxsize : maxsize보다 큰 항은 함수에 의해 형성되지 않는다. 대신에 알

고리즘은 for-loops으로 계산을 쪼갠다. 다소 느려질 수는 있다. maxsize의

기본 값은 idmsize에서 설정된다. maxsize의 주된 사용은 알고리즘에서 메

모리가 부족할 때 변수 크기를 제한하는데 사용한다.

T : 샘플링 간격 T를 정하는 것은 주파수 함수 영역과 pad2pac를 사용해

서 연속 시간을 변환시킬 때 정확한 시간 영역을 주고자 할 때 사용한다.

기본 값은 T=1이다.

maxiter: 이 변수는 최소화를 찾는 동안 반복이 행해지는 최대 수를 결정

한다. 기본값은 maxiter=10이다. maxiter=0은 특별한 startup 과정의 결과

를 반환한다.

tol : 반복은 Gauss-Newton 갱신 벡터의 놈이 TOL보다 작을 때까지 계

속 반복된다. 또한 알고리즘이 정해진 값보다 더 낮은 값을 찾는데 실패했

을 때 그리고 반복 최대수에 도달했을 때 이 반복은 정지된다. 기본 값은

tol=0.01이다.

lim : 이 변수는 2차형으로 수정된 식이 어떻게 큰 오차에 선형 가중치를

주는가에 대한 것을 결정한다. 자세한 사항은 “Parametric Model

Estimation"을 참고해라. lim의 기본 값은 1.6. lim=0은 robustification이 불

가능하고 아주 안 좋은 2차형 criterion을 이끌어온다.

이들 변수들의 기본 값은 이들 옵션항을 비워두거나 [ ]을 넣음으로써 사

용할 수 있다.

Page 85: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 83 -

iter_info: 이 출력 항은 반복에 대한 정보를 제공하는 armax, bj, oe 그리

고 pem과 같은 과정에서 반복적인 찾기 과정의 출력 결과이다. 이것은 행

벡터이다.

iter_info = [last_iteraion#, last_fit_improvement,

norm_of_last_search_vector];

마지막 search 벡터의 놈이 tol보다 크고, 마지막 반복의 수가 maxiter보다

작다면, 이런 방향으로는 criterion의 더 작은 값을 찾을 수 없기 때문에 반

복을 멈춘다..

▷ 관련함수

armax, bjy, oe, pem

Page 86: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 84 -

BJY

▷ 목적

Box-Jenkins 모델의 변수를 추정한다.

▷ 문법

para = bjy(y,u,nn);

para = bjy(y,u,nn,"trace")

[para, iter_info] = bjy(y,u,nn,maxiter, tol, lim,maxsize, T,"trace")

▷ 설명

Box-Jenkins모델 구조의 변수는

y(t)=B(q)F(q)

u(t-nk)+C(q)D(q)

e(t)

예측 오차 방법을 사용해서 추정된다.

다 입력의 경우, u는 행으로 서로 다른 입력을 포함하는 행렬이고, nn은

다음과 같은 형태로 주어질 수 있다.

nn =[ nb nc nd nf nk]

혹은

nn = parai

전자의 경우 nb, nc, nd, 그리고 nf는 Box-Jenkins 모델의 차수들이고 nk

는 지연이다. 후자의 경우, parai는 para형태로 주어진 초기 값이다. 모델

차수에 대한 자세한 설명은 “The system Identification Problem"을 참고해

라.

para는 결과로 나온 추정된 매개변수와 상호분산을 para 형태로 반환한다.

선택사항인 iter_info, lim, maxiter, maxsize, tol 그리고 T는 auxvar에 자

세히 설명되어 있다.

다 입력 시스템에 대해, nb, nf 그리고 nk는 입력 채널과 같은 수의 항을

갖는 행 벡터들이다. 행 넘버 I는 I번째 입력과 관련된 차수와 지연을 표

현한다.

bjy는 다출력 모델에 대해서는 사용할 수 없다. 이런 경우에는 상태 공간

Page 87: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 85 -

모델을 사용해라(canstart, n4sid, pem)

▷예제

B=[0 1 0.5];

C=[1 -1 0.2];

D=[1 1.5 0.7];

F=[1 -1.5 0.7];

para0 = poly2para(1,B,C,D,F,0.1);

e =rand(200,1);

u=idinput(200);

y=simid([u e],para0);

parai =bjy(y,u,[2 2 2 2 1]);

para = bjy(y,u,parai);

present(para)

▷ 관련함수

armax, auxvar, oe, pem

Page 88: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 86 -

BODEPLOT

▷ 목적

Bode diagram 형태로 주파수 함수 그림을 도시한다.

▷ 문법

bodeplot(g)

bodeplot([g1 g2 ... gn]);

bodeplot(g,sd,C,mode)

▷ 설명

g는 그래프로 그려질 주파수 데이터를 포함한다. 주파수 함수들은 같은 주

파수에서 정해질 수 없다. 그러나 같은 수의 값을 갖고 있어야만 한다.

주파수 함수가 para2ff,혹은 spay 에 의해서 만들어지고, sd가 영보다 큰

수로 정해진다면, 함수에 대한 확실한 간격은 그래프에 점선 곡선으로 그

려진다. 이것은 sd 표준 편차와 일치하는 확실한 영역을 지적한다.

진폭 그림에서 절대값의 대수는 지적한 표준 편차를 더하기와 빼기를 도

시한다. 후자의 값은 가끔씩 음수가 되기도 하고 결과적으로 에러 메시지

가 나타난다. 그러나 결과로 나온 그림은 여전히 의미가 있다고 볼 수 있

다.

기본적으로 진폭과 위상 그림은 g에 존재하는 각각의 입력에 대한 그림이

다. 스펙트럼에 대해서 위상 그림은 생략된다.

진폭 그림만 도시하려면 C="A"를 사용한다. 위상 그림만 그릴 려면, C="p"

를 사용한다. 기본은 C="b"로 두 개 모두 도시한다.

같은 다이어그램 안에 여러 개의 그림을 도시하려면 mode="same"을 사용

한다.

g가 여러 개의 출력에 대한 정보를 포함한다면, 이들 그림들은 분리 되어

주어진다.

▷ 관련함수

etfe, ffplot, fetff, spay, para2ff

Page 89: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 87 -

CANFORM

▷ 목적

다변수 상태 공간 canonical 형태 모델 구조를 정의한다.

▷ 문법

ms = canform(order, nu)

ms = canform(order, nu, dkx)

▷ 설명

modstruc과 같이 canform은 상태 공간 형태에서 모델 계수화를 정의하는

함수이다. 이것은 ms2para에서 사용될 para형태의 모델 구조를 만든다. 결

과 행렬 ms의 사용은 ms2para의 입력으로만 사용된다.

고려될 모델이 다음과 같은 상태 공간 형태이다.

x( t)=A(θ)x(t)+B(θ)u(t)+K(θ)e(t)

y(t)=C(θ)x(t)+D(θ)u(t)+e(t)

함수는 연속시간과 이산 시간 경우 모두에 적용 가능하다.

orders: order들은 행렬 요소들이 고정(0이나 1)되고 자유로운 변수로 남

아 있다. orders은 출력의 개수와 같은 하의 행 벡터이다. order들의 k항은

출력의 k번째 성분을 예측하기 위해 출력의 얼마나 많은 지연된 값들이 요

구되는지를 나타낸다. 항들의 차수 합은 시스템의 차수이다.

n = sum(orders)

A행렬은 p*n 매개변수를 포함한다. 여기서, p는 출력의 개수이고 n은 상태

의 개수이다. C 행렬은 0과 1만 포함하고, 반면에 B행렬은 변수들로 채워

져 있다.

nu : 입력 개수

dkx : dkx는 추정될 상태 공간 모델 행렬의 추가적인 구조를 결정한다. 이

것은 3개의 항을 갖는 행 벡터이다.

dkx = [d, k, x]

행렬 K, D와 상태공간 모델의 초기 상태 x(0)와 관련된 항이 위에 주어졌

다.

k=1은 모델에서 K 행렬이 전체적으로 계수화 된다는 것을 의미하고, k=0

은 이 행렬이 0으로 고정될 것이라는 것을 의미한다. 이것은 출력 오차 모

Page 90: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 88 -

델이라고 부르기도 한다.

d=1 은 모델의 D 행렬이 전체적으로 계수화 된다는 것을 의미하고 d=0은

이 행렬이 0으로 고정된다는 것을 의미한다. 이것은 또한 입력과 출력사이

에 적어도 하나의 샘플의 지연이 있다는 것을 암시하기도 한다.

x=1은 초기 상태 x(0)은 계수화 된다는 것이고 x=0은 초기 상태가 0으로

고정된다는 것을 의미한다.

기본은

dkx = [0, 1, 0]

canform과 다른 하나는 함수 canstart이다. 이것은 또한 자유 변수들에 대

한 좋은 초기 추정값을 제공한다.

▷예제

자유 변수를 0으로 설정한 3개의 출력과 2개의 입력을 갖는 6차 시스템에

대한 상태 공간 행렬을 적어보자

pa =[2 1 3];

ms = canform(pa,2);

para = ms2para(ms,"c",ones(1,18+12+18)*0);

[A,B,C,D,K]=para2ss(para)

A = 0 1 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 1 0

0 0 0 0 0 1

0 0 0 0 0 0

B = 0 0

0 0

0 0

0 0

0 0

0 0

Page 91: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 89 -

C = 1 0 0 0 0 0

0 0 1 0 0 0

0 0 0 1 0 0

D = 0 0

0 0

0 0

K = 0 0 0

0 0 0

0 0 0

0 0 0

0 0 0

0 0 0

▷ 관련함수

canstart, fixpar, modstruc, ms2para, unfixpar

Page 92: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 90 -

CANSTART

▷ 목적

상태 공간 canonical 형태 모델 구조를 정의하고 초기화한다.

▷ 문법

para = canstart(y,u,orders, nu)

para = canstrat(y,u,orders, nu, dkx)

▷ 설명

orders, nu, dkx: 이들 항은 함수 canform에서 처럼 상태 공간 모델 계수

화를 정의한다. order들은 모델 차수를 주는 스칼라 값이다. 그러면 계수화

의 기본 선택이 행해진다.

출력 para는 para형태의 행렬이다. 이것은 orders, nu 그리고 dkx에 따라

상태 공간 모델 계수화를 정의한다. para에서 변수들의 값은 데이터 행렬

로부터 추정된다.

여기서 y는 각 출력에 대한 하나의 열을 갖는 출력 신호의 행렬이고, u는

입력 신호의 행렬이다.

많은 시스템에 대해 order항을 선택하는 것은 대부분의 n 차수 시스템이

합 n을 갖는 차수항의 집합에 의해 표현될 수 있다. 더 자세한 정보는

“Model Structure Selection and Validation"을 참고해라.

모델 para는 pem를 사용해서 다시 정의될 수 있다.

▷예제

2개의 입력과 2개의 출력을 갖는 시스템이 3차 모델로 추정된다.

para = canstart(y,u,3,2)

para = pem(y,u,para);

residy(y,u,para);

▷ 관련함수

canform, pem

Page 93: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 91 -

COMPAREY

▷ 목적

측정된 출력과 모의 실험한 모델 출력을 비교한다.

▷ 문법

comparey(y,u,para);

[yh, fit]=comparey(y,u,para, k, sampnr,leveladj);

▷ 설명

compare는 모델 para가 입력 u로 시뮬레이션될 때 출력 yh값을 반환한다.

결과는 측정 출력 y와 함께 도시된다. the mean square fit 가

fit=norm(yh-y)/sqrt( length(y))

계산되고 표시된다. 다 출력 시스템의 경우 이것은 각 출력 단위로 계산된

다.

k는 시뮬레이션 출력 대신에 모델 para에 따라 y의 k step ahead 예측을

계산한다. yh(t)의 계산에 모델은 t-k까지의 출력을 사용할 수 있다. k의

기본값은 inf이다. 이것은 단지 입력에 의한 시뮬레이션을 얻을 수 있다.

smapnr은 이 행 벡터에서 샘플 수만큼 도시되고 fit 계산에 사용된다. 그렇

지만 시뮬레이션/예측에는 전체 데이터가 사용된다. 만약 leveladj각 ‘yes'

로 설정되면, 시뮬레이션/예측된 출력과 측정 출력들은 레벨0에서 시작하

도록 조절한다. (이것은 또한 fit 계산에도 적용된다.)이것은 데이터에서 이

동 현상을 감소시킨다.

▷ 예제

두 부분으로 분리된 데이터를 갖고, 모델을 추정하는데 하나를 사용하며,

다른 하나는 모델의 6 step ahead 예측 능력을 검사하기 위해 사용한다.

ye=y(1:250; :);

ue= u(1:250;:);

yv=y(250: 500;:);

uv=y(250: 500;:);

Page 94: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 92 -

para = armax (ye, ue, [ 2 3 1 0])

comparey(yv, uv, para, 6);

▷ 관련함수

dsimid, predict

Page 95: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 93 -

COVFY

▷ 목적

시간 급수 상호분산 함수를 추정한다.

▷ 문법

R = covfy(y,u,M)

R = covfy(y,u,M,maxsize)

▷ 설명

y와 u는 출력, 입력 데이터이고 M은 추정된 상호분산에 대한 최대 지연-1

이다.

R은 nz 2×M 행렬로 반환된다.

z=[y u];

R(i+(j-1)nz, k+1) = R ij( k)=1N

∑t= 1

z i(t)z j(t+k)

여기서, z j는 z의 j번째 열이다. 덧셈에서 빠진 값들은 0으로 대체된다.

선택사항인 maxsize는 auxvar에서 설명된 것처럼 메모리 크기를 제어한다.

결과를 표현하는 가장 쉬운 방법은 다음과 같이 사용하는 것이다.

reshape(R(:; k+1), nz, nz) = E z(t) *z'(t+k)

여기서, ′은 complex conjugate transpose를 의미한다. E는 샘플 평균인

기대치이다.

▷ 관련함수

spay

Page 96: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 94 -

CRAY

▷ 목적

상관 해석과 임펄스 응답 추정을 실행한다.

▷ 문법

cray(y,u);

[ir, R, cl] = cray(y,u,M, na, plot);

cray(R);

▷ 설명

출력과 입력 데이터는 y와 u로 주어진다. 모두 열벡터들이다. 이 루틴은

단일 입력 단일 출력 데이터 쌍만을 다룰 수 있다. (다변수의 경우에는

cray를 한번에 두 개의 신호에 적용한다.) cray는 prewhitens 입력 시퀀스

이다. 즉, 결과가 가능한한 상관되지 않도록 하기 위해 선택한 필터를 통해

u를 필터링한 것이다. 출력 y도 같은 필터에 의해 만들어지고 필터링된 y

와 u의 상호 분산함수들이 계산되고 그래프로 도시된다. 입력과 출력사이

에 교차 상관 함수도 또한 계산되고 그래프로 도시된다. 지상 변수들의 양

의 값은 u로부터 y의 최근 값까지 영향을 준다는 것을 의미한다. 다른 말

로, 음의 지상에 대한 충분한 상관은 y로부터 u까지의 되먹임을 지시한다.

이 상관 함수의 적절히 스케일된 버전은 또한 시스템의 임펄스 응답 ir의

추정이다. 이것은 또한 99% 확신을 갖고 그래프로 도시된다. 출력 항 ir은

첫 번째 항이 지상 zero와 같기 위한 임펄스 응답 추정치이다.

출력 항 R은 다음과 같이 상호분산/상관을 포함하고 있다. : R의 첫 번째

행은 지상항을 포함한다. 두 번째 행은 출력의 상호분산 함수를 포함한다.

3번째 행은 입력의 상호 분산함수를 포함하고, 4번째 행은 상관 함수를 포

함한다. 이 그림은 cray(R)을 사용해서 다시 도시될 수 있다.

출력항 cl은 임펄스 응답 추정에 대한 99% 확신 등급이다.

선택항 M은 계산될 상호분산/상관 함수들에 대한 lag의 개수를 정한다. R

의 길이가 2M+1이 되는 -M부터 M까지이다. 임펄스 응답은 0에서 M까지

계산된다. M의 기본값은 20이다.

prewhitening에 대해, 입력은 차수 na의 AR model에 적합하다. cray의 세

번째 항은 기본 값 na=10을 바꿀 수 있다. na=0은 원래 데이터 시퀀스의

Page 97: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 95 -

상호분산과 상관 함수가 얻어진다.

plot: plot=0은 그림이 그려지지 않고, plot=1(기본)은 추정된 임펄스 응답의

그림은 99% 확신을 갖는 영역에서 그려진다. plot=2는 모든 상호분산 함수

의 그림을 도시한다.

▷예제

상관 해석을 통해 얻어진 것과 2차형 ARX 모델의 임펄스 응답으로 얻어

진 것을 비교한다.

ir = cray(y,u);

para =arx(y,u,[2 2 1]);

imp =[1 ;zeros(19,1)];

irpara = simid(imp,para);

subplot(2, 1,1)

plot([ir irpara]);

title("impulse responsed")

subplot(2,1,2);

plot([cumsum(ir), cumsum(irpara)]);

title("step responsed");

▷ 관련함수

covfy, spay

Page 98: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 96 -

DTRENDY

▷ 목적

출력-입력 데이터로부터 trends를 제거한다.

▷ 문법

yd= dtrendy(y) ud = dtrendy(u)

yd = dtrendy(u,o,brkp) ud = dtrendy(u,o,brkp)

▷ 설명

y와 u는 열 벡터형태로 구성된 데이터 행렬이다. dtrendy는 각 행으로부터

trend를 제거하고 결과를 yd와 ud로 반환한다.

기본(o=0)은 zero-th order trends를 제거한다.

o=1은 최소 자승 fit 후에 선형 trends가 제거된다. brkp가 정해지지 않으

면, 한 개의 라인이 전체 데이터로부터 빼진다. 만약 brkp가 행 벡터에서

주어진 샘플 수에서 breakpoint를 포함한다면 연속 piecewise 선형 trend는

빼진다.

여기서, dtrendy는 Signal Processing Toolbox에서 사용되는 detrend와는

다르다는 것에 주의해라.

▷예제

샘플 수 119에서 이것의 최대치를 갖는 출력으로부터 V shaped trend를

제거하고, 입력으로부터 샘플 평균을 제거하자.

yd = dtrendy(y,1,119)

ud = dtrendy(u)

Page 99: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 97 -

ETFE

▷ 목적

전달 함수와 periodograms을 추정한다.

▷ 문법

g = etfe(y,u)

g = etfe(y,u,M,N,T)

▷ 설명

etfe는 일반적인 선형 모델의 전달 함수 g를 추정한다.

y(t)=G(q)u(t)+v(t)

행렬 y와 u는 입력과 출력의 열 벡터들이다. 이 루틴은 단일 입력, 단일

출력 시스템에 대해서만 작동한다.

시간 급수 일 경우에는 g는 y의 periodogram으로서 반환된다.

주파수 함수 형태로 주어진 g는 다음의 주파수에서 G(e iw)의 추정치를 갖

는다.

w = [1: N ]/N *pi/T

N과 T의 기본 값은 각각 128과 1이다. N은 제곱승이어야 한다.

M이 기본 값 M=[]이 아닌 다른 것을 정해질 때, raw 스펙트럼 추정에서

smoothing operation이 실행된다. M의 효과는 spay에서 M의 효과와 같다.

etfe가 시간 급수에 적용될 때, 같은 스펙트럼 추정이 “Some Special

Topics"에서 정의된 것처럼 정규화된다. 이 정규화는 Signal Processing

Toolbox에서의 spectrum에 의한 것과는 다르다는 점을 주의해라.

▷예제

경험적으로 전달 함수 추정과 smoothed 스펙트럼 추정을 비교하자.

ge =etfe(y,u);

gs = spay(y,u);

bodeplot([ge gs]);

Page 100: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 98 -

▷ 관련함수

spay

Page 101: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 99 -

FFPLOT

▷ 목적

주파수 함수와 스펙트럼을 도시한다.

▷ 문법

ffplot(g)

ffplot([g1 g2 ... gn])

ffplot(g,sd,C,mode)

▷ 설명

이 함수는 bodeplot과 같은 구문을 갖고 있다. 유일한 차이점은 이것이 선

형 주파수 범위와 주파수 단위로서 Hz을 갖고 그래프를 그린다는 점만 다

르다.

▷ 관련함수

bodeplot, getff

Page 102: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 100 -

FIRID

▷ 목적

FIR모델의 계수들을 추정한다.

▷ 문법

para=firid(y,u,nn);

para=firid(y,u,nn,maxsize,T);

▷ 설명

FIR 모델 구조의 계수들은

y(t)=B(q)u(t-nk)+e(t)

최소 자승 기법을 사용해서 추정된다.

행렬 y, u, 는 출력- 입력 데이터들이고, 여기서 y 와 u는 열 벡터들이다.

nn은 다음과 같이 주어진다.

nn= [nb nk]

ARX 모델의 차수와 지연을 정의한다.

para는 계수들의 최소 자승 추정치를 반환한다.

여러 개의 입력을 갖는 모델은

y(t)=B 1(q)u 1(t-nk1 )+⋯+B nuu nu(t-nk nu)+e(t)

열 벡터로서 각 입력을 다음같이 구성해서 다루어진다.

u= [u1 ⋯ u nu]

그리고 행 벡터 nb와 nk를 사용해서 각 입력에 관계된 차수와 지연을 정

의한다.

여러 개의 출력과 입력을 갖는 모델은 nn이 각 출력 수에 대한 행을 포함

하도록 해서 다룰 수 있다.

추가적인 선택사항인 maxsize와 T 는 auxvar에 설명되어 있다. ARX 모

델 구조에서 실제 잡음항 e(t)가 백색잡음이 아니고 na가 영이 아닐 때 추

정치는 정확한 모델이 아니다. 이럴 땐 armax, bj, iv4 혹은 oe를 사용하는

것이 낫다.

Page 103: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 101 -

FIXPAR

▷ 목적

ms2para와 arx2para에 의해 정의된 구조에서 변수들을 고정시킨다.

▷ 문법

paran = fixpar(para0,matrix)

paran = fixpar(para0,matrix,elements, parval);

▷ 설명

fixpar 함수는 특정한 값으로 특정 변수를 고정시킴으로서 이전의 para0로

부터 새로운 모델 구조 paran을 만들어 낸다. 행렬 para0는 arx,

arx2para,canstart, iv4y, ms2para에 의해서 정의되었던 것이어야 한다. 그

러나 나중에 fixpar, pem, parainit, unfixpar에 의해서 수정될 수 있다.

상태 공간 구조를 수정하기 위해

x(t)=A(θ)x(t)+B(θ)u(t)+K(θ)e(t)

y(t)=C(θ)x(t)+D(θ)u(t)+e(t)

matrix 항은 “A","B", "C", "D", "K", "x0"중의 하나로 설정한다. elements

항은 2열을 갖는 행렬이다. 각 행은 고정될 필요가 있는 선택된 시스템 행

렬에서 요소를 지적한다. 예를 들어, 행렬 A의 1, 2요소와 3,5 요소를 고정

시키기 위해서

paran = fixpar(para0,"A",[1,2;3,5]);

elements 항이 생략되면, 지시된 행렬의 모든 요소들은 고정된다. 이런 경

우 parval은 스칼라 수로 주어질 수 있다. 그리고 모든 지적된 요소들은 그

수로 고정된다.

기본은 요소들이 그들의 공칭값으로 고정된다는 것이다. 이것을 다른 값으

로 고정하기 위해 4번째의 입력항 parval을 사용한다. 이 벡터의 r번째 항

은 요소의 r번째 행에 의해 정의된 요소와 일치하는 값을 포함한다.

ARX 모델을 수정하기 위해

y(t)+A 1y(t-1)+A 2y(t-2)+⋯+A nay(t-na)=B 0u(t)+B 1u(t-1)+⋯+B nbu(t-nb)+e(t)

Page 104: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 102 -

matrix 항은 “A1", "A2", ..., "B0", "B1",... 중의 하나와 같게 설정한다. 그

러면 elements 항은 2개의 열을 갖는 행렬이다. 여기서 각 행은 고정될 필

요가 있는 선택된 ARX 행렬에서 요소을 지적한다. parval의 사용은 위에

서 상태 공간의 경우와 같다.

이 루틴은 ARX 모델 대신에 black-box 입력-출력 모델로 정의된 특별한

모델 구조에서는 적용할 수 없다. 이런 경우에는 추정하는 동안 pem의 세

번째 항을 사용해서 어떤 변수를 고정시킬 수 있다.

▷예제

스칼라 ARX 모델에서 b 2 변수를 1로 고정시키고 변수를 추정한다.

para = arx(y,u,[2 3 0];

para = fixpar(para,"B2", [1 1],1);

para =pem(y,u,para)

▷ 관련함수

parainit, unfixpar

Page 105: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 103 -

GETFF

▷ 목적

freqfunc 형태로부터 주파수 함수와 스펙트럼을 회수한다.

▷ 문법

[w, amp.phas] = getff(g)

[w,amp,phas, sdamp,sdphas] = getff(g,ku,ky)

▷ 설명

이 함수는 freqfunc 형태로부터 정보를 뽑아낸다. freqfunc 형태는 etfe,

spa 와 para2ff에 의해 얻어진 결과이다.

g는 freqfunc 형태로 주어진 주파수 함수 혹은 스펙트럼이다. ku는 선택된

입력 개수이고 ky는 선택된 출력 개수이다. 잡음원은 입력 개수 0으로 카

운트된다.

w는 주파수 값을 포함하는 벡터이다. amp는 주파수 함수의 크기의 값을

포함하고 phas는 위상 값을 포함한다. 출력항인 sdamp와 sdphas는 같은

표준 편차를 포함한다. 이 정보 모두는 입력 ku와 출력 수 ky에 대한 것이

다. g에서 몇몇 항이 입력-출력 쌍과 같다면, w, amp, phas, samp와

sdphas는 같은 수의 열을 갖는다. ky와 ky의 기본 값은 모두 1이고 g가

없다면, 스펙트럼만 갖는다. 이런 경우 getff는 출력 수 ky와 일치하는 스

펙트럼만 뽑아낸다.

▷예제

per = etfe(y,[]);

[w,amp] = getff(per);

plot(w,amp);

title("Periodogram of seismic data")

Page 106: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 104 -

Page 107: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 105 -

GETZP

▷ 목적

zepo 형태로부터 영점과 극점을 회수한다.

▷ 문법

[ze, po] = getzp(zepo)

[ze, po] = getzp(zepo,ku,ky)

▷ 설명

getzp의 기본 사용은 para2zp를 사용해서 나온 결과로부터 영점과 극점을

뽑아내고 하는 것이다. zepo는 이 정보를 포함하고 전형적으로 para2zp의

출력값이다. ku는 입력 개수이고 ky는 출력 개수를 포함한다. 잡음원 개수

k는 여기서 입력 개수-k로 카운트된다.

ze는 입력 개수 ky와 출력 개수 ky와 관련된 dynamics의 영점과 극점을

포함한다. ku와 ky의 기본값은 모두 1이다.

잡음 특성에 대해서, zepo는 일반적으로 잡음원 k에서부터 출력 수 k까지

의 단지 영점과 극점에 대한 정보만 포함한다. (no cross term).이 정보를

알아내기 위해서

[ze, po] = getzp(zepo,0,k)

▷ 관련함수

para2zp, zpform, zpplot

Page 108: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 106 -

GETMFPARA, GETNCAPY, GETTY

▷ 목적

para 형태로부터 정보를 찾아낸다.

▷ 문법

mycemfile = getmfpara(para)

N = getncapy(para)

T = getty(para)

▷ 설명

이들 함수들은 para 형태로부터 정보를 회수한다. mycemfile은 모델 구조

를 정의하고자 하는 cem-file 의 이름이다.

N은 추정된 모델 para로부터 회수할 데이터의 수이다. 모델이 추정되지 않

았다면, N=[ ]이다.

T는 모델 para의 샘플링 간격이다. T가 음수이면 모델은 샘플링 간격

abs(T)을 갖는 데이터로부터 추정된 연속 시간 모델이다.

▷ 관련함수

setty

Page 109: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 107 -

IDFILT

▷ 목적

Butterworth filters을 사용해서 데이터를 필터링한다.

▷ 문법

zf = idfilt(y,u,ord, Wn)

[zf, paraf] = idfilt(y,u,ord,Wn, hs)

▷ 설명

idfilt는 차수 ord의 Butterworth filter를 계산하고 데이터 행렬의 모든 열

을 필터링한다.

hs가 정해지지 않고 Wn이 단지 하나의 원소로 되어 있다면, cutoff 주파수

Wn을 갖는 저역 통과 필터가 얻어진다. hs=" high"이면 이 cutoff 주파수

를 갖는 고역 통과 필터가 얻어진다.

Wn=[Wn1, Wnh]가 2개의 원소로 이루어진 벡터라면, Wn1과 Wnh사이의

대역폭을 갖는 필터가 얻어지고 hs는 정해지지 않는다. hs="stop"이라면

이들 2개의 주파수 사이에 stop band를 갖는 bandstop 필터가 얻어진다.

출력 항인 paraf는 para 형태에서 주어진 필터이다.

일반적으로 식별에서는 모델과 데이터 사이에 어느 주파수 밴드에서 일치

하는가를 따져 그것을 선택하는 것에 관심을 둔다. 종종 이것은 보드 다이

어그램에서 관심 있는 breakpoints에 걸쳐 pass band를 갖는 bandpass 필

터링과 일치한다.

ord가 양의 정수라면, zero-phase 필터가 필터링에 사용된다. ord가 음의

정수라면, causal filer가 대신 사용된다.

▷ 관련함수

Page 110: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 108 -

IDINPUT

▷ 목적

전형적으로 식별에서 입력으로 사용되는 신호를 만들어 낸다.

▷ 문법

u = idinput(N)

u = idinput(N,type, band, levels)

u = idinput(N,"sine",band, levels, auxvar)

▷ 설명

idinput은 전형적으로 식별 목적에서 사용되는 다른 종류의 입력 신호를

만들어 낸다. 단지 스칼라 입력만이 만들어 진다.

N은 만들어진 데이터 포인트의 개수이다. 즉, u의 길이이다.

type은 발생될 입력 신호의 형태를 정의한다. 이것은 다음과 같은 값들 중

하나를 택한다.

type = "rs" : random, Gaussian signal

type = “rbs" : random, Binary signal

type = "prbs" : pseudo-random, binary signal

type = "sine" : 사인파의 합인 신호를 만들어 낸다.

기본 type은 “rbs"이다.

신호의 주파수 성분은 argument band에 의해 결정된다. type ="rs", "rbs

“와 ”sine" 선택에 관해서 이 항은 2개의 항을 갖는 행 벡터이다.

band =[ wlow, whigh];

pass-band의 lower와 upper bound를 결정한다. 주파수 wlow와 whigh는

나이퀴스트 주파수 부분에서 표현된다. 백색 잡음 특징 입력은 그래서

band=[0 1]에서 얻어진다. 이것은 또한 기본 값이기도 하다.

type="prbs"의 선택에 관해서는

band = [ twologp, M];

여기서 발생된 PRBS의 주기는 2^twologp -1이고 M은 길이 1/M의 간격

에 걸친 상수 신호와 같다. twologp=0은 PRBS의 최대 길이가 주어진다.

이런 경우 기본은 band=[0 1]이다.

levels 항은 입력 level을 정의한다. 이것은 행 벡터이다.

Page 111: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 109 -

levels = [minu, maxu]

신호 u는 type="rbs", "prbs" 그리고 “sine"에 대해 항상 minu와 maxu 사

이의 값이 된다. type="rs"에 대해서는 신호레벨은 minu가 신호의 평균값

에 표준 편차를 뺀것과 같고, 반면에 maxu는 평균값에 표준 편차를 더한

것이다. 영평균과 분산 1을 갖는 백색 잡음은 level=[-1 1]에서 얻어진다.

이것이 또한 기본값이기도 하다.

type="sine"에 대해서는 4개의 항이 존재한다.

auxvar = [no_of_sinusoids, no_of_trials]

입력 신호로 사용될 사인의 개수를 결정한다. no_of_trials의 값은 서로 다

른 사인파에 대해 임의의 위상을 지정함으로써 신호의 진폭을 최소화하기

얼마나 많은 시도가 행해지는지를 결정한다. 기본 값은 auxvar=[10 10]이

다.

▷ 관련함수

Page 112: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 110 -

IDMODRED

▷ 목적

para 형태에서 모델의 차수를 줄인다.

▷ 문법

PARARED = idmodred(para)

PARARED = idmodred(para, order, oe)

▷ 설명

이 함수의 para 형태로 주어진 임의의 모델 para의 차수를 줄이는 함수이

다. 차수가 줄어든 모델 parared도 또한 para 형태이다. 이 줄어든 모델은

항상 모델 자체의 속성과 상관없이 내부적으로 자유 변수가 없는 상태 공

간 형태에서 다시 표현된다.

함수는 Control Systems Toolbox에서 몇 가지 루틴을 요구한다.

order: 원하는 차수. 만약 order=[]이면(이것이 기본), 그림은 어떻게 관측가

능하고 제어가능한 Gramians들의 대각선 요소들이 표현 차수를 줄이는 가

를 보여준다. 그러면 이 그림을 기반으로 차수 선택을 시도할 수 있다. 작

은 원소는 모델의 입력-출력 동작에 부정적인 영향을 미칠 수 있다. 그래

서 차수가 선택되면, 이들 행렬에서 큰 원소만이 유지된다.

oe: oe가 “oe"로 되어 있다면, 출력 오차 모델 parared가 만들어 진다. 즉,

칼만 게인 0((2.27)과 (2,31)을 참고해라)이 0과 같다. 그렇지 않으면, 잡음

모델이 축소된다.

▷예제

고차의 다변수 ARX 모델을 만들어서 이것의 차수를 3차로 줄이고 원래

모델과 차수가 줄어 든 모델의 주파수 응답을 비교해라.

para = arx(y,u, [4*ones(3,3),4*ones(3,2), ones(3,2)])

parared = idmodred(para,3);

bodeplot([trfy(para),trfy(parared)])

3차 상태 공간 모델에 대한 초기 조건으로 줄어든 차수 모델을 사용해라.

paraI = ss2para(parared);

parass = pem(y,u, paraI);

Page 113: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 111 -

▷ 관련함수

ss2para

Page 114: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 112 -

IDPLOTY

▷ 목적

입력-출력 데이터를 도시한다.

▷ 문법

idploty(y,u)

idploty(y,u,int,T,ny)

▷ 설명

y와 u는 출력 입력 데이터이다. 위에 출력과 밑에 입력을 나타내는 그림으

로 분리된다. 행벡터 int에서 데이터 포인트를 정한다. int의 기본 값은 모

든 데이터이다. 또한 샘플링 간격 T를 사용할 수도 있다.

ny는 데이터 행렬에서 출력의 개수이다. 기본은 ny=1이다. 입력은 샘플링

포인트사이의 piecewise 상수이다.

▷예제

idploty(y,u,1: 300)

Page 115: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 113 -

IVARY

▷ 목적

근사적인 도구 변수 최적 선택 과정을 사용해서 AR 모델의 변수를 추정한

다.

▷ 문법

para = ivary(y,na)

para = ivary(y,na,nc,maxsize,T)

▷ 설명

AR 모델 구조의 변수들은

A(q)y(t)=v(t)

도구 변수 방법을 사용해서 추정된다. y는 모델화 되기 위한 신호이고 열

벡터로서 투입된다. na는 A 다항식의 차수이다. 결과 추정치는 para 형태

로 반환된다. 루틴은 스칼라 신호의 경우에만 가능하다.

위 모델에서, v(t)는 임의 공정이다. 차수 nc의 moving average process로

가정되고 가능한한 시변이다.(기본 nc =na).도구들은 적절히 필터링된 출력

들과 지연된 nc 스텝으로서 선택된다.

선택 항인 maxsize와 T는 auxvar에 설명되어 있다.

▷예제

IV 방법으로 추정된 것과 forward-backward 최소 자승 방법으로 추정된

것을 잡음이 있는 사인파에 대한 스펙트럼을 비교해봐라.

y = sin([1:500]' *1.2) + sin([1:500]' *1.5 )+ 0.2*rand(500,1);

paraiv = ivary(y, 4);

parals = ar(y,4);

giv =para2ff(paraiv);

gls = para2ff(parals);

bodeplot([giv gls]);

Page 116: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 114 -

▷ 관련함수

ar, etfe, spay

Page 117: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 115 -

IVSTRUC

▷ 목적

모델 구조의 집합에 대한 시뮬레이션된 출력과 측정된 출력사이의 fit를 계

산한다.

▷ 문법

v = ivstruc(ye,ue,yv,uv,NN);

v = ivstruc(ye,ue,yv,uv,NN,p,maxsize);

▷ 설명

NN은 ARX 형태의 서로 다른 구조의 개수를 정한다. NN의 각 행은 다음

과 같은 형태이다.

nn = [na nb nk]

이것은 arx에서 설명된 것과 같은 식으로 해석할 수 있다. 단일 입력 시스

템에 대한 NN 행렬을 쉽게 만들기 위해서는 struc을 참고해라.

ye,ue와 yv, uv 각각은 출력-입력 데이터를 포함한다. 다 입력 시스템에

대해 u는 같은 수의 열을 갖고 있다. NN에서 정의된 각각의 모델 구조들

에 대한 모델들은 데이터 집합인 ye, ue에 대한 도구 변수 방법을 사용해

서 추정된다. 추정된 모델들은 데이터 집합 yv,uv의 데이터를 이용해서 시

뮬레이션이 된다. 이것은 v라는 값으로 반환된다. 시뮬레이션 된 출력과 측

정된 출력사이의 정규화된 2차형 fit가 구성되고 v에 반환된다. v에서 첫

번째 행 밑의 행들은 Nn의 transpose이고 마지막 행은 IV 행렬의 조건 수

의 대수적 표현을 포함한다.

∑ζ(t)φT(t)

큰 조건 수는 구조가 불필요하게 큰 차수라는 것을 의미한다.

v에서 정보는 selstruc를 사용해서 해석될 수 있다.

p가 0이라면, 조건 수의 계산이 되지 않는다. maxsize에 대해서는 auxvar

를 참고해라.

이 루틴은 단일 출력 시스템에 대해서만 가능하다.

▷예제

Page 118: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 116 -

추정과 평가에 같은 데이터 집합을 사용해서 서로 다른 차수와 지연의 영

향을 비교해라.

v = ivstruc(ye,ue,y,u,struc(1:3,1:2,2:4);

nn =selstruc(v);

para =iv4y(y,u,nn)

nn= [1 1 4]

para =

1 열부터 7 열까지

0.0112 0.0111 1.0000 1.0000 1.0000 1.0000 0.0000

-0.9613 0.0014 0.0001 0.0000 0.0000 0.0000 4.0000

0.0451 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000

8 열부터 10 열까지

0.0000 0.0000 4.0000

0.0000 0.0000 11.0000

0.0000 0.0000 0.0000

Page 119: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 117 -

▷ 관련함수

arxstruc, iv4y, selstruc, struc

Page 120: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 118 -

IVXY

▷ 목적

임의의 instruments를 갖는 도구 변수(IV)방법을 사용해서 ARX 모델의 변

수들을 추정한다.

▷ 문법

para = ivxy(y,u,nn,x)

para = ivxy(y,u,nn,x,maxsize,T)

▷ 설명

ivxy는 iv4y루틴과 유사한 루틴이다. 단지 임의의 istruments를 사용할 수

있다는 것만 제외하고 말이다. 이들은 행렬 x에 포함되어 있다. 이것을 출

력과 같은 크기로 만든다. instruments들은 y가 x로 대체된다는 점만 제외

하면 자체적으로 회귀 벡터와 유사하게 사용된다.

ivxy는 para에 대한 어떤 추정된 상호분산 행렬을 반환하지 않는다. 그렇

기 때문에 추가적인 정보를 요구한다.

ARX 모델 구조에 대한 기본 IV 루틴으로서 iv4y를 사용한다.

▷ 관련함수

iv4y, ivary

Page 121: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 119 -

IV4Y

▷ 목적

근사적으로 최적인 4개의 상태 도구 변수(IV) 과정을 사용해서 ARX 모델

의 변수를 추정한다.

▷ 문법

para= iv4y(y,u,nn)

para = iv4y(y,u,nn, maxsize,T)

▷ 설명

이 루틴은 arx와 교대로 사용되고 각 항목의 사용은 arx 함수와 전체적으

로 유사하다. 주요 차이점은 과정이 모델식의 잡음 항 e(t)에 민감하지 않

다는 것이다.

▷예제

입력 u 1과 u 2에 서로 다른 지연을 갖는 2입력 1출력 시스템의 예제가 있

다.

y=[y];

u=[u1 u2];

nb =[2 2];

nk =[0 2];

para =iv4y(y,u,[2 nb nk])

▷ 관련함수

arx, oe

Page 122: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 120 -

LAGUERRE

▷ 목적

Laguerre 모델의 변수를 추정한다.

▷ 문법

para= raguerre(y,u,a,n)

para = iv4y(y,u,a,n,maxsize,T)

▷ 설명

ARX 모델은 delay operator를 갖고 다음과 같은 Laguerre 모델로 확장할

수 있다. 간단히 하기 위해 H(q,θ)= 1이라고 하면,

y(t) = G(q,θ)u(t)

= ∑n

k= 1gkL k(q,a) u ( t)

= φ(t)'θ

φ(t)=[u 1(t) ⋯ u n(t)] u k(t) = Lk(q,a)u (t)

θ= [ g1 ⋯ gn]'

여기서,

Lk(q,a) =K

q-a ( 1-aqq-a )

k-1

, K= (1-a 2 )T

입력 y, u는 출력-입력 데이터들이고 여기서 y와 u는 열벡터이다.

모델 선택항으로 a와 n이 있다. 여기서, a와 n은 Laguerre 계수들이며, a와

n의 사용은 위식에 설명되어 있다.

이 모델의 장점은 Laguerre 모델을 사용하면 다른 모델 ARX(FIR, AR)과

비교해서 모델 차수를 낮출 수 있다는 점이다. 더구나 Laguerre 의 적당한

선택으로 선형 회귀 추정 문제와 비교해서 더 정확한 결과를 얻을 수 있

다.

▷예제

G 0 =5

s+1이라고 가정하고 T=0.1에서 zero-order hold로 샘플링 된다

Page 123: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 121 -

고 가정하자. 입력 신호는 백색잡음이라고 가정한다. 이 예제에서는

6th(n=6) FIR 모델 추정과 a=0.8, n=1로 한 Laguerre 모델의 계수추정을

보드 선도를 사용해서 비교해보자.

para0=arx2para(num,den,1,1);

para0ff=para2ff(para0);

laguepara=laguerre(y,u,0.8,1);

lagueff=para2ff(laguepara);

firpara=firid(y,u,[1,1]);

firff=para2ff(firpara)

bodeplot([para0ff firff lagueff])

Page 124: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 122 -

MODSTRUC

▷ 목적

알려지지 않은 원소를 갖는 상태 공간 모델을 정의한다.

▷ 문법

ms = modstruc(A,B,C,D,K)

ms = modstruc(A,B,C,D,K,X0)

▷ 설명

canform과 같이 modstruc은 상태 공간 형태에서 모델 계수화를 정의하는

함수이다. 이것은 para 형태로 모델 구조를 만들기 위한 ms2para에서 사용

된다. 이것의 결과인 ms는 ms2para의 입력으로만 사용된다.

고려될 모델이 상태 공간 형태라면

x( t)=A(θ)x(t)+B(θ)u(t)+K(θ)e(t)

x(0)=x0(θ)

y(t)=C(θ)x(t)+D(θ)u9t)+e(t)

함수는 연속 시간 과 이산 시간 모두의 경우에 적용 가능하다.

입력 항인 A,B,C,D,K 그리고 X0는 위에서의 상태 공간 모델의 행렬들이

다. 이들 행렬들에서 숫자 값들은 고정된 항을 지시하고 반면에 기호 NaN

은 알려지지 않고 추정할 필요가 있는 요소를 나타낸다.

초기 상태 벡터 x0의 기본 값은 0벡터이다. 그러나 이것은 또한 추정될 필

요가 있는 변수들을 포함한다.

▷예제

2개의 극점과 모르는 분자를 갖는 대각선 형태의 연속 시간 모델 구조를

정의하자.

A =[nan, 0;0 , nan];

B =[nan;nan];

C=[1, 1];

D=0;

K=[0; 0];

Page 125: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 123 -

ms =modstruc(A,B,C,D,K);

para = ms2para(ms,"c");

para =1 열부터 7 열까지1 1 -1 1 1 4 20 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0NAN 0 NAN 1 0 0 00 NAN NAN 1 0 0 01 0 0 0 0 0 0

8 열부터 10 열까지

8 1 00 0 210 0 00 0 00 0 01 0 02 0 00 0 0

▷ 관련함수

canform, fixpar, ms2para, parainit, unfixpar

Page 126: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 124 -

MS2PARA

▷ 목적

표준 상태 공간 계수화를 para 모델 형태로 묶는다.

▷ 문법

para = ms2para(ms)

para = ms2para(ms, cd, paraval, lambda, T)

▷ 설명

함수는 추정, 시뮬레이션과 해석에 사용될 para 형태의 모델 구조로서

para를 반환한다. ms는 고정된 변수들과 추정될 필요가 있는 것들을 정의

한다. 이것은 전형적으로 modstruc이나 canform에 의해서 만들어 진다.

cd는 상태공간 행렬들이 연속 시간 모델(cd="c")인지 아니면 이산 시간 모

델(cd="d")인지를 지적한다. cd ="d"가 기본이다.

연속 시간 모델에 대해 이것을 어떻게 추출한 것인지에 대한 2가지 선택사

항이 있다. cd="czoh"로 선택하면, 입력이 샘플링 간격에 걸쳐 piecewise

상수로서 가정된다. cd="cfoh"로 선택하면, 입력은 샘플들 사이에

piecewise 선형으로 가정한다. 이것은 연속 시간 입력 u(t)가 추출된 데이

터사의 선형 interpolation에 의해 얻어진다는 것을 의미한다. 만약 시스템

이 piece-wise 상수 입력에 의해서 제어된다면 cd ="czoh"를 사용한다. 데

이터가 구해지는 동안 입력이 연속시간 함수라면 cd ="cfoh"를 사용한다.

행 벡터 parval은 자유 변수들이 공칭값을 포함한다. 이들 공칭 값들은

para에서 변수들이 pem를 사용해서 식별될 때 초기 추정치로서 사용된다.

이들은 또한 모델 para가 시뮬레이션이나 해석될 때 사용된다. parval의 기

본 값은 모두 0이다.

모든 초기 추정치를 영으로 설정하는 것은 pem에서 변수 추정을 위한 변

복적인 찾기를 위한 좋은 시작 포인트라고 할 수 없다. 이런 경우 종종 관

측 불가능/제어 불가능한 모델이 발생하기 때문이다. parval의 값에는 보다

현실적인 값을 주거나 이들을 parainit를 사용해서 randomize하는 것이 더

좋은 방법이다.

lambda는 T에서 지적된 샘플링 간격에 대한 innovation e(t)의 상호 분산

행렬을 제공한다. lamnbda의 기본 값은 단위 행렬이다.

Page 127: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 125 -

T는 데이터의 샘플링 간격을 의미한다. 모델이 연속 시간으로 정의될 지라

도 T는 양수 값을 준다.

▷예제

다음과 일치하는 연속 시간 모델 구조를 정의한다.

x= [ ]θ 1 00 θ 2

+ [ ]θ 3

θ 4

u

y= [1 1]x+e

초기 값

θ=[-0.2 -0.3 2 4]

그리고 자유 변수들을 추정해라.

A=[nan, 0;0,nan];

B=[nan;nan];

C=[1, 1];

ms = modstruc(A,B,C,0,[0;0]);

para=ms2para(ms,"c",[-0.2 -0.3 2 4]);

>>para =

1 열부터 7 열까지

1.0000 1.0000 -1.0000 1.0000 1.0000 4.0000 2.0000

-0.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

-0.3000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

2.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

4.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

NAN 0.0000 NAN 1.0000 0.0000 0.0000 0.0000

0.0000 NAN NAN 1.0000 0.0000 0.0000 0.0000

1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

8 열부터 10 열까지

8.0000 1.0000 0.0000

0.0000 0.0000 21.0000

Page 128: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 126 -

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

1.0000 0.0000 0.0000

2.0000 0.0000 0.0000

0.0000 0.0000 0.0000

▷ 관련함수

canform, fixpar, modstruc, pem, parainit, unfixpar

Page 129: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 127 -

NUDERST

▷ 목적

numerical differentiation에 대한 스텝 크기를 선택한다.

▷ 문법

nds = nuderst(pars)

▷ 설명

함수 pem은 모델 변수들이 상태 공간 구조에 적용될 때 numerical

differentiation을 사용한다. 같은 경우가 변수 상호분산 정보가 주파수 함수

와 영점-극점 정확도에 변환될 때 para2ff와 para2zp에도 적용된다. 마지막

으로, 명령어 pad2pac는 다른 모델 구조에 대한 상호분산 정보가 변환될

때 numerical differentiation을 사용한다.

출력항인 nds는 k번째 항이 변수 벡터 pars의 k번째 요소와 관련되어 미

분될 때 사용되기 위한 증가량을 주는 행 벡터이다.

nuderst의 기본 버전은 매우 간단한 방법을 사용한다. 스텝 크기는 현재

변수의 절대값의 10- 7과 10- 4의 최대치이다. 이것을 nuderst를 수정해서

일치하는 변수의 실제 값에 이것을 적용할 수도 있다.

Page 130: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 128 -

OE

▷ 목적

출력 오차 모델의 변수들을 추정한다.

▷ 문법

para = oe(y,u,nn)

para = oe(y,u,nn,"trace")

[para, iter_info] = oe(y,u,nn,maxiter, tol,lim,maxsize,T,"trace")

▷ 설명

출력 오차 모델 구조의 변수들은

y(t)=B(q)F(q)

u(t-nk)+e(t)

예측 오차 방법을 사용해서 추정된다.

행렬 y와 u는 출력과 입력 데이터집합이다. 여기서 y와 u는 열 벡터들이고

nn은 다음과 같은 형태로 주어진다.

nn =[nb nf nk]

혹은

nn = parai

전자의 경우, nb 와 nf는 출력 오차 모델의 차수이고 nk는 지연이다. 후자

의 경우 이것은 par 형태에서 주어지는 추정치에 대한 초기 값이다.

para는 추정된 변수와 상호분산을 para 형태로 반환한다.

다입력 모델의 경우 nb, nf, 그리고 nk는 행 벡터이다. I번째 항은 I번째

입력과 관련된 차수와 지연을 나타낸다.

oe 는 다출력 모델을 지원하지 않는다. 이런 경우에는 상태 공간 모델을

사용해라.

마지막 항인 “trace"는 cemtool 창에 모델을 반복적으로 찾는 과정에 대한

정보가 표시된다.

▷ 관련함수

armax, auxvar, bjy, pem

Page 131: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 129 -

PAC2PAD

▷ 목적

연속 시간에서 이산 시간으로 모델을 변환한다.

▷ 문법

parad = pac2pad(parac,T)

▷ 설명

parac는 para 형태로 주어진 연속 시간 모델이다. parad는 샘플링 간격 T

를 갖고 샘플링 됐을 때 얻어진 결과이다. parac가 입력-출력 형태라면, 변

수들의 상호분산 행렬은 변환되지 않는다.

연속 시간 모델의 innovation 분산 λ는 잡음 스펙트럼의 스펙트럼 밀도의

민감도로서 해석된다. parad에서 innovations 분산은 그래서 λ/T로서 주

어진다.

▷ 예제

parac = poly2para(1,1,1,1,[1 1 0],1 ,-1);

parad = pac2pad(parac,1);

zpplot(para2zp(parad);

▷ 관련함수

pad2pac

Page 132: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 130 -

PAD2PAC

▷ 목적

이산 시간에서 연속 시간으로 모델을 변환한다.

▷ 문법

parac = pad2pac(parad)

parac = pad2pac(parad, delay,Nop)

▷ 설명

para 형태로 주어진 이산 시간 모델 parad는 연속 시간 모델 parac로 변환

된다. 모델에서 변수들의 상호 분산 행렬 또한 Gauss 근사법과 변환의

numerical derivatives을 사용해서 변환된다. numerical derivatives의 스텝

크기는 함수 nuderst에 의해서 결정된다.

이산 시간 모델이 순수한 시간 지연(nk>1)을 갖고 있다면, 이들은 먼저 변

환하기 전에 제거된다. 이들 지연은 그럼 연속 시간 모델에서 순수한 시간

지연(deadtime)으로서 추가된다. 이것은 para2ff에 의해 자동적으로 행해진

다. 한정 차원 연속시간 시스템(finite-dimensional continuous system)에

의해 근사화된 시간 지연을 갖기 위해서는 delay="del"을 넣는다. 기본값은

delay="nodel"이다.

parad에서 innovation 분산이 lamda이고 이것의 샘플링 간격이 T라면,, 연

속 시간 모델은 innovations 스펙트럼 밀도가 T=lmbda와 같은 지적된

level을 갖는다.

▷ 예제

식별된 모델을 연속 시간 모델로 바꾸고 이 두 모델의 주파수 응답을 비교

해라.

gd = para2ff(para)

parac = pad2pac(para)

gc=para2ff(parac)

bodeplot([gd, gc],3)

Page 133: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 131 -

▷ 관련함수

nuderst, pac2pad

Page 134: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 132 -

PARA

▷ 목적

para 형태에 대한 설명

▷ 문법

help para

▷ 설명

para는 모델 구조와 이것의 공칭 혹은 추정된 변수들에 대한 정보를 포함

하는 하나의 묶여진 행렬이다. 이것은 또한 식별 결과에 대한 정보를 포함

하기도 한다.

이런 모델 형태는 시스템 식별 도구상자에서 사용되는 기본적인 형태이다.

정보를 표현하는 기본 방법은 present 명령어를 사용하는 것이다. 몇 가지

특별한 정보가 함수 getmfpara, getncap, getty 그리고 par2par에 의해

para형태로부터 얻어진다. 이들 항은 내부 표현에 대한 상세한 정보를 제

공하지만, 이 정보는 시스템 식별 도구상자를 사용하는 대부분의 사용자에

게는 필요한 것이 아니다. 이 형태는 밑에 나오는 상태 공간 형태나 입력

-출력 black box 특징의 모델인지 아닌지에 따라 다르다.

1) 일반적인 다입력 단일 출력 선형 모델 구조

A(q)y(q)=B 1

(q)F 1(q)

u 1(t-nk1)+⋯+B nu(q)

F nu

(q)u nu(t-nk nu )+C(q)D(q)

e( t)

A,B,C,D 그리고 F는 차수 na, nb, nc, nd, 그리고 nf의 자수의 지연 동작기

형태의 다항식이다. 시스템이 nu의 입력을 갖고 있고, nb, nf 그리고 nk들

은 각 입력과 관련된 차수와 지연에 대한 정보를 포함하는 nu 차원의 행

벡터들이다. 시간 급수의 경우(u가 없다)에, B와 F는 정의되지 않는다.

n이 모든 차수의 합이라고 하자,

r = max (n 7,6+3 *nu)

그러면 para는 (3+n)r 행렬로 다음과 같이 구성된다.

․행 1은 FPE(Akaike's Final PredictionError), e의 추정된 분산, 샘플링

간격 T, nu, na, nb, nc, nd, nf 그리고 nk가 들어있다.

․행2의 (2;10)은 모델을 만든 명령어의 부호화 수를 포함한다. 이 수가 20

보다 작으면 black-box 모델에 대한 것이다라는 것을 알 수 있다.

Page 135: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 133 -

․열 1, 행2부터는 추정된 변수들의 변수들, A,B,C,D 그리고 F를 포함한다.

․행 2부터 1+n까지, 열2부터 1+n까지는 추정된 상호분산 행렬을 포함한

다.

․연속 시간 모델에 대해, 원소(1+n,;2)는 시스템의 dead-time을 포함한다.

이것은 para2ff를 이용해 주파수 함수를 계산할 때 사용된다.

2) 상태 공간 구조로 정의된 모델은 구조를 정의하는 Cem-file이 존재한

다. 이 Cem-file은 다음과 같다.

[ A, B, C, D, K, X0] = cfname(par,T,aux)

ms2para에 의해서 정의된 모델 구조들은 이 Cem-file 이름이 ssmodx9 혹

은 ssmodx8이고 aux 항은 modstruc에 의해서 만들어진 실제 모델 구조

ms이다. 특별히 다출력 ARX 모델들은 ssmodx9의 도움으로 상태 공간 모

델로서 내부적으로 표현된다.

추정된 변수의 개수가 n이고 Cem-file cfname의 길이가 r 이라고 가정하

자. 또한 모델은 ny의 출력을 갖고 위의 aux 항의 크기가 nr×nc라고 가정

하자. 그러면, para는 다음과 같은 차원의 행렬이다.

max( (n,ny,nc, 8+r)by (3+n+nr+ny) )

다음과 같이 구성된다.

․행 1은 FPE(Akaike's Final Prediction Error), innovation 상호분산의

determinant, 샘플링 간격, 입력 개수, 출력 개수, 추정된 변수의 개수

aux의 행의 개수, aux의 열의 개수, 구조를 정의하는 Cem-file의 이름.

․원소(1;9)는 다음과 같이 해석된다. : “1”이면 계수화가 연속시간에서

ssmodx9을 사용한다는 것을 의미하고, “11”이면, 연속 시간에서 계수화

가 ssmodx8을 사용해서 first-order-hold,에 의해 된다는 것을 의미한다.

“2”이면, 이것은 이산 시간에서 ssmodx9을 사용한다는 것을 의미한다.

“3”이면, 모델이 다변수 ARX 모델이라는 것을 의미한다. “4”이면, 이산

시간에서 사용자가 정의한 것으로 계수화가 된다는 것을 의미한다. “5”

이면, 모델이 사용자 정의 연속 시간 계수화라는 것을 의미한다.

․열 1은 변수들의 추정된 값을 포함한다.

․열 2부터 1+n까지, 행 2부터 1+n까지는 변수들의 추정된 상호분산 행렬

을 포함한다.

․행2+n부터 1+n+nr 까지는 행렬 aux를 포함한다.

․행 2+n+nr부터 1+n+nr+ny는 모델의 innovation의 상호분산 행렬을 포함

한다.

Page 136: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 134 -

PARAINIT

▷ 목적

추정될 변수들에 대한 초기값을 설정한다.

▷ 문법

para = parainit(para0)

para = parainit(para0, R, pars, sp)

▷ 설명

이 함수는 상태 공간 모델과 같은 para 형태의 모델 구조 para0에 대한 초

기 변수 추정치를 randomize 한다. para는 par0와 같은 모델 구조이다. 그

러나 다른 공칭 변수 벡터를 갖고 있다. 이 벡터는 pem에 의해서 초기 추

정치로서 사용된다.

변수들은 행 벡터 R에 의해서 주어진 분산 R을 갖고 pars 주위에서

randomize 된다. 변수 수 k는 pars(k) + e*sqrt(R(k))로서 randomize된다.

여기서, e는 영평균과 1의 분산을 갖는 random 변수이다. R의 기본 값은

모두 1이고, pars의 기본 값은 para0에서 공칭 변수 벡터이다.

안정한 예측기를 주는 모델만이 허용된다. sp="b"라면, 안정하고 안정한 예

측기를 주는 모델만이 허용된다.

sp="s"는 모델의 안정도를 요구하고, sp="p"는 예측기의 안정도만을 요구

한다. sp="p"가 기본이다.

최대 100 번의 시도가 parainit에 의해 행해진다. 시행 오차에 의해서는 고

차 시스템에 대한 안정한 예측기를 찾는 것은 매우 어려울 수 있다.

▷ 관련함수

canstart, ms2para, pem

Page 137: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 135 -

PARA2ARX

▷ 목적

para 형태 모델로부터 ARX 변수를 찾아 낸다.

▷ 문법

[A, B] = para2arx(para)

[A,B,dA,dB ]= para2arx(para)

▷ 설명

para는 para 형태의 모델이다. A와 B는 ARX 구조를 정의하는 행렬로서

반환된다.

A =[ I A1 A2 .. Ana]

B =[B0 B1 ... Bnb]

여기서,

y(t)+A 1y(t-1)+...+A nay(t-na)=B 0u(t)+B 1u(t-1)+⋯+B nbu(t-nb)

시스템에서 지연들은 B 행렬의 leading zeros에 의해서 지적된다.

dA와 dB는 A와 B의 표준 미분이다.

▷ 관련함수

arx2para

Page 138: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 136 -

PARA2FF

▷ 목적

para 형태 모델의 표준 미분과 주파수 응답을 계산한다.

▷ 문법

[g,phiv] = para2ff(para)

[g,phiv] = para2ff(para, ku, w, ky)

▷ 설명

para2ff는 para의 주파수 응답을 계산한다. 여기서 para는 일반적인 모델을

포함하는 para 형태에서 행렬이다.

g은 행 벡터 w에서 주어진 주파수 w에서 계산된 전달 함수 추정치를 반

환한다.

G(e jw)

para가 여러 개의 입력과 출력이 있다면, g는 행 벡터 ku와 ky에 의해서

정해진 출력과 입력 수에 대해서 계산된다. ku와 ky의 기본 값들은 para에

포함되어 있는 모든 입력과 출력 쌍이다.

시간 연속 모델에 대해서 주파수 함수 G(iw)이 얻어진다.

phiv( Φv)은 각 출력에 관한 추정된 잡음 스펙트럼을 반환한다.

Φv(w)=λ*T*|H(e iwt)| 2

여기서 λ는 para에 의해서 정해진 e(t)의 추정된 분산값이다. phiv는 g와

같은 주파수에서 계산된다. 서로 다른 출력들에 대해서 계산되는

cross-spectra는 없다.

주파수 함수(s)의 표준 편차와 스펙트럼은 Gauss 근사 공식을 사용해서 항

상 계산된다. 복잡한 변수 의존도가 있는 모델에 대해선, 미분이 적용된다.

numerical 미분에 대한 스텝 크기는 nuderst에 의해서 결정된다.

주파수의 기본 값들은 이산 시간의 경우에서

w = [1:128]/128*pi/T

여기서 T는 para에 의해 정해진 샘플링 간격이고 연속 시간의 경우에

w = logspace(log10(pi/abs(T)/100), log10(10*pi/abs(T)),128)

여기서 abs(T)는 연속 시간 모델에 대한 샘플링 간격이다.

Page 139: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 137 -

주파수 함수들은 bodeplot, ffplot을 통해서 그림으로 도시될 수 있다.

▷ 예제

스펙트럼 해석과 ARMAX 모델의 결과를 비교해라.

para = armax(y,u,[2 2 2 1]);

gp = para2ff(para);

gs = spay(y,u);

bodeplot([gs gp])

▷ 관련함수

bodeplot, etfe, ffplot, setty, spay

Page 140: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 138 -

PARA2PAR

▷ 목적

para 형태로부터 변수들을 찾아낸다.

▷ 문법

[par, P, lam] = para2par(para)

▷ 설명

para는 para 형태로 정의된 모델이다. par은 para에서 자유 변수의 추정된

값이나 공칭 값을 반환한다. 변수들의 상호 분산 행렬이 P로서 얻어지고,

lam은 innovation의 분산이다.

변수들은 다음과 같은 순서로 된다. 일반적인 입력-출력 모델에 대해서

par s= [a 1, ... ,a na, ,b1,1 ...,..b1

nb1,...,b1nb2 , ...b nu

1 , ..., b nunbnu, ...

c 1 , ... , c nc , d 1 , ..., d nc , ... f11 , ... , f1nf1 , ... ,f nu1 , ,f nu

nfnu ]

여기서 밑수는 입력의 수를 의미한다.

ms2para에 의해서 정의된 상태 공간 구조에 대해, pars에서 변수들은 다음

과 같은 순서로 얻어진다. A 행렬은 자유 변수들에 대한 행 by 행으로 먼

저 조사된다. 그러며, B 행렬은 행 by 행으로 조사된다. C, D, K, 그리고

X0 행렬에 대해서 행해진다.

다변수 ARX 모델들은 상태 공간 형태로 내부적으로 표현된다. 이것은

para2arx를 사용하는 것이 더 나은 방법이다.

Page 141: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 139 -

PARA2POLY

▷ 목적

para 행렬을 변수들의 성분으로 전환한다.

▷ 문법

[A,B,C,D,F,LAM,T] = para2poly(para)

▷ 설명

이것은 poly2para함수의 반대의 경우이다. 이것은 다음과 같은 일반적인

모델의 다항식을 반환한다.

A(q)y(q)=B 1

(q)F 1(q)

u 1(t-nk1)+⋯+B nu(q)

F nu

(q)u nu(t-nk nu )+C(q)D(q)

e( t)

“Examining Models"을 참고 해라.

LAM은 잡음 분산이고 T는 샘플링 간격이다.

▷ 관련함수

poly2para, para2tf, para

Page 142: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 140 -

PARA2SS

▷ 목적

모델을 상태 공간 형태로 변환한다.

▷ 문법

[A,B,C,D,K,X0] = para2ss(para)

[A,B,C,D,K,X0,dA,dB,dC,dD,dK,dX0] = para2ss(para)

▷ 설명

para는 para 형태로 주어진 모델이다. A,B,C,D,K,그리고 X0는 상태 공간

표현의 행렬들이다.

x( t)=Ax(t)+Bu(t)+Ke(t)

x(0)= x0

y(t)=Cx(t)+dx(t)+e(t)

여기서, x( t)는 para가 연속시간이나 이산 시간 모델인지에 따라 x이거나

혹은 x(t+1)이다.

dA,dB,dC,dD,dK 그리고 dX0들은 상태 공간 행렬의 표준 편차들이다.

만약 모델 자체가 상태 공간 모델이라면, 행렬들은 같은 기저를 갖는다. 모

델이 입력-출력 모델이라면, observer canonical 형태 표현이 얻어진다.

▷ 관련함수

ms2para, nuderst

Page 143: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 141 -

PARA2TF

▷ 목적

모델을 전달 함수 형태로 변환한다.

▷ 문법

[num,den] = para2tf(para)

[num,den] = para2tf(para,iu)

▷ 설명

para는 para 형태로 주어진 모델이다. num은 입력 수 iu로부터 출력 수 k

까지의 전달함수와 관련된 분자 다항식을 나타내는 행의 개수 k를 포함하

는 행렬이다. den은 이들 전달 함수에 관한 분모 다항식을 나타내는 행 벡

터이다.

num과 den 형태는 Signal Processing Toolbox와 Control Systems

Toolbox에서 사용되는 것과 같은 형태이다. 연속 시간과 이산 시간 모델

모두의 경우에 해당된다.

잡음 원 개수 k로부터 전달 함수를 구하기 위해서는 iu=-k로 넣는다.

▷예제

연속 시간 모델

num =[1 2];

den=[1 3 0];

전달함수는

G(s)=s+2

s2+3s

이산 시간 모델의 경우

num =[ 2 4 0];

den = [1 2 3 5];

전달 함수는

H(z)=2z 2+4z

z 3+2z 2+3z+5

이것은 다음과 같은 형태와도 같다.

Page 144: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 142 -

H(q) =2q-1+4q- 2

1+2q- 1+3q- 2+5q-3

▷ 관련함수

para2poly

Page 145: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 143 -

PARA2ZP , ZP

▷ 목적

para 형태 모델로부터 영점, 극점 그리고 고정 게인을 구한다.

▷ 문법

[zepo, k] = para2zp(para)

[zepo, k] = para2zp(para, ku, ky, thresh)

▷ 설명

par에 의해서 para 형태로 주어진 모델에 대해 영점과 극점, 그리고 고정

게인은 이들의 표준 편차에 따라 계산된다. 영점과 극점들은 행렬 zepo에

저장되고 반면에 고정 게인은 k로 반환된다.

zepo의 정보를 표시하는 가장 좋은 방법은 zpplot을 사용해서 그림으로 도

시하는 것이다. 이 정보는 또한 getzp에 의해서 구할 수도 있다.

k의 첫 번째 행은 정수 (jy -1)*1000+ju를 포함한다. 여기서, jy는 출력 개

수이고 ju는 입력 개수이다. k의 두 번째 행은 게인을 포함하고 세 번째

행은 게인의 표준 편차를 포함한다.

행 벡터 ku와 ky는 영점, 극점 그리고 게인들이 계산될 입력과 출력의 항

을 포함한다. 잡음 e(t)는 음수를 갖는 입력으로 카운트된다. 즉 잡음원 개

수 ju는 입력 개수 ju로서 카운트된다. 벡터 ku에서 0값은 “모든 잡음원”을

위한 기본이다. ky와 ky의 기본 값은 모든 입력과 모든 출력이다. (잡음

입력은 없다.)

선택 항인 thresh는 영점의 계산을 위한 threshold이다. 무한대에서 영점들

이 계산 과정으로 인해 매우 큰 값, 제한된 값으로 끝나는 경우가 있다. 이

것을 피하기 위해, 절대값이 thresh보다 더 큰 영점은 무한대인걸로 취급된

다. thresh의 기본 값은 100000이다.

이 과정은 연속 시간과 이산 시간 모델 모두를 다룬다.

일반적인 이산 시간 다입력, 단일 출력 모델에 대해

A(q)y(q)=B 1

(q)F 1(q)

u 1(t-nk1)+⋯+B nu(q)

F nu

(q)u nu(t-nk nu )+C(q)D(q)

e( t)

영점들은 z nb+ nkB(z)의 근이고 극점은 z na + nfA(z)F(z)의 근이다. 고정

게인은 k = B(1)/(A(1)F(1))이다.

Page 146: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 144 -

상태 공간 형태로 내부적으로 표현된 모델에 대해, 극점들은 시스템 행렬

의 고유값이다. 영점들은 전달 함수의 영점들이다. 이들 영점들은 그래서

다변수 시스템과 관련되어 transmission zeros와는 다를 수 있다.

transmission zeros를 찾기 위해, 먼저 para2ss를 사용하고 Control System

Toolbox로부터 tzero를 적용한다.

영점과 무한대에서는 영점과 극점에 대한 정보를 이용할 수 없다.

zepo는 zpplot을 이용해서 그림으로 쉽게 도시될 수 있는 형태로 반환된다.

루틴 zpform은 다른 모델들과 비교할 때 유용하다.

또 다른 루틴인 zp는 par2zp와 같은 구문을 갖고 있다. 그러나 표준 편차

를 계산하지는 않는다. 이것은 표준 편차에 관심이 없고 para2zp에서 계산

시간이 너무 길 때 유용하다. 더구나 zp는 signal Processing Toolbox로부

터 ss2zp를 사용한다. 이것은 복잡한 경우에서 보다 정확한 계산을 할 수

있다.

▷예제

zpplot(para2zp(para));

그림을 그리지만 극점과 영점을 저장하지는 않는다.

2차와 3차 ARX 모델의 영점과 극점을 비교해라(입력-출력 동적 특성에

대해서만)

para2 = arx(y,u,[2 2 1]);

para3 = arx(y,u,[3 3 1]);

zp2 = para2zp(para2);

zp3 = para2zp(para3);

zpplot(zp2);

holdon

zpplot(zp3);

Page 147: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 145 -

▷ 관련함수

getzp, para, zepo, zpform, zpplot

Page 148: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 146 -

PEY

▷ 목적

모델과 데이터 집합과 관련된 예측 오차를 계산한다.

▷ 문법

e = pey (y,u, para)

▷ 설명

y와 u는 출력-입력 데이터이고 para는 para 형태로 정해진 모델이다. e는

모델 para가 데이터에 적용될 때 나온 출력 오차를 포함한다.

e(t)=H-1(q)[y(t)-G(q)u(t)]

▷ 관련함수

residy

Page 149: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 147 -

PEM

▷ 목적

일반적인 선형 모델들의 변수를 추정한다.

▷ 문법

para = pem(y,u,nn)

para = pem(y,u,nn,"trace")

[para, iter_info] = pem(y,u,nn,index,maxiter,tol,lim,maxsize,T,"trace")

▷ 설명

함수 pem은 일반적인 다입력 단일 출력 구조를 포함하는 모든 모델 구조

를 다룬다.

A(q)y(q)=B 1

(q)F 1(q)

u 1(t-nk1)+⋯+B nu(q)

F nu

(q)u nu(t-nk nu )+C(q)D(q)

e( t)

그리고 일반적인 구조는 fixpar, ms2par, para2init 그리고 unfixpar로 정의

된다. 다변수 ARX 구조들은 arx2para에 의해서 정의된다.

y와 u는 출력-입력 데이터들이고 y와 u는 열벡터들이다.

nn은 다음과 같은 형태로 주어진다.

nn = [na nb nc nd nf nk]

혹은

nn = parai

전자의 경우는 na,nb,nc,nd 그리고 nf는 모델의 차수들이고 nk는 지연이다.

다입력 시스템의 경우 nb,nf, 그리고 nk는 각 입력의 차수와 지연을 나타

내는 행 벡터들이다.

후자의 경우 parai는 모델 구조와 para 형태로 주어진 추정치에 대한 초기

값을 정의한다.

para는 결과로 얻어진 변수 추정치와 추정된 상호분산을 para 형태로 반환

한다.

선택사항인 index는 추정될 변수의 항을 포함하는 행벡터이다. 다른 것들

은 공칭값으로 고정된다. 변수의 순서는 para2par에 의해 정의된다. index

의 기본값은 모든 변수들이 추정된다는 것이다. iter_info, lim, maxiter,

maxsize, tol, 그리고 T는 auxvar에 설명되어 있다.

Page 150: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 148 -

마지막 항인 “trace"는 cemtool 창에 반복적으로 모델을 찾는 과정에 대한

정보를 표시한다.

출력 오차, ARMAX와 Box-Jenkins 형태의 단일 입력 모델의 특별한 경우

에 대해, 이것은 oe, armax, bj에 더욱 효과적이다.

▷예제

3개의 입력과 2개의 출력을 갖는 시스템 예제가 있다. 5차의 canonical 형

태 상태 공간 모델을 찾아라.

y=[y1 y2];

u=[u1 u2 u3];

parac = canstart(y,u,5,3);

para = pem(y,u, parac);

▷ 관련함수

armax, auxvar, bjy, oe

Page 151: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 149 -

POLY2PARA

▷ 목적

입력-출력 모델들에 대한 para 형태 행렬을 구성한다.

▷ 문법

para = poly2para(A,B)

para = poly2para(A,B,C,D,F,lam,T)

▷ 설명

poly2para는 일반적인 다입력 단일 출력 모델 구조를 나타내는 변수들을

포함한다.

A(q)y(q)=B 1

(q)F 1(q)

u 1(t-nk1)+⋯+B nu(q)

F nu

(q)u nu(t-nk nu )+C(q)D(q)

e( t)

A,B,C,D 그리고 F는 다항식 계수를 정한다.

단이 입력 시스템에 대해 이들은 모두 행벡터들이다.

A=[ 1 a 1 a 2⋯ a na ]

A,C,D 그리고 F는 모두 1부터 시작한다. 반면에 B는 지연을 의미하는 0을

포함하고 있다.

다입력 시스템의 경우에 B와 F는 각 입력에 대한 하나의 행을 갖는 행렬

이다.

시간 급수에 대해 B와 F는 빈 행렬로서 들어간다.

B =[ ]; F=[ ];

lam은 백색 잡음 시퀀스 e(t)의 분산이다. 반면에 T는 샘플링 간격이다.

T의 음수 값은 모델이 연속 시간이라는 것이 지적한다. 그러면

A=[ 1 2 3 4]

는 라플라스 변수 s로 표현되는 다항식 s3+2s2+3s+4와 일치한다. 연속

시간 시스템의 경우 lam은 innovation의 스펙트럼 밀도의 level을 의미한

다.

C,D,F,lam과 T는 생략될 수 있다. 이런 경우 이들은 1로 취급된다. (만약

B=[ ]이면, F는 []로서 취급된다)

이산 시간 모델(T>0)의 경우에 대해, 다음을 주의해라. : poly2para 차수를

Page 152: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 150 -

결정할 때 다항식으로부터 trailing zeros들을 떼어버린다. 이것은 또한 지

연을 결정하기 위해 B 다항식으로부터 leading zeros를 떼어버리기도 한다.

poly2para와 para2poly사용할 때, 새로운 구조를 추정하기 위한 초기 조건

으로 제공하기 위해 초기의 추정치를 수정해야 한다.

▷예제

ARMAX 형태의 시스템을 만들어 내라.

A =[1 -1.5 0.7];

B = [0 1 0.5];

C = [1 -1 0.2];

para0 = poly2para(A,B,C)

>> para0 =

1 열부터 7 열까지

0.0000 1.0000 1.0000 1.0000 2.0000 2.0000 2.0000

-1.5000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

0.7000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

0.5000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

-1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

0.2000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

8 열부터 10 열까지

0.0000 0.0000 1.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

0.0000 0.0000 0.0000

Page 153: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 151 -

이것은 하나의 지연(nk=1)을 갖는 시스템이다.

연속 시간 모델을 만들어 내라.

y(t)=1

s(s+1)u 1(t)+

s+1

s2+2s+4u 2(t)+e(t)

T=0.1로 이것을 샘플링하고 이것을 잡음이 없이 시뮬레이션해라.

B =[0 1 ; 1 3];

F =[ 1 1 0; 1 2 4];

para = poly2para(1,B,1,1,F,1,-1);

parad=pac2pad(para,0.1);

y=simid([u1 u2],parad);

▷ 관련함수

simid

Page 154: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 152 -

PREDICT

▷ 목적

k-step ahead 출력을 예측한다.

▷ 문법

p = predict(y,u,para)

[yp, parapred] = predict(y,u,para,k)

▷ 설명

y와 u는 출력과 입력 데이터이다. y는 r 번째 열이 r 번째 출력 신호와 입

력 u와 일치하는 행렬이다.

k는 계산된 모델 para에 따라 y의 k-step ahead 예측치를 지적한다. yp(t)

의 계산에서 모델은 다음 시간까지 출력과

t -k : y(s) , s= t-k, t-k-1, ...

현재 시간 t까지의 입력을 사용한다. k의 기본 값은 1이다.

출력 yp는 y와 같은 크기의 행렬이다. 그리고 이것의 i,j 요소는 y에서 일

치하는 요소의 예측된 값을 포함한다. 출력 항 parapred는 para 형태에서

k-step ahead 예측기를 포함한다. 이 경우 para는 입력-출력 모델과 일치

한다.

predict의 중요한 사용은 mid-주파수 범위에서 모델의 속성을 평가하는 것

이다. one step ahead 예측은 모델의 특성을 평가하는데 매우 강력한 시험

법은 아니다. 왜냐하면, 높은 주파수 동작이 강조되기 때문이다. 예측기

y( t)=y(t-1)은 데이터의 샘플링이 빠른 경우에 매우 좋은 예측을 한다.

predict의 또다른 중요한 사용은 시간 급수의 모델을 평가하는 것이다. 시

간 급수 모델의 능력을 연구하는 자연스런 방법은 실제 데이터와 k-step

ahead 예측을 비교하는 것이다

출력 오차 모델의 경우 k-step ahead 예측과 시뮬레이션된 출력 사이에

차이점이 없다. 왜냐하면, 정의에 의해서, 출력 오차 모델들은 매래 출력을

예측하기 위해 과거 입력만을 사용하기 때문이다.

▷예제

Page 155: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 153 -

시간급수를 시뮬레이션하고, 데이터의 처음 절반을 갖고 모델을 추정하고

두 번째 절반을 갖고 4-step ahead 예측기를 평가해라.

para0 = poly2para([1 -0.99],[],[1 -1 02]);

y = simid(rand(400,1), para0);

para =armax(y(1:200),[], [1 2]);

yp = predict(y,[],para,4);

t=[1:200]';

plot(t,y(201:400) ,t,yp(201:400))

▷ 관련함수

comparey, simid, pey

Page 156: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 154 -

PRESENT

▷ 목적

para 형태에서 정보를 표시한다.

▷ 문법

present(para)

▷ 설명

이 함수는 모델 para의 다항식을 이들의 표준 편차, 손실 함수와

Akaike's Final Prediction Error Criterion(FPE)과 함께 표시한다. 이것은

또한 어떻게 para가 만들어 졌는가에 대한 정보도 표시한다.

B에서 leading zeros는 지연과 일치하므로, nk가 정확한 0일 때 시작한다

면 지연은 nk이다.

입력 -출력 모델에 대해, 추정된 표준 편차들은 추정된 변수 밑에 주어진

다.

상태 공간 모델과 다변수 ARX 모델에 대해, 표준 편차들은 fake, 변수 추

정의 허수 부분으로서 주어진다.

Page 157: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 155 -

RARMAX

▷ 목적

ARMAX혹은 ARMA 모델의 변수를 회귀형으로 추정한다.

▷ 문법

param = rarmax(y,u,nn,adm,adg)

[param,yhat,P,phi,psi] = rarmax(y,u,nn,adm,adg,para0,P0,phi0,psi0)

▷ 설명

ARMAX 모델 구조의 변수는

A(q)y(t)=B(q)u(t-nk)+C(q)e(t)

는 회귀형 예측 오차 방법을 사용해서 추정된다.

y와 u는 출력, 입력 데이터이고 y와 u는 열 벡터이다. nn은 다음과 같이

주어진다.

nn = [ na nb nc nk];

여기서, na, nb 그리고 nc는 ARMAX 모델의 차수이고 nk는 지연이다. 식

(2.16) - (2.18)을 참고해라.

만약 입력이 없고(u=[]) nn =[na nc]라면, rarmax는 y에 대한 ARMA 모델

의 변수를 추정한다.

A(q)y(t)=C(q)e(t)

단일 입력, 단일 출력 모델들만 rarmax에 의해서 다룰 수 있다. 다입력의

경우에는 rpem을 사용해라.

추정된 변수들은 행렬 param으로 반환된다. param의 k 번째 행은 시간 k

와 관려된 변수들을 포함한다. param의 각 행은 다음과 같은 순서로 추정

된 변수들을 포함한다.

param(k;:) = [a1, a2, ... ana, b1,..., bnb, c1, ... ,cnc];

식(2.16),(2.18)을 참고해라.

yhat은 현재 모델에 따라 출력의 예측된 값이다. 즉, yhat의 행 k는 y(k;1)

의 예측된 값을 포함한다.

실제 알고리즘은 2가지 항목, adm 과 adg을 선택해서 사용된다. 이들은

rarx에 설명되어 있다.

Page 158: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 156 -

입력 항인 para0는 변수들의 초기 값을 포함한다. para0의 기본값은 모두

0이다.

P0와 P는 변수들의 상호 분산 행렬들의 초기 값과 마지막 값이다. P0의

기본 값은 단위 행렬의 10 4배이다. phi0, psi0, phi 그리고 psi 항은 데이터

벡터의 초기와 마지막 값들과 gradient 벡터의 초기와 마지막 값들을 포함

한다.

지연 nk가 0보다 커야 된다는 것에 주의해라. nk=0으로 하고 싶다면, 입력

시퀀스를 근사적으로 이동시키고 nk=1을 사용해라.

▷예제

벡터 y에서 주어진 시간 급수의 2차 ARMA 모델에서 4개의 변수를 계산

하고 도시해라. forgetting factor는 0.98을 적용해라.

param = rarmax(y,[],[2 2],"ff",0.98)

plot(param);

▷ 관련함수

Page 159: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 157 -

RARX

▷ 목적

회귀적으로 ARX 나 AR 모델의 계수를 추정한다.

▷ 문법

param = rarx(y,u,nn,adm,adg)

[param,yhat,P,phi]=rarx(y,u,nn,adm,adg,para0,P0,phi0)

▷ 설명

ARX 모델 구조의 계수들은

A(q)y(t)=B(q)u(t-uk)+e(t)

회귀형 최소 자승 방법의 여러 종류를 사용해서 추정된다.

y와 u는 출력과 입력을 나타내며 열 벡터들이고 nn은 다음과 같은 형태로

주어진다.

nn = [ na nb nk]

여기서, na와 nb는 ARX 모델의 차수이고 nk는 지연이다.

만약 입력 u=[]이고, nn=na라면 rarx는 y에 대한 AR 모델의 변수를 추정

한다.

A(q)y(t)= e(t)

여러 개의 입력을 갖는 모델들은

A(q)y(t)=B 1(q)u 1(t-nk1 )+⋯+B nuu nu(t-nk nu )+e(t)

u가 열 벡터로서 각각의 입력을 포함하도록 해서 다룰 수 있다.

u=[ u1 ... unu]

그리고 각각의 입력과 관련된 nb와 nk가 차수와 지연을 정의하는 2개의

행 벡터로 해서 다룰 수 있다.

단일 출력 모델들에 대해서만 rarx를 다룰 수 있다.

행렬 param으로 추정된 변수들이 반환된다. param의 k 번째 행은 시간 k

와 관련된 변수들을 포함한다. param 의 각각의 행은 다음과 같은 순서로

추정된 변수들을 포함한다.

param(k;:) = [ a1 a2 ... ana, b1 ... , bnb]

다입력 모델의 경우 입력 1과 관련된 모든 b 변수들이 처음에 주어지고,

Page 160: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 158 -

그 다음 입력 2에 관련된 모든 b 변수들이 주어진다.

yhat은 출력의 예측된 값이다. yhat 의 행 k는 모든 과거 데이터를 기반으

로 y의 예측된 값을 포함한다.

실제 알고리즘은 두 가지 항목 adg 와 adm에 의해서 선택될 수 있다. 이

들은 “Recursive Parameter Estimation"에 설명되어 있다.

adm="ff"과 ag=lam은 forgetting factor λ=lam을 갖는 forgetting factor

알고리즘이 얻어진다. 이것은 종종 회귀형 최소 자승(RLS)라고 불리기도

한다. 이런 경우 행렬 P는 다음과 같이 해석된다. : R 2/2*P는 근사적으로

추정된 변수들의 상호분산 행렬과 같다. 여기서 R 2는 innovation의 분산값

이다.

adm="ug"와 adg=gam은 게인 gamma=gam을 갖는 unnormalize gradient

알고리즘이 얻어진다. 이 알고리즘은 일반적으로 unnomalized Least Mean

Squares(LMS)로 알려져 있다. 유사하게 adm="ng"이고 adg=gam 은

normalized gradient 혹은 Normalized Least mean Squares(NLMS)알고리

즘이 얻어진다. 이런 경우 P는 정의되지 않는다.

adm="kf"이고 adg= R 1은 R 2=1이고 R 1 =R 1을 갖는 Kalman Filter

Based 알고리즘이 얻어진다. innovation e(t)의 분산이 단위행렬이 아니고

R 2라면, R 2*P는 변수 추정치의 상호분산 행렬이다. 반면에 R 1=R 1/R 2

는 (9.4)에서 변하는 변수의 상호 분산 행렬이다.

입력 항 para0는 변수들의 초기 값을 포함한다. : 행 벡터, param의 행과

똑같다. para0의 기본값은 모두 0이다.

P0와 P 는 각각 변수들의 스케일된 상호분산 행렬의 초기 값과 마지막 값

이다. P0의 기본 값은 단위 행렬의 10 4 배이다.

phi0와 phi는 데이터 벡터의 초기 값과 마지막 값을 포함한다.

φ(t)=[y(t-1),⋯, y(t-na),u(t-1),⋯, (t-nb-nk+1)

그러면, 만약

y =[ y(1), ... y(N)] '

u =[u(), ... u(N)]'

라면, phi0=φ(1)이고 phi=φ(N)이다. phi0의 기본 값은 모두 0이다.

rarx의 온라인 사용을 위해 phi0, para0와 P0를 phi, param, P의 이전 출력

으로서 사용한다.

함수는 0보다 큰 지연 nk를 요구한다. 만약 nk=0으로 하려면 입력 시퀀스

Page 161: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 159 -

를 이동시키고 nk=1을 사용한다.

Page 162: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 160 -

RBJ

▷ 목적

Box-Jenkins 모델의 변수를 회귀형으로 추정한다.

▷ 문법

param = rbj(y,u,nn,adm,adg)

[param, yhat, P,phi, psi] = rbj(y,u,nn,adm,adg,para0,phi0,psi0)

▷ 설명

ARMAX 모델 구조의 변수들은

y(t)=B(q)F(q)

u(t-nk)+C(q)D(q)

e(t)

회귀형 예측 오차 방법을 사용해서 추정된다.

y와 u는 출력과 입력 데이터들이고 열 벡터이며, nn은 다음과 같은 주어진

다.

nn = [ nb nc nd nf nk]

여기서, nb, nc, nd 그리고 nf는 Box-Jenkins 모델의 차수이고 nk는 지연

이다. 차수에 대한 정확한 것을 알고 싶거든 (2.21)와 (2.14),(2.18),(2.22)그

리고 (2.29)를 참고해라.

추정된 변수들은 param 행렬에 반환된다. param의 k 번째 행은 시간 k와

관련된 변수들을 포함한다. param의 각 행은 다음과 같은 순서로 추정된

변수들을 포함한다.

param(k;:) = [b1 ,..., bnb, c1, ... , cnc, d1,... , dnd, f1, ... fnf]

yhat은 현재 모델에 따른 출력의 예측 값이다. 즉, yhat의 k 행은 모든 과

거 데이터를 기반으로 y(k;1)의 예측된 값을 포함한다.

실제 알고리즘은 두 가지 항목 adm 과 adg에 의해서 선택되고 이들은

rarx에 설명되어 있다.

입력 항인 para0은 param의 열과 같은 변수들의 초기 값을 포함한다.

para0의 기본 값은 모두 0이다.

P0와 P 는 각각 변수들의 스케일된 상호분산 행렬의 초기 값과 마지막 값

이다. P0의 기본 값은 단위 행렬의 10 4 배이다. phi0,psi0,phi 그리고 psi

는 데이터 벡터와 gradient 벡터의 초기값과 마지막 값을 포함한다. phi0와

Page 163: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 161 -

psi0의 일반적인 선택은 같은 모델 차수를 갖는 rbj를 이전에 부른 결과로

부터 출력을 사용하고자 할 때 사용한다. phi0와 psi0의 기본값은 모두 0이

다.

함수는 0보다 큰 지연 nk를 요구한다. 만약 nk=0으로 하려면 입력 시퀀스

를 이동시키고 nk=1을 사용한다.

Page 164: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 162 -

RESIDY

▷ 목적

모델의 잔차를 계산하고 시험한다.

▷ 문법

[e,r] = residy(y,u,para);

[e,r] = residy(y,u,para,M,maxsize)

residy(r)

▷ 설명

y와 u는 열 벡터로 된 출력과 입력 벡터이다. 다변수의 경우에는 y와 u는

각각의 열이 서로 다른 입력과 출력을 갖는 행렬이 된다.

para = 주어진 데이터 집합에서 평가될 para 형태로 구성된 모델이다.

e는 모델과 데이터와 관련된 잔차를 반환한다.

e의 자동상관 함수와 e 와 입력(s) u사이의 교차 상관이 계산되고 표시된

다. 이들 값들에 대한 99% 확실한 간격이 계산되고 점선으로 도시된다. 이

들 값의 계산은 e가 백색이고 u에 독립이라는 가정하에 계산된다. 함수들

의 M까지 표시되며 기본값은 25이다.

상관 정보는 r과 함께 반환된다. 그래프는 또한

residy(r)

을 사용해서 다시 볼 수 있다.

maxsize는 auxvar에 설명되어 있다.

▷예제

여기에 몇 가지 전형적인 모델 평가 명령어가 있다.

e = residy(y,u,para)

comparey(y,u,para)

Page 165: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 163 -

▷ 관련함수

auxvar, comparey, pem

Page 166: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 164 -

ROE

▷ 목적

출력 오차 모델의 변수를 회귀형으로 추정한다.

▷ 문법

param = roe(y,u,nn,adm,adg)

[param, yhat, P, phi,psi] = roe(y,u,nn,adm,adg,para0,P0,phi0,psi0)

▷ 설명

출력 오차 모델 구조의 변수들은

y(t)=B(q)F(q)

u(t-nk)

회귀형 예측 오차 방법을 사용해서 추정된다.

y와 u는 출력과 입력데이터이며 열 벡터이다. nn은 다음과 같은 형태로 주

어진다.

nn = [nb nf nk]

여기서 nb와 nf는 출력 오차 모델의 차수이며, nk는 지연이다. 차수에 대

한 좀 더 정확한 정보를 알고 싶거든 식 (2.14), 그리고 (2.19)-(2.20)을 참

고해라.

단일 입력, 단일 출력 모델만이 roe를 사용해서 다루어질 수 있다. 다입력

의 경우에는 rpem을 사용해라.

추정된 변수들은 행렬 param로 반환된다. param의 k 번째 행은 시간 k와

관련된 변수들을 포함한다.

param의 각 행은 다음과 같은 순서로 추정된 변수들을 포함한다.

param(k;:) = [b1, ... , bnb, f1, ... , fnf]

식 (2.14),(2.20)을 참고해라.

yhat은 현재 모델에 따른 예측된 출력값이다. yhat의 k 열은 모든 과거 데

이터를 기반으로 y(k;1)의 예측 값이다.

실제 알고리즘은 두 가지 항목 adg와 adm을 통해 선택된다. 이것은 rarx

에 설명되어 있다.

입력 항인 para0은 열 벡터 형태로 변수들의 초기 값을 포함한다. 기본값

은 모두 0이다.

Page 167: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 165 -

P0와 P 는 각각 변수들의 스케일된 상호분산 행렬의 초기 값과 마지막 값

이다. P0의 기본 값은 단위 행렬의 10 4 배이다. phi0,psi0,phi 그리고 psi

는 데이터 벡터와 gradient 벡터의 초기값과 마지막 값을 포함한다. phi0와

psi0의 일반적인 선택은 같은 모델 차수를 갖는 roe를 이전에 부른 결과로

부터 출력을 사용하고자 할 때 사용한다. phi0와 psi0의 기본값은 모두 0이

다.

함수는 0보다 큰 지연 nk를 요구한다. 만약 nk=0으로 하려면 입력 시퀀스

를 이동시키고 nk=1을 사용한다.

▷예제

u = sign(rand(50,1));

e = 0.2*rand(50,1);

para0 = poly2para([1 -1.5 0.7],[0 1 0.5],[1 -1 0.2]);

y = simid([u e],para0);

//Use a second order model with one delay, and apply the forgetting

//factor algorithm with lambda = 0.98

param1 = roe(y,u,[2 2 1],"ff",0.98); // It may take a while ....

t=1:length(param1);

plot(t,param1) ;

▷ 관련함수

Page 168: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 166 -

oe, rarx, rbj, rplr

Page 169: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 167 -

RPEM

▷ 목적

일반적인 다입력 단일 출력 선형 모델의 변수를 회귀형으로 추정한다.

▷ 문법

param = rpem(y,u,nn,adm,adg)

[param, yhat, P,phi,psi] = rpem(y,u,nn, adm,adg,para0,P0,phi0,psi0)

▷ 설명

일반적인 선형 모델 구조의 변수들은

A(q)y(t)=B 1(q)

F 1(q)u 1(t-nk1 )+⋯+

B nu

F nu

(q)u nu (t-nk nu)+C(q)D(q)

e(t)

회귀적인 예측 오차 방법을 사용해서 추정된다.

y와 u는 열 벡터로서 출력과 입력 데이터이다. nn은 다음과 같은 형태로

주어진다.

nn = [ na nb nc nd nf nk]

여기서 na, nb, nc, nd 그리고 nf는 모델의 차수이고 nk는 지연이다. 다입

력 시스템에 대해, nb, nf, 그리고 nk는 각각의 입력의 차수와 지연을 나타

내는 행 벡터들이다.

추정된 변수들은 param으로 반환 된다. param의 k 번째 행은 시간 k에 관

련된 변수들을 포함한다. param의 각 행은 다음과 같은 순서로 추정된 변

수들을 포함한다.

param(k;:) = [a1,a2,..., ana, b1,...,bnb, c1, ... ,cnc, d1,... ,dnd, f1,..., fnf]

다 입력 시스템에 대해 위의 표현에서 B부분은 C 부분이 시작되기 전에

각 입력에 대해 반복되고 또한 F 부분은 각 입력에 대해 반복된다. 이것은

para2par에서와 같은 순서이다.

yhat 은 현재 모델에 따른 예측 출력값이다. 즉, yhat 의 k 번째 열은

y(k;1)과 관련된 예측 값이다.

실제 알고리즘은 두 가지 항목 adg와 adm을 통해 선택된다. 이것은 rarx

에 설명되어 있다.

입력 항인 para0은 열 벡터 형태로 변수들의 초기 값을 포함한다. 기본값

은 모두 0이다.

Page 170: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 168 -

P0와 P 는 각각 변수들의 스케일된 상호분산 행렬의 초기 값과 마지막 값

이다. P0의 기본 값은 단위 행렬의 10 4 배이다. phi0,psi0,phi 그리고 psi

는 데이터 벡터와 gradient 벡터의 초기값과 마지막 값을 포함한다. phi0와

psi0의 일반적인 선택은 같은 모델 차수를 갖는 rpem을 이전에 부른 결과

로부터 출력을 사용하고자 할 때 사용한다. phi0와 psi0의 기본값은 모두 0

이다.

함수는 0보다 큰 지연 nk를 요구한다. 만약 nk=0으로 하려면 입력 시퀀스

를 이동시키고 nk=1을 사용한다.

▷ 관련함수

pem, rarmax, rarx, rbj, roe, rplr

RPLR

Page 171: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 169 -

▷ 목적

일반적인 다중 입력 단일 출력 선형 모델의 변수를 회귀형으로 추정한다.

▷ 문법

param = rplr(y,u,nn,adm,adg)

[param, yhat,P,phi] = rplr(y,u,nn,adm,adg,para0,P0,phi0)

▷ 설명

이것은 직접적으로 rpem과 교대적인 것이고 같은 구문을 갖고 있다. 입력

출력항에 대한 설명은 rpem을 참고해라.

rplr은 rpem과는 다른 gradient 근사법을 사용한다는 것이 다르다.

ARMAX 모델에 적용될 때(nn=[na nb nc 0 0 nk]), rplr은 확장된 최소 자

승 ELS 방법을 제공한다. 출력 오차 구조에 적용될 때(nn =[ 0 nb 0 0 nf

nk]) 방법은 adm="ff"에서 HARF로 알려지고, adm="ng"에서 SHARF로

알려져 있다.

rplr은 ARMA 모델이 다음과 같이 추정되는 시간 급수의 경우에도 적용될

수 있다.

y =y, u=[ ]

nn =[ na nc]

이런 경우 rarmax 와 교대로 rplr을 사용할 수 있다.

▷ 관련함수

pem, rarmax, rarx, rbj, roe, rpem

Page 172: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 170 -

SEGMENTY

▷ 목적

각 segment에 대한 데이터와 추정 모델들을 구분한다.

▷ 문법

segm = segmenty(y,u,nn)

[segm,V,param,R2e] = segmenty(y,u,nn,R2, q, R1,M,para0,P0,11, mu)

▷ 설명

AR, ARX 혹은 ARMAX/ARMA의 모델을 구성하는 segment는

A(q)y(t)=B(q)u(t-nk)+C(q)e(t)

모델 변수들이 시간에 걸쳐 piecewise 상수라고 가정한다. 모델에서 이로

인한 결과는 모델이 일정하게 남아 있는 시간에 걸쳐 데이터 자료를

segment로 쪼갠다. 함수 모델 신호들과 시스템들은 갑작스런 변화가 발생

할 수도 있다.

y와 u는 출력-입력 데이터이고 열 벡터이다. 만약 시스템에 여러 개의 입

력이 있다면 u는 같은 수의 열을 갖는다.

nn은 모델 차수를 정의한다. ARMAX 모델에 대해

nn =[ na nb nc nk]

여기서, na nb 그리고 nc는 다항식의 차수이다. 식(2.13)-(2.18)을 참고해라.

nk는 지연이다. 모델이 여러 개의 입력을 갖고 있다면, nb와 nk는 각 입력

에 대한 차수와 지연을 나타내는 행 벡터이다.

ARX 모델에 대해(nc=0)

nn =[ na nb nk]

시간 급수의 ARMA 모델에 대해

u = [ ]

nn = [na nc]

AR 모델에 대해

nn = na

출력 항인 segm은 k 행이 시간 k와 일치하는 변수를 포함하는 행렬이다.

이것은 rarx와 rarmax에서의 출력 항 param과 유사하다. segment의 출력

항 param은 같은 piecewise 상수이고 그러므로 함수 rarmax와 rarx의 출

Page 173: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 171 -

력과 일치한다. 사실 segment는 이들 2가지 알고리즘과는 선택적인 것이고

갑작스런 변화를 다루는데 더 유용하다.

출력 항 V는 분할된 모델의 제곱 예측 오차의 합을 포함한다. 이것은 얼마

나 성공적으로 분할이 되었는가를 측정한다.

입력 항 R2는 모델에서 innovation e(t)의 가정된 분산값이다. R2의 기본

값은 이것이 추정된 값이다. 그러면 출력 항 R2e는 k 번째 원소가 시간 k

에서 R2의 추정치를 포함하는 벡터이다.

q는 주어진 시간에 갑작스런 변화에서 모델이 실행되는 확률이다. 기본 값

은 0.01이다.

R1은 이들이 발생했을 때 변수 점프의 가정된 상호분산 행렬이다. 기본 값

은 추정된 변수와 같은 차원을 갖는 단위 행렬이다.

N은 알고리즘에서 사용된 병행 모델의 개수이다. 기본값은 5이다.

para0는 변수들의 초기 값이다. 기본은 0이다. P0는 변수들의 초기 상호 분

산 행렬이다. 기본값은 단위 행렬의 10배이다.

ll은 모델 각각에 대한 보장된 유지기간이다. 즉,어떤 만들어진 모델이 적어

도 11번 단계까지 사라지지 않는다. 기본은 ll=1이다. Mu는 R2를 추정하는

데 사용되는 forgetting 변수이다. 기본값은 0.97이다.

선택하는데 있어 가장 중요한 변수는 R2이다. 이것은 일반적으로 이것을

추정하는 것보다 R2의 합리적인 생각으로 결정하는 것이 더 견실하다. 전

형적으로 R2의 서로 다른 값을 구하고 결과를 평가하려는 시도가 필요하

다. sqrt(R2)는 변화된 시스템이나 입력이 없는 일반화된 y(t)에서의 변화

와 일치한다.

▷ 예제

어떻게 segment 알고리즘이 사인파를 일정한 level의 segment로 분할 하

는가를 검사해라. 그러면, 1이 fakced 입력이고 b 1이 y(t) 신호의

piecewise 일정 level인 매우 간단한 모델 y( t)= b1*1을 사용해라.

y = sin([1:50]/3)';

param = segmenty(y,ones(y),[0 1 1],0.1);

t=1:length(y);

plot(t,param,t,y)

Page 174: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 172 -

Page 175: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 173 -

SELSTRUC

▷ 목적

모델 차수(구조)를 선택한다.

▷ 문법

[nn, vmod] = selstruc(v)

[nn, vmod] = selstruc(v,c)

▷ 설명

selstruc은 arxstruc이나 ivstruc의 결과로부터 얻어진 행렬 v에 포함된 정

보로부터 모델 구조(차수)를 선택하는 것을 도와주는 함수이다.

c의 기본 값은 “plot"이다. 이것은 v대 모델 구조에서 변수들의 전체 개수

에서 손실 함수의 값을 그래프로 도시한다. IV 행렬의 조건수를 포함하기

위해 v가 ivstruc에 의해서 만들어 졌다면, 이들은 변수들의 개수와 비교되

어 그래프에 도시된다. 이들 그림을 조사해서, 변수들의 적당한 수를 선택

할 수 있고,nn은 변수의 이 수를 갖는 최적을 구조를 반환한다.

만약 c="log"이면, 손실 함수 대수가 그래프로 그려진다.

c="aic"라면 그림이 그려지지 않는다 그러나, nn에 Akaike's Information

Theoretic(AIC)를 최소화하는 구조를 반환한다.

V mod =V*(1+2*(d/N))

여기서 V는 손실 함수, d는 주어진 문제에서의 구조 변수들의 전체 개수이

고 N은 추정에 사용되는 데이터 포인트의 개수이다.

c="mdl이면, nn은 Rissanen's Minimum Description Length(MDL)

criterion을 최소화하는 구조를 반환한다.

V mod =V*(1+log(N)*d/N)

c가 숫자 값일 때 구조는 다음 식을 최소화하도록 선택된다.

V mod =V*(1+c*d/n)

출령 항인 vmod은 v와 같은 형태이지만, 이것은 수정된 criteria에 따른 대

수를 포함한다.

AIC나 MDL을 적용할 때는 ye=yv,ue=yv를 갖고 arxstruc에 의해서 v가

Page 176: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 174 -

만들어 져야 한다는 제약이 있다. cross-validation이 사용될 때 논리적인

선택은 c=0이다.

모델 구조를 선택할 때, 더 나은 fit의 장점이 오히려 높은 차수 모델의 복

잡성을 추가하지는 않는지에 대해 주의 깊게 생각해 봐야 한다.

▷ 예제

적당한 모델 구조를 찾는 명령어들에 대한 예제가 있다.

NN = struc(2,2,1:8);

CEMTool>>NN

2 2 12 2 22 2 32 2 42 2 52 2 62 2 72 2 8

ye=y(1:200;1);

ue=u(1:200;1);

yv =y(201:400;1);

uv=u(201:400;1);

v = arxstruc(ye,ue,yv,uv,NN);

CEMTool>>v

1 열부터 7 열까지0.0108 0.0030 0.0020 0.0094 0.0129 0.0134 0.01502.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000

2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.00001.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000

8 열부터 9 열까지

0.0160 191.00002.0000 26.38262.0000 0.0000

8.0000 0.0000

nn = selstruc(v,0);

CEMTool>>nn

2 2 3

Page 177: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 175 -

nk =nn(3);

NN = struc(1:4, 1:4, nk);

CEMTool>>NN

1 1 31 2 31 3 31 4 32 1 32 2 32 3 32 4 33 1 33 2 33 3 33 4 34 1 34 2 34 3 34 4 3

va = arxstruc(y(1:200;1),u(1:200;1),y(201:400;1),u(201:400;1),NN);

CEMTool>>va

1 열부터 7 열까지

0.0143 0.0046 0.0025 0.0022 0.0030 0.0020 0.00191.0000 1.0000 1.0000 1.0000 2.0000 2.0000 2.00001.0000 2.0000 3.0000 4.0000 1.0000 2.0000 3.00003.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000

8 열부터 14 열까지

0.0019 0.0026 0.0020 0.0020 0.0020 0.0027 0.00202.0000 3.0000 3.0000 3.0000 3.0000 4.0000 4.00004.0000 1.0000 2.0000 3.0000 4.0000 1.0000 2.00003.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000

15 열부터 17 열까지

0.0020 0.0020 194.00004.0000 4.0000 26.35073.0000 4.0000 0.00003.0000 3.0000 0.0000

vi = ivstruc(y(1:200;1),u(1:200;1),y(201:400;1),u(201:400;1),NN);

CEMTool>>vi

1 열부터 7 열까지

2.4695 1.7270 1.3200 1.4890 1.5575 1.4839 1.48581.0000 1.0000 1.0000 1.0000 2.0000 2.0000 2.00001.0000 2.0000 3.0000 4.0000 1.0000 2.0000 3.00003.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.00005.6989 7.2109 11.3308 9.6058 9.0511 10.4104 11.8790

8 열부터 14 열까지

1.4853 1.5746 1.4961 23.1543 246.2087 1.4923 1.47812.0000 3.0000 3.0000 3.0000 3.0000 4.0000 4.0000

Page 178: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 176 -

4.0000 1.0000 2.0000 3.0000 4.0000 1.0000 2.00003.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.000012.9344 10.6902 13.2326 16.7470 18.0503 11.8302 14.6582

15 열부터 17 열까지1.4749 1569.8790 194.00004.0000 4.0000 0.00003.0000 4.0000 0.00003.0000 3.0000 0.000017.1997 19.0726 0.0000

nna = selstruc(va);

CEMTool>>nna2 1 3

nni = selstruc(vi);

Page 179: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 177 -

CEMTool>>nni1 1 3

▷ 관련함수

arxstruc, ivstruc, struc

Page 180: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 178 -

SETTY

▷ 목적

샘플링 간격을 직접적으로 설정한다.

▷ 문법

modn = setty(mod, T)

▷ 설명

모든 함수들은 para 형태나 freqfunc 형태로 표현하는 모델을 만들고, 이들

의 마지막 항에 샘플링 간격 T를 설정하는 항을 갖고 있다. 편리하게

setty는 이것을 직접 설정할 수 있도록 해준다. 이것은 mod가 para 형태의

의 모델의 경우와 mod가 freqfunc 형태의 스펙트럼이나 주파수 함수 모두

의 경우에 적용될 수 있다.

para = armax(y,u,nn)

para = setty(para, T)

이것은 다음과 같다.

para = armax(y,u,nn,[],[],[],[],T)

유사하게

g = spay(y,u)

g = setty(g,T)

이것은 다음과 같다.

g = spay(y,u,[],[],[],T)

setty를 사용해서 새로운 샘플링 간격에서 모델을 다시 계산할 수 없다는

것에 주의해라. 대신에 pac2pad 나 pad2pac를 이용해라.

▷ 관련함수

para

Page 181: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 179 -

SIMID

▷ 목적

para 형태로 정해진 시스템을 시뮬레이션한다.

▷ 문법

y = simid([u e], para)

[y,ysd] = simid(u, para);

▷ 설명

para는 para 형태로 주어진 임의의 모델이다. simid는 시뮬레이션 된 출력

을 포함하는 y를 반환한다. e가 생략되면, 잡음이 없는 시뮬레이션이 얻어

진다.

잡음 시퀀스 e는 λ에 의해 스케일된다. 여기서 λ는 para에서 정해진 잡

음 분산이다. 정확한 잡음 영향을 얻기 위해서는 영평균이고 단위 분산인

e를 준다.

잡음을 갖고 시뮬레이션된 다출력 시스템에 대해 e는 출력의 개수와 같은

수의 열을 갖고 있어야 한다. 잡음은 다시 para에서 잡음 상호분산 행렬을

사용해서 스케일된다.

두 번째 출력 항은 시뮬레이션 된 출력의 표준 편차이다. 이 옵션은 상태

공간 모델에서는 사용할 수 없다.

para가 연속 시간 모델이라면, 이것은 샘플링 간격 abs(T)을 갖고 이산 시

간으로 변환해야 한다.

▷예제

주어진 시스템 para0를 시뮬레이션하라.

e =rand(500,1);

u =idinput(500,"prbs");

y = simid([u e], para0);

추정된 모델 para를 사용해서 시뮬레이션 된 것과 측정 출력 y를 비교해서

모델을 평가해라.

comparey(y,u,para);

Page 182: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 180 -

▷ 관련함수

simsdid, poly2para

Page 183: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 181 -

SIMSDID

▷ 목적

uncertainty를 갖는 para 형태 시스템을 시뮬레이션 한다.

▷ 문법

simsdid(u,para)

simsdid(u,para, N, noise)

▷ 설명

u는 입력(s)을 포함하는 열벡터이다. para는 para 형태로 주어진 모델이다.

para에서 주어진 상호분산 정보에 따라 N개의 random 모델들이 만들어

진다. 입력 u에 대한 이들 모델들 각각의 응답이 계산되고 같은 다이어그

램에 도시된다. noise="noise"라면, 잡음이 시뮬레이션에 추가된다.

기본 값은

N=10

noise="nonoise"

▷예제

모델 para의 단위 계단 응듭을 도시하고 모델의 uncertainty의 관점에서 어

떻게 다양한지 평가해라.

step1 = [zeors(5,1) ; ones(20,1)

simsdid(step1,para)

Page 184: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 182 -

▷ 관련함수

simid, para2ff, para2zp

Page 185: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 183 -

SPAY

▷ 목적

스펙트럼 해석을 사용해서 주파수 응답과 스펙트럼을 추정한다.

▷ 문법

[g,phiv] = spay(y,u)

[g, phiv, z_spe] = spay(y,u,M,w,maxsize,T)

▷ 설명

spay는 일반적인 선형 모델의 잡음 스펙트럼 phiv=Φv과 전달 함수 g를

추정한다.

y(t)=G(q)u(t)+v(t)

여기서, Φv(w)는 v(t)의 스펙트럼이다.

y와 u는 열 벡터인 출력과 입력 데이터이다. 여러 개의 입력이 존재한다

면, 각 입력에 대한 열을 갖는 행렬이다. 데이터는 복소수 값일 수도 있다.

g는 행 벡터 w에 의해 정해진 주파수 w에서 G(e jw)의 추정치를 갖는 주

파수 함수 형태로 반환된다. w의 기본 값은

w=[1:128]/128*pi/T

phiv는 같은 주파수에서 Φv의 자동 스펙트럼 추정치를 갖고 반환된다. 두

개의 출력 모두 추정된 표준 편차를 갖고 반환된다.

M는 계산에 사용되는 lag window의 길이이다. 기본 값은

M= min (30,length(y)/10)

이다.

스펙트럼 추정에서 분산에 대한 bias를 바꿔줌으로서 M의 값을 바꿀 수

있다. M이 증가함에 따라 추정된 함수는 좀더 자세하게 보여진다. 그러나

잡음에 대한 영향이 커진다. narrowband 신호와 시스템에 대해서는 교대

적으로 사용되는 etfe를 참고해라.

T는 샘플링 간격이고 maxsize는 메모리 속도의 trade-off를 제어한다.

시간 급수 u= []에 대해서 g는 추정된 출력 스펙트럼과 표준 편차를 반환

한다.

Page 186: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 184 -

선택적으로 3번째 출력 항인 z_spe는 다음과 같은 z의 스펙트럼 행렬을 나

타낸다.

z=[y u]

reshape(z_spe(:;k), nz,nz) = 주파수 W(k)에서 스펙트럼 S

여기서 nz는 데이터 행렬 z의 채널 개수이다.

S= ∑M

m=-MEz(t+m)z(t)'exp(-iW(k)mT)win(m)

여기서 win(m)은 M 크기의 Hamming window의 lag m에서의 가중치이고

W(k)는 주파수 값 i(rad/s)이다.

스펙트럼의 정규화는 Signal Processing Toolbox의 spectrum을 사용한 것

과는 다르다.

▷ 예제

기본 주파수

g = spay(y,u);

bodeplot(g);

대수적 공간 주파수에서

w = logspace(-2, pi,128);

[g,phiv]=spay(y,u,[],w);

bodeplot([g phiv],3)

Page 187: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 185 -

3개의 표준 편차의 확실한 간격을 갖고 모든 추정된 스펙트럼을 도시한다.

▷ 관련함수

auxvar, bodeplot, etfe, ffplot, para2ff

Page 188: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 186 -

SS2PARA

▷ 목적

canonical 형태로 계수화된 모델 구조를 만든다.

▷ 문법

paras = ss2para(para)

paras = ss2para(para,orders)

▷ 설명

이 함수는 para 형태의 모델은 canonically 계수화된 상태 공간 모델이나

para 형태로 변환한다. 이것은 모델이 몇 가지 방법으로 얻어졌을 때, 그리

고 pem을 사용해서 예측 오차 추정을 위한 초기 모델로서 이것을 사용하

고자 할 때 유용하다.

para ; 주어진 모델

paras ; 결과로 나온 모델, 관측기 형태에서 canonical 계수화는

pseudo-observability indices orders를 기반으로 한다.

orders : The pseudo-obsevability indices. 모델 para에서의 출력 수와 같

은 수의 원소를 갖는 행 벡터이다. 자세한 건 canform을 참고해라. orders

가 생략되면 indices의 기본 선택이 이루어진다.

모델 para가 출력 오차 모델이라면, paras 또한 출력 오차 모델이다. para

에서 입력으로부터 출력까지 지연이 존재한다면, paras 또한 같은 구조를

갖는다.

▷ 예제

주어진 행렬 A,B,C,D 그리고 K로부터 계수화된 상태 공간 모델를 만들고

이것을 pem 추정을 위한 초기 조건으로 사용해라.

para1= ms2para(modstruc(A,B,C,D,K),"d");

prai = ss2para(para1);

para = pem(y,u,pari)

n4sidy로부터 얻어진 모델이 예측 오차 추정의 초기 값으로서 사용된다고

하자.

Page 189: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 187 -

paran = n4sidy(y,u,3);

parap = pem(y,u,ss2para(paran)

▷ 관련함수

canform, canstrat, ms2para, n4sidy

Page 190: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 188 -

STRUC

▷ 목적

모델 구조 행렬을 만들어 낸다.

▷ 문법

NN = struc(NA, NB, NK)

▷ 설명

struc은 NN에 행 벡터 NA, NB, 그리고 NK에서 주어진 차수와 지연들의

모든 결합들의 복합된 모델 구조 집합을 반환한다. NN의 형태는 arxstruc

과 ivstruc에서 사용되는 입력 형태와 일치한다. 명령어는 단일 입력 시스

템에서만 가능하다.

▷ 예제

NN = struc(1:2, 1:2 , 4:5)

CEMTool>>NN

1 1 41 1 51 2 41 2 52 1 42 1 52 2 42 2 5

Page 191: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 189 -

UNFIXPAR

▷ 목적

ms2para와 arx2para로 정의된 구조에서 변수를 자유롭게 한다.

▷ 문법

paran = unfixpar(para0,matrix)

paran = unfixpar(para0,matrix,elements)

▷ 설명

이 함수는 fixpar와 반대되는 과정이다. 각 항목에 대한 해석은 동일하다.

unfixpar는 추정될 자유 변수들을 지적한다. 이들 변수들의 공칭/초기 값들

은 구조 para0에서의 이들 실제 값과 같도록 취급된다.

▷ 관련함수

fixpar, ms2para, para, parainit

Page 192: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 190 -

ZEPO

▷ 목적

영점과 극점 형태를 표현한다.

▷ 문법

help zepo

▷ 설명

zepo 형태는 para2zp와 zp에 의해서 만들어 지고 zpplot에 의해서 사용된

다. 이것은 영점과 극점 그리고 표준 편차에 대한 정보를 포함한다. 정보를

표시하는 기본적인 방법은 zpplot 명령어를 사용하는 것이다. 몇 개의 특정

한 정보는 함수 getzp를 사용해서 구할 수 있다. 이것의 각 항은 내부표현

에 대한 상세한 설명이 주어지지만, 이 정보는 시스템 식별 도구상자를 사

용하는 대부분의 사용자들에게는 불필요한 것이다.

행렬의 첫 번째 행은 열 밑에 성분들에 대한 정보를 제공하는 정수로 구성

되어 있다. 정수는 다음과 같은 방법으로 구성된다.

․입력 개수 ku와 출력 개수 ky와 관련된 영점들은 (ky-1)*1000+ku 개수

와 일치한다.

․이들 영점들의 표준 편차들은 (ky-1)*1000+ku+60과 같다.

․입력 개수 ku와 출력 개수 ky와 관련된 극점들은 (ky-1)*1000+ku+20 과

같다.

․이들 극점들의 표준 편차는 (ky-1)*1000+ku+80과 같다.

․잡음 입력 개수 ky와 출력 개수 ky와 관련된 영점들은 500+ky와 같다.

․이들의 표준 편차는 극점의 경우와 같고 이들의 표준 편차는 이 수에 각

각 60, 20, 80을 더해서 구할 수 있다.

․존재하지 않는 영점과 극점과 일치하는 위치는 inf으로 표현된다.

․위의 수들이 음수라면, 이것은 영점이나 극점 표현이 연속 시간 모델이

라는 것을 의미한다. 그러면 수의 절대 값이 위에서 해석된다.

․복소수 쌍의 경우에는, 표준 편차와 일치하는 항에서 첫 번째 행은 실수

부분과 허수 부분들이 극점과 영점의 실수와 허수부분의 표준편차를 갖

는 복소수를 포함한다. 다음 행은 실수와 허수 부분사이의 상관인 실수

값을 포함한다.

Page 193: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 191 -

▷ 관련함수

getzp, para2zp, zpform, zpplot

Page 194: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 192 -

ZPFORM

▷ 목적

서론 다른 모델들로부터 영점-극점 정보를 합병한다.

▷ 문법

zepo = zpform(zepo1, zepo2, ..., ku)

▷ 설명

서로 다른 모델들 사이의 zepo1, zepo2, ...에서 영점과 극점들은 zpplot에

의해서 사용될 수 있도록 하나의 행렬로 병합된다. zepo1, zepo2, .. 는

para2zp에 의해서 만들어지는 형태이다. ku는 zepo를 구성할 때 묶어질 입

력 개수를 포함하는 선택적인 행 벡터이다. 기본 값은 ku가 zepo1, zepo2,..

에서 표현되는 모든 입력과 같게 된다. zpform에서는 최대 5개의 입력 항

이 가능하다.

▷예제

zpplot(zpform(zpbj2, zpbj4, zpax2, zpax4, 0))

4개의 서로 다른 모델들의 잡음 특성을 비교한다.

▷ 관련함수

para2zp, zpplot

Page 195: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 193 -

ZPPLOT

▷ 목적

영점과 극점을 그래프로 도시한다.

▷ 문법

zpplot(zepo)

zpplot(zpform(zepo1, zepo2, ..., zepon))

zpplot(zepo, sd, mode, axis)

▷ 설명

zepo에 의해서 정해진 영점과 극점이 그래프로 도시된다. o은 영점을 x는

극점을 나타낸다. 입력은 같지만 모델이 다른 경우, 극점과 영점들은 항상

같은 다이어그램에서 도시되고, 엔터를 눌러서 다음 모델을 볼 수 있다. 색

깔이 있는 화면에서는 같은 모델에 대한 극점과 영점 그리고 확실한 영역

들은 모두 같은 색으로 표시된다. 무한대에서 극점과 영점들은 무시된다.

이산 시간 모델에 대해, 원점에서의 영점과 극점들 또한 무시된다.

sd가 영보다 큰 수라면, 극점과 영점들 주의의 확실한 영역이 또한 표시된

다. sd 표준 편차와 일치하는 영역이 표시된다. 기본 값은 sd=0이다. 확실

한 영역은 가끔씩 그림 밖으로 확장되는 경우가 있지만 이들은 항상 영점

이나 극점 주의에 대칭으로 존재한다.

zepo가 몇 가지 다른 입력에 대한 정보를 갖고 있다면 여기에 몇 개의 옵

션이 존재한다.

mode="sub" :화면을 몇 개의 그림으로 분할한다.

mode ="same": 같은 다이어그램에 모두 표시한다.

mode="sep" : 다음 입력을 다루기 전에 이전 그림을 지운다.

기본 값은 mode="sub"이다.

▷예제

zpbj = para2zp(parabj2);

zpamx = para2zp(paraarmax4);

zpiv = para2zp(parai2);

zpplot(zpbj)

Page 196: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 194 -

holdon

zpplot(zpamx)

holdon

zpplot(zpbj)

▷ 관련함수

para2zp, zpform

Page 197: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 195 -

Reference Paper

[1] H.Akaike(1973). Maximum likelihood identification of Gaussian

autoregressive moving average models. Biometrika. vol.60, pp.255-265

[2] H.Akaike(1974b). stochastic theory of minimal realization. IEEE

Trans. Autom. Control, vol.Ac-19, pp.667-674

[3] B.D.O.Anderson, and M.R. Gevers(1982). Identifiability of linear

stochastic systems operating under linear feedback. Atuomatica, vol.18,

pp.195-213

[4] B.D.O.Anderson, J.B.Moore, and R.M.Hawkes(1978). Model

approximation via prediction error identification. Atuomatica, vol.14,

pp.615-622.

[5] T.W.Anderson and J.B.Taylor(1979). Strong consistency of

least-squres estimates in dynamic models. Ann. Stat., vol.7, pp.484-489

[6] K.J..Astrom(1968). Lectures on the identification problem-the least

squares method Report 6806, Division of Automatic Control, Lund

Institute of Technology, Lund, Sweden.

[7] K.J.Astrom(1975). Lectures on system identification, Chapter 3,

Frequency response analysis. Report 7504, Dept. of Automatic Control,

Lund Institute of Technology, Sweden.

[8] K.J.Atrom(1980). Maximum likelihood and prediction error methods.

Automatica, vol.16, pp.551-574

[9] K.J.Astrom and P.Eykhoff(1971). System identification-a survey.

Automatica, vol.7, pp.123-167

[10] K.J.Astrom and B.Witttenmark(1971). Problems of identification and

control. J.Math. Analysis and Applications, vol.34, pp.90-113

[11] S.Beghelli and R.P.Guidorzi(1983). Transformations between

input-output multistructural models-properties and applications,

Int.J.Control, vol.37, pp.1385-1400

[12] K.N.Berk (1974). Consistent autoregressive spectral estimates. Ann.

State., vol. 2, pp.489-502

[13] Bohlin(1976). Four cases of identification of changing systems, In

Page 198: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 196 -

System Identification: Advances and Case Studies(R.K.Mehra and

D.G.Lainiotis, eds.), Academic Press, New York.

[14] T.Bohlin(1987). Model validation. In Encyclopedia of Systems and

Control(M.Singh, ed.) Pergamon Press, Oxford

[15] D.R.Brillinger(1981). Time Series: Data Analysis and Theory.

Holden-Day, San Francisco.

[16] J.A.Cadzow(1980). High performance spectral estimation-A new

ARMA method, IEEE Trans. Acoustics, Speech and Signal Proc. vol.

ASSP-28, pp.524-529.

[17] D.W.Clarke(1967). Generalized least squares estimation of

parameters of a dynamic model. First IFAC Symposium of Identification

in Automatic Control Systems, Prague.

[18] G.O.Correa and K.Glover(1984). Pseudo-canonical forms, identifiable

parametrizations and simple parameter estimation for linear multivariable

systems. Automatica, vol. 20, pp.429-452

[19] L.Dugard and I.D.Landau(1980). Recursive output error identification

algorithms. Automatica,, vol.16, pp.443-462

[20] J.H.Eaton(1967). Identification for Control Purpose. IEEE winter

meeting, New York

[21] F.Fnaiech and L.Ljung(1986). Recursive identification of bilinear

systems. Int. J.Control, to appear

[22] B.P.Fuhrt(1973). New estimator for the identification of dynamic

processed. IBK Report, Institut Boris Kidric Vinca, Belgrade, Yugolavia

[23] A.Gauthier and I.D.Landau(1978). On the recursive identification or

multi-input, multi-output systems. Automatica, vol.14, pp. 609-614

[24] J. Gertler and Cs. Banyasz(1974) A recursive(on-line) maximum

likelihood identification method. IEEE Trans. Automatic Control, vol.

AC-19, pp. 816-820

[25] M.Gevers and V.Wertz(1984). Uniquely identifiable state-space and

ARMA parametrizations for myltivariable systems. Automatica, vol. 20,

pp. 333-347

[26] K.R.Godfrey(1980). correlation methods, Automatica, vol. 16, pp.

527-534

[27] G.C.Goodwin nd R.L.Payne(1977). Dynamic System Identification:

Page 199: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 197 -

Experiment Design and Data Analysis, Academic Preess, New York.

[28] I.Gustavsson, L.Ljung, and T.Soderstrom(1977). Identification of

precesses in closed loop-Identification and accuracy aspects. Automatica,

vol. 13, no.1, pp. 59-75

[29] E.J.Hannan(1980a). Recursive estimation based on ARMA models.

Ann. Statis. vol. 8, pp. 762-777

[30] E.J.Hannan(1980b). The estimation of the order of and ARMA

process. Ann. Statis., vol.8, pp.762-777.

[31] S.D.Hill(1985). Reduced gradient computation in prediction error

identification. IEEE Trans. Automatic Control, vol. AC-30, pp.776-778

[32] A.G.Ivakhnenko(1968). The group method of data handling-A rival

of stochastic approximation. Sov. Autom. Control, vol. 3, pp.43,

[33] A.J.Jakeman(1985). Application of identification and systems

parameter estimation to environmental problems: Some recent examples.

Proc.7th IFAC symp. on Identification and System Parameter

Estimation, York, U.K. ,pp. 445-450

[34] P.V.Kabaila(1983). On output-error methods for system

identification. IEEE Trans. Autom. control, vol. AC-28, pp.12-23.

[35] S.M.Kay and S.L.Marple(1981). Spectrum analysis-A modern

perspective. Proc. IEEE, vol.69, pp.1380-1419.

[36] D.T.Lee, M.Morf, and B.Friedlander(1981). Recursive least squares

ladder estimation algorithms. IEEE Trans. Acoustics, Speech and Signal

Processing, vol. ASSP-29, pp.627-641.

[37] L.Ljung(1979a). Asymptotic behavior of the extended Kalman filter

as a parameter estimator for linear system. IEEE Trans. Automatic

Control, vol. AC-24, pp. 36-50

[38] L.Ljung(1979b). Convergence of recursive estimators. Proc. 5th

IFAC Symp. on Identification and System Parameter Estimation,

Darmstadt, FRG (Pergamon Press, Elmsford, N.Y.), pp.131-144

[39] L.Ljung(1981). Analysis of a general recursive prediction error

identification algorithm. Automatica, vol. 17, pp.89-100

[40] L.Ljung(1985a). On the estimation of transfer functions. Automatica,

vol. 21, pp. 677-696.

[41] L.Ljung(1985ab). Asymptotic variances expressions for identified

Page 200: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 198 -

black-box transfer function modes. IEEE Trans. Automatic Control. pp.

834-844

[42] L.Ljung(1985c). Asymptotic variances of transfer function estimates

obtained by the instrumental variable method. Proc. 7th IFAC Symp. on

Identification and System Parameter Estimation, York, U.K., pp.

1341-1344

[43] L.Ljung(1986a). Parametric methods for identification of transfer

functions of linear systems. In Advances in Control, vol. 24(C.L.Leondes,

ed.), Academic Press, New york.

[44] L.Ljung and A.J.M.Van Overbeek(1978). Validation of approximate

models obtained from prediction error identification, Proc. 7th IFAC

Congress, Helsinki, paper 45 A.3, pp. 1899-1980

[45] L.Ljung and T.Soderstrom(1983). Theory and Practice fo Recursive

Identification. MIT Press, Cambridge, Mass

[46] L.Ljung and Z.D.Yuan(1985). Asymptotic properties of black-box

identification of transfer functions. IEEE Trans. Autom. Control, vol.

AC-30, pp. 514-530

[47] D.Q.Mayne and F.Firoozan(1982). Linear identification of ARMA

processes. Automatica, vol.18, pp.461-466

[48] J.B.Moore and H.Weiss(1979). Recursive prediction error methods

for adaptive estimation. IEEE Trans. Systems, Man and Cybernetics,

vol. SMC-9, pp.197-205

[49] T.Soderstrom(1987). Model structure determination. In Encyclopedia

of Systems and Control(M.Singh, ed.), Pergamon Press, Elmsford, N.Y.

[50] T.Soderstrom and P.Stoica(1983). Instrumental Variable Methods for

System Identification. Lecture Notes in Control and Information

Sciences, Springer-Verlag, New York.

[51] T.Soderstrom and P.Stoica(1987). System Identification.

Prentice-Hall, Englewood Cliffs, N.J.(in press)

[52] T.Soderstrom, P.Stoic, and E.Trulsson(1987). Instrumental vaiable

methods for closed loop systems. Proc 10th IFAC Congress, Munich. To

appear

[53] G.Solbrand, A.Ahlen, and L.Ljung(1985). Recursive method for

off-line identification. Int.J.Control. vol.41, pp. 177-191.

Page 201: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 199 -

[54] P.Stoica and T.Soderstrom(1983). Optimal instrumental variable

estimation and approximate implementation. IEEE Trans. Automatic

Control, vol. AC-28, pp.757-772

[55] P.Stoica, B.Friedlander and T.Soderstrom(1986). Instrumental

variable methods for ARMA models. In Control and Dynamic

Systems-Advances in theory and Applications. vol. XXIV(C.T.Leondes,

ed.), Academic Press, New York. To appear

[56] P.stoica, T.Sodersrom, and B.Friedlander(1985). Optimal instrumental

variable estimates of the AR-parameters of an ARMA-process. IEEE

Trans. Automatic Control, vol. AC-30, pp. 1066-1074

[57] B.Wahlberg(1986). On model reduction in system identification. Proc

Americ. Control Conf., Seattle, Wash.

[58] B.Wahlberg(1991), System Identification Using Laguerre Models,

IEEE Trans. Automat. Contr. Vol.36, No5, p551-561

[59] E.Walter(1982). Identifiability of State Space Models.

Springer-Verlag, New York.

[60] P.E.Wellstead(1981). Non-parametric methods of system

identification. Automatical, vol.17, pp.55-69.

[61] P.C.Young(1984). Recursive Estimation and Time-Series Analysis.

Springer-Verlag, New York.

[62] P.C.Yong, A.J.Jakeman, and R.Mcmurtrie(1980). An instrumental

variable method for model order identification. Automatica, vol. 16,

pp.281-294.

Page 202: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 200 -

부록 A. List of Function

Simulation and prediction : 전체

idinput

simid

pey

poly2para

predict

입력 신호 발생

일반적인 선형 시스템을 시뮬레이션 함

예측 오차를 계산

분자와 분모 다항식으로 정의된 입력-출력 모델

구조를 만든다.

모델에 따라 예측값을 계산함

Data Manipulation : 11장

dtrendy

idfilt

idresamp

데이터로부터 trend를 제거함

필터링 데이터

샘플링 데이터

Nonparametric Estimation : 6장

covf 상호분산 함수를 추정

cray 상관 해석을 사용해서 임펄스 응답과 상호 분산

함수를 추정

etfe direct 푸리에 기술을 사용해서 전달함수와 스펙

트럼을 추정

spay 스펙트럼 해석을 사용해서 스펙트럼과 전달 함수

를 추정

Page 203: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 201 -

Parameter Estimation : 7장

ar

armax

arx

bjy

canstart

firid

ivary

ivxy

iv4y

laguerre

oe

pem

AR 모델 추정

ARMAX 모델 추정

최소자승기법을 사용해서 ARX 모델 추정

Box-Jenkins 모델 추정

canonical 상태 공간 형태에서 다변수 모델 추정

FIR 모델 추정

도구 변수 방법을 사용해서 AR 모델 추정

일반적인 도구를 사용해서 ARX 모델 추정

four-stage 도구 변수 방법을 사용해서 ARX 모델

추정

Laguerre 모델 추정

출력 오차 모델을 추정

일반적인 선형 모델 추정

Model Structure Creation : 8장

arx2para

canform

modstruc

ms2para

poly2para

(다변수) ARX 구조 정의 canonical 형태를 만듬

canonical 형태를 만듬

매개변수를(알려진,알려지지 않은 것 모두)갖는

상태 공간 모델 정의

선형상태공간모델(알려진, 알려지지 않은 모두)에

대한 모델 구조를 만듬.

분자와 분모 다항식으로 정의된 입력-출력모델에

대한 모델 구조를 만듬

Manipulating Model Structures : 전체

fixpar

setty

parainit

unfixpar

주어진 값으로 구조에서 매개변수를 고정시킴

샘플링 간격을 설정

초기 매개 변수 값을 선택하거나 임의 값으로함

이전에 고정된 매개변수들이 추정되도록 함

Page 204: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 202 -

Model Conversions : 9장

idmodred

pac2pad

pad2pac

para2arx

para2ff

para2par

para2poly

para2ss

para2tf

para2zp

낮은 차수의 모델로 축소함

연속시간에서 이산시간으로 변환함

이산시간에서 연속시간으로 변환함.

para를 arx 매개 변수로

para를 주파수 함수와 스펙트럼으로

para를 추정된 매개변수와 분산으로

para를 전달함수 다항식으로

para를 상태 공간 행렬로

para를 전달 함수로

para를 영점, 극점, 그리고 고정 이득으로

Model Presentation : 9장

bodeplot

ffplot

idploty

present

zpplot

보드 다이어그램을 도시

주파수 함수와 스펙트럼을 도시

입력-출력 데이터를 도시

화면에 모델을 보여줌

영점과 극점을 도시

Information Extraction : 전체

getff

getty

getmfpara

getncapy

para2par

주파수 형태로부터 주파수 함수를 얻는다

para 형태로부터 샘플링 간격을 얻는다.

모델 구조를 정의하는 M파일 이름을 얻는다.

para 형태로부터 모델이 기본으로 하는 데이터의

수를 얻는다.

para 형태로부터 추정된 계수와 분산을 얻는다.

Page 205: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 203 -

Model Validation : 10장

comparey

simid

pe

predict

residy

실제 출력과 시뮬레이션 된 혹은 예측된 출력을

비교함.

모델을 시뮬레이션함

예측 오차를 계산

미래 출력을 예측

시험 모델의 residuals를 계산

Assessing Model Uncertainty : 10장

simsdid

para2ff

para2zp

몇가지 가능한 모델로부터 응답을 시뮬레이션

주파수 함수와 표준 편차를 계산

영점, 극점, 고정 게인, 그리고 표준 편차를 계산

Model Structure Selection : 10장

arxstruc

ivstruc

selstruc

struc

ARX 모델 구조 집합에 대한 손실 함수 계산

출력 오차 모델 구조 집합에 대한 손실 함수 계산

구조 선택

구조 집합을 발생

Recursive Parameter Estimation : 12장

rarmax

rarx

rbj

roe

rpem

rplr

segmenty

재귀형으로 ARMAX 나 ARMA 모델을 추정

재귀형으로 ARX나 AR 모델을 추정

재귀형으로 Box-Jenkins 모델을 추정

재귀형으로 출력 오차 모델(IIR-filters)을 추정

일반적인 입력-출력 모델을 재귀형 예측 오차 방법

을 사용해서 추정

일반적인 입력-출력 모델을 재귀형 pseudo 선형회귀

방법을 사용해서 추정

segment 데이터와 각 세그먼트에 대한 모델 추정

Page 206: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 204 -

부록 B. List of Examples

예제명 설 명 관련된 절

ex6_1.cem y와 u에 대한 추정된 상관함수 6 장

ex6_2.cem 서로 다른 크기의 윈도우 테스트 6 장

ex8_1.cem para 행렬 구조 정의 8 장

ex8_2.cem 알고있는 변수를 사용한 para 구조 정의 8 장

ex8_3.cem 샘플링 간격 설정 8 장

ex9_1.cem 입력과 잡음을 포함하는 모의실험 9 장

ex10_1.cem 명령어구조 행렬 NN을 만드는 법 10 장

ex10_2.cem 서로 다른 구조와 모델 속성 평가 추정 10 장

ex12_1.cem 회귀형 최소 자승 알고리즘(온라인) 12 장

ex13_1.cem 스펙트럼 추정비교, 상호분산 함수 추정 13 장

ex13_2.cem Folding effects 13 장

ex1.cem 시간 급수에 대한 AR모델 계수 추정 8 장

ex2.cem ARX 모델 계수 추정 8 장

ex3.cem 상태공간 canonical 형태 모델 구조 8 장

Page 207: System Identification Toolbox Manual · Qmßà9'T PzVá}a ßঠßàV5 en*ªTâÉna±²´ OÅe-~| % i&ãmRa jÅe äå OÃ}QmR ÕaaÁßà9% iÙæ^ ç*aèé D! 2D êOëìßàíOîï~|ÅÁao

- 205 -

ex4.cem 측정된 출력과 모의 실험 출력 비교 7 장

ex5.cem 상관 해석과 임펄스 응답 6 장, 7 장

ex6.cem 주파수 함수와 스펙트럼 6 장

ex7.cem 도구변수 최적 선택과정을 이용한 AR 모델 계수 추정 7 장

ex8.cem 모의실험 출력과 측정 출력간의 fit률 계산 10 장

ex9.cem 모르는 항을 갖는 상태공간 모델 정의 10 장

ex10.cem para로부터 영점, 극점, 게인을 계산 13 장

ex11.cem k-step ahead 출력 예측 10 장

ex12.cem 회귀형으로 출력 오차 모델 계수를 추정 12 장

ex13.cem segment 분할 방법 12 장

ex14.cem 모델차수(구조)선택 10 장