Translate

2013/06/28

ドキュメント読んでも、やっぱりわからん

前回、TRNSYSのドキュメントの話を書いたのになんですが、読んでも分からない事ってありますよね?

身もふたもない書き出しになってしまいましたが、でも、中身以前にどう使うのか、良くわからないケースや、使い方が正しいのか確信が持てないとか。。。

そういう時、これも良くしたもので、実際に動作するサンプルが多数用意されています。ちょっと癖のある(って言っていいのかな?)コンポーネントの使い方が解らない時など、まずは試してみるのがおススメです。

標準サンプル

TRNSYSに標準で用意されているサンプル。

フォルダ: C:\TRNSYS17\Examples


30数個のサブフォルダに分かれてます。シンプルなモデルが多いので、基本的な動作を確認するのに役立ちます。

オプション製品

具体的にはTESS Component Libraryになりますが、これも大量にサンプルが用意されています。

フォルダ: C:\Trnsys17\Tess Models\Examples


15個のサブフォルダに分かれてます。一見、標準のサンプルに比べて数が少ないように見えますが、それぞれのフォルダに複数のプロジェクトを格納しているので、かなりの数に上ります。

TRNSYS-USERS MLなんかも。。。

いろいろ調べて、いまいちピンとこないときはネットで検索してみるのも手です。

個人的にまとめられているケースもありますが、圧倒的に情報量が多いのはTRNSYSのメーリングリスト、TRNSYS-USERSです。実際に使っているユーザーが質問のやり取りをしているので、なにかと貴重な情報源になります。

私がよくやるのはメーリングリストのタイトル"TRNSYS-USERS"と、調べたいキーワードを並べて検索するやり方です。

例)Type56のRadiation modeについて調べる

TRNSYS-USERS Type56 radiation mode


この例のように、キーワードに関連した検索結果が大量に表示されます。

ところで、引っかかってきた投稿を読むと、かなりの確率で、同じような質問に遭遇することがあります。やっぱり分かり難いポイントは世界共通のようです。



2013/06/26

TRNSYSのドキュメント

TRNSYSのドキュメントの話です。

一般にシミュレーションのツールって、アプリケーションの使い方はあたりまえとして、計算方法の「中身」についての記述に非常に多くのページが割かれています。

これって、テレビを買ったら取説に液晶パネルの技術解説書がついてくるようなレベルです。やはり研究用途のツールだと、「中身が見える」というのが重要なポイントのようです。

TRNSYSもご多分に漏れず、すごい量のドキュメントが付いてきます。PDF形式で添付されるものの他、HTML形式だったり、はてはソースコード(←ドキュメントか?)まで含め大量に用意されています。
でも、困ったことに慣れるまで、どこに何があるのか分かり難いんですよねー。ってことでまとめてみたいと思います。


はじめはPDF

アプリケーションの使いたや、TRNSYSのデータフォーマット、コンポーネントの機能についてPDF形式のファイルが用意されています。
スタートメニューやSimulation Stuidoの[ヘルプ]-[?]メニューの2か所から呼び出すことができます。

Vol.1 Getting Startedから始まって、Vol.8 Weather Data、それとオプション製品の数冊構成です。
印刷すると、それぞれ電話帳(そういや最近見ないですね電話帳)ぐらいのボリュームがあります。まともに読み始めると、かなりつらい量です。
何か調べるときは右上に検索ボタンが用意されているので、ここからキーワードを指定して検索するのが効率的です。
慣れてくると、目的の情報が、どのマニュアルにあるのか、だんだん見当がつくようになってきます。


コンポーネントの機能を調べる

コンポーネントの詳細については、次のPDFのドキュメントに詳しい記述があります。

  • Vol03. Standard Component Library Overview
  • Vol04. Component Mathematical Referenceに記載されています。

それ以外のもっとコンポーネントの実装というか、実際にSimulation Studioで利用する際の補足的な情報は以下の機能で確認することができます。いくつかあるので、覚えておくと重宝します。

Proforma

コンポーネントを選んで、右クリックで[Proforma]を選ぶと図のようなウィンドウが表示されます。これの「Description」タブを見るとコンポーネントの概要が書いてあります。なんのためのコンポーネントなのか確認することができます。

Variable Window

コンポーネントをダブルクリックすると、表示されるウィンドウです。まー、頻繁に使うウィンドウなので解説不要かと思いますが、Paramenter/Inputs/Outputsを確認することができます。


ここで、[more]ボタンを押すと、さらに個々の詳しい解説が表示されます。意外とこの機能は知られていないですが、パラメータの意味など不明な場合は、ここで表示される説明が参考になります。

Export as HTML...

前出のProformaのウィンドウを表示した状態でメニューから[File]-[Export as HTML...]を選ぶと、あら不思議。コンポーネントのParameter,Inputs,Outputsなどの説明が、まとめて一つのHTMLとして書き出されます。
このファイルをブラウザで開くと、コンポーネントの機能が一気に見渡せて読みやすいドキュメントになります。

以前は独立した一冊のドキュメントにまとめられていたんですが、いつのころからかHTML形式になりました。
おそらくコンポーネントの数が多く、また、バージョンアップにともなう更新が大変なので、この形式になったのだと思います。
参考:TRNSYSのコンポーネントの機能を調べる

ソースコード

これ見ると、実際何をどうしているかハッキリするので、ある意味究極の仕様書とも言えます。まあ、でも、ソースコードを見て、何やっているかわからないからドキュメントがある訳で、これを読むのは最終手段ですね。
通常は、以下のフォルダに、TRNSYSの基本処理から、コンポーネントなど内容別に収められています。

  • C:\Trnsys17\SourceCode
Type1のソースコード

新しいコンポーネントを作る際には、似た処理を行っているコンポーネントがあれば参考になります。
マニュアルに記載があると言っても、初めて使う関数など、実際に動くいているコンポーネントのソースコードは貴重な情報源になります。

以上、いろいろな情報が用意されているので、状況に応じて利用すると、効率的に作業を進めることができます。


2013/06/21

gModeller 1.8

gModellerが1.8にバージョンアップされています。
https://greenspacelive.com/web/gsl/modeller
gbXMLのエクスポート機能だけかと思ってたら、IDF対応になってます。というかSketchUpの中からEnergyPlusを呼び出せるようになってる!

それはともかく、チュートリアルビデオがあったので見てみました。建物のモデルを作る方法が、普段使っているTRNSYS3Dとまったく違うので、けっこう衝撃です。

TRNSYS3D、というかOpenStudioのインターフェースでは、プログラム側で部材とか、隣接関係を自動判定させるなど、なるべく自動的にモデルを作ろうとしています。

一方、gModellerでは、基本的なモデリングはSketchUpの素の機能を使って作り、その上で手作業で壁や開口部を認識させています。一見手間がかかりますが、モデル作成としては確実なやり方です。

ソフトウェアのデザインの考え方の違いと言ってしまえばそれまですが、同じようなことをやろうとしているのにアプローチの仕方が全然違うので、面白いものです。



2013/06/15

gbXMLがちゃくちゃくと

ちかごろまったくフォローしていたなかったんですが、数日前に送られてきたメール見てびっくり。
いつの間にかDOE(米国エネルギー省)の支援が入ってますね。

結果としてTest caseとかValidationの仕組みが整いつつあるようです。いままで、というか以前に調べたときはサンプルが少なすぎで、結構大変でした。
こういう仕組みが整ってくると一気に普及に弾みが付きそうですね。
http://gbxml.org/

いつのまにかTwitterのアカウントもできるている!
ひとまずフォローしとくか。。。

2013/06/06

TRNSYSでスケジュール設定 x 3本勝負 (4) おまけ

スケジュール設定のネタは3回で終わらせるつもりだったんですが、あとから別の方法もあるなというのを思付きました。

