(57)【要約】【課題】各シミュレータ間のデータの配送経路の設定が、容易に且つ適切に設定可能な分散型シミュレーションシステムを提供する。【解決手段】管理装置により設定されたシミュレータ間のデータ配送経路情報に基づいて他のシミュレータに送信すべきデータの一覧情報を当該他のシミュレータに送信し、一覧情報に含まれるデータが格納される当該他のシミュレータの共有メモリのアドレス情報を当該他のシミュレータから受信し、当該アドレス情報に対応づけて自己の共有メモリに当該データの格納アドレスを設定するとともに当該データが格納される自己の共有メモリと他のシミュレータの共有メモリ間のアドレス変換テーブルを生成する共有メモリ管理部と、当該アドレス変換テーブルに基づいて自己の共有メモリから読み出した送信用データを他のシミュレータの通信処理部に送信する通信処理部を各シミュレータに備えている。【選択図】図１０
2010244378.tif 000002
【特許請求の範囲】
【請求項１】
他のシミュレータとの間でシミュレーションに必要なデータを授受する通信処理部と、前記通信処理部で授受されるデータが格納される共有メモリと、前記共有メモリに書き込まれたデータを用いてシミュレーションを実行するシミュレーション演算部を含むシミュレータが、ネットワークを介して管理装置に複数接続され、各シミュレータで分散してシミュレーションが実行される分散型シミュレーションシステムであって、
各シミュレータに、前記管理装置により設定されたシミュレータ間のデータ配送経路情報に基づいて、他のシミュレータに送信すべきデータの一覧情報を当該他のシミュレータに送信し、前記一覧情報に含まれるデータが格納される当該他のシミュレータの共有メモリのアドレス情報を、当該他のシミュレータから受信し、当該アドレス情報に対応づけて自己の共有メモリに当該データの格納アドレスを設定するとともに、前記一覧情報に含まれるデータが格納される自己の共有メモリと他のシミュレータの共有メモリ間のアドレス変換テーブルを生成する共有メモリ管理部を備え、
前記通信処理部は、前記共有メモリ管理部で生成されたアドレス変換テーブルに基づいて自己の共有メモリから読み出した送信用データを、他のシミュレータの通信処理部に送信するように構成されている分散型シミュレーションシステム。
【請求項２】
前記共有メモリ管理部は、他のシミュレータから送信された前記一覧情報に含まれるデータを、自己の共有メモリに格納するためのアドレス情報を生成して、当該他のシミュレータに送信し、
前記通信処理部は、他のシミュレータの通信処理部から送信されたデータを自己の共有メモリに書き込むように構成されている請求項１記載の分散型シミュレーションシステム。
【請求項３】
前記通信処理部は、前記シミュレーション演算部により実行されるシミュレーションの演算周期より短いインタバル、または、前記演算周期と同期して送受信処理を実行する請求項１または２記載の分散型シミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションを、ネットワークを介して接続された複数のシミュレータで分散して行う分散型シミュレーションシステムに関する。
【背景技術】
【０００２】
近年、様々な分野において、実際の装置やプラントにおけるメカニズムや電気的信号等の果たす役割を数式化したモデルをコンピュータに演算させる、即ち、仮想空間においてシミュレーションすることにより、現実の実証実験を行うことなく製品特性の確認や起こり得る問題の抽出を可能とするシミュレータが利用されている。したがって、シミュレータを利用することで製品開発に要する期間やコストを削減し、製品開発に係る安全性を向上させることができる。
【０００３】
複雑な装置やプラント等のシステムに対応して多数の複雑なモデルを処理する必要のある場合に単体のシミュレータでは演算速度を律するハードウェアによる限界や、ソフトウェアの開発負荷の増大による限界等があるため、モデルを複数に分割し、各モデルに対応した複数のシミュレータを相互にネットワーク接続した分散型シミュレーションシステムが多く利用されている。
【０００４】
このような分散型シミュレーションシステムは、各シミュレータが所定の単位模擬演算処理を所定周期で繰り返すことによりシステム全体を模擬するものであるが、正確なシミュレーションを行うためには、シミュレーション実行時におけるシミュレータ間の同期と、シミュレーション実行時におけるデータの整合性の確保が重要である。
【０００５】
例えば、特許文献１には、ネットワークを介して接続された複数のシミュレータを備えた分散型シミュレーションシステムにおいて、各シミュレータにおいて所定の処理が実行される前に、相互に関連する関連データを共有するデータ共有管理部を備え、データ共有管理部は、各シミュレータにおける所定の処理の実行に先立って、他のシミュレータと同期を取った後に関連データの共有化処理を実行し、共有化処理が終了した後に同期を取って各所定の処理を実行するように構成された分散型シミュレーションシステムが記載されている。
【０００６】
ここで、データ共有管理部は、各シミュレータにおいて所定の処理が実行される前に、ユーザにより設定された関連データの配送経路情報と、ユーザにより設定された各シミュレータのメモリにおける関連データの記憶領域を利用し、当該配送経路情報に基づいて、適切な送信元シミュレータの当該記憶領域から関連データを読み込み、適切な送信先シミュレータの当該記憶領域に当該関連データを書き込むことにより、関連データの共有化処理を実現するように構成されている。
【０００７】
また、特許文献２には、クラスタシステムにおける各ノード間で通信されるデータのアクセス権を管理するために、各ノードは、クラスタシステムを構成する複数のノードと同数の分割領域が確保された共有メモリを備え、各分割領域は、個別に複数のノードの各々に対応しており、各分割領域への読み出し／書き込みを管理する管理テーブルを備え、複数のノードと接続され、送信元ノードにおける送信元ノードの管理テーブルを参照して得られる書き込み可能な分割領域に書き込まれた通信データを、送信先ノードにおける送信元ノードに対応する分割領域に書き込む共有メモリ制御部からなるクラスタシステムが提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２７２２５号公報
【特許文献２】特開２０００−２５９５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述の特許文献１においては、データ共有管理部による関連データの共有化処理を実行するためには、関連データを格納するための記憶領域を各シミュレータのメモリに割り付ける設定操作を行い、当該設定されたメモリ領域に格納される関連データを所定のシミュレータへ配送する、あるいは、当該割り付けられたメモリ領域に格納された関連データを自己のシミュレータの所定の処理で読み込む等、関連データを配送する経路情報を各シミュレータに対して設定操作する煩雑さが生じるという問題があった。さらに、当該設定操作が誤って行われることにより、各シミュレータが誤動作する虞があった。
【００１０】
また、各シミュレータをノードとして、特許文献２におけるクラスタシステムを分散型シミュレーションシステムとして構成した場合は、シミュレータが互いに通信データを送受信するとき、各シミュレータでは、分散シミュレーションシステムを構成する全シミュレータと同数の分割領域を設定し、当該分割領域に対する読み込み／書き込みの権限を設定操作する煩雑さが生じるという問題があった。さらに、読み込み／書き込みの両方の権限が設定された分割領域に対しては、各シミュレータが実行する読み込み／書き込み処理のタイミングにずれが生じると、例えば、他方のシミュレータから書き込まれたデータを読み込む前に、当該データに対応する分割領域のデータを更新してしまう等、データの整合性が取れない虞があった。
【００１１】
本発明の目的は、上述した従来の問題点に鑑み、各シミュレータ間のデータの配送経路の設定が、容易に且つ適切に設定可能な分散型シミュレーションシステムを提供する点にある。
【課題を解決するための手段】
【００１２】
上述の目的を達成するため、本発明による分散型シミュレーションシステムの第一の特徴構成は、他のシミュレータとの間でシミュレーションに必要なデータを授受する通信処理部と、前記通信処理部で授受されるデータが格納される共有メモリと、前記共有メモリに書き込まれたデータを用いてシミュレーションを実行するシミュレーション演算部を含むシミュレータが、ネットワークを介して管理装置に複数接続され、各シミュレータで分散してシミュレーションが実行される分散型シミュレーションシステムであって、各シミュレータに、前記管理装置により設定されたシミュレータ間のデータ配送経路情報に基づいて、他のシミュレータに送信すべきデータの一覧情報を当該他のシミュレータに送信し、前記一覧情報に含まれるデータが格納される当該他のシミュレータの共有メモリのアドレス情報を、当該他のシミュレータから受信し、当該アドレス情報に対応づけて自己の共有メモリに当該データの格納アドレスを設定するとともに、前記一覧情報に含まれるデータが格納される自己の共有メモリと他のシミュレータの共有メモリ間のアドレス変換テーブルを生成する共有メモリ管理部を備え、前記通信処理部は、前記共有メモリ管理部で生成されたアドレス変換テーブルに基づいて自己の共有メモリから読み出した送信用データを、他のシミュレータの通信処理部に送信するように構成されている点にある。
【００１３】
上述の構成によれば、管理装置によりシミュレータ間のデータ配送経路情報が設定されると、通信処理部は、共有メモリ管理部により生成されたアドレス変換テーブルに基づいて、自己の共有メモリから読み出した送信用データを、他のシミュレータの通信処理部に送信することができる。したがって、各シミュレータの共有メモリに対して、データ配送経路情報に基づく送信用データを格納するための領域を設定操作する手間をかけることなく、容易に分散型シミュレーションシステムを構築することができるようになる。
【発明の効果】
【００１４】
以上説明した通り、本発明によれば、各シミュレータ間のデータの配送経路の設定が、容易に且つ適切に設定可能な分散型シミュレーションシステムを提供することができるようになった。
【図面の簡単な説明】
【００１５】
【図１】分散型シミュレーションシステムの構成図
【図２】シミュレータのブロック構成図
【図３】共有メモリ管理部の要部のブロック構成図
【図４】各シミュレータ間の関連データの配送の説明図
【図５】分散型シミュレーションシステムによるシミュレーションの動作を示すフローチャート
【図６】ＣＰＵボードの説明図
【図７】単位模擬演算処理を示すフローチャート
【図８】マスタシミュレータ間でのデータ共有化処理を示すフローチャート
【図９】図８に示すデータ共有化処理の後続の処理を示すフローチャート
【図１０】配送経路情報の設定操作及び送受信データ領域の設定処理を示すフローチャート
【図１１】配送経路情報の設定操作に利用する画面の説明図であり、（ａ）は関連データを選択操作する画面の説明図、（ｂ）は配送経路を設定操作する画面の説明図
【図１２】関連データの配送経路を例示する説明図
【図１３】図１２に示す関連データの配送経路に対応して設定される送受信データ領域の説明図
【図１４】マスタシミュレータとスレーブシミュレータ間でのデータ共有化処理を示すフローチャート
【図１５】基準クロックの補正の説明に用いる図
【発明を実施するための形態】
【００１６】
以下に、本発明による分散型シミュレーションシステムの実施形態について、車両の各部を模擬する複数のシミュレータがネットワーク接続された分散型シミュレーションシステムを例に説明する。
【００１７】
図１に示すように、評価対象である制御系２,３,４と夫々ローカル接続され、制御系２,３,４により制御される被制御系を模擬する複数のシミュレータ２０,３０,４０と、各シミュレータ２０,３０,４０を管理して制御系を評価する管理装置５とがネットワーク６により接続され、各シミュレータ２０,２１,３０,４０が所定の単位模擬演算処理を所定周期で繰り返すことにより被制御系全体の動作、即ち、車両の動作を模擬する分散型シミュレーションシステム１が構成されている。
【００１８】
シミュレータ２１は、シミュレータ２０をマスタシミュレータとするスレーブシミュレータであり、ローカルネットワーク８を介してマスタシミュレータ２０と接続され、ローカルネットワーク８を介して管理装置５からのデータを受信するように構成されている。
【００１９】
シミュレータ２０,２１,３０,４０は、エンジンやブレーキ等の車両の各機能ブロックを模擬するもので、具体的にはシミュレータ２０,２１はエンジンシステムを模擬し、シミュレータ３０はブレーキシステムを模擬し、シミュレータ４０はトランスミッションシステムを模擬するものである。本実施形態ではこれらを中心に説明するが、実際には、車両の他の機能ブロックを構成する複数のシミュレータが前記ネットワーク６に接続されている。
【００２０】
各シミュレータ２０,２１,３０,４０には、それらを電子制御するマイクロコンピュータを備えた制御系としての電子制御装置（以下、「ＥＣＵ」と記す。）２,３,４がローカル接続され、各ＥＣＵ２,３,４からの制御指令に基づいて所定の模擬演算を実行し、その結果を各ＥＣＵ２,３,４に出力するように構成されている。
【００２１】
尚、ＥＣＵとしては、ＣＰＵボードに実装された実機搭載可能な形態に限らず、ＥＣＵの開発段階等にＥＣＵをエミュレートするＰＣとその動作プログラムや周辺機器などから構成される擬似ＥＣＵがシミュレータに接続されることも可能である。
【００２２】
管理装置５は、シミュレータ２０,２１,３０,４０に移植する複数のモデルプログラム（エンジンやブレーキ等の車両の機能ブロックである被制御系を数式で模擬するプログラムで、以下「モデル」とも記す。）や、シミュレーション条件を設定する制御プログラムが格納され、ＧＵＩ（グラフィカルユーザインターフェース）を介したオペレータからの設定条件に基づき、ネットワーク６を介してシミュレータ２０,２１,３０,４０にモデルプログラムを移植するとともに、各シミュレータ２０,２１,３０,４０間で送受信される関連データ及び当該関連データの配送経路等の、所定のシミュレーション条件を入力してシミュレーションを実行制御する。
【００２３】
管理装置５は、後述するノード単位で各シミュレータ２０,２１,３０,４０を認識し、その表示部に前記設定条件やノード構成、さらには、各シミュレータ２０,２１,３０,４０から吸い上げた各部の計測データ、例えばエンジン回転数や油温等のデータがグラフィカルに表示されるように構成され、オペレータが表示画面を操作または確認しながら各ＥＣＵ２,３,４の評価が行えるように構成されている。
【００２４】
シミュレータ２０,２１,３０,４０は単独、または協働でモデル演算を実行する。即ち、動作が複雑または演算による負荷が多大となる等のモデルは、当該モデル用のハードウェア構成を備えた単独のシミュレータで演算するのではなく、それらの機能を分割したハードウェア構成を備えた複数のシミュレータで演算するように構成されている。
【００２５】
夫々のモデルを演算するハードウェアの単位を「ノード」といい、ノードが複数のシミュレータから構成される場合、ノードは１つのマスタシミュレータと単一または複数のスレーブシミュレータから構成される。本実施例において、シミュレータ２０,２１は協働してエンジンシステムを構成するモデルを演算し、シミュレータ２０がマスタシミュレータ、シミュレータ２１がスレーブシミュレータに設定され、マスタシミュレータがネットワーク６に接続され、スレーブシミュレータはマスタシミュレータにローカル接続されている。即ち、本実施例において、ＥＵＣ２はエンジン制御ＥＣＵ、ＥＣＵ３はブレーキ制御ＥＣＵ、ＥＣＵ４はトランスミッション制御ＥＣＵとして構成されている。
【００２６】
各シミュレータ２０,２１,３０,４０は、図２に示すように、ネットワーク６と接続するためのポートをオンボードで備えている。当該ボードは、ＣＰＵボード９０とシミュレーション演算部９１と複数のＩ／Ｏボード９２０,９２１とＩ／Ｏユニット９２とＩ／Ｆユニット９３とで構成され、夫々がＰＣＩバス９４によりＣＰＵボード９０と接続されるとともに、シミュレーション演算部９１とＩ／Ｏユニット９２とＩ／Ｆユニット９３が複数のローカル信号ライン９５,９６,９７で接続されている。
【００２７】
ＣＰＵボード９０は、自身を統括制御するオペレーティングシステムを実行するように構成され、シミュレーション演算部９１は、管理装置５から移植されたモデルプログラムを実行するＣＰＵを備えて構成されている。
【００２８】
Ｉ／Ｏボード９２０,９２１は、シミュレーション演算部９１から入力された論理レベルの演算結果に基づいて物理レベルの信号に変換するとともにＥＣＵ２,３,４からの物理レベルの制御信号を論理レベルの制御信号に変換してシミュレーション演算部９１に出力する各種のドライバを備えて構成されている。
【００２９】
Ｉ／Ｏユニット９２は、各シミュレータ２０,３０,４０間で演算に必要なプロセスデータ等でなる関連データを相互に遣り取りする共有メモリ９２３を備えた共有メモリボード９２２等から構成され、Ｉ／Ｆユニット９３は、ＥＣＵ２,３,４とＩ／Ｏユニット９２との間で信号レベルを整合させるレベル変換機能等を備えたＩ／Ｆボード９３０や、各ＥＣＵ間のデータ伝送を行うＣＡＮバスの信号を中継するＣＡＮボード９３１等を備えて構成されている。
【００３０】
即ち、ＥＣＵ２,３,４の入出力ポートとＩ／Ｆユニット９３が実際の車両で使用されるごとき信号伝達用のハーネス９８で接続され、Ｉ／Ｆユニット９３により、Ｉ／Ｏユニット９２との間で信号レベルが整合されるように構成されている。
【００３１】
具体的には、Ｉ／Ｏユニット９２は、シミュレーション演算部９１で演算されたエンジンオイルの温度、排ガス温度、排ガスの酸素濃度等のデジタル信号をアナログ信号に変換するとともにＩ／Ｆユニット９３から出力された制御用のアナログ信号をデジタル信号に変換するＡ／Ｄ変換ボード９２０と、シミュレーション演算部９１で演算された各種の論理レベルのデータをパルス信号に変換するとともにＩ／Ｆユニット９３を介して入力されたパルス信号を論理レベルのデータに変換するパルス処理ボード９２１等を備えて構成されている。
【００３２】
例えば、パルス処理ボード９２１では、シミュレーション演算部９１で演算されたエンジンの回転数をクランクパルス信号に変換し、Ｉ／Ｆユニット９３を介して入力されたＥＣＵ２、３、４からの各種の電磁バルブに対するデューティ制御信号をデジタルデータに変換する。
【００３３】
各マスタシミュレータ２０,３０,４０のＩ／Ｏユニット９２に装着された共有メモリボード９２２には、図３に示すように、他のマスタシミュレータとの間で演算に必要な関連データを遣り取りする共有メモリ９２３と、共有メモリ９２３に記憶されたデータをシミュレータ間で転送制御する光ファイバ７を用いた数十Ｇｂｐｓから数Ｇｂｐｓの通信速度を実現するスターファブリックや高速ＬＡＮ等と接続する通信インターフェース９２４と、スレーブシミュレータとの間で演算に必要な関連データを遣り取りするローカル共有メモリ９２５と、ローカル共有メモリ９２５に記憶された関連データを転送するネットワーク８と接続して関連データを転送制御するローカル通信インターフェース９２６等が備えられ、何れかの共有メモリボード９２２には、それら通信インターフェース９２４、９２６を管理する通信処理部９２７、９２８が備えられている。
【００３４】
即ち、共有メモリボード９２２と、共有メモリ９２３またはローカル共有メモリ９２５とを管理するＣＰＵボード９０により、各シミュレータ２０,２１,３０,４０間でデータを共有する共有メモリ管理部１１が構成される。尚、データ共有化処理については後に詳述する。
【００３５】
各共有メモリ９２３は、図４に示すように、自装置のシミュレーション演算部９１や自装置に接続されたＥＣＵに必要な関連データであって、他のシミュレータから入力される関連データを格納する受信データ領域９２３ａと、他のシミュレータのシミュレーション演算部９１や他のシミュレータに接続されたＥＣＵに必要な関連データであって、自装置で生成された関連データを記憶する送信データ領域９２３ｂに領域区画され、後述する所定のタイミングで通信インターフェース９２４を介して他のシミュレータの送信データ領域９２３ｂに格納された関連データが自装置の受信データ領域９２３ａに配送され、自装置の送信データ領域９２３ｂに格納された関連データが他のシミュレータの受信データ領域９２３ａに配送される。
【００３６】
ここで、受信データ領域９２３ａは送信元である他のシミュレータ毎に異なる領域に区分され、送信データ領域９２３ｂは送信先である他のシミュレータ毎に異なる領域に区分されている。
【００３７】
例えば、自装置に接続されたＥＣＵのＣＡＮバスの制御信号やデータは自装置のＣＡＮボード９３１を介して送信データ領域９２３ｂに格納され、通信インターフェース９２４を介して他のシミュレータの受信データ領域９２３ａに転送された後に当該他のシミュレータのＣＡＮボード９３１を介して当該他のシミュレータに接続されたＥＣＵのハーネス９８に接続される。
【００３８】
また、他のシミュレータに接続されたＥＣＵのＣＡＮバスの制御信号やデータは当該他のシミュレータのＣＡＮボード９３１を介して送信データ領域９２３ｂに格納され、通信インターフェース９２４を介して自装置の受信データ領域９２３ａに転送された後に自装置のＣＡＮボード９３１を介して自装置に接続されたＥＣＵのハーネス９８に接続される。
【００３９】
即ち、ＣＡＮボード９３１と共有メモリボード９２２と通信インターフェース９２４により、ＣＡＮバスがエミュレートされる。
【００４０】
各シミュレータ２０,３０,４０のシミュレーション演算部９１やＩ／Ｏユニット９２間で共有されるべき関連データも同様にして、他のシミュレータに配送すべき関連データが送信データ領域９２３ｂに格納され、通信インターフェース９２４を介して他のシミュレータから配送されるべき関連データが受信データ領域９２３ａに取り込まれる。
【００４１】
尚、各シミュレータ２０,３０,４０が備える共有メモリ９２３間での関連データの遣り取りについて上述したが、シミュレータ２０、２１が備えるローカル共有メモリ９２５の関連データの遣り取りについても同様に関連データの遣り取りを行う。即ち、ローカル共有メモリ９２５は受信データ領域９２５ａと、送信データ領域９２５ｂとに領域区画され、ローカル通信インターフェース９２６を介して関連データの遣り取りを行う。
【００４２】
当該分散型シミュレーションシステム１の行う車両の動作のシミュレーションは、図５に示すように、管理装置５が、ＧＵＩを介してオペレータから操作されたシミュレーション条件、または、予めプログラムとして準備されたシミュレーション条件で各シミュレータ２０,２１,３０,４０を起動させるべく、ネットワーク６を介して各シミュレータ２０,２１,３０,４０のＣＰＵボード９０にシミュレーション条件及び起動指令を出力すると（ＳＡ１）、ＣＰＵボード９０は当該シミュレーション条件をＰＣＩバス９４を介して各シミュレーション演算部９１、Ｉ／Ｏユニット９２に反映させ（ＳＡ２）、各シミュレータ２０,２１,３０,４０は、与えられたシミュレーション条件に従って後述の所定の単位模擬演算処理を所定周期で繰り返す（ＳＡ３、ＳＡ４）。
【００４３】
例えば、ＧＵＩを介して入力された各ＥＣＵ２,３,４がバッテリに接続されたというシミュレーション条件で管理装置５から起動指令が出力されると、シミュレーション演算部９１からＩ／Ｏユニット９２にバッテリ電圧信号が出力され、当該バッテリ電圧信号がＩ／Ｆユニット９３によりＤＣ１４Ｖの電圧に変換されて各ＥＣＵ２,３,４にバッテリ電圧が供給される。各ＥＣＵ２,３,４はバッテリ供給電圧に基づいて作動するリセット回路によりリセット信号が入力されて夫々の制御演算を開始する。
【００４４】
以後、各ＥＣＵ２,３,４からの制御指令が、Ｉ／Ｏユニット９２、Ｉ／Ｏユニット９２を介してシミュレーション演算部９１に伝達され、シミュレーション演算部９１によりエンジン等の動作を模擬する模擬演算が実行されるのである。シミュレーション演算部９１による模擬演算結果は、Ｉ／Ｏユニット９２、Ｉ／Ｏユニット９２を介して実際の車両の各種の状態信号に変換されて各ＥＣＵ２,３,４に入力される。
【００４５】
この状態で、ＧＵＩを介して入力されたイグニッションスイッチ信号がオンされたというシミュレーション条件が管理装置５から出力されると、例えば、エンジンＥＵＣ２はスタータモータを起動する制御信号を出力し、シミュレーション演算部９１はスタータモータの模擬演算を実行し、エンジン模擬演算が起動される。
【００４６】
また、例えば、エンジンが高速回転中の車両の挙動を解析する場合には、管理装置５からエンジンが高速回転中の車両の状態データがシミュレーション条件としての初期データとしてＣＰＵボード９０に入力され、ＣＰＵボード９０からシミュレーション演算部９１等に車両の状態データが反映されて各シミュレータが起動する。
【００４７】
さらに、例えば、エンジン系のあるセンサが故障したときの各ＥＣＵ２,３,４の動作を評価する場合には、管理装置５からエンジン起動中であるセンサが故障しているとのシミュレーション条件としてのイベント発生条件が各ＣＰＵボード９０に入力され、各ＣＰＵボード９０からシミュレーション演算部９１等に車両の状態データが反映されて各シミュレータが起動する。
【００４８】
シミュレーション演算部９１へのＥＣＵ等からの入力データや、シミュレーション演算部９１による演算結果は、ＰＣＩバス９４を介してＣＰＵボード９０に吸い上げられた後に管理装置５にネットワーク６を介して出力され、管理装置５の表示装置の画面に、例えばトレンドグラフやグラフィックデータ等の表示データに変換されて表示される。具体的には、エンジン回転数や燃費の推移を示すトレンドグラフとして表示され、運転席の表示装置を模擬した回転数表示計や速度表示計として表示される。
【００４９】
どのような条件でどのような模擬演算を実行するかというシミュレーション条件や、模擬演算結果を管理装置５の表示装置に表示するために各シミュレータ２０,２１,３０,４０から吸い上げるべきデータの種類等は予め管理装置５を介して設定されるものであり、これにより各ＥＣＵ２,３,４の制御状態が評価できるように構成されている。
【００５０】
以下に、各シミュレータ２０,２１,３０,４０で実行される模擬演算について詳述する。
【００５１】
各シミュレータ２０,２１,３０,４０は、各ＣＰＵボード９０による管理の下で、所定の周期、例えば１ｍｓｅｃ．周期で、機能の異なる複数の演算ステップの集合で構成される単位模擬演算処理を繰り返すように制御される。
【００５２】
各シミュレータ２０,２１,３０,４０のＣＰＵボード９０には、図６に示すように、内部動作を統括する基準クロック発生部が設けられ、シミュレーション演算部９１やＩ／Ｏユニット９２等の各ユニットは、基準クロック発生部９０ａからの基準クロックに基づいて演算処理に必要なタイマー値等の管理を行うように構成されている。つまり、各ユニットに設けられたＣＰＵは内部クロックに基づくタイマーレジスタの値に基づいて予め設定された演算処理を実行するのであるが、演算に必要なタイマー処理は基準クロックに基づいて判断されるのである。
【００５３】
さらに、ＣＰＵボード９０には、共有メモリ管理部１１と協働して該分散型シミュレーションシステム１に組み込まれた全てのシミュレータ２０,２１,３０,４０が同期して単位模擬演算処理を実行させるように同期制御部９０ｂが設けられている。
【００５４】
同期制御部９０ｂは、管理装置５から起動指令が送られると、基準クロックに基づいて自装置の単位模擬演算処理を起動し、単位模擬演算処理が分割された複数ステップのうち、何れかのステップの開始前または終了後に各シミュレータ間での演算タイミングの同期をとり、全シミュレータが同期して単位模擬演算処理を実行できるように制御する。尚、シミュレータ２１はシミュレータ２０とネットワーク８を介して、起動指令を受信する。
【００５５】
単位模擬演算処理は、図７に示すように、初期に他のシミュレータに必要な関連データを共有メモリ９２３の送信データ領域９２３ｂに格納するとともに、他のシミュレータから自装置に必要な関連データを共有メモリ９２３の受信データ領域９２３ａに取り込む第一データ共有化処理（Ｓ１）を実行するように構成されている。
【００５６】
続いて、単位模擬演算処理は、ＥＣＵからのデータをＩ／Ｏユニット９２に取り込むデバイス入力処理（Ｓ２）を実行し、取り込んだデータのうち、他のシミュレータのモデル演算に必要な関連データを共有メモリ９２３の送信データ領域９２３ｂに格納するとともに、他のシミュレータから取り込んだデータのうち自装置のモデル演算に必要な関連データを共有メモリ９２３の受信データ領域９２３ａに取り込む第二データ共有化処理（Ｓ３）を実行するように構成されている。
【００５７】
続いて、単位模擬演算処理は、モデル演算ユニット９１がＩ／Ｏユニット９２及び受信データ領域９２３ａから必要なデータを取り込んでモデル演算を実行するモデル演算処理（Ｓ４）を実行し、モデル演算の実行結果のうち他のシミュレータに必要な関連データを共有メモリ９２３の送信データ領域９２３ｂに格納するとともに、他のシミュレータによる演算結果のうち自装置が必要とする関連データを共有メモリ９２３の受信データ領域９２３ａに取り込む第三データ共有化処理（Ｓ５）を実行するように構成されている。
【００５８】
続いて、単位模擬演算処理は、モデル演算結果をＩ／Ｏユニット９２に出力するデバイス出力処理（Ｓ６）を実行し、モデル演算の結果やモデル演算の完了または未完了等の進捗状況を管理装置５に出力するモデル演算後処理（Ｓ７）を実行するように構成されている。
【００５９】
続いて、単位模擬演算処理は、Ｉ／Ｏユニット９２からサンプリングして他のシミュレータに関連データとして出力すべきデータを共有メモリ９２３の送信データ領域９２３ｂに格納するとともに、他のシミュレータのＩ／Ｏユニット９２からサンプリングされ自装置に必要な関連データを共有メモリ９２３の受信データ領域９２３ａに取り込む第四データ共有化処理（Ｓ８）を実行するように構成されている。
【００６０】
続いて、単位模擬演算処理は、予め設定された必要なデータをＩ／Ｏユニット９２及び受信データ領域９２３ａからサンプリングしてＣＰＵボード９０のメモリに記憶し管理装置５に出力するサンプリング処理（Ｓ９）を実行し、ステップＳ１からＳ９の処理を終了すると、所定の演算周期に同期してステップＳ１に戻るように構成されている（Ｓ１０）。
【００６１】
尚、上述したデータ共有化処理は、マスタシミュレータ間での関連データの送受信処理として説明しているが、マスタシミュレータとスレーブシミュレータ間の送受信処理においても、上述と同様のデータ共有化処理が行われている。
【００６２】
以下では、上述した第一から第四のデータ共有化処理について詳述する。
【００６３】
第一から第四のデータ共有化処理の実行に先立って、各シミュレータ２０,３０,４０のＣＰＵボード９０には予め管理装置５により他のシミュレータと共有すべき関連データ及び当該関連データの配送経路情報が設定操作される。即ち、図８に示すように、システムの初期設定時（ＳＢ１）や、モデルプログラムが各シミュレータに移植されるとき、またはシミュレーション開始時にシミュレーション条件の一部として各ＣＰＵボード９０に入力される（ＳＢ２）。
【００６４】
他のシミュレータと共有すべき関連データ及び当該関連データの配送経路情報の設定について詳述すると、システムの初期設定時（ＳＢ１）やシミュレーション条件の入力時（ＳＢ２）には、図１１（ａ）（ｂ）に示すように、各シミュレータに備えられたＩ／Ｏユニット９２から入出力されるデータの一覧や、各シミュレータで固有のシステムデータや、パターン信号等、シミュレータ間で入出力可能な関連データの一覧を示す関連データ一覧画面（図１１（ａ）参照）と、各シミュレータに備えられたＩ／Ｏユニット９２に備えられた入出力用ボードの一覧を示す送信先一覧画面（図１１（ｂ）参照）と、が管理装置５の表示部に隣接して表示される。尚、各シミュレータは、夫々のモデルを演算するハードウェアの単位である「ノード」として表示されている。
【００６５】
ユーザは、図１０に示すように、関連データ一覧画面からノード間で送受信する関連データを選択操作し、当該選択操作した関連データをドラッグアンドドロップ等の操作により、送信先一覧画面に表示された入出力用ボードに関連付けることにより、関連データ及び関連データの配送経路を設定操作する（ＳＣ１）。
【００６６】
例えば、図１１（ｂ）及び図１２に示すように、ノードＡには、ノードＡに備えられたモデル１の外部出力データがノードＢに備えらえたモデル１の外部入力データを扱う入出力ボードに入力される配送経路Ｒ１と、ノードＡに備えられたモデル１の外部出力データがノードＣに備えられたモデル２の外部入力データを扱う入出力ボードに入力される配送経路Ｒ２と、ノードＣに備えられたモデル１からの外部出力データがノードＡに備えられたモデル１の外部入力データを扱う入出力ボードに入力される配送経路Ｒ４が設定されている。さらに、ノードＢに備えられたモデル１の外部出力データがノードＣに備えられたモデル１の外部入力データを扱う入出力ボードに入力される配送経路Ｒ３が設定されている。
【００６７】
図１０に戻り、ユーザにより配送経路情報Ｒ１,Ｒ２,Ｒ３,Ｒ４が設定操作されると、設定操作された当該配送経路情報Ｒ１,Ｒ２,Ｒ３,Ｒ４は、管理装置５から各ノードに送信され（ＳＣ２）、配送経路情報の設定操作が終了する。
【００６８】
続いて、各ノードは、配送経路情報Ｒ１,Ｒ２,Ｒ３,Ｒ４に基づいて、自己の共有メモリ９２３に受信データ領域９２３ａと送信データ領域９２３ｂを設定する。
【００６９】
詳述すると、各ノードは、管理装置５から配送経路情報Ｒ１,Ｒ２,Ｒ３,Ｒ４を受信すると（ＳＤ１）、各ノードの共有メモリ管理部１１に当該受信した配送経路情報Ｒ１,Ｒ２,Ｒ３,Ｒ４を引き渡す。各ノードの共有メモリ管理部１１は、受信した配送経路情報Ｒ１,Ｒ２,Ｒ３,Ｒ４に基づいて、他のノードに送信すべき関連データの一覧情報を当該他のノードに送信する（ＳＤ２）。
【００７０】
例えば、ノードＡの共有メモリ管理部１１は、図１２に示すように、配送経路情報Ｒ１,Ｒ２からモデル１の外部出力データＡＭＯ１をノードＢ及びノードＣに送信することを判断すると、関連データの一覧情報として、モデル１の外部出力データＡＭＯ１の識別情報をノードＢ及びノードＣに対して送信する。
【００７１】
このとき、ノードＢ及びノードＣは、自己の受信データ領域９２３ａの設定処理を開始し、他のノードから送信された関連データを、自己の共有メモリ９２３の受信データ領域９２３ａに格納するためのアドレス情報を生成して、ノードＡに送信する。
【００７２】
例えば、ノードＢ及びノードＣは、ノードＡのモデル１の外部出力データＡＭＯ１の識別情報を受信すると（ＳＥ１）、当該受信した識別情報を自己の共有メモリ管理部１１に引き渡す。ノードＢ及びノードＣの共有メモリ管理部１１は、図１３に示すように、自己の共有メモリ９２３の受信データ領域９２３ａに、ノードＡのモデル１の外部出力データＡＭＯ１を格納するためのアドレス情報ＢＥＸ−Ｒ１,ＣＥＸ−Ｒ２を生成して（ＳＥ２）、当該アドレス情報ＢＥＸ−Ｒ１,ＣＥＸ−Ｒ２をノードＡに送信する（ＳＥ３）。
【００７３】
続いて、ノードＡの共有メモリ管理部１１は、関連データが格納される他のノードの共有メモリ９２３のアドレス情報を、当該他のノードから受信すると（ＳＤ３）、当該アドレス情報に対応づけて自己の共有メモリ９２３に当該データの格納アドレスを設定する（ＳＤ４）とともに、関連データが格納される自己の共有メモリ９２３と他のノードの共有メモリ９２３間のアドレス変換テーブルを生成する（ＳＤ５）。
【００７４】
例えば、ノードＡは、ノードＢ及びノードＣの共有メモリ管理部１１からアドレス情報ＢＥＸ−Ｒ１,ＣＥＸ−Ｒ２を受信して、共有メモリ管理部１１へ引き渡す（ＳＤ３）。共有メモリ管理部１１は、図１３に示すように、当該アドレス情報ＢＥＸ−Ｒ１,ＣＥＸ−Ｒ２に外部ノードのアドレスの識別子ＡＥＸ−を付与する等により対応づけて、自己の共有メモリ９２３の送信データ領域９２３ｂに、当該外部ノードへ送信するデータＡＭＯ１の格納アドレスＡＥＸ−ＢＥＸＲ１,ＡＥＸ−ＣＥＸＲ１を設定する（ＳＤ４）。
【００７５】
さらに、共有メモリ管理部１１は、図１３に示すように、シミュレーション演算部９１により当該データＡＭＯ１が読み書きされる自己の共有メモリ９２３のアドレス情報ＡＩＮ−ＡＭＯ１と、ノードＢ及びノードＣのアドレス情報ＢＥＸ−Ｒ１,ＣＥＸ−Ｒ２と、ノードＢ及びノードＣのアドレス情報ＢＥＸ−Ｒ１,ＣＥＸ−Ｒ２に対応づけられた送信データ領域９２３ｂのアドレス情報ＡＥＸ−ＢＥＸＲ１,ＡＥＸ−ＣＥＸＲ１と、で構成された自己の共有メモリ９２３と他のノードの共有メモリ９２３間のアドレスを変換するためのレコードを生成し、当該レコードを管理するアドレス変換テーブル９２９を生成する（ＳＤ５）。
【００７６】
以上のように、各ノードでステップＳＤ１からＳＤ５までの処理が行われ、各ノードの自己の共有メモリ９２３に送信データ領域９２３ｂが設定される。
【００７７】
さらに、各ノードの共有メモリ管理部１１は、管理装置５で設定された配送経路情報に基づいて、受信データ領域設定９２３ａを設定する。
【００７８】
上述の例を引き続き引用して詳述すると、図１０に示すように、ノードＡは、ノードＣにおけるステップＳＤ２の処理において送信された、配送経路情報Ｒ４に基づくモデル２の外部出力データＣＭＯ２の識別情報を受信すると、当該受信した識別情報を共有メモリ管理部１１に引き渡す（ＳＥ１）。
【００７９】
共有メモリ管理部１１は、当該受信した識別情報に基づいて、自己の共有メモリ９２３の受信データ領域９２３ａにノードＣのモデル２の外部出力データＣＭＯ２を格納するためのアドレス情報ＡＥＸ−Ｒ１を生成して（ＳＥ２）、当該アドレス情報ＡＥＸ−Ｒ１をノードＣに送信する（ＳＥ３）。
【００８０】
続いて、共有メモリ管理部１１は、受信データ領域９２３ａに格納される外部ノードからの受信データを、シミュレーション演算部９１により読み書きされる共有メモリ９２３のアドレスＡＩＮ−ＡＭＩ１に格納するために、共有メモリ９２３のアドレスＡＩＮ−ＡＭＩ１とステップＳＥ２で生成したアドレス情報ＡＥＸ−Ｒ１を対応付けたレコードをアドレス変換テーブル９２９に登録する（ＳＥ４）。
【００８１】
以上のように、各ノードでステップＳＥ１からＳＥ４までの処理が行われ、各ノードの自己の共有メモリ９２３に受信データ領域９２３ａが設定される。
【００８２】
図８に戻り、各ノードの共有メモリ９２３に受信データ領域９２３ａ及び送信データ領域９２３ｂが設定されると、各ノードのＣＰＵボード９０により、シミュレーションの実行開始時に必要なシステムデータ（以下、「初期化データ」と記す。）であって、他のノードに送信すべき関連データが存在する場合は、通信処理部９２７により、自装置の共有メモリ９２３の送信データ領域９２３ｂに当該関連データが格納される（ＳＢ３）。
【００８３】
例えば、図１３に示す送信データ領域９２３ｂのアドレスＡＩＮ−ＡＭＯ１にノードＡのモデル１の外部出力データＡＭＯ１に代えて、当該初期化データが格納されているとすると、通信処理部９２７により、アドレス変換テーブル９２９から当該初期化データが格納されているアドレスＡＩＮ−ＡＭＯ１に対応するレコードが取得され、当該レコードに含まれる外部ノードへの送信データ領域９２３ｂを示すアドレスＡＥＸ−ＢＥＸＲ１,ＡＥＸ−ＣＥＸＲ１に、アドレスＡＩＮ−ＡＭＯ１に格納された初期化データが格納される。
【００８４】
送信すべき全ての関連データが格納されると（ＳＢ４）、送信準備完了フラグ９２３ｃがセットされる（ＳＢ５）。送信準備完了フラグ９２３ｃがセットされた各通信インターフェース９２４は、各通信インターフェース９２４を管理する通信処理部９２７に送信要求する（ＳＢ６）。通信処理部９２７は、全ての通信インターフェース９２４から通信要求があるまで待機する（ＳＢ７）。
【００８５】
ここで、送信すべき関連データが無いとき、つまり、前回送信した関連データと値が変わらないときには、単に送信準備完了フラグ９２３ｃがセットされる。
【００８６】
通信処理部９２７は、全ての通信インターフェース９２４から通信要求があると（ＳＢ７）、全てのノード２０,３０,４０の送信準備完了フラグ９２３ｃがセットされたと確認し（ＳＢ８）、予め設定された順に関連データの送信処理を許容する（ＳＢ９）。
【００８７】
具体的には、先ず、最初のノード２０に設けられた通信インターフェース９２４は、外部ノードへの送信データ領域９２３ｂに格納された関連データを送信先毎に順次吸い上げて、当該送信データ領域９２３ｂのアドレスに対応する送信先のアドレス情報（例えば、図１３に示すＢＥＸＲ１,ＣＥＸＲ１）とともに、各送信先のノード３０,４０の通信インターフェース９２４に送信する。
【００８８】
各送信先のノード３０,４０の通信インターフェース９２４は、夫々、受信したアドレス情報に対応する受信データ領域９２３ａのアドレスに、受信した関連データを格納する。このような関連データの送信処理がノード３０,４０毎に繰り返される。
【００８９】
送信元の通信インターフェース９２４は、送信データ領域９２３ｂに格納された関連データの全ての配送処理が終了すると（ＳＢ１０）、当該送信データ領域９２３ｂにセットされている送信準備完了フラグ９２３ｃをリセットして（ＳＢ１１）、当該ノードのＣＰＵボード９０に関連データの送信処理が終了したことを通知する（ＳＢ１２）。
【００９０】
送信先の通信インターフェース９２４は、受信データ領域９２３ａに他のノードからの関連データを格納すると、アドレス変換テーブル９２９から当該受信データ領域９２３ａに対応するアドレス（例えば、図１３に示すＡＩＮ−ＡＭＩ１）に当該関連データを取り込み（ＳＢ１３）、送信元のノード毎に区画された受信データ領域９２３ａに受信完了フラグ９２３ｄ１,９２３ｄ２をセットして（ＳＢ１４）、送信先のノードの同期制御部９０ｂを備えたＣＰＵボード９０に送信元毎に関連データの受信処理が終了したことを通知する（ＳＢ１５）。
【００９１】
送信先のノードのＣＰＵボード９０（同期制御部９０ｂ）は、受信データ領域９２３ａの受信完了フラグ９２３ｄ１,９２３ｄ２がセットされたときに（ＳＢ１６）、送信元のノードから関連データの受信が終了したことを確認する（ＳＢ１７）。
【００９２】
各ノード２０,３０,４０のＣＰＵボード９０（同期制御部９０ｂ）は、自装置の送信データ領域９２３ｂの送信準備完了フラグ９２３ｃがリセットされ（ＳＢ１１）、且つ、受信データ領域９２３ａの送信元毎の受信完了フラグ９２３ｄ１,９２３ｄ２の全てがセットされるまで待機し（ＳＢ１６）、送信準備完了フラグ９２３ｃがリセットされ（ＳＢ１１）、且つ、受信データ領域９２３ａの送信元毎の受信完了フラグ９２３ｄ１,９２３ｄ２の全てがセットされていると確認すると（ＳＢ１７）、データ共有化処理が終了したと判断して（ＳＢ１８）全ての受信完了フラグ９２３ｄ１,９２３ｄ２をリセットし（ＳＢ１９）、次の処理を開始するように制御する（ＳＢ２０）。
【００９３】
以上の動作により、ノード２０,３０,４０において、制御系からのデータ入力ステップ、被制御系を模擬するモデル演算ステップ、モデル演算結果の制御系へのデータ出力ステップ、モデル演算後処理ステップ、サンプリングステップの各ステップが同期して実行され、単位模擬演算処理が円滑に進められるのである。
【００９４】
つまり、共有メモリ管理部１１は、送信準備完了フラグ９２３ｃに基づいて、関連データを送信する他のノードと同期をとった後にデータの共有化処理を行うものであり、データの共有化処理を行う前に行う必要がある処理、つまり、上述のデバイス入力処理、モデル演算処理、デバイス出力処理、モデル演算後処理、サンプリング処理の何れかの処理を完了させていることを示す受信完了フラグ９２３ｄ１,９２３ｄ２が共有メモリ９２３に設定されている場合に、他のノードと関連データを整合するための同期が取れたと判断するものである。
【００９５】
上述したデータ共有化処理は、各ノード２０,３０,４０のＣＰＵボード９０により、他のノードに送信すべき関連データが自装置の共有メモリ９２３の送信データ領域９２３ｂに夫々格納され、送信準備完了フラグ９２３ｃがセットされるものであるが、関連データを自装置の共有メモリ９２３の送信データ領域９２３ｂに格納し、送信準備完了フラグ９２３ｃをセットするのはＣＰＵボード９０に制限されるものではなく、ＣＰＵボード９０の監視下でモデル演算処理に基づくデータ共有化処理ではシミュレーション演算部９１が、デバイス入出力処理に基づくデータ共有化処理ではＩ／Ｏユニット９２が実行してもよい。
【００９６】
上述したデータ共有化処理はマスタシミュレータ間でのデータ共有化処理であるが、図１４に示すように、マスタシミュレータ間でのデータ共有化処理の前に（ＳＤ１）、マスタシミュレータとスレーブシミュレータ間で他のマスタシミュレータに送信すべき関連データの共有化処理が行われ（ＳＤ２）、データ共有化処理後に（ＳＤ３）、マスタシミュレーション間でのデータ共有化処理を行い（ＳＤ４）、マスタシミュレータ間でのデータ共有化処理の後（ＳＤ５）、マスタシミュレータとスレーブシミュレータ間で他のマスタシミュレータから受信すべき関連データの共有化処理が行われる（ＳＤ６）。また、マスタシミュレータとスレーブシミュレータ間でのみ共有する必要のある関連データは、マスタシミュレータ間でのデータ共有化処理の前後の何れで行われるものであってもよい。
【００９７】
このようにして全てのノード２０,２１,３０,４０が同期を取って単位模擬演算処理を実行することができるのであるが、基準クロック発生部９０ａからの基準クロックはノード毎に微妙に異なり、各基準クロックに基づく演算結果が累積されると大きな誤差となって、ノードの演算精度に大きな影響を与える虞がある。
【００９８】
そこで、管理装置５に設けた同期クロック生成部５ａにより生成された同期クロックデータを、ネットワーク６を介して各ノード２０,２１,３０,４０に送信するように構成し、各ノード２０,２１,３０,４０のＣＰＵボード９０に、同期クロックデータに基づいてシミュレーション演算の基準クロックに基づくタイマーレジスタの値を補正するクロック補正部９０ｃを備えている。
【００９９】
図１５に示すように、同期クロックデータは夫々の基準クロックで動作する単位模擬演算処理の時間１ｍｓｅｃ．よりも短い時間間隔で入力されるため、各ノード２０,２１,３０,４０は、クロック補正部９０ｃにより基準クロックの僅かなずれを補正することができる。
【０１００】
以下、別実施形態について説明する。上述の実施形態では、シミュレータ２０がマスタシミュレータ、シミュレータ２１がスレーブシミュレータとして協働して、被制御系であるエンジンのノードを構成したが、マスタシミュレータに接続されるスレーブシミュレータの数は特に制限されるものではない。
【０１０１】
管理装置５から移植されたモデルプログラムを実行するＣＰＵを備えたシミュレーション演算部９１も、単一のモデル演算処理ボードで構成されるものに限らず、複数のモデル演算処理ボードで構成されるものであってもよい。
【０１０２】
単位模擬演算処理は、上述したものに制限されるものではなく、少なくとも分散処理を行う複数のシミュレータ以外からデータの入力を行う入力ステップ、モデル演算を行うモデル演算ステップ、分散処理を行う複数のシミュレータ以外にデータの出力を行う出力ステップ、モデル演算を行って得られたモデルの演算データをメモリに記憶する記憶ステップを備えるものであればよく、データ共有化処理はこれらのステップの実行に先立って行われるように構成するものであればよい。
【０１０３】
また、共有メモリ管理部１１は、入力ステップ、モデル演算ステップ、出力ステップ、記憶ステップの各ステップの実行に先立ってデータ共有化処理を実行するものを説明したが、全てのステップにおいてデータ共有化処理を実行するもののみならず、少なくとも２つのステップの開始前にデータ共有化処理を行うものであればよい。
【０１０４】
上述の実施形態では、複数の電子制御装置により分散制御される車両の各機能ブロックを模擬する分散型シミュレーションシステム１について説明したが、分散型シミュレーションシステム１は車両を対象とするものに限るものではなく、航空機、空調システム、或いは化学プラントシステム等、複雑な処理系を模擬する場合に適用できるものである。
【０１０５】
上述の実施形態では、各シミュレータ２０,２１,３０,４０に制御系としての電子制御装置２、３、４を接続するものを説明したが、シミュレータに必要な外部データを供給するものであれば、接続される外部機器は被制御系機器に限るものではない。
【０１０６】
上述の実施形態では、管理装置５から送信された同期クロックデータに基づき、夫々が備えるクロック補正部が各シミュレータ２０,２１,３０,４０の基準クロックを補正する構成としたが、同期クロックデータは管理装置５から供給されるものに限らず、管理装置５以外の同期クロック生成装置からネットワーク６を介して、或いは同期クロックデータ供給用のネットワークを備え、ネットワークに各ノードを接続してネットワークを介して供給されるものであってもよく、ネットワークを介さずに直接供給されるように構成するものであってもよい。
【０１０７】
上述した実施形態は、本発明を実現する一実施例を説明するものであり、各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、構築するシステムに応じて適宜変更設計することが可能である。
【符号の説明】
【０１０８】
１：分散型シミュレーションシステム
５：管理装置
１１：共有メモリ管理部
２０：シミュレータ（マスタシミュレータ）
２１：シミュレータ（スレーブシミュレータ）
３０：シミュレータ（マスタシミュレータ）
４０：シミュレータ（マスタシミュレータ）
５ａ：同期クロック生成部
９１：シミュレーション演算部
Ｒ１：配送経路（ノードＡ−ノードＢ間）
Ｒ２,Ｒ４：配送経路（ノードＡ−ノードＣ間）
Ｒ３：配送経路（ノードＢ−ノードＣ間）
９０ｃ：クロック補正部
９２３：共有メモリ
９２３ａ：受信データ領域
９２３ｂ：送信データ領域
９２７：通信処理部（マスタシミュレータ間通信）
９２８：通信処理部（マスタシミュレータースレーブシミュレータ間通信）
９２９：アドレス変換テーブル
【図１】
2010244378.tif 000003
【図２】
2010244378.tif 000004
【図３】
2010244378.tif 000005
【図４】
2010244378.tif 000006
【図５】
2010244378.tif 000007
【図６】
2010244378.tif 000008
【図７】
2010244378.tif 000009
【図８】
2010244378.tif 000010
【図９】
2010244378.tif 000011
【図１０】
2010244378.tif 000012
【図１１】
2010244378.tif 000013
【図１２】
2010244378.tif 000014
【図１３】
2010244378.tif 000015
【図１４】
2010244378.tif 000016
【図１５】
2010244378.tif 000017