このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
モデルでの Simulink 関数の定義
Simulink® 関数はいくつかの方法で定義して実装できます。
Simulink Function ブロック — Simulink ブロックを使用して関数を定義します。
Chart (Stateflow) — Stateflow® チャート内でグラフィカル関数、MATLAB® 関数、または Simulink 関数を定義し、Simulink モデルにエクスポートします。詳細については、再利用のための Stateflow 関数のエクスポート (Stateflow)を参照してください。
S-Function ブロック — S-Function ブロックを使用して関数を定義します。
ssDeclareSimulinkFunction
を参照してください。
以下のセクションでは、関数 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 ブロックを設定します。
Simulink Function ブロックをモデルに追加します。
ブロック上に表示されるテキストをダブルクリックし、関数プロトタイプを入力します。
y = timestwo(x)
ブロックをダブルクリックしてサブシステムを開きます。
Gain ブロックを追加して [ゲイン] パラメーターを
2
に設定します。
Stateflow チャートからエクスポートされた関数を使用した Simulink 関数の定義
Stateflow チャートからエクスポートされた関数を使用して Simulink 関数を定義できます。Stateflow チャートで、グラフィカル関数、MATLAB 関数、または Simulink 関数を使用して関数の動作を実装できます。このセクションでは、グラフィカル関数を定義してエクスポートする方法を示します。これらの手順に従って、MATLAB 関数や Simulink 関数を定義してエクスポートすることもできます。
入力引数を介して関数の呼び出し元からデータを受け取り、出力引数を介して出力を返すグラフィカル関数を Stateflow チャートで設定します。関数を Simulink モデルにエクスポートするように、チャート パラメーターを設定します。
Stateflow チャートでのグラフィカル関数の定義
Stateflow チャートでグラフィカル関数を定義します。関数プロトタイプを指定し、関数の動作を実装します。
Stateflow チャートを Simulink モデルに追加します。
ダブルクリックしてチャートを開きます。
グラフィカル関数を追加します。左側のツール バーでグラフィカル関数アイコン
をクリックし、チャートにドラッグします。
関数プロトタイプを指定します。関数ボックスで、
?
を関数プロトタイプy = timestwo(x)
に置き換えます。関数の動作を実装します。遷移の矢印をクリックし、
?
を{y = 2*x}
に置き換えます。
グラフィカル関数のテスト
Simulink モデルにエクスポートする前に Stateflow チャート内でグラフィカル関数をテストします。
関数をテストするためにチャートでデフォルト遷移を追加します。左側のツール バーから、デフォルト遷移の矢印
をクリックして、チャートにドラッグします。
矢印をダブルクリックして
?
を{y1 = timestwo(x1)}
で置き換えます。チャートに入力端子を追加します。モデル エクスプローラーを開きます。左側のペインで
Chart
を選択します。メニューから、[追加] 、 [データ] を選択します。[名前] をx1
に、[スコープ] を[入力]
に設定します。チャートに出力端子を追加します。メニューから、[追加] 、 [データ] を選択します。[名前] を
y1
に、[スコープ] を[出力]
に設定します。入力にテスト データを供給する Sine Wave ブロックと、出力から結果を表示する Scope ブロックを追加します。
チャートをシミュレートします。
グラフィカル関数の引数パラメーターの設定
関数の入出力引数のサイズ、実数/複素数、タイプを指定します。チャートは完全に指定されたプロトタイプをもつ関数のみエクスポートできます。
モデル エクスプローラーを開きます。[モデル化] タブの [設計] セクションで、[モデル エクスプローラー]
を選択します。
左側のペインでグラフィカル関数を選択します。
中央のペインの [列ビュー] リストから、
[Stateflow]
を選択します。フィルター アイコンを選択し、トグル リストから [すべての Stateflow オブジェクト] を選択します。中央のペインの表から入力引数または出力引数を選択します。
右側のペインで、[サイズ] を
1
に設定し、[実数/複素数] を[オフ]
に設定し、[型] を[double]
に設定します。出力関数の引数
y
で、手順2
と3
を繰り返します。
グラフィカル関数へのエクスポート関数パラメーターの設定
シミュレーション中に、Stateflow チャートから Simulink モデルにグラフィカル関数をエクスポートするパラメーターを設定します。
モデル エクスプローラーを開きます。左側のペインで、グラフィカル関数が含まれるチャートを選択します。
プロパティ インスペクターで、[チャート レベルの関数をエクスポート] を選択して [適用] ボタンをクリックします。その後、[エクスポートされた関数をグローバルに可視として扱う] を選択します。
エクスポートされたグラフィカル関数を別の Stateflow チャートから呼び出すときは、[エクスポートされた関数をグローバルに可視として扱う] パラメーターを有効にする必要はありません。
詳細については、再利用のための Stateflow 関数のエクスポート (Stateflow)を参照してください。
参考
Simulink Function | Chart (Stateflow) | Argument Inport | Argument Outport | Function Caller