org.mklab.tool.control.system.discrete
クラス BaseDiscreteDynamicSystem

java.lang.Object
  上位を拡張 org.mklab.tool.control.system.SystemOperator
      上位を拡張 org.mklab.tool.control.system.discrete.BaseDiscreteDynamicSystem
すべての実装されたインタフェース:
Cloneable, ArrayElement<SystemOperator>, GridElement<SystemOperator>, DifferenceSystem, Sampling, DiscreteDynamicSystem, DynamicSystem, Sampler
直系の既知のサブクラス:
DiscreteLinearDynamicSystem, UserDefinedDiscreteDynamicSystem

public abstract class BaseDiscreteDynamicSystem
extends SystemOperator
implements DiscreteDynamicSystem, Sampler

差分方程式で表現される離散時間動的システムを表わすクラスです。

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

コンストラクタの概要
BaseDiscreteDynamicSystem(int inputSize, int outputSize, int stateSize)
          新しく生成されたBaseDiscreteDynamicSystemオブジェクトを初期化します。
 
メソッドの概要
 Matrix differenceEquation(double t, Matrix x, Matrix inputOutput)
          時刻t、状態x、外部信号(入力と出力)inputOutputから ステップ(t/T+1)の状態を返します。
 Matrix differenceEquation(int k, Matrix x, Matrix inputOutput)
          ステップk、状態x、外部信号(入力と出力)inputOutputから ステップ(k+1)の状態を返します。
 boolean equals(Object o)
           
 Matrix getInitialState()
          初期状態を返します。
 double getNextSamplingTime(double t, double tolerance)
          次のサンプリング点の時間を返します。
 double getSamplingInterval()
          サンプリング周期を返します。
 Matrix getState()
          現在の状態を返します。
 int getStateNumber()
          結合システムにおける状態の順番を返します。
 int hashCode()
           
 void initialize()
          状態などの初期化を行います。
 Matrix inputOutputEquation(double t, Matrix x)
          時刻tと状態xから外部信号(入力と出力)を返します。
 Matrix inputOutputEquation(int k, Matrix x)
          ステップkと状態xから外部信号(入力と出力)を返します。
 boolean isAtSamplingPoint()
          サンプリング点であるか判定します。
 Matrix outputEquation(double t, Matrix x)
          直達項をもたないシステムの出力を返します。
 Matrix outputEquation(double t, Matrix x, Matrix u)
          直達項をもつシステムの出力を返します。
 Matrix outputEquation(int k, Matrix x)
          直達項をもたないシステムの出力を返します。
 Matrix outputEquation(int k, Matrix x, Matrix u)
          直達項をもつシステムの出力を返します。
 void setAtSamplingPoint(boolean samplingPoint)
          サンプル点であるかを設定します。
 void setInitialState(Matrix initialState)
          初期状態を設定します。
 void setSamplingInterval(double interval)
          サンプリング周期を設定します。
 void setState(Matrix state)
          現在の状態の設定します。
 void setStateNumber(int stateNumber)
          結合システムにおける状態の順番を設定します。
 Matrix stateEquation(double t, Matrix xd, Matrix inputOutput)
          (t/T+1)ステップの状態を返します。
 
クラス org.mklab.tool.control.system.SystemOperator から継承されたメソッド
clone, compare, createArray, createArray, createGrid, createGrid, createZero, getInputSize, getLinearSystem, getOutputSize, getParameter, getParameters, getStateSize, hasDirectFeedthrough, isAutoSize, isDynamic, isForecdSystem, isInlet, isLinear, isOutlet, isSISO, isSizeDefined, isStatic, isTransformableFrom, isTransformableTo, isZero, resetAutoSize, setAutoSize, setDynamic, setForcedSystem, setHasDirectFeedthrough, setInlet, setInputSize, setLinear, setOutlet, setOutputSize, setParameter, setStateSize, setupParameters, toString, toString, transformFrom, transformTo
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 
インタフェース org.mklab.tool.control.system.discrete.DiscreteDynamicSystem から継承されたメソッド
stateEquation
 

