SUMO SUMO Wiki

Wiki カテゴリ&ファイル

目次

概要

SUMO24 には、プラントの設計と運用の詳細な分析および最適化に利用できる、魅力的な新しいシミュレーション機能が搭載されています。

以前のバージョンの SUMO を使用していたユーザーは、Simulate(シミュレート)タブに切り替えた際に根本的な変更に気付くでしょう。このタブは有効化されると、(Inputs(入力)タブと同様に)上下 2 つの部分に水平方向に分割されます。デフォルトで選択されるのは上部の Simulate とラベル付けされた部分で、これは以前の SUMO バージョンと同じ機能を持ち、あらかじめ構成したプロジェクトのシミュレーションを実行できます。加えて、複数シナリオの実行(後述)という新機能が一つ追加されています。下部は Advanced(高度な設定)とラベル付けされており、シナリオ分析最適化を実行できます(これらの機能はいずれも、Inputs または Model(モデル)タブで、高度な分析用に少なくとも 1 つのパラメーターを選択しておく必要があります。詳細は後述)。

もう一つの新しい高度な機能は Outputs(出力)タブに関するものです。プロジェクトで 1D 層状沈殿池モデルを使用している場合、SPA チャート機能により、状態点分析を迅速かつ簡単に実行できるようになりました。

シミュレーションは入力データとその動的挙動に依存します。SUMO24 のバージョンからは、日付と時刻に基づく動的入力が可能になりました。下記の日付と時刻に基づく動的入力の章をご覧ください。

複数シナリオの実行

これは単純な Simulate モードの機能ですが、以前の SUMO バージョンのユーザーにとっては新機能です。以前は現在アクティブなシナリオタブしか実行できず、別のシナリオを実行するには、そのタブを有効化してから別のシミュレーションを行う必要がありました。SUMO24 では各シナリオタブにチェックボックスがあり、シミュレーション対象として一つずつ、または任意の組み合わせで選択できます。複数のシナリオがチェックされている場合、それらはすべてシミュレーション制御パネルで設定した条件で順番に実行され、すべての実行結果がプロット/レポートされます。

この機能を実際に見てみましょう。サンプルライブラリ(ウェルカム画面の Biofilm(生物膜)タブ)から「MLE with MBBR」の例を開き、そのまま Simulate タブに移動します。左下のウィンドウペインには、あらかじめ定義された 2 つのシナリオ(SummerWinter)が表示されます。両方にチェックが入っていることを確認してください(図 3.2.1)。

図3.2.1 – あらかじめ定義された 2 つのシナリオが両方ともチェックされた「MLE with MBBR」の例Steady-state(定常状態)シミュレーションを起動すると、2 つの実行が連続して行われることがわかります(順序はシナリオタブの左から右への並び順で決まります)。時系列チャートでは、両シナリオの結果がそれぞれ少し異なる色で表示されます(図 3.2.2)。一方、テーブル、棒グラフ、円グラフでは、該当する出力の名前を右クリックしてメニューから「Select run」を選び、フライアウトリストから希望のシナリオを選択することで、どのシナリオの結果を表示するかを選べます(図 3.2.3)。実際の選択はすべての出力に適用されます。なお、この場合は結果の更新に時間がかかることがあります。

図3.2.2 – チェックされた 2 つのシナリオの Steady-state シミュレーションの時系列チャートの結果 図3.2.3 – チェックされた 2 つのシナリオの Steady-state シミュレーションのテーブルの結果(実際の選択:Summer シナリオ)次の演習として、Steady-state から 1 日間の Dynamic(動的)実行を行います。図 3.2.4 は、両シナリオの結果が同じ時系列チャートにプロットされる様子を示しています。他の出力タイプも、上で説明したのと同様にシナリオを切り替えて動作します。

図3.2.4 – チェックされた 2 つのシナリオの Steady-state からの Dynamic シミュレーションの時系列チャートの結果最後の演習として、現在の状態から 1 日間の Dynamic 実行を起動します。図 3.2.5 は、Effluent N の時系列チャートにプロットされた結果を示しています。グラフから、両シナリオの初期条件が Winter シナリオの定常状態条件になっていることがわかります。これは、この実行の直前に行われた最後のシミュレーションの結果だったためです。Winter シナリオのグラフは初期値を維持しますが、Summer シナリオのグラフは、そのシナリオに設定されたパラメーターに従って初期値から逸脱し始めます。この演習の目的は、単一のシミュレーションで複数のシナリオを実行する際の初期条件の重要性を強調することでした。

