Translate

2017/09/28

TRNSYSにIF文が欲しい

条件判定

TRNSYSで計算する際に条件を判断して処理したいケースってないですか?例えば暖冷房期間の判定処理とか。手軽な方法としてEquationを使って判断する方法(TRNSYSのEquationで条件判定)がありますが、少々分かりにくいのが難点。

単純な処理だと、これはこれで十分なんですが、条件が複数になると途端にハードルが上がります。例えば、冷房期間でも気温の低い早朝は窓開け換気の条件を設定したい。ただし、外気の湿度は60%以下の場合に限る。なんて条件を設定されるとEquationでは表現が難しくなります。(工夫すれば多分できると思うけど、可読性は低くなります)

スクリプトで代用できないか?

開発言語やスクリプトのようにIF文が使えると、少々条件が増えても簡潔に記述することができるはずです。例えば、書き方はこんな感じで。。。

#暖房、冷房期間の判定
if  time<=2760 or time>=7056 then
    heating=true
else
    heating = false
    cooling = not heating
endif

#外気導入の判定:冷房期間でも外気温が25℃未満、湿度が60%以下なら窓開け換気する

if cooling and tamb <25 and rh <=60 then
    ach=10  #外気導入分の換気量を増やす
    aircon=0  #冷房のスイッチをOFF
else
    ach=0.5
    aircon=1 #冷房のスイッチをON
endif

あとは、achをInfiltrationへairconをCoolingTypeへ渡して処理する。

こういった処理をやろうとすると、いくつかやり方があります。

JavaScriptを試す

以前にスクリプト言語の実装を試みたこともあるのですが、パフォーマンス的にいまいち。cstbが有償配布しているW言語コンポーネント(Type79)と比べると恐ろしく処理速度が遅くなります。

TRNSYSでJavaScriptを使ってみる

TRNSYS Type79 とスピード対決

素直にType79を購入すればいいのですが、共同研究とか納品とか考えると、それもちょっとなーという感じです。(とはいえ使ってみた感じ、そこそこ便利は便利そうです)

世の中には同じような事を考える人がいるらしく、Javaで実装している例もあります。

TRNSYSとJavaを連成?(1)

こもれなんかJavaの環境設定が面倒で簡単じゃないんですよね。

単純に配布できて、誰でも利用できる仕組みって作れないんだろうか?パフォーマンスが良くて、配布も関連ファイル同梱するだけでOKとか、Lua言語とか検討してみるか?とか考えていると。。。

Type169(Direct Call)登場

TRNSYS18からPythonが標準でサポートされるようになりました。Pythonなら技術計算では広く使われているのでパフォーマンスも定評があります。Pythonは別途インストールが必要になりますが、使いやすいディストリビューションも利用できます。

スクリプトは次のような感じで記述できます。

import TRNSYSpy as trn

def PythonFunction():
     # retrieve values from the  and Inputs
     time = trn.getInputValue(1)
     tamb = trn.getInputValue(2)   
     rh=trn.getInputValue(3)
     #冷房、暖房期間の判定
     if  time<=2760 or time>=7056 :
         heating=True
         cooling=False
     else:
         heating = False
         cooling=True
        
     #冷房期間の外気導入判定
     if (cooling==True) :
         if  (tamb <25) and (rh <=60) :
             ach=10
             aircon=0
         else:
             ach=0.5
             aircon=1
     else:
         aircon=0
    
     # return the new values to the Outputs
     trn.setOutputValue(1,ach)
     trn.setOutputValue(2,aircon)
     return

image

Equationで書くのに比べると、だいぶ解りやすいですね。(まあPythonが前提ではありますが)
Pythonには数値計算のライブラリも用意されているので、使いようによってはMatlabのような使い方もありそうです。


動作環境

Windows10 Pro(64bit)
Python:Anaconda 4.3.1(Python 3.6/64bit) https://www.continuum.io/downloads
TRNSYS18.00.0014(64bit)

2017/09/27

TRNSYS18 新機能概要(9)TRNSYSエンジン,レポート機能