前回までの3本とも、結局のところはHeating Powerの値を使ってOn/Off状態を作り出していました。でも、よく考えたら条件さえ合えば設定温度でもできそうです。

通常、暖房がOnになると設定温度までの負荷を計算します。でも室温が高い場合には、そもそもOnにしても暖房は入りません。
何が言いたいかというと、つまり設定温度が室温より低ければ実質的にOffの状態と同じになります。そう考えると、Offにしたい時間帯だけ暖房が入りようがない、想定される室温よりも低い設定温度にすれば同じ意味なります。

で、試してみたのが以下の設定。

設定温度のスケジュールでOn/Off


TRNBuildで、固定にしていた暖房の設定温度をスケジュールとして入力します。逆にHeating Powerはunlimitedに戻しておきます。
 Scheduleを選んだら、式の所に"-100"を入れておきます。理由は後述します。
スケジュールの入力では09:00-20:00の時間帯の値に"120"と入れておきます。
ひとつ前の画面で式に"-100"をいれているので、この時間帯は設定温度"20℃"の意味になります。

はじめから"20"を指定すれば済みそうな話ですが、Offにしたい時間帯の設定温度を"-100℃"とか、暖房としては有り得ない値にしたいために回りくどい指定をしています。(Offのところに直接"-100"を入れらればいいのですが、この項目は0以上の値しか受け付けてくれないのです)

これで暖房設定温度のスケジュールとしては、

00:00-0900  -100℃   暖房設定として有り得ない低さなので実質Offの状態
09:00-20:00     20℃     室温に応じて負荷が計算される。
20:00-24:00  -100℃   暖房設定として有り得ない低さなので実質Offの状態

と、こんな動きになります。結果的にはHeating Power + Scheduleで設定したスケジュールと同じ動きになります。

冷房の場合は動きが逆になるので、Offにしたい時間帯は設定温度を50℃とかありえない温度にすればOK。(熊谷あたりだと、それでも冷房入るか???)

かなり無理やりなワザですが、単純に暖房をOn/Offするのであれば、こういうのもありかもしれません。
この方法、条件判定など絡でくると分かり難くなるので、普段はやらない方がいいと思いますが、裏ワザとして覚えておくと、いざというときに役に立つかもしれません。

あ、そうそう除湿とか加湿の時は、これと似たような方法を使うことがあります。
例えば、09:00-20:00 は除湿設定60%、それ以外の時間帯は除湿100%(これじゃ除湿しようがないので実質的にOffの状態)というような使い方をします。

TRNSYSでスケジュール設定 x 3本勝負 (3) 条件判定
TRNSYSでスケジュール設定 x 3本勝負 (4) おまけ


2013/06/04

TRNSYSでスケジュール設定 x 3本勝負 (3) 条件判定

さて、前回はType14を使った設定例をご紹介しました。

シンプルなスケジュールであればEquationを使って同じような設定も可能です。
例えば、こんな感じ。

hour = mod(TIME,24)
OnOff = and(ge(hour,9),lt(hour,20))
 
この例では剰余演算mod()でTIMEを時刻(hour)に換算、その値を比較してOnOff状態を判定しています。
 
前回のType14に換えて、ここで計算したOnOffをType56へつなげば09:00-20:00の間だけ暖房がOnになります。

さて、ここまで紹介した例では、いずれもスケジュールが固定のケースでした。でも、実際計算する場合って、もうちょっと複雑な条件にしたいですよね?
例えば、暖かい日には暖房をOffにしたいというケースってないでしょうか?
そういう場合、既存のコンポーネントとEquationを組み合わせると簡単に条件を設定することができます。

Type14とEquationを組み合わせ条件判定


前回作成したType14のスケジュールとEquationで条件判定をしてみます。この例では、

  • 09:00-20:00 で暖房On
  • ただし、外気温が20℃以上ならOff

という条件で設定します。