図3.2.5 – チェックされた 2 つのシナリオの Dynamic シミュレーションの時系列チャートの結果

シナリオ分析

これは SUMO24 の全く新しい機能で、Simulate タブの Advanced サブタブから利用できます。さまざまなパラメーター設定でシミュレーションをまとめて実行するという点で複数シナリオの実行機能に似ていますが、動作の仕方は異なります。シナリオ分析の目的は、1 つまたは複数のパラメーターを所定の範囲内で変化させたときの影響を調査することであり、2 つ以上のシナリオの固定されたパラメーターの組み合わせを比較する(複数シナリオの実行の場合)のとは異なります。この機能を使えば、数回のクリックだけでモデルの感度分析を実行できます。複数の実行を設定して結果を一つずつ手動でエクスポートする必要はありません。

この機能を実際に見てみましょう。サンプルライブラリ(ウェルカム画面の Nutrient removal(栄養塩除去)タブ)から「MLE」の例を開き、Inputs タブに移動します。レイアウト上で MLR pump の流量分配ユニット(好気反応槽の後に位置します)を選択し、Pumped flow パラメーターの Advanced 列のチェックボックスをクリックします(図 3.3.1)。同様に、流入水の Temperature パラメーター(Influent specifications 入力パラメーターテーブルの最下行にあります)も高度なシミュレーション用に選択します。

図3.3.1 – 高度なシミュレーション用に MLR pump の Pumped flow パラメーターを選択する次に Simulate タブに移動し、その Advanced サブタブをクリックします。シナリオが配置される左下のウィンドウペインの外観が少し変わったことに気付くでしょう。シナリオのチェックボックスが虫眼鏡のアイコンに変わり、シナリオの名前タブのすぐ下に、Analyze(分析、デフォルトの選択)と Optimize(最適化)の 2 つのオプションを持つドロップダウンメニューが表示されます。これを Analyze のままにして、シナリオ分析に利用できる 2 つのパラメーターを確認します。それぞれの現在値の左側に、デフォルトではチェックの入っていないチェックボックスが表示されています。

単一パラメーターのシナリオ分析

上記のようにモデルを準備したうえで、Pumped flow (MLR pump) のチェックボックスをオンにすると、パラメーター値のスライダーがユーザー入力用のテキストボックスに変わり、デフォルトでは「3」という値が表示されます(図 3.3.2)。

図3.3.2 – シナリオ分析の設定のために MLR pump の Pumped flow パラメーターを選択するこの入力ボックスの役割は、選択したパラメーターについてシナリオ分析を実行する際の等間隔のステップ数を定義することです。実行は下限値(左側の入力ボックス)から始まり、上限値(右側の入力ボックス)で終わります。ステップ数には下限値と上限値も含まれ、これらの値ももちろん変更できます。ここでは、シナリオ分析が MLR pump の流量を 0 から 72000 m3/d まで 5 ステップで調査するよう設定を更新しましょう(図 3.3.3)。なお、もう一方のパラメーター(Temperature)については、現時点ではシナリオ分析用に選択されていない(チェックボックスがオフの)ため、その実際の値(20 °C)のみが考慮されます。このパラメーターは、この演習の後半で複数パラメーターのシナリオ分析を示す際に利用します。

図3.3.3 – MLR pump の流量パラメーターのシナリオ分析条件を設定する次のステップでは、Steady-state シミュレーションを実行し、Effluent N の時系列チャートに切り替えます。シミュレーション中、指定した設定で 5 つのシナリオが順番に実行され、すべての実行結果がプロット/レポートされます。定常状態の実行では、時系列チャートが XY チャートに切り替わり、調査対象のパラメーターが X 軸に、さまざまなシナリオ実行のシミュレーション結果が Y 軸に表示されます(図 3.3.4)。この例では、MLR pump の流量が 0 から 72000 m3/d まで 5 ステップで増加するにつれて、処理水の NOx と TN がどのように減少するかがわかります(正確な値を読み取るには、グラフの上にマウスカーソルを移動してください)。