TRNSYS18では、計算エンジンの部分も改良、新機能の追加が行われています。
今回追加された自動レポート機能は、計算に使ったコンポーネント設定や結果のサマリーを確認するのに役立ちそうです。

5.    TRNSYS エンジン

5.1.    日射補間処理の改良

今回のリリースでは日射の補間処理に2つの変更が行われています。

1つめの変更点は、水平面天空日射と法線面直達日射が他の日射量の計算に使用されるようになりました。これにより、データファイルに正の値の水平面天空日射があるときは、TRNSYSによって計算される水平面天空日射が存在することが保証されます。

2つめの変更点は、1時間未満の日射量の計算に新しい方法が追加されています。この方法は、数学的モデルに対する日射の物理的形状形成を避けます。
この方法では、その時間の開始点(前の時間の終点または日の出の0)と予定時刻の日射から時刻ごとの日射量の終点を推定します。終点は、日没時に強制的にゼロになります。
気象データファイルからの時刻と、そのタイムステップの総日射量の開始点と終了点を取得することで、時刻の中間点の値を知ることができます。
日射は、開始点から中間点、中間点から終点まで直線的に変化することが想定されます。この方法では、気象データファイルからの時間単位の日射量の合計が保持され、また、負の値は避けられ、以下に示すように日射の滑らかな曲線が作成されます。

image

5.2.    湿り空気線図状態計算方法の更新

ASHRAEでは長年に渡って、より正確な測定値を利用しHandbook of Fundamentalsの湿り空気線図ルーチンを更新しています。

TRNSYS18では、湿り空気線図の計算処理を再検討し、最新のASHRAEアルゴリズムへ変更を行いました。

5.3.    自動レポート生成機能

TRNSYS 18では、有用なデフォルトレポートを作成するシンプルで効率的な方法が導入されました。すべてのコンポーネントには、ユーザーにとって有用な標準データセットが定義されます。

例えば、太陽熱集熱器(Type1)がプロジェクトで使用されている場合、ユーザーは、コンポーネントの設定の概要(集熱面積、集熱器の枚数など)、ならびにシミュレーションの対象期間の平均値、積算値や総エネルギー取得、出口温度の最大値に興味があるかもしれません。

ユーザーは、プロジェクト内の対応するコンポーネントを選択し、以下に示すように「レポート」アイコンをアクティブにするだけで、このデータを標準シミュレーションレポート(*.ssr)へ出力することができます。

image

2017/09/26

TRNSYS18 新機能概要(8)快適性、顕熱回収

今回は新しく追加された快適性の計算と、顕熱回収の機能の紹介です。
快適性の計算は文中にもあるようにASHRAE Standard 55-2013、Appendix Gの説明です。(たぶんAppendix Gの一部をサポートしている)
給気計算では顕熱交換器に相当する機能がType56/TRNBuildで実装されています。日本だと潜熱分が気になりますが、簡易な計算としては良いかもです。

4.3.    拡張された快適性の計算

熱帯気候のような暖かい地域で室温と気流速度の上昇を考慮した快適性評価には、適応性のある快適性モデルが必要です。

TRNSYS 18では、ASHRAE Standard 55-2013、Appendix Gに記載されている標準有効温度(SET)を使用して、上昇気流速度による冷却効果を評価手法が実装されています。

この機能は、熱帯気候などの暖かい地域では、気温と上昇気流速度の快適性を評価するのに特に有効です。

SETは、関連する活動について標準化され着衣の被験者が、同じ熱ストレス(皮膚温度)および体温調節歪み(皮膚ぬれ率)を有する50%相対湿度における等温環境の等価空気温度として定義されます。皮膚の温度と皮膚ぬれ率の値は、人間生理学の2ノードモデルから導かれます。(Gagge et al。1971、1986)。

SETは、気温(Tair)、平均放射温度(MRT)、相対湿度(RH)平均上昇気流速度(v)、着衣量(clo)およびエネルギー代謝率(met)の6つの環境および身体のパラメーター から計算されます。

はじめに上昇気流速度の冷却効果を評価するために、最初に上記パラメーターおよび所与の気流速度についてSETを計算します。

第2ステップでは気流速度を静止空気(0.15m / s)に置き換え、調整された平均気温および平均放射温度を計算して、前のステップ(ANSI / ASHRAE 2015)と同じSETを得ます。調整された平均気温で、静止空気の気流速度と、上昇気流速度の予想平均温冷感申告(PMVeas)が計算されます。

image

環境デザインと評価に有効にするため、この計算方法は在室者が制御可能なファンをシミュレーションするために実装されています。

ユーザーは最大4つの気流速度レベルを指定でき、PMVeas±0.5を達成するために必要な最低気流速度レベルが自動的に選択されます。これは環境条件と在室者の90%に相当します。

上昇気流速度オプションの切り換え機能がComfort typeへ追加されています。4つの気流速度レベルの内 一つ目の気流速度レベルはComfort typeで定義され、追加の3つはTRNBuild のPropertiesで定義されます。 SET、ならびに最適化された上昇気流速度レベル、および結果として生じる気流速度は、新しい出力(NType 123,131,132)で扱われます。


4.4.    統合された給気計算

TRNSYS 18では、Airnodeへの給気の前処理をモデル化するシンプルなモデルがTYPE 56に用意されています。
暖房、冷房、除湿及び加湿は、外気の状態を考慮した給気から計算されています。これにより、顕熱回収の計算が可能になります。

image

熱交換器後の給気温度は、実効効率、環気温度、外気温 で計算されます。

ハンドリングユニットの方式によっては、熱交換器への着霜を避けるために霜付き防止システムを備えています。実装モデルでは、排気,が4℃以下に冷却されないと仮定しています。定義された換気量̇に対して、設定温度 へ加熱̇ℎ,、または冷却̇,するための顕熱が計算されます。

最大湿度と最低湿度( )はユーザーが設定する必要があります。屋外の湿度がこの範囲内にある場合、加湿または除湿のエネルギーは計算されません。それ以外では蒸発エンタルピーΔℎで計算されます。

除湿プロセスは3つのプロセスで処理されます。まず、露点温度まで冷却される顕熱部分と、水が凝縮する潜熱部分、両方のプロセスのエネルギーは̇,ℎにまとめられています。3つめは空気の再加熱̇ℎ,ℎです。

2017/09/25

太陽熱集熱器の資料

太陽熱集熱器の仕組みとか、用語とか調べていて、ちょうどいい感じの資料を見つけたのでメモ。

経済産業省、資源エネルギー庁 あったかエコ太陽熱

image

TRNSYSには集熱器(Solar Thermal Collector)のコンポーネントが複数種類用意されています。コンポーネントを設定する際、用意されているパラメータが日本語の何に相当するのか実のところ用語がちんぷんかんぷん。(建物はともかく、そもそも集熱器とか設備周りは仕組みが良く解ってないので、そのあたりを説明している資料はとても助かります。)

特に、「参考資料」のページが、ほどよい内容でまとまっていて、なかなか読みやすいです。

2017/09/18

TRNSYS18 新機能概要(7)昼光シミュレーション,データファイル、出力項目

今回も昼光シミュレーションの続きで、計算用のデータファイルの生成の解説です。

4.2.3. データファイルの生成

DaySIMアプローチにより、各センサーポイントの昼光係数は、Radianceフォーマットの幾何形状および材料定義に基づいて前処理ステップで生成されます。この処理はTRNBuildの "Tools"メニューから "generate radiance files"を選択して行います。

Radianceファイルの生成には3つのオプションが用意されています。

1. Generate radiance input files (*rad) only:

このオプションは、他のアプリケーションで使用するためのRadianceのファイルを生成します。Radianceファイルは、Zoneの幾何形状と他のZoneによるセルフシェーディングを含む関連するすべてのシェーディングジオメトリから構成されます。

2. “classic” format of daylight coefficients for DAYSIM:

Radianceファイルを生成します。(オプション1を参照)

DAYSIMの「gendc」が呼び出され、DAYSIMの”classic”アプローチに従って昼光係数が生成されます。データはゾーンごとに日射遮蔽あり、日射遮蔽なしの2つのファイルに保存されます。