コンポーネントのつなぎ方としては次のような構成をイメージしてください。


コンポーネントの準備

まずType14、こちらは前回そのままの設定です。ただし、直接Type56へつなぐのではなく、後述するEquationへつなぎます。

次はEquation。これで条件判定します。まず外気温とスケジュールの値が必要になるので、受け取るためのInputを追加します。
Tamb:外気温
Schedule:暖房のOn/Off



そして気象データリーダーからは外気温を受け取るように接続します。

さらにType14からはスケジュールを受け取るように接続します。

2016/5/24 追記
上の図では「Instantaneous value」から「Schedule」へつないでいますが、ここは
「Average value」を使うのが適切なようです。

Equationで条件判定

さて、条件判定ですが、冒頭の例のようにand()関数で判定を行います。この関数は指定された2つの値が真であれば真の値(1)を返します。
スケジュールについてはOnOff状態をすでに受け取っていますので、外気温の状態を20℃未満であれば真(1)、20℃を超えていれば偽(0)とした値で処理します。

LowTemp = lt(Tamb,20)! Tambが20℃未満なら1,以上なら0
OnOff = and(LowTemp,Schedule) !LowTemp,Scheduleがどちらも1なら1

これで、外気温とスケジュールの判定処理が出来上がりました。後は、OnOffの値をType56へつなげばOKです。

この例のようにコンポーネントを組み合わせることで、条件判定を設定することができます。

つづかない。
2013/06/06追記
もう一回つづきます。

2013/06/03

TRNSYSでスケジュール設定 x 3本勝負 (2) Input

前回、なにも考えずに暖房スケジュールを題材ではじめてしまいました。よく考えたら梅雨の時期に暖房はないですよね。大失敗です。

しかし、いまさら冷房設定に話を置き換えるのもなんなので、このまま暖房設定の例で突き進みます。

Inputを使ってOn/Off設定

さて、前回はTRNBuildの中でOn/OffをScheduleを選択して設定しましたが、その際に他の選択肢としてInputという項目も表示されていました。



このInputはTRNSYS全般で、コンポーネントをつなぐときに出てくるあのInputです。これを選ぶと外部のコンポーネントから値を受け取ることができます。外部でスケジュールの他、コンポーネントを組み合わせて条件判定によるOn/Offを受け取ることができます。

という事で、Inputを選んで設定してみましょう。
1)まずはInputを選択
2)値は前回同様に大き目の値を入力
3)"new"を選んで新規のInputを作成
4)分かりやすい名前を指定。この例では"HEATING_ONOFF"としています。
ここまで指定すると、Type56に新しいInputが追加されます。

新しいInputを反映させるために、Simulation Studioに戻ってBuilding(Type56)のアイコンを選んで、右クリックで表示されるメニューから[Update building variable list]を実行してください。

Tアイコンをダブルクリックして確認すると、TRNBuildで追加したInputが追加されているのがわかります。(下図)

Type14でスケジュール設定

さて、これでInputの設定はできましたので、次は外部のコンポーネントを使ってスケジュールの設定を行います。TRNSYSにはこういう時に便利なForcing Functionsというコンポーネントが用意されています。
このコンポーネントでは時刻に応じた値を設定することができます。何種類か用意されていますが、ここではGenerarlフォルダからType14hを配置します。
このコンポーネントにはプラグインが用意されているので、これを使ってスケジュールを設定します。入力は時刻とその時刻の値のセットで指定します。
グラフを確認しながら値を入力。

Type14とType56を接続する

ここまで設定が終わったら、あとはType56に接続します。
これでType14hで設定したスケジュールの値がType56でInput/HEATING_ONOFFへ入力されるようになります。

この例だと結果的に計算としては前回とまったく同じになりますが、TRNBuildを起動しなくてもスケジュールの変更が可能になります。
スケジュールを変更して何ケースか計算を行う場合など、Type14を複数配置して切り替えるということが簡単にできます。


つづく。。。