JP2007518190A - モデルイベントを用いてモデル構成要素の実行をスケジューリングするためのシステム及び方法 - Google Patents

モデルイベントを用いてモデル構成要素の実行をスケジューリングするためのシステム及び方法 Download PDF

Info

Publication number
JP2007518190A
JP2007518190A JP2006549406A JP2006549406A JP2007518190A JP 2007518190 A JP2007518190 A JP 2007518190A JP 2006549406 A JP2006549406 A JP 2006549406A JP 2006549406 A JP2006549406 A JP 2006549406A JP 2007518190 A JP2007518190 A JP 2007518190A
Authority
JP
Japan
Prior art keywords
event
model
execution
block
specified
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.)
Pending
Application number
JP2006549406A
Other languages
English (en)
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.)
MathWorks Inc
Original Assignee
MathWorks Inc
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 MathWorks Inc filed Critical MathWorks Inc
Publication of JP2007518190A publication Critical patent/JP2007518190A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/12Symbolic schematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)

Abstract

グラフィカルモデルの動態とそのモデルの構成要素の実行との因果関係を指定し、構成するための方法を開示する。モデル構成要素の実行はモデルイベントの発生に結びつけられている。最初に、モデルイベントをモデリング環境で定義する。イベントの定義で指定されたモデルにおける条件が発生すると、そのイベントが「告知」される。そのイベントの発生に関連付けられているモデル構成要素が、そのイベント告知の通知を「受け取り」、実行される。サブシステム内の任意構成要素を、モデル内の非連続構成要素としてイベントの発生時に実行するように指定できる。モデルイベントと構成要素の実行との関連付けは、モデルのビューにおいて構成要素を連結するグラフィカル標識を描くことなく指定できる。

Description