図3.3.4 – Steady-state シナリオ分析における MLR pump 流量が処理水 N 値に与える影響のプロット(時系列チャートが XY チャートに切り替わる)テーブル、棒グラフ、円グラフでは、該当する出力の名前を右クリックしてメニューから「Select run」を選び、フライアウトリストから希望のシナリオ実行を選択することで、どの実行の結果を表示するかを選べます(図 3.3.5)。実際の選択はすべての出力に適用されます。なお、この場合は結果の更新に時間がかかることがあります。

図3.3.5 – Steady-state シナリオ分析における MLR pump 流量がバイオマスに与える影響の追跡(選択した実行を示す棒グラフ)次の演習として、Steady-state から 1 日間の Dynamic 実行を行います。図 3.3.6 は、5 つの実行の結果が Effluent N の時系列チャートにプロットされる様子を示しています。動的モードがシミュレーションに含まれる場合、時系列チャートは時系列チャートのままです(Total nitrogen はチャート凡例でチェックを外して非表示にしていることに注意してください)。グラフの上にマウスを合わせると、それがどの実行に属するか、およびその正確な値が表示されます(グラフが互いに近い場合――この例のアンモニアのように――は、それらの情報が青いポップアップウィンドウにまとめて表示されます)。他の出力タイプも、上で説明したのと同様に実行を切り替えて動作します。

図3.3.6 – Steady-state からの Dynamic シナリオ分析における MLR pump 流量が処理水の NOx とアンモニア値に与える影響のプロット次に、現在の状態から 1 日間の Dynamic 実行を起動します。図 3.3.7 は、Effluent N の時系列チャートにプロットされた結果を示しています(Total nitrogen は見やすさのため再び非表示にしています)。グラフから、すべての実行の初期条件が、MLR ポンプ流量を 72000 m3/d に設定した実行の定常状態条件になっていることがわかります。これは、この実行の直前に行われた最後のシミュレーションの結果だったためです。MLR ポンプ流量 72000 m3/d のシナリオの NOx グラフは初期値を維持しますが、他の実行のグラフはパラメーターのシナリオ分析の設定に従って初期値から逸脱し始めます(アンモニアについても 5 本の異なるグラフがありますが、このシナリオ分析での変動はこの変数には目に見える影響を与えていないことに注意してください)。この演習の目的は、Dynamic モードでシナリオ分析を行う際の初期条件の重要性を強調することでした。

図3.3.7 – Dynamic シナリオ分析における MLR pump 流量が処理水の NOx とアンモニア値に与える影響のプロット(前の状態から開始)

複数パラメーターのシナリオ分析

シナリオ分析機能は 1 つのパラメーターだけに限定されません。前の演習を続けて、Temperature (Influent) パラメーターのチェックボックスも有効にし、下限値を 10、ステップ数を 2、上限値を 30 に設定します(図 3.3.8)。こうすることで、新しいシナリオ分析設定の実行数は 2 倍になります。5 段階の MLR pump 流量設定が、2 段階の温度設定に対してシミュレーションされるためです。Steady-state シミュレーションを実行すると、Effluent N の時系列チャートが図 3.3.8 のように更新されます(シナリオ分析用に複数のパラメーターが選択されている場合、時系列チャートは時系列チャートのままで、通常のシミュレーションと同様にすべての実行の定常状態値が丸印で示されます。正確な値は、結果の上にマウスを合わせて読み取れます)。他の出力タイプでの結果表示は、単一パラメーターのシナリオ分析と同様に動作します。

図3.3.8 – 2 パラメーターの Steady-state シナリオ分析における処理水の NOx とアンモニア値のプロット次に、ストップタイムを 30 日間に増やし、Dynamic シミュレーションを実行します。図 3.3.9 は、Effluent N の時系列チャート上に得られたグラフを示しています。プロットされた各変数について、5 つのポンプ設定の変動に対して 2 組(各温度に 1 組ずつ)が示されています。ここでも、10 回の各実行を開始する際の初期条件が、MLR ポンプ流量 72000 m3/d かつ流入水温度 30 °C の定常状態だったことを確認できます。これは直前の最後のシミュレーションの結果だったためです。また、調査した温度範囲は、MLR pump 流量範囲とは異なり、処理水アンモニアの結果に目に見える影響を与えたことも確認できます。

