JP5651251B2 - シミュレーション実行方法、プログラム及びシステム - Google Patents

シミュレーション実行方法、プログラム及びシステム Download PDF

Info

Publication number
JP5651251B2
JP5651251B2 JP2013548155A JP2013548155A JP5651251B2 JP 5651251 B2 JP5651251 B2 JP 5651251B2 JP 2013548155 A JP2013548155 A JP 2013548155A JP 2013548155 A JP2013548155 A JP 2013548155A JP 5651251 B2 JP5651251 B2 JP 5651251B2
Authority
JP
Japan
Prior art keywords
time lag
logical
simulation system
logical process
processes
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.)
Active
Application number
JP2013548155A
Other languages
English (en)
Other versions
JPWO2013084654A1 (ja
Inventor
正名 村瀬
正名 村瀬
綱 張
綱 張
周一 清水
周一 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2013548155A priority Critical patent/JP5651251B2/ja
Application granted granted Critical
Publication of JP5651251B2 publication Critical patent/JP5651251B2/ja
Publication of JPWO2013084654A1 publication Critical patent/JPWO2013084654A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Description

この発明は、自動車の制御システムなどのシミュレーションを実行する技法に関するものである。
近年、科学技術計算、シミュレーションなどの分野で、複数のプロセッサをもつ、いわゆるマルチプロセッサ・システムが使用されている。一方、最近になって特に盛んに開発されるようになってきたシミュレーションの分野として、ロボット、自動車、飛行機などのメトカトロニクスのプラントのシミュレーション用ソフトウェアがある。電子部品とソフトウェア技術の発展の恩恵により、ロボット、自動車、飛行機などでは、神経のように張り巡らされたワイヤ結線や無線LANなどを利用して、大部分の制御が電子的に行われる。
それらは、本来的にはメカトロニクスの装置であるが、大量の制御ソフトウェアをも内蔵している。そのため、製品の開発に当たっては、制御プログラムの開発とそのテストに、長い時間と、膨大な費用と、多数の人員を費やす必要が出てきた。
このようなテストにために従来行われている技法として、HILS(Hardware In the Loop Simulation)がある。特に、自動車全体の電子制御ユニット(ECU)をテストする環境は、フルビークルHILSと呼ばれる。フルビークルHILSにおいては、実験室内で、本物のECUが、エンジン、トランスミッション機構などをエミュレーションする専用のハードウェア装置に接続され、所定のシナリオに従って、テストが行われる。ECUからの出力は、監視用のコンピュータに入力され、さらにはディスプレイに表示されて、テスト担当者がディスプレイを眺めながら、異常動作がないかどうか、チェックする。
しかし、HILSは、専用のハードウェア装置を使い、それと本物のECUの間を物理的に配線しなくてはならないので、準備が大変である。また、別のECUに取り替えてのテストも、物理的に接続し直さなくてはならないので、手間がかかる。さらに、本物のECUを用いたテストであるため、テストに実時間を要する。従って、多くのシナリオをテストすると、膨大な時間がかかる。また、HILSのエミュレーション用のハードウェア装置は、一般に、非常に高価である。
そこで近年、高価なエミュレーション用ハードウェア装置を使うことなく、シミュレーション全体をソフトウェアで構成する手法が提案されている。その手法においては、エンジンやトランスミッションなどのプラント部分には連続系シミュレーション(continuous simulation)を利用し、また、コントローラ部分にはステート・チャート(state chart)あるいは実際のソフトウエアコードを利用する。コントローラ部分のシミュレーション方法に応じて、前者は MIL (Model-in-the-Loop) シミュレーション、後者は SIL (Software-in-the-Loop) シミュレーションと呼ばれる。MILやSILによればECUのハードウェアが存在しなくても、テストを実行可能である。
このようなMIL/SILの構築を支援するシステムとして例えば、MathWorks社から入手可能なシミュレーション・モデリング・システムである、MATLAB(R)/Simulink(R)がある。MATLAB(R)/Simulink(R)を使用すると、画面上にグラフィカル・インターフェースによって、機能ブロックを配置し、その処理の流れを指定することによって、シミュレーション・プログラムを作成することができる。ここで、機能ブロックは、和や積などの基本演算や積分や条件分岐、さらには、ソフトウエア・コードを呼び出すブロックなどの種類があり、それぞれが入力あるいは・および出力を持つ。なお、コントローラの表現としてソフトウエア・ブロックを含むシミュレーションがSILである。
以下では、このようなシミュレーションの単位を相互に連成させるとき、各シミュレータを論理プロセス(logical process)と呼ぶことにする。複数の論理プロセスからなる連成シミュレーション・システムの動作方式として、並列離散イベント・シミュレーション方式が知られている。例えば、Alois Ferscha, Satish K. Tripathi, "Parallel and Distributed Simulation of Discrete Event Systems", the University of Maryland Computer Science Department; CS-TR-3336, 15-Oct-1998は、複数の論理プロセスを用いた、並列離散イベント・シミュレーション方式を開示する。この論文によれば、このようなシステムにおいて、タイミングの一貫性の崩れを回避し、論理プロセスに跨るイベントの因果律を保持することを保証するためには、各論理プロセスにおいて局所的に因果律を守ればよいことが示されている。システム全体にわたる同期処理は必要ではないので、同期のオーバーヘッドがかからない。
図1は、複数の論理プロセスからなる自動車のシミュレーション・システムの構成の一部を示すブロック図である。図1のシステムは、CANエミュレータ102と、ECUエミュレータ104と、エンジン・シミュレータ106と、ECUエミュレータ108と、トランスミッション・シミュレータ110を有し、その各々が、ソフトウェアで構成された論理プロセスである。図1において、論理プロセスは、メッセージをやりとりすることでイベントを通知しながら相互に連携して動作する。
イベントには時刻情報が付加されており、それは受信側の論理プロセスが処理を行うシミュレーション時刻を指す。イベントの時刻情報には、送信側の論理プロセスのシミュレーション時刻よりも古い時刻を設定することは許されない。なぜなら、過去の時刻の処理を依頼することはできないからである。ネットワークで相互に接続される部品なら、その間には伝達の遅延が生じるので、必ず送信時刻よりも受信時刻のほうが大きくなる。また、タイマー機能などを用いて処理を実行するケースでは、タイマーにセットする時刻(送信)とアラームを発生する時刻(受信)との間に時刻の差を設けることができる。あるいは、受信側がある程度の遅延を許容するなら、その許容範囲を時刻差とすることができる。
AとBという2つの論理プロセスの間のイベント通信について、送信と受信の時刻差をタイムラグ(時間ずれ)として分類して模式的に示すと、図2のとおりである。
図2(1)は、タイムラグなしなので、AとBを並列実行できない強連成の構成である。このケースでは、異なる論理プロセスに分けることはできず、単一のシミュレータとして計算する必要がある。もし、いくらかの誤差を許容することにして、わずかの時間ずつ並行して動作させるなら弱連成のシミュレーションとなる。
図2(2)は、AからBへのタイムラグLABも、BからAへのタイムラグLBAも、どちらでもゼロでない場合は、その最大公約数の時間ステップで同期処理を行うことにより、並列動作でも時間誤差を生じない連成シミュレーションができる。
図2(3)は、AからBへのタイムラグLABはゼロでないが、BからAへのタイムラグLBAが実質ゼロである場合で、この場合は、BからAの向きにはいつデータ更新があるかわからないので、Bからイベントが通知されるまで、Aは1ステップも先に進むことができない。よって交互にシーケンシャル実行するよりなく、実行速度は低くなる。
図2(3)のような場合は、例えば、論理プロセスAがECUエミュレータで、論理プロセスBがプラント・シミュレータであるような場合である。その他に、ECUエミュレータ同士でも、プラント・シミュレータ同士でも、データの送信は即時に行われるのに、データの受信は通信の遅延が生じるという意味で、図2(3)のような場合が生じえる。また、厳密にゼロでなくても非常に小さなタイムラグなら、同様の問題が生じる。
図2(3)の場合は、論理プロセスを用いた並列離散イベント・シミュレーション方式においてかなり頻繁に現れるので、図2(3)のような場合に並列実行を可能ならしめる方式が要望される。
なお、互いの論理プロセスがイベントを待ちあってデッドロックを引き起こすことを防止するために、nullメッセージを用いる技法が知られている。しかし、タイムラグがゼロの場合には、nullメッセージに未来の時刻がつかないので、デッドロックは起きないが、並列実行させることができない。
また、Vikas Jha, Rajive Bagrodia, "Simultaneous events and lookahead in simulation protocols", Journal ACM Transactions on Modeling and Computer Simulation, Volume 10 Issue 3, July 2000は、このような課題に対して、ε-lookahead実行と呼ばれる技法を提供することにより、1つの解決策を与える。すなわち、ε-lookahead実行は、限りなく0に近いε時間のタイムラグがあるとみなし、図2(2)の方式で並列実行させる方式であるが、データの交換タイミングが不正確であるため誤差が蓄積されるとともに、精度を高めるためにはεを小さくする必要があるが、すると実行速度が低下するという、精度と実行速度のトレードオフがある。
Alois Ferscha, Satish K. Tripathi, "Parallel and Distributed Simulation of Discrete Event Systems", the University of Maryland Computer Science Department; CS-TR-3336, 15-Oct-1998 Vikas Jha, Rajive Bagrodia, "Simultaneous events and lookahead in simulation protocols", Journal ACM Transactions on Modeling and Computer Simulation, Volume 10 Issue 3, July 2000
この発明の目的は、論理プロセスを用いた並列離散イベント・シミュレーション方式において、データの更新タイミングの正確性を犠牲にすることなく、論理プロセスの並列実行の速度を向上する技法を提供することにある。
この発明は、上記課題を解決するためになされたものであって、出力側よりも入力側により長いタイムラグが生じる方の論理プロセスを、全体のシミュレーションを開始する前に、所定期間の初期シフトだけ実行させておくことを特徴とするものである。初期シフトは好適には、入力のタイムラグと出力のタイムラグの差の半分の値に設定される。
先行して開始した論理プロセス(論理プロセスBと呼ぶ)は、初期シフトの経過時点で、相手の論理プロセス(論理プロセスAと呼ぶ)に対してnullメッセージを送る。一方、論理プロセスAは、その実行開始時点でやはり論理プロセスBに対してnullメッセージを送る。それぞれのnullメッセージは、実時間では即時に、相手の論理プロセスに到着し、それぞれの論理プロセスは、nullメッセージを受け取った時点で更に相手の論理プロセスにnullメッセージを送る。こうして、nullメッセージにより同期をとることによってシミュレーションが進行する。
シミュレーション・システムは一般的に多数の論理プロセスを含み、すると、一対の論理プロセスの間でだけ初期シフトを決定するだけでは十分ではなく、互いに通信する全ての論理プロセスの対について相対的な初期シフトを矛盾なく決定する必要がある。このため、本発明に従うシステムは、論理プロセスの対の2項関係に基づき立てられた初期シフトの差の式の連立方程式を解く。そして、この計算の結果得られた初期シフトの値が各論理プロセスにセットされる。
このとき、連立方程式の変数の数よりも式の数が多くなるなどの理由で、連立方程式が解けなくなることがある。その場合、論理プロセス間の所定のプリファレンスなどの前提条件を用いて式を減らすなどの手段をとることにより、解を得る。
この発明によれば、並列離散イベント・シミュレーション方式において、データの更新タイミングの正確性を犠牲にすることなく、論理プロセスの並列実行の速度を向上する技法が提供される。
複数の論理プロセスからなるシミュレーション・システムのブロック図を示す図である。 論理プロセスの間の通信のタイムラグのパターンを示す図である。 ハードウェア構成のブロック図である。 機能構成のブロック図である。 複数の論理プロセスからなるシミュレーション・システムにおいて、論理プロセスの間のタイムラグを示す図である。 シフト量計算モジュールの処理のフローチャートを示す図である。 初期ローカル・スケジューラの処理のフローチャートを示す図である。 初期シフトなしの場合の論理プロセスの動作を示す図である。 初期シフトありの場合の論理プロセスの動作を示す図である。 初期シフトなしの場合の論理プロセスの動作を示す図である。 初期シフトありの場合の論理プロセスの動作を示す図である。 イベント・メッセージとnullメッセージの関係を示す図である。 3個の論理プロセスについての、初期シフトなしと、初期シフトありの場合の動作の比較を示す図である。 3個の論理プロセスについての、初期シフトなしと、初期シフトありの場合の動作の比較を示す図である。 初期シフトの様々な場合の動作の比較を示す図である。 初期シフトの様々な場合の動作の比較を示す図である。
以下、図面を参照して、本発明の一実施例の構成及び処理を説明する。以下の記述では、特に断わらない限り、図面に亘って、同一の要素は同一の符号で参照されるものとする。なお、ここで説明する構成と処理は、一実施例として説明するものであり、本発明の技術的範囲をこの実施例に限定して解釈する意図はないことを理解されたい。
先ず、図3を参照して、本発明を実施するために使用されるコンピュータのハードウェアについて説明する。図3において、ホスト・バス302には、複数のCPU1 304a、CPU2 304b、CPU3 304c、・・・CPUn 304nが接続されている。ホスト・バス302にはさらに、CPU1 304a、CPU2 304b、CPU3 304c、・・・CPUn 304nの演算処理のためのメイン・メモリ306が接続されている。
一方、I/Oバス308には、キーボード310、マウス312、ディスプレイ314及びハードティスク・ドライブ316が接続されている。I/Oバス308は、I/Oブリッジ318を介して、ホスト・バス302に接続されている。キーボード310及びマウス312は、オペレータが、コマンドを打ち込んだり、メニューをクリックするなどして、操作するために使用される。ディスプレイ314は、必要に応じて、本発明に係るプログラムをGUIで操作するためのメニューを表示するために使用される。
この目的のために使用される好適なコンピュータ・システムのハードウェアとして、IBM(R)System Xがある。その際、CPU1 304a、CPU2 304b、CPU3 304c、・・・CPUn 304nは、例えば、インテル(R)Xeon(R)であり、オペレーティング・システムは、Windows(商標)Server 2003である。オペレーティング・システムは、ハードティスク・ドライブ316に格納され、コンピュータ・システムの起動時に、ハードティスク・ドライブ316からメイン・メモリ306に読み込まれる。
本発明を実施するために、マルチプロセッサ・システムを用いることは必要ではないが、複数の論理プロセスを異なるプロセッサに割り当てて並列実行させるためには、マルチプロセッサ・システムを用いることが望ましい。ここでマルチプロセッサ・システムとは、一般に、独立に演算処理し得るプロセッサ機能のコアを複数もつプロセッサを用いるシステムを意図しており、従って、マルチコア・シングルプロセッサ・システム、シングルコア・マルチプロセッサ・システム、及びマルチコア・マルチプロセッサ・システムのどれでもよいことを理解されたい。
なお、本発明を実施するために使用可能なコンピュータ・システムのハードウェアは、IBM(R)System Xに限定されず、本発明のシミュレーション・プログラムを走らせることができるものであれば、任意のコンピュータ・システムを使用することができる。オペレーティング・システムも、Windows(R)XP、Windows(R)7、Linux(R)、Mac OS(R)など、任意のオペレーティング・システムを使用することができる。さらに、シミュレーション・プログラムを高速で動作させるために、POWER(商標)6ベースで、オペレーティング・システムがAIX(商標)のIBM(R)System Pなどのコンピュータ・システムを使用してもよい。
ハードティスク・ドライブ316にはまた、図4に関連して後で説明する、メイン・プログラム402、MATLAB(R)/Simulink(R)などのシミュレーション・モデリング・ツール404、ステップ実行を行うシミュレータ・モジュール(ライブラリ)406、論理プロセスの間のタイムラグ、プリファレンスなどの情報を含む、XMLで記述された接続情報ファイル408、シミュレータ・モジュール406の初期シフト量を計算するシフト量計算モジュール410、ローカル・スケジューラのモジュール412が保存されている。シフト量計算モジュール410は、Java(R)、C、C++、C#などの既存の任意のプログラミング言語で作成することができる。ハードティスク・ドライブ316にはさらに、ライブラリ406やローカル・スケジュール412などをコンパイル&リンクして実行可能ファイル418を生成するためのコンパイラ&リンカ416も保存されている。
図4は、本発明の実施例に係る機能ブロック図である。図4において、メイン・ルーチン402は、本発明に係る処理の各種モジュールを呼び出し、実行するためのプログラムであり、好適には、ディスプレイ314上で、キーボード310やマウス312で操作して処理を行うためのGUIなどのインターフェースを与える。
シミュレーション・モデリング・ツール404は、好適には、MATLAB(R)/Simulink(R)であるがこれには限定されず、Scilab/Scicosなど、任意のシミュレーション・モデリング・ツールを使用することができる。
ステップ実行モジュールのライブラリ406は、シミュレーション・モデリング・ツール404によって作成されたコードであり、好適には、MATLAB(R)/Simulink(R)におけるReal-Time Workshop(R)のような変換ツールで、C、C++などのソースコードに変換され、コンパイラ&リンカ416によって実行可能ファイル418に変換され、実行可能ファイル418のコードは、図3に示すハードウェア構成とオペレーティング・システムなどによって実装された実行環境上で実行される。
図1に示すCANエミュレータ、ECUエミュレータ、エンジン・シミュレータ、及びトランスミッション・シミュレータなどのシミュレーションの動作単位は論理プロセス(logical process)と呼ばれ、一般的には、1つの論理プロセスは、シミュレーション・モデリング・ツール404によって作成された複数の機能ブロックからなる。
図3に示すマルチプロセッサをもつ実行環境には、好適には、可能な限り、1つのプロセッサまたはコアに1つの論理プロセスが割り当てられて、並列実行される。
論理プロセスは、メッセージを受け取り、あるいはメッセージを送出する機能をもつローカル・スケジューラと、ユーザが作成したステップ実行機能とからなる。ローカル・スケジューラには、メイン・プログラム402によって、論理プロセスの開始の初期シフト量414を設定することが可能である。
本発明は、個々の論理プロセスのローカル・スケジューラ412に、計算により得られた所定の初期シフト量を設定することで、シミュレーションの実行速度を向上させるものである。ローカル・スケジューラの処理の詳細は後に説明する。
シフト量計算モジュール410は、互いに通信する論理プロセスの間の各々の通信方向のタイムラグ及び論理プロセスの間の通信条件に関するプリファレンスの条件を含む接続情報のデータ408を利用して、個々の論理プロセスに設定すべきシフト量414を計算する機能をもつ。シフト量計算モジュール410は基本的には、互いに通信する論理プロセスのペア毎に1次方程式をたて、連立方程式を解くことにより、各論理プロセスに設定すべきシフト量を計算する処理を行う。この処理の詳細は図6のフローチャートを参照して後で説明する。
図5にタイムラグのデータを例示する。すなわち、論理プロセスA、B、C、D及びEがあるとすると、互いに通信する論理プロセスAとBの間では、論理プロセスAから論理プロセスBにメッセージを送るタイムラグLABと、論理プロセスBから論理プロセスAにメッセージを送るタイムラグLBAとがタイムラグのデータとしてXMLにより接続情報ファイル408に記録される。同様の記録が、論理プロセスAとDの間、論理プロセスBとCの間、論理プロセスCとEの間、論理プロセスDとEの間で行われる。
このようなタイムラグは、CANとECUの間なら、CANの受信遅延(データサイズ分転送されるまで待つ)である。ECUからプラントへのメッセージ送信の遅延はECU上で動作プログラムに起因するもので、ECU上のプログラムはタイマを使ってプラントに指示を送るので、このタイマの長さがタイムラグになる。一方、プラントからECUは、タイムラグはゼロである。また、プラントとプラントの間は、互いの変化が伝わるのに許容できる時間がタイムラグに該当する。
プリファレンスのデータとは例えば、プラント間の緩和可能な連成制約を記述するものである。緩和可能な連成制約として、最低同期周期の値などがある。緩和するケースでも、その最低同期周期を上回らないように調整するので、システム全体の累積誤差を大きくするものではない。
メイン・プログラム402は、シフト量414をローカル・スケジューラ412を介して各論理プロセスに設定して、実行を指示する。
次に、シフト量計算モジュール410の処理を、図6のフローチャートを参照して説明する。先ず、シフト量計算モジュール410が計算する式について説明する。すなわち、SAを論理プロセスAの初期シフト量、SBを論理プロセスBの初期シフト量、LBAを論理プロセスBから論理プロセスAへのメッセージ送信のタイムラグ、LABを論理プロセスAから論理プロセスBへのメッセージ送信のタイムラグとすると、
SA - SB = (LBA - LAB)/2と式がたてられる。同様にSA〜SZについて、互いにメッセージをやりとりする論理プロセスに定式化すると、下記のような連立方程式が得られる。
Figure 0005651251



なお、一番下のSA = Cという式は、SAを初期シフト量の計算の一時的な基準として選んでいることを意味する。この基準は、後の処理により正しい基準に修正される。
以上の説明を一般化して、SA〜SZなどをS1〜Snと表記し直し、連立方程式の右辺をb1〜bmと表記することにすると、連立方程式は下記のように行列表記される。
Figure 0005651251


こうして図6のフローチャートを参照すると、ステップ602では、シフト量計算モジュール410は、連立方程式の左辺の行列Aのランクがnより小さいかどうか判断し、もしそうなら、処理は失敗として終了する。なお、ランクが n より小さくなるのは、論理プロセス間の接続が不足していて、図5の接続上、論理プロセスの離れ島が出来ている状況であるから、連成シミュレーションの設計者にとっては、修正が容易である。
もし行列Aのランクがn以上なら、ステップ604で、シフト量計算モジュール410は、行列Aのランクがnになるまで、プリファレンス414に含まれる論理プロセスに対応する、優先度が低い式を取り除く。こうして、A's = b'という式が得られる。
シフト量計算モジュール410は、ステップ606で、s = A'-1 b'により、シフト量sを求める。なおこの場合、必ずしもA'の逆行列を計算する必要はなく、ガウスの消去法、ガウス・ザイデル法など、コンピュータ上の数値計算技法として既知の任意の方法を使用することができる。
シフト量計算モジュール410は、ステップ608で、例えば下記の式の処理によって、初期シフト量の最小値を0にする。
Figure 0005651251


シフト量計算モジュール410は、ステップ610で、初期シフトの計算に使用しなかったタイムラグを、下記の式により再調整する。
Lij > Lji + 2(Sj - Si)ならば、Lij := Lji + 2(Sj - Si)
そうでないなら、Lji := Lij + 2(Si - Sj)
なお、この調整の結果、ひとつでも Lijの値が負となれば、ステップ612での判断(ここでは、LijなどをLkと言い換えている)により、エラーとして計算処理を終了する。このケースでは、連成シミュレーションの設計者は、優先度の付け直しなどの操作を行う必要がある。
次に、論理プロセスにおけるローカル・スケジューラの処理を、図7のフローチャートを参照して説明する。図7のフローチャートを説明する前に、使用される時間の定義を与えておく。
TC : 現在のローカル時間
TS : 初期シフト
TO : キューにおける最も古い時間
TL : 送り先へのタイムラグ
TE : シミュレーションの終了時間
図7において、ローカル・スケジューラは、ステップ702で、t = TSまで実行する。これによって、TCがTSとなる。
ステップ704で、ローカル・スケジューラは、t = TC + TLまでメッセージ(msg)を送り出す。
ステップ706で、ローカル・スケジューラは、TE ≦ TCかどうか判断し、もしそうなら処理を終了する。
TE ≦ TCでないなら、ローカル・スケジューラは、ステップ708で、最古のメッセージの時間を取得する。
ステップ710で、ローカル・スケジューラは、t = TOのメッセージに基づき更新する。
ステップ712で、ローカル・スケジューラは、t = TOまで実行し、これにより、TCがTOとなる。
ステップ714で、ローカル・スケジューラは、t = TC + TLまでメッセージを送り出して、ステップ706に戻る。
次に、本発明によるシミュレーション実行動作について説明する。先ず簡単のために、2つの論理プロセスだけを想定した処理について説明する。
この発明では、互いの論理プロセスがイベントを待ち合ってデッドロックを引き起こすことを防止するために、nullメッセージを用いる保守的同期化(conservative synchronization)の手法を前提とする。なお、nullメッセージとは、タイムスタンプのみを含むメッセージのことであり、以下では、イベント・メッセージと区別する。
以上のような構成において、シミュレーションのために次のような準備がなされる。
(1) ユーザが、シミュレーション・モデリング・ツール404を使って、所定のモデルおよび、そのモデルをステップ実行するシミュレータを構築する。
(2) ユーザは、各シミュレータの間の接続情報を記述する。接続情報は、シミュレータの出力ポート番号と、宛先シミュレータの入力ポート番号、最小タイムラグ、および優先度で構成される。
(3) メイン・プログラム402は接続情報を読み込んで、各シミュレータの初期シフト量を決定する。
(4) メイン・プログラム402は、各ローカル・スケジューラに初期シフトの値とシミュレーションの終了時刻をセットして、各シミュレータのステップ実行モジュールとリンクして、スレッド実行のモジュールを生成する。
(5) メイン・プログラム402は、スレッド実行モジュールを起動して、その終了を待つ。
ここで例として、図8に示すように、論理プロセスAから論理プロセスBへのメッセージの送出にはLAB > 0のタイムラグがかかり、一方、論理プロセスBから論理プロセスAへのメッセージの送出のタイムラグがゼロの場合における論理プロセスの実行動作をみてみる。すると従来技術では、シミュレーション時間で、開始時点で論理プロセスAと論理プロセスBが同時に相手方にnullメッセージを送り、この結果、実行時間においては、各論理プロセスでローカルな因果律を保つように必要性から、図示するように、B1 → A1 → B2 → と、論理プロセスAと論理プロセスBがシーケンシャル実行となり、実行時間を高速化できない。
そこで、本発明に従い、論理プロセスBを、LAB/2だけ初期シフト実行させることにより、図9に示すように、論理プロセスAと論理プロセスBが並列実行され、これによって実行時間を高速化することができる。なお、図9では、初期シフトはB0として示されている。
図10の例では、論理プロセスAから論理プロセスBへのメッセージ送出のタイムラグLABも、論理プロセスBから論理プロセスAへのメッセージ送出のタイムラグLBAもゼロではないので、論理プロセスAと論理プロセスBを並列実行させることが可能であるが、LBA > LAB > 0とすると、図11に示すように、(LBA - LAB)/2だけ論理プロセスAを初期シフト実行させることにより、さらに並列実行の程度を向上して実行時間を増加させることができる。なお、図11では、初期シフトはA0として示されている。
図12(a)は、シミュレーション時刻上で、論理プロセスAとBが互いにイベントを送りあう様子を示している。ただし、両者とも、どの時刻にイベントが届くのか予測できないため、実行を開始することが出来ず、デッドロックの状態である。この状況に対して、両者が最小タイムラグを現シミュレーション時刻に加えた nullメッセージ1202、1204、1206及び1208を送りあえば、図12(b) に示すように、両者は処理を進めることが出来、期待通りの時刻にイベント・メッセージを受け取ることが出来る。
nullメッセージとイベント・メッセージを送るためのルールは以下のとおりである。
(1) 各通信路において、メッセージのタイムスタンプを増加させる。
(2) メッセージを送る近傍の論理プロセスにのみ応答する。
(3) 次のnullメッセージを送る直前にイベント・メッセージを送る。
(4) イベント・メッセージに応答してnullメッセージを送ることはない。
イベント・メッセージのタイムスタンプは、その直後に送出されるnullメッセージのタイムスタンプよりも後になるように設定される。なぜなら、nullメッセージのタイムスタンプは、規定されたタイムラグに基づき相手の論理プロセスに到達する最も早い時間だからである。このことは、図12では、nullメッセージよりもなだらかな傾きのイベント・メッセージとして示されている。
本発明の処理シフトを設定した実行技法は、一対の論理プロセスの間だけでなく、より多くの論理プロセスの間に適用可能であり、図13は、A、B及びCという3つの論理プロセスに適用した例を示す。
この例では、LAB = 100(以下、単位はmsとする)、LBA = 0、LBC = 300、LCB = 350、LAC = 200、LCA = 50であるとすると、その動作チャートは、図13(a)のようになる。
本発明によれば、上記のタイムラグのデータに基づき、各論理プロセスの初期シフト量が計算され、その結果、論理プロセスAの初期シフト量SA = 0、論理プロセスBの初期シフト量SB = 50、論理プロセスCの初期シフト量SC = 75と求められる。
こうして、論理プロセスBについては参照番号1302で示すように初期シフトで動作され、論理プロセスCについては参照番号1304で示すように初期シフトで動作され、この結果、図13(a)の動作チャートと比較すれば分かるように、図13(b)の動作チャートからは、実行速度が向上していることがみてとれる。
図14は、異なるタイムラグをもつ、A、B及びCという3つの論理プロセスに適用した例を示す。
この例では、LAB = 100、LBA = 0、LBC = 100、LCB = 0、LAC = 200、LCA = 0であるとすると、その動作チャートは、図14(a)のようになる。
次に、上記のタイムラグのデータに基づき、各論理プロセスの初期シフト量が計算され、その結果、論理プロセスAの初期シフト量SA = 0、論理プロセスBの初期シフト量SB = 50、論理プロセスCの初期シフト量SC = 100と求められる。
こうして、論理プロセスBについては参照番号1402で示すように初期シフトで動作され、論理プロセスCについては参照番号1404で示すように初期シフトで動作され、この結果、図14(a)の動作チャートと比較すれば分かるように、やはり、図14(b)の動作チャートからは、実行速度が向上していることがみてとれる。
次に図15及び図16を参照して、実行速度の異なる2つの論理プロセスの間の動作について説明する。また、ここでは、初期シフトが1/2でない場合についても示す。
図15は、論理プロセスAの実行速度が、論理プロセスBの実行速度より大きい場合を示す。
図15(a)は初期シフトなしの従来の場合の動作を示し、図15(b)は、タイムラグ差の1/2の初期シフトの場合の動作を示す。図15(b)では、初期シフトは、参照番号1502で示される。
さらに、図15(c)は、タイムラグ差の1/2以上の初期シフトの場合の動作を示し、図15(d)は、タイムラグ差の1/2以下の初期シフトの場合の動作を示す。図15(c)では、初期シフトは、参照番号1504で示され、図15(d)では、初期シフトは、参照番号1506で示される。
図16は、論理プロセスAの実行速度が、論理プロセスBの実行速度より小さい場合を示す。
図16(a)は初期シフトなしの従来の場合の動作を示し、図16(b)は、タイムラグ差の1/2の初期シフトの場合の動作を示す。図16(b)では、初期シフトは、参照番号1602で示される。
さらに、図16(c)は、タイムラグ差の1/2以上の初期シフトの場合の動作を示し、図16(d)は、タイムラグ差の1/2以下の初期シフトの場合の動作を示す。図16(c)では、初期シフトは、参照番号1604で示され、図16(d)では、初期シフトは、参照番号1606で示される。
これらから分かることは、タイムラグ差の1/2の初期シフトの場合がベストに見えるが、タイムラグ差の1/2以上の初期シフトの場合にも、タイムラグ差の1/2以下の初期シフトの場合にも、シミュレーション速度の向上という結果は得られることである。
そこで、これについてもう少し考察すると、1/2以外のシフト率xをとってみると、シミュレーション時間の長さの比がA:B = x:(1-x)と、A:B = (1-x):xが交互に現れる。ここで、論理プロセスAの速度をVA、論理プロセスBの速度をVBとし、VB > VAとすると、x/VA > (1-x)/VB且つ、(1-x)/VA > VBという連立不等式が成り立つ。この連立不等式を解くと、x0を0.5より小さい値とおいて、x0 < x < 1-x0という解になる。すると、解が存在する限りは、x = 1/2は常にその範囲に含まれる。論理プロセスの実行速度が分かっている場合はx = 1/2以外の値も妥当にとりえるが、速度が不明確な場合にはx = 1/2が最も安全な解である。これが、タイムラグ差の1/2の初期シフトをとることが望ましいという理由である。
すなわち、本発明によれば、好適な初期シフトはタイムラグ差の1/2であるが、これには限定されず、互いに通信する論理プロセスの実行速度の比に応じて、タイムラグ差より小さい適当な初期シフトを選ぶことができる。
以上、自動車用の複数のシミュレーション・システムに関連して、本発明の特定の実施例を説明してきたが、本発明はこのような特定の実施例に限定されず、飛行機用のシミュレーション・システムなど、一般的な電子機械制御系システムのシミュレーション・システムに適用可能であることを、この分野の当業者であるなら、理解するであろう。
また、本発明を実施するための構成も、特定のプロセッサのアーキテクチャ、オペレーティング・システムなどに限定されない。
さらに、上記実施例は、MATLAB(R)/Simulink(R)を例にとって説明したが、これに限らず、任意のモデリング・ツールに適用可能であることを、この技術分野の当業者なら理解するであろう。
304a,304b,...,304z CPU
306 メイン・メモリ
308 ハードディスク・ドライブ
408 接続情報ファイル
410 シフト量計算モジュール

Claims (20)

  1. 複数の論理プロセスをもち、コンピュータの処理によって、それらの論理プロセスの間で通信することによって処理を進めるシミュレーション・システムにおいて、
    所与の第1の論理プロセスから、該第1の論理プロセスと通信する第2の論理プロセスにメッセージを送るタイムラグを第1のタイムラグとし、該第2の論理プロセスから前記第1の論理プロセスにメッセージを送るタイムラグを第2のタイムラグとし、前記第1のタイムラグ > 前記第2のタイムラグとすると、全体のシミュレーションを開始する前に、前記第1のタイムラグと前記第2のタイムラグの差より小さい所定の初期シフト分だけ、前記第2の論理プロセスを実行させておくことにより、前記第1の論理プロセスと前記第2の論理プロセスを前記コンピュータ上で並列実行させるステップを有する、
    シミュレーション・システムの動作方法。
  2. 前記所定の初期シフトが、前記第1のタイムラグと前記第2のタイムラグの差の半分である、請求項1に記載のシミュレーション・システムの動作方法。
  3. 前記第1の論理プロセスと前記第2の論理プロセスを、前記初期シフト分だけずれて周期的にnullメッセージを送信しながら並列実行させるステップを有する、請求項1に記載のシミュレーション・システムの動作方法。
  4. 前記第2のタイムラグがゼロであり、前記第1のタイムラグがゼロより大きい、請求項1に記載のシミュレーション・システムの動作方法。
  5. 前記第1の論理プロセスがECUエミュレータであり、前記第2の論理プロセスがプラント・シミュレータである、請求項4に記載のシミュレーション・システムの動作方法。
  6. 複数の論理プロセスをもち、コンピュータの処理によって、それらの論理プロセスの間で通信することによって処理を進めるシミュレーション・システムにおいて、
    互いに通信する2つの論理プロセスの間で、一方から他方への通信のタイムラグと、他方から一方への通信のタイムラグの値の差の値に基づき、2つの論理プロセスの間の相対的なシフト量を決定するステップと、
    前記論理プロセス間の通信関係に基づき、シフト量の連立一次方程式を立てるステップと、
    前記連一次方程式の解に従って、個々の論理プロセスに初期シフトを与えて実行させるステップを有する、
    シミュレーション・システムの動作方法。
  7. 前記相対的なシフト量が、一方から他方への通信のタイムラグと、他方から一方への通信のタイムラグの値の差の半分として計算される、請求項6に記載のシミュレーション・システムの動作方法。
  8. 前記連一次方程式の解が不定になることに応答して、解が定まるように式を減らすステップをする、請求項6に記載のシミュレーション・システムの動作方法。
  9. 前記複数の論理プロセスが、ECUエミュレータとプラント・シミュレータを含む、請求項6に記載のシミュレーション・システムの動作方法。
  10. 前記論理プロセス間を、前記初期シフト分だけずれて周期的にnullメッセージを送信しながら並列実行させるステップを有する、請求項6に記載のシミュレーション・システムの動作方法。
  11. 複数の論理プロセスをもち、コンピュータの処理によって、それらの論理プロセスの間で通信することによって処理を進めるシミュレーション・システムにおいて、
    前記シミュレーション・システムに、
    互いに通信する2つの論理プロセスの間で、一方から他方への通信のタイムラグと、他方から一方への通信のタイムラグの値の差の値に基づき、2つの論理プロセスの間の相対的なシフト量を決定するステップと、
    前記論理プロセス間の通信関係に基づき、シフト量の連立一次方程式を立てるステップと、
    前記連一次方程式の解に従って、個々の論理プロセスに初期シフトを与えて実行させるステップを実行させる、
    シミュレーション・システムの動作プログラム。
  12. 前記相対的なシフト量が、一方から他方への通信のタイムラグと、他方から一方への通信のタイムラグの値の差の半分として計算される、請求項11に記載のシミュレーション・システムの動作プログラム。
  13. 前記連一次方程式の解が不定になることに応答して、解が定まるように式を減らすステップをする、請求項11に記載のシミュレーション・システムの動作プログラム。
  14. 前記複数の論理プロセスが、ECUエミュレータとプラント・シミュレータを含む、請求項11に記載のシミュレーション・システムの動作プログラム。
  15. 前記シミュレーション・システムに、前記論理プロセス間を、前記初期シフト分だけずれて周期的にnullメッセージを送信しながら並列実行させるステップをさらに実行させる、請求項11に記載のシミュレーション・システムの動作プログラム。
  16. 複数の論理プロセスをもち、コンピュータの処理によって、それらの論理プロセスの間で通信することによって処理を進めるシミュレーション・システムであって、
    所与の第1の論理プロセスから、該第1の論理プロセスと通信する第2の論理プロセスにメッセージを送るタイムラグを第1のタイムラグとし、該第2の論理プロセスから前記第1の論理プロセスにメッセージを送るタイムラグを第2のタイムラグとし、前記第1のタイムラグ > 前記第2のタイムラグとすると、全体のシミュレーションを開始する前に、前記第1のタイムラグと前記第2のタイムラグの差より小さい所定の初期シフト分だけ、前記第2の論理プロセスを実行させておくことにより、前記第1の論理プロセスと前記第2の論理プロセスを前記コンピュータ上で並列実行させる手段を有する、
    シミュレーション・システム。
  17. 前記所定の初期シフトが、前記第1のタイムラグと前記第2のタイムラグの差の半分である、請求項16に記載のシミュレーション・システム。
  18. 前記第1の論理プロセスと前記第2の論理プロセスを、前記初期シフト分だけずれて周期的にnullメッセージを送信しながら並列実行させるステップを有する、請求項16に記載のシミュレーション・システム。
  19. 前記第2のタイムラグがゼロであり、前記第1のタイムラグがゼロより大きい、請求項16に記載のシミュレーション・システム。
  20. 前記第1の論理プロセスがECUエミュレータであり、前記第2の論理プロセスがプラント・シミュレータである、請求項19に記載のシミュレーション・システム。
JP2013548155A 2011-12-05 2012-11-08 シミュレーション実行方法、プログラム及びシステム Active JP5651251B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013548155A JP5651251B2 (ja) 2011-12-05 2012-11-08 シミュレーション実行方法、プログラム及びシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011265413 2011-12-05
JP2011265413 2011-12-05
PCT/JP2012/078940 WO2013084654A1 (ja) 2011-12-05 2012-11-08 シミュレーション実行方法、プログラム及びシステム
JP2013548155A JP5651251B2 (ja) 2011-12-05 2012-11-08 シミュレーション実行方法、プログラム及びシステム

Publications (2)

Publication Number Publication Date
JP5651251B2 true JP5651251B2 (ja) 2015-01-07
JPWO2013084654A1 JPWO2013084654A1 (ja) 2015-04-27

Family

ID=48574033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013548155A Active JP5651251B2 (ja) 2011-12-05 2012-11-08 シミュレーション実行方法、プログラム及びシステム

Country Status (6)

Country Link
US (1) US9141732B2 (ja)
JP (1) JP5651251B2 (ja)
CN (1) CN103959251B (ja)
DE (1) DE112012004728T5 (ja)
GB (1) GB2508769B (ja)
WO (1) WO2013084654A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2851815A1 (de) * 2013-09-18 2015-03-25 dSPACE digital signal processing and control engineering GmbH Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts
JP5920842B2 (ja) 2013-11-28 2016-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation シミュレーション装置、シミュレーション方法、およびプログラム
JP2018022317A (ja) * 2016-08-03 2018-02-08 ルネサスエレクトロニクス株式会社 Hilシミュレーションシステム及びその制御方法
US10810111B2 (en) * 2016-11-02 2020-10-20 Hitachi Automotive Systems, Ltd. Computer system, test method, and recording medium
AT519540B1 (de) * 2016-12-29 2018-10-15 Avl List Gmbh Schaltvorrichtung für einen Radarzielemulator und Radarzielemulator mit einer solchen Schaltvorrichtung
AT519539B1 (de) 2016-12-29 2018-10-15 Avl List Gmbh Radarzielemulator mit einer Überblendungsvorrichtung und Verfahren zum Überblenden von Signalen
AT519538B1 (de) 2016-12-29 2019-05-15 Avl List Gmbh Verfahren und System zur simulationsgestützten Bestimmung von Echopunkten sowie Verfahren zur Emulation und Emulationsvorrichtung
DE102017214125A1 (de) * 2017-08-14 2019-02-14 Robert Bosch Gmbh Verfahren und Vorrichtung zum Synchronisieren einer Simulation mit einem Echtzeitsystem
EP3454234A1 (de) * 2017-09-06 2019-03-13 dSPACE digital signal processing and control engineering GmbH Verfahren zum bereitstellen einer echtzeitfähigen simulation für die steuergerätentwicklung und simulationsvorrichtung für die steuergerätentwicklung
AT520578B1 (de) 2017-10-06 2021-01-15 Avl List Gmbh Vorrichtung und Verfahren zur Konvertierung eines Radarsignals sowie Prüfstand
JP7137994B2 (ja) * 2018-08-23 2022-09-15 三菱重工業株式会社 シミュレーション方法、シミュレーションシステム、およびプログラム
US11537769B2 (en) * 2020-05-12 2022-12-27 Renesas Electronics Corporation Simulator and simulation method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3608917B2 (ja) * 1996-11-13 2005-01-12 富士通株式会社 論理シミュレーション方法および装置並びに論理シミュレーションプログラムを格納した記憶媒体
US7068746B1 (en) * 2000-03-01 2006-06-27 Lucent Technologies Inc. Base station transceiver to radio network controller synchronization filtering function
US7774440B1 (en) * 2001-07-25 2010-08-10 Scalable Network Technologies, Inc. Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model
AU2003232120A1 (en) * 2002-05-13 2003-11-11 Rensselaer Polytechnic Institute Discrete event simulation system and method
US7564809B1 (en) * 2004-05-06 2009-07-21 Cornell Research Foundation, Inc. Event-synchronization protocol for parallel simulation of large-scale wireless networks
US7822592B2 (en) * 2004-10-18 2010-10-26 Manthatron-Ip Limited Acting on a subject system
US20070041327A1 (en) * 2005-08-16 2007-02-22 Cisco Technology, Inc. Multicast heartbeat signaling
FI122945B (fi) * 2008-05-30 2012-09-14 Tellabs Oy Menetelmä ja laitteisto mittauksia varten
JP5153465B2 (ja) * 2008-06-09 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP5186290B2 (ja) * 2008-06-18 2013-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
CN101938456B (zh) * 2009-06-30 2014-03-12 华为技术有限公司 一种减小媒体延迟的方法、设备及系统

Also Published As

Publication number Publication date
US9141732B2 (en) 2015-09-22
CN103959251B (zh) 2016-08-31
JPWO2013084654A1 (ja) 2015-04-27
CN103959251A (zh) 2014-07-30
GB2508769A (en) 2014-06-11
US20130185034A1 (en) 2013-07-18
DE112012004728T5 (de) 2014-07-24
GB2508769B (en) 2014-10-22
GB201405177D0 (en) 2014-05-07
WO2013084654A1 (ja) 2013-06-13

Similar Documents

Publication Publication Date Title
JP5651251B2 (ja) シミュレーション実行方法、プログラム及びシステム
JP4629768B2 (ja) 並列化処理方法、システム、及びプログラム
Sehr et al. Programmable logic controllers in the context of industry 4.0
Van Werkhoven et al. Performance models for CPU-GPU data transfers
JP5209059B2 (ja) ソース・コード処理方法、システム、及びプログラム
Urunuela et al. Storm a simulation tool for real-time multiprocessor scheduling evaluation
US8677334B2 (en) Parallelization method, system and program
JP4988789B2 (ja) シミュレーション・システム、方法及びプログラム
JP3746371B2 (ja) 性能シミュレーション方法
US8959498B2 (en) Parallelization method, system and program
JP2013164657A (ja) 並列化方法、システム、及びプログラム
CN115509712A (zh) 一种基于smt的自动驾驶系统实时性任务调度分析方法
JP2014102734A (ja) 性能検証プログラム、性能検証方法及び性能検証装置
CN115130407A (zh) 用于在处理器与fpga之间划分仿真模型的方法
EP2278454B1 (en) Method for correct-by-construction development of real-time-systems
Garcés et al. A model-based approach for reconciliation of polychronous execution traces
JP2011186991A (ja) 常微分方程式を解くための方法、プログラム及びシステム
Han et al. Optimizing the implementation of real-time Simulink models onto distributed automotive architectures
George et al. An Integrated Simulation Environment for Parallel and Distributed System Prototying
Hammond et al. Predictive simulation of HPC applications
EP4177756A1 (en) Interference channel contention modelling using machine learning
EP4177750A1 (en) Scheduling tasks for execution by a processor system
Henderson et al. Xrma: An holistic approach to performance prediction of distributed real-time CAN systems
Sciammarella et al. Modelling analysis and implementation of distributed probabilistic timed actors using theatre
Kučera et al. Implementation of timed automata in a real-time operating system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140929

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: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141114

R150 Certificate of patent or registration of utility model

Ref document number: 5651251

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150