概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.mklab.tool.control.system
クラス BlockSystem

    java.lang.Object
      org.mklab.tool.control.system.SystemOperator
          org.mklab.tool.control.system.BlockSystem

すべての実装されたインタフェース:
  Cloneable, ArrayElement<SystemOperator>, GridElement<SystemOperator>

直系の既知のサブクラス:
  BlockContinuousSystem, BlockSamplingSystem

    public abstract class BlockSystem

extends SystemOperator

ブロックシステムを表わすクラスです。

バージョン:
  $Revision: 1.162 $
作成者:
  koga

コンストラクタの概要
`BlockSystem(SystemOperator[][] elements, List<Integer> inputNodes, List<Integer> outputNodes)` 新しく生成された`BlockSystem`オブジェクトを初期化します。

メソッドの概要
`protected void` | `calcNodeValue()` ノードの値を計算します。
`boolean` | `calcOutputOfDirectFeedthroughSystem(SystemOperator[][] matrix, Matrix[] localNodeValue, Matrix[] nodeTmpValue, boolean skip)` 確定したノードの値を用いて各直達項の有るシステムの出力を計算し、その値を仮のノードへ加えます。
`protected abstract Matrix` | `calcOutputOfDirectFeedthroughSystem(SystemOperator system, Matrix u)` 直達項のあるシステムの出力を求めます。
`protected abstract Matrix` | `calcOutputOfNonDirectFeedthroughSystem(SystemOperator system)` 直達項の無いシステムの出力を求めます。
`protected abstract SystemOperator` | `createStrictlyProperLinearDynamicSystem(SystemOperator system)` 強プロパーな線形動的システムを生成します。
`int` | `getInputNodeSize()` 入力ノードの数を返します。
`Matrix` | `getInputNodeValueOf(SystemOperator system)` システムへ入力するノードの値を返します。
`LinearSystem` | `getLinearSystem()` 線形システムの場合、線形システムの式を返します。
`int` | `getNodeSize()` ノードの数を返します。
`int` | `getOutputNodeSize()` 出力ノードの数を返します。
`protected Matrix` | `getOutputNodeValue()` 出力ノードの値を返します。
`SystemOperator` | `getSingleSystem()` 単一のシステムであるならば、単一システムを返します。
`protected SystemOperator` | `getSystemOperator(int inputNode, int outputNode)` 指定されたノード間にあるシステムを返します。
`void` | `initialize()` 状態などの初期化を行います。
`boolean` | `isAutoSize()` 自動的に入出力の数を設定するか判定します。
`boolean` | `isSingleSystem()` 単一のシステムであるか判定します。
`protected abstract boolean` | `replaceDynamicSystemList(SystemOperator oldSystem, SystemOperator newSystem)` 動的システムのリストの成分を新しいシステムに入れ替えます。
`void` | `resetAutoSize()` 自動的に入出力の数を設定するシステムの入出力数をリセットします。
`protected void` | `resetNodeValue()` ノードの値をリセットします。
`void` | `separateDirectFeedthroughAndNonDirectFeedthrough()` 非直達項成分と直達項成分を分離し、2個の隣接行列を生成します。
`void` | `setAutoSize(boolean autoSize)` 自動的に入出力の数を設定するか設定します。
`static List<List<Integer>>` | `setBlockMatrix(SystemOperator[][] matrix, int row, int column, BlockSystem blockSystem)` ブロックシステムを拡張された隣接行列に代入します。
`void` | `setInputNodeValue(Matrix u)` 入力ノードに値を設定します。
`void` | `setInputSize(int inputSize)` 入力の数を設定します。
`void` | `setNodeValueOfNoInputNode(SystemOperator[][] matrix, Matrix[] nodeValue, Matrix[] nodeTmpValue, boolean skipping)` 他のノードから入るエッジがないノードの値を確定します。
`void` | `setOutputSize(int outputSize)` 出力の数を設定します。
`void` | `setZeroSizeToUnDefinedInputPortOutputPort()` 出力数が未定のInputPortの出力数を0に、入力数が未定のOutputPortの入力数を0に設定します。

クラス org.mklab.tool.control.system.SystemOperator から継承されたメソッド
`clone, compare, createArray, createArray, createGrid, createGrid, createZero, equals, getInputSize, getOutputSize, getParameter, getParameters, getStateSize, hasDirectFeedthrough, hashCode, isDynamic, isForecdSystem, isInlet, isLinear, isOutlet, isSISO, isSizeDefined, isStatic, isTransformableFrom, isTransformableTo, isZero, setDynamic, setForcedSystem, setHasDirectFeedthrough, setInlet, setLinear, setOutlet, setParameter, setStateSize, setupParameters, toString, toString, transformFrom, transformTo`

