| 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-ファンクションを自動生成するためには、
あるいは、subsystemブロックのコンテキストメニューのReal-Time WorkshopサブメニューからS-Functionを生成(Generate S-function)を選択します。
上記の図で、パラメータKは、チューニング可能と宣言されています。
subsys_blkを含みます。ここで、subsysはブロックが生成されたサブシステム名です。
生成されたS-Functionコンポーネントsubsys, は、作業ディレクトリに格納されます。S-ファンクションに対して生成されたソースコードは、ビルドディレクトリsubsys_sfcn_rtwに書き込まれます。
(SourceSubsys_sf.c)生成されたS-FunctionコードのmdlOutputsルーチンからの以下に示すコードは、チューニング可能なパラメーKがMEX APIの呼び出しによってどのように参照されるかを示します。
static void mdlOutputs(SimStruct *S, int_T tid) ... real_T rtb_temp3[2]; ... /* Gain Block: <S1>/Gain */ rtb_temp3[0] *= ((*(real_T *)(mxGetData(K(S))))); rtb_temp3[1] *= ((*(real_T *)(mxGetData(K(S)))));
| 生成したS-Functionのチューニング可能なパラメータ | 制約 | ![]() |