Translate

2012/12/17

TRNSYS(2) TRNSYSの仕組み

TRNSYSは、前回でも触れたように汎用の計算ツールです。特定の計算だけではなく、目的に応じた計算が行えるようになっています。
その仕組がどうなっているのか、今回はまとめてみたいと思います。

モジュラーアプローチ


さまざまな計算に対応するため、TRNSYSではモジュラーアプローチと呼ばれる仕組みを採用しています。

これ何かというと、特定の目的に合わせた計算ではなく、シミュレーションに必要な機能を基本的な計算機能や、機器のレベルまで分解したものをモジュール、あるいはコンポーネントと呼ばれる部品で提供します。一つ一つは、例えばシンプルな単位換算機能であったり、空気線図を扱うものであったり、あるいは設備機器を表します。
また、このモジュールは、あまり中身を気にせずに使用できるようにBlack Box化されています。
【一つ一つは汎用機能】

モジュールは入力(Inputs)として、なにかデータを入れてあげれば、出力(Outputs)として答えが返ってきます。このInputs/Outputsをつなぎあわせてデータ流れ、つながりを記述してシミュレーションを組み立てていきます。

【「つなげて」シミュレーション】

かなりオープン?

ところで、この「Black Box」という呼び方ですが、プレゼンの資料には出てくるのですが、ドキュメントには一切出て来ません。説明の都合上「Black Box」という呼び方をしているようですが、これ日本語的には、あまりいい意味ではないですよね?なんというか、裏で何をしているのか分からないような、ネガティブな印象を受けます。
特に研究用途では計算内容がBlack Boxだというのは、あまり好ましい印象ではありません。

本当にBlack Boxかというと、実際にはTRNSYSに添付するドキュメントには、すべての計算内容が記載されています。ソースコードまでも製品に添付されます。(一部、商用ライセンス部分が省略されています)

ドキュメント、ソースコードの両方で公開されていますので、けっしてBlack boxではありません。
これ、かなり研究用途では便利で、ソースコードレベルで処理を調べたり、場合によっては改良することができます。

その一方で、さまざまなモジュールが無秩序に提供されるのを避けるため、インターフェースは統一されています。上の図でInputs,Outputsと書いているのがそれです。様々な機能を簡単に扱えるようになっています。詳細までは気にすることなく、シミュレーションのモデルを構築できるようになっており、そういう意味で説明用にBlack Boxという言い方をしているようです。

このモジュラーアプローチですが、割りと汎用ツールでは一般的に使われている手法です。例えば、EnergyPlusやEESLISMも同じように部品つなげてシミュレーションを組み立てていくようです。

下の図は太陽熱集熱器のモデルの例です。並べられたアイコンの一つ一つがモジュールになります。そのコンポーネントをつなぐ矢印線、これがコンポーネント間のデータの流れを表しています。

例)太陽熱集熱器モデル

見た感じで、真ん中にあるのは集熱器だな、とか、その横にあるのはヒーターだな、とか、構成される機器と、データの流れが見て取れます。モジュラーアプローチでは、このようにモジュール/コンポーネントをならべて組み立て行きます。

次回は、実際にコンポーネントを並べて計算を実行するまでのながれを具体的に見ていきたいと思います。

つづく。



2012/12/10

TRNSYS(1) TRNSYSとは?

TRNSYSって不思議なツールです。誤解を恐れずに言えば、それ自体は何の計算も出来ません。一緒に提供されるコンポーネント(計算機能が詰まっている)を並べて、つなげて、初めて計算ができるようになります。なにか特定の計算ツールというより、計算を組み立てるツールキットという感じでしょうか?個人的には開発ツールに近い印象を受けています。

別の言い方をすると、計算したい内容を知っている方向けのツールです。環境工学系の計算に使用する「式」が部品として用意されているので、それの意味とつなげ方が分ればなんでもできてしまいます。
これなんというか、WordやExcelでも一緒ですが、例えば、Excelが家計簿に使えるのは想像できても、家計簿そのものを知らないと使えないみたいなものです。家計簿の付け方がわかっていて、はじめてExcelの機能が力を発揮するのと一緒です。

なかなかそのあたりの説明が難しくて、「○○○の計算できますか?」みたいな、ピンポイントで訊かれると、どこから説明していいのか悩みます。

さてさて、そんなわけでTRNSYSを分り易く説明できないかと、入門シリーズを始めてみたいと思います。

まず1回目は「TRNSYSとは?」からです。

名前の由来


さて、このTRNSYSですが、ちょっと独特の綴りを使っています。この名前は以下の名称がもとになっています。
TRaNsient SYstem Simulation Tool

