Real-Time Workshop User's Guide    

サブシステムからS-Functionブロックを作成

この節では、モデルからサブシステムを抽出する方法と、そこから再利用可能なS-Functionコンポーネントを生成する方法を説明します。

図 10-1は、信号をサブシステムに入力する簡単なモデルSourceModelを示します。図 10-2は、サブシステムSourceSubsysを示します。異なる幅およびサンプル時間をもつ信号は、以下の通りです。

図 10-1: SourceModel

図 10-2: SourceSubsys

目的は、S-Functionターゲットを使ってモデルからSourceSubsysを抽出し、そこからS-functionブロックをビルドすることです。ユーザは、S-Functionブロックが、それを生成したサブシステムと同様に実行することを希望します。

このモデルでは、SourceSubsysはサンプル時間と信号の幅を入力信号から継承します。S-Functionブロックが、入力幅とサンプル時間を明示的に設定しないでSourceSubsysからビルドされる場合、新規のブロックは、それが置かれるモデルのサンプル時間と信号の幅を継承します。

しかし、この例では、S-Functionブロックは、SourceSubsys内に存在するようにSourceModelのプロパティを保持することを希望します。サブシステムを別のS-Functionコンポーネントとしてビルドする前に、inportのサンプル時間と幅を明示的に設定する必要があります。さらに、S-Functionコンポーネントのソルバオプションは、オリジナルのモデルと同じでなければなりません。これは、生成したS-Functionコンポーネントが、オリジナルのサブシステムと同様に機能することを保証します。

SourceSubsysをS-Functionコンポーネントとしてビルドするには、

  1. 新規のモデルを作成し、SourceSubsysを空のウィンドウにコピー/ペーストします。
  2. SourceSubsys内のinportの信号幅とサンプル時間を、オリジナルモデルの信号の信号幅およびサンプル時間と一致するように設定します。 Inport 1, Filterは、幅が1でサンプル時間が1です。Inport 2, Xferfcnは幅が1で、サンプル時間が0.5です。Inport 3, offsetsは幅が2で、継承されるサンプル時間が1です。
  3. 生成したS-Functionブロックは、3つのinportsと1つのoutportをもちます。inportsおよびoutportを下図のようにSourceSubsysに接続します。

    正しい信号幅とサンプル時間がこれらの端子に伝播されます。

  1. ソルバのタイプ、モード、その他のソルバパラメータを、ソースモデルと一致するように設定します。
  2. 新規のモデルを保存します。
  3. Simulation Parameters ダイアログボックスをオープンして、Real-Time-Workshopタブをクリックします。Real-Time-Workshopページで、CategoryメニューからTarget configurationを選択します。
  4. Browseボタンをクリックして、 System Target Browserをオープンします。System Target BrowserでS-function targetを選択し、OKをクリックします。Real-Time-Workshopページのパラメータは、下図のように表示されます。

  1. CategoryメニューからRTW S-function code generation optionsを選択します。Create New Modelが選択されていることを確認します。

    このオプションが選択されると、ビルドプロセスは、S-Functionコンポーネントをビルドした後に新規のモデルを作成します。新規のモデルは、S-FunctionコンポーネントとリンクされたS-Functionブロックを含みます。

  1. 必要ならばApplyをクリックし、CategoryメニューからTarget configurationを選択します。
  2. ビルド(Build)をクリックします。
  3. Real-Time Workshopは、作業ディレクトリにS-Functionコンポーネントをビルドします。ビルドの後で、新規のモデルウィンドウがポップアップします。

  1. 新規モデルからRTW S-Functionブロックをコピーして、他のモデルまたはライブラリ内で利用することができます。図 10-3は、オリジナルモデル内に組み込まれたS-Functionブロックを示します。同じ入力信号を与えると、S-Functionブロックはオリジナルのサブシステムと同様に実行します。

図 10-3: SourceModel内に組み込まれたS-Function

S-Functionブロックを実行する速度は、オリジナルモデルよりも一般的に速くなります。この速度の差は、大規模で複雑なモデルに対してよりはっきりします。生成したS-Functionを使うことにより、モデリングプロセスの効率を向上させることができます。


 知的財産の保護 生成したS-Functionのチューニング可能なパラメータ