IBM® Rational® Rhapsody® を使用して、Simulink の S-Function を作成し、作成した S-Function を Simulink モデルに接続することができます。
このタスクについて
このフィーチャーは、
IBM Rational Rhapsody Developer for C でのみ適用可能です。
手順
- Rational Rhapsody プロジェクトを作成します。
- プロジェクトに Simulink プロファイルをインポートします。
- 構成を作成し、S-FunctionConfig ステレオタイプを適用します。
- 新しく作成した構成を、アクティブ構成に設定します。
- クラスを作成し、S-FunctionBlock ステレオタイプを適用します。
- このクラスに、着信データを処理するための着信フロー・ポートを追加します。
- このクラスに、発信データを処理するための発信フロー・ポートを追加します。
- 追加した各フロー・ポートに対し、フロー・ポートを示す属性をクラスに追加します。この属性の名前とタイプは、対応するフロー・ポートと同じでなければなりません。
- このクラスのステートチャートを実装します。
- 作成した構成に対応するコードを生成します。
- この構成の出力ディレクトリーに、以下のものを含めます。
- このモデル用に生成されたソース・ファイル
- Rational Rhapsody フレームワーク・ファイル (Rational Rhapsody IDF
フレームワークに含まれるファイル)
- RhapsSFunc_the_name_you_gave_to_the_block.c という名前の Simulink C テンプレート・ファイル (例えば、RhapsSFunc_BlockSFA.c)
- MexOpts.txt という名前の mex オプション・ファイル
- the_name_you_gave_to_the_block_Model.mdl という名前の S-Function ブロックを表す Simulink モデル・ファイル (例えば、RhapsSFunc_BlockSFA_Model.mdl)
- MATLAB を開き、Rational Rhapsody コードが含まれている出力ディレクトリーに移動します。
- コマンド mex @MexOpts.txt を実行します。
タスクの結果
S-Function の出力の作成
S-FunctionConfig 構成用のコードを生成すると、
Rational Rhapsody は以下のアクションを実行します。
- Simulink によって提供された sfuntmpl_basic.c テンプレートを完了し、ユーザーが S-Function ブロックに割り当てた名前を反映するよう名前変更します。
- ユーザーがプロジェクト内で S-Function ブロック用に入力した情報を取得し、
ユーザーが S-Function ブロックに割り当てた名前を使用して、対応する Simulink モデル・ファイルを作成します。
- 必要なコンパイラー・スイッチと、使用するソース・ファイルのリストを含む、
mex オプション・ファイルを生成します。
Rational Rhapsody が生成した mex オプション・ファイルを使用して mex コマンドを実行すると、Simulink が使用できるバイナリー・ファイルを MATLAB MEX コンパイラーが作成します。
タイミングと S-Function
時間関連のイベントについては、Rational Rhapsody は、ターゲットのオペレーティング・システムのタイミング・メカニズムを使用します。Simulink には独自のタイミング・メカニズムがあるため、Rational Rhapsody は S-Function コードを生成する際に、この点を考慮に入れます。Simulink クロックが入力として S-Function に追加されます。これは、Rational Rhapsody ではユーザーに表示されませんが、結果ファイルが Simulink にインポートされるため、ユーザーは、定義された S-Function を表す要素とともにクロック要素を確認することができます。