このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
チャートレベルの関数をエクスポートすると,関数のスコープが仿真金宝app软件®モデルの他のブロックへ拡大されます。例は,金宝app仿真软件とStateflowでの関数の共有を参照してください。以下の関数をエクスポートできます。
グラフィカル関数
MATLAB®関数
真理値表
関数の配置されているチャートを開きます。
プロパティインスペクターで,[詳細設定]セクションを開きます。
[チャートレベルの関数をエクスポート]を選択します。
関数がライブラリチャート内に配置されている場合は,そのチャートをメインモデルにリンクします。
[チャートレベルの関数をエクスポート]を選択すると,金宝app动态仿真模块调用者ブロックでドット表記chartName.functionName
を使用して,エクスポートした関数を呼び出すことができます。エクスポートした関数を任意のStateflow®ブロックまたは金宝app动态仿真模块调用者ブロックからモデル全体で呼び出すには,[エクスポートされた関数をグローバルに可視として扱う)を選択します。これらの関数の呼び出しにはドット表記を使用しないでください。複数の関数を同じ名前でエクスポートすることはできません。
金宝app仿真软件関数は仿真软件キャンバスで直接定義することもできます。詳細については,金宝app仿真软件的功能(金宝app模型)を参照してください。
ライブラリチャートをメインモデルにリンクしてチャートレベルの関数をライブラリからエクスポートする
この例では,ライブラリチャート内の関数をメインモデルにエクスポートする方法について説明します。
以下のオブジェクトを作成します。
main_model
という名前のモデルをmodChart
という名前のチャートに追加します。
lib1
という名前のライブラリモデルをlib1Chart
という名前のチャートに追加します。
lib2
という名前のライブラリモデルをlib2Chart
という名前のチャートに追加します。
これらのグラフィカル関数をライブラリチャートに作成します。
lib1Chart
に対して,以下のグラフィカル関数を追加します。
lib2Chart
に対して,以下のグラフィカル関数を追加します。
モデルエクスプローラーで,関数の入出力,一个
、b
およびc
のそれぞれで以下のプロパティを設定します。
大小
を1
复杂性
を从
类型
を双
modChart
の場合,グラフィカル関数とデフォルト遷移にlib1_func
アクションを追加します。
チャートごとに,以下の手順に従います。
モデルエクスプローラーで,関数の入出力,一个
、b
およびc
のそれぞれで以下を設定します。
大小
を1
复杂性
を从
类型
を双
[チャート]プロパティダイアログボックスを開きます。
[チャート]プロパティダイアログボックスで,[チャートレベルの関数をエクスポート]および[エクスポートされた関数をグローバルに可視として扱う)をオンにします。
(好的)をクリックします。
lib1Chart
をlib1
から,またlib2Chart
をlib2
から,main_model
にドラッグします。メインモデルは,以下のようになります。
これで各チャートに,main_model
内の任意のチャートから呼び出しできるグラフィカル関数を定義したことになります。
モデルエクスプローラーを開きます。
モデルエクスプローラーの[モデルの階層構造)ペインで,main_model
に移動します。
データx
とy
をStateflowマシンに追加します。
[追加]、[データ]を選択します。
[名前]列にx
と入力します。
[初期値]列に0
と入力します。
他のx
プロパティについては既定の設定を使用します。
[追加]、[データ]を選択します。
[名前]列にy
と入力します。
[初期値]列に1
と入力します。
他のy
プロパティについては既定の設定を使用します。
こうすると,入出力データがグローバルに定義され,エクスポートされたグラフィカル関数がサポートされるようになります。
[モデルコンフィギュレーションパラメーター]ダイアログボックスを開きます。
[モデルコンフィギュレーションパラメーター]ダイアログボックスで,[ソルバー]ペインに移動します。
[ソルバーの選択]セクションで,以下の変更を行います。
[タイプ]には(固定ステップ]
を選択します。
[ソルバー]には[離散(連続状態なし))
を選択します。
[ソルバーの詳細]セクションで,以下の変更を行います。
(固定ステップサイズ]に1
と入力します。
(好的)をクリックします。
このステップにより,モデルのシミュレーション時に離散ソルバーの使用が確実になります。詳細については,ソルバーの比較(金宝app模型)を参照してください。
モデルをシミュレートすると,各タイムステップ中に以下のことが実行されます。
フェーズ | オブジェクト | 呼び出すグラフィカル関数 | そのグラフィカル関数の実行内容 |
---|---|---|---|
1 | modChart |
lib1_func |
2つの入力引数x およびy が読み込まれる |
2 | lib1_func |
lib2_func |
これら2つの入力引数が渡される |
3. | lib2_func |
mod_func |
x とy の和がx に代入される |
シミュレーション結果を表示するには,スコープをモデルに追加します。以下の手順に従います。
金宝app仿真软件ライブラリブラウザーを開きます。
金宝app模型/水槽ライブラリから范围ブロックをクリックし,main_model
に追加します。
モデルエクスプローラーを開きます。
[モデルの階層構造)ペインで,modChart
に移動します。
出力データz
をチャートに以下のように追加します。
[追加]、[データ]を選択します。
[名前]列にz
と入力します。
[スコープ]列で[出力]
をクリックします。
他のプロパティについては既定の設定を使用します。
modChart
については,読み込まれるデフォルト遷移アクションを以下のように更新します。
{x = lib1_func (x, y);z = x;}
モデルで,modChart
からの出力端子を范围ブロックの入力端子に接続します。
范围ブロックをダブルクリックして表示を開きます。
シミュレーションを開始します。
シミュレーションの終了後,スコープ表示を右クリックして[オートスケール]をクリックします。
この結果は,次のようになります。