SUMO SUMO Wiki

Wiki カテゴリ&ファイル

目次

はじめに

プラント全体(plantwide)のコードは、1つのプロセスユニット(PU)に限定されず、プラントモデル全体の変数を使用します。プラント全体のコード用のテンプレートExcelファイルは、GUI(Toolsタブ)から直接開くことも、プロジェクトディレクトリ(View|Directories|Project directory|plantwide.xlsx)から開くこともできます。このチュートリアルでは、Tutorial plant(チュートリアルプラント)を例に、観測汚泥収率(observed sludge yield)をSumoSlangを用いて計算します。

PWE Figure 1 - Open the Plantwide excel file PWE Figure 2 - Plantwide excel template

重要な注意事項

先へ進む前に、例のファイル内の両方のSRT(汚泥滞留時間)計算から制御フラグを削除してください。方法はユーザーマニュアルのFigure 3.13 – Toggling between pump selection for target SRT control を参照してください。

計算の目的

観測される汚泥生成量はSRTに依存し(SRTが高いほど汚泥生成量は低くなります)、SRTは廃棄流量(wastage flow)に直接依存します。総SRTはTutorial plantについてSumo内ですでに定義されています(SRT計算を追加する方法はユーザーマニュアルを参照してください)。

観測収率(observed yield)は、プラント内で除去された総COD(またはBOD)あたりに生成された固形物量として定義されます。

PWE Equation 1 - Observed yield calculationここで:

記号 単位 名称
Yobs gTSS/gCOD removed 観測される汚泥生成の収率
F.XTSS gTSS/d 全浮遊物質(TSS)の質量流量
F.TCOD gCOD/d 総CODの質量流量
F.SCOD gCOD/d 溶存CODの質量流量
この例では、正味収率(net yield)を計算するとともに、廃棄流量と汚泥滞留時間との関係を観察します。

制御のための直接代数式の使用

PWE Equation 1 は、所定のYobs,targetを維持するために必要な廃棄質量流量について解くことができます。モデルは廃棄固形物濃度を計算するため、必要な流量を式で表すことができます。

Yobsの定義と、所望のYobs,targetを維持するための廃棄制御は、関連するプロセスユニット内の必要な変数を用いて、Sumoで利用可能なプラント全体のコードを構築することで実現します。

コード内で使用するパラメータの値は、Parameterシートで定義します(PWE Figure 3)。これらの値は、後でGUIのInput setupタブで変更できます。

PWE Figure 3 - Parameter table in plantwide file

コードで使用される変数名

コードを書く際には、プロセスユニットのIncode名(インコード名)と変数のSymbol(記号)を使用する必要があります。プラント全体のコードで変数名を書く一般的な方法は次のとおりです。

プロセスユニットまたはパイプ内の変数 プロセスユニット内のパラメータ
プロセスユニット Process unit name..variable 式内(In expression) Process unit name..parameter
パイプ Pipename..variable 制御/設定用(To Control/Set)
モデルパラメータ
グローバル Model name..parameter
ローカル Sumo__Plant__Process unit name__Model name__parameter
GUIで使用される工学的な名前(engineering name)はコード内の名前と異なる場合があるため、正しい形式を使用するよう、次の操作を行ってください。

パイプ名は計算に使用できるため、パイプ名も表示する必要があります(View|Show pipenames)。

PWE Figure 4a - Changing variable names
PWE Figure 4b - Changing unit name types
これらの有効な形式の名前を確認・取得する方法は複数あります。

Output setup(出力設定)

Output Setupタブの左下ペインで、検索方法を「Raw」に変更し、関連するプロセスユニットまでクリックして進みます(PWE Figure 5)。ここでは、リストにSumo名と正しい形式の記号が表示されます。上記のとおり、名前を名前空間記号(namespace symbol)と連結します。

プロセスユニット内のパラメータ
式内(In expression) Sideflowdivider..Qpumped_target
制御/設定用(To Control/Set)
PWE Figure 5 - Find Side flow combiner parameter in Output setup

Advanced core window(高度なコアウィンドウ)

Advanced core windowを開きます:View|Advanced|Core window。左パネルにすべての変数と定数が一覧表示されます(PWE Figure 6)。関連するプロセスユニットを開き、変数の記号の上にマウスを合わせると、名前空間付きの記号が表示されます。この形式を使用し、Sumo__Plant名前空間は除外します。二重アンダースコアは名前空間の区切り文字です。

PWE Figure 6 - Find target pumped flow in side flow divider in the Advanced Core window

Process Code(プロセスコード)

特定の変数名は、コード内で直接見つけることもできます。プロセスユニットのパラメータはView|Directories|Install directory|Process Code|Process Unitsで、モデルのパラメータと変数はView|Directories|Model directoryで確認できます。この方法ではMS Excelシートが開き、記号だけでなく変数の説明的な名前も見つけられるため、混乱を避けられます。

