メインコンテンツ

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

モデルでの Simulink 関数の定義

Simulink® 関数はいくつかの方法で定義して実装できます。

以下のセクションでは、関数 y = timestwo(x) の Simulink 関数を定義する方法を示します。関数は呼び出し元からの値 (x) を 2 で乗算してから、計算された値 (y) を呼び出し元に送り返します。関数を呼び出す場合は、モデルからの Simulink 関数の呼び出しを参照してください。

Simulink 関数の定義と呼び出し

ex_simulink_functions_and_function_callers という名前のモデルでは、Simulink® 関数を定義して呼び出す複数の方法が説明されています。

このモデルでは、Simulink 関数を次の方法で定義します。

  • Simulink Function ブロック

  • グラフィカル関数をエクスポートする Stateflow® チャート

  • MATLAB® 関数をエクスポートする Stateflow チャート

このモデルでは、各 Simulink 関数を次の方法で呼び出します。

  • Function Caller ブロック

  • MATLAB Function ブロック

  • Stateflow チャート

Simulink Function ブロックを使用した Simulink 関数の定義

入力引数を介して関数の呼び出し元からデータを受け取り、出力引数を介して出力を返す Simulink Function ブロックを設定します。

  1. Simulink Function ブロックをモデルに追加します。

  2. ブロック上に表示されるテキストをダブルクリックし、関数プロトタイプを入力します。

    y = timestwo(x)

    After you configure the block, the block icon displays the function prototype for the Simulink Function.

  3. ブロックをダブルクリックしてサブシステムを開きます。

  4. Gain ブロックを追加して [ゲイン] パラメーターを 2 に設定します。

    To represent the function algorithm, the Simulink canvas has a trigger port, f, with an input of x, gain block with value 2, and an output of y.

Stateflow チャートからエクスポートされた関数を使用した Simulink 関数の定義

Stateflow チャートからエクスポートされた関数を使用して Simulink 関数を定義できます。Stateflow チャートで、グラフィカル関数、MATLAB 関数、または Simulink 関数を使用して関数の動作を実装できます。このセクションでは、グラフィカル関数を定義してエクスポートする方法を示します。これらの手順に従って、MATLAB 関数や Simulink 関数を定義してエクスポートすることもできます。

入力引数を介して関数の呼び出し元からデータを受け取り、出力引数を介して出力を返すグラフィカル関数を Stateflow チャートで設定します。関数を Simulink モデルにエクスポートするように、チャート パラメーターを設定します。

Stateflow チャートでのグラフィカル関数の定義

Stateflow チャートでグラフィカル関数を定義します。関数プロトタイプを指定し、関数の動作を実装します。

  1. Stateflow チャートを Simulink モデルに追加します。

  2. ダブルクリックしてチャートを開きます。

  3. グラフィカル関数を追加します。左側のツール バーでグラフィカル関数アイコン をクリックし、チャートにドラッグします。

  4. 関数プロトタイプを指定します。関数ボックスで、? を関数プロトタイプ y = timestwo(x) に置き換えます。

  5. 関数の動作を実装します。遷移の矢印をクリックし、?{y = 2*x} に置き換えます。

    After you configure the graphical function, the block icon displays the function prototype and the function definition.

グラフィカル関数のテスト

Simulink モデルにエクスポートする前に Stateflow チャート内でグラフィカル関数をテストします。

  1. 関数をテストするためにチャートでデフォルト遷移を追加します。左側のツール バーから、デフォルト遷移の矢印 をクリックして、チャートにドラッグします。

  2. 矢印をダブルクリックして ?{y1 = timestwo(x1)} で置き換えます。

  3. チャートに入力端子を追加します。モデル エクスプローラーを開きます。左側のペインで Chart を選択します。メニューから、[追加][データ] を選択します。[名前]x1 に、[スコープ][入力] に設定します。

  4. チャートに出力端子を追加します。メニューから、[追加][データ] を選択します。[名前]y1 に、[スコープ][出力] に設定します。

  5. 入力にテスト データを供給する Sine Wave ブロックと、出力から結果を表示する Scope ブロックを追加します。

    After you add the components to test the graphical function, there is a Sine Wave block as input to a Stateflow chart which sends output to a Scope block.

  6. チャートをシミュレートします。

グラフィカル関数の引数パラメーターの設定

関数の入出力引数のサイズ、実数/複素数、タイプを指定します。チャートは完全に指定されたプロトタイプをもつ関数のみエクスポートできます。

  1. モデル エクスプローラーを開きます。[モデル化] タブの [設計] セクションで、[モデル エクスプローラー] を選択します。

  2. 左側のペインでグラフィカル関数を選択します。

    Modeling Hierarchy pane of the Model Explorer shows the timestwo graphical function under the Chart.

  3. 中央のペインの [列ビュー] リストから、[Stateflow] を選択します。フィルター アイコン を選択し、トグル リストから [すべての Stateflow オブジェクト] を選択します。中央のペインの表から入力引数または出力引数を選択します。

    Column View pane of the Model Explorer shows the arguments of the timestwo graphical function.

  4. 右側のペインで、[サイズ]1 に設定し、[実数/複素数][オフ] に設定し、[型][double] に設定します。

    Data pane of the Model Explorer shows the parameters set for x.

  5. 出力関数の引数 y で、手順 23 を繰り返します。

グラフィカル関数へのエクスポート関数パラメーターの設定

シミュレーション中に、Stateflow チャートから Simulink モデルにグラフィカル関数をエクスポートするパラメーターを設定します。

  1. モデル エクスプローラーを開きます。左側のペインで、グラフィカル関数が含まれるチャートを選択します。

    Modeling Hierarchy pane of the Model Explorer shows the timestwo graphical function under the Chart.

  2. プロパティ インスペクターで、[チャート レベルの関数をエクスポート] を選択して [適用] ボタンをクリックします。その後、[エクスポートされた関数をグローバルに可視として扱う] を選択します。

    エクスポートされたグラフィカル関数を別の Stateflow チャートから呼び出すときは、[エクスポートされた関数をグローバルに可視として扱う] パラメーターを有効にする必要はありません。

詳細については、再利用のための Stateflow 関数のエクスポート (Stateflow)を参照してください。

参考

| (Stateflow) | | |

トピック