TypeStudioで作るTRNSYSコンポーネント(4)
前回ビルドしたコンポーネントを動かしてみます。
プロジェクトを用意する
テスト用になにかプロジェクトを用意します。
今回はExamplesからBegin.tpf(”C:¥TRNSYS18¥Examples¥BeginBegin.tpf”)を使ってテスト用のプロジェクトを作成します。
すこしコンポーネントを整理して、前回作成したコンポーネント(Type201Heater)を図のように配置して接続します。
Type138は今回作成したヒーターと同じ計算を行っています。計算結果の比較のため、Type138からRequired Energy Inputの値をType65へ出力します。
Type201Heaterの接続
Inputは集熱パネルから出口温度(Outlet temperature)、流量(Outlet flowrate)の値をそれぞれ対応するTin,mへ接続します
そしてOutputはType65へ負荷(Q)を接続しておきます。
最後に、配置されているType138の設定温度(Setpoint temperature)に合せて、Type201Heaterの設定温度(Tset)を60℃へ変更します。
そして結果がこちら。
Type138とType201の結果がまったく同じになるため、グラフがぴったりと重なって描かれています。少々分かりにくい画面になってしまいましたが、正しく動作しているようです。(注:画面はType65/Prameters/Left axis maximumを10000へ変更しています)
計算結果の検証
今回は同じ計算を行うコンポーネントがあったので、簡単に比較検証できました。普通は存在しないのでなんらかの方法で結果を検証する必要があります。
ここでは関連するデータを書き出してExcelで検証する方法をご紹介します。まずは検証用のデータを書き出すためType25を配置して、図のように接続します。
コンポーネントが計算に使用するためInputsで受け取っているパネルの出口温度、流量、それとコンポーネントの計算結果をType25で出力します。ちなみに接続は図のような感じで。。。
書き出された値を使ってExcelで計算して同じ結果になるか比較、検証します。図のようにコンポーネントが行っているのと同じ計算式をセルに入力します。
注:上の図では、なぜか0hourのQの値が変な値になっていますが、これは出力値の初期化に由来します。理由と対策は後述します。そして、QとExcelで計算した値を比べてみると、同じ値になっている事が確認できます。
Outputの初期化(おまけ)
さて、0hourでおかしな値が出力されていた件ですが、これはOutputの初期化が原因です。コンポーネントのソースコードを再確認すると Output の初期化を行っている箇所があります。(下図の赤枠の関数)
ここで、Outputの1番目、つまりQの値を”0”に初期化しています。計算の開始時点なので、”0”で問題なさそうですが、この書き方はFORTRANでは整数値として扱われます。
やや専門的な話になりますが、この関数では実数値で値を受ける取る事を期待しています。ここで整数値から実数値へのキャスト(変換)で微少な誤差が発生しているようです。
さきほどの図では見切れていてますが、値は “+4.2439915819305446-314″(指数表記)で書き出されています。実質は限りなく”0″なので実用上は問題ありませんが、計算上はこういうケースが発生します。
対策はごくごくシンプルで”0“から”0.0“へ書き換え、実数としてFORTRANが認識できるようにすれば解決です。
動作環境
以下の環境で動作を確認しています。
Windows10 Pro(64bit, 1803)
TRNSYS18.00.0019(64bit)
関連
TypeStudioで作るTRNSYSコンポーネント(1)
TypeStudioで作るTRNSYSコンポーネント(2)
TypeStudioで作るTRNSYSコンポーネント(3)
TypeStudioで作るTRNSYSコンポーネント(4)
4件のピンバック
TRNSYS,TypeStudioのテキストを公開しました。 – 建築環境工学系日記
TypeStudioで作るTRNSYSコンポーネント(1) – 建築環境工学系日記
TypeStudioで作るTRNSYSコンポーネント(3) | 建築環境工学系日記
TypeStudioで作るTRNSYSコンポーネント(2) | 建築環境工学系日記