Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

MATLAB Function ブロックの変数の作成と定義

MATLAB Function ブロックでは、変数を使用してシミュレーション データを管理します。ブロックの入力、出力、パラメーターのデータのほか、Data Store Memory ブロックのデータを変数で表すことができます。変数は、MATLAB Function ブロックのコード、[シンボル] ペイン、モデル エクスプローラーで作成または削除できます。その後、プロパティ インスペクターまたはモデル エクスプローラーで変数のプロパティを設定できます。

MATLAB Function ブロックの変数の作成と削除

MATLAB Function ブロックの変数は、関数のコード、[シンボル] ペイン、モデル エクスプローラーで作成または削除できます。

変数をコードに直接追加

MATLAB Function ブロックのコードで変数を作成または削除するには、MATLAB Function ブロックをダブルクリックして MATLAB Function ブロック エディターを開きます。新規の入力引数と出力引数を指定する場合、MATLAB Function ブロックはその引数をそれぞれの入力端子または出力端子に自動的に割り当てます。同様に、引数を削除してモデルを更新または保存することで、ブロックから引数を削除できます。

グローバル変数はコードに追加するだけでは定義できません。MATLAB Function ブロックでのグローバル データの使用を参照してください。

[シンボル] ペインの使用

[シンボル] ペインを使用するには、MATLAB Function ブロックをダブルクリックして MATLAB Function ブロック エディターを開きます。次に、次のいずれかの方法で [シンボル] ペインを開きます。

  • [関数] タブで、[データの編集] をクリックします。

    The Function tab in the Simulink Editor while the MATLAB Function block Editor is open. The Edit Data button on the left is enclosed in a red box.

  • [モデル化] タブの [設計] セクションで、[[シンボル] ペイン] をクリックします。

    The Modeling tab in the Simulink Editor while the MATLAB Function block Editor is open. The Symbols Pane button on the left is enclosed in a red box.

変数を追加するには、[データの作成] ボタン をクリックします。変数を削除するには、変数を右クリックして [削除] をクリックします。

モデル エクスプローラーの使用

モデル エクスプローラーを使用するには、[モデル化] タブの [設計] セクションで、[モデル エクスプローラー] をクリックします。[モデルの階層構造] ペインでモデル ツリー ビューを展開し、MATLAB Function ブロックを選択します。

変数を追加するには、[追加][データ] をクリックするか、[データの追加] ボタン をクリックします。変数を削除するには、変数を選択し、[編集][削除] をクリックするか、[削除] ボタン をクリックします。

変数がコードで使用されていない場合、[シンボル] ペインで変数の名前の横に [未使用のシンボル] アイコン が表示されます。

一般的な変数のプロパティの設定

変数のプロパティは、[シンボル] ペインとプロパティ インスペクターを使用するか、モデル エクスプローラーを使用して変更できます。

[シンボル] ペインとプロパティ インスペクターを使用してプロパティを編集するには、次のいずれかの方法を使用します。

  • [関数] タブで、[データの編集] をクリックします。[シンボル] ペインで変数を選択します。

  • [シンボル] ペインで、変数の名前を右クリックして [検査] をクリックします。

  • [モデル化] タブの [データの設計] セクションで、[プロパティ インスペクター] をクリックします。[シンボル] ペインで変数を選択します。

モデル エクスプローラーを使用してプロパティを編集するには、変数をクリックし、[一般] タブでプロパティを編集します。

名前

変数の名前を指定します。MATLAB® で使用されている同じ命名規則を使用します。このプロパティは、[シンボル] ペインで直接変更することもできます。

[シンボル] ペインで名前を変更した場合、関数宣言ステートメントでのみ変数が調整され、コードの本文で使用されている変数の名前は変更されません。コード全体で変数を調整する場合は、[シンボル][名前] プロパティを入力し、Shift + Enter キーを押します。

スコープ

その親からのメモリ内での相対的な変数の所在を指定します。このプロパティは変数の機能を決定します。このプロパティは、[シンボル] ペインの [タイプ] 列で変更することもできます。[スコープ] は次のいずれかの値に設定できます。

スコープ説明
パラメーター変数は MATLAB ワークスペース、モデル ワークスペース、またはこのブロックを含むマスク サブシステムのワークスペース内にある同じ名前の変数に存在します。同じ名前の変数がそのブロックから見える 1 つを超えるワークスペース内にある場合、ワークスペース階層内でそのブロックに最も近い変数が使用されます。[シンボル] ペインでは、[スコープ][パラメーター] に設定された変数は [パラメーター データ] アイコン で示されます。詳細については、モデル ワークスペースおよびMATLAB Function ブロック パラメーター変数の設定を参照してください。
入力変数は MATLAB Function ブロックへの入力信号です。[シンボル] ペインでは、[スコープ][入力] に設定された変数は [入力データ] アイコン で示されます。
出力変数は MATLAB Function ブロックの出力信号です。[シンボル] ペインでは、[スコープ][出力] に設定された変数は [出力データ] アイコン で示されます。
データ ストア メモリ変数はモデルの Data Store Memory ブロック、あるいはモデルまたはベース ワークスペースの Simulink.Signal 内に存在します。[シンボル] ペインでは、[スコープ][データ ストア メモリ] に設定された変数は [データ ストア メモリ] アイコン で示されます。詳細については、MATLAB Function ブロックでのグローバル データの使用を参照してください。

詳細については、MATLAB Function ブロック変数のプロパティのチェックを参照してください。

端子

変数に関連付けられている端子のインデックスを指定します。このプロパティは、[スコープ] プロパティが [入力] または [出力] に設定されている変数に対してのみ適用されます。

