(57)【特許請求の範囲】
【請求項１】
収納容器内の液面の位置を計算する方法であって：
（ａ）前記収納容器のソリッドモデル表現を含む第１データ集合を保存するステップと、
（ｂ）前記収納容器の空間姿勢を表わす第２データ集合を保存するステップと、
（ｃ）前記収納容器の加速度の絶対値及び方向を表わす第３データ集合を保存するステップと、
（ｄ）前記収納容器内の液体ボリュームを表わす液体ボリュームデータを保存するステップと、
（ｅ）前記収納容器内の前記液体の液面を表わす第１画像データ集合を求めるステップであって、前記第１画像データ集合が、少なくとも前記第１〜第３データ集合、及び前記液体ボリュームデータの関数である、前記求めるステップと、
（ｆ）前記空間姿勢を有する前記収納容器を表わす第２画像データ集合と交差する関係にある前記第１画像データ集合を表示するステップと、
を含み、
前記求めるステップ（ｅ）は：
（Ｉ）前記液面の前記位置に関する現在推定値を選択するステップと、
（ＩＩ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、正則化ソリッドモデリング演算を用いて求めるステップと、
（ＩＩＩ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、前記液体ボリュームデータで表わされる前記液体ボリュームと比較するステップと、
（ＩＶ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致しない場合、数値計算法を用いて、前記液面の位置に関する異なる現在推定値を選択するステップと、
（Ｖ）ステップ（ＩＩ）〜（ＩＶ）を、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致するまで繰り返すステップと、
を含む、方法。
【請求項２】
前記数値計算法では、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームと、前記液体ボリュームデータで表わされる前記液体ボリュームとの差に等しい関数のゼロに対するより良好な連続する近似値を求める、請求項１に記載の方法。
【請求項３】
更に：
前記収納容器に接続されるポートの面積及び高さを表わす第４データ集合を保存するステップと、
前記ポートを介して前記収納容器に流入する、または前記収納容器から流出する液体流量を計算するステップであって、前記計算した流量が、前記第１〜第４データ集合及び前記液体ボリュームデータの関数である、前記計算するステップと、を含み、
前記第１画像データ集合が更に、前記第４データ集合の関数である、請求項１に記載の方法。
【請求項４】
次のグループ：露出液体面積；前記収納容器の濡れ面積；及び前記収納容器内の前記液体の重量分布から選択される容器特性を求めるステップを更に含む、請求項１に記載の方法。
【請求項５】
ディップスティックのソリッドモデル表現を、前記収納容器内の前記液体のソリッドモデル表現と交差させるステップを更に含む、請求項１に記載の方法。
【請求項６】
相互接続部を介して連通する第１及び第２貯留室を備える収納容器内の液体の動きをシミュレートする方法であって：
（ａ）前記第１貯留室のソリッドモデル表現を含む第１データ集合を保存するステップと、
（ｂ）前記第２貯留室のソリッドモデル表現を含む第２データ集合を保存するステップと、
（ｃ）前記収納容器の空間姿勢を表わす第３データ集合を保存するステップと、
（ｄ）前記第１貯留室と前記第２貯留室との間の前記相互接続部の面積及び高さを表わす第４データ集合を保存するステップと、
（ｅ）前記第１貯留室内の初期液体ボリュームを表わす第１液体ボリュームデータを保存するステップと、
（ｆ）前記第２貯留室内の初期液体ボリュームを表わす第２液体ボリュームデータを保存するステップと、
（ｇ）前記第１貯留室内の液体の少なくとも初期液面を表わす第１画像データ集合を求めるステップであって、前記第１画像データ集合が、少なくとも前記第１及び第３データ集合、及び前記第１液体ボリュームデータの関数である、前記求めるステップと、
（ｈ）前記第２貯留室内の液体の少なくとも初期液面を表わす第２画像データ集合を求めるステップであって、前記第２画像データ集合が、少なくとも前記第２及び第３データ集合、及び前記第２液体ボリュームデータの関数である、前記求めるステップと、
（ｉ）ステップ（ｇ）及び（ｈ）の後に、前記第１貯留室及び前記第２貯留室内の液面の差に起因する圧力の変化を計算するステップと、
（ｊ）ステップ（ｉ）で計算される圧力が変化するたびに、前記第１及び第２貯留室のうちの一方の貯留室から他方の貯留室に流れる液体流量を計算するステップであって、前記計算した流量が、少なくとも圧力の該当する変化、及び前記第４データ集合の関数である、前記計算するステップと、
（ｋ）ステップ（ｉ）及び（ｊ）の後に、前記第１貯留室内の後の時点の液面を表わす第３画像データ集合を求めるステップと、
（ｌ）ステップ（ｉ）及び（ｊ）の後に、前記第２貯留室内の後の時点の液面を表わす第４画像データ集合を求めるステップと、
（ｍ）ステップ（ｋ）及び（ｌ）の後に、前記空間姿勢を有する前記収納容器の前記第１及び第２貯留室を表わす第５画像データ集合と交差する関係にある前記第３及び第４画像データ集合を表示するステップと、
を含み、
ステップ（ｇ）は：
（Ｉ）前記第１貯留室内の前記液面の前記位置に関する現在推定値を選択するステップと、
（ＩＩ）前記第１貯留室内の前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、正則化ソリッドモデリング演算を用いて求めるステップと、
（ＩＩＩ）前記第１貯留室内の前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、前記第１液体ボリュームデータで表わされる前記液体ボリュームと比較するステップと、
（ＩＶ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記第１液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致しない場合に、数値計算法を用いて、前記液面の位置に関する異なる現在推定値を選択するステップと、
（Ｖ）ステップ（ＩＩ）〜（ＩＶ）を、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記第１液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致するまで繰り返すステップと、
を含む、方法。
【請求項７】
ステップ（ｇ）及び（ｈ）の後に実施されるステップであって、前記第５画像データ集合と交差する関係にある前記第１及び第２画像データ集合を表示するステップを更に含む、請求項６に記載の方法。
【請求項８】
前記収納容器の加速度の絶対値及び方向を表わす第５データ集合を保存するステップであって、前記第１及び第２画像データ集合が更に、前記第５データ集合の関数である、ステップを更に含む、請求項６に記載の方法。
【請求項９】
ステップ（ｉ）を実施している間に実施されるステップであって、前記第１及び第２貯留室内の変化する液面を表わす画像データを表示するステップを更に含む、請求項６に記載の方法。
【請求項１０】
次のグループ：前記第１及び第２貯留室内の露出液体面積；前記第１及び第２貯留室の濡れ面積；前記収納容器内の前記液体の重量分布；前記第１及び第２貯留室に捕集される液体の量；及び前記第１及び第２貯留室のうちの一方から他方に、前記収納容器の前記空間姿勢が変化するときに移送される液体の量から選択される容器特性を求めるステップとのうち少なくとも１つのステップを更に含む、請求項６に記載の方法。
【請求項１１】
前記数値計算法では、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームと、前記液体ボリュームデータで表わされる前記液体ボリュームとの差に等しい関数のゼロに対するより良好な連続する近似値を求める、請求項６に記載の方法。
【請求項１２】
収納容器内の液面の位置を計算するシステムであって：
前記収納容器内の前記液体の液面を表わす第１画像データ集合を求め、前記第１画像データ集合が少なくとも、前記収納容器のソリッドモデル表現を含む第１データ集合、前記収納容器の空間姿勢を表わす第２データ集合、前記収納容器の加速度の絶対値及び方向を表わす第３データ集合、及び前記収納容器内の液体ボリュームを表わす液体ボリュームデータの関数となるようにプログラムされるプロセッサと、
前記空間姿勢を有する前記収納容器を表わす第２画像データ集合と交差する関係にある前記第１画像データ集合を表示する表示装置と、
を備え、
前記プロセッサが前記第１画像データ集合を求めるために実行する操作は：
（Ｉ）前記液面の前記位置に関する現在推定値を選択するステップと、
（ＩＩ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、正則化ソリッドモデリング演算を用いて求めるステップと、
（ＩＩＩ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、前記液体ボリュームデータで表わされる前記液体ボリュームと比較するステップと、
（ＩＶ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致しない場合に、数値計算法を用いて、前記液面の位置に関する異なる現在推定値を選択するステップと、
（Ｖ）ステップ（ＩＩ）〜（ＩＶ）を、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致するまで繰り返すステップと、
を含む、システム。
【請求項１３】
前記数値計算法では、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームと、前記液体ボリュームデータで表わされる前記液体ボリュームとの差に等しい関数のゼロに対するより良好な連続する近似値を求める、請求項１２に記載のシステム。
【請求項１４】
前記プロセッサは更に、ポートを介して前記収納容器に流入する、または前記収納容器から流出する液体流量を計算するようにプログラムされ、前記流量は、前記第１〜第３データ集合、前記液体ボリュームデータ、及び前記ポートの面積及び高さを表わす第４データ集合の関数であり、前記第１画像データ集合が更に、前記第４データ集合の関数であることを含む、請求項１２に記載のシステム。
【請求項１５】
前記プロセッサは更に、次のグループ：露出液体面積；前記収納容器の濡れ面積；及び前記収納容器内の前記液体の重量分布から選択される容器特性を求めるようにプログラムされることを含む、請求項１２に記載のシステム。
【請求項１６】
前記プロセッサは更に、ディップスティックのソリッドモデル表現を、前記収納容器内の前記液体のソリッドモデル表現と交差させるようにプログラムされることを含む、請求項１２に記載のシステム。
【請求項１７】
相互接続部を介して連通する第１及び第２貯留室を備える収納容器内の液体の動きをシミュレートするシステムであって：
次の操作：
（ａ）少なくとも前記第１貯留室内の液体の初期液面を表わす第１画像データ集合を求める操作であって、前記第１画像データ集合が少なくとも、前記第１貯留室のソリッドモデル表現を含む第１データ集合、前記収納容器の空間姿勢を表わす第２データ集合、及び前記第１貯留室内の初期液体ボリュームを表わす第１液体ボリュームデータの関数である、第１画像データ集合を求める前記操作、
（ｂ）少なくとも前記第２貯留室内の液体の初期液面を表わす第２画像データ集合を求める操作であって、前記第２画像データ集合が少なくとも、前記第２貯留室のソリッドモデル表現を含む第３データ集合、前記収納容器の前記空間姿勢を表わす前記第２データ集合、及び前記第２貯留室内の初期液体ボリュームを表わす第２液体ボリュームデータの関数である、第２画像データ集合を求める前記操作、
（ｃ）前記第１及び第２貯留室内の液面の差に起因する圧力の変化を計算する操作、
（ｄ）計算圧力が変化するたびに、前記第１及び第２貯留室のうちの一方の貯留室から他方の貯留室に流れる液体流量を計算する操作であって、前記計算した流量が少なくとも、圧力の該当する変化、及び前記第４データ集合の関数である、液体流量を計算する前記操作、
（ｅ）前記第１貯留室内の後の時点の液面を表わす第３画像データ集合を求める操作、及び
（ｆ）前記第２貯留室内の後の時点の液面を表わす第４画像データ集合を求める操作を実行するようにプログラムされるプロセッサと、
前記空間姿勢を有する前記収納容器の前記第１及び第２貯留室を表わす第５画像データ集合と交差する関係にある前記第３及び第４画像データ集合を表示する表示装置と、
を備え、
前記操作（ａ）は：
（Ｉ）前記液面の前記位置に関する現在推定値を選択するステップと、
（ＩＩ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、正則化ソリッドモデリング演算を用いて求めるステップと、
（ＩＩＩ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、前記液体ボリュームデータで表わされる前記液体ボリュームと比較するステップと、
（ＩＶ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致しない場合に、数値計算法を用いて、前記液面の位置に関する異なる現在推定値を選択するステップと、
（Ｖ）ステップ（ＩＩ）〜（ＩＶ）を、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに所定の誤差内で一致するまで繰り返すステップと、
を含む、システム。
【請求項１８】
前記第３及び第４画像データ集合は少なくとも、前記収納容器の加速度の絶対値及び方向を表わす第５データ集合の関数である、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、液体を収容する収納容器（以後、「容器」と表記する）をシミュレートするシステム及び方法に関するものである。このようなシステムは、例えば液体燃料積載ビークルのシミュレーションを実行する設計局面において有用である。このようなシステムは、燃料油面を求めるための燃料タンク内のセンサの個数を減らすために、または地下水及び油層のような地層内の液面とボリューム量を関連付けるために適用することもできる。
【背景技術】
【０００２】
異なる翼姿勢、異なるバンク角（機体の左右の傾斜角）及びヨー角、及び異なる翼の撓みに対応する航空機翼内の燃料分布を、翼の内部形状の矩形分割近似を利用して計算する手法が知られている。当該公知のソリューションは次の不具合を有する：（１）当該ソリューションは、特定の幾何学的形状及び形態（すなわち、翼）に限定される；（２）当該ソリューションは、極端にフォーマット化し、かつ切り詰めた幾何学的表現を関数への構造入力とする必要がある；（３）当該ソリューションは、近似解法を用いるので、正確な解を提供することができない；（４）既存のソフトウェアは、維持するのが複雑で、難しく、かつ展開するのが難しいＦＯＲＴＲＡＮで書かれている；（５）既存のソフトウェアは、他のソリューション（例えば、異なる飛行角の影響を受ける飛行機の重心の計算）と統合するのが難しい；（６）解析結果は、読み出し、及び書き込みを行なうために専用の符号化を必要とする独自仕様のファイルフォーマットで授受される。
【０００３】
静的状況または動的状況（例えば、収納容器が特定の方向に加速されている）における異なる空間姿勢での任意の形状の収納容器の液面（本明細書では、「液面の位置」とも表記される）を正確に計算するシステム及び方法を改良する必要がある。
【発明の概要】
【０００４】
本発明は、任意の複雑な形状をした容器（例えば、燃料タンク）内の液面を、ソリッドモデリング法を用いて計算するシステム及び方法に関するものである。ソリッドモデリングは、表現対象の立体に関して明確に定義される幾何学的特性の自動計算を可能にし、かつ表現に注目する多数の理論、技術、及びシステムを含む。立体を明確に表現する多くの方式が知られている。境界表現は、面、辺、及び頂点を表わすノード群、及び接続関係及び隣接関係を表わすリンク群を有するグラフである。殆どのソリッドモデラーは、ソリッドオブジェクトに対するＢｏｏｌｅａｎ演算をサポートしている。Ｂｏｏｌｅａｎ演算をソリッドモデリングに用いて、ソリッドオブジェクトを、立方体、円筒体、及び他の境界表現のようなパラメータ化されたソリッドプリミティブの加算及び減算により定義する。
【０００５】
ソリッドモデリングを利用するためには、立体表現に作用するアプリケーションアルゴリズムが必要である。幾何学アルゴリズムは、立体を表わすデータ（シンボル構造）を操作する。具体的には、幾何学的に複雑な立体のボリューム、慣性モーメント、及び他の特性を計算するアルゴリズムが公知になっている。
【０００６】
本明細書において開示される実施形態は、境界を利用して、燃料タンクを表現するが、本発明は、燃料タンクの境界表現の使用のみに限定されない。本明細書において開示される実施形態は、ソリッドモデリングＢｏｏｌｅａｎ演算も用いて、任意の複雑な形状の容器内の液面を、厳密な幾何学的形状に対する厳密な計算を利用して求めるシステムを創造する。これらの実施形態では、ソリッドモデリングＢｏｏｌｅａｎ演算を活用して、コード量を１桁減らす。これらの実施形態では、近似を利用しない。液体ボリューム及び任意の複雑な形状の収納容器が与えられると、開示の実施形態では、液面の計算、及び異なる容器姿勢における使用可能な液体、及び使用不能な液体の量、液体への接近可能性、露出表面積及び濡れ表面積、容器内の任意の位置の液体の高さ、容器姿勢変化時のボリューム移送のような他の特性の計算を大幅に簡易化することができる。
【０００７】
本明細書において開示される実施形態によれば、シミュレーションシステムは、ソフトウェアでプログラムされるプロセッサを備え、当該ソフトウェアは、ソリッドモデリングＢｏｏｌｅａｎ演算を、非線形方程式ソルバと組み合わせて用いることにより、任意の複雑な形状の収納容器内の液面、例えば航空機翼内の燃料油面を算出する。
【０００８】
更に詳細には、１つの実施形態によれば、ソリッドモデラーは、収納容器の境界表現を非線形方程式ソルバに出力する。収納容器のソリッドモデルは、形状を当該モデルの境界で表わし、当該境界は面集合から成り、これらの面を共通辺で接合して合体させて、「液密な」空間容器を形成する。
【０００９】
非線形方程式ソルバは、入力として、収納容器のソリッドモデル境界表現、空間内の所望の姿勢、動的状態（例えば、横方向加速度）、及び液体量を取り込む。容器内の液体の液面を求めるために、システムソルバは、連続Ｂｏｏｌｅａｎ減算を、容器の液面を表わす水平に延びる無限半空間（または、他の形状の半空間）を用いて繰り返し実行する。結果として得られる分割ソリッドモデルを用いて、当該液面における液体のボリュームを計算する。
【００１０】
反復システムソルバは、分割収納容器の計算ボリュームが、指定された液体（例えば、燃料）ボリュームに所定の誤差内で一致する場合に終了する。システムソルバの結果は、所定のボリュームに対応する液体のソリッドモデル境界表現である。動的な状況に対応するために、例えば加速度が、旋回または上昇のような局面で生じる場合に対応するために、水平に延びる液体平面を、合計加速度に対応する角度で傾いた平面に置き換える。
【００１１】
別の実施形態によれば、シミュレーションシステムは、バッフル内の狭いオリフィスを介して接続される貯留室群または収納室群を形成する内部バッフルを有する収納容器に対応することができるように設計される。液面高さ計算（既に説明したような）をまず、各個々の貯留室（収納室）に適用して、初期液体高さを計算する。次に、２つの収納容器の間の液面の差によって生じる圧力である水頭を、各対の接続収納室の間で計算する。次に、この情報を利用して、液体がこれらの収納室の間を流れて液面が共通になる過程を計算する。
【００１２】
液体及び収納容器のソリッドモデル表現を用いて容器特性を極めて容易に求めることができ、例えば：（１）単なるソリッドモデルの上面の面積である露出液体面積（この特性は、蒸発を推定するために重要である）；（２）容器面に触れる液体のソリッドモデル表現の複数面の全ての面積を計算して得られる濡れ面積（液体が触れる面積）；（３）ディップスティックのソリッドモデル表現を、液体のソリッドモデル表現と交差させることにより得られるディップスティックレベル（液体に浸かっているスティックの長さ）（これを利用して、液体ボリュームを指すディップスティックを校正する）；（４）貯留室に捕集される液体の量；（５）容器の姿勢が変化するときに１つの貯留室から別の貯留室に移送される液体の量；及び（６）収納容器内の液体の重量分布を極めて容易に求めることができる。
【００１３】
本明細書において開示されるソフトウェア機能は、任意の形状をした容器内の液面を算出する汎用方法を提供する。ソフトウェアは、特定の形状または形態（事物が接続される形態）に拘束されないので、当該ソフトウェアは、航空機及び自動車の燃料タンク、貯水槽、及びラジエータ内の液面、ロケットモータ用推進薬液面などのような異なる用途に用いることができる。
【００１４】
このソフトウェアでは、ソリッドモデリングＢｏｏｌｅａｎ演算を活用して、コード量を１桁減らす。これによって今度は、必要なソフトウェアメンテナンスを大幅に減らすことができる。
【００１５】
更に、液面計算ソフトウェアは近似を利用しない。近似が行なわれないので、解の精度が更に高くなる。
【００１６】
また、当該ソフトウェアは  他のソフトウェアソリューションに埋め込むことができる。ソリューションを埋め込むことができるので、解析結果を異なるフォーマットで転送する必要を無くすことができる。
【００１７】
当該ソフトウェアは  幾何学的形状の離散化された「棒線画」近似ではなく、収納容器の幾何学的形状の実際のＣＡＤ定義を用いる。当該ソフトウェアは幾何学的形状に直接作用するので、多くのデータ変換問題を無くすことができる。
【００１８】
本発明の他の態様は、以下に開示され、そして請求される。
【図面の簡単な説明】
【００１９】
【図１】図１は、別のソリッドモデル表現の面が交差する収納容器のソリッドモデル表現であり、この面は、１つの実施形態によるアルゴリズムにより求めることができる収納容器内の液体の液面を表わす。斜めの視点は、図を分かり易くするために選択されている。
【図２】図２Ａは、航空機の概念的な翼のソリッドモデル表現であり、図２Ｂは、図２Ａに表示される翼内に１５％のボリュームを占める液体を満たした状態のソリッドモデル表現であり、このソリッドモデル表現は、図１のソリッドモデル表現を生成するために使用される同じアルゴリズムにより生成される。。
【図３】図３Ａは、バンク角が９度の状態の概念的な翼のソリッドモデル表現であり、図３Ｂは、図３Ａに表わされる翼内に１５％のボリュームを占める液体を満たした状態のソリッドモデル表現であり、このソリッドモデル表現は、図１のソリッドモデル表現を生成するために使用される同じアルゴリズムにより生成される。。
【図４】図４Ａは、円筒形の収納容器のソリッドモデル表現であり、図４Ｂは、図４Ａに表わされる円筒形の収納容器内に１５％のボリュームを占める液体を満たした状態のソリッドモデル表現であり、このソリッドモデル表現は、図１のソリッドモデル表現を生成するために使用される同じアルゴリズムにより生成される。
【図５】図５は、本発明の１つの実施形態による収納容器内の液面を算出するシステムの構成要素群を表わすブロック図である。
【図６】図６は、図５に示すシステムにより実行されるアルゴリズムを示すフローチャートである。
【図７】図７は、本発明の別の実施形態による液体流量計算を実行する接続サブシステムを境界とする２つの液体ボリュームサブシステム（各サブシステムは、該当する液体収容貯留室または収納室を表わしている）を表わす最上位モデル図である。
【図８】図８は、シミュレーション開始時の２つの連通容器に適用される液面計算を示す３次元図である。
【図９】図９は、液面が等しくなった後に液面が２つの連通容器の間で等しくなっている様子を示す３次元図である。
【図１０】図１０は、収納容器の接続貯留室または収納室の間の液体流をモデル化し、シミュレートし、そして解析する市販のソフトウェア（すなわち、ＭａｔｈＷｏｒｋｓ社が開発したＳｉｍｕｌｉｎｋ（登録商標））を用いて実行される計算を表わすブロック図である。
【図１１】図１１は、液体が内部バッフルで捕集されるようになる燃料タンクの多数の収納室を示す３次元図である。
【００２０】
以後、異なる図面における同様の構成要素に同じ参照番号が付されている図面を参照することとする。
【発明を実施するための形態】
【００２１】
次に、動的状態における燃料タンク内の液体の動きをモデル化し、そしてシミュレートするシステムの種々の実施形態について説明する。
【００２２】
図１は、燃料を貯留する貯留室４，６，及び８を備える翼２のソリッドモデル表現である。本発明の１つの実施形態によれば、翼２のソリッドモデル表現には、無限水平半空間１０の面１８が交差し、当該面１８は、１５％のボリュームを占める液体を満たした状態の翼２の内部の燃料の油面（すなわち、燃料の液面を表わす油面）を表わしている。斜めから眺める視点が、図を分かり易くするために選択されている。
【００２３】
図２Ａに示すように、翼２の貯留室４は、貯留室６とオリフィスを介して液体連通し、そして貯留室６は、貯留室８とオリフィスを介して液体連通している。図２Ａは、バンク角が０度の状態の翼２を示している。これとは異なり、図２Ｂは、１５％のボリュームを占める液体を満たした状態で、かつバンク角が０度の状態の翼２の内部の燃料ボリュームのソリッドモデル表現である。図２Ｂに示すように、これらの燃料タンク室の内部の燃料ボリュームは、それぞれの燃料ボリューム１２，１４，及び１６を含む。図１から最も良く分かるように、燃料ボリューム１２は貯留室４に収容され；燃料ボリューム１４は貯留室６に収容され；そして燃料ボリューム１６は貯留室８に収容される。
【００２４】
以下に更に詳細に開示されるように、プロセッサをソフトウェアでプログラムし、このソフトウェアで面１８（燃料油面を表わす）の位置及び姿勢を、翼２のソリッドモデル表現、翼２の空間姿勢、翼２の内部に収容される燃料の量、及び翼２の内部の燃料に影響する動的状態（例えば、翼の加速度）の関数として求めるアルゴリズムを実行する。
【００２５】
例えば、翼２のバンク角が変化すると、翼２の内部の燃料の位置が変化する。図３Ａが、バンク角が９度の状態の同じ翼２のソリッドモデル表現であるのに対し、図３Ｂは、１５％のボリュームを占める液体を満たした状態で、かつバンク角が９度の状態の翼２の内部の燃料のボリュームのソリッドモデル表現である。図３Ｂから分かるように、燃料タンク室４及び６の内部の燃料ボリュームは、それぞれ燃料ボリューム１２’及び１４’を含む。図３Ａに示す空間姿勢になっていて、１５％が満たされている状態では、貯留室８には燃料が無い。
【００２６】
図４Ａは、４５度の角度の姿勢になっている円筒形収納容器２２のソリッドモデル表現である。図４Ｂは、図４Ａに表わされる円筒形収納容器２２に収容される液体２４で１５％のボリュームを占めるように満たした状態のソリッドモデル表現であり、このソリッドモデルは、図１、２Ａ、２Ｂ、３Ａ、及び３Ｂに示す画像を生成するために使用される同じアルゴリズムにより生成される。これは、当該アルゴリズムの一般的な性質を示している。
【００２７】
図５は、本発明の１つの実施形態による収納容器の液面を算出し、そして表示するシステムの構成要素群を表わすブロック図である。当該システムは、ソリッドモデラーソフトウェア２６でプログラムされるプロセッサ２０を備え、このモデラーソフトウェア２６では、ブーリアンソリッドモデリング演算、及び任意形状の収納容器の液面、例えば航空機翼内の液面を算出する非線形方程式ソルバ２８を用いる。ソリッドモデラー２６は、収納容器の境界表現を非線形方程式ソルバ２８に出力する。収納容器のソリッドモデルは、形状を当該容器の境界で表現し、これらの境界は、共通辺で接合されて合体する「水密」空間容器を形成する面集合から成る。非線形方程式ソルバ２８は、入力として、収納容器のソリッドモデル境界表現、空間中の所望の姿勢（図５の入力Ａ）、動的状態（例えば、横方向加速度）（図５の入力Ｂ）、及び容器に収容される液体の量（すなわち、ボリューム）（図５の入力Ｃ）を取り込む。収納容器内の液体の液面を求めるために、システムソルバ２８は、連続ブーリアン減算を、容器の内部の液面を表わす無限水平半空間（例えば、図１のアイテム１０）を用いて繰り返し実行する。結果として得られる分割ソリッドモデルを用いて、該当する液面になっている液体に対応するボリュームを算出する。反復システムソルバ２８は、分割収納容器の算出ボリュームが、指定された液体（例えば、燃料）ボリュームに所定誤差内で一致すると終了する。当該システムソルバの結果は、算出液体ボリュームのソリッドモデル境界表現である。動的状態に対応する、例えば旋回または上昇のような加速度が生じる場合に対応するために、水平液面の代わりに、合計加速度に対応する角度の平面を用いる。次に、動的状態における液体のこの最終境界表現は表示装置３０に出力され、この表示装置３０は、水平液面が交差する収納容器のソリッドモデルの画像（例えば、図１に示すような）を表示する。
【００２８】
図６は、図５に示すシステムが実行するアルゴリズムを示すフローチャートである。ステップ３２では、プロセッサは、収納容器のソリッドモデル境界表現をメモリから取り出す。ステップ３４では、プロセッサは、更に別のデータをメモリから取り出す。好適な実施形態によれば、更に別のデータは：収納容器の空間姿勢；収納容器内の液体の量（すなわち、目標ボリューム）；及び収納容器の加速度の絶対値及び方向（すなわち、合計加速度ベクトル）を少なくとも含む。ステップ３６では、プロセッサは、液面が取り得る位置のリミットを求め、これらのリミットは、空間姿勢、目標ボリューム、及び加速度ベクトル（すなわち、加速度ベクトルは、液面の法線方向を向いている）の関数である。
【００２９】
当該ツールは、立体のリミット、すなわち当該立体の境界の最小及び最大のｘ、ｙ、及びｚ値を求める方法を実行することができる。これらのリミットは、立体を包含する「バウンディングボックス」の対向するコーナーを定義する２つのポイントであると考えることができる。重力のみが液体に作用している状態−すなわち、合計加速度が「慣性」ｚ方向に完全に一致する状態−では、これらの液体リミットは立体のｚリミットである。航空機加速度が更に大きくなって、合計加速度ベクトルが、ｚ方向と一致しなくなる場合では、容器をまず一時的に、当該容器の合計加速度ベクトルが慣性ｚ方向に一致するまで回転させる。次に、当該ツールは、回転後の立体のリミットを求めて、回転後の「バウンディングボックス」を定義する。回転後の立体を廃棄し、そして当該立体の「バウンディングボックス」のリミットを、回転させて元の「慣性」座標系に戻し、この場合、これらのリミットの間に引かれる半直線は、液体平面に対応する範囲の位置特定ポイント群を含み、これらの位置特定ポイントは加速度ベクトルに一致する。
【００３０】
更に詳細には、これらのリミットは、ソリッドモデルのバウンディングボックス計算に基づいて設定され、この場合、当該バウンディングボックスは、現在の座標系の軸に沿って配向する（例えば、ｘ−ｙ平面は、「水平」平面を表わし、 “ｚ”成分は、「垂直」方向の高さを表わす−この場合、 “ｖｅｒｔｉｃａｌ（垂直）”とは、重力の方向、及び他の加速度に対応する全ての要素の方向を指す）。ソリッドモデルのバウンディングボックスの算出方法は公知であるが、ソリッドモデルを取り囲む「ボックス」の厳密さには種々の度合いがある。“ｚ”成分は、本明細書において開示される実施形態により使用されるリミットである。
【００３１】
開示される実施形態では、境界表現のバウンディングボックスを、境界表現の複数面の下層面の全てのバウンディングボックスを算出することにより算出し、そして次に、これらのボックスを、これらのボックスの極点群について収集される極小値及び極大値を各座標方向に計算することにより「組み合わせる」。従って、バウンディングボックスは、少し精度が甘くなってしまうが、計算を実行するためには、それは問題ではない。
【００３２】
従って、問題は、表面のバウンディングボックスを求めることに帰着し、これを求めるためには、公開されている多種多様な方法がある。開示される実施形態では、テンソル積スプラインを用いて、これらの表面を表現し、そして制御ポリゴンのバウンドを多項式スプライン（加重スプラインは更に複雑である）に使用する。しかしながら、これは単なる１つの例示的な実施形態に過ぎず、そしてバウンディングボックスを算出する他の公開されている方法がある。バウンディングボックスを算出する種々の方法は、Ｇ．  Ｆａｒｉｎ（著者）らによる、かつＥｌｓｅｖｉｅｒ  Ｂ．  Ｖ．によるＨａｎｄｂｏｏｋ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｇｅｏｍｅｔｒｉｃ  Ｄｅｓｉｇｎ（コンピュータ援用幾何学設計ハンドブック）のＣｈａｐｔｅｒ  １３−Ｉｎｔｅｒｒｏｇａｔｉｏｎ  ｏｆ  Ｓｕｂｄｉｖｉｓｉｏｎ  Ｓｕｒｆａｃｅｓ（部分分割表面の調査：Ｍ．  Ｓａｂｉｎ（２００２））に開示されている。
【００３３】
ステップ３８では、プロセッサは、液面の位置に関する１次推定値（すなわち、Ｎ＝１とした場合のＮ次推定値）を、線形補間により求め、このような１次推定値は、ステップ３６で既に求めているリミット群の間に位置する。次に、プロセッサは、正則化ソリッドモデリング（すなわち、ブーリアン）演算を用いて、液面の位置の下の液体のボリュームを１次推定値に従って求める（図６のステップ４０参照）。次に、プロセッサは、ステップ４０で求めた液体ボリュームを目標ボリュームと比較し（ステップ４２）、そして液体ボリュームと目標ボリュームとの差が、許容できるかどうかを判断する（ステップ４４）。適用するテストは、算出ボリュームと目標ボリュームとの差が、ユーザ指定許容値に収まるかどうかに関して行なわれる（図６のブロック４６）。当該差が許容できない場合、数値演算法（例えば、擬似ニュートン−ラフソン法）を用いて、液面の位置に関する推定値の精度を向上させる（ステップ４２）。精度が向上したこの推定値を用いて、ステップ４２及び４４を繰り返す。精度が向上した推定値が許容できない（ステップ４２）場合、ステップ４８，４０，及び４２を、算出ボリュームと目標ボリュームとの差が許容できるまで繰り返す。当該差が許容できる（ステップ４４）場合、プロセッサは、液面の位置に関する最終推定値を表わす画像データ、及び／又は容器中の液体の算出ボリュームのソリッドモデル境界表現を保存し、当該ソリッドモデル境界表現の上面は、前述の液面である（ステップ５０）。プロセッサは更に、当該画像データを表示装置（例えば、コンピュータモニタ）に送信して表示させる。
【００３４】
液面の位置を推定する数値演算法では、液面の位置に関する現在の推定値を下回る液体のボリュームと、前記液体ボリュームデータにより表わされる液体のボリュームとの差に等しい関数のゼロに、より良好に連続して近似する近似値を求める。一連の採用可能なゼロ発見法は、この技術分野で公知の多項式を用いる方法、及び導関数を用いる方法の両方を含む。異なる用途では、任意の数の異なる手法の利点を生かすことができる。
【００３５】
図６を参照し続けると、ステップ４０，４２，４４，及び４８で表わされる繰り返しでは、異なるが機能的に等価な手法を利用することができる。例えば、第１バージョンのソースコードでは、大ブロックをシミュレート後の翼から減算して「空き空間」を、正則化ブーリアン演算を用いて無くす：
ｃｕｔｓｏｌｉｄ＝ｓｏｌｉｄ−ｃｕｔｂｌｏｃｋ．Ｔｒａｎｓｌａｔｅ（［０，０，ｚｒａｎｇｅ  ＊  ｄｅｌｔａ／１０．０］）
式中、“−”は、多重定義されて、正則化ブーリアン減算が立体ＢＲｅｐ（ｂｏｕｎｄａｒｙ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ：境界表現）オブジェクトに対して施されることを意味する。第２バージョンでは、“Ｃｕｔ”コマンドを用い、この“Ｃｕｔ”コマンドによって立体を無限平面で切断し、そして立体の一部のみを平面の正方向の法線に沿って保持する。両方のバージョンでは、同じ目的を、異なる方法を用いて達成し、そして両方のバージョンは、共に標準的なソリッドモデリング演算であると考えられる。
【００３６】
第１バージョンの主要関数は、任意の立体を、当該立体の所定の姿勢で、大ブロックが所定のｚ値（すなわち、高さ）に位置している状態で切断する関数ｃｕｔＷｉｎｇ（ｓｏｌｉｄ，  ｈｇｔ）、及び収納容器のソリッドモデル、及び燃料のボリュームが与えられる場合に、擬似ニュートン−ラフソン反復法を用いて燃料油面を求める関数ｆｉｎｄｗｌ（ｓｏｌｉｄ，  ｖｏｌｕｍｅ）である。基本的に、この擬似ニュートン−ラフソン反復法では、液面を推定することから始まり、そして次に、液面を、特定の液面が与えられる場合に分割ソリッドモデルのボリュームを算出することにより繰り返し微細に調整する。
【００３７】
本発明の開示の実施形態では、液面を求めるために適用されるニュートン法の内部のソリッドモデリング法を適用する。しかしながら、擬似ニュートン−ラフソン法は、この特定の問題を解く１つの可能な方法に過ぎない、すなわち次式に従って高さを求める：
Ｖｏｌｕｍｅ（ｃｏｎｔａｉｎｍｅｎｔ＿ｓｏｌｉｄ−＊  ｂｉｇ＿ｂｌｏｃｋ  ａｔ  ｚ＝ｈｅｉｇｈｔ）−ｇｉｖｅｎ＿ｖｏｌｕｍｅ≦ε
式中、−＊  は、正則化ブーリアン減算を指し、εは小さい数値に設定され（浮動小数点計算の精度が低く、かつ計算リソースが限定されているので）、そしてｂｉｇ＿ｂｌｏｃｋは、底面が地面に平行な（概念的に）矩形ボックスであり、かつ当該ｂｉｇ＿ｂｌｏｃｋがｃｏｎｔａｉｎｍｅｎｔ＿ｓｏｌｉｄで表わされる収納容器よりも大きくなるようにサイズに設定される。無限に大きい半空間（図１から分かるように）が更に作用する。幾つかの実施形態の場合、εは０．００１〜０．０００１に設定された。数値を極めて小さい値に選択すると、ニュートン−ラフソン法が不安定になる（または、計算時間が長くなる）。
【００３８】
関数ｃｕｔＷｉｎｇ（ｓｏｌｉｄ，  ｈｇｔ）は、入力として、収納容器（燃料タンク、ボトル、汚水処理タンクなど）のＢＲｅｐ（“ｓｏｌｉｄ（立体）”）で表わされるソリッドモデル、及び実数値で表わされる高さパラメータ“ｈｇｔ”を取り込む。高さ値“ｈｇｔ”は、収納容器中の液面を表わし、これは、立体及び高さ値が共に、共通の（及び、任意の）原点を基準とすることを意味する。重力（または、外力）の存在も仮定し、これは、力の方向が収納容器中の液体の液面の法線となることを意味する。この実施形態では更に、液体が「静止していて」、周りに跳ねていないと仮定する。
【００３９】
ｃｕｔＷｉｎｇルーチンは、高さ値を用いて、液体が収納容器中で占める空間を表わすソリッドモデルを返す。概念的に、当該ルーチンはこれを、無限平面を生成し、立体をこの平面でスライスし、そして正の重力方向に在る部分を保持することにより行なう。１つのバージョンでは、収納容器は、地球の外周よりもずっと小さく、かつ収納容器中の液面が平坦であると見なすことができると仮定する。しかしながら、これを自明に拡張して、地球のサイズに対して大きい容器を、天体の中心を中心とする球（または、他の形状）を使用し、そして半径を、共通原点に対する容器の相対位置に応じて調整することにより包含することができる。
【００４０】
ｃｕｔＷｉｎｇルーチンでは、この操作は、ブロックが収納容器よりも大きくなるようにサイズ設定される大きい矩形ブロックのソリッドモデル表現を生成し、そして次に、当該ブロックを所定の高さに位置決めすることにより行なわれた。正則化ブーリアン演算を用いて、当該ブロックを収納容器から減算して、容器内に収容される液体のソリッドモデル表現を得た。幾つかの場合では、これは、液面が収納容器よりも下方になる場合に何も返さないことになるか、またはこれは、液面が容器よりも上方になる場合に収納容器全体を返すことになることに注目されたい。
【００４１】
ｃｕｔＷｉｎｇルーチンでは更に、所定の液面におけるブーリアン演算が失敗する場合に、僅かな「デルタ」ウィグルを高さ変数に発生させる。これにより基本的に、計算が成功したとの判定が返されるまで、当該ブロックを、“ｚｒａｎｇｅ”を僅かにインクリメントしながら上下に小刻みに動かす。ｚｒａｎｇｅは、容器の最大高さの１％に設定される。通常、ブーリアン演算の失敗は、境界表現の面に一致する切断面を扱う問題によって生じる。ブーリアン演算は、複数表面の多くの交差線を算出することにより行なわれ、そして２つの表面が部分的に一致する場合、解の数が無限になる（すなわち、１つ以上の曲線ではなく、無限に多数の曲線が得られる、すなわちこれらの表面の部分集合が得られる）。開示のシステム（及び、殆どのＣＡＤシステム）は、最も共通する一致を検出する特殊コードを有するが、ブーリアン演算が失敗する多くの場合が存在する。勿論、Ｂｏｏｌｅａｎ演算が失敗する（例えば、バグが出る）他の理由が多く存在し、そして摂動計算でトリックを使うことにより、これらのエラーから復旧することができる。これも、殆どのソリッドモデルリングシステムによって内部的に採用されているかなり普通の手法である。
【００４２】
ｆｉｎｄｗｌ（ｓｏｌｉｄ，  ｖｏｌｕｍｅ）関数では、次のパラメータ群を用いて燃料油面を求める：ｈｌｏｗ，高さの現在の下側限界値を格納する変数（ｈｌｏｗ＝ｚｌｏｗｅｒ）；ｖｌｏｗ，容器のボリュームの現在の下側限界値を格納する変数（ｖｌｏｗ＝０）；ｈｈｉｇｈ，高さの現在の上側限界値を格納する変数（ｈｈｉｇｈ＝ｚｕｐｐｅｒ）；ｖｈｉｇｈ，容器のボリュームの現在の上側限界値を格納する変数（ｖｈｉｇｈ＝ｔｏｔａｌ）；ｈｍｅｄ，ｈｌｏｗ及びｈｈｉｇｈの平均［ｈｍｅｄ＝ａｂｓ（ｈｈｉｇｈ−ｈｌｏｗ）＊  ．５＋ｚｌｏｗｅｒ］；ｖｍｅｄ，ｈｍｅｄにおける液体のボリューム［ｖｍｅｄ＝ｃｕｔＷｉｎｇ（ｓｏｌｉｄ，  ｈｍｅｄ）．Ｖｏｌｕｍｅ（）］。
【００４３】
関数Ｖｏｌｕｍｅ（）は、ソリッドモデルの面で囲まれる空間に含まれるボリュームを算出するルーチン（ソリッドモデルに関して定義される）である。ボリュームの境界表現は、共通辺で交わり、そして「漏れ」止め空間容器−を生成する複数面の集合により表わされる。関数Ａｒｅａ（）は、表面の部分集合を定義する「トリミング曲線」により定義される表面の一部の当該面積を算出するルーチンである。Ａｒｅａ（）を用いて、容器の濡れ面積を算出し、この濡れ面積は、容器の合計面積のうちの液体が触れる部分を表わすだけでなく、液体の「上」面の面積を表わす（上面の面積を用いて蒸発速度などを求める）。
【００４４】
上に説明してきたアルゴリズムでは、幾何学的形状を離散的な「棒」で近似するのではなく、燃料タンクの幾何学的形状の実際のＣＡＤ定義を用いる。液面を算出するために、当該アルゴリズムでは、厳密なソリッドモデリング演算を、元の設計幾何学的形状に対して直接用いる。立体正則化Ｂｏｏｌｅａｎ演算では、幾何学的形状との必要な交差部を求め、続いて、分類を行なって、交差面群のうちの何れの交差面を保持すべきかを判断する。
【００４５】
前に説明したように、立体を明確に表わす多くの方式が知られている。例えば、境界を使用してソリッドオブジェクトを表わす手法は、ＡＣＭ  Ｃｏｍｐｕｔｉｎｇ  Ｓｕｒｖｅｙｓ，  Ｖｏｌ．  １２，  Ｎｏ．４，  ｐｐ．４３７−４６４（Ｄｅｃｅｍｂｅｒ  １９８０）に掲載されたＲｅｑｕｉｃｈａによる“Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ｆｏｒ  Ｒｉｇｉｄ  Ｓｏｌｉｄｓ（剛性立体の表現）：  Ｔｈｅｏｒｙ，  Ｍｅｔｈｏｄｓ，  ａｎｄ  Ｓｙｓｔｅｍｓ（理論、方法、及びシステム）”，に開示されている。更に、Ｂｏｏｌｅａｎ演算をソリッドモデリングに用いて、ソリッドオブジェクトを、立方体、円筒体、及び他の境界表現のようなパラメータ化されたソリッドプリミティブの加算及び減算により定義する。例えば、Ｂｏｏｌｅａｎ減算を用いて、ソリッドオブジェクトを定義する手法は、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ，  Ｖｏｌ．  ７３，  Ｎｏ．１，  ｐｐ．３０−４４（Ｊａｎｕａｒｙ  １９８５）に掲載されたＲｅｑｕｉｃｈａ及びＶｏｅｌｃｋｅｒによる“Ｂｏｏｌｅａｎ  Ｏｐｅｒａｔｉｏｓ  ｉｎ  Ｓｏｌｉｄ  Ｍｏｄｅｌｉｎｇ（ソリッドモデリングにおけるブーリアン演算）：Ｂｏｕｎｄａｒｙ  Ｅｖａｌｕａｔｉｏｎ  ａｎｄ  Ｍｅｒｇｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ（境界解析及び融合アルゴリズム）”，に開示されている。
【００４６】
別の実施形態によれば、シミュレーションシステムは、バッフル内の狭いオリフィスによって接続される貯留室または収納室を形成する内部バッフルを有する収納容器に対応することができるように設計される。液面高さ計算（前に説明したような）をまず、各個々の貯留室（すなわち、収納室）に適用して初期液面高さを算出する。次に、各ペアの接続収納室の間に２つの連通容器の間の液面の差により生じる圧力である水頭（水のエネルギーを水柱の高さで表わしたもの）を計算する。次に、この情報を利用して、液体がこれらの収納室の間を流れて液面が共通になる過程を計算する。
【００４７】
この実施形態の１つの実施形態では、Ｍａｔｈｗｏｒｋｓ社から市販されているＳｉｍｕｌｉｎｋ（登録商標）ソフトウェア及びＭＡＴＬＡＢ（登録商標）ソフトウェアを、ソリッドオブジェクトを境界表現として表わすことができるソリッドモデリングソフトウェアと併せて利用する。ＭＡＴＬＡＢ（登録商標）は、数値計算環境及びプログラミング言語である。ＭＡＴＬＡＢ（登録商標）によって、行列操作、関数及びデータのプロット、及びアルゴリズムの実行が可能になる。Ｓｉｍｕｌｉｎｋ（登録商標）は、マルチドメインダイナミックシステムをモデル化し、シミュレートし、そして解析するツールである。Ｓｉｍｕｌｉｎｋ（登録商標）は、ＭＡＴＬＡＢ（登録商標）環境に緊密に統合され、そしてＭＡＴＬＡＢ（登録商標）を駆動するか、またはＭＡＴＬＡＢ（登録商標）からスクリプト生成することができる。
【００４８】
Ｍａｔｈｗｏｒｋｓ社の物理モデリングツールを表わすために、Ｍａｔｈｗｏｒｋｓ社は、ＳｉｍｓｃａｐｅＴＭによって、Ｓｉｍｕｌｉｎｋ（登録商標）を、機械系、電気系、油圧系、及び他の物理系を物理ネットワークとして結ぶシステムのモデリングツールを用いて拡張することができると明言している。Ｍａｔｈｗｏｒｋｓ社は、基本的なビルディングブロックをこれらのドメインに基づいて提供して、カスタムコンポーネントのモデルを生成することができるようにしている。ＭＡＴＬＡＢ（登録商標）は、数値計算環境及びプログラミング言語である。ＭＡＴＬＡＢ（登録商標）ベースのＳｉｍｓｃａｐｅＴＭに言語によって、物理モデリングコンポーネント、ドメイン、及びライブラリのテキストベースのオーサリングが可能になる。本明細書において開示される本発明の実施形態では、Ｍａｔｈｗｏｒｋｓ社の物理モデリングツールを利用するが、他の物理モデリングツールを利用することができる。
【００４９】
オリフィスを介して連通する燃料タンクの一連の貯留室または収納室の間の流れをシミュレートする本発明の１つの実施形態によれば、ソルバ２８（図５参照）は、多数のサブシステムを備え、これらのサブシステムは、各収納室における液面を算出する該当する燃料ボリュームサブシステムと、そして各オリフィスを流れる流量を各収納室における異なる液面の関数として計算する該当する接続サブシステム（Ｍａｔｈｗｏｒｋｓ社が提供する標準ブロック群を用いる）と、を含む。［これらのサブシステムは、プロセッサが実行するそれぞれの命令セットを備える］。しかしながら、本発明は、相互接続要素がオリフィスである場合に限定されない。実際の用途では、タンク群の間には、シミュレートすることができるポンプ、バルブ、及び他のデバイスなどを通過するバルブ開閉部材、チューブ、チューブ導管のような多数の他の種類の相互接続部材が存在する。
【００５０】
例示のために、次に、少なくとも部分的に満たされている燃料タンク収納室の液面、及びこれらの収納室を接続するオリフィスを流れる液体流量を計算する例示的なサブシステムについて説明する。これらの計算を拡張して、各収納室が液体燃料で少なくとも部分的に満たされている連続する少なくとも３つの連通収納室を有する模擬燃料タンクの計算を行なうことができる。同じ手順は、任意の多数の相互接続部材を有する任意の多数のソリッドオブジェクトの間で行なうことができる。
【００５１】
図７は、接続情報を含む第３サブシステム５６を境界とする２つの燃料ボリュームサブシステム５２及び５４（オリフィスを介して接続されるそれぞれの液体収容貯留室または収納室に対応する）を表わす最上位シミュレーションモデル図である。各燃料ボリュームサブシステム５２，５４は、該当する燃料収納室または貯留室に収容される液体燃料を表わし、そして燃料タンク内の同じ該当する燃料収納室または貯留室を表わす該当する固有のソリッドオブジェクト（ソリッドモデリングソフトウェアを用いて開始される）と境界を接している。接続サブシステム５６は、液体流量計算を実行して、一方の収納室から他方の収納室にオリフィスを通って流れる液体の流れをシミュレートする。１つの実施形態によれば、接続サブシステム５６は、Ｍａｔｈｗｏｒｋｓ社が提供する標準ブロック群のみを用いる。
【００５２】
記載される実施形態によれば、各燃料ボリュームサブシステムは、タンクを表わす、または燃料タンク内の単一の収納室を表わすソリッドオブジェクトと相互作用する。これらのオブジェクトは、Ｓｉｍｕｌｉｎｋ（登録商標）ワークスペースに、“Ｂａｙｓ”という名前の付いたアレイとして読み込む必要がある。各燃料ボリュームサブシステムに関する初期条件は、シミュレーションオペレータが、コンピュータディスプレイのポップアップウィンドウを利用して入力することができる。このポップアップウィンドウは、それぞれ“Ｂａｙ  Ｎｕｍｂｅｒ”及び“Ｉｎｉｔｉａｌ  Ｖｏｌｕｍｅ”と命名された２つのパラメータフィールドを有する。多数の収納室が当該アレイに含まれる場合、各収納室は、該当する初期液体ボリュームを用いて構成される必要がある。構成対象の収納室に関する収納室の個数は、“Ｂａｙ  Ｎｕｍｂｅｒ”と命名されたフィールドに入力される。オブジェクトが１つしかない場合、“Ｂａｙ  Ｎｕｍｂｅｒ”は、１に設定する必要がある。パラメータ“Ｉｎｉｔｉａｌ  Ｖｏｌｕｍｅ”によって、単位［ｌｅｎ＾３］で表わされるシミュレーションに対応する初期燃料ボリュームを設定し、この場合、“ｌｅｎ”は、立体を定義するために使用される単位である。例えば、立体をインチ単位で定義する場合、初期燃料ボリュームを単位［ｉｎ＾３］で設定する。また、同じ単位を使用して、入力ポートの収納室に流入する流量“ｄＶ［ｌｅｎ＾３／ｓ］”を定義する。
【００５３】
図７を参照し続けると、各燃料ボリュームサブシステム５２，５４は、シミュレート対象の収納容器の加速度のベクトルを表わす加速度ベクトルデータ５８、及びシミュレート対象の収納容器の空間姿勢（すなわち、基準座標系における回転）のベクトルを表わす回転ベクトルデータ６０を受信する。燃料ボリュームサブシステム５２が更に、データを接続サブシステム５６の出力ポートＯｕｔ１から受信するのに対し、燃料ボリュームサブシステム５４は、データを接続サブシステム５６の出力ポートＯｕｔ２から受信する。データ出力Ｏｕｔ１は、収納室１及び２のうちの一方の収納室から他方の収納室に、指定直径を有する円形オリフィスを介して流れる液体流のシミュレーション時に接続サブシステム５６によって計算される、収納室１に流入する、または収納室１から流出する液体流量ｄＶ（単位：ボリューム／秒）であるのに対し、データ出力Ｏｕｔ２は、同じシミュレーション時に接続サブシステム５６によって計算される、収納室２に流入する、または収納室２から流出する液体流量ｄＶである。収納室１内の初期液体ボリュームが収納室２内の初期液体ボリュームよりも大きい場合、液体は、収納室１から収納室２に流入し；別の構成として、収納室１内の初期液体ボリュームが収納室２内の初期液体ボリュームよりも小さい場合、液体は、収納室２から収納室１に流入する。何れの場合においても、収納室１及び２に対応する流量は絶対値が等しく、かつ流量方向が反対である。図７に示す特定の例では、収納室１の内部の初期ボリュームが６０００であるのに対し、収納室２の内部の初期ボリュームは１０００である。
【００５４】
各燃料ボリュームサブシステムは、入力をＳｉｍｕｌｉｎｋ（登録商標）“Ｓ−Ｆｕｎｃｔｉｏｎ”ブロックに送信する。これは、カスタム埋め込みコードを実行することにより、対応するソリッドオブジェクトのインターフェースとなる。このＳ−Ｆｕｎｃｔｉｏｎコードは、ｓＦｕｎ＿ｔａｎｋ．ｍと命名される定義ファイルを含み、この定義ファイルは、Ｍａｔｈｗｏｒｋｓ標準テンプレートとして実装される。カスタムコードの関連ビットは、ソリッドオブジェクトに作用する関数“ｆｉｎｄＦｕｅｌＰｌａｎｅ”をコールする。ｓＦｕｎ＿ｔａｎｋ．ｍ中の１つの行は次式により表わされる：
ｂｌｏｃｋ．ＯｕｔｐｕｔＰｏｒｔ（１）．Ｄａｔａ＝ｆｉｎｄＦｕｅｌＰｌａｎｅ（ｒｏｔ，  ｖｏｌｕｍｅ，１，．．．ｎｏｒｍａｌ）
式中、ｆｉｎｄＦｕｅｌＰｌａｎｅは重要な演算子である。入力「ｒｏｔ」は、指定空間姿勢を有するソリッドオブジェクトを指すポインタである。「ｖｏｌｕｍｅ」は、「ｒｏｔ」の内部の現在の液体ボリュームを表わす二重数値である。「ｎｏｒｍａｌ」は、液体に作用する合計加速度ベクトルを表わす二重数値の３次元ベクトルである。関数ｆｉｎｄＦｕｅｌＰｌａｎｅは、液面、すなわち［ｐｏｉｎｔ，  ｎｏｒｍａｌ］で定義される平面に対応する位置特定ポイントである二重数値の３次元ベクトルを返す。
【００５５】
再度、図７を参照するに、収納室１と収納室２との間の仕切り板にある円形オリフィス（指定直径を持ち、かつ指定高さに位置する）内の流れは、Ｓｉｍｕｌｉｎｋ（登録商標）標準コンポーネントを用いてシミュレートされる。ｆｉｎｄＦｕｅｌＰｌａｎｅ関数への「ｖｏｌｕｍｅ」入力は、液体が一方の収納室から他方の収納室に流れるとともに変更される。シミュレーション時、ソリッドモデリングソフトウェアにより求めた液面を用いて、仕切り板の各側のオリフィスの上方の液体の「水頭」圧力を求める。液面が平坦ではないことに起因する圧力差によって、液面が等しくなるまで、流れがオリフィス内に生じる。
【００５６】
シミュレーションシステムが初期化されると、燃料ボリュームサブシステム５２は、収納室１の内部の液体の液面の初期位置を、収納室１を表わすソリッドモデルオブジェクト、収納室１内の液体の初期ボリューム、及び加速度ベクトル及び回転ベクトルの関数として計算し、そして当該データを接続サブシステム５６の入力ポートＩｎ１に出力し；そして燃料ボリュームサブシステム５４は、収納室２の内部の液体の液面の初期位置を、収納室２を表わすソリッドモデルオブジェクト、収納室２内の液体の初期ボリューム、及び同じ加速度ベクトル及び回転ベクトルの関数として計算し、そして当該データを接続サブシステム５６の入力ポートＩｎ２に出力する。同時に、収納室１及び２内の初期液面のソリッドモデル境界表現を表示装置に表示することができる。
【００５７】
図８は、２つのソリッドオブジェクト及びこれらのオブジェクトに収容される液体ボリュームの静止画像である。当該画像は、シミュレーションの初期状態を表わしている。太字線が、それぞれの収納室に収容される液体ボリュームの境界を表わしているのに対し、太字線ではない線は、液体を収容するそれぞれの内部ボリュームを区切るそれぞれの収納室の立体壁を表わしている。図示されていないのが、これらの収納室の間の微小円形オリフィスであり、このオリフィスによって液体が、一方の収納室から他方の収納室に流れることができる。
【００５８】
収納室１及び２、収納室１及び２内の初期液面、及び収納室１及び２が連通するときに液体が流れるオリフィスの面積を表わすソリッドモデルオブジェクトに基づいて、接続サブシステム５６は水頭を計算し、この水頭は、収納室１と２との間の液面の差によって生じる圧力である。次に、この情報を利用して、液体がこれらの収納室の間を流れて液面が共通になるときの流量を算出する。液面の差が小さくなると、それに応じて流量は、収納室１及び２内の模擬液面が図９に示すように等しくなって流量が最終的にゼロに等しくなるまで減る。
【００５９】
図８は、初めは等しくない模擬液面をコンピュータモニタに表示したときの様子を示し、そして図９は、最終的に等しくなる模擬液面を同じコンピュータモニタに表示したときの様子を示しているが、表示装置はまた、これらの模擬液面を、これらの液面が、図８に示す液面から図９に示す液面に移行するときに継続的に表示することが好ましいことを理解されたい。
【００６０】
液面が等しくなった後に加速度ベクトルまたは回転ベクトルに変化が生じると必ず、燃料ボリュームサブシステム５２及び５４は、収納室１及び２内のそれぞれの液体の液面の新規の位置を計算する。これらの新規の入力がポートＩｎ１及びＩｎ２に対して行なわれると、接続サブシステムは再度、一方の収納室から他方の収納室に、これらの変化した状態で流れる初期流量を計算し、そして出力する（ポートＯｕｔ１及びＯｕｔ２に）。次に、接続サブシステム５６は、流量の計算を、これらの液面が再度、等しくなるまで継続する。
【００６１】
これまでに説明してきた実施形態によって、多数のメインフレームＦｏｒｔｒａｎ（フォートラン）プログラムを、ＭＡＴＬＡＢ（登録商標）計算環境にシームレスに適合するように設計されるプラットフォーム非依存型ツールキットに置き換えることができる。初期燃料油面が等しくない状態の２つの収納室は、オリフィスを介して接続される。ソリッドモデリングソフトウェアを用いて、各収納室内の燃料のそれぞれの高さ（オリフィスの高さに対する）を計算し、そしてＳｉｍｕｌｉｎｋ（登録商標）で一方の収納室から他方の収納室への流れを処理する。図８及び９は、７４７−８の機体外側の翼タンクの最初の２つの収納室に関するシミュレーションを示している。単位は、翼の基準平面座標系におけるインチである。
【００６２】
燃料高さ情報は、燃料ボリュームを、各収納室に対応するソリッドオブジェクトに流し込むことにより計算され、そして燃料の液平面に対応する３次元位置特定ベクトルとして返される（図７に示す場合における平面の法線は丁度、［００１］である）。瞬間的には、航空機は、静止した状態を保持しているので、第３要素をこのベクトルから抽出し、そして燃料油面の高さとして使用し、この高さから、オリフィスのｚ位置を減算して、相対的な燃料高さを取得することにより水頭圧を計算する。水頭への変換は、近似変換、すなわちＰ＝ｒｈｏ＊ｇ＊ｈを表わす一連のゲインブロックにより行なわれる。
【００６３】
この段階まで、全てが、ソリッドモデリングソフトウェアをコールする操作、またはＳｉｍｕｌｉｎｋ（登録商標）信号を用いる操作の何れかの操作により行なわれ、これらは純粋に数学的に行なわれ；水頭を求めた後に、当該信号は、ＳｉｍｓｃａｐｅＴＭが使用する「Ｐｈｙｓｉｃａｌ  Ｓｉｇｎａｌｓ」に変換される。変換後の圧力信号を用いて油圧供給源を駆動し、この油圧供給源は、一方の端部において基準大気に接続され、そして他方の端部において、オリフィスに接続される。次に、当該オリフィスは、第２収納室にミラー構成になるように接続される。例示的な燃料ボリュームサブシステムを図１０に記号で示している。流量センサを用いて、物理システム内の結果的な流れを求め、次に、この流れを、単位ｉｎｃｈｅｓ＾３／ｓ（インチ３／ｓ）で表わされる正則化Ｓｉｍｕｌｉｎｋ（登録商標）信号に逆変換し、そして積分して、部分的に満たされている収納室を表わすソリッドオブジェクトのボリューム更新を行なう。
【００６４】
燃料補給に続いて、燃料ボリュームを、航空機の状態が変化している状態で保持するシミュレーションを行なうことができる。離陸滑走を近似するために、．ｓｌｉｃｅメソッドまたは．ｃｕｔメソッドへの「通常」入力を、ＭＡＴＬＡＢ（登録商標）において［−ａｃｃｅｌ  ０  １］として定義される合計加速度ベクトルとし、この場合、“ａｃｃｅｌ”は、重力単位ｇで表わされる順方向加速度（ｘ方向）である。“ｆｉｎｄＦｕｅｌＰｌａｎｅ”と表記されるカスタムＭＡＴＬＡＢ（登録商標）関数を用いて、燃料油面に対応する位置特定ポイントを求める。
【００６５】
更に、当該シミュレーションでは、飛行機のピッチ（機首の上げ下げ）を変化させる（ピッチアップ／ピッチダウン）ことができる。この場合、重力に対する燃料タンクの向きが、時間とともに変化するだけでなく、合計加速度ベクトルも変化する。これは、ソリッドオブジェクトの“回転”メソッドを用いて行なわれ；ＭＡＴＬＡＢ（登録商標）関数“ａｎｇｌｅ２ｄｃｍ”（航空宇宙ツールボックス）が、必要な入力の方向余弦行列を高速に生成するために有用であった。
【００６６】
ソリッドモデルオブジェクトをＳｉｍｕｌｉｎｋ（登録商標）に統合する種々の方法が試行されて成功している。上に開示した方法では、“Ｌｅｖｅｌ−２  Ｍ−Ｆｉｌｅ  Ｓ−Ｆｕｎｃｔｉｏｎ”ブロックを用いた。他の方法では、“Ｅｍｂｅｄｄｅｄ  Ｍａｔｌａｂ  Ｆｕｎｃｔｉｏｎ”ブロックまたは“Ｍａｔｌａｂ  Ｆｃｎ”ブロックを用いた。３つのブロックの全ては、関数“ｆｉｎｄＦｕｅｌＰｌａｎｅ”を連続的にコールし、この関数“ｆｉｎｄＦｕｅｌＰｌａｎｅ”が今度は、ソリッドモデルオブジェクトを用いて、入力燃料ボリューム及び動的状態に対応する燃料油面の位置を特定する。
【００６７】
これらのオブジェクトのＪａｖａ特性を生かすことができるので、これらの方法のうちの３つの方法の全てにおいて、基本的に同じ事を行なう−すなわち、これらの方法では、ｆｉｎｄＦｕｅｌＰｌａｎｅ関数を正則化ＭＡＴＬＡＢ（登録商標）エンジンで実行する。Ｓｉｍｕｌｉｎｋ（登録商標）は、Ｊａｖａを当該Ｓｉｍｕｌｉｎｋ（登録商標）独自に消化していないので、シミュレーションの速度を後の時点で高めるために適用することができる加速度オプションの種類が限定される。ｍコードを等価なＣコードにプリコンパイルして実行速度を速くするＥｍｂｅｄｄｅｄ  ＭＡＴＬＡＢ（登録商標）関数においても、ｆｉｎｄＦｕｅｌＰｌａｎｅ関数は、「付随的」であると明言され、これは、当該ｆｉｎｄＦｕｅｌＰｌａｎｅ関数が、当該ｆｉｎｄＦｕｅｌＰｌａｎｅ関数をプリコンパイルしようとするのではなく、正則化ＭＡＴＬＡＢ（登録商標）エンジンに実行時に切り替えられることを意味する。
【００６８】
図１０は、収納容器の接続貯留室の間を、または接続収納室の間を流れる液体流をモデル化し、シミュレートし、そして解析するＳｉｍｕｌｉｎｋ（登録商標）を用いて行なわれる計算を表わすブロック図である。
【００６９】
図１０の“Ｖｏｌ  １”の記号が付されたブロック６２は、“Ｇｏｔｏ”ブロックであり、この“Ｇｏｔｏ”ブロックは、信号を対応する“Ｆｒｏｍ”ブロックに送信する。Ｆｒｏｍブロック及びＧｏｔｏブロックによって、信号を１つのブロックから別のブロックに、これらのブロックを実際に接続することなく渡すことができる。この場合、当該信号は、単にデータ捕捉セクションに送信されてプロットされる。
【００７０】
“Ｃｏｎｓｔａｎｔ”の記号が付されたブロック６４は、Ｃｏｎｓｔａｎｔブロックであり、この場合０．０に設定され、当該Ｃｏｎｓｔａｎｔブロックは、合計加速度ベクトルの“Ｆｗｄ  Ａｃｃ”または順方向加速度成分をタンクモデルに供給している。
【００７１】
“Ｌｅｖｅｌ−２  Ｍ−ｆｉｌｅ  Ｓ−Ｆｕｎｃｔｉｏｎ”の記号が付されたブロック６６がまさに、当該Ｓ−Ｆｕｎｃｔｉｏｎである。このＳ−Ｆｕｎｃｔｉｏｎは、ソリッドモデリングソフトウェアとのインターフェースとなり、そして前に説明したブロックの古いバージョンである。
【００７２】
図１０の“ｈ１”の記号が付されたブロック６８は、“Ｔｏ  Ｗｏｒｋｓｐａｃｅ”ブロックであり；この“Ｔｏ  Ｗｏｒｋｓｐａｃｅ”は、データをＭＡＴＬＡＢ（登録商標）ワークスペースのプログラムメモリに保存して、シミュレーションが終了した後に使用する。
【００７３】
ブロック６６の右側の直ぐ傍の黒色棒７０はＤｅｍｕｘ（逆多重化）ブロックである。Ｄｅｍｕｘブロック７０は、入力信号の成分群を抽出し、そしてこれらの成分を個別信号群として出力する。これらの出力信号は、上から下の順に出力ポートに並んでいる。Ｓ関数から出力される“Ｆｕｅｌ  Ｐｌａｎｅ”は３次元アレイ（燃料油面のｘ、ｙ、ｚ位置特定ポイントを表わす）であり、そして図１０に示す特定のシミュレーションでは、第３要素、すなわち液体のｚ値または高さにのみ着目した。従って、Ｄｅｍｕｘブロックから出て行く最上部の２つの信号は、“Ｔｅｒｍｉｎａｔｏｒ”ブロック群７２で終了するのに対し、３番目の信号は、他の演算に進む。“Ｔｅｒｍｉｎａｔｏｒ”ブロックは、未接続出力ポートを終端させる。
【００７４】
Ｇｏｔｏの記号が付され、かつ内部に“ｈ１”の記号が付されたブロック７４は、図示しないデータ捕捉及びプロットセクションに至るＧｏｔｏブロックである。
【００７５】
“ｏｒｉｆｉｃｅ  ｈｅｉｇｈｔ  ｒｅｆｅｒｅｎｃｅ”の記号が付されたブロック７６は、Ｃｏｎｓｔａｎｔブロック、この場合は、オリフィスのｚ値（高さ）を与えるＣｏｎｓｔａｎｔブロックであり、このｚ値を利用して、液体流が計算される。ブロック７６からの出力を燃料油面ｚ値から、円形の「Ｓｕｍ」ブロック７８を利用して減算して、“ｈｅａｄ  ｈｅｉｇｈｔ（水頭高さ）”とも表記されるオリフィスの上方の液体の高さを表わす出力を生成する。この場合、水頭高さ信号は、高さをインチで表わしている。
【００７６】
次に、水頭高さ信号を、入力に一定値（ｇａｉｎ：ゲイン）を乗算する“Ｇａｉｎ”ブロック群を用いる一連の変換乗算器で処理する。“ｉｎ２ｍ”の記号が付されたブロック８０は、インチからメートルへの単位変換を行ない；“ｒｈｏ”の記号が付されたブロック８２は、液体密度に関する乗算器であり；そして“ｇ”の記号が付されたブロック８４は、重力に起因し、かつｍ／ｓ＾２（ｍ／ｓ２）で表わされる加速度に関する乗算器である。これらの乗算器からの出力は、Ｐａｓｃａｌｓ（パスカル単位）で表わされる“ｈｅａｄ  ｐｒｅｓｓｕｒｅ（水頭圧）”である。
【００７７】
“ＨＥＡＤ  １”の記号が付されたブロック８６は、水頭圧をデータ捕捉／プロットセクションに送信するＧｏｔｏブロックである。
【００７８】
内部に“Ｓ  ＰＳ”の記号が付されたブロック８８は、“Ｓｉｍｕｌｉｎｋ  ｔｏ  Ｐｈｙｓｉｃａｌ  Ｓｉｇｎａｌ（Ｓｉｍｕｌｉｎｋから物理信号への）”変換ブロックである。ブロック８８は、暗黙の単位を持つ正則化Ｓｉｍｕｌｉｎｋ（登録商標）信号を、明確な単位を含むＳｉｍｓｃａｐｅＴＭ  Ｐｈｙｓｉｃａｌ  Ｓｉｇｎａｌに変換する。この場合、Ｐｈｙｓｉｃａｌ  ｓｉｇｎａｌ（物理信号）はパスカル単位で表現される。Ｓｉｍｕｌｉｎｋ（登録商標）ブロック群は、基本数値演算を表わす。ＳｉｍｓｃａｐｅＴＭテクノロジーによって、システムのネットワーク表現の生成が、Ｐｈｙｓｉｃａｌ  Ｎｅｔｗｏｒｋ（物理ネットワーク）アプローチを利用して、設計中の段階で可能になる。このアプローチによれば、システムは、エネルギーをこれらの要素のポートを介して授受することにより互いに相互作用する機能要素として表現することができる。
【００７９】
図１０を参照し続けると、Ｓ−ＰＳブロック８８の圧力信号出力を“油圧供給源”ブロック９０に入力する。油圧供給源ブロックは、システムが消費する流量に関係なく、指定圧力を当該油圧供給源の流出口で保持するために十分強力な油圧エネルギーの理想的な供給源を表わす。ブロック接続部Ｔ及びＳは、油圧流入ポート及び流出ポートにそれぞれ対応し、そして接続部Ｓは、制御信号ポートを表わす。当該油圧供給源９０は、ポートＰとＴとの間の理想的な圧力差を保ち、この圧力差は、入力信号Ｓに直接比例する。ブロック９０は、流体回路網のオリフィスの上方の燃料の算出水頭圧を実現する。
【００８０】
当該油圧供給源９０のポートＴは、当該油圧供給源の「低圧」側として定義される。この低圧側は、“Ｏｕｔｌｅｔ  Ａｒｅａ  ［ｉｎ＾２］”の記号が付されたブロック９２に接続される。このブロック９２はオリフィスブロックであり、このオリフィスブロックは、一定の断面積を持つ油圧オリフィスが圧力及び流量に及ぼす影響をモデル化する。流出口面積ブロック９２は、当該ブロック９２を、このブロック９２の鏡像である別のブロック図に結び付ける“Ｏｕｔｐｏｒｔ”９４に接続され、そして収納室１ではなく、収納室２内の水頭圧を計算する。
【００８１】
“Ｉｄｅａｌ  Ｈｙｄｒａｕｌｉｃ  Ｆｌｏｗ  Ｒａｔｅ  Ｓｅｎｓｏｒ”の記号が付されたブロック９６は、理想的な流量計を模擬している、すなわち油圧配管内のボリューム流量を、この流量に比例する制御信号に変換するデバイスを模擬している。センサは、当該センサが、慣性、摩擦、遅延、圧力損失などの主な原因とはならないので理想的である。ブロック９６は、物理ネットワークを流れる流量を、当該流量がポートＡからポートＢに流れるときに測定する。これらのポートは、一方の側で基準油圧９７に接続され、そして他方の側で水頭圧供給源９０に接続される。このシーケンスは、液体の上方の大気圧（基準油圧）を初期圧力として始まり、次に、水頭圧（オリフィスの上方の液体の重量）が、オリフィス内を流れる前に加わるシーケンスであると考えることができる。水頭圧が大きくなると、より大きな誘導流がオリフィス内を流れる。接続部Ｑは、流量値を出力する物理信号ポートである。
【００８２】
“ｉｎ＾３／ｓ”の記号が付されたブロック９８は、“Ｐｈｙｓｉｃａｌ  Ｓｉｇｎａｌ  ｔｏ  Ｓｉｍｕｌｉｎｋ”コンバータブロックである。この場合、“Ｐｈｙｓｉｃａｌ  Ｓｉｇｎａｌ  ｔｏ  Ｓｉｍｕｌｉｎｋ”コンバータブロックは、Ｓｉｍｕｌｉｎｋ（登録商標）信号（すなわち、暗黙の単位を持つ）を出力しており、このＳｉｍｕｌｉｎｋ（登録商標）信号は、流量を立方インチ／秒で表わす。この流量は、収納室１に流入する流量を積分して、内部の液体の合計ボリュームを追跡し続ける“Ｄｉｓｃｒｅｔｅ−Ｔｉｍｅ  Ｉｎｔｅｇｒａｔｏｒ”ブロック１００に入力される。ブロック１０２は、収納室１内の燃料の初期ボリュームのブロック１００への入力を表わす。
【００８３】
ループ内の最終ブロック１０４は“Ｕｎｉｔ  Ｄｅｌａｙ”であり、この“Ｕｎｉｔ  Ｄｅｌａｙ”の機能は、積分器１００からの出力を、当該出力がタンク計算機Ｓ−ｆｕｎｃｔｉｏｎ６６のボリューム入力に入力される前に１つの時間ステップだけ遅らせることにある。これにより、１つの時間ステップだけ遅らせない場合の代数ループを解消することができ、この場合、ブロックの出力を用いて当該ブロックの入力を同じ時間ステップで定義する。
【００８４】
要約すると、当該ループで、オリフィスの上方の液体の水頭圧を計算する。次に、この水頭圧が当該オリフィス内を流れる流量を決定し、そして当該流量が容器からの液体ボリュームに加算されるか、または当該液体ボリュームから減算され、この計算結果が今度は、容器内の液体の高さに影響し、従って水頭圧に影響する。実際、液体の高さの差が、オリフィスの両側の２つの貯留室の間で生じると必ず、これらの高さが等しくなるまで、流れがオリフィス内に生じる。
【００８５】
これまで開示してきたように、これまで説明してきた計算を拡張して、各収納室が液体燃料で少なくとも部分的に満たされた状態の、連続する少なくとも３つの連通する収納室を有する模擬燃料タンクに適用することができる。図１１は、７４７型機の翼タンク１０６内の燃料１０８を表わす画像を示している。この燃料タンクは、連通する多数の収納室を有し、これらの収納室は、本明細書において開示される方法を用いてシミュレートすることができる。
【００８６】
コンセプトの証明は、Ｊｙｔｈｏｎ（ジャイソン）及びＭＡＴＬＡＢ（登録商標）を用いるソリッドモデリングソフトウェアによって行なわれた。Ｊｙｔｈｏｎは、Ｊａｖａで記述されるＰｙｔｈｏｎ（パイソン）プログラミング言語の１つの形態である。本発明の次の実施形態では、ＭＡＴＬＡＢ（登録商標）を用いてソリッドモデリングソフトウェアを、当該ソフトウェアのＪａｖａ  ＡＰＩを利用して駆動することにより液面を算出した。
【００８７】
ソリッドモデリングソフトウェアは、ソリッドモデルを境界表現として表わし、そして減算、加算、及び交差のような正則化Ｂｏｏｌｅａｎ演算をソリッドモデルに適用する能力、及びソリッドモデルに関する厳密な積分特性を、発散定理を適用することにより算出する能力を提供する。具体的には、収納容器のソリッドモデル表現を用いて、容器特性を容易に求めることができる。
【００８８】
例えば、液体及び収納容器のソリッドモデル表現を用いて、収納容器の内部の液体の露出面積を求めることができ、この露出面積は単に、液体のソリッドモデル表現の上面の面積である。この属性は、蒸発を推定するために重要である。燃料の蒸発は、Ａｎｔｏｉｎｅ（アントワーヌ）方程式及び理想気体の法則を用いて計算される。Ａｎｔｏｉｎｅ方程式は、蒸気圧方程式であり、そして純成分について、蒸気圧と温度との関係を記述する：
【００８９】
【数１】
0005873504.tif 000002
【００９０】
式中、ｐは蒸気圧であり、Ｔは温度であり、そしてＡ，Ｂ，及びＣは、成分固有の定数である。オーガスト方程式は、蒸発熱が温度に依存しないと仮定する。液体に溶解する大気ガスの蒸発（更に専門的に表現すると、“状態変化”）は、オストワルドの溶解係数及び理想気体の法則を用いて推定される。オストワルドの溶解係数及び理想気体の法則の両方の影響を、燃料タンクの可燃性を分析する場合に、すなわち燃料タンク内の蒸気に引火する危険がある場合に考慮する必要がある。可燃性分析は、燃料タンクの可燃性低減システム（ＦＲＳ）の有効性を証明するために必要である。連邦航空局（ＦＡＡ）のＦＡＲ  ２５．９８１規制は、ＦＲＳ（可燃性低減システム）の使用義務を説明している。
【００９１】
液体及び収納容器のソリッドモデル表現を更に用いて、濡れ面積を（液体が触れる面積）を、液体のソリッドモデル表現の全ての面のうちの容器面に触れる面積を算出することにより求めることができる。容器の濡れ面積を主として、熱伝達計算に用いることにより、燃料タンク温度を予測する。
【００９２】
多くの民間航空機は、電子式燃料残量表示システム（ＦＱＩＳ）のバックアップとなる一連の“ディップスティック”インジケータを有する。燃料残量をＦＱＩＳによって求めることができない場合、航空機オペレータは、タンクの種々の部分の燃料高さ情報を、これらの“ｄｉｐ−ｓｔｉｃｋ”インジケータから手動で読み取り、そして次に、当該情報を一連の事前格納テーブル（航空機製造業者が提供する）と一緒に利用して、タンク内の燃料残量を求めることができる。液体及び収納容器のソリッドモデル表現を用いて、ディップスティックレベル（液体に浸かっているスティックの長さ）を、ディップスティックのソリッドモデル表現を、液体のソリッドモデル表現と交差させることにより求めることができる（これを利用して、液体ボリュームを指すディップスティックを校正する）。校正プロセスは、テーブルを微調整し、そして検証して、ボリュームの正確な予測を、“ｄｉｐ−ｓｔｉｃｋ”読み取り値に基づいて確実に行なえるようにする処理手順の１つである。本明細書において開示される本発明を利用したコンピュータモデルを用いてこれらのテーブルを作成することができる。
【００９３】
更に、液体及び収納容器のソリッドモデル表現を用いて、捕集液体の量を求めることができる。航空機燃料タンク及びシステムを設計するに当たり、液体が捕集されてしまう（すなわち、通常運行中に取り出すことができない）箇所を最小限に減らすことが肝要である。エンジンに使用することができない捕集燃料箇所が死荷重となるだけでなく、これらの捕集燃料箇所は、水を収集する潜在的な箇所となり（潜在的な腐食を起こす問題となる）、そして特定の環境では、凍結して氷になる。固体氷は、燃料がエンジンに達するのを阻止する虞のある閉塞危険箇所となってしまう。
【００９４】
図７〜１０を参照して上に開示しているように、液体及び収納容器のソリッドモデル表現を用いて、容器の姿勢が変化するときに１つの貯留室から別の貯留室に移送される液体の量を求めることができる。移送流速を十分速くして、燃料が、タンク分室の一方の側で通常運行中に溜まるのを、特に大量の燃料がタンクの１つの部分に速やかに溜まってしまって、他の部分に自由に流れるようにする必要がある燃料補給時に溜まるのを防止する必要があることが判明している。過剰燃料がタンクバッフルに沿って「不均一な液面」になると、不所望な構造応力が生じてしまう。これとは異なり、これらのバッフルは、燃料の全てが、高加速度の衝突時に主要構造に同時に勢いよく流入するのを防止するために十分な抑制効果を発揮する必要がある。
【００９５】
液体及び収納容器のソリッドモデル表現を用いて、収納容器内の液体の重量分布を求めることができる。航空機では、重心位置の管理は、航空機の性能、効率、及びハンドリング品質の重要な構成要素である。満タンの燃料タンクは、総ビークル重量のうちかなりの割合を占め、そして当該重量の分布の僅かな変化は、上に説明した要素に甚大な影響を与える。燃料の重心位置が全ての運行状態で安全範囲に収まることを確認することが重要であり、そして理想的には、燃料の重心位置が最適化されて、航空機が最大効率で機能することができることを確認することが重要である。
【００９６】
幾何学的に複雑な立体のボリューム、慣性モーメント、及び他の特性を計算するアルゴリズムが公知になっている。例えば、ソリッドオブジェクトのボリューム及び他の積分特性を算出するアルゴリズムは、ロチェスター大学の生産自動化プロジェクトにおけるＬｅｅ及びＲｅｑｕｉｃｈａによるＴｅｃｈｎｉｃａｌ  Ｍｅｍｏ  ３５ａ（１９８１年３月）に；Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，  Ｖｏｌ．  ２５，  Ｎｏ．９，ｐｐ．  ６３５−６４１（１９８２年９月）に掲載された“Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｃｏｍｐｕｔｉｎｇ  ｔｈｅ  Ｖｏｌｕｍｅ  ａｎｄ  Ｏｔｈｅｒ  Ｉｎｔｅｇｒａｌ  Ｐｒｏｐｅｒｔｉｅｓ  ｏｆ  Ｓｏｌｉｄｓ．  Ｉ．  Ｋｎｏｗｎ  Ｍｅｔｈｏｄｓ  ａｎｄ  Ｏｐｅｎ  Ｉｓｓｕｅｓ（立体Ｉ．のボリューム及び他の積分特性を算出するアルゴリズム：公知の方法及び未解決の問題）”と題する論文に；そしてＣｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，  Ｖｏｌ．  ２５，  Ｎｏ．９，ｐｐ．  ６４２−６５０（１９８２年９月）に掲載された“Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｃｏｍｐｕｔｉｎｇ  ｔｈｅ  Ｖｏｌｕｍｅ  ａｎｄ  Ｏｔｈｅｒ  Ｉｎｔｅｇｒａｌ  Ｐｒｏｐｅｒｔｉｅｓ  ｏｆ  Ｓｏｌｉｄｓ．  ＩＩ．  Ａ  Ｆａｍｉｌｙ  ｏｆ  Ａｌｇｏｒｉｔｈｍｓ  Ｂａｓｅｄ  ｏｎ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  Ｃｏｎｖｅｒｓｉｏｎ  ａｎｄ  Ｃｅｌｌｕｌａｒ  Ａｐｐｒｏｘｉｍａｔｉｏｎ（立体ＩＩ．のボリューム及び他の積分特性を算出するアルゴリズム：表現変換及びセル近似を利用する一連のアルゴリズム）”と題する論文に開示されている。曲面を持つソリッドオブジェクトの積分特性の計算は更に難しいが、この計算の解も導き出されている。例えば、Ｇ．  Ｆａｒｉｎ（著者）らによる、かつＥｌｓｅｖｉｅｒ  Ｂ．  Ｖ．によるＨａｎｄｂｏｏｋ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｇｅｏｍｅｔｒｉｃ  Ｄｅｓｉｇｎ（コンピュータ援用幾何学設計ハンドブック），  ｐａｇｅｓ  ６０３−６２２のＣｈａｐｔｅｒ  ２４−Ｇｅｏｍｅｔｒｙ  Ｐｒｏｃｅｓｓｉｎｇ（幾何学的処理），  Ｔｈｏｍａｓ  Ａ．  Ｇｒａｎｄｉｎｅ（２００２）を参照されたい。
【００９７】
本発明は、姿勢が変化する、または動的な力を受ける複雑な形状の収納容器内の液面を正確に計算する必要がある何れの状況にも適用することができる。この状況は、国内及び外国の航空宇宙機製造会社、自動車会社及びトラック会社における状況、船舶及びボート（例えば、オイルタンカー）を含み、そして場合によっては、地下水及び油層のような地層内の流体液面及びボリューム量を関連付ける際に問題になる全ての状況を含む。
【００９８】
省力化は、航空機翼内の流体液面を求める際の精度が高まることにより達成される。計算値と物理校正中に検出される実際値との間に食い違いが生じると必ず、設計の初期段階で発見される場合よりも修正するのに数桁違いの多くのコストを要する。
【００９９】
ソリッドモデル（例えば、ＣＡＴＩＡからインポートされる）を直接使用すると、これらの立体を、現在のツールに入力する高度にフォーマット化され、遥かに縮減されたポイントデータアレイに変化させるために現在要しているモデル当たりの工数を省力化することができる。
【０１００】
アーキテクチャ（Ｊｙｔｈｏｎ／Ｊａｖａ  ＡＰＩ及びソリッドモデリングソフトウェア）が改良されると、解析計算プロセスの統合が著しく進む。このためには現在、エラーが発生し易く、かつ多大な時間を要する極めて大規模な人手作業の介入が、約２４個のアプリケーションに対して必要になる。
【０１０１】
開示の実施形態は、液体容器の動きをシミュレートする必要が生じる場合、すなわち解析ソフトウェア、システムテスト機器、及びフライトシミュレータを含む物理システムを利用することができない場合に明らかな利点をもたらすことができる。例えば、開示のアプリケーションは：（１）解析ツールの精度を向上させ、そして文書化の試行、及び文書化に伴う校正の事後試験（例えば、新規の飛行機プログラムに対する）の必要性を低減し；（２）液面を算出する共通の企業規模のモジュールを供給して事業単位間の成果物の授受を容易にし（例えば、このツールを用いて、更に正確な計算負荷を求めることができる）；（３）翼ボリューム計算を超えて適用することができ；（４）データ転送に要する時間を無くすことができ、そしてデータ転送に起因するエラーを低減することができ；そして（５）仕様の古くなったコードの維持工数を低減することができる。
【０１０２】
開示の実施形態を用いて、燃料計の校正のサイクル時間を短くし、そして使用不能燃料の推定を向上させることもできる。これらの解析の精度に対する信頼度がより高まって、試験に対する依存度が低くなり、開発時間が、認証データに伴なう校正の事後試験が減ることにより短くなり、そして潜在的な再設計のリスクが低下する。航空機設計時の解析結果のターンアラウンドが短くなると、設計問題をより早期に把握することができ、そして代替の設計を更に効率的に検討することができる。
【０１０３】
本発明は以下に記載する態様を含む。
（態様１）
収納容器内の液面の位置を計算する方法であって：
（ａ）前記収納容器のソリッドモデル表現を含む第１データ集合を保存するステップと、
（ｂ）前記収納容器の空間姿勢を表わす第２データ集合を保存するステップと、
（ｃ）前記収納容器の加速度の絶対値及び方向を表わす第３データ集合を保存するステップと、
（ｄ）前記収納容器内の液体ボリュームを表わす液体ボリュームデータを保存するステップと、
（ｅ）前記収納容器内の前記液体の液面を表わす第１画像データ集合を求めるステップであって、前記第１画像データ集合が、少なくとも前記第１〜第３データ集合、及び前記液体ボリュームデータの関数である、前記求めるステップと、
（ｆ）前記空間姿勢を有する前記収納容器を表わす第２画像データ集合と交差する関係にある前記第１画像データ集合を表示するステップと、
を含む、方法。
（態様２）
前記求めるステップは：
（ｉ）前記液面の前記位置に関する現在推定値を選択するステップと、
（ｉｉ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、正則化ソリッドモデリング演算を用いて求めるステップと、
（ｉｉｉ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、前記液体ボリュームデータで表わされる前記液体ボリュームと比較するステップと、
（ｉｖ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに十分に近似していない場合、数値計算法を用いて、前記液面の位置に関する異なる現在推定値を選択するステップと、
（ｖ）ステップ（ｉｉ）〜（ｉｖ）を、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに十分に近似するまで繰り返すステップと、
を含む、態様１に記載の方法。
（態様３）
前記数値計算法では、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームと、前記液体ボリュームデータで表わされる前記液体ボリュームとの差に等しい関数のゼロに対するより良好な連続する近似値を求める、態様２に記載の方法。
（態様４）
更に：
前記収納容器に接続されるポートの面積及び高さを表わす第４データ集合を保存するステップと、
前記ポートを介して前記収納容器に流入する、または前記収納容器から流出する液体流量を計算するステップであって、前記計算した流量が、前記第１〜第４データ集合及び前記液体ボリュームデータの関数である、前記計算するステップと、を含み、
前記第１画像データ集合が更に、前記第４データ集合の関数である、態様１に記載の方法。
（態様５）
更に、次のグループ：露出液体面積；前記収納容器の濡れ面積；及び前記収納容器内の前記液体の重量分布から選択される容器特性を求めるステップを含む、態様１に記載の方法。
（態様６）
更に、ディップスティックのソリッドモデル表現を、前記収納容器内の前記液体のソリッドモデル表現と交差させるステップを含む、態様１に記載の方法。
（態様７）
相互接続部を介して連通する第１及び第２貯留室を備える収納容器内の液体の動きをシミュレートする方法であって：
（ａ）前記第１貯留室のソリッドモデル表現を含む第１データ集合を保存するステップと、
（ｂ）前記第２貯留室のソリッドモデル表現を含む第２データ集合を保存するステップと、
（ｃ）前記収納容器の空間姿勢を表わす第３データ集合を保存するステップと、
（ｄ）前記第１貯留室と前記第２貯留室との間の前記相互接続部の面積及び高さを表わす第４データ集合を保存するステップと、
（ｅ）前記第１貯留室内の初期液体ボリュームを表わす第１液体ボリュームデータを保存するステップと、
（ｆ）前記第２貯留室内の初期液体ボリュームを表わす第２液体ボリュームデータを保存するステップと、
（ｇ）前記第１貯留室内の液体の少なくとも初期液面を表わす第１画像データ集合を求めるステップであって、前記第１画像データ集合が、少なくとも前記第１及び第３データ集合、及び前記第１液体ボリュームデータの関数である、前記求めるステップと、
（ｈ）前記第２貯留室内の液体の少なくとも初期液面を表わす第２画像データ集合を求めるステップであって、前記第２画像データ集合が、少なくとも前記第２及び第３データ集合、及び前記第２液体ボリュームデータの関数である、前記求めるステップと、
（ｉ）ステップ（ｇ）及び（ｈ）の後に、前記第１貯留室及び前記第２貯留室内の液面の差に起因する圧力の変化を計算するステップと、
（ｊ）ステップ（ｉ）で計算される圧力が変化するたびに、前記第１及び第２貯留室のうちの一方の貯留室から他方の貯留室に流れる液体流量を計算するステップであって、前記計算した流量が、少なくとも圧力の該当する変化、及び前記第４データ集合の関数である、前記計算するステップと、
（ｋ）ステップ（ｉ）及び（ｊ）の後に、前記第１貯留室内の後の時点の液面を表わす第３画像データ集合を求めるステップと、
（ｌ）ステップ（ｉ）及び（ｊ）の後に、前記第２貯留室内の後の時点の液面を表わす第４画像データ集合を求めるステップと、
（ｍ）ステップ（ｋ）及び（ｌ）の後に、前記空間姿勢を有する前記収納容器の前記第１及び第２貯留室を表わす第５画像データ集合と交差する関係にある前記第３及び第４画像データ集合を表示するステップと、
を含む、方法。
（態様８）
更に、ステップ（ｇ）及び（ｈ）の後に実施されるステップであって、前記第５画像データ集合と交差する関係にある前記第１及び第２画像データ集合を表示する前記ステップを含む、態様７に記載の方法。
（態様９）
更に、前記収納容器の加速度の絶対値及び方向を表わす第５データ集合を保存するステップを含み、前記第１及び第２画像データ集合が更に、前記第５データ集合の関数である、態様７に記載の方法。
（態様１０）
更に、ステップ（ｉ）を実施している間に実施されるステップであって、前記第１及び第２貯留室内の変化する液面を表わす画像データを表示する前記ステップを含む、態様７に記載の方法。
（態様１１）
ステップ（ｇ）は：
（ｉ）前記第１貯留室内の前記液面の前記位置に関する現在推定値を選択するステップと、
（ｉｉ）前記第１貯留室内の前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、正則化ソリッドモデリング演算を用いて求めるステップと、
（ｉｉｉ）前記第１貯留室内の前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、前記第１液体ボリュームデータで表わされる前記液体ボリュームと比較するステップと、
（ｉｖ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記第１液体ボリュームデータで表わされる前記液体ボリュームに十分に近似していない場合に、数値計算法を用いて、前記液面の位置に関する異なる現在推定値を選択するステップと、
（ｖ）ステップ（ｉｉ）〜（ｉｖ）を、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記第１液体ボリュームデータで表わされる前記液体ボリュームに十分に近似するまで繰り返すステップと、
を含む、態様７に記載の方法。
（態様１２）
前記数値計算法では、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームと、前記液体ボリュームデータで表わされる前記液体ボリュームとの差に等しい関数のゼロに対するより良好な連続する近似値を求める、態様１１に記載の方法。
（態様１３）
更に、次のグループ：前記第１及び第２貯留室内の露出液体面積；前記第１及び第２貯留室の濡れ面積；前記収納容器内の前記液体の重量分布；前記第１及び第２貯留室に捕集される液体の量；及び前記第１及び第２貯留室のうちの一方から他方に、前記収納容器の前記姿勢が変化するときに移送される液体の量から選択される容器特性を求めるステップを含む、態様７に記載の方法。
（態様１４）
収納容器内の液面の位置を計算するシステムであって：
前記収納容器内の前記液体の液面を表わす第１画像データ集合を求め、前記第１画像データ集合が少なくとも、前記収納容器のソリッドモデル表現を含む第１データ集合、前記収納容器の空間姿勢を表わす第２データ集合、前記収納容器の加速度の絶対値及び方向を表わす第３データ集合、及び前記収納容器内の液体ボリュームを表わす液体ボリュームデータの関数となるようにプログラムされるプロセッサと、
前記空間姿勢を有する前記収納容器を表わす第２画像データ集合と交差する関係にある前記第１画像データ集合を表示する表示装置と、
を備える、システム。
（態様１５）
求める前記操作は：
（ｉ）前記液面の前記位置に関する現在推定値を選択するステップと、
（ｉｉ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、正則化ソリッドモデリング演算を用いて求めるステップと、
（ｉｉｉ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームを、前記液体ボリュームデータで表わされる前記液体ボリュームと比較するステップと、
（ｉｖ）前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに十分に近似していない場合に、数値計算法を用いて、前記液面の位置に関する異なる現在推定値を選択するステップと、
（ｖ）ステップ（ｉｉ）〜（ｉｖ）を、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームが、前記液体ボリュームデータで表わされる前記液体ボリュームに十分に近似するまで繰り返すステップと、
を含む、態様１４に記載のシステム。
（態様１６）
前記数値計算法では、前記液面の位置に関する前記現在推定値を下回る前記液体ボリュームと、前記液体ボリュームデータで表わされる前記液体ボリュームとの差に等しい関数のゼロに対するより良好な連続する近似値を求める、態様１５に記載のシステム。
（態様１７）
前記プロセッサは更に、ポートを介して前記収納容器に流入する、または前記収納容器から流出する液体流量を計算するようにプログラムされ、前記流量は、前記第１〜第３データ集合、前記液体ボリュームデータ、及び前記ポートの面積及び高さを表わす第４データ集合の関数であり、前記第１画像データ集合が更に、前記第４データ集合の関数である、態様１４に記載のシステム。
（態様１８）
前記プロセッサは更に、次のグループ：露出液体面積；前記収納容器の濡れ面積；及び前記収納容器内の前記液体の重量分布から選択される容器特性を求めるようにプログラムされる、態様１４に記載のシステム。
（態様１９）
前記プロセッサは更に、ディップスティックのソリッドモデル表現を、前記収納容器内の前記液体のソリッドモデル表現と交差させるようにプログラムされる、態様１４に記載のシステム。
（態様２０）
相互接続部を介して連通する第１及び第２貯留室を備える収納容器内の液体の動きをシミュレートするシステムであって：
次の操作：
（ａ）少なくとも前記第１貯留室内の液体の初期液面を表わす第１画像データ集合を求める操作であって、前記第１画像データ集合が少なくとも、前記第１貯留室のソリッドモデル表現を含む第１データ集合、前記収納容器の空間姿勢を表わす第２データ集合、及び前記第１貯留室内の初期液体ボリュームを表わす第１液体ボリュームデータの関数である、第１画像データ集合を求める前記操作、
（ｂ）少なくとも前記第２貯留室内の液体の初期液面を表わす第２画像データ集合を求める操作であって、前記第２画像データ集合が少なくとも、前記第２貯留室のソリッドモデル表現を含む第３データ集合、前記収納容器の前記空間姿勢を表わす前記第２データ集合、及び前記第２貯留室内の初期液体ボリュームを表わす第２液体ボリュームデータの関数である、第２画像データ集合を求める前記操作、
（ｃ）前記第１及び第２貯留室内の液面の差に起因する圧力の変化を計算する操作、
（ｄ）計算圧力が変化するたびに、前記第１及び第２貯留室のうちの一方の貯留室から他方の貯留室に流れる液体流量を計算する操作であって、前記計算した流量が少なくとも、圧力の該当する変化、及び前記第４データ集合の関数である、液体流量を計算する前記操作、
（ｅ）前記第１貯留室内の後の時点の液面を表わす第３画像データ集合を求める操作、及び
（ｆ）前記第２貯留室内の後の時点の液面を表わす第４画像データ集合を求める操作を実行するようにプログラムされるプロセッサと、
前記空間姿勢を有する前記収納容器の前記第１及び第２貯留室を表わす第５画像データ集合と交差する関係にある前記第３及び第４画像データ集合を表示する表示装置と、
を備える、システム。
（態様２１）
前記第３及び第４画像データ集合は少なくとも、前記収納容器の加速度の絶対値及び方向を表わす第５データ集合の関数である、態様２０に記載のシステム。
本発明について、種々の実施形態を参照しながら説明してきたが、この技術分野の当業者であれば、本発明の範囲から逸脱しない限り、種々の変更を行なうことができ、そして等価物をこれらの実施形態の構成要素の代わりに用いることができることを理解できるであろう。更に、本発明の基本範囲から逸脱しない限り多くの変形を加えて、特定の状況を本発明の教唆に適合させることができる。従って、本発明は、本発明を実施するために想定される最良の形態として開示される特定の実施形態に限定されないものである。
【０１０４】
以下に開示される方法請求項は、列挙されるステップ群が、記載される順番で実施されることを必要としていると捉えられてはならない。特に、このような推定は、アルファベット順に列挙されるステップ群に対して行なわれてはならない。
【図１】
0005873504.tif 000003
【図２】
0005873504.tif 000004
【図３】
0005873504.tif 000005
【図４】
0005873504.tif 000006
【図５】
0005873504.tif 000007
【図６】
0005873504.tif 000008
【図７】
0005873504.tif 000009
【図８】
0005873504.tif 000010
【図９】
0005873504.tif 000011
【図１０】
0005873504.tif 000012
【図１１】
0005873504.tif 000013