JP2010244378A - 分散型シミュレーションシステム - Google Patents

分散型シミュレーションシステム Download PDF

Info

Publication number
JP2010244378A
JP2010244378A JP2009093566A JP2009093566A JP2010244378A JP 2010244378 A JP2010244378 A JP 2010244378A JP 2009093566 A JP2009093566 A JP 2009093566A JP 2009093566 A JP2009093566 A JP 2009093566A JP 2010244378 A JP2010244378 A JP 2010244378A
Authority
JP
Japan
Prior art keywords
data
simulator
shared memory
unit
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009093566A
Other languages
English (en)
Inventor
Hisaya Kamiyama
尚也 神山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Ten Ltd
Original Assignee
Denso Ten Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP2009093566A priority Critical patent/JP2010244378A/ja
Publication of JP2010244378A publication Critical patent/JP2010244378A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】各シミュレータ間のデータの配送経路の設定が、容易に且つ適切に設定可能な分散型シミュレーションシステムを提供する。
【解決手段】管理装置により設定されたシミュレータ間のデータ配送経路情報に基づいて他のシミュレータに送信すべきデータの一覧情報を当該他のシミュレータに送信し、一覧情報に含まれるデータが格納される当該他のシミュレータの共有メモリのアドレス情報を当該他のシミュレータから受信し、当該アドレス情報に対応づけて自己の共有メモリに当該データの格納アドレスを設定するとともに当該データが格納される自己の共有メモリと他のシミュレータの共有メモリ間のアドレス変換テーブルを生成する共有メモリ管理部と、当該アドレス変換テーブルに基づいて自己の共有メモリから読み出した送信用データを他のシミュレータの通信処理部に送信する通信処理部を各シミュレータに備えている。
【選択図】図10

Description

