JP5278904B2 - ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム - Google Patents

ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム Download PDF

Info

Publication number
JP5278904B2
JP5278904B2 JP2009071789A JP2009071789A JP5278904B2 JP 5278904 B2 JP5278904 B2 JP 5278904B2 JP 2009071789 A JP2009071789 A JP 2009071789A JP 2009071789 A JP2009071789 A JP 2009071789A JP 5278904 B2 JP5278904 B2 JP 5278904B2
Authority
JP
Japan
Prior art keywords
discrete
continuous
value
continuous system
event
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.)
Expired - Fee Related
Application number
JP2009071789A
Other languages
English (en)
Other versions
JP2010224894A (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 JP2009071789A priority Critical patent/JP5278904B2/ja
Priority to US12/724,700 priority patent/US8332202B2/en
Publication of JP2010224894A publication Critical patent/JP2010224894A/ja
Application granted granted Critical
Publication of JP5278904B2 publication Critical patent/JP5278904B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ハイブリッド・システムの離散的な振る舞い及び連続的な振る舞いをそれぞれシミュレーションする連続系シミュレータと離散系シミュレータとを効率よく協調動作させるための技術に関し、特に、連続系シミュレータと離散系シミュレータ間のデータの通信量を少なくするための技術に関する。
システム開発では手戻りを少なくするために、上流工程においてシステム全体の仕様と設計を検証しておくことが重要である。このような検証は、システムをモデル化したシミュレーションにより行われることも多い。機械、電気、及びソフトウェアからなるシステムエンジニアリングの分野では、システムは離散的にも連続的にも振る舞うので、システムを離散システムと連続システムとが混在するハイブリッド・システムとして表現する必要がある。
ハイブリッド・システムを記述するため、例えばUnified Modeling Language(UML)のシステムエンジニアリングへの拡張であるSystemsModeling Languages(SysML)では、離散的なデータに加えて連続的なデータを扱う構造の記述を可能にする拡張がなされている。ここでは、離散的な振る舞いは、SysMLのステートマシーン図等で記述する。一方、連続時間上で連続量を計算するアルゴリズムは、例えばMathWorks社のSimulink(登録商標)等の他のモデリング言語で記述する。そして連続的なデータをSysMLのフローポートで送受信するように記述することで、離散システムと連続システムとからなるハイブリッド・システムの振る舞いの記述を可能としている。
上記はハイブリッド・システムの記述方法の一例であるが、一般にハイブリッド・システムでは、離散系シミュレータと連続系シミュレータをうまく協調動作させることが、シミュレーションの実行効率を上げる1つの鍵である。離散系シミュレータと連続系シミュレータが協調動作するには、両者が時間とデータを共有する必要がある。そのため、一方のシミュレータが時間又はデータを更新した場合、この更新が他方のシミュレータによるシミュレーションに正しく反映されなければならない。しかし更新の度直ちに時間やデータを交換するとなると、両シミュレータ間の通信回数が非常に多くなる。結果、シミュレーションの実行効率は悪くなる。
例えば、非特許文献1は、UMLで記述した離散システムとSimulinkで記述した連続システムからなるハイブリッド・システムのシミュレーションにおいて、連続系シミュレータが主導して協調シミュレーションの実行管理を行う技術を開示する。また、非特許文献2は、SystemCで記述した離散システムとSimulinkで記述した連続システムからなるハイブリッド・システムのシミュレーションにおいて、離散系シミュレータが主導して協調シミュレーションの実行管理を行う技術を開示する。
Bouchhima, F., Briere, M., Nicolescu,G., Abid, M., Aboulhamid, E.M. "A SystemC/Simulink Co-Simulation Framework for Continuous/Discrete-EventsSimulation", Proceedings of the 2006 IEEE International Behavioral Modeling andSimulation Workshop, 2006. Jozef Hooman, Nataliya Mulyar, Ladislau Posta "Validating UML models of Embedded Systems byCoupling Tools", Proceedings of the Workshop on Specification and Validation ofUML models for Real-Time and Embedded Systems, 2004
しかしながら上記いずれの技術においても、時間とデータの同期は、連続系シミュレータによるシミュレーションのステップ時間ごとに行われていた。そのため、離散系シミュレータと連続系シミュレータ間の通信量が多くなり、従来技術では、効率よくシミュレーションを行うことができなかった。
この発明は、上記の問題点を解決するためになされたものであって、離散システムと連続システムとからなるハイブリッド・システムのシミュレーションの実行効率を上げることを目的とする。また本発明は、離散系シミュレータと連続系シミュレータ間の不要な通信を取り除き、両者間の通信回数を削減することを目的とする。
本願発明では、離散系シミュレータと連続系シミュレータ間の不要な通信を取り除くために、まず、離散系シミュレータが処理するイベントの発生条件式の中で、連続システムを記述する変数の値を参照して評価されるものについては、その評価を連続系シミュレータ側で行うようにした。他方のデータの最新の値を参照する必要があるのは、離散系シミュレータではイベントの処理を開始する時である。従って、上記構成によれば、連続系シミュレータは、イベント発生条件式の結果が真とならない限り、ステップ時間間隔ごとにシミュレーションの結果を離散系シミュレータに通知する必要がなくなる。
また本願発明では、連続システムを記述する変数の値を参照して評価される1以上のイベントの発生条件式のうち、現在離散系モデルにおいてイベントを発生させる可能性があり、評価が必要であるものだけを連続系シミュレータ側で評価するようにした。かかる構成によれば、連続系シミュレータにおいてイベント発生条件式を無駄に評価することがなくなる。また、両者間の通信回数を更に削減することができる。
また本願発明では、離散系シミュレータが処理するイベントのうち、その処理開始時刻が予めスケジュールされるものについては、時間とデータとを同期するタイミングで、離散系シミュレータはそのスケジュールを連続系シミュレータに通知するものとした。かかる構成によれば、連続系シミュレータは、ステップ時間間隔ごとのシミュレーションの結果が離散系モデルにおけるイベントの発生要因となるか、又はスケジュールされたイベントの発生時刻となるまで、一度も離散系シミュレータと同期をとる必要がない。
具体的には、本願発明の第1態様に係る、離散システムと共にハイブリッド・システムを構成する連続システムの振る舞いを、離散システムの振る舞いをシミュレーションする離散系シミュレーション・プログラムと通信しながらシミュレーションする連続系シミュレーション・プログラムは、コンピュータに、離散系シミュレーション・プログラムから、該離散系シミュレーション・プログラムが処理するイベントのイベント発生条件式の評価の要求を受け取るステップであって、上記イベント発生条件式は、連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価される、評価の要求を受け取るステップと、評価の要求の受け取りに応答して、イベント発生条件式の評価が真になるまで、連続システムの現在時刻をステップ時間間隔進めるシミュレーションとイベント発生条件式の評価とを繰り返すステップと、イベント発生条件式の評価が真となったことに応答して、現在時刻を示す現在時刻データ、及び上記複数の連続系変数のうち、離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数の値を離散系シミュレーション・プログラムへ送るステップとを実行させる。
ここでイベント発生条件式において参照される少なくとも1つの連続系変数と、離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数は、異なるものであってもよく、或いは、一部又は全部重複するものであってよい。なお、連続系シミュレーション・プログラムがインストールされ、実行されるコンピュータは、離散系シミュレーション・プログラムがインストールされ、実行されるコンピュータと同一のものであってもよく、或いは異なってもよい。
好ましくは、連続系シミュレーション・プログラムは、コンピュータに、離散系シミュレーション・プログラムから、離散系システムを記述する変数である複数の離散系変数のうち、連続システムのシミュレーションにおいて参照する少なくとも1つの離散系変数の値を、上記評価の要求と共に受け取るステップを更に実行させる。
また好ましくは、連続系シミュレーション・プログラムは、コンピュータに、離散系シミュレーション・プログラムから、該離散系シミュレーション・プログラムが処理するイベントのうち最も近い将来にスケジュールされているイベントの処理時刻を、評価の要求と共に受け取るステップと、現在時刻をステップ時間間隔進めるシミュレーションごとのイベント発生条件式の評価において結果が真でない場合に、現在時刻がイベントの処理時刻となったか否か判定するステップと、現在時刻がイベントの処理時刻となったことに応答して、離散システムのシミュレーションにおいて参照される上記少なくとも1つの連続系変数の値を、離散系シミュレーション・プログラムへ送るステップを更に実行させる。
また好ましくは、連続系シミュレーション・プログラムは、コンピュータに、離散系シミュレーション・プログラムへ離散システムのシミュレーションにおいて参照される上記少なくとも1つの連続系変数の値を送る前に該値を記録するステップと、次にイベント発生条件式の評価が真となったことに応答して離散系シミュレーション・プログラムへ上記少なくとも1つの連続系変数の値を送る場合に、該値に変化がないことを条件に上記少なくとも1つの連続系変数の値の送信を取りやめるステップを更に実行させる。
また、本願発明の第2態様に係る、連続システムと共にハイブリッド・システムを構成する離散システムの振る舞いを、連続システムの振る舞いシミュレーションする連続系シミュレーション・プログラムと通信しながらシミュレーションする離散系シミュレーション・プログラムは、コンピュータに、現在時刻において発生したイベントを処理するステップと、イベントの処理の終了に応答して、連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価されるイベントの発生条件式の評価の要求を、連続系シミュレーション・プログラムへ送るステップと、イベントの発生条件式の評価結果が真になった時刻を示す現在時刻データと、上記複数の連続系変数のうち、離散システムのシミュレーションにおいて参照する少なくとも1つの連続系変数の値とを、連続系シミュレーション・プログラムから受け取るステップと、受け取った上記少なくとも1つの連続系変数の値をコンピュータの記憶部に記録するステップと、現在時刻を、受け取った現在時刻データで更新するステップとを実行させる。
ここでイベント発生条件式において参照される少なくとも1つの連続系変数と、離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数とは、異なるものであってもよく、或いは、一部又は全部重複するものであってよい。なお、離散系シミュレーション・プログラムがインストールされ、実行されるコンピュータは、連続系シミュレーション・プログラムがインストールされ、実行されるコンピュータと同一であってもよく、或いは異なってもよい。
好ましくは、上記評価の要求は、複数の連続系変数のうち少なくとも1つの連続系変数を参照して評価される1以上のイベントの発生条件式のうち、上記イベントの処理により評価が必要になったイベントの発生条件式の評価の要求である。
また好ましくは、離散系シミュレーション・プログラムは、コンピュータに、上記イベントの処理の終了に応答して、離散システムを記述する変数である複数の離散系変数であって、かつ前記イベントの処理により更新された前記複数の離散系変数のうち、前記連続システムのシミュレーションにおいて参照される少なくとも1つの離散系の各値を、上記評価の要求と共に連続系シミュレーション・プログラムへ送るステップを更に実行させる。
また好ましくは、離散系シミュレーション・プログラムは、コンピュータに、上記イベントの処理の終了に応答して、該イベントの次にスケジュールされるイベントの処理時刻を、上記評価の要求と共に連続系シミュレーション・プログラムへ送るステップと、上記処理時刻における上記少なくとも1つの連続系変数の値を、連続系シミュレーション・プログラムから受け取るステップを更に実行させる。
また好ましくは、離散系シミュレーション・プログラムは、コンピュータに、上記現在時刻の更新に応答して、記憶領部に記録した上記少なくとも1つの連続系変数の値を参照してイベントの処理を行うステップを更に実行させる。
また、本願発明の第3態様に係る、ハイブリッド・システムのシミュレーション・プログラムは、ハイブリッド・システムを構成する離散システムの振る舞いをシミュレーションする離散系シミュレーション・プログラムと、該プログラムと通信しながら上記ハイブリッド・システムを構成する連続システムの振る舞いをシミュレーションする連続系シミュレーション・プログラムとを含む。ここで、離散系シミュレーション・プログラムは、コンピュータに、離散システムにおける現在時刻において発生したイベントを処理するステップと、イベントの処理の終了に応答して、連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価されるイベント発生条件式の評価の要求を、連続系シミュレーション・プログラムへ渡すステップとを実行させる。
また、連続系シミュレーション・プログラムは、上記コンピュータに、上記評価の要求の受け取りに応答して、イベント発生条件式の評価が真になるまで、連続システムの現在時刻をステップ時間間隔進めるシミュレーションとイベント発生条件式の評価を繰り返すステップと、イベント発生条件式の評価が真となったことに応答して、連続システムにおける現在時刻を示す現在時刻データの値、及び上記複数の連続系変数のうち、離散システムのシミュレーションにおいて参照される、少なくとも1つの連続系変数の値を、離散系シミュレーション・プログラムに渡すステップとを実行させる。
そして離散系シミュレーション・プログラムは、上記コンピュータに更に、離散システムにおける現在時刻を示す現在時刻データを、連続系シミュレータ・プログラムから受け取った現在時刻データの値で更新するステップと、該現在時刻データの更新に応答して、連続系シミュレータ・プログラムから受けとった上記少なくとも1つの連続系変数の値を参照して、発生したイベントの処理を行うステップとを実行させる。
以上、連続系シミュレーション・プログラム、離散系シミュレーション・プログラム、及び連続システムと離散システムからなるハイブリッド・システムのシミュレーション・プログラムとして本発明を説明した。しかし、本発明は、ハイブリッド・システムを構成する連続システムのシミュレーション方法及びハイブリッド・システムを構成する離散システムのシミュレーション方法として把握することもできる。
本発明によれば、離散系シミュレータと連続系シミュレータ間の不要な通信を取り除かれるので、両シミュレータ間の通信回数を削減することが可能となる。従って、本発明によれば、離散システムと連続システムとからなるハイブリッド・システムのシミュレーションの実行効率を上げることができる。本発明のその他の効果については、各実施の形態の記載から理解される。
図1は、本実施形態に係るハイブリッド・システムのシミュレーション装置100の機能構成の一例を示す。 図2は、本実施形態に係るハイブリッド・システムのシミュレーション装置100(離散系シミュレーション部及び連続系シミュレーション部)を実現するのに好適な情報処理装置のハードウェア構成の一例を示す。 図3は、本実施形態に係るハイブリッド・システムのシミュレーションを実行する際の前処理の流れの一例を示すフローチャートを示す。 図4は、スチーム型加湿器(ハイブリッド・システム)の構造モデルの一例を示す。 図5(a)は、前処理において作成される離散―連続対応表T1の一例を示す。図5(b)は、前処理において作成される連続―離散対応表T2の一例を示す。 図6は、スチーム型加湿器(ハイブリッド・システム)の一部を構成する離散系モデルの一例を示す。 図7は、前処理において作成される条件式表T3の一例を示す。 図8は、前処理においてイベント発生条件式の活性/非活性を記録するコードを挿入された後の離散系モデルの一例を示す。 図9(a)は、前処理において作成される条件式活性表T4の一例を示す。図9(b)は、前処理において作成される条件式活性表T5の一例を示す。図9(c)は、前処理において作成される離散系モデル変数値表T6の一例を示す。 図10は、本実施形態に係るハイブリッド・システムのシミュレーションの処理の流れの一例をフローチャートを示す。 図11は、スチーム型加湿器(ハイブリッド・システム)モデルの本発明を適用したシミュレーションの実行例を示す。 図12は、離散系モデルの状態と該状態において活性化しているイベント発生条件式のIDの対応表の一例を示す。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
本発明は、離散的にも連続的にも振る舞う1つの系を、離散システム及び連続システムから構成されるハイブリッド・システムとしてモデル化してシミュレーションを行う従来のハイブリッド・システムのシミュレーションにおいて、離散システムをシミュレーションする離散系シミュレータと連続システムをシミュレーションする連続系シミュレータとをうまく協調動作させてシミュレーションの実行効率を上げようというものである。即ち、本発明は、従来より既知のハイブリッド・システムのシミュレーションにおいて、離散系シミュレータと連続系シミュレータ間の通信量や回数を改善するものである。そこで、以下では離散系シミュレータ及び連続系シミュレータは既存のものをベースとして使用するものとする。具体的には、ベースとするシミュレータは、それぞれ次のように動作するものであればどのようなものであってもよい。
(離散系シミュレータ)離散系シミュレータはイベントによって駆動される。イベントには即時処理するものと、指定時間後に処理するものの2種類がある。離散系シミュレータは、時刻t=0を初期値として次の手順に従い、イベント発生の待機と処理を繰り返すことによってシミュレーションを進める。
1.時刻tにスケジュールされているイベントの処理を行う。イベントの処理の結果、新たにイベントが発生する場合がある。即時処理するイベントに対しては、1.を繰り返し実行する。指定時間Δt後に処理されるイベントは時刻t+Δtに実行するようスケジュールする。
2.時刻tに処理するイベントがなくなると、最も近い将来にスケジュールされているイベントの指定処理時刻にtを更新して、1.を実行する。
(連続系シミュレータ)連続系シミュレータは、微分方程式等の数式で表現される対象を、入力値から出力値を計算する連続値アルゴリズムとして記述し、これを振る舞いモデルとしたものに基づいて、ステップ時間ごとに計算を繰り返すことによってシミュレーションを進める。ステップ時間は隣り合う時刻tiとti+1の組で与えられ、時刻tiでの入力値に基づいて時刻ti+1での出力を計算する。
図1は、本発明の実施形態に係る、ハイブリッド・システムを構成する離散システムの振る舞いをシミュレーションする離散系シミュレーション部200と、離散系シミュレーション部200と通信しながら上記ハイブリッド・システムを構成する連続システムの振る舞いをシミュレーションする連続系シミュレーション部300とを含む、ハイブリッド・システムのシミュレーション装置100の機能構成の一例を示す図である。本発明の実施形態に係る離散系シミュレーション部200は、イベント処理部205と、要求メッセージ作成部210と、応答受付部215と、連続系データ更新部220と、時刻更新部225とを備える。また、離散系シミュレーション部200はデータ格納部230を有し、離散―連続対応表T1、条件式表T3、及び条件式活性表T4を記憶する。
一方、本発明の実施形態に係る連続系シミュレーション部300は、要求受付部305、ステップ実行部310、条件式評価部315、スケジュール確認部320、及び応答メッセージ作成部325を含む。また、連続系シミュレーション部300はデータ格納部330を有し、連続―離散対応表T2、条件式表T3、条件式活性表T5、及び離散系モデル変数値表T6を記憶する。
なお、本実施形態に係るハイブリッド・システムのシミュレーション装置100は、一般的なコンピュータを用いて構成することができる。この場合、離散系シミュレーション部200と連続系シミュレーション部300とを、互いに通信可能な複数のコンピュータによって構成してもよく、或いは同じ1つのコンピュータによって構成してもよい。そのような、一般的なコンピュータ50の基本的なハードウェア構成の一例を図2に示す。
コンピュータ50は、バス2に接続されたCPU(中央処理装置)1とメインメモリ4を含んでいる。ハードディスク装置13、30、およびCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフロッピーディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。
即ち、シミュレーション装置100としてのコンピュータ50の上記説明した数々の記憶装置には、離散系シミュレーション・プログラムや連続系シミュレーション・プログラムと、各プログラムが使用する、離散―連続対応表T1、連続―離散対応表T2等のデータを格納できる。コンピュータ・プログラムはメインメモリ4にロードされることによって実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
コンピュータ50は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。コンピュータ50は、オーディオコントローラ21を経由して、マイク24からの入力を受け、またスピーカー23から音声を出力する。コンピュータ50は、視覚データをユーザに提示するための表示装置11に、グラフィックスコントローラ10を経由して接続される。コンピュータ50は、ネットワーク・アダプタ18(イーサネット(R)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
以上の説明により、本発明の実施の形態に係るシミュレーション装置100を実現するのに好適なコンピュータは、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
このような本実施形態に係るシミュレーション装置100の具体的な構成及びその処理手順について説明する前に、本発明を実施するために必要な前処理を、図3乃至図9を参照して説明する。
図3は、前処理の流れの一例を示すフローチャートである。前処理ではまず、システム全体の構造モデルに基づいて、離散系モデルから連続系モデルに渡される値(特許請求の範囲に記載する、「離散系変数の値」に相当)と、連続系モデルから離散系モデルに渡される値(特許請求の範囲に記載する、「連続系変数の値」に相当)を抽出する(ステップ300)。なお、以下では、離散系変数を、離散系モデルの変数、連続系変数を、連続系モデルの変数として記載する。抽出した値は各々その変数名を、離散―連続対応表T1又は連続―離散対応表T2に登録する。即ち、離散系モデルから連続系モデルに渡される値については、離散系モデルでの変数名を連続系モデルでの名前に対応付けて、離散―連続対応表T1に登録する。同様に、連続系モデルから離散系モデルに渡される値については、連続系モデルでの変数名を離散系モデルでの名前に対応付けて、連続―離散対応表T2に登録する。
ここで上記抽出処理を、ハイブリッド・システムとしてスチーム型加湿器を例に、より詳細に説明する。図4は、スチーム型加湿器の構造モデルの一例を示す。図4に示すように、スチーム型加湿器の構造モデルは、構成要素として、タンク(Water Tank)と、制御部(Control)と、蒸気生成部(Vapor Generation Plant)と、ユーザインタフェース部(UserInterface)と、ヒータ制御部(Heater Control)とを含む。そして各構成要素は次のようにデータのやり取りを行う。
ユーザインタフェース部(UserInterface)に対してユーザにより目標の湿度(target_humidity)が設定されると、ヒータ制御部(HeaterControl)は、ユーザインタフェース部(User Interface)の湿度情報(target_humidity)と制御部(Control)のモード情報(mode)とを参照して、ヒータを制御する。蒸気生成部(VaporGeneration Plant)は、制御部(Control)のファンの電力量(fan_power)情報と、ヒータ制御部(HeatControl)のヒータの電力量(heater_power)情報とに基づいて蒸気を生成する。制御部(Control)は、タンク(WaterTank)から受け取るタンクの水量(water_volume)情報と、蒸気生成部(VaporGeneration Plant)から受け取る蒸気の温度(water_temperature)情報とに基づいて、スチーム型加湿器のモードを決定する。
このように構成されるスチーム型加湿器において、加湿器システム自体の振る舞いは、UML等のモデリング言語を用いて離散システムとしてモデル化される。一方、加湿器内の水や室内の空気等の物理特性は、Simulink等のモデリング言語を用いて連続システムとしてモデル化される。従って、図4に示す構造モデルにおいて、離散系モデルとして記述されるのは、破線で囲まれた制御部(Control)とユーザインタフェース部(UserInterface)である。また、連続系モデルとして記述されるのは、点線で囲まれたタンク(Water Tank)、蒸気生成部(Vapor GenerationPlant)、及び熱制御部(Heat Control)である。
従って、図4に示すスチーム型加湿器の構造モデルにおいて、離散系モデルから連続系モデルに渡される値として抽出されるのは、ユーザインタフェース部(User Interface)から熱制御部(HeatControl)へ渡される湿度(target_humidity)の値と、制御部(Control)から熱制御部(HeatControl)へ渡されるモード(mode)の値と、制御部(Control)から蒸気生成部(Vapor Generation Plant)へ渡されるファンの電力量(fan_power)である。図5(a)に、抽出した値を登録した離散―連続対応表T1を示す。
同様にして、図4に示すスチーム型加湿器の構造モデルにおいて、連続系モデルから離散系モデルに渡される値として抽出されるのは、タンク(Water Tank)から制御部(Control)へ渡されるタンクの水量(water_volume)の値と、蒸気生成部(Vapor Generation Plant)から制御部(Control)へ渡される蒸気の温度(water_temperature)の値である。図5(b)に、抽出した値を登録した連続―離散対応表T2を示す。
図3に戻って、処理はステップ305へ進み、次に、離散系モデルから、連続系モデルの変数の値を参照して評価される、イベントの発生条件式を抽出する。具体的には、まず離散系モデルから全てのイベント発生条件式を抽出する。そして、抽出したイベント発生条件式の中から、変数名が連続―離散対応表T2の離散系モデルでの名前フィールドに登録されている変数を含むものを選択する。選択したイベント発生条件式は、ユニークな識別子を付けて、条件式対応表T3に登録する。
上記イベント発生条件式の抽出処理を、再びハイブリッド・システムとしてスチーム型加湿器を例に、図6を参照してより詳細に説明する。図6は、ステートマシーン図によって記述された、スチーム型加湿器の離散系モデルの一例を示す。上述したように、スチーム型加湿器の離散系モデルは、加湿器自体の振る舞い、即ち図4に示す制御部(Control)とユーザインタフェース部(UserInterface)の振る舞いをモデル化したものである。
図6に示すように、スチーム型加湿器の離散系モデルは大きく分けて、オフ(Off)の状態、オン(On)の状態、タンクが空(WaterShortage)の状態の3つの状態を有する。そして各状態は更に2つの状態に分けられる。即ち、オフ(Off)の状態は更にスタンバイ(Stanby)の状態とクールダウン(CoolDown)の状態に分けられる。オン(On)の状態は更にウォームアップ(WarmUp)状態とランニング(Running)状態に分けられる。タンクが空(WaterShortage)の状態は更にクールダウン(CoolDown)の状態とサスペンド(Suspended)の状態に分けられる。以下図6を参照して、6つの状態の状態遷移について説明する。
ユーザインタフェース部(User Interface)を介してスチーム型加湿器の電源が入れられると、TurnOnSignalに応答してスチーム型加湿器はオン(On)状態におけるウォームアップ(WarmUp)状態になる。この状態でイベント発生条件式water_tempature_in.value>=99が満たされると、状態はオン(On)状態におけるランニング(Running)状態に遷移する。また、オン(On)状態においてイベント発生条件式water_volume_in.value==0が満たされると、スチーム型加湿器は、タンクが空(WaterShortage)の状態におけるクールダウン(CoolDown)の状態になる。そして、この状態で、イベント発生条件式water_tempature_in.value<=safe_tempatureが満たされると、状態はタンクが空(WaterShortage)の状態におけるサスペンド(Suspended)の状態に遷移する。
また、オン(On)状態又はタンクが空(WaterShortage)の状態において、ユーザインタフェース部(UserInterface)を介してスチーム型加湿器の電源が切られると、TurnOffSignalに応答してスチーム型加湿器はオフ(Off)の状態におけるクールダウン(CoolDown)の状態になる。そして、この状態でイベント発生条件式water_tempature_in.value<=safe_tempatureが満たされると、状態はオフ(Off)の状態におけるスタンバイ(Stanby)の状態に遷移する。
このように記述されるスチーム型加湿器の離散系モデルから、連続系モデルの変数の値を参照する変数、即ち、変数名が連続―離散対応表T2の離散系モデルでの名前フィールドに登録されている変数を含むイベント発生条件式を抽出する。上記説明した4つのイベント発生条件式はいずれも変数water_temperature_in又は変数water_volume_inを含み、これらは図5(b)に示す連続―離散対応表T2の離散系モデルでの名前フィールドに登録されているので、本実施例では上記説明した全てのイベント発生条件式を選択する。
そして、選択した4つのイベント発生条件式の各々に、ユニークIDとしてExp1、 Exp2、 Exp3、 Exp4を付け、条件式対応表T3に登録する。登録の際、連続系モデルの変数の値を参照する変数については、連続―離散対応表T2を参照して、その離散系モデルでの名前を連続系モデルでの名前に変換する。また、各イベント発生条件式に、連続―離散対応表T2に含まれない離散系モデルの変数が含まれる場合、その変数名もイベント発生条件式に対応付けて条件式対応表T3に登録する。
例えばExp1のIDを付けられたイベント発生条件式water_tempature_in.value<=safe_tempatureについて説明すると、変数water_tempature_in.valuは連続系モデルの変数の値を参照する変数であるため、離散系モデルでの名前water_tempature_in.valueを、連続系モデルでの名前water_tempature_out.valueに変換して、条件式対応表T3に登録する。また、変数safe_tempatureは、連続―離散対応表T2に含まれない離散系モデルの変数であるため、イベント発生条件式Exp1に対応付けて、条件式対応表T3に登録する。図7に示す表は、このようにして作成される条件式表T3の一例である。
再び図3に戻って、処理はステップ310へ進み、ステップ305で抽出した全てのイベント発生条件式について、離散系モデルにイベント発生条件式の活性/非活性を記録するコードを挿入する。ここで、イベント発生条件式の活性/非活性とは、離散系モデルにおいてシステムの状態が、そのイベント発生条件式によるイベントを待つ状態になる/待たない状態になることを意味する。
図8は、イベント発生条件式の活性/非活性を記録するコードを挿入された、離散モデルの一例を示す。ここで、関数enable(E)は、イベント発生条件式Eが活性したこを条件式活性表T4に記録するものである。同様に関数disenable(E)は、イベント発生条件式Eが非活性したことを条件式活性表T4に記録するものである。条件式活性表T4については後述する。
例えば図6に関して説明したように、離散モデルは、(On)状態におけるウォームアップ(WarmUp)状態にあるとき、イベント発生条件式water_tempature_in.value>=99(Exp2)が満たされると、ランニング(Running)状態に遷移し、また、イベント発生条件式water_volume_in.value==0(Exp3)が満たされると、タンクが空(WaterShortage)の状態におけるクールダウン(CoolDown)の状態に遷移する。従って、図8の離散モデルに示すように、(On)状態におけるウォームアップ(WarmUp)状態では、イベント発生条件式Exp2とExp3によるイベントを待つことになるので、enable(Exp2)とenable(Exp3)のコードを挿入する。一方、イベント発生条件式Exp2によるイベント発生後の遷移先のランニング(Running)状態では、イベント発生条件式Exp2によるイベントは待たないので、disenable(EXp2)のコードを挿入する。
図3に戻って、処理はステップ315へ進み、条件式表T3に基づいて、離散系シミュレーション部200の作業用データ領域を作成する。具体的には、条件式表T3の各エントリーに対して、(ID、活性/非活性)からなる条件式活性表T4を作成する。図9(a)に、図7に示す条件式表T3を基に作成した条件式活性表T4を示す。なお作成時には、イベント発生条件式の全てについて、活性/非活性フィールドに「非活性」を登録し初期化する。
処理はステップ315からステップ320へ進み、次に条件式表T3に基づいて、連続系シミュレーション部300の作業用データ領域を作成する。具体的には、条件式表T3の各エントリーに対して、(ID、活性/非活性)からなる条件式活性表T5を作成する。図9(b)に、図7に示す条件式表T3を基に作成した条件式活性表T5を示す。ここでも作成時には、イベント発生条件式の全てについて、活性/非活性フィールドに「非活性」を登録し初期化する。また、条件式表T3の参照する離散系モデルの変数フィールドに登録されている全ての変数に対して、(変数名、値)からなる離散系モデル変数値表T6を作成する。図9(c)に、図7に示す条件式表T3を基に作成した離散系モデル変数値表T6を示す。なお作成時には、全ての変数について「未定を示す値」を登録し初期化する。そして前処理は終了する。
このように前処理で作成した各表は、離散系シミュレーション部200と連続系シミュレーション部300の各データ格納部に格納される。具体的には、離散系シミュレーション部200のデータ格納部には、離散―連続対応表T1、条件式表T3、及び条件式活性表T4が格納される。また、連続系シミュレーション部300のデータ格納部には、連続―離散対応表T2、条件式表T3、条件式活性表T5、及び離散系モデル変数値表T6が格納される。
次に図1に戻って、ハイブリッド・システムのシミュレーション装置100の機能構成を詳細に説明する。離散系シミュレーション部200のイベント処理部205は、現在時刻currentTimeにスケジュールされているイベントの処理を行う。イベントの処理によって新たにイベントが発生する場合、発生したイベントが即時処理するイベントであれば、イベント処理部205は直ちにこれを処理する。一方、発生したイベントが指定時間後に処理するイベントであれば、イベント処理部205は該イベントをスケジューラに登録する。なお、イベント処理部205によるイベントの処理によって、前処理において埋め込んだ関数enable(E)、disenalbe(E)が実行されると、条件式活性表T4の対応するイベント発生条件式の活性/非活性フィールドの値が更新される。
要求メッセージ作成部210は、イベント処理部205によるイベントの処理の終了に応答して、連続系シミュレーション部300へ送信する要求メッセージを作成する。要求メッセージの作成は次のようにして行う。(1)まず、条件式活性表T4から、活性/非活性フィールドの値が「活性」であるイベント発生条件式のIDを抽出する。(2)次に、条件式表T3を参照して、抽出したIDをもつイベント発生条件式で使用される離散系モデルの変数の変数名と値を抽出する。
(3)更に、離散―連続対応表T1を参照して、連続系シミュレーション部300により参照される離散系モデルの変数の変数名と値を抽出する。なお、抽出した離散系モデルでの変数名は連続系モデルでの変数名に変換する。最後に(1)〜(3)で抽出した全てのデータに、スケジューラに登録されている次のイベントの処理時刻を追加して、要求メッセージが完成する。要求メッセージ作成部210は、要求メッセージが完成すると、これを連続系シミュレーション部300へ送信する。このようにして、本発明の実施の形態に係る離散系シミュレーション部200は、連続系モデルの変数の値を参照して評価されるイベント発生条件式を、連続系シミュレーション部300において評価できるようにする。
応答受付部215は、連続系シミュレーション部300から、要求メッセージに対する応答メッセージを受け付ける。詳細は後述するが応答メッセージには、連続系シミュレーション部300における現在時刻currentTimeを示す現在時刻データと、真と評価されたイベント発生条件式のIDと、離散系シミュレーション部200により参照される連続系モデルの変数の変数名と値が含まれている。但し、連続系モデルの変数の変数名は離散系モデルでの名前に変換されている。応答受付部215は、応答メッセージのうち離散系モデルの変数の変数名と値を、連続系データ更新部220へ渡す。応答受付部215はまた、応答メッセージのうち現在時刻データを時刻更新部225へ渡す。
連続系データ更新部220は、応答受付部215から受け取ったデータに基づいて、連続系モデルの変数を参照する離散系モデルの変数を更新する。時刻更新部225は、応答受付部215から受け取ったデータに基づいて、離散系シミュレーション部200における現在時刻currentTimeを更新する。イベント処理部205は、時刻更新部225による時刻の更新に応答して、真と評価されたイベント発生条件式のIDに基づいて決定した遷移先の状態におけるイベントの処理を繰り返す。
一方、連続系シミュレーション部300のシミュレーションは、離散系シミュレーション部200から要求メッセージを受け取ることにより処理を開始する。要求受付部305は、要求メッセージを受け取ると、要求メッセージに含まれるイベント発生条件式のIDと、離散系モデルの変数の変数名と値を基に、条件式活性表T5と離散系モデル変数値表T6を更新する。また、要求受付部305は、要求メッセージに含まれる連続系モデルの変数とその値を基に、離散系モデルの変数を参照する連続系モデルの変数を更新する。更に、要求受付部305は、要求メッセージに含まれる次のイベントの処理時刻のデータをデータ領域に一時的に格納する。
ステップ実行部310は、要求受付部305によるデータの更新に応答して、連続系モデルの現在時刻をステップ時間間隔進めるシミュレーションを実行する。上述したように、本実施形態に係る連続系シミュレーション部300は、微分方程式などの数式で表される対象を、入力値から出力値を計算する連続値アルゴリズムとして記述したものを振る舞いモデルとしたものである。従って、ステップ実効部310は、現在時刻tiでの入力値に基づいて、時刻ti+1での出力値を求めることでシミュレーションを進める。ステップ実行部310は、シミュレーションを1ステップ実行すると、現在時刻currentTimeをステップ時間分増加させる。
条件式評価部315は、条件式活性表T5を参照して、活性されているイベント発生条件式のすべてを条件式表T3から読み出す。そして条件式評価部315は、離散系モデル変数値表T6に登録されている離散系モデルの変数の値を参照して、読み出したイベント発生条件式を順次評価する。イベント発生条件式の評価がいずれも真とならない場合、即ちいずれの条件式も条件が満たされない場合、条件式評価部315は、制御をスケジュール確認部325へ渡す。一方いずれか1つでもイベント発生条件式の評価が真となった場合、条件式評価部315は、真となったイベント発生条件式のIDを応答メッセージ作成部330へ渡す。
スケジュール確認部325は、条件式評価部315から制御を渡されると、データ領域から次のイベントの処理時刻のデータを読出し、連続系シミュレーション部300における現在時刻currentTimeと比較する。次のイベントの処理時刻が現在時刻currentTimeと等しい場合、スケジュール確認部325は制御を応答メッセージ作成部330へ渡す。一方、次のイベントの処理時刻が現在時刻currentTimeよりも先である場合、スケジュール確認部325は制御をステップ実行部315へ戻す。
応答メッセージ作成部330は、条件式評価部315からイベント発生条件式のIDを受け取ったことに応答して、又はスケジュール確認部325から制御を渡されると、離散系シミュレーション部200からの要求メッセージに対する応答メッセージを作成する。応答メッセージの作成は次のようにして行う。(1)まず、連続―離散対応表T2を参照して、離散系シミュレーション部200により参照される連続系モデルの変数の変数名と値を抽出する。ここで、抽出した連続系モデルでの変数名は離散系モデルでの変数名に変換する。
(2)連続系シミュレーション部300における現在時刻currentTimeを示す現在時刻データを取得する。(3)イベント発生条件式のIDを受け取った場合、これを(1)〜(2)で取得した全てのデータに追加する。そして、応答メッセージが完成する。応答メッセージ作成部330は、応答メッセージが完成すると、これを離散系シミュレーション部200へ送信する。このようにして、本発明の実施の形態に係る連続系シミュレーション部300は、イベント発生条件式の結果が真となるか、現在時刻currentTimeが次のイベントの処理時刻とならない限り、ステップ時間間隔ごとにシミュレーションの結果を離散系シミュレータに通知する必要がないようにする。
次に図10を参照して、本発明の実施の形態に係る離散系シミュレーション部200によるシミュレーションと連続系シミュレーション部300によるシミュレーションの処理の流れの一例を説明する。図10において、離散系シミュレーション部200によるシミュレーションはステップ1000から開始する。まず、離散系シミュレーション部200は現在時刻currentTimeの値を0で初期化する。次に離散系シミュレーション部200は、時刻currentTimeでのイベントを処理する(ステップ1005)。上述したように、イベントの処理には関数enable()、disenable()の実行が含まれ得る。
一方、図10において、連続系シミュレーション部300によるシミュレーションはステップ1050から開始する。連続系シミュレーション部300はまず、その現在時刻currentTimeの値を0で初期化する。そして、連続系シミュレーション部300は、離散系シミュレーション部200からの要求メッセージを待つ(ステップ1055)。
離散系シミュレーション部200は、ステップ1005においてイベントの処理が終わると、次に連続系モデルの変数を参照して評価されるイベント発生条件式の評価を要求する要求メッセージを作成し(ステップ1010)、連続系シミュレーション部300へ送信する(ステップ1015)。要求メッセージの作成方法の説明は、繰り返しを避けるためここでは省略するが、要求メッセージには、離散系モデルにおける次のイベントの処理時刻、活性化した条件式のID、条件式で使用される離散系モデルの変数の値、及び連続系シミュレーション部300が参照する離散系モデルの変数の値が含まれる。但し、離散系モデルの変数の変数名は、連続系モデルでの変数名に変換されている。
連続系シミュレーション部300は、離散系シミュレーション部200から要求メッセージを受け取ると、要求メッセージを解析し(ステップ1060)、要求メッセージに含まれるデータで、作業表、即ち条件式活性表T5及び離散系モデル変数値表T6を更新する(ステップ1065)。連続系シミュレーション部300はまた、要求メッセージに含まれるデータで、離散系モデルの変数を参照する連続系モデルの変数を更新する。
データ更新後、連続系シミュレーション部300は、連続系モデルの現在時刻をステップ時間間隔進めるシミュレーションを実行し(ステップ1070)、連続系シミュレーション部300が有する現在時刻currentTimeをステップ時間分増加させる(ステップ1075)。そして連続系シミュレーション部300は、条件式活性表T5から、活性された条件式のIDを1つ選択し(ステップ1080)、条件式活性表T5に未評価の活性された条件式のIDがある場合(ステップ1085:YES)、選択したIDをもつイベント発生条件式を、条件式表T3及び離散系モデル変数値表T6を参照して評価する(ステップ1090)。
イベント発生条件式の評価の結果が偽である場合(ステップ1095:NO)、処理はステップ1080に戻り、連続系シミュレーション部300は、条件式活性表T5から、未だ選択されてない活性された条件式のIDを1つ選択し、上記処理を繰り返す。
一方、条件式活性表T5に未評価の活性された条件式のIDがない場合(ステップ1085:NO)、連続系シミュレーション部300は、要求メッセージに含まれている離散系モデルにおける次のイベントの処理時刻と連続系シミュレーション部300が有する現在時刻currentTimeとを比較する(ステップ1100)。現在時刻currentTimeが次のイベントの処理時刻よりも前の時間である場合(ステップ1100:NO)、処理はステップ70に戻り、連続系シミュレーション部300は、連続系モデルの現在時刻をステップ時間間隔進めるシミュレーションを再び実行する。
一方、ステップ1095においてイベント発生条件式の評価の結果が真である場合、又はステップ1100において現在時刻currentTimeが次のイベントの処理時刻である場合、処理はステップ1105へ進み、連続系シミュレーション部300は、離散系シミュレーション部200からの要求メッセージに対する応答メッセージを作成する。応答メッセージの作成方法の説明は、繰り返しを避けるためここでは省略するが、応答メッセージには、連続系シミュレーション部300における現在時刻currentTimeを示す現在時刻データと、真と評価されたイベント発生条件式のIDと、離散系シミュレーション部200により参照される連続系モデルの変数の値が含まれる。但し、連続系モデルの変数の変数名は離散系モデルでの変数名に変換されている。
そして、連続系シミュレーション部300は完成した応答メッセージを離散系シミュレーション部200へ送信する(ステップ1110)。
離散系シミュレーション部200は、連続系シミュレーション部300から応答メッセージを受け取ると、応答メッセージを解析し(ステップ1025)、応答メッセージに含まれるデータを用いて、離散系モデルにおける現在時刻currentTimeを更新する(ステップ1030)。離散系シミュレーション部200はまた、応答メッセージに含まれるデータで、連続系モデルの変数を参照する離散系モデルの変数を更新する。
その後、離散系シミュレーション部200は、現在時刻currentTimeをシミュレーションの終了時刻と比較する(ステップ1035)。現在時刻currentTimeが終了時刻よりも前の時間である場合(ステップ1035:NO)、処理はステップ1005へ戻り、離散系シミュレーション部200は、応答メッセージに含まれるイベント発生条件式のIDに基づいて遷移する状態を決定し、該状態におけるイベントの処理を実行する。一方現在時刻currentTimeが終了時刻であるか、終了時刻を過ぎている場合(ステップ1035:YES)、シミュレーションは終了する。
次に図11を参照して、スチーム型加湿器(ハイブリッド・システム)モデルのシミュレーションに本発明を適用した実行例を説明する。なお、前処理の結果、図5、図7、図9に示す各表が作成され、用意されているものとする。図11において上側の軸は、離散系シミュレータの時間軸を示し、下側の軸は、連続系シミュレータの時間軸を示す。また図中に示す番号は、離散系シミュレータ又は連続系シミュレータによるシミュレーションの実行順を示す。
時刻320において、離散系シミュレータがイベントを処理する。ここでイベントの処理により、関数enable(Exp4)が実行され、条件式活性表T4においてExp4の活性/非活性フィールドが「活性」に更新されたとする。すると離散系シミュレータは、条件式活性表T4を参照して、活性化されたイベント発生条件式のIDを含む、要求メッセージadvance{830,{Exp4},{safe_tempature=50},{fan_wat_in=10,Target_humidity_in=50},mode_in=20}}を作成する。メッセージに含まれるデータは、先頭から、次のイベントの処理時刻、活性化した条件式のID、条件式で使用される離散系モデルの変数の値、離散系モデルから連続系モデルに渡される値である。
連続系シミュレータは時刻320において、要求メッセージを受信し、要求メッセージに含まれるデータに基づいて、条件式活性表T5と離散系モデル変数値表T6を更新する。条件式活性表T5は更新されて、Exp4の活性/非活性フィールドが「活性」に変更される。また、離散系モデル変数値表T6は更新されて、safe_tempatureの値フィールドが50に変更される。連続系シミュレータはまた、要求メッセージに含まれるデータに基づいて、離散系モデルの変数を参照する連続系モデルの変数を更新する。その後、連続系シミュレータは、活性化されたイベント発生条件式Exp4の評価が真になるまで、現在時刻をステップ時間間隔進めるシミュレーションとイベント発生条件式Exp4の評価とを繰り返す。
本実施例では、図11に示すように、1ステップのシミュレーションの実行とイベント発生条件式Exp4の評価とがm回繰り返された時刻690において、イベント発生条件式Exp4の評価が初めて真となる。従って、次のイベントの処理時刻840よりも先にイベント発生条件式が真となるので、連続系シミュレータは、時刻690でイベント発生条件式Exp4の評価が真となると、要求メッセージに対する応答メッセージreply{690, {Exp4},{water_tempature_in=48, water_volume_in=82}}を作成する。メッセージに含まれるデータは、先頭から、更新する時刻(連続系シミュレータ側の現在の時刻)、真になった条件式ID、連続系モデルから離散系モデルに渡される値である。
離散系シミュレータは、時刻320において、応答メッセージを受信し、応答メッセージに含まれるデータに基づいて現在時刻320を690に更新する。離散系シミュレータはまた、応答メッセージに含まれるデータに基づいて、連続系モデルの変数を参照する離散系モデルの変数を更新する。そして、離散系シミュレータは、真になった条件式IDに基づいて遷移先の状態を決定し、該状態におけるイベントの処理を実行する。
このように、スチーム型加湿器モデルに対して、スイッチ・オン操作の後にスイッチ・オフ操作を行うシナリオで本発明を適用してシミュレーションを行うと、従来のステップ時間ごとに時刻とデータとを同期させる方式では、データを1まとめにして送信するようにしたとしても通信が400回必要であったのが、僅か8回の通信で済むようになる。
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。例えば、上記説明した実施例では、要求メッセージ作成部210は、離散系モデルから連続系モデルに渡す変数を、その値が前回送信したときの値から変更されているか否かに関わらず要求メッセージに含めていた。しかしながら離散系シミュレーション部200と連続系シミュレーション部300間の通信データ量を減らす観点から、送信する変数の変数名と値を記録しておき、その値が前回送信したときの値から変更されている変数についてのみその変数名と値とを要求メッセージに含めるようにしてもよい。応答メッセージ作成部325についても同様である。
また、上記説明した実施例では、離散系モデルにおいて現在どのイベントの発生を待つ状態となっているかを調べるために、離散系モデルに、イベント発生条件式の活性/非活性を記録するコードを挿入した。しかしながら、例えば離散系モデル自体に対する変更が困難であるというような場合には、これに代えて、次のような方法を採用することができる。即ち、前処理において離散系モデルの各状態と、該状態のときに活性化されているイベント発生条件式のIDの対応表(図12を参照)とを作成しておき、シミュレーションの実行の際には、離散系モデルの状態から、対応表を利用して、活性化されているイベント発生条件式を求めるという方法である。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。

Claims (12)

  1. 離散システムと共にハイブリッド・システムを構成する連続システムの振る舞いを、前記離散システムの振る舞いをシミュレーションする離散系シミュレーション・プログラムと通信しながらシミュレーションする連続系シミュレーション・プログラムであって、前記連続系シミュレーション・プログラムはコンピュータに、
    前記離散系シミュレーション・プログラムから、該離散系シミュレーション・プログラムが処理するイベントのイベント発生条件式の評価の要求を受け取るステップであって、前記イベント発生条件式は、前記連続システムを記述する変数である複数の連続系変数のうちの少なくとも1つの連続系変数の値を参照して評価される、前記評価の要求を受け取るステップと、
    前記評価の要求の受け取りに応答して、前記イベント発生条件式の評価が真になるまで、前記連続システムの現在時刻をステップ時間間隔進めるシミュレーションと前記イベント発生条件式の評価とを繰り返すステップと、
    前記離散系シミュレーション・プログラムへ、前記離散システムのシミュレーションにおいて参照される前記少なくとも1つの連続系変数の値を送る前に該値を記録するステップと、
    前記イベント発生条件式の評価が真となったことに応答して、前記現在時刻を示す現在時刻データ、及び前記複数の連続系変数のうち前記離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数の値を前記離散系シミュレーション・プログラムへ送るステップと
    次に前記イベント発生条件式の評価が真となったことに応答して前記離散系シミュレーション・プログラムへ前記少なくとも1つの連続系変数の値を送る場合に、該値に変化がないことを条件に前記少なくとも1つの連続系変数の値の送信を取りやめるステップと
    を実行させる、前記連続系シミュレーション・プログラム。
  2. 前記コンピュータに、前記離散系シミュレーション・プログラムから、前記離散システムを記述する変数である複数の離散系変数のうち、前記連続システムのシミュレーションにおいて参照する少なくとも1つの離散系変数の値を、前記評価の要求と共に受け取るステップを更に実行させる、請求項1に記載の連続系シミュレーション・プログラム。
  3. 前記コンピュータに、
    前記離散系シミュレーション・プログラムから、該離散系シミュレーション・プログラムが処理するイベントのうち最も近い将来にスケジュールされているイベントの発生時刻を、前記評価の要求と共に受け取るステップと、
    前記現在時刻をステップ時間間隔進めるシミュレーションごとの前記イベント発生条件式の評価において結果が真でない場合に、前記現在時刻が前記イベントの発生時刻となったか否か判定するステップと、
    前記現在時刻がイベントの発生時刻となったことに応答して、前記複数の連続系変数のうち前記離散システムのシミュレーションにおいて参照される前記少なくとも1つの連続系変数の値を、前記離散系シミュレーション・プログラムへ送るステップ
    を更に実行させる、請求項1に記載の連続系シミュレーション・プログラム。
  4. 連続システムと共にハイブリッド・システムを構成する離散システムの振る舞いを、前記連続システムの振る舞いシミュレーションする連続系シミュレーション・プログラムと通信しながらシミュレーションする離散系シミュレーション・プログラムであって、前記離散系シミュレーション・プログラムはコンピュータに、
    現在時刻において発生したイベントを処理するステップと、
    前記イベントの処理の終了に応答して、前記連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価されるイベントの発生条件式の評価の要求を、前記連続系シミュレーション・プログラムへ送るステップと、
    前記イベントの発生条件式の評価結果が真になった時刻を示す現在時刻データと、前記複数の連続系変数のうち、前記離散システムのシミュレーションにおいて参照する少なくとも1つの連続系変数の値とを、前記連続系シミュレーション・プログラムから受け取るステップと、
    前記離散系シミュレーション・プログラムへ、前記離散システムのシミュレーションにおいて参照される前記少なくとも1つの連続系変数の値を送る前に該値を記録するステップと、
    次に前記イベント発生条件式の評価が真となったことに応答して前記離散系シミュレーション・プログラムへ前記少なくとも1つの連続系変数の値を送る場合に、該値に変化がないことを条件に前記少なくとも1つの連続系変数の値の送信を取りやめるステップと
    前記連続系シミュレーション・プログラムから受け取った前記少なくとも1つの連続系変数の値を前記コンピュータの記憶部に記録するステップと、
    前記現在時刻を、受け取った前記現在時刻データで更新するステップと
    を実行させる、前記離散系シミュレーション・プログラム。
  5. 前記評価の要求は、前記複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価される1以上のイベントの発生条件式のうち、前記イベントの処理により評価が必要になったイベントの発生条件式の評価の要求である、請求項に記載の離散系シミュレーション・プログラム。
  6. 前記コンピュータに、前記イベントの処理の終了に応答して、離散システムを記述する変数である複数の離散系変数であって、かつ前記イベントの処理により更新された前記複数の離散系変数のうち、前記連続システムのシミュレーションにおいて参照される少なくとも1つの離散系変数の各値を、前記評価の要求と共に前記連続系シミュレーション・プログラムへ送るステップを更に実行させる、請求項に記載の離散系シミュレーション・プログラム。
  7. 前記コンピュータに、
    前記イベントの処理の終了に応答して、該イベントの次にスケジュールされるイベントの発生時刻を、前記評価の要求と共に前記連続系シミュレーション・プログラムへ送るステップと、
    前記複数の連続系変数のうち、前記離散システムのシミュレーションにおいて参照する前記少なくとも1つの連続系変数の前記発生時刻における値を、前記連続系シミュレーション・プログラムから受け取るステップ
    を更に実行させる、請求項に記載の離散系シミュレーション・プログラム。
  8. 前記コンピュータに、前記現在時刻の更新に応答して、前記記憶部に記録した前記少なくとも1つの連続系変数の値を参照して前記イベントの処理を行うステップを更に実行させる、請求項に記載の離散系シミュレーション・プログラム。
  9. ハイブリッド・システムを構成する離散システムの振る舞いをシミュレーションする離散系シミュレーション・プログラムと、該プログラムと通信しながら前記ハイブリッド・システムを構成する連続システムの振る舞いをシミュレーションする連続系シミュレーション・プログラムとを含む、前記ハイブリッド・システムのシミュレーション・プログラムであって、
    前記離散系シミュレーション・プログラムは、コンピュータに、
    前記離散システムにおける現在時刻において発生したイベントを処理するステップと、
    前記イベントの処理の終了に応答して、前記連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価されるイベント発生条件式の評価の要求を、前記連続系シミュレーション・プログラムへ渡すステップと
    を実行させ、
    前記連続系シミュレーション・プログラムは、前記コンピュータに、
    前記評価の要求の受け取りに応答して、前記イベント発生条件式の評価が真になるまで、前記連続システムの現在時刻をステップ時間間隔進めるシミュレーションと前記イベント発生条件式の評価を繰り返すステップと、
    前記離散系シミュレーション・プログラムへ、前記離散システムのシミュレーションにおいて参照される前記少なくとも1つの連続系変数の値を送る前に該値を記録するステップと、
    前記イベント発生条件式の評価が真となったことに応答して、前記連続システムにおける前記現在時刻を示す現在時刻データの値、及び前記複数の連続系変数のうち、前記離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数の値を、前記離散系シミュレーション・プログラムに渡すステップと
    次に前記イベント発生条件式の評価が真となったことに応答して前記離散系シミュレーション・プログラムへ前記少なくとも1つの連続系変数の値を送る場合に、該値に変化がないことを条件に前記少なくとも1つの連続系変数の値の送信を取りやめるステップと
    を実行させ、
    前記離散系シミュレーション・プログラムは、前記コンピュータに更に、
    前記離散システムにおける前記現在時刻を示す現在時刻データを、前記連続系シミュレーション・プログラムから受け取った前記現在時刻データの値で更新するステップと、
    前記現在時刻データの更新に応答して、前記連続系シミュレーション・プログラムから受けとった前記少なくとも1つの連続系変数の値を参照して、発生したイベントの処理を行うステップ
    を実行させる、前記シミュレーション・プログラム。
  10. 離散システムと共にハイブリッド・システムを構成する連続システムの振る舞いを、前記離散システムの振る舞いをシミュレーションする離散系シミュレータと通信しながらシミュレーションする、コンピュータにより実行される連続システムのシミュレーション方法であって、
    前記コンピュータが、前記離散系シミュレータから、該離散系シミュレータが処理するイベントのイベント発生条件式の評価の要求を受け取るステップであって、前記イベント発生条件式は前記連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価される、前記評価の要求を受け取るステップと、
    前記コンピュータが、前記評価の要求の受け取りに応答して、前記イベント発生条件式の評価が真になるまで、前記連続システムの現在時刻をステップ時間間隔進めるシミュレーションと前記イベント発生条件式の評価とを繰り返すステップと、
    前記コンピュータが、前記離散系シミュレーへ、前記離散システムのシミュレーションにおいて参照される前記少なくとも1つの連続系変数の値を送る前に該値を記録するステップと、
    前記コンピュータが、前記イベント発生条件式の評価が真となったことに応答して、前記現在時刻を示す現在時刻データ、及び前記複数の連続系変数のうち、前記離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数の値を前記離散系シミュレータへ送るステップと、
    前記コンピュータが、次に前記イベント発生条件式の評価が真となったことに応答して前記離散系シミュレーへ前記少なくとも1つの連続系変数の値を送る場合に、該値に変化がないことを条件に前記少なくとも1つの連続系変数の値の送信を取りやめるステップと
    を含む、前記連続システムのシミュレーション方法。
  11. 連続システムと共にハイブリッド・システムを構成する離散システムの振る舞いを、前記連続システムの振る舞いをシミュレーションする連続系シミュレーと通信しながらシミュレーションする、コンピュータにおいて実行される離散システムのシミュレーション方法であって、
    前記コンピュータが、現在時刻において発生したイベントを処理するステップと、
    前記コンピュータが、前記イベントの処理の終了に応答して、前記連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価されるイベント発生条件式の評価の要求を、前記連続系シミュレータへ送るステップと、
    前記コンピュータが、前記イベント発生条件式の評価結果が真になった時刻を示す現在時刻データと、前記連続系変数のうち、前記離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数の値とを、前記連続系シミュレータから受け取るステップと、
    前記コンピュータが、前記離散システムの振る舞いをシミュレーションする離散系シミュレーへ、前記離散システムのシミュレーションにおいて参照される前記少なくとも1つの連続系変数の値を送る前に該値を記録するステップと、
    前記コンピュータが、次に前記イベント発生条件式の評価が真となったことに応答して前記離散系シミュレーへ前記少なくとも1つの連続系変数の値を送る場合に、該値に変化がないことを条件に前記少なくとも1つの連続系変数の値の送信を取りやめるステップと
    前記コンピュータが、前記連続系シミュレータから受け取った前記少なくとも1つの連続系変数の値を前記コンピュータの記憶部に記録するステップと、
    前記コンピュータが、前記現在時刻を、受け取った前記現在時刻データで更新するステップと
    を含む、前記離散システムのシミュレーション方法。
  12. ハイブリッド・システムを構成する離散システムの振る舞いをシミュレーションする離散系シミュレーション・プログラムと、該プログラムと通信しながら前記ハイブリッド・システムを構成する連続システムの振る舞いをシミュレーションする連続系シミュレーション・プログラムとを含む、前記ハイブリッド・システムのシミュレーション・プログラムをコンピュータにより実行する方法であって、
    前記コンピュータが、前記離散系シミュレーション・プログラムを使用して、
    前記離散システムにおける現在時刻において発生したイベントを処理するステップと、
    前記イベントの処理の終了に応答して、前記連続システムを記述する変数である複数の連続系変数のうち少なくとも1つの連続系変数の値を参照して評価されるイベント発生条件式の評価の要求を、前記連続系シミュレーション・プログラムへ渡すステップと
    を実行し、
    前記コンピュータが、前記連続系シミュレーション・プログラムを使用して、
    前記評価の要求の受け取りに応答して、前記イベント発生条件式の評価が真になるまで、前記連続システムの現在時刻をステップ時間間隔進めるシミュレーションと前記イベント発生条件式の評価を繰り返すステップと、
    前記離散系シミュレーション・プログラムへ、前記離散システムのシミュレーションにおいて参照される前記少なくとも1つの連続系変数の値を送る前に該値を記録するステップと、
    前記イベント発生条件式の評価が真となったことに応答して、前記連続システムにおける前記現在時刻を示す現在時刻データの値、及び前記複数の連続系変数のうち、前記離散システムのシミュレーションにおいて参照される少なくとも1つの連続系変数の値を、前記離散系シミュレーション・プログラムに渡すステップと、
    次に前記イベント発生条件式の評価が真となったことに応答して前記離散系シミュレーション・プログラムへ前記少なくとも1つの連続系変数の値を送る場合に、該値に変化がないことを条件に前記少なくとも1つの連続系変数の値の送信を取りやめるステップと
    を実行し、
    前記コンピュータが更に、前記離散系シミュレーション・プログラムを使用して、
    前記離散システムにおける前記現在時刻を示す現在時刻データを、前記連続系シミュレーション・プログラムから受け取った前記現在時刻データの値で更新するステップと、
    前記現在時刻データの更新に応答して、前記連続系シミュレーション・プログラムから受けとった前記少なくとも1つの連続系変数の値を参照して、発生したイベントの処理を行うステップと
    を実行する、前記方法。
JP2009071789A 2009-03-24 2009-03-24 ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム Expired - Fee Related JP5278904B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009071789A JP5278904B2 (ja) 2009-03-24 2009-03-24 ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム
US12/724,700 US8332202B2 (en) 2009-03-24 2010-03-16 Hybrid system simulation method and simulation program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009071789A JP5278904B2 (ja) 2009-03-24 2009-03-24 ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム

Publications (2)

Publication Number Publication Date
JP2010224894A JP2010224894A (ja) 2010-10-07
JP5278904B2 true JP5278904B2 (ja) 2013-09-04

Family

ID=42785331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009071789A Expired - Fee Related JP5278904B2 (ja) 2009-03-24 2009-03-24 ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム

Country Status (2)

Country Link
US (1) US8332202B2 (ja)
JP (1) JP5278904B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5278904B2 (ja) * 2009-03-24 2013-09-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム
JP5208891B2 (ja) * 2009-09-07 2013-06-12 株式会社東芝 ハイブリッドモデルシミュレーション装置および方法
EP3265934A1 (en) * 2015-03-05 2018-01-10 The MathWorks, Inc. Conditional-based duration logic
US10853532B2 (en) * 2015-05-27 2020-12-01 The Mathworks, Inc. Graphical modeling for accessing dynamic system states across different components
KR101742119B1 (ko) 2016-07-28 2017-05-31 국방과학연구소 이산 사건 시스템 모델과 연속시간 시스템 모델간의 조립을 이용한 하이브리드 시스템의 모델링 및 시뮬레이션을 위한 방법 및 장치
CN114598374B (zh) * 2020-12-07 2023-08-29 千寻位置网络有限公司 数据处理方法、装置、电子设备及计算机可读介质
CN115576218B (zh) * 2022-09-27 2023-08-01 华中科技大学 基于协调事件轴同步的电力信息物理联合仿真方法及系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977529A (en) * 1973-02-23 1990-12-11 Westinghouse Electric Corp. Training simulator for a nuclear power plant
US3909597A (en) * 1974-05-22 1975-09-30 Us Army Hybrid analog and digital computer
US6324495B1 (en) * 1992-01-21 2001-11-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronous parallel system for emulation and discrete event simulation
US5701439A (en) * 1992-03-30 1997-12-23 Boeing North American, Inc. Combined discrete-event and continuous model simulation and analysis tool
US5732192A (en) * 1994-11-30 1998-03-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Global qualitative flow-path modeling for local state determination in simulation and analysis
US5963724A (en) * 1996-02-16 1999-10-05 Analogy, Inc. Component-based analog and mixed-signal simulation model development
JPH09305639A (ja) * 1996-05-10 1997-11-28 Hitachi Ltd シミュレーション方法および装置
US7246054B2 (en) * 2002-05-13 2007-07-17 Rensselaer Polytechnic Institute Discrete event simulation system and method
JP3940665B2 (ja) * 2002-11-27 2007-07-04 株式会社東芝 ハイブリッドシミュレーション装置およびプログラム
EP1590750A2 (en) * 2003-02-05 2005-11-02 Moldflow Ireland Ltd Apparatus and methods for performing process simulation using a hybrid model
JP2004243044A (ja) * 2003-02-17 2004-09-02 Sp Project:Kk
US7580813B2 (en) * 2003-06-17 2009-08-25 Microsoft Corporation Systems and methods for new time series model probabilistic ARMA
US7689296B2 (en) * 2006-04-28 2010-03-30 Honeywell Asca Inc. Apparatus and method for controlling a paper machine or other machine using measurement predictions based on asynchronous sensor information
JP2008243042A (ja) * 2007-03-28 2008-10-09 Toshiba Corp ハイブリッドモデルのシミュレーション装置、方法及びプログラム
US8364456B2 (en) * 2008-01-10 2013-01-29 The Mathworks, Inc. Conditionally executed states
JP5278904B2 (ja) * 2009-03-24 2013-09-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム

Also Published As

Publication number Publication date
US8332202B2 (en) 2012-12-11
JP2010224894A (ja) 2010-10-07
US20100250226A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5278904B2 (ja) ハイブリッド・システムのシミュレーション方法及びシミュレーション・プログラム
KR101345068B1 (ko) 워크플로우 모델링 및 시뮬레이션 시스템 및 방법
JP7366860B2 (ja) 攻撃シナリオシミュレーション装置、攻撃シナリオ生成システム、および攻撃シナリオ生成方法
Ramaswamy et al. Scalable behavioral emulation of extreme-scale systems using structural simulation toolkit
JP4140917B2 (ja) 検証作業支援システム及びその方法
Subedha et al. An efficient coverage driven functional verification system based on genetic algorithm
CN103309676B (zh) 用于海洋数值模拟ROMS的Web服务封装方法以及系统
JP2013513143A (ja) 照会リネージの自動生成のための方法、システム、およびコンピュータ・プログラム
US8417489B2 (en) Duration estimation of repeated directed graph traversal
KR102155126B1 (ko) 이산 사건 명세와 모의 개체 아웃소싱 기반의 반도체 공정 모델링 및 시뮬레이션 시스템 및 방법
US8671396B2 (en) Dynamic interface reduction for software model checking
JP2011065576A (ja) テストケース生成装置およびその方法
Bianchi et al. An ASM-based model for grid job management
CN116522606A (zh) 一种基于作战行为树的仿真系统及方法、设备及介质
EP3683675A1 (en) System, apparatus and method of integrated deployment
US20110087922A1 (en) Test method and tool for master-slave systems on multicore processors
CN114661477A (zh) 一种低能耗的区块资源证明方法、装置和电子设备
Erkkinen et al. Automatic code generation-technology adoption lessons learned from commercial vehicle case studies
Souri Formal specification and verification of a data replication approach in distributed systems
CN109492272A (zh) 一种可重构定时网络条件事件系统的建模与验证方法及系统
WO2019021898A1 (ja) 開発支援装置
Wang et al. A safety simulation analysis algorithm for Altarica language
Bondavalli et al. Modelling and model-based assessment
CN117077397A (zh) 用于耦合计算和仿真的方法、系统、设备和介质
JP7203374B2 (ja) 設備制御装置、学習装置、設備制御方法、学習器の生産方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120928

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120928

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130322

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130322

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

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130426

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130514

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees