TRNSYSで実測データでシミュレーションする
2020/12/23更新 経度の±を逆に表記していたため修正
2020/06/04更新 サンプルファイルの記載を追加
実測データや気象庁などの観測データから計算用の気象データを作る際の注意点をまとめます。
TRNSYSには標準的な気象データを読み込んで出力する各種気象データリーダーが用意されています。通常は、これらを使って市販やオープンソースの気象データを扱います。
実測データを使いたいケースでは、User Formatフォルダに対応したコンポーネント、Type99が用意されています。このコンポーネントを使って実測データなど標準気象データ以外の形式のファイルを扱うことができます。
Type99のデータフォーマット
Type99専用フォーマットが用意されているので、それに合せて実測データを加工します。以下、データフォーマットの構造を紹介します。
データはテキスト形式のファイルです。
サンプル(”C:\TRNSYS18\Examples\Data Files\Type99-UserFormat.99″)が用意されているので、メモ帳などのエディタで開いてみると参考になります。
以下はサンプルからの抜粋です。
<userdefined>
<longitude> -9.9 ! east of greenwich: negative
<latitude> 49.8 ! Wuerzburg, Germany
<gmt> 1 ! time shift from GMT, east: positive (hours) - if solar time-> write "solar"
<interval> 1 ! Data file time interval between consecutive lines
<firsttime> 1 ! Time corresponding to first data line (hours)
<var> IBEAM_H <col> 5 <interp> 0 <add> 0 <mult> 1 <samp> -1 !...to get radiation in W/mイ
<var> IBEAM_N <col> 0 <interp> 0 <add> 0 <mult> 1 <samp> 0 !...to get radiation in W/mイ
<var> IDIFF_H <col> 6 <interp> 0 <add> 0 <mult> 1 <samp> -1 !...to get radiation in W/mイ
<var> IGLOB_H <col> 0 <interp> 0 <add> 0 <mult> 1 <samp> 0 !...to get radiation in W/mイ
<var> TAMB <col> 3 <interp> 2 <add> 0 <mult> 1 <samp> 0 !...to get ーC
<var> RHUM <col> 4 <interp> 1 <add> 0 <mult> 100 <samp> 0 !...to get relative humidity in %
<var> WSPEED <col> 2 <interp> 1 <add> 0 <mult> 1 <samp> 0 !...to get wind speed in m/s
<var> WDIR <col> 1 <interp> 1 <add> 0 <mult> 1 <samp> 0 !...to get wind direction in degree
<var> udef1 <col> 0 <interp> 0 <add> 0 <mult> 1 <samp> 0 !...to get ... in ...
<var> udef2 <col> 0 <interp> 1 <add> 0 <mult> 1 <samp> 0 !...to get ... in ...
<var> udef3 <col> 0 <interp> 1 <add> 0 <mult> 1 <samp> 0 !...to get ... in ...
<var> udef4 <col> 0 <interp> 0 <add> 0 <mult> 1 <samp> 0 !...to get ... in ...
<data>
270 2.6 .7 .93 0 0
330 1.5 .6 .94 0 0
270 2.6 .7 .94 0 0
290 1.0 .8 .93 0 0
270 1.5 .8 .91 0 0
<userdefined>につづく20行ほどはヘッダーで、実測値点の緯度経度やタイムゾーン、実測値の種類を定義しています。それにつづいて実測データが<data>行以降に続きます。
緯度経度とタイムゾーン
実測値点の緯度(latitude)経度(longitude)とタイムゾーンを指定します。緯度は北半球(+)、南半球(-)、経度はグリニッジを基準に東(-)、西(+)で指定します。
タイムゾーンはグリニッジ標準時との時差を指定します。日本は+9です。
以下は東京の例です。
<longitude> -139.76
<latitude> 35.69
<gmt> 9
インターバルと開始時刻
実測データのインターバル(interval)は、実測の間隔に合わせてHourで指定します。例えば15分間隔であれば0.25を指定します。Type99では標準は1hを前提にしているため短い間隔を指定するとエラーの原因になることがあります。とくに理由がない場合は1h間隔のデータがお勧めです。
開始時刻(firsttime)は1/1 1:00から始まる通し時間で指定します。例えば、2/1 1:00から始まる実測データであれば745を指定します。
インターバル1h,開始時刻2/1 1:00の例
<interval> 1
<firsttime> 745
データの指定
<var>で始まる行ではデータの種類とカラム位置を指定します。
リストはサンプルデータ(”C:\TRNSYS18\Examples\Data Files\Type99-UserFormat.99″)の抜粋です。この例では水平面直達日射、水平面天空日射、外気温、相対湿度、風向、風速のデータを定義しています。
<var> IBEAM_H <col> 5 <interp> 0 <add> 0 <mult> 1 <samp> 1
<var> IBEAM_N <col> 0 <interp> 0 <add> 0 <mult> 1 <samp> 0
<var> IDIFF_H <col> 6 <interp> 0 <add> 0 <mult> 1 <samp> -1
<var> IGLOB_H <col> 0 <interp> 0 <add> 0 <mult> 1 <samp> 0
<var> TAMB <col> 3 <interp> 2 <add> 0 <mult> 1 <samp> 0
<var> RHUM <col> 4 <interp> 1 <add> 0 <mult> 100<samp> 0
<var> WSPEED <col> 2 <interp> 1 <add> 0 <mult> 1 <samp> 0
<var> WDIR <col> 1 <interp> 1 <add> 0 <mult> 1 <samp> 0
データの指定は値のキーワードと、<data>行以降のカラム番号の組み合わせで指定します。
この例では最初の行のキーワード IBEAM_Hは水平面直達日射、カラム位置は<col>5 です。これでデータ部分の5カラム目が水平面直達日射という意味になります。
データの定義としては図のような対応関係になります。5カラム目に0が並んでいるのは開始時刻が夜間なのと、たまたま直達日射がないため。6カラム目の水平面天空日射(IDIFF_H)は値があるので、ひどい曇天か雨天で直達日射がないようです。
キーワードは以下の通りです。
- 水平面直達日射(IBEAM_H)
- 法線面直達日射(IBEAM_N)
- 水平面天空日射(IDIFF_H)
- 水平面全天日射(IGLOB_H)
- 外気温(TAMB)
- 相対湿度(RHUM)
- 風速(WSPEED)
- 風向(WDIR)
日射量についてはすべてを用意する必要はありませんが、直散分離の関係で、最低限必要な項目が決まっています。以下のいずれかの組み合わせで指定が必要です。
- 水平面直達日射(Ib)、水平面天空日射(Id)
- 水平面全天日射(I)、水平面天空日射(Id)
- 水平面全天日射(I)、法線面直達日射(Ibn)
- 水平面全天日射(I)、外気温(Tamb)、相対湿度(RH)
<interp>は補完処理の指定です。1h間隔のデータを使って、タイムステップ0.25hで計算するようなケースで値の補完処理が行われます。0:補完なし、1:線形補完、2:は5点スプライン補完です。
スプライン補完では、実際の値よりも大きな値や小さな値に補完されることがあります。このため相対湿度へ指定すると、計算上100%を超えるケースがあります。湿度については<interp>2の指定は避けてください。
日射量に関しては、日の出、日没を考慮する補間処理が行われるため、<interp>を指定しても無視されます。
<add>, <mult>値への係数。必要に応じて指定します。(あまり使わないです)
2022/08/03 追記 この記事で使用しているデータでは相対湿度(RHUM)が小数表記のため、同じ行で<mult>100を指定して%へ換算しています。相対湿度の値がすでに%であれば<mult>1としてください。
<samp>データのサンプリング範囲の補正値。日射データなど計測した範囲の指定です。具体的には1h間隔で日射量を計測した場合、その値がある時刻の直前のタイムステップ(-1)、前後1/2のタイムステップ(0)、次のタイムステップ(1)分なのかを指定します。ケースバイケースですが実測データでは直前の1ステップ分になっていることが多いようです。
ちなみにEA気象データについては前後1/2の範囲(0)になっていますので、もしEA気象データを利用される場合は注意してください。気温、湿度などは通常は0で指定してください。
その他、詳しくはマニュアルの「4.12.2. Type 99: User-Defined File Format Data Reader / Processor」参照
データ作成の注意点
欠測データの補正
割とありがちですが、欠測でデータがない、もしくはデフォルト値が含まれていることがあります。Type65でグラフを描くと、明らかに変な値が見つかることがあります。こういった場合はなんらかの方法で補正を行ってください。
データ数は24hの倍数
<data>以降の行は24hの倍数必要です。これは仕様なので、実測データの最後が半日分で終わっているような場合は、その日のデータは捨てて24hの倍数になるように調整してください。
<interval>は割り切れる値がおすすめ
計算上はHourで扱うため、割り切れない値(例、5分間隔=0.08333333)ではエラーの原因になることがあります。(おそらく計算上の誤差が積み重なってエラーになる)
3分(0.05h)、6分(0.1h)などHourに換算して割り切れる値がお勧めです。
上述したように一般に気象データは1hour間隔のデータが多いため、特に理由がなければ1h間隔がお勧めです。
動作環境
以下の環境で動作を確認しています。
Windows10 Pro(64bit)
TRNSYS18.00.0017(64bit)
4件のピンバック
TRNSYSで実測データを利用する | 建築環境工学系日記
TRNSYSのエラーと対策 | 建築環境工学系日記
ArcClimateを使ってみたよ | 建築環境工学系日記
ArcClimateをTRNSYSで使ってみた | 建築環境工学系日記