(57)【要約】【課題】よりリアルタイム性を向上させることができるリアルタイム並列分散シミュレーションシステムを提供する。【解決手段】リアルタイム並列分散シミュレーションシステムは、Ｉ／Ｏノード５と演算ノード６〜８とを別個に設ける。Ｉ／Ｏノード５は、制御装置１ａ〜１ｃから制御信号を入力すると共に、制御対象物の疑似状態情報を制御装置１ａ〜１ｃに対して出力する。また、演算ノード６〜８は、制御信号に基づき制御対象物の疑似状態情報を生成する。そして、Ｉ／Ｏノード５と演算ノード６〜８とは、通信手段１１を介して、所定時間毎に通信する。【選択図】図１
2008009880.tif 000002
【特許請求の範囲】
【請求項１】
所定の制御対象物の状態情報に応じた制御信号を前記制御対象物へ出力することにより前記制御対象物を制御可能な制御装置と、
前記制御装置から前記制御信号を入力すると共に、前記制御対象物の疑似的な前記状態情報である疑似状態情報を前記制御装置に対して出力するＩ／Ｏノードと、
前記制御信号に基づき前記疑似状態情報を生成する演算ノードと、
所定時間毎に前記Ｉ／Ｏノードと前記演算ノードとの間にて通信する通信手段と、
を備えることを特徴とするリアルタイム並列分散シミュレーションシステム。
【請求項２】
前記演算ノードは、複数であり、
前記通信手段は、所定時間毎に、前記Ｉ／Ｏノードと複数の前記演算ノードとの間、及び、それぞれの前記演算ノード間にて通信する請求項１記載のリアルタイム並列分散シミュレーションシステム。
【請求項３】
少なくとも１個の前記演算ノードは、複数の前記演算ノード間の通信の時刻管理、及び、前記Ｉ／Ｏノードと前記演算ノードとの間の通信の時刻管理を行う請求項２記載のリアルタイム並列分散シミュレーションシステム。
【請求項４】
前記制御対象物に関する疑似基本情報を記憶するホストコンピュータと、
前記疑似基本情報を前記ホストコンピュータから入力すると共に前記疑似基本情報を前記演算ノードに出力し、且つ、前記疑似状態情報を前記演算ノードから入力すると共に前記疑似状態情報を前記ホストコンピュータに出力する情報管理ノードと、
をさらに備え、
前記演算ノードは、前記疑似基本情報及び前記制御信号に基づき前記疑似状態情報を生成し、
前記通信手段は、所定時間毎に、前記情報管理ノードと前記Ｉ／Ｏノード及び前記演算ノードとの間にて通信する請求項１〜３の何れか一項に記載のリアルタイム並列分散シミュレーションシステム。
【請求項５】
前記制御対象物は、複数の部分制御対象物を備え、
前記制御装置は、複数であり、それぞれの前記部分制御対象物の状態情報に応じた制御信号をそれぞれの前記部分制御対象物へ出力することによりそれぞれの前記部分制御対象物を制御可能である請求項１〜４の何れか一項に記載のリアルタイム並列分散シミュレーションシステム。
【請求項６】
前記制御対象物は、所定の制御周期からなる第１部分制御対象物と、前記第１部分制御対象物より制御周期の短い第２部分制御対象物とを備え、
前記制御装置は、前記第１部分制御対象物の状態情報に応じた第１制御信号を前記第１部分制御対象物へ出力することにより前記第１部分制御対象物を制御可能である第１制御装置と、前記第２部分制御対象物の状態情報に応じた第２制御信号を前記第２部分制御対象物へ出力することにより前記第２部分制御対象物を制御可能である第２制御装置とを備え、
前記Ｉ／Ｏノードは、前記第１制御装置から前記第１制御信号を入力すると共に、前記第１部分制御対象物の疑似的な前記状態情報である第１疑似状態情報を前記第１制御装置に対して出力し、
前記演算ノードは、前記第１制御信号に基づき前記第１疑似状態情報を生成し、
さらに、前記第２制御装置から前記第２制御信号を入力し、前記第２部分制御対象物の疑似的な前記状態情報である第２疑似状態情報を前記第２制御装置に対して出力し、前記第２疑似状態情報を生成し、前記演算ノードより処理速度の高い超高速ノードを備え、
前記通信手段は、所定時間毎に、前記Ｉ／Ｏノード、前記演算ノード、及び、前記超高速ノードの間にて通信する請求項１〜５の何れか一項に記載のリアルタイム並列分散シミュレーションシステム。
【請求項７】
複数のノードにより構成されパイプライン演算を行うパイプライン演算処理部をさらに備え、
前記通信手段は、所定時間毎に、前記Ｉ／Ｏノードと前記パイプライン演算処理部との間にて通信する請求項１〜６の何れか一項に記載のリアルタイム並列分散シミュレーションシステム。
【請求項８】
前記パイプライン演算処理部は、前記パイプライン演算により前記疑似状態情報の解析を行う請求項７記載のリアルタイム並列分散シミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置と複数のノードとの間で相互にリアルタイムで情報通信を行いながら、これら複数のノードを用いて並列分散シミュレーションを行うリアルタイム並列分散シミュレーションシステムに関するものである。
【背景技術】
【０００２】
従来、例えば、特開２０００−１６３３９２号公報（特許文献１）などに開示されているように、複数のノード（シミュレータ）を用いて並列分散シミュレーションを行われている。
【０００３】
ところで、近年、制御装置などの開発、評価のために、制御装置と相互にリアルタイムで情報通信しながら行うシミュレーション、いわゆるＨＩＬシミュレーション（Ｈａｒｄｗａｒｅ  Ｉｎ  ｔｈｅ  Ｌｏｏｐ  Ｓｉｍｕｌａｔｉｏｎ）が注目されている。すなわち、ＨＩＬシミュレーションは、制御装置からの実際の制御対象物を制御するための制御信号を入力しつつ、制御対象物の疑似状態情報を制御装置へ出力するという、いわゆるリアルタイムシミュレーションである。このようなリアルタイムシミュレーションにより、制御対象物を製造する前に、制御装置の評価などを行うことができる。そして、このリアルタイムシミュレーションを、並列分散処理により行うことが、例えば、非特許文献１、２に開示されている。
【０００４】
ここで、例えば、自動車には、複数の制御装置及びそれぞれの制御装置が制御可能な複数の制御対象物が搭載されている。このような自動車のシミュレーションを行う場合には、複数の制御装置からの制御信号を入力しつつ、複数の制御対象物の疑似状態情報を対応する制御装置へ出力する、リアルタイムシミュレーションを行うことになる。
【０００５】
この場合、具体的には、それぞれのノードが、それぞれの制御装置から制御信号を入力し、この制御信号に基づき当該制御装置の制御対象物の疑似状態情報を生成する処理を行い、且つ、当該疑似状態情報を当該制御装置へ出力している。そして、これら複数のノードが相互に通信して、複数のノードにより生成されたシミュレーション結果を収集することにより、自動車全体のシミュレーションを行っている。
【特許文献１】特開２０００−１６３３９２号公報
【非特許文献１】田岡  久雄、藤本  康  著、『電力系統のシミュレーション技術』「システム／制御／情報  第４４巻  第２号  ２０００」システム制御情報学会、ｐ．７３〜７７
【非特許文献２】山本  龍也、黒田  憲一、田岡  久雄、榎本  博、河野  良之  著、『ＰＣクラスタによるリアルタイム電力系統シミュレータ』「電気学会論文誌Ｂ  第１２４巻  第５号（２００４年）」ｐ．７３３〜７４０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、自動車に搭載される複数の制御装置は、相互に関係した動作を行うことがある。つまり、所定の制御装置の制御対象物の状態が変化することに伴って、他の制御装置の制御対象物の状態が変化することがある。さらに、所定の制御装置の制御信号に応じて、他の制御装置の制御対象物の状態が変化することがある。従って、上述したシミュレーションでは、複数の制御装置を備える全体のシステムに対して、相互動作のリアルタイム性が劣るという問題があった。
【０００７】
そこで、相互動作のリアルタイム性を向上するために、それぞれのノードが、生成した制御対象物の疑似状態情報を他のノードに出力すると共に、入力した制御信号を他のノードへ送信することが考えられる。つまり、それぞれのノードが、直接接続された制御装置の制御信号を入力することに加えて、他のノードを介して他の制御装置の制御信号を入力し、且つ、他のノードにより生成された他の制御装置の制御対象物の疑似状態情報を入力することとする。このように、それぞれのノードは、直接入力した制御装置の制御信号、他の制御装置の制御信号、及び、他の制御装置の制御対象物の疑似状態情報に基づき、相互動作のリアルタイム性を向上することができる。
【０００８】
ところが、特に、制御装置とノードとの間の通信をリアルタイムで行うためには、情報の入出力に非常に多くの時間が必要となる。そのため、リアルタイム性を向上させたシミュレーションを行うことが困難であった。
【０００９】
本発明は、このような事情に鑑みてなされたものであり、よりリアルタイム性を向上させることができるリアルタイム並列分散シミュレーションシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のリアルタイム並列分散シミュレーションシステムは、制御装置と、Ｉ／Ｏノードと、演算ノードと、通信手段とを備える。制御装置は、所定の制御対象物の状態情報に応じた制御信号を制御対象物へ出力することにより、制御対象物を制御可能な装置である。Ｉ／Ｏノードは、制御装置から制御信号を入力すると共に、制御対象物の疑似的な状態情報である疑似状態情報を制御装置に対して出力するノードである。演算ノードは、制御信号に基づき疑似状態情報を生成するノードである。通信手段は、所定時間毎にＩ／Ｏノードと演算ノードとの間にて通信する手段である。
【００１１】
ここで、ノードとは、単一の演算処理装置（ＣＰＵなど）からなるもの、２個のＣＰＵを含むデュアルＣＰＵからなるものなどを含む。もちろん、ノードは、３個以上の演算処理装置を含むものであってもよい。
【００１２】
本発明のリアルタイム並列分散シミュレーションシステムの処理動作について説明する。まず、制御装置により出力される制御信号は、Ｉ／Ｏノードに入力される。このＩ／Ｏノードが入力した制御信号は、通信手段を介して、所定時間毎に演算ノードに伝送される。そして、演算ノードにて、伝送された制御信号に基づき、制御対象物の疑似状態情報を生成する。続いて、生成された疑似状態情報は、所定時間毎に、演算ノードから通信手段を介して、Ｉ／Ｏノードに伝送される。そして、Ｉ／Ｏノードは、伝送された疑似状態情報を制御装置に出力する。
【００１３】
このように、本発明のリアルタイム並列分散シミュレーションシステムによれば、制御装置の制御対象である制御対象物が存在しない場合であっても、制御装置をリアルタイムでシミュレートすることができる。
【００１４】
さらに、本発明によれば、制御装置からの制御信号の入力、及び、制御装置への疑似状態情報の出力は、常に、Ｉ／Ｏノードにより行われる。すなわち、演算ノードは、制御装置からの制御信号の入力、及び、制御装置への疑似状態情報の出力を行わない。従って、演算ノードは、主として、制御対象物の疑似状態情報の生成、すなわちシミュレーション演算を行う。一方、Ｉ／Ｏノードは、主として、制御装置との情報の入出力を行うことになる。さらに、通信手段を介して、所定時間毎にＩ／Ｏノードと演算ノードとが相互に情報通信を行う。
【００１５】
ここで、リアルタイムシミュレーションを行うためには、制御装置との情報の入出力、及び、シミュレーション演算が相当の時間を要する。そして、本発明によれば、時間を要する制御装置との情報の入出力とシミュレーション演算とを、それぞれ別々のノードが処理するようにしている。従って、非常に効率的に処理を分散できるので、リアルタイム性を向上することができる。
【００１６】
また、本発明のリアルタイム並列分散シミュレーションにおいて、演算ノードは、複数としてもよい。この場合、通信手段は、所定時間毎に、Ｉ／Ｏノードと複数の演算ノードとの間、及び、それぞれの演算ノード間にて通信する。このように、演算ノードを複数とする場合であっても、Ｉ／Ｏノードのみが制御装置との情報の入出力を行う。そして、複数の演算ノードは、制御装置との情報の入出力を行わず、シミュレーション演算を行う。そして、演算ノードを複数にすることで、演算処理を分散することができるので、処理が高速化できる。また、大規模システムに対応できる。
【００１７】
ここで、リアルタイムに並列分散シミュレーションを行うためには、通信手段が、所定時間毎にノード間にて通信を行う必要がある。そして、このように所定時間毎に通信を行うためには、通信する時刻を管理する必要がある。そこで、演算ノードを複数とする場合には、複数の演算ノードのうち少なくとも１個の演算ノードが、複数の演算ノード間の通信の時刻管理、及び、Ｉ／Ｏノードと演算ノードとの間の通信の時刻管理を行うようにする。具体的には、時刻管理を行う演算ノードが、所定時刻に到達したと判断した場合には、ノード間にて通信を行うように指令する。さらに、Ｉ／Ｏノード及び他の演算ノードが所定処理を終えた場合には、時刻管理を行う演算ノードが所定時刻に到達したと判断するまでの間、同期待ちをするように指令する。このように、演算ノードがＩ／Ｏノード及び複数の演算ノード間にて同期通信を行うように指令することで、確実にリアルタイムに並列分散シミュレーションを行うことができる。なお、時刻管理を行う演算ノードは、時刻管理のみを行うようにしてもよいし、時刻管理の他にシミュレーション演算を行うようにしてもよい。
【００１８】
また、本発明のリアルタイム並列分散シミュレーションシステムは、制御対象物に関する疑似基本情報を記憶するホストコンピュータと、疑似基本情報をホストコンピュータから入力すると共に疑似基本情報を演算ノードに出力し、且つ、疑似状態情報を演算ノードから入力すると共に疑似状態情報をホストコンピュータに出力する情報管理ノードと、をさらに備えるようにしてもよい。この場合、演算ノードは、疑似基本情報及び制御信号に基づき疑似状態情報を生成し、通信手段は、所定時間毎に、情報管理ノードとＩ／Ｏノード及び演算ノードとの間にて通信するようにする。
【００１９】
ここで、ホストコンピュータは、シミュレーションの状況及び結果等の使用者にとって必要な情報、及び、制御対象物の疑似基本情報（基本モデル）が記憶されていればよい。つまり、ホストコンピュータには、演算ノード等とのリアルタイムでの通信を行うことができない装置、すなわち、所定時間毎に演算ノード等と通信を行うことができない装置が使用されることが多い。一方、演算ノードがリアルタイムでシミュレーション演算を行うためには、演算ノードは、制御対象物の疑似基本情報の取得をリアルタイムで行う必要がある。また、演算ノードにより生成された疑似状態情報は、演算ノードにおいて逐次更新されている。従って、演算ノードは、過去の所定時刻における疑似状態情報を記憶していないことがある。
【００２０】
そこで、上述したように、情報管理ノードを設けることで、情報管理ノードがホストコンピュータから制御対象物の疑似基本情報を入力した上で、演算ノードに出力するようにできる。これにより、演算ノードが、疑似基本情報を取得することができる。さらに、情報管理ノードが、演算ノードにより生成された疑似状態情報を一時的に記憶しておき、必要な疑似状態情報をホストコンピュータに出力することができる。これにより、ホストコンピュータは、過去の所定時刻における疑似状態情報を取得することができる。
【００２１】
また、本発明のリアルタイム並列分散シミュレーションは、制御対象物は、複数の部分制御対象物を備え、制御装置は、複数であり、それぞれの部分制御対象物の状態情報に応じた制御信号をそれぞれの部分制御対象物へ出力することによりそれぞれの部分制御対象物を制御可能であるとしてもよい。例えば、自動車には、エンジン、ステアリング及びエアーコンディショナー等の複数の制御対象物（部分制御対象物）が存在し、これら複数の部分制御対象物をそれぞれ制御する複数の制御装置が存在する。このように、複数の制御装置が存在する場合であっても、これら複数の制御装置は、何れもＩ／Ｏノードと情報の入出力を行い、演算ノードと直接的に情報の入出力を行うことはない。つまり、複数の制御装置が存在する場合であっても、本発明のリアルタイム並列分散シミュレーションを適用することができる。
【００２２】
また、制御対象物は、所定の制御周期からなる第１部分制御対象物と、第１部分制御対象物より制御周期の短い第２部分制御対象物とを備え、制御装置は、第１部分制御対象物の状態情報に応じた第１制御信号を第１部分制御対象物へ出力することにより第１部分制御対象物を制御可能である第１制御装置と、第２部分制御対象物の状態情報に応じた第２制御信号を第２部分制御対象物へ出力することにより第２部分制御対象物を制御可能である第２制御装置とを備える場合には、以下のようにしてもよい。
【００２３】
すなわち、Ｉ／Ｏノードは、第１制御装置から第１制御信号を入力すると共に、第１部分制御対象物の疑似的な状態情報である第１疑似状態情報を第１制御装置に対して出力し、演算ノードは、第１制御信号に基づき第１疑似状態情報を生成する。さらに、本発明のリアルタイム並列分散シミュレーションシステムは、第２制御装置から第２制御信号を入力し、第２部分制御対象物の疑似的な状態情報である第２疑似状態情報を第２制御装置に対して出力し、第２疑似状態情報を生成し、演算ノードより処理速度の高い超高速ノードを備える。そして、通信手段は、所定時間毎に、Ｉ／Ｏノード、演算ノード、及び、超高速ノードの間にて通信するようにする。
【００２４】
つまり、本発明のリアルタイム並列分散シミュレーションシステムを上記のようにすることで、第１制御装置に関する情報の入出力及びシミュレーション演算は、Ｉ／Ｏノード及び演算ノードが担当し、第２制御装置に関する情報の入出力及びシミュレーション演算は、超高速ノードが担当する。これにより、それぞれの制御周期に応じたシミュレーション演算ができる。なお、超高速ノードは処理速度が高いので、第２制御装置との情報の入出力及びそのシミュレーション演算の両方を行ったとしても十分に対応可能である。
【００２５】
ここで、超高速ノードは、例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又は、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等を含むようにするとよい。また、超高速ノードは、ＦＰＧＡ、ＣＰＬＤの他に、ＣＰＵを併せ持つ構成としてもよい。この場合、ＦＰＧＡ、ＣＰＬＤは、第２制御信号の入力及び第２疑似状態情報の生成を行い、ＣＰＵは、Ｉ／Ｏノード及び演算ノードとの通信を行うようにするとよい。なお、超高速ノードは、複数のＣＰＵ等から構成されるようにしてもよい。例えば、超高速ノードは、デュアルＣＰＵや、デュアルコアの演算装置からなるようにしてもよい。
【００２６】
また、本発明のリアルタイム並列分散シミュレーションシステムは、複数のノードにより構成されパイプライン演算を行うパイプライン演算処理部をさらに備え、通信手段は、所定時間毎に、Ｉ／Ｏノードとパイプライン演算処理部との間にて通信するようにしてもよい。ここで、パイプライン演算とは、所定のノードの演算結果を利用して他のノードが演算するように、各ノードが順次に行う演算である。
【００２７】
この場合、特に、パイプライン演算処理部は、パイプライン演算により疑似状態情報の解析を行うようにしてもよい。この疑似状態情報の解析は、例えば、自動車のＨＩＬシミュレーションの場合、ボディ衝突解析やエンジンの燃焼解析などである。このような疑似状態情報の解析は、非常に多くの演算を要する。このような解析をパイプライン演算処理部により行わせることで、全システムのリアルタイム性が確保できる。
【発明の効果】
【００２８】
本発明のリアルタイム並列分散シミュレーションシステムによれば、制御装置との情報の入出力とシミュレーション演算とをそれぞれ別のノードより行うようにしたことで、大規模シミュレーションシステム等におけるリアルタイム性を向上させることができる。
【発明を実施するための最良の形態】
【００２９】
次に、実施形態を挙げ、本発明をより詳しく説明する。ここで、本実施形態では、本発明のリアルタイム並列分散シミュレーションシステムを、ハイブリッド型自動車システムのＨＩＬシミュレーションに適用した場合を例に挙げて説明する。この本実施形態のリアルタイム並列分散シミュレーションシステムについて、図１〜図３を参照して説明する。図１は、本実施形態のリアルタイム並列分散シミュレーションシステムのブロック図である。図２は、パイプライン演算処理部に関する説明図である。図３は、各ノードの処理を示す図である。
【００３０】
図１に示すように、リアルタイム並列分散シミュレーションシステムは、ＥＣＵ１ａ〜１ｃと、ＥＣＵ２と、ホストＰＣ３と、情報管理ノード４と、Ｉ／Ｏノード５と、第１演算ノード６と、第２演算ノード７と、第３演算ノード８と、超高速ノード９と、パイプライン演算処理部１０と、通信ネットワーク部１１とから構成される。
【００３１】
ＥＣＵ１ａ〜１ｃ及びＥＣＵ２は、ハイブリッド型自動車の制御装置（以下、「ＥＣＵ」という）である。つまり、これらＥＣＵ１ａ〜１ｃ及びＥＣＵ２は、全体として、ハイブリッド型自動車を制御する。特に、ＥＣＵ１ａ〜１ｃは、ハイブリッド型自動車のＥＣＵのうち、制御周期の比較的長いものである。例えば、ＥＣＵ１ａ〜１ｃは、エンジンのＥＣＵ、トランスミッションのＥＣＵ、ブレーキのＥＣＵ等である。つまり、ＥＣＵ１ａ〜１ｃの制御対象物（本発明における第１部分制御対象物に相当する）が、エンジン、トランスミッション、ブレーキ等（以下、単に「エンジン等」という）となる。そして、このＥＣＵ１ａ〜１ｃは、仮にそれぞれの制御対象物に接続されている場合には、制御対象物であるエンジン等の状態情報に応じた制御信号を制御対象物に出力することにより、制御対象物を制御することができる。
【００３２】
また、ＥＣＵ２は、ハイブリッド型自動車のＥＣＵのうち、ＥＣＵ１ａ〜１ｃの制御周期よりも短いものである。例えば、ＥＣＵ２は、ハイブリッド用の駆動用モータのＥＣＵ等である。つまり、ＥＣＵ２の制御対象物（本発明における第２部分制御対象物に相当する）が、駆動用モータ等となる。そして、このＥＣＵ２は、仮にそれぞれの制御対象物に接続されている場合には、制御対象物である駆動用モータ等の状態情報に応じた制御信号を制御対象物に出力することにより、制御対象物を制御することができる。
【００３３】
ホストＰＣ３（本発明におけるホストコンピュータに相当する）は、作業者が監視、評価等を行うことができるようにするためのコンピュータである。このホストＰＣ３は、制御対象であるハイブリッド型自動車の基本モデル（本発明における疑似基本情報に相当する）を記憶する。さらに、ホストＰＣ３は、シミュレーション結果を記憶、表示することができる。
【００３４】
情報管理ノード４は、ホストＰＣ３に通信接続されているインターフェース４１と、ＣＰＵ４２と、メインメモリ４３と、通信ネットワーク部１１に接続されているインターフェース４４とから構成される。そして、情報管理ノード４のＣＰＵ４２は、インターフェース４１を介して、ホストＰＣ３から基本モデルを入力してメインメモリ４３に一次的に記憶させておく。さらに、情報管理ノード４のＣＰＵ４２は、メインメモリ４３に記憶させた基本モデルを、インターフェース４４を介して通信ネットワーク部１１に伝送する。また、情報管理ノード４のＣＰＵ４２は、後述する第１〜第３演算ノード６〜８、超高速ノード９、及び、パイプライン演算処理部１０により生成された疑似状態情報を含むシミュレーション結果を逐次入力する。さらに、情報管理ノード４のＣＰＵ４２は、入力したシミュレーション結果をホストＰＣ３に出力する。
【００３５】
Ｉ／Ｏノード５は、ＥＣＵ１ａ〜１ｃに通信接続され、ＥＣＵ１ａ〜１ｃとの間で情報の入出力を行う。このＩ／Ｏノード５は、ＥＣＵ１ａ〜１ｃに通信接続されているインターフェース５１と、ＦＰＧＡ５２と、ＣＰＵ５３と、メインメモリ５４と、通信ネットワーク部１１に接続されているインターフェース５５とから構成される。Ｉ／Ｏノード５のＦＰＧＡ５２は、インターフェース５１を介して、ＥＣＵ１ａ〜１ｃから制御信号を入力して、メインメモリ５４に一時的に記憶させておく。このメインメモリ５４に記憶させたＥＣＵ１ａ〜１ｃの制御信号は、Ｉ／Ｏノード５のＣＰＵ５３により、インターフェース５５を介して通信ネットワーク部１１に伝送される。
【００３６】
また、Ｉ／Ｏノード５のＣＰＵ５３は、インターフェース５５を介して、第１〜第３演算ノード６〜８からそれぞれの疑似状態情報を入力して、メインメモリ５４に一時的に記憶させておく。このメインメモリ５４に記憶させた疑似状態情報は、Ｉ／Ｏノード５のＦＰＧＡ５２により、それぞれの当該疑似状態情報を対応するＥＣＵ１ａ〜１ｃへ出力される。
【００３７】
第１〜第３演算ノード６、７、８は、主として、Ｉ／Ｏノード５に入力されたＥＣＵ１ａ〜１ｃの制御信号、及び、情報管理ノード４に入力された基本モデルに基づき、ＥＣＵ１ａ〜１ｃの制御対象物であるエンジン等に関するシミュレーションを行う。そして、第１〜第３演算ノード６、７、８は、エンジン等の疑似状態情報を生成する。
【００３８】
詳細には、第１演算ノード６は、通信ネットワーク部１１に通信接続されているインターフェース６１と、ＣＰＵ６２と、メインメモリ６３とから構成される。この第１演算ノード６のＣＰＵ６２は、基本モデル及びＥＣＵ１ａ〜１ｃの制御信号に加えて、超高速ノード９により生成された駆動用モータ等の疑似状態情報を入力して、メインメモリ６３に一時的に記憶させておく。そして、第１演算ノード６のＣＰＵ６２は、この入力情報に基づき、エンジン等に関するシミュレーション演算を行い、エンジン等の疑似状態情報を生成する。さらに、ＣＰＵ６２は、生成したエンジン等の疑似状態情報を通信ネットワーク部１１に伝送する。また、第１演算ノード６のＣＰＵ６２は、通信ネットワーク部１１に通信接続されている各ノード４、５、６、７、８、９、１０の時刻管理を行っている。ここで、リアルタイムでシミュレーションを行うためには、それぞれのノードが所定時間毎に相互に通信を行う必要がある。つまり、このリアルタイムに行うための時刻管理を第１演算ノード６のＣＰＵ６２が担っている。
【００３９】
第２演算ノード７及び第３演算ノード８は、何れも、通信ネットワーク部１１に通信接続されているインターフェース７１、８２と、ＣＰＵ７２、８２と、メインメモリ７３、８３とから構成される。これら第２演算ノード７及び第３演算ノード８のＣＰＵ７２、８２は、基本モデル及びＥＣＵ１ａ〜１ｃの制御信号に加えて、超高速ノード９により生成された駆動用モータ等の疑似状態情報を入力して、メインメモリ７３、８３に一時的に記憶させておく。そして、第２演算ノード７及び第３演算ノード８のＣＰＵ７２、８２は、この入力情報に基づき、エンジン等に関するシミュレーション演算を行い、エンジン等の疑似状態情報を生成する。さらに、ＣＰＵ７２、８２は、生成したエンジン等の疑似状態情報を通信ネットワーク部１１に伝送する。
【００４０】
そして、第１演算ノード６、第２演算ノード７、及び、第３演算ノード８は、エンジン等に関する並列分散処理によるシミュレーション演算を行っている。つまり、第１〜第３演算ノード６〜８の全体で、エンジン等に関する疑似状態情報を生成していることになる。また、この第２演算ノード７及び第３演算ノード８によるシミュレーション演算の処理割合は、第１演算ノード６によるシミュレーション演算の処理割合よりも多い。これは、第１演算ノード６が時刻管理を行うのに対し、第２演算ノード７及び第３演算ノード８が時刻管理を行わないためである。
【００４１】
超高速ノード９は、特に、駆動用モータに関するシミュレーション演算を行う。この駆動用モータは、非常に制御周期が短いため、ＥＣＵ２との情報の入出力、及び、駆動用モータの疑似状態情報の生成を高速に行う必要がある。そこで、超高速ノード９は、第１〜第３演算ノード６〜８よりも処理速度を高くしている。
【００４２】
この超高速ノード９は、ＥＣＵ２に通信接続されているインターフェース９１と、ＦＰＧＡ９２と、ＣＰＵ９３と、メインメモリ９４と、通信ネットワーク部１１に接続されているインターフェース９５とから構成される。超高速ノード９のＦＰＧＡ９２は、インターフェース９１を介して、ＥＣＵ２から制御信号を入力する。また、超高速ノード９のＣＰＵ９３は、インターフェース９５を介して第１〜第３演算ノード６〜８からエンジン等の疑似状態情報を入力し、メインメモリ９４に一時的に記憶する。
【００４３】
そして、ＦＰＧＡ９２は、ＥＣＵ２の制御信号及びエンジン等の疑似状態情報に基づき、駆動用モータに関するシミュレーション演算を行い、駆動用モータの疑似状態情報を生成する。さらに、ＦＰＧＡ９２は、生成した駆動用モータの疑似状態情報をＥＣＵ２へ出力すると共に、当該疑似状態情報をメインメモリ９４に一時的に記憶させておく。なお、超高速ノード９のＦＰＧＡ９２は、ＥＣＵ２の高速な処理に合わせるため、ＥＣＵ２との情報の入出力を高速に行う。そして、メインメモリ９４に記憶させた駆動用モータの疑似状態情報は、超高速ノード９のＣＰＵ９３により、インターフェース９５を介して通信ネットワーク部１１に伝送される。
【００４４】
パイプライン演算処理部１０は、複数のノード（ＣＰＵを含む）により構成されている。そして、それぞれのノードによりパイプライン演算を行う。ここで、パイプライン演算について図２を参照して詳細に説明する。図２において、アルファベットＡ〜Ｆは、それぞれのノードを示し、矢印は情報の伝達経路を示す。
【００４５】
図２に示すように、パイプライン演算とは、所定のノードが演算し、その結果を他のノードが利用する演算である。具体的には、ノードＡ及びノードＤがそれぞれ演算した後、ノードＢ及びノードＥが、ノードＡ及びノードＤの演算結果を利用して新たな演算を行う。そして、ノードＣ及びノードＦが、ノードＢ及びノードＣの演算結果を利用して新たな演算を行う。
【００４６】
パイプライン演算処理部１０以外からの入力は、Ａ及びＤのみ、またパイプライン演算処理部１０以外への出力は、Ｃ及びＦのみから行われる。つまり、通信の混雑を低減することができ、リアルタイム性が向上する。
【００４７】
そして、このパイプライン演算処理部１０は、情報管理ノード４が入力した基本モデル、Ｉ／Ｏノード５が入力したＥＣＵ１ａ〜１ｃの制御信号、超高速ノード９が入力したＥＣＵ２の制御信号、第１〜第３演算ノード６〜８が生成したエンジン等の疑似状態情報、及び、超高速ノード９が生成した駆動用モータの疑似状態情報等に基づいて、ボディ衝突解析やエンジン燃焼解析を行う。ここで、ボディ衝突解析は、シミュレーション対象の自動車が物体に衝突したと仮定した場合に、各部の変形状況、乗員に伝わる衝撃力等の解析である。
【００４８】
通信ネットワーク部１１は、イーサネット等が用いられる。ただし、通信ネットワーク部１１は、接続される各ノードの共有メモリとしてもよい。
【００４９】
以上のように構成されたリアルタイム並列分散シミュレーションシステムにおいて、Ｉ／Ｏノード５、第１〜第３演算ノード６〜８、及び、超高速ノード９の処理について、図３を参照して説明する。なお、図３において、ステップＡとステップＢの２ステップを示す。
【００５０】
図３に示すように、第１演算ノード６のＣＰＵ６２による時刻管理により、各ノード４〜９及びパイプライン演算処理部１０間にて行う通信の時刻が決定される。そして、第１演算ノード６のＣＰＵ６２にて各ノード４〜９及びパイプライン演算処理部１０間にて通信を行う時刻になったと判断すると、第１演算ノード６のＣＰＵ６２が、各ノード４〜１０に通信を行うように指令する。
【００５１】
つまり、ステップ時間の最初の段階においては、情報管理ノード４のＣＰＵ４２、Ｉ／Ｏノード５のＦＰＧＡ５２及びＣＰＵ５３、第１演算ノード６のＣＰＵ６２、第２演算ノード７のＣＰＵ７２、第３演算ノード８のＣＰＵ８２、超高速ノード９のＣＰＵ９３が、通信ネットワーク部１１を介して通信を行う。続いて、第１演算ノード６のＣＰＵ６２は、エンジン等のシミュレーション演算を行い、その後ステップ終了時刻が来るまでの間、時間管理を行う。
【００５２】
第２演算ノード７及び第３演算ノード８のＣＰＵ７２、８２は、上記の通信を行った後、エンジン等のシミュレーション演算を行い、第１演算ノード６のＣＰＵ６２から次の通信指令が来るまでの間、同期待ちしておく。
【００５３】
Ｉ／Ｏノード５のＣＰＵ５３は、上記の通信を行った後、第１演算ノード６のＣＰＵ６２から次の通信指令が来るまでの間、同期待ちしておく。また、Ｉ／Ｏノード５のＦＰＧＡ５２５２は、上記の通信を行った後、ＥＣＵ１ａ〜１ｃと情報の入出力（図３においては「Ｉ／Ｏ処理」と示す）を行う。すなわち、ＦＰＧＡ５２は、ＥＣＵ１ａ〜１ｃから制御信号を入力すると共に、第１〜第３演算ノード６〜８により生成された疑似状態情報をＥＣＵ１ａ〜１ｃへ出力する。
【００５４】
超高速ノード９のＣＰＵ９３は、上記の通信を行った後、第１演算ノード６のＣＰＵ６２から次の通信指令が来るまでの間、同期待ちしておく。また、超高速ノード９のＦＰＧＡ９２は、ＥＣＵ２との情報の入出力を行うと共に、駆動用モータに関するシミュレーション演算、すなわち駆動用モータの疑似状態情報の生成を繰り返し行う。
【００５５】
続いて、第１演算ノード６のＣＰＵ６２が次の通信指令を出力して、次のステップの処理が行われる。
【００５６】
以上より、ＥＣＵ１ａ〜１ｃからの制御信号の入力、及び、ＥＣＵ１ａ〜１ｃへの疑似状態情報の出力は、常に、Ｉ／Ｏノード５により行われる。すなわち、第１〜第３演算ノード６〜８は、ＥＣＵ１ａ〜１ｃからの制御信号の入力、及び、ＥＣＵ１ａ〜１ｃへの疑似状態情報の出力を行わない。従って、第１〜第３演算ノード６〜８は、主として、エンジン等の疑似状態情報の生成、すなわちエンジン等に関するシミュレーション演算を行う。一方、Ｉ／Ｏノード５は、主として、ＥＣＵ１ａ〜１ｃとの情報の入出力を行うことになる。従って、リアルタイムでのシミュレーションを行うために時間を要するＥＣＵ１ａ〜１ｃとの情報の入出力とシミュレーション演算とを、それぞれ別々のノードが処理するようにしている。従って、非常に効率的に処理を分散できるので、リアルタイム性を向上することができる。
【００５７】
なお、上記実施形態において、第１演算ノード６のＣＰＵ６２が時刻管理を行うようにしたが、これに限られるものではない。例えば、別途、カウンタを備えるようにし、カウンタが所定時刻に到達したときに、各ノードが通信を行うようにしてもよい。
【図面の簡単な説明】
【００５８】
【図１】本実施形態のリアルタイム並列分散シミュレーションシステムのブロック図である。
【図２】パイプライン演算処理部に関する説明図である。
【図３】各ノードの処理を示す図である。
【符号の説明】
【００５９】
１ａ〜１ｃ：ＥＣＵ、  ２：ＥＣＵ、  ３：ホストＰＣ、  ４：情報管理ノード、
５：Ｉ／Ｏノード、  ６：第１演算ノード、  ７：第２演算ノード、  
８：第３演算ノード、  ９：超高速ノード、  １０：パイプライン演算処理部、
１１：通信ネットワーク部
【図１】
2008009880.tif 000003
【図２】
2008009880.tif 000004
【図３】
2008009880.tif 000005