関連出願
本願は、その内容を引用して本明細書に援用する2004年1月15日に提出された米国特許出願第10/759,346号の利益を主張する。
本発明の例示的な実施形態は、概して、モデリング環境内でモデル構成要素を実行することに関し、より詳細には、モデルイベントを用いたモデリング構成要素の実行スケジューリングに関する。
関連出願
本発明の例示的な実施形態は、「ブロックダイヤグラム・モデリングで実行コンテキストを使用するためのシステム及び方法」と題した現在係属中の米国特許出願第10/414,644号に関連し、その内容を引用して本明細書に援用する。
マサチューセッツ州ナティック所在のThe Mathworks社から入手可能のSimulink(商標)はグラフィカルモデリング環境、特にブロックダイヤグラム環境の一例である。Simulink(商標)により、ユーザは動的システムの画像モデルを作成できる。このモデルはブロックと呼ばれる一組の記号からなる。それぞれのブロックは、ゼロ個又はそれ以上の数の入力ポートと、出力ポートと、状態とを備えることができる。それぞれのブロックは、その入力と、状態と、出力とが連続的に且つ/或いは特定の時刻に離散的に変化しうる動的システムを表す。線を用いてブロックのポートを互いに連結し、ブロック間のデータ従属性を表現する。信号は、ブロックダイヤグラム内のブロック同士を連結する線に沿って伝達する値として表すことができる。
あるブロックの入力、状態、及び出力の全てが連続的に或いは単一の固定した周期的なレートで変化する場合、このブロックを「シングルレート」ブロックという。入力、状態、及び出力が、2つ以上のレートで定義される複数の時刻で同時に或いは別々に更新する場合、このブロックを「マルチレート」ブロックという。あるモデルがマルチレートブロックを含むか、異なるレートで動作する2つ以上のシングルレートブロックを含む場合、そのモデル自身はマルチレート(シングルレートでなく)である。
あるブロックの関数定義がそのブロックが置かれているモデルのコンテキスト外部にある場合、そのブロックを「アトミック」と呼ぶ。Simulink(商標)は、一組の予め定義済みのブロック(例えば、合計、積、ゲインなど)を備えており、又、ユーザは自分で書いた「S関数」を介して自分自身のアトミックブロックを作成することも可能である。アトミックであるため、S関数の関数定義は、例えばCコード又はMATLAB「m」コードなどを用いてモデルのコンテキスト外部に指定される。「合成」ブロックとは、その定義がアトミック及び合成ブロックの組を用いて該モデルを介して指定されるブロックである。Simulink(商標)では、ユーザは、「サブシステム」、その定義が相互連結した定義済みのブロックの組からなる合成ブロック、ユーザが書いたS関数、及び他のSimulink(商標)サブシステムを指定できる。サブシステムを階層的に入れ子にして、「モデル階層」を定義できる。
Simulink(商標)のサンプルレートにより、モデルの構成要素を実行する頻度が指定可能となる。図1は、モデル構成要素の実行を制御するにあたりサンプルレートを使用する例を示す。例えば、設計者は、プラントブロック4が連続レートで実行し、コントローラブロック10が周期的且つ離散的レートで実行することを指定できる。モデル構成要素の実行は、シミュレーション時にSimulink(商標)インフラストラクチャにより、或いは実時間実装を目的としてオペレーティングシステムによりスケジューリングされる。モデルの動態とこれらレートのスケジューリングとの間には何の因果関係もなく、構成要素が実行される時点は予め定められている。
Simulink(商標)はサンプルレートの伝播をサポートする。例えば、図1のゲインブロック8及び12のレートは未指定のまま(すなわち、「継承」と指定)であるかもしれない。その場合、プラントブロック4及びコントローラブロック10のレートが指定されていると仮定すると、ゲインブロック8及び12はプラントブロック4及びコントローラブロック10からそれらのレートを継承する。
Simulink(商標)は、モデルの動態とモデル構成要素の実行との因果関係を指定する機構も提供し、それには関数呼び出し、トリガ動作サブシステム、繰返し子サブシステム、アクションサブシステム、及び使用可能サブシステムが含まれる。因果関係を指定することにより、ユーザは、モデル内の信号及び他のデータの現在及び過去の値を条件としてモデル構成要素の実行を指定できる。
しかし、条件付き実行の範囲は一般に1つのサブシステムに限定されており、その理由は、上記関係を指定する従来の方法では、条件付き実行の範囲を任意ブロックの組(サブシステムを構成するブロックの組でなく)として定義できないからである。あるサブシステムに含まれず且つ/或いはモデル内で連続的でない一組のブロックを同時に実行するのが望ましい場合があるので、これは大きな制約である。例えば、条件付き実行の従来方法では、モデル内に分散された様々なブロックをパワーアップやパワーダウン次に実行できない。結果的に、因果関係の構成様態は限定されてしまう。モデルの動態とモデル構成要素の実行との因果関係を指定する従来の方法では、ユーザがサブシステム内のブロックの半分を使用可能とし、その他ブロックをトリガすることもできない。同様に、サブシステム内の幾つかのブロックを1つのトリガでトリガし、残りのブロックを別のトリガでトリガすることもできない。
モデルの動態とモデル構成要素の実行との因果関係を指定する従来の機構の別の欠点は、これら機構が、因果律を示すためにブロックダイヤグラム内でグラフィカルな結合を必要とする点である。これを行うとユーザによっては、ダイヤグラムの視覚表示が錯綜した状態となると感じることがある。因果関係を指定するための従来の機構の別の制約は、これら機構が、高度なソフトウェア或いは初期設定、例外、又はタスクなどのオペレーティングシステム構成体に自然にマッピングしないことである。同様に、こうした因果関係を指定するための従来の機構は、この関係に関連付けられたファーストクラスオブジェクトを欠いているので、この関係を構成し、特性を割り当てるのが困難である。又、ユーザがこうした機構(例えば、使用可能サブシステムに関連付けられた使用可能及び使用禁止を実現する方法)に関連付けられた暗黙の動態に直接的に影響を与え、これら暗黙の動態に基づいてモデルの構成要素を条件付きで実行するのも容易でない。
発明の概要
本発明の例示的な実施形態は、モデルの動態(原語:dynamics)とそのモデルの構成要素の実行との因果関係を指定し、構成するための機構を提供する。モデル構成要素の実行は「モデルイベント」の発生に結びつけられている。最初に、モデルイベントをモデリング環境で定義する。前記イベントの定義で指定された前記モデルにおける条件が発生すると、該イベントが「告知(原語:post)」される。前記イベントの発生に関連付けられているモデル構成要素が、前記イベント告知の通知を「受け取り」、実行される。サブシステム内の孤立した構成要素やモデル内の非連続構成要素をイベントの発生時に実行するように指定できる。モデルイベントと構成要素の実行との関連付けは、前記モデルのビューにおいて構成要素を連結するグラフィカル標識を描くことなく指定できる。
一実施形態では、複数の実行可能な構成要素を具備した少なくとも1つのモデルを備えたモデリング環境において、一方法は、前記モデルの実行を指定イベントの発生に関して監視する。前記指定イベントの発生が確認されると、該発生はイベントハンドラに告知される。すると、前記イベントハンドラへの通知に応答して構成要素が実行される。
別の実施形態では、複数の実行可能構成要素を具備した少なくとも1つのモデルを備えたモデリング環境において、一方法は、前記モデルの実行を指定イベントの発生に関して監視する。前記指定イベントの発生が確認されると、前記指定イベントの発生の確認に応答して、別のイベントの実行に割り込みが掛けられる。前記指定イベントの発生の確認に応答して、前記モデルにおける演算が行われる。
一実施形態では、モデリング環境において、システムは複数の実行可能構成要素を備えたグラフィカルモデルを含む。前記システムはイベントハンドラも含む。前記イベントハンドラは、前記モデルから指定イベントの発生の通知を受け取る。更に、前記システムは、前記イベントハンドラから前記指定イベントの発生の通知を受け取る少なくとも1つの構成要素を含む。前記の通知を受け取る構成要素は、前記通知に応答して実行される。
本発明の例示的な実施形態は、モデル構成要素の実行を、指定されたモデルイベントの発生に結びつけるための機構を提供する。サンプルレートはイベントとして指定されるので、モデル構成要素の実行をそのモデルの動態に結びつける。非連続モデル構成要素を、モデルイベント発生に基づいて条件付きで実行するように構成できる。更に、構成要素実行の範囲は、ある種の従来システムで必要となるように、サブシステム全体には制限されない。イベントの発生に基づいた構成要素の条件付き実行は、例外処理にも利用できる。モデルのビューに付加的な構成要素結合を描かなくても、モデル構成要素とイベントと間の関連付けを確立できる。
説明を明確にするため、本明細書に含まれる本発明の例示的な実施形態は、Simulink(商標)及びMATLAB(商標)に基づいたモデリング環境(何れもマサチューセッツ州ナティック所在のMathWorks社から入手可能なアプリケーション)を参照して説明する。しかし、当業者であれば、本発明の例示的な実施形態は、マサチューセッツ州ナティック所在のMathWorks社から入手可能なStateflow(商標)を含む従来のブロックダイヤグラム、状態ダイヤグラミング・アプリケーション、及びデータフロー・ダイヤグラミング環境に加え、それ以外のモデリング環境及びそれ以外の種類のダイヤグラムにも適用できることは理解するはずである。
本発明の例示的な実施形態で使用されるようなSimulink(商標)モデルイベント(これ以降は「イベント」又は「Simulink(商標)イベント」とも呼ぶ)は、MATLABワークスペースにおいてオブジェクトとして明示的に定義できる。その属性は、名前、色、オプションの期待レート、オプションのタスク、及び該イベントに対応する関数がどのように実装されるべきか(インラインに対する明示的に定義したシグナチャ)に関する説明を含むことができる。
定義済みのイベントは、ユーザが定義する任意の条件に基づいて、モデル内でブロックにより「告知」される。そのイベントを「受け取る」ブロックは、それが告知されるとそれを実行する。「告知」とは、特定イベントの発生を示すメッセージをイベントハンドラに送ることである。イベントハンドラに登録或いはその他の様態で関連付けられているブロックには、そのイベントが告知された時にその発生が通知されることになる。
図2は、告知処理を利用するモデル20の一例を示す。イベント「A」は定義済みで、「青」色の属性を与えられている。モデル20では、「告知」ブロック22は、その入力ポート26の信号がゼロを上回る時を条件としてイベント「A」を告知するよう構成されている。ダイアログボックスは、ユーザから告知ブロック22に関する幾つかのパラメータを要求する。これらパラメータは、インプットの数36、このブロックが実行される条件38、及び定義済みモデルイベント40に割り当てられる名前40を含む。モデル20のビューは、「定数」ブロック28のサンプルレートがイベント「A」に指定されていることを示している。このサンプルレート(すなわち、イベント「A」の発生)は、そのサンプルレートを継承するように設定されている「単位遅延」ブロック30及び「出力1」ブロック32に伝播する。従って、3つのブロック全てがイベント「A」を受け取る。これら3つのブロック28、30、及び32全ては、イベント「A」の「色」を帯び、論理的関連付けをユーザに表す方法として表示において青で陰影を付けることができる。従って、「正弦波」ブロック21の出力が正の時は、「A」が「告知」ブロックにより告知され、3つのブロック28、30、及び32が実行され、このモデルのルートアウトポートの値が更新される。
図2に示したモデルは、本発明の例示的な実施形態で与えられるサブシステムの条件付き実行に関連した幾つかの問題の解決を示している。因果関係に関連付けられたファーストクラス・オブジェクト「A」が存在するので、色などの特性を構成し、その関係に割り当てることができる。条件付き実行の範囲はサブシステムに限定されない。条件付きで実行される3つのブロック28、30、及び32は親サブシステム内でグループ化されておらず、モデル20の不連続域から選択できる。更に、この条件付き実行の範囲はレート伝播を利用する(「定数」ブロック28のみが「A」をそのサンプルレートとして指定している)。この結果得られるサンプルレート指定方法は、「A」を受け取る全てのブロックがそのサンプルレートを「A」として明示的に指定されていなければならない場合に比べて簡潔となる。又、ブロックとイベントとの関連付けでは、ダイヤグラムにおいて告知ブロック22と定数ブロック28とのグラフィカル結合を行って因果律を示す必要がない。「告知」ブロック22によって指定された条件と、3つのブロック28、30、及び32の実行との間の因果関係は、「A」と名付けたイベントオブジェクト23への共通参照を介したものである。
任意イベントの「範囲」とは、それが存在する作業領域の範囲である。作業領域がサブシステム又はモデルに関連付けられている場合、イベントの範囲はそのサブシステム又はモデルである。ブロックがそのサンプル時間をイベントとして指定できるのは、そのイベントが該ブロックからの範囲内にある場合である。
図3は、明示的告知及びイベントの受け取りが行われる環境の別の例を示し、Stateflow(商標)チャート30とそのチャートの構成要素のブロックダイヤグラム・モデル32とをより詳細に表示している。この例では、ユーザは、それぞれ属性を緑色及び青色としたイベント「A」34及びイベント「B」36を定義する。イベント34及び36は両方ともサンプルレートが20ミリ秒と指定されている。すると、Stateflowチャート30は20ミリ秒毎に実行され、正しく定義された周期的順番でこれらイベントを告知する。2つの入力ポートブロック40及び50は、そのサンプルレートをイベント「A」34及び「B」36に設定してある。残りのブロックは、これらイベントを継承サンプルレートとして受け取り、これらイベントに一致した色で陰影を付けられている。緑色のブロック40、42、44、及び46からなる組はイベント「A」を受け取り、そのイベントが告知されたときに実行される。同様に、青色のブロック50、52、54、及び56からなる組は、イベント「B」が告知されたときに実行される。
それぞれのイベントを処理するブロックの組は、モデルのソート済みブロックリストに現れる相対順で実行する。このソート済みブロックリストの順序はデータの従属性により決定される。従って、20ミリ秒毎にStateflowチャート30が実行され、一連の緑色ブロック40、42、44、及び46が左から右に実行され、続いて一連の青色ブロック50、52、54、及び56が左から右に実行される。更に、これらイベントのオプションのサンプルレートは20ミリ秒であると明示的に指定されているので、実行時間検査を行ってこれらイベントが20ミリ秒毎に告知されることを表明する。イベントのレートを明示的に指定する1つの利点は、そのレートで生成される任意コードが、連続実行の間に経過時間が必要な場合は、通常のようにタイマ使用を必要とするのでなく、この生成コードにおいて対応する定数サンプル時間を使用できることである。
明示イベントとは作業領域オブジェクトとして定義され、その告知条件がユーザにより(例えば、Simulink(商標)の「告知」ブロック又はStateflowロジックを使用することで)明示的に指定されているものだが、こうした明示的イベントとは対照的に、暗黙イベントはモデル構成体により暗黙に定義され、こうした構成体の実行に応答して自動的に告知される。ユーザは暗黙イベントを告知できない。しかし、ユーザは暗黙イベントを扱うことができるが、これはユーザが暗黙イベントに直接応答して実行されるモデル構成要素を定義できるという意味である。
本発明の例示的実施形態は、次の表に示した5種類の暗黙イベントを含む。
Figure 2007518190
当業者であれば、上記の表に挙げたものに加えて、他の種類の暗黙イベントを本発明の範囲から逸脱することなく扱うことができるのは理解するはずである。例えば、サポートできる他の種類の暗黙イベントには、積ブロックがゼロで除算を試みたり、対数ブロックがゼロの対数を取ろうとしたりする時に告知される暗黙イベントなどのエラー条件が含まれる。暗黙イベントに対応したオブジェクトはモデルの様々な作業領域に自動的にポピュレートされ、そのプロパティがユーザにより構成可能となる。
図4は、上記表に記載した暗黙イベントをタイミング図で示したものである。図4は、使用可能サブシステムにおいて範囲内にあるイベント又は関数呼出し階層におけるその下位要素(原語:descendents)の相対タイミングを示す。時間変化信号はこのサブシステムを使用可能とする信号である。5種類の暗黙イベント全ては非同期サンプルレートを備えている。暗黙イベントは、起動70、初期設定72、使用可能74、使用禁止76、及びシャットダウン78を含む。
使用可能サブシステム90における暗黙イベントの使用例を図5に示した。サブシステム90は、該サブシステムが使用可能や使用禁止になった時に告知される、それ自身に関連付けられた暗黙の使用可能及び使用禁止イベントを含む。「ゼロ次保持」ブロック92はそのサンプルレートが「使用禁止」に指定されているため、暗黙の使用禁止イベントが実行された時、すなわち使用可能サブシステム90が使用禁止となった時に実行される。「ゲイン1」ブロック94も、伝播によってそのイベント(使用禁止)をそのサンプルレートとして継承し、これら2つのブロックは、サブシステム90が使用禁止となった時に同時に実行し、且つサブシステム出力ポート96に関連付けられたメモリを更新する。
本発明の例示的な実施形態における各イベントは、そのサンプルレートが該イベントとして指定又は継承されているブロックに対応したコードへのエントリーポイントとして機能する関数(本明細書では「イベントハンドラ」とも呼ぶ)に1対1でマッピングする。イベントの告知を引き起こす条件が真であるときは、システムは必ずこの関数を呼び出すという反応を示す。この関数はコード生成時にインライン化してもよい。イベントの関数をインライン化するかどうかの選択は、対応するイベントオブジェクトのプロパティの1つである。デフォルト実装として、ユーザは暗黙イベントの関数をインライン化し、明示イベントの関数をインライン化しないよう選択できる。
Simulink(商標)イベントのプロパティの1つはそのタスクである。デフォルトでは、イベントは、それが告知される元となるコンテキストからそのタスクを継承する。例えば、図3ではイベント「A」34及び「B」36は、これらイベントを告知するStateflowチャート30と同一のタスクで実行される。図3のモデルに対応した下記の擬似コードに示したように、生成コードは、「A」及び「B」に対応する関数をローカル関数呼び出しとして呼び出す。
Figure 2007518190
イベントのタスクはモデル・タスクオブジェクトの名前として指定してもよく、実時間実装におけるタスクに対応する。Simulink(商標)タスクオブジェクトは、生成されたオペレーティングシステムのタスクに対応する。タスクオブジェクトのプロパティは、指定レート(周期的な値又は非同期)、優先順位、タスクスタックサイズ、該タスクがプリエンブティブル(原語:preemptible)かどうか、及びその他のプロパティを含むことができる。あるイベントが告知され、そのイベントのタスクがそのイベントを告知したブロック又はモデル構成体のタスクとは異なる場合、そのイベントに対応する関数がそのイベントのタスクにスケジューリングされる。もしそのタスクが周期的として指定されている場合、その関数はそのイベントが告知されているそのタスクの任意タイムステップ時に実行される。もしそのタスクが非同期に指定されている場合、そのイベント告知によって、そのタスクはオペレーティングシステムにより実行されることになる。
本発明の例示的実施形態は、タスクの使用を介してイベントの非同期的告知とマルチスレッドの実装を回避する。タスクを用いて、実時間実装においてイベントを用いる際にデータの完全性を保証する助けとするが、これは、データの完全性のためイベント遷移ブロックがどこで必要とされているかを示すことにより達成される。又、タスクは、遷移に関連付けられたタスクの相対的優先順位を指定するためにも使用される。本発明の例示的実施形態は、Simulink(商標)のレート遷移ブロックを一般化したものであるイベント遷移ブロックを用いる。図6A、6B、及び6Cは、イベント遷移及びイベント遷移ブロックの使用に関わる幾つかの問題を示す。
図6Aは、イベントA及びイベントBの発生に応答して遷移が発生したモデル100を示す。モデル100では、イベントA及びイベントBは同一のタスクを備え、データの完全性問題は、持続メモリを用いてこれら2つのイベント間の境界のデータを記憶することにより解決できる。これら2つのイベントは同一タスク内にあるため、互いをプリエンプトすることはできないし、付加的な機構(例えば、ダブルバッファリング)も必要ない。モデル100では、持続メモリは、2つの左の伝達関数102及び104の出力のために使用され、伝達関数ブロック102、104、及び106間でデータを伝達するのに遷移ブロックは必要ない。
しかし、イベントA及びBが異なるタスクで実行されるよう指定されている場合、図6Bに示したようにイベント遷移ブロックが必要となる。図6Bのモデル110では、イベントAは高優先順位のタスクを備え、イベントBは低優先順位のタスクを備える。この場合、第1伝達関数ブロック112と第2伝達関数ブロック116との間の境界に位置した遷移114と名付けられたブロックが、ゼロ次保持(原語:Zero
Order Hold)として機能する。第2伝達関数ブロック116と第3伝達関数ブロック120との間の境界に位置した遷移118と名付けられたブロックが、デフォルトで遅延として機能する。
図6Cの時間線は、図6Bのイベント遷移ブロックの機能を示す。イベント遷移ブロックである遷移114はゼロ次保持として機能するため、このブロックは、図中で「ZOH」というラベルを付けたタイムスライスにより表されている。イベント遷移ブロックである遷移118は遅延として機能するため、このブロックは、図中で「1/z」というラベルを付けたタイムスライスにより表されている。イベントAに割り当てられたタスクがイベントBを含むタスクをプリエンプトしない限り、イベント遷移ブロックである遷移114は、イベントAのハンドラが実行される度に実行される。これによって、Bのハンドラへの入力がその実行途中で変化することが避けられる。これが必要なのは、非同期の因果関係システムでは、イベントBが次にいつ告知されるかを前もって知る方法はないからである。イベント遷移ブロックである遷移118の出力関数は、イベントBのハンドラが実行を完了した後で、イベントAが告知される度に実行される。これによって、イベントAのハンドラがBのハンドラにより計算された最新値を使用するが、必要なければ遷移1の出力関数を実行しないことが保証される。
従って、図6Cでは、イベントBに関連付けられた低優先順位のタスクが実行され(ステップ130)、遅延が実行され(ステップ132)、イベントAに関連付けられた高優先順位のタスクが実行され(ステップ134)、続いてゼロ次保持が実行される(ステップ136)。すると、イベントAに関連付けられたタスクが実行される(ステップ138)が、ここでは、最後にAが実行されてからBは実行されていないので遅延が先行することはない。高優先順位のタスクが実行されると(ステップ138)、それに続いてゼロ次保持(ステップ140)が実行される。すると、Bに関連付けられた低優先順位のタスク(ステップ142)が実行され、高優先順位のタスク(ステップ144)による割り込みが起こる。高優先順位のタスク(ステップ144)が完了すると、低優先順位のタスクが既に開始しているので、この低優先順位のタスク(ステップ142)はゼロ次保持が実行されることなく再開する。この処理は更に継続していき、順番に遅延(ステップ146)、高優先順位のタスク(ステップ148)、及びゼロ次保持(ステップ150)が実行される。
データの完全性を保証するだけでなく、イベント遷移ブロックはイベント伝播時の解決に必要となることがある。しかし、同一タスク内のイベント間の遷移においては、このブロックはその入力値を持続出力にコピーする。そして、このブロックを小さくするためポストコンパイルを試行してもよい。遷移ブロックは、そのメモリを初期設定するために初期条件パラメータを必要とすることに注目されたい。ある実装例では、このパラメータのデフォルト値はゼロである。
又、イベントを用いてモデルの実行時に遭遇するエラーを処理可能である。エラーが発生すると、モデルは「例外的に(原語:exceptionally)イベントを告知」できる。例外的に告知されるイベントは「例外イベント」と呼ばれる。例外イベントの重要な特徴は、これには非例外的に告知されたイベントすなわち「通常イベント」とは異なった処理が行われることである。具体的には、あるイベントが別の例外イベントを告知した場合、例外イベントの関数を出ると最初のイベントの関数は実行を再開することはない。言い換えると、仮にBがAに例外的に割り込むと、Bが完了した後にAの実行は再開されない。任意イベントは、同一モデルで通常どおりに或いは例外的に呼び出しできることに注目されたい。
例外イベントのモデルにおける使用は図7Aに示した。モデル160では、上側の構成要素はイベントAのハンドラの一部である。入力u1 162の大きさが1e−6以下であれば、イベントBは、例外サブシステム164のスローブロック166により例外的に告知される(略して、スローされる)。例外サブシステム164は入力162を評価し、入力u1 162が1e−6以下の場合はイベントBをスローするだけである。スローブロック166の機能は告知ブロックと似ているが、スローブロック166は通常どおりでなく例外的にイベントを告知する点が異なる。イベントBがスローされると、イベントBのハンドラが実行され、データ格納168を大きな固定定数に設定する。イベントBのハンドラが終了すると、イベントBが例外としてスローされているので、制御はイベントAのハンドラに戻らず、呼出し処理に戻る。図7Aに示した処理を表すコードは次のように表現できる。
Figure 2007518190
仮にイベントBが例外としてではなく通常どおり告知されていれば、イベントBのハンドラが終了した時には、イベントAのハンドラが実行を終了したはずである。これらの2つの対照的なシナリオは図8に抽象的に示した。当業者であれば、イベントはデータ従属性により暗黙に定義される因果関係を超えた因果関係を導入するので、イベントをモデルに導入する際にブロックがどのようにソートされるかを制御するための正確な機構を備えることは重要なことは理解するはずである。
図7Aのモデルは、アトミック・サブシステムを用いて、例外イベントBを介して条件付きで回避することを意図した積ブロックの前にスローブロックが実行されるソート済みブロック順序の実行を徹底する。このアトミック・サブシステムはソート済みブロックリストで積ブロックより早いので、スローブロックも含むその内容は積ブロックより前に実行される。アトミック・サブシステムの欠点は、その内容がその親グラフと同一図表レベルでレンダリングされないので、その内容の識別が容易でなくなることである。
実行順序を制御するためにアトミック・サブシステムを使用する代わりの代替機構では、ブロックから出る分岐の優先順位を割り当てる。すると、分岐内の全ブロックはその分岐の優先順位を継承する(そうした継承が一意であり、曖昧でない場合)。図7Bには、下側分岐内のブロックを上側分岐内のブロックより前に実行すべきことを指定した「分岐優先順位ブロック」170を示した。図7Cは、図7Bの分岐優先順位ブロック170により決定される実行順序を示す。分岐優先順位ブロック170内の数「1」(172)は、下側分岐が最初に実行されるべきことを示している。分岐優先順位ブロック170内の数「2」は、上側分岐が2番目に実行されるべきことを示している。
実行順序を制御するためのアトミック・サブシステム使用に代わる付加的な代替方法を図7Dに示した。図7Dは「ブロックグループ」を使用することを示している。グループ1(176)のブロックは、ソート済みブロックリストにおいてグループ2(178)のブロックよりも前に現れる。
2つのイベントの通常の告知処理を示した図8における左側のダイヤグラムでは、モデルの実行(ステップ180)がイベントA(ステップ182)をトリガする。イベントAの実行時に、イベントBが通常どおり起こり且つ処理される(ステップ184)。イベントBの処理(ステップ184)に引き続いて、イベントAの処理(ステップ182)が再開する。イベントAの実行完了(ステップ182)に引き続いて、制御はイベントAが発生した前のモデル実行の地点に返される(ステップ180)。
2つのイベントの例外告知処理を示した図8の右側のダイヤグラムでは、モデルの実行(ステップ190)がイベントA(ステップ192)をトリガする。イベントAの実行時に(ステップ192)、イベントBが例外的に起こり且つ処理される(ステップ194)。イベントBが例外的に処理されたので、イベントAの処理が再開することなく、制御は、イベントAの発生以前に存在したモデル実行の地点まで戻る(ステップ190)。
例外イベントに関連付けられたこの「早期復帰」により、エラー条件に関わる信号の下流側の計算が無用に実行されることが防止される。例えば、図7の例では、u1の大きさチェックが行われるのは、積ブロック及びこの積ブロックから下流側のブロックの前に実行されるアトミック・サブシステムの一部としてである。割り込みイベントからの早期復帰により、イベントBがスローされた場合、それらブロックが(無用に)実行されない。
上述したように、イベントは通常どおり或いは例外的に告知される。告知ブロックはイベントを通常どおり告知するのに使用される一方、スローブロックはイベントを例外的に告知するのに使用される。更に、ユーザ指定S関数APIを用いてイベントを通常どおり或いは例外的に告知できる。モデル構成要素は、イベントが通常どおりスローされたとき或いは例外的にスローされたときにそのイベントを処理できるが、これら両方の場合にイベントを処理することはできない。ブロックのサンプル時間を「A」と指定して、イベントAが通常どおり告知されたときにイベントAを処理することを示すか、「A.例外」と指定してイベントAが例外的に告知されたときにイベントAを処理することを示すことができる。サンプル時間Aを備えたブロックは、イベントAが例外的に告知されたときはそのイベントを処理せず、サンプル時間A.例外を備えたブロックは、イベントAが通常どおりに告知されたときはそのイベントを処理しない。
例外的に告知された明示イベントは空でないハンドラを備えるはずである。すなわち、モデル中でそのイベントを例外的に処理する少なくとも1つのブロックが存在すべきである。これ以外の場合は、エラーが出される。この要件を是認するのは、明示的な例外イベントはユーザが時間を掛けて作成したモデル構成要素により告知されたものであり、又こうしたイベントはこのモデルにより処理されるべきだからという考えによるものである。空でないハンドラがあれば暗黙イベントは通常どおり告知される。通常どおり告知された暗黙イベントを処理するモデル構成要素がない場合は、このイベントは例外的に告知される。スローブロックは、それが通常どおり処理しているイベントを例外イベントとして再告知できる。このシナリオを用いることができるのは通常どおりのイベント処理が成功する保証がない場合である。初期試行に続いてこうしたイベントを例外的に処理できる。
図9は、本発明の例示的な実施形態を実施するのに適した環境を示す。電子装置200は、Simulink(商標)又はStateflow(商標)アプリケーションなどのグラフィカルモデリング及び実行環境202を保持している。電子装置200は、ワークステーション、サーバ、ラップトップ、PDA、ネットワーク接続機器、或いはグラフィカルモデリング及び実行環境202をサポート可能な他のディジタル電子装置でよい。グラフィカルモデリング及び実行環境202は、上述したように少なくとも1つのグラフィカルモデル204及びイベントハンドラ206を含む。電子装置200は、モデル204のビュー210をユーザ212に表示する表示装置208に接続している。表示装置208及びユーザ212は、電子装置200に対してローカルに位置していてもよいし、リモートに位置していてもよい。当業者であれば、本発明の範囲内で多くの異なるソフトウェア及びハードウェア構成が可能であることは理解するはずである。
本発明の例示的な実施形態で実行する一連の高水準ステップを図10に示す。この一連のステップは、グラフィカルモデリング及び実行環境202におけるモデル204の実行と共に開始される(ステップ220)。次に、このモデル実行時に予め指定されたイベントが発生したことが確認される(ステップ222)このイベント発生がイベントハンドラ206に告知される(ステップ224)。イベントハンドラ206は、そのサンプルレートがこのイベントの発生に結びつけられている登録済みブロックに通知する(ステップ226)。通知に続いて、そのサンプルレートがこのイベント発生に結びつけられているブロックが実行される(ステップ228)。
本発明の範囲を逸脱することなく一定の変更が可能であるから、上記の説明に含まれ、又添付の図面に示された全ての事項は、例示的なものとして解釈されるべきであり、逐語的な意味で解釈されるべきではない。当業者であれば、本明細書で図示し且つ説明したシステム構成は本発明の範囲に入る多数の可能なシステム構成の例であることは理解するはずである。同様に、本明細書で説明した連続ステップは例示的なものであり、本発明の範囲における唯一の連続ステップではない。
サンプルレートを用いる従来のブロックダイヤグラム・モデルを示す。 本発明の例示的な実施形態の告知処理を用いるモデルを示す。 本発明の例示的な実施形態による、Stateflow(商標)環境におけるイベントの告知及び受け取りを示す。 使用可能サブシステムにおいて発生する暗黙イベントのタイミング図である。 使用可能サブシステムにおいて暗黙イベントを用いるモデルを示す。 (A) イベント遷移ブロックが存在しない状態で、同一タスクにおいてイベント遷移が発生するモデルを示す。 (B) イベント遷移ブロックを用いた、異なるタスクにおいてイベント遷移が発生するモデルを示す。 (C) モデルにおけるイベント遷移ブロックの使用に関する時間線である。 (A) 本発明の例示的な実施形態を用いてイベントを例外として処理するモデルを示す。 (B) 本発明の例示的な実施形態を用いて、分岐優先順位ブロックにより実行順序を制御するモデルを示す。 (C) 図7Bのモデルにおける分岐優先順位ブロックにより決定される実行順序を強調表示する。 (B) 本発明の例示的な実施形態を用いて、ブロックグループにより実行順序を制御するモデルを示す。 本発明の例示的な実施形態における通常及び例外イベントの処理を対照的に示すデータ流れ図である。 本発明の例示的な実施形態を実施するのに適した環境を示す。 サンプルレートをイベント発生と関連付けるため、本発明の例示的な実施形態が実行する連続ステップの高水準ビューのフローチャートである。

Claims (32)

  1. 複数の実行可能な時間ベースの構成要素を具備した少なくとも1つのモデルを備えると共に該モデルのビューを提示するグラフィカルモデリング環境における方法であって、
    ラベルにより参照される指定イベントの発生を確認するために、前記モデルの実行を監視する段階と、
    前記モデルの前記実行時に前記指定イベントの前記発生を確認する段階と、
    前記グラフィカルモデリング環境における前記イベントの前記発生をイベントハンドラに告知する段階であって、該告知が前記イベントの前記発生を前記イベントハンドラに通知する、告知する段階と、
    前記通知に応答して、前記複数の構成要素のうちの、前記ラベルに関連付けられた少なくとも1つの構成要素を実行する段階とを含む、方法。
  2. 前記複数の構成要素の少なくとも1つを前記イベントハンドラに登録する段階と、
    前記告知に続いて、前記イベントの前記発生の通知を、前記イベントハンドラに登録した前記複数の構成要素の少なくとも1つにおいて受け取る段階とを更に含む、請求項1に記載の方法。
  3. 告知構成要素を前記ビューに表示する段階を更に含み、前記告知構成要素が、前記告知が行われる条件を指定する、請求項1に記載の方法。
  4. 少なくとも1つの構成要素の初期実行のサンプル時間を前記指定イベントの前記発生に指定する段階を更に含む、請求項1に記載の方法。
  5. 前記サンプル時間を前記モデルの少なくとも1つの他の構成要素に伝播する段階を更に含み、前記少なくとも1つの他の構成要素がサンプル時間を継承するよう構成される、請求項4に記載の方法。
  6. 前記モデルにおける複数の非連続構成要素のサンプル時間を前記イベントの前記発生に設定する段階を更に含む、請求項4に記載の方法。
  7. 前記複数の非連続構成要素の前記サンプル時間が、前記ビューで表示される構成要素間の可視連結を調整しなくても設定される、請求項6に記載の方法。
  8. 前記少なくとも1つの構成要素の前記サンプル時間が前記イベントに設定されていることを、前記ビューにおいてイベント識別名を用いて表示する段階を更に含む、請求項4に記載の方法。
  9. 前記イベントがユーザによって設定される明示イベントである、請求項4に記載の方法。
  10. 前記イベントが前記モデルの前記実行によって生じる暗黙イベントである、請求項4に記載の方法。
  11. 前記暗黙イベントがパワーアップ、パワーダウン、及び初期設定の1つである、請求項10に記載の方法。
  12. 前記暗黙イベントがサブシステムの使用可能及び使用禁止の何れかに対応する、請求項10に記載の方法。
  13. 構成要素がどのイベントを受け取るかを、前記ビューにおいてユーザ構成可能な色で示す段階を更に含む、請求項2に記載の方法。
  14. 前記モデルの前記実行を監視する対象となる前記指定イベントの実行範囲が、前記モデルの一部に制限されている、請求項1に記載の方法。
  15. 前記モデルの各イベントがイベントハンドラに1対1でマッピングし、該イベントハンドラが関数である、請求項1に記載の方法。
  16. 前記関数がインライン化されている、請求項15に記載の方法。
  17. 前記通知に応答して、分岐優先順位ブロックが少なくとも2つのブロック分岐の実行順序を示す、請求項1に記載の方法。
  18. 前記通知に応答して2つ以上のブロックグループが実行され、該ブロックグループがユーザにより選択されたブロックグループであり、該ブロックグループの実行順序がユーザにより指定される、請求項1に記載の方法。
  19. 複数の実行可能な構成要素を具備した少なくとも1つのモデルを備えたモデリング環境における方法であって、
    指定イベントの発生を確認するために前記モデルの実行を監視する段階と、
    前記モデルの前記実行時に前記指定イベントの発生を確認する段階と、
    前記指定イベントの発生の前記確認に応答して実行中イベントの前記実行に割り込む段階と、
    前記指定イベントの発生の前記確認に応答して、前記モデルにおいて演算を実行する段階とを含む、方法。
  20. 前記指定イベントが通常イベントとして扱われ、
    前記割り込まれたイベントの実行を再開する段階を更に含む、請求項19に記載の方法。
  21. 前記指定イベントが例外イベントとして扱われ、
    前記割り込まれた実行中イベントの実行を再開することなく、前記モデルの前記実行の制御を、該割り込まれたイベントを呼び出した呼出プロセスに返す段階を更に含む、請求項19に記載の方法。
  22. 前記指定イベントが、インスタンス生成されたイベントオブジェクトを用いて指定される、請求項19に記載の方法。
  23. 前記イベントが明示イベントである、請求項22に記載の方法。
  24. 前記イベントが暗黙イベントである、請求項22に記載の方法。
  25. 前記イベントオブジェクトがタスクオブジェクトに関連付けられており、該タスクオブジェクトがオペレーティングシステム・タスクに対応する、請求項22に記載の方法。
  26. 前記タスクオブジェクトが指定実行レート及び優先順位の少なくとも1つを備えた、請求項25に記載の方法。
  27. 異なるタスクを備えた少なくとも2つのイベントがモデルにおいて実行され、
    イベント遷移構成要素を用いて前記少なくとも2つのイベントに関連付けられた構成要素の実行をスケジューリングする段階を更に含み、該イベント遷移構成要素が、前記少なくとも2つのイベントに関連付けられた前記構成要素の前記実行を分離する、請求項26に記載の方法。
  28. 前記演算が分岐優先順位ブロックに示された実行順序により制御される、請求項19に記載の方法。
  29. 前記演算が2つ以上のブロックグループの実行であり、該ブロックグループがユーザにより選択されたブロックグループであり、該ブロックグループの実行順序がユーザにより指定される、請求項19に記載の方法。
  30. モデリング環境におけるシステムであって、
    複数の実行可能な構成要素を備えた少なくとも1つのグラフィカルモデルと、
    前記モデルから、指定イベント発生の通知を受け取るイベントハンドラと、
    少なくとも1つの受信ブロックとを含み、該受信ブロックが前記指定イベントの発生に関する通知を前記イベントハンドラから受け取り、前記通知に応答して実行される、システム。
  31. 前記イベントが前記モデルの実行から生じるエラーイベントである、請求項30に記載のシステム。
  32. 前記指定イベントの発生によって前記モデルの2つ以上の構成要素が実行される、請求項30に記載のシステム。
