org.mklab.tool.control.system
クラス ControlSystem

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

public class ControlSystem
extends Object

制御システムを表わすクラスです。

バージョン:
$Revision: 1.234 $, 2004/11/10
作成者:
Koga Laboratory

コンストラクタの概要
ControlSystem(AdjacencyMatrix matrix)
          新しく生成されたControlSystemオブジェクトを初期化します。
ControlSystem(AdjacencyMatrix matrix, ControlSystemOption option)
          新しく生成されたControlSystemオブジェクトを初期化します。
ControlSystem(AdjacencyMatrix matrix, List<Integer> inputNodes, List<Integer> outputNodes)
          新しく生成されたControlSystemオブジェクトを初期化します。
ControlSystem(AdjacencyMatrix matrix, List<Integer> inputNodes, List<Integer> outputNodes, ControlSystemOption option)
          新しく生成されたControlSystemオブジェクトを初期化します。
ControlSystem(AdjacencyMatrix matrix, List<Integer> inputNodes, List<Integer> outputNodes, List<Integer> sourceNodes, List<Integer> sinkNodes, ControlSystemOption option)
          新しく生成されたControlSystemオブジェクトを初期化します。
ControlSystem(AdjacencyStringMatrix stringMatrix)
          新しく生成されたControlSystemオブジェクトを初期化します。
ControlSystem(AdjacencyStringMatrix stringMatrix, ControlSystemOption option)
          新しく生成されたControlSystemオブジェクトを初期化します。
ControlSystem(SystemOperator system)
          新しく生成されたControlSystemオブジェクトを初期化します。
 
メソッドの概要
 ControlSystem add(ControlSystem opponent)
          システムopponentとの和(並列結合)でできるシステムを返します。
 boolean equals(Object opponent)
           
 ControlSystem feedback(ControlSystem feedbackElement)
          (ネガティブ)フィードバック結合でできるシステムを返します。
 ControlSystem feedback(ControlSystem feedbackElement, boolean negative)
          フィードバック結合でできるシステムを返します。
 AdjacencyMatrix getAdjacencyMatrix()
          システムの隣接行列を返します。
 AdjacencyMatrix getAllSystem(boolean requiringReachableSubSystem)
          入力ノードから出力ノードまでの隣接行列を返します。
 ContinuousAlgebraicSystem getContinuousAlgebraicEquation()
          システムを表す連続時間代数方程式システム(入出力方程式)を返します。
 ContinuousDiscreteAlgebraicSystem getContinuousDiscreteAlgebraicEquation()
          システムを表す連続・離散時間代数方程式システム(入出力方程式)を返します。
 Matrix getContinuousInitialState()
          連続時間部分システムの初期状態を返します。
 Matrix getContinuousState()
          連続時間部分システムの現在の状態を返します。
 DifferenceSystem getDifferenceSystem()
          システムを表す差分方程式システム(状態方程式、入出力方程式)を返します。
 DifferentialDifferenceSystem getDifferentialDifferenceSystem()
          システムを表す微分差分方程式システム(状態方程式、入出力方程式)を返します。
 DifferentialSystem getDifferentialSystem()
          システムを表す常微分方程式システム(状態方程式、入出力方程式)を返します。
 DiscreteAlgebraicSystem getDiscreteAlgebraicEquation()
          システムを表す離散時間代数方程式システム(入出力方程式)を返します。
 Matrix getDiscreteInitialState()
          離散時間部分システムの初期状態を返します。
 Matrix getDiscreteState()
          離散時間部分システムの現在の状態を返します。
 List<Exporter> getExporters()
          出力器のリストを返します。
 List<Importer> getImporters()
          入力器のリストを返します。
 Matrix getInitialState()
          初期状態を返します。
 int getInputSize()
          入力の数を返します。
 LinearSystem getLinearSystem(boolean requiringReachableSubSystem)
          線形システムの式を返します。
 LinearSystem getLinearSystemForMaxima(boolean requiringReachableSubSystem, ReversePolishNotationProcessor processor)
          線形システムの式を返します。
 LinearSystem getLinearSystemWithExpression(boolean requiringReachableSubSystem, ReversePolishNotationProcessor processor)
          線形システムの式(数式も含む)を返します。
 int getOutputSize()
          出力の数を返します。
 double getSingleSamplingInterval()
          全てのシステムに共通するサンプリング周期を返します。
 Matrix getState()
          現在の状態を返します。
 int getStateSize()
          状態の数を返します。
 AdjacencyConstantMatrix getSymbolicTransferFunction(boolean requiringReachableSubSystem)
          線形システムの式を返します。
 ControlSystem getSystemForSimulation()
          SourceブロックからSinkブロックまでのパスに存在する(シミュレーション計算用)システムを返します。
 SystemOperator getSystemOperator()
          システムオペレータを返します。
 boolean hasDirectFeedthrough()
          直達項がある(出力が入力に直接依存する)か判定します。
 int hashCode()
           
 boolean isAutoSize()
          自動的に入出力数を設定するか判定します。
 boolean isContinuous()
          連続時間システムであるか判定します。
 boolean isDiscrete()
          離散時間システムであるか判定します。
 boolean isDynamic()
          動的システムであるか判定します。
 boolean isLinear()
          線形システムであるか判定します。
 boolean isSampledData()
          サンプル値システムであるか判定します。
 boolean isSingleRate()
          全てのシステムのサンプリング周期が一致するシステムであるか判定します。
 boolean isSingleSystem()
          単一のシステム(結合システムでない)であるか判定します。
 boolean isStatic()
          静的システムであるか判定します。
 ControlSystem multiply(ControlSystem opponent)
          システムopponentとの積(直列結合)でできるシステムを返します。
 void resetAutoSize()
          自動的に入出力数を設定するシステムの入出力数をリセットします。
 void setAutoSize(boolean autoSize)
          自動的に入出力数を設定するか設定します。
 void setInitialState(Matrix initialState)
          初期状態を設定します。
 void setInputSize(int inputSize)
          入力の数を設定します。
 void setOutputSize(int outputSize)
          出力の数を設定します。
 ControlSystem subtract(ControlSystem opponent)
          システムopponentとの差(符合が異なる並列結合)でできるシステムを返します。
 String toString()
           
 ControlSystem unaryMinus()
          符合を逆にしてできるシステムを返します。
 ControlSystem unityFeedback()
          単一(ネガティブ)フィードバック結合でできるシステムを返します。
 ControlSystem unityFeedback(boolean negative)
          単一フィードバック結合でできるシステムを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

