Configurable Subsystem
ユーザー指定のブロック ライブラリから選択されたブロックの表示
Configurable Subsystem ブロックは将来のリリースで削除されます。代わりに Variant Subsystem, Variant Model, Variant Assembly 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 を作成するには、以下のようにします。
Configurable Subsystem のさまざまな構成を表すブロック ライブラリを作成します。
ライブラリを保存します。
ライブラリ内に Configurable Subsystem ブロックのインスタンスを作成します。
これを行うには、Simulink の Ports & Subsystems ライブラリの Configurable Subsystem ブロックのコピーを、前のステップで作成したライブラリにドラッグします。
ダブルクリックして Configurable Subsystem ブロックのダイアログ ボックスを表示します。このダイアログ ボックスにはライブラリ内の他のブロックの一覧が表示されます。
ダイアログ ボックスの [ブロック選択のリスト] で、作成している Configurable Subsystem のさまざまな構成を表すブロックを選択します。
変更を適用してダイアログ ボックスを閉じるには、[OK] ボタンをクリックします。
Configurable Subsystem ブロックのコンテキスト メニューから [ブロック選択] を選択します。
コンテキスト メニューに、サブシステムが表すことができるブロックをリストしたサブメニューが表示されます。
サブシステムが既定の設定で表すブロックを選択します。
ライブラリを保存します。
メモ
ライブラリのブロックを追加または削除した場合は、ライブラリを使用する 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 のインスタンスを作成するには
メインの Configurable Subsystem を含んでいるライブラリを開きます。
メインのコピーをモデルにドラッグします。
その Configurable Subsystem インスタンスのコンテキスト メニューから [ブロック選択] を選択します。
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 ブロックが表すライブラリ ブロックを変更できます。
たとえば、ライブラリに A
と B
という 2 つのブロックがあり、ブロック A
に a
、b
、c
というラベルの入力端子と d
というラベルの出力端子があり、ブロック B
に a
と b
というラベルの入力端子と e
というラベルの出力端子があるとします。
このライブラリをベースにした Configurable Subsystem ブロックは、a
、b
、c
というラベルの付いた 3 つの入力端子と、d
と e
というラベルの付いた 2 つの出力端子をもつことになります。
この例では、いずれのブロックが選択された場合も、Configurable Subsystem ブロックの端子 a
は選択されたライブラリ ブロックの端子 a
に接続されます。Configurable Subsystem ブロックの端子 c
は、ライブラリ ブロック A が選択された場合のみ機能します。そうでない場合は、単に終端します。
メモ
Configurable Subsystem ブロックは、Triggered and Enabled Subsystem の trigger およびイネーブル端子などのような非 I/O 端子を提供しません。そのため、Configurable Subsystem ブロックを使用して、このような端子をもつブロックを直接表すことはできません。ただし、非 I/O 端子に接続される入力または出力端子をもつサブシステム ブロックにより、間接的に表すことができます。
Variant Subsystem への変換
次の 4 つの方法のいずれかを使用して、Configurable Subsystem ブロックを Variant Subsystem ブロックに変換できます。
アップグレード アドバイザーを対話的に使用する
アップグレード アドバイザーをプログラムによって使用する
convertToVariantSubsystem
メソッドを使用するConfigurable Subsystem ブロックのコンテキスト メニューを使用する
詳細については、Configurable Subsystem の Variant Subsystem への変換を参照してください。
変換中に、Simulink は以下の操作を実行します。
Subsystem ブロックを Variant Subsystem ブロックで置き換えて、端子と接続を維持します。
元のサブシステムをバリアントの選択として Variant Subsystem ブロックに追加します。
Variant Subsystem ブロックをオーバーライドして、最初にアクティブな選択であったサブシステムを使用します。
ライブラリへのリンクを維持します。リンク付きサブシステムの場合、Simulink はリンク付きサブシステムをバリアントの選択として追加します。
Simulink は、サブシステム ブロックのマスクも維持し、そのマスクをバリアントの選択にコピーします。
バリアントの選択の詳細は、「Variant Subsystem」を参照してください。