JP2006549406A 2004-01-15 2005-01-06 モデルイベントを用いてモデル構成要素の実行をスケジューリングするためのシステム及び方法 Pending JP2007518190A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/759,346 US8793602B2 (en) 2004-01-15 2004-01-15 System and method for scheduling the execution of model components using model events
PCT/US2005/000390 WO2005071537A1 (en) 2004-01-15 2005-01-06 A system and method for scheduling the execution of model components using model events

Publications (1)

Publication Number Publication Date
JP2007518190A true JP2007518190A (ja) 2007-07-05

Family

ID=34749680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006549406A Pending JP2007518190A (ja) 2004-01-15 2005-01-06 モデルイベントを用いてモデル構成要素の実行をスケジューリングするためのシステム及び方法

Country Status (7)

Country Link
US (4) US8793602B2 (ja)
EP (1) EP1706818B1 (ja)
JP (1) JP2007518190A (ja)
CN (1) CN1965293B (ja)
ES (1) ES2599006T3 (ja)
HU (1) HUE031215T2 (ja)
WO (1) WO2005071537A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128345A (ja) * 2005-11-04 2007-05-24 Toshiba Corp プログラム自動生成装置、プログラム自動生成方法、およびプログラム自動生成プログラム
JP2008084039A (ja) * 2006-09-28 2008-04-10 Hitachi Ltd 製造工程分析方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793602B2 (en) 2004-01-15 2014-07-29 The Mathworks, Inc. System and method for scheduling the execution of model components using model events
US8683426B2 (en) 2005-06-28 2014-03-25 The Mathworks, Inc. Systems and methods for modeling execution behavior
US7542892B1 (en) * 2004-05-25 2009-06-02 The Math Works, Inc. Reporting delay in modeling environments
US8201140B2 (en) 2005-08-30 2012-06-12 The Mathworks, Inc. System and method for creating and using graphical object instances in a statechart environment
CN100465886C (zh) * 2006-05-26 2009-03-04 华为技术有限公司 一种建立可扩展文档模型的装置及管理文档模型的方法
US7873500B1 (en) * 2006-10-16 2011-01-18 The Mathworks, Inc. Two-way connection in a graphical model
US9442701B1 (en) * 2007-06-21 2016-09-13 The Mathworks, Inc. Verifying models for exceptional behavior
WO2009034416A1 (en) * 2007-09-10 2009-03-19 Abb Technology Ag Configuring of intelligent electronic device
US8280832B1 (en) * 2009-03-04 2012-10-02 The Mathworks, Inc. Proving latency associated with references to a data store
IL197576A0 (en) * 2009-03-12 2009-12-24 Univ Ben Gurion A method and tool for task modeling of mobile phone applications
US8467888B2 (en) * 2009-06-05 2013-06-18 The Mathworks, Inc. Automated PID controller design
US8566804B1 (en) 2009-08-13 2013-10-22 The Mathworks, Inc. Scheduling generated code based on target characteristics
US8990783B1 (en) 2009-08-13 2015-03-24 The Mathworks, Inc. Scheduling generated code based on target characteristics
US9020792B2 (en) * 2010-09-17 2015-04-28 International Business Machines Corporation Coupling architectural and implementation/behavioral models of a computer-based system
US10055203B2 (en) * 2013-05-28 2018-08-21 The Mathworks, Inc. Implicit event broadcast in a state chart of a technical computing environment
US9128783B1 (en) 2014-03-04 2015-09-08 The Mathworks, Inc. Scheduling and executing model components in response to un-modeled events detected during an execution of the model
US10019238B2 (en) * 2015-06-23 2018-07-10 Open Text Sa Ulc Compositional entity modeling systems and methods
US10108321B2 (en) * 2015-08-31 2018-10-23 Microsoft Technology Licensing, Llc Interface for defining user directed partial graph execution
US10860947B2 (en) 2015-12-17 2020-12-08 Microsoft Technology Licensing, Llc Variations in experiment graphs for machine learning
US10169004B2 (en) 2016-05-04 2019-01-01 Open Text Sa Ulc Application development and extensibility/customization using entity modeling systems and methods
US11853690B1 (en) * 2016-05-31 2023-12-26 The Mathworks, Inc. Systems and methods for highlighting graphical models
US11244090B2 (en) * 2016-06-01 2022-02-08 The Mathworks, Inc. Systems and methods for extracting adjustable attributes of model components
US10585648B2 (en) 2016-06-01 2020-03-10 The Mathworks, Inc. Systems and methods for aggregating implicit and explicit event code of executable models
CN108089501A (zh) * 2017-12-20 2018-05-29 西安中车永电电气有限公司 基于Simulink和Sateflow的地铁永磁牵引变流器控制逻辑建模方法
US11347801B2 (en) * 2018-05-07 2022-05-31 Google Llc Multi-modal interaction between users, automated assistants, and other computing services
US11200893B2 (en) * 2018-05-07 2021-12-14 Google Llc Multi-modal interaction between users, automated assistants, and other computing services
EP3586332A1 (en) 2018-05-07 2020-01-01 Google LLC. Multi-modal interaction between users, automated assistants, and other computing services
US10970048B2 (en) * 2018-09-17 2021-04-06 Servicenow, Inc. System and method for workflow application programming interfaces (APIS)
US11042361B1 (en) * 2019-12-18 2021-06-22 The Boeing Company Multi-language model processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497500A (en) * 1986-04-14 1996-03-05 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
JP2001075619A (ja) * 1999-09-06 2001-03-23 Toshiba Corp 機構制御システム及びその開発方法
JP2003241965A (ja) * 2002-02-18 2003-08-29 Toshiba Corp プログラム作成支援方法、プログラム作成支援プログラム及びプログラム作成支援装置

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901221A (en) 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
US5821934A (en) * 1986-04-14 1998-10-13 National Instruments Corporation Method and apparatus for providing stricter data type capabilities in a graphical data flow diagram
US5286907A (en) 1990-10-12 1994-02-15 Pioneer Electronic Corporation Apparatus for reproducing musical accompaniment information
EP0490478A2 (en) * 1990-12-14 1992-06-17 Tektronix Inc. Automatic compilation of model equations into a gradient based analog simulator
US5437007A (en) 1992-11-10 1995-07-25 Hewlett-Packard Company Control sequencer in an iconic programming system
US5465240A (en) 1993-01-05 1995-11-07 Mankovitz; Roy J. Apparatus and methods for displaying text in conjunction with recorded audio programs
US5522073A (en) * 1993-11-22 1996-05-28 Hewlett-Packard Company Method and apparatus for automating and controlling execution of software tools and tool sets via when/then relationships
US5546519A (en) * 1994-02-28 1996-08-13 International Business Machines Corporation System and method for visually programming iteration
KR0138334B1 (ko) 1994-06-22 1998-05-15 김광호 영상노래반주용 기록매체 및 이에 적합한 영상노래 반주장치
US5850548A (en) 1994-11-14 1998-12-15 Borland International, Inc. System and methods for visual programming based on a high-level hierarchical data flow model
DE69621982T2 (de) 1995-04-14 2003-02-06 Toshiba Kawasaki Kk Aufnahmeträger und Wiedergabevorrichtung für Playbackdaten
JPH10171049A (ja) 1996-12-06 1998-06-26 Fuji Photo Film Co Ltd ハロゲン化銀写真感光材料およびそれを用いた写真組体
DE19715344A1 (de) 1997-04-12 1998-10-15 Hettich Andreas Fa Haematokrit-Zentrifuge mit Ablesedeckel
US5980262A (en) 1997-06-02 1999-11-09 Mitac, Inc. Method and apparatus for generating musical accompaniment signals at a lower storage space requirement
US6802053B1 (en) 1997-08-18 2004-10-05 National Instruments Corporation Graphical programming system with distributed block diagram execution and front panel display
US6526566B1 (en) 1997-11-14 2003-02-25 National Instruments Corporation Graphical programming system and method including nodes for programmatically accessing data sources and targets
US7152027B2 (en) 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
JP3781436B2 (ja) 1998-03-11 2006-05-31 スイスコム モバイル アーゲー 2進フィードバックを用いたランダムアクセス通信法
WO1999046689A1 (en) * 1998-03-12 1999-09-16 Crossworlds Software, Inc. Execution of extended activity diagrams by code generation
BR9914427A (pt) * 1998-10-16 2001-06-26 Computer Ass Think Inc Acesso a um armazenamento de dados hierárquicos através de uma entrada sql
JP2000122756A (ja) 1998-10-19 2000-04-28 Fujitsu Ltd 電子機器
JP2000305961A (ja) 1999-04-16 2000-11-02 Matsushita Electric Ind Co Ltd セルライブラリデータベースおよび設計支援装置
TW540039B (en) 1999-04-28 2003-07-01 Matsushita Electric Ind Co Ltd Optical disk, optical disk recording apparatus, optical disk reproducing apparatus, optical disk recording and reproducing apparatus, method for recording and reproducing data on optical disk, method for recording data on disk
CN1275035A (zh) 1999-05-19 2000-11-29 邦毅科技股份有限公司 无线播音显示系统及方法
US6820042B1 (en) * 1999-07-23 2004-11-16 Opnet Technologies Mixed mode network simulator
US7043693B2 (en) * 1999-08-19 2006-05-09 National Instruments Corporation System and method for programmatically generating a second graphical program based on a first graphical program
JP3974300B2 (ja) 1999-11-18 2007-09-12 松下電器産業株式会社 Ipベースlsi設計システムおよび設計方法
WO2001067192A2 (en) 2000-03-06 2001-09-13 Siemens Technology-To-Business Center Llc Programming automation by demonstration
US7047176B2 (en) * 2000-05-05 2006-05-16 Fujitsu Limited Method and system for hardware simulation
US7158926B2 (en) * 2000-05-05 2007-01-02 Sun Microsystems, Inc. Cluster availability model
US6976246B1 (en) * 2000-05-26 2005-12-13 Microsoft Corporation Finite state model-based testing user interface
JP2002101087A (ja) 2000-09-21 2002-04-05 Hitachi Ltd 情報保管システム及び情報移動システム並びにそれらに用いる記憶媒体
FR2816730B1 (fr) * 2000-11-13 2004-10-15 Commissariat Energie Atomique Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur
US7020850B2 (en) * 2001-05-02 2006-03-28 The Mathworks, Inc. Event-based temporal logic
US7275235B2 (en) 2001-08-29 2007-09-25 Molinari Alfred A Graphical application development system for test, measurement and process control applications
US7849394B2 (en) 2001-10-25 2010-12-07 The Math Works, Inc. Linked code generation report
US7139692B2 (en) * 2001-12-21 2006-11-21 Opnet Technologies, Inc. Flow propagation analysis using iterative signaling
US20030177014A1 (en) 2002-02-13 2003-09-18 Crawford Robert E. System and method for displaying multiple language text during performance or play of a musical work
US20050177816A1 (en) 2002-03-08 2005-08-11 National Instruments Corporation Automatic generation of graphical program code for a graphical program based on the target platform of the graphical program
JP3869761B2 (ja) 2002-06-05 2007-01-17 三洋電機株式会社 コンテンツ再生装置
US6880130B2 (en) * 2002-06-24 2005-04-12 National Instruments Corporation Specifying timing and triggering functionality in a graphical program using graphical program nodes
JP3671948B2 (ja) * 2002-09-24 2005-07-13 ソニー株式会社 半導体集積回路とその試験方法
JP3864881B2 (ja) 2002-09-24 2007-01-10 ヤマハ株式会社 電子音楽システムおよび電子音楽システム用プログラム
US7299458B2 (en) * 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US20040102860A1 (en) 2002-11-27 2004-05-27 Invectec Appliances Corp. Device of playing songs and displaying lyrics thereof and method therefor
US7134109B2 (en) * 2003-02-10 2006-11-07 National Instruments Corporation Parameter oriented graphical representation of hardware timing and triggering capabilities with contextual information
US7809545B2 (en) * 2003-04-16 2010-10-05 The Mathworks, Inc. System and method for using execution contexts in block diagram modeling
US7178112B1 (en) * 2003-04-16 2007-02-13 The Mathworks, Inc. Management of functions for block diagrams
TW595193B (en) 2003-05-28 2004-06-21 Winbond Electronics Corp Music format detecting and decoding apparatus for mobile phone and digital music sharing method using the same
US20040260700A1 (en) * 2003-06-20 2004-12-23 Dongwen Wang Guideline execution engine (GLEE)
TWI261183B (en) 2003-06-27 2006-09-01 Inventec Corp Edit system of accompaniment lyrics and editing and displaying method thereof
US7412366B1 (en) 2003-07-18 2008-08-12 The Mathworks, Inc. Rate grouping during code generation for multi-rate models
US8397205B2 (en) * 2003-08-07 2013-03-12 National Instruments Corporation Graphically representing timing in a graphical program
US7801715B2 (en) * 2003-08-11 2010-09-21 The Mathworks, Inc. System and method for block diagram simulation context restoration
US7366993B2 (en) 2003-08-15 2008-04-29 National Instruments Corporation Automatic graph display
EP3798874A1 (en) 2003-08-26 2021-03-31 Panasonic Intellectual Property Corporation of America Program execution device
JP2005156982A (ja) 2003-11-26 2005-06-16 Yamaha Corp 電子音楽装置及びプログラム
US7752559B1 (en) 2003-12-05 2010-07-06 The Mathworks, Inc. Graphical model preparation for embedded deployment
TWI227998B (en) 2003-12-31 2005-02-11 Inventec Corp A production and play back system of music television (MTV) and the method thereof
US8683426B2 (en) 2005-06-28 2014-03-25 The Mathworks, Inc. Systems and methods for modeling execution behavior
US8793602B2 (en) 2004-01-15 2014-07-29 The Mathworks, Inc. System and method for scheduling the execution of model components using model events
JP4182904B2 (ja) 2004-03-10 2008-11-19 ソニー株式会社 集積回路設計装置、集積回路設計プログラムおよび集積回路設計方法
US7523441B2 (en) 2004-04-16 2009-04-21 National Instruments Corporation Implementing a synchronous reactive system in a graphical program
US7530052B2 (en) * 2004-05-14 2009-05-05 National Instruments Corporation Creating and executing a graphical program with first model of computation that includes a structure supporting second model of computation
US7506304B2 (en) * 2004-05-14 2009-03-17 National Instruments Corporation Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation
US7774728B2 (en) 2004-11-26 2010-08-10 Apache Design Solutions, Inc. Method that allows flexible evaluation of power-gated circuits
US20060199161A1 (en) 2005-03-01 2006-09-07 Huang Sung F Method of creating multi-lingual lyrics slides video show for sing along
US7490341B2 (en) * 2005-06-07 2009-02-10 Nokia Corporation System and associated terminal, method and computer program product for directional channel browsing of broadcast content
US7895597B2 (en) 2005-09-15 2011-02-22 Nokia Corporation Method, apparatus and computer program product enabling full pre-emptive scheduling of green threads on a virtual machine
US8775974B2 (en) * 2005-12-21 2014-07-08 International Business Machines Corporation Multi-contextual delta navigation in a compare view
US8046207B2 (en) * 2005-12-27 2011-10-25 The Mathworks, Inc. Digital effects analysis in modeling environments
US8046732B2 (en) * 2005-12-30 2011-10-25 Sap Ag Distribution of data changes in pattern configurations
US7861217B2 (en) * 2005-12-30 2010-12-28 The Mathworks, Inc. Non-graphical model dependencies in graphical modeling environments
US20080026355A1 (en) 2006-07-27 2008-01-31 Sony Ericsson Mobile Communications Ab Song lyrics download for karaoke applications
US7840904B2 (en) * 2006-08-04 2010-11-23 National Instruments Corporation Execution target structure node for a graphical program
US20080079591A1 (en) 2006-10-03 2008-04-03 Kenneth Chow System and method for indicating predicted weather using sounds and/or music
US9332068B2 (en) 2007-11-29 2016-05-03 Ooma, Inc. Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
US8677336B2 (en) 2008-01-17 2014-03-18 Microsoft Corporation Block count based procedure layout and splitting
US8713528B1 (en) 2008-10-06 2014-04-29 The Mathworks, Inc. Verification of computer-executable code generated from a model
US8990783B1 (en) 2009-08-13 2015-03-24 The Mathworks, Inc. Scheduling generated code based on target characteristics
US9430342B1 (en) 2009-12-01 2016-08-30 Netapp, Inc. Storage system providing hierarchical levels of storage functions using virtual machines
KR101783312B1 (ko) 2011-11-15 2017-10-10 삼성전자주식회사 클러스터 간의 통신으로 인한 오버헤드를 최소화하는 장치 및 방법
US9141365B1 (en) 2013-12-20 2015-09-22 The Mathworks, Inc. Installation of a technical computing environment customized for a target hardware platform
US9128783B1 (en) 2014-03-04 2015-09-08 The Mathworks, Inc. Scheduling and executing model components in response to un-modeled events detected during an execution of the model
US9329875B2 (en) 2014-04-28 2016-05-03 International Business Machines Corporation Global entry point and local entry point for callee function
EP3301575B1 (en) 2014-05-15 2019-07-24 The MathWorks, Inc. Using an element in a first model to call a portion of a second model
US9767794B2 (en) 2014-08-11 2017-09-19 Nuance Communications, Inc. Dialog flow management in hierarchical task dialogs
US10360318B2 (en) 2014-09-22 2019-07-23 Pratt & Whitney Canada Corp. System and method for multi-domain graphical modeling
US10853532B2 (en) 2015-05-27 2020-12-01 The Mathworks, Inc. Graphical modeling for accessing dynamic system states across different components

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497500A (en) * 1986-04-14 1996-03-05 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
JP2001075619A (ja) * 1999-09-06 2001-03-23 Toshiba Corp 機構制御システム及びその開発方法
JP2003241965A (ja) * 2002-02-18 2003-08-29 Toshiba Corp プログラム作成支援方法、プログラム作成支援プログラム及びプログラム作成支援装置

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSNB200300047001; 高谷 邦夫: "Matlabの総合応用" 第1版, 20020222, p.117-122, 森北出版株式会社 *
CSND199700153005; 石塚真一: '高度な制御理論に対応した設計が可能になるMATLABファミリ' Interface 第23巻 第9号, 19970901, 84〜85, CQ出版株式会社 *
CSND200301121008; '動的システムをモデリング/シミュレーションするためのツール Simulinkの基礎' Interface 第27巻, 第10号, 20011001, p.28-52, CQ出版株式会社 *
CSNG200000982013; 'MATLAB' 計測と制御 第38巻, 第1号, 19990110, p.80-81, 社団法人計測自動制御学会 *
JPN6011024230; 高谷 邦夫: "Matlabの総合応用" 第1版, 20020222, p.117-122, 森北出版株式会社 *
JPN6012004843; '動的システムをモデリング/シミュレーションするためのツール Simulinkの基礎' Interface 第27巻, 第10号, 20011001, p.28-52, CQ出版株式会社 *
JPN6012004844; 'MATLAB' 計測と制御 第38巻, 第1号, 19990110, p.80-81, 社団法人計測自動制御学会 *
JPN6013063998; 石塚真一: '高度な制御理論に対応した設計が可能になるMATLABファミリ' Interface 第23巻 第9号, 19970901, 84〜85, CQ出版株式会社

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128345A (ja) * 2005-11-04 2007-05-24 Toshiba Corp プログラム自動生成装置、プログラム自動生成方法、およびプログラム自動生成プログラム
JP2008084039A (ja) * 2006-09-28 2008-04-10 Hitachi Ltd 製造工程分析方法
JP4706608B2 (ja) * 2006-09-28 2011-06-22 株式会社日立製作所 製造工程分析方法