ちょっと長いですよね。後半のSystem Simulation Toolはともかく、TRaNsientってなんでしょうか?この単語を辞書で調べると、「一時的な」とか「過渡の」とか、日本語に訳しても、ちょっとピンと来ない意味があります。ちなみにtransient phenomenaだと「過渡現象」という(電気の用語?)の意味で「定常状態」に対する用語になります。(Wikipediaより

建築環境工学でいう定常計算に対して「非定常計算」、あるいは「動的計算」のような意味で使っているのじゃないかと思います。意訳すると、

非定常システムシミュレーションツール
あるいは、
動的システムシミュレーションツール

という感じですかね?製品名というより、なんだか一般的な用語みたいになってしまいます。後述しますが、開発が始まった時期(1970年代)を考えると、当時は「非定常計算」に相当するような用語がなかったのかも知れません。いまならdynamicとか、unsteadyとか使いそうです。

ともかく、動的な条件によって変化するシステム全般のシミュレーションに対応したツールに由来した名前だというのが覗えます。

でもね、省略するとき、なぜ"a"を除いて”TRN”にしたのかは謎です。スペルが覚えられにくくて困ります。何らかの理由はあるんでしょうけど、今となっては不明です。もし、ご存知の方がいらしたら連絡下さい。

開発経緯

TRNSYSの歴史を紐解くと、米国ウィスコンシン大学のSolar Energy Laboratory、通称SELにたどり着きます。このSELが米国政府から公的な支援を得てTRNSYSの開発が始まります。ちゃくちゃくと開発が進み、一般公開は1975年3月のver6.0から行われています。

TRNSYS年表
1975.03 ver.6
1975.11 ver.7.1
1976.09 ver.8.1
1977.10 ver.9.1
1979.06 ver.10.1
1981.11 ver.11.1
1983.12 ver.12.1
1990.10 ver.13.1
1994.07 ver.14.1
2000.03 ver.15.0 ←ユーザーインターフェースが充実し始める
2004.09 ver.16.0
2010.07 ver.17.0
2012.06 ver.17.1

公開からすでに40年以上の歴史があります。当初のバージョンでは太陽熱集熱器の計算プログラムだったようです。その後、開発が続けられ、現在では各種の設備機器や多数室モデルなど、幅広い用途で使用できるツールになっています。


例えば、USのLEEDの計算などでも利用されているようです。もちろん日本でも省エネ法の計算ツールとして国交省の特別認定を受けています。

日本では多数室モデルの計算で利用されている例が多いのですが、本来汎用ツールなので、さまざまな計算が可能です。
オフィシャルサイトにはアプリケーションの例が掲載れていますが、このリストを見て分かるように、実にいろいろな計算で使われています。

また、近年はユーザーインターフェースの実装が進み、より使いやすい現在の形が整います。逆に言うと、それまではテキストエディタで計算用のデータを作成していたようです。今でもテキストエディタでデータを編集する機能は健在ですが、かなり難解です。慣れるとTRNSYSの仕組みを理解する上では非常に役に立ちますが、なにか理由がない限りオススメはしません。

TRNSYSのユーザーインターフェース(Simulation Studio)

この画面でコンポーネント呼ばれる計算の部品を並べてシミュレーションを組み立てていきます。機能とデータの流れを繋いでいくだけなので、視覚的に計算の流れが見通せます。

余談ですが。。。
現在はSimulation Studioという名前ですが、以前はIISiBat(イイジバット)という名前で呼ばれていました。名前の由来は仏語で建築のなんとかいう意味の省略らしいのですが、ごめんなさい、すっかり忘れました。
 
IISiBat = Egypt?

このIISibat、なぜかアイコンがエジプトのピラミッドをモチーフにしていました。ピラミッドといえばエジプト、これはもしかすると、「IISiBat(イイジバット)」と「エジプト」のダジャレか?と疑っていましたが、単に開発担当者がエジプト好きなだけという話でした。旅行から戻った直後にデザインしたとか何とか。。。
ver.16まで使われていたピラミッドのアイコン。
コンポーネントの組み合わで計算を行うTRNSYSの仕組みを考えると、石積で築かれたピラミッドがアイコンというのも、なんだか的を得ている気がします。
話がそれました。

開発体制

SELで始まったTRNSYSの開発は、その後、各国の研究機関、開発会社など参加する組織が増え、現在は国際的な協力体制で継続的に行われています。

主な開発拠点は3つあります。

  • TESS社(US)


民間企業になりますが、SELと連携してTRNSYSを一般向けに提供している会社です。TRNSYSの総元締めといったところです。
TRNSYSの基本部分、計算のコアになる部分の開発を行なっています。
また、TESS社が独自に開発したコンポーネントをTESS Component Libraryとしてリリースしています。主に設備系のものが多く含まれています。

  • CSTB(仏)

フランスの公的な研究機関。Simulation Studioの開発を行なっています。ユーザーインターフェースの開発の他、TRNSYSで使える簡易言語「W language interpreter」やパラメトリックスタディなどの関連ツールも開発しています。

  • TRANSSOLAR社(独)

民間の開発会社になります。TRNSYSで多数室モデルを扱うモジュール、Type56を開発しています。関連して多数室モデルを扱う、TRNBuild、TRNSYS3D、それに換気計算の拡張を行った多数室モデルTRNFlowの開発を行なっています。


この3つの開発拠点に加えて、販売、サポートを行う代理店が世界各地に存在します。販売の他、各国の個別の事情に応じたサービスやサポートの提供を行なっています。



またまた余談になりますが、拠点が日本から見て欧州、北米と、ちょうど8時間ぐらいずつズレているので時々ラッキーな事が起きます。
例えば、深夜に問い合わせを出しておいたら、翌朝には対策が日本に届いている、なんてことが事が起こります。(逆に、なかなか英語が通じなくて、一日単位の応答で話が進まないってケースもあって困る事もありますけどね)

つづく。


関連リンク:

2012/12/06

TRNSYSで過去を振り返る

Clock on East MontagueClock on East Montague / North Charleston


2017/11/20追記

TRNSYS18で、ここで紹介しているType93はObsoleteフォルダ(非推奨)に移動しています。
しばらくは使用できますが、これから新しいプロジェクトを作られる場合は、同機能で新しい Delayed Inputs(Type150)がお勧めです。
ということで、以下はTRNSYS17限定の内容です。


過去を振り返る、と言っても今回タイムステップの話なんですけど。

TRNSYSで計算する場合、タイムステップごとに収束するまで計算、次のステップへという順で進んでいきます。つまりタイムステップごとに計算が完結します。
でも、時には過去のデータ、直前のタイムステップの値を参照したいケースがあります。例えば、数ステップ分の平均から何か計算したいとか。
そういう時に便利なのがInput Value Recall(Type93)です。このコンポーネント、入力した値を指定した分だけ、過去のタイムステップのデータを保存してくれます。

設定は取っておきたい値の数と、保存するタイムステップを指定するだけと簡単です。
この例では入力値2個と保存ステップを2個に設定しています。現在計算中のステップも保存数にカウントされる点に注意してください。この例だと、現在のタイムテップの値と、一つ前のタイムステップの値を参照できます。

  で、実際に書き出したのが以下になります。Excelで解りやすいように色分けしてみました。
Inp1の値で比べると、
Inp1-0 : 現在の値
Inp1-1 : 一つ前のタイムステップの値
という順番で書きだされている事がわかります。というか、Inp1もInp2も1タイムステップずれて同じデータが書きだされています。

こんな感じで、任意のコンポーネントの値を取っておけます。過去の値を参照したいケースでは非常に重宝します。

以上。

2012/12/05

TRNSYSのリストファイルのサイズが10GB超!?

複雑な計算を始めたら収束しなくなってしまいました。パラメータをあれやこれや調整しながら再計算。やっぱり途中で止まってしまうので、エラーを確認しようとリストファイル(*.lst)を開こうとしたら、開けない。
大きすぎるって、どんなサイズ?確認したら10GBを超えてました。10GBですよ、10GB!10MBでも、10kbでもなくて10GB!

このサイズだとメモ帳じゃ開くのはムリ、開発に使っているエディタでも開けない。コマンドプロンプトからTypeしてみたら、表示が終わる気配がまるでない。
思い余ってPowershellのスクリプトで表示しようとしたら、PCのメモリを使い尽くす始末。どうやって中身を見ろと。。。

頭を切り替えて、リストファイルに書き出される内容を変更できないか再検討。改めてファイルをTypeして最初の方を見たら、やたらとトレースの値を書き出している。
このトレースの出力がものすごい書きだされているので、10GBを超えるようなサイズになっているっぽい。
TRNSYSには、あるタイムステップで、イタレーションが一定回数を超えたらトレースを開始する設定があります。
【Control Cardsの設定画面】

なかなか収束しない計算だったので、あっというまに上限を超えて、書き出しを始めていたようです。
ひとまずエラーメッセージを確認したいので、ここに大きな値を設定して、どうにかどうにかエラーメッセージを確認することが出来ました。

結局のところ、やっぱり収束しないのが原因でエラーになっていた。。。これはタイヘン。





2012/12/03

TRNSYSのRadiation modeとGeometry mode

TRNSYS17以降、多数室モデルの計算ではRadiation mode, Geometry modeが追加され、より詳細な計算ができるようになっています。

この設定はTRNBuildでZoneごとに選べるようになっています。


  • Radiation modeの設定画面

直達日射、天空日射、長波長の扱いのオプションを設定します。


  • Geometry modeの設定画面

形状データのオプションを設定します。


この2つのモード、組み合わせで使用できたり、出来なかったりが存在します。普段あまり気にする必要はありませんが、計算内容によっては特定のモードを優先したいケースがあります。

例えば、計算上、建物のモデルにTRNBuildで壁を追加したいケースがあったとします。この場合、Geometry modeはManual,Mixedのいずれかになります。するとBeam RadiationはStandard modelに必然的になります。そうなると、TRNSYS3Dで日射障害物を作成していたとしても計算では利用できなくなってしまいます。(他の方法で日射の影響を考慮するなど対策が必要になります)

このように、どのモードだと、どのような影響がでるのか事前に検討したい場合、ユーザーインターフェースで2つの設定を行ったり来たりするのは少々面倒になります。(上の2つの画面で、組み合わせを検討するのって大変ですよね)

ということで、対応表を作ってみました。


2013/1/18追記
選んだModeによって*.b17以外のファイルも参照されます。これらのファイルはTRNBuildが自動的に作成します。このため普段はあまり気にする必要はありませんが、少々対応関係が解りにくいので表に追加してみました。

なんか表にすると、やっぱり解りやすい。