生物と気象 (Clim. Bios.) 11: H1–7, 2011

会員の声・寄稿

視覚的シミュレーションの勧め
高見晋一( 近畿大学大学院農学研究科 )ある。そのため，組み立て・操作が容易である。第三に，1. は じ め にこの組み立て・操作作業を通じて，要素間の種々のつなわが国の農学・生物学分野にシステムダイナミックスにがりを考察し，試すことができる。そのため，対象を一つ基づくコンピュータシミュレーション技術が紹介されてからの「システム」として扱うことが容易になる。システム的( 高倉，1977)，もう 30 年以上になる。それ以来，このな思考が，自然に誘発され，自由自在に展開できる。第方法の重要性は広く認識されるようになってきた。それは，四に，数値計算のための差分化も，それを解くためのプ実験が不可能なあるいは困難な問題へのアプローチに欠ログラミングも必要としない。そのため，外因と内部構成かすことができない。また，実験が可能な場合でも，そ要素との関係，構成要素間の関係等に関する仮説の構築の設計に，そして，結果の一般化に大きな役割を果たす。

といった，数値モデル作成上の，ひいては問題解決のた

しかし，そのような認識にもかかわらず，またすぐれたテめの，本質的な作業に力を注ぐことができる。

キスト (Takakura and Son，2004) 等の刊行にもかかわ

本稿では，以上のことを例証するため，2 つの事例をらず，いまだにこの方法が十分，普及しているとはいい紹介する。一つは，「ソーラーポンプ ( 太陽熱水輸送・蒸留装置 ) の性能評価」( 市川，2010) である。これは，がたい。
普及を妨げている原因としては，2 つのことが考えられフィードバックのないごく単純な物理システムである。こる。一つは，われわれの取り扱う対象が通常，熱と物質のような単純な対象であっても，STELLA が実験の設の流れを介した，多くのフィードバックを含む複雑なシス計，取りまとめに有用であることを示す。もう一つは，「水テムであることだ。したがって，このシステムの構造をどう資源変換型」の植物生産モデル ( 高見，未発表 ) である。

とらえるかが第一の関門となる。多くのプログラミング言

STELLA によって，システムの構造化とフィードバックの語ではこの構造化が容易ではない。われわれが対象とす取り扱いが容易に行なえることを示す。

るシステムでは，普通，物質とエネルギーの流れが中心

2. ソ ー ラ ー ポ ン プ の 性 能 評 価 モ デ ル

であるのに，プログラミングのフローチャートは情報の流れ ( 計算手順 ) を取り扱うからだ。もう一つは，数理解析「ソーラーポンプ」はベラニ型アトモメータ ( 蒸発計 ) をあるいは数値計算上の問題である。多くの生物系学徒に蒸留装置に応用したもので，水を汲み上げながら，蒸留とって，現象を数式 ( 通常，微分方程式 ) で表し，それを行なうことが出来る ( 市川ほか，2011)。先端にポーラを計算機で処理できるようにプログラム化することは，相スカップを装着した導水・蒸発管と凝結器が基本的な構

当な困難をともなう ( 注 1)。

成要素で，導水・蒸発管を水で満たし，水源に浸す ( 市

このような困難性は，近年，パソコン上で手軽に操作

川ほか，2011 の Fig. 1)。すると，ポーラスカップ表面か出来るシミュレーションソフトの開発・普及によって，著しら蒸発が生じるので，それをガラス球で凝結させて蒸留水く軽減されてきた。その代表的なものの一つがここで取りとして回収する。

