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