3. “dds” format of daylight coefficients for DAYSIM:
Radianceファイルを生成します。DAYSIMの「gendc」が呼び出され、DAYSIMの”dds”アプローチに従って昼光係数が生成されます。データはゾーンごとに2つのファイルに保存されます。
image

次の情報がRadianceファイルの生成に必要になります。

• Weather station Latitude, Longitude, standard meridian, site elevation)
気象データの地点情報(緯度、経度、標準子午線、標高)

• Scene rotation angle
建物をTRNSYS3dでモデリングした際と異なる向きで計算する場合は角度を指定します。 方位角と同じ角度を使用していることを確認してください(Type56のInput 6:AAZM)

Additional properties

• grand reflectance
地面の状態は昼光の計算結果に大きな影響を与える可能性があります。ユーザーはTRNSYS3dで作成した地面にIDを割り当てることができます。地面の反射率はこれらのシェーディングサーフェースに適用されます。シェーディングIDが定義されていない場合、地面からの反射は反射率(grand reflectance)を使ってモデル化されます。

• shader reflectance
温熱計算のモデルのシェーディングサーフェース(Shading Object)には反射の値がありません。 しかし、昼光モデルでは、shader reflectance(反射率、デフォルト= 0)を考慮に入れることが可能です。 指定された値はすべてのシェーディングサーフェースに適用されます。

Radiance parameters
レイトレーシング(ray tracing, 光線追跡法)シミュレーションとその結果は、使用されるパラメーターに大きく依存します。 最も重要なパラメーターは、TRNBuildインターフェースに表示されています。

• ambient bounces (ab): アンビエントバウンド回数

これは、間接成分の計算(Indirect calculation)で使用される拡散反射回数の最大数です。0を指定すると間接成分の計算は行われません。 複雑なファサードを持たない一般的な部屋では、ab値は5で十分です。このパラメーターは計算時間を大幅に増やしますので注意して設定する必要があります。ベネシャンブラインドを含むファサードを持つ部屋を考慮する場合、光線が数回反射されて建物から出る可能性があるため、それ以上の大きな値を指定する必要があります。

• ambient divisions (ad): アンビエント分割数

アンビエント分割数は、間接入射光を決定するために各周囲点から半球に送られる初期サンプリング光線の数を設定します。 このパラメーターは、明るさの変化が大きいシーンの輝度分布が高い場合には大きくする必要があります。 間接照度のモンテカルロ法による計算誤差は、この数の平方根に反比例します。

• ambient super-samples (as): アンビエントスーパーサンプル数

分散の多い分割された半球内の領域をサンプリングするために使用される追加の光線の数。アンビエントスーパーサンプル数は、通常はアンビエント分割数(ad)の約1/2または1/4に設定する必要があります。 アンビエントスーパーサンプル数は、有意な変化を示すアンビエント分割数にのみ適用されます。

• ambient resolution (ar): アンビエント解像度

この数値は、補間に使用されるアンビエントの値の最大密度を決定します。アンビエント解像度で割ったシーンのサイズよりも近い間隔のサーフェスではエラーが増加し始めます。アンビエント解像度(ar)とアンビエント精度(aa)をシーンサイズと組み合わせると、正確に処理される最小のジオメトリフィーチャが得られます。(下記参照)

シミュレーション解像度 = (最大シーンサイズ x アンビエント精度) / アンビエント解像度

• ambient accuracy (aa): アンビエント精度

この値は間接照度補間の誤差にほぼ等しくなります。0が指定されると補間は補間処理は行われません。

デフォルトの設定は、DaySIMの推奨設定です。モデルの複雑さとサイズによっては、ファイル生成に数時間から数時間かかることがあります。このため作業中のチェックには、精度を抑えて生成時間を短縮するのが有効です。

ambient bounces

アンビエントバウンド回数

ambient divisions

アンビエント分割数

ambient

samples

アンビエントサンプル数

ambient resolution

アンビエント解像度

ambient accuracy

アンビエント精度

Fast (for checking only)

チェック用

