Main Content

MATLAB Function ブロック パラメーター変数の設定

MATLAB Function ブロックで "パラメーター変数" を使用すると、MATLAB® ワークスペース、モデル ワークスペース、マスク サブシステム ワークスペース、または Simulink® データ ディクショナリで定義された変数を入力引数として使用できます。Simulink では、パラメーター変数で使用される変数の検索と選択に記号の関連付けと同じルールを使用します。記号の解釈を参照してください。同じ名前の変数がそのブロックから見える 1 つを超えるワークスペース内にある場合、ワークスペース階層内でそのブロックに最も近い変数が使用されます。MATLAB Function ブロックがマスク サブシステム内にある場合は、サブシステム ワークスペースの変数が使用されます。それ以外の場合は、モデル ワークスペースの変数が使用され、続いて MATLAB ベース ワークスペースの変数および関連付けられた Simulink データ ディクショナリの変数がこの順序で使用されます。

パラメーター変数を定義するには、[シンボル] ペイン、プロパティ インスペクター、またはモデル エクスプローラーを使用します。選択した変数の [スコープ] プロパティを [パラメーター] に設定します。パラメーター変数ではブロックの端子は作成されません。MATLAB Function ブロックの変数の定義の詳細については、MATLAB Function ブロックの変数の作成と定義を参照してください。

マスクによるパラメーター変数の制御

MATLAB Function ブロックのパラメーター変数には値を直接代入できます。これを行うには、ブロックにマスクを追加してマスク内でパラメーターを作成し、そのパラメーターにパラメーター変数と同じ名前を付けます。ブロックのマスクの作成の詳細については、マスクの基礎を参照してください。ブロックをマスクした後は、プロパティ インスペクターを使用してパラメーター変数のプロパティを調整できます。

パラメーター変数調整の例

この例では、パラメーター変数をもつマスクされた MATLAB Function ブロックを使用します。

MATLAB 関数は、パラメーター変数 const に Sine Wave ブロック信号の値を乗算します。MATLAB Function ブロックの矢印アイコンをクリックしてコードを確認します。

function y = fcn(u, const)
y = const*u;

MATLAB Function ブロックをダブルクリックして const の値を調整できます。ブロック マスクで [Set sine wave multiplier] パラメーターが定義されており、これはマスク エディターで編集できます。MATLAB Function ブロックでは、プロパティ インスペクターにおいて const[スコープ]Parameter に設定されたデータとして定義されています。このプロパティは、[シンボル] ペインで const を選択するとプロパティ インスペクターで表示できます。

パラメーター変数とマスク パラメーターは同じ名前でなければなりません。この例では、マスク パラメーターの名前を変更せずにパラメーター変数の名前を変更しているためエラーになります。調整可能でないパラメーターを使用する場合、プロパティ インスペクターで [調整可能] プロパティがオフになっていることを確認してください。

ワークスペースでのパラメーター変数の制御

モデル内の同じ変数に複数の MATLAB Function ブロックからアクセスする場合、変数をモデル ワークスペースで定義し、その変数を指す各 MATLAB 関数にパラメーター変数を追加できます。変数はモデル ワークスペースで直接定義するか、MAT ファイルまたは MATLAB ファイルから読み込むか、カスタム MATLAB コードで作成できます。詳細については、モデル ワークスペース内のデータのソースの指定を参照してください。

変数を複数のモデルの MATLAB Function ブロックで使用する場合は、変数をコマンド ウィンドウで定義するか MAT ファイルから読み込んで MATLAB ベース ワークスペースで定義できます。MATLAB Function ブロックは、MATLAB を閉じるまで MATLAB ワークスペースで定義された変数にアクセスします。

変数を Simulink データ ディクショナリを使用して定義することもできます。詳細については、データ ディクショナリとはを参照してください。

関連する例

詳細