org.mklab.tool.control
クラス Ctrf

java.lang.Object
  上位を拡張 org.mklab.tool.control.Ctrf

public class Ctrf
extends Object

可制御部分と不可制御部分に分解するクラスです。

Controllable-uncontrollable decomposition

バージョン:
$Revision: 1.33 $
作成者:
koga
関連項目:
Ctrm, Obsf

コンストラクタの概要
Ctrf()
           
 
メソッドの概要
static List<Matrix> ctrf(Matrix A, Matrix B, Matrix C)
          可制御部分と不可制御部分に分解したシステム表現を返します。
static List<Matrix> ctrf(Matrix A, Matrix B, Matrix C, double tolerance)
          部分空間の次元を決めるために許容誤差toleranceを用いる。
static List<Matrix> ctrf(Matrix A, Matrix B, Matrix C, NumericalScalar<?> tolerance)
          部分空間の次元を決めるために許容誤差toleranceを用いる。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Ctrf

public Ctrf()
メソッドの詳細

ctrf

public static List<Matrix> ctrf(Matrix A,
                                Matrix B,
                                Matrix C)
可制御部分と不可制御部分に分解したシステム表現を返します。

もし rank([A B]) < Rows(A)なら、相似変換 z = T xにより、システム行列を

 Ab = T*A*T# , Bb = T*B , Cb = C*T# 
のように変換すると、それぞれの行列は
 [Anc| 0] [ 0] Ab = [---+--], Bb = [--], Cb = [Cnc|Cc]. [A21|Ac] [Bc] 
のようになる。ただし、(Ac,Bc)は可制御であり、

 
 -1 -1 Cc(sI-Ac)Bc = C(sI-A)B. 
が成り立ちます。

パラメータ:
A - 元のA行列
B - 元のB行列
C - 元のD行列
戻り値:
{ Ab, Bb, Cb, T, k } (controllable-uncontrollable decomposition)

ctrf

public static List<Matrix> ctrf(Matrix A,
                                Matrix B,
                                Matrix C,
                                double tolerance)
部分空間の次元を決めるために許容誤差toleranceを用いる。

パラメータ:
A - 元のA行列
B - 元のB行列
C - 元のD行列
tolerance - 許容誤差
戻り値:
{ Ab, Bb, Cb, T, k } (controllable-uncontrollable decomposition)

ctrf

public static List<Matrix> ctrf(Matrix A,
                                Matrix B,
                                Matrix C,
                                NumericalScalar<?> tolerance)
部分空間の次元を決めるために許容誤差toleranceを用いる。

パラメータ:
A - 元のA行列
B - 元のB行列
C - 元のD行列
tolerance - 許容誤差
戻り値:
{ Ab, Bb, Cb, T, k } (controllable-uncontrollable decomposition)