(57)【要約】【課題】異常が発生する前後でシミュレーションを繰り返すことが容易で、制御ソフトウェアのブラッシュアップを容易に行えるシミュレーションシステムを提供する。【解決手段】制御ソフトウェアを実行する制御系モジュール１１と、被制御部を模擬する被制御系モジュール１３を同期させて実行するシミュレーション実行部ＳＭと、シミュレーション実行部で実行されるシミュレーションに制御パラメータを入力するとともに、シミュレーションの実行結果を表示するシミュレーション管理部ＨＳＴと、制御ソフトウェアに起因する異常を抽出する異常抽出部３９と、抽出された異常の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得して記憶部に記憶する再開データ取得部４０と、記憶部に記憶された再開データに基づいて、その時点からシミュレーション実行部を起動してシミュレーションを再開する再開処理部５２とを備えている。【選択図】図４
2010097405.tif 000002
【特許請求の範囲】
【請求項１】
制御ソフトウェアを実行する制御装置と当該制御装置により制御される被制御装置とを含む制御システムにおける制御動作を模擬し、前記制御ソフトウェアの評価を行うシミュレーションシステムであって、
前記制御装置を模擬する制御系模擬部と、前記被制御装置を模擬する被制御系模擬部とを、同期させて実行させるシミュレーション実行制御部と、
前記シミュレーション実行制御部で実行が制御されるシミュレーションの制御パラメータを変更することが可能であるとともに、シミュレーションの実行結果を表示するシミュレーション管理部と、
前記シミュレーション実行制御部によるシミュレーションの実行結果に基づいて、前記制御システムの所定の制御動作に対する評価要求があると、評価のためにシミュレーションの再開を行う再開時点についての、シミュレーションの状態データを取得して記憶部に記憶する状態データ取得部と、
前記記憶部に記憶された状態データに基づいた前記再開時点からのシミュレーションを、前記シミュレーション管理部による制御パラメータの変更を受け付けながら実行するように、前記シミュレーション実行制御部に制御を行わせる再開処理部と、
を備えていることを特徴とするシミュレーションシステム。
【請求項２】
前記再開データ取得部は、時系列的に変動する前記制御パラメータを記憶し、前記制御パラメータに基づいて前記シミュレーション実行部により初期状態から前記異常の発生時の前記所定時間前までシミュレーションを再度実行させ、その時点における前記シミュレーション実行部の状態データを前記再開データとして取得することを特徴とする請求項１記載のシミュレーションシステム。
【請求項３】
前記再開データ取得部は、前記シミュレーション実行部により実行されたシミュレーションの初期から前記異常の発生時までの間に、所定時間間隔で前記シミュレーション実行部の状態データを記憶部に記憶し、前記異常の発生時の過去の状態データの何れかを前記再開データとして取得することを特徴とする請求項１記載のシミュレーションシステム。
【請求項４】
前記シミュレーション管理部は、前記再開処理部によりシミュレーションが複数回再開される過程で、シミュレーションに対する制御パラメータを変動させ、前記制御系モジュールまたは被制御系モジュールにより処理されるデータのうち、前記異常抽出部により抽出された異常に関連する複数種類のデータをサンプリングして記憶部に記憶し、複数回のシミュレーションの実行結果を対比して表示することを特徴とする請求項１から４の何れかに記載のシミュレーションシステム。
【請求項５】
前記シミュレーション管理部は、前記再開処理部によりシミュレーションが複数回再開される過程で、シミュレーションに対する制御パラメータを変動させ、前記制御系モジュールまたは被制御系モジュールにより処理されるデータのうち、前記異常抽出部により抽出された異常に関連する複数種類のデータをサンプリングして記憶部に記憶し、複数回のシミュレーションの実行結果を対比して異常の発生と相関を有するデータを抽出して表示することを特徴とする請求項１から４の何れかに記載のシミュレーションシステム。
【請求項６】
前記再開データ取得部は、前記再開処理部によりシミュレーションが複数回再開される過程で、前記異常抽出部により抽出された異常の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得して記憶部に記憶することを特徴とする請求項１から５の何れかに記載されたシミュレーションシステム。
【請求項７】
制御ソフトウェアを実行する制御系モジュールと、前記制御ソフトウェアにより制御される被制御部を模擬する被制御系モジュールを同期させて実行するシミュレーション実行部と、前記シミュレーション実行部で実行されるシミュレーションに対して制御パラメータを入力するとともに、当該制御パラメータに対するシミュレーションの実行結果を表示するシミュレーション管理部とを備えたシミュレーションシステムを用いて、シミュレーションの実行結果に基づいて前記制御ソフトウェアを評価するシミュレーション方法であって、
前記シミュレーション実行部によるシミュレーションの実行結果に基づいて、前記制御ソフトウェアに起因する異常を抽出する異常抽出ステップと、
前記異常抽出ステップにより抽出された異常の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得して記憶部に記憶する再開データ取得ステップと、
前記記憶部に記憶された再開データに基づいて、その時点から前記シミュレーション実行部を起動してシミュレーションを再開する再開処理ステップと、
を備えていることを特徴とするシミュレーション方法。
【請求項８】
制御ソフトウェアを実行する制御装置と当該制御装置により制御される被制御装置とを含む制御システムにおける制御動作を模擬し、前記制御システムの評価を行うシミュレーションシステムであって、
前記制御システムについてのシミュレーションの実行を制御するシミュレーション実行制御部と、
前記シミュレーション実行制御部で実行が制御されるシミュレーションの制御パラメータを変更することが可能であるとともに、シミュレーションの実行結果を出力するシミュレーション管理部と、
前記シミュレーション実行制御部によるシミュレーションの実行結果に基づいて、前記制御システムの所定の制御動作に対する評価要求があると、評価のためにシミュレーションの再開を行う再開時点についての、シミュレーションの状態データを取得して記憶部に記憶する状態データ取得部と、
前記記憶部に記憶された状態データに基づいた前記再開時点からのシミュレーションの実行を前記シミュレーション実行制御部に行わせる再開処理部と、
を備えていることを特徴とするシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御ソフトウェアを開発するために用いるシミュレーションシステム及びシミュレーション方法に関する。
【背景技術】
【０００２】
機器を制御するためのマイクロコンピュータに組み込まれる制御ソフトウェアを先行開発する場合、実在しない機器をコンピュータで模擬演算するシミュレータを用いて開発中の制御ソフトウェアのロジック評価等が行なわれている。
【０００３】
例えば、車両のエンジンやブレーキ等を制御するマイクロコンピュータが組み込まれたＥＣＵ（Electronic Control Unit）の制御ソフトウェアを実際の車両に先行して開発する場合、車両の動作をコンピュータで模擬演算する車両シミュレータとＥＣＵを接続して開発中の制御ソフトウェアのロジック評価等を行なうシミュレーションシステムが構築されている。
【０００４】
特許文献１には、このようなシミュレーションシステムとして、ＨＩＬＳ（Hardware In the Loop Simulation）システムやＳＩＬＳ（Software In the Loop Simulation）システムが開示されている。
【０００５】
ＨＩＬＳシステムは、実ＥＣＵと車両シミュレータを接続して開発中の制御ソフトウェアを検証するシステムであり、ＳＩＬＳシステムは、実ＥＣＵに替えてＥＣＵをコンピュータで模擬するＥＣＵシミュレータと車両シミュレータをパーソナルコンピュータ等の汎用コンピュータ上に構築して開発中の制御ソフトウェアを検証するシステムである。
【０００６】
ＨＩＬＳシステムは、図１に示すように、ＥＣＵから出力された電気信号をＩ／Ｆボードを介して論理信号に変換し、車両動作を模擬するソフトウェアを実行する高性能なＣＰＵにその論理信号を入力して演算処理し、演算結果である論理信号を再びＩ／Ｆボードを介して電気信号に変換してＥＣＵにフィードバックする一連の動作を所定周期で実行する周期駆動型のシステムで、ＥＣＵ、Ｉ／Ｆボード、高性能ＣＰＵ等のハードウェアによるフィードバックループが構築されている。
【０００７】
ＳＩＬＳシステムは、図２に示すように、ＥＣＵを構成するマイクロコンピュータや周辺回路の動作を模擬するソフトウェアを高性能なＣＰＵで実行する模擬ＥＣＵを構築し、模擬ＥＣＵから出力された論理信号を、Ｉ／Ｆボードを模擬するＩ／Ｆモデルを介して車両動作を模擬するソフトウェアを実行する高性能なＣＰＵに入力して演算処理し、演算結果である論理信号を再びＩ／Ｆモデルを介して模擬ＥＣＵにフィードバックする一連の動作を所定周期で実行する周期駆動型のシステムで、ＥＣＵ、Ｉ／Ｆボード、車両の全てがソフトウェアで実現され、ソフトウェアによるフィードバックループが構築されている。
【０００８】
さらに、ＳＩＬＳシステムでは、ＥＣＵのハードウェアや車両モデルのＩ／Ｆボードを詳細に模擬するソフトウェアに替えて、制御プログラムを実行するＥＣＵに組み込まれたマイクロコンピュータの論理演算部を模擬する制御系モジュールと、車両の動作を模擬する車両モデルでなる被制御系モジュールを構築し、夫々で発生した所定のイベントを時系列的に管理して、イベント毎に模擬ＥＣＵと車両モデルをステップ的に動作させるシステム管理モジュールを備えた演算周期が変動するイベントドリブン型のシステムも構築されている。
【０００９】
このようなＳＩＬＳシステムで構成されるシミュレーション実行部と、前記シミュレーション実行部で実行されるシミュレーションに対して制御パラメータを入力するとともに、シミュレーションの実行結果を表示するシミュレーション管理部とを備えたシミュレーションシステムが実現されている。
【００１０】
シミュレーション管理部には、当該シミュレーション実行部と同期して動作し、シミュレーション実行部にシミュレーション条件である制御パラメータを引き渡すとともに、シミュレーション実行部からシミュレーション結果を受け取る入出力モジュールと、シミュレーション条件を入力する操作画面、またはシミュレーション結果を示す出力画面を生成して表示部に表示するユーザインタフェースモジュールとを備えている。
【００１１】
上述のシミュレーションシステムを用いて制御ソフトウェアを評価する場合、オペレータが、シミュレーション管理部により表示部に表示されるシミュレーション結果を目視して、シミュレーション結果に異常があるか否かを判断していた。
【００１２】
そして、オペレータが異常を確認した場合に、原因となりうる制御ソフトウェアの要部を変更して、再度シミュレーションを実行して不都合が解消されたか否かを検証していた。
【特許文献１】特開２００７−５２５８０号公報
【非特許文献１】日経ＢＰ社、２００８．５．２１発行、カー・エレクトロニクスのすべて２００８、多様化するＨＩＬＳ（２４４頁〜２４９頁）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、原因となりうる制御ソフトウェアの要部を特定できない場合には、シミュレーションを繰り返して、表示部に表示されるシミュレーション結果を精査する必要があり、同じシミュレーションを繰り返す場合には、異常の発生時点まで辿り着くために非常に長い時間を要するばかりでなく、シミュレーションを繰り返す過程で、制御パラメータを同じように変更操作しなければならず、同じ現象を再現させることが極めて困難であるという問題があった。
【００１４】
本発明の目的は、上述した従来の問題点に鑑み、異常が発生する前後でシミュレーションを繰り返すことが容易で、制御ソフトウェアのブラッシュアップを容易に行えるシミュレーションシステム及びシミュレーション方法を提供する点にある。
【課題を解決するための手段】
【００１５】
上述の目的を達成するため、本発明によるシミュレーションシステムの特徴構成は、制御ソフトウェアを実行する制御装置と当該制御装置により制御される被制御装置とを含む制御システムにおける制御動作を模擬し、前記制御ソフトウェアの評価を行うシミュレーションシステムであって、前記制御装置を模擬する制御系模擬部と、前記被制御装置を模擬する被制御系模擬部とを、同期させて実行させるシミュレーション実行制御部と、前記シミュレーション実行制御部で実行が制御されるシミュレーションの制御パラメータを変更することが可能であるとともに、シミュレーションの実行結果を表示するシミュレーション管理部と、
前記シミュレーション実行制御部によるシミュレーションの実行結果に基づいて、前記制御システムの所定の制御動作に対する評価要求があると、評価のためにシミュレーションの再開を行う再開時点についての、シミュレーションの状態データを取得して記憶部に記憶する状態データ取得部と、前記記憶部に記憶された状態データに基づいた前記再開時点からのシミュレーションを、前記シミュレーション管理部による制御パラメータの変更を受け付けながら実行するように、前記シミュレーション実行制御部に制御を行わせる再開処理部と、を備えている点にある。
【００１６】
上述の構成によれば、制御システムの所定の制御動作に対する評価要求がある、再開データ取得部により評価要求の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データが取得され、再開データに基づいて再開処理部により評価要求の発生時より所定時間前のシミュレーションが再開されるようになる。つまり、評価要求の発生時より所定時間前からのシミュレーションが極めて容易に再開されるようになる。
【発明の効果】
【００１７】
以上説明した通り、本発明によれば、異常が発生する前後でシミュレーションを繰り返すことが容易で、制御ソフトウェアのブラッシュアップを容易に行えるシミュレーションシステムを提供することができるようになった。
【発明を実施するための最良の形態】
【００１８】
以下に、本発明によるシミュレーションシステム及びシミュレーション方法を説明する。
【００１９】
図３に示すように、制御システムを模擬演算するシミュレーション実行部ＳＭと、シミュレーション実行部ＳＭで実行されるシミュレーションを管理するシミュレーション管理部として機能する操作表示部ＨＳＴが、ＬＡＮで接続されてシミュレーションシステム１が構成されている。
【００２０】
シミュレーション実行部ＳＭ、及び、操作表示部ＨＳＴは、夫々所定のオペレーティングシステム（以下、「ＯＳ」と記す。）の管理下でシミュレーション用のソフトウェアが実行される二台のパーソナルコンピュータＰＣによって実現されている。
【００２１】
図４に示すように、シミュレーション実行部ＳＭは、評価対象である車両、例えばエンジンに対する制御ソフトウェアを実行する制御系モジュール１１と、当該制御ソフトウェアにより制御される車両、例えばエンジンを模擬する被制御系モジュール１３と、制御系モジュール１１または被制御系モジュール１３の何れかで発生するイベントを管理し、時系列的に発生するイベントに基づいて制御系モジュール１１または被制御系モジュール１３を駆動するシステム管理モジュール１２を備えたイベント駆動型のＳＩＬＳシステムである。
【００２２】
各モジュール１１，１２，１３は、所定のＯＳ３７上で動作するパーソナルコンピュータＰＣのＣＰＵボード３０上のメモリに格納されたシミュレーション用のソフトウェア及び制御ソフトウェアと、ＣＰＵタイマ３８と、ＣＰＵタイマ３８に従ってそれらソフトウェアを実行する高性能ＣＰＵにより具現化される。
【００２３】
システム管理モジュール１２は、制御系モジュール１１と被制御系モジュール１３との間で入出力データ（ＩＯデータ）を遣り取りするための共有メモリ３２と、制御系モジュール１１または被制御系モジュール１３に関連して発生するイベントの起動時刻を設定管理するシステムタイマ２１を備え、システムタイマ２１の値に基づいて各イベントに対応する制御系モジュール１１または被制御系モジュール１３の対応ブロックを起動する。
【００２４】
図５に示すように、制御系モジュール１１は、制御ソフトウェア２と、制御ソフトウェア２の必要なブロックを実行させる割込みコントローラ２２と、制御ソフトウェア２に対するデータの入出力を行なうＩＯデータ部２３を備えている。
【００２５】
さらに、制御系モジュール１１は、割込みコントローラ２２またはＩＯデータ部２３と外部入出力データ２８，２９との間で所定のシーケンス制御を実行するキャプチャ機能部２４、コンペア機能部２５、通信機能部２６、ポート機能部２７等を備えている。
【００２６】
外部入出力データ２８，２９とは、被制御系モジュール１３から模擬演算結果として共有メモリ３２に書き込まれるデータや、制御系モジュール１１から演算結果として共有メモリ３２に書き込まれるデータである。
【００２７】
パルス入力データ２８−１には、エンジン回転数や速度センサ信号等が含まれる。パルス入力データ２８−１が入力されたキャプチャ機能部２４は、フリーランで動作するシステムタイマ２１のタイマ情報をもとに、指定したパルスの有効エッジの時刻を捉え、そのキャプチャ時刻をＩＯデータ部２３に書き込む。
【００２８】
この時点で割込みコントローラ２２に割込みを発生させることができる。当該割込みが発生したときに、割込みコントローラ２２を介して制御ソフトウェア２の該当割込みルーチンが起動される。
【００２９】
パルス出力データ２８−２には、点火信号や燃料噴射信号が含まれる。コンペア機能部２５は、例えば現在時刻から１ｍｓｅｃ．後に所定のパルスをパルス出力データ２８−２として送出する必要がある場合に、その１ｍｓｅｃ．後の時刻に一致したか否かを判定し、一致したときに当該所定のパルスを出力する。このとき割込みコントローラ２２へ割込みを発生させることができる。その点火時期や噴射時期は、最新のエンジン回転数に応じて、制御ソフトウェア２により演算され更新される。
【００３０】
通信機能部２６は、シリアル通信データ２９−１を介して、例えば外部のインテリジェントＩＣと通信を行ない、必要に応じて割込みを発生させる。ポート機能部２７は、ＩＯポートデータ２９−２が入力データであればデータを読み込み、出力データであればデータを出力する。このＩＯポートデータ２９−２には、例えばＩＧスイッチ、スタータスイッチやエアコンのマグネットクラッチ等が含まれる。
【００３１】
図４に示すように、制御系モジュール１１と被制御系モジュール１３との間の入出力情報の受け渡しは、システム管理モジュール１２を経由して行なわれる。制御系モジュール１１とシステム管理モジュール１２との間の入出力情報には、“起動（イベント時刻付）”や、“ＩＯデータ（時刻付）”や、“ＩＯデータ”が含まれる。システム管理モジュール１２と被制御系モジュール１３の間の入出力情報には、“起動（時刻付）”や、“ＩＯデータ（時刻付）”や、“ＩＯデータ”が含まれる。
【００３２】
システムタイマ２１は当該シミュレーション実行部ＳＭの基準時刻を規定するもので、システム管理モジュール１２により起動制御される制御系モジュール１１及び被制御系モジュール１３の所定のブロックは、システムタイマ２１に基づいて動作する。つまり、制御系モジュール１１と被制御系モジュール１３の夫々はシステムタイマ２１に基づいて同一の仮想時間上で動作する。
【００３３】
制御系モジュール１１と被制御系モジュール１３には、共有メモリ３２との間で、各イベントに関する時刻付のＩＯデータを書き込みまたは読み出す制御系モジュール側ＩＯドライバ３１及び被制御系モジュール側ＩＯドライバ３３を備えている。
【００３４】
ＩＯドライバ３１，３２から共有メモリ３２に書き込まれたタイミング依存のＩＯデータは、システムタイマ２１の時刻と関連付けられて管理され（図中点線枠３５）、タイミング非依存のＩＯデータは、システムタイマ２１の時刻と関連付けられることなく管理される（図中点線枠３６）。
【００３５】
つまり、システム管理モジュール１２は、制御系モジュール１１または被制御系モジュール１３から共有メモリ３２に書き込まれたＩＯデータに基づいて、イベントの要求を検出すると、それらのイベント要求を集約してシステムタイマ２１により更新される時刻を各イベントに設定して共有メモリ３２に蓄積する。
【００３６】
例えば、タイミング依存のＩＯデータとして上述のパルス入力データ２８−１やパルス出力データ２８−２が管理され、タイミング非依存のＩＯデータとして上述のシリアル通信データ２９−１やＩＯポートデータ２９−２が管理される。
【００３７】
ここで、制御系モジュール１１または被制御系モジュール１３のＩＯドライバを介して共有メモリ３２に書き込まれるＩＯデータは、システム管理モジュール１２により管理されるイベントに関するデータのみならず、制御系モジュール１１と被制御系モジュール１３の間で制御演算または模擬演算に必要なＩＯデータも含まれ、後述する信号モニタに必要なＩＯデータも含まれる。
【００３８】
つまり、車両を制御するＥＣＵと、ＥＣＵにより制御される例えばエンジン等の車両側装置により構成される制御システムがシミュレーション実行部ＳＭで模擬される。尚、シミュレーション実行部ＳＭで模擬される制御システムは、エンジンシステムに限るものではなく、ブレーキシステム、変速機システム等の車両を構成する任意の機能ブロックが対象となる。
【００３９】
以下、シミュレーション実行部ＳＭの動作例を、図６に示すタイミングチャートに基づいて説明する。
【００４０】
図６の（ａ），（ｂ），（ｃ），（ｄ）の上下の各欄は、夫々システム管理モジュール１２、制御系モジュール１１、被制御系モジュール１３、システムタイマ２１の動作を示し、横軸は時間軸として、各イベントに対応して時刻ｔ０，ｔ１，・・・，ｔ５が付されている。さらに、各イベントの内容を図７に示す。
【００４１】
システム管理モジュール１２は、先ず、内部で１ｍｓｅｃ．インタバルの割込みを発生させ、システムタイマ２１の時刻ｔ０で割込みイベントを共有メモリ３２に格納する。割込みイベントを検出した制御系モジュール１１及び被制御系モジュール１３では対応する定時処理ブロックが起動される。以後、システム管理モジュール１２では、後に発生する他のイベントと１ｍｓｅｃ．インタバルの割込みイベントが時系列的にスケジューリングされる。
【００４２】
具体的には、上述の割込みイベントに応じて制御系モジュール１１では１ｍｓｅｃ．の割込み処理ブロックが起動され、被制御系モジュール１３ではメイン処理が起動される。
【００４３】
制御系モジュール１１が１ｍｓｅｃ．の割込み処理ブロックの起動中に、図６のａ１のタイミングで、ＩＯドライバ３１を介して共有メモリ３２に何らかの信号（例えばＩＯパルス）を出力すると、システム管理モジュール１２は共有メモリ３２に書き込まれたスケジューリングデータに当該信号に対応するイベントを追加する。被制御系モジュール１３でのメイン処理においても、図６のａ２のタイミングで、ＩＯドライバ３３を介して共有メモリ３２に何らかの信号を出力すると、システム管理モジュール１２は共有メモリ３２に書き込まれたスケジューリングデータに当該信号に対応するイベントを追加する。
【００４４】
時刻ｔ０での被制御系モジュール１３によるメイン処理にて、システム管理モジュール１２が被制御系モジュール１３から「パルス１出力」要求を受けると、これに対応するパルス発生時刻を設定し、例えば時刻ｔ１での「パルス１出力」イベントを発生させる。制御系モジュール１１では当該「パルス１出力」イベントに対応して、図６のｂ１のタイミングでパルス１出力ブロックが起動される。ここで、制御系モジュール１１はシステムタイマ２１のタイマ値を基に演算を実行する。
【００４５】
システム管理モジュール１２が時刻ｔ１での制御系モジュール１１によるパルス出力処理により「パルス２出力」要求を受けると、更新したシステムタイマ２１のタイマ値（図６のタイミングａ３）をパラメータとして、これに対応するパルス発生時刻を設定する。ここに時刻ｔ２にて、制御系モジュール１１による「パルス２出力」処理が起動する。
【００４６】
一方、システム管理モジュール１２が被制御系モジュール１３から「パルス３出力」要求を受けると、これに対するパルス発生時刻を設定する。ここに時刻ｔ３にてパルス３入力が発生し、制御系モジュール１１による「パルス３入力」処理が起動する。
【００４７】
次にシステム管理モジュール１２が制御系モジュール１１から「パルス４出力」要求を受けると、これに対するパルス発生時刻を設定する。ここに時刻ｔ４にて制御系モジュール１１による「パルス４出力」処理が起動する。
【００４８】
時刻ｔ５では、通信仕様に応じてシステム管理モジュール１２内部で生成した「受信イベント」が発生すると、これに応答して制御系モジュール１１は、それに対応した「受信」処理を起動する。
【００４９】
このように共有メモリ３２にイベントが蓄積され、蓄積されたイベントに基づいて時系列的に制御系モジュール１１または被制御系モジュール１３の該当するブロックが起動されることによりシミュレーションが進められる。
【００５０】
ここで、システムタイマ２１で規定される制御系モジュール１１または被制御系モジュール１３における処理中の時間は零であり、例えば、時刻ｔ０のステップでは、時間Ｔは零となっており、イベントの発生の無い区間は処理をスキップしながら、時系列で順番にイベントが実行され、イベントに設定された時刻により時間がステップ状に進むように構成されているが、各イベントに対応したブロックが起動される制御系モジュール１１または被制御系モジュール１３ではＣＰＵタイマ３８によりイベントの実処理時間が計時される。
【００５１】
図８に示すように、システム管理モジュール１２は、イベント管理情報により直近のイベントを選択し（Ｓ１１）、選択したイベントの時刻にシステムタイマの値を更新し（Ｓ１２）、当該システムタイマ時刻で更新されるＩＯデータをセットして（Ｓ１３）、発生するイベント情報（割込みフラグ等）を設定することにより（Ｓ１４）対応する制御系モジュール１１または被制御モジュール１３のブロックを起動する（Ｓ１５）。
【００５２】
制御系モジュール１１または被制御モジュール１３のブロックは所定の演算処理を実行して、システム管理モジュール１２に対してＩＯ情報の更新、イベント管理情報の更新を要求する（Ｓ１６）。その後、処理が実行されたイベントをイベント管理情報から削除する（Ｓ１７）。
【００５３】
操作表示部ＨＳＴは、上述したシミュレーション実行部ＳＭに対してシミュレーション条件を出力するとともに、シミュレーション実行部ＳＭからシミュレーション結果を入力して、制御系モジュール１１で実行される制御プログラムの評価を行なうための装置である。
【００５４】
詳述すると、図３及び図４に示すように、操作表示部ＨＳＴは、シミュレーション実行部ＳＭと同期して動作し、シミュレーション実行部ＳＭにシミュレーション条件である制御パラメータを引き渡すとともに、シミュレーション実行部ＳＭからシミュレーション結果を受け取る入出力モジュール５０と、シミュレーション条件を入力する操作画面、またはシミュレーション結果を示す出力画面を生成して表示部である液晶表示装置にＧＵＩ表示するユーザインタフェースモジュール５１を備えている。
【００５５】
ユーザインタフェースモジュール５１は、シミュレーションシステムの起動時に、シミュレーション実行部ＳＭにより実行されるシミュレーションの環境条件をオペレータが設定するための環境操作画面を生成して表示部に表示し、環境操作画面を介して環境条件が設定されると、シミュレーションの起動や停止、さらにはシミュレーション条件を設定する操作画面や、シミュレーション実行部ＳＭにより実行されたシミュレーション結果を示す出力画面を生成して表示部に表示する。
【００５６】
環境操作画面では、シミュレーション実行部ＳＭの環境条件が設定される。例えば、システム管理モジュール１２で管理されるイベントの選択、共有メモリ３２を介して制御系モジュール１１と被制御系モジュール１３との間で遣り取りされるＩＯデータの選択及びメモリマップの定義等である。
【００５７】
環境操作画面で設定された環境条件は、入出力モジュール５０を介してシミュレーション実行部ＳＭに送信され、システム管理モジュール１２を介して制御系モジュール１１、被制御系モジュール１３の夫々に配信され、シミュレーション実行部ＳＭの初期条件が設定される。
【００５８】
図３に示すように、操作画面は、シミュレーションの起動スイッチや停止スイッチ、さらにはイグニッションスイッチ、アクセルペダル操作スイッチ、変速レバー操作スイッチ等のエンジンを操作するために必要な操作スイッチや、スピードメータ、タコメータ、水温計、電圧計等のエンジン状態をモニタする計器がグラフィック表示される操作画面である。
【００５９】
操作画面を介してオペレータにより設定された操作情報である制御パラメータは、入出力モジュール５０を介してシミュレーション実行部ＳＭに送信され、システム管理モジュール１２で対応するイベントが生成されて、対応するイベントが制御系モジュール１１または被制御系モジュール１３で処理される。
【００６０】
シミュレーション実行部ＳＭにより実行されたシミュレーション結果が、システム管理モジュール１２を介して操作表示部ＨＳＴの入出力モジュール５０に送信され、ユーザインタフェースモジュール５１に引き渡される。
【００６１】
図３に示すように、ユーザインタフェースモジュール５１は、シミュレーション結果に含まれるＩＯデータを時系列的にプロットしたトレンドグラフを含む出力画面を表示部に表示する。
【００６２】
上述したように、操作表示部ＨＳＴとシミュレーション実行部ＳＭはＬＡＮケーブルで接続され、双方に備えた通信インタフェースを介してデータがパケット通信される。
【００６３】
操作表示部ＨＳＴでオペレータにより設定された環境情報やシミュレーション条件が操作に同期してシミュレーション実行部ＳＭに送信され、シミュレーション実行部ＳＭで実行されたイベント及びイベントに関するＩＯデータが、各イベント処理の終了に同期して共有メモリ３２から読み取られて、操作表示部ＨＳＴに送信される。つまり、操作表示部ＨＳＴはシミュレーション実行部ＳＭと同期して動作する。尚、通信インタフェースを介して送受信されるデータは、通信タイミングによるデータの欠落が生じないように、双方に備えたメモリによりバッファリングされている。
【００６４】
尚、本発明によるシミュレーションシステム１は、シミュレーション実行部ＳＭ及び操作表示部ＨＳＴとして機能するソフトウェアを実行する一台のパーソナルコンピュータＰＣによって実現することも可能であり、この場合には、ＬＡＮに替えてＣＰＵボード上のメモリを介して通信データが遣り取りされる。
【００６５】
図９に示すように、電源投入によりシミュレーションシステムが起動されると、操作表示部ＨＳＴではユーザインタフェースモジュール５１により表示部に環境設定画面が表示され、オペレータにより設定された環境条件が入出力モジュール５０を介してシミュレーション実行部ＳＭに送信され（ＳＡ１）、シミュレーション実行部ＳＭでは送信された環境条件に基づいてシミュレーションに必要なイベントやＩＯデータが設定される（ＳＢ１）。
【００６６】
次に、操作表示部ＨＳＴではユーザインタフェースモジュール５１により表示部に操作画面が表示され（ＳＡ２）、オペレータによりシミュレーションの起動スイッチが操作されると（ＳＡ３）、起動指令が入出力モジュール５０を介してシミュレーション実行部ＳＭに送信され（ＳＡ４）、シミュレーション実行部ＳＭでシミュレーションが起動される（ＳＢ２）。
【００６７】
その後、オペレータによって操作画面が操作されると（ＳＡ５）、対応する操作情報が入出力モジュール５０を介してシミュレーション実行部ＳＭに送信され（ＳＡ６）、シミュレーション実行部ＳＭでは当該操作情報に基づいてシミュレーションが進行する（ＳＢ３）。
【００６８】
例えば、操作画面に表示されるイグニッションスイッチがオン操作されると、シミュレーション実行部ＳＭではイグニッションスイッチがオンされた状態のシミュレーションが実行され、操作画面に表示されるスタータスイッチがオンされると、シミュレーション実行部ＳＭではエンジンを始動するシミュレーションが実行される。
【００６９】
さらに、エンジン始動後に、操作画面に表示されるアクセルペダル操作スイッチが操作されると、シミュレーション実行部ＳＭではアクセルペダルの操作量に対応してエンジンの回転数が変動するようにシミュレーションが実行される。
【００７０】
システム管理モジュール１２は、シミュレーション実行部ＳＭで処理される各イベントの処理が終了すると、その時点で共有メモリ３２に格納されているイベント情報や関連するＩＯデータを送信用のバッファに書き込んで、通信インタフェースを介してシミュレーション結果として操作表示部ＨＳＴに送信する（ＳＢ４）。
【００７１】
操作表示部ＨＳＴの入出力モジュール５０は、シミュレーション結果を受信するとユーザインタフェースモジュール５１を起動する（ＳＡ７）。ユーザインタフェースモジュール５１は、シミュレーション結果に基づいて操作画面及び出力画面を表示する（ＳＡ８）。
【００７２】
例えば、イグニッションスイッチのオン操作に対応してシミュレーション実行部ＳＭでイグニッションスイッチのオンに対応するシミュレーションが実行されると、操作画面にイグニッションスイッチのオン表示が行なわれ、アクセルペダル操作スイッチの操作に対応してシミュレーション実行部ＳＭでエンジン回転数の変動シミュレーションが実行されると、シミュレーション結果である車速やエンジン回転数に対応して、操作画面のスピードメータやタコメータのグラフィック表示が更新されるとともに、車速やエンジン回転数のトレンドグラフを示す出力画面が更新される。
【００７３】
操作表示部ＨＳＴは、オペレータによる操作に基づいてステップＳＡ５からステップＳＡ８の処理を繰り返し、オペレータによりシミュレーションの停止スイッチが操作されると（ＳＡ９）、シミュレーションの停止指令をシミュレーション実行部ＳＭに送信して（ＳＡ１０）、シミュレーションを終了する。シミュレーション実行部ＳＭは、当該停止指令を受信するまでの間、ステップＳＢ３からステップＳＢ４の処理を繰り返し、当該停止指令を受信すると（ＳＢ５）、シミュレーションを終了する。
【００７４】
このようにして、オペレータは、表示部に表示される操作画面を介して制御システムを動作させ、出力画面を目視確認することにより制御系モジュール１１で実行される制御プログラムの評価を行なう。
【００７５】
尚、トレンドグラフ等のシミュレーション結果を表示する出力画面は、シミュレーションの実行に伴ってリアルタイムに表示するものでなく、シミュレーションの終了後に表示されるものであってもよい。また、シミュレーション結果を記憶するハードディスク等の記憶部のみ備え、出力画面を表示する機能を備えていなくともよい。この場合、シミュレーション結果を解析する専用のコンピュータにシミュレーション結果が移植され、後に解析される。
【００７６】
システム管理モジュール１２には、シミュレーション実行部ＳＭによるシミュレーションの実行結果に基づいて、制御ソフトウェアに起因する異常を抽出する異常抽出部３９と、異常抽出部３９により抽出された異常の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得して、ＣＰＵボード３０上のメモリに区画された記憶部に記憶する再開データ取得部４０が設けられている。
【００７７】
操作表示部ＨＳＴには、当該記憶部に記憶された再開データに基づいて、その時点からシミュレーション実行部を起動してシミュレーションを再開する再開処理部５２が設けられている。
【００７８】
制御系モジュール１１で実行される制御ソフトウェアには、車両、例えばエンジンの異常を検知する自己診断プログラムが組み込まれている。当該自己診断プログラムは、被制御系モジュール１３から出力されるＩＯデータに基づいて被制御系モジュール１３の異常を検知する。
【００７９】
当該自己診断プログラムは、例えば、１ｍｓｅｃ．のタイマ割込みイベントで実行され、被制御系モジュール１３から出力されるＩＯデータがある条件下で取り得ないような値を示すときに、異常の発生を記憶する異常カウンタの値を更新し、正常な値を示すときにリセットするように動作する。そして、例えば１０回のタイマ割込みイベントで連続して異常な値を示し、異常カウンタの値が閾値として設定されている「１０」以上になると、当該異常に対応する所定の故障コード（以下、「ダイアグコード」と記す。）を発生させて、共有メモリ３２に書き込むように構成されている。
【００８０】
操作表示部ＨＳＴで表示される環境設定画面には、シミュレーション実行部ＳＭにより実行されるシミュレーションを強制的に停止させるブレーク条件を設定することが可能に構成されている。
【００８１】
当該ブレーク条件には、シミュレーション実行中に共有メモリ３２に書き込まれる所定のダイアグコードやＩＯデータ、さらには、ＩＯデータが取り得る値の制限値や範囲が含まれる。これらの値は、制御ソフトウェアが正常に動作するか否かを判別するための指標として設定される値である。
【００８２】
図１０に示すように、環境設定画面でブレーク条件が設定され（ＳＣ１）、シミュレーションが起動されると（ＳＣ２）、システムタイマ２１の値がシミュレーションの開始時から例えば３０秒等の所定時間間隔で（ＳＣ３）、再開データ取得部４０によりシミュレーションの状態データが取得されてメモリに格納される（ＳＣ４）。
【００８３】
シミュレーションの状態データとは、シミュレーションをその時点から再開するために必要なデータをいい、シミュレーション実行部ＳＭとして機能するＣＰＵボード３０上のＣＰＵのプログラムカウンタ、各種の演算レジスタ、割り込みスタック、タイマレジスタ等のプログラムの実行状態を特定するためのデータに加えて、ＣＰＵボード３０上のＲＡＭに記憶されたデータのうちシミュレーションに関連するデータ、例えば共有メモリ３２に書き込まれているＩＯデータやイベントリスト、制御パラメータ等が含まれる。
【００８４】
ステップＳＣ２からＳＣ４が繰り返される過程で、異常抽出部３９によりブレーク条件が発生したか否かが監視され（ＳＣ５）、ブレーク条件が発生した場合に、再開データ取得部４０により異常の発生時より過去の状態データの何れかが再開データとして特定される（ＳＣ６）。
【００８５】
再開データ取得部４０により再開データとして特定される過去の状態データは、ブレーク条件の発生時の直近の状態データであることが好ましいが、それより一サイクル前の状態データであってよい。何れの状態データを再開データとして特定するか、また、状態データの取得インタバルをどの程度に設定するかを、環境設定画面でブレーク条件が設定されるときに、同時にオペレータにより設定されるように構成してもよい。
【００８６】
再開データ取得部４０により再開データが特定されると、システム管理モジュール１２によりシミュレーションが中断され（ＳＣ７）、操作表示部ＨＳＴにブレーク条件の成立によりシミュレーションが中断されたことが送信される（ＳＣ８）。
【００８７】
ステップＳＣ７でシミュレーションが中断された場合には、操作表示部ＨＳＴに備えた再開処理部５２により、ユーザインタフェースモジュール５１を介してシミュレーションを再開するか否かの設定画面が表示され（ＳＤ１）、オペレータによりシミュレーションが再開されるように設定されると（ＳＤ２）、入出力モジュールを介してシミュレーション実行部ＳＭに再開シミュレーションの実行要求が出力される（ＳＤ３）。
【００８８】
シミュレーション実行部ＳＭに備えたシステム管理モジュール１２は、メモリに記憶されている再開データに基づいて、ＣＰＵボード３０上のＣＰＵのプログラムカウンタ、各種の演算レジスタ、割り込みスタック、タイマレジスタ等の値及び、共有メモリ３２に書き込まれているＩＯデータやイベントリスト、システムタイマ２１の値、制御パラメータ等をセットして（ＳＤ４）、その後シミュレーションを再開する（ＤＳ５）。
【００８９】
このとき、システム管理モジュール１２は、システムタイマ２１の値に基づいて、再開時点以降、前回のブレーク条件が成立した時点から環境設定画面で設定された所定時間（例えば３０秒）経過までの間、シミュレーションを予め設定された回数だけ繰り返し再開するように構成されている（ＳＤ６）。
【００９０】
再開シミュレーションでは、例えば、オペレータが操作表示部ＨＳＴの操作画面を操作して、制御パラメータを変更することにより、ブレーク条件が成立するか否かを確認し、制御パラメータとの関連性を評価して、制御ソフトウェアの不都合箇所を特定する。オペレータによる制御パラメータの変更操作に替えて、環境設定画面を介して制御パラメータの変更条件（変動率や変動パターン）を予め設定し、システム管理モジュール１２が当該制御パラメータを変更条件に基づいて自動的に変更してもよい。
【００９１】
また、再開シミュレーションでは、環境設定画面を介して設定された所定のＩＯデータに関するトレンドグラフを表示画面に表示することにより、所定のＩＯデータとの関連性を評価して、制御ソフトウェアの不都合箇所を特定する。
【００９２】
再開シミュレーションで変更される制御パラメータや表示部にトレンドグラフ表示されるＩＯデータは、ブレーク条件に関連性が強いデータが選択され、例えば、ブレーク条件がエンジンの回転数異常であるならば、制御パラメータとしてアクセルペダルの開度、ＩＯデータとして制御系モジュール１１から出力される噴射パルス信号の出力タイミングやパルス幅、点火パルス信号の出力タイミング等、被制御系モジュール１３から出力されるクランクパルス信号の周期等である。
【００９３】
再開シミュレーションが複数回繰り返された後に、出力画面にブレーク条件の発生の有無とともに制御パラメータやＩＯデータがトレンドグラフとして表示され、異常が発生する前後の制御パラメータやＩＯデータの状態を示す表示画面を目視確認したオペレータにより、制御ソフトウェアの不都合箇所が特定される。
【００９４】
図１１に示すように、時刻ｔ１で異常が発生し、その所定時間前の時刻ｔ０からシミュレーションを再開する場合に、制御パラメータＰを変化させると、異常発生時のシミュレーション結果であるＩＯデータが実線で表示され、再開シミュレーションのシミュレーション結果であるＩＯデータが破線で表示される。
【００９５】
オペレータは、このような出力画面を目視観察することにより、異常の原因、対策確認を行なうのである。
【００９６】
即ち、シミュレーション管理部である操作表示部ＨＳＴは、再開処理部５２によりシミュレーションが複数回再開される過程で、シミュレーションに対する制御パラメータを変動させ、制御系モジュール１１または被制御系モジュール１３により処理されるデータのうち、異常抽出部３９により抽出された異常に関連する複数種類のデータ（制御パラメータやＩＯデータ）をサンプリングして自身の記憶部に記憶し、複数回のシミュレーションの実行結果を対比して表示するように構成されている。
【００９７】
さらに、操作表示部ＨＳＴが、自身の記憶部に記憶したサンプリングデータに基づいて、複数回のシミュレーションの実行結果を対比して異常の発生と相関を有するデータを抽出して表示部に表示するように構成してもよい。尚、相関を有するデータとは、どのようなデータがそのような値を取るときに異常が発生する確率が高いか等を統計処理に基づいて特定したデータである。
【００９８】
例えば、再開処理部５２によりシミュレーションが複数回再開される過程で、異常抽出部３９により抽出された異常の発生タイミングの変動に影響を与える制御パラメータが異常の発生と相関を有するデータとして抽出される。
【００９９】
このようにして抽出された制御パラメータに対してさらに細かく変化させながら再開シミュレーションを繰り返すことにより、その原因を特定することが可能となる。
【０１００】
また、再開処理部５２によりシミュレーションが複数回再開される過程で、内部に組み込まれている制御定数を変更したり、一部のアルゴリズムを変更した制御ソフトウェアに対してシミュレーションを再開することも可能である。
【０１０１】
例えば、所定のダイアグコードをブレーク条件として設定する場合に、上述した異常カウンタの閾値を変更したり、制御ソフトウェアにＰＩＤ制御によりＩＯデータが生成されるプログラムが組み込まれている場合にフィードバック定数の値を変更したり、制御ソフトウェアに学習制御するためのマップデータが組み込まれている場合に当該マップデータの値を変更するのである。
【０１０２】
上述した通り、本発明によるシミュレーション方法は、制御ソフトウェアを実行する制御系モジュールと、制御ソフトウェアにより制御される被制御部を模擬する被制御系モジュールを同期させて実行するシミュレーション実行部と、シミュレーション実行部で実行されるシミュレーションに対して制御パラメータを入力するとともに、当該制御パラメータに対するシミュレーションの実行結果を表示するシミュレーション管理部とを備えたシミュレーションシステムを用いて、シミュレーションの実行結果に基づいて前記制御ソフトウェアを評価するシミュレーション方法であって、シミュレーション実行部によるシミュレーションの実行結果に基づいて、制御ソフトウェアに起因する異常を抽出する異常抽出ステップと、異常抽出ステップにより抽出された異常の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得して記憶部に記憶する再開データ取得ステップと、記憶部に記憶された再開データに基づいて、その時点からシミュレーション実行部を起動してシミュレーションを再開する再開処理ステップとを備えている。
【０１０３】
以下に別実施形態を説明する。上述した実施形態では、再開データ取得部４０が、シミュレーション実行部により実行されたシミュレーションの初期から異常の発生時までの間に、所定時間間隔でシミュレーション実行部の状態データを記憶部に記憶し、異常の発生時の過去の状態データの何れかを再開データとして取得するように構成される場合を説明したが、再開データ取得部が以下のように構成されるものであってもよい。
【０１０４】
つまり、再開データ取得部４０は、時系列的に変動する制御パラメータを記憶し、ブレーク条件が成立した後に、当該制御パラメータに基づいてシミュレーション実行部により初期状態から異常の発生時の所定時間前までシミュレーションを再度実行させ、その時点におけるシミュレーション実行部の状態データを再開データとして取得するように構成するものであってもよい。
【０１０５】
また、再開データ取得部４０は、再開処理部５２によりシミュレーションが複数回再開される過程で、異常抽出部３９により抽出された異常の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得して記憶部に記憶するように構成してもよい。つまり、再開シミュレーションの実行中に新たな再開データを取得することにより、新たな再開シミュレーションが可能になる。この場合、異常抽出部３９により抽出される異常の発生時より所定時間前の再開データの取得時期が、最初の抽出時よりも短くなるように設定することにより、再開シミュレーションの開始時期を異常の発生時に近づけることができる。
【０１０６】
このような構成を採用すると、複数回の再開シミュレーションで異常の発生に影響を与える可能性が高いと推定される範囲に再開シミュレーションを絞り込むことができ、原因特定のための時間を短縮することができるようになる。
【０１０７】
逆に、複数回の再開シミュレーションで、制御パラメータやＩＯデータに基づいて異常の発生に影響を与える可能性が見出せない場合には、原因特定のための再開シミュレーションの開始時刻を遡らせることにより、何らかの手掛かりを得ることができるようになる。
【０１０８】
上述した実施形態では、再開データが、ＣＰＵボード３０上のＣＰＵのプログラムカウンタ、各種の演算レジスタ、割り込みスタック、タイマレジスタ等のプログラムの実行状態を特定するためのデータと、ＣＰＵボード３０上のＲＡＭに記憶されたデータのうちシミュレーションに関連するデータ、制御パラメータ等である場合を説明したが、キャッシュメモリが内蔵されているＣＰＵであれば、キャッシュメモリ内に記憶されているデータも再開データに含まれる。
【０１０９】
この場合、キャッシュメモリに記憶されているデータをＣＰＵボード上のメモリに戻し、その値を再開データとして確保すればよい。また、キャッシュメモリの内容を読み出すことができれば、その読み出した値を確保することも可能である。
【０１１０】
上述した実施形態では、シミュレーション実行部ＳＭがイベント駆動型のＳＩＬＳシステムで構成される例を説明したが、シミュレーション実行部ＳＭが周期駆動型のＳＩＬＳシステムで構成される場合にも適用可能である。
【０１１１】
図１２に示すように、周期駆動型のＳＩＬＳシステムは、車両の制御ソフトウェアを実行する制御系モジュール６１と、制御ソフトウェアにより制御される車両を模擬する被制御系モジュール６３とを備え、制御系モジュールまたは被制御系モジュールの何れかで発生する入出力データに連動して車両制御システムの模擬演算が実行されるように両者を管理するシステム管理部６２を備えたシステムである。
【０１１２】
制御系モジュール６１は、制御ソフトウェア６１ａと、制御ソフトウェア６１ａを実行するマイクロコンピュータを模擬するマイクロコンピュータモデル６１ｂと、マイクロコンピュータの周辺回路を模擬するＥＣＵモデル６１ｃを備え、被制御系モジュール６３は、車両を模擬する車両モデル６３ａと、車両モデル６３ａからの出力データをアナログの電気信号に変換するデバイスを模擬するデバイスモデル６３ｂと、デバイスとＥＣＵを中継するＩＯボードを模擬するＩＯボードモデル６３ｃを備え、ＥＣＵモデル６１ｃとＩＯボードモデル６３ｃ間で、共有メモリ６５を介してＩＯデータの遣り取りが行なわれる。
【０１１３】
この場合、再開データ取得部４０により取得される再開データとして、上述したデータに加えて、マイクロコンピュータモデル６１ｂやＥＣＵモデル６１ｃで模擬される各種レジスタ値やポートの出力値等も同時に取得されるように構成すればよい。
【０１１４】
上述した実施形態では、再開データ取得部４０が、異常抽出部３９により抽出された異常の発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得する例を説明したが、再開データ取得部４０は、他の設定条件に基づいて再開データを取得するように構成してもよい。
【０１１５】
例えば、スタータが駆動される等、操作画面を介してオペレータにより所定の操作がなされた時点、つまりシミュレーション条件である制御パラメータが特定の値となった時点や、シミュレーション結果である車速やエンジン回転数等の制御データが所定の値となった時点や、それらの制御データの変化量が所定の値になった時点や、制御ソフトウェアが演算に使用する内部定数や各種の制御フラグが所定の値になった時点等、シミュレーションの実行状態に特定の変化が発生した時点を抽出して、発生時より所定時間前のシミュレーションの実行状態を再開するための再開データを取得するように構成してもよい。
【０１１６】
例えば、シミュレーションの実行状態に特定の変化が発生した時点から所定時経過後、または、所定クランク角経過後を再開データ取得条件として設定してもよく、所定時経過後、または、所定クランク角経過後にシミュレーションの実行状態に特定の変化が発生し、あるいは発生しなかった時点を再開データ取得条件として設定してもよい。
【０１１７】
具体的に例示すると、エンジン始動操作から１０分経過後に、所定の気筒に対して点火パルスが出力され、所定のクランク角経過後に次の気筒に対する点火パルスが出力された時点、あるいは出力されなかった時点を再開データ取得条件として設定するものである。
【０１１８】
さらに、上述の各種の条件のＡＮＤ条件やＯＲ条件を再開データ取得条件として設定してもよい。
【０１１９】
このような再開データ取得条件は、環境設定画面を介して設定すればよい。
【０１２０】
さらに、例えば、出力画面を目視確認したオペレータが、トレンドグラフ等の波形の異常を認識し、グラフ上の時刻を指定入力した場合に、当該指定時刻を再開データ取得条件として設定するように構成してもよい。
【０１２１】
つまり、状態データ取得部は、シミュレーション実行制御部によるシミュレーションの実行結果に基づいて、制御システムの所定の制御動作に対する評価要求があると、評価のためにシミュレーションの再開を行う再開時点についての、シミュレーションの状態データを取得して記憶部に記憶するように構成されていればよい。
【０１２２】
そして、再開処理部は、記憶部に記憶された状態データに基づいた再開時点からのシミュレーションを、シミュレーション管理部による制御パラメータの変更を受け付けながら実行するように、シミュレーション実行制御部に制御を行わせるように構成されていればよい。
【０１２３】
上述した実施形態は、本発明を実現する一実施例を説明するものであり、各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、構築するシステムに応じて適宜変更設計することが可能である。
【図面の簡単な説明】
【０１２４】
【図１】ＨＩＬＳシステムを用いたシミュレーションシステムの説明図
【図２】周期駆動型のＳＩＬＳシステムを用いたシミュレーションシステムの説明図
【図３】イベント駆動型のＳＩＬＳシステムを用いたシミュレーションシステムの説明図
【図４】イベント駆動型のＳＩＬＳシステムを用いたシミュレーションシステムのブロック構成図
【図５】イベント駆動型のＳＩＬＳシステムの制御系モジュールの説明図
【図６】イベント駆動型のＳＩＬＳシステムの動作を示すタイミングチャート
【図７】イベント管理に関する説明図
【図８】システム管理モジュールの動作を示すフローチャート
【図９】シミュレーションシステムの動作を示すフローチャート
【図１０】シミュレーションシステムの動作を示すフローチャート
【図１１】再開されたシミュレーション結果を表示する出力画面の説明図
【図１２】周期駆動型のＳＩＬＳシステムを用いたシミュレーションシステムのブロック構成図
【符号の説明】
【０１２５】
１１：制御系モジュール
１２：システム管理モジュール
１３：被制御系モジュール
２１：システムタイマ
３２：共有メモリ
３９：異常抽出部
４０：再開データ取得部
５０：入出力モジュール
５１：ユーザインタフェースモジュール
５２：再開処理部
ＨＳＴ：シミュレーション管理部（操作表示部）
ＰＣ：パーソナルコンピュータ
ＳＭ：シミュレーション実行部
【図４】
2010097405.tif 000003
【図５】
2010097405.tif 000004
【図６】
2010097405.tif 000005
【図７】
2010097405.tif 000006
【図８】
2010097405.tif 000007
【図９】
2010097405.tif 000008
【図１０】
2010097405.tif 000009
【図１２】
2010097405.tif 000010
【図１】
2010097405.tif 000011
【図２】
2010097405.tif 000012
【図３】
2010097405.tif 000013
【図１１】
2010097405.tif 000014