Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilab help >> CACSD > cainv

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).

参照

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:40:27 CEST 2012