(57)【要約】  複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、該動的速度調整ユニットは、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整する。
2014038030.tif 000002
【特許請求の範囲】
【請求項１】
複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、
前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、
検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
該動的速度調整ユニットは、
前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項２】
請求項１において、
前記入力バッファは、前記検証対象のシミュレータの入力ポートの値を一時的に貯蔵する機能を有し、
前記出力バッファは、前記検証対象のシミュレータの出力ポートの値を一時的に貯蔵する機能を有し、
前記動的速度調整ユニットは、
前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項３】
請求項２において、
前記精度及び速度の異なる複数のシミュレータは、前記検証対象であって高頻度に内部状態を更新する高精度モデルのシミュレータと、前記検証対象シミュレータの模擬動作に関わり、低頻度に内部状態を更新する低精度モデルのシミュレータとを含んでおり、
前記動的速度調整ユニットは、前記検証対象となるシミュレータに対する入出力データの更新頻度を調整する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項４】
請求項３において、
前記動的速度調整ユニットに対してユーザインタフェース機能を有する表示部を備え、前記協調シミュレーション環境、及び、前記シミュレーション実行時の各モデルの入出力値や動作状態の情報が表示される
ことを特徴とする協調シミュレーション用計算機システム。
【請求項５】
請求項３において、
前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部を備えており、
前記入力値変化頻度が所定の閾値を超えている場合には、前記入力開口部のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項６】
請求項３において、
前記動的速度調整ユニットは、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口部を備えており、
前記出力値変化頻度が所定の閾値を超えている場合には、前記出力開口部のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項７】
請求項３において、
前記動的速度調整ユニットは、変化トリガ算出部を備えており、
該変化トリガ算出部は、前記対象シミュレーションモデルへ入出力ポートの入力値若しくは出力値の変化トリガを算出し、入力／出力の最新値と前回値との差の絶対値と、予め与えられたしきい値β１とを比較処理し、前記絶対値が前記しきい値よりも大きいとき、パルス発生器からパルスを出力する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項８】
請求項７において、
前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口、及び、変化頻度算出部を備えており、
該変化頻度算出部は、前記パルス発生器からのパルスによって起動され、
入力／出力変化トリガの間隔が所定の比率しきい値αを超えた時に、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項９】
請求項８において、
前記動的速度調整ユニットは、入力／出力割合算出部を備えており、入力変化頻度Ｎ１が、予め与えられた閾値β２よりも大きかった場合、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項１０】
請求項３において、
前記動的速度調整ユニットは、
検証対象の入出力ポートの値の変化の頻度に基づいて、前記入／出力バッファからのデータの削除を行うか、前記検証対象となるシミュレータへのデータ供給を行うかを制御する機能を持っており、該機能により、動的に対象となるシミュレータに対する前記入力データの供給速度を調整することによって、前記対象となるシミュレータの模擬動作に関わる計算処理を削減することを特徴とする協調シミュレーション用計算機システム。
【請求項１１】
メカニズム、ハードウェア、及びソフトウェアを模擬した組込みシステムの検証システムであって、
前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作する協調シミュレーション用計算機システムを構成するものにおいて、
検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
該動的速度調整ユニットは、
前記検証対象のシミュレータへのデータ供給を行うかの判断基準として、
前記シミュレータの実行時間あたりの変数変化頻度が一定値を超えた時、前記検証対象のシミュレータによって模擬されている時間あたりの変数変化頻度が一定値を超えた時、入出力の変数変化頻度の割合が一定値を超えた時、のいずれかが成立した場合を判定し、
前記判断基準が成立した場合、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を動的に制御して前記協調動作する複数のシミュレータの動作速度を調整する
ことを特徴とする組込みシステムの検証システム。
【請求項１２】
請求項１１において、
前記動的速度調整ユニットは、
前記協調して動作する複数のシミュレータの外部に存在する速度調整スプリクトと通信する機能と、
前記検証対象のシミュレータへのデータ供給を行うかの判断基準を、前記速度調整スプリクトとの通信結果に基づいて変更する機能とを有し、
前記検証対象のシミュレータの動作精度・速度を、該検証対象のシミュレータの動作中に変更可能である
ことを特徴とする組込みシステムの検証システム。
【請求項１３】
請求項１１において、
前記精度及び速度の異なる複数のシミュレータは、センサやアクチュエータを模擬する低精度のモデルと、前記センサの入力を処理し前記アクチュエータに制御内容を伝達するマイコンを模擬する高精度のモデルによって構成されており、
前記動的速度調整ユニットは、前記判断基準が成立した場合に、前記高精度のモデルに対する入出力データの更新頻度を調整する
ことを特徴とする組込みシステムの検証システム。
【請求項１４】
協調シミュレーション用計算機システムを用いた組込みシステムの検証方法であって、
前記組込みシステムは、メカニズム、ハードウェア、及びソフトウェアで構成され、
前記協調シミュレーション用計算機システムは、前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作するものにおいて、
検証対象の入出力ポートの値を一時的にバッファに貯蔵し、
前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
ことを特徴とする組込みシステムの検証方法。
【請求項１５】
請求項１４において、
前記協調シミュレーション用計算機システムは、ユーザインタフェース機能を有する表示部を備え、
前記表示部に、前記協調シミュレーション環境、及び、前記シミュレーション実行時の各モデルの入出力値や動作状態の情報を表示する
ことを特徴とする組込みシステムの検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、協調シミュレーション用計算機システム、組込みシステムの検証方法に係り、特に、メカニズム、ハードウェア、及びソフトウェアで構成される組込みシステムの開発に適した、協調シミュレータの技術に関するものである。
【背景技術】
【０００２】
組込みシステムとは、制御対象を構成するメカニズムと、このメカニズムから受け取った物理量を元に制御演算を行いこのメカニズムに制御値の出力を行なうハードウェアと、このハードウェア上で動作するソフトウェアとで構成されるシステムである。【０００３】
例えば、自動車エンジン制御向けの組込みシステムは、制御対象であるエンジン等のメカニズムと、制御演算を行いこのエンジン等を制御するマイコン等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。【０００４】
組込みシステムに含まれるソフトウェアの挙動は、制御対象のメカニズムとハードウェアの構成に強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。【０００５】
近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化しており、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。【０００６】
分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加し、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。【０００７】
この問題を解決するため、設計時点でのメカニズム・ハードウェア・ソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられ始めている。【０００８】
上記のシミュレーションによる性能評価・動作検証を行うにあたり、対象となる組込みシステムを構成する各要素の動作を、シミュレーションモデルとしてシミュレータ上で実行可能なソフトウェアとなるように記述する必要がある。これらのシミュレーションモデルは、メカニズム・ハードウェア各々の構成要素の設計・製造を担当する会社または部署から提供を受ける形態を取るのが一般的である。【０００９】
しかし、これらの異なる物理階層のモデルをそのまま組合わせる手法は、求められるシステム動作を再現する計算負荷が高くなるという問題がある。【００１０】
すなわち、使用される上記の各モデルはモデルの提供者の設計自体を助けるために作成されるので、対象物の内部動作をすべて記述したモデルとなる。ただし、これらの内部動作の中では実際にシステム全体レベルのシミュレーションでは参照されない内部動作も存在している。【００１１】
例えば、上記のエンジンの制御シミュレーションを対象とした時に、制御マイコンにおいて、エンジンの制御とは関係のない計算の値などは協調シミュレーションで参照されることはなく、この計算処理に費やされる計算負荷は無駄なものとなる。【００１２】
このような計算負荷の無駄が積み重なることによって、求められるシステム動作を再現するのに必要な計算負荷が高くなる。【００１３】
これに対し、特許文献１には、所定のモデルを書き換える事によって、無駄な計算処理を削除し、シミュレーションの速度を向上させる手法が開示されている。【００１４】
この手法を用いることで、協調シミュレーションに必要な処理のみを適切なデータ更新頻度で出力することが可能であり、無駄な計算処理を最大限削除可能である。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００８-１５２７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
複数のシミュレーションモデルが連携する協調シミュレーション環境であって、高頻度に内部状態を更新する高精度モデルと、低頻度に内部状態を更新する低精度モデルが接続されるシステムでは、求められるシステム動作を再現する計算負荷をできるだけ低減することが求められる。【００１７】
しかし特許文献１に記載の前述のモデルの書換え作業は、その書き換え対象モデルに接続された別物理階層のモデルの内部状態を理解した上で、そのモデル間のデータフローとその頻度を考慮する必要があるため、その書き換え対象モデルの知識のみにとどまらず、そのモデルに接続されたすべてのモデルの知識が必要である。そのため、書換え作業を行える人間が非常に限られる事、それに反し、書き換えられたモデルの適切なデータフローとその頻度は対象とする協調シミュレーション環境の構成によって異なるため、エンジン制御など特定分野に限った適用は可能だが、多様な構成の組込みシステム全般には適応が難しい。【００１８】
本発明の課題は、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーションで参照されない計算処理を限削し、計算負荷の無駄を軽減できるようにした協調シミュレーション用計算機システムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明の代表的なものの一例を示すと、次のようになる。  
複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、該動的速度調整ユニットは、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示す機能ブロック図である。
【図２Ａ】本発明を適用した協調シミュレーション環境の構成例を示す図である。
【図２Ｂ】本発明を適用した協調シミュレーション環境のモデル構成例(モータ制御)を示す図である。
【図２Ｃ】本発明を適用した協調シミュレーション環境のモデル構成例(車両制御)を示す図である。
【図３】第１の実施例の入出力割合算出部で処理される入出力割合Ｒについて、説明する図である。
【図４】第１の実施例の協調シミュレーション用計算機システムに含まれる、出力開口部モジュール,入力開口部の構成例を示す図である。
【図５】第１の実施例の協調シミュレーション用計算機システムに含まれる、出力変化トリガ算出部,入力変化トリガ算出部の構成例を示す図である。
【図６】第１の実施例の協調シミュレーション用計算機システムに含まれる、出力変化頻度算出部、入力変化頻度算出部の構成例を示す図である。
【図７】第１の実施例における協調シミュレーション用計算機システムに含まれる、入力割合算出部の構成例を示す図である。
【図８Ａ】第１の実施例の協調シミュレーション用計算機システムの、全体的な動作フローを示す図である。
【図８Ｂ】第１の実施例における協調シミュレーション用計算機システムの、全体的な動作フローを示す図である。
【図９】本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の一例を示す図である。
【図１０】本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の他の例を示す図である。
【図１１】本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の他の例を示す図である。
【図１２】比較例として、本発明適用前の協調シミュレーション環境での、データの流れと処理負荷の一例を示す図である。
【発明を実施するための形態】
【００２２】
上記課題を解決するには、対象モデルへの書き換えをせずに、モデルの無駄な計算負荷を低減する手段を構築する必要がある。そこで、本発明は、シミュレーションモデルに対する入出力信号が変化しないときに、該当モデルの計算処理が不要となる性質を用いて、無駄な計算負荷を発生させているシミュレーションモデルに対する入出力データを動的に遮断・開通することによって、当該シミュレーションモデルの計算負荷を低減する仕組みを提案するものである。
【００２３】
本発明の代表的な実施形態によれば、高精度モデルと低精度モデルを含む複数のシミュレーションモデルが連携する協調シミュレーション環境において、対象となる高精度モデルの入出力ポートの一部を本発明の動的速度調整ブロックで介入させ、そのデータ通信頻度を動的に変更させる仕組みを追加する。これにより、対象となる高精度モデルが計算処理をする頻度が低下し、協調シミュレーション環境全体の計算負荷の低減が可能である。  
なお、本発明において、高精度モデルとは、高頻度に内部状態を更新するシミュレーションモデル、低精度モデル低頻度に内部状態を更新するシミュレーションモデルを意味する。
【００２４】
本発明の代表的な実施形態によれば、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。また、協調シミュレーション環境の外部からこれらの調整パラメータを変更させることにより、シミュレーション中に動的にその精度を変更させることが可能である。
【００２５】
本発明は、複数のソフトウェアが連動して動作する計算機システム、または開発システムのプログラムに広く適用することができる。 
【実施例１】
【００２６】
以下、本発明の第１の実施例について、説明する。  
図１は、本発明の第１の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示す機能ブロック図である。本発明の協調シミュレーション用計算機システムは、対象とするシミュレーションモデル１１０にI/O部を介して接続される動的速度調整ブロック１００を備えている。すなわち、本発明の主たる部品である動的速度調整ブロック１００は、動的バッファ制御部１２２と、モデル入力I/O部１１１とモデル出力I/O部１０３とを備えている。デル入力I/O部１１１とモデル出力I/O部１０３は、対象とするシミュレーションモデル１１０の入力ポート１０９及び出力ポート１０８の、一部または全体とそれぞれ接続される、動的バッファ制御部１２２は、例えば、メモリに保持され、コンピュータに各種の機能を実現させるプログラムによって構成することができる。【００２７】
動的速度調整ブロック１００は、さらに、元モデル入力I/O部１１３と元モデル出力I/O部１０１を備えており、これらは、本発明適用前に入力ポート１０９と出力ポート１０８が接続されるはずであった、対象とするモデル１１０の前段/後段に位置するシミュレータと接続されていたポートの一部または全体とそれぞれ接続されている。すなわち、動的速度調整ブロック１００のモデル入力I/O部１１１は、入力バッファ１１２と入力開口部１１７、元モデル入力I/O部１１３を介して、前段に位置するシミュレータと接続され、モデル出力I/O部１０３は、出力バッファ１０２と出力開口部１０５、元モデル出力I/O部１１を介して、後段に位置するシミュレータと接続される。【００２８】
図２Ａに、本発明を適用した協調シミュレーション環境の構成例を示す。図２Ａの例では、対象とするシミュレーションモデルは、例えば、第１高精度のシミュレーションモデル１１０であり、動的速度調整ブロック１００を介してその入力側に第１低精度シミュレーションモデル２００及び第２低精度シミュレーションモデル２０１が接続され、出力側に第３低精度シミュレーションモデル２０２及び第４低精度シミュレーションモデル２０３が接続されている。前段の第１低精度シミュレーションモデル２００及び第２低精度シミュレーションモデル２０１は、各々、元モデル入力I/O部１１３に接続され、後段の第３低精度シミュレーションモデル２０２及び第４低精度シミュレーションモデル２０３は、各々、元モデル出力I/O部１０１に接続される。２０４は動的速度調整ブロック１００のユーザインタフェースとして機能する表示部である。この表示部２０４には、ユーザ入力情報、協調シミュレーション環境、シミュレーション実行時の各モデルの入出力値や動作状態の情報等が表示される。ユーザは、表示部２０４から、シミュレータの初期化時に各種設定を行うと共に、表示部２０４を出力モニタとして参照しながら、シミュレーション中に、速度調整に関わるパラメータ等、各種のデータの入力を行うこともできる。例えば、協調シミュレーション実行の結果、特定の精度しか得られなかったことが表示部２０４で確認された場合、ユーザは、例えば、後で述べる定数αを変更して再度協調シミュレーションを実行することを繰り返し、目標の精度を得るようにすることができる。なお、この表示部は、本発明の各実施例が具備していることは言うまでもない。【００２９】
図１に戻って、入力バッファ１１２に接続された入力開口部１１７と出力バッファ１０２に接続された出力開口部１０５は、各々、動的バッファ制御部１２２で制御される。動的バッファ制御部１２２は、入力開口部１１７と出力開口部１０５にそれぞれ接続されるバッファ（入力バッファ１１２、出力バッファ１０２）へのデータ読み出し、データ削除、次段モジュールに対しデータ遮断をするか決定するフラグを別モジュールから制御可能な機能を備えている。なお、入力開口部１１７と出力開口部１０５に対しては同じ形態の開口部モジュールを用いる事ができる。この開口部モジュールの構成に関しては、図４を参照しながら後で詳解する。【００３０】
動的バッファ制御部１２２は、入力バッファ１１２、出力バッファ１０２とそれぞれ接続された、入力変化トリガ算出部１２０及び出力変化トリガ算出部１０６を備えている。これら入力変化トリガ算出部１２０と出力変化トリガ算出部１０６は、さらに、プロセス間通信IF部１０４と接続されている。【００３１】
入力変化トリガ算出部１２０と出力変化トリガ算出部１０６は、さらに、プロセス間通信IF部 IF１０４を介して、協調シミュレーションの外部で動作する速度調整スクリプト１０７から、シミュレータの初期化時とシミュレーション中に速度調整に関わるパラメータのうち、直前の値との差分が幾つ以上になったら値が変化したと判定するためのしきい値を受け取ることができる。【００３２】
入力変化トリガ算出部１２０と出力変化トリガ算出部１０６に対しては、同じ形態のモジュールを用いる事ができる。この変化トリガ算出モジュールの構成に関しては、図５で詳解する。【００３３】
入力変化トリガ算出部１２０と出力変化トリガ算出部１０６はそれぞれ、入力変化頻度算出部１１９、出力変化頻度算出部１１５と接続されている。
入力変化頻度算出部１１９と出力変化頻度算出部１１５に対しては同じ形態のモジュールを用いる事ができる。この変化頻度算出モジュールの構成に関しては、図６で詳解する。【００３４】
入力変化頻度算出部１１９と出力変化頻度算出部１１５は、両方共、シミュレータの実行時間を出力する実時間クロック１１４と、シミュレータによって模擬されている時間を出力する仮想環境内クロック１１８と接続されており、これを用いて入力変化頻度算出部１１９と出力変化頻度算出部１１５に入力される変数の変化頻度を、（１）シミュレータの実行時間あたりと、（２）シミュレートされている時間あたり、の２つの観点で算出することができる。【００３５】
入力変化トリガ算出部１２０と出力変化トリガ算出部１０６は、両方共、入出力割合算出部１１６と接続されている。  
入出力割合算出部１１６は、プロセス間通信IF部１０４と接続されており、シミュレータの初期化時とシミュレーション中にプロセス間通信IF部を介して、協調シミュレーションの外部で動作する速度調整スクリプト１０７から速度調整に関わるパラメータのうち、入出力変化頻度割合値と入力変化頻度割合しきい値、出力変化頻度割合しきい値を受け取ることができる。【００３６】
入出力割合算出部１１６の構成の詳細に関しては、図７で詳解する。  
入出力割合算出部１１６は、入力開口部１１７と出力開口部１０５の両方と接続されており、これらに対しそれぞれ、入力バッファ１１２からモデル入力I/O部１１１、出力バッファ１０２から元モデル出力I/O部１０１へのデータ流遮断またはデータ流再開を指示する機能を備える。【００３７】
本発明を適用した協調シミュレーション環境のモデル構成を、図２（２Ａ，２Ｂ，２Ｃ）で概説する。【００３８】
協調シミュレーション環境では、異なる物理階層のモデルが複数個接続されることでシステム全体の挙動を模擬する。異なる物理階層のモデルは、それぞれ異なる時間精度を持ち、単位シミュレーション時間あたりのデータ更新頻度がそれぞれ異なる。  
高精度なモデルは、高頻度で内部状態を更新し、また高頻度で外部出力の値を更新することになる。【００３９】
例えば、図２Ａで示した構成の様に、第１低精度モデル２００、第２低精度モデル２０１と第１高精度モデル１１０とが接続されていた場合、第１高精度モデル１１０の高頻度な出力が全て、後段の第３低精度シミュレーションモデル２０２及び第４低精度シミュレーションモデル２０３の状態模擬に使われるのでは無い（図１２参照）。このため、第１高精度モデル１１０における計算負荷の無駄が発生する。【００４０】
本発明の動的速度調整ブロック１００は、この高精度モデル１１０の入出力の一部または全部をインターセプトする形で適用される。この時、入出力側の低精度モデル（２００−２０３）は少なくとも１つ以上の高精度モデルと接続されることとなる。この構成をとることによって、各高精度モデルの入力ポート１０９及び出力ポート１０８に関して、速度調整をしたいポートとそのまま入力値を入れて精度を保ちたいポートを使い分けることが可能である。【００４１】
図２Ｂ,図２Ｃは、本発明を適用するのに適した組込みシステムの協調シミュレーション環境の例を示している。【００４２】
図２Ｂは、組込みシステムのモータ制御をするための協調シミュレーション環境のモデル構成例である。組込みシステムの交流モータの制御は簡易化して説明すると、コントローラモデル２００からの速度指令値に基づいて、インバータモデル１１０が交流信号を出し、モータモデル２０２が回転する形となる。【００４３】
図２Ｃは、自動車全体システムのシミュレーション環境のモデル構成例である。自動車エンジン制御向けの組込みシステムは、制御対象であるエンジンや駆動用電動機等のメカニズムと、制御演算を行いこのエンジンや駆動用電動機等を制御するマイコン等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。図２Ｃの例は、低精度のモデルからの入力、この例ではセンサモデル２００と通信モデル２０１からデータを受け取り、マイコンモデル１１０によってその入力を処理し、エンジンモデル２０３、ブレーキモデル２０４等のアクチュエータに制御内容を伝達する構成となっている。センサモデル２００が例えばアクセルの踏み込み量を検出するものである場合、その出力は、加速時には変化が多く、平坦路走行時には殆ど変化がないものとなる。このように、自動車の運転状況の変化に応じて、マイコンで処理すべきデータの量も変化する。本発明の動的速度調整ブロック１００は、運転状況の変化に応答して、各モデルへの入出力を動的に調整する機能を有している。【００４４】
次に、図３を参照して、入出力割合算出部１１６で演算処理される入出力割合Ｒについて、説明する。入出力割合Ｒは、例えば、次式で表わされる。
Ｒ＝α・Ｎ２／Ｎ１（但し、Ｎ１：入力変化頻度、Ｎ２：出力変化頻度、α：定数）
αの設定値を、α１、α２のように変えることで、図３に示したように、入出力割合Ｒの特性は変化する。Ｎ２／Ｎ１の値が１を超えることは、出力Ｎ２が間引かれ、１未満の場合は入力Ｎ１が間引かれることを意味する。Ｒを調整することで、第１高精度のシミュレーションモデル１１０等の計算負荷量が調整される。【００４５】
入出力割合算出部１１６は、ユーザにより設定された特性αに基づいて、Ｎ１、Ｎ２から、入出力割合Ｒの値を算出する。シミュレーションモデル１１０への入力データの更新頻度、あるいは、シミュレーションモデル１１０からの出力データの更新頻度が過剰な場合、動的速度調整ブロック１００において、シミュレーションモデルへのデータ入力の遮断（間引き）、あるいは、シミュレーションモデルからのデータ出力の遮断（間引き）が行われる。【００４６】
図４は、入力開口部１１７と出力開口部１０５に共通して利用できる、開口部モジュール５００の構成例を示す。開口部モジュール５００は、入力となるバッファ（１０２、１１２）と出力となるモデルI/O部（１０３、１１１）と接続されている。バッファとモデルI/O部は直接つながっておらず、その間にはデータ引渡しフラグ５０５が介入しており、データ引渡しフラグ５０５が有効化されているときのみ、バッファとモデルI/O部間でデータが流れるようになっている。【００４７】
データ引渡しフラグ５０５は入出力割合算出部１１５と接続されており、入出力割合算出部１１５による入出力変化頻度割合または、入力変化頻度の大小判定の結果、データ引渡しフラグ５０５が有効か、無効かが決定される。
この他にも、データ引渡しフラグ５０５はバッファ中の最古のデータの削除をバッファに対して要求するデータ削除命令５０４と、バッファ中の最古のデータの送信をバッファに対して要求するデータ要求命令５０３をバッファ（１０２、１１２）に対し要求することが可能である。【００４８】
図５は、入力変化トリガ算出部１２０と出力変化トリガ算出部１０６に共通して利用できる、変化トリガ算出モジュール６００の構成例を示す。  
本モジュール６００は、データの入力となるバッファ（１０２、１１２）と、算出したトリガの出力先となる変化頻度算出部７００（入力変化頻度算出部１１９，出力変化頻度算出部１１５）と接続されている。またプロセス間通信IF部１０４と接続されており、入力値しきい値（β１）を保存したレジスタ６０９の値を更新することが可能である。【００４９】
バッファ（１０２、１１２）より入力された値はまずバッファ最新値レジスタ６０１に保存される。この最新値とレジスタ６０３に保存されている、前回トリガが成立した時の入力値（前回値）を入力とする減算処理部６０４があり、更にその減算結果の絶対値|Ａ|を取得する絶対値取得部６０５に接続されている。さらに、絶対値取得部６０５で取得された絶対値|Ａ|と、入力値しきい値レジスタ６０９に保存されているしきい値（β１）を入力とする比較処理部６０６があり、ここで絶対値取得部６０５によって算出された値Ａが大きいと判断された場合（Ａ＞β１）、パルス発生器６０７がパルスを変化頻度算出部６０８に出力する。【００５０】
同時に、バッファ最新値レジスタ６０１とレジスタ６０３に接続されているデータコピー処理部６０２は、比較器６０６が出力する正の論理値を受け取ると、バッファ最新値レジスタ６０１からレジスタ６０３にデータをコピーする。【００５１】
図６に、入力変化頻度算出部１１９と出力変化頻度算出部１１５とに共通して利用できる、変化頻度算出モジュール７００の構成例を示す。  
変化頻度算出モジュール７００は、入力側が、変化トリガ算出部６００（１０６，１２０）、実時間クロックモジュール１１４、仮想環境内クロックモジュール１１８と接続されており、出力側が入出力割合算出部１１６と接続されている。【００５２】
変化トリガ算出モジュール６００からの入力はトリガ入力モジュール７０１で受信される。この瞬間の実時間クロックモジュール１１４と仮想環境内クロックモジュール１１８の出力値をそれぞれ、実時間タイムスタンプ現在値レジスタ７０２、仮想環境内タイムスタンプ現在値レジスタ７０６に保存する。【００５３】
減算処理部７０４が、実時間タイムスタンプ現在値レジスタ７０２と実時間タイムスタンプ貯蓄値レジスタ７０３を入力とし、この減算処理部７０４における処理結果が実時間変化頻度レジスタ７０５に保存される。【００５４】
また、減算処理部７０８が、仮想環境内タイムスタンプ現在値レジスタ７０６と仮想環境内タイムスタンプ貯蓄値レジスタ７０７を入力とし、この減算処理部７０８における処理結果が仮想環境内変化頻度レジスタ７０９に保存される。【００５５】
上記の２つの減算処理部７０４、７０８の処理の後、実時間タイムスタンプ現在値レジスタ７０２、仮想環境内タイムスタンプ現在値レジスタ７０６の値がそれぞれ実時間タイムスタンプ貯蓄値レジスタ７０３と、仮想環境内タイムスタンプ貯蓄値レジスタ７０７に保存される。実時間変化頻度レジスタ７０５と、仮想環境内変化頻度レジスタ７０９に保存された変化頻度（Ｒ）は、セットとなって入出力割合算出部１１６に出力される。【００５６】
図７は、入出力割合算出部１１６の構成例を示すものである。  
入出力割合算出部１１６は、出力変化頻度算出部１１５からの変数変化頻度情報（Ｎ２）と入力変化頻度算出部１１９からの変数変化頻度情報（Ｎ１）を入力とする。また、入出力割合算出部１１６は、プロセス間通信IF部１０４と接続されており、出力変化割合しきい値レジスタ８０５の値β３、入力変化割合しきい値レジスタ８０４の値β２、出力変化割合レジスタ８０８の値αを更新可能である。【００５７】
入力変化頻度算出部１１９の割合出力値（Ｎ１＝Ａ１）は、まず入力変化頻度レジスタ８０１に、出力変化頻度算出部１１５の割合出力値（Ｎ２＝Ａ２）はまず出力変化頻度レジスタ８００に保存される。除算処理部８０６には、出力変化頻度レジスタ８００の値と入力変化頻度レジスタ８０１が接続されており、この除算処理部８０６の出力値（Ａ２／Ａ１）と出力変化割合レジスタ８０８の値αが比較演算処理８０７に入力される。また、入力変化頻度レジスタ８０１の値Ａ１と入力変化割合しきい値レジスタ８０４の値β２を入力する比較処理部８０３があり、この比較処理部８０３の出力と比較処理部８０７の出力の論理和８０９の出力が入力開口部１１７に入力される。【００５８】
また、出力変化頻度レジスタ８００の値Ａ２と入力変化割合しきい値レジスタ８０５の値β３を入力する比較処理部８０２があり、この比較処理部８０２の出力と比較処理部８０７の出力の論理和８０９が出力開口部１０５に入力される。【００５９】
図８（図８Ａ、図８Ｂ）は、第１の実施例の協調シミュレーション用計算機システムの、全体的な動作フローを示す図である。  
まず、ユーザによりシミュレータの初期化が実行され、かつ、必要なパラメータの設定がなされる。すると、協調シミュレーション環境に含まれるシミュレーションモデルや、それらを接続するシミュレーションインターフェイスの初期化と並行して、動的速度調整ブロック１００の初期化が行われる(Ｓ４００)。その中で、プロセス間通信IF部１０４のソケット通信の初期化が実行され、速度調整スクリプト１０７がプロセス間通信IF部１０４と接続される(Ｓ４０１)。【００６０】
すると、速度調整スクリプト１０７から送られる初期化データに基づいて、入出力割合算出部１１６の入出力トリガ間隔比率しきい値αの初期設定(Ｓ４０２)、出力/入力変化トリガ算出部の入力値しきい値β１の初期設定(Ｓ４０３)、入出力割合算出部の入力フィルタしきい値β２、出力フィルタしきい値β３の初期設定(Ｓ４０４)が実行される。これらの初期化処理後も、プロセス間通信IF部と速度調整スクリプト間の通信ソケットは有効化されたままにとなっていて、定期的に通信パケットを送り続ける。【００６１】
全てのシミュレーションモデル及び動的速度調整ブロック１００の初期化が完了すると、シミュレーションが開始されるステップ(Ｓ４０５)。このとき、動的速度調整ブロック１００に対し、接続されたシミュレーションモデル１１０から入力データが入ってきて、そのまま入力バッファ１１２、入力開口部１１７、出力開口部１０５、出力バッファ１０２を通り、データが対象シミュレーションモデル１１０を通過するようになる(Ｓ４０６)。【００６２】
シミュレーションの実行と並行し、Ｓ４０１で確立した速度調整スクリプト１０７とプロセス間通信IF部１０４間のソケット通信を用いて、速度調整スクリプトとプロセス間通信IF部間は、シミュレータ自体の動作に影響を与えない、非同期な通信パケットの交換を行なっている。【００６３】
プロセス間通信IF部１０４が受信待ち状態になると(Ｓ４１９)、速度調整スクリプト１０７がプロセス間通信IF部に対して通信パケットを送る(Ｓ４２０)。前述の通信パケットにより、動的速度調整ブロック１００の動作パラメータを設定することが可能であり、通信パケット上の該当するフィールドに有効な値が設定されていた場合、動的速度調整ブロック１００内の対象とする動作パラメータが更新される。【００６４】
そこでは、入出力割合算出部１１６の入出力トリガ間隔比率しきい値αの更新(Ｓ４２１)、出力/入力変化トリガ算出部の入力値しきい値β１の更新(Ｓ４２４)、入出力割合算出部の入力フィルタしきい値β２、出力フィルタしきい値β３の更新(Ｓ４２３)が実行される。【００６５】
通信が終了すると再度、プロセス間通信IF部は通信待ち状態に入り、動的速度調整ブロックは更新された動作パラメータを用いて、モデルへのデータ入力制御を行う。このようにして、シミュレーション動作中であってもシミュレーション速度と精度の調整が可能となっている。【００６６】
前記対象シミュレーションモデル１１０へのデータの入出力（Ｓ４０６）と並行し、入力変化トリガ算出部１２０と出力変化トリガ算出部１０６が、入出力ポートの値の変化トリガを算出する（Ｓ４０７）。すなわち、バッファ最新値レジスタ６０１に保存された最新値とレジスタ６０３に保存されている前回トリガが成立した時の前回値とを入力とする減算処理を行い、更にこの減算結果の絶対値|Ａ|を取得する。さらに、この取得された絶対値と、入力値しきい値レジスタ６０９に保存されている値（β１）とを比較処理し、ここで絶対値取得処理部６０５によって算出された値がしきい値よりも大きいと判断された場合（Ａ＞β１）、パルス発生器６０７がパルスを変化頻度算出部６０８に出力する（Ｓ４２５）。または、Ｓ４１９からＳ４２２のパラメータ更新ステップによって更新される入力値しきい値β１を用い、前にトリガが成立した際の前回値との差異の絶対値|Ａ|が前述のしきい値β１を超えた時に、トリガが成立したとして入力変化頻度算出部、出力変化頻度算出部にトリガを送信する。また同時に、トリガ成立時の入出力の値を、次のトリガ評価に使用するためにレジスタに保存する。【００６７】
変化頻度算出モジュール７００では、トリガを受信したタイムスタンプを取得して保存するレジスタがあり、直前にトリガを受信したタイムスタンプとの間隔を計算することが可能である。トリガのタイムスタンプは、シミュレートされた時間、シミュレーション実行時間の双方で計算され、両方共、変化頻度算出部で保存される。計算された両タイムスタンプの間隔は入出力割合算出部へと送られる(Ｓ４０８)。【００６８】
入出力割合算出部１１６へ送られた入力タイムスタンプ間隔と出力タイムスタンプ間隔は、除算されトリガ間隔比率（Ｎ２／Ｎ１）として保存される(Ｓ４０９)。トリガ間隔比率（Ｎ２／Ｎ１）は、予め与えられた、またはＳ４１９からＳ４２２のパラメータ更新ステップによって更新される入出力トリガ間隔比率の閾値αと比較される。【００６９】
そして、シミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらかが入出力トリガ間隔比率閾値αを上回ったか評価する(Ｓ４１０)。【００７０】
Ｓ４１０でシミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらかが入出力トリガ間隔比率閾値αを上回った場合、この時、動的速度調整ブロック１００は入力データの更新頻度が過剰であると判断される(Ｓ４１２)。【００７１】
または、Ｓ４０８で算出した入力変化頻度Ｎ１が、予め与えられた、またはＳ４１９からＳ４２２のパラメータ更新ステップによって更新される、入力フィルタ閾値β２よりも大きかった（Ｎ１＞β２）場合(Ｓ４１１)、この時動的速度調整ブロックは入力データの更新頻度が過剰であると判断する(Ｓ４１２)。【００７２】
Ｓ４１２で動的速度調整ブロックが入力データの更新頻度（Ｎ１）が過剰であると判断された場合、動的速度調整ブロック１００は入力開口部１１７のデータ転送設定を無効化する(Ｓ４１３)。これにより、対象シミュレーションモデルへ１１０のデータ入力が遮断され(Ｓ４１４)、結果として対象シミュレーションモデル１１０の実行負荷が低下する(Ｓ４１５)。【００７３】
同様に、ステップ４１２で、入力変化頻度Ｎ２が、予め与えられた、またはパラメータ更新ステップによって更新される、入力フィルタ閾値β３よりも大きかった（Ｎ２＞β３）場合、出力データの更新頻度（Ｎ２）が過剰であると判断され、入力開口部１１７と並行して、出力開口部１０５のデータ転送設定も無効化される(Ｓ４１６)。これにより、対象シミュレーションモデルへ１１０の出力側（後段）に接続された低精度モデルへのデータ入力が遮断され(Ｓ４１７)、結果として出力側に接続された低精度モデルの実行負荷が低下する(Ｓ４１８)。【００７４】
また、Ｓ４１０でシミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらも入出力トリガ間隔比率閾値αを上回らず、かつ、Ｓ４０８で算出した入力変化頻度（Ｎ１）が、予め与えられた、またはＳ４１９からＳ４２２のパラメータ更新ステップによって更新される、入力フィルタ閾値β２以下であった場合（Ｎ１≦β２）、この時、動的速度調整ブロック１００は入力データの更新頻度（Ｎ１）が適正と判断される。すると、動的速度調整ブロック１００は入力開口部１１７のデータ転送設定を有効化する(Ｓ４３３)。これにより、対象シミュレーションモデル１１０へのデータ入力が再開され(Ｓ４３４)、結果として対象シミュレーションモデルの実行負荷が上昇する(Ｓ４３５)。【００７５】
同様に、ステップ４１２で、入力変化頻度Ｎ２が、予め与えられた、またはパラメータ更新ステップによって更新される、入力フィルタ閾値β３以下であった場合（Ｎ２≦β２）、出力データの更新頻度（Ｎ２）が適正と判断され、出力開口部１０５のデータ転送設定が有効化される(Ｓ４３６)。これにより、対象シミュレーションモデル１１０からのデータが発生するようになり(Ｓ４３７)、結果として対象シミュレーションモデルの後段に接続された低精度モデルの実行負荷が上昇する(Ｓ４３８)。【００７６】
このような一連のステップにより、動的速度調整ブロック１００は、協調シミュレーション環境にある、高精度モデルと低精度モデルの、動的な実行負荷すなわちシミュレーション速度と精度の調整を可能にする。【００７７】
図９は、本発明の実施例を適用した場合のモデルの動作とその計算負荷の関係の一例を示す。横軸に、シミュレータの内部時間と、実時間すなわちシミュレーションの実行時間をとり、時系列変化を図示した。図９の上の段は、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データＡ（９１０（１）〜９１０（ｎ））、データＢ（９１２（１）〜９１２（ｎ））を動的速度調整ブロック１００が制御し、対象シミュレーションモデルの出力（＝後段の低精度モデルの入力）A’,A’，（９１１（１）〜９１１（２）），B’,B’（９１３（１）〜９１３（２））が調整されている例である。９１８は、入力信号の遮断によって、高精度モデルに入力されなくなった低精度モデルの出力である。【００７８】
図９の下の段は、上の段と同じ制御について、横軸を実時間で示したものであり、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データＡ（９１４（１）〜９１４（ｎ））、データＢ（９１６（１）〜９１６（ｎ））を動的速度調整ブロック１００が制御し、対象シミュレーションモデルの出力（＝後段の低精度モデルの入力）A’,A’，（９１５（１）〜９１５（２）），B’,B’（９１７（１）〜９１７（２））が調整されている。９１９は、入力信号の遮断によって削減された高精度モデルの計算負荷である。【００７９】
動的速度調整ブロック１００は、対象モデルの入力、出力の変化頻度に基づいて高精度モデルへの入力データをＡ，Ｂの一部を遮断する(９１８、９１９)ことができる。この制御によって、低精度シミュレーションモデルの入力が遮断され(９１８、９１９)、高精度モデルで内部状態の更新が停止することになる。【００８０】
すなわち、高精度モデルの入力が遮断され(９１８、９１９)、その結果、内部状態の停止していた間隔(９１８、９１９)の分、高精度モデルの計算処理が削減される事になる。【００８１】
図１０は、本発明の実施例を適用した場合のモデルの動作とその計算負荷の関係の他の例を示す。図９の例に比較して、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データ９１８、計算負荷９１９が、さらに絞られている。その結果、高精度モデルの計算処理がより多く削減される事になる。【００８２】
次に、図１１は、本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の他の例を示す図である。９２８は、入力信号の遮断によって、高精度モデルか低精度モデルに入力されなくなった出力である。高精度シミュレーションモデルから低精度シミュレーションモデルの出入力データ（９２０〜９２７）を動的速度調整ブロック１００が制御し、この制御によって、後段の低精度シミュレーションモデルの入力が遮断され(９２９)、低精度シミュレーションで内部状態の更新が停止することになる。これにより、後段の低精度シミュレーションモデルの計算処理がより減される事になる。【００８３】
図１２は、比較例として、本発明適用前の協調シミュレーション環境での、データの流れと処理負荷の一例を示す図である。低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データＡ（９００（１）〜９００（ｎ））、データＢ（９０２（１）〜９０２（ｎ））の全てが対象シミュレーションモデルに入力され、その出力（＝後段の低精度モデルの入力）A’,A，（９０１（１）〜９１１（ｎ）），B’,B（９０３（１）〜９０３（ｎ））が出力されている例である。後段の低精度モデルが受信しきらないデータを高精度モデルが算出することになり、計算負荷に無駄が生じている。【００８４】
高精度モデルAは一般的に低精度モデルBよりも高い頻度で出力信号を更新する。この時のシミュレーションの実行にかかる時間を下段にプロットしてある。モデルBの出力とモデルAの入力には依存関係があるため、両モデルの実行は同時に行うことが不可能であって、図示したようなタイミングチャートになる。このとき出力が変化していない高精度モデルAの計算処理、すなわち処理９０１（２）から９０１（ｎ）、９０５（２）から９０５（ｎ）の間等の計算処理は、次段のモデルの状態計算には用いられないため、無駄な計算処理とみなすことができる。【００８５】
本発明によれば、動的速度調整ブロックが対象モデルの入力、出力の変化頻度に基づいて高精度モデルへの入力データや出力データの一部を遮断したり、再開したりすることで、図９〜図１１で述べたように、協調シミュレーション環境にあるシミュレーションモデルの負荷を適切に制御するので、無駄な計算処理を削減できる。しかも、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。また、協調シミュレーション環境の外部から、速度調整スクリプトにより、調整パラメータを変更させることにより、シミュレーション中に動的にその精度を変更させることが可能である。【００８６】
より具体的に述べると、先に述べた図２Ｂのモータ制御をするための協調シミュレーション環境のモデル構成例において、低精度のモータモデル２０２やコントローラモデル２００の動作周期は数ミリ秒周期であるのに対し、高精度モデルであるインバータモデル１１０の動作周期は数１０マイクロ秒に達することがある。そのため、インバータモデルの計算負荷が高いことが問題となっている。これに対し、コントローラモデル側からインバータモデル１１０への入力値を抑えることによって、インバータモデルの模擬動作を軽減することで、計算負荷を減らすことが可能となる。【００８７】
また、先に述べた図２Ｃの自動車全体システムのシミュレーション環境のモデル例では、マイコンに搭載されるCPUの内部動作まで模擬していた場合、高精度モデルであるマイコンモデル１１０は動作周期が数ナノ秒周期と、非常に高精度であり高頻度に状態を更新する事となる。これに対してそれ以外の低精度のモデルであるセンサモデル、アクチュエータモデルは数ミリ秒の動作周期と、その動作周期に大きな差がある。そためにマイコンモデル１１０の計算負荷の無駄が問題となる。この場合も、センサモデルからマイコンモデルへの入力、さらには、マイコンモデルからアクチュエータモデルへの出力を抑えることによって、インバータモデルの模擬動作を軽減することで、計算負荷を減らすことが可能となる。
【実施例２】
【００８８】
実施例１で述べた動的速度調整ブロック１００は、入力開口部１１７と出力開口部１０５の双方を備えているが、何れか一方のみを採用しても良い。すなわち、対象となるシミュレーションモデルに対する入力データのみを動的に遮断・開通する方式、あるいは、シミュレーションモデルに対する出力データのみを動的に遮断・開通する方式としても良い。【００８９】
また、本発明を適用するのに適した協調シミュレーション環境の例としては、例えば、複数の高精度モデルが共通の低精度モデル（センサモデルや通信モデル）から入力を受けるタイプ、高精度モデルが低精度モデルに出力するタイプ、低精度と高精度モデルが双方向に入出力を行うタイプ、高精度モデルから入力を受けた低精度モデルの出力を他の高精度モデルに入力するタイプ等、種々のタイプが考えられる。
【符号の説明】
【００９０】
１００：動的速度調整ブロック
１０１：元モデル出力I/O部
１０２：出力バッファ
１０３：モデル出力I/O部
１０４：プロセス間通信IF部
１０５：出力開口部
１０６：出力変化トリガ算出部
１０７：速度調整スクリプト
１０８：出力ポート
１０９：入力ポート
１１０：対象となるシミュレーションモデル
１１１：モデル入力I/O部
１１２：入力バッファ
１１３：元モデル入力I/O部
１１４：実時間クロックモジュール
１１５：出力変化頻度算出部
１１６：入出力割合算出部
１１７：入力開口部
１１８：仮想環境内クロック
１１９：入力変化頻度算出部
１２０：入力変化トリガ算出部
１２２：動的バッファ制御部
９００,９０２：比較例の低制度モデルBの出力動作
９０１,９０３：比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作
９０４,９０６：比較例の低制度モデルBの出力動作に関わる計算負荷
９０５,９０７：比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作に関わる計算負荷
９１８：実施例１において、入力信号の遮断によって、高精度モデルに入力されなくなった低精度モデルBの出力
９１９：実施例１において、入力信号の遮断によって削減された高精度モデルAの計算負荷。
【図１】
2014038030.tif 000003
【図２Ａ】
2014038030.tif 000004
【図２Ｂ】
2014038030.tif 000005
【図２Ｃ】
2014038030.tif 000006
【図３】
2014038030.tif 000007
【図４】
2014038030.tif 000008
【図５】
2014038030.tif 000009
【図６】
2014038030.tif 000010
【図７】
2014038030.tif 000011
【図８Ａ】
2014038030.tif 000012
【図８Ｂ】
2014038030.tif 000013
【図９】
2014038030.tif 000014
【図１０】
2014038030.tif 000015
【図１１】
2014038030.tif 000016
【図１２】
2014038030.tif 000017
【手続補正書】
【提出日】平成28年2月10日(2016.2.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、
前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、
検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
該動的速度調整ユニットは、
前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項２】
請求項１において、
前記入力バッファは、前記検証対象のシミュレータの入力ポートの値を一時的に貯蔵する機能を有し、
前記出力バッファは、前記検証対象のシミュレータの出力ポートの値を一時的に貯蔵する機能を有し、
前記動的速度調整ユニットは、
前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項３】
請求項２において、
前記精度及び速度の異なる複数のシミュレータは、前記検証対象であって高頻度に内部状態を更新する高精度モデルのシミュレータと、前記検証対象シミュレータの模擬動作に関わり、低頻度に内部状態を更新する低精度モデルのシミュレータとを含んでおり、
前記動的速度調整ユニットは、前記検証対象となるシミュレータに対する入出力データの更新頻度を調整する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項４】
請求項３において、
前記動的速度調整ユニットに対してユーザインタフェース機能を有する表示部を備え、前記協調シミュレーションの環境、及び、前記シミュレータの実行時の各モデルの入出力値や動作状態の情報が表示される
ことを特徴とする協調シミュレーション用計算機システム。
【請求項５】
請求項３において、
前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部を備えており、
前記入力値変化頻度が所定の閾値を超えている場合には、前記入力開口部のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項６】
請求項３において、
前記動的速度調整ユニットは、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口部を備えており、
前記出力値変化頻度が所定の閾値を超えている場合には、前記出力開口部のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項７】
請求項３において、
前記動的速度調整ユニットは、変化トリガ算出部を備えており、
該変化トリガ算出部は、前記対象シミュレーションモデルへ入出力ポートの入力値若しくは出力値の変化トリガを算出し、入力／出力の最新値と前回値との差の絶対値と、予め与えられたしきい値β１とを比較処理し、前記絶対値が前記しきい値よりも大きいとき、パルス発生器からパルスを出力する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項８】
請求項７において、
前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口、及び、変化頻度算出部を備えており、
該変化頻度算出部は、前記パルス発生器からのパルスによって起動され、
入力／出力変化トリガの間隔が所定の比率しきい値αを超えた時に、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項９】
請求項８において、
前記動的速度調整ユニットは、入力／出力割合算出部を備えており、入力変化頻度Ｎ１が、予め与えられた閾値β２よりも大きかった場合、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。
【請求項１０】
請求項３において、
前記動的速度調整ユニットは、
検証対象の入出力ポートの値の変化の頻度に基づいて、前記入／出力バッファからのデータの削除を行うか、前記検証対象となるシミュレータへのデータ供給を行うかを制御する機能を持っており、該機能により、動的に対象となるシミュレータに対する前記入力データの供給速度を調整することによって、前記対象となるシミュレータの模擬動作に関わる計算処理を削減することを特徴とする協調シミュレーション用計算機システム。
【請求項１１】
メカニズム、ハードウェア、及びソフトウェアを模擬した組込みシステムの検証システムであって、
前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作する協調シミュレーション用計算機システムを構成するものにおいて、
検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
該動的速度調整ユニットは、
前記検証対象のシミュレータへのデータ供給を行うかの判断基準として、
前記シミュレータの実行時間あたりの変数変化頻度が一定値を超えた時、前記検証対象のシミュレータによって模擬されている時間あたりの変数変化頻度が一定値を超えた時、入出力の変数変化頻度の割合が一定値を超えた時、のいずれかが成立した場合を判定し、
前記判断基準が成立した場合、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を動的に制御して前記協調動作する複数のシミュレータの動作速度を調整する
ことを特徴とする組込みシステムの検証システム。
【請求項１２】
請求項１１において、
前記動的速度調整ユニットは、
前記協調して動作する複数のシミュレータの外部に存在する速度調整スプリクトと通信する機能と、
前記検証対象のシミュレータへのデータ供給を行うかの判断基準を、前記速度調整スプリクトとの通信結果に基づいて変更する機能とを有し、
前記検証対象のシミュレータの動作精度・速度を、該検証対象のシミュレータの動作中に変更可能である
ことを特徴とする組込みシステムの検証システム。
【請求項１３】
請求項１１において、
前記精度及び速度の異なる複数のシミュレータは、センサやアクチュエータを模擬する低精度のモデルと、前記センサの入力を処理し前記アクチュエータに制御内容を伝達するマイコンを模擬する高精度のモデルによって構成されており、
前記動的速度調整ユニットは、前記判断基準が成立した場合に、前記高精度のモデルに対する入出力データの更新頻度を調整する
ことを特徴とする組込みシステムの検証システム。
【請求項１４】
協調シミュレーション用計算機システムを用いた組込みシステムの検証方法であって、
前記組込みシステムは、メカニズム、ハードウェア、及びソフトウェアで構成され、
前記協調シミュレーション用計算機システムは、前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作するものにおいて、
検証対象の入出力ポートの値を一時的にバッファに貯蔵し、
前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
ことを特徴とする組込みシステムの検証方法。
【請求項１５】
請求項１４において、
前記協調シミュレーション用計算機システムは、ユーザインタフェース機能を有する表示部を備え、
前記表示部に、前記協調シミュレーションの環境、及び、前記シミュレータの実行時の各モデルの入出力値や動作状態の情報を表示する
ことを特徴とする組込みシステムの検証方法。
【国際調査報告】
2014038030.tif 000018
2014038030.tif 000019
2014038030.tif 000020
2014038030.tif 000021