ControlSystem

public ControlSystem(SystemOperator system)
新しく生成されたControlSystemオブジェクトを初期化します。

パラメータ:
system - システムオペレータ

ControlSystem

public ControlSystem(AdjacencyMatrix matrix)
新しく生成されたControlSystemオブジェクトを初期化します。

入力ノードの番号は1、出力ノードの番号は行列の次数となります。

パラメータ:
matrix - 隣接行列

ControlSystem

public ControlSystem(AdjacencyMatrix matrix,
                     List<Integer> inputNodes,
                     List<Integer> outputNodes)
新しく生成されたControlSystemオブジェクトを初期化します。

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

ControlSystem

public ControlSystem(AdjacencyMatrix matrix,
                     ControlSystemOption option)
新しく生成されたControlSystemオブジェクトを初期化します。

入力ノードの番号は1、出力ノードの番号は行列の次数となります。

パラメータ:
matrix - 隣接行列
option - オプション

ControlSystem

public ControlSystem(AdjacencyMatrix matrix,
                     List<Integer> inputNodes,
                     List<Integer> outputNodes,
                     ControlSystemOption option)
新しく生成されたControlSystemオブジェクトを初期化します。

パラメータ:
matrix - 隣接行列
inputNodes - 入力ポートのノード番号のリスト(番号は1から始まります)
outputNodes - 出力ポートのノード番号のリスト(番号は1から始まります)
option - オプション

ControlSystem

public ControlSystem(AdjacencyMatrix matrix,
                     List<Integer> inputNodes,
                     List<Integer> outputNodes,
                     List<Integer> sourceNodes,
                     List<Integer> sinkNodes,
                     ControlSystemOption option)
新しく生成されたControlSystemオブジェクトを初期化します。

パラメータ:
matrix - 隣接行列
inputNodes - 入力ポートのノード番号のリスト(番号は1から始まります)
outputNodes - 出力ポートのノード番号のリスト(番号は1から始まります)
sourceNodes - Sourceのノード番号のリスト(番号は1から始まります)
sinkNodes - Sinkのノード番号のリスト(番号は1から始まります)
option - オプション

ControlSystem

public ControlSystem(AdjacencyStringMatrix stringMatrix)
新しく生成されたControlSystemオブジェクトを初期化します。

パラメータ:
stringMatrix - 隣接関係を保持する文字列行列

ControlSystem

public ControlSystem(AdjacencyStringMatrix stringMatrix,
                     ControlSystemOption option)
新しく生成されたControlSystemオブジェクトを初期化します。

パラメータ:
stringMatrix - 隣接関係を保持する文字列行列
option - オプション
メソッドの詳細

getSystemForSimulation

public ControlSystem getSystemForSimulation()
SourceブロックからSinkブロックまでのパスに存在する(シミュレーション計算用)システムを返します。

戻り値:
SourceブロックからSinkブロックまでのパスに存在する(シミュレーション計算用)システム

equals

public boolean equals(Object opponent)
オーバーライド:
クラス Object 内の equals
関連項目:
Object.equals(java.lang.Object)

hashCode

public int hashCode()
オーバーライド:
クラス Object 内の hashCode
関連項目:
Object.hashCode()

toString

public String toString()
オーバーライド:
クラス Object 内の toString
関連項目:
Object.toString()

getInputSize

public int getInputSize()
入力の数を返します。

戻り値:
入力の数

setInputSize

public void setInputSize(int inputSize)
入力の数を設定します。

パラメータ:
inputSize - 入力の数

getOutputSize

public int getOutputSize()
出力の数を返します。

戻り値:
出力の数

setOutputSize

public void setOutputSize(int outputSize)
出力の数を設定します。

パラメータ:
outputSize - 出力の数

getStateSize

public int getStateSize()
状態の数を返します。

戻り値:
状態の数

isDynamic

public boolean isDynamic()
動的システムであるか判定します。

戻り値:
動的システムならばtrue、そうでなければfalse

isStatic

public boolean isStatic()
静的システムであるか判定します。

戻り値:
静的システムならばtrue、そうでなければfalse

isContinuous

public boolean isContinuous()
連続時間システムであるか判定します。

戻り値:
連続時間システムならばtrue、そうでなければfalse

isDiscrete

public boolean isDiscrete()
離散時間システムであるか判定します。

戻り値:
離散時間システムならばtrue、そうでなければfalse

isSingleRate

public boolean isSingleRate()
全てのシステムのサンプリング周期が一致するシステムであるか判定します。

戻り値:
全てのシステムのサンプリング周期が一致するシステムならばtrue、そうでなければfalse

getSingleSamplingInterval

public double getSingleSamplingInterval()
全てのシステムに共通するサンプリング周期を返します。

戻り値:
全てのシステムに共通するサンプリング周期

isSampledData

public boolean isSampledData()
サンプル値システムであるか判定します。

戻り値:
サンプル値システムならばtrue、そうでなければfalse

isLinear

public boolean isLinear()
線形システムであるか判定します。

戻り値:
線形システムならばtrue、そうでなければfalse

hasDirectFeedthrough

public boolean hasDirectFeedthrough()
直達項がある(出力が入力に直接依存する)か判定します。

戻り値:
直達項があれば(出力が入力に直接依存すれば)true、そうでなければfalse

setInitialState

public void setInitialState(Matrix initialState)
初期状態を設定します。

パラメータ:
initialState - 初期状態

getInitialState

public Matrix getInitialState()
初期状態を返します。

戻り値:
初期状態

getContinuousInitialState

public Matrix getContinuousInitialState()
連続時間部分システムの初期状態を返します。

戻り値:
連続時間部分システムの初期状態

getDiscreteInitialState

public Matrix getDiscreteInitialState()
離散時間部分システムの初期状態を返します。

戻り値:
離散時間部分システムの初期状態

getState

public Matrix getState()
現在の状態を返します。

戻り値:
現在の状態

getContinuousState

public Matrix getContinuousState()
連続時間部分システムの現在の状態を返します。

戻り値:
連続時間部分システムの現在の状態

getDiscreteState

public Matrix getDiscreteState()
離散時間部分システムの現在の状態を返します。

戻り値:
離散時間部分システムの現在の状態

subtract

public ControlSystem subtract(ControlSystem opponent)
システムopponentとの差(符合が異なる並列結合)でできるシステムを返します。

パラメータ:
opponent - 結合するシステム(引くシステム)
戻り値:
結合システム(this - opponent)

multiply

public ControlSystem multiply(ControlSystem opponent)
システムopponentとの積(直列結合)でできるシステムを返します。

---> opponent ---> this --->

パラメータ:
opponent - 結合するシステム(入力側に掛けるシステム)
戻り値:
結合システム (this * opponent)

unaryMinus

public ControlSystem unaryMinus()
符合を逆にしてできるシステムを返します。

戻り値:
符合を逆にしてできるシステム

unityFeedback

public ControlSystem unityFeedback()
単一(ネガティブ)フィードバック結合でできるシステムを返します。

戻り値:
閉ループシステム

unityFeedback

public ControlSystem unityFeedback(boolean negative)
単一フィードバック結合でできるシステムを返します。

パラメータ:
negative - true: ネガティブフィードバック, false: ポジティブフィードバック
戻り値:
閉ループシステム

feedback

public ControlSystem feedback(ControlSystem feedbackElement)
(ネガティブ)フィードバック結合でできるシステムを返します。

パラメータ:
feedbackElement - フィードバック結合するシステム
戻り値:
閉ループシステム

feedback

public ControlSystem feedback(ControlSystem feedbackElement,
                              boolean negative)
フィードバック結合でできるシステムを返します。

パラメータ:
feedbackElement - フィードバック結合するシステム
negative - true: ネガティブフィードバック, false: ポジティブフィードバック
戻り値:
閉ループシステム

getDifferentialSystem

