フリーソフトと市販シミュレーター

データドリブンな技術検討の流行や、熟練エンジニアの減少に伴い、近年プロセスシミュレーターの利用頻度が低下しつつあるようで、個人的に非常に残念に感じておりますが、まだまだプロセスシミュレーターの活用場面は多いと思っています。こちらのページでは様々なプロセスシミュレーターの概要と、個人的に面白いと思った活用案をご紹介しています。こちらのページで、少しでもプロセスシミュレーターに興味を持っていただければ幸いです。他にもこんな使い方はできるだろうか等ございましたら、是非情報交換させていただければと思います。

フリーソフト

フリーソフトとしてCOCOを紹介していきます。また、若干取り扱いに難はありますが、非定常計算が可能なOpenModelicaも非常に面白いソフトですので、まとめていきたいと思います。

COCO (CAPE-OPEN to CAPE-OPEN)

OpenModelica

OpenFOAM

市販シミュレーター

主にAVEVA社の製品の活用方法を紹介していきます。ただし、ソフトの使い方については、ソフトウェアベンダーが提供している有料のトレーニング等がございますので、そちらをご活用ください。(HP上でソフト内のパラメーターや内部式の細かいところを載せるわけにはいきませんので、ご了承のほど宜しくお願いします。)また購入方法等についても、当HPで取り扱っているわけではありませんので、ソフトウェアベンダーに直接お問い合わせください。

定常状態プロセスシミュレーターPRO/II

多相流体ネットワークシミュレーターPIPEPHASE

非定常シミュレーターDYNSIM

次世代型統合プラットフォームAVEVA Process Simulation(旧SimCentral)

COCO(CAPE-OPEN to CAPE-OPEN)/ChemSep,COFE

豊富な例題

COCOの魅力の一つは例題が豊富な点です。

こちらのリンクから様々なサンプルモデルをダウンロードすることができますし、ChemSepにも多数の蒸留塔モデルが元々入っています。

伊東先生の著書も非常に参考になります。

蒸留塔のオプション機能、グラフ表示機能

ChemSepにはデフォルトでグラフ作成機能、マッケーブシール作図、Ratingとコスト推算の機能がついています。

計算終了時に、タブの切り替えだけでこうした出力結果を確認できるのはフリーソフトとは思えない素晴らしさだと思います。

特にグラフ作成機能は素晴らしく、各相の組成プロファイルや温度、圧力、流量プロファイルはもちろん、輸送物性についてもクリック操作だけでププロファイルの出力が可能です。

pipdp

pipdp

pipdp

さらにプラグインを追加することで、ターナリ―プロットの作成も可能です。(ResidueMapの作成も可能)

ternary

CAPE-OPEN

CAPE-OEPNを使って他のソフトとの接続が可能です。

こちらの記事に少しまとめましたが、COCOのThermoデータをPythonで呼び出すことも可能です。

OpenModelica

OpenModelicaの魅力の一つは後述する市販シミュレーター:SimCentralと同様、自由にモデルをカスタマイズできる点です。

使い方についてはこちらの著書が大変参考になります。和書も出ています。

また、個人的に好きな言語なので、もう数点素晴らしい点を記載しますが、マルチドメインモデリングが可能となっており、電気、機械、制御、熱、流体力学といった様々な領域のモデリングが可能となっています。

また、OpenModelicaはFMI(Functional Mockup Interface)にも対応していますし、「Jupyter Notebookのように使えるOpenModelica Notebook」も使うことができます。

使い勝手は市販シミュレーターに劣る点があるものの、Matlab/Simulinkや後述のSimCentralが好きな私にとっては非常に親しみやすく、無料とは思えないほど、様々な検討を行うことができます。

GUIと結果出力

一例として、Exampleに入っている非圧縮性流体の偏流計算モデルの画面を以下ご紹介します。

Incomp

左側がフローシート、右側が計算終了後のグラフ出力になります。

