JP2004118842A - オリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法 - Google Patents

オリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法 Download PDF

Info

Publication number
JP2004118842A
JP2004118842A JP2003330104A JP2003330104A JP2004118842A JP 2004118842 A JP2004118842 A JP 2004118842A JP 2003330104 A JP2003330104 A JP 2003330104A JP 2003330104 A JP2003330104 A JP 2003330104A JP 2004118842 A JP2004118842 A JP 2004118842A
Authority
JP
Japan
Prior art keywords
software
model
software model
preliminary
generating
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
JP2003330104A
Other languages
English (en)
Other versions
JP2004118842A5 (ja
Inventor
Richard Craig Allen
リチャード・クレイグ・アレン
Randy A Coverstone
ランディ・エイ・コバーストーン
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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies 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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JP2004118842A publication Critical patent/JP2004118842A/ja
Publication of JP2004118842A5 publication Critical patent/JP2004118842A5/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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】動的システムのソフトウェアモデルを予備ソフトウェアモデルを入力として用いて生成する方法。
【解決手段】通常は、予備ソフトウェアモデル230は所与のモデリング環境内でシステム設計者が生成したシステムモデルに基づくものとなる。予備ソフトウェアモデル230はモデリング環境外からシステムモデルの内部変数へのアクセスを許可しないが該モデリング環境が存在しない場合にコンピュータプラットフォーム上で実行可能なものである。次いでシステムモデルの内部変数を開示するインタフェイスソフトウェア370が生成される。予備ソフトウェアモデル230及びインタフェイスソフトウェア370の両者から構築されたソフトウェアモデル360はモデリング環境外からの内部変数へのプラグラム上のアクセスを可能とし、モデリング環境が提供する能力を超えたシステムモデルの詳細なシミュレーションが可能となる。
【選択図】図3

Description

 本発明はオリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法に関するものである。
 動的システムは、その環境内で変化する条件に対して何らかの有益な態様で応答する、人間が考案したシステムであり、かかるシステムの設計者に対して大きな難題を呈するものである。これは、かかるシステムが効率的に処理することができなければならない条件が膨大な異なるものであるからである。例えば、かかる動的システムの一種を表す電気回路や電子回路は、入力信号に基づいて出力信号を供給することにより、絶えず変化する入力信号に反応して、該システムが動作する環境において何らかの好ましい動作を生じさせなければならないことが多い。電気回路や電子回路は、電子レンジやパーソナルコンピュータ等の日用家電品からハイテク軍事兵器に至る極めて複数の用途で非常に効果的に利用されている。更に、動的システムはまた、特定の有益な機能を遂行するよう書かれたあらゆる種類のソフトウェアを含む。更に、動的システムは、電気的、ソフトウェア的、機械的、空気圧的、又は化学的な原理またはそれらの何らかの組み合わせに基づくものを含むことが可能である(但しこれらには限定されない)。
 動的システムの設計作業は、システムシミュレーション技術の継続的な改良により大幅に強化されてきた。かかるシミュレーションにより、構築及び保守が困難な高価なプロトタイプを必要とすることなく最初に動的システムの設計モデルを試験することが可能となる。シミュレーションを通じて、あらゆる想像可能な一組の試験条件を用いて予備的なシステム設計を細部まで行なうことが可能となる。次いでその試験結果をシステム設計者が使用してシステム性能を解析することが可能となる。一般に、該試験結果に基づいて変更が行われ、試験が再実行され、その試験結果が再度解析されて、該変更による影響の善悪が判定される。かくして、シミュレーションは、試験対象となるシステムの実際の構成に先立ち反復的な態様で動的システムの設計を改善することを可能にし、その結果として、より短期間でより生産的なシステム開発を行うことが可能となる。
 かかるモデリング環境の具体例は、Mathworks Inc.によるSimulink(R)(システム定義及びシミュレーションツール)である。図2に示すように、モデリング環境210は、動的システムが電気的、機械的、又はその他のものであろうと、設計者により決定された特性を有するシステムモデル1により動的システムをシステム設計者が指定することを可能にする。システムモデル1の一例を図1に示す。該システムモデル1は、システムモデル1内で幾つかの識別可能な作業をそれぞれ遂行する幾つかの機能ブロック2からなる。通常は、1つ又は2つ以上の入力信号3及び出力信号4(すなわち包括的には外部変数)が、モデル1で表わされる動的システムにより利用されて、周囲の環境と通信し該環境に影響を及ぼす。各機能ブロック2には、該機能ブロック2がその特定の機能を実行する態様に影響を与える1つ又は2つ以上のブロックパラメータ5を関連付けることが可能である。更に、システムモデル1の内部信号6は、機能ブロック2が通信することを可能にし、これにより機能ブロック2間の協働により動的システムの全機能を実行することが可能になる。Simulink等の大部分のモデリング環境210はまた、階層的な設計を可能にするものである。これは、システムモデル1の各ブロック2が、それよりも低いレベルのブロックである様々な機能を表す小ブロック(図示せず)を含むことが可能であるからである。
 図2に示すように、Simulink環境において指定されたシステムモデル1は次いで、システム設計者により考案された入力信号3を使用して同じ環境内でシミュレートすることが可能となる。モデルの解析、それに次ぐ設計変更、及び更なるシミュレーションは、通常、Simulinkツールの領域内で全てもたらされる。このプロセスの価値を高めるために、Simulinkは、内部信号6、ブロックパラメータ5、及び提案されるシステムの挙動を画定するシステムモデル1の他の重要な内部変数へのアクセスを可能にする。内部信号6は、システムモデルの動作に関する設計者によるより多くの洞察を可能にし、一方、パラメータブロック5の修正は、設計者がシミュレーション期間中にモデル1の動作を変更することができる方法を提供する。このため、かかる内部変数へのアクセスは、シミュレーション及び解析プロセス全体を一層効率的なものにする。
 Real-Time Workshop(R)(RTW)と呼ばれるMathworksにより提供されるような関連するコード生成ツール220は、モデリング環境210内で入力として当初に開発されたシステムモデルを受け取って、システムモデル(図2の符号230)を表すコード(すなわちソフトウェア)を生成する。該コード230は、CやAdaその他を含む幾つかの異なるプログラミング言語のうちの1つで生成することができる。次いで該コード230を別のプラットフォームへ転送してそこで実行することが可能であり、該コード230の実行は、プラットフォームの特性に応じておそらくはリアルタイムで進行する。電子制御システムの場合には、該プラットフォームは、制御システムを実施するために最終的に使用される目的のプラットフォームとすることが可能であり、このため、システムモデルの生成から製品レベルのコードまでほぼシームレスな進行が提供される。
 残念なことに、シミュレーション環境210内で当初はアクセス可能なシステム内部変数(図1の内部信号6やブロックパラメータ5等)は、モデルコード230を実行するプラットフォーム上では、設計者が特に作成した追加のモデル固有のソフトウェアを用いずにアクセスすることができなくなることが多い。Mathworks環境内でのこの状況を改善する努力において、RTWツールは「外部モード」オプションを提供した。これは、Simulink環境を介してアクセスされた際にRTWにより生成されたコード(以下「RTW生成コード」と称す)の内部変数に設計者がアクセスすることを可能にするものである。外部モードを使用する場合、Simulinkを介したかかる内部変数へのアクセスは、RTW生成コードが、Simulinkを実行しているプラットフォームと同じプラットフォーム上で実行されようが、伝送制御プロトコル/インターネットプロトコル(TCP/IP)等の通信リンクを介してSimulinkプラットフォームに接続された別のプラットフォーム上で実行されようが、可能である。しかし、何れの場合にも、シミュレーションの制御は依然として完全にSimulinkモデリング環境内で与えられる。その結果として、RTW生成コードを実行する能力、並びに別個のプラットフォーム上で動作しているそのコードの内部変数にアクセスする(おそらくは変更する)能力が、Simulinkの能力、並びにSimulinkプラットフォームとRTW生成コードをホストするプラットフォームとの間の通信コネクションの利用可能性に依存するものとなる。換言すれば、実行中のソフトウェアモデルの内部変数にアクセスする能力、並びにおそらくはかかる場合に該ソフトウェアモデルの実行を、オリジナルのモデリング環境外に位置するソフトウェアクライアントを介して制御する能力は、現時点では利用することができない。
 それ故、上述より、ソフトウェアモデルの内部変数にアクセスする能力並びにおそらくはソフトウェアモデルの実行を制御する能力をオリジナルのモデリング環境外のソフトウェアクライアントに自動的に与える方法は、有利なものとなる。かかる方法は、システム設計者に対し、オリジナルモデリング環境が存在しない場合に利用可能なソフトウェアモデルの実行の形式及び範囲並びに該ソフトウェアモデルへのアクセスに大きな柔軟性を提供するものとなる。
 以下で詳述する本発明の実施形態は、予備ソフトウェアモデルから動的システムのソフトウェアモデルを生成する方法を表したものである。システムモデルの動作を表す予備ソフトウェアモデルは、通常はモデリング環境内で指定されたシステムモデルを用いて生成される。予備ソフトウェアモデルは、オリジナルのソフトウェアモデルを生成するために使用されたモデリング環境の外部で実行可能なものであるが、該モデルの内部変数は一般に、該モデリング環境に関連しないソフトウェアクライアントによりアクセスすることはできない。
 この状況を緩和させるために、本発明の一実施形態では、予備ソフトウェアモデルの内部変数の少なくとも1つを開示するインタフェイスソフトウェアが生成される。次いで該予備ソフトウェアモデル及びインタフェイスソフトウェアからソフトウェアモデルが構築される。このため、この結果的に得られるソフトウェアモデルは、モデリング環境の外部から、内部変数へのプログラムによるアクセスを可能とし、おそらくは該ソフトウェアモデルの実行の制御を可能とする。
 かかるソフトウェアモデルは、オリジナルモデリング環境内で利用可能となるものよりも高いシミュレーション能力及び解析能力を有するソフトウェアクライアントによって、動的システムを表すソフトウェアモデルを詳細にシミュレートし解析することを可能にする。更に、モデルの実行制御が可能になると、かかるソフトウェアクライアントは複数のソフトウェアモデルの実行を制御することが可能となり、このため、かかるソフトウェアモデルがソフトウェアクライアントを介して互いに作用し合うことが可能になる。更に、かかるプログラムによるインタフェイスを採用するソフトウェアモデルは、異種の互換性のないモデリング環境の使用を通じて生成することができ、しかも、かかるソフトウェアモデルは、ソフトウェアクライアントを介して互いに作用し合うことが可能となる。
 本発明の他の特徴及び利点は、本発明の原理を例示する添付図面と併せて行う以下の詳細な説明から明らかとなろう。
 以下に詳述する本発明の実施形態は、Mathworks Simulink(R)モデリング環境内で生成されたソフトウェアモデル(以下「予備ソフトウェアモデル」と称す)を開始点として用いる。更に、以下の実施形態は、Mathworks Real-Time Workshop(R)(RTW)コード生成ツール環境内に統合されて該RTW内で通常得られるものを越える一層強力な能力でコードを生成するソフトウェアとして存在するものである。しかし、他のシミュレーションモデル及びそれに対応する開発ツール環境を本発明の代替的な実施形態の基礎として同様の態様で採用することも可能である。
 更に、本発明の代替的な実施形態のソフトウェアは、関連するモデリング環境との様々なレベルの統合で表すことが可能である。例えば、代替的な実施形態は、コード生成ツールとは別個にインストールされる別個の後続(follow-on)ソフトウェアを含むことが可能である。他の実施形態は、本書で具体的に説明するものと同様に、コード生成ツールとは無関係に開発されたが該ツールにより提供される幾つかの言語ターゲットの1つとしてコード生成ツール内に統合されたソフトウェアを含むことが可能である。また、他の実施形態では、コード生成ツール内に統合されたコードであって、該コード生成ツールの残りを構成するものから外部の観察者が識別することが不能となる程度に十分に統合された、コードを提供することが可能である。
 図3は、本発明の方法300の一実施形態を示すフローチャートを示している。該方法300により入力として受信されるのは予備ソフトウェアモデル230であり、これは、例えば図2に示したRTW等のコード生成ツール220により生成されたコード230とすることが可能である。予備ソフトウェアモデル230は、やはり図2に示したモデリング環境210内で生成されたシステムモデル1から導出される。その結果として、コード生成ツール220は(それ自体又はモデリング環境210との組み合わせたものが)本発明の代替的な実施形態に含めることが可能なものとなる。
 上述のように、予備ソフトウェアモデル230は、オリジナルのシステムモデルで記述された機能を実行することが可能である。実施形態に応じて、予備ソフトウェアモデル230の実施に用いるターゲットプログラミング言語は、C、Ada、又はC++等のオブジェクト指向プログラミング言語を含む他のあらゆるプログラミング言語とすることが可能である。図3の実施形態では、予備ソフトウェアモデル230は一般的なWin32ターゲットとして生成され、これは典型的にはMathworks RTWツールにより提供される。概して言えば、予備ソフトウェアモデル230は、本発明の実施形態によるあらゆる処理に先立ち、ブロックパラメータや内部信号等の内部変数へのアクセスをSimulinkモデリング環境外に許容することはない。代替的に、内部変数へのアクセスが許容される場合には、かかる変数はモデリング環境を介してのみアクセスすることが可能となり、該環境はまた、予備ソフトウェアモデル230の実行の本質的に完全な制御を維持するものとなる。
 モデルの実行制御及び内部変数へのアクセスを同時に可能とするために、方法300の各ステップは、予備ソフトウェアモデル230内に存在する内部変数をオリジナルモデリング環境外に開示する(図2の)インタフェイスソフトウェア370を作成する。図3の実施形態では、名前及びデータ種別によりシステムの内部変数を記述し、並びにそれら変数へのアクセスを調整する機能を記述する、C++ラッパークラス340が最初に生成される(ステップ310)。C++の使用は、他のオブジェクト指向言語と同様に、制御された態様で内部変数の一部または全部の開示を可能とする一方で、予備ソフトウェアモデル230のうち設計者が通常隠したままにすることを望む他の部分へのアクセスを妨げることを可能にする。C++は本書で説明する実施形態のために選択された言語であるが、本発明は、他の応用例に適した他の任意の言語も意図したものである。
 図3の実施形態では、C++ラッパークラス340を使用してソフトウェア350が生成される(ステップ320)。該ソフトウェア350は、その実行時にコンポーネントオブジェクトモデル(COM)サーバを構成するものである。COMは、マイクロソフト社により指定された広範に使用されるソフトウェアアーキテクチャ定義であり、これにより、個別のソフトウェア開発者によって様々な言語で書かれたソフトウェア「コンポーネント」(すなわちソフトウェアの各構成部分)が相互に通信することが可能となる。基本的には、COMアーキテクチャは、ソフトウェアの異種の各部の統合を容易にし、それら各部が互いに通信する態様を律する枠組を定義することにより何らかの統合された機能を実行する。図3の実施形態におけるCOM技術を利用することの主な利点は、該技術が、実質的に全てのWin32ベースのプラットフォームにわたって用いられ、このため、かかるプラットフォーム上における、結果的に得られるソフトウェアモデルの転送及び実行のためのタスクが、比較的単元的なものになる、という点にある。しかし、本発明の他の実施形態にCOM技術を使用する必要はない。これは、他の方法を使用して、予備ソフトウェアモデル230の内部変数へのアクセスを可能にすることができるからである。例えば、より包括的なインタフェイス技術であるMicrosoft(R)「.NET」を用いることも可能である。Microsoft(R)「.NET」は、一組のXMLウェブサービスを用いてソフトウェアの各部間の相互接続を可能にするものである。代替的には、C++ラッパークラス340及び予備ソフトウェアモデル230からWin32コンソールアプリケーションを直接生成し、これにより、特定のシステムモデルに関して特に生成された実行可能なシミュレーションプログラムを得ることが可能である。
 次いで、予備ソフトウェアモデル230、C++ラッパークラス340、及びCOMサーバ構築ソフトウェア350を使用してダイナミックリンクライブラリ(DLL)360が構築される。概して言えば、DLLとは、実行可能プログラムが構築される時点ではなく、その実行時に該実行可能プログラムとリンクさせることが可能な、ソフトウェアファイルである。DLLは、Win32システムで広く使用されており、実行可能プログラムの実行中にソフトウェアのどの部分を該実行可能プログラムにより実行すべきかに関する決定を行うことを可能にすることにより、プログラム構成に柔軟性をもたらすものである。COM技術のように、DLLはWin32のアプリケーションによって広範に採用されている。
 Simulink内で生成されたシステムモデルをDLL360へ変換するプロセス全体は、システム設計者によりコード生成プロセスの一部として開始されるソフトウェアスクリプトによりRTW環境内で自動的に行なわれる。典型的には、設計者は、ソフトウェアにおいてSimulinkにより生成されるシステムモデルを記述する幾つかのコードターゲットのうちの1つを選択することができる。かかるターゲットは通常は、C、C++、Ada、及び様々なリアルタイムプロセッサアーキテクチャに関する様々な種類の埋込型のターゲットで書かれたソフトウェアを含む。本発明の実施形態は、設計者に対して利用可能なターゲットの更に別の選択肢を提供し、該ターゲットが、オリジナルのシステムモデリング環境外に存在するソフトウェアクライアントによるシステムモデルの内部変数への(従来利用不能であった)アクセス能力を提供する。このターゲットが選択されると、特定のシステムモデルに関して前述のステップを実行するRTW内でソフトウェアスクリプトの集合が実行される。より詳細には、図3の実施形態によれば、ビジュアルC++プロジェクトファイルが生成され、C++Visual Studio(これもまたMicrosoft(R)により開発されたもの)が呼び出されてプロジェクトが構築され、結果的にDLL360が生成され、次いで該DLL360がオペレーティングシステムにより請われ、それ自体がCOMサーバとしてシステムレジストリ内に登録される。更に、DLL360の他の生成方法を採用することも可能である。
 一旦DLL360が構築されると、次いで該DLL360は、任意のWin32コンピュータプラットフォーム(Simulink開発環境をホストしないものを含む)へと転送することが可能となる。システムモデルの実行とモデルの内部変数へのアクセスとに必要な全ての情報は該DLL360内に含まれる。このため、DLL360は、結果的に得られるシステムモデルをシミュレートすることができるプラットフォームの種類及び数に極めて大きな柔軟性を提供するものとなる。
 DLL360を利用するために、該DLL360にリンクした選択されたプラットフォーム上のソフトウェアクライアント(図示せず)すなわち実行可能プログラムを、システム設計者が開始させる。COM技術を介して、DLL360は標準化されたインタフェイス定義を提供し、これに合わせてソフトウェアクライアントを設計することにより、システムモデルの全ての内部変数をクライアントからアクセスできるようにすることが可能となる。典型的には、クライアントは、モデルに関してシミュレーションを実行する能力、並びにモデルを定期的に停止させて設計者が所与の時点でシステムモデルの入力信号、出力信号、及び内部変数の「スナップショット」を視認することができるようにする能力を有するものとなる。また、これらの信号及び変数の各々に対する書き込み(及び通常は読み出し及びアクセス)を、それら信号または変数の各々が関連するブロックの識別子といったあらゆる有用な識別情報と共に、提供することが可能である。更に、信号及び変数の図形的な表現を提供して、各信号及び変数について捕捉した値を解析するための別の方法を設計者に提供することが可能である。
 ソフトウェアクライアントは、多くの形式のうちの任意の形式を採用することが可能である。例えば、実行可能プログラムは、ソフトウェアモデル及びその内部変数にユーザがアクセスすることを可能にするために特に考案された特定目的アプリケーションである「モデルブラウザ」とすることが可能である。ブラウザは典型的には、DLL360とリンクしたWin32アプリケーションであり、これは、DLL360により表わされるモデルに関連する内部変数及び外部信号情報を全て獲得するものである。次いで該情報は、該ブラウザを介してアクセスしてそれらの値の監視や修正を行うことが可能となる。該ブラウザはまた、モデルに関する初期条件を設定し、モデルの実行を開始させ又は停止させ、及び様々な信号やそれに伴う内部変数の数値的表現及び図形的表現の双方にアクセスする、といった能力をユーザに提供するものとなることが十分に考えられる。
 代替的に、ソフトウェアクライアントは、Microsoft Excel(R)ワークブックといった、より一般的な汎用プログラムの特定例とすることが可能である。かかるプログラムは、モデルとその信号及び変数に対する同種のアクセスを可能にするものとなる。ワークブックの異なる複数のスプレッドシートはまた、モデル動作の異なる複数のビューを提供するものとなる。例えば、1つのスプレッドシートは、複数の内部変数、それらのデータ種別、及びそれらの現在の値を示すことが可能である。他のシートは、関心の対象となる特定の変数の図形的な表現を表示することが可能である。
 ソフトウェアクライアントにより採用した特定の形態にかかわらず、本発明の重要な潜在的利点は、複数の異種のDLL360(おそらくはその各々が一層大きなソフトウェアモデルの一部を表すもの)がソフトウェアクライアントを介して互いに作用し合う能力にある。図4に示すように、ソフトウェアクライアント400は、4つの別個のDLL360A,360B,360C,360Dの実行を制御する。該DL360A〜Dの各々は、それぞれ異なるモデリング環境内でモデル化されたものとすることが可能である。かかる環境は一般的ではない。これは、システム設計者がシステムの特定部分をモデル化するために1つのモデリング環境を好み得るからである。更に、DLL360A〜Dは、通信リンクを介してソフトウェアクライアント400と通信することがそれぞれ可能な別個のハードウェアプラットフォーム上で実行することが可能である。ソフトウェアクライアント400は、各DLL360A〜Dの実行、並びに各々の内部変数及び外部信号へのアクセスを制御することができるため、該ソフトウェアクライアント400を介してDLL360A〜Dが互いに作用し合うことを可能にする能力を有しており、このため、DLL360A〜Dが1つの単一のシステムとして作用することが可能となり、一方、ソフトウェアクライアント400は、各DLL360A〜Dへのプログラム上のアクセスを維持する。それ故、本発明の実施形態により生成されるDLL360A〜Dとして実施される多様なソフトウェアモデルは、互いに作用し合うことが可能となり、ソフトウェアクライアントは、別個のDLL360A〜Dの各々の内部変数へのクライアントのアクセスのお陰でシステム全体にわたる優れた解析能力を維持することになる。
 複数のDLL360A〜Dを用いることの別の利点は、(電子的又はソフトウェアをベースとするモデルにおいて)複数の独立したクロック領域を用いるシステムを一層精確にシミュレートすることが可能になる点である。かかるシミュレーションは、システム全体を複数の別個のDLL360A〜Dへと編成し、その各々が、システム全体のうちそのDLL自体の自律的なクロック領域内で実行する部分を表すものとすることにより、達成することが可能である。次いでDLL360A〜Dは、別個のハードウェアプラットフォーム上で実行することが可能となり、又はマルチタスク方式で同一プラットフォーム内で実行することが可能となる。次いで、上述したように、別個に動作しているDLL360A〜D間の相互作用がソフトウェアクライアント400によって容易化されることになる。
 上述したように、上記の本発明の実施形態は、オリジナルのシステムモデルを定めたモデリング環境外に存在するソフトウェアクライアントにより実行することが可能な動的システムのソフトウェアモデルを生成する方法を提供すべく示したものである。更に、本発明を実施する他の具体化なシステムや方法もまた実施することが可能である。それ故、本発明は上記で説明し図示した具体的な形態に限定すべきものではなく、すなわち、本発明は特許請求の範囲によってのみ限定されるものである。
Simulinkモデリング環境並びにその他のモデリング環境内で表すことが可能なシステムモデルを示すブロック図である。 動的システムのモデルを表すソフトウェアを開発する従来技術の方法を示すフローチャートである。 動的システムのソフトウェアモデルを開発する本発明の一実施形態による方法を示すフローチャートである。 ソフトウェアクライアントを介して互いに作用し合う複数の異種のソフトウェアモデルを表すブロック図である。
符号の説明
1  システムモデル
2  機能ブロック
3  入力信号
4  出力信号
5  ブロックパラメータ
6  内部信号
210 モデリング環境
220 コード生成ツール
230 コード
300 方法
340 C++ラッパークラス
350 COMサーバ構築ソフトウェア
360,360A,360B,360C,360D ダイナミックリンクライブラリ(DLL)
370 インタフェイスソフトウェア
400 ソフトウェアクライアント

Claims (15)

  1.  動的システムのソフトウェアモデル(360)を生成する方法であって、
     前記動的システムの予備ソフトウェアモデル(230)内に存在する少なくとも1つの内部変数を開示するよう構成されたインタフェイスソフトウェア(370)を生成し(310,320)、該予備ソフトウェアモデル(230)が所与のモデリング環境内で生成されたものであり、
     前記予備ソフトウェアモデル(230)及び前記インタフェイスソフトウェア(370)を介して前記ソフトウェアモデル(360)を構築し(330)、該ソフトウェアモデル(360)が、前記モデリング環境外から前記動的システムの前記少なくとも1つの内部変数へのユーザアクセスを可能にする、
    という各ステップを含む、動的システムのソフトウェアモデル(360)を生成する方法。
  2.  前記インタフェイスソフトウェア(370)の生成に先立ち前記予備ソフトウェアモデル(230)を生成(220)するステップを更に含む、請求項1に記載の方法。
  3.  前記予備ソフトウェアモデル(230)の生成に先立ちシステムモデル(1)を生成し(210)、該予備ソフトウェアモデル(230)が該システムモデル(1)に基づくものである、
    という各ステップを更に含む、請求項2に記載の方法。
  4.  前記ソフトウェアモデル(360)が、該ソフトウェアモデル(360)の実行をユーザが前記モデリング環境外から制御することを可能にするものでもある、請求項1に記載の方法。
  5.  前記インタフェイスソフトウェアを生成する前記ステップが、
     前記少なくとも1つの内部変数へのアクセスを調整するよう構成されたC++ラッパークラス(340)を生成し(310)、
     該C++ラッパークラス(340)を用いて前記予備ソフトウェアモデル(230)の前記少なくとも1つの内部変数を開示するCOMサーバを構築するよう構成されたコンポーネントオブジェクトモデル(COM)サーバ構築ソフトウェア(350)を生成する(320)、
    という各ステップを更に含む、請求項1に記載の方法。
  6.  前記ソフトウェアモデル(360)が、ソフトウェアクライアントにより実行可能となるよう構成されたダイナミックリンクライブラリ(DLL)である、請求項1に記載の方法。
  7.  前記ソフトウェアモデル(360)がコンソールアプリケーションである、請求項1に記載の方法。
  8.  コンピュータシステムにより実行することが可能なプログラムであって動的システムのソフトウェアモデル(360)を生成する方法ステップを実行するプログラムを記憶させた、コンピュータシステムによりデータを読み出すことが可能なプログラム記憶媒体であって、前記方法ステップが、
     前記動的システムの予備ソフトウェアモデル(230)内に存在する少なくとも1つの内部変数を開示するよう構成されたインタフェイスソフトウェア(370)を生成し、前記予備ソフトウェアモデル(230)が所与のモデリング環境内で生成されたものであり、
     前記予備ソフトウェアモデル(230)及び前記インタフェイスソフトウェア(370)を介して前記ソフトウェアモデル(360)を構築し、該ソフトウェアモデル(360)が、前記モデリング環境外から前記動的システムの前記少なくとも1つの内部変数へのユーザアクセスを可能にする、
    という各ステップを含む、プログラム記憶媒体。
  9.  前記方法ステップが、前記インタフェイスソフトウェア(370)の生成に先立ち前記予備ソフトウェアモデル(230)を生成(220)するステップを更に含む、請求項8に記載のプログラム記憶媒体。
  10.  前記方法ステップが、前記予備ソフトウェアモデル(230)の生成に先立ちシステムモデル(1)を生成するステップを更に含み、前記予備ソフトウェアモデル(230)が前記システムモデル(1)に基づくものとなる、請求項9に記載のプログラム記憶媒体。
  11.  前記ソフトウェアモデル(360)が、該ソフトウェアモデル(360)の実行を前記ユーザが前記モデリング環境外から制御することを可能にするものでもある、請求項8に記載のプログラム記憶媒体。
  12.  前記インタフェイスソフトウェアを生成する前記ステップが、
     前記少なくとも1つの内部変数へのアクセスを調整するよう構成されたC++ラッパークラス(340)を生成し(310)、
     前記C++ラッパークラス(340)を用いて前記予備ソフトウェアモデル(230)の前記少なくとも1つの内部変数を開示するCOMサーバを構築するよう構成されたコンポーネントオブジェクトモデル(COM)サーバ構築ソフトウェア(350)を生成する(320)、
    という各ステップを更に有する、請求項8に記載のプログラム記憶媒体。
  13.  前記ソフトウェアモデル(360)が、ソフトウェアクライアントにより実行可能となるよう構成されたダイナミックリンクライブラリ(DLL)である、請求項8に記載のプログラム記憶媒体。
  14.  前記ソフトウェアモデル(360)がコンソールプログラムである、請求項8に記載のプログラム記憶媒体。
  15.  動的システムのソフトウェアモデル(360)を表すダイナミックリンクライブラリ(DLL)(360)を生成する方法であって、
     前記動的システムの予備ソフトウェアモデル(230)内に存在する少なくとも1つの内部変数へのアクセスを調整するよう構成されたC++ラッパークラス(340)を生成し(310)、前記予備ソフトウェアモデル(230)が所与のモデリング環境内で生成されたものであり、
     前記C++ラッパークラス(340)を用いて前記予備ソフトウェアモデル(230)の前記少なくとも1つの内部変数を開示するCOMサーバを構築するよう構成されたコンポーネントオブジェクトモデル(COM)サーバ構築ソフトウェア(350)を生成し(320)、
     前記予備ソフトウェアモデル(230)、前記C++ラッパークラス(340)、及び前記COMサーバ構築ソフトウェア(350)を用いて前記DLL(360)を構築し(330)、該DLL(360)が前記モデリング環境外のソフトウェアクライアントにより実行可能であり、該DLL(360)が前記ソフトウェアクライアントを介してユーザが前記動的システムの前記少なくとも1つの内部変数へアクセスすることを可能にする、
    という各ステップを含む方法。
JP2003330104A 2002-09-24 2003-09-22 オリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法 Pending JP2004118842A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/253,764 US7340717B2 (en) 2002-09-24 2002-09-24 Method for providing enhanced dynamic system simulation capability outside the original modeling environment

Publications (2)

Publication Number Publication Date
JP2004118842A true JP2004118842A (ja) 2004-04-15
JP2004118842A5 JP2004118842A5 (ja) 2006-10-26

Family

ID=31977808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003330104A Pending JP2004118842A (ja) 2002-09-24 2003-09-22 オリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法

Country Status (3)

Country Link
US (1) US7340717B2 (ja)
JP (1) JP2004118842A (ja)
DE (1) DE10324594A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565660B2 (en) * 2002-09-26 2009-07-21 Siemens Energy & Automation, Inc. System and method for universal extensibility that supports a plurality of programmable logic controllers
US20050251796A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Automatic identification and reuse of software libraries
US8214799B2 (en) * 2004-07-08 2012-07-03 Microsoft Corporation Providing information to an isolated hosted object via system-created variable objects
US7743361B2 (en) * 2004-09-20 2010-06-22 The Mathworks, Inc. Providing block state information for a model based development process
US20060122820A1 (en) * 2004-12-03 2006-06-08 The Mitre Corporation Scripting language for domain-specific modification of a simulation model
US8930890B2 (en) * 2006-12-05 2015-01-06 International Business Machines Corporation Software model skinning
US8756561B2 (en) * 2006-12-05 2014-06-17 International Business Machines Corporation Software model normalization and mediation
US20130125093A1 (en) * 2011-11-11 2013-05-16 General Electric Company Generating object-oriented programming language code from a multi-domain dynamic simulation model
US20130125092A1 (en) * 2011-11-11 2013-05-16 General Electric Company Generating deployable code from simulation models
CN102637224A (zh) * 2012-03-19 2012-08-15 西北工业大学 一种采用iosem接口方式的紧耦合仿真通用模型实现方法
CN103699704A (zh) * 2012-09-27 2014-04-02 简式国际汽车设计(北京)有限公司 机械***仿真分析方法
CN102903291B (zh) * 2012-10-12 2014-12-24 中国南方电网有限责任公司超高压输电公司广州局 高压直流输电换流阀冷却***仿真平台
CN106569827B (zh) * 2016-11-10 2020-02-21 中国人民解放军空军航空大学军事仿真技术研究所 一种采用动态链接库进行仿真***硬件控制隔离的方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6762A (en) * 1849-10-02 Mode of operating brakes for cars
US79199A (en) * 1868-06-23 Improvement in sewees
US5287511A (en) * 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US5572437A (en) * 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator
US5884078A (en) * 1997-01-31 1999-03-16 Sun Microsystems, Inc. System, method and article of manufacture for creating an object oriented component having multiple bidirectional ports for use in association with a java application or applet
US6144377A (en) * 1997-03-11 2000-11-07 Microsoft Corporation Providing access to user interface elements of legacy application programs
US5966532A (en) * 1997-07-10 1999-10-12 National Instruments Corporation Graphical code generation wizard for automatically creating graphical programs
US6038393A (en) * 1997-09-22 2000-03-14 Unisys Corp. Software development tool to accept object modeling data from a wide variety of other vendors and filter the format into a format that is able to be stored in OMG compliant UML representation
JP3222821B2 (ja) * 1997-12-25 2001-10-29 株式会社東芝 プログラマブルコントローラ
US6167564A (en) * 1998-09-17 2000-12-26 Unisys Corp. Software system development framework
US6629123B1 (en) * 1998-10-02 2003-09-30 Microsoft Corporation Interception of unit creation requests by an automatic distributed partitioning system
US6405364B1 (en) * 1999-08-31 2002-06-11 Accenture Llp Building techniques in a development architecture framework
US6871346B1 (en) * 2000-02-11 2005-03-22 Microsoft Corp. Back-end decoupled management model and management system utilizing same
US20040044988A1 (en) * 2002-08-29 2004-03-04 Schene Christopher Robin Generation of compiled code for simulator speed up

Also Published As

Publication number Publication date
DE10324594A1 (de) 2004-04-01
US20040059556A1 (en) 2004-03-25
US7340717B2 (en) 2008-03-04

Similar Documents

Publication Publication Date Title
Morin et al. An aspect-oriented and model-driven approach for managing dynamic variability
EP1966689B1 (en) Non-graphical model dependencies in graphical modeling environments
US8478577B2 (en) Modeling of a multiprocessor system
Schlegel et al. Robotic software systems: From code-driven to model-driven designs
US7613716B2 (en) Partitioning for model-based design
US7194726B2 (en) Method for automatically decomposing dynamic system models into submodels
MXPA05009209A (es) Comprobacion de la automatizacion de la estratificacion del deposito.
JP2005173788A (ja) オートノミック・コンピューティングシステム、実行環境制御方法及びプログラム
Arcelli et al. Performance-driven software model refactoring
KR20090040840A (ko) 분산 컴퓨팅 기반 구조를 통해 센서 및 액튜에이터 애플리케이션을 개발, 배치하기 위한 시스템 및 방법
JP2004118842A (ja) オリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法
US7103526B2 (en) Method and apparatus for adapting a simulation model to expose a signal internal to the model to a client application
Engels et al. Towards model-driven unit testing
Pettit IV et al. Modeling behavioral design patterns of concurrent objects
GB2373349A (en) Data definition language
Martens et al. Diagnosing sca components using wombat
Graf et al. Correct development of embedded systems
Erkkinen et al. Automatic code generation-technology adoption lessons learned from commercial vehicle case studies
Pettit et al. Modeling behavioral patterns of concurrent software architectures using Petri nets
Gomaa A software modeling odyssey: Designing evolutionary architecture-centric real-time systems and product lines
Albers et al. Tool support for co-simulation-based analysis
JP5056493B2 (ja) 仮想ソフトウェア生成装置
JP2020144509A (ja) 自動コード生成方法、及び自動コード生成プログラム
Sindico et al. An industrial application of a system engineering process integrating model-driven architecture and model based design
Saudrais et al. From formal specifications to QoS monitors.

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060907

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100302