バックナンバーはこちら

today&tomorrow

Technology Update

  • T&T HOME
  • Technology Update
  • ソフトウェア・イン・ザ・ループからバーチャル・ハードウェア・イン・ザ・ループへのシームレスな移行を実現するVirtualizer Studio

2017 Dec. vol.108

ソフトウェア・イン・ザ・ループからバーチャル・ハードウェア・イン・ザ・ループへのシームレスな移行を実現するVirtualizer Studio

シノプシス バーチャル・プロトタイピングR&D担当マネージャー Andreas Ropers
シノプシス バーチャル・プロトタイピング担当エンジニア Markus Wedler
シノプシス バーチャル・プロトタイピング担当テクニカル・マーケティング・マネージャー Victor Reyes

プラント・モデルからギアシフト・ロジックを抽出

図2はオートマティック・トランスミッション(AT)コントローラの機能モデルを示したもので、これにはエンジン、トランスミッション(緑色のボックス)、車両運動制御のモデルが含まれます。機能レベルでは、ギアシフトはエンジン回転数(rpm)の値に基づいて適切なギアに設定する単純なステート・マシンとしてモデル化されます。

画像(仮)

図2:機能レベルのATコントローラ

    トランスミッションのモデルをMiLからvHiLへ移行するには、次の手順を実行します。
  • 最終的にECUで実行するブロックのターゲット・コードを作成する。これには、Mathworks社の「embedded Coder」を使用する方法と、設計者が自分でコードを作成し、目的のアーキテクチャをターゲットにしてコンパイルする方法があります。
  • プラント・モデルのトランスミッション・ロジックをスタブ・モデルで置き換える。スタブ・モデルとは、各信号をVDKに接続するものです。下層の通信レイヤはシノプシスのツールによって提供されます。詳細は「VDKの高速通信テクノロジ」のセクションでご説明します。
  • サブシステムのすべてのI/Oポートとそれぞれのデータ・タイプをリストにしたインターフェイス定義ファイルを作成する。

簡単なプラント・モデルの例として取り上げたこのトランスミッション・コントローラには、ギアシフト・ロジックを表現した「gear」サブシステムが含まれます。このような単純な例では上記3つの手順を人手で実行することも可能ですが、I/Oポートが数百もあるような大規模なユーザー・デザインの場合、ミスの発生を防ぐにはツールによる自動化が不可欠です。

Simulinkとの統合によりMiLからvHiLへの移行をサポート

シノプシスのVDKでは、Mathworks社のSimulinkで作成したサブシステムを対応するブロックに置き換え、このブロックでI/Oピンをスタブし、実行時にECUシミュレータとの通信レイヤを確立することができます。これは、Simulinkのコンテキスト・メニューに追加される次の2つのコマンドを使用して行います。

  • サブシステムをコネクタ・ブロックに変換
    このコマンドを実行するとSimulinkサブシステムのすべての内部ロジックが削除され、各ピンに「コネクタ・ブロック」が挿入されます。コネクタ・ブロックは実行時にVDKに対する接続を確立し、これら2つのシミュレータ間でデータ交換およびシミュレーション時間の同期を実行します。
  • Virtualizer Studio用に外部インターフェイス定義ファイルを生成
    Virtualizer Studioはコンポーネント作成、プラットフォーム・アセンブリ、プラットフォーム・デバッグをサポートした統合開発環境です。VDKはVirtualizer Studioによって作成され、アセンブリ・フェーズでコンポーネントを追加して拡張できます。追加するコンポーネントにはIPコンポーネントだけでなく、Simulinkなど別のシミュレーション・プラットフォーム上で実行されるモデルを指定することもできます。VDKに外部Simulinkモデルを追加するには、Simulinkで生成したインターフェイス定義ファイルをVirtualizer Studioにインポートします。これで、Simulinkサブシステムの各ピンが実際のECUハードウェアのピンに接続されます。

カテゴリートップ