ダイナミック計算中のイベントはStepやRamp、Pulse等様々な形で与えることができます。(Simulinkに近い操作感です)

上記の例は、StepでValve1~3の開度をステップ変化させ流量や圧力変化を見ています。

面白いのがGUI上から各ユニットをブロックとして接続して操作することができると同時に、スクリプト側から変更することも可能である点です。

GUI上で操作する方が楽なのですが、中身を確認したい際や、ちょっと変更したい時に有難い機能です

Script

また加速計算も10倍速まで対応しています。(ver1.14.1)

プロット作成の細かい設定はSetupから行うことが可能です。

Plot

OpenModelica Notebook

以下のような形でJupyter Notebookのように使うことができます。

Notebook

Pythonとの連成

Bernt Lieさんがこちらに、Pythonとの連成について記載されています。

Python

シミュレーターで大量のケーススタディを行い、その結果をPythonでハンドリングするといったアプローチは近年よく取り上げられますが、OpenModelicaはこうした検討が非常に行いやすい仕様です。

以下はあまり実用的ではなく、おまけ程度の記載ですがOpenModelicaをPythonから操作する場合の入門編として、以前書いたこちらの記事をご紹介します。

OpenFOAM

OpenFOAMはフリーで使うことのできる流動解析ソフトです。Windowsの場合、事前にLinuxをインストールする必要があります。こちらのリンクから手順通りに進めていけば、チュートリアルの実行まではスムーズに行うことができます。プレ処理にはFreeCAD、ポスト処理にはParaViewを使います。

ちなみにFreeCADはPythonコードを実行することも可能になっています。以下のビデオのようにAVEVA Process Simulationの反応器のGeometryデータを読み取って、それを3D化して表示するということを自動で行うことが可能です。

定常状態プロセスシミュレーターPRO/II

PRO/IIはAVEVA社が販売している定常シミュレーターです。

※一般的な内容については、ソフトウェアベンダーにお問い合わせください。以下は、私が個人的に面白いと思う機能についてのみ紹介しています。なお、常に最新の情報を掲載しているわけではありませんので、バージョンの違いによって以下の内容が陳腐化してしまうこともあるかもしれません。その場合はご容赦ください。

Microsoft Component Object Model (COM)からの操作

プロセスシミュレーターを用いる理由は様々あるかと思いますが、一つは設計時のケーススタディがあるかと思います。

PRO/IIにはもちろんケーススタディ機能が搭載されていますが、ケース数が増えてくると、GUIからの操作は億劫になってきます。

そうした際には、COMから操作することで、GUIを介さずに外部から操作条件を流し込むことが可能です。詳細な設定方法についてはユーザーマニュアル(COM Server Refrence Guid)に記載されていますのでご確認ください。

COM接続は、C++、C#、VBA、VB.NET、Python等で行うことができます。

特にPythonとの連成は便利で、複数の入力条件をcsvファイルで用意しておき、それをpandasでまとめて受け取り、for文の中で順次データを渡していきながら結果を受け取るといった使い方が考えられます。

一例としてこちらに物性データをまとめて取得する方法をまとめました。

Pythonによるケーススタディ例

もう一例、簡単な例をご紹介します。以下の動画は、PRO/IIで作成した水、メタノール分離カラムのフィード組成を[0.1,0.9]から[0.9,0.1]まで振っていき、各条件におけるコンデンサーリボイラーのDutyを求めるコードになります。Pythonと繋ぐと便利な点は、結果をデータフレームに直接流し込めるので、その後のcsv出力も簡単に行えますし、またグラフ描画も行いやすい点です。

コスト計算等を外部で行う場合も便利だと思います。ストリーム条件だけではなく、カラムの圧力や全段数、フィード段等の情報も変更可能です。以下の動画では計算時間部分を短縮していますが、実際は1、2分計算がかかっています。大量のケースを短時間で回したい場合は、VB.NETもしくはC#等でdllを作成することで計算時間を非常に短くすることができます。

