Scilab 5.4.0
- 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
flts
時間応答 (離散時間, 離散化システム)
呼び出し手順
[y [,x]]=flts(u,sl [,x0]) [y]=flts(u,sl [,past])
パラメータ
- u
行列 (入力ベクトル)
- sl
リスト (線形システム
syslin
)- x0
ベクトル (状態量初期値 ; デフォルト値 =
0
)- past
(過去の)行列 (デフォルト値=
0
)- x,y
行列 (状態量と出力)
説明
状態空間形式:
sl
は,その状態空間表現で指定される離散線形システム
です(syslin 参照):
sl=syslin('d',A,B,C,D)
:
x[t+1] = A x[t] + B u[t] y[t] = C x[t] + D u[t]
もしくは,より一般的に,D
が多項式行列
の場合
(p = degree(D(z))
) :
D(z) = D_0 + z D_1 + z^2 D_2 +..+ z^p D_p y[t] = C x[t] + D_0 u[t] + D_1 u[t+1] +..+ D_[p] u[t+p]
伝達関数表現:
y=flts(u,sl[,past])
. ここで, sl
は伝達行列形式の線形システムです, すなわち,
sl=syslin('d',transfer_matrix)
(
syslin
参照).
past = [u ,..., u ] [ -nd -1] [y ,..., y ] [ -nd -1]
は, u と y の過去の値の行列です.
nd
は,
sl
の分母行列の各行の最小公倍数の
最大自由度です.
u=[u0 u1 ... un] (input) y=[y0 y1 ... yn] (output)
p は分子の最大次数と分母の最大次数の差です.
例
sl=syslin('d',1,1,1);u=1:10; y=flts(u,sl); plot2d(y) [y1,x1]=flts(u(1:5),sl);y2=flts(u(6:10),sl,x1); y-[y1,y2] //多項式Dがある場合: z=poly(0,'z'); D=1+z+z^2; p =degree(D); sl=syslin('d',1,1,1,D); y=flts(u,sl);[y1,x1]=flts(u(1:5),sl); y2=flts(u(5-p+1:10),sl,x1); // (update) y-[y1,y2] //遅延 (伝達関数形式): flts(u,1/z) // 典型的な応答 z=poly(0,'z'); h=syslin(0.1,(1-2*z)/(z^2+0.3*z+1)) imprep=flts(eye(1,20),tf2ss(h)); //インパルス応答 clf(); plot(imprep,'b') u=ones(1,20); stprep=flts(ones(1,20),tf2ss(h)); //ステップ応答 plot(stprep,'g') // その他の例 A=[1 2 3;0 2 4;0 0 1];B=[1 0;0 0;0 1];C=eye(3,3);Sys=syslin('d',A,B,C); H=ss2tf(Sys); u=[1;-1]*(1:10); // yh=flts(u,H); ys=flts(u,Sys); norm(yh-ys,1) //ホット リスタート [ys1,x]=flts(u(:,1:4),Sys);ys2=flts(u(:,5:10),Sys,x); norm([ys1,ys2]-ys,1) // yh1=flts(u(:,1:4),H);yh2=flts(u(:,5:10),H,[u(:,2:4);yh(:,2:4)]); norm([yh1,yh2]-yh,1) //D<>0 を指定 D=[-3 8;4 -0.5;2.2 0.9]; Sys=syslin('d',A,B,C,D); H=ss2tf(Sys); u=[1;-1]*(1:10); rh=flts(u,H); rs=flts(u,Sys); norm(rh-rs,1) //ホット リスタート [ys1,x]=flts(u(:,1:4),Sys);ys2=flts(u(:,5:10),Sys,x); norm([ys1,ys2]-rs,1) //With H: yh1=flts(u(:,1:4),H);yh2=flts(u(:,5:10),H,[u(:,2:4); yh1(:,2:4)]); norm([yh1,yh2]-rh)
Report an issue | ||
<< findx0BD | CACSD | fourplan >> |