(57)【要約】【課題】複合工学システムの動的挙動をシミュレートすることを容易にする。【解決手段】いくつかのサブシステムからなる複合工学システムの動的挙動をシミュレートするのに使用するコンピュータにより実行される方法は、出力導関数に基づいてヤコビ行列を算出するステップを含み、出力導関数は、複数のサブシステムの各々に対して対応する第１の入力変数に関連する、対応する状態変数の導関数に基づく。方法は、第１の入力変数を変更するステップ、および、対応する状態変数の導関数に基づいて複数のサブシステムの各々の第２の入力変数および残差を算出するステップも含む。【選択図】図１
2014026649.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実行される方法であって、
出力導関数に基づいてヤコビ行列を算出するステップであって、前記出力導関数は、複数のサブシステムの各々について対応する第１の入力変数に関連する、対応する状態変数の導関数に基づく、ステップと、
前記第１の入力変数を変更するステップと、
前記対応する状態変数の導関数に基づいて、前記複数のサブシステムの各々について対応する第２の入力変数および残差を算出するステップと
を備えることを特徴とするコンピュータにより実行される方法。
【請求項２】
前記残差は第２の残差であり、前記コンピュータにより実行される方法は、対応する予測子に基づいて、前記複数のサブシステムの各々についての入力増分および第１の残差を算出するステップをさらに備えることを特徴とする請求項１に記載のコンピュータにより実行される方法。
【請求項３】
前記ヤコビ行列を算出するステップは、前記複数のサブシステムの各々について前記対応する第１の入力変数に関連する、前記対応する状態変数の導関数に基づいて、前記出力導関数を算出するステップを含むことを特徴とする請求項１に記載のコンピュータにより実行される方法。
【請求項４】
前記ヤコビ行列を算出するステップは、前記ヤコビ行列を因数分解するステップを含むことを特徴とする請求項１に記載のコンピュータにより実行される方法。
【請求項５】
前記第２の入力変数を算出することは、
前記残差を得ることと、
前記因数分解したヤコビ行列に基づいて、入力増分を算出することと
を含むことを特徴とする請求項４に記載のコンピュータにより実行される方法。
【請求項６】
対応する修正子に基づいて、前記複数のサブシステムの各々についての出力を算出するステップをさらに備えることを特徴とする請求項１に記載のコンピュータにより実行される方法。
【請求項７】
ヤコビ行列、出力導関数、複数のサブシステムの各々についての第１の入力変数および第２の入力変数、前記複数のサブシステムの各々についての残差、ならびに前記第１の入力変数および前記残差に対応する状態変数の導関数、を記憶するように構成されたメモリ領域と、
前記メモリ領域に結合されたプロセッサであって、
前記出力導関数に基づいて前記ヤコビ行列を算出し、前記出力導関数は、前記複数のサブシステムの各々について対応する第１の入力変数に関連する、対応する状態変数の導関数に基づき、
前記第１の入力変数を変更し、および
前記対応する状態変数の導関数に基づいて、前記複数のサブシステムの各々についての前記第２の入力変数および前記残差を算出する
ように構成されたプロセッサと
を備えることを特徴とするコンピュータ。
【請求項８】
前記残差は第２の残差であり、前記プロセッサは、対応する予測子に基づいて、前記複数のサブシステムの各々についての入力増分および第１の残差を算出するようにさらに構成されたことを特徴とする請求項７に記載のコンピュータ。
【請求項９】
前記プロセッサは、前記複数のサブシステムの各々について前記対応する第１の入力変数に関連する、前記出力導関数を算出して、前記ヤコビ行列を算出するようにさらに構成されたことを特徴とする請求項７に記載のコンピュータ。
【請求項１０】
前記プロセッサは、前記ヤコビ行列を因数分解するようにさらに構成されたことを特徴とする請求項７に記載のコンピュータ。
【請求項１１】
前記プロセッサは、
前記残差を得て、および
前記因数分解したヤコビ行列に基づいて、入力増分を算出して前記第２の入力変数を算出する
ようにさらに構成されたことを特徴とする請求項１０に記載のコンピュータ。
【請求項１２】
前記プロセッサは、対応する修正子に基づいて、前記複数のサブシステムの各々についての出力を算出するようにさらに構成されたことを特徴とする請求項７に記載のコンピュータ。
【請求項１３】
前記メモリ領域は、前記出力を記憶するようにさらに構成されたことを特徴とする請求項１２に記載のコンピュータ。
【請求項１４】
コンピュータプログラム製品であって、
コンピュータ実行可能コンポーネントを有する１つまたは複数の不揮発性コンピュータ可読記憶媒体であって、前記コンピュータ実行可能コンポーネントは、
プロセッサにより実行されると、前記プロセッサに、出力導関数に基づいてヤコビ行列を算出させるヤコビ行列コンポーネントであって、前記出力導関数は、複数のサブシステムの各々について対応する第１の入力変数に関連する、対応する状態変数の導関数に基づく、ヤコビ行列コンポーネントと、
プロセッサにより実行されると、前記プロセッサに、前記第１の入力変数を変更させる変更コンポーネントと、
プロセッサにより実行されると、前記プロセッサに、対応する状態変数の導関数に基づいて、前記複数のサブシステムの各々についての第２の入力変数および残差を算出させる第２の導関数コンポーネントと
を含む、コンピュータ可読記憶媒体
を備えることを特徴とするコンピュータプログラム製品。
【請求項１５】
前記残差は第２の残差であり、前記第２の導関数コンポーネントはさらに前記プロセッサに、対応する予測子に基づいて前記複数のサブシステムの各々についての入力増分および第１の残差を算出させることを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項１６】
前記コンピュータ実行可能コンポーネントは、プロセッサに実行されると、前記プロセッサに、前記複数のサブシステムの各々について前記対応する第１の入力変数に関連する、前記出力導関数を算出させて、前記ヤコビ行列の算出を容易にする第１の導関数コンポーネントをさらに含むことを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項１７】
前記ヤコビ行列コンポーネントはさらに、前記プロセッサに、前記ヤコビ行列を因数分解させることを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項１８】
前記ヤコビ行列コンポーネントはさらに、前記プロセッサに、
前記残差を得させ、
前記因数分解したヤコビ行列に基づいて入力増分を算出して、前記第２の入力変数を算出させることを特徴とする請求項１７に記載のコンピュータプログラム製品。
【請求項１９】
前記コンピュータ実行可能コンポーネントは、プロセッサに実行されると、前記プロセッサに、対応する修正子に基づいて前記複数のサブシステムの各々についての出力を算出させる出力コンポーネントをさらに含むことを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項２０】
前記出力コンポーネントはさらに、前記プロセッサに、前記ヤコビ行列、前記出力導関数、前記第１の入力変数、前記第２の入力変数、前記残差、および前記出力、の１つまたは複数をメモリ領域に記憶させることを特徴とする請求項１９に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明する実施形態は、一般に、現実世界のオブジェクトのモデルのシミュレーションに使用する協調シミュレーション（co-simulation）の方法に関し、特に、そのようなシミュレーションの最中に、当該方法の並列実行を使用することに関する。
【背景技術】
【０００２】
科学および工学は、問題を解決するために物理的システムのモデル化を必要とすることが多い。そして、物理的な見本を構築し、および頻繁に破壊する必要なしに、問題のモデルを解決することができる。しかしながら、複合的な多様な分野にわたるシステムを、複数のサブシステムモデルに分解する必要があり、そこでは様々な下位の問題が考察され、および解決される。用語「協調シミュレーション」は、一般に、結合された技術システムをシミュレーションするアプローチを言う。例えば、マスター／スレーブシステムでは、１つまたは複数のスレーブサブシステムは、下位の問題をシミュレートし、マスターシステムがシミュレーション全体を調整し、およびスレーブサブシステム間でデータを転送する。スレーブサブシステムを、シミュレーション中の特定のときに、データを通信するために「結合」することができる。
【０００３】
協調シミュレーション問題に対処するための、少なくとも一部の公知のプロセスは、出力変数、または出力変数の何らかの組合せを、「ランデブー（rendezvous）」すなわち「通信」時に、１つのサブシステムから別のサブシステムに入力変数として転送し、それと同時またはそれより前の時に、逆方向の転送を行う、特定の規則を確立することに基づく。そのようなプロセスの安定性は、サブシステム自体の堅牢性（stiffness）に対する結合条件がどの程度強いかに依存する。一般に、そのようなプロセスは、サブシステムが特定の順序で処理されることを必要とする。しかしながら、その要件は、個々のサブシステムおよび結合条件の数値的特性の知識が必要となる。このことは、汎用的な協調シミュレーションプロシージャを構築し、種々の問題を分析するのに使用することの妨げとなる。さらに、協調シミュレーション計算プロシージャを並行させることができないため、そのような要件により、モデル全体を分析する際の性能が大幅に低下する可能性がある。
【０００４】
他のより高度なプロセスは、結合微分代数方程式に適用することができる、安定化したモジュール式の時間積分のアプローチを利用することにより、協調シミュレーション技術の安定性および精度の問題に対処している。そのようなプロセスは、入力変数と出力変数との間の代数方程式に対応するヤコビ行列を使用することに基づく。システムに代数ループが存在する場合、公知の協調シミュレーションプロセスは計算的に不安定になる可能性がある。例えば、明示的に依存している第１のサブシステムの入力変数と第２のサブシステムの出力変数とのペアについて、第２のサブシステムの入力変数も明示的に第１のサブシステムの出力変数に依存する場合に、このことが発生する。そのような場合には、代数変数に対する反復プロセスを使用して、安定性を向上させることもある。
【０００５】
代数ループを含まないシステムに対し、非反復的な線形陰的な安定化プロセスによって、通信の時点における入力変数および出力変数の増分間に特定の通信の系統を確立することが可能になる。各サブシステムに対する通信点間では、出力変数および状態変数の線形陰的な挙動が想定されることが多い。しかしながら、このアプローチは、特定のサブシステムの積分方式に対応するヤコビ行列の特定の乗算を、協調シミュレートされるサブシステム間で通信する必要がある。
【０００６】
さらに、公知のプロセスの中には、例えば構造動力学における問題を解決するために領域分割のアプローチを使用するものがある。そのようなプロセスは、サブシステム間のインタフェースで公開されるサブシステム行列の縮約されたコンポーネントを使用して、協調シミュレーションに対処する。そのような行列を、各サブシステムに対する時間積分方程式に基づいて構築する。
【０００７】
上記説明したアプローチは、出力変数および入力変数のみを通信点でのみ通信することを前提としたモジュール式のアプローチを使用し、それにより、協調シミュレーションプロセスが不安定になる可能性がある。また、それらのアプローチは、入力−出力関係の代数系に代数ループが存在するかどうかを検査する必要がある。さらに、それらのアプローチは、サブシステムを処理する順序に依存し、その結果協調シミュレーションプロセスを並行して実行することができない。
【発明の概要】
【０００８】
一態様では、コンピュータで実行される方法は、複数のサブシステムの各々について対応する第１の入力変数に関連する、出力導関数に基づいてヤコビ行列を算出するステップと、第１の入力変数を変更するステップと、対応する状態変数の導関数に基づいて、複数のサブシステムの各々に対する第２の入力変数および残差を算出するステップとを含む。
【０００９】
別の態様では、コンピュータは、メモリ領域、およびそのメモリ領域に結合されたプロセッサを含む。メモリ領域を、ヤコビ行列、出力導関数、複数のサブシステムの各々に対する第１および第２の入力変数、複数のサブシステムの各々に対する残差、ならびに第１の入力変数に対応する状態変数の導関数および残差、を記憶するように構成する。プロセッサを、メモリ領域と通信して、複数のサブシステムの各々について対応する第１の入力変数に関連する出力導関数に基づいてヤコビ行列を算出し、第１の入力変数を変更し、および対応する状態変数の導関数に基づいて、複数のサブシステムの各々に対する第２の入力変数および残差を算出するように構成する。
【００１０】
別の態様では、コンピュータプログラム製品は、コンピュータ実行可能コンポーネントを有する１つまたは複数の不揮発性コンピュータ可読記憶媒体を含む。コンピュータ実行可能コンポーネントは、プロセッサにより実行されると、プロセッサに、複数のサブシステムの各々に対数、対応する第１の入力変数に関連する出力導関数に基づいて、ヤコビ行列を算出させるヤコビ行列コンポーネントを含む。当該コンポーネントは、プロセッサにより実行されると、プロセッサに第１の入力変数を修正させる修正コンポーネント、および、プロセッサにより実行されると、プロセッサに、対応する状態変数の導関数に基づいて、複数のサブシステムの各々に対する第２の入力変数および残差を算出させる第２の導関数コンポーネントも含む。
【図面の簡単な説明】
【００１１】
本発明の１つまたは複数の実施形態の詳細を、添付図面および以下の説明で述べる。本発明の他の特徴、目的、および利点は、以下の説明、図面、および特許請求の範囲から明らかになるであろう。
【図１】物理的オブジェクトのモデルをシミュレーションする際に使用する、例示的なコンピュータで実行される方法を示すフローチャートである。
【図２】図１に示す方法により使用する例示的なコンピュータネットワークの概略ブロック図である。
【図３】図１に示す方法により使用する例示的なコンピュータアーキテクチャの概略ブロック図である。
【発明を実施するための形態】
【００１２】
３次元オブジェクトのモデルをシミュレートする際に使用するシステム、方法、装置（コンピュータ）、およびコンピュータプログラム製品の例示的な実施形態を本明細書で説明する。本明細書で説明する実施形態は、いくつかのサブシステムを備え、および全体システムが必然的にいくつかのサブシステムに分解されるモジュール方式により実行されることが多い、複合工学システムの動的挙動をシミュレートすることを容易にする。このアプローチの結果として、各サブシステムをモデル化するのに使用される種々のソフトウェアコンポーネント間の情報交換をする手段により、各個々のサブシステムをモデル化し、およびそれぞれ別個に、さらには並行して分析することができる。そのようなシステムの例は、異なる工学分野（異なる物理学）、例えば機械工学、制御光学、電子工学、水力工学等を意味し得る複数のコンポーネントのモデル化を必要とする、高精度工作機械または最新の自動車などがある。特に、本明細書で説明する実施形態は、全ヤコビ行列の適切な成分のやりとりを容易にする。そのようなヤコビ行列は、入力に関する出力変数の偏導関数を含み、それにより直接的な出力−入力間の依存関係を表す。また、ヤコビ行列は、状態変数を介した出力−入力間の依存関係に関連する導関数を含み、それにより間接的な出力−入力間の依存関係を表す。さらに、本明細書で説明する実施形態は、代数ループの存在に対する検査の必要性を排除し、および入力増分を更新するために使用することができる、改良した全体システムのヤコビ行列を提供する。加えて、本明細書で説明する実施形態は、個々のサブシステムの並列時間積分を容易にし、それにより、モデルのシミュレーションおよび解析全体の性能を向上させる。
【００１３】
図１は、いくつかのサブシステムを備える複合工学システムの動的挙動をシミュレートする際に使用する例示的なコンピュータで実行される方法を示すフローチャート１００である。上記説明したように、協調シミュレーションプロセスは、いくつかの時間依存のシミュレーションが、「ランデブー」すなわち「通信」時点ｔｎ間に独立して進行するプロセスの１つであり、ｎ＝０，１，．．．ｎｆであり、ｎｆは協調シミュレーションステップの総数である。各通信点において、個々のサブシステムのシミュレーション間で情報の交換が発生する。全協調シミュレーションプロセスは、最初の時間ｔｓｔａｒｔ＝ｔ０から終了時間
【００１４】
【数１】
2014026649.tif 000003
【００１５】
まで進行する。その結果として、一部の実施形態では、ｔｎとｔｎ＋１との間の任意の点において、個々のサブシステムのシミュレーション間のデータ交換がない。しかしながら、そのような実施形態では、Δｔｎ＋１＝ｔｎ＋１−ｔｎの間の協調シミュレーションの時間ステップが同じであることが前提とされない。さらに、一部の実施形態では、各個々のサブシステムのシミュレーションの挙動を、式（１）および（２）に示すように常微分方程式により記述する。
【００１６】
【数２】
2014026649.tif 000004
【００１７】
【数３】
2014026649.tif 000005
【００１８】
ｘｉ（ｔ）は、ｉ番目のサブシステムの状態変数を表し、ｕｉおよびｙｉはそれぞれ同一のサブシステムに対する入力変数および出力変数を表し、およびｒ≧２は、協調シミュレーションプロセスにおけるサブシステムの数である。
【００１９】
２つ以上のサブシステムを結合することは、式（３）に示すように、線形または非線形代数入力−出力関係によって決定される。
【００２０】
【数４】
2014026649.tif 000006
【００２１】
例えば、サブシステムが２つの場合は、結合方程式は式（４）に示すように記述することができる。
【００２２】
【数５】
2014026649.tif 000007
【００２３】
通信点間で入力のすべてが線形であると仮定すると、式（５）になる。
【００２４】
【数６】
2014026649.tif 000008
【００２５】
時間ｔｎ＋１におけるすべての個々のサブシステムに対する状態変数および出力変数は、式（６）に示すように近似してもよい。
【００２６】
【数７】
2014026649.tif 000009
【００２７】
特に、変数
【００２８】
【数８】
2014026649.tif 000010
【００２９】
および
【００３０】
【数９】
2014026649.tif 000011
【００３１】
は、常に各シミュレーション時間のステップの開始時に利用可能である。そのステップの終了時における入力変数の近似値
【００３２】
【数１０】
2014026649.tif 000012
【００３３】
が公知であるとき、式（７）に示すように入力変数の増分
【００３４】
【数１１】
2014026649.tif 000013
【００３５】
が線形方程式の系の解から求められる。
【００３６】
【数１２】
2014026649.tif 000014
【００３７】
Ｊは、入力−出力関係の全結合ヤコビ行列であり、式（８）のように表す。
【００３８】
【数１３】
2014026649.tif 000015
【００３９】
ここで、ｈは入力−出力関係の現在の残差であり、式（９）のように表される。
【００４０】
【数１４】
2014026649.tif 000016
【００４１】
上記式に基づいて、各個々のサブシステムのシミュレーションｊは、その入力
【００４２】
【数１５】
2014026649.tif 000017
【００４３】
に関する自身の出力の全導関数を供給することが明らかであり、当該入力は、状態変数の対応する導関数からの寄与分を含み、および個々の協調シミュレーションステップの開始において算出される。
【００４４】
値
【００４５】
【数１６】
2014026649.tif 000018
【００４６】
を多数の方法で近似させることができる。２つの方法を説明するが、当業者は他の方法を使用してもよいことを理解されよう。本明細書で説明する２つの方法は、導関数を近似させる方法の適用に依拠する。
【００４７】
【数１７】
2014026649.tif 000019
【００４８】
を近似させる第１の方法は、式（１０）に示すように差分商を使用することである。
【００４９】
【数１８】
2014026649.tif 000020
【００５０】
εは適切な小数であり、ｅｍはｍ番目の単位ベクトルである。各行列
【００５１】
【数１９】
2014026649.tif 000021
【００５２】
の列の次元は、対応する入力変数ｕｊのベクトルの次元に等しい。
【００５３】
【数２０】
2014026649.tif 000022
【００５４】
を近似させる第２の方法は、線形化系に対する行列指数関数のパデ近似を使用することである。具体的には、（２，１）のパデ近似の結果は式（１１）になる。
【００５５】
【数２１】
2014026649.tif 000023
【００５６】
より高次のパデ近似を使用してもよいことが理解されよう。この近似を、直接算出することができ、または、サブシステムｊのシミュレーションと組み合わせてもよい。後者の理由は、各サブシステムの陰的積分方法も、およそ
【００５７】
【数２２】
2014026649.tif 000024
【００５８】
であるためである。さらに一部の実施形態は、この行列をヘッセンベルグ（Hessenberg）形式に変換して、可変ステップサイズによるサブシステムの積分をより効率的に処理し、それにより、任意の行列γおよび任意の非ゼロのスカラーα，βについて
【００５９】
【数２３】
2014026649.tif 000025
【００６０】
を解く際の速度が向上する。
【００６１】
本明細書で説明する実施形態の１つの効果は、互いに完全に独立し、および各個々のサブシステムのシミュレーションプロセスで並行して算出するこれらの導関数を使用することである。状態変数、当該状態変数の導関数、および、通信点間で積分を実行する各個々のサブシステムのシミュレーションプロセスで使用されるアルゴリズムは、完全に各プロセスの内部にあり、もしくは各プロセス内に局所化され、および他のサブシステムのシミュレーションプロセス、もしくは全体すなわちマスターの協調シミュレーションドライバからは見ることができない。各サブシステムのシミュレーションプロセスにより提供される唯一の可視的な数量であって、ヤコビ行列の算出に必要な数量は、各現在の協調シミュレーションの時間増分の終了時における入力変数の予測値に対して計算された入力に対するサブシステムのシミュレーションプロセス出力の全導関数である。全体のヤコビ行列を、結合方程式におけるすべての他の出力の関数として、各入力の偏導関数を使用して構築し、または算出し、当該結合方程式は主として、代数式および個々の出力導関数で表される。
【００６２】
さらに、所与の協調シミュレーションの時間増分ｔｎ＋１の終了時におけるすべてのサブシステムのシミュレーションプロセスに対するすべての入力変数の最終値を、反復プロセスの結果として判定する。反復ｋの毎に、上記提示した線形方程式の系の解として入力増分を判定する。主として、ヤコビ行列を、協調シミュレーションの時間増分につき１度のみ算出し、および因数分解するのに対して、全体の残差ベクトルを、式（１２）における更新された入力変数に基づいて反復の毎に再計算する。
【００６３】
【数２４】
2014026649.tif 000026
【００６４】
例示的実施形態では、全体の残差ベクトルの最初の近似を、予測子を使用して各サブシステムプロセスに対して判定する。１つの予測子を式（１３）に表す。
【００６５】
【数２５】
2014026649.tif 000027
【００６６】
一部の実施形態では、単一の反復のみを実行して、個々のサブシステムのシミュレーションプロセスのすべてについての入力増分を判定する。しかしながら、例示的実施形態では、何回かの非線形の反復を実行して、性能を犠牲にすることなく精度の向上を促進する。
【００６７】
本明細書で説明する実施形態の別の効果は、残差の計算のために各個々のサブシステムのシミュレーションプロセス内の残差算出のための時間積分プロセスがないことである。代わりに、対応する入力
【００６８】
【数２６】
2014026649.tif 000028
【００６９】
に関する個々の状態変数の導関数を、各個々のサブシステムのシミュレーションプロセスにより算出し、および記憶する。したがって、更新した状態変数および出力変数を、式（１４）に基づいて近似させる。
【００７０】
【数２７】
2014026649.tif 000029
【００７１】
例示的実施形態では、式（１４）を、式（１５）に示す常微分方程式の厳密解に基づいて、より効率的に計算する。
【００７２】
【数２８】
2014026649.tif 000030
【００７３】
特に、式（１５）では、隣り合う通信時点間で状態変数の線形挙動の想定の下で得られる解とは異なる解が得られる。
【００７４】
入力−出力関係の非線形系に対する反復プロセスが完了した後に、入力変数
【００７５】
【数２９】
2014026649.tif 000031
【００７６】
の最終値を判定し、および各個々のサブシステムのシミュレーションプロセスに対する修正子の積分が算出して、所与の協調シミュレーションの時間増分についての積分プロセスを完了する。これらの計算は互いに独立しており、したがって並行して実行することができる。この計算を式（１６）および（１７）に示す。
【００７７】
【数３０】
2014026649.tif 000032
【００７８】
【数３１】
2014026649.tif 000033
【００７９】
ここで図１を参照すると、複数のシミュレーションサブシステムにわたって単一の協調シミュレーション時間増分を行う処理ステップを示す。本明細書で使用されるように、用語「予測子」は、操作または変更される値を表す独立変数を意味する。予測子−修正子法は、２ステップに進行する。初めに、予測ステップは所望の数量の大まかな近似を計算する。２番目に、修正子ステップは別の手段を使用して初期の近似を精緻化する。例示的な実施形態では、単一の協調シミュレーション増分は、対応する予測子を使用してすべてのサブシステムに対する入力増分および残差の第１の集合を算出する（１０２）ことにより開始する。次に、各サブシステムについて対応する入力変数の第１の集合に関連する出力導関数に基づいて、ヤコビ行列を算出する（１０４）。より具体的には、サブシステムについて対応する入力変数の第１の集合に関連する出力導関数を算出し（１０６）、ヤコビ行列を構築し（１０８）、ヤコビ行列を因数分解する（１１０）。
【００８０】
例示的実施形態では、そのヤコビ行列を使用して入力変数を変更する（１１２）。より具体的には、残差を集め（１１４）、因数分解したヤコビ行列に基づいて入力増分を算出する。次に、対応する状態変数の導関数に基づいて、各サブシステムに対する入力変数の第２の集合および残差の第２の集合を算出する（１１６）。対応する修正子に基づいて、各サブシステムに対する最終出力を算出し（１１８）、および関連するデータをメモリ領域に記憶する（１２０）。ｔｎ＋１＜ｔｆｉｎｉｓｈのときに、後続の時間増分が必要な場合は、プロセスは、後続の時間ステップ上で対応する予測子を使用したすべてのサブシステムに対する入力増分および残差の算出１０２から再度開始する。
【００８１】
図２は、いくつかのサブシステムを備える複合工学システムの動的挙動のシミュレーションで使用するため、おおび／または上記のプロセスおよび／または上記プロセスに関連し得る追加的プロセスを実行する際に使用するための例示的コンピュータネットワーク２００の概略ブロック図である。例示的実施形態では、メモリ領域２０２は、入力増分、残差、予測子、出力導関数、１つまたは複数のヤコビ行列、状態変数の導関数、最終的なシステム出力、修正子、または他の適当なデータなどのデータを記憶するのに使用する１つまたは複数の記憶装置２０４を含む。一部の実施形態では、メモリ領域２０２をサーバシステム２０６に結合し、サーバシステム２０６は、ネットワーク２１０を介して管理者システムおよび／またはユーザシステムなどのクライアントシステム２０８に結合する。記憶装置２０４は、１つもしくは複数のデータベースとして実施してもよく、１つもしくは複数の地理的場所に配置してもよく、またはサーバシステム２０６に統合してもよい。
【００８２】
理解できるように、ネットワーク２１０は、インターネットなどの公衆ネットワーク、ＬＡＮやＷＡＮネットワークなどの私設ネットワーク、またはそれらの組合せとすることができ、およびＰＳＴＮもしくはＩＳＤＮのサブネットワークを含むこともできる。ネットワーク２１０はまた、イーサネット（登録商標）ネットワークなど有線であることもでき、またはＥＤＧＥ、３Ｇ、および４Ｇ無線セルラシステムを含むセルラネットワークなどの無線であることもできる。無線ネットワークはまた、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または他の公知の無線形態の通信とすることができる。したがって、ネットワーク２１０は例示に過ぎず、および本発明の範囲を限定するものではない。
【００８３】
クライアントシステム２０８は、下記で図３を参照して説明するものなどの適切なコンピュータアーキテクチャ、または公知の他のコンピューティングアーキテクチャとすることができる。さらに、サーバシステム２０６を、上記のプロセスおよび／または上記プロセスに関連し得る追加的なプロセスを実行するように構成することが理解されよう。
【００８４】
サーバシステム２０６は、上記プロセスを実行するコンピュータ可読命令を記憶し、およびそれらの命令を、ネットワーク２１０を介してクライアントシステム２０８に提供する。さらに、サーバシステム２０６はまた、必要に応じてメモリ領域２０２からクライアントシステム２０８にデータを提供することができ、それによってクライアントシステム２０８は上記のプロセスを実行することができる。そのため、図２は、クラウドコンピューティングおよび分散コンピューティングなどを介したコンピュータシステム２００の実装を含む。
【００８５】
演算中に、サーバシステム２０６およびクライアントシステム２０８は対話して、上記図１で説明したステップを実行する。例えば、サーバシステム２０６は、対応する予測子を使用して、すべてのサブシステムに対する入力増分および第１の残差の集合を算出することにより、単一の協調シミュレーション増分内の演算を実行する。そして、サーバシステム２０６は、各サブシステムについて対応する第１の入力変数の集合に関連する出力導関数に基づいて、ヤコビ行列を算出する。より具体的には、サブシステムごとに、入力変数の対応する第１の集合に関連する出力導関数を、対応する状態変数の導関数に基づいて算出し、ヤコビ行列を構築し、およびヤコビ行列を因数分解する。さらに、例示的実施形態では、サーバシステム２０６は、因数分解したヤコビ行列を使用して、入力変数の第１の集合を変更する。より具体的には、因数分解したヤコビ行列に基づいて、残差の第１の集合を集め、および入力増分を算出する。次いでサーバシステム２０６は、対応する状態変数の導関数に基づいて、各サブシステムに対する入力変数の第２の集合と残差の第２の集合を算出する。サーバシステム２０６はまた、対応する修正子に基づいて各サブシステムの最終出力を算出し、およびそのデータをメモリ領域２０２に記憶する。サーバシステム２０６はまた、最終出力および／またはデータをユーザに表示するために、１つまたは複数のクライアントシステム２０８に送信してもよい。
【００８６】
図３は、サーバシステム２０６および／またはクライアントシステム２０８（それぞれ図２に示す）で使用するための例示的コンピュータアーキテクチャ３００の概略ブロック図である。
【００８７】
例示的実施形態では、コンピュータアーキテクチャ３００は、上記のプロセスおよび／または上記プロセスに関連し得る追加的プロセスを実行する、１つまたは複数のプロセッサ３０２（ＣＰＵ）を含む。用語「プロセッサ」は、一般に、システムおよびマイクロコントローラ、縮小命令セット回路（ＲＩＳＣ）、特定用途集積回路（ＡＳＩＣ）、プログラマブル論理回路、および／または本明細書で説明する機能を実行することが可能な他の回路もしくはプロセッサを含むプログラム可能なシステムを指すことが理解されよう。上記の例は例示に過ぎず、したがって、用語「プロセッサ」の定義および／または意味を限定するものではない。
【００８８】
上記のプロセスおよび／または上記プロセスに関連し得る追加的プロセスのステップを、コンピュータ実行可能命令として、例えば、システムバス３０６によりプロセッサ３０２に動作可能にかつ／または通信可能に結合されたメモリ領域３０４に記憶してもよい。本明細書で使用する「メモリ領域」は、一般に、いくつかのサブシステムを備える複合工学システムの動的挙動のシミュレーションを支援するために、および／または上記のプロセスおよび／または上記プロセスに関連し得る追加的プロセスを実行する際に使用するために、１つまたは複数のプロセッサにより実行可能な非一時的プログラムコードおよび命令を記憶する任意の手段を指す。メモリ領域３０４は、１つまたは複数の形態のメモリを含んでもよい。例えば、メモリ領域３０４はランダムアクセスメモリ（ＲＡＭ）３０８を含んでもよく、ＲＡＭ３０８は、不揮発性ＲＡＭ、磁気ＲＡＭ、強誘電体ＲＡＭ、および／または他の形態のＲＡＭを含むことができる。メモリ領域３０４はまた、リードオンリメモリ（ＲＯＭ）３１０、フラッシュメモリおよび／または電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）を含むことができる。ハードディスクドライブ（ＨＤＤ）３１２などの他の適切な磁気、光学、および／または半導体メモリを、単独で、または他の形態のメモリと組み合わせて、メモリ領域３０４に含めることができる。ＨＤＤ３１２を、プロセッサ３０２との間でメッセージを送受信するために使用されるディスクコントローラ３１４にも結合してもよい。さらに、メモリ領域３０４は、適切なカートリッジディスク、ＣＤ−ＲＯＭ、ＤＶＤ、またはＵＳＢメモリなどの取外可能もしくは着脱可能メモリ３１６であってもよく、またはそのようなメモリを含むことができる。上記の例は例示に過ぎず、したがって、用語「メモリ領域」の定義および／または意味を限定するものではない。
【００８９】
コンピュータアーキテクチャ３００はまた、ディスプレイコントローラ３２０に動作可能に結合される等して結合された表示装置３１８を含む。ディスプレイコントローラ３２０は、表示装置３１８により表示するためのデータを、システムバス３０６を介して受信する。表示装置３１８は、モニタ、テレビディスプレイ、プラズマディスプレイ、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）に基づくディスプレイ、有機ＬＥＤ（ＯＬＥＤ）に基づくディスプレイ、高分子ＬＥＤに基づくディスプレイ、表面伝導電子エミッタに基づくディスプレイ、投影像および／または反射像を含むディスプレイ、または任意の他の適切な電子機器もしくは表示機構とすることができる。さらに、表示装置３１８は、関連するタッチスクリーンコントローラ３２０を備えるタッチスクリーンを含んでもよい。上記の例は例示に過ぎず、したがって用語「表示装置」の定義および／または意味を決して限定するものではない。
【００９０】
加えて、コンピュータアーキテクチャ３００は、ネットワーク（図３には図示せず）と通信する際に使用するネットワークインタフェース３２２を含む。さらに、コンピュータアーキテクチャ３００は、キーボード３２４および／またはローラーボール、マウス、タッチパッドなどのポインティングデバイス３２６などの１つまたは複数の入力装置を含む。入力装置は、入力／出力（Ｉ／Ｏ）インタフェース３２８に結合され、入力／出力（Ｉ／Ｏ）インタフェース３２８によって制御され、入力／出力（Ｉ／Ｏ）インタフェース３２８はさらにシステムバス３０６に結合される。
【００９１】
表示装置３１８、キーボード３２４、ポインティングデバイス３２６、ならびにディスプレイコントローラ３２０、ディスクコントローラ３１４、ネットワークインタフェース３２２、およびＩ／Ｏインタフェース３２８の特徴は公知であるため、それらの一般的な特徴および機能の説明は簡略のために本明細書では省略する。
【００９２】
演算中、プロセッサ３０２は、上記図１で説明したステップを実行する。例えば、プロセッサ３０２は、対応する予測子を使用して、すべてのサブシステムに対する入力増分および残差の第１の集合を算出することにより、単一の協調シミュレーション増分内の演算を実行する。そして、プロセッサ３０２は、各サブシステムについて、入力変数の対応する第１の集合に関連する出力導関数に基づいてヤコビ行列を算出する。より具体的には、各サブシステムについて、対応する状態変数の導関数に基づいて、入力変数の対応する第１の集合に関連する出力導関数を算出し、ヤコビ行列を構築し、およびヤコビ行列を因数分解する。さらに、例示的実施形態では、プロセッサ３０２は、因数分解したヤコビ行列を使用して、入力変数の第１の集合を変更する。より具体的には、残差の第１の集合を集め、因数分解したヤコビ行列に基づいて入力増分を算出する。プロセッサ３０２は、次いで、対応する状態変数の導関数に基づいて、各サブシステムに対する入力変数の第２の集合および残差の第２の集合を算出する。プロセッサ３０２はまた、対応する修正子に基づいて各サブシステムに対する最終出力を算出し、およびそのデータをメモリ領域３０４に記憶する。プロセッサ３０２はまた、表示装置３１８を介してユーザに表示するために最終出力および／またはデータをディスプレイコントローラ３２０に送信してもよい。
【００９３】
いくつかのサブシステムを備える複合工学システムの動的挙動をシミュレートするのに使用する方法、システム、装置、およびコンピュータプログラム製品の例示的実施形態について上記で詳細に説明した。それらの方法、システム、装置、およびコンピュータプログラム製品は、本明細書で説明した特定の実施形態に限定されず、方法の動作の一部ならびに／またはシステムおよび／もしくは装置のコンポーネントを、本明細書で説明した他の動作および／またはコンポーネントとは独立して別個に利用してもよい。しかしながら、一部の実施形態では、上記で説明した方法の動作の順番ならびに／またはシステムおよび／もしくは装置のコンポーネントの使用が正確な動作のために必要となる。さらに、本明細書で説明した動作および／またはコンポーネントを、他のシステム、方法、および／または装置と組み合わせて定義し、または使用してもよく、ならびに本明細書で説明したシステム、方法、および記憶媒体のみによる実施に限定されない。
【００９４】
本明細書に説明したものなどのクライアントコンピュータおよびサーバは、少なくとも１つのプロセッサまたは処理装置と、システムメモリとを含む。クライアントコンピュータおよびサーバは、主として、少なくとも何らかの形態のコンピュータ可読媒体を有する。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、着脱可能媒体および着脱不能媒体を含む。通信媒体は、主として、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波などの変調データ信号または他の搬送メカニズムとして具現化し、および任意の情報伝達媒体を含む。当業者は、信号における情報を符号化するような方式で、特性の１つまたは複数を設定または変化させた変調データ信号に精通している。上記媒体の組合せもコンピュータ可読媒体の範囲に含まれる。
【００９５】
本発明を、例示的シミュレーションシステム環境と関連して説明したが、本発明の実施形態は、多数の他の汎用シミュレーションシステム環境もしくは構成、または専用シミュレーションシステム環境もしくは構成により動作可能である。上記シミュレーションシステム環境は、本発明の態様の使用または機能の範囲に関して何らの制限を示唆するものではない。さらに、上記シミュレーションシステム環境は、例示的動作環境に示されるコンポーネントのいずれか１つまたは組合せに関連する依存性または要件を有するものと解釈すべきでない。本発明の態様による使用に適する公知のシミュレーションシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ機器、マルチプロセッサシステム、マイクロプロセッサを利用したシステム、セットトップボックス、プログラミング可能な家庭用電化製品、携帯電話、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムもしくは機器のいずれかを含む分散コンピューティング環境等を含むが、これらに限定されない。
【００９６】
本発明の実施形態を、１つまたは複数のコンピュータまたは他の機器によって実行されるプログラムコンポーネントやモジュール等のコンピュータ実行可能命令の一般的なコンテキストにおいて説明してもよい。本発明の態様を、任意の数および構成のコンポーネントまたはモジュールによって実装してもよい。例えば、本発明の態様は、図に示され、本明細書で説明される特定のコンピュータ実行可能命令または特定のコンポーネントもしくはモジュールに限定されない。本発明の代替実施形態を、図に示し、本明細書で説明されるよりも多い、または少ない機能を有する種々のコンピュータ実行可能命令またはコンポーネントを含んでもよい。
【００９７】
例示的なコンピュータプログラム製品は、例えば、コンピュータ実行可能コンポーネントを有する１つまたは複数の非一時的なコンピュータ可読記憶媒体を含む。コンピュータ実行可能コンポーネントは、プロセッサ３０２（図３に示す）またはサーバシステム２０６のプロセッサ（図２に示す）などのプロセッサに実行されると、プロセッサに、物理的オブジェクトを表すマスターシステムの複数のサブシステムの各々に対し、入力変数の第１の集合からの対応する入力変数に関連する出力導関数に基づいて、ヤコビ行列を算出させるヤコビ行列コンポーネントを含む。一部の実施形態では、ヤコビ行列コンポーネントはさらに、プロセッサにヤコビ行列を因数分解させる。さらに、一部の実施形態では、ヤコビ行列コンポーネントはさらに、プロセッサに、残差の第１の集合を集めさせ、入力変数の第２の集合を算出するために、因数分解したヤコビ行列に基づいて、入力増分を算出させる。
【００９８】
例示的実施形態では、コンピュータ実行可能コンポーネントは、プロセッサに入力変数の第１の集合を変更させる変更コンポーネントも含む。さらに、例示的実施形態では、コンピュータ実行可能コンポーネントは、プロセッサに、対応する状態変数の導関数に基づいて、複数のサブシステムの各々に入力変数の第２の集合および残差の第２の集合を算出させる第２の導関数コンポーネントを含む。一部の実施形態では、残差が、残差の第２の集合であるとき、第２の導関数コンポーネントは、プロセッサに、対応する予測子に基づいて、複数のサブシステムの各々の入力増分および残差の第１の集合を算出させる。
【００９９】
一部の実施形態では、コンピュータ実行可能コンポーネントは、プロセッサに、複数のサブシステムの各々について、対応する入力変数の第１の集合に関連する出力導関数を算出させて、ヤコビ行列の算出を容易にする第１の導関数コンポーネントも含む。さらに、一部の実施形態では、コンピュータ実行可能コンポーネントは、プロセッサに、対応する修正子に基づいて複数のサブシステムの各々の出力を算出させる出力コンポーネントを含む。そのような実施形態では、出力コンポーネントはまた、プロセッサに、ヤコビ行列、出力導関数、第１の入力変数、第２の入力変数、残差、および出力、の１つまたは複数をメモリ領域に記憶させる。
【０１００】
図示し、本明細書で説明した本発明の実施形態における動作の実行または演算の順序は、特に指定しない限り必須ではない。すなわち、演算は特に指定しない限り任意の順序で実行してもよく、および本発明の実施形態は、追加的な演算または本明細書に開示されるよりも少ない演算を含むことができる。例えば、特定の演算を、別の演算よりも前、同時、または後に実行または実施することは、本発明の態様の範囲内にあることが企図される。
【０１０１】
本発明の態様またはその実施形態の要素を紹介するときに、冠詞「ａ」、「ａｎ」、「ｔｈｅ」、および「前記（ｓａｉｄ）」は、その要素が１つまたは複数あることを意味するものである。用語「〜を備える（ｃｏｍｐｒｉｓｉｎｇ）」「〜を含む（ｉｎｃｌｕｄｉｎｇ）」、および「〜を有する」は包含的な意味であり、列記される要素以外に追加的な要素があってよいことを意味する。
【０１０２】
この書面による説明は、例を使用して最良の形態を含む本発明を開示し、および当業者が、任意の機器またはシステムを作製および使用し、それに組み込まれる方法を実行することを含めて、本発明を実施することを可能にする。本発明の特許可能な範囲を、特許請求の範囲により定義し、および当業者に想到される他の例を含む。そのような他の例は、特許請求の範囲の字句通りの文言と異ならない構造的要素を有する場合、または特許請求の範囲の字句通りの文言とわずかに異なる均等の構造的要素を含む場合には、特許請求の範囲にあるものとする。
【図１】
2014026649.tif 000034
【図２】
2014026649.tif 000035
【図３】
2014026649.tif 000036
【外国語明細書】
2014026649000001.pdf