modeFRONTIERとの連成

また、COM接続により外部からシミュレーターを走らせる場合の活用例として、AVEVA社の広浜さんが以前発表されたこちらの発表が大変参考になります。

手入力によるトライ&エラーによる最適設計条件の探索ではなく、modeFRONTIERと連成することにより、経済性、環境負荷に対する多目的最適解の探索を行われています。

またmodeFRONTIERは目的変数が特定の領域に入る設計変数の組み合わせを図示したり、設計変数と目的変数の相関を図示することも簡単にできるようになっており、シミュレーション結果からの意思決定を手助けしてくれるという点でも相性の良い連成例だと思います。(また、最適化アルゴリズムが豊富で、直近ではまずあたりをつける上で設計変数の準備、アルゴリズム選択を簡略ができるpilOptというアルゴリズムも搭載されており、使いやすいソフトとなっています)

Optimizer, Calculatorの活用

Optimizer、Calculatorを活用することで簡単なデータリコンを行うことも可能です。

以下はCalculatorのパラメーターに、実機の流量情報をPythonで流し込み、PRO/IIの流量値との誤差を集計→Optimizerで最小化させています。

データリコンについての詳細はこちらをご参照ください。

Run Batch機能

PRO/IIには上記のCOM経由の他にDOSコマンドからPRO/IIを走らせる機能もあります。(個人的には上述のCOM経由の方が計算が早く好みです。)

RunBatchの指定の仕方は以下のようにRunP2 ファイル名、あるいはRunP2 ファイル名 出力場所 workingディレクトリの指定等が可能になっています。

RunBatch

多相流体ネットワークシミュレーターPIPEPHASE

PIPEPHASEはAVEVA社が販売している多相流体の配管ネットワーク設計に用いられるシミュレーターです。

配管のネットワーク計算機能は徐々にSimCentralに移行しつつありますが、まだSimCentralではカバーされていない機能もあります。

※一般的な内容については、ソフトウェアベンダーにお問い合わせください。以下は、私が個人的に面白いと思う機能についてのみ紹介しています。なお、常に最新の情報を掲載しているわけではありませんので、バージョンの違いによって以下の内容が陳腐化してしまうこともあるかもしれません。その場合はご容赦ください。

Flow Pattern Mapの表示

PIPEPHASEでは、以下のようにエクセル上にFLow Pattern Mapを表示する機能があります。(テキスト出力でも表示可能ですが、エクセルに表示した方が見やすいです)

FM

豊富な圧力損失計算式

内部流体が2相流となった場合、圧力損失計算式の精度は各段に落ちます。多くのシミュレータではBeggs & Brillの式が使われますが、精度を求める場合は傾斜に応じて、また内部流体の性状に応じて適した式を選択する必要があります。

PIPEPHASEでは複数の圧力損失計算式が標準搭載されています。

非定常シミュレーターDYNSIM

DYNSIMはAVEVA社が販売している非定常シミュレーターになります。プラントのスタートアップやシャットダウン、異常時の特別運転の模擬が可能な運転訓練シミュレーターとしても有名です。最近ではデジタルツインの観点からも注目されているようです。

※一般的な内容については、ソフトウェアベンダーにお問い合わせください。以下は、私が個人的に面白いと思う機能についてのみ紹介しています。なお、常に最新の情報を掲載しているわけではありませんので、バージョンの違いによって以下の内容が陳腐化してしまうこともあるかもしれません。その場合はご容赦ください。

DYNSIMの優れた点

非定常シミュレーターの中でも特にDNSIMが優れていると思う点は、ゼロフローや逆流に対するロバスト性、ドライスタートアップの設定の容易さです。

特にスタートアップからシャットダウンといった非定常シミュレーションを行う場合は、様々な運転領域を経由するため、ロバスト性が非常に重要となりますが、DYNSIMは窒素置換状態からの蒸留塔の立ち上げや急なロード変更でも安定的に解くことができます。

また論理演算ユニットやLatch、Timerといったシーケンスのモデリングに欠かせないユニットが豊富である点も、実機の動挙動を再現する上で役立ちます。

Excelとの連携

DYNSIMはExcelとの連携が可能です。この恩恵は非常に大きく、例えば経過時的な実機の入力データをExcelに入力しておき、DYNSIMに同じデータを経時的に与えるといったことが可能です。

非定常シミュレーションを行う際に、境界条件を決める必要がありますが、経時的に一定と考えて良い場合と、常に変動しており境界条件を決めることが難しい場合があります。

経時的な変動がsin波等、なんらかの時間の関数で表現できる場合はDYNSIMの標準機能のみで表現できますが、実機の波形をそのまま境界条件として与えたいといった場合はこの機能が非常に助かります。

またExcelのマクロも使用できるため、Excel側で作成したオリジナルモデルとDYNSIMを繋げるといった使い方も考えられます。

Excelとの連携の例として、トレイの性能曲線と現状の運転点をExcel上で表示し、フラッディング、ウィーピングラインに当たった場合にFlooding, Weepingといったポップアップを表示させています。

DYNSIMにはFloodingやWeepingの推算式も搭載されていますが、やはりベンダーの性能曲線で比較した方が確実ですので、精度を求めたい場合はこうした手法も考えられます。

もう一例として、例えば組成変動を時間ごとにExcelから与えて、結果をまたExcelに返して保存するという例をご紹介します。

上記はマクロとExcelのLookup関数を組み合わせて表現しています。10分おきにDYNSIMからのデータを保存していくようなマクロを登録しています。Excelのマクロを活用するだけで、経時的にエクセルのデータをアップデートできるので、計算結果をまとめ直す必要がありません。

また、他にも活量例として、DYNSIMの標準ユニットでは表現の難しい複雑な反応器モデルや吸着モデル、非平衡モデル、制御ユニット等をExcelで表現してDYNSIMと接続するといった使い方も可能です。ただ、Excelは手軽に作れる反面、インターフェイスとして繋ぐとかなり計算速度が遅くなってしまうので、シミュレーション時間が重要である場合は、Simulator Bridgeや後述のUAMを使うことをお勧めします。

OPC serverを介した連携

DYNSIMは運転訓練シミュレーター(OTS)用途の機能が充実しており、その中にOPC serverとの連携機能があります。

非定常シミュレーターと外部ソフトをリンクする場合、問題になるのは時間の同期の取り方ですが、OPC Server接続であれば、両者の時間軸がズレることは無いので安心です。

OPC serverとの接続はいくつか方法がありますが、例えばPythonやMatlabのOPC clientツールを使うことで接続が可能です。

Matlabは当HPでもご紹介している通り、制御モデルの検証に有用なソフトですので、Matlabで作成した制御モデルの検証をDYNSIMで行うといった使い方が考えられます。

例えば、以下はMathworks社のOPC Toolboxを使って、PIDのManual⇔Autoを切り替えています。

上記の例だけではMatlabとの連携の恩恵があまり感じられないかもしれませんので、もう一例としてSimulinkとの連携(上記の同様にOPC Server経由で可能です)の例をご紹介します。以下の例ではPID部分をSimulinkで表現しています。

私は試したことがないのですが、無料ソフトのScilab等でもOPC接続のモジュールが開発されているようなので、こうしたソフトでの連携も可能かもしれません。

Miscellneousユニット、Streamsetユニットの活用

こちらのページに膜分離モデルの簡易表現についてまとめています。

また、例えば脈動表現のように、周期的な流量変動を表現したいという場合に、Streamsetの境界条件を流量とし、サイン波で表現するといった使い方も可能です。

例えば、重量流量を周期的に変動したいという場合は、WBの欄にW*(1+a*sin(b*2*3.14*t))と記載すれば、中央値W、振動幅a、変動周期bのサイン波で重量流量を変化させることができます。

また、Streamsetユニットでは特定の成分について一部分カットすることもできますので、簡易的な吸着表現等が可能です。

DYNSIMモデルの設定変更、確認

DYNSIMのデータタイプには大きくStaticとDynamicがあります。

例えば配管径や長さといった計算中に変更しないパラメーターはStatic、境界条件以外の温度や圧力、流量といった変数がDynamicとなっています

※ただし、StaticとDynamicのタイプ変更はEdit画面からも可能ですので、Staticで設定されているパラメーターをDynamicに変更することも可能です。

上述のStaticなパラメーターはデータベースに保存されており、ver5.3.2まではSQL、ver6.0以降はJSON形式で保存されています。

DYNSIMのファイル(s4mあるいはjs4m)は圧縮ファイル形式となっており、モデルを開いた際、C:\SimSci\DSSxxx\Simulationsフォルダ下に(xxxはDYNSIMのバージョン名。例えばバージョン6.0であれば60)中身が展開されます。

ここで、直に上述のデータベースに接続すれば、直接データの確認、編集を行うことが可能です。

例えば配管の設定条件を一覧で確認し、変更したいといった場合に非常に便利です。

なお、上記はDYNSIMに標準搭載されているBulk Configuratorでも可能ですが、Excelのバージョン制約等もあるのと起動が遅いので、個人的には直接データベースにアクセスする方法が楽だと感じています。

例えば、以下はPythonのJsonモジュールを使って、Applibフォルダ下にあるG2_Deethanizerモデルのフィード条件を書き換えています。他にもトレンドやデータヒストリアン、クロスリファレンス等の情報をJSONからまとめて一括変更することができます。

カスタムモデルの作成

DYNSIMではC++でオリジナルユニットを作成することが可能です。(UAM: User Added Modelと呼ばれています)

ver5.3.2以下ではvisual studio 2008でdllを作成する必要がありましたが、ver6.0以降では2020年4月現在で最新版となっているvs2019でも作成することが可能です。

特殊な制御ユニットモデルを作成する際等に重宝する機能です。

以下のフォルダにサンプルが入っており、簡単な演算ユニットであれば比較的容易に作成することが可能です。

C:\SimSci\DSSxxx\ExampleUAM(xxxはDYNSIMのバージョン名。例えばバージョン6.0であれば60)

豊富な論理ユニット、PIDアルゴリズム

制御のページでもいくつかDYNSIMを使った場合のシーケンスの作成例を記載していますが、非定常計算において重要な論理ユニットやPIDアルゴリズムが実装されているため、実機に近いモデリングが可能な点が素晴らしいです。

また、IntouchでDCSパネルを模擬し、DYNSIMと接続することも可能となっています。

以下の例はIntouchを使うまでも無いですが、IntouchからDYNSIMのFCをマニュアルモードで操作、あるいは逆にDYNSIMのGUIで操作した開度がIntouch側に正しく表示されることを確認しています。

以下の例では絵心のかけらもない操作パネルになっていますが、少し真面目に書けば、実機に近い操作パネルを作ることもできますし、データヒストリアンを用意することもできます。

また、Intouchまでは使わなくとも、DYNSIMの描画機能やロジック機能を使うことで、以下のような簡単なロジック図を作成することも可能です。

以下、大分昔に作成したサンプルですが、簡単な例を動画でご紹介します。DYNSIMでは動画のように、ボタンを作成し、押されたボタンに応じてフローシート上の値を変化させることができます。以下の動画では各ボタンで入力を変更し、どのラインが今アクティブなのかが視覚的に確認できます。

スタートアップ、シャットダウンシーケンスを走らせたり、あるいはインターロックのロジックを組んだりする際にロジックは必須の機能となります。DYNSIMの場合はフローシート上でこうしたロジックを視覚化できるのが良い点です。

エンジン分割

DYNSIMはOTS(運転訓練シミュレーター)用途で開発されたこともあり、大型のフローシート計算用に様々な工夫がなされています。

