TRNSYSのエラーとコンポーネントオーダー

コンポーネントの配置と計算

普段あまり意識していませんが、コンポーネントの配置って、データの流れに沿って並べていないでしょうか?

TRNSYSのデータの流れ
TRNSYSのデータの流れ

この図はサンプルの例ですが、

  • 左側に気象データやスケジュールなどデータを出力するコンポーネント
  • 真ん中は計算の主になるコンポーネント
  • 右側に計算結果を処理する出力用のコンポーネント

という順で並んでいます。計算の元になるデータは左側(上流)、出力は右側という並びになっています。(この並び順がTRNSYSでは一般的な配置です)

TRNSYSの計算順はといえば

ところがTRNSYSの処理順をSettings(Control Cards)で確認すると、意外にも順番がバラバラです。下の図のようにType1b(集熱パネル)、System_Plotter、Type15-6(気象データ)。。。のような並びです。

Component Orderで処理順を確認
Component Orderで処理順を確認

最初に集熱パネルの計算をして、いきなり結果を出力、その後に気象データの読み出し処理と、なんか順番がめちゃくちゃですよね?

ちょっと考えると変な順番に見えますが、複数のコンポーネントを繰り返し計算、収束判定しているので、基本的には順番に関係なく処理できます。

まれにエラーになる事も。。。

コンポーネントに組み合わせによって、まれに並び順が原因でエラーになる事があります。以下は実際に発生したエラーの例です。計算開始直後にType56でなにやらエラーが発生しています。

*** Fatal Error at time : 1.000000
Generated by Unit : 6
Generated by Type : 56
Message : The GetRadiationData routine has been called before the GlobalRadiationData array has been allocated.

これはTRNSYS内部の関数で呼び出し順が逆転しているのが原因です。たまにこういうのがありますが、エラーメッセージを調べるとコンポーネントの処理順が関係している事が推測できます。

こういうときはSettingsComponent Orderタブで、Optimize components order をクリックして並び順を最適化すればOKです。(手動で並び替えることもできます)

「Optimize components order」で処理順を最適化
「Optimize components order」で処理順を最適化

最適化する前後の画面を見比べると、後の画面ではType15-6(気象データ)、Type14h(スケジュール)、Type1b(集熱パネル)。。。と、データの流れに沿った処理順になっている事が分かります。

この順だと収束も速くなるので、計算時間もほんのちょっと短くなる可能性があります。並び順が原因で発生するエラーは、大抵は計算直後に発生します。なにか新しいプロジェクトでは、ひとまずOptimize components order をクリックしておくのもありかもです。

とはいえエラーが発生した際に手掛かりになるのはエラーメッセージです。メッセージから発生箇所と原因を調べて対策を取ることが基本です。

参考:TRNSYSのエラーメッセージの読み方と対策

余談

計算の途中で発生するエラーは並び順には関係なくて、コンポーネントのつなぎ方が違っていたり、計算値が間違っているなど、他の原因が考えられます。

こういうときはエラーが発生しているコンポーネントの上流側の計算値を書き出して検討したり、接続に問題が無いかなど調べて対策を施します。(いま思い出したけど、上流の値調べたら湿度100.2%とか計算上あり得ないケースとかありました)

動作環境

以下の環境で動作を確認しています。
Windows10 Pro(64bit, 1803)
TRNSYS18.00.0019(64bit)

Pocket

コメントする

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