JPWO2014038030A1 - 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 - Google Patents
協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 Download PDFInfo
- Publication number
- JPWO2014038030A1 JPWO2014038030A1 JP2014534096A JP2014534096A JPWO2014038030A1 JP WO2014038030 A1 JPWO2014038030 A1 JP WO2014038030A1 JP 2014534096 A JP2014534096 A JP 2014534096A JP 2014534096 A JP2014534096 A JP 2014534096A JP WO2014038030 A1 JPWO2014038030 A1 JP WO2014038030A1
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- simulation
- simulator
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/08—HW-SW co-design, e.g. HW-SW partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、該動的速度調整ユニットは、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整する。
Description
本発明は、協調シミュレーション用計算機システム、組込みシステムの検証方法に係り、特に、メカニズム、ハードウェア、及びソフトウェアで構成される組込みシステムの開発に適した、協調シミュレータの技術に関するものである。
組込みシステムとは、制御対象を構成するメカニズムと、このメカニズムから受け取った物理量を元に制御演算を行いこのメカニズムに制御値の出力を行なうハードウェアと、このハードウェア上で動作するソフトウェアとで構成されるシステムである。
例えば、自動車エンジン制御向けの組込みシステムは、制御対象であるエンジン等のメカニズムと、制御演算を行いこのエンジン等を制御するマイコン等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。
組込みシステムに含まれるソフトウェアの挙動は、制御対象のメカニズムとハードウェアの構成に強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。
近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化しており、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。
分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加し、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。
この問題を解決するため、設計時点でのメカニズム・ハードウェア・ソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられ始めている。
上記のシミュレーションによる性能評価・動作検証を行うにあたり、対象となる組込みシステムを構成する各要素の動作を、シミュレーションモデルとしてシミュレータ上で実行可能なソフトウェアとなるように記述する必要がある。これらのシミュレーションモデルは、メカニズム・ハードウェア各々の構成要素の設計・製造を担当する会社または部署から提供を受ける形態を取るのが一般的である。
しかし、これらの異なる物理階層のモデルをそのまま組合わせる手法は、求められるシステム動作を再現する計算負荷が高くなるという問題がある。
すなわち、使用される上記の各モデルはモデルの提供者の設計自体を助けるために作成されるので、対象物の内部動作をすべて記述したモデルとなる。ただし、これらの内部動作の中では実際にシステム全体レベルのシミュレーションでは参照されない内部動作も存在している。
例えば、上記のエンジンの制御シミュレーションを対象とした時に、制御マイコンにおいて、エンジンの制御とは関係のない計算の値などは協調シミュレーションで参照されることはなく、この計算処理に費やされる計算負荷は無駄なものとなる。
このような計算負荷の無駄が積み重なることによって、求められるシステム動作を再現するのに必要な計算負荷が高くなる。
これに対し、特許文献1には、所定のモデルを書き換える事によって、無駄な計算処理を削除し、シミュレーションの速度を向上させる手法が開示されている。
この手法を用いることで、協調シミュレーションに必要な処理のみを適切なデータ更新頻度で出力することが可能であり、無駄な計算処理を最大限削除可能である。
複数のシミュレーションモデルが連携する協調シミュレーション環境であって、高頻度に内部状態を更新する高精度モデルと、低頻度に内部状態を更新する低精度モデルが接続されるシステムでは、求められるシステム動作を再現する計算負荷をできるだけ低減することが求められる。
しかし特許文献1に記載の前述のモデルの書換え作業は、その書き換え対象モデルに接続された別物理階層のモデルの内部状態を理解した上で、そのモデル間のデータフローとその頻度を考慮する必要があるため、その書き換え対象モデルの知識のみにとどまらず、そのモデルに接続されたすべてのモデルの知識が必要である。そのため、書換え作業を行える人間が非常に限られる事、それに反し、書き換えられたモデルの適切なデータフローとその頻度は対象とする協調シミュレーション環境の構成によって異なるため、エンジン制御など特定分野に限った適用は可能だが、多様な構成の組込みシステム全般には適応が難しい。
本発明の課題は、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーションで参照されない計算処理を限削し、計算負荷の無駄を軽減できるようにした協調シミュレーション用計算機システムを提供することにある。
本発明の代表的なものの一例を示すと、次のようになる。
複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、該動的速度調整ユニットは、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整することを特徴とする。
複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、該動的速度調整ユニットは、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整することを特徴とする。
本発明によれば、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。
上記課題を解決するには、対象モデルへの書き換えをせずに、モデルの無駄な計算負荷を低減する手段を構築する必要がある。そこで、本発明は、シミュレーションモデルに対する入出力信号が変化しないときに、該当モデルの計算処理が不要となる性質を用いて、無駄な計算負荷を発生させているシミュレーションモデルに対する入出力データを動的に遮断・開通することによって、当該シミュレーションモデルの計算負荷を低減する仕組みを提案するものである。
本発明の代表的な実施形態によれば、高精度モデルと低精度モデルを含む複数のシミュレーションモデルが連携する協調シミュレーション環境において、対象となる高精度モデルの入出力ポートの一部を本発明の動的速度調整ブロックで介入させ、そのデータ通信頻度を動的に変更させる仕組みを追加する。これにより、対象となる高精度モデルが計算処理をする頻度が低下し、協調シミュレーション環境全体の計算負荷の低減が可能である。
なお、本発明において、高精度モデルとは、高頻度に内部状態を更新するシミュレーションモデル、低精度モデル低頻度に内部状態を更新するシミュレーションモデルを意味する。
なお、本発明において、高精度モデルとは、高頻度に内部状態を更新するシミュレーションモデル、低精度モデル低頻度に内部状態を更新するシミュレーションモデルを意味する。
本発明の代表的な実施形態によれば、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。また、協調シミュレーション環境の外部からこれらの調整パラメータを変更させることにより、シミュレーション中に動的にその精度を変更させることが可能である。
本発明は、複数のソフトウェアが連動して動作する計算機システム、または開発システムのプログラムに広く適用することができる。
以下、本発明の第1の実施例について、説明する。
図1は、本発明の第1の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示す機能ブロック図である。本発明の協調シミュレーション用計算機システムは、対象とするシミュレーションモデル110にI/O部を介して接続される動的速度調整ブロック100を備えている。すなわち、本発明の主たる部品である動的速度調整ブロック100は、動的バッファ制御部122と、モデル入力I/O部111とモデル出力I/O部103とを備えている。デル入力I/O部111とモデル出力I/O部103は、対象とするシミュレーションモデル110の入力ポート109及び出力ポート108の、一部または全体とそれぞれ接続される、動的バッファ制御部122は、例えば、メモリに保持され、コンピュータに各種の機能を実現させるプログラムによって構成することができる。
図1は、本発明の第1の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示す機能ブロック図である。本発明の協調シミュレーション用計算機システムは、対象とするシミュレーションモデル110にI/O部を介して接続される動的速度調整ブロック100を備えている。すなわち、本発明の主たる部品である動的速度調整ブロック100は、動的バッファ制御部122と、モデル入力I/O部111とモデル出力I/O部103とを備えている。デル入力I/O部111とモデル出力I/O部103は、対象とするシミュレーションモデル110の入力ポート109及び出力ポート108の、一部または全体とそれぞれ接続される、動的バッファ制御部122は、例えば、メモリに保持され、コンピュータに各種の機能を実現させるプログラムによって構成することができる。
動的速度調整ブロック100は、さらに、元モデル入力I/O部113と元モデル出力I/O部101を備えており、これらは、本発明適用前に入力ポート109と出力ポート108が接続されるはずであった、対象とするモデル110の前段/後段に位置するシミュレータと接続されていたポートの一部または全体とそれぞれ接続されている。すなわち、動的速度調整ブロック100のモデル入力I/O部111は、入力バッファ112と入力開口部117、元モデル入力I/O部113を介して、前段に位置するシミュレータと接続され、モデル出力I/O部103は、出力バッファ102と出力開口部105、元モデル出力I/O部11を介して、後段に位置するシミュレータと接続される。
図2Aに、本発明を適用した協調シミュレーション環境の構成例を示す。図2Aの例では、対象とするシミュレーションモデルは、例えば、第1高精度のシミュレーションモデル110であり、動的速度調整ブロック100を介してその入力側に第1低精度シミュレーションモデル200及び第2低精度シミュレーションモデル201が接続され、出力側に第3低精度シミュレーションモデル202及び第4低精度シミュレーションモデル203が接続されている。前段の第1低精度シミュレーションモデル200及び第2低精度シミュレーションモデル201は、各々、元モデル入力I/O部113に接続され、後段の第3低精度シミュレーションモデル202及び第4低精度シミュレーションモデル203は、各々、元モデル出力I/O部101に接続される。204は動的速度調整ブロック100のユーザインタフェースとして機能する表示部である。この表示部204には、ユーザ入力情報、協調シミュレーション環境、シミュレーション実行時の各モデルの入出力値や動作状態の情報等が表示される。ユーザは、表示部204から、シミュレータの初期化時に各種設定を行うと共に、表示部204を出力モニタとして参照しながら、シミュレーション中に、速度調整に関わるパラメータ等、各種のデータの入力を行うこともできる。例えば、協調シミュレーション実行の結果、特定の精度しか得られなかったことが表示部204で確認された場合、ユーザは、例えば、後で述べる定数αを変更して再度協調シミュレーションを実行することを繰り返し、目標の精度を得るようにすることができる。なお、この表示部は、本発明の各実施例が具備していることは言うまでもない。
図1に戻って、入力バッファ112に接続された入力開口部117と出力バッファ102に接続された出力開口部105は、各々、動的バッファ制御部122で制御される。動的バッファ制御部122は、入力開口部117と出力開口部105にそれぞれ接続されるバッファ(入力バッファ112、出力バッファ102)へのデータ読み出し、データ削除、次段モジュールに対しデータ遮断をするか決定するフラグを別モジュールから制御可能な機能を備えている。なお、入力開口部117と出力開口部105に対しては同じ形態の開口部モジュールを用いる事ができる。この開口部モジュールの構成に関しては、図4を参照しながら後で詳解する。
動的バッファ制御部122は、入力バッファ112、出力バッファ102とそれぞれ接続された、入力変化トリガ算出部120及び出力変化トリガ算出部106を備えている。これら入力変化トリガ算出部120と出力変化トリガ算出部106は、さらに、プロセス間通信IF部104と接続されている。
入力変化トリガ算出部120と出力変化トリガ算出部106は、さらに、プロセス間通信IF部 IF104を介して、協調シミュレーションの外部で動作する速度調整スクリプト107から、シミュレータの初期化時とシミュレーション中に速度調整に関わるパラメータのうち、直前の値との差分が幾つ以上になったら値が変化したと判定するためのしきい値を受け取ることができる。
入力変化トリガ算出部120と出力変化トリガ算出部106に対しては、同じ形態のモジュールを用いる事ができる。この変化トリガ算出モジュールの構成に関しては、図5で詳解する。
入力変化トリガ算出部120と出力変化トリガ算出部106はそれぞれ、入力変化頻度算出部119、出力変化頻度算出部115と接続されている。
入力変化頻度算出部119と出力変化頻度算出部115に対しては同じ形態のモジュールを用いる事ができる。この変化頻度算出モジュールの構成に関しては、図6で詳解する。
入力変化頻度算出部119と出力変化頻度算出部115に対しては同じ形態のモジュールを用いる事ができる。この変化頻度算出モジュールの構成に関しては、図6で詳解する。
入力変化頻度算出部119と出力変化頻度算出部115は、両方共、シミュレータの実行時間を出力する実時間クロック114と、シミュレータによって模擬されている時間を出力する仮想環境内クロック118と接続されており、これを用いて入力変化頻度算出部119と出力変化頻度算出部115に入力される変数の変化頻度を、(1)シミュレータの実行時間あたりと、(2)シミュレートされている時間あたり、の2つの観点で算出することができる。
入力変化トリガ算出部120と出力変化トリガ算出部106は、両方共、入出力割合算出部116と接続されている。
入出力割合算出部116は、プロセス間通信IF部104と接続されており、シミュレータの初期化時とシミュレーション中にプロセス間通信IF部を介して、協調シミュレーションの外部で動作する速度調整スクリプト107から速度調整に関わるパラメータのうち、入出力変化頻度割合値と入力変化頻度割合しきい値、出力変化頻度割合しきい値を受け取ることができる。
入出力割合算出部116は、プロセス間通信IF部104と接続されており、シミュレータの初期化時とシミュレーション中にプロセス間通信IF部を介して、協調シミュレーションの外部で動作する速度調整スクリプト107から速度調整に関わるパラメータのうち、入出力変化頻度割合値と入力変化頻度割合しきい値、出力変化頻度割合しきい値を受け取ることができる。
入出力割合算出部116の構成の詳細に関しては、図7で詳解する。
入出力割合算出部116は、入力開口部117と出力開口部105の両方と接続されており、これらに対しそれぞれ、入力バッファ112からモデル入力I/O部111、出力バッファ102から元モデル出力I/O部101へのデータ流遮断またはデータ流再開を指示する機能を備える。
入出力割合算出部116は、入力開口部117と出力開口部105の両方と接続されており、これらに対しそれぞれ、入力バッファ112からモデル入力I/O部111、出力バッファ102から元モデル出力I/O部101へのデータ流遮断またはデータ流再開を指示する機能を備える。
本発明を適用した協調シミュレーション環境のモデル構成を、図2(2A,2B,2C)で概説する。
協調シミュレーション環境では、異なる物理階層のモデルが複数個接続されることでシステム全体の挙動を模擬する。異なる物理階層のモデルは、それぞれ異なる時間精度を持ち、単位シミュレーション時間あたりのデータ更新頻度がそれぞれ異なる。
高精度なモデルは、高頻度で内部状態を更新し、また高頻度で外部出力の値を更新することになる。
高精度なモデルは、高頻度で内部状態を更新し、また高頻度で外部出力の値を更新することになる。
例えば、図2Aで示した構成の様に、第1低精度モデル200、第2低精度モデル201と第1高精度モデル110とが接続されていた場合、第1高精度モデル110の高頻度な出力が全て、後段の第3低精度シミュレーションモデル202及び第4低精度シミュレーションモデル203の状態模擬に使われるのでは無い(図12参照)。このため、第1高精度モデル110における計算負荷の無駄が発生する。
本発明の動的速度調整ブロック100は、この高精度モデル110の入出力の一部または全部をインターセプトする形で適用される。この時、入出力側の低精度モデル(200−203)は少なくとも1つ以上の高精度モデルと接続されることとなる。この構成をとることによって、各高精度モデルの入力ポート109及び出力ポート108に関して、速度調整をしたいポートとそのまま入力値を入れて精度を保ちたいポートを使い分けることが可能である。
図2B,図2Cは、本発明を適用するのに適した組込みシステムの協調シミュレーション環境の例を示している。
図2Bは、組込みシステムのモータ制御をするための協調シミュレーション環境のモデル構成例である。組込みシステムの交流モータの制御は簡易化して説明すると、コントローラモデル200からの速度指令値に基づいて、インバータモデル110が交流信号を出し、モータモデル202が回転する形となる。
図2Cは、自動車全体システムのシミュレーション環境のモデル構成例である。自動車エンジン制御向けの組込みシステムは、制御対象であるエンジンや駆動用電動機等のメカニズムと、制御演算を行いこのエンジンや駆動用電動機等を制御するマイコン等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。図2Cの例は、低精度のモデルからの入力、この例ではセンサモデル200と通信モデル201からデータを受け取り、マイコンモデル110によってその入力を処理し、エンジンモデル203、ブレーキモデル204等のアクチュエータに制御内容を伝達する構成となっている。センサモデル200が例えばアクセルの踏み込み量を検出するものである場合、その出力は、加速時には変化が多く、平坦路走行時には殆ど変化がないものとなる。このように、自動車の運転状況の変化に応じて、マイコンで処理すべきデータの量も変化する。本発明の動的速度調整ブロック100は、運転状況の変化に応答して、各モデルへの入出力を動的に調整する機能を有している。
次に、図3を参照して、入出力割合算出部116で演算処理される入出力割合Rについて、説明する。入出力割合Rは、例えば、次式で表わされる。
R=α・N2/N1(但し、N1:入力変化頻度、N2:出力変化頻度、α:定数)
αの設定値を、α1、α2のように変えることで、図3に示したように、入出力割合Rの特性は変化する。N2/N1の値が1を超えることは、出力N2が間引かれ、1未満の場合は入力N1が間引かれることを意味する。Rを調整することで、第1高精度のシミュレーションモデル110等の計算負荷量が調整される。
R=α・N2/N1(但し、N1:入力変化頻度、N2:出力変化頻度、α:定数)
αの設定値を、α1、α2のように変えることで、図3に示したように、入出力割合Rの特性は変化する。N2/N1の値が1を超えることは、出力N2が間引かれ、1未満の場合は入力N1が間引かれることを意味する。Rを調整することで、第1高精度のシミュレーションモデル110等の計算負荷量が調整される。
入出力割合算出部116は、ユーザにより設定された特性αに基づいて、N1、N2から、入出力割合Rの値を算出する。シミュレーションモデル110への入力データの更新頻度、あるいは、シミュレーションモデル110からの出力データの更新頻度が過剰な場合、動的速度調整ブロック100において、シミュレーションモデルへのデータ入力の遮断(間引き)、あるいは、シミュレーションモデルからのデータ出力の遮断(間引き)が行われる。
図4は、入力開口部117と出力開口部105に共通して利用できる、開口部モジュール500の構成例を示す。開口部モジュール500は、入力となるバッファ(102、112)と出力となるモデルI/O部(103、111)と接続されている。バッファとモデルI/O部は直接つながっておらず、その間にはデータ引渡しフラグ505が介入しており、データ引渡しフラグ505が有効化されているときのみ、バッファとモデルI/O部間でデータが流れるようになっている。
データ引渡しフラグ505は入出力割合算出部115と接続されており、入出力割合算出部115による入出力変化頻度割合または、入力変化頻度の大小判定の結果、データ引渡しフラグ505が有効か、無効かが決定される。
この他にも、データ引渡しフラグ505はバッファ中の最古のデータの削除をバッファに対して要求するデータ削除命令504と、バッファ中の最古のデータの送信をバッファに対して要求するデータ要求命令503をバッファ(102、112)に対し要求することが可能である。
この他にも、データ引渡しフラグ505はバッファ中の最古のデータの削除をバッファに対して要求するデータ削除命令504と、バッファ中の最古のデータの送信をバッファに対して要求するデータ要求命令503をバッファ(102、112)に対し要求することが可能である。
図5は、入力変化トリガ算出部120と出力変化トリガ算出部106に共通して利用できる、変化トリガ算出モジュール600の構成例を示す。
本モジュール600は、データの入力となるバッファ(102、112)と、算出したトリガの出力先となる変化頻度算出部700(入力変化頻度算出部119,出力変化頻度算出部115)と接続されている。またプロセス間通信IF部104と接続されており、入力値しきい値(β1)を保存したレジスタ609の値を更新することが可能である。
本モジュール600は、データの入力となるバッファ(102、112)と、算出したトリガの出力先となる変化頻度算出部700(入力変化頻度算出部119,出力変化頻度算出部115)と接続されている。またプロセス間通信IF部104と接続されており、入力値しきい値(β1)を保存したレジスタ609の値を更新することが可能である。
バッファ(102、112)より入力された値はまずバッファ最新値レジスタ601に保存される。この最新値とレジスタ603に保存されている、前回トリガが成立した時の入力値(前回値)を入力とする減算処理部604があり、更にその減算結果の絶対値|A|を取得する絶対値取得部605に接続されている。さらに、絶対値取得部605で取得された絶対値|A|と、入力値しきい値レジスタ609に保存されているしきい値(β1)を入力とする比較処理部606があり、ここで絶対値取得部605によって算出された値Aが大きいと判断された場合(A>β1)、パルス発生器607がパルスを変化頻度算出部608に出力する。
同時に、バッファ最新値レジスタ601とレジスタ603に接続されているデータコピー処理部602は、比較器606が出力する正の論理値を受け取ると、バッファ最新値レジスタ601からレジスタ603にデータをコピーする。
図6に、入力変化頻度算出部119と出力変化頻度算出部115とに共通して利用できる、変化頻度算出モジュール700の構成例を示す。
変化頻度算出モジュール700は、入力側が、変化トリガ算出部600(106,120)、実時間クロックモジュール114、仮想環境内クロックモジュール118と接続されており、出力側が入出力割合算出部116と接続されている。
変化頻度算出モジュール700は、入力側が、変化トリガ算出部600(106,120)、実時間クロックモジュール114、仮想環境内クロックモジュール118と接続されており、出力側が入出力割合算出部116と接続されている。
変化トリガ算出モジュール600からの入力はトリガ入力モジュール701で受信される。この瞬間の実時間クロックモジュール114と仮想環境内クロックモジュール118の出力値をそれぞれ、実時間タイムスタンプ現在値レジスタ702、仮想環境内タイムスタンプ現在値レジスタ706に保存する。
減算処理部704が、実時間タイムスタンプ現在値レジスタ702と実時間タイムスタンプ貯蓄値レジスタ703を入力とし、この減算処理部704における処理結果が実時間変化頻度レジスタ705に保存される。
また、減算処理部708が、仮想環境内タイムスタンプ現在値レジスタ706と仮想環境内タイムスタンプ貯蓄値レジスタ707を入力とし、この減算処理部708における処理結果が仮想環境内変化頻度レジスタ709に保存される。
上記の2つの減算処理部704、708の処理の後、実時間タイムスタンプ現在値レジスタ702、仮想環境内タイムスタンプ現在値レジスタ706の値がそれぞれ実時間タイムスタンプ貯蓄値レジスタ703と、仮想環境内タイムスタンプ貯蓄値レジスタ707に保存される。実時間変化頻度レジスタ705と、仮想環境内変化頻度レジスタ709に保存された変化頻度(R)は、セットとなって入出力割合算出部116に出力される。
図7は、入出力割合算出部116の構成例を示すものである。
入出力割合算出部116は、出力変化頻度算出部115からの変数変化頻度情報(N2)と入力変化頻度算出部119からの変数変化頻度情報(N1)を入力とする。また、入出力割合算出部116は、プロセス間通信IF部104と接続されており、出力変化割合しきい値レジスタ805の値β3、入力変化割合しきい値レジスタ804の値β2、出力変化割合レジスタ808の値αを更新可能である。
入出力割合算出部116は、出力変化頻度算出部115からの変数変化頻度情報(N2)と入力変化頻度算出部119からの変数変化頻度情報(N1)を入力とする。また、入出力割合算出部116は、プロセス間通信IF部104と接続されており、出力変化割合しきい値レジスタ805の値β3、入力変化割合しきい値レジスタ804の値β2、出力変化割合レジスタ808の値αを更新可能である。
入力変化頻度算出部119の割合出力値(N1=A1)は、まず入力変化頻度レジスタ801に、出力変化頻度算出部115の割合出力値(N2=A2)はまず出力変化頻度レジスタ800に保存される。除算処理部806には、出力変化頻度レジスタ800の値と入力変化頻度レジスタ801が接続されており、この除算処理部806の出力値(A2/A1)と出力変化割合レジスタ808の値αが比較演算処理807に入力される。また、入力変化頻度レジスタ801の値A1と入力変化割合しきい値レジスタ804の値β2を入力する比較処理部803があり、この比較処理部803の出力と比較処理部807の出力の論理和809の出力が入力開口部117に入力される。
また、出力変化頻度レジスタ800の値A2と入力変化割合しきい値レジスタ805の値β3を入力する比較処理部802があり、この比較処理部802の出力と比較処理部807の出力の論理和809が出力開口部105に入力される。
図8(図8A、図8B)は、第1の実施例の協調シミュレーション用計算機システムの、全体的な動作フローを示す図である。
まず、ユーザによりシミュレータの初期化が実行され、かつ、必要なパラメータの設定がなされる。すると、協調シミュレーション環境に含まれるシミュレーションモデルや、それらを接続するシミュレーションインターフェイスの初期化と並行して、動的速度調整ブロック100の初期化が行われる(S400)。その中で、プロセス間通信IF部104のソケット通信の初期化が実行され、速度調整スクリプト107がプロセス間通信IF部104と接続される(S401)。
まず、ユーザによりシミュレータの初期化が実行され、かつ、必要なパラメータの設定がなされる。すると、協調シミュレーション環境に含まれるシミュレーションモデルや、それらを接続するシミュレーションインターフェイスの初期化と並行して、動的速度調整ブロック100の初期化が行われる(S400)。その中で、プロセス間通信IF部104のソケット通信の初期化が実行され、速度調整スクリプト107がプロセス間通信IF部104と接続される(S401)。
すると、速度調整スクリプト107から送られる初期化データに基づいて、入出力割合算出部116の入出力トリガ間隔比率しきい値αの初期設定(S402)、出力/入力変化トリガ算出部の入力値しきい値β1の初期設定(S403)、入出力割合算出部の入力フィルタしきい値β2、出力フィルタしきい値β3の初期設定(S404)が実行される。これらの初期化処理後も、プロセス間通信IF部と速度調整スクリプト間の通信ソケットは有効化されたままにとなっていて、定期的に通信パケットを送り続ける。
全てのシミュレーションモデル及び動的速度調整ブロック100の初期化が完了すると、シミュレーションが開始されるステップ(S405)。このとき、動的速度調整ブロック100に対し、接続されたシミュレーションモデル110から入力データが入ってきて、そのまま入力バッファ112、入力開口部117、出力開口部105、出力バッファ102を通り、データが対象シミュレーションモデル110を通過するようになる(S406)。
シミュレーションの実行と並行し、S401で確立した速度調整スクリプト107とプロセス間通信IF部104間のソケット通信を用いて、速度調整スクリプトとプロセス間通信IF部間は、シミュレータ自体の動作に影響を与えない、非同期な通信パケットの交換を行なっている。
プロセス間通信IF部104が受信待ち状態になると(S419)、速度調整スクリプト107がプロセス間通信IF部に対して通信パケットを送る(S420)。前述の通信パケットにより、動的速度調整ブロック100の動作パラメータを設定することが可能であり、通信パケット上の該当するフィールドに有効な値が設定されていた場合、動的速度調整ブロック100内の対象とする動作パラメータが更新される。
そこでは、入出力割合算出部116の入出力トリガ間隔比率しきい値αの更新(S421)、出力/入力変化トリガ算出部の入力値しきい値β1の更新(S424)、入出力割合算出部の入力フィルタしきい値β2、出力フィルタしきい値β3の更新(S423)が実行される。
通信が終了すると再度、プロセス間通信IF部は通信待ち状態に入り、動的速度調整ブロックは更新された動作パラメータを用いて、モデルへのデータ入力制御を行う。このようにして、シミュレーション動作中であってもシミュレーション速度と精度の調整が可能となっている。
前記対象シミュレーションモデル110へのデータの入出力(S406)と並行し、入力変化トリガ算出部120と出力変化トリガ算出部106が、入出力ポートの値の変化トリガを算出する(S407)。すなわち、バッファ最新値レジスタ601に保存された最新値とレジスタ603に保存されている前回トリガが成立した時の前回値とを入力とする減算処理を行い、更にこの減算結果の絶対値|A|を取得する。さらに、この取得された絶対値と、入力値しきい値レジスタ609に保存されている値(β1)とを比較処理し、ここで絶対値取得処理部605によって算出された値がしきい値よりも大きいと判断された場合(A>β1)、パルス発生器607がパルスを変化頻度算出部608に出力する(S425)。または、S419からS422のパラメータ更新ステップによって更新される入力値しきい値β1を用い、前にトリガが成立した際の前回値との差異の絶対値|A|が前述のしきい値β1を超えた時に、トリガが成立したとして入力変化頻度算出部、出力変化頻度算出部にトリガを送信する。また同時に、トリガ成立時の入出力の値を、次のトリガ評価に使用するためにレジスタに保存する。
変化頻度算出モジュール700では、トリガを受信したタイムスタンプを取得して保存するレジスタがあり、直前にトリガを受信したタイムスタンプとの間隔を計算することが可能である。トリガのタイムスタンプは、シミュレートされた時間、シミュレーション実行時間の双方で計算され、両方共、変化頻度算出部で保存される。計算された両タイムスタンプの間隔は入出力割合算出部へと送られる(S408)。
入出力割合算出部116へ送られた入力タイムスタンプ間隔と出力タイムスタンプ間隔は、除算されトリガ間隔比率(N2/N1)として保存される(S409)。トリガ間隔比率(N2/N1)は、予め与えられた、またはS419からS422のパラメータ更新ステップによって更新される入出力トリガ間隔比率の閾値αと比較される。
そして、シミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらかが入出力トリガ間隔比率閾値αを上回ったか評価する(S410)。
S410でシミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらかが入出力トリガ間隔比率閾値αを上回った場合、この時、動的速度調整ブロック100は入力データの更新頻度が過剰であると判断される(S412)。
または、S408で算出した入力変化頻度N1が、予め与えられた、またはS419からS422のパラメータ更新ステップによって更新される、入力フィルタ閾値β2よりも大きかった(N1>β2)場合(S411)、この時動的速度調整ブロックは入力データの更新頻度が過剰であると判断する(S412)。
S412で動的速度調整ブロックが入力データの更新頻度(N1)が過剰であると判断された場合、動的速度調整ブロック100は入力開口部117のデータ転送設定を無効化する(S413)。これにより、対象シミュレーションモデルへ110のデータ入力が遮断され(S414)、結果として対象シミュレーションモデル110の実行負荷が低下する(S415)。
同様に、ステップ412で、入力変化頻度N2が、予め与えられた、またはパラメータ更新ステップによって更新される、入力フィルタ閾値β3よりも大きかった(N2>β3)場合、出力データの更新頻度(N2)が過剰であると判断され、入力開口部117と並行して、出力開口部105のデータ転送設定も無効化される(S416)。これにより、対象シミュレーションモデルへ110の出力側(後段)に接続された低精度モデルへのデータ入力が遮断され(S417)、結果として出力側に接続された低精度モデルの実行負荷が低下する(S418)。
また、S410でシミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらも入出力トリガ間隔比率閾値αを上回らず、かつ、S408で算出した入力変化頻度(N1)が、予め与えられた、またはS419からS422のパラメータ更新ステップによって更新される、入力フィルタ閾値β2以下であった場合(N1≦β2)、この時、動的速度調整ブロック100は入力データの更新頻度(N1)が適正と判断される。すると、動的速度調整ブロック100は入力開口部117のデータ転送設定を有効化する(S433)。これにより、対象シミュレーションモデル110へのデータ入力が再開され(S434)、結果として対象シミュレーションモデルの実行負荷が上昇する(S435)。
同様に、ステップ412で、入力変化頻度N2が、予め与えられた、またはパラメータ更新ステップによって更新される、入力フィルタ閾値β3以下であった場合(N2≦β2)、出力データの更新頻度(N2)が適正と判断され、出力開口部105のデータ転送設定が有効化される(S436)。これにより、対象シミュレーションモデル110からのデータが発生するようになり(S437)、結果として対象シミュレーションモデルの後段に接続された低精度モデルの実行負荷が上昇する(S438)。
このような一連のステップにより、動的速度調整ブロック100は、協調シミュレーション環境にある、高精度モデルと低精度モデルの、動的な実行負荷すなわちシミュレーション速度と精度の調整を可能にする。
図9は、本発明の実施例を適用した場合のモデルの動作とその計算負荷の関係の一例を示す。横軸に、シミュレータの内部時間と、実時間すなわちシミュレーションの実行時間をとり、時系列変化を図示した。図9の上の段は、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データA(910(1)〜910(n))、データB(912(1)〜912(n))を動的速度調整ブロック100が制御し、対象シミュレーションモデルの出力(=後段の低精度モデルの入力)A’,A’,(911(1)〜911(2)),B’,B’(913(1)〜913(2))が調整されている例である。918は、入力信号の遮断によって、高精度モデルに入力されなくなった低精度モデルの出力である。
図9の下の段は、上の段と同じ制御について、横軸を実時間で示したものであり、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データA(914(1)〜914(n))、データB(916(1)〜916(n))を動的速度調整ブロック100が制御し、対象シミュレーションモデルの出力(=後段の低精度モデルの入力)A’,A’,(915(1)〜915(2)),B’,B’(917(1)〜917(2))が調整されている。919は、入力信号の遮断によって削減された高精度モデルの計算負荷である。
動的速度調整ブロック100は、対象モデルの入力、出力の変化頻度に基づいて高精度モデルへの入力データをA,Bの一部を遮断する(918、919)ことができる。この制御によって、低精度シミュレーションモデルの入力が遮断され(918、919)、高精度モデルで内部状態の更新が停止することになる。
すなわち、高精度モデルの入力が遮断され(918、919)、その結果、内部状態の停止していた間隔(918、919)の分、高精度モデルの計算処理が削減される事になる。
図10は、本発明の実施例を適用した場合のモデルの動作とその計算負荷の関係の他の例を示す。図9の例に比較して、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データ918、計算負荷919が、さらに絞られている。その結果、高精度モデルの計算処理がより多く削減される事になる。
次に、図11は、本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の他の例を示す図である。928は、入力信号の遮断によって、高精度モデルか低精度モデルに入力されなくなった出力である。高精度シミュレーションモデルから低精度シミュレーションモデルの出入力データ(920〜927)を動的速度調整ブロック100が制御し、この制御によって、後段の低精度シミュレーションモデルの入力が遮断され(929)、低精度シミュレーションで内部状態の更新が停止することになる。これにより、後段の低精度シミュレーションモデルの計算処理がより減される事になる。
図12は、比較例として、本発明適用前の協調シミュレーション環境での、データの流れと処理負荷の一例を示す図である。低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データA(900(1)〜900(n))、データB(902(1)〜902(n))の全てが対象シミュレーションモデルに入力され、その出力(=後段の低精度モデルの入力)A’,A,(901(1)〜911(n)),B’,B(903(1)〜903(n))が出力されている例である。後段の低精度モデルが受信しきらないデータを高精度モデルが算出することになり、計算負荷に無駄が生じている。
高精度モデルAは一般的に低精度モデルBよりも高い頻度で出力信号を更新する。この時のシミュレーションの実行にかかる時間を下段にプロットしてある。モデルBの出力とモデルAの入力には依存関係があるため、両モデルの実行は同時に行うことが不可能であって、図示したようなタイミングチャートになる。このとき出力が変化していない高精度モデルAの計算処理、すなわち処理901(2)から901(n)、905(2)から905(n)の間等の計算処理は、次段のモデルの状態計算には用いられないため、無駄な計算処理とみなすことができる。
本発明によれば、動的速度調整ブロックが対象モデルの入力、出力の変化頻度に基づいて高精度モデルへの入力データや出力データの一部を遮断したり、再開したりすることで、図9〜図11で述べたように、協調シミュレーション環境にあるシミュレーションモデルの負荷を適切に制御するので、無駄な計算処理を削減できる。しかも、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。また、協調シミュレーション環境の外部から、速度調整スクリプトにより、調整パラメータを変更させることにより、シミュレーション中に動的にその精度を変更させることが可能である。
より具体的に述べると、先に述べた図2Bのモータ制御をするための協調シミュレーション環境のモデル構成例において、低精度のモータモデル202やコントローラモデル200の動作周期は数ミリ秒周期であるのに対し、高精度モデルであるインバータモデル110の動作周期は数10マイクロ秒に達することがある。そのため、インバータモデルの計算負荷が高いことが問題となっている。これに対し、コントローラモデル側からインバータモデル110への入力値を抑えることによって、インバータモデルの模擬動作を軽減することで、計算負荷を減らすことが可能となる。
また、先に述べた図2Cの自動車全体システムのシミュレーション環境のモデル例では、マイコンに搭載されるCPUの内部動作まで模擬していた場合、高精度モデルであるマイコンモデル110は動作周期が数ナノ秒周期と、非常に高精度であり高頻度に状態を更新する事となる。これに対してそれ以外の低精度のモデルであるセンサモデル、アクチュエータモデルは数ミリ秒の動作周期と、その動作周期に大きな差がある。そためにマイコンモデル110の計算負荷の無駄が問題となる。この場合も、センサモデルからマイコンモデルへの入力、さらには、マイコンモデルからアクチュエータモデルへの出力を抑えることによって、インバータモデルの模擬動作を軽減することで、計算負荷を減らすことが可能となる。
実施例1で述べた動的速度調整ブロック100は、入力開口部117と出力開口部105の双方を備えているが、何れか一方のみを採用しても良い。すなわち、対象となるシミュレーションモデルに対する入力データのみを動的に遮断・開通する方式、あるいは、シミュレーションモデルに対する出力データのみを動的に遮断・開通する方式としても良い。
また、本発明を適用するのに適した協調シミュレーション環境の例としては、例えば、複数の高精度モデルが共通の低精度モデル(センサモデルや通信モデル)から入力を受けるタイプ、高精度モデルが低精度モデルに出力するタイプ、低精度と高精度モデルが双方向に入出力を行うタイプ、高精度モデルから入力を受けた低精度モデルの出力を他の高精度モデルに入力するタイプ等、種々のタイプが考えられる。
100:動的速度調整ブロック
101:元モデル出力I/O部
102:出力バッファ
103:モデル出力I/O部
104:プロセス間通信IF部
105:出力開口部
106:出力変化トリガ算出部
107:速度調整スクリプト
108:出力ポート
109:入力ポート
110:対象となるシミュレーションモデル
111:モデル入力I/O部
112:入力バッファ
113:元モデル入力I/O部
114:実時間クロックモジュール
115:出力変化頻度算出部
116:入出力割合算出部
117:入力開口部
118:仮想環境内クロック
119:入力変化頻度算出部
120:入力変化トリガ算出部
122:動的バッファ制御部
900,902:比較例の低制度モデルBの出力動作
901,903:比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作
904,906:比較例の低制度モデルBの出力動作に関わる計算負荷
905,907:比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作に関わる計算負荷
918:実施例1において、入力信号の遮断によって、高精度モデルに入力されなくなった低精度モデルBの出力
919:実施例1において、入力信号の遮断によって削減された高精度モデルAの計算負荷。
101:元モデル出力I/O部
102:出力バッファ
103:モデル出力I/O部
104:プロセス間通信IF部
105:出力開口部
106:出力変化トリガ算出部
107:速度調整スクリプト
108:出力ポート
109:入力ポート
110:対象となるシミュレーションモデル
111:モデル入力I/O部
112:入力バッファ
113:元モデル入力I/O部
114:実時間クロックモジュール
115:出力変化頻度算出部
116:入出力割合算出部
117:入力開口部
118:仮想環境内クロック
119:入力変化頻度算出部
120:入力変化トリガ算出部
122:動的バッファ制御部
900,902:比較例の低制度モデルBの出力動作
901,903:比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作
904,906:比較例の低制度モデルBの出力動作に関わる計算負荷
905,907:比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作に関わる計算負荷
918:実施例1において、入力信号の遮断によって、高精度モデルに入力されなくなった低精度モデルBの出力
919:実施例1において、入力信号の遮断によって削減された高精度モデルAの計算負荷。
Claims (15)
- 複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、
前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、
検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
該動的速度調整ユニットは、
前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項1において、
前記入力バッファは、前記検証対象のシミュレータの入力ポートの値を一時的に貯蔵する機能を有し、
前記出力バッファは、前記検証対象のシミュレータの出力ポートの値を一時的に貯蔵する機能を有し、
前記動的速度調整ユニットは、
前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項2において、
前記精度及び速度の異なる複数のシミュレータは、前記検証対象であって高頻度に内部状態を更新する高精度モデルのシミュレータと、前記検証対象シミュレータの模擬動作に関わり、低頻度に内部状態を更新する低精度モデルのシミュレータとを含んでおり、
前記動的速度調整ユニットは、前記検証対象となるシミュレータに対する入出力データの更新頻度を調整する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項3において、
前記動的速度調整ユニットに対してユーザインタフェース機能を有する表示部を備え、前記協調シミュレーション環境、及び、前記シミュレーション実行時の各モデルの入出力値や動作状態の情報が表示される
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項3において、
前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部を備えており、
前記入力値変化頻度が所定の閾値を超えている場合には、前記入力開口部のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項3において、
前記動的速度調整ユニットは、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口部を備えており、
前記出力値変化頻度が所定の閾値を超えている場合には、前記出力開口部のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項3において、
前記動的速度調整ユニットは、変化トリガ算出部を備えており、
該変化トリガ算出部は、前記対象シミュレーションモデルへ入出力ポートの入力値若しくは出力値の変化トリガを算出し、入力/出力の最新値と前回値との差の絶対値と、予め与えられたしきい値β1とを比較処理し、前記絶対値が前記しきい値よりも大きいとき、パルス発生器からパルスを出力する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項7において、
前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口、及び、変化頻度算出部を備えており、
該変化頻度算出部は、前記パルス発生器からのパルスによって起動され、
入力/出力変化トリガの間隔が所定の比率しきい値αを超えた時に、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項8において、
前記動的速度調整ユニットは、入力/出力割合算出部を備えており、入力変化頻度N1が、予め与えられた閾値β2よりも大きかった場合、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
ことを特徴とする協調シミュレーション用計算機システム。 - 請求項3において、
前記動的速度調整ユニットは、
検証対象の入出力ポートの値の変化の頻度に基づいて、前記入/出力バッファからのデータの削除を行うか、前記検証対象となるシミュレータへのデータ供給を行うかを制御する機能を持っており、該機能により、動的に対象となるシミュレータに対する前記入力データの供給速度を調整することによって、前記対象となるシミュレータの模擬動作に関わる計算処理を削減することを特徴とする協調シミュレーション用計算機システム。 - メカニズム、ハードウェア、及びソフトウェアを模擬した組込みシステムの検証システムであって、
前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作する協調シミュレーション用計算機システムを構成するものにおいて、
検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
該動的速度調整ユニットは、
前記検証対象のシミュレータへのデータ供給を行うかの判断基準として、
前記シミュレータの実行時間あたりの変数変化頻度が一定値を超えた時、前記検証対象のシミュレータによって模擬されている時間あたりの変数変化頻度が一定値を超えた時、入出力の変数変化頻度の割合が一定値を超えた時、のいずれかが成立した場合を判定し、
前記判断基準が成立した場合、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を動的に制御して前記協調動作する複数のシミュレータの動作速度を調整する
ことを特徴とする組込みシステムの検証システム。 - 請求項11において、
前記動的速度調整ユニットは、
前記協調して動作する複数のシミュレータの外部に存在する速度調整スプリクトと通信する機能と、
前記検証対象のシミュレータへのデータ供給を行うかの判断基準を、前記速度調整スプリクトとの通信結果に基づいて変更する機能とを有し、
前記検証対象のシミュレータの動作精度・速度を、該検証対象のシミュレータの動作中に変更可能である
ことを特徴とする組込みシステムの検証システム。 - 請求項11において、
前記精度及び速度の異なる複数のシミュレータは、センサやアクチュエータを模擬する低精度のモデルと、前記センサの入力を処理し前記アクチュエータに制御内容を伝達するマイコンを模擬する高精度のモデルによって構成されており、
前記動的速度調整ユニットは、前記判断基準が成立した場合に、前記高精度のモデルに対する入出力データの更新頻度を調整する
ことを特徴とする組込みシステムの検証システム。 - 協調シミュレーション用計算機システムを用いた組込みシステムの検証方法であって、
前記組込みシステムは、メカニズム、ハードウェア、及びソフトウェアで構成され、
前記協調シミュレーション用計算機システムは、前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作するものにおいて、
検証対象の入出力ポートの値を一時的にバッファに貯蔵し、
前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
ことを特徴とする組込みシステムの検証方法。 - 請求項14において、
前記協調シミュレーション用計算機システムは、ユーザインタフェース機能を有する表示部を備え、
前記表示部に、前記協調シミュレーション環境、及び、前記シミュレーション実行時の各モデルの入出力値や動作状態の情報を表示する
ことを特徴とする組込みシステムの検証方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/072676 WO2014038030A1 (ja) | 2012-09-06 | 2012-09-06 | 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5926807B2 JP5926807B2 (ja) | 2016-05-25 |
JPWO2014038030A1 true JPWO2014038030A1 (ja) | 2016-08-08 |
Family
ID=50236681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014534096A Expired - Fee Related JP5926807B2 (ja) | 2012-09-06 | 2012-09-06 | 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5926807B2 (ja) |
WO (1) | WO2014038030A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6496278B2 (ja) * | 2016-06-27 | 2019-04-03 | ファナック株式会社 | シミュレーションシステム |
CN107728491B (zh) * | 2017-09-27 | 2020-09-29 | 重庆邮电大学 | 一种v2x车联网在环仿真系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1074184A (ja) * | 1996-08-30 | 1998-03-17 | Fujitsu Ltd | 分散型コンピュータシステムにおける最適負荷制御方法 |
US20060117274A1 (en) * | 1998-08-31 | 2006-06-01 | Tseng Ping-Sheng | Behavior processor system and method |
IL160392A0 (en) * | 2001-08-14 | 2004-07-25 | Axis Systems Inc | Vcd-on-demand system and method |
JP4470582B2 (ja) * | 2004-05-19 | 2010-06-02 | 日本電気株式会社 | ハードウェア/ソフトウェア協調シミュレーション方式及びその方法 |
JP2006331269A (ja) * | 2005-05-30 | 2006-12-07 | Nec Corp | ハードウェア/ソフトウェア協調シミュレーション装置及び方法 |
JP2008065640A (ja) * | 2006-09-07 | 2008-03-21 | Toshiba Corp | シミュレーション装置およびそのシミュレーション制御方法 |
JP2009223762A (ja) * | 2008-03-18 | 2009-10-01 | Toshiba Corp | 協調検証装置 |
JP5219639B2 (ja) * | 2008-06-06 | 2013-06-26 | 三菱電機株式会社 | 統合シミュレーション装置 |
JP5247395B2 (ja) * | 2008-12-04 | 2013-07-24 | 三菱電機株式会社 | 演算手段、統合シミュレーションシステムおよび同期制御方法 |
JP2011039781A (ja) * | 2009-08-11 | 2011-02-24 | Fujitsu Semiconductor Ltd | 協調シミュレーション装置及びシミュレーション方法 |
-
2012
- 2012-09-06 WO PCT/JP2012/072676 patent/WO2014038030A1/ja active Application Filing
- 2012-09-06 JP JP2014534096A patent/JP5926807B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5926807B2 (ja) | 2016-05-25 |
WO2014038030A1 (ja) | 2014-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5395397B2 (ja) | シミュレーションシステム | |
Zhang et al. | A co-simulation framework for design of time-triggered automotive cyber physical systems | |
CN102124448B (zh) | 控制嵌入式系统开发期间的实时性 | |
US20210081585A1 (en) | Method for event-based simulation of a system | |
EP1530137A1 (en) | Simulation system and computer-implemented method for simulation and verifying a control system | |
JP2008090489A (ja) | シミュレーションシステム | |
JP2008084121A (ja) | シミュレーションシステム及びシミュレーション方法 | |
CN103874984A (zh) | 可虚拟化以及前向兼容硬件-软件接口 | |
KR20130091096A (ko) | 하이브리드 시스템을 검증하기 위한 시뮬레이션 장치 및 방법 | |
Sakairi et al. | Model based control system design using sysML, simulink, and computer algebra system | |
CN103069462A (zh) | 用于控制设备的方法和装置 | |
JP6802208B2 (ja) | 熱変位補正システム及び計算機 | |
JP5926807B2 (ja) | 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 | |
JP2012093899A (ja) | 計算機システム、シミュレーション方法、及びプログラム | |
JP2013137658A (ja) | 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム | |
JP2010033130A (ja) | シミュレーション方法、システム及びプログラム | |
JP2012104081A (ja) | 分離型リアルタイム車両運動シミュレーション・システム | |
US7477250B2 (en) | Method and system for hapto-visual scene development and deployment | |
US20220004159A1 (en) | Method and a system for synchronizing a first and a second simulation system | |
Barthels et al. | A model for sequence based power management in cyber physical systems | |
JP2023545901A (ja) | 人工知能用演算ユニットを用いた技術システムの制御 | |
Ishikawa et al. | CPU model-based hardware/software co-design for real-time embedded control systems | |
KR20160065641A (ko) | Hsil 기반 가상 엔진 검증 장치 및 방법 | |
JP2010086207A (ja) | シミュレーション方法、システム及びプログラム | |
Oral | An effective modeling architecture for mil, hil and vdil testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160422 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5926807 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |