TRNSYSのWBGT(暑さ指数)コンポーネント

2019/07/03 コンポーネントを公開しました。
暑さ指数と不快指数コンポーネント公開

そろそろ夏が近づいてきたので、暑さ指数、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)

Pocket

1件のピンバック

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です