TRNSYSのWBGT(暑さ指数)コンポーネント
2019年6月24日
2020年7月13日
2019/07/03 コンポーネントを公開しました。
WBGTコンポーネント
そろそろ夏が近づいてきたので、暑さ指数、WBGT(Wet Bulb Globe Temperature) のコンポーネント作成しました。
TRNSYSにはWBGTを計算する機能はありませんが、TypeStudioを使うと割と簡単にコンポーネントとして追加する事ができます。
TRNSYSでWBGTを計算する方法について詳しくは「なんでもよへこ。ときどき環境工学系」でEquationを使った例が紹介されています。
室内のWBGTを計算してみる
ここで紹介されている室内のWBGTの計算方法を使って、新しいコンポーネントを作成しています。Equationと比べて利点がいくつかあります。
- Equationを用意しなくてもOK
- 複数Zoneに対応(とりあえず最大20 zonesとしました)
- 単位チェック(間違った単位の値が入力されるとワーニングメッセージを出力します)
これから試して問題なければ公開します。日本語サプリメントに追加するかな?
TypeStudioのサンプルとしても分かり易い例なので、以下ソースコードから抜粋です。
値の取得処理
1~20 Zone対応で、それに合せてInputの個数を可変で処理しています。
!------------------------------------------------------------------------------------------
!Do All of the "Very First Call of the Simulation Manipulations" Here
If(getIsFirstCallofSimulation()) Then
!get the param1, number of WBGT.
nWBGT = JFIX(getParameterValue(1)+0.1)
if(nWBGT > MaxWBGT) then
Call FoundBadParameter(1,'Fatal','The number of the WBGT to be calculated must be between 1 and 20.')
endif
!Tell the TRNSYS Engine How This Type Works
Call SetNumberofParameters(1) !The number of parameters that the the model wants
Call SetNumberofInputs(2*nWBGT) !The number of inputs that the the model wants
Call SetNumberofDerivatives(0) !The number of derivatives that the the model wants
Call SetNumberofOutputs(nWBGT) !The number of outputs that the the model produces
Call SetIterationMode(1) !An indicator for the iteration mode (default=1). Refer to section 8.4.3.5 of the documentation for more details.
Call SetNumberStoredVariables(0,0) !The number of static variables that the model wants stored in the global storage array and the number of dynamic variables that the model wants stored in the global storage array
Call SetNumberofDiscreteControls(0) !The number of discrete control functions set by this model (a value greater than zero requires the user to use Solver 1: Powell's method)
!Set the Correct Input and Output Variable Types
do i=1, GetNumberofInputs()
Call SetInputUnits(i,'TE1') ![C]
end do
do i=1, GetNumberofOutputs()
Call SetOutputUnits(i,'TE1') ![C]
end do
Return
EndIf
WBGTの計算
こちらも可変で1~10の計算値をOutputで処理しています。
!------------------------------------------------------------------------------------------
!Set the Outputs from this Model (#,Value)
do i=1, nWBGT
Call SetOutputValue(i, 0.7*wetBulbTemp(i)+0.3*globeTemp(i) ) ! WBGT
end do
動作環境
以下の環境で動作を確認しています。
Windows10 Pro(64bit, 1803)
TRNSYS18.01.0001(64bit)
1件のピンバック
TRNSYSで暑さ指数と不快指数 | 建築環境工学系日記