その中の一つが計算エンジンの分割です。

大型のフローシートを複数の計算エンジンに分割することで、フローシート数十枚に及ぶような大型のモデルでも計算速度をある程度維持して計算させることができます。

(マルチコアの恩恵を受けるには、計算エンジンの分割時にできるだけ各フローシートの計算負荷が均一となるように調整することが望ましいです)

次世代型統合プラットフォームAVEVA Process Simulation

SimCentralはAVEVA社が次世代型シミュレーターとして販売しているソフトウェアで、1つのプラットフォーム上で様々な検討が行えるように工夫されています。

※一般的な内容については、ソフトウェアベンダーにお問い合わせください。以下は、私が個人的に面白いと思う機能についてのみ紹介しています。なお、常に最新の情報を掲載しているわけではありませんので、バージョンの違いによって以下の内容が陳腐化してしまうこともあるかもしれません。その場合はご容赦ください。

AVEVA Process Simulation(旧SimCentral)の概要については、こちらのユーチューブビデオが面白いです。

定常計算からサイジング、非定常計算までを一つのプラットフォーム上で検討可能

AVEVA Process Simulation(旧SimCentral)ではボタン一つで定常計算からサイジング、非定常計算までを行うことができるようになっています。

以下の例は非常にシンプルな例で、ストリームにバルブを挿入し、非定常計算に移行後、バルブ開度を変更した際の流量変化を確認しています。

ビデオを見ていただくと、Process⇒Fluid Flowに移行する際に、バルブのDPのチェックボックスからチェックが外れ、CVのチェックボックスがチェックされていることが確認できます。

これは、AVEVA Process Simulation(旧SimCentral)がProcessモードでスペックした圧力損失:DPから推算したCV値を、Fluid Flowモードでスペックして使用していることを示しています。

モード移行が1clickで可能となっているのはこのスペックの付け替えにあります。

非定常シミュレーションの一つのハードルはこうしたサイジングの手間にありますが、サイジングを定常計算時に自動で行っておくことにより、非定常シミュレーションにスムーズに移行できる点が非常に便利です。特に、各機器サイズがキチンと決まっていない粗検討段階でラフな非定常計算を行う際には助かる機能です。

また、ユニット間の接続の際、都度ストリームユニットを選択する必要がなく、ユニットの挿入がドラッグアンドドロップでできるという点もフローシート作成の手間が省略でき良い点です。

カスタマイズ性、オープン性:各単位操作ユニットの計算式の確認・編集

AVEVA Process Simulation(旧SimCentral)では各単位操作ユニットの中身が確認・編集できるようになっています。

このカスタマイズ性こそ、私が個人的にAVEVA Process Simulation(旧SimCentral)に惚れ込んだ一番の要因です。

例えば、以下はpipeの圧力損失計算モデルの式の一部ですが、層流域、遷移域、乱流域でどのような式が使われているのかが一目で分かります。

pipdp

また式の中身を編集することができるため、例えばスチーム系では異なる圧力損失計算式を用いたいといった場合も簡単に変えることができます。

面白いのはユニットの見た目も変更することができる点です。

AVEVA Process Simulation(旧SimCentral)のアイコンはxamlファイルとなっており、ユーザーがxamlファイルを用意すれば、プロセス値に応じてアイコンの見た目を変えるといったことが可能となっています。

例えば、以下の例では配管内のFlow Regimeの情報を元に配管のアイコンを変えています。

twophase

xamlファイルはイベントを発生させることが可能ですので、上図のように簡単な動画を作成してフローシート上に表示させることも可能です。

また圧力損失のページで紹介しましたが、GUI上で、特定のXY関係を作成することができる機能も今までに無い面白い機能です。

こちらのユーチューブビデオでは、複雑な反応モデルを如何に簡単にモデリングすることができるかが説明されています。

また、こちらで紹介されているPSAモデルなどは、非定常シミュレーターでもなかなか標準ユニットとして使い勝手の良いものが少ないため、面白い取り組みだと思います。