コンストラクタの詳細

BaseDiscreteDynamicSystem

public BaseDiscreteDynamicSystem(int inputSize,
                                 int outputSize,
                                 int stateSize)
新しく生成されたBaseDiscreteDynamicSystemオブジェクトを初期化します。

パラメータ:
inputSize - 入力の数
outputSize - 出力の数
stateSize - 状態の数
メソッドの詳細

initialize

public void initialize()
クラス SystemOperator の記述:
状態などの初期化を行います。

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

setInitialState

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

定義:
インタフェース DynamicSystem 内の setInitialState
パラメータ:
initialState - 初期状態

getInitialState

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

定義:
インタフェース DynamicSystem 内の getInitialState
戻り値:
初期状態

getState

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

定義:
インタフェース DynamicSystem 内の getState
戻り値:
現在の状態

setState

public void setState(Matrix state)
現在の状態の設定します。

定義:
インタフェース DynamicSystem 内の setState
パラメータ:
state - 現在の状態

differenceEquation

public Matrix differenceEquation(int k,
                                 Matrix x,
                                 Matrix inputOutput)
                          throws SolverStopException
インタフェース DifferenceSystem の記述:
ステップk、状態x、外部信号(入力と出力)inputOutputから ステップ(k+1)の状態を返します。

定義:
インタフェース DifferenceSystem 内の differenceEquation
パラメータ:
k - ステップ
x - ステップkにおける状態
inputOutput - ステップkにおける外部信号(入力と出力)
戻り値:
ステップ(k+1)における状態
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferenceSystem.differenceEquation(int, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix)

differenceEquation

public Matrix differenceEquation(double t,
                                 Matrix x,
                                 Matrix inputOutput)
                          throws SolverStopException
インタフェース DifferenceSystem の記述:
時刻t、状態x、外部信号(入力と出力)inputOutputから ステップ(t/T+1)の状態を返します。

ただし、Tはサンプリング周期です。

定義:
インタフェース DifferenceSystem 内の differenceEquation
パラメータ:
t - 時刻
x - 時刻 t における状態
inputOutput - 時刻 t における外部信号(入力と出力)
戻り値:
ステップ(t/T+1)における状態
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferenceSystem.differenceEquation(double, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix)

inputOutputEquation

public Matrix inputOutputEquation(int k,
                                  Matrix x)
                           throws SolverStopException
インタフェース DifferenceSystem の記述:
ステップkと状態xから外部信号(入力と出力)を返します。

定義:
インタフェース DifferenceSystem 内の inputOutputEquation
パラメータ:
k - ステップ
x - ステップkにおける状態
戻り値:
ステップkにおける外部信号(入力と出力)
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferenceSystem.inputOutputEquation(int, org.mklab.nfc.matrix.Matrix)

inputOutputEquation

public Matrix inputOutputEquation(double t,
                                  Matrix x)
                           throws SolverStopException
インタフェース DifferenceSystem の記述:
時刻tと状態xから外部信号(入力と出力)を返します。

定義:
インタフェース DifferenceSystem 内の inputOutputEquation
パラメータ:
t - 時刻
x - 時刻kにおける状態
戻り値:
時刻kにおける外部信号(入力と出力)
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferenceSystem.inputOutputEquation(double, org.mklab.nfc.matrix.Matrix)

outputEquation

public Matrix outputEquation(int k,
                             Matrix x,
                             Matrix u)
                      throws SolverStopException
インタフェース DiscreteDynamicSystem の記述:
直達項をもつシステムの出力を返します。

出力方程式を表します。

定義:
インタフェース DiscreteDynamicSystem 内の outputEquation
パラメータ:
k - ステップ
x - 状態
u - 入力
戻り値:
出力
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DiscreteDynamicSystem.outputEquation(int, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix)

outputEquation

public Matrix outputEquation(double t,
                             Matrix x,
                             Matrix u)
                      throws SolverStopException
インタフェース DynamicSystem の記述:
直達項をもつシステムの出力を返します。

出力方程式を表します。

