ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Configurable Subsystem

ユーザー指定のブロック ライブラリから選択されたブロックの表示

  • ライブラリ:
  • Simulink / Ports & Subsystems

説明

Configurable Subsystem ブロックは、指定されたブロック ライブラリに含まれる一連のブロックの中の 1 つを表します。Configurable Subsystem のコンテキスト メニューを使用して、Configurable Subsystem が表すブロックを選択することができます。

Configurable Subsystem ブロックは、設計図群を表すモデルの作成を簡略化します。たとえば、エンジンを自由に選ぶことができる自動車のモデルを作成するとします。このような設計図のモデルを作成するには、まず、その車で使用できるエンジン タイプのモデルを含むライブラリを作成します。次に、車のモデルで Configurable Subsystem ブロックを使用して、エンジンの選択を表します。Configurable Subsystem ブロックのダイアログ ボックスを使用してエンジン タイプを選択するのみで、基本の自動車設計からのバリエーションのモデルを作成することができます。

モデル内の Configurable Subsystem を作成するには、まずマスターとなる Configurable Subsystem とそれが表すブロックを含むライブラリを作成する必要があります。次に、ライブラリのマスター サブシステムをモデルにドラッグ アンド ドロップすることによって、マスター サブシステムの構成可能インスタンスを作成できます。

マスターの Configurable Subsystem ライブラリに、任意タイプのブロックを追加できます。Simulink® は、すべての選択の端子名から固有のリストを作成して Configurable Subsystem の端子名を導きます。ただし、Simulink はサブシステムでないブロックの選択に対して、既定の端子名を使用します。

新しい構成を選択するときに、サブシステムを再構成するために Simulink によって Configurable Subsystem 内にあるライブラリ リンクが使用されるため、Configurable Subsystem 内のこれらのリンクを解除することはできません。リンクの解除は、サブシステムを再構成しない場合のみ有効です。この場合には、Configurable Subsystem を、永続的な構成を実現する Configurable でないサブシステムと置き換えることができます。

マスターの Configurable Subsystem の作成

マスターの Configurable Subsystem を作成するには

  1. Configurable Subsystem のさまざまな構成を表すブロック ライブラリを作成します。

  2. ライブラリを保存します。

  3. ライブラリ内に Configurable Subsystem ブロックのインスタンスを作成します。

    これを行うには、Simulink の Ports & Subsystems ライブラリの Configurable Subsystem ブロックのコピーを、前のステップで作成したライブラリにドラッグします。

  4. ダブルクリックして Configurable Subsystem ブロックのダイアログ ボックスを表示します。このダイアログ ボックスにはライブラリ内の他のブロックの一覧が表示されます。

  5. ダイアログ ボックスの [ブロック選択のリスト] で、作成している Configurable Subsystem のさまざまな構成を表すブロックを選択します。

  6. 変更を適用してダイアログ ボックスを閉じるには、[OK] ボタンをクリックします。

  7. Configurable Subsystem ブロックのコンテキスト メニューから [ブロック選択] を選択します。

    コンテキスト メニューに、サブシステムが表すことができるブロックをリストしたサブメニューが表示されます。

  8. サブシステムが既定の設定で表すブロックを選択します。

  9. ライブラリを保存します。

    メモ

    ライブラリのブロックを追加または削除した場合は、ライブラリを使用する Configurable Subsystem ブロックを再作成しなければなりません。

Configurable Subsystem に対して既定のブロック選択であるライブラリ ブロックを修正しても、変更は Configurable Subsystem に直ちに伝播されません。この変更を伝播させるには、次のいずれかを行います。

  • 既定のブロックの選択をサブシステム内の他のブロックに変更してから、既定のブロックの選択をオリジナルのブロックに変更します。

  • 更新されたブロックの選択を既定のブロック選択として含み、Configurable Subsystem ブロックを再作成します。

モデル内の Configurable Subsystem にライブラリ ブロックに対する壊れたリンクが含まれる場合、リンクを編集してモデルを保存しても、次回モデルを開くときに壊れたリンクは修正されません。Configurable Subsystem 内の壊れたライブラリ リンクを修正するには、次のいずれかの方法を使用します。

  • Configurable Subsystem を Variant Subsystem に変換します。Configurable Subsystem を右クリックし、[サブシステムとモデル参照][サブシステムの変換先][Variant Subsystem] を選択します。

  • マスターの Configurable Subsystem ライブラリからライブラリ ブロックを削除し、ライブラリ ブロックをマスターの Configurable Subsystem ライブラリに追加して戻し、マスターの Configurable Subsystem ライブラリを再保存します。

Configurable Subsystem のインスタンスの作成

モデル内に Configurable Subsystem のインスタンスを作成するには

  1. マスターの Configurable Subsystem を含んでいるライブラリを開きます。

  2. マスターのコピーをモデルにドラッグします。

  3. その Configurable Subsystem インスタンスのコンテキスト メニューから [ブロック選択] を選択します。

  4. Configurable Subsystem が表すブロックを選択します。

Configurable system のインスタンスに、それが表すブロックのアイコンとパラメーター ダイアログ ボックスが表示されます。

