ダイアグラミング環境言語のための単純化データ信号サポート
グラフィカルモデリング環境において、モデルを単純化するため複数信号をグループ化したバス信号は、部分的又は完全な物理的定義を含む。モデルは、このバス信号は、非グループ化することなく、機能的実態を表現するグラフィカルオブジェクト内を通過させることで単純化される。モデルのシミュレーション時に、このモデルの他の構成要素からは独立して、完全な定義を備えたバス信号のコードが生成される。
【発明の詳細な説明】
【関連出願】
【0001】
本願は、その内容を引用して本明細書に援用する2003年10月31日付けの米国特許出願第10/698,805号の利益を主張する。
【技術分野】
【0002】
本発明は、ユーザによる動的システムのモデル化、シミュレーション、及び分析を可能とするグラフィカルモデリング環境のようなダイアグラミング環境に関する。より詳細には、本発明は、動的システムを表すグラフィカルモデルにおける複数の信号をグループ化するためのグラフィカルモデリング環境におけるバス信号に関する。
【背景技術】
【0003】
グラフィカルモデリング環境とは、ユーザによるプロセス又はシステムの構築及び分析を可能とするプログラムである。グラフィカルモデリング・ツールの例としては、The
MathWorks社から入手可能なSimulinkなどの時間ベース・ブロックダイアグラム、これもThe MathWorks社から入手可能なStateflow(登録商標)などの状態ベースダイアグラム及びフローダイアグラム、National
Instruments社から入手可能なLabVIEWなどのデータフロー・ダイアグラム、並びに統一モデリング言語(UML)ダイアグラムなどのソフトウェア・ダイアグラム及び他のグラフィカルモデリング環境が含まれる。
【0004】
時間ベース・ブロックダイアグラムはある種のグラフィカルモデリング環境の一例であり、ユーザによる動的システム(すなわち、出力が時間と共に変化システム)のモデル化、シミュレーション、及び分析、並びにシステムに対応するプログラムの生成を可能とする。時間ベース・ブロックダイアグラム環境を用いて、電気回路、緩衝装置、ブレーキシステム、並びにその他多くの電気、機械、及び熱力学システムを含む、広範囲にわたる現実の動的システムの挙動を調査できる。
【0005】
時間ベース・ブロックダイアグラムにおける動的システムのシミュレーションは、典型的には2つの段階からなる処理である。先ず、ユーザは、シミュレーションすべきシステムのブロックダイアグラムのようなグラフィカルモデルを作成する。グラフィカルモデルは、グラフィカルモデル・エディタのようなグラフィカル・ユーザインターフェースを用いて作成できる。グラフィカルモデルは、システム入力と、状態と、パラメータと、出力との間の時間に基づく関係を表現する。グラフィカルモデルの作成後、指定された時間にわたる動的システムの挙動を、グラフィカルモデルに入力された情報を用いてシミュレーションする。この段階では、グラフィカルモデルを用いて動的システムの出力の時間的進展を計算し且つ追跡し(グラフィカルモデルの実行)、更に、モデル全体又は一部の挙動を模倣する導入可能なソフトウェアシステム又はハードウェアシステムの記述を自動生成する(コード生成)。
【0006】
ブロックダイアグラムは、動的システムをモデル化するための、時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境内で形成されるグラフィカルモデルの一例である。動的システムのブロックダイアグラム・モデルは、線(ノード間の論理結合を表す)により相互接続されたノードの集まりとして概念的に表される。信号は、各線結合により表現される時間変化量に対応し、各瞬間において値を持つと仮定される。各ノードは基本動的システムを表すことができ、信号と状態変数との間の関係は、ノードにより表される式の組により定義される。この定義にはパラメータの概念が本質的に含まれており、パラメータは式の係数である。これら式は、入力信号と、出力信号と、状態と、時間との関係を定義するので、それぞれの線は、関連付けられた基本動的システムの入力及び/又は出力を表す。1つのノードから出て別のノードで終結する線は、最初のノードの出力が2番目のノードの入力となることを示す。任意のノードにおける個別の各入力又は出力はポートと呼ばれる。信号のソースノードは、そのシステムの式が解かれた所与の時刻に信号に書き込む。この信号の宛先ノードは、このシステムの式が解かれている時にその信号から読み出しを行う。当業者であれば、「ノード」という用語は基本動的システムのみを排他的に示すのでなく、ブロックダイアグラムの可読性及びモジュール性を向上させる他のモデリング要素を含みうることは理解するはずである。
【0007】
例えば、The Mathworks社から入手可能な時間ベース・ブロックダイアグラムの一例であるSimulink(登録商標)では、動的システムのモデルは、信号を表す線で相互接続されたブロックと呼ばれる複数のノードからなるブロックダイアグラムである。Simulink(登録商標)では、各ブロックは、基本動的システムなどの機能エンティティを表す。機能エンティティは、ブロックダイアグラムにより表されたシステムが処理しているデータに対して数学演算(すなわちアルゴリズム又は式)を実行する。各ブロックは、連続的に(連続ブロック)或いは特定の時刻に(離散ブロック)出力を生成する。この種のブロックは、任意ブロックの出力、その出力、状態、及び時間の関係を決定する。ブロックダイアグラムは、システムのモデル化に必要となる任意種類のブロックの任意数のインスタンスを含むことができる。ブロックダイアグラム・モデルにおける信号は、ブロックにより更新される、すなわち準備ができると書き込みされる(原語:ready-by
and written to)時間変化量を表す。Simulink(登録商標)及び動的システムをモデル化する他のソフトウェア製品は、動的システムのモデルをブロックダイアグラムとして構築するためのグラフィカル・ユーザインターフェース(GUI)を提供する。各ブロックダイアグラムは、予め定義されたブロックセット内のブロックを、ユーザがドラッグ・アンド・ドロップしたり、ユーザが特別に作成したりできる。
【0008】
動的システムを表す、ブロックダイアグラムのようなグラフィカルモデルを作成した後、ユーザは、このシステムの挙動を所定時間にわたりシミュレーションする。モデルに入力された情報を用いてシミュレーションを実行し、プロセッサが、シミュレーションしたモデルにおけるノードが定義した式を解いてシミュレーション結果を生成する。別法としては、プロセッサが、このグラフィカルモデルを実行可能コードに変換する。自動コード生成とは、動的システムのグラフィカルモデルからソフトウェアが自動生成される処理である。生成されたソフトウェアはコンパイルされ、次にデジタルコンピュータにより実行されて、モデルが指定する機能を実装する。
【0009】
ブロックダイアグラムのようなグラフィカルモデルの解(システム応答の計算)は、信号と動的システムを表す状態変数との関係を経時的に評価することより得られ、この時間はユーザが指定する「開始時刻」で開始され、ユーザが指定する「停止時刻」で終了する。これら関係の各評価は、時間ステップと呼ばれる。グラフィカルモデルにおける信号は経時的に変化する量を表し、これら量は、グラフィカルモデル実行中の開始時刻と停止時刻との間の全時点に関して定義される。
【0010】
Simulink(登録商標)及び他のグラフィカルモデリング環境において、ノード、ブロック、又は動的システムをモデル化するのに用いるモデル構成要素は、一般に、「仮想的」(すなわちブロックがシミュレーションにおいて積極的な役割を果たさないことを意味する)か、「非仮想的」(すなわちブロックが、グラフィカルモデルにより表現されるシステムのシミュレーションにおいて積極的な役割を果たすことを意味する)かの何れかである。仮想ブロックはグラフィカルモデルを図表的に編成するためのみに用いられる一方、非仮想ブロックはモデルの挙動に影響を与える基本動的システムを表現する。仮想ブロックは図表的な編成の便宜のために使用され、ブロックダイアグラム・モデルが記述する式のシステムの定義にはなんの役割も果たさない。ブロックダイアグラムの信号も一般に「仮想的」或いは「非仮想的」である。
【0011】
大規模なグラフィカルモデルでは、当該モデルの一区画を他の区画に接続する大量の線が含まれることがある。ブロックバス作成ブロックやバス選択ブロックなどの仮想ブロックは、信号のグループを「バス信号」と呼ばれる「束」として管理することでブロックダイアグラムが錯綜した状態を改善し、従ってモデルの可読性を向上させる。現在の技術水準では、バス信号は、論理信号の集まりとしてグループ化した(すなわち名前で)信号の集まりからなる。仮想バス作成ブロックは、複数の信号を束ねて単一のバス信号とする助けとなる。こうして、この単一バス信号はモデルの2つの区画を接続する。バス信号の宛先では、仮想バス選択ブロックが、個別の信号を他のブロックに接続できるようにこれら信号を分離する助けとなる。
【0012】
現状ではバス信号には指定がなく、ブロックダイアグラム又は他のグラフィカルモデルを分かりやすく見せるために視覚的にグループ化した信号を含むにすぎない。データタイプが異なるバス信号内の信号の演算をシミュレーションするには、これら信号はグループ化を解除する必要があり、その後でそれぞれの信号を、その信号への演算を表現する非仮想ブロックに個別に通過させる。更に、現在の時間ベース・ブロックダイアグラム及び他のグラフィカルモデリング環境では、幾つかのノード又はブロックはそれらが処理できる信号の属性に制約を課し、又、Simulink(登録商標)の単位遅延ブロック及びStateflowブロックなどの他のノード又はブロックは、バス信号を受け付けない(すなわち、バス信号に含まれる信号をグラフィカルモデルのブロックを通過する前に分解しなければならない)。
発明の概要
【0013】
本発明の一実施形態は、動的システムをモデル化し、シミュレーションし、且つ分析するための、時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境におけるバス信号の機能を拡張する。本発明の例示的な一実施形態は、データタイプが異なる複数信号からなるバス信号に非仮想演算を行うためのシステム及び方法と、時間ベース・ブロックダイアグラム又は他のグラフィカルモデリング環境におけるバス信号の定義を指定する機能とを提供する。更に、本発明は、ブロックダイアグラムの構築及び/又はシミュレーション時に静的及び動的チェックの両方を実行してバス指定を実施する。本発明は、グラフィカルモデリング環境においてバス信号を形式化して、バス信号をより効果的とし且つ直感的で容易に使用可能として、バス信号を実装するためのブロックダイアグラムを単純化する。
【0014】
一様態では、バス信号に演算を行うための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて第1信号タイプの第1データ信号と、第2信号タイプの第2データ信号とをグループ化してバス信号を形成する段階と、前記バス信号に非仮想演算を行う段階とを含む。
【0015】
別の様態では、バス信号を指定するための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、バス信号を定義する段階と、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて第1データ信号と第2信号タイプとを結合して前記定義で定められた構造を備えたバス信号を形成する段階とを含む。
【0016】
別の様態では、バス信号を指定するための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、バス信号の定義をグラフィカル・ユーザインターフェースにおいて入力する段階と、前記バス信号の前記定義をメモリに保存する段階とを含む。
【0017】
更に別の様態では、バス信号を指定するための別の方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法が、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルで使用されるバス信号の定義を定める段階と、前記バス信号に対応したコンピュータ可読命令を生成する段階とを含む。
【0018】
別の様態では、バス信号を処理するための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて第1データ信号と第2データ信号とを結合してバス信号を形成する段階と、前記バス信号を前記グラフィカルモデルの第1ドメインから第2ドメインに渡す段階とを含む。
【0019】
本発明の例示的な実施形態により可能となる拡張バス信号は、グラフィカル・プログラミング言語などのダイアグラミング・アプリケーション言語でモデル化される複雑なシステムのコードを作成、維持、シミュレーション、且つ導入する労力が大幅に減少する。
【発明を実施するための最良の形態】
【0020】
本発明は、動的システムをモデル化し、シミュレーションし、且つ/或いは分析するための改良型ツールを提供する。このツールは、時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境におけるバス信号の仮想及び非仮想定義を指定する。本発明を時間ベース・ブロックダイアグラムにおける例示的な一実施形態に関連して説明するが、当業者であれば、本発明は、状態ベース及びフローダイアグラム、データフロー・ダイアグラム、ソフトウェア・ダイアグラム、及びグラフィカル・プログラミングツールを含む他の任意適切なダイアグラミング環境で実装できることは理解するはずである。当業者であれば、本発明は、多数の異なる応用例及び実施形態で実現可能であり、本明細書に記載した特定の実施形態に特に限定されないことは理解するはずである。
【0021】
本発明の例示的な一実施形態では、時間ベース・ブロックダイアグラムにおけるモデリング・アプリケーションは、バス信号の仮想又は非仮想定義を指定し且つ定義済みバス信号のコードを、動的システムのシミュレーション時にグラフィカル・エンティティから独立して生成する機能を含む。例えば、ユーザは、バス信号を構成するコンポーネント信号の物理的属性を指定できる。例示的な一実施形態では、時間ベース・ブロックダイアグラムにおけるバス信号は形式化されて、バス信号をより効果的、直感的に理解可能とし、且つ容易に使用可能としてバス信号を実現するためのブロックダイアグラムを単純化する。グラフィカルモデリング環境におけるバス信号を完全に指定可能とする機能は、データ入力を大幅に減少させ、より簡潔なブロックダイアグラムを実現する。
【0022】
図1は、本発明の例示的な実施形態を実施するのに適した環境を示す。電子装置2は、本発明の一実施形態によるソフトウェアが記憶されたメモリ4と、このメモリ内に記憶されたソフトウェアを実行するプロセッサ(CPU)7と、システムハードウェアを制御する他のプログラムとを含む。入出力装置8は、グラフィカル・ユーザインターフェースを表示するスクリーンなどの表示装置8aを含み、電子装置2とインターフェースを取ってユーザと電子装置2との対話を可能とする。又、例示的なこのシステムは、マウス8b及びキーボード8cなどの他の適切な従来の入出力周辺装置も含む。
【0023】
例えば、メモリ4は、システムダイアグラムの電子バージョンを作成且つシミュレーション可能なモデリング・アプリケーション6を保持している。こうしたシステムダイアグラムの電子バージョンには、ブロックダイアグラム、状態ダイアグラム、信号ダイアグラム、フローチャート・ダイアグラム、シーケンス図、UMLダイアグラム、データフロー・ダイアグラム、回路図、ラダーロジック・ダイアグラム、又は運動学的要素ダイアグラムがあり、何れかを表示装置8aを介してユーザ10に表示できる。適切なモデリング・アプリケーションの例としては、The
MathWorks社のSimulinkバージョン5.0を備えたMATLABバージョン6.1、National Instruments社から入手可能なLabVIEW、DasyLab、及びDiaDem、Agilent社から入手可能なVEE、Measurement
Computing社から入手可能なSoftWIRE、Visual Solutions社から入手可能なVisSim、Elanix社から入手可能なSystem
VIEW、Coreco社から入手可能なWiT、PPT Vision社から入手可能なVision Program Manager、Khoral Research社から入手可能なKhoros、並びにその他多数が含まれるが、それらに限定されない。メモリ4は、例えば、CD-ROM、フロッピー(登録商標)ディスク、テープ装置などの任意適切なインストール媒体や、DRAM、SRAM、EDO
RAM、ラムバスRAMなどのコンピュータ・システムメモリ又はランダムアクセスメモリや、ハードドライブ又は光学記憶装置を含む磁気媒体などの不揮発性記憶装置を含むことができる。このメモリは、他の種類のメモリ又はそれらの組合せを含むこともできる。
【0024】
代替的な実施形態では、更に、電子装置2がインターネットなどのネットワークに接続されている。当業者であれば、モデリング・アプリケーション6が使用するダイアグラムは電子装置2にローカルに記憶させてもよいし、ネットワークを介して電子装置2と接続したリモート位置9に記憶させてもよいことは理解するはずである。同様に、モデリング・アプリケーション6はネットワークサーバ又はリモートピアに記憶してもよい。
【0025】
本発明の例示的な実施形態のモデリング・アプリケーション6は、多数の汎用構成要素を含む。本明細書の説明はマサチューセッツ州ナティック所在のThe
MathWorks社のSimulinkバージョン5.0(リリース13)を中心としているが、当業者であれば、本発明は他のグラフィカルモデリング環境にも適用できることは理解するはずである。例示的なモデリング・アプリケーション6の汎用構成要素は、動的システムのモデルを図式的に指定するブロックダイアグラム・エディタ6aを含む。ブロックダイアグラム・エディタ6aにより、ユーザは、動的システムを視覚的、絵図的に表すブロックダイアグラムのようなグラフィカルモデルの構築、編集、表示、注釈付け、保存、及び印刷などの作業が可能となる。又、例示的なモデリング・アプリケーション6は、データが機能ユニットと非機能ユニットとの間でどのように伝達されるかを表す信号線及びバスなどのグラフィカル・エンティティ6bやブロック6cも含む。上述のように、ブロックは、標準的なブロックダイアグラム・モデルの基本的な数学的要素である。ブロックダイアグラム実行エンジン6dもこのアプリケーションに実装されており、グラフィカルモデルを処理してシミュレーションの結果を生成したり、このグラフィカルモデルを実行可能コードに変換したりするために用いられる。
【0026】
例示的なこの実施形態では、モデリング・アプリケーション6は、これもMathWorks社から入手可能なMATLABなどの技術計算プログラム11の随伴プログラムとして実装されている。
【0027】
図2は、本発明の例示的な一実施形態による、動的システムのシミュレーションに関わるステップを図示するフローチャートである。ステップ12では、ユーザが、動的システムを表すブロックダイアグラム・モデルを作成する。ステップ12でブロックダイアグラム・モデルを作成すると、ステップ14で、実行エンジン6dがこのブロックダイアグラム・モデルをコンパイルする。次にステップ16で、実行エンジン6dがこのブロックダイアグラム・モデルを連結して、モデルの「メモリ内実行可能」バージョンを生成する。ステップ18では、実行エンジンが、モデルの「メモリ内実行可能」バージョンを用いてコードを生成し且つ/或いはブロックダイアグラム・モデルをシミュレーション又は線形化する。
【0028】
ブロックダイアグラム・エディタ6aは、動的システムを表すブロックダイアグラム・モデルのユーザによる作成及び修正(ステップ12)を可能とするグラフィカル・ユーザインターフェース(GUI)構成要素である。この電子ブロックダイアグラムのブロックは、モータ、サーボ弁、発電所、フィルタ、タイヤ、モデム、受信機、及び他の動的構成要素などの専用機械構成要素、回路構成要素、又はソフトウェア構成要素の挙動をモデル化できる。ブロックダイアグラム・エディタ6aも、グラフィカル・エンティティ6bに関連したデータのユーザによる作成及び記憶を可能とする。Simulink(登録商標)では、一組の命令とのテキスト形式インターフェースにより、グラフィカルエディタとの対話が可能となる。ユーザは、このテキスト形式インターフェースを用いてブロックダイアグラムに自動編集処理を行う特殊スクリプトを書くことができる。一般に、ユーザは、モデルのキャンバスとして機能する一組のウィンドウと対話する。モデルには一般に複数のウィンドウがあるが、それはモデルがサブシステムを使用することで多数の階層レベルに区分化できるからである。
【0029】
ブロックダイアグラム・エディタ6a内の一揃いのGUIツールにより、ユーザは、対応するウィンドウにブロックダイアグラム・モデルを作成できる。例えば、Simulink(登録商標)では、GUIツールは、ブロックパレット、結線ツール、注釈ツール、フォーマッティングツール、属性編集ツール、保存/ロードツール、及びパブリッシングツールを含む。ブロックパレットは、ブロックダイアグラムを構築するためにユーザが使用可能な定義済みブロック全てのライブラリである。それぞれのユーザはこのパレットをカスタマイズして、(a)ブロックをなんらかのカスタムフォーマットに再編成したり、(b)使用していないブロックを削除したり、(c)自分で設計したカスタムブロックを追加したりできる。このパレットにより、人間とマシンと間の仲立ちをする一定のインターフェース(例えばマウス又はキーボードなど)を介してブロックをパレットからウィンドウ(すなわち、モデルのキャンバス)までドラッグできる。キャンバス上に描画されるブロックのグラフィックバージョンは、ブロックのアイコンと呼ばれる。全ブロックのツリーに基づくブラウザビューを含む、ブロックパレットに関する別の実施形態も可能である。
【0030】
ブロックダイアグラム・モデル又は他のグラフィカルモデルがエディタ6aを使って構築されると(ステップ12)、実行エンジン6dが、このモデルにより定義された式を解くことでこのこのモデルをシミュレーションし、時間の関数としてシステム出力を追跡する(ステップ14乃至18)。モデルの解はモデル実行と呼ぶことができ、ユーザが指定する時間枠で一組のユーザ指定入力に関して実行される。
【0031】
ステップ14のコンパイル段階からモデル実行が開始され、これにはデータ構造の作成、パラメータ評価、ブロック特性の構成及び伝播、ブロック接続性決定、ブロック整理編集、及びブロック挿入が含まれる。コンパイル段階は、ブロックダイアグラム内のブロック相互接続の完全性及び妥当性のチェックを含む。この段階では、又、エンジン6dは、ブロックダイアグラム内のブロックをブロック方法実行リスト作成時に使用される階層リストに分類する。データ構造の作成及びパラメータ評価は、コンパイル段階で必要な基本データ構造を作成し、初期設定する。ある方法では、各ブロックに、その全パラメータを評価させる。この方法は、ブロックダイアグラム内の全てのブロックに対して呼び出される。未解決のパラメータがあれば、この時点で実行エラーが発せされる。
【0032】
ブロック及びポート/信号特性の構成及び伝播時に、各ブロックのコンパイル済み属性(例えば、次元、データタイプ、複素性、サンプル時間など)は、対応する機能属性及び線を介して当該ブロックに接続されたブロック(及び/又はポート)の属性に基づいて設定される。この属性設定が実行されるのは、ブロック機能属性が、信号の接続に続いて1つのブロックから次のブロックへとブロックダイアグラムを「波紋のように伝わる」処理の実行時である。この処理(本明細書では「伝播」と呼ぶ)には2つの目的がある。そのブロック機能属性を明示的に指定しているブロックの場合は、このブロックの属性が、伝播によって、それに接続しているブロックの属性と互換性を持つことを保証する助けとなる。これ以外の場合は、エラーが出される。例えば、積分ブロックが多数の倍精度実数データタイプを受け取るためだけの目的で実装されると、このブロックは、単精度データを生成するブロックに駆動される場合はエラーとなる。エラーとならないのは、ユーザが暗黙データ変換を要求している場合のみである。二番目のケースとしては、多くの場合、ブロックは広範囲の属性と互換性を持つように実装される。こうしたブロックは、それらに接続されているブロックの属性に従って自分の挙動を適応させる。これは、オブジェクト指向プログラミング言語の多相性の概念と似ている。例えば、離散時間フィルタブロックを実装して、8ビットから128ビットまでの任意の標準的な整数型データタイプを受け取ることもできる。このブロックを厳密にどのように実装するかは、このブロックが含まれるブロックダイアグラムに基づいて選択される。このステップに含まれる処理は、当該モデル内の全レート変化が決定性の結果を出すことの検査や、適切なレート変換ブロックが使用されていることの検査などの他の側面である。
【0033】
更に、このコンパイルステップは、実際のブロック接続性を確認する。仮想ブロックは、ブロックダイアグラムの実行になんの意味論的役割も果たさない。コンパイル時に、ブロックダイアグラム内の仮想バス信号などの仮想ブロック及び信号は、最適化して取り除かれ、残りの非仮想ブロックが互いに適切に再接続される。実際のブロックが接続されたブロックダイアグラムのこのコンパイル済みバージョンは、実行処理においてこの時点以降で使用される。
【0034】
一旦、実際のブロック接続性が(仮想ブロックを除去することで)確認されると、このブロックダイアグラムはブロック整理編集及び挿入により更に最適化できる。このステップでは、ブロックを挿入するか、一組の非仮想ブロックを完全に除去したり単一の等価ブロックに整理編集したりできる。ブロック挿入及び整理編集を行うのは、主として実行効率を向上させるためである。
【0035】
ステップ16のリンク段階では、実行エンジン6dは、コンパイル段階の結果を用いてブロックダイアグラムの様々な構成要素の実行に必要なメモリを割り当てる。リンク段階は、ブロックダイアグラムのシミュレーション又は線形化に用いられるブロック方法実行リストも生成する。「設定」方法(例えば、ブロック開始、初期設定、使用可能、及び定出力方法)の評価からなるモデルの初期設定がリンク段階に含まれる。ブロック方法実行リストを生成する理由は、モデルのシミュレーション及び/又は線形化が、サンプルヒットがあった時にタイプごとに(ブロックごとでなく)ブロック方法を実行しなければならないからである。
【0036】
ステップ18では、ブロックダイアグラムのコンパイル済み及び連結済みバージョンを直接的に用いて、所望の時間枠で当該モデルを実行できる。一様態によれば、連結を実行した後、実行エンジン6dは、ステップ18のコードを生成してブロックダイアグラムからソフトウェアを作成する。この段階で、実行エンジンは、ブロックダイアグラム・モデル(又はその一部)をソフトウェア・モジュール又はハードウェア記述(広くコードと呼ぶ)に翻訳する。この段階が実行された場合は、次に続く段階は、ブロックダイアグラム実行時にこの生成コードを用いることになる。代替的に、実行段階は、ステップ18でのコード生成を飛ばし、ブロックダイアグラムの実行には解釈モードを使用する。別の実施形態では、実行エンジン6dはステップ18でコードを生成するだけである。例えば、ユーザがブロックダイヤグラム・ソフトウェアの範囲外にコードを導入したいと考えるので、ブロックダイアグラムの実行を続行しないことがある。
【0037】
シミュレーション段階に達すると、サンプルヒットがあった時点で、実行エンジン6dはシミュレーションループを用いて定義済み順序付けでブロック方法を実行し、経時的に変化するシステム応答を生み出す。
【0038】
ステップ18で線形化を実行するため、Simulinkは、指定された様態でブロック方法実行リストを用いて、ブロックダイアグラムが記述する動的システムの線形状態空間の表現を生成する。
【0039】
図3は、GUIに表示され且つ従来技術の時間ベース・ブロックダイアグラムで作成されたブロックダイアグラム200を示し、このダイアグラム200は、ダイアグラム200の外観を単純化するために使用できる仮想バス作成ブロック及びバス選択ブロックを含む。大規模なモデルでは、ブロックダイアグラム200の一区画を他の区画に接続する大量の線(例えば信号22、24、26)が含まれることがある。線が錯綜した状態を改善し、可読性を向上させるため、バス作成ブロック206を用いてブロックダイアグラム内で複数のコンポーネント信号を一緒に束ね、単一のバス信号210が形成されている。こうして、単一のバス信号210はモデル200の2つの区画を接続する。バス信号210の宛先では、個別の各コンポーネント信号22、24、又は26を他のブロックに接続できるように、バス選択ブロック208がこれら信号22、24、又は26を分離する助けとなる。図示したように、現在の技術水準では、バス信号はバス作成ブロック及びバス選択ブロックを用いて作成され、ブロックダイアグラムを視覚的に編成し、単純化するには有用である。
【0040】
ブロックダイアグラムの作成時には、一群の信号をバス作成ブロック206で1つのバス信号に束ねるため、先ずユーザは、バス作成ブロックの入力ポート数をバス作成ブロックパラメータ・ダイアログボックス(GUIとして提供されている)内で指定する。このダイアログボックスは当該バス信号を形成するためにグループ化する信号数を示す。次に、ブロックダイアグラム・ウィンドウ内で、ユーザはグループ化すべきこれら信号を得られた入力ポートに接続し、全てのタイプの信号を入力に接続する。バス作成ブロックはバスの各信号に名前を付ける。バス選択ブロック(バス信号をグループ解除する機能がある)は、バス作成ブロック又は他のバス選択ブロックからの入力を受け付ける。非グループ化する信号の数によって、バス選択ブロックは1つ又は複数の出力ポートを備える。
【0041】
図4は、バス信号を作成するための、現在の技術水準によるバス作成ダイアログボックス30を示す。図示したように、このバス作成ダイアログボックスは、一緒にグループ化してバス信号210を形成するコンポーネント信号22、24、26の名前だけしか指定せず、付加的な定義をこのバス信号に与えない。バス選択ダイアログボックスは、バス信号をグループ解除するために用いられるが、バス信号から非グループ化される信号名を指定する以上の機能はない。
【0042】
バス信号を現在の時間ベース・ブロックダイアグラムや他のグラフィカルモデリング環境内で仮想信号として実装することに関わる大きな難点は、バス信号が純粋にグラフィカル・エンティティであり、数学的又は物理的意味を持たないことである。これら仮想バス信号は、モデルをシミュレーションする際には無視されてしまう。シミュレーション時には、実行エンジン6dが「信号伝播」という手順を用いてバス信号が表す非仮想信号を特定する。信号伝播は、仮想バス信号の非仮想構成要素が全て特定されるまで継続する。任意モデルの実行時に、実行エンジン6dは、信号伝播時に特定される対応する非仮想信号を用いて、仮想信号が接続されるブロックを駆動する。現在の技術水準では、バス信号は、明確に定義された指定を備えておらず、一定のキーブロックはバス信号を受け付けない。
【0043】
現在のシステムに存在する別の重要な限界は、グラフィカルモデルのバス信号を形成するデータ信号が同一データタイプの場合、モデリングプログラム6は、バス信号に非仮想演算しか実行できないことである。例えば、図3に示したように、異なる信号タイプを表す信号を非仮想ブロックに通過させるためには、すなわち各信号が表すデータへの演算をモデル化しシミュレーションするには、バス信号は、バス選択ブロックを用いてデータ信号を互いからグループ解除するため分解しなければならない。バス信号210を異なるコンポーネント信号22、24、及び26にまず分解した後で、それぞれの信号を、演算を表す関連した非仮想ブロック215a、215b、215cに個別に通過させなければならない。処理をモデル化した後、非仮想ブロック215a、215b、215cからのそれぞれの出力信号22”、24”、26”は、別のバス作成ブロック206’を用いてバス信号210’に再びグループ化される。
【0044】
図5に示したように、本発明の例示的な一実施形態は、ブロックダイアグラムなどのグラフィカルモデル内でバス信号を非グループ化することなく、異なる信号タイプの信号を含むバス信号への非仮想演算をモデル化且つシミュレーションする機能を提供することで、これまでのシミュレーションシステムの能力を拡張する。本発明の例示的なこの実施形態では、バス信号がブロックダイアグラム400の非仮想ブロックに直接的に接続できるので、これらバス信号を含むデータ信号に対するシミュレーションすべき演算をモデル化できる。例えば、図5に示したように、ユーザは、バス作成ブロック406を用いて異なる信号タイプを備えた複数の信号42、44、及び46を含むバス信号410を生成できる。バス信号410は様々な異なる信号タイプを含むことがあり、例えば、データタイプやデータの複素性などが異なる様々な属性の信号を含みうる。本明細書では、「信号タイプ」という用語は一組の信号属性を指す。「データタイプ」という用語は本発明の分野では周知であり、コンピュータシステムにおけるデータの内部表現やデータに関わる付加的意味を指す。使用可能なデータタイプの例には、ブール、16ビット整数、固定小数点、倍精度などがある。これらの例は例示目的であって、本発明を限定するものではない。例示的なバス信号410は、整数信号(第1信号タイプ)42と、倍精度信号44(第2信号タイプ)44、及び倍精度信号46(第2信号タイプ)を含む。バス信号410は分解しなくてもブロックダイアグラム400内の非仮想ブロック407を「通過」する。非仮想ブロック407は、バス信号410内の全信号42、44、及び46が表す信号値への演算を表し、各コンポーネント信号に別個の演算ブロックを必要とせずにバス信号410内の全信号への非仮想演算をシミュレーションする。非仮想演算の例には、「ゲイン」ブロックを用いた乗算、「積分」ブロックを用いた積分、「微分」ブロックを用いた入力の微分計算、「遅延」ブロックを用いた入力の遅延、及び本発明の分野で公知或いはユーザが作成した多数の処理が含まれるが、それに限定されない。Simulink(登録商標)のブロックで表現可能な他の演算には、除算、線形変換関数、極及びゼロで指定された変換関数、不感帯関数、スイッチング関数、量子化関数、及びレート制限関数が含まれる。バス信号は、信号タイプが異なる複数のコンポーネント信号を含むことができる。コード生成時は、実行エンジンは、ユーザからの入力を必要とせずに、バス信号410を含むブロックダイアグラムの部分を自動的にマッピングする。
【0045】
図5に示したように、ブロックダイアグラム内のバス信号410は、バス信号410を入力ポート407aすなわちブロック407の入口に接続することでブロック407を「通過」させられる。ブロック407はそのコンポーネント信号に行う非仮想演算を表す。バス信号の入力ポートへの接続は、コンポーネント信号の値が入力としてブロック407が表す演算に渡されることを意味する。出力バス信号410’は変更コンポーネント信号を含み、これら変更コンポーネント信号は、入力コンポーネント信号それぞれが表す値への非仮想演算の出力を表す。変更バス信号410’は、ブロック407の出力ポート407bに接続する。
【0046】
本発明の一実施形態では、バス信号410が非仮想ブロック407を通過する際に、バス信号の構造は保存される。例えば、バス信号が遅延ブロックを通過する時、遅延ブロックの出力におけるバス信号410’の形式は、遅延ブロックへの入力におけるバス信号410の形式に一致している。「形式」はデータタイプ、複素性などの特性を包含するものと理解されている。
【0047】
図示したように、ユーザは、演算を表現する個別ブロックに各信号を別々に通過させることで、演算を実行するためにバス信号の信号をグループ解除する必要がなく、更に、各信号を演算子ブロックに別々に通過させた後で信号を別のバス信号に再グループ化する必要がない。従って、図3のブロックダイアグラム200を図5のブロックダイアグラム400と比較すれば分かるように、バス信号をブロックダイアグラム内の非仮想ブロックに通過させる能力は、容易に構築且つ理解可能なより簡潔で単純なブロックダイアグラムを提供する。バス信号をキーブロックに通過させる能力のおかげで、例えば図3のダイアグラムで必要となるような、バス信号を作成し且つ非グループ化する不要なステップを排除することで、データ入力を促進する。
【0048】
本発明の別の様態では、バス信号をそれまで受け取りできなかった、時間ベース・ブロックダイアグラムの一定のキーブロック及びノードがバス信号を受け取りできるように構成される。限定するわけではないが、例としては、1回のサンプリング周期において入力バス信号410内の全信号にゼロ次保持を実行するゼロ次保持ブロックと、1回のサンプリング周期で入力バス信号410内の全信号を遅延させる遅延ブロックと、複数の入力信号を単一の記憶場所に結合するマージブロックと、スイッチブロックと、マルチポート・スイッチブロックとが含まれる。本発明の例示的な一実施形態によれば、バス信号はこれらブロックの任意ブロックに直接接続でき、実行エンジンは、シミュレーション時にユーザからの入力を必要とせずに、ブロックダイアグラムのその部分を自動的にマッピングする。結果的に、全信号に対するブロックが表現する演算をモデル化するに当たって、ユーザがバス信号を非グループ化したり、個々のコンポーネント信号を別々のブロックに通過させたりする必要がないため、ブロックダイアグラムが単純化される。このモデリング・アプリケーションにより、バス信号はサブシステム(別のシステム内のシステムを表す)と、Stateflow(有限状態機械、フローダイアグラム、状態図、真理表、又はテキスト形式機能の任意の組合わせを指定するのに用いるツールの一例)などの他の領域とを通過可能となる。
【0049】
本発明の他の局面によれば、モデリング・アプリケーション6は、バス信号を定義して、それが非仮想実装を備えることを指定する機能を含んでいる。例えば、例示的な一実施形態では、ユーザは、バス信号の非仮想コンポーネント信号の物理的属性を定義できる。上述のように、従来の時間ベース・ブロックダイアグラムにおけるバス信号は物理的側面を含まず、ブロックダイアグラムなどの動的システムのグラフィカルモデル構築時に、グラフィカルモデルの外観を単純化するため使用されてきたにすぎない。シミュレーション時には、従来システムのバス信号は、数学的意味を持たない単なる装飾的構成要素として無視され、バス信号を表現するシミュレーション時にはコードが生成されなかった。一実施形態では、本発明は、バス信号の非仮想実装を指定し、バス信号を構成するソース信号のような、ブロックダイアグラムの他の構成要素から独立してバス信号のコードを生成する機能を提供する。
【0050】
図6は、バス指定エディタ500を表示するGUIを示す。このエディタ500を用いれば、時間ベース・ブロックダイアグラムにおけるバス信号を本発明の例示的な一実施形態に従って定義できる。バス指定エディタ500により、ユーザは、バス信号の構成要素の特性など、バス信号の一定のプロパティを定義できる。通常の技能を備えた当業者であれば、本発明は例示的なこの実施形態に限定されず、仮想又は非仮想バス信号を定義するための任意適切な機構を、本発明の教示に従って使用できることは理解するはずである。
【0051】
図6に示した実施形態では、バス指定エディタ500は、バス信号の構成要素の物理的属性を指定する定義を入力するための複数フィールドを含むが、当業者であれば、本発明はバス信号を指定する図示した機構には限定されないことは理解するはずである。例示的なこの実施形態では、定義可能なバス信号410の特性には、バス信号構成する要素の名前、要素の次元(すなわち各信号が行列、ベクトル、又はスカラー値か)、例えばコンポーネント信号の属性のデータタイプ(信号が正数か、倍精度か、ブールかなど)などの信号タイプ、各要素の複素性、及び各要素のサンプリングモードが含まれるが、それらには限定されない。図示したように、バス指定エディタ500は名前フィールド502を含み、このフィールドが、ユーザによるバス信号410を構成するコンポーネント信号の名前の定義を可能とし、バス信号に含まれるコンポーネント信号の数の指定を可能とする。例示的なバス指定エディタ500は、ユーザによるバス信号を構成する信号の次元の数を指定可能とする名前フィールド504を含む。本明細書では、信号の次元とは、その信号がベクトル(1次元)か、マトリックス(2次元)か、それ以外かなどを指す。Simulink(登録商標)では、1次元(1D)信号は、一般に、シミュレーション時間ステップごとに一配列(ベクトル)の頻度で出力される1次元配列のストリームからなる。2次元信号は、1回のブロックサンプリング時間に、1つの2次元配列(行列)の頻度で発信される2次元配列のストリームからなる。単一要素配列はしばしば「スカラー」と呼ばれる。行ベクトルは、1行からなる2次元配列である。列ベクトルは、1列からなる2次元配列である。信号タイプフィールド506は、ユーザによる、バス信号を構成する信号の信号タイプの指定可能とする。例としては、信号の属性のデータタイプ指定がある。本明細書では、「データタイプ」という用語は、コンピュータシステムにおけるデータの内部表現に加え、データに関わるその他の意味を指す。可能なデータタイプの例には、ブール、16ビット整数、固定小数点、倍精度などがある。複素性フィールド508は、ユーザによる、バス信号を構成する信号の複素性を指定可能とする。すなわち、各信号を構成する値が複素数か実数かを指定できる。複素信号とはその値が複素数である信号であり、実数信号は実数値を備える。サンプリングモード・フィールド510は、バス信号内の各要素のサンプリングモードを指定するためのものである。サンプリング時間フィールド512では、ユーザはバス信号のサンプリング速度を指定できる。ヘッダフィールド514では、ユーザはバス信号のヘッダを定義し、生成されたC符号における信号のタイプ定義を表す。記述フィールド516では、ユーザはバス信号の記述を入力できる。通常の技能を備えた当業者であれば、バス指定エディタは、例示的なこの実施形態に限定されるものでなく、モデリング・アプリケーションにおけるバス信号の1つ又は複数の属性を定義するための任意適切な機構を本発明の教示に従って使用できることは理解するはずである。
【0052】
当業者であれば、バス信号を定義する機能は非仮想バス信号に限定されないことは理解するはずである。例えば、バス指定エディタを用いて仮想バス信号も定義できる。バスが仮想実装か非仮想実装かに関わらず、当該バスの定義を用いてその構成要素の特性を指定できる。
【0053】
図6に示した実施形態では、「pos_bus」と名付けたバス信号410が指定されている。pos_busバス信号は、行列(2次元)である、「x_pos」と名付けた第1信号411を含み、データタイプは正数で、値は複素数で、サンプリングモードはサンプルベースである。pos_busバス信号の第2信号412は「y_bus」と名付けられており、1次元で、倍精度型の値を備え、実数である。バス信号の特性は、例示的なバス指定エディタ又は他の適切なツールを用いてユーザにより入力且つ定義される。
【0054】
上述のように、バス信号に定義を与えた後、実行エンジン6dは、ブロックダイアグラムの通常のコード生成処理から独立して、非仮想実装を備えたバス信号のコードを独立定義として生成できる。例示的なこの実施形態では、バス信号の独立コードは、バス信号の定義が完了した時にその定義を用いて生成される。
【0055】
発明の例示的な一実施形態によれば、バス指定はバス指定エディタ500を用いて定義されるが、定義されたコンポーネント信号の名前のみを備えているため弱いこともあり、例えば完全に指定された名前、データタイプ、幅、複素性などのバス信号の全要素に対する完全な定義を備えているため強いこともある。更に、バス指定は部分的としてもよく、例えば名前や複素性は定義されているが、データタイプや幅は定義されていないなど、部分的な定義からなる場合がある。更に、ユーザには、バスを仮想とするか非仮想とするかを指定する機能が与えられる(例えば、コード生成のインターフェース)。
【0056】
本発明の例示的な一実施形態では、バス信号を拡張してユーザにより決定且つ入力可能な定義を備えることで、ユーザがシステム・インターフェースを定義できるようになり、より頑丈で構造化した設計が実現する。
【0057】
バス信号の指定はブロックダイアグラム・モデル内部に作成してもよいし、ユーザ定義データ(UDD)クラスに基づいたアプローチを用いてモデルから独立して作成してもよい。バス信号の指定は、上述したようにバス指定エディタを用いて定義できるが、ダイアグラミング・プログラム内のバスライブラリに保存し、必要なときはユーザが呼び出しできる。又、この処理は、ブロックダイアグラムを構築するために、ブロックがブロックライブラリから呼び出される処理と似ている。バス信号の指定は、当該バス信号を実装する、関連付けられたブロックダイアグラム・モデルとともに保存できる。別法として、バス指定はブロックダイアグラム・モデルとは別に保存し、後のブロックダイアグラムの構築時にブロックダイアグラム・モデルと関連付けてもよい。
【0058】
本発明の別の様態によれば、上述のように指定を定義済みのバス信号は、生成コードを実装すると、すなわち当該バス信号を含むブロックダイアグラムが実行エンジン6dによりコードに変換されると、多数のバリアントをもたらすことがある。時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境においてバス信号の「実装バリアント」(すなわち、1つの論理指定に付き複数の実装指定)を与える機能によって、同一の論理バス信号が異なる複数のコンテキストでアクセス可能となる。この場合、各アクセスは生成コードにおける最適表現を備えることになる。バス指定に複数の実装を可能とすることで、非常に効率的な生成コードが実現する。
【0059】
使用例によっては、本発明は、バス信号を含むブロックダイアグラム又は他のグラフィカルモデルが表現する動的システムのシミュレーション時に、バス信号を生成コードで実装する様々な方法を提供する。例示的な一実施形態によれば、本発明は、バス信号を実装する5つの異なる方法を提供できる。例えば、バス信号は、生成コードにおいて関数に構造体として渡すこともできる(参照渡しで)。別法では、バス信号は、生成コードにおいて関数にグローバル構造体として渡すこともできる(グローバルとして静的に参照される)。一様態によれば、バス信号の個別要素を仮パラメータとして関数に渡してもよい(値渡しで)。更に別の実施例では、バス信号の各要素は1個の非構造的データとして渡してもよい。自動モードでは、実行エンジンは、バス信号を実装する際にどの方法を用いるかを自動的に計算且つ決定する。
【0060】
バス信号がシステム(すなわち生成コードの関数)との間でいかに効率的に受け渡しされるかは、状況に依存する。例示的な一実施形態によれば、生成コードにおけるバス信号の実装は、モデル階層の異なるレベルに対応する。
【0061】
本発明の例示的な一実施形態の適用例では、ユーザがどの実装方法を使用するかを選択する仕組みが提供される。例えば、バス信号の作成時に、ユーザは、作成したバス信号が仮想或いは非仮想かを指定でき、又、非仮想の場合は、ローカル構造体又はグローバル構造体を使用できるようにこのバス信号のプロパティを編集できる。好適な一実施形態では、バス引数受け渡し機構は、ユーザが、図6に示したバス指定エディタ500などのバスエディタ・インターフェースを用いて指定可能としてもよい。
【0062】
本発明の別の様態によれば、モデリング・アプリケーション6は、モデルの構築及びシミュレーション時に特定のバスタイプを適用するためチェックを行う。バスの指定には、静的及び動的チェックを実行する方法を含むことができる。例えば、バス信号内の各コンポーネント信号に関して、ユーザは、図2に関連して示したようにステップ12のブロックダイアグラムの作成時に、バス指定エディタ500を用いて制約条件を指定できる。バス信号内の各信号に関する制約条件を指定した後、上述のように、実行エンジン6dは、ステップ14に先だって静的チェックを実行して、属性伝播段階においてシミュレーション前に一定の制約条件を検査できる。別の様態によれば、実行エンジン6dはステップ18で動的チェックを実行し、これがブロックダイアグラムのシミュレーション時に制約条件を検査する。こうしたチェックを使用して、指定したバスタイプ又は定義をサブシステム入力又は出力に適用したり、サブシステム入力の範囲を指定したりできる。ブロックダイアグラムの作成及び実行時に制約条件チェックを実行できる機能により、より安全な設計がもたらされる。
【0063】
例えば、一様態によれば、バス信号を受け取るサブシステムのインポート(原語:inport)ブロックは、バス信号の受け入れ可能バリアントを指定する。従って、本発明の例示的な一実施形態による実行エンジンが実行する制約条件チェックにより、指定したフォーマットを備えたバス信号のみがサブシステムに渡されることが保証される。ユーザが指定フォーマットと違うフォーマットを備えたバス信号を通過させようとすると、属性伝播段階(静的チェック)時か、シミュレーション時(動的チェック)時に実行エンジン6dがエラーを発することになる。
【0064】
バス信号を定義し且つバス信号のコードを生成する機能は、データ入力を大幅に引き下げる一方で、簡潔なダイアグラムの作成を可能とする。図7には、本発明の例示的な一実施形態による改良型バス信号を実装するブロックダイアグラム・モデル600の一例を示した。図示したように、コンポーネント信号60a、60b、60c、60d、及び60eが、バス作成ブロック606を用いてグループ化されており、このモデルの線の数が減少している。例示的なバス作成ブロック606は、オプションのユーザ定義データクラス指定も備えている。図示したように、バス作成ブロック606は、信号60a、60b、60c、60d、及び60eを結合して、例えばバスエディタ・インターフェースで定義されたように、タイプ「foo」の「sig」と名付けられたバス信号610を作成する。バス信号610は、入力ポート80aを介してサブシステム80に接続する。サブシステム80は、バス信号610のコンポーネント信号が表現する値に対して実行する演算を表す。図示したように、サブシステム80は、タイプ「foo」(すなわちバス信号610と同じタイプ)の信号を受け取るように構成されている。サブシステム80は、バス信号610が適切なタイプであることを確認するためのチェックを行う。仕様にもよるが、図7に示したようにこのサブシステムは、出力ポート80bを介して第1出力720と、出力ポート80cを介して第2出力710とを出力する。第2出力710はバス信号でよい。又、バス信号610は分岐して、入力ポート70aを介して代入ブロック70に進む。代入ブロック70は、ポート70bを介して値を指定要素(信号60b)に代入するが、その際にバス信号610を分解し、再構築する必要がない。この代入ブロックは、その出力を表すバス信号810に接続する出力ポート70cを備えている。バス信号810は「sig_prime」と呼ばれ、これもタイプ「foo」である。図示したように、代入ブロック70は、値をバス信号の1つ又は複数の要素に代入する一方で、その信号の構造は保存する。出力バス信号810はバス選択ブロック608に進み、このブロック608はバス信号810から信号60a及び60eを非グループ化する。
【0065】
図8は、本発明の一実施形態による、拡張バス信号機能を実現する別のブロックダイアグラム・モデル700を示す。図示したように、入力ブロック「In1」92からは、「foo」と指定されたバスタイプを備えた「x」と名付けたバス信号910が発せられている。現在のデータタイプ伝播と同様に、入力バス信号がタイプ「foo」でない場合は、エラーが出される。バス信号のバス指定エディタでは、ユーザは、オプションで入力バス信号910を非仮想に構成できる(すなわち、構造実装)。このシステムは、信号が適切なタイプであることを保証するため、入力バス信号910に静的及び動的チェックを行う。単位遅延ブロック99として示されたブロックがバス信号910を受け取って、入力バス信号94と同じタイプのバス信号910’「x_prime」を出力する。ブロック99からのバス信号910’の出力は、指定次第で仮想でも非仮想でもよい。図8に示したように、ユニット遅延ブロック99は、入力信号を1サンプル時間分で遅らせる。通常の技能を備えた当業者であれば、上述の単位遅延ブロックは本発明の実施形態を例証するものであり、バス信号が表現する値に対して実行される関数を表現する任意適切なブロックを使用できることは理解するはずである。Stateflowブロック102は、ブロック99からタイプ「foo」のバス信号を受け取り、スカラー「out」信号106とタイプ「goo」のバス信号「y」1110とを出力する。スカラーのout信号106は出力ポート116に進み、バス信号1110は出力ポート118に進む。入力バスと出力バスとに問題のある接続があれば、このシステムはエラーを発する。例えば、バス信号910’がタイプ「foo」でなく「goo」であれば、Stateflowブロック102はこの信号を入力として受け取らない。バス信号1110は、出力ポート118に進む前に分岐し、一方の分岐がバス選択ブロック908に進む。バス選択ブロック908は、出力バス信号1110を2つの信号120m及び120nに分解し、非グループ化された信号120m、120nを付加的ブロック(図示しない)に渡す。
【0066】
グラフィカル・ユーザインターフェースに表示したStateflowダイアグラム180を示す図9から分かるように、テキストベースのStateflowアクション言語は、図8のバス信号910’の要素に直接アクセスできる。Stateflowアクション言語によりStateflowダイアグラム180で定義さているように、Stateflowブロック102の出力信号106は、タイプ「foo」の入力バス信号910’の2つのコンポーネント信号の積に等しい。更に、Stateflowダイアグラム180は、出力バス信号「y」1110を、構成要素「m」及び「n」をそれぞれ5及び4とするタイプ「goo」のバス信号として定義する。
【0067】
図10A及び10Bに示したように、バス信号は、その構造を非グループ化したり変更したりすることなく、第1ドメインから第2ドメインへ渡すこともできる。現在の技術水準における異なるドメインの例には、Simulink(登録商標)、Stateflow、及び組込みMATLABが含まれるが、これらに限定されない。例えば、例示的な実施形態では、Simulink(登録商標)は時間変化信号をモデル化する時間ベース・ブロックダイアグラムであり、Stateflowはイベント駆動型の様相論理をモデル化する状態ベースのダイアグラムドメインである。図10Aは従来のブロックダイアグラム800を示すが、ここでは、Stateflowチャート820などの第2ドメインのサブシステムは、異なるドメインを起点とするバス信号を受け入れたり、処理したりすることはできない。Stateflowは、マサチューセッツ州ナティック所在のThe
Mathworks社から入手可能の、イベント駆動型システムをモデル化し、シミュレーションする対話型設計ツールである。図示したように、入力バス信号810は、バス選択ブロック808を用いて多数のデータ信号に非グループ化される。すると、それぞれのデータ信号はこのサブシステムに渡される。サブシステム800からの出力信号はその内部を通過した後、バス作成ブロック806を用いて複数のバス信号810a及び810bに再グループ化され、結果として複雑で不明瞭なブロックダイアグラムができあがる。
【0068】
図10Bに示した本発明の一様態によれば、時間ベース・ブロックダイアグラムにおけるブロックダイアグラム800’は、Simulink(登録商標)などの別のドメインからのバス信号を、このバス信号を形成する信号を非グループ化しないで受け入れるよう構成されたブロック820’(Stateflowチャートを表す)を含んでいる。例えば、図10Bに示したように、ブロック820’は、バス作成ブロックやバス選択ブロックを必要としないで入力バス信号810’を直接的に受け入れ、信号812並びにバス信号810’a及び810’bを直接的に出力する。第1ドメインと第2ドメインとの間のこうした直接インターフェースは、ブロックダイアグラムを大幅に簡素化する。
【0069】
図11及び12に示したように、別の実施形態では、バス信号は、第1ドメイン(例えば、Simulink(登録商標)などのブロックダイアグラム環境)から第2ドメイン(MATLABなどの技術計算環境)へ渡すこともできる。例えば、図11に示したように、Simulinkブロックダイアグラム1100の組込みMATLABブロック1110はバス信号1111の要素にアクセスできる。例示的なこの実施形態では、タイプ「foo」のバス信号1111が、組込みMATLABブロック1110に渡され、入力バス信号1111とタイプが同一の「foo」タイプのバス信号1112として出力される。図12は、第2ドメインの組込みMATLABエディタ1200を示す。このエディタは、組込み
MATLABブロック1110により入力信号に実行される関数を指定する。エディタ1200のコードで指定されているように、ブロック1110の出力信号「y」1112は、ブロック1110への入力信号「u」1111の関数である。入力信号1111及び出力信号1112の両方は、タイプ「foo」のバス信号である。図示したように、組込みMATLABスクリプト、すなわちSimulink(登録商標)内のテキストベース言語は、入力バス信号1111の要素に直接アクセスできる。
【0070】
図13は、図11に示したMATLABブロック1110の入力ポートのパラメータを指定するためのグラフィカル・ユーザインターフェース1300を示す。図示したように、ユーザは、MATLABブロック1110のバス信号タイプを、タイプ「foo」或いは他の任意のユーザ指定タイプとしてフィールド1311で指定できる。指定可能な別のパラメータとしてはポート番号があり、フィールド1312で指定する。当業者であれば、インターフェース1300を用いてサブシステムの構成要素の任意適切なパラメータを指定できることは理解するはずである。
【0071】
通常の技能を備えた当業者であれば、本発明は例示的なこのシステムに限定されず、任意適切なサブシステムがバス信号を受け取り可能としてよいことは理解するはずである。例えば、バス信号を、従来のブロックダイアグラム、真理表、テキスト形式プログラミング言語(MATLAB、統一モデリング言語(UML)、又は他のドメイン)の間で構造化データとして受け渡すようにしてもよい。
【0072】
本発明では、たとえばSimulinkにおけるスクリプティングブロック並びにStateflow及び組込みMATLABにおけるテキスト形式関数は、両方ともバス信号の形式をサポートする。入出力バス信号は、スクリプトおいて適切に名前を付けた構造体変数へ記号を用いてマッピングされる。自然構文を用いて、使用されている実際のスクリプティング言語内の構造体及び/又は構造体ポインタを参照してもよい。例示的な一実施形態によれば、好適なスクリプティング言語はStateflowアクション言語及びMATLABであるが、当業者であれば、このスクリプティング言語は、MATLAB、C/C++、及びJAVA(登録商標)など任意の合成可能な(原語:synthesizable)テキスト形式言語でよいことは理解するはずである。
【0073】
本発明では、実行エンジンは入出力バスの構造的定義を活用して、Simulinkバスを他のプログラミング言語の構造変数へ意味論的にマッピングする。これによって、Simulinkなどの時間ベース・ブロックダイアグラム環境と、グラフィカル状態及びフローダイアグラム又はMATLABを含むテキスト形式言語などの他のモデル化ドメインとの間で、コンポジット信号を橋渡しする独自の便利な方法が提供される。
【0074】
本発明は、バス信号を形式化することでバス信号をより効果的、直感的に理解可能とし、且つ容易に使用可能とする動的システムをモデル化するグラフィカルモデリング環境を提供する。ユーザが入力した定義を備えたバス信号を用いることで、単純化されたブロックダイアグラムが実現すると共にデータ入力が容易となるので、動的システムのシミュレーションがより効率的となる。
【0075】
ここまで例示的な実施形態に関連して本発明を説明してきた。上記の構成に対する幾つかの変更例が、本発明の範囲を逸脱することなく可能であるから、この説明に含まれ或いは添付の図面に示された全ては、例示的なものとして解釈されるべきであり、限定的な意味で解釈されるべきではない。
【0076】
更に、以下の特許請求の範囲は、ここに説明された本発明の全ての一般的特徴と具体的特徴とを網羅するものであり、また本発明の範囲に関する全ての言明をも網羅する。
【図面の簡単な説明】
【0077】
【図1】図1は、本発明の例示的な実施形態を実施するのに適した環境を示す。
【図2】図1に示した環境を用いた動的システムのシミュレーションに関わるステップを図示するフローチャートである。
【図3】仮想バス作成ブロック及びバス選択ブロックを含んだ、従来技術のブロックダイアグラムを示す。
【図4】バス信号を作成するための、現在の技術水準によるバス選択ダイアログボックスを示す。
【図5】本発明の一実施形態によるバス信号を含んだブロックダイアグラムを示す。
【図6】本発明の例示的な一実施形態による、グラフィカルモデリング環境におけるバス信号を定義するためのバス指定エディタを示す。
【図7】本発明の一実施形態による、拡張バス信号を実装するブロックダイアグラム・モデルを示す。
【図8】本発明の一実施形態による、拡張バス信号機能を実現する別のブロックダイアグラム・モデルを示す。
【図9】本発明の一実施形態による、Simulinkドメインからバス信号をアクセスするStateflowダイアグラムを示す。
【図10】(A) Stateflowチャートをサブシステムとして含んだ、従来技術のブロックダイアグラムを示す。 (B) 本発明の一実施形態によるStateflowチャートを含んだブロックダイアグラムを示す。
【図11】組込みMATLABブロックを含んだブロックダイアグラムを示し、このダイアグラムは、バス信号をそのブロックダイアグラム・ドメインからアクセスする。
【図12】図11のMATLABブロックのエディタを示す。
【図13】図11に示したMATLABブロック1110の入力ポートの属性を指定するためのグラフィカル・ユーザインターフェースを示す。
【関連出願】
【0001】
本願は、その内容を引用して本明細書に援用する2003年10月31日付けの米国特許出願第10/698,805号の利益を主張する。
【技術分野】
【0002】
本発明は、ユーザによる動的システムのモデル化、シミュレーション、及び分析を可能とするグラフィカルモデリング環境のようなダイアグラミング環境に関する。より詳細には、本発明は、動的システムを表すグラフィカルモデルにおける複数の信号をグループ化するためのグラフィカルモデリング環境におけるバス信号に関する。
【背景技術】
【0003】
グラフィカルモデリング環境とは、ユーザによるプロセス又はシステムの構築及び分析を可能とするプログラムである。グラフィカルモデリング・ツールの例としては、The
MathWorks社から入手可能なSimulinkなどの時間ベース・ブロックダイアグラム、これもThe MathWorks社から入手可能なStateflow(登録商標)などの状態ベースダイアグラム及びフローダイアグラム、National
Instruments社から入手可能なLabVIEWなどのデータフロー・ダイアグラム、並びに統一モデリング言語(UML)ダイアグラムなどのソフトウェア・ダイアグラム及び他のグラフィカルモデリング環境が含まれる。
【0004】
時間ベース・ブロックダイアグラムはある種のグラフィカルモデリング環境の一例であり、ユーザによる動的システム(すなわち、出力が時間と共に変化システム)のモデル化、シミュレーション、及び分析、並びにシステムに対応するプログラムの生成を可能とする。時間ベース・ブロックダイアグラム環境を用いて、電気回路、緩衝装置、ブレーキシステム、並びにその他多くの電気、機械、及び熱力学システムを含む、広範囲にわたる現実の動的システムの挙動を調査できる。
【0005】
時間ベース・ブロックダイアグラムにおける動的システムのシミュレーションは、典型的には2つの段階からなる処理である。先ず、ユーザは、シミュレーションすべきシステムのブロックダイアグラムのようなグラフィカルモデルを作成する。グラフィカルモデルは、グラフィカルモデル・エディタのようなグラフィカル・ユーザインターフェースを用いて作成できる。グラフィカルモデルは、システム入力と、状態と、パラメータと、出力との間の時間に基づく関係を表現する。グラフィカルモデルの作成後、指定された時間にわたる動的システムの挙動を、グラフィカルモデルに入力された情報を用いてシミュレーションする。この段階では、グラフィカルモデルを用いて動的システムの出力の時間的進展を計算し且つ追跡し(グラフィカルモデルの実行)、更に、モデル全体又は一部の挙動を模倣する導入可能なソフトウェアシステム又はハードウェアシステムの記述を自動生成する(コード生成)。
【0006】
ブロックダイアグラムは、動的システムをモデル化するための、時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境内で形成されるグラフィカルモデルの一例である。動的システムのブロックダイアグラム・モデルは、線(ノード間の論理結合を表す)により相互接続されたノードの集まりとして概念的に表される。信号は、各線結合により表現される時間変化量に対応し、各瞬間において値を持つと仮定される。各ノードは基本動的システムを表すことができ、信号と状態変数との間の関係は、ノードにより表される式の組により定義される。この定義にはパラメータの概念が本質的に含まれており、パラメータは式の係数である。これら式は、入力信号と、出力信号と、状態と、時間との関係を定義するので、それぞれの線は、関連付けられた基本動的システムの入力及び/又は出力を表す。1つのノードから出て別のノードで終結する線は、最初のノードの出力が2番目のノードの入力となることを示す。任意のノードにおける個別の各入力又は出力はポートと呼ばれる。信号のソースノードは、そのシステムの式が解かれた所与の時刻に信号に書き込む。この信号の宛先ノードは、このシステムの式が解かれている時にその信号から読み出しを行う。当業者であれば、「ノード」という用語は基本動的システムのみを排他的に示すのでなく、ブロックダイアグラムの可読性及びモジュール性を向上させる他のモデリング要素を含みうることは理解するはずである。
【0007】
例えば、The Mathworks社から入手可能な時間ベース・ブロックダイアグラムの一例であるSimulink(登録商標)では、動的システムのモデルは、信号を表す線で相互接続されたブロックと呼ばれる複数のノードからなるブロックダイアグラムである。Simulink(登録商標)では、各ブロックは、基本動的システムなどの機能エンティティを表す。機能エンティティは、ブロックダイアグラムにより表されたシステムが処理しているデータに対して数学演算(すなわちアルゴリズム又は式)を実行する。各ブロックは、連続的に(連続ブロック)或いは特定の時刻に(離散ブロック)出力を生成する。この種のブロックは、任意ブロックの出力、その出力、状態、及び時間の関係を決定する。ブロックダイアグラムは、システムのモデル化に必要となる任意種類のブロックの任意数のインスタンスを含むことができる。ブロックダイアグラム・モデルにおける信号は、ブロックにより更新される、すなわち準備ができると書き込みされる(原語:ready-by
and written to)時間変化量を表す。Simulink(登録商標)及び動的システムをモデル化する他のソフトウェア製品は、動的システムのモデルをブロックダイアグラムとして構築するためのグラフィカル・ユーザインターフェース(GUI)を提供する。各ブロックダイアグラムは、予め定義されたブロックセット内のブロックを、ユーザがドラッグ・アンド・ドロップしたり、ユーザが特別に作成したりできる。
【0008】
動的システムを表す、ブロックダイアグラムのようなグラフィカルモデルを作成した後、ユーザは、このシステムの挙動を所定時間にわたりシミュレーションする。モデルに入力された情報を用いてシミュレーションを実行し、プロセッサが、シミュレーションしたモデルにおけるノードが定義した式を解いてシミュレーション結果を生成する。別法としては、プロセッサが、このグラフィカルモデルを実行可能コードに変換する。自動コード生成とは、動的システムのグラフィカルモデルからソフトウェアが自動生成される処理である。生成されたソフトウェアはコンパイルされ、次にデジタルコンピュータにより実行されて、モデルが指定する機能を実装する。
【0009】
ブロックダイアグラムのようなグラフィカルモデルの解(システム応答の計算)は、信号と動的システムを表す状態変数との関係を経時的に評価することより得られ、この時間はユーザが指定する「開始時刻」で開始され、ユーザが指定する「停止時刻」で終了する。これら関係の各評価は、時間ステップと呼ばれる。グラフィカルモデルにおける信号は経時的に変化する量を表し、これら量は、グラフィカルモデル実行中の開始時刻と停止時刻との間の全時点に関して定義される。
【0010】
Simulink(登録商標)及び他のグラフィカルモデリング環境において、ノード、ブロック、又は動的システムをモデル化するのに用いるモデル構成要素は、一般に、「仮想的」(すなわちブロックがシミュレーションにおいて積極的な役割を果たさないことを意味する)か、「非仮想的」(すなわちブロックが、グラフィカルモデルにより表現されるシステムのシミュレーションにおいて積極的な役割を果たすことを意味する)かの何れかである。仮想ブロックはグラフィカルモデルを図表的に編成するためのみに用いられる一方、非仮想ブロックはモデルの挙動に影響を与える基本動的システムを表現する。仮想ブロックは図表的な編成の便宜のために使用され、ブロックダイアグラム・モデルが記述する式のシステムの定義にはなんの役割も果たさない。ブロックダイアグラムの信号も一般に「仮想的」或いは「非仮想的」である。
【0011】
大規模なグラフィカルモデルでは、当該モデルの一区画を他の区画に接続する大量の線が含まれることがある。ブロックバス作成ブロックやバス選択ブロックなどの仮想ブロックは、信号のグループを「バス信号」と呼ばれる「束」として管理することでブロックダイアグラムが錯綜した状態を改善し、従ってモデルの可読性を向上させる。現在の技術水準では、バス信号は、論理信号の集まりとしてグループ化した(すなわち名前で)信号の集まりからなる。仮想バス作成ブロックは、複数の信号を束ねて単一のバス信号とする助けとなる。こうして、この単一バス信号はモデルの2つの区画を接続する。バス信号の宛先では、仮想バス選択ブロックが、個別の信号を他のブロックに接続できるようにこれら信号を分離する助けとなる。
【0012】
現状ではバス信号には指定がなく、ブロックダイアグラム又は他のグラフィカルモデルを分かりやすく見せるために視覚的にグループ化した信号を含むにすぎない。データタイプが異なるバス信号内の信号の演算をシミュレーションするには、これら信号はグループ化を解除する必要があり、その後でそれぞれの信号を、その信号への演算を表現する非仮想ブロックに個別に通過させる。更に、現在の時間ベース・ブロックダイアグラム及び他のグラフィカルモデリング環境では、幾つかのノード又はブロックはそれらが処理できる信号の属性に制約を課し、又、Simulink(登録商標)の単位遅延ブロック及びStateflowブロックなどの他のノード又はブロックは、バス信号を受け付けない(すなわち、バス信号に含まれる信号をグラフィカルモデルのブロックを通過する前に分解しなければならない)。
発明の概要
【0013】
本発明の一実施形態は、動的システムをモデル化し、シミュレーションし、且つ分析するための、時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境におけるバス信号の機能を拡張する。本発明の例示的な一実施形態は、データタイプが異なる複数信号からなるバス信号に非仮想演算を行うためのシステム及び方法と、時間ベース・ブロックダイアグラム又は他のグラフィカルモデリング環境におけるバス信号の定義を指定する機能とを提供する。更に、本発明は、ブロックダイアグラムの構築及び/又はシミュレーション時に静的及び動的チェックの両方を実行してバス指定を実施する。本発明は、グラフィカルモデリング環境においてバス信号を形式化して、バス信号をより効果的とし且つ直感的で容易に使用可能として、バス信号を実装するためのブロックダイアグラムを単純化する。
【0014】
一様態では、バス信号に演算を行うための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて第1信号タイプの第1データ信号と、第2信号タイプの第2データ信号とをグループ化してバス信号を形成する段階と、前記バス信号に非仮想演算を行う段階とを含む。
【0015】
別の様態では、バス信号を指定するための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、バス信号を定義する段階と、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて第1データ信号と第2信号タイプとを結合して前記定義で定められた構造を備えたバス信号を形成する段階とを含む。
【0016】
別の様態では、バス信号を指定するための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、バス信号の定義をグラフィカル・ユーザインターフェースにおいて入力する段階と、前記バス信号の前記定義をメモリに保存する段階とを含む。
【0017】
更に別の様態では、バス信号を指定するための別の方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法が、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルで使用されるバス信号の定義を定める段階と、前記バス信号に対応したコンピュータ可読命令を生成する段階とを含む。
【0018】
別の様態では、バス信号を処理するための方法が提供され、更に、当該方法のコンピュータ可読命令を保持する媒体と、当該コンピュータ可読命令を実行するためのシステムとが提供される。前記方法は、グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて第1データ信号と第2データ信号とを結合してバス信号を形成する段階と、前記バス信号を前記グラフィカルモデルの第1ドメインから第2ドメインに渡す段階とを含む。
【0019】
本発明の例示的な実施形態により可能となる拡張バス信号は、グラフィカル・プログラミング言語などのダイアグラミング・アプリケーション言語でモデル化される複雑なシステムのコードを作成、維持、シミュレーション、且つ導入する労力が大幅に減少する。
【発明を実施するための最良の形態】
【0020】
本発明は、動的システムをモデル化し、シミュレーションし、且つ/或いは分析するための改良型ツールを提供する。このツールは、時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境におけるバス信号の仮想及び非仮想定義を指定する。本発明を時間ベース・ブロックダイアグラムにおける例示的な一実施形態に関連して説明するが、当業者であれば、本発明は、状態ベース及びフローダイアグラム、データフロー・ダイアグラム、ソフトウェア・ダイアグラム、及びグラフィカル・プログラミングツールを含む他の任意適切なダイアグラミング環境で実装できることは理解するはずである。当業者であれば、本発明は、多数の異なる応用例及び実施形態で実現可能であり、本明細書に記載した特定の実施形態に特に限定されないことは理解するはずである。
【0021】
本発明の例示的な一実施形態では、時間ベース・ブロックダイアグラムにおけるモデリング・アプリケーションは、バス信号の仮想又は非仮想定義を指定し且つ定義済みバス信号のコードを、動的システムのシミュレーション時にグラフィカル・エンティティから独立して生成する機能を含む。例えば、ユーザは、バス信号を構成するコンポーネント信号の物理的属性を指定できる。例示的な一実施形態では、時間ベース・ブロックダイアグラムにおけるバス信号は形式化されて、バス信号をより効果的、直感的に理解可能とし、且つ容易に使用可能としてバス信号を実現するためのブロックダイアグラムを単純化する。グラフィカルモデリング環境におけるバス信号を完全に指定可能とする機能は、データ入力を大幅に減少させ、より簡潔なブロックダイアグラムを実現する。
【0022】
図1は、本発明の例示的な実施形態を実施するのに適した環境を示す。電子装置2は、本発明の一実施形態によるソフトウェアが記憶されたメモリ4と、このメモリ内に記憶されたソフトウェアを実行するプロセッサ(CPU)7と、システムハードウェアを制御する他のプログラムとを含む。入出力装置8は、グラフィカル・ユーザインターフェースを表示するスクリーンなどの表示装置8aを含み、電子装置2とインターフェースを取ってユーザと電子装置2との対話を可能とする。又、例示的なこのシステムは、マウス8b及びキーボード8cなどの他の適切な従来の入出力周辺装置も含む。
【0023】
例えば、メモリ4は、システムダイアグラムの電子バージョンを作成且つシミュレーション可能なモデリング・アプリケーション6を保持している。こうしたシステムダイアグラムの電子バージョンには、ブロックダイアグラム、状態ダイアグラム、信号ダイアグラム、フローチャート・ダイアグラム、シーケンス図、UMLダイアグラム、データフロー・ダイアグラム、回路図、ラダーロジック・ダイアグラム、又は運動学的要素ダイアグラムがあり、何れかを表示装置8aを介してユーザ10に表示できる。適切なモデリング・アプリケーションの例としては、The
MathWorks社のSimulinkバージョン5.0を備えたMATLABバージョン6.1、National Instruments社から入手可能なLabVIEW、DasyLab、及びDiaDem、Agilent社から入手可能なVEE、Measurement
Computing社から入手可能なSoftWIRE、Visual Solutions社から入手可能なVisSim、Elanix社から入手可能なSystem
VIEW、Coreco社から入手可能なWiT、PPT Vision社から入手可能なVision Program Manager、Khoral Research社から入手可能なKhoros、並びにその他多数が含まれるが、それらに限定されない。メモリ4は、例えば、CD-ROM、フロッピー(登録商標)ディスク、テープ装置などの任意適切なインストール媒体や、DRAM、SRAM、EDO
RAM、ラムバスRAMなどのコンピュータ・システムメモリ又はランダムアクセスメモリや、ハードドライブ又は光学記憶装置を含む磁気媒体などの不揮発性記憶装置を含むことができる。このメモリは、他の種類のメモリ又はそれらの組合せを含むこともできる。
【0024】
代替的な実施形態では、更に、電子装置2がインターネットなどのネットワークに接続されている。当業者であれば、モデリング・アプリケーション6が使用するダイアグラムは電子装置2にローカルに記憶させてもよいし、ネットワークを介して電子装置2と接続したリモート位置9に記憶させてもよいことは理解するはずである。同様に、モデリング・アプリケーション6はネットワークサーバ又はリモートピアに記憶してもよい。
【0025】
本発明の例示的な実施形態のモデリング・アプリケーション6は、多数の汎用構成要素を含む。本明細書の説明はマサチューセッツ州ナティック所在のThe
MathWorks社のSimulinkバージョン5.0(リリース13)を中心としているが、当業者であれば、本発明は他のグラフィカルモデリング環境にも適用できることは理解するはずである。例示的なモデリング・アプリケーション6の汎用構成要素は、動的システムのモデルを図式的に指定するブロックダイアグラム・エディタ6aを含む。ブロックダイアグラム・エディタ6aにより、ユーザは、動的システムを視覚的、絵図的に表すブロックダイアグラムのようなグラフィカルモデルの構築、編集、表示、注釈付け、保存、及び印刷などの作業が可能となる。又、例示的なモデリング・アプリケーション6は、データが機能ユニットと非機能ユニットとの間でどのように伝達されるかを表す信号線及びバスなどのグラフィカル・エンティティ6bやブロック6cも含む。上述のように、ブロックは、標準的なブロックダイアグラム・モデルの基本的な数学的要素である。ブロックダイアグラム実行エンジン6dもこのアプリケーションに実装されており、グラフィカルモデルを処理してシミュレーションの結果を生成したり、このグラフィカルモデルを実行可能コードに変換したりするために用いられる。
【0026】
例示的なこの実施形態では、モデリング・アプリケーション6は、これもMathWorks社から入手可能なMATLABなどの技術計算プログラム11の随伴プログラムとして実装されている。
【0027】
図2は、本発明の例示的な一実施形態による、動的システムのシミュレーションに関わるステップを図示するフローチャートである。ステップ12では、ユーザが、動的システムを表すブロックダイアグラム・モデルを作成する。ステップ12でブロックダイアグラム・モデルを作成すると、ステップ14で、実行エンジン6dがこのブロックダイアグラム・モデルをコンパイルする。次にステップ16で、実行エンジン6dがこのブロックダイアグラム・モデルを連結して、モデルの「メモリ内実行可能」バージョンを生成する。ステップ18では、実行エンジンが、モデルの「メモリ内実行可能」バージョンを用いてコードを生成し且つ/或いはブロックダイアグラム・モデルをシミュレーション又は線形化する。
【0028】
ブロックダイアグラム・エディタ6aは、動的システムを表すブロックダイアグラム・モデルのユーザによる作成及び修正(ステップ12)を可能とするグラフィカル・ユーザインターフェース(GUI)構成要素である。この電子ブロックダイアグラムのブロックは、モータ、サーボ弁、発電所、フィルタ、タイヤ、モデム、受信機、及び他の動的構成要素などの専用機械構成要素、回路構成要素、又はソフトウェア構成要素の挙動をモデル化できる。ブロックダイアグラム・エディタ6aも、グラフィカル・エンティティ6bに関連したデータのユーザによる作成及び記憶を可能とする。Simulink(登録商標)では、一組の命令とのテキスト形式インターフェースにより、グラフィカルエディタとの対話が可能となる。ユーザは、このテキスト形式インターフェースを用いてブロックダイアグラムに自動編集処理を行う特殊スクリプトを書くことができる。一般に、ユーザは、モデルのキャンバスとして機能する一組のウィンドウと対話する。モデルには一般に複数のウィンドウがあるが、それはモデルがサブシステムを使用することで多数の階層レベルに区分化できるからである。
【0029】
ブロックダイアグラム・エディタ6a内の一揃いのGUIツールにより、ユーザは、対応するウィンドウにブロックダイアグラム・モデルを作成できる。例えば、Simulink(登録商標)では、GUIツールは、ブロックパレット、結線ツール、注釈ツール、フォーマッティングツール、属性編集ツール、保存/ロードツール、及びパブリッシングツールを含む。ブロックパレットは、ブロックダイアグラムを構築するためにユーザが使用可能な定義済みブロック全てのライブラリである。それぞれのユーザはこのパレットをカスタマイズして、(a)ブロックをなんらかのカスタムフォーマットに再編成したり、(b)使用していないブロックを削除したり、(c)自分で設計したカスタムブロックを追加したりできる。このパレットにより、人間とマシンと間の仲立ちをする一定のインターフェース(例えばマウス又はキーボードなど)を介してブロックをパレットからウィンドウ(すなわち、モデルのキャンバス)までドラッグできる。キャンバス上に描画されるブロックのグラフィックバージョンは、ブロックのアイコンと呼ばれる。全ブロックのツリーに基づくブラウザビューを含む、ブロックパレットに関する別の実施形態も可能である。
【0030】
ブロックダイアグラム・モデル又は他のグラフィカルモデルがエディタ6aを使って構築されると(ステップ12)、実行エンジン6dが、このモデルにより定義された式を解くことでこのこのモデルをシミュレーションし、時間の関数としてシステム出力を追跡する(ステップ14乃至18)。モデルの解はモデル実行と呼ぶことができ、ユーザが指定する時間枠で一組のユーザ指定入力に関して実行される。
【0031】
ステップ14のコンパイル段階からモデル実行が開始され、これにはデータ構造の作成、パラメータ評価、ブロック特性の構成及び伝播、ブロック接続性決定、ブロック整理編集、及びブロック挿入が含まれる。コンパイル段階は、ブロックダイアグラム内のブロック相互接続の完全性及び妥当性のチェックを含む。この段階では、又、エンジン6dは、ブロックダイアグラム内のブロックをブロック方法実行リスト作成時に使用される階層リストに分類する。データ構造の作成及びパラメータ評価は、コンパイル段階で必要な基本データ構造を作成し、初期設定する。ある方法では、各ブロックに、その全パラメータを評価させる。この方法は、ブロックダイアグラム内の全てのブロックに対して呼び出される。未解決のパラメータがあれば、この時点で実行エラーが発せされる。
【0032】
ブロック及びポート/信号特性の構成及び伝播時に、各ブロックのコンパイル済み属性(例えば、次元、データタイプ、複素性、サンプル時間など)は、対応する機能属性及び線を介して当該ブロックに接続されたブロック(及び/又はポート)の属性に基づいて設定される。この属性設定が実行されるのは、ブロック機能属性が、信号の接続に続いて1つのブロックから次のブロックへとブロックダイアグラムを「波紋のように伝わる」処理の実行時である。この処理(本明細書では「伝播」と呼ぶ)には2つの目的がある。そのブロック機能属性を明示的に指定しているブロックの場合は、このブロックの属性が、伝播によって、それに接続しているブロックの属性と互換性を持つことを保証する助けとなる。これ以外の場合は、エラーが出される。例えば、積分ブロックが多数の倍精度実数データタイプを受け取るためだけの目的で実装されると、このブロックは、単精度データを生成するブロックに駆動される場合はエラーとなる。エラーとならないのは、ユーザが暗黙データ変換を要求している場合のみである。二番目のケースとしては、多くの場合、ブロックは広範囲の属性と互換性を持つように実装される。こうしたブロックは、それらに接続されているブロックの属性に従って自分の挙動を適応させる。これは、オブジェクト指向プログラミング言語の多相性の概念と似ている。例えば、離散時間フィルタブロックを実装して、8ビットから128ビットまでの任意の標準的な整数型データタイプを受け取ることもできる。このブロックを厳密にどのように実装するかは、このブロックが含まれるブロックダイアグラムに基づいて選択される。このステップに含まれる処理は、当該モデル内の全レート変化が決定性の結果を出すことの検査や、適切なレート変換ブロックが使用されていることの検査などの他の側面である。
【0033】
更に、このコンパイルステップは、実際のブロック接続性を確認する。仮想ブロックは、ブロックダイアグラムの実行になんの意味論的役割も果たさない。コンパイル時に、ブロックダイアグラム内の仮想バス信号などの仮想ブロック及び信号は、最適化して取り除かれ、残りの非仮想ブロックが互いに適切に再接続される。実際のブロックが接続されたブロックダイアグラムのこのコンパイル済みバージョンは、実行処理においてこの時点以降で使用される。
【0034】
一旦、実際のブロック接続性が(仮想ブロックを除去することで)確認されると、このブロックダイアグラムはブロック整理編集及び挿入により更に最適化できる。このステップでは、ブロックを挿入するか、一組の非仮想ブロックを完全に除去したり単一の等価ブロックに整理編集したりできる。ブロック挿入及び整理編集を行うのは、主として実行効率を向上させるためである。
【0035】
ステップ16のリンク段階では、実行エンジン6dは、コンパイル段階の結果を用いてブロックダイアグラムの様々な構成要素の実行に必要なメモリを割り当てる。リンク段階は、ブロックダイアグラムのシミュレーション又は線形化に用いられるブロック方法実行リストも生成する。「設定」方法(例えば、ブロック開始、初期設定、使用可能、及び定出力方法)の評価からなるモデルの初期設定がリンク段階に含まれる。ブロック方法実行リストを生成する理由は、モデルのシミュレーション及び/又は線形化が、サンプルヒットがあった時にタイプごとに(ブロックごとでなく)ブロック方法を実行しなければならないからである。
【0036】
ステップ18では、ブロックダイアグラムのコンパイル済み及び連結済みバージョンを直接的に用いて、所望の時間枠で当該モデルを実行できる。一様態によれば、連結を実行した後、実行エンジン6dは、ステップ18のコードを生成してブロックダイアグラムからソフトウェアを作成する。この段階で、実行エンジンは、ブロックダイアグラム・モデル(又はその一部)をソフトウェア・モジュール又はハードウェア記述(広くコードと呼ぶ)に翻訳する。この段階が実行された場合は、次に続く段階は、ブロックダイアグラム実行時にこの生成コードを用いることになる。代替的に、実行段階は、ステップ18でのコード生成を飛ばし、ブロックダイアグラムの実行には解釈モードを使用する。別の実施形態では、実行エンジン6dはステップ18でコードを生成するだけである。例えば、ユーザがブロックダイヤグラム・ソフトウェアの範囲外にコードを導入したいと考えるので、ブロックダイアグラムの実行を続行しないことがある。
【0037】
シミュレーション段階に達すると、サンプルヒットがあった時点で、実行エンジン6dはシミュレーションループを用いて定義済み順序付けでブロック方法を実行し、経時的に変化するシステム応答を生み出す。
【0038】
ステップ18で線形化を実行するため、Simulinkは、指定された様態でブロック方法実行リストを用いて、ブロックダイアグラムが記述する動的システムの線形状態空間の表現を生成する。
【0039】
図3は、GUIに表示され且つ従来技術の時間ベース・ブロックダイアグラムで作成されたブロックダイアグラム200を示し、このダイアグラム200は、ダイアグラム200の外観を単純化するために使用できる仮想バス作成ブロック及びバス選択ブロックを含む。大規模なモデルでは、ブロックダイアグラム200の一区画を他の区画に接続する大量の線(例えば信号22、24、26)が含まれることがある。線が錯綜した状態を改善し、可読性を向上させるため、バス作成ブロック206を用いてブロックダイアグラム内で複数のコンポーネント信号を一緒に束ね、単一のバス信号210が形成されている。こうして、単一のバス信号210はモデル200の2つの区画を接続する。バス信号210の宛先では、個別の各コンポーネント信号22、24、又は26を他のブロックに接続できるように、バス選択ブロック208がこれら信号22、24、又は26を分離する助けとなる。図示したように、現在の技術水準では、バス信号はバス作成ブロック及びバス選択ブロックを用いて作成され、ブロックダイアグラムを視覚的に編成し、単純化するには有用である。
【0040】
ブロックダイアグラムの作成時には、一群の信号をバス作成ブロック206で1つのバス信号に束ねるため、先ずユーザは、バス作成ブロックの入力ポート数をバス作成ブロックパラメータ・ダイアログボックス(GUIとして提供されている)内で指定する。このダイアログボックスは当該バス信号を形成するためにグループ化する信号数を示す。次に、ブロックダイアグラム・ウィンドウ内で、ユーザはグループ化すべきこれら信号を得られた入力ポートに接続し、全てのタイプの信号を入力に接続する。バス作成ブロックはバスの各信号に名前を付ける。バス選択ブロック(バス信号をグループ解除する機能がある)は、バス作成ブロック又は他のバス選択ブロックからの入力を受け付ける。非グループ化する信号の数によって、バス選択ブロックは1つ又は複数の出力ポートを備える。
【0041】
図4は、バス信号を作成するための、現在の技術水準によるバス作成ダイアログボックス30を示す。図示したように、このバス作成ダイアログボックスは、一緒にグループ化してバス信号210を形成するコンポーネント信号22、24、26の名前だけしか指定せず、付加的な定義をこのバス信号に与えない。バス選択ダイアログボックスは、バス信号をグループ解除するために用いられるが、バス信号から非グループ化される信号名を指定する以上の機能はない。
【0042】
バス信号を現在の時間ベース・ブロックダイアグラムや他のグラフィカルモデリング環境内で仮想信号として実装することに関わる大きな難点は、バス信号が純粋にグラフィカル・エンティティであり、数学的又は物理的意味を持たないことである。これら仮想バス信号は、モデルをシミュレーションする際には無視されてしまう。シミュレーション時には、実行エンジン6dが「信号伝播」という手順を用いてバス信号が表す非仮想信号を特定する。信号伝播は、仮想バス信号の非仮想構成要素が全て特定されるまで継続する。任意モデルの実行時に、実行エンジン6dは、信号伝播時に特定される対応する非仮想信号を用いて、仮想信号が接続されるブロックを駆動する。現在の技術水準では、バス信号は、明確に定義された指定を備えておらず、一定のキーブロックはバス信号を受け付けない。
【0043】
現在のシステムに存在する別の重要な限界は、グラフィカルモデルのバス信号を形成するデータ信号が同一データタイプの場合、モデリングプログラム6は、バス信号に非仮想演算しか実行できないことである。例えば、図3に示したように、異なる信号タイプを表す信号を非仮想ブロックに通過させるためには、すなわち各信号が表すデータへの演算をモデル化しシミュレーションするには、バス信号は、バス選択ブロックを用いてデータ信号を互いからグループ解除するため分解しなければならない。バス信号210を異なるコンポーネント信号22、24、及び26にまず分解した後で、それぞれの信号を、演算を表す関連した非仮想ブロック215a、215b、215cに個別に通過させなければならない。処理をモデル化した後、非仮想ブロック215a、215b、215cからのそれぞれの出力信号22”、24”、26”は、別のバス作成ブロック206’を用いてバス信号210’に再びグループ化される。
【0044】
図5に示したように、本発明の例示的な一実施形態は、ブロックダイアグラムなどのグラフィカルモデル内でバス信号を非グループ化することなく、異なる信号タイプの信号を含むバス信号への非仮想演算をモデル化且つシミュレーションする機能を提供することで、これまでのシミュレーションシステムの能力を拡張する。本発明の例示的なこの実施形態では、バス信号がブロックダイアグラム400の非仮想ブロックに直接的に接続できるので、これらバス信号を含むデータ信号に対するシミュレーションすべき演算をモデル化できる。例えば、図5に示したように、ユーザは、バス作成ブロック406を用いて異なる信号タイプを備えた複数の信号42、44、及び46を含むバス信号410を生成できる。バス信号410は様々な異なる信号タイプを含むことがあり、例えば、データタイプやデータの複素性などが異なる様々な属性の信号を含みうる。本明細書では、「信号タイプ」という用語は一組の信号属性を指す。「データタイプ」という用語は本発明の分野では周知であり、コンピュータシステムにおけるデータの内部表現やデータに関わる付加的意味を指す。使用可能なデータタイプの例には、ブール、16ビット整数、固定小数点、倍精度などがある。これらの例は例示目的であって、本発明を限定するものではない。例示的なバス信号410は、整数信号(第1信号タイプ)42と、倍精度信号44(第2信号タイプ)44、及び倍精度信号46(第2信号タイプ)を含む。バス信号410は分解しなくてもブロックダイアグラム400内の非仮想ブロック407を「通過」する。非仮想ブロック407は、バス信号410内の全信号42、44、及び46が表す信号値への演算を表し、各コンポーネント信号に別個の演算ブロックを必要とせずにバス信号410内の全信号への非仮想演算をシミュレーションする。非仮想演算の例には、「ゲイン」ブロックを用いた乗算、「積分」ブロックを用いた積分、「微分」ブロックを用いた入力の微分計算、「遅延」ブロックを用いた入力の遅延、及び本発明の分野で公知或いはユーザが作成した多数の処理が含まれるが、それに限定されない。Simulink(登録商標)のブロックで表現可能な他の演算には、除算、線形変換関数、極及びゼロで指定された変換関数、不感帯関数、スイッチング関数、量子化関数、及びレート制限関数が含まれる。バス信号は、信号タイプが異なる複数のコンポーネント信号を含むことができる。コード生成時は、実行エンジンは、ユーザからの入力を必要とせずに、バス信号410を含むブロックダイアグラムの部分を自動的にマッピングする。
【0045】
図5に示したように、ブロックダイアグラム内のバス信号410は、バス信号410を入力ポート407aすなわちブロック407の入口に接続することでブロック407を「通過」させられる。ブロック407はそのコンポーネント信号に行う非仮想演算を表す。バス信号の入力ポートへの接続は、コンポーネント信号の値が入力としてブロック407が表す演算に渡されることを意味する。出力バス信号410’は変更コンポーネント信号を含み、これら変更コンポーネント信号は、入力コンポーネント信号それぞれが表す値への非仮想演算の出力を表す。変更バス信号410’は、ブロック407の出力ポート407bに接続する。
【0046】
本発明の一実施形態では、バス信号410が非仮想ブロック407を通過する際に、バス信号の構造は保存される。例えば、バス信号が遅延ブロックを通過する時、遅延ブロックの出力におけるバス信号410’の形式は、遅延ブロックへの入力におけるバス信号410の形式に一致している。「形式」はデータタイプ、複素性などの特性を包含するものと理解されている。
【0047】
図示したように、ユーザは、演算を表現する個別ブロックに各信号を別々に通過させることで、演算を実行するためにバス信号の信号をグループ解除する必要がなく、更に、各信号を演算子ブロックに別々に通過させた後で信号を別のバス信号に再グループ化する必要がない。従って、図3のブロックダイアグラム200を図5のブロックダイアグラム400と比較すれば分かるように、バス信号をブロックダイアグラム内の非仮想ブロックに通過させる能力は、容易に構築且つ理解可能なより簡潔で単純なブロックダイアグラムを提供する。バス信号をキーブロックに通過させる能力のおかげで、例えば図3のダイアグラムで必要となるような、バス信号を作成し且つ非グループ化する不要なステップを排除することで、データ入力を促進する。
【0048】
本発明の別の様態では、バス信号をそれまで受け取りできなかった、時間ベース・ブロックダイアグラムの一定のキーブロック及びノードがバス信号を受け取りできるように構成される。限定するわけではないが、例としては、1回のサンプリング周期において入力バス信号410内の全信号にゼロ次保持を実行するゼロ次保持ブロックと、1回のサンプリング周期で入力バス信号410内の全信号を遅延させる遅延ブロックと、複数の入力信号を単一の記憶場所に結合するマージブロックと、スイッチブロックと、マルチポート・スイッチブロックとが含まれる。本発明の例示的な一実施形態によれば、バス信号はこれらブロックの任意ブロックに直接接続でき、実行エンジンは、シミュレーション時にユーザからの入力を必要とせずに、ブロックダイアグラムのその部分を自動的にマッピングする。結果的に、全信号に対するブロックが表現する演算をモデル化するに当たって、ユーザがバス信号を非グループ化したり、個々のコンポーネント信号を別々のブロックに通過させたりする必要がないため、ブロックダイアグラムが単純化される。このモデリング・アプリケーションにより、バス信号はサブシステム(別のシステム内のシステムを表す)と、Stateflow(有限状態機械、フローダイアグラム、状態図、真理表、又はテキスト形式機能の任意の組合わせを指定するのに用いるツールの一例)などの他の領域とを通過可能となる。
【0049】
本発明の他の局面によれば、モデリング・アプリケーション6は、バス信号を定義して、それが非仮想実装を備えることを指定する機能を含んでいる。例えば、例示的な一実施形態では、ユーザは、バス信号の非仮想コンポーネント信号の物理的属性を定義できる。上述のように、従来の時間ベース・ブロックダイアグラムにおけるバス信号は物理的側面を含まず、ブロックダイアグラムなどの動的システムのグラフィカルモデル構築時に、グラフィカルモデルの外観を単純化するため使用されてきたにすぎない。シミュレーション時には、従来システムのバス信号は、数学的意味を持たない単なる装飾的構成要素として無視され、バス信号を表現するシミュレーション時にはコードが生成されなかった。一実施形態では、本発明は、バス信号の非仮想実装を指定し、バス信号を構成するソース信号のような、ブロックダイアグラムの他の構成要素から独立してバス信号のコードを生成する機能を提供する。
【0050】
図6は、バス指定エディタ500を表示するGUIを示す。このエディタ500を用いれば、時間ベース・ブロックダイアグラムにおけるバス信号を本発明の例示的な一実施形態に従って定義できる。バス指定エディタ500により、ユーザは、バス信号の構成要素の特性など、バス信号の一定のプロパティを定義できる。通常の技能を備えた当業者であれば、本発明は例示的なこの実施形態に限定されず、仮想又は非仮想バス信号を定義するための任意適切な機構を、本発明の教示に従って使用できることは理解するはずである。
【0051】
図6に示した実施形態では、バス指定エディタ500は、バス信号の構成要素の物理的属性を指定する定義を入力するための複数フィールドを含むが、当業者であれば、本発明はバス信号を指定する図示した機構には限定されないことは理解するはずである。例示的なこの実施形態では、定義可能なバス信号410の特性には、バス信号構成する要素の名前、要素の次元(すなわち各信号が行列、ベクトル、又はスカラー値か)、例えばコンポーネント信号の属性のデータタイプ(信号が正数か、倍精度か、ブールかなど)などの信号タイプ、各要素の複素性、及び各要素のサンプリングモードが含まれるが、それらには限定されない。図示したように、バス指定エディタ500は名前フィールド502を含み、このフィールドが、ユーザによるバス信号410を構成するコンポーネント信号の名前の定義を可能とし、バス信号に含まれるコンポーネント信号の数の指定を可能とする。例示的なバス指定エディタ500は、ユーザによるバス信号を構成する信号の次元の数を指定可能とする名前フィールド504を含む。本明細書では、信号の次元とは、その信号がベクトル(1次元)か、マトリックス(2次元)か、それ以外かなどを指す。Simulink(登録商標)では、1次元(1D)信号は、一般に、シミュレーション時間ステップごとに一配列(ベクトル)の頻度で出力される1次元配列のストリームからなる。2次元信号は、1回のブロックサンプリング時間に、1つの2次元配列(行列)の頻度で発信される2次元配列のストリームからなる。単一要素配列はしばしば「スカラー」と呼ばれる。行ベクトルは、1行からなる2次元配列である。列ベクトルは、1列からなる2次元配列である。信号タイプフィールド506は、ユーザによる、バス信号を構成する信号の信号タイプの指定可能とする。例としては、信号の属性のデータタイプ指定がある。本明細書では、「データタイプ」という用語は、コンピュータシステムにおけるデータの内部表現に加え、データに関わるその他の意味を指す。可能なデータタイプの例には、ブール、16ビット整数、固定小数点、倍精度などがある。複素性フィールド508は、ユーザによる、バス信号を構成する信号の複素性を指定可能とする。すなわち、各信号を構成する値が複素数か実数かを指定できる。複素信号とはその値が複素数である信号であり、実数信号は実数値を備える。サンプリングモード・フィールド510は、バス信号内の各要素のサンプリングモードを指定するためのものである。サンプリング時間フィールド512では、ユーザはバス信号のサンプリング速度を指定できる。ヘッダフィールド514では、ユーザはバス信号のヘッダを定義し、生成されたC符号における信号のタイプ定義を表す。記述フィールド516では、ユーザはバス信号の記述を入力できる。通常の技能を備えた当業者であれば、バス指定エディタは、例示的なこの実施形態に限定されるものでなく、モデリング・アプリケーションにおけるバス信号の1つ又は複数の属性を定義するための任意適切な機構を本発明の教示に従って使用できることは理解するはずである。
【0052】
当業者であれば、バス信号を定義する機能は非仮想バス信号に限定されないことは理解するはずである。例えば、バス指定エディタを用いて仮想バス信号も定義できる。バスが仮想実装か非仮想実装かに関わらず、当該バスの定義を用いてその構成要素の特性を指定できる。
【0053】
図6に示した実施形態では、「pos_bus」と名付けたバス信号410が指定されている。pos_busバス信号は、行列(2次元)である、「x_pos」と名付けた第1信号411を含み、データタイプは正数で、値は複素数で、サンプリングモードはサンプルベースである。pos_busバス信号の第2信号412は「y_bus」と名付けられており、1次元で、倍精度型の値を備え、実数である。バス信号の特性は、例示的なバス指定エディタ又は他の適切なツールを用いてユーザにより入力且つ定義される。
【0054】
上述のように、バス信号に定義を与えた後、実行エンジン6dは、ブロックダイアグラムの通常のコード生成処理から独立して、非仮想実装を備えたバス信号のコードを独立定義として生成できる。例示的なこの実施形態では、バス信号の独立コードは、バス信号の定義が完了した時にその定義を用いて生成される。
【0055】
発明の例示的な一実施形態によれば、バス指定はバス指定エディタ500を用いて定義されるが、定義されたコンポーネント信号の名前のみを備えているため弱いこともあり、例えば完全に指定された名前、データタイプ、幅、複素性などのバス信号の全要素に対する完全な定義を備えているため強いこともある。更に、バス指定は部分的としてもよく、例えば名前や複素性は定義されているが、データタイプや幅は定義されていないなど、部分的な定義からなる場合がある。更に、ユーザには、バスを仮想とするか非仮想とするかを指定する機能が与えられる(例えば、コード生成のインターフェース)。
【0056】
本発明の例示的な一実施形態では、バス信号を拡張してユーザにより決定且つ入力可能な定義を備えることで、ユーザがシステム・インターフェースを定義できるようになり、より頑丈で構造化した設計が実現する。
【0057】
バス信号の指定はブロックダイアグラム・モデル内部に作成してもよいし、ユーザ定義データ(UDD)クラスに基づいたアプローチを用いてモデルから独立して作成してもよい。バス信号の指定は、上述したようにバス指定エディタを用いて定義できるが、ダイアグラミング・プログラム内のバスライブラリに保存し、必要なときはユーザが呼び出しできる。又、この処理は、ブロックダイアグラムを構築するために、ブロックがブロックライブラリから呼び出される処理と似ている。バス信号の指定は、当該バス信号を実装する、関連付けられたブロックダイアグラム・モデルとともに保存できる。別法として、バス指定はブロックダイアグラム・モデルとは別に保存し、後のブロックダイアグラムの構築時にブロックダイアグラム・モデルと関連付けてもよい。
【0058】
本発明の別の様態によれば、上述のように指定を定義済みのバス信号は、生成コードを実装すると、すなわち当該バス信号を含むブロックダイアグラムが実行エンジン6dによりコードに変換されると、多数のバリアントをもたらすことがある。時間ベース・ブロックダイアグラムのようなグラフィカルモデリング環境においてバス信号の「実装バリアント」(すなわち、1つの論理指定に付き複数の実装指定)を与える機能によって、同一の論理バス信号が異なる複数のコンテキストでアクセス可能となる。この場合、各アクセスは生成コードにおける最適表現を備えることになる。バス指定に複数の実装を可能とすることで、非常に効率的な生成コードが実現する。
【0059】
使用例によっては、本発明は、バス信号を含むブロックダイアグラム又は他のグラフィカルモデルが表現する動的システムのシミュレーション時に、バス信号を生成コードで実装する様々な方法を提供する。例示的な一実施形態によれば、本発明は、バス信号を実装する5つの異なる方法を提供できる。例えば、バス信号は、生成コードにおいて関数に構造体として渡すこともできる(参照渡しで)。別法では、バス信号は、生成コードにおいて関数にグローバル構造体として渡すこともできる(グローバルとして静的に参照される)。一様態によれば、バス信号の個別要素を仮パラメータとして関数に渡してもよい(値渡しで)。更に別の実施例では、バス信号の各要素は1個の非構造的データとして渡してもよい。自動モードでは、実行エンジンは、バス信号を実装する際にどの方法を用いるかを自動的に計算且つ決定する。
【0060】
バス信号がシステム(すなわち生成コードの関数)との間でいかに効率的に受け渡しされるかは、状況に依存する。例示的な一実施形態によれば、生成コードにおけるバス信号の実装は、モデル階層の異なるレベルに対応する。
【0061】
本発明の例示的な一実施形態の適用例では、ユーザがどの実装方法を使用するかを選択する仕組みが提供される。例えば、バス信号の作成時に、ユーザは、作成したバス信号が仮想或いは非仮想かを指定でき、又、非仮想の場合は、ローカル構造体又はグローバル構造体を使用できるようにこのバス信号のプロパティを編集できる。好適な一実施形態では、バス引数受け渡し機構は、ユーザが、図6に示したバス指定エディタ500などのバスエディタ・インターフェースを用いて指定可能としてもよい。
【0062】
本発明の別の様態によれば、モデリング・アプリケーション6は、モデルの構築及びシミュレーション時に特定のバスタイプを適用するためチェックを行う。バスの指定には、静的及び動的チェックを実行する方法を含むことができる。例えば、バス信号内の各コンポーネント信号に関して、ユーザは、図2に関連して示したようにステップ12のブロックダイアグラムの作成時に、バス指定エディタ500を用いて制約条件を指定できる。バス信号内の各信号に関する制約条件を指定した後、上述のように、実行エンジン6dは、ステップ14に先だって静的チェックを実行して、属性伝播段階においてシミュレーション前に一定の制約条件を検査できる。別の様態によれば、実行エンジン6dはステップ18で動的チェックを実行し、これがブロックダイアグラムのシミュレーション時に制約条件を検査する。こうしたチェックを使用して、指定したバスタイプ又は定義をサブシステム入力又は出力に適用したり、サブシステム入力の範囲を指定したりできる。ブロックダイアグラムの作成及び実行時に制約条件チェックを実行できる機能により、より安全な設計がもたらされる。
【0063】
例えば、一様態によれば、バス信号を受け取るサブシステムのインポート(原語:inport)ブロックは、バス信号の受け入れ可能バリアントを指定する。従って、本発明の例示的な一実施形態による実行エンジンが実行する制約条件チェックにより、指定したフォーマットを備えたバス信号のみがサブシステムに渡されることが保証される。ユーザが指定フォーマットと違うフォーマットを備えたバス信号を通過させようとすると、属性伝播段階(静的チェック)時か、シミュレーション時(動的チェック)時に実行エンジン6dがエラーを発することになる。
【0064】
バス信号を定義し且つバス信号のコードを生成する機能は、データ入力を大幅に引き下げる一方で、簡潔なダイアグラムの作成を可能とする。図7には、本発明の例示的な一実施形態による改良型バス信号を実装するブロックダイアグラム・モデル600の一例を示した。図示したように、コンポーネント信号60a、60b、60c、60d、及び60eが、バス作成ブロック606を用いてグループ化されており、このモデルの線の数が減少している。例示的なバス作成ブロック606は、オプションのユーザ定義データクラス指定も備えている。図示したように、バス作成ブロック606は、信号60a、60b、60c、60d、及び60eを結合して、例えばバスエディタ・インターフェースで定義されたように、タイプ「foo」の「sig」と名付けられたバス信号610を作成する。バス信号610は、入力ポート80aを介してサブシステム80に接続する。サブシステム80は、バス信号610のコンポーネント信号が表現する値に対して実行する演算を表す。図示したように、サブシステム80は、タイプ「foo」(すなわちバス信号610と同じタイプ)の信号を受け取るように構成されている。サブシステム80は、バス信号610が適切なタイプであることを確認するためのチェックを行う。仕様にもよるが、図7に示したようにこのサブシステムは、出力ポート80bを介して第1出力720と、出力ポート80cを介して第2出力710とを出力する。第2出力710はバス信号でよい。又、バス信号610は分岐して、入力ポート70aを介して代入ブロック70に進む。代入ブロック70は、ポート70bを介して値を指定要素(信号60b)に代入するが、その際にバス信号610を分解し、再構築する必要がない。この代入ブロックは、その出力を表すバス信号810に接続する出力ポート70cを備えている。バス信号810は「sig_prime」と呼ばれ、これもタイプ「foo」である。図示したように、代入ブロック70は、値をバス信号の1つ又は複数の要素に代入する一方で、その信号の構造は保存する。出力バス信号810はバス選択ブロック608に進み、このブロック608はバス信号810から信号60a及び60eを非グループ化する。
【0065】
図8は、本発明の一実施形態による、拡張バス信号機能を実現する別のブロックダイアグラム・モデル700を示す。図示したように、入力ブロック「In1」92からは、「foo」と指定されたバスタイプを備えた「x」と名付けたバス信号910が発せられている。現在のデータタイプ伝播と同様に、入力バス信号がタイプ「foo」でない場合は、エラーが出される。バス信号のバス指定エディタでは、ユーザは、オプションで入力バス信号910を非仮想に構成できる(すなわち、構造実装)。このシステムは、信号が適切なタイプであることを保証するため、入力バス信号910に静的及び動的チェックを行う。単位遅延ブロック99として示されたブロックがバス信号910を受け取って、入力バス信号94と同じタイプのバス信号910’「x_prime」を出力する。ブロック99からのバス信号910’の出力は、指定次第で仮想でも非仮想でもよい。図8に示したように、ユニット遅延ブロック99は、入力信号を1サンプル時間分で遅らせる。通常の技能を備えた当業者であれば、上述の単位遅延ブロックは本発明の実施形態を例証するものであり、バス信号が表現する値に対して実行される関数を表現する任意適切なブロックを使用できることは理解するはずである。Stateflowブロック102は、ブロック99からタイプ「foo」のバス信号を受け取り、スカラー「out」信号106とタイプ「goo」のバス信号「y」1110とを出力する。スカラーのout信号106は出力ポート116に進み、バス信号1110は出力ポート118に進む。入力バスと出力バスとに問題のある接続があれば、このシステムはエラーを発する。例えば、バス信号910’がタイプ「foo」でなく「goo」であれば、Stateflowブロック102はこの信号を入力として受け取らない。バス信号1110は、出力ポート118に進む前に分岐し、一方の分岐がバス選択ブロック908に進む。バス選択ブロック908は、出力バス信号1110を2つの信号120m及び120nに分解し、非グループ化された信号120m、120nを付加的ブロック(図示しない)に渡す。
【0066】
グラフィカル・ユーザインターフェースに表示したStateflowダイアグラム180を示す図9から分かるように、テキストベースのStateflowアクション言語は、図8のバス信号910’の要素に直接アクセスできる。Stateflowアクション言語によりStateflowダイアグラム180で定義さているように、Stateflowブロック102の出力信号106は、タイプ「foo」の入力バス信号910’の2つのコンポーネント信号の積に等しい。更に、Stateflowダイアグラム180は、出力バス信号「y」1110を、構成要素「m」及び「n」をそれぞれ5及び4とするタイプ「goo」のバス信号として定義する。
【0067】
図10A及び10Bに示したように、バス信号は、その構造を非グループ化したり変更したりすることなく、第1ドメインから第2ドメインへ渡すこともできる。現在の技術水準における異なるドメインの例には、Simulink(登録商標)、Stateflow、及び組込みMATLABが含まれるが、これらに限定されない。例えば、例示的な実施形態では、Simulink(登録商標)は時間変化信号をモデル化する時間ベース・ブロックダイアグラムであり、Stateflowはイベント駆動型の様相論理をモデル化する状態ベースのダイアグラムドメインである。図10Aは従来のブロックダイアグラム800を示すが、ここでは、Stateflowチャート820などの第2ドメインのサブシステムは、異なるドメインを起点とするバス信号を受け入れたり、処理したりすることはできない。Stateflowは、マサチューセッツ州ナティック所在のThe
Mathworks社から入手可能の、イベント駆動型システムをモデル化し、シミュレーションする対話型設計ツールである。図示したように、入力バス信号810は、バス選択ブロック808を用いて多数のデータ信号に非グループ化される。すると、それぞれのデータ信号はこのサブシステムに渡される。サブシステム800からの出力信号はその内部を通過した後、バス作成ブロック806を用いて複数のバス信号810a及び810bに再グループ化され、結果として複雑で不明瞭なブロックダイアグラムができあがる。
【0068】
図10Bに示した本発明の一様態によれば、時間ベース・ブロックダイアグラムにおけるブロックダイアグラム800’は、Simulink(登録商標)などの別のドメインからのバス信号を、このバス信号を形成する信号を非グループ化しないで受け入れるよう構成されたブロック820’(Stateflowチャートを表す)を含んでいる。例えば、図10Bに示したように、ブロック820’は、バス作成ブロックやバス選択ブロックを必要としないで入力バス信号810’を直接的に受け入れ、信号812並びにバス信号810’a及び810’bを直接的に出力する。第1ドメインと第2ドメインとの間のこうした直接インターフェースは、ブロックダイアグラムを大幅に簡素化する。
【0069】
図11及び12に示したように、別の実施形態では、バス信号は、第1ドメイン(例えば、Simulink(登録商標)などのブロックダイアグラム環境)から第2ドメイン(MATLABなどの技術計算環境)へ渡すこともできる。例えば、図11に示したように、Simulinkブロックダイアグラム1100の組込みMATLABブロック1110はバス信号1111の要素にアクセスできる。例示的なこの実施形態では、タイプ「foo」のバス信号1111が、組込みMATLABブロック1110に渡され、入力バス信号1111とタイプが同一の「foo」タイプのバス信号1112として出力される。図12は、第2ドメインの組込みMATLABエディタ1200を示す。このエディタは、組込み
MATLABブロック1110により入力信号に実行される関数を指定する。エディタ1200のコードで指定されているように、ブロック1110の出力信号「y」1112は、ブロック1110への入力信号「u」1111の関数である。入力信号1111及び出力信号1112の両方は、タイプ「foo」のバス信号である。図示したように、組込みMATLABスクリプト、すなわちSimulink(登録商標)内のテキストベース言語は、入力バス信号1111の要素に直接アクセスできる。
【0070】
図13は、図11に示したMATLABブロック1110の入力ポートのパラメータを指定するためのグラフィカル・ユーザインターフェース1300を示す。図示したように、ユーザは、MATLABブロック1110のバス信号タイプを、タイプ「foo」或いは他の任意のユーザ指定タイプとしてフィールド1311で指定できる。指定可能な別のパラメータとしてはポート番号があり、フィールド1312で指定する。当業者であれば、インターフェース1300を用いてサブシステムの構成要素の任意適切なパラメータを指定できることは理解するはずである。
【0071】
通常の技能を備えた当業者であれば、本発明は例示的なこのシステムに限定されず、任意適切なサブシステムがバス信号を受け取り可能としてよいことは理解するはずである。例えば、バス信号を、従来のブロックダイアグラム、真理表、テキスト形式プログラミング言語(MATLAB、統一モデリング言語(UML)、又は他のドメイン)の間で構造化データとして受け渡すようにしてもよい。
【0072】
本発明では、たとえばSimulinkにおけるスクリプティングブロック並びにStateflow及び組込みMATLABにおけるテキスト形式関数は、両方ともバス信号の形式をサポートする。入出力バス信号は、スクリプトおいて適切に名前を付けた構造体変数へ記号を用いてマッピングされる。自然構文を用いて、使用されている実際のスクリプティング言語内の構造体及び/又は構造体ポインタを参照してもよい。例示的な一実施形態によれば、好適なスクリプティング言語はStateflowアクション言語及びMATLABであるが、当業者であれば、このスクリプティング言語は、MATLAB、C/C++、及びJAVA(登録商標)など任意の合成可能な(原語:synthesizable)テキスト形式言語でよいことは理解するはずである。
【0073】
本発明では、実行エンジンは入出力バスの構造的定義を活用して、Simulinkバスを他のプログラミング言語の構造変数へ意味論的にマッピングする。これによって、Simulinkなどの時間ベース・ブロックダイアグラム環境と、グラフィカル状態及びフローダイアグラム又はMATLABを含むテキスト形式言語などの他のモデル化ドメインとの間で、コンポジット信号を橋渡しする独自の便利な方法が提供される。
【0074】
本発明は、バス信号を形式化することでバス信号をより効果的、直感的に理解可能とし、且つ容易に使用可能とする動的システムをモデル化するグラフィカルモデリング環境を提供する。ユーザが入力した定義を備えたバス信号を用いることで、単純化されたブロックダイアグラムが実現すると共にデータ入力が容易となるので、動的システムのシミュレーションがより効率的となる。
【0075】
ここまで例示的な実施形態に関連して本発明を説明してきた。上記の構成に対する幾つかの変更例が、本発明の範囲を逸脱することなく可能であるから、この説明に含まれ或いは添付の図面に示された全ては、例示的なものとして解釈されるべきであり、限定的な意味で解釈されるべきではない。
【0076】
更に、以下の特許請求の範囲は、ここに説明された本発明の全ての一般的特徴と具体的特徴とを網羅するものであり、また本発明の範囲に関する全ての言明をも網羅する。
【図面の簡単な説明】
【0077】
【図1】図1は、本発明の例示的な実施形態を実施するのに適した環境を示す。
【図2】図1に示した環境を用いた動的システムのシミュレーションに関わるステップを図示するフローチャートである。
【図3】仮想バス作成ブロック及びバス選択ブロックを含んだ、従来技術のブロックダイアグラムを示す。
【図4】バス信号を作成するための、現在の技術水準によるバス選択ダイアログボックスを示す。
【図5】本発明の一実施形態によるバス信号を含んだブロックダイアグラムを示す。
【図6】本発明の例示的な一実施形態による、グラフィカルモデリング環境におけるバス信号を定義するためのバス指定エディタを示す。
【図7】本発明の一実施形態による、拡張バス信号を実装するブロックダイアグラム・モデルを示す。
【図8】本発明の一実施形態による、拡張バス信号機能を実現する別のブロックダイアグラム・モデルを示す。
【図9】本発明の一実施形態による、Simulinkドメインからバス信号をアクセスするStateflowダイアグラムを示す。
【図10】(A) Stateflowチャートをサブシステムとして含んだ、従来技術のブロックダイアグラムを示す。 (B) 本発明の一実施形態によるStateflowチャートを含んだブロックダイアグラムを示す。
【図11】組込みMATLABブロックを含んだブロックダイアグラムを示し、このダイアグラムは、バス信号をそのブロックダイアグラム・ドメインからアクセスする。
【図12】図11のMATLABブロックのエディタを示す。
【図13】図11に示したMATLABブロック1110の入力ポートの属性を指定するためのグラフィカル・ユーザインターフェースを示す。
【特許請求の範囲】
【請求項1】
電子装置における方法であって、
グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて、第1信号タイプの第1データ信号と第2信号タイプの第2データ信号とをグループ化してバス信号を形成する段階と、
前記バス信号に非仮想演算を行う段階とを含む、方法。
【請求項2】
前記グラフィカルモデルがブロックダイアグラムであり、更に、前記バス信号に非仮想演算を行う前記段階が、前記非仮想演算を表現する演算ブロックを含んだ前記ブロックダイアグラムを構築する段階と、前記ブロックダイアグラムにおける前記バス信号の表現を前記演算ブロックの入力ポートに接続する段階を含む、請求項1に記載の方法。
【請求項3】
前記演算ブロックの出口が、変更第1データ信号と変更第2データ信号とを含む変更バス信号に接続し、前記変更第1データ信号が、前記第1データ信号を入力とする前記非仮想演算の出力を表す一方、前記変更第2データ信号が、前記第1データ信号を入力とする前記非仮想演算の出力を表す、請求項2に記載の方法。
【請求項4】
前記演算ブロックにより表現される非仮想演算を行う前記段階が、前記第1データ信号及び前記第2データ信号により表現される値を前記非仮想演算の入力として用いることによって前記非仮想演算を解く段階を含む、請求項2に記載の方法。
【請求項5】
前記非仮想演算を解く前記段階が、前記グラフィカルモデルを、当該グラフィカルモデルを表現する実行可能なコンピュータ可読命令に変換する段階と、前記コンピュータ可読命令を実行する段階とを含み、前記コンピュータ可読命令が前記モデルにより指定される機能を実装する、請求項4に記載の方法。
【請求項6】
前記バス信号の前記第1データ信号及び前記第2データ信号の1つ又は複数の物理的属性を定義する段階を更に含む、請求項1に記載の方法。
【請求項7】
前記バス信号が、前記演算ブロックの出力ポートと、前記演算ブロックの入力ポートとで同一の構造を持つ、請求項2に記載の方法。
【請求項8】
前記非仮想演算が、前記第1データ信号及び前記第2データ信号で表される値に対する乗算、除算、積分、微分、線形変換関数、遅延関数、極及びゼロで指定された変換関数、不感帯関数、スイッチング関数、量子化関数、及びレート制限関数のうち1つを含む、請求項1に記載の方法。
【請求項9】
前記第1信号タイプが前記第2信号タイプとは異なる、請求項1に記載の方法。
【請求項10】
前記バス信号の制約条件を確認する段階を更に含む、請求項1に記載の方法。
【請求項11】
動的システムをシミュレーションするためのモデリング・アプリケーションを生成し且つ表示するシステムであって、
データを前記アプリケーションに入力するためのユーザが操作可能な入力手段と、
前記動的システムを表現するグラフィカルモデルを表示するための表示装置と、
コンピュータプログラム命令及びデータを記憶するためのメモリ並びに前記記憶されたコンピュータプログラム命令を実行するためのプロセッサを含む電子装置とを含み、前記コンピュータプログラム命令が、前記グラフィカルモデルで表示されたバス信号に非仮想演算を実行するための命令を含み、前記バス信号が、当該バス信号を形成するためグループ化された第1信号タイプの第1データ信号と第2信号タイプの第2データ信号とを含む、システム。
【請求項1】
電子装置における方法であって、
グラフィカル・ユーザインターフェースに表示されるグラフィカルモデルにおいて、第1信号タイプの第1データ信号と第2信号タイプの第2データ信号とをグループ化してバス信号を形成する段階と、
前記バス信号に非仮想演算を行う段階とを含む、方法。
【請求項2】
前記グラフィカルモデルがブロックダイアグラムであり、更に、前記バス信号に非仮想演算を行う前記段階が、前記非仮想演算を表現する演算ブロックを含んだ前記ブロックダイアグラムを構築する段階と、前記ブロックダイアグラムにおける前記バス信号の表現を前記演算ブロックの入力ポートに接続する段階を含む、請求項1に記載の方法。
【請求項3】
前記演算ブロックの出口が、変更第1データ信号と変更第2データ信号とを含む変更バス信号に接続し、前記変更第1データ信号が、前記第1データ信号を入力とする前記非仮想演算の出力を表す一方、前記変更第2データ信号が、前記第1データ信号を入力とする前記非仮想演算の出力を表す、請求項2に記載の方法。
【請求項4】
前記演算ブロックにより表現される非仮想演算を行う前記段階が、前記第1データ信号及び前記第2データ信号により表現される値を前記非仮想演算の入力として用いることによって前記非仮想演算を解く段階を含む、請求項2に記載の方法。
【請求項5】
前記非仮想演算を解く前記段階が、前記グラフィカルモデルを、当該グラフィカルモデルを表現する実行可能なコンピュータ可読命令に変換する段階と、前記コンピュータ可読命令を実行する段階とを含み、前記コンピュータ可読命令が前記モデルにより指定される機能を実装する、請求項4に記載の方法。
【請求項6】
前記バス信号の前記第1データ信号及び前記第2データ信号の1つ又は複数の物理的属性を定義する段階を更に含む、請求項1に記載の方法。
【請求項7】
前記バス信号が、前記演算ブロックの出力ポートと、前記演算ブロックの入力ポートとで同一の構造を持つ、請求項2に記載の方法。
【請求項8】
前記非仮想演算が、前記第1データ信号及び前記第2データ信号で表される値に対する乗算、除算、積分、微分、線形変換関数、遅延関数、極及びゼロで指定された変換関数、不感帯関数、スイッチング関数、量子化関数、及びレート制限関数のうち1つを含む、請求項1に記載の方法。
【請求項9】
前記第1信号タイプが前記第2信号タイプとは異なる、請求項1に記載の方法。
【請求項10】
前記バス信号の制約条件を確認する段階を更に含む、請求項1に記載の方法。
【請求項11】
動的システムをシミュレーションするためのモデリング・アプリケーションを生成し且つ表示するシステムであって、
データを前記アプリケーションに入力するためのユーザが操作可能な入力手段と、
前記動的システムを表現するグラフィカルモデルを表示するための表示装置と、
コンピュータプログラム命令及びデータを記憶するためのメモリ並びに前記記憶されたコンピュータプログラム命令を実行するためのプロセッサを含む電子装置とを含み、前記コンピュータプログラム命令が、前記グラフィカルモデルで表示されたバス信号に非仮想演算を実行するための命令を含み、前記バス信号が、当該バス信号を形成するためグループ化された第1信号タイプの第1データ信号と第2信号タイプの第2データ信号とを含む、システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11】
【図12】
【図13】
【公表番号】特表2007−510223(P2007−510223A)
【公表日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2006−538111(P2006−538111)
【出願日】平成16年10月20日(2004.10.20)
【国際出願番号】PCT/US2004/034904
【国際公開番号】WO2005/043422
【国際公開日】平成17年5月12日(2005.5.12)
【出願人】(505384841)ザ マスワークス, インク (15)
【氏名又は名称原語表記】THE MATHWORKS, INC.
【住所又は居所原語表記】3 Apple Hill Drive, Natick, MA01760 (US).
【Fターム(参考)】
【公表日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願日】平成16年10月20日(2004.10.20)
【国際出願番号】PCT/US2004/034904
【国際公開番号】WO2005/043422
【国際公開日】平成17年5月12日(2005.5.12)
【出願人】(505384841)ザ マスワークス, インク (15)
【氏名又は名称原語表記】THE MATHWORKS, INC.
【住所又は居所原語表記】3 Apple Hill Drive, Natick, MA01760 (US).
【Fターム(参考)】
[ Back to top ]