定義:
インタフェース DynamicSystem 内の outputEquation
パラメータ:
t - 時刻
x - 状態
u - 入力
戻り値:
出力
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DynamicSystem.outputEquation(double, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix)

outputEquation

public Matrix outputEquation(int k,
                             Matrix x)
                      throws SolverStopException
インタフェース DiscreteDynamicSystem の記述:
直達項をもたないシステムの出力を返します。

出力方程式を表します。

定義:
インタフェース DiscreteDynamicSystem 内の outputEquation
パラメータ:
k - ステップ
x - 状態
戻り値:
出力
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DiscreteDynamicSystem.outputEquation(int, org.mklab.nfc.matrix.Matrix)

outputEquation

public Matrix outputEquation(double t,
                             Matrix x)
                      throws SolverStopException
インタフェース DynamicSystem の記述:
直達項をもたないシステムの出力を返します。

出力方程式を表します。

定義:
インタフェース DynamicSystem 内の outputEquation
パラメータ:
t - 時刻
x - 状態
戻り値:
出力
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DynamicSystem.outputEquation(double, org.mklab.nfc.matrix.Matrix)

getSamplingInterval

public double getSamplingInterval()
インタフェース Sampler の記述:
サンプリング周期を返します。

定義:
インタフェース Sampler 内の getSamplingInterval
戻り値:
サンプリング周期
関連項目:
Sampler.getSamplingInterval()

setSamplingInterval

public void setSamplingInterval(double interval)
インタフェース Sampler の記述:
サンプリング周期を設定します。

定義:
インタフェース Sampler 内の setSamplingInterval
パラメータ:
interval - サンプリング周期
関連項目:
Sampler.setSamplingInterval(double)

isAtSamplingPoint

public boolean isAtSamplingPoint()
インタフェース Sampling の記述:
サンプリング点であるか判定します。

定義:
インタフェース Sampling 内の isAtSamplingPoint
戻り値:
サンプリング点ならばtrue、そうでなければfalse
関連項目:
Sampling.isAtSamplingPoint()

setAtSamplingPoint

public void setAtSamplingPoint(boolean samplingPoint)
インタフェース Sampling の記述:
サンプル点であるかを設定します。

定義:
インタフェース Sampling 内の setAtSamplingPoint
パラメータ:
samplingPoint - サンプル点ならばtrue、そうでなければfalse
関連項目:
Sampling.setAtSamplingPoint(boolean)

getNextSamplingTime

public double getNextSamplingTime(double t,
                                  double tolerance)
インタフェース Sampling の記述:
次のサンプリング点の時間を返します。

定義:
インタフェース Sampling 内の getNextSamplingTime
パラメータ:
t - 現在の時間
tolerance - 許容誤差
戻り値:
次のサンプリング点の時間
関連項目:
Sampling.getNextSamplingTime(double, double)

stateEquation

public Matrix stateEquation(double t,
                            Matrix xd,
                            Matrix inputOutput)
                     throws SolverStopException
インタフェース DiscreteDynamicSystem の記述:
(t/T+1)ステップの状態を返します。

ただし、Tはサンプリング周期です。

状態方程式を表します。

定義:
インタフェース DiscreteDynamicSystem 内の stateEquation
パラメータ:
t - 時刻
xd - 状態
inputOutput - 入力
戻り値:
(k+1)ステップの状態
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DiscreteDynamicSystem.stateEquation(double, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix)

hashCode

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

equals

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

getStateNumber

public int getStateNumber()
インタフェース DynamicSystem の記述:
結合システムにおける状態の順番を返します。

定義:
インタフェース DynamicSystem 内の getStateNumber
戻り値:
結合システムにおける状態の順番
関連項目:
DynamicSystem.getStateNumber()

setStateNumber

public void setStateNumber(int stateNumber)
インタフェース DynamicSystem の記述:
結合システムにおける状態の順番を設定します。

定義:
インタフェース DynamicSystem 内の setStateNumber
パラメータ:
stateNumber - 結合システムにおける状態の順番
関連項目:
DynamicSystem.setStateNumber(int)