本発明は、シミュレーションを、ネットワークを介して接続された複数のシミュレータで分散して行う分散型シミュレーションシステムに関する。
近年、様々な分野において、実際の装置やプラントにおけるメカニズムや電気的信号等の果たす役割を数式化したモデルをコンピュータに演算させる、即ち、仮想空間においてシミュレーションすることにより、現実の実証実験を行うことなく製品特性の確認や起こり得る問題の抽出を可能とするシミュレータが利用されている。したがって、シミュレータを利用することで製品開発に要する期間やコストを削減し、製品開発に係る安全性を向上させることができる。
複雑な装置やプラント等のシステムに対応して多数の複雑なモデルを処理する必要のある場合に単体のシミュレータでは演算速度を律するハードウェアによる限界や、ソフトウェアの開発負荷の増大による限界等があるため、モデルを複数に分割し、各モデルに対応した複数のシミュレータを相互にネットワーク接続した分散型シミュレーションシステムが多く利用されている。
このような分散型シミュレーションシステムは、各シミュレータが所定の単位模擬演算処理を所定周期で繰り返すことによりシステム全体を模擬するものであるが、正確なシミュレーションを行うためには、シミュレーション実行時におけるシミュレータ間の同期と、シミュレーション実行時におけるデータの整合性の確保が重要である。
例えば、特許文献1には、ネットワークを介して接続された複数のシミュレータを備えた分散型シミュレーションシステムにおいて、各シミュレータにおいて所定の処理が実行される前に、相互に関連する関連データを共有するデータ共有管理部を備え、データ共有管理部は、各シミュレータにおける所定の処理の実行に先立って、他のシミュレータと同期を取った後に関連データの共有化処理を実行し、共有化処理が終了した後に同期を取って各所定の処理を実行するように構成された分散型シミュレーションシステムが記載されている。
ここで、データ共有管理部は、各シミュレータにおいて所定の処理が実行される前に、ユーザにより設定された関連データの配送経路情報と、ユーザにより設定された各シミュレータのメモリにおける関連データの記憶領域を利用し、当該配送経路情報に基づいて、適切な送信元シミュレータの当該記憶領域から関連データを読み込み、適切な送信先シミュレータの当該記憶領域に当該関連データを書き込むことにより、関連データの共有化処理を実現するように構成されている。
また、特許文献2には、クラスタシステムにおける各ノード間で通信されるデータのアクセス権を管理するために、各ノードは、クラスタシステムを構成する複数のノードと同数の分割領域が確保された共有メモリを備え、各分割領域は、個別に複数のノードの各々に対応しており、各分割領域への読み出し/書き込みを管理する管理テーブルを備え、複数のノードと接続され、送信元ノードにおける送信元ノードの管理テーブルを参照して得られる書き込み可能な分割領域に書き込まれた通信データを、送信先ノードにおける送信元ノードに対応する分割領域に書き込む共有メモリ制御部からなるクラスタシステムが提案されている。
特開2008−27225号公報 特開2000−259584号公報
上述の特許文献1においては、データ共有管理部による関連データの共有化処理を実行するためには、関連データを格納するための記憶領域を各シミュレータのメモリに割り付ける設定操作を行い、当該設定されたメモリ領域に格納される関連データを所定のシミュレータへ配送する、あるいは、当該割り付けられたメモリ領域に格納された関連データを自己のシミュレータの所定の処理で読み込む等、関連データを配送する経路情報を各シミュレータに対して設定操作する煩雑さが生じるという問題があった。さらに、当該設定操作が誤って行われることにより、各シミュレータが誤動作する虞があった。
また、各シミュレータをノードとして、特許文献2におけるクラスタシステムを分散型シミュレーションシステムとして構成した場合は、シミュレータが互いに通信データを送受信するとき、各シミュレータでは、分散シミュレーションシステムを構成する全シミュレータと同数の分割領域を設定し、当該分割領域に対する読み込み/書き込みの権限を設定操作する煩雑さが生じるという問題があった。さらに、読み込み/書き込みの両方の権限が設定された分割領域に対しては、各シミュレータが実行する読み込み/書き込み処理のタイミングにずれが生じると、例えば、他方のシミュレータから書き込まれたデータを読み込む前に、当該データに対応する分割領域のデータを更新してしまう等、データの整合性が取れない虞があった。
本発明の目的は、上述した従来の問題点に鑑み、各シミュレータ間のデータの配送経路の設定が、容易に且つ適切に設定可能な分散型シミュレーションシステムを提供する点にある。
上述の目的を達成するため、本発明による分散型シミュレーションシステムの第一の特徴構成は、他のシミュレータとの間でシミュレーションに必要なデータを授受する通信処理部と、前記通信処理部で授受されるデータが格納される共有メモリと、前記共有メモリに書き込まれたデータを用いてシミュレーションを実行するシミュレーション演算部を含むシミュレータが、ネットワークを介して管理装置に複数接続され、各シミュレータで分散してシミュレーションが実行される分散型シミュレーションシステムであって、各シミュレータに、前記管理装置により設定されたシミュレータ間のデータ配送経路情報に基づいて、他のシミュレータに送信すべきデータの一覧情報を当該他のシミュレータに送信し、前記一覧情報に含まれるデータが格納される当該他のシミュレータの共有メモリのアドレス情報を、当該他のシミュレータから受信し、当該アドレス情報に対応づけて自己の共有メモリに当該データの格納アドレスを設定するとともに、前記一覧情報に含まれるデータが格納される自己の共有メモリと他のシミュレータの共有メモリ間のアドレス変換テーブルを生成する共有メモリ管理部を備え、前記通信処理部は、前記共有メモリ管理部で生成されたアドレス変換テーブルに基づいて自己の共有メモリから読み出した送信用データを、他のシミュレータの通信処理部に送信するように構成されている点にある。
上述の構成によれば、管理装置によりシミュレータ間のデータ配送経路情報が設定されると、通信処理部は、共有メモリ管理部により生成されたアドレス変換テーブルに基づいて、自己の共有メモリから読み出した送信用データを、他のシミュレータの通信処理部に送信することができる。したがって、各シミュレータの共有メモリに対して、データ配送経路情報に基づく送信用データを格納するための領域を設定操作する手間をかけることなく、容易に分散型シミュレーションシステムを構築することができるようになる。
以上説明した通り、本発明によれば、各シミュレータ間のデータの配送経路の設定が、容易に且つ適切に設定可能な分散型シミュレーションシステムを提供することができるようになった。
分散型シミュレーションシステムの構成図 シミュレータのブロック構成図 共有メモリ管理部の要部のブロック構成図 各シミュレータ間の関連データの配送の説明図 分散型シミュレーションシステムによるシミュレーションの動作を示すフローチャート CPUボードの説明図 単位模擬演算処理を示すフローチャート マスタシミュレータ間でのデータ共有化処理を示すフローチャート 図8に示すデータ共有化処理の後続の処理を示すフローチャート 配送経路情報の設定操作及び送受信データ領域の設定処理を示すフローチャート 配送経路情報の設定操作に利用する画面の説明図であり、(a)は関連データを選択操作する画面の説明図、(b)は配送経路を設定操作する画面の説明図 関連データの配送経路を例示する説明図 図12に示す関連データの配送経路に対応して設定される送受信データ領域の説明図 マスタシミュレータとスレーブシミュレータ間でのデータ共有化処理を示すフローチャート 基準クロックの補正の説明に用いる図
以下に、本発明による分散型シミュレーションシステムの実施形態について、車両の各部を模擬する複数のシミュレータがネットワーク接続された分散型シミュレーションシステムを例に説明する。
図1に示すように、評価対象である制御系2,3,4と夫々ローカル接続され、制御系2,3,4により制御される被制御系を模擬する複数のシミュレータ20,30,40と、各シミュレータ20,30,40を管理して制御系を評価する管理装置5とがネットワーク6により接続され、各シミュレータ20,21,30,40が所定の単位模擬演算処理を所定周期で繰り返すことにより被制御系全体の動作、即ち、車両の動作を模擬する分散型シミュレーションシステム1が構成されている。
シミュレータ21は、シミュレータ20をマスタシミュレータとするスレーブシミュレータであり、ローカルネットワーク8を介してマスタシミュレータ20と接続され、ローカルネットワーク8を介して管理装置5からのデータを受信するように構成されている。
シミュレータ20,21,30,40は、エンジンやブレーキ等の車両の各機能ブロックを模擬するもので、具体的にはシミュレータ20,21はエンジンシステムを模擬し、シミュレータ30はブレーキシステムを模擬し、シミュレータ40はトランスミッションシステムを模擬するものである。本実施形態ではこれらを中心に説明するが、実際には、車両の他の機能ブロックを構成する複数のシミュレータが前記ネットワーク6に接続されている。
各シミュレータ20,21,30,40には、それらを電子制御するマイクロコンピュータを備えた制御系としての電子制御装置(以下、「ECU」と記す。)2,3,4がローカル接続され、各ECU2,3,4からの制御指令に基づいて所定の模擬演算を実行し、その結果を各ECU2,3,4に出力するように構成されている。
尚、ECUとしては、CPUボードに実装された実機搭載可能な形態に限らず、ECUの開発段階等にECUをエミュレートするPCとその動作プログラムや周辺機器などから構成される擬似ECUがシミュレータに接続されることも可能である。
管理装置5は、シミュレータ20,21,30,40に移植する複数のモデルプログラム(エンジンやブレーキ等の車両の機能ブロックである被制御系を数式で模擬するプログラムで、以下「モデル」とも記す。)や、シミュレーション条件を設定する制御プログラムが格納され、GUI(グラフィカルユーザインターフェース)を介したオペレータからの設定条件に基づき、ネットワーク6を介してシミュレータ20,21,30,40にモデルプログラムを移植するとともに、各シミュレータ20,21,30,40間で送受信される関連データ及び当該関連データの配送経路等の、所定のシミュレーション条件を入力してシミュレーションを実行制御する。
管理装置5は、後述するノード単位で各シミュレータ20,21,30,40を認識し、その表示部に前記設定条件やノード構成、さらには、各シミュレータ20,21,30,40から吸い上げた各部の計測データ、例えばエンジン回転数や油温等のデータがグラフィカルに表示されるように構成され、オペレータが表示画面を操作または確認しながら各ECU2,3,4の評価が行えるように構成されている。
シミュレータ20,21,30,40は単独、または協働でモデル演算を実行する。即ち、動作が複雑または演算による負荷が多大となる等のモデルは、当該モデル用のハードウェア構成を備えた単独のシミュレータで演算するのではなく、それらの機能を分割したハードウェア構成を備えた複数のシミュレータで演算するように構成されている。
夫々のモデルを演算するハードウェアの単位を「ノード」といい、ノードが複数のシミュレータから構成される場合、ノードは1つのマスタシミュレータと単一または複数のスレーブシミュレータから構成される。本実施例において、シミュレータ20,21は協働してエンジンシステムを構成するモデルを演算し、シミュレータ20がマスタシミュレータ、シミュレータ21がスレーブシミュレータに設定され、マスタシミュレータがネットワーク6に接続され、スレーブシミュレータはマスタシミュレータにローカル接続されている。即ち、本実施例において、EUC2はエンジン制御ECU、ECU3はブレーキ制御ECU、ECU4はトランスミッション制御ECUとして構成されている。
各シミュレータ20,21,30,40は、図2に示すように、ネットワーク6と接続するためのポートをオンボードで備えている。当該ボードは、CPUボード90とシミュレーション演算部91と複数のI/Oボード920,921とI/Oユニット92とI/Fユニット93とで構成され、夫々がPCIバス94によりCPUボード90と接続されるとともに、シミュレーション演算部91とI/Oユニット92とI/Fユニット93が複数のローカル信号ライン95,96,97で接続されている。
CPUボード90は、自身を統括制御するオペレーティングシステムを実行するように構成され、シミュレーション演算部91は、管理装置5から移植されたモデルプログラムを実行するCPUを備えて構成されている。
I/Oボード920,921は、シミュレーション演算部91から入力された論理レベルの演算結果に基づいて物理レベルの信号に変換するとともにECU2,3,4からの物理レベルの制御信号を論理レベルの制御信号に変換してシミュレーション演算部91に出力する各種のドライバを備えて構成されている。
I/Oユニット92は、各シミュレータ20,30,40間で演算に必要なプロセスデータ等でなる関連データを相互に遣り取りする共有メモリ923を備えた共有メモリボード922等から構成され、I/Fユニット93は、ECU2,3,4とI/Oユニット92との間で信号レベルを整合させるレベル変換機能等を備えたI/Fボード930や、各ECU間のデータ伝送を行うCANバスの信号を中継するCANボード931等を備えて構成されている。
即ち、ECU2,3,4の入出力ポートとI/Fユニット93が実際の車両で使用されるごとき信号伝達用のハーネス98で接続され、I/Fユニット93により、I/Oユニット92との間で信号レベルが整合されるように構成されている。
具体的には、I/Oユニット92は、シミュレーション演算部91で演算されたエンジンオイルの温度、排ガス温度、排ガスの酸素濃度等のデジタル信号をアナログ信号に変換するとともにI/Fユニット93から出力された制御用のアナログ信号をデジタル信号に変換するA/D変換ボード920と、シミュレーション演算部91で演算された各種の論理レベルのデータをパルス信号に変換するとともにI/Fユニット93を介して入力されたパルス信号を論理レベルのデータに変換するパルス処理ボード921等を備えて構成されている。
例えば、パルス処理ボード921では、シミュレーション演算部91で演算されたエンジンの回転数をクランクパルス信号に変換し、I/Fユニット93を介して入力されたECU2、3、4からの各種の電磁バルブに対するデューティ制御信号をデジタルデータに変換する。
各マスタシミュレータ20,30,40のI/Oユニット92に装着された共有メモリボード922には、図3に示すように、他のマスタシミュレータとの間で演算に必要な関連データを遣り取りする共有メモリ923と、共有メモリ923に記憶されたデータをシミュレータ間で転送制御する光ファイバ7を用いた数十Gbpsから数Gbpsの通信速度を実現するスターファブリックや高速LAN等と接続する通信インターフェース924と、スレーブシミュレータとの間で演算に必要な関連データを遣り取りするローカル共有メモリ925と、ローカル共有メモリ925に記憶された関連データを転送するネットワーク8と接続して関連データを転送制御するローカル通信インターフェース926等が備えられ、何れかの共有メモリボード922には、それら通信インターフェース924、926を管理する通信処理部927、928が備えられている。
即ち、共有メモリボード922と、共有メモリ923またはローカル共有メモリ925とを管理するCPUボード90により、各シミュレータ20,21,30,40間でデータを共有する共有メモリ管理部11が構成される。尚、データ共有化処理については後に詳述する。
各共有メモリ923は、図4に示すように、自装置のシミュレーション演算部91や自装置に接続されたECUに必要な関連データであって、他のシミュレータから入力される関連データを格納する受信データ領域923aと、他のシミュレータのシミュレーション演算部91や他のシミュレータに接続されたECUに必要な関連データであって、自装置で生成された関連データを記憶する送信データ領域923bに領域区画され、後述する所定のタイミングで通信インターフェース924を介して他のシミュレータの送信データ領域923bに格納された関連データが自装置の受信データ領域923aに配送され、自装置の送信データ領域923bに格納された関連データが他のシミュレータの受信データ領域923aに配送される。
ここで、受信データ領域923aは送信元である他のシミュレータ毎に異なる領域に区分され、送信データ領域923bは送信先である他のシミュレータ毎に異なる領域に区分されている。
例えば、自装置に接続されたECUのCANバスの制御信号やデータは自装置のCANボード931を介して送信データ領域923bに格納され、通信インターフェース924を介して他のシミュレータの受信データ領域923aに転送された後に当該他のシミュレータのCANボード931を介して当該他のシミュレータに接続されたECUのハーネス98に接続される。
また、他のシミュレータに接続されたECUのCANバスの制御信号やデータは当該他のシミュレータのCANボード931を介して送信データ領域923bに格納され、通信インターフェース924を介して自装置の受信データ領域923aに転送された後に自装置のCANボード931を介して自装置に接続されたECUのハーネス98に接続される。
即ち、CANボード931と共有メモリボード922と通信インターフェース924により、CANバスがエミュレートされる。
各シミュレータ20,30,40のシミュレーション演算部91やI/Oユニット92間で共有されるべき関連データも同様にして、他のシミュレータに配送すべき関連データが送信データ領域923bに格納され、通信インターフェース924を介して他のシミュレータから配送されるべき関連データが受信データ領域923aに取り込まれる。
尚、各シミュレータ20,30,40が備える共有メモリ923間での関連データの遣り取りについて上述したが、シミュレータ20、21が備えるローカル共有メモリ925の関連データの遣り取りについても同様に関連データの遣り取りを行う。即ち、ローカル共有メモリ925は受信データ領域925aと、送信データ領域925bとに領域区画され、ローカル通信インターフェース926を介して関連データの遣り取りを行う。
当該分散型シミュレーションシステム1の行う車両の動作のシミュレーションは、図5に示すように、管理装置5が、GUIを介してオペレータから操作されたシミュレーション条件、または、予めプログラムとして準備されたシミュレーション条件で各シミュレータ20,21,30,40を起動させるべく、ネットワーク6を介して各シミュレータ20,21,30,40のCPUボード90にシミュレーション条件及び起動指令を出力すると(SA1)、CPUボード90は当該シミュレーション条件をPCIバス94を介して各シミュレーション演算部91、I/Oユニット92に反映させ(SA2)、各シミュレータ20,21,30,40は、与えられたシミュレーション条件に従って後述の所定の単位模擬演算処理を所定周期で繰り返す(SA3、SA4)。
例えば、GUIを介して入力された各ECU2,3,4がバッテリに接続されたというシミュレーション条件で管理装置5から起動指令が出力されると、シミュレーション演算部91からI/Oユニット92にバッテリ電圧信号が出力され、当該バッテリ電圧信号がI/Fユニット93によりDC14Vの電圧に変換されて各ECU2,3,4にバッテリ電圧が供給される。各ECU2,3,4はバッテリ供給電圧に基づいて作動するリセット回路によりリセット信号が入力されて夫々の制御演算を開始する。
以後、各ECU2,3,4からの制御指令が、I/Oユニット92、I/Oユニット92を介してシミュレーション演算部91に伝達され、シミュレーション演算部91によりエンジン等の動作を模擬する模擬演算が実行されるのである。シミュレーション演算部91による模擬演算結果は、I/Oユニット92、I/Oユニット92を介して実際の車両の各種の状態信号に変換されて各ECU2,3,4に入力される。
この状態で、GUIを介して入力されたイグニッションスイッチ信号がオンされたというシミュレーション条件が管理装置5から出力されると、例えば、エンジンEUC2はスタータモータを起動する制御信号を出力し、シミュレーション演算部91はスタータモータの模擬演算を実行し、エンジン模擬演算が起動される。
また、例えば、エンジンが高速回転中の車両の挙動を解析する場合には、管理装置5からエンジンが高速回転中の車両の状態データがシミュレーション条件としての初期データとしてCPUボード90に入力され、CPUボード90からシミュレーション演算部91等に車両の状態データが反映されて各シミュレータが起動する。
さらに、例えば、エンジン系のあるセンサが故障したときの各ECU2,3,4の動作を評価する場合には、管理装置5からエンジン起動中であるセンサが故障しているとのシミュレーション条件としてのイベント発生条件が各CPUボード90に入力され、各CPUボード90からシミュレーション演算部91等に車両の状態データが反映されて各シミュレータが起動する。
シミュレーション演算部91へのECU等からの入力データや、シミュレーション演算部91による演算結果は、PCIバス94を介してCPUボード90に吸い上げられた後に管理装置5にネットワーク6を介して出力され、管理装置5の表示装置の画面に、例えばトレンドグラフやグラフィックデータ等の表示データに変換されて表示される。具体的には、エンジン回転数や燃費の推移を示すトレンドグラフとして表示され、運転席の表示装置を模擬した回転数表示計や速度表示計として表示される。
どのような条件でどのような模擬演算を実行するかというシミュレーション条件や、模擬演算結果を管理装置5の表示装置に表示するために各シミュレータ20,21,30,40から吸い上げるべきデータの種類等は予め管理装置5を介して設定されるものであり、これにより各ECU2,3,4の制御状態が評価できるように構成されている。
以下に、各シミュレータ20,21,30,40で実行される模擬演算について詳述する。
各シミュレータ20,21,30,40は、各CPUボード90による管理の下で、所定の周期、例えば1msec.周期で、機能の異なる複数の演算ステップの集合で構成される単位模擬演算処理を繰り返すように制御される。
各シミュレータ20,21,30,40のCPUボード90には、図6に示すように、内部動作を統括する基準クロック発生部が設けられ、シミュレーション演算部91やI/Oユニット92等の各ユニットは、基準クロック発生部90aからの基準クロックに基づいて演算処理に必要なタイマー値等の管理を行うように構成されている。つまり、各ユニットに設けられたCPUは内部クロックに基づくタイマーレジスタの値に基づいて予め設定された演算処理を実行するのであるが、演算に必要なタイマー処理は基準クロックに基づいて判断されるのである。
さらに、CPUボード90には、共有メモリ管理部11と協働して該分散型シミュレーションシステム1に組み込まれた全てのシミュレータ20,21,30,40が同期して単位模擬演算処理を実行させるように同期制御部90bが設けられている。
同期制御部90bは、管理装置5から起動指令が送られると、基準クロックに基づいて自装置の単位模擬演算処理を起動し、単位模擬演算処理が分割された複数ステップのうち、何れかのステップの開始前または終了後に各シミュレータ間での演算タイミングの同期をとり、全シミュレータが同期して単位模擬演算処理を実行できるように制御する。尚、シミュレータ21はシミュレータ20とネットワーク8を介して、起動指令を受信する。
単位模擬演算処理は、図7に示すように、初期に他のシミュレータに必要な関連データを共有メモリ923の送信データ領域923bに格納するとともに、他のシミュレータから自装置に必要な関連データを共有メモリ923の受信データ領域923aに取り込む第一データ共有化処理(S1)を実行するように構成されている。
続いて、単位模擬演算処理は、ECUからのデータをI/Oユニット92に取り込むデバイス入力処理(S2)を実行し、取り込んだデータのうち、他のシミュレータのモデル演算に必要な関連データを共有メモリ923の送信データ領域923bに格納するとともに、他のシミュレータから取り込んだデータのうち自装置のモデル演算に必要な関連データを共有メモリ923の受信データ領域923aに取り込む第二データ共有化処理(S3)を実行するように構成されている。
続いて、単位模擬演算処理は、モデル演算ユニット91がI/Oユニット92及び受信データ領域923aから必要なデータを取り込んでモデル演算を実行するモデル演算処理(S4)を実行し、モデル演算の実行結果のうち他のシミュレータに必要な関連データを共有メモリ923の送信データ領域923bに格納するとともに、他のシミュレータによる演算結果のうち自装置が必要とする関連データを共有メモリ923の受信データ領域923aに取り込む第三データ共有化処理(S5)を実行するように構成されている。
続いて、単位模擬演算処理は、モデル演算結果をI/Oユニット92に出力するデバイス出力処理(S6)を実行し、モデル演算の結果やモデル演算の完了または未完了等の進捗状況を管理装置5に出力するモデル演算後処理(S7)を実行するように構成されている。
続いて、単位模擬演算処理は、I/Oユニット92からサンプリングして他のシミュレータに関連データとして出力すべきデータを共有メモリ923の送信データ領域923bに格納するとともに、他のシミュレータのI/Oユニット92からサンプリングされ自装置に必要な関連データを共有メモリ923の受信データ領域923aに取り込む第四データ共有化処理(S8)を実行するように構成されている。
続いて、単位模擬演算処理は、予め設定された必要なデータをI/Oユニット92及び受信データ領域923aからサンプリングしてCPUボード90のメモリに記憶し管理装置5に出力するサンプリング処理(S9)を実行し、ステップS1からS9の処理を終了すると、所定の演算周期に同期してステップS1に戻るように構成されている(S10)。
尚、上述したデータ共有化処理は、マスタシミュレータ間での関連データの送受信処理として説明しているが、マスタシミュレータとスレーブシミュレータ間の送受信処理においても、上述と同様のデータ共有化処理が行われている。
以下では、上述した第一から第四のデータ共有化処理について詳述する。
第一から第四のデータ共有化処理の実行に先立って、各シミュレータ20,30,40のCPUボード90には予め管理装置5により他のシミュレータと共有すべき関連データ及び当該関連データの配送経路情報が設定操作される。即ち、図8に示すように、システムの初期設定時(SB1)や、モデルプログラムが各シミュレータに移植されるとき、またはシミュレーション開始時にシミュレーション条件の一部として各CPUボード90に入力される(SB2)。
他のシミュレータと共有すべき関連データ及び当該関連データの配送経路情報の設定について詳述すると、システムの初期設定時(SB1)やシミュレーション条件の入力時(SB2)には、図11(a)(b)に示すように、各シミュレータに備えられたI/Oユニット92から入出力されるデータの一覧や、各シミュレータで固有のシステムデータや、パターン信号等、シミュレータ間で入出力可能な関連データの一覧を示す関連データ一覧画面(図11(a)参照)と、各シミュレータに備えられたI/Oユニット92に備えられた入出力用ボードの一覧を示す送信先一覧画面(図11(b)参照)と、が管理装置5の表示部に隣接して表示される。尚、各シミュレータは、夫々のモデルを演算するハードウェアの単位である「ノード」として表示されている。
ユーザは、図10に示すように、関連データ一覧画面からノード間で送受信する関連データを選択操作し、当該選択操作した関連データをドラッグアンドドロップ等の操作により、送信先一覧画面に表示された入出力用ボードに関連付けることにより、関連データ及び関連データの配送経路を設定操作する(SC1)。
例えば、図11(b)及び図12に示すように、ノードAには、ノードAに備えられたモデル1の外部出力データがノードBに備えらえたモデル1の外部入力データを扱う入出力ボードに入力される配送経路R1と、ノードAに備えられたモデル1の外部出力データがノードCに備えられたモデル2の外部入力データを扱う入出力ボードに入力される配送経路R2と、ノードCに備えられたモデル1からの外部出力データがノードAに備えられたモデル1の外部入力データを扱う入出力ボードに入力される配送経路R4が設定されている。さらに、ノードBに備えられたモデル1の外部出力データがノードCに備えられたモデル1の外部入力データを扱う入出力ボードに入力される配送経路R3が設定されている。
図10に戻り、ユーザにより配送経路情報R1,R2,R3,R4が設定操作されると、設定操作された当該配送経路情報R1,R2,R3,R4は、管理装置5から各ノードに送信され(SC2)、配送経路情報の設定操作が終了する。
続いて、各ノードは、配送経路情報R1,R2,R3,R4に基づいて、自己の共有メモリ923に受信データ領域923aと送信データ領域923bを設定する。
詳述すると、各ノードは、管理装置5から配送経路情報R1,R2,R3,R4を受信すると(SD1)、各ノードの共有メモリ管理部11に当該受信した配送経路情報R1,R2,R3,R4を引き渡す。各ノードの共有メモリ管理部11は、受信した配送経路情報R1,R2,R3,R4に基づいて、他のノードに送信すべき関連データの一覧情報を当該他のノードに送信する(SD2)。
例えば、ノードAの共有メモリ管理部11は、図12に示すように、配送経路情報R1,R2からモデル1の外部出力データAMO1をノードB及びノードCに送信することを判断すると、関連データの一覧情報として、モデル1の外部出力データAMO1の識別情報をノードB及びノードCに対して送信する。
このとき、ノードB及びノードCは、自己の受信データ領域923aの設定処理を開始し、他のノードから送信された関連データを、自己の共有メモリ923の受信データ領域923aに格納するためのアドレス情報を生成して、ノードAに送信する。
例えば、ノードB及びノードCは、ノードAのモデル1の外部出力データAMO1の識別情報を受信すると(SE1)、当該受信した識別情報を自己の共有メモリ管理部11に引き渡す。ノードB及びノードCの共有メモリ管理部11は、図13に示すように、自己の共有メモリ923の受信データ領域923aに、ノードAのモデル1の外部出力データAMO1を格納するためのアドレス情報BEX−R1,CEX−R2を生成して(SE2)、当該アドレス情報BEX−R1,CEX−R2をノードAに送信する(SE3)。
続いて、ノードAの共有メモリ管理部11は、関連データが格納される他のノードの共有メモリ923のアドレス情報を、当該他のノードから受信すると(SD3)、当該アドレス情報に対応づけて自己の共有メモリ923に当該データの格納アドレスを設定する(SD4)とともに、関連データが格納される自己の共有メモリ923と他のノードの共有メモリ923間のアドレス変換テーブルを生成する(SD5)。
例えば、ノードAは、ノードB及びノードCの共有メモリ管理部11からアドレス情報BEX−R1,CEX−R2を受信して、共有メモリ管理部11へ引き渡す(SD3)。共有メモリ管理部11は、図13に示すように、当該アドレス情報BEX−R1,CEX−R2に外部ノードのアドレスの識別子AEX−を付与する等により対応づけて、自己の共有メモリ923の送信データ領域923bに、当該外部ノードへ送信するデータAMO1の格納アドレスAEX−BEXR1,AEX−CEXR1を設定する(SD4)。
さらに、共有メモリ管理部11は、図13に示すように、シミュレーション演算部91により当該データAMO1が読み書きされる自己の共有メモリ923のアドレス情報AIN−AMO1と、ノードB及びノードCのアドレス情報BEX−R1,CEX−R2と、ノードB及びノードCのアドレス情報BEX−R1,CEX−R2に対応づけられた送信データ領域923bのアドレス情報AEX−BEXR1,AEX−CEXR1と、で構成された自己の共有メモリ923と他のノードの共有メモリ923間のアドレスを変換するためのレコードを生成し、当該レコードを管理するアドレス変換テーブル929を生成する(SD5)。
以上のように、各ノードでステップSD1からSD5までの処理が行われ、各ノードの自己の共有メモリ923に送信データ領域923bが設定される。
さらに、各ノードの共有メモリ管理部11は、管理装置5で設定された配送経路情報に基づいて、受信データ領域設定923aを設定する。
上述の例を引き続き引用して詳述すると、図10に示すように、ノードAは、ノードCにおけるステップSD2の処理において送信された、配送経路情報R4に基づくモデル2の外部出力データCMO2の識別情報を受信すると、当該受信した識別情報を共有メモリ管理部11に引き渡す(SE1)。
共有メモリ管理部11は、当該受信した識別情報に基づいて、自己の共有メモリ923の受信データ領域923aにノードCのモデル2の外部出力データCMO2を格納するためのアドレス情報AEX−R1を生成して(SE2)、当該アドレス情報AEX−R1をノードCに送信する(SE3)。
続いて、共有メモリ管理部11は、受信データ領域923aに格納される外部ノードからの受信データを、シミュレーション演算部91により読み書きされる共有メモリ923のアドレスAIN−AMI1に格納するために、共有メモリ923のアドレスAIN−AMI1とステップSE2で生成したアドレス情報AEX−R1を対応付けたレコードをアドレス変換テーブル929に登録する(SE4)。
以上のように、各ノードでステップSE1からSE4までの処理が行われ、各ノードの自己の共有メモリ923に受信データ領域923aが設定される。
図8に戻り、各ノードの共有メモリ923に受信データ領域923a及び送信データ領域923bが設定されると、各ノードのCPUボード90により、シミュレーションの実行開始時に必要なシステムデータ(以下、「初期化データ」と記す。)であって、他のノードに送信すべき関連データが存在する場合は、通信処理部927により、自装置の共有メモリ923の送信データ領域923bに当該関連データが格納される(SB3)。
例えば、図13に示す送信データ領域923bのアドレスAIN−AMO1にノードAのモデル1の外部出力データAMO1に代えて、当該初期化データが格納されているとすると、通信処理部927により、アドレス変換テーブル929から当該初期化データが格納されているアドレスAIN−AMO1に対応するレコードが取得され、当該レコードに含まれる外部ノードへの送信データ領域923bを示すアドレスAEX−BEXR1,AEX−CEXR1に、アドレスAIN−AMO1に格納された初期化データが格納される。
送信すべき全ての関連データが格納されると(SB4)、送信準備完了フラグ923cがセットされる(SB5)。送信準備完了フラグ923cがセットされた各通信インターフェース924は、各通信インターフェース924を管理する通信処理部927に送信要求する(SB6)。通信処理部927は、全ての通信インターフェース924から通信要求があるまで待機する(SB7)。
ここで、送信すべき関連データが無いとき、つまり、前回送信した関連データと値が変わらないときには、単に送信準備完了フラグ923cがセットされる。
通信処理部927は、全ての通信インターフェース924から通信要求があると(SB7)、全てのノード20,30,40の送信準備完了フラグ923cがセットされたと確認し(SB8)、予め設定された順に関連データの送信処理を許容する(SB9)。
具体的には、先ず、最初のノード20に設けられた通信インターフェース924は、外部ノードへの送信データ領域923bに格納された関連データを送信先毎に順次吸い上げて、当該送信データ領域923bのアドレスに対応する送信先のアドレス情報(例えば、図13に示すBEXR1,CEXR1)とともに、各送信先のノード30,40の通信インターフェース924に送信する。
各送信先のノード30,40の通信インターフェース924は、夫々、受信したアドレス情報に対応する受信データ領域923aのアドレスに、受信した関連データを格納する。このような関連データの送信処理がノード30,40毎に繰り返される。
送信元の通信インターフェース924は、送信データ領域923bに格納された関連データの全ての配送処理が終了すると(SB10)、当該送信データ領域923bにセットされている送信準備完了フラグ923cをリセットして(SB11)、当該ノードのCPUボード90に関連データの送信処理が終了したことを通知する(SB12)。
送信先の通信インターフェース924は、受信データ領域923aに他のノードからの関連データを格納すると、アドレス変換テーブル929から当該受信データ領域923aに対応するアドレス(例えば、図13に示すAIN−AMI1)に当該関連データを取り込み(SB13)、送信元のノード毎に区画された受信データ領域923aに受信完了フラグ923d1,923d2をセットして(SB14)、送信先のノードの同期制御部90bを備えたCPUボード90に送信元毎に関連データの受信処理が終了したことを通知する(SB15)。
送信先のノードのCPUボード90(同期制御部90b)は、受信データ領域923aの受信完了フラグ923d1,923d2がセットされたときに(SB16)、送信元のノードから関連データの受信が終了したことを確認する(SB17)。
各ノード20,30,40のCPUボード90(同期制御部90b)は、自装置の送信データ領域923bの送信準備完了フラグ923cがリセットされ(SB11)、且つ、受信データ領域923aの送信元毎の受信完了フラグ923d1,923d2の全てがセットされるまで待機し(SB16)、送信準備完了フラグ923cがリセットされ(SB11)、且つ、受信データ領域923aの送信元毎の受信完了フラグ923d1,923d2の全てがセットされていると確認すると(SB17)、データ共有化処理が終了したと判断して(SB18)全ての受信完了フラグ923d1,923d2をリセットし(SB19)、次の処理を開始するように制御する(SB20)。
以上の動作により、ノード20,30,40において、制御系からのデータ入力ステップ、被制御系を模擬するモデル演算ステップ、モデル演算結果の制御系へのデータ出力ステップ、モデル演算後処理ステップ、サンプリングステップの各ステップが同期して実行され、単位模擬演算処理が円滑に進められるのである。
つまり、共有メモリ管理部11は、送信準備完了フラグ923cに基づいて、関連データを送信する他のノードと同期をとった後にデータの共有化処理を行うものであり、データの共有化処理を行う前に行う必要がある処理、つまり、上述のデバイス入力処理、モデル演算処理、デバイス出力処理、モデル演算後処理、サンプリング処理の何れかの処理を完了させていることを示す受信完了フラグ923d1,923d2が共有メモリ923に設定されている場合に、他のノードと関連データを整合するための同期が取れたと判断するものである。
上述したデータ共有化処理は、各ノード20,30,40のCPUボード90により、他のノードに送信すべき関連データが自装置の共有メモリ923の送信データ領域923bに夫々格納され、送信準備完了フラグ923cがセットされるものであるが、関連データを自装置の共有メモリ923の送信データ領域923bに格納し、送信準備完了フラグ923cをセットするのはCPUボード90に制限されるものではなく、CPUボード90の監視下でモデル演算処理に基づくデータ共有化処理ではシミュレーション演算部91が、デバイス入出力処理に基づくデータ共有化処理ではI/Oユニット92が実行してもよい。
上述したデータ共有化処理はマスタシミュレータ間でのデータ共有化処理であるが、図14に示すように、マスタシミュレータ間でのデータ共有化処理の前に(SD1)、マスタシミュレータとスレーブシミュレータ間で他のマスタシミュレータに送信すべき関連データの共有化処理が行われ(SD2)、データ共有化処理後に(SD3)、マスタシミュレーション間でのデータ共有化処理を行い(SD4)、マスタシミュレータ間でのデータ共有化処理の後(SD5)、マスタシミュレータとスレーブシミュレータ間で他のマスタシミュレータから受信すべき関連データの共有化処理が行われる(SD6)。また、マスタシミュレータとスレーブシミュレータ間でのみ共有する必要のある関連データは、マスタシミュレータ間でのデータ共有化処理の前後の何れで行われるものであってもよい。
このようにして全てのノード20,21,30,40が同期を取って単位模擬演算処理を実行することができるのであるが、基準クロック発生部90aからの基準クロックはノード毎に微妙に異なり、各基準クロックに基づく演算結果が累積されると大きな誤差となって、ノードの演算精度に大きな影響を与える虞がある。
そこで、管理装置5に設けた同期クロック生成部5aにより生成された同期クロックデータを、ネットワーク6を介して各ノード20,21,30,40に送信するように構成し、各ノード20,21,30,40のCPUボード90に、同期クロックデータに基づいてシミュレーション演算の基準クロックに基づくタイマーレジスタの値を補正するクロック補正部90cを備えている。
図15に示すように、同期クロックデータは夫々の基準クロックで動作する単位模擬演算処理の時間1msec.よりも短い時間間隔で入力されるため、各ノード20,21,30,40は、クロック補正部90cにより基準クロックの僅かなずれを補正することができる。
以下、別実施形態について説明する。上述の実施形態では、シミュレータ20がマスタシミュレータ、シミュレータ21がスレーブシミュレータとして協働して、被制御系であるエンジンのノードを構成したが、マスタシミュレータに接続されるスレーブシミュレータの数は特に制限されるものではない。
管理装置5から移植されたモデルプログラムを実行するCPUを備えたシミュレーション演算部91も、単一のモデル演算処理ボードで構成されるものに限らず、複数のモデル演算処理ボードで構成されるものであってもよい。
単位模擬演算処理は、上述したものに制限されるものではなく、少なくとも分散処理を行う複数のシミュレータ以外からデータの入力を行う入力ステップ、モデル演算を行うモデル演算ステップ、分散処理を行う複数のシミュレータ以外にデータの出力を行う出力ステップ、モデル演算を行って得られたモデルの演算データをメモリに記憶する記憶ステップを備えるものであればよく、データ共有化処理はこれらのステップの実行に先立って行われるように構成するものであればよい。
また、共有メモリ管理部11は、入力ステップ、モデル演算ステップ、出力ステップ、記憶ステップの各ステップの実行に先立ってデータ共有化処理を実行するものを説明したが、全てのステップにおいてデータ共有化処理を実行するもののみならず、少なくとも2つのステップの開始前にデータ共有化処理を行うものであればよい。
上述の実施形態では、複数の電子制御装置により分散制御される車両の各機能ブロックを模擬する分散型シミュレーションシステム1について説明したが、分散型シミュレーションシステム1は車両を対象とするものに限るものではなく、航空機、空調システム、或いは化学プラントシステム等、複雑な処理系を模擬する場合に適用できるものである。
上述の実施形態では、各シミュレータ20,21,30,40に制御系としての電子制御装置2、3、4を接続するものを説明したが、シミュレータに必要な外部データを供給するものであれば、接続される外部機器は被制御系機器に限るものではない。
上述の実施形態では、管理装置5から送信された同期クロックデータに基づき、夫々が備えるクロック補正部が各シミュレータ20,21,30,40の基準クロックを補正する構成としたが、同期クロックデータは管理装置5から供給されるものに限らず、管理装置5以外の同期クロック生成装置からネットワーク6を介して、或いは同期クロックデータ供給用のネットワークを備え、ネットワークに各ノードを接続してネットワークを介して供給されるものであってもよく、ネットワークを介さずに直接供給されるように構成するものであってもよい。
上述した実施形態は、本発明を実現する一実施例を説明するものであり、各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、構築するシステムに応じて適宜変更設計することが可能である。
1:分散型シミュレーションシステム
5:管理装置
11:共有メモリ管理部
20:シミュレータ(マスタシミュレータ)
21:シミュレータ(スレーブシミュレータ)
30:シミュレータ(マスタシミュレータ)
40:シミュレータ(マスタシミュレータ)
5a:同期クロック生成部
91:シミュレーション演算部
R1:配送経路(ノードA−ノードB間)
R2,R4:配送経路(ノードA−ノードC間)
R3:配送経路(ノードB−ノードC間)
90c:クロック補正部
923:共有メモリ
923a:受信データ領域
923b:送信データ領域
927:通信処理部(マスタシミュレータ間通信)
928:通信処理部(マスタシミュレータースレーブシミュレータ間通信)
929:アドレス変換テーブル

