TRNSYSのコンポーネント作成中に、計算過程をタイムステップ毎、書き出してチェックしたい場合。
write文で書き出せばいいじゃんと思って書き出そうとすると、大概、収束するまでのイテレーション単位で書き出されます。
通常TRNSYSのソースコード中でcallしているSetOutputValueは、収束後の結果を出力してくれるsubroutineなので、それを使ってとりあえず書き出すという方法もありますが、チェックしたい項目が多いとそれも面倒です。
イテレーション単位ではなく収束した後の値をタイムステップ毎に書き出すには、最後に処理が通る場所、getIsEndOfTimestepのif文の中で記述すればOKです。
!Perform Any “After Convergence” Manipulations That May Be Required at the End of Each Timestep
If(getIsEndOfTimestep()) Then
!====== ここに記述する。 ======
! Open文
! write文
! Close文
!======
Return
EndIf
open文のpositionでappendを指定するのをお忘れなく~。(タイムステップ毎上書きされちゃいます)
debugの機能と組み合わせて使うとより楽ちんです。
以上、OVER!!