EnergyPlusのGetting Startを試してみる　その5（Exercise 2A）

# はじめに
前回の[EnergyPlusのGetting Startを試してみる　その4（Exercise 1D）](https://qiita.com/bebebefu/items/a9e3d3a856f49bcf8ff2)の続きで次はEnergyPlusのGetting Started[[1]](#参考サイト)の6.2.1項にあるExercise 2Aの件をやっていきたいと思います。今回も他のシミュレーションとの結果の比較ではなく結果の出力を主目的としてやっていきます。

# 実施環境
- CPU: CORE i7 7th Gen
- メモリ: 32GB
- OS:windows 11 22H2

# Getting Startedの6.2.1項　Exercise 2A. Add Unitary System with DX Cooling and Gas Heating (Furnace) Serving a Single Zoneについて
手順がGetting Startedの6.2.1項に一つ一つ書かれているので、基本的にはそれに沿ってやっていきますが、かなり省略されているところがあるので、自分なりに手順を加えつつ記載していきます。

1. EP-Launchを開く
   windows11の「スタート」＞「すべてのアプリ」のところからEP-Launchを選択して起動します。
    <img width="400" alt="EP-launch.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/da6f38d8-5003-b689-3655-6bafecf140e7.png">

1. 入力ファイルExercise2.idfの読み込み
    EP-Launchの赤枠で囲んだBrowseを押下し、ExampleFiles⇒BasicsFilesの順にたどり、Exercise2.idfを見つけたら開くを押して読み込みます。
    
    ![excercise_1A探し_その1_R1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/c8d32dca-bbc6-d1dd-24db-3b8f58b70286.png)

1. IDF Editorの起動
EP-Launchの赤枠で囲んだ「Edit - IDF Editor」を押します。これにより、IDF EditorでExercise2.idfが開かれます。

    <img width="400" alt="2idf開く.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/a7fb0c4e-b07b-5e2f-726f-4693c1fecab9.png">

1. IDF Editorの初期設定
IDF Editorで、File -> Save Options . . . を選択すると下の図で赤枠で囲んであるウィンドウが開きます。そして「Saved Order」を「Original with New at Top」に設定し、「Special Format for Some Objects」を「Yes」に設定します。また「Set as Default」ボックスにチェックを入れます。
注：画像は入力ファイルをExercise1A.idfにした時のものです。
    <img width="400" alt="Save Optionsの選択.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/93f82690-ec5a-528d-7fb6-7fa00aae0ac3.png">

    <img width="400" alt="初期設定.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/e47e27ea-ffed-eef8-30fe-3477e07ecf96.png">

1. Exercise2.idfをExercise2A.idfとして保存
IDF Editorで、File -> Save As . . . を選択し、このファイルを**Exercise2A.idf**として保存します。

1. HVACTemplate:Thermostatオブジェクトの追加
シミュレーション用のサーモスタット設定点を定義するためにHVACTemplate:Thermostatオブジェクトを追加していきます。

    まず原文では以下のように指示されています。
    - Choose a name for the thermostat. This name will be referenced in the next step.
    - For heating setpoints, use pre-defined schedule named “Office Heating Setpoints”.
    - For cooling setpoints, use pre-defined schedule named “Office Cooling Setpoints”.

    というわけで以下の図で赤枠で囲んだHVACTemplate:Thermostatオブジェクトを選択します。次に青枠で囲んだ「New Obj」をクリックすると緑枠で囲んだフィールドが追加されますので、そのフィールドの各項目を以下のように設定します。

    - Name: ThermostatA（自分で名前を設定し、手入力しました）
    - Heating Setpoints Schedule Name: Office Heating Setpoints（Getting Startedの指示に従い、プルダウンから選択）
    - Cooling Setpoints Schedule Name: Office Cooling Setpoints（Getting Startedの指示に従い、プルダウンから選択）
        <img width="400" alt="サーモスタット設定.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/963a6da2-2df1-9cdc-e7ac-529c9cd3e16f.png">

1. HVACTemplate:Zone:Unitaryオブジェクトの追加
以下の図で赤枠で囲んだHVACTemplate:Thermostatオブジェクトを選択します。次に青枠で囲んだ「New Obj」をクリックすると緑枠で囲んだフィールドが追加されます。
        <img width="400" alt="HVACTemplate_Zone_Unitaryの設定.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/9e93d476-305e-4d0c-1ca8-30d7e2ece5a9.png">

    そして追加されたフィールドの各項目を以下のように設定します。
    
    - Zone Name⇒NORTH PERIMETER
        下図の赤枠部分：Getting Startedの指示に従い、プルダウンから選択
    - Template Unitary System Name⇒SystemA
        下図の青枠部分：自分で名前を設定し、手入力しました
    - Template Thermostat Name⇒ThermostatA
        下図の緑枠部分：Getting Startedの指示に従い、先ほどの「HVACTemplate:Thermostatオブジェクトの追加」のところで入力した名前をプルダウンから選択）
    
        <img width="400" alt="HVACTemplate_Zone_Unitaryの設定_詳細.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/dec119f1-3cdc-0464-3597-f84684f7d28d.png">

1. HVACTemplate:System:Unitaryオブジェクトの追加
以下の図で赤枠で囲んだHVACTemplate:Thermostatオブジェクトを選択します。（フィールドの追加のところは今まで何回もしているので、ここでは手順の記載は省略します。

    そして追加されたフィールドの各項目を以下のように設定します。

    - Name⇒ SystemA
    下図の青枠部分：Getting Startedの「The name of this system object must be the same name used in the zone object for “Air Handling System Name” field (See Step 3).」という指示に従い前のステップで設定したNameと同じにしましたが、もしかしたら設定方法は違うかもしれません
    - System Availability Schedule Name⇒Office HVAC
        下図の緑枠部分：Getting Startedの指示に従い、プルダウンから選択
    - Control Zone Name or Thermostat Location Name⇒NORTH PERIMETER
        下図の黄枠部分：Getting Startedの指示に従い、プルダウンから選択
    - Supply Fan Operating Mode Schedule Name⇒constant
        下図の紫枠部分：Getting Startedの指示ではContinuousであったがなかったので、constantをプルダウンから選択
    - Heating Coil Type⇒Gas
        下図のオレンジ枠部分：Getting Startedの指示に従い、プルダウンから選択
    - Minimum Outdoor Air Schedule Name⇒Office Minimum OA
        下図のグレー枠部分：Getting Startedの指示に従い、プルダウンから選択

        <img width="400" alt="HVACTemplateSystemUnitaryオブジェクトの追加.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/9f79cee0-1967-9d79-410e-02e3a5c579cd.png">

        <img width="400" alt="HVACTemplateSystemUnitaryオブジェクトの追加2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/0605fb92-fc55-cc6b-beb8-4e540055c5cb.png">

1. Sizing:Parametersオブジェクトの追加
以下の図の赤枠で囲んだSizing:Parametersオブジェクトを選択し、青枠で囲んだサイジング係数を1.2（20%のオーバーサイジング）に設定します。

    <img width="400" alt="サイジング.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/3720fe2d-15d8-a871-ef31-5f87fdd78dc8.png">

1. SimulationControlオブジェクトの編集
以下の図の赤枠で囲んだSimulationControlオブジェクトを選択し、青枠で囲んだDo Zone Sizing Calculationと Do System Sizing Calculationの項目をYESに設定します。
    <img width="400" alt="simulation_controlオブジェクト.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/946e99e9-7521-3c46-b649-dfec1b2a065d.png">

1. 一旦シミュレーションの実行
ここで一旦、IDF Editorを保存して閉じ、EP-Launchで「simulation」ボタンをクリックして、シミュレーションを実行します。
Getting StartではエラーファイルやらDXFファイルやらを確認せよと書いてありますが、ここではDXFファイルとSVGファイルを見てみたいと思います。

    - DXFファイルの確認
    Getting Startでは各ゾーンが独立した描画レイヤーであることを確認するように言われています。
    私の環境ではEP-launchの「Drawing File」をクリックすると Autodesk DWG Trueviewが開くようになっており、そこでDXFファイルを確認するようにしています。そしてAutodesk DWG Trueviewでは以下の図の黄枠で囲んだところで、色を変えたりレイヤーの表示・非表示を変えることにより各ゾーンのレイヤーを確認しました。
       <img width="400" alt="レイヤー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/dd2938a5-a4ac-dd52-fd78-6ac8d07b6ad5.png">
    
    - SVGファイルの確認
        Getting StartではHVACシステムコンポーネントのブロック図を確認するように言われています。開き方としては以下の図で赤枠で囲んであるEP-launchの「SVG」をクリックすると
         <img width="400" alt="svgの確認.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/fb27e055-e17f-6c7a-9d4a-2bd4c5a0008f.png">      
         以下のようにHVACシステムコンポーネントのブロック図（らしきもの）が表示されます。
          <img width="400" alt="スクリーンショット 2024-01-27 134554.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/88ea04b4-fe8b-3edd-8cd8-0876ce089175.png">。

1. 出力変数の追加
Getting Startでは「システム（ファーネス）ファン、加熱コイル、冷却コイルの動作をレポートする出力変数を追加せよ。変数名は RDD 出力ファイルを参照。」して「再シミュレーションせよ」とありますので、私は以下の項目を追加しました。
- HVAC,Average,Fan Electricity Rate [W]
- HVAC,Sum,Air System DX Heating Coil Electricity Energy [J]
- HVAC,Sum,Air System DX Cooling Coil Electricity Energy [J]
- Fan Electricity Rate
- Air System DX Heating Coil Electricity Energy
- Air System DX Cooling Coil Electricity Energy

追加方法としては、以下の図にある赤枠で囲んだ「Output:Variable」オブジェクトを選択して、青枠で囲んである「New Obj」をクリックすると、以下の図で緑枠で囲んだところにオブジェクトが追加されます。その追加されたオブジェクトの「Variable Name」の項目としてドロップダウンリストから上記の項目を選択して出力変数を追加します。
<img width="400" alt="項目追加.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/426b1fd4-81ed-bee4-3c17-2825d4d3b9a8.png">

これらの作業が完了したら、IDF Editorを保存して閉じ、EP-Launchで「simulation」ボタンをクリックして、再度シミュレーションを実行します。

# シミュレーションの結果の確認
シミュレーション結果として出力されたExercise2A.csvを見てみたいと思います。
Getting Startではシミュレーション結果についての注意書きとして、
"Note during hour 7 of the summer design day that “NORTH PERIMETER:Zone/Sys Sensible Heating RateW” is nonzero, but the heating coil is off and the DX cooling coil shows a load. Why? This report variable reports the impact of the system on the zone (not the zone’s demand for heating or cooling), averaged over the hour. The system fan is scheduled on at 6 a.m., but the outside air dampers are closed. The zone is not warm enough from the night to require cooling, so the circulating fan heat warms the zone slightly for a portion of the hour until the zone temperature exceeds the cooling setpoint and the DX coil comes on for the remainder of the hour. If the economizer were active, this would not occur."と述べています。

どうやらsummer design dayにおいてheating coilがオフなのにNORTH PERIMETER:Zone/Sys Sensible Heating RateWがゼロではない時間があるとのことのようです。対象部分と考えられるシミュレーション結果を以下の図に示します。
![結果のスクショ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3581920/cebf824a-090a-2c52-d51c-69e23bcde1e2.png)
👆確かに、AZ列のheating coilの負荷がゼロなのにAQ列のNORTH PERIMETER:Zone/Sys Sensible Heating RateWがゼロではない時間帯があります。
この理由についても上記のGetting Startの注意書きの中で述べられていますが、私はこの辺詳しくないので、ここでは割愛させていただき、原文を参照いただきたくお願いします。ただ注意書きで述べられていることが再現できているのでシミュレーション自体は適切にできたようです。

# まとめ
Getting Started[[1]](#参考サイト)の6.2.1項「Exercise 2A. Add Unitary System with DX Cooling and Gas Heating (Furnace) Serving a Single Zone」の手順を追って、今回の主目的であるシミュレーション結果の出力ができました。次回は6.2.2項のExercise2Bを実施予定です。

# 参考サイト
[1][EnergyPlusのGetting Start](https://energyplus.net/documentation)