Claims (3)

  1. 他のシミュレータとの間でシミュレーションに必要なデータを授受する通信処理部と、前記通信処理部で授受されるデータが格納される共有メモリと、前記共有メモリに書き込まれたデータを用いてシミュレーションを実行するシミュレーション演算部を含むシミュレータが、ネットワークを介して管理装置に複数接続され、各シミュレータで分散してシミュレーションが実行される分散型シミュレーションシステムであって、
    各シミュレータに、前記管理装置により設定されたシミュレータ間のデータ配送経路情報に基づいて、他のシミュレータに送信すべきデータの一覧情報を当該他のシミュレータに送信し、前記一覧情報に含まれるデータが格納される当該他のシミュレータの共有メモリのアドレス情報を、当該他のシミュレータから受信し、当該アドレス情報に対応づけて自己の共有メモリに当該データの格納アドレスを設定するとともに、前記一覧情報に含まれるデータが格納される自己の共有メモリと他のシミュレータの共有メモリ間のアドレス変換テーブルを生成する共有メモリ管理部を備え、
    前記通信処理部は、前記共有メモリ管理部で生成されたアドレス変換テーブルに基づいて自己の共有メモリから読み出した送信用データを、他のシミュレータの通信処理部に送信するように構成されている分散型シミュレーションシステム。
  2. 前記共有メモリ管理部は、他のシミュレータから送信された前記一覧情報に含まれるデータを、自己の共有メモリに格納するためのアドレス情報を生成して、当該他のシミュレータに送信し、
    前記通信処理部は、他のシミュレータの通信処理部から送信されたデータを自己の共有メモリに書き込むように構成されている請求項1記載の分散型シミュレーションシステム。
  3. 前記通信処理部は、前記シミュレーション演算部により実行されるシミュレーションの演算周期より短いインタバル、または、前記演算周期と同期して送受信処理を実行する請求項1または2記載の分散型シミュレーションシステム。
