State-Space
線形状態空間システムを実現
ライブラリ:
Simulink /
Continuous
説明
State-Space ブロックは、以下によって動作が定義されるシステムを実現します。
ここで x は状態ベクトル、u は入力ベクトル、y は出力ベクトル、x0 は状態ベクトルの初期状態です。A、B、C、および D 行列は、スパース行列または密行列として指定できます。行列係数には以下の特性が必要です。
A は、n 行 n 列の行列でなければなりません。n は状態数です。
B は、n 行 m 列の行列でなければなりません。m は入力数です。
C は、r 行 n 列の行列でなければなりません。r は出力数です。
D は、r 行 m 列の行列でなければなりません。

一般的にこのブロックには、1 つの入力端子と 1 つの出力端子があります。行列 C または D の行数は出力端子の幅と同じです。行列 B または D の列数は入力端子の幅と同じです。入力がない自律線形システムをモデル化する場合は、行列 B および D を空に設定します。この場合、このブロックは入力端子がなく出力端子が 1 つのソース ブロックとして動作し、次のシステムが実装されます。
Simulink® は、ゼロを含む行列をスパース行列に変換して、乗算の効率を高めます。
例
二重バネ-マス システム
この例では、強制関数が定期的に変化する二重バネ-マス-ダンパー系をモデル化する方法を示します。シミュレーション時に質量系をアニメーション化するために S-Function ブロックをモデルで使用します。システムには、唯一のセンサーが左側の質量に取り付けられており、アクチュエータも左側の質量に取り付けられています。この例では、状態の推定と線形 2 次レギュレーター (LQR) 制御を使用します。
端子
パラメーター
行列係数 A を実数の n 行 n 列の行列で指定します。n は状態数です。行列係数の詳細については、説明を参照してください。
プログラムでの使用
ブロック パラメーター: A |
| 型: 文字ベクトル、string |
| 値: スカラー | ベクトル | 行列 | スパース行列 |
既定の設定: '1' |
行列係数 B を実数値の n 行 m 列の行列で指定します。n は状態数、m は入力数です。行列係数の詳細については、説明を参照してください。
プログラムでの使用
ブロック パラメーター: B |
| 型: 文字ベクトル、string |
| 値: スカラー | ベクトル | 行列 | スパース行列 |
既定の設定: '1' |
行列係数 C を実数値の r 行 n 列の行列で指定します。r は出力数、n は状態数です。行列係数の詳細については、説明を参照してください。
プログラムでの使用
ブロック パラメーター: C |
| 型: 文字ベクトル、string |
| 値: スカラー | ベクトル | 行列 | スパース行列 |
既定の設定: '1' |
行列係数 D を実数値の r 行 m 列の行列で指定します。r は出力数、m は入力数です。行列係数の詳細については、説明を参照してください。
プログラムでの使用
ブロック パラメーター: D |
| 型: 文字ベクトル、string |
| 値: スカラー | ベクトル | 行列 | スパース行列 |
既定の設定: '1' |
初期状態ベクトルを指定します。
制限
このブロックの初期条件に inf または NaN を使用することはできません。
プログラムでの使用
ブロック パラメーター: InitialCondition
|
| 型: 文字ベクトル、string |
| 値: スカラー | ベクトル |
既定の設定: '0' |
あるいは、X0 を使用します。
アクセラレータ シミュレーション モードおよび Simulink Compiler™ を使用して展開されたシミュレーションの状態空間行列 (A、B、C および D) の調整可能性レベル。[自動] に設定すると、Simulink で適切なパラメーター調整可能性レベルが選択されます。
スパース行列係数の場合、パラメーターを [最適化済み] に設定すると、非ゼロ要素のパターンと数を一定に維持したまま、非ゼロ要素の調整可能性が許可されます。このパラメーターを [制約なし] に設定すると、非ゼロ要素の数が一定である限り、すべての要素が調整可能になり、スパース行列のパターンは変更できます。
密行列係数の場合は、[最適化済み] を選択すると、初期状態で行列に指定された非ゼロ要素の数が一定であれば、すべての行列要素の調整可能性が許可されます。このパラメーターを [制約なし] に設定すると、すべての行列要素の完全な調整可能性が許可されます。
メモ
D = 0 の場合にブロックの D 行列を調整するには、[初期状態で 0 に指定されている D 行列で非ゼロの値を許可] パラメーターを選択しなければなりません。
プログラムでの使用
ブロック パラメーター: ParameterTunability
|
| 型: 文字ベクトル | string |
値: 'Auto' | 'Optimized' | 'Unconstrained' |
既定の設定: 'Auto' |
このパラメーターを有効にすると、D = 0 の場合でも D の調整可能性がサポートされます。
メモ
このパラメーターを有効にすると、State-Space ブロックで直達が有効になります。
プログラムでの使用
ブロック パラメーター: AllowTunableDMatrix
|
| 型: 文字ベクトル | string |
値: 'off' | 'on' |
既定: 'off' |
可変ステップ ソルバーは、ステップ サイズの選択時に絶対許容誤差および相対許容誤差を使用して、状態計算の誤差が許容されるかどうかを判別します。
[絶対許容誤差] コンフィギュレーション パラメーターから絶対許容誤差を継承するには、このパラメーターの値を 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 配列内のそれぞれの名前は一意でなければなりません。たとえば、名前
a、b、および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'})
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
量産品質のコードには推奨しません。組み込みシステムでよく見られる速度とメモリに関するリソースの制限と制約に関連します。生成されたコードには動的な割り当て、メモリの解放、再帰、追加のメモリのオーバーヘッド、および広範囲で変化する実行時間が含まれることがあります。リソースが十分な環境ではコードが機能的に有効で全般的に許容できても、小規模な組み込みターゲットではそのコードをサポートできないことはよくあります。
通常、量産コード生成をサポートする等価な離散ブロックに連続ブロックをマッピングするには、Simulink モデルの離散化の使用を検討してください。モデルの離散化を開始するには、Simulink エディターの [アプリ] タブにある [アプリ] で、[制御システム] の [モデルの離散化] をクリックします。1 つの例外は Second-Order Integrator ブロックで、モデルの離散化はこのブロックに対しては近似的な離散化を行います。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
