(57)【特許請求の範囲】
【請求項１】
シミュレーションを実施するシミュレーション実施部と、
前記シミュレーション実施部が実施しているシミュレーションであって、実時間応答性がないシミュレーションを遅延シミュレーションとして検出する遅延検出部と、
前記シミュレーション実施部が過去に実施したシミュレーションに関連する過去データを蓄積している過去データ蓄積部と、
前記遅延検出部が前記遅延シミュレーションを検出した場合に、前記遅延シミュレーションに対応する前記過去データを検索する過去データ検索部を備える検証装置。
【請求項２】
前記遅延検出部は、要求応答時間内に完了する見込みがないシミュレーションを前記遅延シミュレーションとして検出する請求項１に記載の検証装置。
【請求項３】
前記過去データは、前記シミュレーション実施部が過去に実施したシミュレーションに対応する入力データを含み、
前記過去データ検索部は、前記シミュレーション実施部が実施しているシミュレーションに対応する入力データに一致又は類似する入力データを含む過去データを検索する請求項１又は２に記載の検証装置。
【請求項４】
前記過去データは、前記シミュレーション実施部が過去に実施したシミュレーションの内部状態を表す内部状態データを含み、
前記過去データ検索部は、前記シミュレーション実施部が実施しているシミュレーションの前記内部状態データに一致又は類似する前記内部状態データを含む前記過去データを検索する請求項１から３のいずれか１項に記載の検証装置。
【請求項５】
前記内部状態データを用いて前記シミュレーション実施部のシミュレーションの内部状態を設定する条件設定部を備え、
前記条件設定部は、前記遅延検出部が前記遅延シミュレーションを検出した場合に、前記過去データ検索部が検索した前記過去データが含む前記内部状態データを用いて前記シミュレーション実施部のシミュレーションの内部状態を設定する請求項４に記載の検証装置。
【請求項６】
前記シミュレーション実施部は、前記検証装置に接続された電子制御機器の制御対象のシミュレーションを実施する請求項１から５のいずれか１項に記載の検証装置。
【請求項７】
前記電子制御機器と通信する入出力部を備え、
前記過去データは、前記シミュレーション実施部が過去に実施したシミュレーションに対応する入力データと、前記入力データに基づいて実施されたシミュレーション結果に対応する出力データであって、前記電子制御機器に出力する出力データとを含み、
前記過去データ検索部は、前記シミュレーション実施部が実施しているシミュレーションに対応する入力データに一致又は類似する入力データを含む前記過去データを検索し、
前記入出力部は、前記遅延検出部が前記遅延シミュレーションを検出した場合に、前記過去データ検索部が検索した前記過去データが含む出力データを前記電子制御機器に出力する請求項６に記載の検証装置。
【請求項８】
シミュレーション実施部が、シミュレーションを実施し、
遅延検出部が、前記シミュレーション実施部が実施しているシミュレーションであって、実時間応答性がないシミュレーションを遅延シミュレーションとして検出し、
過去データ蓄積部が、前記シミュレーション実施部が過去に実施したシミュレーションに関連する過去データを蓄積しており、
過去データ検索部が、前記遅延検出部が前記遅延シミュレーションを検出した場合に、前記遅延シミュレーションに対応する前記過去データを検索する検証方法。
【請求項９】
過去に実施したシミュレーションに関連する過去データを蓄積しているコンピュータに、
シミュレーションを実施させ、
前記コンピュータが実施しているシミュレーションであって、実時間応答性がないシミュレーションを遅延シミュレーションとして検出させ、
前記コンピュータが前記遅延シミュレーションを検出した場合に、前記遅延シミュレーションに対応する前記過去データを検索させる検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、検証装置、検証方法、及び、検証プログラムに関する。
【背景技術】
【０００２】
自動車、空気調和機器等の電子制御機器の開発において、電子制御機器を搭載する装置が正しく動作するかを検証する必要がある。しかし、電子制御機器の制御対象であるモーター等の機器の準備、及び／又は、電子制御機器を動作させる環境条件の設定等が困難な場合がある。そして、その解決策として、シミュレーションとの連接による検証がある。【０００３】
検証の対象である電子制御機器の対向装置と、検証の対象である電子制御機器を動作させる環境との代替としてシミュレーションを用いる場合、シミュレーションの実時間応答性が課題となる。【０００４】
特許文献１では、ＨＩＬＳ（Ｈａｒｄｗａｒｅ  ｉｎ  ｔｈｅ  ｌｏｏｐ  ｓｉｍｕｌａｔｏｒ）と呼ばれる専用ＨＷ（Ｈａｒｄｗａｒｅ）を用い、計算量が少ないために実時間応答性があるシミュレーションと、計算量が多いために実時間応答性がない場合のあるシミュレーションとを同時に実行することにより、実時間応答性を確保しながらシミュレーション結果を出力するシステムが示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１６５５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術において、
計算量が多いために実時間応答性がない場合のあるシミュレーションは、本来のシミュレーションモデルを使用したシミュレーションであり、
本来のシミュレーションモデルを使用して実時間応答性を確保できなかった場合に、本来のシミュレーションモデルを簡略化したシミュレーションモデルを使用したシミュレーションによる結果を返すため、本来のシミュレーションモデルを使用した場合には起こり得ないシミュレーション結果を出力することがあるという課題があった。【０００７】
本発明は、計算量が多いために実時間応答性がない場合のあるシミュレーションが実時間応答性を確保できなかった場合であっても、検証の対象である電子制御機器に対する実時間応答性を確保しつつ、本来のシミュレーションモデルを使用した場合に起こり得るシミュレーション結果を出力することを目的とする。
【課題を解決するための手段】
【０００８】
この発明の検証装置は、
シミュレーションを実施するシミュレーション実施部と、
前記シミュレーション実施部が実施しているシミュレーションであって、実時間応答性がないシミュレーションを遅延シミュレーションとして検出する遅延検出部と、
前記シミュレーション実施部が過去に実施したシミュレーションに関連する過去データを蓄積している過去データ蓄積部と、
前記遅延検出部が前記遅延シミュレーションを検出した場合に、前記遅延シミュレーションに対応する前記過去データを検索する過去データ検索部を備える。
【発明の効果】
【０００９】
本発明によれば、本来のシミュレーションモデルによって実時間応答性が確保できない場合であっても、過去データ蓄積部が蓄積している過去データに含まれるシミュレーション結果であって、本来のシミュレーションモデルによるシミュレーション結果を用いることによって、シミュレーションの実時間応答性を確保しつつ、本来のシミュレーションモデルを使用した場合に起こり得るシミュレーション結果を出力することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る検証装置２の構成図。
【図２】実施の形態１に係る検証装置２のハードウェア構成図。
【図３】実施の形態１に係るシミュレーション実施部４のシミュレーションに対応するタイムチャート。
【図４】実施の形態１に係るシミュレーション実施部４のシミュレーションに対応するタイムチャート。
【図５】実施の形態１に係る検証装置２の動作を示すフローチャート。
【発明を実施するための形態】
【００１１】
実施の形態１．
以下、本実施の形態について、図面を参照しながら詳細に説明する。
【００１２】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る検証装置２の基本的な構成を示した図である。
【００１３】
電子制御機器１は、検証装置２の検証対象である電子制御機器である。電子制御機器１は、制御対象であるモーター等の機械を制御するための信号入出力を行う。
【００１４】
本図に示すように、検証装置２は、入出力部３と、シミュレーション実施部４と、遅延検出部５と、過去データ検索部６と、過去データ蓄積部７と、条件設定部８とを備える。
検証装置２は、
電子制御機器１と接続されており、
電子制御機器１の機能及び／又は性能等の検証を行う装置であり、
電子制御機器１の制御対象であるモーター等の状態と、振る舞いと等を模擬することができる。
電子制御機器１と、検証装置２との接続方法は、任意であって良い。
【００１５】
入出力部３は、電子制御機器１が出力する信号を取り込むことができ、電子制御機器１の動作に必要なアナログセンサー信号、デジタル接点信号等の信号を電子制御機器１に出力することができる。
入出力部３は、シミュレーション実施部４から受け取った物理状態等を、電子制御機器１に信号として出力することができる。
入出力部３は、電子制御機器１と通信する。
【００１６】
シミュレーション実施部４は、
入出力部３から受け取った信号と、あらかじめ設定されている計算式及び／又はモデルと等に基づいて、電子制御機器１の制御対象である装置と、電子制御機器１の動作環境と等のシミュレーションを行うことにより、電子制御機器１に出力する出力データを求め、
出力データを入出力部３に送る。
出力データには、具体例として、物理状態が含まれる。
シミュレーション実施部４は、
複数のシミュレーションモデルに基づくシミュレーションを実行できても良く、
入出力部３から受け取った入力データに基づいて、いずれのシミュレーションモデルを使用するか判断しても良い。
シミュレーション実施部４が採用しているシミュレーションモデルを、本来のシミュレーションモデルと呼ぶ。
【００１７】
遅延検出部５は、
シミュレーション実施部４が実施しているシミュレーションの進捗状況を監視し、
シミュレーションの開始から所定の限界時間内にシミュレーションが完了するか否かを判断する。
以下、この所定の限界時間を「要求応答時間」と呼ぶ。
ユーザーが要求応答時間を設定することができても良い。遅延検出部５は、シミュレーション実施部４がシミュレーションの実施中に要求応答時間を任意の方法により変更しても良い。
遅延検出部５は、
要求応答時間内にシミュレーション実施部４が実施しているシミュレーションが完了する見込みがない場合に、前記シミュレーションに実時間応答性がないと判断し、
それ以外の場合に、前記シミュレーションに実時間応答性があると判断する。
要求応答時間内にシミュレーションが完了する見込みがない場合は、要求応答時間内にシミュレーションが実際に完了しない場合と、要求応答時間内にシミュレーションが実際に完了しない可能性がある場合とを含む。
【００１８】
過去データ検索部６は、過去データ蓄積部７に蓄積されている過去データであって、シミュレーション実施部４が実施しているシミュレーションに対応する過去データを検索する。
過去データは、過去データ検索部６に蓄積されているデータのことである。
【００１９】
過去データ蓄積部７は、
シミュレーション実施部４が過去に実施したシミュレーションに関連する過去データを蓄積しており、
具体例として、シミュレーション実施部４が過去に実施したシミュレーションにおける入力データと入力データに対応するシミュレーション結果との組み合わせ、電子制御機器１の制御対象であるセンサー等のデータのシミュレーション結果、シミュレーション実施部４のシミュレーションによらずに実環境において電子制御機器１を動作させた際の入力データに相当するデータを蓄積している。
過去データ蓄積部７が記憶している過去データは、典型的には、シミュレーション実施部４が用いる入力データ（電子制御機器１が出力する信号、検証装置２の周辺環境のデータ等）と、シミュレーション実施部４の出力データ（電子制御機器１へ入力する信号、検証装置２の周辺環境のデータ）と、シミュレーション実施部４の内部状態データとである。
内部状態は、具体例としては、シミュレーションが用いる変数により定まる状態のことであり、シミュレーションの計算条件を含む。内部状態を表すデータを内部状態データと呼ぶ。
過去データ蓄積部７は、過去データを、実時間応答性があるシミュレーションに対応する過去データであるか否かが分かるような形式において蓄積している。
【００２０】
過去データ蓄積部７が蓄積している過去データの例を、以下に示す。
データＡ：シミュレーション実施部４が電子制御機器１から受信したデータを用いて実施したシミュレーションの結果。
データＢ：検証装置２に電子制御機器１の動作を模擬するシミュレータを接続し、シミュレータが操作系列の入力データを与えることによりリアルタイム又は非リアルタイムにシミュレーション実施部４が実施したシミュレーションの結果。
データＣ：電子制御機器１を本来の動作環境において動作させた際の電子制御機器１の動作ログ、及び／又は、電子制御機器１に接続したモニタリング装置のデータ。
データＤ：シミュレーション実施部４のシミュレーションとは独立した入力データと出力データとの組み合わせであって、ユーザーが準備した入力データと出力データとの組み合わせ。
【００２１】
データＡと、データＢとは、典型的には、シミュレーション実施部４が実際にシミュレーションを実施した際の計算量と、シミュレーション時間とを含む。
【００２２】
データＣは、
ユーザーが想定する計算量と、シミュレーション時間とを含んでも良いし、
データＣに類似するデータＡ又はデータＢの計算量と、シミュレーション時間とから類推した計算量と、シミュレーション時間とを含んでも良い。
データＤは、データＣと同様である。
【００２３】
条件設定部８は、遅延検出部５が要求応答時間内に計算が完了しないと判断した場合に、典型的には、過去データ検索部６が検索した過去データに基づいて、シミュレーション実施部４のシミュレーションの内部状態の再設定と、入出力部３が出力する出力データの設定とを実施する。
【００２４】
図２は、本実施の形態に係る検証装置２のＨＷ（ハードウェア）・ＳＷ（ソフトウェア）構成例である。
検証装置２は、本図に示すＨＷ１５から構成される。
検証装置２は、典型的には、汎用ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）から構成される。
【００２５】
入出力部３と、シミュレーション実施部４と、遅延検出部５と、過去データ検索部６と、条件設定部８との処理は、メモリ１２に格納されたプログラムをプロセッサ１１が読み出し実行する。
【００２６】
ＨＷ１５は、実施の形態１のハードウェア構成を示し、プロセッサ１１と、メモリ１２と、補助記憶装置１３とから構成される。
【００２７】
プロセッサ１１は、検証プログラムと、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と等を実行するプロセッシング装置である。プロセッシング装置は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と呼ぶこともあり、プロセッサ１１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
プロセッサ１１は、メモリ１２と接続されており、演算に必要なデータの一時記憶、及び／又は、データの保存を行い、メモリ１２に格納されたプログラムを読み出して実行する。
【００２８】
本図の検証装置２は、プロセッサ１１を１つだけ備えているが、検証装置２は、プロセッサ１１を代替する複数のプロセッサを備えていても良い。これら複数のプロセッサは、プログラムの実行等を分担する。
【００２９】
メモリ１２は、データを一時的に記憶する記憶装置であり、プロセッサ１１の作業領域として使用されるメインメモリとして機能する。メモリ１２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１２は、プロセッサ１１の演算結果を保持する。
【００３０】
補助記憶装置１３は、検証プログラムと、プロセッサ１１によって実行される各種プログラムと、ＳＷ１６と、各プログラムの実行時に使用されるデータと等を記憶する。過去データ蓄積部７は、補助記憶装置１３から構成される。補助記憶装置１３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。また、補助記憶装置１３は、メモリカード、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ、登録商標）メモリカード、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等の可搬記録媒体であってもよい。
【００３１】
通信ＩＦ（インタフェース）１４は、ネットワークを介して他の機器と通信を行うためのインタフェースであり、入出力部３の処理の一部を実行する。
通信ＩＦ１４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、又は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のポートである。なお、通信ＩＦ１４は、複数のポートであっても良い。
【００３２】
ＳＷ１６は、実施の形態１のソフトウェア構成を示し、入出力部３と、シミュレーション実施部４と、遅延検出部５と、過去データ検索部６と、条件設定部８との処理は、メモリ１２と、ＯＳ１９とから構成される。
【００３３】
ＯＳ１９は、プロセッサ１１によって補助記憶装置１３からロードされ、メモリ１２に展開され、プロセッサ１１上で実行される。ＯＳ１９は、具体例としては、Ｌｉｎｕｘ（登録商標）又はＷｉｎｄｏｗｓ（登録商標）等、プロセッサ１１に適合する任意のもので良い。
ＯＳ１９と、ＳＷ１６とは、メモリ１２に記憶されていても良い。過去データ蓄積部７は、メモリ１２から構成されても良い。
【００３４】
＊＊＊動作の説明＊＊＊
検証装置２の動作手順は、検証方法に相当する。また、検証装置２の動作を実現するプログラムは、検証プログラムに相当する。
【００３５】
検証装置２は、電子制御機器１が適切に動作することができるよう、電子制御機器１の出力信号の変化を検出した時点から要求応答時間内に、電子制御機器１に対して信号変化に対応するデータを出力することを決定する。
検証装置２は、要求応答時間を電子制御機器１の機能及び／又は特性等によって異なるものとしても良い。検証装置２は、具体例として、電子制御機器１がインバーター制御機器である場合に要求応答時間を短くし、電子制御機器１が温度制御機器である場合に要求応答時間を長くする。
【００３６】
図３は、シミュレーション実施部４のシミュレーションに対応するタイムチャートの例であり、シミュレーション実施部４の全てのシミュレーションが要求応答時間以内に完了した場合を表す。
本図において、
ｔｎ（ｎは０以上の整数、以下同じ）は、シミュレーション実施部４が電子制御機器１の出力信号の変化を検出した変化検出時点であり、
変化検出時点から次の変化検出時点までの各間隔は一定でなくても良く、
ｔの添え字が小さいほど過去の時点であることを表しており、
ｔｎの直下の縦棒は、各ｔｎに対応しており、
ｄｎは、直前のｔｎから要求応答時間が経過した時点を表しており、
ｄｎの直下の破線による縦棒は、各ｄｎに対応しており、
各ｔｎから右に延びる矩形は、シミュレーション実施部４がシミュレーションを実施している期間を表しており、
矩形の長さは、シミュレーションの条件等によって変動する。
入出力部３は、シミュレーション実施部４の全てのシミュレーションが要求応答時間内に完了した場合に、各シミュレーション結果に対応する出力データを電子制御機器１に出力することができる。
各ｔｎを、入力タイミングとも呼ぶ。ｔｎに対してｔｎ＋１を“次の入力タイミング”、ｔｎ＋１に対してｔｎを“前の入力タイミング”と呼ぶこともある。
【００３７】
図４は、シミュレーション実施部４のシミュレーションに対応するタイムチャートの例であり、シミュレーション実施部４の一部のシミュレーションが要求応答時間内に完了しない場合を表す。本図の見方は、図３と同様である。
【００３８】
検証装置２は、シミュレーション実施部４のシミュレーションが要求応答時間内に完了しない場合、電子制御機器１に不適切な結果を出力することを防ぐため、要求応答時間内に完了しないシミュレーションに対応する入力タイミングから要求応答時間が経過した時点において、過去のシミュレーション結果に対応する出力データを出力する。検証装置２は、出力データを出力する代わりに、出力データを出力する準備をしても良い。過去のシミュレーション結果は、シミュレーション実施部４が過去に実施したシミュレーションのシミュレーション結果のことである。
従って、電子制御機器１は、検証装置２から適切なデータを受信することができる。
なお、検証装置２は、要求応答時間が経過する前に過去のシミュレーション結果に対応する出力データを出力しても良い。
【００３９】
図５は、本実施の形態に係る検証装置２の動作を示すフローチャートの例である。
本フローチャートに示す順序は、適宜変更しても良い。
本図に従って、検証装置２の動作を説明する。
検証装置２は、ユーザーによる検証装置２の停止動作等があるまで本フローチャートの処理を続ける。
【００４０】
（ステップＳ０１：信号取得処理）
入出力部３は、
電子制御機器１からの信号を取得し、
シミュレーション実施部４に、取得した信号に含まれる入力データを送る。
本ステップの処理開始の契機は任意であって良く、具体例としては、ユーザーの操作であっても良い。
入出力部３は、典型的には、周期的に下記の処理と並行して本ステップの処理を続ける。
【００４１】
（ステップＳ０２：検索開始処理）
過去データ検索部６は、過去データの検索を開始する。
過去データ検索部６は、入力タイミングから要求応答時間が経過する前に検索を終えるために、本ステップの処理を、遅延検出部５が遅延と判断するか否かに関わらず実施する。
本ステップにおいて開始する処理は、ステップＳ０５の説明の内、過去データ検索部６が過去データ蓄積部７から検索する処理である。
検証装置２は、過去データ検索部６が過去データの検索を完了していなくても次のステップに進み、
過去データ検索部６は、次以降のステップの処理と並行して、過去データの検索を完了するまで検索処理を実行する。
【００４２】
（ステップＳ０３：シミュレーション開始処理）
シミュレーション実施部４は、入出力部３から受け取った入力データを用いて、シミュレーションを実施する。
【００４３】
（ステップＳ０４：監視処理）
遅延検出部５は、
シミュレーション実施部４のシミュレーションが要求応答時間内に完了するか否かを監視する処理を開始し、
所定の条件を満たす場合に、遅延、即ち、シミュレーションが要求応答時間内に終わらないと判断する。
遅延検出部５は、典型的には、本ステップ以後のステップの処理の実行中であっても、シミュレーション実施部４がシミュレーションを実施している場合、シミュレーション実施部４のシミュレーションを監視する。
遅延検出部５は、シミュレーション時間が要求応答時間を実際に超過する場合のみならず、シミュレーション時間が要求応答時間を超過する可能性がある場合にも遅延と判断する。
遅延検出部５が遅延と判断した場合を“シミュレーションが遅延した”と表現することもあり、遅延検出部５が遅延と判断したシミュレーションを“遅延シミュレーション”と表現することもある。
遅延検出部５は、
シミュレーション実施部４が実施しているシミュレーションであって、実時間応答性がないシミュレーションを遅延シミュレーションとして検出する、
即ち、要求応答時間内に完了する見込みがないシミュレーションを遅延シミュレーションとして検出する。
【００４４】
遅延検出部５が遅延と判断する条件、即ち、遅延検出部５がシミュレーション実施部４のシミュレーションを遅延シミュレーションとして検出する条件の例として、以下の４つが挙げられる。遅延検出部５が遅延と判断する条件は、複数の条件を組み合わせたものであっても良い。
【００４５】
条件Ａ：要求応答時間が経過した時点において、シミュレーションが完了していないこと。
本条件は、シミュレーションの開始から要求応答時間が経過した時点においてシミュレーションが完了していない場合、遅延検出部５が遅延と判断するものである。
【００４６】
条件Ｂ：要求応答時間内の任意のタイミングにおいて、タイミングに応じた進捗率に達していないこと。
本条件は、具体例として、シミュレーションの開始から要求応答時間の５０％が経過した時点において全処理中の５０％の処理を終えていないとき、遅延検出部５が遅延と判断するものである。
【００４７】
条件Ｃ：入力データ及び／又は内部状態が、過去に要求応答時間を超過した場合における入力データ及び／又は内部状態と一致又は類似すること。
本条件は、入力データ及び／又は内部状態が過去にシミュレーション時間を超過した場合における入力データ及び／又は内部状態と一致又は類似する場合、遅延検出部５が遅延と判断するものである。
本条件に係る入力データ及び／又は内部状態は、入力データ及び／又は内部状態全体の一部であって良い。
遅延検出部５は、シミュレーション時間が要求応答時間を超過するか否かを判定するために、過去データ検索部６の検索結果を利用しても良い。
【００４８】
条件Ｄ：入力データ及び／又は内部状態が所定のルールに合致すること。
本条件は、具体例として、入力データに含まれているある変数がＯＮからＯＦＦに変化した場合等、入力データ及び／又は内部状態が所定のルールに合致する場合、遅延検出部５が遅延と判断するものである。
【００４９】
条件の組み合わせと、条件に関するパラメータと等は、検証装置２のユーザーが指定したものであっても良く、遅延検出部５が任意の学習方法を用いて導出したものであっても良い。
【００５０】
検証装置２は、
遅延検出部５が遅延と判断した場合、ステップＳ０５に進み、
それ以外の場合、ステップＳ０９に進む。
【００５１】
（ステップＳ０５：過去データ取得処理）
過去データ検索部６は、過去データ蓄積部７が蓄積しているシミュレーションに対応する入力データ及び／又は内部状態が、現在の入力データ及び／又は内部状態に一致又は類似するか否かを判断する。
現在の入力データ及び／又は内部状態は、シミュレーション実施部４が実施しているシミュレーションに対応する入力データ及び／又は内部状態のことである。
過去データ検索部６が、入力データ及び／又は内部状態の一致又は類似を判断する方法の具体例としては、
現在の入力データ及び／又は内部状態データと、過去の入力データ及び／又は内部状態データとの一致の度合いにより判断する方法、
入力データ及び／又は内部状態データの項目ごとに値の差分に重みをつけた値を算出し、算出した値を合算した類似度を算出し、算出した類似度に基づいて判断する方法、
任意のアルゴリズムにより過去のデータを用いて学習した特徴量を用いて判断する方法が挙げられる。
過去データ検索部６が使用するアルゴリズムは、対象とする電子制御機器１の特徴に合わせてユーザーが選択したものであっても良く、過去データ検索部６が学習によって求めた最適なアルゴリズムであっても良い。
過去データ検索部６は、現在の入力データ及び／又は内部状態データと一致又は類似する入力データ及び／又は内部状態データを発見した場合、発見した入力データ及び／又は内部状態データを条件設定部８に送る。
【００５２】
なお、条件設定部８がシミュレーション実施部４に設定する入力データ及び／又は内部状態データがない場合の具体例として、過去データがデータＣ又はデータＤである場合であって、過去データがシミュレーション実施部４の内部状態データを含まない場合と十分に含まない場合とが挙げられる。
【００５３】
検証装置２は、
現在の入力データ及び／又は内部状態データと一致又は類似する入力データ及び／又は内部状態データに基づく過去データを発見した場合、ステップＳ０６に進み、
それ以外の場合、ステップＳ０８に進む。
【００５４】
（ステップＳ０６：出力処理）
条件設定部８は、
過去データ検索部６が送られた入力データ及び／又は内部状態データに基づく出力データであって、過去データ蓄積部７が蓄積している出力データを抽出し、
入出力部３に対して、抽出した出力データを出力するよう指示する。
【００５５】
（ステップＳ０７：中断判断処理）
シミュレーション実施部４は、実施中のシミュレーションを中断するか否かを判断する。シミュレーション実施部４が中断するか否かを判断する条件は、任意であって良い。
シミュレーション実施部４が実施中のシミュレーションを中断すると判断した場合、
シミュレーション実施部４は、典型的には、中断するシミュレーションに対応する入力タイミングから要求応答時間内のいずれかのタイミングにおいて、前の入力タイミングに対応する出力データを出力するよう入出力部３に指示し、
条件設定部８は、過去データ検索部６から送られた入力データ及び／又は内部状態データを用いてシミュレーション実施部４のシミュレーションの内部状態を設定する。
【００５６】
検証装置２は、
シミュレーション実施部４が実施中のシミュレーションを中断する場合、ステップＳ０３に進み、
それ以外の場合、ステップＳ０８に進む。
【００５７】
（ステップＳ０８：シミュレーション継続処理）
シミュレーション実施部４は、
実施中のシミュレーションが完了したら、完了したシミュレーションに対応する入力タイミングの次の入力タイミングにおける入力データを参照してシミュレーションを実施し、
入力タイミングに対応するシミュレーションが前記入力タイミングから要求応答時間内に完了するようになるまで本ステップの処理を続け、
入力タイミングに対応するシミュレーションが前記入力タイミングから要求応答時間内に完了しない場合、前記入力タイミングから要求応答時間内のいずれかのタイミングにおいて、典型的には、最新の完了したシミュレーションに対応する出力データを出力するよう入出力部３に指示し、
シミュレーションの実施中に入出力部３から受け取った入力データを記憶する。
【００５８】
具体例として、シミュレーション実施部４が、図４に示すようにシミュレーションを実施した場合における本ステップの処理を説明する。
入出力部３は、要求応答時間内にシミュレーションが完了していない場合、要求応答時間内に電子制御機器１に対して出力データを出力することができない。
【００５９】
本図において、
ｔ０，ｔ１，ｔ２に対応するシミュレーションが要求応答時間内に終わっておらず、
シミュレーション実施部４は、ｄ０において、ｔ０の１つ前の入力タイミングに対応する出力データを出力するよう入出力部３に指示し、
シミュレーション実施部４は、ｄ１において、ｔ１に対応する出力データを出力するよう入出力部３に指示し、
シミュレーション実施部４は、ｔ２に対応するシミュレーションが要求応答時間内に終わったため、ｄ３においてｔ２に対応する出力データを出力するよう入出力部３に指示する。
シミュレーション実施部４は、ｔ２に対応するシミュレーションの完了後ｄ３より前に、出力データを出力するよう入出力部３に指示しても良い。
【００６０】
本図に示す例の場合、ｔ０からｔ２までにおけるシミュレーションは入力タイミングから要求応答時間内に完了していないが、ｔ３におけるシミュレーションは入力タイミングから要求応答時間内にシミュレーションが完了している。そのため、本例において、シミュレーション実施部４は、ｔ３におけるシミュレーションが完了するまで本ステップの処理を継続する。
【００６１】
シミュレーション実施部４は、シミュレーションを中断してシミュレーションの内部状態データ等を過去データ蓄積部７が保存していた内部状態データ等に更新した場合、
中断したシミュレーションに対応する入力タイミングにおけるシミュレーションに遅延が発生していないものとみなし、
次の入力タイミング以降において、遅延が無い場合と同様に動作する。
【００６２】
シミュレーション実施部４が過去データを用いてシミュレーションを実施しているとき、電子制御機器１からの入力データが条件設定部８に設定されている入力データと乖離した場合、
過去データ検索部６は過去データを検索し、
条件設定部８は、以後、過去データ検索部６が検出した過去データを用いて出力データとシミュレーション実施部４のシミュレーションの内部状態とを設定しても良い。
電子制御機器１からの入力データが条件設定部８に設定されている入力データと乖離することは、ユーザー操作等によって電子制御機器１の状態が変化すること等によって生じる。
【００６３】
シミュレーション実施部４は、過去データ蓄積部７に、完了したシミュレーションの入力データと、そのシミュレーションの内部状態と、その出力データとを蓄積しても良い。
【００６４】
（ステップＳ０９：出力処理）
シミュレーション実施部４は、実施中のシミュレーションが完了したら、シミュレーション結果から出力データを求め、出力データを入出力部３に送る。
シミュレーション実施部４は、過去データ蓄積部７に、完了したシミュレーションの入力データと、そのシミュレーションの内部状態と、その出力データとを蓄積しても良い。
入出力部３は、シミュレーション実施部４から受け取った出力データを電子制御機器１に送る。
【００６５】
＊＊＊実施の形態１の特徴＊＊＊
本実施の形態に係る検証装置２は、
シミュレーションを実施するシミュレーション実施部４と、
シミュレーション実施部４が実施しているシミュレーションであって、実時間応答性がないシミュレーションを遅延シミュレーションとして検出する遅延検出部５と、
シミュレーション実施部４が過去に実施したシミュレーションに関連する過去データを蓄積している過去データ蓄積部７と、
遅延検出部５が遅延シミュレーションを検出した場合に、遅延シミュレーションに対応する過去データを検索する過去データ検索部６を備える。
【００６６】
本実施の形態に係る検証装置２において、遅延検出部５は、要求応答時間内に完了する見込みがないシミュレーションを遅延シミュレーションとして検出する。
【００６７】
本実施の形態に係る検証装置２において、
過去データは、シミュレーション実施部４が過去に実施したシミュレーションに対応する入力データを含み、
過去データ検索部６は、シミュレーション実施部４が実施しているシミュレーションに対応する入力データに一致又は類似する入力データを含む過去データを検索する。
【００６８】
本実施の形態に係る検証装置２において、
過去データは、シミュレーション実施部４が過去に実施したシミュレーションの内部状態を表す内部状態データを含み、
過去データ検索部６は、シミュレーション実施部４が実施しているシミュレーションの内部状態データに一致又は類似する内部状態データを含む過去データを検索する。
【００６９】
本実施の形態に係る検証装置２は、
内部状態データを用いてシミュレーション実施部４のシミュレーションの内部状態を設定する条件設定部８を備え、
条件設定部８は、遅延検出部５が遅延シミュレーションを検出した場合に、過去データ検索部６が検索した過去データが含む内部状態データを用いてシミュレーション実施部４のシミュレーションの内部状態を設定する。
【００７０】
本実施の形態に係る検証装置２において、シミュレーション実施部４は、検証装置２に接続された電子制御機器１の制御対象のシミュレーションを実施する。
【００７１】
電子制御機器１と通信する入出力部３を備え、
過去データは、シミュレーション実施部４が過去に実施したシミュレーションに対応する入力データと、入力データに基づいて実施されたシミュレーション結果に対応する出力データであって、電子制御機器１に出力する出力データとを含み、
過去データ検索部６は、シミュレーション実施部４が実施しているシミュレーションに対応する入力データに一致又は類似する入力データを含む過去データを検索し、
入出力部３は、遅延検出部５が遅延シミュレーションを検出した場合に、過去データ検索部６が検索した過去データが含む出力データを電子制御機器１に出力する。
【００７２】
＊＊＊実施の形態１の効果の説明＊＊＊
以上のように、本実施の形態によれば、本来のシミュレーションモデルによって実時間応答性が確保できない場合であっても、過去データ蓄積部７が蓄積している過去データに含まれるシミュレーション結果であって、本来のシミュレーションモデルによるシミュレーション結果を用いることによって、シミュレーションの実時間応答性を確保しつつ、本来のシミュレーションモデルを使用した場合に起こり得るシミュレーション結果を出力することができる。
【００７３】
＜変形例１＞
検証装置２は、複数の装置から構成されていても良い。
本変形例において、検証装置２は、具体例として、過去データ蓄積部７を有する装置と、本実施の形態に係る検証装置２の過去データ蓄積部７以外の部を有する装置から構成されていても良い。
【００７４】
＜変形例２＞
検証装置２は、電子制御機器１と通信することができるコンピュータにおいて実行することができるソフトウェアであっても良い。
【００７５】
＜変形例３＞
ステップＳ０３において、シミュレーション実施部４は、複数のシミュレーションを開始しても良い。
本変形例において、
遅延検出部５は、シミュレーション実施部４が実施している全てのシミュレーションを監視し、
検証装置２は、シミュレーション実施部４が実施しているシミュレーション毎にステップＳ０４より後の処理を実行する。
【００７６】
＜変形例４＞
ステップＳ０５において、過去データ検索部６が一致又は類似する過去データを発見しなかった場合、検証装置２は、シミュレーションの遅延が発生していることを画面に表示すること等により、ユーザーに通知しても良い。
本変形例において、検証装置２は、ユーザーがその通知を確認して検証装置２による検証を継続するか、中断するかを決定できるようなものであっても良い。
【００７７】
＜変形例５＞
ステップＳ０５において、過去データ検索部６は、入力データ及び／又は内部状態データを条件設定部８に送らなくても良い。
本変形例において、
過去データ検索部６が、条件設定部８の代わりにステップＳ０６の処理を実行しても良く、
条件設定部８は、ステップＳ０７において、シミュレーション実施部４のシミュレーションの入力データ及び／又は内部状態データを設定しない。
【００７８】
＜変形例６＞
ステップＳ０５において、過去データ検索部６は、発見した入力データ及び／又は内部状態に対応する過去データを条件設定部８に送っても良い。
本変形例において、条件設定部８は、
過去データ蓄積部７が蓄積している出力データを抽出せず、
入出力部３に対して、過去データ検索部６から受け取った過去データに含まれる出力データを出力するよう指示する。
【００７９】
＜変形例７＞
ステップＳ０８において、シミュレーション実施部４は、任意の条件によって実施中のシミュレーションを中断しても良い。
【００８０】
＜変形例８＞
ステップＳ０９において、シミュレーション実施部４がシミュレーションを実施している最中に遅延検出部５が遅延を検出した場合、検証装置２はステップＳ０５に進んでも良い。
【００８１】
＜変形例９＞
本実施の形態では、各機能構成要素をソフトウェアで実現する場合を説明した。しかし、変形例として、各機能構成要素はハードウェアで実現されても良い。
【００８２】
各機能構成要素がハードウェアで実現される場合には、検証装置２は、プロセッサ１１に代えて、電子回路１７を備える。あるいは、図示しないが、検証装置２は、プロセッサ１１、メモリ１２、及び補助記憶装置１３に代えて、電子回路１７を備える。電子回路１７は、各機能構成要素（及びメモリ１２と補助記憶装置１３）の機能を実現する専用の電子回路である。電子回路を、処理回路と呼ぶこともある。
【００８３】
電子回路１７は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
【００８４】
各機能構成要素を１つの電子回路１７で実現してもよいし、各機能構成要素を複数の電子回路１７に分散させて実現してもよい。
【００８５】
あるいは、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【００８６】
前述したプロセッサ１１とメモリ１２と補助記憶装置１３と電子回路１７とを、総称して「プロセッシングサーキットリー」という。つまり、各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
【００８７】
＊＊＊他の実施の形態＊＊＊
前述した実施の形態の任意の構成要素の変形、もしくは実施の形態において任意の構成要素の省略が可能である。
【００８８】
また、実施の形態は、実施の形態１で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８９】
１  電子制御機器、２  検証装置、３  入出力部、４  シミュレーション実施部、５  遅延検出部、６  過去データ検索部、７  過去データ蓄積部、８  条件設定部、１１  プロセッサ、１２  メモリ、１３  補助記憶装置、１４  通信ＩＦ、１５  ＨＷ、１６  ＳＷ、１７  電子回路、１９  ＯＳ。
【図１】
0006972442.tif 000002
【図２】
0006972442.tif 000003
【図３】
0006972442.tif 000004
【図４】
0006972442.tif 000005
【図５】
0006972442.tif 000006