特殊な非定常計算

上述の計算式のカスタマイズとも少し重なりますが、AVEVA Process Simulation(旧SimCentral)では通常のプロセスシミュレーターでは取り扱いの難しい非定常計算もモデリングが可能です。

ホームページ上で踏み込んだ内容は記載できませんので、詳細はAVEVA Process Simulation(旧SimCentral)のExample Fileからご確認いただければと思いますが、例えば水撃計算やチューブラプチャーの破損時の動的挙動のように、運動量や配管の伸縮を考慮するような非定常計算も可能となっています。

こちらのライブラリやシミュレーションファイルを例題としてExamplesフォルダ内にデフォルトで入っており、自由にカスタマイズすることも可能です。

Object Oriented

AVEVA Process Simulation(旧SimCentral)ではObject Orientedの考え方でモデルを作成することが可能となっています。

「ライブラリ」でモデルの定義を行い、「シミュレーションファイル」上にそのライブラリ内のユニットを置くことでモデリングが可能となります。オブジェクト指向でのプログラミングに慣れている方は、考え方としてはライブラリ=クラス、シミュレーションファイル上のユニット=インスタンスと見ていただくと良いかと思います。

メインモデル中に複数のサブモデルを組み合わせることが可能であるため、例えば、以下はプレートフィン熱交ユニットの中に入っているサブモデルですが、HotPath、ColdPath、WallEというモデルが入っており、お恐らくHot側とCold側のモデルがメタルを介して熱交換をしているのだろうということが予測できます。

また、面白いのはサブモデルにdimensionを設定できる点で、dimensionを設定することで長手方向のプロファイルを表現することが可能となっています。

pfhe

こうしたアプローチは押出流れモデルの表現にも活用できますし、例えば複数のフラッシュモデルを高さ方向に積み上げる蒸留塔モデルの作成にも活用されています。

データベースとの連携

AVEVA Process Simulation(旧SimCentral)は、OSI PIとの連携が可能です。

OSIPI

リボンバーのExternalから、接続タグの編集を行うことができ、OSI PIとのデータの授受を行うことができます。

残念ながらダイナミックでの連携ができないのが難点ですが、今後の開発に期待したいところです。

ただ、定常ベースでもOSI PIとの連携は非常に強力です。OSI PIのデータはエクセルで簡単に一括取得することもできるので、エクセルを媒体としてAVEVA Process Simulation(旧SimCentral)との連携を考えるのも面白いと思います。(PythonにもOSI PIのデータとの連携が可能なライブラリがあるので、他にも様々な形態が考えられます)

運転コストの試算機能

AVEVA Process Simulation(旧SimCentral)は、ver5.0以降、運転コストの試算機能が追加されています。

フローシートレベルでの積算機能が追加されたことで、各温度レベルのスチーム、冷却水、電気等の使用量をフローシート全体で積算し、コスト合計を求めることができます。

またコストモデルの編集が可能となっているので、単位通貨の変更や年度毎の用役単価を簡単に反映させることができます。原単位解析には非常に便利な機能です。

起業単価と原単位単価は異なっているケースもありますし、為替や原油単価も一定の値ではないため、ユーザー入力が可能である点がメリットです。

以下、一例としてPythonスクリプトでカラムの全段数を変更していき、還流比と機器コストの関係をプロットする例をご紹介します。

以下のサブモデル挿入機能でも記載していますが、コスト試算機能と組み合わせることで、最適な段数検討を自動化させることができます。(フィード段は中間で固定しています。また、コスト試算は以下ご参照ください)

サブモデルの挿入機能

バージョン5.0からはユーザーの任意のサブモデルを、既存モデルに自由に挿入することができるようになりました。

例えば、機器コスト算出モデルを作成すれば、フローシート全体の運転コスト、機器コストを合算することで、TACを考慮した最適化検討を行うことが可能です。