インスタンスのブロック パラメーターの設定

他のブロックと同様、Configurable Subsystem のインスタンスのパラメーター ダイアログ ボックスを使用して、パラメーターを対話形式で設定することができます。さらに、set_param コマンドを使用して、MATLAB® コマンド ラインから、あるいは MATLAB ファイル内でパラメーターを設定することができます。set_param を使用する場合、Configurable Subsystem で現在選択しているブロックの絶対パス名を set_param の最初の引数として指定する必要があります。たとえば次のように行います。

curr_choice = get_param('mymod/myconfigsys', 'BlockChoice');
curr_choice = ['mymod/myconfigsys/' curr_choice];
set_param(curr_choice, 'MaskValues', ...);

I/O 端子のマッピング

Configurable Subsystem には、選択されたライブラリ内の入力端子と出力端子に対応する入力端子と出力端子が表示されます。Simulink は以下のルールを使用して、ライブラリの端子を Configurable Subsystem ブロックの端子にマップします。

  • ライブラリ内で一意な名前をもつ各入出力端子を、Configurable Subsystem ブロックの同じ名前をもつ各入出力端子にマップします。

  • ライブラリ内で同じ名前をもつすべての入出力端子を、Configurable Subsystem ブロックの同じ名前をもつ入出力端子にマップします。

  • 現在選択されているライブラリ ブロックで使用されていない入出力端子は、Terminator/Ground ブロックで終端します。

このマッピングにより、Configurable Subsystem ブロックに再接続しなくても、Configurable Subsystem ブロックが表すライブラリ ブロックを変更することができます。

たとえば、ライブラリに AB という 2 つのブロックがあり、ブロック Aabc というラベルの入力端子と d というラベルの出力端子があり、ブロック Bab というラベルの入力端子と e というラベルの出力端子があるとします。

このライブラリをベースにした Configurable Subsystem ブロックは、abc というラベルの付いた 3 つの入力端子と、de というラベルの付いた 2 つの出力端子をもつことになります。

この例では、いずれのブロックが選択された場合も、Configurable Subsystem ブロックの端子 a は選択されたライブラリ ブロックの端子 a に接続されます。Configurable Subsystem ブロックの端子 c は、ライブラリ ブロック A が選択された場合のみ機能します。そうでない場合は、単に終端します。

メモ

Configurable Subsystem ブロックは、Triggered and Enabled Subsystem の trigger およびイネーブル端子などのような非 I/O 端子を提供しません。そのため、Configurable Subsystem ブロックを使用して、このような端子をもつブロックを直接表すことはできません。ただし、非 I/O 端子に接続される入力または出力端子をもつサブシステム ブロックにより、間接的に表すことができます。

Variant Subsystem への変換

Configurable Subsystem を右クリックし、[サブシステムとモデル参照][サブシステムの変換先][Variant Subsystem] を選択します。

変換中に、Simulink は以下の操作を実行します。

  • Subsystem ブロックを Variant Subsystem ブロックで置き換えて、端子と接続を維持します。

  • 元のサブシステムをバリアントの選択として Variant Subsystem ブロックに追加します。

  • Variant Subsystem ブロックをオーバーライドして、最初にアクティブな選択であったサブシステムを使用します。

  • ライブラリへのリンクを維持します。リンク付きサブシステムの場合、Simulink はリンク付きサブシステムをバリアントの選択として追加します。

    Simulink は、サブシステム ブロックのマスクも維持し、そのマスクをバリアントの選択にコピーします。

バリアントの選択の詳細は、「Variant Subsystem」を参照してください。

端子

入力

すべて展開する

Configurable Subsystem への入力信号。入力信号のサポートされるデータ型と次元は、Configurable Subsystem が表すブロックで決まります。

依存関係

入力端子の数は、Configurable Subsystem が表すライブラリ内のブロックに応じて異なります。詳細については、I/O 端子のマッピングを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

出力

すべて展開する

Configurable Subsystem からの出力信号。出力のデータ型と次元は、Configurable Subsystem が表すブロックで決まります。

依存関係

出力端子の数は、Configurable Subsystem が表すライブラリ内のブロックに応じて異なります。詳細については、I/O 端子のマッピングを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

パラメーター

すべて展開する

Configurable Subsystem のメンバーとして含めるブロックを選択します。ユーザー定義サブシステムをブロックとして含めることができます。

プログラムでの使用

ブロック パラメーター: MemberBlocks
型: 文字ベクトルの cell 配列
値: ブロック名の文字ベクトルの cell 配列
既定の設定: {''}

メンバー ブロックの入力端子と出力端子のリスト。複数端子の場合は、[上に移動] および [下に移動] ボタンをクリックすることによって、選択した端子の位置を変えることができます。

ブロックの特性

データ型

double[a] | single[a] | Boolean[a] | base integer[a] | fixed point[a] | enumerated[a] | bus[a] | string[a]

直接フィードスルー

なし

多次元信号

はい[a]

可変サイズの信号

あり[a]

ゼロクロッシング検出

なし

[a] 実際のデータ型または機能のサポートは、ブロックの実装に依存します。

拡張機能

R2006a より前に導入