データを信号オブジェクトに関連付ける

変数が Simulink® 信号オブジェクトに関連付けられることを指定します。このプロパティは、[スコープ] プロパティが [出力] に設定されている変数に対してのみ適用されます。このプロパティは、コンフィギュレーション パラメーター [信号の関連付け][なし] 以外の値に設定している場合にのみ表示されます。詳細については、記号の解釈を参照してください。

サイズ

変数のサイズを指定します。このプロパティには、スカラー値または値の MATLAB ベクトルを指定できます。[サイズ] の既定の設定は –1 です。これは、サイズが継承されることを示します。詳細については、Simulink からのサイズの継承を参照してください。このプロパティは、[スコープ] プロパティが [データ ストア メモリ] に設定されている変数には適用されません。MATLAB Function ブロック変数のサイズの指定を参照してください。

可変サイズ

変数のサイズが可変であるか固定であるかを指定します。このプロパティは、[スコープ] プロパティが [出力] に設定されている変数に対してのみ適用されます。詳細については、可変サイズの MATLAB Function ブロック変数の宣言を参照してください。

入力変数は対応する信号からサイズの変動性を継承します。関数宣言ステートメントの入力と出力の両方に含まれる変数も、サイズの変動性を自動的に継承します。

このプロパティは、MATLAB Function ブロックの [可変サイズの配列をサポート] プロパティが有効になっている場合にのみ表示されます。可変サイズの配列をサポートを参照してください。

調整可能

この変数データのソースとして使用されているパラメーターが調整可能かどうかを指定します。詳細については、調整可能なパラメーターを参照してください。このプロパティは、[スコープ] プロパティが [パラメーター] に設定されている変数に対してのみ適用されます。コード生成に対応したツールボックス関数の場合のように、パラメーターが定数式でなければならない場合はこのオプションを解除します。詳細については、C/C++ コードの生成でサポートされている関数およびオブジェクトを参照してください。

実数/複素数

変数が実数か複素数かを指定します。[実数/複素数] は次のいずれかの値に設定します。

実数/複素数説明
継承変数は [スコープ] プロパティに基づいて実数/複素数を継承します。入力変数と出力変数は、関連付けられた入力端子と出力端子に接続されている Simulink 信号から実数/複素数を継承します。パラメーター変数は、指定されたパラメーターから実数/複素数を継承します。
オフ変数は実数です。
オン変数は複素数です。

このプロパティは、[スコープ] プロパティが [データ ストア メモリ] に設定されている変数には適用されません。

タイプ

変数のデータ型を指定します。次のようにしてデータ型を指定できます。

  • [タイプ] プロパティから組み込み型を選択する。

  • データ型として評価される式を [タイプ] プロパティに入力する。Simulink におけるデータ型についてを参照してください。

  • [データ型アシスタント] を使用して、[モード] プロパティを指定してから、そのモードに基づいてデータ型を指定する。

    メモ

    [データ型アシスタント] を表示するには、[データ型アシスタントを表示] ボタン をクリックします。

詳細については、変数のデータ型の定義と変更を参照してください。このプロパティは、[スコープ] プロパティが [データ ストア メモリ] に設定されている変数には適用されません。

単位 (m、m/s^2、N*m など)

変数の物理単位を指定します。既定では、このプロパティは対応する入出力端子の Simulink 信号から単位を継承する設定になっています。MATLAB Function ブロックでの単位の指定を参照してください。このプロパティは、[スコープ] プロパティが [入力] または [出力] に設定されている変数に対してのみ適用されます。

制限範囲のプロパティの設定

プロパティ インスペクターまたはモデル エクスプローラーの [制限範囲] セクションで、変数の受容可能な値の範囲を設定できます。MATLAB Function ブロックはこの範囲を使用してブロックに出入りするデータを検証します。数値のスカラーとして評価される式またはパラメーターを入力できます。範囲は 2 つのプロパティを使用して指定します。これらのプロパティは、[スコープ] プロパティが [入力] または [出力] に設定されている変数に対してのみ適用されます。

最小値

シミュレーション時に、変数に対して許容される最小値。既定値は -inf です。

最大値

シミュレーション時に、変数に対して許容される最大値。既定値は inf です。

説明プロパティの設定

プロパティ インスペクターまたはモデル エクスプローラーを使用して、変数の説明のプロパティを変更できます。モデル エクスプローラーの場合は、変数をクリックし、[説明] タブでプロパティを編集します。プロパティ インスペクターの場合は、[情報] タブでプロパティを編集します。

最終値をベース ワークスペースへ保存

シミュレーションの後に MATLAB Function ブロックの変数の値を MATLAB ベース ワークスペースにある同じ名前の変数に代入するかどうかを指定します。このプロパティは、[スコープ] プロパティが [入力] または [出力] に設定されている変数に対してのみ適用されます。このプロパティはモデル エクスプローラーにのみ表示されます。

説明

変数の説明を指定します。

ドキュメント リンク

変数のドキュメンテーションへのリンクを指定します。URL アドレスを入力するか、HTML ファイルやテキストなど、ドキュメンテーションを MATLAB コマンド ウィンドウに表示する MATLAB コマンドを入力できます。[ドキュメント リンク] のリンクをクリックすると、MATLAB Function ブロックは、そのリンクを評価してドキュメンテーションを表示します。

プログラムによる変数の作成

MATLAB Function ブロック変数プロパティをプログラムで指定するには、ブロックの Stateflow.EMChart オブジェクトを取得します。詳細については、プログラムによる MATLAB Function ブロックの設定を参照してください。

参考

関連するトピック