メインコンテンツ

Descriptor State-Space

陰的な線形システムをモデル化

  • Descriptor State-Space block

ライブラリ:
Simulink / Continuous

説明

Descriptor State-Space ブロックを使用すると、陰的な Ex˙=Ax+Bu の形式で記述される陰的な線形システムをモデル化できます。E はシステムの質量行列です。E が特異でないために可逆である場合は、陽的な x˙=E1Ax+E1Bu の形式でシステムを記述し、State-Space ブロックを使用してシステムをモデル化できます。

質量行列 E が特異となるのは、システムの 1 つ以上の従属変数の微分が方程式に含まれない場合です。システムの従属変数は "代数変数" とも呼ばれ、代数変数を含む微分方程式は "微分代数方程式" と呼ばれます。微分代数方程式で記述されるシステムの状態空間表現の形式は次のとおりです。

Ex˙=Ax+Buy=Cx+Du

ここで、

  • x は状態ベクトルです。

  • u は入力ベクトルです。

  • y は出力ベクトルです。

端子

入力

すべて展開する

陰的なシステムの実数値のスカラーまたはベクトルの入力信号。入力信号のデータ型は double でなければなりません。ベクトル入力信号では、信号の幅がシステムの B 行列および D 行列の列数に一致している必要があります。

この端子は以下の場合に直達をもちます。

  • [直達] パラメーターを [真] に設定した。

  • [直達] パラメーターを [自動] に設定した場合に、ブロックが直達をもつと判別された。

データ型: double

出力

すべて展開する

陰的なシステムの出力信号。

データ型: double

パラメーター

すべて展開する

質量行列 E を実数値の nn 列の行列で指定します。n はシステムの状態数です。質量行列は特異でも非特異でもかまいませんが、A 行列と同じ次元でなければなりません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: E
値: '1' (既定値) | scalar | matrix
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",E="[1 2;3 4]")

行列 A を実数値の nn 列の行列で指定します。n はシステムの状態数です。行列 A は質量行列 E と同じ次元でなければなりません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: A
値: '1' (既定値) | scalar | matrix
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",A="[1 2;3 4]")

行列 B を実数値の nm 列の行列で指定します。n はシステムの状態数、m は入力数です。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: B
値: '1' (既定値) | scalar | vector | matrix
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",B="[1 2]")

行列 C を実数値の rn 列の行列で指定します。n はシステムの状態数、r は出力数です。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: C
値: '1' (既定値) | scalar | vector | matrix
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",C="[3 4]")

行列 D を実数値の rm 列の行列で指定します。r はシステムの出力数、m はシステムの入力数です。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: D
値: '1' (既定値) | scalar | vector | matrix
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",D="5")

陰的なシステムの状態の初期値を指定します。状態の値を Inf または NaN にすることはできません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: InitialCondition
値: '0' (既定値) | scalar | vector | matrix
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",InitialCondition="[2 3]")

陰的なシステムが直達をもつかどうかを指定します。1 つ以上の出力信号の値が 1 つ以上の入力信号の値に直接依存している場合、ブロックは直達をもちます。

  • — 出力信号値は入力信号値に直接依存しています。

  • — 出力信号値は入力信号値に直接依存していません。

  • 自動 — 指定した行列の特性に基づいて、出力信号値が入力信号値に直接依存しているかどうかが判別されます。

500 を超える連続状態をもつシステムをこのブロックで実装している場合、このパラメーターを [真] または [偽] と指定すると、シミュレーションを高速化できます。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: DirectFeedthrough
値: 'True' (既定値) | 'False' | 'Auto'
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",DirectFeedthrough="False")

Simulink® Control Design™ ワークフローについて、線形化中に Descriptor State-Space ブロックによって表されるシステムをスパース モデルに線形化します。

システムを非スパース明示的状態空間モデルに線形化するには、このパラメーターを無効にします。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: LinearizeToSparse
値: 'off' (既定値) | 'on'
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",LinearizeToSparse="on")

可変ステップ ソルバーは、ステップ サイズの選択時に絶対許容誤差および相対許容誤差を使用して、状態計算の誤差が許容されるかどうかを判別します。

[絶対許容誤差] コンフィギュレーション パラメーターから絶対許容誤差を継承するには、このパラメーターの値を auto または -1 に指定します。

[絶対許容誤差] コンフィギュレーション パラメーターに指定されている値をオーバーライドするこのブロックの絶対許容誤差を指定するには、以下のようにします。

  • すべてのブロックの状態を計算するために使用する正の実数のスカラー値を入力します。

  • ブロックの連続状態の次元と一致している次元をもつ実数ベクトルを入力します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: AbsoluteTolerance
値: 'auto' (既定値) | '-1' | positive real scalar number | vector of positive real scalar numbers
データ型: char | string

例: set_param("MyModel/Descriptor State-Space",AbsoluteTolerance="-1")

オプションとしてこのブロックの状態に名前を割り当てるには、このパラメーターを使用します。割り当てる名前は、このブロックの状態にのみ適用されます。

  • 既定の状態名を使用するには、このフィールドを空 ('') のままにします。

  • 単一の名前を単一の状態に割り当てるには、引用符で囲んで名前を入力します。たとえば、単一の状態に position という名前を付けるには、「'position'」と入力します。

  • 名前を複数の状態に割り当てるには、このパラメーターの値を文字ベクトルの cell 配列として指定します。cell 配列内のそれぞれの名前は一意でなければなりません。たとえば、名前 ab、および c を割り当てるには、「{'a','b','c'}」と入力します。

  • MATLAB 変数を使用して名前を指定するには、引用符なしで変数の名前を入力します。たとえば、変数 names を使用して状態名を指定するには、「names」と入力します。

ブロックの状態の数より少ない数の名前を指定できます。この場合、状態名は複数の状態で使用され、状態の数は状態名の数に割り切れなければなりません。たとえば、4 つの状態をもつブロックで 2 つの名前を指定した場合、最初の名前は最初の 2 つの状態に使用され、2 番目の名前は最後の 2 つの状態に使用されます。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: ContinuousStateAttributes
値: '' (既定値) | valid MATLAB variable name
データ型: char | string | cell

例: set_param("MyModel/Descriptor State-Space",ContinuousStateAttributes={'position','velocity'})

ブロックの特性

データ型

double

直達

いいえa

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

a このブロックの直達特性はブロック パラメーターの値に依存します。

拡張機能

すべて展開する

バージョン履歴

R2018b で導入

すべて展開する