本ブログでは、Modelon Impactにシームレスに統合されたスプラインベースのTable Lookup(SBTL)メディアクリエーターを取り上げます。以下では、一般的なワークフローと、このツールへのアクセスおよび使用方法について、シミュレーションが4倍速くなるという速度の利点を証明する例を交えて、順を追って説明します。

スプラインベースのTable  Lookupとは?

SBTLは、精度を損なうことなくシミュレーションを高速化するために使用されるモデリング手法です。SBTLは、Modelonの空調ライブラリ(ACL)またはベーパーサイクルライブラリ(VCL)に統合され、既存の作動流体の新しい計算効率の高い実装を作成します。SBTL は、同じ物理的精度を維持しながら、同等のヘルムホ ルツ法による流体計算と比較して、実行時間を大幅に改善します。

現在、ACL および VCL で提供されている SBTL 実装流体の数は拡大しています。すでにライブラリにある流体以外にも、多くのお客様からご要望をいただいています。

スプラインベースのTable Lookupメディアクリエーターツールとは?

私たちのライブラリのユーザーが独自のスプラインベースのメディアを作成できるように、SBTLメディアクリエーターツールがPython 3.7で開発され、Modelon Impactとともにリリースされました(この作成ツールはACLとVCLをサポートするすべてのプラットフォームで利用可能ですが、このブログではModelon Impactとの統合に焦点を当てています)。このツールにより、ユーザーはModelicaでSBTL二相流体モデルをほとんど入力することなく、自動的に作成することができます。生成された流体モデルはModelon Impactにロードすることができ、さらにシステムシミュレーションに使用することができます。SBTL Media Creatorは、Modelicaで二相流体モデルを作成するために必要な全ての熱力学データを生成するために、REFPROP 10.0またはCoolPropのいずれかを必要とします。

SBTL メディアクリエータは、Modelon Base Library(MBL)と一緒にお客様に提供されます。Modelon Impactのインストールディレクトリでは、SBTLメディアクリエータはmodelica-distディレクトリ内のModelon 3.5フォルダにあります。SBTLメディアクリエーターに含まれるファイルを図1に示します

図1 – Modelon Impactのインストールで利用可能なSBTLメディア作成ファイル

.eggファイルには、二相SBTL流体モデルの生成に必要なすべてのコンパイル済みPythonコードが含まれています。JupyterノートブックSBTLMediaCreator.ipynbは、特定の二相流体のデータとModelicaファイルを生成するために必要なすべてのステップをガイドするユーザーフレンドリーなインターフェースとして提供されます。SBTLMediaModelicaPackage.zipは、コード自動作成ステップで必要となるModelicaクラステンプレートを含む圧縮ファイルです。

スプラインベースのTable Lookupメディアクリエーターの仕組み

SBTL Media Creator の簡略化したワークフローを図 2 に示します。最初のステップでは、ユーザーが指定した流体について、熱力学データ、すなわち状態方程式と輸送特性の解が生成されます。すべてのデータはバックエンドの一部としてCoolpropまたはREFPROP 10を使用して生成されます。すべての熱力学的特性が抽出されると、SBTL媒体メデイアを完全に実装するために必要な追加データファイルとスプライン係数が作成されます。

図2 – SBTLメデイアクリエーターのワークフロー。

必要なデータファイルが正常に作成されると、次のステップで、SBTLメディアをシステムシミュレーションで利用するために必要なすべてのModelicaコードが自動的に生成されます。最後のステップでは、作成されたSBTLメディアを、関連するすべてのメディア関数を呼び出す小さなモデルのシミュレーションによって検証します。シミュレーション出力は、Coolprop/REFPROPからの値と比較されます。ユーザーは、自動生成された性能プロットの偏差を調べ、(ツールへのユーザーの入力に依存する)精度が十分かどうかを判断することができます。この検証ステップにより、生成されたSBTL媒体に潜在的な数値収束の問題があるかどうかも明らかになります。

Modelon ImpactでスプラインベースのTable Lookupを使用する

ステップ1) Jupyterノートブックは、ユーザーとSBTLメディアクリエーターとの間のインターフェースとして機能します。Jupyterノートブックを開くと、ユーザーは、図3に示すように、コードセルと、コードが何をするのかについての詳細なドキュメントが混在しているのを確認できます。ノートブックのコードセルはトップダウンで実行されなければなりません。

SBTL Media Creatorが正しく動作するために必要なインポート。

ステップ2) 次に、図4に示すように、SBTL Media Creatorに必要なすべての入力を入力するセルに到達します。

図4 – 冷媒R134aのSBTL二相流体モデルを作成します。上記のフィールドは、SBTL媒体を生成するためにユーザーが提供しなければならないすべての設定です。
ステップ 3) 作成された R134a SBTL 媒体の密度およびエントロピーの検証プロットが図 5 のように表示されます。赤線はR134aの二相境界です。見ての通り、精度は非常に高いです
図5 – R134a SBTL媒体の性能プロット。
ステップ4) 以下のように、Modelicaパッケージを圧縮ファイルとしてインポートすることで、作成したSBTL媒体をModelon Impactにロードすることができます。

以下のSBTLMediaModelicaPackage.zipには、SBTLメディアクリエーターツールによって生成されたModelicaコードが含まれています。Modelon Impactに読み込むには、このフォルダを自分で圧縮する必要があります。

正常にロードされると、ワークスペースには SBTLMediaModelicaPackageが含まれるようになります。

ステップ 5) 次に、Modelon Impact ライブラリからサンプル VaporCycle.Experiments.AirConditioningSBTL をワークスペースに複製し、AirConditioningExample という名前を付けます。

ステップ 6) AirConditioningExample の作動流体を、作成した R134a SBTL 媒体とし、下図のパラメータリストのハイライトされた領域のように編集することができます。

ステップ7) 下図のボタンを押して、空調システムのダイナミックシミュレーションを実行します(実行タイプは’Dynamic’です)。

ステップ 8) システムシミュレーションが完了すると、Modelon Impactで結果を直接分析することができます。

Modelon ImpactでSBTL Media Creatorを使用した結果

上記のサンプルモデルは、作動流体としてヘルムホルツ方程式に基づくR134a媒体の実装を使用した等価モデルと比較して、シミュレーションが4倍速くなりました(4分ではなく1分)。この 2 つのケースの計算結果を図 6 に示します。