Also Published As

Publication number Publication date
CN1965293A (zh) 2007-05-16
WO2005071537A1 (en) 2005-08-04
EP1706818A1 (en) 2006-10-04
EP1706818B1 (en) 2016-08-24
US8793602B2 (en) 2014-07-29
US20160012162A1 (en) 2016-01-14
ES2599006T3 (es) 2017-01-31
HUE031215T2 (en) 2017-06-28
US20160011919A1 (en) 2016-01-14
CN1965293B (zh) 2010-06-16
US20050160397A1 (en) 2005-07-21
US8458655B1 (en) 2013-06-04
US10157246B2 (en) 2018-12-18

Similar Documents

Publication Publication Date Title
JP2007518190A (ja) モデルイベントを用いてモデル構成要素の実行をスケジューリングするためのシステム及び方法
US5991790A (en) Generation and delivery of signals in a two-level, multithreaded system
US8336032B2 (en) Implementing enhanced template debug
US9009716B2 (en) Creating a thread of execution in a computer processor
US11327725B2 (en) Systems and methods for aggregating implicit and explicit event code of executable models
SE517033C2 (sv) Systemplattform för kommunikationssystem
US20150020080A1 (en) Message-based modeling
US9128783B1 (en) Scheduling and executing model components in response to un-modeled events detected during an execution of the model
US11989542B2 (en) Enhancing operator installation and upgrade management and verification
US8041551B1 (en) Algorithm and architecture for multi-argument associative operations that minimizes the number of components using a latency of the components
EP1381942B1 (en) Self-determining command path architecture background of the invention
EP2630577B1 (en) Exception control in a multiprocessor system
CN114697398B (zh) 数据处理方法、装置、电子设备、存储介质及产品
US8146109B2 (en) Version resiliency for a host application and custom code
US20090307706A1 (en) Dynamically Setting the Automation Behavior of Resources
JPH11175369A (ja) プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体
US6817019B1 (en) Tracking and propagating updates to a message-driven system of interdependent components
Jensen A timeliness model for asychronous decentralized computer systems
Zhu The PLC Operating System Machine with Modes-A Multi-Priority Queue Schema
US20070283319A1 (en) Software development framework using component-based architecture
Berryman et al. Modeling and evaluating the feasibility of timing constraints under different real-time scheduling algorithms
Fracalossi Development of an intellectual-property core to detect task scheduling errors in rtos-based embedded systems
CN115712428A (zh) 一种医学影像浏览方法、装置、设备、存储介质
JPH1091415A (ja) 状態遷移図実行装置と状態遷移図実行方法
Starr et al. Model Execution Domain

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110823

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110922

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110930

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111024

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120719

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120809

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120907

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140411

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140416

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140512

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140515

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140612

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140714

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141022