上げる STELLA である ( 注 2)。STELLA は次のような2.1 モデルの構成
時刻 t における水源水量，凝結器内付着水量，および造水量をそれぞれ，R(t)，C(t)，および D(t) とする。また，水源からの単位時間あたり蒸発量を FC，凝結器から回収槽への流出量を FD，そして以上の経路から系外へのリーク量を FL で表す。すると，STELLA では，現存量はストック ( □のアイコン ) で，「流量」はフロー ( バルブつき矢印 ) で表すので，装置との対応から，直感的に図1 のようなマップを描くことができる ( このマップでは R(t)特徴を持つ。第一に，通常の実験系と同様に，“装置” ( モデル ) を視覚的に組み立て，直感的に操作できる。そのため，計算を行なうというより，通常の実験を行なう感覚に近い。第二に，“装置” の部品が少なく，規則が簡単でhttp://wwwsoc.nii.ac.jp/agrmet/sk/2011/H-1.pdf
2011 年 9 月 29 日掲載
Copyright 2011, The Society of Agricultural Meteorology of Japan

http://www.agrmet.jp/sk/2011/H-1.pdf H1

生物と気象 (Clim. Bios.) 11, 2011

R ^t h = R ^t - dt h - FCdt

�(1)

C ^t h = C ^t - dt h + ^ FC - FLh dt - FDdt

(2)
D ^t h = D ^t - dt h + FDdt

��(3)ただし，ここで dt は収支計算を行なう時間間隔で，この間，各フロー (FC，FD および FL) は一定とする。すると，

�

各ストックの初期値とフローの値を与えることによって，一定時間間隔 dt 毎に各ストックの値が計算される。

��次は，フローを決める ( 図 2)。まず，FC については，��日射量に比例すると仮定しよう。すると，比例定数を f として次のように与えられる。

��FC = f $ S(4)そこで，STELLA では，f と S をコンバータのアイコン
図1

ソーラーポンプにおける貯留量(R, C, L, D)とその間( ○ ) で FC の側に置き，そこから→で FC のバルブとつの流量(FC, FL, FD)との関係なぐ。→の向きは影響を及ぼす変数から影響を受ける変数に向ける。そして，バルブの中に式 (4) を書き込む ( 注3)。次に，リーク FL については FC に比例すると仮定

�するのが，ありそうでかつもっとも簡単な関係だ。さらに，FD についてはリークを差し引いた残りについて，次のよ����

うに仮定するのが，これまたありそうでかつもっとも簡単�な関係だ。凝結器内の凝結量がある一定量 (Cmax) にな��るまでは，正味流入する水蒸気 (FC–FL) は全て凝結器内にたまり，それを超えると全て回収槽に溜るとする関係である。これは，よく使われる「バケツモデル」にほかな�らない ( 注 4)。以上のことを数式で表すと次のようになる。

FL = a $ FC

��

(5)

��FD = ^ FC - FLh - 7C max - C ^t - dt hA /dt�(6)
FC の場合と同様，これらの式中のパラメータをコンバータでマップに表し，かつフローをそれぞれ式 (5) と (6) で定義すると，モデルは一応，完成である ( 図 2)。すると，このモデルに，3 つのパラメータ値 (a，f，Cmax) と日射量 S および各ストックの初期値を与えることによって，各���
図2

図1に各流量 (フロー)をコントロールする要因 (a, S,f, Cmax)をコンバーターで付け加えたマップ(市川2010).

ストックの時間的変化が計算できる。

2.2 パラメータ値の決定
パラメータは，装置の寸法，構造，材質等に応じて，それぞれの装置に固有の値をとると考えられるので，実験などを R と記す )。
この図をかくことは，実は以下の 3 つの収支式を書くこによって決めなければならない。では，何をどう測れば求とと同じである。いいかえれば，STELLA では式 (1) 〜 (3)まるだろうか。まず，Cmax は凝結器に最終的に残っていをプログラミングするかわりに図 1 を描けばよい。

る水量に等しいとみなしてよいだろう。それ故，凝結器のH

2高見：視覚的シミュレーションの勧め������������������

������
������������

��

��

��

��

��

���

�������

図3 蒸留量Dについての計算値と測定値の時間変化(市川，2010)最初と最後の質量差を測ればよい。次に，f は式 (4) で S13 ℃で，2.2 の実験時よりも 10 ℃ほど低かった。気温がf を左右することは，実は，一般の太陽熱蒸留装置で既にをもとめてその平均を取るのは賢明ではない。それよりも， 分っている。それにもかかわらず，2.2 の段階で f を気温
この式を積算して得られる次の関係式を使えば，一気にの関数 ( 注 5) として求めておかなかったために，ここでと FC が分れば求まる。しかし，この式で一定時間毎に f安定した平均的な値が得られる。

f = RFC RS = # R ^t h - R ^0h- RSの検証は不完全なものになってしまった。もし，上記のモデルで，気温の影響を組み込んだ f 値を用いて測定値と(7)同じ蒸留量が得られれば，任意の地点の日射と気温を使っここで，RFC は式 (1) から分るように，貯水槽の最初て，その地点での性能が評価出来る。と最後の質量差 {R(t)–R(0)}，つまり貯水槽から蒸発で失われた水量に等しい。最後に，a は式 (5) から求まる。
ただし，これもこの式を積算した関係，つまり積算リークはじめに物質生産過程をモデル化する。枯死・脱落量と積算蒸発量の比として求めればよい。

