主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

再利用のためのStateflow関数のエクスポート

チャートレベルの関数をエクスポートすると,関数のスコープが仿真金宝app软件®モデルの他のブロックへ拡大されます。例は,金宝app仿真软件とStateflowでの関数の共有を参照してください。以下の関数をエクスポートできます。

  • グラフィカル関数

  • MATLAB®関数

  • 真理値表

チャートレベルの関数をエクスポートする方法

  1. 関数の配置されているチャートを開きます。

  2. プロパティインスペクターで,[詳細設定]セクションを開きます。

  3. [チャートレベルの関数をエクスポート]を選択します。

  4. 関数がライブラリチャート内に配置されている場合は,そのチャートをメインモデルにリンクします。

[チャートレベルの関数をエクスポート]を選択すると,金宝app动态仿真模块调用者ブロックでドット表記chartName.functionNameを使用して,エクスポートした関数を呼び出すことができます。エクスポートした関数を任意のStateflow®ブロックまたは金宝app动态仿真模块调用者ブロックからモデル全体で呼び出すには,[エクスポートされた関数をグローバルに可視として扱う)を選択します。これらの関数の呼び出しにはドット表記を使用しないでください。複数の関数を同じ名前でエクスポートすることはできません。

金宝app仿真软件関数は仿真软件キャンバスで直接定義することもできます。詳細については,金宝app仿真软件的功能(金宝app模型)を参照してください。

チャートレベルの関数をエクスポートする場合のルール

ライブラリチャートをメインモデルにリンクしてチャートレベルの関数をライブラリからエクスポートする

サポートされていない入出力を含むチャートレベルの関数はエクスポートしない

金宝app関数をエクスポートしない

モデル参照の境界を越えて関数をエクスポートしない

チャートレベルの関数をエクスポート

この例では,ライブラリチャート内の関数をメインモデルにエクスポートする方法について説明します。

  1. 以下のオブジェクトを作成します。

    • main_modelという名前のモデルをmodChartという名前のチャートに追加します。

    • lib1という名前のライブラリモデルをlib1Chartという名前のチャートに追加します。

    • lib2という名前のライブラリモデルをlib2Chartという名前のチャートに追加します。

  2. これらのグラフィカル関数をライブラリチャートに作成します。

    • lib1Chartに対して,以下のグラフィカル関数を追加します。

    • lib2Chartに対して,以下のグラフィカル関数を追加します。

    • モデルエクスプローラーで,関数の入出力,一个bおよびcのそれぞれで以下のプロパティを設定します。

      • 大小1

      • 复杂性

      • 类型

  3. modChartの場合,グラフィカル関数とデフォルト遷移にlib1_funcアクションを追加します。

  4. チャートごとに,以下の手順に従います。

    1. モデルエクスプローラーで,関数の入出力,一个bおよびcのそれぞれで以下を設定します。

      • 大小1

      • 复杂性

      • 类型

    2. [チャート]プロパティダイアログボックスを開きます。

    3. [チャート]プロパティダイアログボックスで,[チャートレベルの関数をエクスポート]および[エクスポートされた関数をグローバルに可視として扱う)をオンにします。

    4. (好的)をクリックします。

  5. lib1Chartlib1から,またlib2Chartlib2から,main_modelにドラッグします。メインモデルは,以下のようになります。

    これで各チャートに,main_model内の任意のチャートから呼び出しできるグラフィカル関数を定義したことになります。

  6. モデルエクスプローラーを開きます。

  7. モデルエクスプローラーの[モデルの階層構造)ペインで,main_modelに移動します。

  8. データxyをStateflowマシンに追加します。

    1. [追加][データ]を選択します。

    2. [名前]列にxと入力します。

    3. [初期値]列に0と入力します。

    4. 他のxプロパティについては既定の設定を使用します。

    5. [追加][データ]を選択します。

    6. [名前]列にyと入力します。

    7. [初期値]列に1と入力します。

    8. 他のyプロパティについては既定の設定を使用します。

    こうすると,入出力データがグローバルに定義され,エクスポートされたグラフィカル関数がサポートされるようになります。

  9. [モデルコンフィギュレーションパラメーター]ダイアログボックスを開きます。

  10. [モデルコンフィギュレーションパラメーター]ダイアログボックスで,[ソルバー]ペインに移動します。

  11. [ソルバーの選択]セクションで,以下の変更を行います。

    1. [タイプ]には(固定ステップ]を選択します。

    2. [ソルバー]には[離散(連続状態なし))を選択します。

  12. [ソルバーの詳細]セクションで,以下の変更を行います。

    1. (固定ステップサイズ]1と入力します。

    2. (好的)をクリックします。

    このステップにより,モデルのシミュレーション時に離散ソルバーの使用が確実になります。詳細については,ソルバーの比較(金宝app模型)を参照してください。

シミュレーション中に実行されること

モデルをシミュレートすると,各タイムステップ中に以下のことが実行されます。

フェーズ オブジェクト 呼び出すグラフィカル関数 そのグラフィカル関数の実行内容
1 modChart lib1_func 2つの入力引数xおよびyが読み込まれる
2 lib1_func lib2_func これら2つの入力引数が渡される
3. lib2_func mod_func xyの和がxに代入される

シミュレーション結果の表示方法

シミュレーション結果を表示するには,スコープをモデルに追加します。以下の手順に従います。

  1. 金宝app仿真软件ライブラリブラウザーを開きます。

  2. 金宝app模型/水槽ライブラリから范围ブロックをクリックし,main_modelに追加します。

  3. モデルエクスプローラーを開きます。

  4. [モデルの階層構造)ペインで,modChartに移動します。

  5. 出力データzをチャートに以下のように追加します。

    1. [追加][データ]を選択します。

    2. [名前]列にzと入力します。

    3. [スコープ]列で[出力]をクリックします。

    4. 他のプロパティについては既定の設定を使用します。

  6. modChartについては,読み込まれるデフォルト遷移アクションを以下のように更新します。

    {x = lib1_func (x, y);z = x;}
  7. モデルで,modChartからの出力端子を范围ブロックの入力端子に接続します。

  8. 范围ブロックをダブルクリックして表示を開きます。

  9. シミュレーションを開始します。

  10. シミュレーションの終了後,スコープ表示を右クリックして[オートスケール]をクリックします。

    この結果は,次のようになります。