(57)【要約】【課題】対象システムのシミュレーションの並列処理において並列化による誤差が生じないシミュレーション装置を提供する。【解決手段】シミュレーションの対象システムを表現した演算モデルを実行するシミュレーション装置であって、演算モデルに含まれる第１の演算処理を実行するものであって、積分演算の結果である第１積分値を出力する第１プロセッサと、演算モデルに含まれる第１の演算処理とは異なる第２の演算処理を実行するものであって、積分演算の結果である第２積分値を出力する第２プロセッサと、を備え、第１プロセッサは、第１の演算処理を繰り返し実行し、第２プロセッサは、第２の演算処理を繰り返し実行し、第１プロセッサは、第２積分値を入力として、第１積分値と第２積分値とを用いた演算を実行し、第２プロセッサは、第１積分値を入力として、第１積分値と第２積分値とを用いた演算を実行し、第１プロセッサによる第１の演算処理と、第２プロセッサによる第２の演算処理とを、並列実行する。【選択図】図１
2018005318.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションの対象システムを表現した演算モデルを実行するシミュレーション装置であって、
前記演算モデルに含まれる第１の演算処理を実行するものであって、積分演算の結果である第１積分値を出力する第１プロセッサと、
前記演算モデルに含まれる前記第１の演算処理とは異なる第２の演算処理を実行するものであって、積分演算の結果である第２積分値を出力する第２プロセッサと、を備え、
前記第１プロセッサは、前記第１の演算処理を繰り返し実行し、
前記第２プロセッサは、前記第２の演算処理を繰り返し実行し、
前記第１プロセッサは、前記第２積分値を入力として、前記第１積分値と前記第２積分値とを用いた演算を実行し、
前記第２プロセッサは、前記第１積分値を入力として、前記第１積分値と前記第２積分値とを用いた演算を実行し、
前記第１プロセッサによる前記第１の演算処理と、前記第２プロセッサによる前記第２の演算処理とを、並列実行するシミュレーション装置。
【請求項２】
前記第１プロセッサは、前記第１積分値を出力すると、前記第２プロセッサと同期処理を行い、
前記第２プロセッサは、前記第２積分値を出力すると、前記第１プロセッサと同期処理を行い、
前記同期処理が終了すると、前記第１プロセッサは、前記第２積分値を受け取って、前記第１積分値と前記第２積分値とを用いた演算を行い、
前記同期処理が終了すると、前記第２プロセッサは、前記第１積分値を受け取って、前記第１積分値と前記第２積分値とを用いた演算を行うことを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記第１の演算処理は、最初に前記第１積分値と前記第２積分値とを用いた演算を行い、最後に、前記積分演算を実行する演算処理であることを特徴とする請求項１又は２に記載のシミュレーション装置。
【請求項４】
前記第２の演算処理は、最初に前記第１積分値と前記第２積分値とを用いた演算を行い、最後に、前記積分演算を実行する演算処理であることを特徴とする請求項１〜３のいずれか１項に記載のシミュレーション装置。
【請求項５】
前記第１プロセッサが実行する前記第１積分値と前記第２積分値とを用いた演算と、前記第２プロセッサが実行する前記第１積分値と前記第２積分値とを用いた演算とは、同一の演算であることを特徴とする請求項１〜４のいずれか１項に記載のシミュレーション装置。
【請求項６】
前記対象システムは、車両システムであり、
前記第１プロセッサは、前記車両システムに含まれるエンジン制御に係るシミュレーションを前記第１の演算処理として実行し、
前記第２プロセッサは、前記車両システムに含まれるトランスミッション制御に係るシミュレーションを前記第２の演算処理として実行し、
前記第１積分値と前記第２積分値とを用いた演算とは、前記エンジン制御に係るエンジンと、前記トランスミッション制御に係るトランスミッションとを接続するシャフトのシミュレーションに係る演算であることを特徴とする請求項１〜５のいずれか１項に記載のシミュレーション装置。
【請求項７】
前記シミュレーション装置は、さらに、
最後に積分演算を含み当該積分演算の結果である第３積分値を出力する前記演算モデルに含まれる第３の演算処理を実行する第３プロセッサを備え、
前記第３の演算処理は、前記第２積分値を入力として、前記第２積分値と前記第３積分値とを用いた演算を含み、
前記第２の演算処理は、さらに、前記第３積分値を入力として、前記第２積分値と前記第３積分値とを用いた演算を含み、
前記第１プロセッサ及び前記第２プロセッサは、それぞれ第１の演算処理と第２の演算処理とを並列実行することを特徴とする請求項６に記載のシミュレーション装置。
【請求項８】
前記第３プロセッサは、前記トランスミッションから先の前記車両の運動に係るシミュレーションを前記第３の演算処理として実行し、
前記第２積分値と前記第３積分値とを用いた演算は、前記トランスミッションと前記車両の運動系とを接続するシャフトのシミュレーションに係る演算であることを特徴とする請求項７に記載のシミュレーション装置。
【請求項９】
前記シミュレーション装置は、さらに、前記プロセッサ各々の演算結果を外部に出力する出力部を備えることを特徴とする請求項１〜８のいずれか１項に記載のシミュレーション装置。
【請求項１０】
シミュレーションの対象システムを表現した演算モデルのシミュレーション方法であって、
第１プロセッサが、前記演算モデルに含まれる第１の演算処理を行って、第１の演算処理に含まれる積分演算の結果である第１積分値を出力するステップと、
第２プロセッサが、前記演算モデルに含まれる第２の演算処理を行って、第２の演算処理に含まれる積分演算の結果である第２積分値を出力するステップと、
前記第１プロセッサと、前記第２プロセッサとが同期処理を行うステップと、
前記第１プロセッサが前記第１積分値と前記第２積分値とを入力として、次の第１の演算処理を実行するステップと、
前記第２プロセッサが前記第１積分値と前記第２積分値とを入力として、次の第２の演算処理を実行するステップと、を含み、
前記第１の演算処理と、前記第２の演算処理とは並列に実行されるシミュレーション方法。
【請求項１１】
シミュレーションの対象システムを表現した演算モデルをシミュレートするシミュレーションプログラムであって、
第１プロセッサと第２プロセッサとを備えるコンピュータに、
前記演算モデルに含まれる第１の演算処理であって、積分演算の結果である第１積分値を出力する第１の演算処理を前記第１プロセッサに実行させる機能と、
前記演算モデルに含まれる前記第１の演算処理とは異なる第２の演算処理であって、積分演算の結果である第２積分値を出力する第２の演算処理を前記第２プロセッサに実行させる機能と、
前記第１プロセッサと前記第２プロセッサとの間で同期処理を実行させる機能と、
前記第１プロセッサに前記第１積分値と前記第２積分値とを入力として、次の第１の演算処理を実行させる機能と、
前記第２プロセッサに前記第１積分値と前記第２積分値とを入力として、次の第２の演算処理を実行させる機能と、
前記第１の演算処理と前記第２の演算処理とを並列実行させる機能とを実現させるシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象システムの演算モデルを実行するシミュレーション装置に関し、特に、シミュレーションの並列化に関する。
【背景技術】
【０００２】
従来から、大規模のシミュレーションを行う場合、逐次処理によるシミュレーションを行うと、演算結果が出るまでに時間を要するという問題があった。そこで、そのシミュレーションを並列化することによる高速化が試みられている。
【０００３】
図１２には、車両シミュレーションの逐次処理を行った場合の演算イメージを示している。図１２において、１／Ｚは、バッファであり、車両シミュレーションからトランスミッションシミュレーションへのフィードバック値や、トランスミッションシミュレーションからエンジンシミュレーションへのフィードバック値を格納する。この逐次処理シミュレーションを並列化する場合に、エンジン系統、トランスミッション系統、車両系統で並列処理化することが考えられる。図１３には、図１２の車両シミュレーションを並列化した演算イメージを示している。図１３に示すように、車両シミュレーションの並列化にあたって第１プロセッサと第２プロセッサとの間や、第２プロセッサと第３プロセッサとの間にバッファを設けている。これにより、第２プロセッサが必要とする第１プロセッサの演算結果の伝達や、第３プロセッサが必要とする第２プロセッサの演算結果の伝達を行える。
【０００４】
特許文献１（特開２０１０−３３５６７号公報）には、並列処理を行うシミュレーション装置の一例が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−３３５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、図１３に示した並列システムの場合、プロセッサ間のデータ伝達による通信遅延に伴い、並列化誤差が発生するという問題があった。特に、図１３に示すようなフィードバック型のシステムの場合、その処理を繰り返し実行することにより、繰り返し回数が多くなればなるほど、並列化誤差が大きくなり、シミュレーション結果の信頼性が低下するという問題があった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、並列化誤差が発生しないシミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るシミュレーション装置は、シミュレーションの対象システムを表現した演算モデルを実行するシミュレーション装置であって、演算モデルに含まれる第１の演算処理を実行するものであって、積分演算の結果である第１積分値を出力する第１プロセッサと、演算モデルに含まれる第１の演算処理とは異なる第２の演算処理を実行するものであって、積分演算の結果である第２積分値を出力する第２プロセッサと、を備え、第１プロセッサは、第１の演算処理を繰り返し実行し、第２プロセッサは、第２の演算処理を繰り返し実行し、第１プロセッサは、第２積分値を入力として、第１積分値と第２積分値とを用いた演算を実行し、第２プロセッサは、第１積分値を入力として、第１積分値と第２積分値とを用いた演算を実行し、第１プロセッサによる第１の演算処理と、第２プロセッサによる第２の演算処理とを、並列実行する。
【０００９】
また、上記シミュレーション装置において、第１プロセッサは、第１積分値を出力すると、第２プロセッサと同期処理を行い、第２プロセッサは、第２積分値を出力すると、第１プロセッサと同期処理を行い、同期処理が終了すると、第１プロセッサは、第２積分値を受け取って、第１積分値と第２積分値とを用いた演算を行い、同期処理が終了すると、第２プロセッサは、第１積分値を受け取って、第１積分値と第２積分値とを用いた演算を行うこととしてもよい。
【００１０】
また、上記シミュレーション装置において、第１の演算処理は、最初に第１積分値と第２積分値とを用いた演算を行い、最後に、積分演算を実行する演算処理であることとしてもよい。
【００１１】
また、上記シミュレーション装置において、第２の演算処理は、最初に第１積分値と第２積分値とを用いた演算を行い、最後に、積分演算を実行する演算処理であることとしてもよい。
【００１２】
また、上記シミュレーション装置において、第１プロセッサが実行する第１積分値と第２積分値とを用いた演算と、第２プロセッサが実行する第１積分値と第２積分値とを用いた演算とは、同一の演算であることとしてもよい。
【００１３】
また、上記シミュレーション装置において、対象システムは、車両システムであり、第１プロセッサは、車両システムに含まれるエンジン制御に係るシミュレーションを第１の演算処理として実行し、第２プロセッサは、車両システムに含まれるトランスミッション制御に係るシミュレーションを第２の演算処理として実行し、第１積分値と第２積分値とを用いた演算とは、エンジン制御に係るエンジンと、トランスミッション制御に係るトランスミッションとを接続するシャフトのシミュレーションに係る演算であることとしてもよい。
【００１４】
また、上記シミュレーション装置において、シミュレーション装置は、さらに、最後に積分演算を含み当該積分演算の結果である第３積分値を出力する演算モデルに含まれる第３の演算処理を実行する第３プロセッサを備え、第３の演算処理は、第２積分値を入力として、第２積分値と第３積分値とを用いた演算を含み、第２の演算処理は、さらに、第３積分値を入力として、第２積分値と第３積分値とを用いた演算を含み、第１プロセッサ及び第２プロセッサは、それぞれ第１の演算処理と第２の演算処理とを並列実行することとしてもよい。
【００１５】
また、上記シミュレーション装置において、第３プロセッサは、トランスミッションから先の車両の運動に係るシミュレーションを第３の演算処理として実行し、第２積分値と第３積分値とを用いた演算は、トランスミッションと車両の運動系とを接続するシャフトのシミュレーションに係る演算であることとしてもよい。
【００１６】
また、上記シミュレーション装置において、シミュレーション装置は、さらに、プロセッサ各々の演算結果を外部に出力する出力部を備えることとしてもよい。
【００１７】
また、本発明に係るシミュレーション方法は、シミュレーションの対象システムを表現した演算モデルのシミュレーション方法であって、第１プロセッサが、演算モデルに含まれる第１の演算処理を行って、第１の演算処理に含まれる積分演算の結果である第１積分値を出力するステップと、第２プロセッサが、演算モデルに含まれる第２の演算処理を行って、第２の演算処理に含まれる積分演算の結果である第２積分値を出力するステップと、第１プロセッサと、第２プロセッサとが同期処理を行うステップと、第１プロセッサが第１積分値と第２積分値とを入力として、次の第１の演算処理を実行するステップと、第２プロセッサが第１積分値と第２積分値とを入力として、次の第２の演算処理を実行するステップと、を含み、第１の演算処理と、第２の演算処理とは並列に実行される。
【００１８】
また、本発明に係るシミュレーションプログラムは、シミュレーションの対象システムを表現した演算モデルをシミュレートするシミュレーションプログラムであって、第１プロセッサと第２プロセッサとを備えるコンピュータに、演算モデルに含まれる第１の演算処理であって、積分演算の結果である第１積分値を出力する第１の演算処理を第１プロセッサに実行させる機能と、演算モデルに含まれる第１の演算処理とは異なる第２の演算処理であって、積分演算の結果である第２積分値を出力する第２の演算処理を第２プロセッサに実行させる機能と、第１プロセッサと第２プロセッサとの間で同期処理を実行させる機能と、第１プロセッサに第１積分値と第２積分値とを入力として、次の第１の演算処理を実行させる機能と、第２プロセッサに第１積分値と第２積分値とを入力として、次の第２の演算処理を実行させる機能と、第１の演算処理と第２の演算処理とを並列実行させる機能とを実現させる。
【発明の効果】
【００１９】
本発明の一態様に係るシミュレーション装置によれば、並列処理を行う２つの系を双方の系において共に利用する積分演算の単位で分けることにより、互いの系の間にデータを渡すためのバッファを設けることなく並列処理を実現できる。したがって、バッファを設けることにより発生する遅延に基づく並列化誤差を発生させることなく並列処理により、逐次処理よりもシミュレーションを高速化することができる。
【図面の簡単な説明】
【００２０】
【図１】シミュレーション装置の一構成例を示す図である。
【図２】シミュレーション装置を含むシステム構成例を示すシステム図である。
【図３】シミュレーション装置の構成例を示すブロック図である。
【図４】シミュレーションの対象システムの一例である車両システムを模式的に示す図である。
【図５】車両システムの並列処理モデルを示す図である。
【図６】シミュレーション装置１００の動作を示すフローチャートである。
【図７】シミュレーション装置１００における並列処理の動作を示すフローチャートである。
【図８】逐次処理で処理した場合の処理例を示すフローチャートである。
【図９】他の対象システムのシステム構成と並列モデルを示す図である。
【図１０】対象システムの汎用モデルを示す図である。
【図１１】シミュレーション装置の構成例を示すブロック図である。
【図１２】車両システムのシミュレーションを逐次処理で実行する場合のモデルを模式的に示した図である。
【図１３】車両システムのシミュレーションを並列処理で実行する場合であって、並列誤差を生じる例を示した図である。
【発明を実施するための形態】
【００２１】
以下、本発明の一実施態様に係るシミュレーション装置について、図面を参照しながら詳細に説明する。
【００２２】
＜実施の形態＞
＜概要＞
本発明の一実施形態に係るシミュレーション装置１００は、シミュレーションの対象システムを表現した演算モデルを実行するものであり、図１に示すように、第１プロセッサ３３０と第２プロセッサ３４０とを備える。
【００２３】
第１プロセッサ３３０は、第１の演算処理を実行する。第１の演算処理は、対象システムを表現する演算モデルの一部であり、積分演算を含む。第１プロセッサ３３０は、計算した積分演算の結果である第１積分値を出力する。
【００２４】
第２プロセッサ３４０は、第２の演算処理を実行する。第２の演算処理は、対象システムを表現する演算モデルの一部であり、積分演算を含む。第２プロセッサ３４０は、計算した積分演算の結果である第２積分値を出力する。
【００２５】
第１プロセッサ３３０は、第２プロセッサ３４０から出力された第２積分値を入力として、自プロセッサで算出した第１積分値と、入力された第２積分値を用いた演算、例えば、第１積分値と第２積分値との加算処理を実行する。
【００２６】
第２プロセッサ３４０は、第１プロセッサ３３０から出力された第１積分値を入力として、自プロセッサで算出した第２積分値と、入力された第１積分値を用いた演算、例えば、第１積分値と第２積分値との加算処理を実行する。
【００２７】
第１プロセッサ３３０と第２プロセッサ３４０とはそれぞれ第１の演算処理と第２の演算処理を並列実行する。これにより、対象システムの演算モデルの演算処理を高速化することができる。
【００２８】
以下、シミュレーション装置１００について更に詳細に説明する。
【００２９】
＜構成＞
図２は、シミュレーション装置１００が含まれるシステム構成例を示す図である。図２に示すように、シミュレーション装置１００は、コンピュータシステムであり、例えば、モニター２００や、キーボード２１０、マウス２２０などの機器と接続される。
【００３０】
モニター２００は、シミュレーション装置１００により実行されたシミュレーションの結果を表示する機能を有する表示装置である。モニター２００は、例えば、ＬＣＤ、プラズマディスプレイ、有機ＥＬディスプレイなどにより実現することができる。
【００３１】
キーボード２１０やマウス２２０は、ユーザがシミュレーション装置１００に対して情報を入力するために用いる入力機器である。これらの機器を用いて対象システムに関する演算モデルの入力を行う。
【００３２】
図３は、シミュレーション装置１００の構成例を示すブロック図である。図３に示すように、シミュレーション装置１００は、入力受付部３０１と、出力部３０２と、記憶部３１０と、メインプロセッサ３２０と、メインメモリ３２１と、第１プロセッサ３３０と、第１メモリ３３１と、第２プロセッサ３４０と、第２メモリ３４１と、第３プロセッサ３５０と、第３メモリ３５１と、を備える。シミュレーション装置１００の各部は、バスを通じて互いに接続されている。
【００３３】
入力受付部３０１は、有線無線を問わずシミュレーション装置１００に接続された機器からの入力を受け付ける機能を有する。入力受付部３０１は、例えば、図２に示すキーボード２１０や、マウス２２０からの入力内容や、外部の装置からの入力を受け付ける。入力受付部３０１は、例えば、シミュレーションの対象となる演算モデルを示すシミュレーションプログラムを受け付けてメインプロセッサ３２０に伝達する。
【００３４】
出力部３０２は、有線無線を問わずシミュレーション装置１００に接続された機器に対してシミュレーションの結果を示す結果情報を出力する機能を有する。
【００３５】
記憶部３１０は、シミュレーション装置１００が動作する上で必要とする各種プログラムやデータを記憶する機能を有する記憶媒体である。記憶部３１０は、例えば、ＨＤＤ、ＳＳＤ、フラッシュメモリ等の記憶媒体により実現することができる。
【００３６】
メインプロセッサ３２０は、シミュレーション装置１００の各部を制御する機能を有する制御部である。メインプロセッサ３２０は、記憶部３１０に記憶されているプログラムを読み出して、実行する。メインプロセッサ３２０は、入力受付部３０１を介してユーザから受け付けたシミュレーションの対象となるシステムを表現する演算モデルを実行するものであり、演算モデル中に含まれる演算要素のうち並列実行可能な要素を第１プロセッサ３３０、第２プロセッサ３４０、第３プロセッサ３５０等に割り振って並列実行させる。ここでは、演算処理の割り振り、即ち、演算モデル中のどの演算をどのプロセッサに割り当てるかについては、ユーザあるいはプログラム中で指定されている。
【００３７】
メインメモリ３２１は、メインプロセッサ３２０がプログラムに係る処理を実行するために利用する作業領域であり、一時的なデータを記憶するメモリである。
【００３８】
第１プロセッサ３３０は、メインプロセッサ３２０から割り当てられた演算処理を実行し、その演算結果を出力する。
【００３９】
第１メモリ３３１は、第１プロセッサ３３０が割り当てられた演算処理を実行するために利用する作業領域であり、一時的なデータを記憶するメモリである。
【００４０】
第２プロセッサ３４０は、メインプロセッサ３２０から割り当てられた演算処理を実行し、その演算結果を出力する。
【００４１】
第２メモリ３４１は、第２プロセッサ３４０が割り当てられた演算処理を実行するために利用する作業領域であり、一時的なデータを記憶するメモリである。
【００４２】
第３プロセッサ３５０は、メインプロセッサ３２０から割り当てられた演算処理を実行し、その演算結果を出力する。
【００４３】
第３メモリ３５１は、第３プロセッサ３５０が割り当てられた演算処理を実行するために利用する作業領域であり、一時的なデータを記憶するメモリである。
【００４４】
各プロセッサは、バスを介して互いに通信を実行して、データのやり取りを行うことができる。
【００４５】
以上が、シミュレーション装置１００の構成であるが、図３に示した構成例は一例であり、その他の構成をとってもよく、例えば、並列演算可能な要素としてのプロセッサ及び対応するメモリの搭載台数はこれに限るものではない。なお、プロセッサは場合によってはコアと呼称されることもある。
【００４６】
＜シミュレーションの対象システムモデル＞
図４は、本実施の形態に係るシミュレーション装置１００が実行するシミュレーションの対象システムである車両システムを模式的に示したモデル図である。
【００４７】
図４に示すように車両システム４００は、エンジン４１０と、エンジンコントローラ４１１と、シャフト４２０と、トランスミッション（ＴＭ）４３０と、トランスミッションコントローラ４３１と、シャフト４４０と、デフ４５０と、シャフト４６０と、シャフト４６１と、タイヤ４７０と、タイヤ４７１とを含む。
【００４８】
エンジン４１０は、車両が駆動するための動力となる動力源である。
【００４９】
エンジンコントローラ４１１は、エンジン４１０を制御する機能を有するコントローラである。エンジンコントローラ４１１は、例えば、エンジン４１０のトルクコントロールを実行する。
【００５０】
シャフト４２０は、エンジン４１０とトランスミッション４３０とを接続する軸である。シャフト４２０は、エンジン４１０からのエンジントルクと、トランスミッション４３０からのトランスミッション負荷とを受け、それらを統合した力の向きに回転する。
【００５１】
トランスミッション４３０は、歯車や軸からなり、シャフト４２０を介して受け付けたエンジン４１０からの動力のトルク、回転数、回転方向を変換して車両側（デフ４５０側）に伝達する機能を有する。
【００５２】
トランスミッションコントローラ４３１は、トランスミッション４３０の動力のトルク、回転数を制御する機能を有するコントローラである。トランスミッションコントローラ４３１は、例えば、エンジン４１０からのトルクを変換する変換係数を制御する。
【００５３】
シャフト４４０は、トランスミッション４３０とデフ４５０とを接続する軸である。デフ４５０は、トランスミッション４３０からのアウトプットシャフトルクと、デフ４５０からのデフ負荷とを受け、それらを統合した力の向きに回転する。
【００５４】
デフ４５０は、タイヤ４７０とタイヤ４７１との左右の回転数を制御する機構である。デフは、正式にはディファレンシャルと呼称される。デフ４５０は、シャフト４４０を介してトランスミッション４３０から伝達されたトルクを左右のタイヤ４７０とタイヤ４７１とのそれぞれの回転数に変換して伝達する。
【００５５】
シャフト４６０は、デフ４５０とタイヤ４７０とを接続する軸である。シャフト４６０は、デフ４５０からのトルクとタイヤ４７０からの負荷とを受け、それらを統合した力の向きに回転する。
【００５６】
タイヤ４７０は、シャフト４６０の回転に伴い、回転するタイヤである。
【００５７】
シャフト４６１は、デフ４５０とタイヤ４７１とを接続する軸である。シャフト４６１は、デフ４５０からのトルクとタイヤ４７１からの負荷とを受け、それらを統合した力の向きに回転する。
【００５８】
タイヤ４７１は、シャフト４６１の回転に伴い、回転するタイヤである。
【００５９】
シミュレーション装置１００は、図４に示すような車両システム４００の動作シミュレーションを実行する。
【００６０】
＜並列演算モデル＞
図５は、図４に示す車両システム４００のシミュレーションを、シミュレーション装置１００により実行するときの並列演算のイメージを模式的に示した概念図である。
【００６１】
図４に示す車両システム４００のシミュレーションは、大別すると、エンジンシミュレーション５１０と、エンジン制御シミュレーション５１１と、トランスミッションシミュレーション５３０と、トランスミッション制御シミュレーション５３１と、車両シミュレーション５５０とに分けることができる。
【００６２】
エンジンシミュレーション５１０は、図４に示すエンジン４１０の挙動のシミュレーションである。
【００６３】
エンジン制御シミュレーション５１１は、図４に示すエンジンコントローラ４１１の挙動のシミュレーションである。
【００６４】
トランスミッションシミュレーション５３０は、図４に示すトランスミッション４３０の挙動のシミュレーションである。
【００６５】
トランスミッション制御シミュレーション５３１は、図４に示すトランスミッションコントローラ４３１の挙動のシミュレーションである。
【００６６】
車両シミュレーション５５０は、図４に示すシャフト４４０から先の機構（デフ４５０、シャフト４６０、シャフト４６１、タイヤ４７０、タイヤ４７１等）の挙動のシミュレーションである。
【００６７】
シミュレーション装置１００のメインプロセッサ３２０は、これらのシミュレーションのうち、エンジン回りのシミュレーション（エンジン制御シミュレーション５１１とエンジンシミュレーション５１０）を第１プロセッサ３３０に割り当て、トランスミッション回りのシミュレーション（トランスミッションシミュレーション５３０とトランスミッション制御シミュレーション５３１）を第２プロセッサ３４０に割り当て、それ以外のシミュレーション（車両シミュレーション５５０）を第３プロセッサ３５０に割り当てる。そして、各プロセッサは、積分加算演算（シャフト演算）のうち、一方の積分演算のみを行い、他方の積分演算を他のプロセッサからもらって、最後の加算を行うという構成をとる。
【００６８】
具体的に説明すると、エンジン４１０とトランスミッション４３０とをつなぐシャフト４２０のシミュレーションであるシャフト演算は、以下の式（１）で表すことができる。
【００６９】
【数１】
2018005318.tif 000003
…（１）
【００７０】
上記式（１）のうち、下記式（２）は、エンジンシミュレーション５１０により出力されるエンジントルクの積分値を算出する積分演算である。
【００７１】
【数２】
2018005318.tif 000004
…（２）
【００７２】
また、上記式（１）のうち、下記式（３）は、トランスミッションシミュレーション５３０により出力されるトランスミッション負荷トルクの積分値を算出する積分演算である。
【００７３】
【数３】
2018005318.tif 000005
…（３）
【００７４】
式（２）に示す積分演算を第１プロセッサ３３０が行って、式（３）に示す積分演算を第２プロセッサ３４０が行って、第１プロセッサ３３０と第２プロセッサ３４０との間で同期処理を行う。そして、第１プロセッサ３３０と第２プロセッサ３４０とのそれぞれで積分演算の結果を加算することで、並列処理を、並列化誤差を発生させることなく実現できる。
【００７５】
これは、第２プロセッサ３４０と第３プロセッサ３５０との間のシャフト演算５４０においても同様である。即ち、第２プロセッサ３４０がアウトプットシャフトトルク（トランスミッション４３０から発生するトルク）の積分演算を行い、第３プロセッサ３５０がデフ負荷の積分演算を行う。そして、第２プロセッサ３４０と第３プロセッサ３５０と間で同期処理を行い、それぞれで積分演算の結果を加算することで、並列処理を、並列化誤差を発生させることなく実現できる。即ち、通信遅延の原因となるバッファを設けることなく並列処理を実現できる。
【００７６】
即ち、このシミュレーションにおいては、エネルギーを蓄える部品（ここでは、シャフト）または箇所でシミュレーション単位を分けたことを特徴とする。より具体的には、本実施の形態に係るシミュレーション装置１００によるシミュレーションは、積分加算演算であって、第１の系と、第２の系とで、それぞれでの積分演算を行って、双方でその積分演算結果を利用する演算処理を含むシミュレーションにおいて有効となる構成である。このような第１の系と、第２の系とを並列処理することにより、シミュレーション全体の高速化を実現するとともに、従来において設ける必要があったバッファを設ける必要がなくなるので、並列化誤差が生じなくなる。
【００７７】
＜動作＞
図６は、シミュレーション装置１００の動作を示すフローチャートであって、処理の割り当て時の動作を示している。
【００７８】
（ステップＳ６０１）
ステップＳ６０１において、シミュレーション装置１００の入力受付部３０１は、シミュレーションプログラムの入力を受け付けて、記憶部３１０に記憶する。また、入力受付部３０１は、受け付けたシミュレーションプログラムをメインプロセッサ３２０に伝達してステップＳ６０２に移行する。
【００７９】
（ステップＳ６０２）
ステップＳ６０２において、メインプロセッサ３２０は、シミュレーションプログラム中の並列実行可能な演算処理を、ユーザからの指示またはプログラム中の指定により、各プロセッサ（第１プロセッサ３３０、第２プロセッサ３４０、第３プロセッサ３５０）に割り当ててステップＳ６０３に移行する。
【００８０】
（ステップＳ６０３）
ステップＳ６０３において、各プロセッサ（第１プロセッサ３３０〜第３プロセッサ３５０）は割り当てられた演算処理を実行する。
【００８１】
（ステップＳ６０４）
ステップＳ６０４において、シミュレーション装置１００の出力部３０２は、メインプロセッサ３２０からの指示にしたがって、各プロセッサからの出力結果を示す結果情報をシミュレーションの演算結果として出力して終了する。車両シミュレーションの場合であれば、結果情報は、例えば、エンジントルク、アウトプットシャフトトルク、トランスミッション負荷、デフ負荷などの値とすることができる。
【００８２】
なお、ステップＳ６０３における処理は繰り返し実行されてよく、ステップＳ６０４における演算結果の出力は、繰り返し処理の最後の値を出力することとしてもよいし、繰り返しの各回ごとの結果を出力することとしてもよい。
【００８３】
図７は、シミュレーション装置１００の動作を示すフローチャートであって、シミュレーション装置１００が、図４、図５に示す車両システムのシミュレーションを行う場合の動作を示している。図７においては、図面の上から下に向けて時間が経過しているものとする。また、各プロセッサは、一時に一つの処理のみを実行できる。
【００８４】
（ステップＳ７０１）
ステップＳ７０１において、第１プロセッサ３３０は、第１プロセッサ３３０が算出した時刻ｔにおける第１積分値であるエンジントルクの積分値と、第２プロセッサ３４０が算出した時刻ｔにおける第２積分値であるトランスミッション負荷トルクの積分値とを加算して、エンジン角速度を算出する。なお、ステップＳ７０１の演算における初回演算では、予め設定された初期値を使用する。第１プロセッサ３３０は、加算処理を行うと、ステップＳ７０２に移行する。
【００８５】
（ステップＳ７０２）
ステップＳ７０２において、第１プロセッサ３３０は、ステップＳ７０１における加算結果を受けて、エンジン４１０のシミュレーション演算であるエンジンシミュレーション５１０と、エンジンコントローラ４１１のシミュレーション演算であるエンジン制御シミュレーション５１１とを実行し、ステップＳ７０３に移行する。
【００８６】
（ステップＳ７０３）
ステップＳ７０３において、エンジンに係るシミュレーションの結果を受けて、シャフト４２０に伝達する時刻ｔ＋１におけるエンジントルクの積分値を算出するための積分演算を実行する。第１プロセッサ３３０は、算出した第１積分値を出力して、ステップＳ７３０に移行する。
【００８７】
（ステップＳ７１１）
ステップＳ７１１において、第２プロセッサ３４０は、第１プロセッサ３３０が算出した時刻ｔにおける第１積分値であるエンジントルクの積分値と、第２プロセッサ３４０が算出した時刻ｔにおける第２積分値であるトランスミッション負荷トルクの積分値とを加算して、エンジン角速度を算出する。即ち、ステップＳ７１１における処理は、ステップＳ７０１における処理と同一の処理である。なお、ステップＳ７１１の演算における初回演算では、予め設定された初期値を使用する。第２プロセッサ３４０は、加算処理を行うと、ステップＳ７１３に移行する。
【００８８】
（ステップＳ７１２）
ステップＳ７１２において、第２プロセッサ３４０は、第２プロセッサ３４０が算出した時刻ｔにおける第３積分値であるアウトプットシャフトトルクの積分値と、第３プロセッサ３５０が算出した時刻ｔにおける第４積分値であるデフ負荷トルクの積分値とを加算してアウトプットシャフトトルク角速度を算出する。なお、ステップＳ７１２の演算における初回演算では、予め設定された初期値を使用する。第２プロセッサ３４０は、加算処理を行うと、ステップＳ７１３に移行する。
【００８９】
（ステップＳ７１３）
ステップＳ７１３において、第２プロセッサ３４０は、ステップＳ７１１における加算結果と、ステップＳ７１２における加算結果とを受けて、トランスミッション４３０のシミュレーション演算であるトランスミッションシミュレーション５３０と、トランスミッションコントローラ４３１のシミュレーション演算であるトランスミッション制御シミュレーション５３１とを実行し、ステップＳ７１４およびステップＳ７１５に移行する。
【００９０】
（ステップＳ７１４）
ステップＳ７１４において、第２プロセッサ３４０は、トランスミッションに係るシミュレーションの結果を受けて、シャフト４２０に伝達する時刻ｔ＋１におけるトランスミッション負荷トルクの積分値を算出するための積分演算を実行する。第２プロセッサ３４０は、算出した第２積分値を出力して、ステップＳ７３０に移行する。
【００９１】
（ステップＳ７１５）
ステップＳ７１５において、第２プロセッサ３４０は、トランスミッションに係るシミュレーションの結果を受けて、シャフト４４０に伝達する時刻ｔ＋１におけるアウトプットシャフトトルクの積分値を算出するための積分演算を実行する。第２プロセッサ３４０は、算出した第３積分値を出力して、ステップＳ７３０に移行する。
【００９２】
（ステップＳ７２１）
ステップＳ７２１において、第３プロセッサ３５０は、第２プロセッサ３４０が算出した時刻ｔにおける第３積分値であるアウトプットシャフトトルクの積分値と、第３プロセッサ３５０が算出した時刻ｔにおける第４積分値であるデフ負荷トルクの積分値とを加算してアウトプットシャフト角速度を算出する。即ち、ステップＳ７２１における演算は、ステップＳ７１２における演算と同一である。なお、ステップＳ７２１の演算における初回演算では、予め設定された初期値を使用する。第３プロセッサ３５０は、加算処理を行うと、ステップＳ７２２に移行する。
【００９３】
（ステップＳ７２２）
ステップＳ７２２において、第３プロセッサ３５０は、ステップＳ７２１における加算結果を受けて、シャシーとタイヤに関するシミュレーションである車両シミュレーション５５０を実行して、ステップＳ７２３に移行する。
【００９４】
（ステップＳ７２３）
ステップＳ７２３において、第３プロセッサ３５０は、車両に係る車両シミュレーションの結果を受けて、シャフト４４０に伝達する時刻ｔ＋１におけるデフ負荷トルクの積分値を算出するための積分演算を実行する。第３プロセッサ３５０は、算出した第４積分値を出力して、ステップＳ７３０に移行する。
【００９５】
（ステップＳ７３０）
ステップＳ７３０において、各プロセッサは、各プロセッサで行う処理の同期をとるための同期処理を行う。即ち、第１プロセッサ３３０と第２プロセッサ３４０と、この後に時刻ｔ＋１の処理を行うことを示し合わせ、第２プロセッサ３４０と第３プロセッサ３５０と、この後に時刻ｔ＋１の処理を行うことを示し合わせる。各プロセッサは、同期処理を終えると、それぞれ必要とする積分値を受信し、各プロセッサにおける最初の処理に戻る。即ち、第１プロセッサ３３０は、自身で算出した時刻ｔ＋１の第１積分値（エンジントルクの積分値）と、第２プロセッサ３４０が算出した時刻ｔ＋１の第２積分値（トランスミッション負荷トルクの積分値）とを受け付けて、次の繰り返しの処理を実行する。同様に、第２プロセッサ３４０は、自身で算出した時刻ｔ＋１の第２積分値（トランスミッション負荷トルクの積分値）と、第３積分値（アウトプットシャフトトルクの積分値）と、第１プロセッサ３３０が算出した時刻ｔ＋１の第１積分値（エンジントルクの積分値）と、第３プロセッサ３５０が算出した時刻ｔ＋１の第４積分値（デフ負荷トルクの積分値）とを受けて、次の繰り返しの処理を実行する。また、第３プロセッサ３５０は、自身で算出した時刻ｔ＋１の第４積分値（デフ負荷トルクの積分値）と、第２プロセッサ３４０が算出した時刻ｔ＋１の第３積分値（アウトプットシャフトトルクの積分値）とを受けて、次の繰り返しの処理を実行する。なお、次の繰り返しの処理とは、各プロセッサがそれぞれに割り当てられた図７に示す処理の先頭から、図７に示す処理を実行することをいう。
【００９６】
図７において、第１プロセッサ３３０によるステップＳ７０１〜ステップＳ７０３の処理と、第２プロセッサ３４０によるステップＳ７１１〜ステップＳ７１５の処理と、第３プロセッサ３５０によるステップＳ７２１〜ステップＳ７２３の処理とは、互いに並行して、即ち、並列に実行され、これにより、車両シミュレーション全体における処理の高速化を図ることができる。また、並列要素間でデータを受け渡すためのバッファ処理を挿入していないので、遅延に基づく誤差が発生することもない。
【００９７】
以上が、車両シミュレーションを並列に行う場合のシミュレーション装置１００の動作である。
【００９８】
＜考察＞
図８には、図４に示す車両システムのシミュレーションを逐次処理により処理した場合のフローチャートを示している。
【００９９】
逐次処理の場合、時系列に沿って、コンピュータは、第１積分値と第２積分値との加算処理（ステップＳ８０１、図７のステップＳ７０１、Ｓ７１１に相当）を行い、第３積分値と第４積分値との加算処理（ステップＳ８０２、図７のステップＳ７１２、Ｓ７２１に相当）を行い、エンジンシミュレーション（ステップＳ８０３、図７のステップＳ７０２に相当）を行い、トランスミッションシミュレーション（ステップＳ８０４、図７のステップＳ７１３に相当）を行い、車両シミュレーション（ステップＳ８０５、図７のステップＳ７２２に相当）を行い、エンジントルクの積分値を算出する積分演算（ステップＳ８０６、図７のステップＳ７０３に相当）を行い、トランスミッション負荷トルクの積分値を算出する積分演算（ステップＳ８０７、図７のステップＳ７１４に相当）を行い、アウトプットシャフトトルクの積分値を算出する積分演算（ステップＳ８０８、図７のステップＳ７１５に相当）を行い、デフ負荷トルクの積分値を算出する積分演算（ステップＳ８０９、図７のステップＳ７２３に相当）を行う。
【０１００】
図７と図８とを比較すれば明らかなように、図８に示す逐次処理の場合、時系列に沿って大きく分けて９つの処理を実行しなければならなかったのに対して、図７に示す並列処理の場合であれば、時系列に沿ってでは６つの処理に留まる（各処理は厳密には同じ時間で実行されるわけではない点に注意されたい。）ことから、シミュレーション全体の時間の短縮が実現できていることは明らかである。また、バッファを設けるのではなく、通信同期処理により、積分加算演算において、同じタイミングの入力を受けることができるので、図１３に示したような並列システムで発生し得る並列化誤差も発生しないので、シミュレーション装置１００は、図１３に示した並列処理によるシミュレーションよりも正確なシミュレーション結果を出力することができる。
【０１０１】
＜補足＞
上記実施の形態に係る装置は、上記実施の形態に限定されるものではなく、他の手法により実現されてもよいことは言うまでもない。以下、各種変形例について説明する。
【０１０２】
（１）上記実施の形態において、シミュレーション装置１００が車両のシミュレーションの並列処理を行う例を示したが、シミュレーションの対象となるモデルが車両システムに限定されないことは言うまでもない。シミュレーション装置１００によるシミュレーションの対象となるシステムは、その演算モデル中に積分加算演算を含むモデルであれば、どのようなシステムであってもよい。
【０１０３】
例えば、パイプにおける吸排気のシミュレーションに適用することもできる。図９を用いて、その例を説明する。図９において、パイプのある箇所における状態を演算シミュレーションする例を模式的に示す図である。
【０１０４】
図９のパイプにおいて、ある箇所（点線の円で囲った箇所）の状態をシミュレーションするにあたっては、状態方程式を用いることができる。この状態方程式は、ＰＶ＝ｎＲＴの式で表せることが一般に知られている。ここで、Ｐは圧力、Ｖは体積、ｎは物質量、Ｒは気体定数、Ｔは温度である。
【０１０５】
パイプにおける気体シミュレーションにおいては、点線で囲った箇所の気体の圧力と温度をシミュレートするものとする。また、ここでこのパイプは、吸排気を行うパイプとして、第２流量計算側が外部、即ち、大気側であり、第１流量計算側が何等かの装置内部から内気を排出する元側であるとする。この状態方程式のシミュレーションでは、気体流量及び熱流量を入力として、シミュレートしたい箇所の圧力Ｐと温度Ｔとを算出する。
【０１０６】
状態方程式に示す圧力Ｐは、下記式（４）により表現できる。
【０１０７】
【数４】
2018005318.tif 000006
…（４）
【０１０８】
式（４）において、Ｖは体積を意味し、Ｕは、熱流量に基づく内部エネルギーを意味する。また、Ｆは気体の自由度を意味する定数である。
【０１０９】
また、状態方程式に示す温度Ｔは、下記式（５）により表現できる。
【０１１０】
【数５】
2018005318.tif 000007
…（５）
【０１１１】
式（５）において、Ｎは気体数を意味し、Ｒｕｎｉｖは、気体定数を意味する。式（４）に示す圧力Ｐを決定する内部エネルギーＵは、以下の式（６）に示すように第１流量計測側からの熱流量ｕ１と、第２流量計測側からの熱流量ｕ２と、壁面温度に起因する熱流量ｕｔとから計算することができる。
【０１１２】
【数６】
2018005318.tif 000008
…（６）
また、温度Ｔを決定する気体数Ｎは、下記式（７）に示すように、第１流量計算側からかかる第１気体流量ｎ１と、第２流量計算側からかかる第２気体流量ｎ２に基づいて計算することができる。
【０１１３】
【数７】
2018005318.tif 000009
…（７）
【０１１４】
上記式（６）、（７）に示されるように、状態方程式のシミュレーションには、積分加算演算が含まれている。したがって、式（６）の積分演算の各要素の積分値を算出するための演算処理、即ち、第１流量計算側の熱流量ｕ１の積分値を算出するための演算処理と、第２流量計算側の熱流量ｕ２の積分値を算出するための演算処理と、壁面温度に起因する熱流量ｕｔの積分値を算出するための演算処理と、を並列に処理することができる。同様に、式（７）の各積分演算の要素を算出するための第１気体流量ｎ１を算出するための演算処理、第２気体流量ｎ２を算出するための演算処理をそれぞれ、異なるプロセッサで並列に処理することができる。即ち、図９に示すように、状態方程式のシミュレーションにおいても、上記実施の形態に示した図５と同様に、各プロセッサで積分演算を行って、状態方程式の演算処理に出力し、状態方程式の演算処理の結果のＰとＴとを各演算にフィードバックするという並列演算を行うことができる。より詳細に述べると、図９に示す第１プロセッサは、第１気体流量ｎ１と第１熱流量ｕ１とを計算して出力する。また、第２プロセッサは、第２気体流量ｎ２と第２熱流量ｕ２とを計算して出力する。また、第３プロセッサは、第３熱流量ｕｔを計算して出力する。各プロセッサは、それぞれの計算を並列に実行した後に、各プロセッサ間で同期をとる。そして、各プロセッサは、自身以外で算出した出力値を受信して、状態方程式の演算を行ってＰとＴを参集して、次のタイミングのシミュレーションを行う。このようにして、パイプにおける気体の状態方程式のシミュレーションの並列演算を遅延誤差を発生させることなく実行することができる。したがって、車両シミュレーション以外のパイプの吸排気モデルのシミュレーションも、積分加算演算を区切りとした並列化処理を適用することができる。
【０１１５】
また、上記実施の形態に示した車両シミュレーション、吸排気モデルシミュレーションの他にも下記表に示すような演算を含むモデルに対しても、本発明に係る並列処理を適用することができる。
【０１１６】
【表１】
2018005318.tif 000010
【０１１７】
上記表１は、物理領域と、入力データと、出力データと、エネルギーを蓄える部品の例を対応付けた表である。表１において、物理領域はシミュレーションの対象となる演算がどのような物理現象をシミュレートの対象としているかを意味する。入力データは、シミュレーションを行うにあたって、シミュレーションモデルに対して入力されるデータ（情報）の内容を示している。出力データは、シミュレーションにより出力されるデータ（情報）の内容を示している。またエネルギーを蓄える部品の例とは、シミュレーションの対象となるシステムにおいて、エネルギーが蓄積する（集中する）場所や部品のことであり、上記実施の形態において示したシャフト演算に相当する。表１においては、それぞれの演算内容を示す数式を示している。表１によれば、エネルギーを蓄積する部品の例で示す積分加算演算を並列処理対象とするシミュレーションを実行できることを意味する。例えば、コンデンサ容量の例で言えば、電気回路中のコンデンサに対して接続されている接続から入力される入力電流の積分値を算出するための演算処理と、コンデンサから出力する出力電流の積分値を算出するための演算処理と、を並列処理する。そして、それらを演算するプロセッサ間で同期をとってデータの授受を行う。それから、それぞれのプロセッサで受領したデータと自身で算出したデータの加算演算を行って、コンデンサ容量を算出するシミュレーションを行うことができる。
【０１１８】
別の言い方をすれば、本発明に係る並列処理は、図１０に示すような演算形態を有するシステムであれば、どのようなシステムに対しても有効に並列化処理を適用することができる。即ち、図１０に示すように複数の積分演算と、その複数の積分演算結果の統合処理（加算処理）を行う演算で表現できる箇所が含まれるシミュレーションにおいて、それら複数の積分演算を行う主体（図１０に示すサブシステムＡ、Ｂ、Ｃ、…）を対象として、上記実施の形態に示したような並列処理を実現することができる。このようなシステムに対して並列処理を適用した場合、各並列処理の処理内容は、演算処理の最初に前回の他の並列処理により算出された積分演算結果の入力を受けて自身で算出した前回の積分値との加算処理を行い、演算処理の最後に積分演算を行ってその積分値を出力する処理となる。
【０１１９】
以上に説明してきたように、本発明に係る並列化手法は、演算モデル中に積分加算演算を含むモデルであれば、どのような対象モデルであっても並列化を実行でき、そのシミュレーションの演算の高速化を、並列化誤差を生じさせることなく、実得することができる。
【０１２０】
（２）上記実施の形態においては、シミュレーション装置１００内部に複数のプロセッサを備えて、並列実行する例を示したが、これはその限りではない。上記シミュレーション装置１００における第１プロセッサ３３０、第２プロセッサ３４０、第３プロセッサ３５０は、例えば、外部のクラスターマシンとして実現することとしてもよいし、それぞれ別個の装置として、互いに通信できるように構成されたコンピュータシステムにより実現することとしてもよい。
【０１２１】
（３）上記実施の形態においては、シミュレーション装置におけるシミュレーションを算出する手法として、シミュレーション装置のプロセッサがシミュレーションプログラム等を実行することにより、算出することとしているが、これは装置に集積回路（ＩＣ（Integrated Circuit）チップ、ＬＳＩ（Large Scale Integration））等に形成された論理回路（ハードウェア）や専用回路によって実現してもよい。また、これらの回路は、１または複数の集積回路により実現されてよく、上記実施の形態に示した複数の機能部の機能を１つの集積回路により実現されることとしてもよい。ＬＳＩは、集積度の違いにより、ＶＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩなどと呼称されることもある。すなわち、図１１に示すように、シミュレーション装置１００は、第１制御回路３３０ａと、第２制御回路３４０ａと、から構成されてよく、それぞれの機能は、上記実施の形態に示した第１プロセッサ３３０および第２プロセッサ３４０と同様である。
【０１２２】
また、上記シミュレーションプログラムは、プロセッサが読み取り可能な記録媒体に記録されていてよく、記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記シミュレーションプログラムは、当該シミュレーションプログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記プロセッサに供給されてもよい。本発明は、上記シミュレーションプログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
なお、上記シミュレーションプログラムは、例えば、ActionScript、JavaScript（登録商標）などのスクリプト言語、Objective-C、Java（登録商標）などのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装できる。
【０１２３】
（４）上記実施の形態及び各補足に示した構成は、適宜組み合わせることとしてもよい。
【符号の説明】
【０１２４】
１００  シミュレーション装置
３０１  入力受付部
３０２  出力部
３１０  記憶部
３２０  メインプロセッサ
３２１  メインメモリ
３３０  第１プロセッサ
３３１  第１メモリ
３４０  第２プロセッサ
３４１  第２メモリ
３５０  第３プロセッサ
３５１  第３メモリ
【図１】
2018005318.tif 000011
【図２】
2018005318.tif 000012
【図３】
2018005318.tif 000013
【図４】
2018005318.tif 000014
【図５】
2018005318.tif 000015
【図６】
2018005318.tif 000016
【図７】
2018005318.tif 000017
【図８】
2018005318.tif 000018
【図９】
2018005318.tif 000019
【図１０】
2018005318.tif 000020
【図１１】
2018005318.tif 000021
【図１２】
2018005318.tif 000022
【図１３】
2018005318.tif 000023