a = RFL # R ^t h - R ^0h-

3.「水資源変換型 ( 注 6)」植物生産モデルなどが な いとす れ ば， ある時 点 の 現 存 量 (t/ha)( 注 7)
は，単位時間当りの純生産量 NPP (t/(ha・yr)) というフ(8)ローが流れ込むストックとみなすことができる。したがっ以上のような用意をした上で，3 日間野外で蒸留実験て，図 4 のようなマップを描けばよい。すでに 2 で述べたを行ない，日射量と気温を測定しながら，各ストックの時ように，STELLA ではこの図を描くことによって，ある時間変化を測定した。その結果，貯水槽から蒸発した水は間間隔を dt として次の計算が行なわれる。
35.1 g ({R(t)–R(0)}) で，そのうち 4.3 g が凝結器に残存ある時点の現存量 = その前の時点の現存量
し，0.8 g (RFL) が系外へリークして失われ，結局，残り+ NPP $ dt
30.0 g (D (t)) が蒸留水として回収された。また，この間の積算日射量は 48.6 MJ/m2 であった。したがって，各(9)パラメータの値は，Cmax ＝ 4.3 g，f ＝ 0.722 g/(MJm–2)，
つぎ に行 なうのは， や はり 2 と同じく，NPP を決め
a ＝ 0.023 と得られる。
ることである。ここで は，NPP がよく知られ た， 蒸 散
2.3 モデルの検証(mm/yr) に比例する ( たとえば，Cambell and Norman，パラメータの値を含めたモデルの妥当性を同様の野外
1998) という関係式を用いる。
実験で調べた。その結果，上記のパラメータ値と日射量

NPP = WUE $ _蒸散 飽差iの測定値 (Table 5，市川ほか，2011) から計算した回収蒸留量 26.7 g は測定値 11.9 g を大幅に上回った。そこで，(10)

ここで比例定数 WUE は水利用効率である。2 と同じく，この測定値が再現出来るように f を求め直すと f ＝ 0.377

右辺の量を図に付け加え，そこから矢印を NPP にのばしg/(MJm–2) となった。そして，この値を用いると，積算蒸留量の時間変化も正確に再現出来ることが認められた ( 図3)。
パラメータ f が 2.2 で得られた値の半分ほどになったのて式 (10) を書き込めば，物質生産過程のパーツが一応は，気温の影響と考えられる。測定期中の平均気温は約散量を分離することにする。なお，WUE と飽差の単位はH完成する。しかし，野外で植生からの平均的な蒸散量を求めるのは非常に困難だ。そこで，ここでは，まず比較的求めやすい蒸発散量 (mm/yr) を求め，つぎにそれから蒸3生物と気象 (Clim. Bios.) 11, 2011

図4 「水資源変換型」バイオマス生産モデル

表 2 に記した通りである。

貯水量 (t) = 貯水量 (t - dt)+ 8^降水 $ 灌漑h - 蒸発散 - 流出B $ dt

蒸発散を決める過程 ( 水文過程 ) は，次のように組み立てる。まず，マップ画面に土壌の貯水量というストックをおき，それへの流入フロー ( 降水・灌漑 ) と流出フロー(13)( 蒸発散と流出 ) に付け加える。次に各フローを決める。

ここで，蒸発散の決め方について補足が必要である。

一つは流出で，これは貯水量が限度 ( 最大貯水量 ) をこ

蒸発散は，式 (12) で与えたからといって，常に蒸発要求えると生じるので，次式で与える。これらストックの単位に等しくなるのではない。実は，次のように決められている。

は mm，フローの単位は mm/yr である。

蒸発散 = Min #可能水供給量，蒸発要求- (14)流出 = 降水 $ 灌漑 - 蒸発散- _最大貯水量 - 現在の貯水量i dt

つまり，蒸発散は蒸発要求 ( 可能蒸発 ) が「可能水供給(11)しくなるのだ。これは，式 (11) 〜 (13) が同時に成り立つ量」を下回れば蒸発要求に，上回れば可能水供給量に等という条件のもとに，貯水量というストックが負の値を取つまり，降水・灌漑から，蒸発散を引き，さらに土壌がその時点で最大限貯留できる量を差し引いた分が流出すらないよう予めセットしておいたからである。こういったこるとする。これは 2 で出てきたバケツモデルに他ならない。とができるのは STELLA の特長の一つだが，ここは分り二つ目は蒸発散で，蒸発要求 ( 可能蒸発 ) と次式で関係難いかもしれない。その場合は，式 (12) の代わりに，式(14) を使えばよい。なお，ここで，可能水供給量とは次づける。

