- Scilab help
- CACSD
- Format representations and conversions
- Plot and display
- abinv
- arhnk
- arl2
- arma
- arma2p
- arma2ss
- armac
- armax
- armax1
- arsimul
- augment
- balreal
- bilin
- bstap
- cainv
- calfrq
- canon
- ccontrg
- cls2dls
- colinout
- colregul
- cont_mat
- contr
- contrss
- copfac
- csim
- ctr_gram
- damp
- dcf
- ddp
- dhinf
- dhnorm
- dscr
- dsimul
- dt_ility
- dtsi
- equil
- equil1
- feedback
- findABCD
- findAC
- findBD
- findBDK
- findR
- findx0BD
- flts
- fourplan
- freq
- freson
- fspecg
- fstabst
- g_margin
- gamitg
- gcare
- gfare
- gfrancis
- gtild
- h2norm
- h_cl
- h_inf
- h_inf_st
- h_norm
- hankelsv
- hinf
- imrep2ss
- inistate
- invsyslin
- kpure
- krac2
- lcf
- leqr
- lft
- lin
- linf
- linfn
- linmeq
- lqe
- lqg
- lqg2stan
- lqg_ltr
- lqr
- ltitr
- macglov
- minreal
- minss
- mucomp
- narsimul
- nehari
- noisegen
- nyquistfrequencybounds
- obs_gram
- obscont
- observer
- obsv_mat
- obsvss
- p_margin
- parrot
- pfss
- phasemag
- pol2des
- ppol
- prbs_a
- projsl
- reglin
- repfreq
- ric_desc
- ricc
- riccati
- routh_t
- rowinout
- rowregul
- rtitr
- sensi
- sident
- sorder
- specfact
- ssprint
- st_ility
- stabil
- sysfact
- syssize
- time_id
- trzeros
- ui_observer
- unobs
- zeropen
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
armax
armax 同定
呼び出し手順
[arc,la,lb,sig,resid]=armax(r,s,y,u,[b0f,prf])
パラメータ
- y
出力プロセス y(ny,n); ( ny: yの次元 , n : サンプルの大きさ)
- u
入力プロセス u(nu,n); ( nu: uの次元 , n : サンプルの大きさ)
- r and s
自己回帰,次数は r >=0 , s >=-1
- b0f
オプションのパラメータ. デフォルト値は0で,係数b0を同定する必要があることを意味します. bof=1の場合,b0は0であると仮定され,同定されません.
- prf
表示を制御するオプションのパラメータ. prf =1 (デフォルト値)の場合, Arma同定の過程が表示されます.
- arc
Scilab arma オブジェクト (armac参照)
- la
list(a,a+eta,a-eta) ( la は a の次元1) です; ただし, eta は標準偏差の推定値です. a=[Id,a1,a2,...,ar],ただし,各aiは大きさ(ny,ny)の行列です.
- lb
list(b,b+etb,b-etb) (lb はbの次元1) です; ただし, etb は標準偏差の推定値です. b=[b0,.....,b_s] ただし,各biは大きさ(nu,nu)の行列です.
- sig
ノイズの標準偏差の推定値で, resid=[ sig*e(t0),....] です.
説明
armax はn次元ARXプロセスの係数を同定するために使用されます.
A(z^-1)y= B(z^-1)u + sig*e(t)
ただし, e(t) は分散Iのn次元白色雑音です. sig は nxn の行列で, A(z) および B(z)は以下のようになります:
A(z) = 1+a1*z+...+a_r*z^r; ( r=0 => A(z)=1) B(z) = b0+b1*z+...+b_s z^s ( s=-1 => B(z)=0)
この手法については,Eykhoffの96ページ,
"trends and progress in system identification"を参照ください.
z(t)=[y(t-1),..,y(t-r),u(t),...,u(t-s)]
および
coef= [-a1,..,-ar,b0,...,b_s]
とおくと,
y(t)= coef* z(t) + sig*e(t)
を記述することができ,
このアルゴリズムは,
sum_{t=1}^N ( [y(t)- coef'z(t)]^2)
を最小化
(ただし,t0=maxi(maxi(r,s)+1,1))) )します.
例s
//-Ex1- Arma model : y(t) = 0.2*u(t-1)+0.01*e(t-1) ny=1,nu=1,sig=0.01; Arma=armac(1,[0,0.2],[0,1],ny,nu,sig) //defining the above arma model u=rand(1,1000,'normal'); //a random input sequence u y=arsimul(Arma,u); //simulation of a y output sequence associated with u. Armaest=armax(0,1,y,u); //Identified model given u and y. Acoeff=Armaest('a'); //Coefficients of the polynomial A(x) Bcoeff=Armaest('b') //Coefficients of the polynomial B(x) Dcoeff=Armaest('d'); //Coefficients of the polynomial D(x) [Ax,Bx,Dx]=arma2p(Armaest) //Results in polynomial form. //-Ex2- Arma1: y_t -0.8*y_{t-1} + 0.2*y_{t-2} = sig*e(t) ny=1,nu=1;sig=0.001; // First step: simulation the Arma1 model, for that we define // Arma2: y_t -0.8*y_{t-1} + 0.2*y_{t-2} = sig*u(t) // with normal deviates for u(t). Arma2=armac([1,-0.8,0.2],sig,0,ny,nu,0); //Definition of the Arma2 arma model (a model with B=sig and without noise!) u=rand(1,10000,'normal'); // An input sequence for Arma2 y=arsimul(Arma2,u); // y = output of Arma2 with input u // can be seen as output of Arma1. // Second step: identification. We look for an Arma model // y(t) + a1*y(t-1) + a2 *y(t-2) = sig*e(t) Arma1est=armax(2,-1,y,[]); [A,B,D]=arma2p(Arma1est)
参照
Report an issue | ||
<< armac | CACSD | armax1 >> |