JP2009093566A 2009-04-08 2009-04-08 分散型シミュレーションシステム Withdrawn JP2010244378A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009093566A JP2010244378A (ja) 2009-04-08 2009-04-08 分散型シミュレーションシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009093566A JP2010244378A (ja) 2009-04-08 2009-04-08 分散型シミュレーションシステム

Publications (1)

Publication Number Publication Date
JP2010244378A true JP2010244378A (ja) 2010-10-28

Family

ID=43097320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009093566A Withdrawn JP2010244378A (ja) 2009-04-08 2009-04-08 分散型シミュレーションシステム

Country Status (1)

Country Link
JP (1) JP2010244378A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857085A (zh) * 2019-01-25 2019-06-07 深圳市元征科技股份有限公司 模拟生成行车数据的方法、系统、模拟终端及测试系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857085A (zh) * 2019-01-25 2019-06-07 深圳市元征科技股份有限公司 模拟生成行车数据的方法、系统、模拟终端及测试系统

Similar Documents

Publication Publication Date Title
JP4987382B2 (ja) 分散型シミュレーションシステム、シミュレータ識別方法、及び、分散型シミュレーションシステムの管理装置
JP4413209B2 (ja) シミュレーション装置
JP2008040983A5 (ja)
US8036761B2 (en) Simulation hardware apparatus comprising vehicle model
US20080077382A1 (en) Simulation System and Computer-Implemented Method for Simulation and Verifying a Control System
JP2008084121A (ja) シミュレーションシステム及びシミュレーション方法
CN105593773A (zh) 用于虚拟分布式控制系统的自动委托的系统和方法
JP2008090489A (ja) シミュレーションシステム
US11237832B2 (en) Module with a serialization unit and improved compatibility with deserialization units of different series
JP6550269B2 (ja) プログラム作成支援装置、制御方法およびプログラム
WO2007093985A2 (en) Real time simulating method and system
US10296693B2 (en) Three-dimensional composite solid component modeling
JP2021043749A (ja) シミュレーション方法およびシミュレーションプログラム
JP6318500B2 (ja) シミュレーション装置およびシミュレーションプログラム
US10127343B2 (en) Circuit design layout in multiple synchronous representations
JP2013137658A (ja) 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム
JP2008250788A (ja) 連携シミュレーションシステム
JP2008090488A (ja) モデル生成装置及びシミュレーションモデル生成方法
US20110246975A1 (en) Control architecture and process for porting application software for equipment on board an aircraft to a consumer standard computer hardware unit
CN103430109B (zh) 可编程控制器的cpu单元以及可编程控制器的cpu单元执行的方法
CN106774174A (zh) 提高了伺服控制性能的数值控制装置
CN100498799C (zh) 计算机实现的模拟并验证控制系统的模拟系统及方法
CN105765468B (zh) 系统构建辅助装置
JP2010244378A (ja) 分散型シミュレーションシステム
JP5052519B2 (ja) シミュレーション装置、シミュレーションシステム及びシミュレーション方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120703