蒸発散 = 蒸発要求式で定義される量のことである。

(12)

可能水供給量 = 降水 $ 灌漑+ 7貯水量 ^t - dt h - 貯水量 ^t hA dt

以上でモデルの構造はできたので，貯水量の初期値，および一つのパラメータ ( 最大貯水量 ) と 2 つの境界条件( 降水・灌漑，蒸発要求 ) に値を与えれば，一定時間 (dt)(15)ごとの貯水量が次式 ( 注 8) で自動的に計算される。

降水・灌漑だけでなく土壌水分が減少する分も勘定に入っていることに留意しなければならない。
最後に，蒸発散から蒸散を分離するために，蒸散割合( 蒸散 / 蒸発散 ) という量を導入する。すると，この量をH

4高見：視覚的シミュレーションの勧め
表1 現存量と蒸散割合(蒸散/蒸発散)との関係

102030405060708090 100
0 0.305 0.700 0.785 0.895 1.00 1.00 1.00 1.00 1.00 1.00

現存量(t/ha) 0蒸散割合

表2 環境条件とシステム特性値
環境条件
年12345678910111213

蒸発要求

システム特性値

降水プラス灌漑

(mm)
(mm)
100
1000
200
1000
300
1000
400
1000
500
1000
600
1000
700
1000
800
1000
900
1000
1000
1000
1250
1000
1500
1000
2000
1000
#((g/m3)(t/ha)/mm

WUE 最大貯水量(g/m3)#(mm)
0.00.520
0.00.520
0.00.520
0.00.520
0.00.520
0.00.520
0.00.520
0.00.520
0.00.52000
0.5
20
0.00.520
0.00.520
0.00.520飽差

図5 蒸発散，蒸散，NPPならびに現存量の経年変化を示す出力画面蒸発散に乗じれば，蒸散が得られる ( 図 4)。蒸散割合はめなければならない。ここでは , ありそうで簡単な関係を現存量の関数として与えることにしよう。そのおおよその想定した。このように，変数間の関係を式ではなく，図形は現存量が 0 のときの 0 から次第に増大し，現存量があるいは数値データとして簡単に与えることができるのもある閾値を超すとほぼ 1 に近い一定の値に落ち着く ( つSTELLA の特長である。
3.2 シミュレーション

まり，蒸発散はほとんど全て蒸散で占められる ) としてよ

こうして得られたモデルを用いて，表 1 のような蒸散いだろう。具体的にどういう関数形をとるかは経験的に決H5

生物と気象 (Clim. Bios.) 11, 2011

割合をもつ仮想的な永年性作物 ( あるいは樹木 ) につい