図3.3.9 – 2 パラメーターの Dynamic シナリオ分析における処理水の NOx とアンモニア値のプロット(前の状態から開始)シナリオ分析で考慮するパラメーターの数や、各パラメーターのステップ数に制限はありません。ただし、範囲を広げるにつれて分析に必要な実行数が急激に増加すること、およびチャート表示の制約(次元数、グラフ上で似た色の線の本数)とが相まって、シミュレーション時間や出力の可読性に関して困難が生じる場合があります。とはいえ、シミュレーション後にレポートをエクスポートすれば、すべての実行のデータ出力が表形式で保存され、必要に応じて他のツールでさらに処理できることも忘れないでください。

最適化

これは SUMO24 の全く新しい機能で、Simulate タブの Advanced サブタブから利用できます。この機能を実際に見てみましょう。サンプルライブラリ(ウェルカム画面の Tutorials(チュートリアル)タブ)から「Tutorial Plant 2 with Energy」の例を開き、以下の手順に従って最適化の例を設定します。

Configure(構成)タブで、Primary(一次処理)のアンダーフロー仕様を Sludge flow に変更します(図 3.4.1)。次に、Inputs タブで、以下の各プロセスユニットのパラメーターについて、Advanced 列のチェックボックスをオンにします。

図3.4.1 – Primary のアンダーフロー仕様を sludge flow に切り替える次に Simulate タブに移動し、その Advanced サブタブをクリックします。シナリオが配置される左下のウィンドウペインの外観が少し変わったことに気付くでしょう。シナリオのチェックボックスが虫眼鏡のアイコンに変わり、シナリオの名前タブのすぐ下に、Analyze(デフォルトの選択)と Optimize の 2 つのオプションを持つドロップダウンメニューが表示されます。先ほど高度なシミュレーション用に利用可能にしたパラメーターが、それぞれチェックボックス付きで(現在値の左側に)一覧表示されます。デフォルトではチェックは入っていません。4 つすべてにチェックを入れ、シナリオの名前を「Default scenario」から「Optimization」に変更し、ドロップダウンメニューを Optimize に切り替えます。これにより、出力(右下のウィンドウペイン)の最前面に最適化設定テーブルが自動的に追加されます。以上の設定を図 3.4.2 で確認してください。

図3.4.2 – 最適化に向けたプロジェクトの設定次に、既存の出力テーブルまたはチャートから、最適化の対象とする変数を追加できます。テーブルのセルまたはグラフを右クリックし、フライアウトメニューで「Variable to optimize」項目を選択します。この最適化演習の対象変数として、Frequently used variables テーブルの Effluent 列から Total ammonia (NHx)Nitrate and nitrite (NOx) を、Electric energy balance テーブルの Energy center 列から Self sufficiency を選びます(図 3.4.3)。

図3.4.3 – 最適化の対象変数とする処理水アンモニアをテーブルから選択する最適化設定テーブルに戻り、次のステップとして、最適化する各変数に目標値を設定します。テーブルの Target 列の該当セルをダブルクリックして値を入力するか、あるいはそのセルを右クリックして maximize または minimize のいずれかのオプションを選びます(例えば、プラントのエネルギー自給率やコストにそれぞれ用います)。この例では、アンモニアの目標値を 0.5 g N/m3(図 3.4.4)、硝酸+亜硝酸の目標値を 7 g N/m3、自給率については Maximize に設定します(図 3.4.5)。

図3.4.4 – 最適化テーブルで Total ammonia の目標値を設定する 図3.4.5 – 最適化テーブルでプラントの自給率について「Maximize」を選択する次に、最適化設定テーブルの Weight 列の値を確認しましょう。デフォルトではすべての行が同じ重みになっていますが、最適化を調整する際には、誤差計算のスケールを比較可能なレベルにそろえるため、変数の桁数の違いを相殺するように重みを調整すべきです(例えば、最適化する変数として TSS とアンモニアを扱う場合、前者は通常 103 のスケール、後者は 1〜10-1 のスケールにあるため、両者を誤差計算上で同等に重視させたい場合は後者の重みを増やすべきです)。この例では、アンモニアと硝酸+亜硝酸の変数の間に 1 桁の違いがあるため、前者の重みを 10 に増やすことにしましょう。該当セルをダブルクリックしてこの値を入力します(図 3.4.6)。

