(57)【特許請求の範囲】
【請求項１】
第１〜第Ｎ（Ｎは２以上の整数）の複数の要素シミュレータを連携させて、第１の要素シミュレータの計算結果に基づいて第２の要素シミュレータが計算を行い、第２の要素シミュレータの計算結果に基づいて第３の要素シミュレータが計算を行い、・・・、第Ｎ−１の要素シミュレータの計算結果に基づいて第Ｎの要素シミュレータが計算を行ってシミュレーション結果を得る統合シミュレータであって、
前記第１の要素シミュレータは、タイムステップｔにおけるシミュレーション結果を、タイムステップｔ−ｎ（ｎは２以上の整数）以前の前記第１〜第Ｎの要素シミュレータの結果に基づいて求めるものであり、
前記統合シミュレータは、タイムステップｔまでのシミュレーションが完了している際に、タイムステップｔ＋１，ｔ＋２，・・・、ｔ＋ｎのシミュレーション計算を並列に実行する
ことを特徴とする統合シミュレータ。
【請求項２】
前記第１〜第Ｎの要素シミュレータはそれぞれ個別のコンピュータシステムにおいて実行されるものである
ことを特徴とする請求項１に記載の統合シミュレータ。
【請求項３】
それぞれが前記第１〜第Ｎの要素シミュレータを実行可能なｎ個のコンピュータシステムを有しており、前記ｎ個のシミュレーションを前記ｎ個のコンピュータシステムにおいて並列して実行する
ことを特徴とする請求項１に記載の統合シミュレータ。
【請求項４】
車両の移動を模擬し、各時刻での車両位置を求める交通流シミュレータと、
車両の位置を入力として、ＩＴＳアプリケーションの動作を模擬し、ＩＴＳアプリケーションが車両動作に与える影響を求めるＩＴＳシミュレータと、
を備え、
交通流シミュレータによる車両位置の結果に基づいてＩＴＳアプリケーションが車両動作に与える影響を求め、該影響を交通流シミュレータに反映して車両動作を模擬することを繰り返して車両の動作を模擬する統合シミュレータであって、
前記交通流シミュレータは、タイムステップｔにおける車両位置を、タイムステップｔ−ｎ（ｎは２以上の整数）以前の前記交通流シミュレータおよび前記ＩＴＳシミュレータの結果に基づいて求めるものであり、
前記統合シミュレータは、タイムステップｔまでのシミュレーションが完了している際に、タイムステップｔ＋１，ｔ＋２、・・・、ｔ＋ｎにおける車両の位置およびＩＴＳが車両動作に与える影響を求めるｎ個のシミュレーションを並列に実行する
ことを特徴とする統合シミュレータ。
【請求項５】
前記ｎは、ｎタイムステップが、ＩＴＳアプリケーションが車両動作に影響を与える動作を行ってから、実際に車両動作に影響が出るまでの時間よりも小さくなるように定められる
ことを特徴とする請求項４に記載の統合シミュレータ。
【請求項６】
前記ＩＴＳシミュレータは、複数の要素シミュレータから構成され、
前記交通流シミュレータおよび前記複数の要素シミュレータは、それぞれ個別のコンピュータシステムにおいて実行される
ことを特徴とする請求項４または５に記載の統合シミュレータ。
【請求項７】
前記統合シミュレータは、それぞれが前記交通流シミュレータと前記ＩＴＳシミュレー
タとを実行可能なｎ個のコンピュータシステムを有しており、前記ｎ個のシミュレーションを前記ｎ個のコンピュータシステムにおいて並列して実行する
ことを特徴とする請求項４または５に記載の統合シミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のシミュレータを統合してシミュレーションを行う統合シミュレータに関し、特に統合シミュレータにおける各要素シミュレータの連携方法に関する。
【背景技術】
【０００２】
ＩＴＳ（Intelligent Transport System）として、路車間通信や車車間通信などを用いた様々なアプリケーションが検討されている。ＩＴＳアプリケーションの動作検証のためには、現実の交通環境下で数十〜数百台の車両を用いた実証実験を行う必要がある。このような実証実験は非常に大がかりでコストを要する。開発の最終段階ではこのような手法による検証が必要であるが、開発初期段階からこのような検証を頻繁に行うことは現実的ではない。そこで、計算機を用いたシミュレーションによるＩＴＳアプリケーションの検証が不可欠となる。
【０００３】
通信を利用するＩＴＳアプリケーションを評価するためには、ＩＴＳアプリケーションシミュレーションに、各時刻における車両位置を決定するミクロ交通流シミュレーション、送信機器と受信機器の通信可能性を評価する電波伝搬シミュレーション、通信による情報が伝達可能かを評価するネットワークシミュレーションを組み合わせる必要がある。本発明者らは、それぞれの要素シミュレータと通信する統合プラットフォームを開発し、各要素シミュレータの選択や交換が可能な疎結合アーキテクチャの統合シミュレーションシステムを開発している（図１参照）。
【０００４】
上記の統合シミュレーションにおいては、まず、交通流シミュレータが時刻ｔ（ｎ）の車両位置を計算する。この計算結果を利用して通信シミュレータ（電波伝搬シミュレータとネットワークシミュレータ）において、各車両間の通信をシミュレーションする。そして、通信結果を利用してＩＴＳアプリケーションの動作をシミュレーションする。この結果を用いて、時刻ｔ（ｎ＋１）の車両位置を交通流シミュレータによって求める。以下、この処理が繰り返される。このように、従来の統合シミュレーションにおいては、個々の要素シミュレータの結果を利用して他の要素シミュレータが直列的に処理を行って、シミュレーションが実施される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３５０５４９号公報
【特許文献２】特開２００４−３８７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のようなシミュレーションは計算量が膨大になるため、計算機資源を効率的に使用して高速に計算できることが望まれる。本発明は、複数のシミュレータを統合してシミュレーションを行う統合シミュレータにおいて、実行効率を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明では、複数のシミュレータを統合した統合シミュレーションを以下の手段または処理によって行う。
【０００８】
本発明に係る統合シミュレータは、第１〜第Ｎ（Ｎは２以上の整数）の複数の要素シミュレータを連携させて、第１の要素シミュレータの計算結果に基づいて第２の要素シミュ
レータが計算を行い、第２の要素シミュレータの計算結果に基づいて第３の要素シミュレータが計算を行い、・・・、第Ｎ−１の要素シミュレータの計算結果に基づいて第Ｎの要素シミュレータが計算を行ってシミュレーション結果を得る統合シミュレータである。本発明において、第１の要素シミュレータは、タイムステップｔにおけるシミュレーション結果を、タイムステップｔ−ｎ（ｎは２以上の整数）以前の第１〜第Ｎの要素シミュレータの結果に基づいて求めるものである。そして、本統合シミュレータにおいては、タイムステップｔまでのシミュレーションが完了している際には、タイムステップｔ＋１，ｔ＋２，・・・、ｔ＋ｎのシミュレーション結果を並列に実行する。
【０００９】
本発明に係る統合シミュレータは、要素シミュレータとして交通流シミュレータとＩＴＳシミュレータとを採用し、ＩＴＳアプリケーションを模擬するシミュレータとして構成することができる。交通流シミュレータは、いわゆる交通マイクロシミュレータであり、車両の移動を模擬し、各時刻での車両位置を求める。また、ＩＴＳシミュレータは、ＩＴＳアプリケーションの動作を模擬し、ＩＴＳアプリケーションが車両動作に与える影響を求める。なお、ＩＴＳシミュレータは、さらに複数の要素シミュレータから構成されても構わない。たとえば、ＩＴＳシミュレータは、通信機間の通信可能性を評価する電波伝搬シミュレータ、通信による情報が伝達可能かを評価するネットワークシミュレータ、ＩＴＳアプリケーションの動作を模擬するＩＴＳアプリケーションシミュレータから構成されても良い。そして、本統合シミュレータは、各時刻における車両位置を交通流シミュレータによって求め、その結果に基づいて、同時刻におけるＩＴＳアプリケーションが車両動作に与える影響を求め、さらに、その結果を交通流シミュレータに反映して次の時刻における車両動作を模擬する。この処理を繰り返して、本統合シミュレータは車両の動作を模擬する。
【００１０】
ここで交通流シミュレータは、タイムステップｔにおける車両位置を、タイムステップｔ−ｎ（ｎは２以上の整数）以前の交通流シミュレータおよびＩＴＳシミュレータの結果に基づいて求める。そして、タイムステップｔまでの交通流シミュレータおよびＩＴＳシミュレータの計算が終わっているときには、タイムスタップｔ＋１、ｔ＋２、・・・、ｔ＋ｎにおける車両位置およびその車両位置におけるＩＴＳアプリケーションの動作を、並列に求める。
【００１１】
上記のように、交通流シミュレータはｎタイムステップ前よりも古い情報だけに基づいて車両の位置を求めているので、タイムステップｔまでの計算が完了している場合には、上記ｎ個（タイムステップｔ＋１、ｔ＋２、・・・、ｔ＋ｎ）についてのシミュレーションを並列して行うことができる。このように、並列して計算を行うことで、１タイムステップ分の全シミュレータによる計算が終了する前に他の計算を行うことができる。したがって、計算機資源を効率的に活用することができ、シミュレーションの実行効率を向上できる。
【００１２】
交通流シミュレータはタイムステップｔの車両位置を求める際に、タイムステップｔ−ｎ以前の情報だけしか用いていないため、直近のｎタイムステップの情報を利用することができない。しかしながら、ＩＴＳアプリケーションが動作を開始してから車両の動作に影響を与えるまでにはタイムラグが発生する。したがって、上述のｎタイムステップが、このタイムラグよりも小さくなるように定めておけば、シミュレーションの精度を悪化させることなく、実行効率を向上させることができる。
【００１３】
本発明において、ＩＴＳシミュレータは上述したように複数の要素シミュレータから構成されても良い。この場合、交通流シミュレータと、ＩＴＳシミュレータを構成する各要素シミュレータ（たとえば、電波伝搬シミュレータ、ネットワークシミュレータ、ＩＴＳアプリケーションシミュレータ）をそれぞれ個別のコンピュータシステムで実行すること
が好ましい。このようにすれば、上記のｎ個のシミュレーションをパイプライン並列処理することができる。なお、個別のコンピュータシステムには、物理的に異なるコンピュータシステムだけでなく、仮想化技術を用いて１台のコンピュータ上で実行される複数の仮想マシンも含まれる。
【００１４】
また、本発明において、ｎ個のコンピュータシステムを用意し、それぞれが上記の交通流シミュレータおよびＩＴＳシミュレータを実行可能としても良い。この場合は、ｎ個のコンピュータシステムが並列して動作することで、上記ｎ個のシミュレーションを並列に処理される。
【００１５】
なお、本発明は、上記手段の少なくとも一部を有する統合シミュレータとして捉えることができる。また、本発明は、上記処理の少なくとも一部を含む統合シミュレータ用いたシミュレーション方法、または、このような方法を実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００１６】
本発明によれば、複数のシミュレータを統合してシミュレーションを行う統合シミュレータにおいて、実行効率が向上する。
【図面の簡単な説明】
【００１７】
【図１】疎結合アーキテクチャによる統合シミュレータのシステム構成を示す図。
【図２】第１の実施形態における統合シミュレータの構成図。
【図３】第１の実施形態における要素シミュレータの連携を示す図。
【図４】ＩＴＳアプリケーションの動作が、車両動作に影響を与えるまでの遅延時間を説明する図。
【図５】第１の実施形態における統合シミュレーションプラットフォームの処理の流れを示すフローチャート。
【図６】第２の実施形態における統合シミュレータの構成図。
【図７】従来の手法による要素シミュレータの連携を示す図。
【発明を実施するための形態】
【００１８】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【００１９】
図１は、要素シミュレータを連携させて、通信を利用したＩＴＳアプリケーションを評価可能な統合シミュレータの機能構成を示す図である。複数の要素から現象をシミュレーションする場合は、それぞれの要素シミュレータを内部で密に組み合わせる方式もあるが、本発明においてはそれぞれ単体で動作する要素シミュレータを疎に結合する方式を採用している。疎結合アーキテクチャは、統合シミュレーションプラットフォーム（以下、ＩＳＰとも表記する）１を用意し、各要素シミュレータを通信により結合する。このような方式を採用する理由は、評価目的に応じて、要素シミュレータを適宜選択・交換可能とするためである。
【００２０】
本発明に係る統合シミュレータは、ＩＳＰ１によって交通流シミュレータ９、ネットワークシミュレータ１０、電波伝搬シミュレータ１１、ＩＴＳアプリケーションシミュレータ１２を要素シミュレータとして用いる。交通流シミュレータ９は、車両の移動を模擬して、各時刻の車両を決めるミクロ交通流シミュレータである。ネットワークシミュレータ１０は、通信によって情報が伝達できるかを評価する。電波伝搬シミュレータ１１は、車両の位置が刻々と変化する各時点において、車両間あるいは車両と路側通信設備との間で通信が可能か否かを評価する。ＩＴＳアプリケーションシミュレータ１２は、車載機器や
路側設備のＩＴＳアプリケーションの動作を評価する。なお、ネットワークシミュレータ１０と電波伝搬シミュレータ１１をあわせて、無線通信を評価する通信シミュレータと捉えることもできる。また、ネットワークシミュレータ１０と電波伝搬シミュレータ１１とＩＴＳアプリケーションシミュレータ１２をあわせて、無線通信を利用したＩＴＳシステムを評価するＩＴＳシミュレータと捉えることもできる。
【００２１】
ＩＳＰ１は、各要素シミュレータの連携を管理する全体管理モジュール２と、各要素シミュレータを制御する各種コントローラ（交通流コントローラ３、ネットワークコントローラ４、電波伝搬コントローラ５、ＩＴＳアプリケーションコントローラ６）を有する。ＩＳＰ１は、各要素シミュレータの各タイムステップにおける状態を記憶する状態データ記憶部７、シミュレーションにおいて発生するイベント（たとえば、ドライバによる急制動、ＩＴＳアプリケーションによる衝突回避制御の開始、通信の発生など）を記憶するイベントデータ記憶部８を備える。
【００２２】
全体管理モジュール２は、シミュレーション開始時刻、終了時刻、１タイムステップの時間などを含むシミュレーションパラメータ１３を受け付けてシミュレーションを開始する。全体管理モジュール２は、状態データ記憶部７に格納されている状態データや、イベントデータ記憶部８に格納されているイベントデータ、地図・地形データベース１４に格納されている地図・地形データを、コントローラ経由で各要素シミュレータに渡して、要素シミュレーションを実行させて、その結果を受け取る。要素シミュレータによる計算結果は、状態データ記憶部７やイベントデータ記憶部８に記憶される。なお、コントローラと各要素シミュレータの間には、要素シミュレータごとの差異を吸収するためのインタフェース９ａ，１０ａ，１１ａ，１２ａが設けられており、要素シミュレータを修正することなく利用可能である。
【００２３】
このような統合シミュレータを用いた従来の計算のフローを図７を参照して説明する。まず、初期値（時刻ｔ（０）での各種状態）を交通流シミュレータ９に渡して、時刻ｔ（１）での各車両の位置を算出する。なお、時刻ｔ（ｉ）はシミュレーション内での論理時刻であり、ｉ番目のタイムステップを表す。次に、算出したｔ（１）での車両位置を入力として受け付けて、通信のシミュレーションを実行する。通信のシミュレーションは、ネットワークシミュレータ１０によってレイヤー７からレイヤー１までのシミュレーションを行い、電波伝搬シミュレータ１１によって電波伝搬のシミュレーションを行い、再度ネットワークシミュレータ１０によってレイヤー１からレイヤー７までのシミュレーションを行うことで行われる。図７では、ネットワークシミュレータ１０と電波伝搬シミュレータ１１とをあわせて、通信シミュレータと表している。もっとも、両シミュレータ間でのデータのやりとりは直接行われるのではなく、上述したようにＩＳＰ１を介して行われる。次に、時刻ｔ（１）での通信のシミュレーション結果に基づいて、ＩＴＳアプリケーションシミュレータ１２によって、ＩＴＳアプリケーションの動作を模擬する。ここで、たとえば、警告や衝突回避制御を行うことが判断されると、その影響が次タイムステップ以降の車両動作に影響を与えることになる。ここまでの処理により時刻ｔ（１）までのシミュレーションが完了したことになる。以降は、ｔ（１）の各要素シミュレータの計算結果に基づいて、再度交通流シミュレータ、通信シミュレータ、ＩＴＳアプリケーションシミュレータを順次実行することを繰り返して、シミュレーションを行っていく。
【００２４】
ここで、各要素シミュレータを順次実行させていく図７に示すような手法では、シミュレータごとに空き時間（実行していない時間）が大量に発生するという問題がある。図７において３つの要素シミュレータによる１タイムステップ分の計算時間が同じである場合には、空き時間が２／３となる。より効率的に実行するには、各シミュレータでの空き時間を少なくすることが望ましい。
【００２５】
本発明では、交通流シミュレータ（マイクロシミュレータ）において、十分に小さな時間刻み（タイムステップ）でシミュレーションを行っているときに、１タイムステップごとの結果を反映して次タイムステップのシミュレーションを実行するのではなく、複数タイムステップごとに前回の計算結果を反映させることで、実行効率を引き上げる。具体的には、時刻ｔ（ｉ）の車両位置を交通流シミュレータ９において求める際に、時刻ｔ（ｉ−ｎ）以前の各要素シミュレータの計算結果のみを利用する。ここで、ｎは２以上の整数である。したがって、時刻ｔ（ｉ）までの各要素シミュレータの計算が終了しているときには、ｔ（ｉ−ｎ＋１）までの結果に基づいてｔ（ｉ＋１）での車両位置、ｔ（ｉ−ｎ＋２）までの結果に基づいてｔ（ｉ＋２）での車両位置、・・・、ｔ（ｉ）までの結果に基づいてｔ（ｉ＋ｎ）での車両位置を求めるｎ個のシミュレーションを並列に実行することができる。
【００２６】
統合シミュレータシステムを具体的にどのように構成するかは、いくつかの手法が考えられる。
【００２７】
（第１の実施形態）
第１の手法は、図２に示すように、ＩＳＰおよび各要素シミュレータを、個別のコンピュータシステムに配置する手法である。ここでは、ネットワークを介して接続されたコンピュータシステム３０，３１，３２，３３のそれぞれに、ＩＳＰ１、交通流シミュレータ９、ネットワークシミュレータ１０及び電波伝搬シミュレータ１１，ＩＴＳアプリケーションシミュレータ１２をインストールしている。なお、各コンピュータシステム３０〜３３はそれぞれ１つのみのコンピュータで構成される必要はなく、複数のコンピュータから構成されるものであっても良い。すなわち、それぞれのシミュレータが独立したシステムで実行されていればよい。
【００２８】
このような構成を採用した場合の計算のフローを図３を参照して説明する。ここでは、ｎ＝２として、２つのシミュレーションを並列に実行している。まず、ｔ（ｉ−２）までのシミュレーション結果に基づいて、交通流シミュレータによってｔ（ｉ）の車両位置を求める。このｔ（ｉ）の車両位置を入力として受け付けて、通信のシミュレーションおよびＩＴＳアプリケーションのシミュレーションを行う点は上記従来の手法と同様である。ここで、交通流シミュレータによってｔ（ｉ）の車両位置の計算が完了した時点で交通流シミュレータが利用可能になるので、ＩＳＰ１は交通流シミュレータにｔ（ｉ−１）までのシミュレーション結果に基づいてｔ（ｉ＋１）での車両位置を計算させる。このように、ＩＴＳアプリケーションシミュレータによるシミュレーション結果を、１タイムステップ後の交通流シミュレーションに反映させるのではなく、ｎ（図３ではｎ＝２）タイムステップ後の交通流シミュレーションに反映させるため、パイプライン処理的にｎ個のシミュレーションを並列に実行できる。なお、図２では、要素シミュレータが３つのコンピュータシステムによって実行されているので、最大で３つのタイムステップに関するシミュレーションを並列に実行可能である。
【００２９】
なお、ＩＴＳアプリケーションシミュレーションの結果をｎタイムステップより後のシミュレーションのみに反映させるために、シミュレーション精度の低下が懸念される。この点について説明する。ＩＴＳアプリケーションは、ドライバに対して衝突の警告を発したり、車両の制御に介入したりする。しかしながら、衝突の警告を発してから、実際の車両が減速動作を開始するまでには所定の遅延がある。図４はＩＴＳアプリケーションの実行から車両動作に影響が出るまでの遅延時間を説明する図である。時刻ｔＡで、２台の車両が接近し衝突の危険があることが路車間通信や車車間通信で判明し、ＩＴＳアプリケーション（車載機器）がドライバに警告を発した状況を考える。警告が報知されてから、ドライバがこの警告を認識し反応するまでの時間（反射時間）、アクセルからブレーキに足を踏み換える時間（踏替時間）、ブレーキを踏み込んでから実際にブレーキが効き始める
までの時間（踏込時間）の後に実際にブレーキが効き始めて車両動作に影響が現れる。これらの時間は個人によって差はあるものの、概ね、反射時間が０．４秒程度、踏替時間が０．２秒程度、踏込時間が０．１〜０．３秒であり、合計０．８秒程度の空走時間が生じる。したがって、ＩＴＳアプリケーションの動作を直後の交通流シミュレーションに反映させる必要はない。シミュレーションのタイムステップを１００ミリ秒（＝０．１秒）、つまり上記の遅延時間（空走時間）よりも十分短くしている場合には、ＩＴＳアプリケーションの動作を数ステップ後の交通流シミュレーションに反映させれば精度の低下はない。ここで、上記のｎは、ｎタイムステップが上記遅延時間（ＩＴＳアプリケーションが動作してから、それが車両動作に影響を与えるまでの時間）よりも短く設定しておけば、シミュレーション精度低下の問題は発生しない。なお、ＩＴＳアプリケーションが自動制御を行い人間の操作が介入しない場合であっても、車両動作までに影響が出るまでには時間を要する。たとえば、ＩＴＳアプリケーションが車両のブレーキを自動で行う場合であっても、実際にブレーキが効き始めるには上記踏込時間と同程度の時間を要する。
【００３０】
本実施形態におけるＩＳＰ（統合シミュレーションプラットフォーム）１の動作を、図５のフローチャートを参照して説明する。このフローチャートは、ｎ＝２の場合を例に説明している。まず、ＩＳＰ１が、時刻ｔ（ｉ）までのシミュレーションが終了したことを検知すると、ｔ（ｉ）の状態データ（車両位置等）やイベントデータを交通流シミュレータに渡して、交通流シミュレーションを実行させる（Ｓ１０１）。交通流シミュレータは、ｔ（ｉ）までの実行結果に基づいてｔ（ｉ＋２）の車両位置を求め、ＩＳＰ１に送信する（Ｓ１０２）。ＩＳＰ１は、ｔ（ｉ＋２）の車両位置を状態管理データ記憶部に格納する（Ｓ１０３）とともに、この車両位置を通信シミュレータに渡す（Ｓ１０４）。通信シミュレータは、ｔ（ｉ＋２）での車両位置における通信を模擬し、その結果をＩＳＰ１に送信する（Ｓ１０５）。ＩＳＰ１は、ｔ（ｉ＋２）における通信結果を状態管理データ記憶部に格納する（Ｓ１０６）とともに、この結果をＩＴＳアプリケーションシミュレータに渡す（Ｓ１０７）。ＩＴＳアプリケーションシミュレータは、ｔ（ｉ＋２）における通信結果に基づいてＩＴＳアプリケーションの動作を模擬し、ＩＳＰ１に渡す（Ｓ１０８）。ＩＳＰ１は、ＩＴＳアプリケーションの動作が車両動作に影響を与える時刻を求めて、その時刻と車両動作に与える影響の内容とを、イベントデータ記憶部に格納する（Ｓ１０９）。たとえば、「ｔ（ｉ＋９）から車両が減速する」という情報を記憶しても良いし、「ｔ（ｉ＋７）からドライバがブレーキを作動させる」という情報を記憶しても良い。ＩＴＳアプリケーションの動作が車両動作に影響を与えるまでの遅延時間は、ＩＴＳアプリの動作ごとにあらかじめ定めておいても良いし、ドライバごとに変化させるために交通流シミュレータが有するドライバモデルを参照して決定しても良い。
【００３１】
なお、ｎ個のシミュレーションを並列して実行しているため、並列に実行されるｎ個のシミュレーション列のそれぞれでＩＴＳアプリケーションが作動すると計算される場合がある。しかしながら、実際にはそのような車両動作に影響を与えるイベントの発生は１回のみであるため、複数回同じイベントを処理しないための仕組みが必要である。ここでは、たとえば、ｔ（ｉ）でイベント（たとえば、警告の報知、運転への介入）が発生した場合に、ＩＳＰ１の共有データベースに、ｔ（ｉ）で当該イベントが発生した旨のフラグを格納する。このフラグは、所定のタイムステップ（たとえば、ｎタイムステップ）後までの同一イベントの発生を禁止することを示すフラグである。ＩＴＳアプリケーションシミュレータは、ＩＴＳアプリケーション動作の模擬の後、共有データベースを参照して直近のｎタイムステップ以内にフラグが立っていないか検査してから、フラグが立っていない場合のみイベントデータをイベントデータ記憶部に格納する。直近のｎタイムステップ以内にフラグが立っている場合は、イベントデータの格納を行わない。このようにすれば、並列に実行されるシミュレーション列のそれぞれで連続して同じイベントが発生することを防ぐことができる。
【００３２】
ｔ（ｉ）についてのシミュレーションが終了するたびに、ｔ（ｉ＋ｎ）のシミュレーションを開始しているので、結局ｎ個のシミュレーションが同時に並列して実行されることになる。なお、シミュレーション開始時点においては、直近ｎタイムステップ分の結果が得られていないので並列処理を実行できない。そこで、シミュレーション開始直後のｎタイムステップ分に関しては、たとえば従来と同様の手法によって結果を得てから、上述したようにｎ個のシミュレーションを行えばよい。
【００３３】
このように、統合シミュレータはｎ個（ここではｎ＝２）のシミュレーションが並列に実行される。したがって、図３に示すように３つのシミュレータの空き時間を１／３まで減少させて、効率的に演算資源を用いたシミュレーションが実行できる。
【００３４】
（第２の実施形態）
統合シミュレータの具体的構成例の第２の手法について、図６を参照して説明する。本実施形態では、ＩＳＰ１が配置されたコンピュータシステム４０と、それぞれ、交通流シミュレータ９、ネットワークシミュレータ１０、電波伝搬シミュレータ１１、ＩＴＳアプリケーションシミュレータ１２が配置された３個のコンピュータシステム４１、４２、４３から構成される。なお、ここでｎ＝３の場合を例にして説明しているので、３台のコンピュータシステムが用いられている。
【００３５】
本実施形態においては、各コンピュータシステムが全ての要素シミュレータを備えているため、ｎ個のシミュレーションを完全に並行に実施することができる。本実施形態によっても、上記第１の実施形態と同様の効果が得られる。さらに、パイプライン的な並列処理では問題が生じうるハードウェア資源の競合の問題も起こらない。さらに、コンピュータシステムを増やすことで、並列実行するシミュレーションの数を容易に増やせる。もっとも、第１の実施形態で説明したようにｎ×１タイムステップの論理時間が、ＩＴＳアプリケーションが車両動作に影響を与える遅延時間以内となるようにする必要がある。
【００３６】
（その他）
上記の説明では、シミュレーション開始直後のｎタイムステップ以外は、常にｎ個のシミュレーションが並列に実行されるものとして説明した。しかしながら、必ずしも常にｎ個のシミュレーションを並列に実行しなくても構わない。たとえば、ＩＴＳアプリケーションの動作が車両動作に重大な影響を与える場合は、シミュレーション開始時と同様に並列化せずに計算するようにしても良い。より具体的には、タイムステップｔ（ｉ）において特定のイベントが発生した場合には、ＩＳＰ１は、並列処理によって求められているタイムステップｔ（ｉ＋１）以降の計算結果を破棄する。そして、タイムステップｔ（ｉ）の計算結果を基に、各要素シミュレータを連携してｔ（ｉ＋１）の計算結果を求める。さらに、１タイムステップずつｎタイムステップ分の計算を実行する。タイムステップｔ（ｉ＋ｎ−１）までの計算結果が得られたら、ｎ個のシミュレーション列を並列に動作させる処理（図５のフローチャート）を再開する。
【００３７】
このようにすることで、重大なイベントが発生した場合のシミュレーション精度を向上させることができる。このような計算動作を行う場合、並列実行に伴う処理の効率化の効果が得られなくなるが、交通流マイクロシミュレーションにおいては重大なイベントが発生しない状況がほとんどである。どのようなイベントが発生したときに再計算を行うかの定義にもよるが、車両動作に大きく影響を与えるようなイベントの発生は１％以下である。したがって、９９％以上の確率でシミュレーションの並列化が行え、従来の手法と比べて効率的な処理が実現可能である。
【００３８】
また、上記の説明では複数のコンピュータが連携して統合シミュレータを構成する例を用いているが、たとえば、複数のプロセッサコアを有するコンピュータで上記統合シミュ
レータを構成しても構わない。ここで「複数のプロセッサコア」は、１つのＣＰＵが複数のプロセッサコアを有する場合、複数のＣＰＵを有する場合、１つのプロセッサコアを論理的に複数のプロセッサコアとして扱う場合（たとえば、インテル社のハイパースレッディング・テクノロジー）および、これらの組み合わせが考えられる。このようなマルチコア環境において複数の仮想マシンを構築して統合シミュレータを構成しても良い。
【００３９】
また、上記の説明では、疎結合アーキテクチャを採用した統合シミュレータを例に説明しているが、本発明は各要素シミュレータを内部で密に組み合わせる密結合アーキテクチャの統合シミュレータに対しても用いることが可能である。
【符号の説明】
【００４０】
１    統合シミュレーションプラットフォーム（ＩＳＰ）
２    全体管理モジュール
９    交通流シミュレータ
１０  ネットワークシミュレータ
１１  電波伝搬シミュレータ
１２  ＩＴＳアプリケーションシミュレータ
【図１】
0005401275.tif 000002
【図２】
0005401275.tif 000003
【図３】
0005401275.tif 000004
【図４】
0005401275.tif 000005
【図５】
0005401275.tif 000006
【図６】
0005401275.tif 000007
【図７】
0005401275.tif 000008