STELLA は isee systems 社 の 製 品 で あ る。 そ の
ホ ー ム ペ ー ジ から (http://www.iseesystems.com/) 無てシミュレーションを行なった。成長に伴って年々水供給量 ( 降水＋かんがい水量 ) を増やし，その他の環境条件料の試用版が入手できる。チュートリアルや豊富な例題

は一定とした ( 表 2)。12 年目より後の年は、12 年目とも用意されている。システムダイナミックスの生みの親全て同じにし，16 年後までのシミュレーションを行なった。

J.W.Forrester は，今年 93 歳，いまも元気で STELLA

その結果 ( 図 5)，12 年目までは現存量が指数関数的に，を使って子ども達にシステム的思考法を教えているそうだ。

それ以降は直線的に増加することが認められた。

なお，Vensim社(http://www.vensim.com/software.html)

このシミュレーションでは，植生の発達につれて，降水からはもっと廉価なソフトが出されている。STELLA とほ

プラス灌漑で十分な水を与えた。そのため，蒸発要求がぼ同じような機能をもつという。こちらは教育目的での使蒸発散だけでなく蒸散をも律速するまでは，植生は必要用が無償だ。どちらも日本語版が利用出来る。

なだけ水を蒸散として使うことができた。このように，はじめのうちは，資源の制約がないため，指数関数的ないい

注

かえれば複利的な生長が続いた。しかし，その後は蒸発(1) 微分量は分り難い。私たちがふつう目にしたり測った要求の制約のため一定量の水しか蒸散で使えず，直線的りするのは積分量だからだ。その上，物理科学で発な生長になったことが分る。

達した方法では，通常，対象とするシステムの挙動

以上のように，シミュレーションによって，資源量と生産を微分方程式で表し，それをある特定の条件下で解との間の一般的な関係が再現できた。したがって，このいて ( 積分して )，観測，測定された挙動が再現さモデルは基本的には妥当だと考えられる。ただし，これでれるかどうかを調べる。つまり，一旦微分したものを，モデルの検証をしたことにはならない。本当の検証を行な

また積分して ( あるいは差分を連続的に繰り返して )うには，環境条件を測定しながら，蒸散割合を決定するもとに戻すということを行なう。一般性の高い法則 ( 通常，微分方程式で表される ) を求めるのならそれも実験によらなければならない。

必要だが，私たちが対象とする現象の多くについて

4. お わ り には，それは回り道だ。STELLA では最初から差分物質生産や生態系といったようなシステムを取り扱うにの積み重ねでストックの変化を追うことができる。

はどうしてもシステムダイナミックス的な考え方が必要であ
ここで取り上げたようなシミュレーションソフトを使うのが(2) 他に同様のソフトとしては Berkley Madonna などがある ( 高倉，2009)。
(3) STELLA では，式を入力する画面を開くと，関連の得策である。多くの人にとって，微分方程式から出発し汎変数が現れるので，必要なものを選び，演算記号でる。統計的方法では，フィードバックが取り扱えない。また，用言語を使うシミュレーションに比べて，ずっと分りやすく結べばよい。

簡便である。さらに，STELLA では視覚的・直感的にモ(4) 小さな孔のあいたバケツに水道から水を入れる場合デル化を進めることができる。

を想定しよう。流入量が孔から漏れる量より多ければ，実験装置をくむ場合，パーツ毎にその作動を確認しなその多い分は全てバケツに溜り，一杯になるとそれがら作業を進める。全部組み上げてチェックするのでは遅以降の正味流入量は溢れだす。

(5) 実際には式 (4) の代わりに，FC を S と気温 T の関数，つまり FC ＝ e・T・S とし，この比例定数 e をパラメーい。そこで不具合が出てきたら，どこがおかしいのかを特定するのが大変だからだ。同様にモデルを作成する場合も一歩一歩，チェックしながら進めることが大事である。2

タとした方がよいかもしれない。のケースを例にとると，図 1 の段階で FL ＝ FD ＝ 0 と(6) 植物は吸収した二酸化炭素量，日射量，窒素量などし，FC に暗算で計算出来るような簡単な値を与えて，一の資源をバイオマスに変換する。したがってバイオマ

定時間後の R の減少量が C の増加量に等しいかどうかスの生産量は吸収資源量に比例する。一方，水はほを確認する ( ① )。次に，式 (4) の段階で，f ＝ 1.0 としとんどが素通りし，バイオマスに変換されるわけではて S に①のチェックで使った簡単な値を入れて①と同じ結ない。しかし，バイオマス生産量はやはり吸収量に果になるかどうかを確認する。さらに，式 (6) の段階では，比例するので，便宜上「資源変換」型として取り扱う。

Cmax ＝ 0 として，C が初期値のまま一定であることを確認するなどといった具合である。STELLA では，3 種の(7) ここでは，簡単のために , たとえば蒸散という現象を出力ディバイスによって，結果がすぐに数値あるいは図とすことにする。また、その量を蒸散といったように記して示されるので，こういったチェックが簡単にできる。

号ではなく，術語そのもので表す。

H表す術語でもって，蒸散フラックス密度という量を表

6

高見：視覚的シミュレーションの勧め(8) 2 の例でみたように，この関係はマップを描いた段階

市川寿人・高見晋一・関で自動的に設定される。

平和，2011：多孔質体による太陽エネルギーを利用した蒸留・水輸送法の可能性．生物と気象，11，23–30．

引用文献

高倉

Cambell, G. S. and Norman, J. M., 1998: Introduction
to Environmental Biophysics, Springer-Verger, NewYork. 286pp.
市川寿人，2010：多孔質体による太陽エネルギーを利用し高倉

直，2009：農学・生物学におけるコンピュータシミュレーション（1〕農業及び園芸

84，305–308．
Takakura, T. and Son, J. E., 2004: Simulation of Biologicaland Environmental Processes. Kyushu Univ. Press,Fukuoka. 139pp

た蒸留・水輸送に関する研究．
金沢 大学自然科 学 研 究 科博士論文，金沢 大学，金沢．

83pp．

H

直 ( 監訳 )，1977：生物ダイナミックス―そのシミュレーション技術―．講談社，東京．176pp．

7