(57)【要約】【課題】異なるシミュレーション環境に属する各モデルに対する故障の発生を統合的に制御する。【解決手段】シミュレーション装置１は、第１のデバイスの仮想デバイスモデル４＿１についてのシミュレーションを行うシミュレーション部２＿１と、前記第１のデバイスを用いた処理を行う第２のデバイスの仮想デバイスモデル４＿２についてのシミュレーションを行うシミュレーション部２＿２と、前記第１のデバイスについての故障の内容及び発生条件を示すシナリオ並びに前記第２のデバイスについての故障の内容及び発生条件を示すシナリオを含むシナリオリスト５に基づいて、仮想デバイスモデル４＿１及び仮想デバイスモデル４＿２のそれぞれに故障を注入する故障注入制御部３とを有する。【選択図】図１
2019086996.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイスの第１の仮想デバイスモデルについてのシミュレーションを行う第１のシミュレーション部と、
前記第１のデバイスを用いた処理を行う第２のデバイスの第２の仮想デバイスモデルについてのシミュレーションを行う第２のシミュレーション部と、
前記第１のデバイスについての故障の内容及び発生条件を示すシナリオ並びに前記第２のデバイスについての故障の内容及び発生条件を示すシナリオを含むシナリオリストに基づいて、前記第１の仮想デバイスモデル及び前記第２の仮想デバイスモデルのそれぞれに故障を注入する故障注入制御部と
を有するシミュレーション装置。
【請求項２】
前記シナリオリストは、故障の発生条件として前記第２のシミュレーション部が管理している時刻における故障の発生タイミングを含み、
前記故障注入制御部は、前記第２のシミュレーション部が管理している時刻が、前記発生タイミングに到達すると、該発生タイミングに関連づけられている故障内容の故障の発生を前記第１のシミュレーション部又は前記第２のシミュレーション部に指示する
請求項１に記載のシミュレーション装置。
【請求項３】
前記シナリオリストは、故障の発生条件として、前記第１のシミュレーション部又は前記第２のシミュレーション部によるシミュレーションにおいて発生する所定の事象を含み、
前記故障注入制御部は、前記所定の事象が発生すると、該事象に関連づけられている故障内容の故障の発生を前記第１のシミュレーション部又は前記第２のシミュレーション部に指示する
請求項１に記載のシミュレーション装置。
【請求項４】
前記故障注入制御部は、前記第１のシミュレーション部によるシミュレーションにおいて前記所定の事象が発生すると、該事象に関連づけられている故障内容の故障の発生を前記第２のシミュレーション部に指示する
請求項３に記載のシミュレーション装置。
【請求項５】
前記故障注入制御部は、ユーザインタフェースからの指示に従って所定の故障内容の故障の発生を前記第１のシミュレーション部又は前記第２のシミュレーション部に指示する
請求項１に記載のシミュレーション装置。
【請求項６】
前記第２のシミュレーション部は、前記第１のシミュレーション部に対して上位のシミュレーション環境であり、前記第１のシミュレーション部は、前記第２のシミュレーション部に対して下位のシミュレーション環境である
請求項１に記載のシミュレーション装置。
【請求項７】
前記第１のシミュレーション部は、ＳＰＩＬＳ（Simulated Processor In the Loop
）環境であり、前記第２のシミュレーション部は、ＭＩＬＳ（Model In the Loop Simulation）環境である
請求項６に記載のシミュレーション装置。
【請求項８】
前記第１のデバイスは、マイクロコンピュータであり、
前記シナリオリストは、前記マイクロコンピュータの内部の回路についての故障の内容及び発生条件を示すシナリオを含む
請求項１に記載のシミュレーション装置。
【請求項９】
前記故障注入制御部が、前記第２のシミュレーション部の機能として含まれている
請求項１に記載のシミュレーション装置。
【請求項１０】
第１のデバイスの第１の仮想デバイスモデルについてのシミュレーションを行う第１のシミュレーションステップと、
前記第１のデバイスを用いた処理を行う第２のデバイスの第２の仮想デバイスモデルについてのシミュレーションを行う第２のシミュレーションステップと、
前記第１のデバイスについての故障の内容及び発生条件を示すシナリオ並びに前記第２のデバイスについての故障の内容及び発生条件を示すシナリオを含むシナリオリストに基づいて、前記第１の仮想デバイスモデル及び前記第２の仮想デバイスモデルのそれぞれに故障を注入する故障注入制御ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーション装置及びプログラムに関し、例えば仮想デバイスモデルに故障注入を行うシミュレーション装置及びプログラムに関する。
【背景技術】
【０００２】
自動車、航空、医療など、安全に対する要求が非常に高い領域などにおいて、モデルベース開発や仮想開発の環境を用いることによって、実際のデバイスが故障した状況を模擬した上での製品開発が求められている。
【０００３】
特許文献１は、マイクロコンピュータに接続する回路のモデルに対し、故障モード定義ファイルに記載された故障状態の情報を挿入し、当該挿入した故障状態に対応する故障注入テストを行う故障注入手段を備えるシミュレーション装置について開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２０３３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、階層の異なる複数のシミュレーション環境を統合して、全体の検証を行いたいというニーズが増えている。しかしながら、特許文献１に記載のシミュレーション装置では、マイクロコンピュータと接続する回路のモデルに故障を発生させることはできるが、異なるシミュレーション環境に属する他のモデルへの故障の発生を制御できない。すなわち、特許文献１に記載のシミュレーション装置では、例えば、テスト実行時に、マイクロコンピュータモデル及びプラントモデルの双方に故障を注入することができない。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、シミュレーション装置は、第１のデバイスについての故障の内容及び発生条件を示すシナリオ並びに第２のデバイスについての故障の内容及び発生条件を示すシナリオを含むシナリオリストに基づいて、第１のデバイスの第１の仮想デバイスモデル及び第２のデバイスの第２の仮想デバイスモデルのそれぞれに故障を注入する故障注入制御部を有する。
【発明の効果】
【０００８】
前記一実施の形態によれば、異なるシミュレーション環境に属する各モデルに対する故障の発生を統合的に制御することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態の概要にかかるシミュレーション装置の構成の一例を示すブロック図である。
【図２】実施の形態にかかるシミュレーション装置の機能構成の一例を示すブロック図である。
【図３】実施の形態にかかるシミュレーション装置のハードウェア構成の一例を示すブロック図である。
【図４】実施の形態１にかかるシミュレーション装置における故障注入について示す模式図である。
【図５】全体検証制御部が用いるテストシナリオリストの一例を示す表である。
【図６】実施の形態１において、故障注入制御スーパーバイザーが用いる故障シナリオリストの一例を示す表である。
【図７】実施の形態２において、故障注入制御スーパーバイザーが用いる故障シナリオリストの一例を示す表である。
【図８】実施の形態３にかかるシミュレーション装置における故障注入について示す模式図である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
＜実施の形態の概要＞
まず、実施の形態の詳細な説明に先立って、実施の形態の概要について説明する。図１は、実施の形態の概要にかかるシミュレーション装置１の構成の一例を示すブロック図である。図１に示すように、シミュレーション装置１は、シミュレーション部２＿１と、シミュレーション部２＿２と、故障注入制御部３とを有する。
【００１２】
シミュレーション部２＿１（第１のシミュレーション部）は、第１のデバイスの仮想デバイスモデル４＿１（第１の仮想デバイスモデル）についてのシミュレーションを行う。すなわち、シミュレーション部２＿１は、実機である第１のデバイスをモデル化した仮想デバイスモデル４＿１を使用したシミュレーションを行う。
【００１３】
シミュレーション部２＿２（第２のシミュレーション部）は、第２のデバイスの仮想デバイスモデル４＿２（第２の仮想デバイスモデル）についてのシミュレーションを行う。すなわち、シミュレーション部２＿２は、実機である第２のデバイスをモデル化した仮想デバイスモデル４＿２を使用したシミュレーションを行う。なお、この第２のデバイスは、例えば、上記の第１のデバイスを用いた処理を行うデバイスである。例えば、第１のデバイスは、マイクロコンピュータであり、第２のデバイスはこのマイクロコンピュータにより制御されるプラントであってもよい。
【００１４】
ここで、シミュレーション部２＿１によるシミュレーション環境とシミュレーション部２＿２によるシミュレーション環境は、互いに異なっている。例えば、シミュレーション部２＿２によるシミュレーション環境は、シミュレーション部２＿１に対して上位のシミュレーション環境であり、シミュレーション部２＿１によるシミュレーション環境は、シミュレーション部２＿２に対して下位のシミュレーション環境である。具体的には、例えば、シミュレーション部２＿１は、ＳＰＩＬＳ（Simulated Processor In the Loop
）環境であり、シミュレーション部２＿２は、ＭＩＬＳ（Model In the Loop Simulation）環境である。
【００１５】
故障注入制御部３は、第１のデバイスについての故障の内容及び発生条件を示すシナリオ並びに第２のデバイスについての故障の内容及び発生条件を示すシナリオを含むシナリオリスト５に基づいて、仮想デバイスモデル４＿１及び仮想デバイスモデル４＿２のそれぞれに故障を注入する。
【００１６】
上述の通り、シナリオリスト５には、属するシミュレーション環境が互いに異なる仮想デバイスモデル４＿１、４＿２についての故障の内容及び発生条件が記載されている。そして、故障注入制御部３は、このシナリオリスト５に従って、仮想デバイスモデル４＿１及び仮想デバイスモデル４＿２のそれぞれに故障を注入する。このため、シミュレーション装置１によれば、異なるシミュレーション環境に属する各仮想デバイスモデルに対する故障の発生を統合的に制御することができる。
【００１７】
＜実施の形態１＞
次に、実施の形態の詳細について説明する。図２は、実施の形態１にかかるシミュレーション装置１０の機能構成の一例を示すブロック図である。シミュレーション装置１０は、ＳＰＩＬＳ環境部１００と、ＭＩＬＳ環境部２００と、テスト制御部３００とを有する。なお、本実施の形態では、自動車のモデルベース開発環境（仮想開発環境）を例に説明するが、開発対象が自動車以外であってもよい。すなわち、本実施の形態では、仮想デバイスモデルとして、自動車に用いられるデバイスのモデルを例として説明するが、自動車以外の開発対象に用いられるデバイスのモデルであってもよい。
【００１８】
ＭＩＬＳ環境部２００は、ＭＩＬＳ環境を提供するソフトウェアであり、実機のデバイスについての仮想デバイスモデルを用いたシミュレーションを行う。本実施の形態では、上述の通り、自動車の開発を例に説明しているため、ＭＩＬＳ環境部２００は、自動車モデル２１０及び各構成モジュールのモデル（例えば、車体モジュールモデル２２０＿１、エンジン（モータ）モジュールモデル２２０＿２、ミッションモジュールモデル２２０＿３、並びに、レーダモジュールモデル２２０＿４Ａ及びカメラモジュールモデル２２０＿４Ｂを含む自動運転モジュールモデル２２０＿４）を用いて、開発対象の自動車及びモジュールのシミュレーションを行う。なお、ＭＩＬＳ環境部２００は、図１のシミュレーション部２＿２に対応している。以下、車体モジュールモデル２２０＿１、エンジン（モータ）モジュールモデル２２０＿２、ミッションモジュールモデル２２０＿３、及び自動運転モジュールモデル２２０＿４といった構成モジュールのモデルを、モジュールモデル２２０と称す。
【００１９】
ＳＰＩＬＳ環境部１００は、ＳＰＩＬＳ環境を提供するソフトウェアであり、実機のデバイスについての仮想デバイスモデルを用いたシミュレーションを行う。ＳＰＩＬＳ環境部１００に属する仮想デバイスモデルは、ＭＩＬＳ環境部２００に属する仮想デバイスモデルに対応する実機の制御に使われるプロセッサの仮想デバイスモデルである。言い換えると、ＭＩＬＳ環境部２００でモデル化対象となるデバイスの少なくとも一つは、ＳＰＩＬＳ環境部１００でモデル化対象となるプロセッサを用いた処理を行う。例えば、ＳＰＩＬＳ環境部１００は、図２に示すように、自動車の構成モジュールの制御のために用いられるＥＣＵ（Electronic Control Unit）の仮想デバイスモデルであるＥＣＵモデル１１０＿１、１１０＿２、１１０＿３、１１０＿４を用いて、ＥＣＵの動作のシミュレーションを行う。なお、ＥＣＵモデル１１０＿１、１１０＿２、１１０＿３、１１０＿４は、マイクロコンピュータモデル１１１＿１、１１１＿２、１１１＿３、１１１＿４を含む。マイクロコンピュータモデル１１１＿１、１１１＿２、１１１＿３、１１１＿４は、ＥＣＵに搭載されるマイクロコンピュータをモデル化したものである。なお、ＳＰＩＬＳ環境部１００は、図１のシミュレーション部２＿１に対応している。以下、ＥＣＵモデル１１０＿１、１１０＿２、１１０＿３、１１０＿４を特に区別せずに言及する場合、ＥＣＵモデル１１０と称す。同様に、マイクロコンピュータモデル１１１＿１、１１１＿２、１１１＿３、１１１＿４を特に区別せずに言及する場合、マイクロコンピュータモデル１１１と称す。
【００２０】
ＭＩＬＳ環境部２００は、例えば、時分秒を時間軸としてシミュレーションを実行する。例えば、ＭＩＬＳ環境部２００は、ミリ秒単位で、時刻を管理する。また、ＳＰＩＬＳ環境部１００は、マイクロコンピュータを動作させるためのクロックのクロック数を時間軸としてシミュレーションを実行する。
【００２１】
テスト制御部３００は、仮想デバイスモデルを用いたシミュレーションによるテストの実行を制御するソフトウェアである。テスト制御部３００は、全体検証制御部３１０と故障注入制御スーパーバイザー３２０とを有する。
【００２２】
全体検証制御部３１０（テスト制御部）は、予め定められたテストシナリオに沿って、仮想デバイスモデルを動作させることによりテストを実行する。具体的には、全体検証制御部３１０は、テストシナリオで定義された動作条件が満たされると、テストシナリオで定義された動作内容を実行するよう自動車モデル２１０を制御する。自動車モデル２１０は、全体検証制御部３１０の制御のもと、モジュールモデル２２０を用いた処理を実行する。また、モジュールモデル２２０は、例えば、ＥＣＵモデル１１０及びマイクロコンピュータモデル１１１を用いた処理を実行する。
【００２３】
また、全体検証制御部３１０は、故障注入制御スーパーバイザー３２０を制御する。具体的には、全体検証制御部３１０は、故障注入制御スーパーバイザー３２０による故障注入を行うか否かを制御する。全体検証制御部３１０が、故障を注入するよう故障注入制御スーパーバイザー３２０を制御した場合、デバイスに故障が発生した際の動作を模擬したシミュレーションが実行される。すなわち、この場合、異常系の検証を行うことが可能となる。また、全体検証制御部３１０が、故障を注入しないよう故障注入制御スーパーバイザー３２０を制御した場合、正常なデバイスの動作を模擬したシミュレーションが実行される。すなわち、この場合、正常系の検証を行うことが可能となる。
【００２４】
故障注入制御スーパーバイザー３２０は、故障シナリオリスト３２１に基づいて、ＭＩＬＳ環境部２００のシミュレーションで用いられる仮想デバイスモデル及びＳＰＩＬＳ環境部１００のシミュレーションで用いられる仮想デバイスモデルのそれぞれに故障を注入する。ここで、故障シナリオリスト３２１は、ＭＩＬＳ環境部２００のシミュレーションで用いられる仮想デバイスモデルでモデル化されたデバイスについての故障内容及び故障発生条件を示すシナリオ並びにＳＰＩＬＳ環境部１００のシミュレーションで用いられる仮想デバイスモデルでモデル化されたデバイスについての故障内容及び故障発生条件を示すシナリオを含む。なお、故障注入制御スーパーバイザー３２０による故障注入の詳細については後述する。
【００２５】
ここで、シミュレーション装置１０のハードウェア構成について説明する。図３は、実施の形態１にかかるシミュレーション装置１０のハードウェア構成の一例を示すブロック図である。シミュレーション装置１０は、演算装置（プロセッサ）としてのＣＰＵ（Central Processing Unit）１１と、プログラムや各種データを記憶するメモリ１２と、キーボードなどの入力装置１３と、フラットパネルディスプレイなどの表示装置１４と、これらを互いに接続するバス１５とを有している。
【００２６】
メモリ１２は、例えばＲＡＭ(Random Access Memory)又はＲＯＭ（Read Only Memory）により構成されており、ＭＩＬＳ環境部２００、ＳＰＩＬＳ環境部１００、及びテスト制御部３００の処理を記述したプログラム、並びに、各仮想デバイスモデルなどのソフトウェアを記憶している。すなわち、シミュレーション装置１０において、ＣＰＵ１１がメモリ１２に記憶されたプログラム（ソフトウェア）を実行することで、ＭＩＬＳ環境部２００、ＳＰＩＬＳ環境部１００、及びテスト制御部３００の上述の処理が行われる。
【００２７】
上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００２８】
入力装置１３は、例えば、後述するテストシナリオリスト及び故障シナリオリスト３２１の編集を行う際などに用いられる。このように、テスト制御部３００は、入力装置１３を介してユーザから入力された情報に従って、テストシナリオリスト及び故障シナリオリスト３２１の内容を設定してもよい。表示装置１４は、例えば、テスト結果を表示する際などに用いられる。このように、テスト制御部３００は、テスト結果を表示装置１４に表示してもよい。また、ＳＰＩＬＳ環境部１００、ＭＩＬＳ環境部２００、又はテスト制御部３００は、ＧＵＩ（Graphical User Interface）又はＣＵＩ（Character User Interface）などのユーザインタフェースを表示装置１４に表示してもよい。
【００２９】
次に、仮想デバイスモデルに対する故障注入の詳細について説明する。図４は、実施の形態１にかかるシミュレーション装置１０における故障注入について示す模式図である。また、図５は、全体検証制御部３１０が用いるテストシナリオリストの一例を示す表であり、図６は、故障注入制御スーパーバイザー３２０が用いる故障シナリオリスト３２１の一例を示す表である。なお、テストシナリオリスト及び故障注入シナリオリストは、例えば、メモリ１２に予め記憶されている。
【００３０】
ＭＩＬＳ環境部２００は、自動車モデル２１０によるシミュレーションにおいて、プラント２５０＿１〜２５０＿ｍに対する制御２６０＿１〜２６０＿ｎを実行する。制御２６０＿１〜２６０＿ｎは、モジュールモデル２２０を用いてシミュレーションされる。図４では、一例として、制御２６０＿１における処理に着目した図を示している。例えば、制御２６０＿１は、エンジン（モータ）モジュールモデル２２０＿２による処理（図４のプロセスＰＲ１）とミッションモジュールモデル２２０＿３による処理（図４のプロセスＰＲ２）により構成されている。なお、図４に示した例では、プロセスＰＲ１、ＰＲ２が入力ＩＮ１、ＩＮ２に対して所定の処理を実行し、その出力ＯＵＴ１、ＯＵＴ２がフィードバックされる処理を図示しているが、これに限らず、任意の処理のシミュレーションが実行可能であることは言うまでもない。また、図４に示した例では、破線で示されるように、プロセスＰＲ１は、ＥＣＵモデル１１０＿１によりモデル化されているＥＣＵを使う処理をシミュレーションするプロセスである。同様に、図４に示した例では、プロセスＰＲ２は、ＥＣＵモデル１１０＿２によりモデル化されているＥＣＵ及びＥＣＵモデル１１０＿３によりモデル化されているＥＣＵを使う処理をシミュレーションするプロセスである。
【００３１】
ＭＩＬＳ環境部２００は、仮想デバイスモデルに故障を注入するための故障注入機能ＦＩ１、ＦＩ２を有している。同様に、ＳＰＩＬＳ環境部１００は、仮想デバイスモデルに故障を注入するための故障注入機能ＦＩ３、ＦＩ４を有している。故障注入機能ＦＩ１、ＦＩ２、ＦＩ３、ＦＩ４は、例えば、故障時の動作を仮想デバイスモデルに反映させるスクリプト（プログラム）である。図４に示した例では、故障注入機能ＦＩ１は、プロセスＰＲ１（すなわち、プロセスＰＲ１を実行するモジュールモデル２２０）に対して故障を注入する機能であり、故障注入機能ＦＩ２は、プロセスＰＲ２（すなわち、プロセスＰＲ２を実行するモジュールモデル２２０）に対して故障を注入する機能である。また、故障注入機能ＦＩ３は、マイクロコンピュータモデル１１１＿１に対して故障を注入する機能であり、故障注入機能ＦＩ４は、ＥＣＵモデル１１０＿３に対して故障を注入する機能である。
【００３２】
全体検証制御部３１０は、例えば、図５に示すテストシナリオリストに従って、テストを実行する。テストシナリオリストには、例えば、「要求識別子」、「実行対象の制御」、「時刻」、「事象」などが記載されている。テストシナリオリストにおいて、「要求識別子」は、各テストシナリオを識別する識別子である。「実行対象の制御」は、実行される制御を特定する情報である。「時刻」は、「事象」の動作条件を示す情報の一例であり、「事象」の発生時刻を示す。「事象」は、動作内容を示す情報であり、ＭＩＬＳ環境部２００が管理する時刻がテストシナリオリストの「時刻」に達した際に発生させる事象を示している。
【００３３】
全体検証制御部３１０は、ＭＩＬＳ環境部２００の管理している時刻（テストシミュレーション中の時刻）を監視し、当該時刻がテストシナリオリストに記載された時刻に達すると、テストシナリオにおいて定義された事象を実行するよう自動車モデル２１０を制御する。例えば、図５に示したテストシナリオリストによれば、全体検証制御部３１０は、ＭＩＬＳ環境部２００が管理するシミュレーション実行中の時刻を監視し、当該時刻が時刻ｔ１になると、制御２６０＿１を起動する。これにより、プロセスＰＲ１、ＰＲ２の実行がＭＩＬＳ環境において開始され、必要に応じて、ＳＰＩＬＳ環境におけるＥＣＵモデル１１０＿１〜１１０＿３の実行が行われる。
【００３４】
また、例えばユーザインタフェースを介して、ユーザから故障発生を伴うテストの実行が指示された場合（すなわち、異常系の検証の実行が指示された場合）、全体検証制御部３１０は、故障注入制御スーパーバイザー３２０に故障発生を制御するよう指示する。
故障注入制御スーパーバイザー３２０は、例えば、図６に示す故障シナリオリストに従って故障注入を実行する。テストシナリオリストには、例えば、「要求識別子」、「故障の注入対象」、「時刻」、「事象」などが記載されている。故障シナリオリストにおいて、「要求識別子」は、各故障シナリオを識別する識別子である。図６に示した例では、この識別子として、故障注入のために用いられる故障注入機能（故障注入機能ＦＩ１、ＦＩ２、ＦＩ３、ＦＩ４）を特定する情報が記載されている。「故障の注入対象」は、故障の注入対象を特定する情報である。「時刻」は、故障の発生条件を示す情報であり、「事象」で示される故障の発生時刻を示す。「事象」は、故障内容を示す情報であり、ＭＩＬＳ環境部２００が管理する時刻が故障シナリオリストの「時刻」に達した際に発生させる事象を示している。
【００３５】
故障注入制御スーパーバイザー３２０は、ＭＩＬＳ環境部２００の管理している時刻を監視し、当該時刻が故障シナリオリストに記載された時刻に達すると、故障シナリオにおいて定義された事象を実行する故障注入機能に故障注入の指示をする。例えば、図６に示した故障シナリオリストによれば、故障注入制御スーパーバイザー３２０は、ＭＩＬＳ環境部２００が管理するシミュレーション実行中の時刻を監視し、当該時刻が時刻ｔ４になると、回路のショートをプロセスＰＲ１（プロセスＰＲ１を実行する仮想デバイスモデル）において発生させるよう故障注入機能ＦＩ１に指示する。また、ＭＩＬＳ環境部２００の時刻が時刻ｔ５になると、メモリの記憶値の固着をプロセスＰＲ２（プロセスＰＲ２を実行する仮想デバイスモデル）において発生させるよう故障注入機能ＦＩ２に指示する。また、ＭＩＬＳ環境部２００の時刻が時刻ｔ６になると、例外処理をマイクロコンピュータモデル１１１＿１において発生させるよう故障注入機能ＦＩ３に指示する。また、ＭＩＬＳ環境部２００の時刻が時刻ｔ７になると、メモリの記憶値のエラーをマイクロコンピュータモデル１１１＿１において発生させるよう故障注入機能ＦＩ３に指示する。また、ＭＩＬＳ環境部２００の時刻が時刻ｔ８になると、回路の断線をＥＣＵモデル１１０＿３において発生させるよう故障注入機能ＦＩ４に指示する。
【００３６】
以上、実施の形態１について説明した。実施の形態１にかかるシミュレーション装置１０では、故障注入制御スーパーバイザー３２０が、故障シナリオリストに定義された情報に従って、ＭＩＬＳ環境の仮想デバイスモデル及びＳＰＩＬＳ環境の仮想デバイスモデルのそれぞれに故障を注入する。このため、異なるシミュレーション環境に属する各モデルに対する故障の発生を統合的に制御することができる。また、特に、本実施の形態では、故障シナリオリストは、故障発生条件として、ＭＩＬＳ環境部２００が管理している時刻における故障の発生タイミング（図６の「時刻」）を含んでおり、故障注入制御スーパーバイザー３２０は、ＭＩＬＳ環境部２００が管理している時刻が、この発生タイミングに到達すると、この発生タイミングに関連づけられている故障内容の故障発生をＳＰＩＬＳ環境部１００又はＭＩＬＳ環境部２００に指示する。このため、ＭＩＬＳ環境及びＳＰＩＬＳ環境による同期したシミュレーションにおいて、故障発生時のデバイスの動作を模擬することが可能となる。したがって、上述のように例えば車全体を異なる複数のシミュレーション環境を利用してモデル化している場合であっても、各仮想デバイスモデルを共通のシミュレーションモデルとして扱うことができ、全体の構成をまとめた設計及び検証を容易に行うことが可能になる。また、例えば、機能安全プロセスに従った、安全性を確保するための検証も容易に行うことができる。
【００３７】
また、故障シナリオリスト３２１は、マイクロコンピュータの内部の回路についての故障内容及び故障発生条件を示すシナリオを含んでもよい。この場合、本実施の形態にかかるシミュレーション装置１０によれば、シミュレーションの際にマイクロコンピュータの内部の回路についての故障を模擬することができる。
【００３８】
＜実施の形態２＞
次に、実施の形態２について説明する。実施の形態１では、故障注入制御スーパーバイザー３２０は、故障発生条件として、時刻を用いた。しかしながら、故障発生条件は、時刻以外であってもよい。実施の形態２は、所定のイベント（事象）を故障発生条件として用いる点で、実施の形態１と異なる。
【００３９】
図７は、実施の形態２において故障注入制御スーパーバイザー３２０が用いる故障シナリオリスト３２１の一例を示す表である。図７に示すように、本実施の形態では、故障シナリオリストは、故障発生条件として、トリガーとなるイベントを定義している。すなわち、実施の形態１では、故障注入制御スーパーバイザー３２０は、タイムドリブンな故障の発生を制御したのに対し、実施の形態２ではイベントドリブンな故障の発生を制御する。
【００４０】
なお、トリガーとなるイベントとして、実施の形態１と同様に、時刻が定義されてもよい。また、トリガーとなるイベントは、ＧＵＩなどのユーザインタフェースからの指示、すなわちユーザからの指示の発生であってもよい。
【００４１】
故障注入制御スーパーバイザー３２０は、例えば、ＭＩＬＳ環境部２００及びＳＰＩＬＳ環境部１００における仮想デバイスモデルの処理状態、ＭＩＬＳ環境部２００が管理するシミュレーション実行中の時刻、並びにユーザインタフェースを監視し、故障シナリオリストにおいて定義されたイベントが発生したか否かを確認する。そして、故障シナリオリストにおいて定義されたイベントが発生した場合、故障シナリオリストにおいて当該イベントに関連づけられている事象を発生させるようＳＰＩＬＳ環境部１００又はＭＩＬＳ環境部２００に指示する。
【００４２】
例えば、図７に示した故障シナリオリストによれば、故障注入制御スーパーバイザー３２０は、所定の割り込み処理が発生すると、回路のショートをプロセスＰＲ１（具体的には、プロセスＰＲ１を実行する仮想デバイスモデル）において発生させるよう故障注入機能ＦＩ１に指示する。また、メモリからの所定のリード処理が発生すると、メモリの記憶値の固着をプロセスＰＲ２（プロセスＰＲ２を実行する仮想デバイスモデル）において発生させるよう故障注入機能ＦＩ２に指示する。また、メモリへの所定のライト処理が発生すると、例外処理をマイクロコンピュータモデル１１１＿１において発生させるよう故障注入機能ＦＩ３に指示する。また、ＭＩＬＳ環境部２００の時刻が時刻ｔ９になると、メモリの記憶値のエラーをマイクロコンピュータモデル１１１＿１において発生させるよう故障注入機能ＦＩ３に指示する。また、ＧＵＩを介して指示が入力されると、回路の断線をＥＣＵモデル１１０＿３において発生させるよう故障注入機能ＦＩ４に指示する。
【００４３】
上述したように、実施の形態２では、故障シナリオリストは、故障の発生条件として、ＳＰＩＬＳ環境部１００又はＭＩＬＳ環境部２００によるシミュレーションにおいて発生する所定のイベント（事象）を含む。そして、故障注入制御スーパーバイザー３２０は、この所定のイベントが発生すると、このイベントに関連づけられている故障内容の故障の発生をＳＰＩＬＳ環境部１００又はＭＩＬＳ環境部２００に指示する。このため、ＭＩＬＳ環境及びＳＰＩＬＳ環境による同期したシミュレーションにおいて、様々な態様で、故障の発生を模擬することが可能となる。
【００４４】
なお、ＭＩＬＳ環境部２００の仮想デバイスモデルにおける故障発生条件が、当該仮想デバイスモデルにおけるイベントであってもよいし、他の仮想デバイスモデル（ＭＩＬＳ環境部２００の他の仮想デバイスモデル又はＳＰＩＬＳ環境部１００の仮想デバイスモデル）におけるイベントであってもよい。同様に、ＳＰＩＬＳ環境部１００の仮想デバイスモデルにおける故障発生条件が、当該仮想デバイスモデルにおけるイベントであってもよいし、他の仮想デバイスモデル（ＳＰＩＬＳ環境部１００の他の仮想デバイスモデル又はＭＩＬＳ環境部２００の仮想デバイスモデル）におけるイベントであってもよい。
【００４５】
このため、故障注入制御スーパーバイザー３２０は、例えば、ＳＰＩＬＳ環境部１００によるシミュレーションにおいて所定のイベントが発生すると、このイベントに関連づけられている故障内容の故障の発生をＭＩＬＳ環境部２００に指示する。また、同様に、例えば、故障注入制御スーパーバイザー３２０は、ＭＩＬＳ環境部２００によるシミュレーションにおいて所定のイベントが発生すると、このイベントに関連づけられている故障内容の故障の発生をＳＰＩＬＳ環境部１００に指示する。このように、本実施の形態では、異なるシミュレーション環境で発生したイベントをトリガーとして、仮想デバイスモデルへの故障注入を行うことができる。
【００４６】
また、上述の通り、故障シナリオリストに定義される故障発生条件は、ユーザインタフェースからの指示であってもよい。すなわち、故障注入制御スーパーバイザー３２０は、ユーザインタフェースからの指示に従って所定の故障内容の故障の発生をＳＰＩＬＳ環境部１００又はＭＩＬＳ環境部２００に指示してもよい。このような構成とすることにより、ユーザはシミュレーション中に任意のタイミングで故障を発生させることができる。
【００４７】
＜実施の形態３＞
実施の形態１及び実施の形態２では、テスト制御部３００が、ＭＩＬＳ環境部２００及びＳＰＩＬＳ環境部１００とは別のソフトウェアとして構成される例を示した。しかしながら、テスト制御部３００は、シミュレーション環境に組み込まれてもよい。本実施の形態では、テスト制御部３００がＭＩＬＳ環境部２００に含まれている。すなわち、上述の全体検証制御部３１０及び故障注入制御スーパーバイザー３２０が、ＭＩＬＳ環境部２００の機能として含まれている。
【００４８】
図８は、実施の形態３にかかるシミュレーション装置１０における故障注入について示す模式図である。上述の通り、実施の形態３にかかるシミュレーション装置１０では、テスト制御部３００は、ＭＩＬＳ環境におけるブロックとして存在している。また、これに伴い、テスト制御部３００は、ＭＩＬＳ環境における他のブロックである故障注入機能ＦＩ５、ＦＩ６を介してＳＰＩＬＳ環境部１００における仮想デバイスモデルに対する故障の注入を制御する。なお、ＭＩＬＳ環境部２００における仮想デバイスモデルへの故障注入は上述の実施の形態と同様、故障注入機能ＦＩ１、ＦＩ２を用いて行われる。
【００４９】
故障注入機能ＦＩ５、ＦＩ６は、ＳＰＩＬＳ環境部１００の仮想デバイスモデルに対する故障の注入を仲介する機能を有するスクリプト（プログラム）である。すなわち、故障注入機能ＦＩ５、ＦＩ６は、故障注入のためのインタフェースである。故障注入機能ＦＩ５、ＦＩ６は、故障注入制御スーパーバイザー３２０から故障注入の指示を受けると、ＳＰＩＬＳ環境部１００の故障注入機能ＦＩ３、ＦＩ４に対し、故障の注入を指示する。
【００５０】
本実施の形態によれば、故障注入制御スーパーバイザー３２０による故障の注入を、シミュレーションソフトウェアの一つの機能として実行させることができる。なお、本実施の形態では、ＭＩＬＳ環境部２００が全体検証制御部３１０及び故障注入制御スーパーバイザー３２０の両方を含む例について示したが、全体検証制御部３１０又は故障注入制御スーパーバイザー３２０のいずれか一方のみがＭＩＬＳ環境部２００に含まれてもよいし、ＳＰＩＬＳ環境部１００がこれらのいずれか又は両方を含んでもよい。
【００５１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００５２】
１    シミュレーション装置
２＿１、２＿２    シミュレーション部
３    故障注入制御部
４＿１、４＿２    仮想デバイスモデル
５    シナリオリスト
１０    シミュレーション装置
１００    ＳＰＩＬＳ環境部
１１０    ＥＣＵモデル
１１１    マイクロコンピュータモデル
２００    ＭＩＬＳ環境部
２１０    自動車モデル
２２０    モジュールモデル
３００    テスト制御部
３１０    全体検証制御部
３２０    故障注入制御スーパーバイザー
３２１    故障シナリオリスト
【図１】
2019086996.tif 000003
【図２】
2019086996.tif 000004
【図３】
2019086996.tif 000005
【図４】
2019086996.tif 000006
【図５】
2019086996.tif 000007
【図６】
2019086996.tif 000008
【図７】
2019086996.tif 000009
【図８】
2019086996.tif 000010