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