図3.4.6 – 最適化テーブルで Total ammonia の重みを増やす最適化器で調整したいパラメーターがすべてシナリオで選択されていること(および除外したいものがすべてチェックオフされていること。この例では該当するものはありません)を確認し、各パラメーターについて自動的に決定された下限値と上限値(各パラメーターのスライダーの左側と右側に表示されます)を確認します。最適化器は、これらによって定義される「ハイパースペース」内の最適点を探索します。最適化器が見つけた解がいずれかの境界に非常に近い場合は、その境界を広げて最適化を再実行するとよいでしょう。

最後に、シミュレーション制御パネルでソルバー設定を Accurate に切り替え(今回開いた例はすでに定常状態にあり、いくつかのパラメーターを微調整するだけなので、このソルバー設定がこのケースには適しています)、Calculate Steady-state ボタンを押します。最適化器が動作を開始し、一連の定常状態シミュレーションを実行して(反復回数は画面下部のステータスバーで確認できます)、毎回シナリオのパラメーターを更新しながら、最良と判断したもので停止します(図 3.4.7)。

図3.4.7 – 最適化結果いずれかの時系列チャート上に既にプロットされている時系列(例えば実測値)に対して、Dynamic 実行を最適化することも可能です。これは、ウェルカム画面のサンプルの Advanced タブにある Autotuning controller の例でデモされています。

非常に高度なユーザーは、最適化器が使用する誤差計算の種類を変更することもできます。利用可能な手法のリストは、最適化設定テーブルの Function 列のセルを右クリックすると開くフライアウトメニューで確認できます(図 3.4.8)。

図3.4.8 – 代替の誤差計算手法

プラント条件の保存と読み込み

Save/Load plant conditions(プラント条件の保存/読み込み)ボタンの目的は、次のシミュレーションの初期条件をユーザーが柔軟に設定できるようにすることです。Reset(リセット)ボタンは、各プロセスユニットの Initial concentrations(初期濃度)の下に保存されている値を次のシミュレーションの初期条件として設定します。異なる値のセットを使用したい場合は、Save plant conditions を使って値を保存しておき、後で新しい初期濃度として読み込むことができます。この機能はプラント全体を対象とし、システムの状態(すべての反応槽のあらゆる初期濃度が保存されます)に対して実行されるため、特定のプロセスユニットごとに分けることはできません。

この機能が役立つ理由はいくつかあります。

手順は簡単です。

1. シミュレーションを希望の状態まで実行します。

2. シミュレーション制御パネル(Simulate タブの左上)で Save plant conditions(プラント条件を保存)をクリックします。

図3.5.1 - プラント条件の保存3. ファイルダイアログで、そのシミュレーション結果の実行に固有の適切なファイル名を付けます。

図3.5.2 - 保存ダイアログ。デフォルトのフォルダー(プロジェクトディレクトリ)に固有のファイル名を使用するパスは図 3.5.2 で強調表示されているとおりに保持してください。そうすることで、保存された条件は Sumo プロジェクトの保存内容の一部となり、後で利用することもできます。これは Notes セクションの Excel ツールや添付ファイルと同様です。このパスは、View | Directories | Project directory メニュー項目からアクセスできる場所と同じです。

4. 手順 1 から 3 を繰り返します。保存する状態の数に制限はありません。

5. 保存した条件を読み込むには、右端のボタン Load plant conditions(プラント条件を読み込む)をクリックします。

図3.5.3 - プラント条件の読み込み6. プロジェクトフォルダーでファイルを開くダイアログが表示され、保存した条件がそこにあれば直接開けます。該当するファイルを選択して Open をクリックします。

3.5.4 - 読み込みファイルダイアログ。該当ファイルを選択して開く7. Sumo は、プラントのすべての初期条件を上書きしてよいか確認します。すべてのプロセスユニットの状態が、保存されたシミュレーションの結果になることを忘れないでください。

3.5.5 - 上書きの確認8. 読み込んだ条件から新しいシミュレーションを開始します。