クラス java.lang.Object から継承されたメソッド
`finalize, getClass, notify, notifyAll, wait, wait, wait`

コンストラクタの詳細

### BlockSystem

    public BlockSystem(SystemOperator[][] elements,
                       List<Integer> inputNodes,
                       List<Integer> outputNodes)

  新しく生成された`BlockSystem`オブジェクトを初期化します。

  パラメータ:
    `elements` - 隣接行列
    `inputNodes` - 入力ノードの番号のリスト(番号は1から始まります)
    `outputNodes` - 出力ノードの番号のリスト(番号は1から始まります)

メソッドの詳細

### setZeroSizeToUnDefinedInputPortOutputPort

    public void setZeroSizeToUnDefinedInputPortOutputPort()

  出力数が未定のInputPortの出力数を0に、入力数が未定のOutputPortの入力数を0に設定します。

### setNodeValueOfNoInputNode

    public void setNodeValueOfNoInputNode(SystemOperator[][] matrix,
                                          Matrix[] nodeValue,
                                          Matrix[] nodeTmpValue,
                                          boolean skipping)

  他のノードから入るエッジがないノードの値を確定します。

  ノードの仮の値を正式の値へコピーします。

  パラメータ:
    `matrix` - 隣接行列を転置した行列
    `nodeValue` - ノードの値
    `nodeTmpValue` - 仮のノードの値
    `skipping` - 値が決まっているノードについての処理をスキップするならばtrue、そうでなければfalse

### setInputNodeValue

    public void setInputNodeValue(Matrix u)

  入力ノードに値を設定します。

  パラメータ:
    `u` - 入力ノードの値

### getOutputNodeValue

    protected Matrix getOutputNodeValue()

  出力ノードの値を返します。

  戻り値:
    出力ノードの値

### getInputNodeValueOf

    public Matrix getInputNodeValueOf(SystemOperator system)

  システムへ入力するノードの値を返します。

  パラメータ:
    `system` - 入力するノードの値を調べるシステム
  戻り値:
    システムへ入力するノードの値

### getNodeSize

    public int getNodeSize()

  ノードの数を返します。

  戻り値:
    ノードの数

### getInputNodeSize

    public int getInputNodeSize()

  入力ノードの数を返します。

  戻り値:
    入力ノードの数

### getOutputNodeSize

    public int getOutputNodeSize()

  出力ノードの数を返します。

  戻り値:
    出力ノードの数

### resetNodeValue

    protected void resetNodeValue()

  ノードの値をリセットします。

### calcOutputOfNonDirectFeedthroughSystem

    protected abstract Matrix calcOutputOfNonDirectFeedthroughSystem(SystemOperator system)
                                                              throws SolverStopException

  直達項の無いシステムの出力を求めます。

  パラメータ:
    `system` - 直達項の無いシステム
  戻り値:
    直達項の無いシステムの出力
  例外:
    `SolverStopException` - ソルバーが停止された場合

### calcOutputOfDirectFeedthroughSystem

    protected abstract Matrix calcOutputOfDirectFeedthroughSystem(SystemOperator system,
                                                                  Matrix u)
                                                           throws SolverStopException

  直達項のあるシステムの出力を求めます。

  パラメータ:
    `system` - 直達項のあるシステム
    `u` - 入力
  戻り値:
    直達項のあるシステムの出力
  例外:
    `SolverStopException` - ソルバーが停止された場合

### createStrictlyProperLinearDynamicSystem

    protected abstract SystemOperator createStrictlyProperLinearDynamicSystem(SystemOperator system)

  強プロパーな線形動的システムを生成します。

  パラメータ:
    `system` - バイプロパーな線形動的システム
  戻り値:
    強プロパーな線形動的システム

### replaceDynamicSystemList

    protected abstract boolean replaceDynamicSystemList(SystemOperator oldSystem,
                                                        SystemOperator newSystem)

  動的システムのリストの成分を新しいシステムに入れ替えます。

  パラメータ:
    `oldSystem` - リストに登録されている旧システム
    `newSystem` - リストに登録する新システム
  戻り値:
    入れ替えが成功した場合true

