Real-Time Workshop User's Guide    

S-Functionの自動生成

S-function生成機能は、サブシステムからのS-Functionの生成プロセスを自動化します。さらに、S-function生成機能は、サブシステム内で用いられるパラメータの表示を行い、選択されたパラメータをチューニング可能と宣言します。

例として、図 10-2に示したサブシステムSourceSubsysを考えます。目的は、モデルから自動的にSourceSubsysを抽出し、それから以前の例のようにS-Functionブロックをビルドすることです。さらに、SourceSubsys内のGainブロックのゲインファクタをワークスペース変数K(下図参照)に設定し、Kをチューニング可能なパラメータとして宣言します。

SourceSubsysからチューニング可能なパラメータKをもつS-ファンクションを自動生成するためには、

  1. サブシステムをクリックして選択します。
  2. ツール(Tools)メニューのReal-Time WorkshopサブメニューからS-Functionを生成(Generate S-function)を選択します。このメニューアイテムは、サブシステムがカレントモデル内で選択されているときに利用可能です。

    あるいは、subsystemブロックのコンテキストメニューのReal-Time WorkshopサブメニューからS-Functionを生成(Generate S-function)を選択します。

  3. サブシステムパラメータの一覧を表示するウィンドウがオープンします。

    上記の図で、パラメータKは、チューニング可能と宣言されています。

  1. チューニング可能なパラメータを選択した後で、Buildボタンをクリックします。これは、S-ファンクションターゲットを使ってコード生成と、S-ファンクションのコンパイルを開始します。Create New Modelオプションは、自動的に利用可能になります。
  2. ビルドプロセスは、ステータスメッセージをMATLABコマンドウィンドウに表示します。ビルドが終了すると、チューニング可能なパラメータウィンドウはクローズし、新規のタイトルの付いていないウィンドウがオープンします。

  1. モデルウィンドウは、S-Functionブロックsubsys_blkを含みます。ここで、subsysはブロックが生成されたサブシステム名です。

    生成されたS-Functionコンポーネントsubsys, は、作業ディレクトリに格納されます。S-ファンクションに対して生成されたソースコードは、ビルドディレクトリsubsys_sfcn_rtwに書き込まれます。

  1. タイトルの付けられていない生成モデルは、Fileメニューによって保存しないと残りません。
  2. 生成したS-Functionブロックは、幅とサンプル時間がオリジナルモデルの幅とサンプル時間に対応するinportsとoutportsをもちます。

(SourceSubsys_sf.c)生成されたS-FunctionコードのmdlOutputsルーチンからの以下に示すコードは、チューニング可能なパラメーKがMEX APIの呼び出しによってどのように参照されるかを示します。


 生成したS-Functionのチューニング可能なパラメータ 制約