(57)【要約】【課題】大量のコンピュータリソースを必要とする車両制御シミュレーションを、シミュレーション工程毎に柔軟に実行することのできるシミュレーションシステムを得る。【解決手段】本発明に係る車両制御シミュレーションシステムは、車両制御ソフトウェアおよび車両の論理モデルの種類毎に仮想サーバを備えており、シミュレーションの各工程において必要になる仮想サーバを起動して対応するシミュレーションを実行させる。【選択図】図１
2012234260.tif 000002
【特許請求の範囲】
【請求項１】
車両を制御する処理をシミュレーションするシステムであって、
前記シミュレーションを実行するシミュレーション実行サーバと、
前記シミュレーション実行サーバを管理する管理コンピュータと、
を有し、
前記シミュレーション実行サーバは、
前記車両を制御する処理を記述した車両制御ソフトウェアのシミュレーションまたは前記車両の論理モデルのシミュレーションを実行する１以上の仮想サーバを実行し、
前記仮想サーバは、
前記車両制御ソフトウェアおよび前記論理モデルの種類毎に設けられており、
前記管理サーバは、
前記車両ソフトウェアのシミュレーションまたは前記論理モデルのシミュレーションの各工程において必要になる前記車両制御ソフトウェアまたは前記論理モデルと対応する前記仮想サーバを起動して前記シミュレーションを実行させる
ことを特徴とする車両制御シミュレーションシステム。
【請求項２】
前記仮想サーバのサーバイメージデータは、
前記仮想サーバ、前記仮想サーバが実行する前記車両制御ソフトウェア、および前記仮想サーバがシミュレーションを実行する前記車両の論理モデルをセットにして作成されており、
前記管理コンピュータは、
前記車両ソフトウェアのシミュレーションまたは前記論理モデルのシミュレーションの各工程において必要になる前記車両制御ソフトウェアまたは前記論理モデルとセットになって作成されている前記仮想サーバを起動するように前記シミュレーション実行サーバへ指示し、
前記シミュレーション実行サーバは、
前記管理コンピュータからの前記指示にしたがって、前記各工程において必要になる前記仮想サーバを起動して実行することにより、前記各工程において必要になる前記車両制御ソフトウェアのシミュレーションまたは前記論理モデルのシミュレーションを実行する
ことを特徴とする請求項１記載の車両制御シミュレーションシステム。
【請求項３】
前記シミュレーション実行サーバは、
複数の前記仮想サーバを同時に実行することによって複数種類の前記シミュレーションを同時に実行し、
前記シミュレーションを実行する過程において、各前記仮想サーバ間でクロックを同期させることにより、各前記車両制御ソフトウェアのシミュレーションおよび各前記論理モデルのシミュレーションの間でクロックを合わせる
ことを特徴とする請求項１記載の車両制御シミュレーションシステム。
【請求項４】
前記シミュレーション実行サーバは、
複数の前記仮想サーバを同時に実行することによって複数種類の前記シミュレーションを同時に実行し、前記仮想サーバ間で前記複数種類のシミュレーションの結果を相互に授受する
ことを特徴とする請求項１記載の車両制御シミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両を制御する処理をシミュレーションする技術に関するものである。
【背景技術】
【０００２】
自動車の操作や運動に関する制御技術は、年々電子化が進む傾向にある。１台の自動車に搭載されるＥＣＵ（Ｅｌｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）と呼ばれるマイクロコンピュータ回路の数は数１０個になり、これらＥＣＵに実装されるソフトウェア（以下、制御ソフトと呼ぶ）全体のサイズは１００万行（主としてＣ言語によるソースコード）にも及ぶようになっている。
【０００３】
このように制御ソフトウェアの開発規模は増加する一方で、その開発期間を短縮することが要求されているため、制御処理の品質向上が自動車メーカやサプライヤの大きな課題となっている。
【０００４】
このような課題に対応するための制御ソフト開発技術として、従来のプログラマによるハンドコーディングに代わって、モデルベース開発手法（以下、ＭＢＤと呼ぶ）が注目されつつある。ＭＢＤは、制御ソフトのロジックを、ブロック線図のようなモデルで記述することにより、制御仕様を可視化するとともに、モデルを使ってシミュレーションを実行することにより、その場で動作を確認できるというメリットがある。
【０００５】
ＭＢＤにおけるシミュレーションの実行方法は、制御ソフト開発プロセスの段階に応じて、以下のように分類される。
（ａ）ＭＩＬＳ（Ｍｏｄｅｌ−Ｉｎ−ｔｈｅ−Ｌｏｏｐ  Ｓｉｍｕｌａｔｉｏｎ）：制御ソフトのモデルを用いてシミュレーションを実行する。
（ｂ）ＳＩＬＳ（Ｓｏｆｔｗａｒｅ−Ｉｎ−ｔｈｅ−Ｌｏｏｐ  Ｓｉｍｕｌａｔｉｏｎ）：制御ソフトのソースコードを用いてシミュレーションを実行する。
（ｃ）ＨＩＬＳ（Ｈａｒｄｗａｒｅ−Ｉｎ−ｔｈｅ−Ｌｏｏｐ  Ｓｉｍｕｌａｔｉｏｎ）：オブジェクトコードを実装したＥＣＵを用いてシミュレーションを実行する。
【０００６】
ＭＢＤによる制御ソフト開発においては、これまで機能モジュール毎に開発する手法が検討されてきた。制御ソフトモデルのシミュレーションを実施する形式として、制御ソフトモデル単体のオープンループと、制御対象（以下、プラントと呼ぶ）モデルと接続した閉ループでのシミュレーションがある。
【０００７】
最近では、制御ソフト仕様の検証を、要求分析や機能設計などの制御ソフト開発プロセスの上流段階で実施するようになっている。特に、最近の制御ソフトは高機能化・複雑化が加速しており、一部の機能モジュールの仕様を変更した場合における、制御ソフト全体に対する影響範囲を把握することが困難になっている。そのため、車両全体をモデル化したシミュレーション技術が重要になっている。
【０００８】
下記特許文献１〜２には、制御ソフトウェアのシミュレーションを実行する技術が記載されている。下記特許文献３には、制御計測システム３を遠隔からサポートするシステムが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−２３３６７５号公報
【特許文献２】特表２００５−５０４３７７号公報
【特許文献３】特開２００３−１４０７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
車両全体のモデルを用いてシミュレーションを実行する場合、デスクトップタイプのパーソナルコンピュータ（以下、ＰＣと略す）程度の処理能力では、シミュレーションデータを記憶するためのメモリの容量が不十分である。また、中央演算処理装置（以下、ＣＰＵと略す）の能力が不十分であるため、シミュレーションの実行時間が大幅に長くなってしまう。さらには、車両全体のシミュレーションは、複数種類のソフトウェア、制御モデルなどによって実行され、シミュレーションの工程に応じて用いられるソフトウェアなどがそれぞれ異なる場合があり、工程毎に個別にシミュレーション環境を構築すると多数のコンピュータが必要になってコストなどの面で望ましくない。
【００１１】
本発明は、上記のような課題を解決するためになされたものであり、大量のコンピュータリソースを必要とする車両制御シミュレーションを、シミュレーション工程毎に柔軟に実行することのできるシミュレーションシステムを得ることを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る車両制御シミュレーションシステムは、車両制御ソフトウェアおよび車両の論理モデルの種類毎に仮想サーバを備えており、シミュレーションの各工程において必要になる仮想サーバを起動して対応するシミュレーションを実行させる。
【発明の効果】
【００１３】
本発明に係る車両制御シミュレーションシステムによれば、仮想サーバ上で車両制御シミュレーションを実行することにより、車両制御シミュレーションを、シミュレーション工程毎に柔軟に実行することができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態１に係る車両制御シミュレーションシステム１００の構成図である。
【図２】モデル割当定義データ１１２の構成とデータ例を示す図である。
【図３】テストパターンデータ１１３の構成とデータ例を示す図である。
【図４】車両制御シミュレーションシステム１００が車両制御シミュレーションを実行する際の処理フローである。
【図５】シミュレーション実行サーバ１２０がシミュレーションを実行しているときの各車両制御ソフトウェアおよびプラントモデルのタイミングチャートである。
【発明を実施するための形態】
【００１５】
＜実施の形態１＞
図１は、本発明の実施形態１に係る車両制御シミュレーションシステム１００の構成図である。車両制御シミュレーションシステム１００は、管理用コンピュータ１１０、シミュレーション実行サーバ１２０、データ保存用ストレージ１３０、システム用ストレージ１４０を有する。
【００１６】
管理用コンピュータ１１０、シミュレーション実行サーバ１２０、データ保存用ストレージ１３０、システム用ストレージ１４０は、ネットワーク１５０で接続されている。ネットワーク１５０の具体例としては、例えばＥｔｈｅｒｎｅｔ（登録商標）などのローカルエリアネットワーク用通信インタフェースを用いるとよい。ユーザは、ネットワーク１５０を介して、管理用コンピュータ１１０上で上記各装置にアクセスし、操作することができる。ユーザは、車両制御システム１００が設置されている施設内の管理用コンピュータ１１０から各装置にアクセスしてもよいし、インターネットやイントラネットを介して別の施設にある管理用コンピュータ１１０から各装置にアクセスしてもよい。その他、モバイル端末から上記各装置にアクセスすることもできる。なお、ネットワーク１５０のセキュリティを維持するために、ハードウェアキーなどの装置を使った認証によって、アクセスを制御するとよい。
【００１７】
管理用コンピュータ１１０は、シミュレーション実行管理プログラム１１１、モデル割当定義データ１１２、テストパターンデータ１１３を備える。管理用コンピュータ１１０自身も仮想サーバとして構成することができるが、ここでは独立したコンピュータであると仮定する。以下では記載の便宜上、各プログラムを動作主体として説明する場合があるが、実際に各プログラムを実行するのはコンピュータが備えるＣＰＵなどの演算装置であることを付言しておく。
【００１８】
シミュレーション実行管理プログラム１１１は、仮想サーバへ車両制御モデルデータをロードする処理、シミュレーションの実行順序制御、シミュレーション実行結果を保存する処理、などのシミュレーション実行に係る一連の処理を実施する。管理用コンピュータ１１０を仮想サーバによって構成する場合は、シミュレーション実行管理プログラム１１１をシステム用ストレージ１４０に格納しておき、ユーザが車両制御シミュレーションを実行する際に、管理用コンピュータ１１０にシミュレーション実行管理プログラム１１１をロードするようにすればよい。シミュレーション実行管理プログラム１１１の動作手順については後述する。
【００１９】
モデル割当定義データ１１２は、後述する仮想サーバ１２０ａ〜１２０ｉそれぞれに割り当てるプラントモデルを定義するデータである。モデル割当定義データ１１２の具体例については後述する。
【００２０】
テストパターンデータ１１３は、後述する各仮想サーバがプラントモデルを用いて車両制御ソフトウェアを実行することによって実施されるテストのテスト条件を定義するデータである。テストパターンデータ１１３の具体例については後述する。
【００２１】
モデル割当定義データ１１２とテストパターンデータ１１３は、シミュレーションを実行する前にユーザがあらかじめ作成し、管理用コンピュータ１１０に格納しておく。管理用コンピュータ１１０を仮想サーバによって構成する場合は、これらデータをデータ保存用ストレージ１３０に格納しておき、ユーザが車両制御シミュレーションを実行する際に管理用コンピュータ１１０にロードするようにすればよい。
【００２２】
シミュレーション実行サーバ１２０は、仮想サーバ１２０ａ〜１２０ｉを実行する。仮想サーバは、車両制御シミュレーションを実行するために必要な車両制御ソフトウェアおよびプラントモデルの種類毎に設けられている。すなわち、管理用コンピュータ１１０は車両制御シミュレーションの各工程を実行するために必要になる仮想サーバのみを起動すればよい。
【００２３】
各仮想サーバのサーバイメージデータは、システム用ストレージ１４０に格納されている。サーバイメージデータには、各仮想サーバのオペレーティングシステム（以下、ＯＳと略す）、シミュレーションソフトウェアなどがセットになって記録されている。各仮想サーバは、車両制御シミュレーションの実行結果をデータ保存用ストレージ１３０に格納する。
【００２４】
図２は、モデル割当定義データ１１２の構成とデータ例を示す図である。モデル割当定義データ１１２は、管理用コンピュータ１１０が仮想サーバを起動する際に、どの仮想サーバにどのプラントモデルと車両制御ソフトウェアを割り当てるかを定義したデータファイルである。
【００２５】
管理用コンピュータ１１０は、仮想サーバを起動するとき、モデル割当定義データ１１２の記述にしたがって、システム用ストレージ１４０に格納されているプラントモデルと車両制御ソフトウェアを仮想サーバにコピーする。仮想サーバは、そのプラントモデルと車両制御ソフトウェアを用いてシミュレーションを実行する。
【００２６】
車両制御ソフトウェアは、車両制御シミュレーションを実行するソフトウェア本体である。実際に車両に搭載する制御ソフトウェアを用いてシミュレーションを実行してもよいし、シミュレーション専用の別ソフトウェアを用いてもよい。さらには、シミュレーション環境を提供する統合ソフトウェアの配下で制御ソフトウェアを実行するようにしてもよい。いずれの場合であっても、モデル割当定義データ１１２は、各仮想サーバが実行すべきソフトウェアを定義する。
【００２７】
プラントモデルは、車両制御ソフトウェアの外部に存在する他のＥＣＵ、アクチュエータ、機能部などを論理的な制御モデルとして記述したデータである。実際の車両上では、車両制御ソフトウェアは実車両が備えているこれら各部の動的に変化するパラメータを参照しながら制御処理を実行するが、シミュレーション環境では実環境が存在しないため、これを制御モデルによって模擬的に実現することとしたものである。
【００２８】
図３は、テストパターンデータ１１３の構成とデータ例を示す図である。テストパターンデータ１１３は、仮想サーバ１２０ａ〜１２０ｉに実行されるシミュレーションテストの条件を記述したデータであり、車両制御ソフトウェアやプラントモデルの初期条件、車両の走行条件などのテストシナリオと、シミュレーション結果を記録する観測点（変数名）を定義している。
【００２９】
管理用コンピュータ１１０は、各仮想サーバが実行するシミュレーションテストに対応するテストパターンをテストパターンデータ１１３から読み出し、各仮想サーバに引き渡す。あるいは、各仮想サーバが実行する車両制御ソフトウェアがテストパターンデータ１１３を読み出すようにしてもよい。各仮想サーバ上の車両制御ソフトウェアは、テストパターンデータ１１３の記述にしたがってシミュレーションテストを実行する。
【００３０】
図４は、車両制御シミュレーションシステム１００が車両制御シミュレーションを実行する際の処理フローである。以下、図４の各ステップについて説明する。
【００３１】
（図４：ステップＳ４０１）
管理用コンピュータ１１０は、車両制御シミュレーションを開始すると、シミュレーション実行管理プログラム１１１を起動する。シミュレーション実行管理プログラム１１１は、モデル割当定義データ１１２を読み込み、その記述にしたがって、各仮想サーバが実行すべき車両制御ソフトウェアとプラントモデルを識別する。
【００３２】
（図４：ステップＳ４０２）
シミュレーション実行管理プログラム１１１は、ネットワーク１５０を介してシミュレーション実行サーバ１２０にアクセスし、シミュレーション工程を実行するために必要になる仮想サーバを起動する。
【００３３】
（図４：ステップＳ４０３）
シミュレーション実行管理プログラム１１１は、モデル割当定義データ１１２の記述にしたがって、各仮想サーバが実行すべき車両制御ソフトウェアとプラントモデルをシステム用ストレージ１４０から読み出し、各仮想サーバの配下にコピーする。各仮想サーバはプラントモデルを読み出し、実行すべき車両制御ソフトウェアを起動する。
【００３４】
（図４：ステップＳ４０４）
シミュレーション実行管理プログラム１１１は、テストパターンデータ１１３を読み込み、その記述にしたがって、シミュレーションテストの条件を各仮想サーバ配下の車両制御ソフトウェアに指示する。
【００３５】
（図４：ステップＳ４０５〜Ｓ４０７）
各仮想サーバは、ステップＳ４０４で指定されたシミュレーションテストの条件にしたがって車両制御ソフトウェアを実行し、シミュレーションテストを実施する（Ｓ４０５）。各仮想サーバは、シミュレーションテストの結果をデータ保存用ストレージ１３０に格納する（Ｓ４０６）。全てのテスト項目を完了した場合は本処理フローを終了し、テスト項目が残っている場合はステップＳ４０５に戻って同様の処理を繰り返す（Ｓ４０７）。
【００３６】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係る車両制御シミュレーションシステム１００は、車両制御ソフトウェアまたはプラントモデル毎に仮想サーバを設け、車両制御シミュレーションを実行するために必要になる仮想サーバを起動して、その配下で車両制御ソフトウェアを実行させる。これにより、シミュレーションの計算負荷を仮想サーバ間で自由に分散することができる。また、シミュレーションのパフォーマンスが向上して、車両制御ソフトウェアのロジック検証を効率よく実施することができる。
【００３７】
また、本実施形態１に係る車両制御シミュレーションシステム１００によれば、必要になるコンピュータリソースに応じて仮想サーバを追加・削除することにより、コンピュータリソース不足による影響を抑えることができる。さらには、各工程で必要になる車両制御ソフトウェア等を実行する仮想サーバのみを起動すればよいので、工程毎にコンピュータを構成する必要がなくなり、シミュレーション環境を柔軟に構成することができる。
【００３８】
＜実施の形態２＞
実施形態１では、各仮想サーバが実行すべき車両制御ソフトウェアおよびプラントモデルを、モデル割当定義データ１１２の記述にしたがって管理用コンピュータ１１０が指示することとした。一方、各仮想サーバが実行すべき車両制御ソフトウェアおよびプラントモデルを、はじめから各仮想サーバの配下に配置しておくこともできる。
【００３９】
例えば、仮想サーバを構成するサーバイメージデータ内に、その仮想サーバが実行する車両制御ソフトウェアおよびプラントモデルをインストールしておくことが考えられる。各仮想サーバは、インストールされている車両制御ソフトウェアおよびプラントモデルを実行するように構成しておく。
【００４０】
これにより、シミュレーション実行サーバ１２０がサーバイメージデータを読み出して仮想サーバを実行すると、その工程において必要になる車両制御ソフトウェアなどがセットになって併せて読み出されることになる。車両制御ソフトウェアが複数のプラントモデルを用いる場合は、その対応関係をモデル割当定義データ１１２に記述しておき、管理用コンピュータ１１０が仮想サーバを起動する際に各仮想サーバに読み込ませるようにすればよい。
【００４１】
上記のように各仮想サーバを構成しておけば、管理用コンピュータ１１０は各仮想サーバとその配下で実行する車両制御ソフトウェアおよびプラントモデルの割当関係を管理する必要がなくなり、各シミュレーション工程で必要になる仮想サーバを起動して配下の制御ソフトウェア等を実行するよう指示すれば済むので、シミュレーション工程の管理を簡易化することができる。
【００４２】
＜実施の形態３＞
図５は、シミュレーション実行サーバ１２０がシミュレーションを実行しているときの各車両制御ソフトウェアおよびプラントモデルの動作を示すタイミングチャートである。各車両制御ソフトウェアおよびプラントモデルは、車両の異なる機能部とその制御処理を記述したものであるため、実際の車両の動作に合わせて実行周期がそれぞれ異なる。
【００４３】
シミュレーション実行管理プログラム１１１は、各仮想サーバが実行する車両制御ソフトウェアおよびプラントモデルの動作タイミングを合わせるため、各仮想サーバのクロックを同期させる。また、各車両制御ソフトウェアまたはプラントモデルの動作結果を他の仮想サーバ配下の車両制御ソフトウェアおよびプラントモデルが使用する場合は、これらの間でシミュレーション結果を互いに授受できるように、通信を仲介する。
【００４４】
これにより、各仮想サーバ配下の車両制御ソフトウェアおよびプラントモデルの実行タイミングがそれぞれ異なる場合でも、各仮想サーバが車両制御シミュレーションを同時並行的に実行しつつ、シミュレーション結果をリアルタイムに相互利用することができる。
【符号の説明】
【００４５】
１００：車両制御シミュレーションシステム、１１０：管理用コンピュータ、１１１：シミュレーション実行管理プログラム、１１２：モデル割当定義データ、１１３：テストパターンデータ、１２０：シミュレーション実行サーバ、１２０ａ〜１２０ｉ：仮想サーバ、１３０：データ保存用ストレージ、１４０：システム用ストレージ、１５０：ネットワーク。
【図１】
2012234260.tif 000003
【図２】
2012234260.tif 000004
【図３】
2012234260.tif 000005
【図４】
2012234260.tif 000006
【図５】
2012234260.tif 000007