3

32

32

300

0.2

Default

推奨値

5

1000

20

300

0.1

プロジェクトに合った適切なパラメーターを選択するための昼光の基礎を勉強することを強くお勧めします。Radianceパラメーターは、Buiファイル(.b18)に保存されます。必要に応じて変更することができます。

Resulting files

データファイルはすべてBuiファイルと同じフォルダの”daylight”フォルダに生成されます。下表は、ファイル拡張子の概要を示しています。

ファイル拡張子

内容

*.hea

DaySIMヘッダーファイル  

*.pts

センサー形状ファイル

*.rad

形状ファイル

*.dc

Type56で使用される昼光率

*.cfg

Type56で使用される設定ファイル

*.log

データファイルを生成した際のログファイル  

   

一般に、ゾーンごとに2種類の昼光モデルが自動的に生成されます。1つは、すべての日射遮蔽装置が使われていない非遮蔽状態(shd0)。もう1つは、すべての日射遮蔽装置が使われている遮蔽状態(shd1)です。ファイル名には以下の命名規則が使用されます。

yyy_shdx_name.*

yyy - zoneの番号
shdx - shd0…日射遮蔽なし, shd1 遮蔽1
name - zoneの名前

4.2.5 昼光関連の出力項目

昼光関連の出力項目は、計算された屋外照度(NType 400 - 402)と標準出力ファイル(NType 435)があります。

標準的出力ファイルは、”Daylight”フォルダに拡張子(.ill)の選択されたゾーンに対して書き込まれます。 各センサーポイントの時間積分照度値が含まれています。 さらに、以下の一般的な昼光の基準値がシミュレーション期間全体で計算されます。

• Daylight Autonomy (DA), default: < 300 lux

• Continuous Daylight Autonomy (cDA), default: < 300 lux

• Useful Daylight Illuminance (UDI), default: 100 – 2000 lux

• Daylight factor (DF) for CIE overcast sky

昼光の基準値のしきい値は、ビルディング記述ファイルに格納され、必要に応じて編集することができます。一般に、これらの基準値は在室者のみ関連します。このためスケジュールが追加データとしてNTpyeに割り当てられます。スケジュールの値は0(オフ)または1(オン)でなければなりません。


と、これで昼光関係は終了。次は、快適性関係へとつづく。

2017/09/12

拡張アメダス、EPW形式をTRNSYSで使う

気象データシステムからEPW(EnergyPlus Weather File)形式の気象データのサンプルが公開されていたので、TRNSYSで試してみました。

EA気象データをEPWフォーマットに変換した気象データを公開

TRNSYSには標準でEPW形式の気象データリーダーが用意されているので、これを使って読みだしてみます。
image

気象データリーダー Type15-3 を配置したら、上記のリンク先からダウンロードしたファイル(EPW)をExternal Filesタブで指定します。あとは特に設定もないので、出力の指定をします。

image

値を書き出してみたかったので、Type25を配置して、各項目を接続します。(しかし、EPWって値が多いですね)

image

TRNSYSを実行して、書き出されたCSVを開くと。。。
きれいに値が書き出されています。問題なく使えそうです。

image

動作環境

以下の環境で動作を確認しています。

Windows10 Pro(64bit)
TRNSYS18.00.0014(64bit)

2017/09/06

TRNSYSの計算状況を表示するType76 Scope

TRNSYSの計算状況を表示する場合、よく使われるのはOnline Plotter(Type65)ですが、他にも面白いコンポーネントが用意されています。

Type79 Scopeを使うと、Simulation Studioの上にゲージやチャート、スイッチなどのアイコンを表示することができます。

スイッチのアイコンなど、何かのOn/Offの表示確認に使えそうですね。

動作環境

以下の環境で動作を確認しています。

Windows10 Pro(64bit)
TRNSYS18.00.0014(64bit)

2017/09/01

広島へ向かってます

出張で広島(学会)へ向かってます。

新幹線で神戸以西は初めてなので、車窓からの景色が目新しい。やや旅行気分。

品川駅で購入した天むすが予想以上に美味しくて大満足。