MathWorks Simulink コンポーネントのインポート

MathWorks Simulink コンポーネントをインポートするには、Simulink および IBM® Rational® Rhapsody® で以下の手順を行います。

MathWorks Simulink で

手順

  1. MathWorks Simulink モデルを作成するか、または既存のモデルを開き、作業ディレクトリー (可能であれば Rational Rhapsody モデルと同じ作業ディレクトリー) にそれを保存します。
  2. コードを生成するために、下の Real-Time Workshop 内の設定 (大部分はデフォルト設定) を使用します。 これらの設定は、「ツール」 > 「Real-Time Workshop」 > 「Options」を選択して表示することができます。
    • Hardware Implementation->Device Type - Unspecified (assume 32-bit Generic)
    • Real-Time Workshop->System target file - ert.tlc
    • Real-Time Workshop->Language - C or C++ (note that the default setting is C)
    • Real-Time Workshop->Make command - make_rtw
    • Real-Time Workshop->Template makefile - ert_default_tmf
  3. Simulink モデルのコードを生成します (「Tools」 > 「Real-Time Workshop」 > 「Build Model」)。

Rational Rhapsody

手順

  1. Rational Rhapsody プロジェクトを作成します。
  2. ブラウザー内のプロジェクト名を右クリックして、「モデルへの追加」 > 「パッケージ」を選択します。
  3. 「モデルへの追加」ウィンドウで、<Rational Rhapsody インストール・フォルダー>\Share\Profiles\Simulink に移動し、「ファイルのタイプ」フィールドで Package (*.sbs) を選択します。
  4. C を使用している場合は SimulinkInC.sbs プロファイル、C++ を使用している場合は Simulink.sbs を選択します。 「開く」をクリックして、選択したプロファイルをプロジェクトに追加します。 ブラウザー内の「Profiles」セクションを調べて、選択した Simulink プロファイルが表示されていることを確認します。
  5. オブジェクト・モデル図内でオブジェクトを作成し、それに SimulinkBlock ステレオタイプを適用します (「特性」ウィンドウ内で)。
  6. このオブジェクトを右クリックして、「Simulink モデルのインポート/同期」を選択します。
  7. 表示されたウィンドウで、以下の情報を指定します。
    • Simulink モデル・ファイル。 Simulink モデル・ファイルの場所。
    • Simulink 生成ソース・コード。 Real-Time Workshop で生成された *.cpp ファイルの場所 (ert_main.cpp 以外のすべてのファイルを追加します)。
    • Simulink モデル・サンプル時間。 Rational Rhapsody で Simulink エンジンをアクティブ化する間隔 (ミリ秒単位)。
  8. インポート/同期」をクリックして、Rational Rhapsody で Simulink モデルの入出力を表すブロック上にフロー・ポートが作成されるまで待機します。
  9. フロー・ポートが作成されると、他の Rational Rhapsody ブロック上のフロー・ポートに Simulink ブロックを接続することができます。

Simulink 生成コードの組み込み

このタスクについて

Simulink コンポーネントが Rational Rhapsody モデルにインポートされると、Real-Time Workshop を使用して Simulink モデルから生成された .cpp ファイルは、Rational Rhapsody 生成 Make ファイル内にソース・ファイルとして組み込まれます。

Rational Rhapsody 生成コードの観点からは、Rational Rhapsody 内の SimulinkBlock 要素は、OMSimulinkBlock というフレームワーク・クラスに基づくクラスです。 スーパークラスでは、メソッドの doStep() を定期的に呼び出します。このメソッドは派生クラスによって実装されます。 このメソッドでは、入力ポートを初期化し、Simulink 生成 .cpp ファイル内のステップ関数を呼び出し、ステップの後に出力の値を設定します。 (この出力は、次に出力フロー・ポートを介して中継されます。)

SimulinkBlock を Simulink モデルに関連付けて、「Simulink モデルのインポート/同期」ポップアップ・メニュー・コマンドを使用すると、doStep() 関数が生成されます。 この操作には、Embedded Coder ライセンス (ERT) が必要なことに注意してください。

Simulink モデルの組み込みのトラブルシューティング

このタスクについて

  • インポートまたは Simulink モデルへの同期の後に、langeng.dll が欠落ファイルであるというエラー・メッセージを受け取った場合は、MATLAB ¥bin¥win32 フォルダーが PATH 環境変数内に存在することを確認してください。 このフォルダーが存在しない場合、これを追加した後に Rational Rhapsody を再始動して再度インポートする必要があります。
  • 欠落インクルード・ファイルに関するコンパイル・エラーを受け取った場合は、MATLAB インストール・ディレクトリーでそれらを探します。 それらを見つけた後に、Rational Rhapsody の構成のインクルード検索パスにそれらを追加することができます。

フィードバック