計算中、このバージョンではポート名は使用しません。そのため、特定の入力/出力ポートから変数が必要な場合は、接続されているパイプを探してください。大規模な構成で接続されているパイプを見つけるには、ドローイングボード上のPU検索ツールを利用できます(PWE Figure 7)。

PWE Figure 7 - Finding Process Units

Project directory(プロジェクトディレクトリ)

完全なシミュレーションコードは、モデルがシミュレーション用に準備された後であればいつでも利用できます。これはInstallフォルダの.tmpディレクトリ内のvaraibles.varファイルとして見つかります:View|Directories|Project directory|variables.var。この.varファイル(メモ帳で開けます)はテキストファイルで、すべての変数を含んでいます。

特殊なケースと名前空間

配列変数

コード内で配列変数(PFR反応槽のセル、フレキシブルSBRサイクルのフェーズなどの変数)を指定するには、次のようにパラメータ/変数名の後に[i]を追加する必要があります。

PFR3..Qair,NTP[1] PFR3反応槽の1番目のセルへの空気流量
PFR3..Qair,NTP[3] PFR3反応槽の3番目のセルへの空気流量
PFR3..Qair,NTP[n] PFR3反応槽の最後のセルへの空気流量。ここでnは、レイアウト上のPFR3ユニットのNumber of cells(セル数)
配列変数のインデックスは1から始まり、ユニット仕様の入力パラメータ(Number of PFR segments などの入力パラメータ)で定義された配列サイズまで続きます。

配列変数のさらなる詳細と仕様については、Book of SumoSlang(Sumoのホーム画面、左上パネル)を参照してください。

Sumo__Plant

Sumo__Plant名前空間は、上記で強調した特殊なケースにおいてのみ、プラント全体のコードで使用する必要があります。

__param__名前空間の使用

追加のparam名前空間は、プロジェクトでの制御ロジック構築時の誤解を避けるために導入されました。パラメータが式の左辺(Symbol列)にある場合には、計算がその値を設定/制御するように、この名前空間を使用する必要があります。

Codeシート上での計算の構築

この例のプラント全体コードの構築は、次の3つのステップから成ります(Figure 6)。

  1. PWE Equation 1 から廃棄TSSの質量流量(式中のF.XTSS,wastage)を計算する。
    廃棄TSS質量流量は、目標収率を用いて式から表されます。Influent..F.TCOD質量流量は、Pipe2がInfluentプロセスユニットの出力ポートに接続されているため、Pipe2..F.TCODと記述することもできます。
  2. 質量流量を廃棄TSS濃度で割って目標ポンプ流量を計算する。
    廃棄流量は通常、waste flow divider(廃棄流分配器)の入力パラメータですが、目標収率を満たすためには、廃棄TSSに基づく目標流量として計算できます。完全な名前空間付きバージョンを使用することを忘れないでください。ご覧のとおり、Qpumped,target記号(Process Code Excelファイル内と同様)には「,」を含めることができ、自動的に「_」に変換されます。
  3. 正味収率を計算する。
    このステップでは、実際の正味収率を計算します。これは、代数的直接制御モードでは目標収率に等しくなります。行7と行8を削除した場合、モデルはGUI入力の廃棄流量をそのまま使用し、単にYobsを計算します。

注意:Codeシート上で式内に使用されるすべての変数は、その「**in code」単位での値を持ちます。これは、SUMOインターフェースが「SI」または「US」で値を表示している場合、「in code」単位系の値と異なる可能性があることを意味します。変数の「in code」単位を常に確認し、必要に応じて単位変換を使用してください。**

PWE Figure 8 - Plantwide codeファイルを保存する際は、自動生成されたProjectフォルダ(そこから開いたフォルダ)に配置する必要があります。Excelファイルを保存して閉じたら、作業を続行してください。この時点以降にモデルのコンパイルが開始されますが、コンパイル完了後にプラント全体のファイルを変更した場合は、その都度モデルの再構築が必要になります。

Input setupでパラメータを設定する

プロジェクトの新しいパラメータにアクセスするには、Input setupでPlantwide excel/Factoryアイコンを選択する必要があります。左下のパネルには、プラント全体のExcelに追加されたパラメータが一覧表示されます。

PWE Figure 9 - Plantwide parameters at input setup

Output setupに変数を追加する

プロジェクトの新しい変数にアクセスするには、Output setupでPlantwide excel/Factoryアイコンを選択する必要があります。左下のパネルには、プラント全体のExcelに追加された変数がSumo|Plant|Other variables|Yield calculationsの下に一覧表示されます。このリスト名はCodeシート上のブロックヘッダーになっているので注意してください(PWE Figure 8のセルC5を参照)。

PWE Figure 10 - Plantwide variables at output setup