注意: レイアウトを変更した場合はどうなりますか?

Sumo は元からある部分の条件のみを読み込むため、条件は部分的に読み込まれます。保存された状態は、その保存条件を生成した時点でプロジェクトに含まれていたユニットについてのみ保存されています。不足しているユニットがある場合は、それらについてメッセージが表示されます。

沈殿池の状態点分析

状態点分析(SPA)図は、廃水処理システムにおける沈殿池の沈降特性と性能を評価するために用いられるグラフィカルなツールです。この図は、沈殿池における流量と固形物フラックスの関係を表す作用線(operating line)を、特定の条件下で汚泥が沈降する能力を表す固形物フラックス曲線と対比してプロットします。これら 2 本の線の交点が状態点を決定し、沈殿池の運転条件を示します。この分析は、システムが効果的な固液分離を確保できる条件で運転されているかどうかを見極めるのに役立ち、過負荷(処理水質の悪化につながりうる)などの問題を回避します。さらに、状態点分析は流量、汚泥濃度、または固形物負荷の変化の影響を評価でき、沈殿池の性能の最適化やトラブルシューティングに役立ちます。

SPA チャートを解釈するには、2 つの固形物処理基準(SHC)に対して評価する必要があります。

SPA 図における上記の基準への適合状況を図 3.6.1 に示します。

図3.6.1 – SPA チャートの評価

日付と時刻に基づく動的入力

これは、動的入力テーブルの最初の列に異なる設定を必要とする機能です。全体的な流れは同様です。

  1. インポートデータ構造を設定する
  2. データをコピーする
  3. SUMO に貼り付ける
  4. 仕様を設定する
  5. シミュレーションを実行する

重要なのは 1 番目と 5 番目です。

データ構造の設定

データ構造を設定するには、データセットの日付・時刻の書式を把握しておく必要があります。SUMO はさまざまな日付・時刻書式に対応しています。指定可能な組み合わせについては、以下のサイトを参照してください。

https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

注意:DateTime 列の 2 行目には「date」を使用できます。その場合は、取り込んだデータを確認し、正しい書式が認識されているかを確かめてください。

この例は、都市集水域および河川集水域の拡張を含む MLE をベースとしており、2024 年の気象(meteo)データをモデルに追加する方法を順を追って説明します。

データは外れ値を除去してクリーニングし、適切な表ヘッダーを付けた Meteo data.xlsx ファイルを準備しました。

3.7.1 - 動的入力用に準備されたデータ構造最初の列が次のように変わる点に注意してください。

4 つのパラメータすべてについて、データを SUMO にコピー&ペーストします。 3.7.2 - SUMO に動的入力としてインポートされたデータ

日付に基づく動的入力でシミュレーションを実行する

3.8.1 - シミュレーション制御パネルの新しい入力
日付と時刻に基づく動的入力を 1 組シミュレーションに追加すると、Simulate タブのシミュレーションパネルが変化し、日付ベースの動的実行を選択できるようになります。

Steady-state 実行は一定の入力に基づくため変わりません。日付と時刻に基づく動的入力では、シミュレーションの開始時刻を選択する必要があります。この例では、インポートした 1 年分のデータが 2024 年をカバーしているため、その期間をカバーするよう設定が強調表示されています。さらに、End date(終了日)の定義の代わりに Stop time(ストップタイム)を選択して、ユーザーの希望に応じてシミュレーション期間を定義することもできます。

図 3.8.2 は、気温・水温(右 Y 軸)と降雨についての 1 年間シミュレーションの入力を示しています。

3.8.2 - 2024 年のシミュレーション日付ベースの動的入力によって、図 3.8.3 に示すように、動的データの定義された期間についてシミュレーションを実行できるようになります。

3.8.3 - 2024 年 6 月のシミュレーション注意: 日付と時刻に基づく動的入力は、すべてのプロセスユニットに必須ではありませんが、強く推奨されます。単純な動的入力は常に 0 日目から始まるため、日付ベースでない動的テーブルがレイアウト内で使用されると、日付と時刻のずれが生じる可能性があります。

次の章

第4章コントローラ

第5章エネルギーとコストの計算

第6章カーボンフットプリントの評価

第7章設計モデル

第8章