- Scilab help
 - CACSD
 - Formal 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
 - plzr
 - 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
 - syslin
 - syssize
 - time_id
 - trzeros
 - ui_observer
 - unobs
 - zeropen
 - fspec
 
Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
cainv
abinvの双対
呼び出し手順
[X,dims,J,Y,k,Z]=cainv(Sl,alfa,beta,flag)
パラメータ
- Sl
 行列
[A,B,C,D]を含むsyslinリスト.- alfa
 実数の数値またはベクトル (複素数となる場合もある,閉ループ極の位置)
- beta
 実数の数値またはベクトル (複素数となる場合もある,閉ループ極の位置)
- flag
 (オプションの) 文字列
'ge'(default)または'st'または'pp'- X
 大きさ nx (状態空間の次元)の直交行列.
- dims
 整数行ベクトル
dims=[nd1,nu1,dimS,dimSg,dimN](5エントリ , 非降順).flag='st'(もしくは'pp')の場合,dimsは 4 (もしくは3)個の要素を有します.- J
 実数行列 (出力)
- Y
 大きさnyの直交行列 (出力空間の次元).
- k
 整数 (
Slのランク)- Z
 正則な線形システム (
syslinリスト)
説明
cainv は
            (状態空間および出力状態応答の)基底 (X,Y)を見つけます.
            基底を (X,Y)とする行列 Slは以下のように表示されます:
[A11,*,*,*,*,*] [*] [0,A22,*,*,*,*] [*] X'*(A+J*C)*X = [0,0,A33,*,*,*] X'*(B+J*D) = [*] [0,0,0,A44,*,*] [0] [0,0,0,0,A55,*] [0] [0,0,0,0,0,A66] [0] Y*C*X = [0,0,C13,*,*,*] Y*D = [*] [0,0,0,0,0,C26] [0]
The partition of Xの分割は
            ベクトルdims=[nd1,nu1,dimS,dimSg,dimN]により定義され,
            Yの分割はkにより定義されます.
A11(nd1 x nd1) の固有値は不安定です.
            A22 (nu1-nd1 x nu1-nd1)の固有値は安定です.
対 (A33, C13) (dimS-nu1 x dimS-nu1, k x dimS-nu1)は
            可観測, A33の固有値は alfaに設定されます.
行列 A44 (dimSg-dimS x dimSg-dimS) は不安定です.
            行列 A55 (dimN-dimSg,dimN-dimSg) は安定です.
対 (A66,C26) (nx-dimN x nx-dimN) は可観測, 
            A66の固有値はbetaに設定されます.
Xの最初のdimS列は,
            Im(B)を含む不変部分空間 S= smallest (C,A) に広がり,
            Xの最初のdimSg列は,
            Slの最大"相補可検出部分空間" Sg に広がります.
Xの最初のdimN列は,
            Sl の最大"相補可観測部分空間"に広がります.
            (B(ker(D))=0の場合,dimS=0)
flag='st' が指定された場合,
            5個の分割ブロック行列が返され,
            dimsは4つの要素を有します.
            flag='pp'が指定された場合,
            4個の分割ブロックが返されます(abinv参照).
この関数は次のように未知入力オブザーバを計算する際に使用することができます:
// DDEP: dot(x)=A x + Bu + Gd // y= Cx (observation) // z= Hx (z=variable to be estimated, d=disturbance) // Find: dot(w) = Fw + Ey + Ru such that // zhat = Mw + Ny // z-Hx goes to zero at infinity // Solution exists iff Ker H contains Sg(A,C,G) inter KerC (assuming detectability) //i.e. H is such that: // For any W which makes a column compression of [Xp(1:dimSg,:);C] // with Xp=X' and [X,dims,J,Y,k,Z]=cainv(syslin('c',A,G,C)); // [Xp(1:dimSg,:);C]*W = [0 | *] one has // H*W = [0 | *] (with at least as many aero columns as above).
参照
- abinv — AB 不変部分空間
 - dt_ility — 可検出性テスト
 - ui_observer — 未知入力オブザーバ
 
| Report an issue | ||
| << bstap | CACSD | calfrq >> |