TrnOptで庇の長さを最適化
前回紹介した最適化ツールTrnOptを使って庇の長さを最適化してみます。やっぱり建物の最適化も試してみたいですよね。
なお、今回の例はウィンスコンシン大学の公式サイトで公開されている、こちらの例を参考にしています。
TrnOptnのセットアップ
TrnOptのドキュメント(”C:\TRNSYS18\Tess Models\Documentation\09-OptimizationLibrary-TRNOPTv17.pdf”)を参考にセットアップします。
TrnOptの他、関連してGenOpt、Javaのインストールも必要です。ドキュメントは只今更新中で、少々記載が古くなっています。注意点その他を加筆した日本語版(暫定版)を用意しています。試される際は、サポート窓口までお問い合わせ下さい。
最適化モデルの準備
例によって基本操作ガイド(2室モデル演習)のモデルを使って、最適化のモデルを用意します。Zone, ROOM1に庇の条件を追加して、庇の長さと位置をパラメーターにします。目的関数は暖冷房負荷が最小になるよう庇を最適化します。
夏は庇を長くすると日射遮蔽が効いて冷房負荷が低く抑えられます。逆に冬期は日射遮蔽があるとダイレクトゲインからの熱取得が減って暖房負荷が増えます。
冷房負荷を考えれば庇は有効ですが、暖房には不利に働きます。果たしてバランスの良い庇の長さというのはあるのでしょうか?
なお、ROOM1は24時間暖冷房、設定温度は冷房28℃(除湿なし)、暖房21℃としています。
下の図の赤枠部分が最適化用に追加したコンポーネントです。
注意点
TrnOptでは、計算を実行する際に別フォルダに計算用のDckファイルを自動生成します。Dckファイルから外部ファイルを相対パスで参照している場合は、必ずフルパスに変更してください。(相対パスで参照していると計算に失敗します)
今回の例ではType56が参照するb18ファイルをフルパスに変更しています。(下図)
Shading settings(Equation)
後述するType34の設定用にEquationを追加して、変数を定義します。定義する変数は以下の通りです。
- OVERHANG_PROJECTION (庇の出)
- OVERHANG_GAP(開口部の上端から庇までの距離)
※図では変数としてLEFT_EXT、RIGHT_EXTも定義していますが、今回は使用していません。
Type34 Overhang and Wingwall Shading
まずは庇の長さを扱うためにType 34 Overhang and Wingwall Shadingを追加します。名前から分るように庇の影響を計算するコンポーネントです。指定された条件から日射の遮蔽率を計算して出力します。
Equationで定義した変数を使ってType34のパラメータを設定します。図のようにOverhang projectionとOverhang gapの項目に変数を指定します。
パラメーターに変数を使用する際は次の順番で指定してください。
- Unitの項目でvariable nameを選択する
- Valueの項目へ変数を入力する
Type34と気象データリーダー、Type56との接続について詳しくはリンク先を参照してください。
Type56
冷房、暖房負荷の出力としてQHEATとQCOOLを追加します。
Type24 Quantity Integrator
QHEAT, QCOOLの集計用にType24を追加します。このコンポーネントで年間の暖房、冷房負荷の集計を行います。
Type24についてはリンク先を参照してください。
heating cooling load(Equation)
最後に暖冷房負荷の集計用にEquationを追加します。Type24で集計された暖房負荷、冷房負荷を合計します。ここで定義したTotal_loadを後述する目的関数として指定します。
Heating_load = q_heat
Cooling_load = q_cool
Total_load = Heating_load+Cooling_load
ここで計算を実行して問題なく実行できるか必ず確認しておいてください。
TrnOptの設定
プロジェクトの準備が整ったら、次は最適化の設定を行います。エクスプローラーで”C:\TRNSYS18\Optimization\TrnOpt18.exe”をダブルクリックしてTrnOptを起動して設定を行います。
Dckファイルと変数の指定
最適化用に用意したプロジェクトのdckファイルを指定します。
- 「Select Input File」をクリック
- Dckファイルを指定しする
パラメータの初期値と範囲の指定
次にパラメータとして使用する変数を選択します。
- 「Select Variables」をクリック
- リストからOVERHANG_PROJECTION(庇の出), OVERHANG_GAP(開口部の上端と庇の距離)の2つをチェックして「OK?I」ボタンをクリック
最適化では値を変化させながら計算を繰り返します。その際に使用する変数の初期値と値の範囲を指定します。
- 「Specific Variable」をクリック
- 「Variable Name」から設定する変数を選択する(この例ではOVERHANG_PROJECTION)
- 変数の指定方法はContinuous(連続)、 または Discrete(離散)から選択する(この例ではContinuousを選択)
- Initilal Value(初期値)、Minimum Value(最小値)、Maximum Value(最大値)、Step Value(ステップ値)を指定する(この例では庇の長さの初期値を0.5mで0m~2mの範囲で0.1mずつ変化させて計算を繰り返します)
同様にOVERHANG_GAPについても設定を行います。
メモ:この例では2つの変数の組み合わせは総当たりで200パターン(=20×10)考えられます。後述する最適化アルゴリズムによって実際にはそれよりも少ない組み合わせで最適化が行われます。
「Cost Function」で目的関数を指定します。
- 「Use Equation」「Use Unit Output」のいずれかを選択します。この例ではEquationで定義した値を使用するので「Use Equation」を選択します。
- 続いてリストから「Total_Load」を選択します。
最適化アルゴリズムの指定
TrnOpt(GenOpt)には最適化のためのアルゴリズムが複数用意されています。最適化に使用するアルゴリズムを指定します。
- 「Select Optimization Method」をクリックする
- 「Optimization Method」のリストから「Hooke-Jeeves Algorithm」を選択する
メモ:指定されたアルゴリズムによって最適化の計算処理が変わります。指定可能なアルゴリズムについて詳しくはGenOptのドキュメント、既往文献などを探してみてください。
最適化実行
「Run Optimization」をクリックして最適化を開始します。
メッセージが表示されたら「OK」ボタンをクリックして計算を開始します。(GenOptが起動して最適化が開始されます)
最適化の結果
最適化の処理中は図のようなグラフが表示されます。(クリックで拡大表示されます)
暖冷房負荷の値が最適が進むに従って、一定の値に収束していく様子が分ります。庇の出や開口部との距離も指定された値の範囲で変化していますが、徐々に安定していきます。
詳しい結果は”C:\TRNSYS18\Optimization\GenOpt\Simulation\OutputListingMain.txt”に書き出されています。このファイルを開いて結果を確認します。
この例では庇の出は1.0625m, 開口部の上端と庇の距離は1.0mで最も暖冷房負荷が少なくなっています。
この結果を基に庇なし・ありの違いを計算してみます。下のグラフは庇なしと、庇を最適化した場合の暖冷房負荷の月別比較です。
庇の影響で冷房負荷は少なく抑えられていますが、暖房負荷はやはり増加しています。年間の合計で比較すると約6%ほど暖冷房負荷が削減されています。
まとめと補足
この例では簡単なモデルを使って暖冷房負荷を目的関数に庇の長さと位置関係を最適化しました。最適化のパラメータ、目的関数はEquationで定義した変数で指定することができます。
ただし、今回の例では限られた条件で最適化を行っている点に注意してください。冷房時の除湿はしていませんし、内部発熱の条件や外気導入など換気の条件を加えると、また違った傾向になる可能性があります。
今回のサンプルのダウンロードはリンク先より。
最適化ツール, TrnOptのサンプルプロジェクト
動作環境
以下の環境で動作を確認しています。
Windows10 Pro(64bit, 20H2)
TRNSYS18.02.0002(64bit)