public DifferentialSystem getDifferentialSystem()
システムを表す常微分方程式システム(状態方程式、入出力方程式)を返します。

戻り値:
システムを表す常微分方程式システム(状態方程式、入出力方程式)

getContinuousAlgebraicEquation

public ContinuousAlgebraicSystem getContinuousAlgebraicEquation()
システムを表す連続時間代数方程式システム(入出力方程式)を返します。

戻り値:
システムを表す連続時間代数方程式システム(入出力方程式)

getContinuousDiscreteAlgebraicEquation

public ContinuousDiscreteAlgebraicSystem getContinuousDiscreteAlgebraicEquation()
システムを表す連続・離散時間代数方程式システム(入出力方程式)を返します。

戻り値:
システムを表す連続・離散時間代数方程式システム(入出力方程式)

getDiscreteAlgebraicEquation

public DiscreteAlgebraicSystem getDiscreteAlgebraicEquation()
システムを表す離散時間代数方程式システム(入出力方程式)を返します。

戻り値:
システムを表す離散時間代数方程式システム(入出力方程式)

getDifferenceSystem

public DifferenceSystem getDifferenceSystem()
システムを表す差分方程式システム(状態方程式、入出力方程式)を返します。

戻り値:
システムを表す差分方程式システム(状態方程式、入出力方程式)

getDifferentialDifferenceSystem

public DifferentialDifferenceSystem getDifferentialDifferenceSystem()
システムを表す微分差分方程式システム(状態方程式、入出力方程式)を返します。

戻り値:
システムを表す微分差分方程式システム(状態方程式、入出力方程式)

getLinearSystem

public LinearSystem getLinearSystem(boolean requiringReachableSubSystem)
線形システムの式を返します。

パラメータ:
requiringReachableSubSystem - 可到達なサブシステム(入力ノードから出力ノードまでのパスに対応するシステム)を求めるならばtrue
戻り値:
線形システムの式

getSymbolicTransferFunction

public AdjacencyConstantMatrix getSymbolicTransferFunction(boolean requiringReachableSubSystem)
線形システムの式を返します。

パラメータ:
requiringReachableSubSystem - 可到達なサブシステム(入力ノードから出力ノードまでのパスに対応するシステム)を求めるならばtrue
戻り値:
線形システムの式

getLinearSystemForMaxima

public LinearSystem getLinearSystemForMaxima(boolean requiringReachableSubSystem,
                                             ReversePolishNotationProcessor processor)
線形システムの式を返します。

パラメータ:
requiringReachableSubSystem - 可到達なサブシステム(入力ノードから出力ノードまでのパスに対応するシステム)を求めるならばtrue
processor - プロセッサ
戻り値:
線形システムの式

getLinearSystemWithExpression

public LinearSystem getLinearSystemWithExpression(boolean requiringReachableSubSystem,
                                                  ReversePolishNotationProcessor processor)
線形システムの式(数式も含む)を返します。

パラメータ:
requiringReachableSubSystem - 可到達なサブシステム(入力ノードから出力ノードまでのパスに対応するシステム)を求めるならばtrue
processor - 解釈するプロセッサー
戻り値:
線形システムの式(数式も含む)

getAllSystem

public AdjacencyMatrix getAllSystem(boolean requiringReachableSubSystem)
入力ノードから出力ノードまでの隣接行列を返します。

パラメータ:
requiringReachableSubSystem - 可到達なサブシステムを求めるならばtrue
戻り値:
入力ノードから出力ノードまでの隣接行列

add

public ControlSystem add(ControlSystem opponent)
システムopponentとの和(並列結合)でできるシステムを返します。

パラメータ:
opponent - 結合するシステム(加えるシステム)
戻り値:
結合システム

getSystemOperator

public SystemOperator getSystemOperator()
システムオペレータを返します。

戻り値:
システムオペレータ

getImporters

public List<Importer> getImporters()
入力器のリストを返します。

戻り値:
入力器のリスト

getExporters

public List<Exporter> getExporters()
出力器のリストを返します。

戻り値:
出力器のリスト

isSingleSystem

public boolean isSingleSystem()
単一のシステム(結合システムでない)であるか判定します。

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

getAdjacencyMatrix

public AdjacencyMatrix getAdjacencyMatrix()
システムの隣接行列を返します。

戻り値:
システムの隣接行列

isAutoSize

public boolean isAutoSize()
自動的に入出力数を設定するか判定します。

戻り値:
自動的に入出力数を設定するならばtrue、そうでなければfalse

setAutoSize

public void setAutoSize(boolean autoSize)
自動的に入出力数を設定するか設定します。

パラメータ:
autoSize - 自動的に入出力数を設定するならばtrue、そうでなければfalse

resetAutoSize

public void resetAutoSize()
自動的に入出力数を設定するシステムの入出力数をリセットします。