以下の例ではM&S indexを使った蒸留塔のコスト算出モデルをサブモデル:Equipmentで作成し、蒸留塔モデルに適用しています。

エレベーションの自動算出機能

定常計算から非定常計算の移行において、新たに考慮が必要となるのがヘッドです。

AVEVA Process Simulation(旧SimCentral)ではバージョン4.3から各機器のエレベーション差を自動で計算する機能が追加されました。

これにより、ポンプのNPSH計算やサーモサイフォンリボイラーの循環流量計算等が容易になっています。

Optimizer機能

AVEVA Process Simulation(旧SimCentral)にはOptimizer機能が実装されています。Optimizer機能を活用することで簡単なData Reconciliationを行うことが可能です。私が昔プラント内のマテバラを取る際にはExcelのソルバーを使ってData Reconciliationを行っていましたが、シミュレーターを使えばマテバラを取るための各制約式を考えなくても良いので、楽に設定することができます。

Data Reconciliationの詳細についてはこちらにまとめていく予定ですが、簡単な例で動作イメージを以下に紹介します。

一瞬で終わってしまうので、確認し辛いかもしれませんが、上例では入出全てのストリームに流量計があるという前提の元、実流量(シミュレーター流量)と流量計の実測値の差分が最も小さくなるような流量配分を求めています。重みづけ、各計器の信頼性は各々独立して設定することが可能です。

上記の例ですと、非圧縮性流体で、成分組成も変わらないようであれば、エクセルでも十分な話ですが一例としてご紹介します。

カーボンニュートラルに向けた再生可能エネルギーライブラリ

AVEVA Process Simulation(旧SimCentral)ではカーボンニュートラルに向けた再生可能エネルギーライブラリが搭載されています。

風力発電、ソーラーパネルや水電解モデルとプロセスシミュレーションを統合的に解析できるソフトは現段階では限られていますし、再生可能エネルギーとの連携においては過渡応答が重要となることから、非定常シミュレーションへの移行が容易であるという強みが活きてきます。

温室効果ガス(Greenhouse Gas)排出量の算出ユニット

経済産業省の「国際的な気候変動イニシアティブへの対応に関するガイダンス」によれば、温室効果ガス排出量の算定方法として、Greenhouse Gas Protocolの各種基準類が国際的なデファクトスタンダードになりつつあるようです。一方で、Greenhouse Gasの算出方法は、分かりづらく、EPA(Environmental Protection Agency:米国環境保護庁)が公開しているExcelシートも使い勝手が良いとは言いづらい状態です。AVEVA Process Simulation(旧SimCentral)では、ver5.3から温室効果ガス排出量の自動算出ユニットが追加され、運転コストと合わせた総合的な最適化検討が行えるようになっています。

オリジナルユニットの作成

SimCentralでは簡単にオリジナルユニットを作成することができますが、複雑なモデリングになってくると単純な式表現だけでは難しいケースもあります。

AVEVA Process Simulation(旧SimCentral)では、C#でオリジナルユニットを作成することができます。C#は、C++よりは親しみやすい言語なのでDYNSIMのUAMよりは簡単に作成することが可能です。

また、以下に示すようにVisual Studioのデバッグモードで走らせることで、内部の変数や式を確認しながらモデル作成を行うことができる点が非常に便利です。

ExtenralDLL

Pythonとの接続

Pythonのページにも記載しましたが、専用SDKを用いることで、Pythonからの値の読み書きを容易に行うことができます。活用方法として例えば、以下のようにPythonから熱交換器のネットワークを変更し、変更前後のコスト比較を行うといった操作も自動化することが可能です。

DPPとの連携

DechemaのDPPとAVEVA Process Simulationの連携が可能です。強力な回帰機能を有するDPPとの連携は、物性パラメーターの決定に役立ちます。DPPのチュートリアルに、AVEVA Process Simulationとの連携が追加されていました。

当サイトに不具合、ご意見等ございましたらCEsolutionにお知らせください。

Page Top