### calcOutputOfDirectFeedthroughSystem

    public boolean calcOutputOfDirectFeedthroughSystem(SystemOperator[][] matrix,
                                                       Matrix[] localNodeValue,
                                                       Matrix[] nodeTmpValue,
                                                       boolean skip)
                                                throws SolverStopException

  確定したノードの値を用いて各直達項の有るシステムの出力を計算し、その値を仮のノードへ加えます。

  そして、そのシステムを隣接行列から削除します。

  パラメータ:
    `matrix` - 隣接行列を転置した行列
    `localNodeValue` - ノードの値
    `nodeTmpValue` - 仮のノードの値
    `skip` - 値が決定しているノードについて計算をスキップする場合true
  戻り値:
    隣接行列から削除されたシステムがある場合true
  例外:
    `SolverStopException` - ソルバーが停止された場合

### calcNodeValue

    protected void calcNodeValue()
                          throws SolverStopException

  ノードの値を計算します。

  例外:
    `SolverStopException` - ソルバーが停止された場合

### getLinearSystem

    public LinearSystem getLinearSystem()

  クラス `SystemOperator` の記述:
  線形システムの場合、線形システムの式を返します。

  オーバーライド:
    クラス `SystemOperator` 内の `getLinearSystem`
  戻り値:
    線形システムの式
  関連項目:
    `SystemOperator.getLinearSystem()`

### initialize

    public void initialize()

  クラス `SystemOperator` の記述:
  状態などの初期化を行います。

  定義:
    クラス `SystemOperator` 内の `initialize`
  関連項目:
    `SystemOperator.initialize()`

### separateDirectFeedthroughAndNonDirectFeedthrough

    public void separateDirectFeedthroughAndNonDirectFeedthrough()

  非直達項成分と直達項成分を分離し、2個の隣接行列を生成します。

### isSingleSystem

    public boolean isSingleSystem()

  単一のシステムであるか判定します。

  戻り値:
    単一のシステムならばtrue、そうでなければfalse

### getSingleSystem

    public SystemOperator getSingleSystem()

  単一のシステムであるならば、単一システムを返します。

  戻り値:
    単一システム
  例外:
    `RuntimeException` - 単一のシステムでない場合

### setBlockMatrix

    public static List<List<Integer>> setBlockMatrix(SystemOperator[][] matrix,
                                                     int row,
                                                     int column,
                                                     BlockSystem blockSystem)

  ブロックシステムを拡張された隣接行列に代入します。

  パラメータ:
    `matrix` - 拡張された隣接行列
    `row` - ブロックシステムの行番号
    `column` - ブロックシステムの列番号
    `blockSystem` - ブロックシステムの成分
  戻り値:
    Sourceが接続されているノードのリスト、Sinkが接続されているノードのリスト

### getSystemOperator

    protected SystemOperator getSystemOperator(int inputNode,
                                               int outputNode)

  指定されたノード間にあるシステムを返します。

  パラメータ:
    `inputNode` - 入力ノード番号
    `outputNode` - 出力ノード番号
  戻り値:
    指定されたノード間にあるシステム

### isAutoSize

    public boolean isAutoSize()

  クラス `SystemOperator` の記述:
  自動的に入出力の数を設定するか判定します。

  オーバーライド:
    クラス `SystemOperator` 内の `isAutoSize`
  戻り値:
    自動的に入出力の数を設定するならばtrue、そうでなければfalse
  関連項目:
    `SystemOperator.isAutoSize()`

### setAutoSize

    public void setAutoSize(boolean autoSize)

  クラス `SystemOperator` の記述:
  自動的に入出力の数を設定するか設定します。

  オーバーライド:
    クラス `SystemOperator` 内の `setAutoSize`
  パラメータ:
    `autoSize` - 自動的に入出力の数を設定するならばtrue、そうでなければfalse
  関連項目:
    `SystemOperator.setAutoSize(boolean)`

### resetAutoSize

    public void resetAutoSize()

  クラス `SystemOperator` の記述:
  自動的に入出力の数を設定するシステムの入出力数をリセットします。

  オーバーライド:
    クラス `SystemOperator` 内の `resetAutoSize`
  関連項目:
    `SystemOperator.resetAutoSize()`

### setInputSize

    public void setInputSize(int inputSize)

  クラス `SystemOperator` の記述:
  入力の数を設定します。

  オーバーライド:
    クラス `SystemOperator` 内の `setInputSize`
  パラメータ:
    `inputSize` - 入力の数
  関連項目:
    `SystemOperator.setInputSize(int)`

### setOutputSize

    public void setOutputSize(int outputSize)

  クラス `SystemOperator` の記述:
  出力の数を設定します。

  オーバーライド:
    クラス `SystemOperator` 内の `setOutputSize`
  パラメータ:
    `outputSize` - 出力の数
  関連項目:
    `SystemOperator.setOutputSize(int)`

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド