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