Main Content

Varying State Space

行列値が可変の状態空間モデル

  • Varying State Space block

ライブラリ:
Control System Toolbox / Linear Parameter Varying

説明

このブロックを使用して、行列が可変の連続時間状態空間モデルを実装します。状態行列 A、入力行列 B、出力行列 C、およびフィードフォワード行列 D の瞬時値を、対応する入力端子に送ります。システム応答は次のように与えられます。

dx=Ax+Buy=Cx+Du,

ここで u はシステム入力、y はシステム出力、xdx はそれぞれ状態ベクトルと状態微分です。

このブロックでは、可変のオフセットを指定することもできます (R2024a 以降)。その場合、システム応答は次のように与えられます。

dx=dx0+A(xx0)+B(uu0)y=y0+C(xx0)+D(uu0),

ここで、u0 は入力のオフセット、y0 は出力のオフセット、x0dx0 はそれぞれ状態のオフセットと状態微分のオフセットです。

このブロックおよび Linear Parameter Varying ライブラリの他のブロックを使用して、可変のパラメーターまたは係数をもつ共通の制御要素を実装します。詳細については、Simulink でのゲイン スケジュール制御システムのモデル化を参照してください。

注意

C および D 行列がシステム出力 y に依存することがないようにしてください。そのような依存関係がある場合には、結果の状態空間方程式 y = C(y)x + D(y)u により、代数ループが作成されます。これは、出力値 y を計算するために出力値がわかっている必要があるからです。この代数ループは不安定性や発散が発生しやすい傾向にあります。代わりに、時間 t、ブロック入力 u、および状態出力 x の観点で C および D を表してみてください。

同様の理由で、A および B が出力 dx に依存することがないようにしてください。なお、y が状態と入力の固定された組み合わせの場合 (つまり、y = Cx + Du の場合 (C および D は定数行列))、A および By に依存しても安全です。

端子

入力

すべて展開する

システム入力信号。

次元が Nx-by-Nx の状態行列。Nx はシステムの状態数です。

次元が Nx-by-Nu の入力行列。Nu はシステムの入力数です。

次元が Ny-by-Nx の出力行列。Ny はシステムの出力数です。

次元が Ny-by-Nu のフィードフォワード行列。

ゼロ直達状態空間モデルでは、[直達を有効にする] チェックボックスをクリアします。このチェックボックスをクリアすると、D 入力端子が無効になります。 (R2023a 以降)

R2024a 以降

次元が Nx-by-1 の状態微分のオフセット。Nx はシステムの状態数です。

依存関係

この端子を有効にするには、[状態微分のオフセット dx0 を有効にする] を選択します。

R2024a 以降

次元が Nx-by-1 の状態のオフセット。Nx はシステムの状態数です。

依存関係

この端子を有効にするには、[状態のオフセット x0 を有効にする] を選択します。

R2024a 以降

次元が Nu-by-1 の入力のオフセット。Nu はシステムの入力数です。

依存関係

この端子を有効にするには、[入力のオフセット u0 を有効にする] を選択します。

R2024a 以降

次元が Ny-by-1 の出力のオフセット。Ny はシステムの出力数です。

依存関係

この端子を有効にするには、[出力のオフセット y0 を有効にする] を選択します。

R2024b 以降

シミュレーションの開始時にローカル モデルで使用する初期条件。モデルの状態の数と等しい長さのベクトルとして指定します。

依存関係

この端子を有効にするには、[初期条件のソース][外部] に設定します。

出力

すべて展開する

システム出力信号。

現在の状態値。

依存関係

この端子を有効にするには、[状態の出力] パラメーターを選択します。

[x] の対応する状態の現在の微分。

依存関係

この端子を有効にするには、[Output state derivatives] パラメーターを選択します。

パラメーター

すべて展開する

[メイン] タブ

R2024b 以降

初期条件のソースを指定します。

  • 内部[初期条件] パラメーターを使用して状態の初期条件を指定します。

  • 外部 — ブロックの IC 入力端子で状態の初期条件を指定します。

プログラムでの使用

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

パラメーター: InitialConditionSource
値: internal (既定値) | external

初期状態値。モデルの状態の数と等しい長さのベクトルとして指定します。

依存関係

このパラメーターを有効にするには、[初期条件のソース][内部] に設定します。

プログラムでの使用

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

パラメーター: InitialCondition
値: "0" (既定値) | initial state values in quotes

例: set_param(gcb,"InitialCondition","[0 0.1]")

システムの状態を特定するには、状態名を次のいずれかとして指定します。

  • 1 状態のプラントの場合、文字ベクトル。

  • 複数状態のプラントの場合、文字ベクトルの cell 配列。

選択すると、状態値の出力端子 [x] が有効になります。

選択すると、状態微分の出力端子 [dx] が有効になります。

R2023a 以降

直達をもつ状態空間モデルで D 入力端子を有効にします。ゼロ直達モデルの場合は、このチェックボックスをクリアします。ゼロ直達モデルでこの端子を無効にすると、ゼロ定数を端子に入力するよりも数値的に信頼できます。

[オフセット] タブ

可変の状態のオフセットを指定するための x0 入力端子を有効にします。

プログラムでの使用

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

パラメーター: InputX0
値: "off" (既定値) | "on"

可変の状態微分のオフセットを指定するための dx0 入力端子を有効にします。

プログラムでの使用

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

パラメーター: InputDX0
値: "off" (既定値) | "on"

可変の入力のオフセットを指定するための u0 入力端子を有効にします。

プログラムでの使用

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

パラメーター: InputU0
値: "off" (既定値) | "on"

可変の出力のオフセットを指定するための y0 入力端子を有効にします。

プログラムでの使用

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

パラメーター: InputY0
値: "off" (既定値) | "on"

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2017b で導入

すべて展開する