...

VensimPLEチュートリアル

by user

on
Category: Documents
22

views

Report

Comments

Transcript

VensimPLEチュートリアル
Vensim PLE クイックリファレンスとチュートリアル
Vensim PLE クイックリファレンスとチュートリアル1
1.
一般事項
メニュー
タイトルバー
メインツールバー
アウトプットファイル・
スケッチツール
ウィンドウ
分析ツール
モデル構築ウィンドウ
(スケッチ・ウィンドウ)
ステイタスバー
①
ファイル操作,カット&ペーストの操作は,ふつうの Windows ソフトと同じである。
②
Vensim での作業は,さまざまなツールボタンで行う。
③
マウス操作: クリック,ドラッグ,右クリック,Ctrl + クリック,Shift + クリックなど。
④
Vensim での作業は,工作机の上で行う組立作業のようなものである。
ユーザは,ツールバーにあるさまざまなツールを使ってモデルを構築したり改造したりする。
モデル変数のうち,何かのツールで操作中の変数をワークベンチ変数という。
ワークベンチ変数はタイトルバーの上に表示される。上の図では"FINAL TIME"がそれに当たる。
1
"Vensim® PLE Quick Reference and Tutorial," Copyright © 1998, 2002, 2005, Craig W. Kirkwood. All rights reserved.
(Email: [email protected])
訳:高辻秀興(2010 年 3 月)
Updated on December 12, 2002 by Jennifer Cihla Vender using Vensim PLE Version 5.0c1. Updated on May 26, 2005 by
Hariraj Nayak using Vensim PLE Version 5.4d.
1
Vensim PLE クイックリファレンスとチュートリアル
2.
メインツール
ボタン
ツール名称
動作内容
新規モデル作成
新しくモデルを作成する。
モデルを開く
既存のモデルを開く。
保存
モデルを現在の名前で保存する。名前は,ファイルメニューの中の「設
定保存」オプションで変更できる。
印刷
モデル構築ウィンドウ内の選択範囲を印刷する。選択範囲がなければス
ケッチ全体を印刷する。選択範囲の指定はマウスドラッグで行う。
切り取り
選択範囲を切り取る。クリップボードに記憶する。
コピー
選択範囲をコピーする。クリップボードに記憶する。
貼り付け
クリップボード内のコンテンツを貼り付ける。
シ ミ ュ レ ー シ ョ モデル構築ウィンドウのスケッチに書かれた定数を強調表示しチェック
ンの準備
する。
シ ミ ュ レ ー シ ョ ン 選択されたデータセットが表示される。変更するにはボックス右の縦バ
ファイル名の選択
ーをクリックする。
シ ミ ュ レ ー シ ョ このボタンの左のボックスに表示されたデータセットがすでにあると
ンの実行
き,上書きしてよいか聞いてくる。
統 合 シ ミ ュ レ ー 視覚的な感度分析,および微小変化・計算・評価を行う。
ションの実行
実 現 可 能 性 の 実 ユーザが現実と照らしてモデルの正しさを式で表現できるようにする。
行(Reality Check) それと整合しているか自動的にモデルをテストする。
モ デ ル 構 築 ウ ィ ン モデル構築ウィンドウを表示する。
ドウの表示
出 力 ウ ィ ン ド ウ の 出力ウィンドウを表示する。アクティブ・ウィンドウを切り替える。
表示
制御パネル
制御パネルを表示する。ワークベンチ変数の選択,グラフ用の時間軸の
調整,グラフのスケールの設定,データセットの管理,カスタム・グラ
フの作成と管理などに使用される。
2
Vensim PLE クイックリファレンスとチュートリアル
3.
スケッチツール
ボタン
ツール名称
動作内容
スケッチ固定
「スケッチ移動」ツールでスケッチ・オブジェクトとワークベンチ変数を選択で
きるが,スケッチ・オブジェクトを移動することはできない。
スケッチ移動
モデル構築ウィンドウに描かれたスケッチ・オブジェクトの,移動,変形,選択
を行う。移動するにはドラッグする。選択するにはクリックする。複数オブジェ
クトを選択するには対象を取り囲むようにドラッグして選択する。オブジェクト
を選択しているときさらに追加/削除をするには shift+クリックする。ヒント: こ
の「スケッチ移動」ツールと同様に動作するツールは他にもいくつかある。
変数(補助変数 補助変数,定数などの変数を生成する。変数を挿入したい場所でクリックする →
/定数)
変数名を入力するためのボックスが開く → 既存の変数名を編集するときもクリ
ックする → 変数名を入力する → Enter キーを押す。この「変数」ツールまた
は「スケッチ移動」ツールで変数名を右クリックすると表示方法を変更できる(例:
フォントを変更する,文字の周辺にボックスを表示して複数行にわたって変数名
を書く,など)。
ス ト ッ ク 変 数 ストック変数(レベル変数)を生成する。
「変数」ツールと同様に操作する。ボック
(レベル変数)
スのサイズを変えるには,輪郭に表示される小さい円(ハンドル)を「スケッチ移
動」ツールでドラッグする。
矢印(アロー)
直線またはカーブした矢印を生成する。矢印の出発点となる変数をクリック →
矢印ポインタを目的先の変数まで移動する(ドラッグしないこと!) → 目的先で
クリックすると矢印直線が描かれる。この「矢印」ツールまたは「スケッチ移動」
ツールで矢印直線上のハンドルをドラッグするとカーブした矢印が生成される。
ヒント: 最初からカーブした矢印を描くには,出発点,途中の空白点,目的先の
変数という順にクリックする。
フロー変数(レ フロー変数(レイト変数)の図形を生成する。図形は,垂直パイプ,バルブ,さら
イト変数)
に必要に応じて,ソース(発生源)またはシンク(吸収先)を表す雲形状からなる。最
初にフローの出発もとの変数でクリック → 目的先の変数でクリックする。空白
点でクリックすると,出発もと(発生源)または目的先(吸収先)に該当する雲形状が
描かれる。パイプを直角に曲げて描くには,曲げたい個所で shift+クリックする。
バルブの書式を変更するには右クリックする。
代行変数(シャ 既存のモデル変数に加えて,代行変数(シャドウ変数)を生成する。これはダミー
ドウ変数)
またはゴーストである。因果フローはない。
入 出 力 オ ブ ジ インプット操作軸,出力グラフ,表を追加する。詳細は Vensim のマニュアルを
ェクト
参照のこと。
ス ケ ッ チ コ メ コメントや画像を追加する。スケッチコメントを描きたい個所をクリック → ダ
ント
イアローグが開く → いくつかのオプションを指定してコメントの書式を設定す
る。コメントを描くと,モデル変数にかぶさってしまい,モデル変数を操作しに
くくなることがある。そのときは,ステイタスバー右端の「最背面移動」ボタン
を使ってコメントを最背面に移動するとよい。
3
Vensim PLE クイックリファレンスとチュートリアル
消去
図形オブジェクト,変数,コメントを削除する。この「消去」ツールのポインタ
を当てて左クリックすると削除できる。
方程式
モデル方程式を作成したり編集したりする。この「方程式」ツールが選択される
と,方程式が設定されていない変数が強調表示される。
参照モード
4.
詳細は Vensim のマニュアルを参照のこと。
分析ツール
ボタン
ツール名称
動作内容
因果ツリー
そのワークベンチ変数に影響を及ぼす原因側の因果連鎖をツリー状の図
にして表示する。
波及ツリー
そのワークベンチ変数の影響が波及していく因果連鎖をツリー状の図に
して表示する。
因果ループ
そのワークベンチ変数を経由するすべてのフィードバック・ループを表
示する。
ドキュメント
モデルの方程式,定義,計測単位を表示する。
ドキュメント(全て)
同上(全ての変数について)
直接原因グラフ
ワークベンチ変数とそれに直接影響する原因側の変数との動きを時系列
グラフで表示する。因果関係をトレースするのに有用である。時系列変
化の観測という目的でグラフ表示するのにも使える。
グラフ
ワークベンチ変数の変化をグラフで表す。上の原因グラフよりも大きい。
必要な変数を指定して表示するカスタム・グラフは,制御パネルにある
グラフ・タブを使用して作成できる。
表(横表示)
ワークベンチ変数の値を表にする。値は行方向に表示される。
表(縦表示)
ワークベンチ変数の値を表にする。値は列方向に表示される。
比較実行
初回のシミュレーションのデータセットにある観測変数と定数とを 2 回
目のデータセットのものと比較する。データセットの管理には,制御パ
ネルにあるデータセット・タブを使う。ロードするデータセットの順序
を変更するには,データセット・リストのトップにないデータセットを
クリックする。するとクリックされたデータセットがリストのトップに
くる。データセットの順序は,いろいろなグラフツールを使って表示す
るときの順序に影響する。
注.
分析ツールについて
①
分析ツールのアウトプットは「静止」した状態である。つまりシミュレーションをさらに実行しても
アウトプットは変化しない。よって実験をするときは,個々のアウトプットウィンドウに表示された
4
Vensim PLE クイックリファレンスとチュートリアル
アウトプットがどのシミュレーションのものか記録しておくことが大事である。
②
アウトプットウィンドウは,ワークベンチ変数の情報を表示するようになっている。
ある変数をワークベンチ変数にするには,モデル構築ウィンドウでその変数をクリックすればよい。
同じくアウトプットウィンドウの中の変数名をクリックしてワークベンチ変数にすることもできる。
③
アウトプットウィンドウの左上の隅にあるアイコンを使っていろいろな操作ができる。
左端の水平バーはウィンドウを消去する。
その隣の小さな南京錠アイコンは,間違ってウィンドウを消去しないように消去機能をロックするの
に使用する(消去機能を有効にするにはもう一度クリックする)。
小さな印刷アイコンは,ウィンドウの内容を印刷するときに使用する。
クリップボード・アイコンは,ウィンドウの内容をクリップボードにコピーするときに使用する。
フロッピーディスク・アイコンは,ウィンドウの内容をファイルに保存するときに使用する。
④
グラフ・アウトプットで,同一グラフに複数の曲線があるとき,コンピュータのディスプレイには曲
線が色分けして表示される。しかしモノクロ・プリンタでは,区別して印刷することはできない。そ
んな場合は,「オプション」メニューにある"Show Line Markers on Graph Lines"(マーカー表示)オプシ
ョンを利用すると曲線に識別番号をつけることができる。
5
Vensim PLE クイックリファレンスとチュートリアル
5.
ステイタスバー
ボタン
名称
動作内容
ウィンドウ選択
両端にある矢印で順次ビューを選択できる。バーには現在のビ
ューのタイトルが表示される。クリックすればすべてのビュー
のリストが表示される。
フォント設定
クリックして変数を選択 → このボタンでフォントを設定。複
数の変数を選択するには「スケッチ移動」ツールで,対象を囲
むようにドラッグして選択する。変数を選択して,さらに変数
を追加/削除するには shift + クリックする。何も変数が選択さ
れていないときは,デフォルトの設定になる。
文字サイズ
クリックして変数を選択 → このボタンで文字サイズを設定。
太字
クリックして変数を選択 → このボタンで太字/標準を設定。
斜体(イタリック) クリックして変数を選択 → このボタンで斜体/標準を設定。
アンダーライン
クリックして変数を選択 → このボタンで下線あり/なしを設
定。
取り消し線
クリックして変数を選択 → このボタンで取り消し線あり/な
しを設定。
文字色の設定
クリックして変数を選択 → このボタンで文字色を設定。
ボックス色の設定 クリックして変数を選択 → このボタンでボックス色を設定。
ボックスの形の設 クリックして変数を選択 → このボタンでボックスの形を設
定
定。
テキスト位置
ストック変数(レベル変数)を意味するボックスや,フロー変数
(レイト変数)を意味するバルブなど,グラフィックな形状と関
係している変数の場合に有用である。
矢印の色
矢印のハンドルをクリックして選択する。複数の矢印を選択す
るときはそれらを取り囲むようにドラッグする。選択している
とき,さらに矢印を追加/削除するには shift + クリックする。
矢印の太さ
矢印の太さを設定するとき用いる。より詳細な設定は,矢印の
ハンドルを右クリックすると表示される。特に「遅れ」の記号
を表示するとき便利である。
矢印の極性
因果連鎖図で矢印に符号をつけるときに使用する。より詳細な
設定は,矢印のハンドルを右クリックすると表示される。
最背面移動
スケッチコメントが大きくなってモデル変数にかぶさってしま
うときなど有用である。例えば,モデルの一部を占めてしまう
大きなボックスを描いた場合など。そんなときはモデル変数が
コメントに隠れてしまって選択できないかもしれないので,コ
メントをこのボタンで最背面に移動すればよい。
6
Vensim PLE クイックリファレンスとチュートリアル
6.
主なメニュー項目
Vensim PLE にはメニュー項目でしか操作できないことがある。以下は主要なメニューである。
①
編集:
「検索(F5)」は,モデル構築ウィンドウ内の特定の変数の全てのインスタンスを見つけ出す
のに有用である。陰に隠れている変数があるとき最前面に表示することができる。
②
表示: 「更新(Ctrl+l)」は,画面をリフレッシュするのに使う。パソコンによっては画面の描画が思
③
モデル:
うようにいかない場合がある。これらは画面上にゴミとして残るので,それらを消去するのに使う。
「設定」は,「モデルの時間範囲」設定画面を再表示するのに使う。モデル構築の最初は
自動的に表示される。この設定画面で,開始時間,終了時間,時間ステップ,保存間隔,時間単位を
設定する。
④
オプション:
もしパソコンの画面に頻繁にゴミが残る場合,「オプション」の中で"Continually
Refresh Sketches"をチェックしておくとよい。ただし作業速度が若干遅くなるかもしれない。
同一グラフの中で複数の曲線を区別して印刷したいときは,"Show Line Markers on Graph Lines"(マー
カー表示)をチェックしておくとよい。それぞれの曲線にマーカーとして番号が付けられる。
「Vensim マニュアル」に Vensim のオンラインヘルプがある。
⑤
ヘルプ:
7.
その他のヒント
①
プリンタによっては,矢印が曲線として印刷されないことがある。特にほとんど直線に近いときそう
したことが起こる。曲率が設定できないためである。そうしたときは,完全に直線にするか,または
認知できるだけの曲率をもった曲線にするのがよい。
②
Vensim ではモデルで使う単位をチェックできる。方程式ごとに単位を設定するのは作業として時間が
かかるが,しかしそれによりよくあるエラーを見つけやすい。例えば,あるところで日単位を使い,
別のところで週単位を使うなど。
③
方程式エディタは見ればわかるようになっている。ただ1つだけ,有用な機能だがわかりにくい点が
ある。グラフィカル・ダイアログからどうやってルックアップ機能を入力するかという点である。ル
ックアップ機能を組み込みたい変数について方程式エディタを起動したとき,最初は変数の「タイプ」
はおそらく「定数」になっている。そこで,タイプ選択ボックスを開いてタイプを「ルックアップ」
にする。するとタイプボックスの下の方に「As Graph」というボタンが表示される。これをクリック
してグラフ・ルックアップ定義ダイアログを開いて設定すればよい。
④
マウスのホイールを使ってモデル構築ウィンドウをスクロールすることができる。左右にスクロール
するには Shift キーを押しながら操作する。ズームアップするには Ctrl キーを押しながら操作する。
⑤
マウスの右ボタンを使ってドラッグするとモデル構築ウィンドウ内のモデル表示を移動することが
できる。
7
Vensim PLE クイックリファレンスとチュートリアル
8.
因果連鎖図のクイックチュートリアル
チュートリアルとして,上の図のような因果連鎖図(causal loop diagram)を作成してみよう。
①
Vensim を起動する。
→
メインツールバーの「新規モデル作成」
→
「Model Settings」の「時間の範囲」ダイアログが表示される。
をクリックする。
→
シミュレーションモデル作成のときに必要だが,ここでは必要ないので単に「OK」をクリックし
て終わる。
→
空白のモデル構築ウィンドウが現れる。ここに因果連鎖図を描いていく。モデル構築ウィンドウ
に描くものをスケッチという。
②
スケッチ画面のデフォルト・フォントを Arial 10pt にするため次のように操作する。
→
→
ステイタスバーの左のフォント名をクリックする。
何もオブジェクトを選択していないので,デフォルトのフォントと色を変えるかと聞いてくる。
「はい」をクリックする。
→ 「View Defaults」ダイアログが表示される。
「フェイス」を Arial,
「サイズ」を 10pt に設定する。
「OK」をクリックする。
③
モデル変数を描画するため「変数(補助変数/定数)」ツール
をクリックする。
→
モデル構築ウィンドウ内の描きたい場所をクリックする。編集ボックスが開く。
→
"interest"と入力して Enter キーを押す。interest 変数が Arial 10pt で描かれる。
→
savings, income 変数についても同様にして描く。
→
ヒント 1:
もしあとでスペルミスを見つけたら,「変数(補助変数/定数)」ツールを選択して,
ミスした変数をクリックして修正すればよい。
→
ヒント 2:
もし変数を消去したいときは,「消去」ツール
を選択して消去対象をクリック
すればよい。
④
同じようにして"work effort"という変数を作成する。
→
上の図のように"work"と"effort"とを 2 行に折り返して表示するには次のようにする。
→
マウスポインタを,変数の右下のハンドル(小さい円)に当ててドラッグし,表示枠を変形する。
→
この他の設定をするには:
変数を右クリック(または Ctrl+クリック)する
→
設定ダイアログが現れる
→
ダイアログ内で希望の設定をする
8
Vensim PLE クイックリファレンスとチュートリアル
→
ヒント: 設定ダイアログの左側に「形」オプションがあり「空ボックス」がチェックされ
ている。この「空ボックス」というのが,ハンドルの付いた表示枠を意味している。
→
⑤
ハンドルが消えていたら:
矢印を描くため「矢印」ツール
⑦
interest 変数をクリックし,次いで savings 変数をクリックする。
直線の矢印が描かれる。
→
ハンドルをドラッグして曲線に直す。
ハンドル操作は「矢印」ツールでもできるが,「スケッチ移動」ツールでもできる。
同じようにして上の図のように残りの矢印を描く。
ヒント 1:
矢印の曲線を描くには,始点(変数)→中継点→終点(変数)とクリックしてもよい。
ヒント 2:
矢印を消去するには,「消去」ツールで矢印の先頭をクリックする。
オブジェクト(変数や矢印)の移動や,曲線の修正には,「スケッチ移動」ツールを使う。
変数を移動すると,矢印もくっついたまま移動する。
ヒント:
移動のためには,「変数(補助変数/定数)」ツール,「矢印」ツールも使える。
矢印に「遅れ記号//」を描くため,「スケッチ移動」ツールを選択する。
→
savings 変数から work effort 変数への矢印のハンドルを右クリックする。
→
「Options for Arrow」ダイアログが表示される。
→
「Delay mark」をチェックする。「OK」。
ヒント:
⑨
を選択する。
→
→
⑧
を選択するとハンドルが現れる。
→
ヒント:
⑥
「スケッチ移動」ツール
「矢印」ツールも使える。
矢印に「正の因果関係」を表すプラス符号(+)を描くため,次のようにする。
→
「スケッチ移動」ツールで,対象となる矢印すべてを取り囲むようにドラッグして選択する。
または,最初の矢印の先端をクリック → 追加する矢印の先端を Shift+クリック → 以下同様
にして選択する。
⑩
→
ステイタスバーの「矢印の極性」ボタン
をクリックして,「+」記号を選択する。
→
savings 変数から work effort 変数への矢印は「負の因果関係」なのでマイナス符号(-)をつける。
「Options for Arrow」ダイアログを使うとさらにいろいろな設定ができる。
→
矢印の先頭を右クリックする。「Options for Arrow」ダイアログが表示される。
→
「Plarity」の欄から,+,-,なし(None)などの符号を選択する。
→
「Position polarity mark at the」の欄から,符号をつける場所として,矢印の先頭かハンドル
位置か,またカ曲線の内側(Inside)か外側(Outside)かを選択する。
→
⑪
さらに,「フォント」ボタンから符号のフォントやサイズを設定することができる。
正のフィードバックループの記号を描くため,次のようにする。
→
「スケッチコメント」ツール
を選択する。
→
interest 変数と savings 変数とで構成される正のフィードバックループの内側をクリックする。
→
「コメントの記述」ダイアログが開く。
→
「形」の欄の「時計回ループ」をチェックする。「Graphics」の欄の「イメージ」をチェック
し,プルダウンメニューから+図形を選択する。
→
「OK」をクリックする。正のフィードバックループの記号が描かれる。
→
同じようにして,income 変数,savings 変数,work effort 変数で構成される負のフィードバック
ループに,「反時計ループ」と-図形とを描く。
⑫
最後に,この因果連鎖図のタイトルを描くため,次のようにする。
→
「スケッチコメント」ツールを選択する。
9
Vensim PLE クイックリファレンスとチュートリアル
⑬
→
図の上の余白をクリックする。
→
「コメントの記述」ダイアログが開く。
→
「コメント」の欄に"SAVINGS AND INCOME"と入力する。
→
フォントやサイズを設定する。
→
「OK」をクリックすると,タイトルが描かれる。
→
ハンドルで文字枠ボックスの形状を調整して,1行または2行の表示にする。
できあがった因果連鎖図を印刷してみなさい。ハンドルは印刷されない。
MS-Word に貼り付けるには次のようにする。
→
Vensim で編集メニュー → すべて選択 → 編集 → コピー (または Ctrl+C)
→ MS-Word へ移って貼り付け個所をクリックして → 貼り付け(または Ctrl+V)
ヒント:
⑭
⑮
図を選択するには「スケッチ移動」ツールでドラッグして範囲指定してもよい。
図をファイルに保存するにはメインツールバーの「保存」ボタン
をクリックする。
Vensim PLE は,因果連鎖ループの論理構造を分析するために3つの分析ツールを用意している。
「因果ツリー」と「波及ツリー」とは,ワークベンチ変数(現在選択されている変数)と因果連鎖的に
つながりのある変数をツリー図にして表示する。
「因果ループ」は,ワークベンチ変数を含めて構成されるフィードバックループを表示する。
⑯
⑰
いまワークベンチ変数として,savings 変数を選択することにする。
→
「スケッチ移動」ツールで savings 変数をクリックする。
→
選択された変数の名前がタイトルバーに表示される。
「因果ツリー」ツール
をクリックすると,次の図が表示される。
この図は,ワークベンチ変数に至るまでの後方からの因果連鎖を表している。
「波及ツリー」ツール
をクリックすると,次の図が表示される。
この図は,ワークベンチ変数から発する前方への因果の波及を表している。
因果連鎖が現在のワークベンチ変数にフィードバックするときは,上の savings 変数のように( )付
きで表示される。
⑱
「因果ループ」ツール
をクリックすると,次の図が表示される。
この図は,ワークベンチ変数を含んで構成されるフィードバックループのリストである。
10
Vensim PLE クイックリファレンスとチュートリアル
9.
シミュレーションモデルのクイックチュートリアル
次の図は,ストック・フロー図,シミュレーションモデル方程式,アウトプットの時系列グラフである。
グラフは,預金口座の残高(預金額,savings)の変化を表している。以下,シミュレーションモデル作成の
チュートリアルとして,同じものを作成してみることにしよう。
11
Vensim PLE クイックリファレンスとチュートリアル
9.1
①
②
③
ストック・フロー図の作成
Vensim を起動する
→
メインツールバーの「新規モデル作成」
→
「Model Settings」の「時間の範囲」ダイアログが表示される。
→
「時間ステップ」=0.25 にする(四半期の意味)。「時間単位」を「年」にする。
→
「OK」
「ストック変数(レベル変数)」ツール
をクリックする
を選択する。
→
モデル構築ウィンドウの中で,Savings 変数を描こうとする場所でクリックする。
→
入力ボックスが開く。"Savings"と入力して Enter キーを押す。
→
ストック変数「Savings」がボックスとともに描かれる。
「フロー変数(レイト変数)」ツール
を選択する。
→
「Savings」ボックスの左余白をクリックする。
→
雲図形(ソース)が表示される。
→
マウスポインタを「Savings」ボックスに重ねてクリックする。
→
入力ボックスが開く。"interest"と入力して Enter キーを押す。
→
雲形状と「Savings」ボックスとをつなぐフローパイプが描かれる。
バルブが付いていて「interest」と表示されている。これは interest 変数を表す。
④
⑤
「変数(補助変数/定数)」ツール
を選択する。
→
INTEREST RATE 変数を描こうとする場所でクリックする。
→
入力ボックスが開く。"INTEREST RATE"と入力して Enter キーを押す。
→
INTEREST RATE 変数が描かれる。
「矢印」ツール
→
を選択する。
Savings 変数をクリック
→
中継点(余白)をクリック
→
interest 変数をクリックする。
これで Savings 変数から interest 変数への矢印が描かれる。
→
9.2
⑥
同じようにして,INTEREST RATE 変数から interest 変数への矢印を描く。
方程式の入力
「方程式」ツール
→
を選択する。
interest 変数,INTEREST RATE 変数,Savings 変数が反転表示で強調される。
これは,まだ方程式が設定されていないことを意味する。
⑦
interest 変数をクリックする。
→
方程式編集ダイアログが開く。
→
上の方にある=の右辺に次の式を入力する。
Savings * INTEREST RATE
ヒント:
変数を入力するには,ダイアログの中ほどの右にある変数リストで,対象の変数名
をクリックすればよい。掛け算の"*"記号はキーボードから入力してもよいし,ダイアログに
表示されているキーパッドをクリックしてもよい。
→
これで,次の方程式を設定したことになる。
12
Vensim PLE クイックリファレンスとチュートリアル
interest = Savings * INTEREST RATE
→
⑧
⑨
「OK」をクリックする。
正しく方程式が入力されていれば,方程式編集ダイアログは閉じる。
→
interest 変数の反転表示が消える。
→
方程式にエラーがあるとどうなるか,わざと間違った式を入力して試してみるとよい。
次に Savings 変数をクリックする。方程式編集ダイアログが開く。
→
ストック・フロー図を描いたときに,すでに Savings 変数はストック(レベル)変数で,interest
変数を積分したもの(累計したもの)だと自動的に判断されるので,方程式がすでに書かれている。
→
「初期値」の欄に「100」を入力する。
ヒント:
→
ストック(レベル)変数には初期値を設定しておかねばならない。
これで次の方程式を設定したことになる。
Savings = 100 +
→
⑩
Σinterest
「OK」をクリックする。
INTEREST RATE 変数をクリックする。
→
=の右辺に「0.05」と入力する。
ヒント:
INTEREST RATE 変数は定数で変化しない。定数なので大文字で表している。
→
「OK」をクリックする。
→
以上で,預金口座残高モデルを作成したことになる。預金口座の初期残高は 100,interest rate
(利子率)は年当たり 0.05(つまり 5%)である。
モデルの方程式の一覧表を表示するため「ドキュメント(全て)」ツール
9.3
⑪
をクリックする。
シミュレーションの実行と結果の表示
シミュレーションの実行方法:
→
実行の前に,シミュレーションの結果を記録するデータセット名が
に表示されて
いるので確認する。
→
シミュレーションを実行するため,「シミュレーションの実行」ボタン
をクリックする。
→
もし Current データセットがすでに存在するとき,上書きするかどうか問合せのメッセージが
出る。ここでは「はい」と回答する。
⑫
⑬
→
シミュレーションの実行に入り,一瞬の間,時間を刻むダイアログが表示される。
→
シミュレーションの実行が終わる。終わりのメッセージは特に出ない。
シミュレーション結果の見方:
で Savings 変数を選択する。
→
「スケッチ移動」ツール
→
「直接原因グラフ」ツール
→
Savings 変数のグラフと,その直接的原因になっている interest 変数のグラフとが表示される。
をクリックする。
このほかの見方:
→
「グラフ」ツール
→
「表(縦表示)」ツール
:
選択した変数の大きなグラフが描かれる。複数選択可。
:
選択した変数の数値表が表示される。複数選択可。
13
Vensim PLE クイックリファレンスとチュートリアル
→
アウトプットウィンドとモデル構築ウィンドウとは重なって表示される。
ウィンドウの表示を切り替えるには,「モデル構築ウィンドウの表示」ボタン
「出力ウィンドウの表示」ボタン
→
⑭
「保存」ボタン
感度分析の方法:
と
を使う。
でモデルを保存できる。
INTEREST RATE 変数を変化させる場合
→
「シミュレーションの準備」ボタン
→
INTEREST RATE 変数が強調表示される。感度分析のために設定変更できるのは定数だけだから。
をクリックする。
→
INTEREST RATE 変数をクリックする。
→
編集ボックスが表示される。最初に設定した値「0.05」が表示されている。
これを「0.06」に変更して Enter キーを押す。
→
この変更が適用されるのは次に実行するシミュレーションに対してだけである。
それが終わると INTEREST RATE 変数の値はもとの「0.05」にもどる。
⑮
「シミュレーションの実行」ボタン
をクリックする。
→
Current データセットがすでに存在するので,上書きするかどうか問合せのメッセージが出る。
→
「いいえ」と回答する。
→
別のダイアログが開く。現在の作業ディレクトリ内にあるデータセット(拡張子 vdf)の一覧が
表示されている。
⑯
→
ファイル名として「run2.vdf」と入力する。
→
「OK」をクリックする。
→
シミュレーションが実行され,結果がデータセットファイル「run2.vdf」に保存される。
シミュレーション結果の見方:
で Savings 変数を選択する。
→
「スケッチ移動」ツール
→
「グラフ」ツール
→
Savings 変数の,Current ケースと run2 ケースとのグラフが描かれる。曲線が色分けされている。
→
モノクロ印刷のために,1, 2 というマーカーを追加するには,次のようにする。
をクリックする。
→ 「オプション」メニュー
→ 「オプション」選択
14
→ 「Global Option Settings」という
Vensim PLE クイックリファレンスとチュートリアル
ダイアログが開く。
⑰
→
先頭にある「Show Line Markers on Graph Lines」をチェックする。
→
「OK」をクリックする。
シミュレーションの前提条件の比較:
→
「比較実行」ボタン
をクリックする。
→
INTEREST RATE 変数(定数)の値について,Current ケースと run2 ケースとで比較したものが
表示される。
⑱
「グラフ」ツール
を使ったグラフでは,曲線の表示順序の変更,曲線の追加・削除ができる。
次のようにする。
→
「制御パネル」ボタン
をクリックする。
→
「Datasets」タブを選択する。
→
「Loaded-Info...」の欄に表示されているのは,現在グラフを描くのに使用されているデータ
セットである。つまりロードされているデータセットである。
→
「Available-Info...」の欄に表示されているのは,利用可能なその他のデータセットである。
これらはアンロードされているデータセットである。
→
現在ロードされているデータセットをアンロードするには,クリックして「<<」ボタンを
クリックする。アンロードすると,それに対応する曲線はグラフから消える。
→
新たに曲線を加えるには,アンロードされているデータセットの中から必要なデータセット
をクリックして「>>」ボタンをクリックしてロードすればよい。
→
グラフに描かれる曲線の順序は,ロードされているデータセットの順序に従う。よって,順序
を変えるには,ロード/アンロードを繰り返して順序を整えればよい。
⑲
「表(縦表示)」ツール
を使ってワークベンチ変数(複数選択可)の数値表を作成できる。次のよ
うにする。
で,変数をクリックまたは Shift+クリックして 1 つ以上の変数を
→ 「スケッチ移動」ツール
選択する。ここでは Savings 変数と interest 変数とを選択する。
→
「表(縦表示)」ツールをクリックする。
→
すると 2 つの変数の 2 つのシミュレーションケースの結果が数値表になって表示される。
→
表から特定のシミュレーションケースの結果を削除したり追加したりするには,上と同様に
ロード/アンロードをすればよい。
⑳
ストック・フロー図においても,
「因果ツリー」ツール
と「波及ツリー」ツール
を使っ
て因果連鎖の構造を分析できる。
また,方程式エディタではモデル変数の単位を入力すると Vensim がチェックしてくれる。
21
シミュレーションの時間の設定を変えるには:
→
「モデル」メニュー
→
開始時間,終了時間,時間ステップ,SAVEPER(結果を保存する時間間隔)を設定する。
ヒント:
→
「設定」
→
「時間の範囲」タブ
SAVEPER は,シミュレーション結果のグラフや数値表に影響してくる。
SAVEPER は,時間ステップの整数倍の値に設定するとよい。
時間ステップを 1 未満に設定するときは 0.5 のべき乗にするとよい。0.5, 0.25, 0.125, 0.0625, etc.
時間ステップを他の値に設定すると分数を保存するときに丸めの誤差が生ずるかもしれない。
15
Vensim PLE クイックリファレンスとチュートリアル
シミュレーション結果のグラフ表示で時間の設定を変えるには:
→
9.4
22
「制御パネル」ボタン
「時間軸」タブ,
「目盛」タブ (詳細はヘルプ参照)
→
グラフィカルな感度分析の方法 (統合シミュレーションの実行: SyntheSim)
「統合シミュレーションの実行(SyntheSim)」ツール
を使って,定数の値に関する感度分析を
グラフィカルに行うことができる。
- SyntheSim を使うとシミュレーションの結果をグラフィカルに重ね書きして表現できる。
- スライドバーを使って定数の値の変化分を設定できる。
- グラフは定数の値の変化の影響を表すのに用いる。
23
24
SyntheSim を始めるには
→
をクリックする。
→
Current データセットがすでにあれば,上書きするか聞いてくるので,「はい」をクリックする。
→
次の SyntheSim 画面が表示される。
SyntheSim モードに入るとメインツールバーに次のような新しいボタンが表示される。
ボタン
名称
説明
統合シミュレー シミュレーションを開始する。
ションの実行
シミュレーショ シミュレーションを中止してモデル定義モードにもどる。
ンの停止
こ の 実 行 結 果 現在の実行結果をデータセットに保存する。
を・・・に保存
16
Vensim PLE クイックリファレンスとチュートリアル
最新の変更をリ 選択した定数のスライダーバーの値の設定を基本モデルのものにリ
セット(Home)
セットする。
定数/表関数の変 すべての定数のスライダーバーの値の設定を基本モデルのものにリ
更をすべてリセ セットする。
ット(Ctrl+Home)
25
それぞれの変数の下には小さなグラフが付いている。グラフを拡大して見るには,マウスポインタを
変数にかざすようにする。例えば,下の例だと interest 変数にマウスポインタをかざすと,大きなグ
ラフが表示される。
26
モデルの感度を見る:
→
定数 INTEREST RATE のスライドバーを左右に動かして設定を変えてみる。
→
それにより拡大グラフがどのように変化するかリアルタイムで読み取ってみる。
→
このように SyntheSim を使うと,定数の値を変更したときのモデルの感度がリアルタイムで
わかる。シミュレーション結果を変更の都度保存しておいて比較する必要はない。
このグラフィカルな応答は次の図に示されている。INTEREST RATE の値を 0.05 から
0.30 にすると,interest 変数も Savings 変数も急激な勢いで増加する様子がわかる。
27
SyntheSim による感度分析の結果を先のラン結果と比較するため保存しておくには:
→
「この実行結果を・・・に保存」ボタン
をクリックする。
17
Vensim PLE クイックリファレンスとチュートリアル
→
データセット・ファイル名を新しい名前にして保存する(例えば"synthesim")。
→
これにより Vensim は,SyntheSim により定数の値を変更して得た現在のラン結果を,先のラン
結果のデータセット・ファイルに保存するのではなく,新しいデータセット・ファイルに保存す
ることになる。
→
ただしもとの基本モデルが変更されるわけではない。例えば,「ドキュメント」ツール
を
クリックすれば,定数の値は SyntheSim のラン以前の設定の通りであることがわかる。しかし,
直接原因グラフ,グラフ,数値表などの分析ツールは,SyntheSim のランのとき変更された定数
の値の影響を受ける。
28
注意:
SyntheSim でなされた変更は,ユーザが意識的に保存作業をしなくとも,アウトプットファ
イル・ウィンドウに表示されているデータセットに自動的に保存される。
- よって,SyntheSim のランのときはアウトプットファイルの設定に注意しなければならない。そう
しないと,とっておきたいファイルに上書きすることになりかねない。
- 言い換えると,アウトプットファイル・ウィンドウに表示されているデータセットとは,SyntheSim
による変更を保存しておきたいと思うデータセットのことである。先に,SyntheSim モードに入る
とき現在のデータセットに上書きしてよいか問い合わせてきたことを思い起こすとよい。データ
セット・ファイル名を変更したければ「いいえ」と回答してファイル名の変更を行えばよい。
29
定数の値を基本モデルの設定にリセットするには,リセットボタンを使用する。
を選択すれば,現在選択されている変数だけがリセットされる。
→ 「最新の変更をリセット」
→
30
を選択すれば,全ての変数がリセットされる。
SyntheSim を中止するとき:
→
「シミュレーションの停止」ボタン
→
モデル定義ビューにもどる。
9.5
31
「定数/表関数の変更をすべてリセット」
をクリックする。
グラフをカスタマイズする方法
いま次のようなグラフを描くとする。
- グラフ化の対象変数:
Savings 変数,interest 変数
- シミュレーションケース:
Current ケース,run2 ケース
4 本の曲線を描くことになる。既存の「直接原因グラフ」ツールや「グラフ」ツールでは対応
できない。次のようにしてグラフをカスタマイズすればよい。
32
→
「制御パネル」ボタン
→
「グラフ」タブを選択する。
をクリックする。
→
「新規」ボタンをクリックする(新規グラフ作成の意味)。
→
次のパネルが表示される。
18
Vensim PLE クイックリファレンスとチュートリアル
33
→
「タイトル」:
"預金残高と利子(Current ケース vs. run2 ケース)"と入力する。
→
「変数」:
「選択」ボタンから"Savings"を選択する。
→
「データセット」:
"Current"と入力する。
→
「変数」:
「選択」ボタンから"interest"を選択する。
→
「データセット」:
"run2"と入力する。
「Scale」の下のチェックボックス2個所をチェックする。
- チェックボックスのすぐ右上と右下にある変数は共通の単位(縦軸)にしたがって表示される。
- Savings 変数の2ケースの曲線が同一単位の縦軸にしたがって表示される。
- interest 変数の2ケースの曲線が同一単位の縦軸にしたがって表示される。
→
34
「OK」をクリックする。
カスタムグラフを表示するには:
→
「制御パネル」
→
「グラフ」タブ
→
「表示」ボタンをクリックする
→
→
「預金残高と利子(Cu...」エントリをクリックする
グラフが表示される。
19
Vensim PLE クイックリファレンスとチュートリアル
- 縦軸の,40,000,20,000,0 は,Savings 変数に適用される。
- 縦軸の,4,000,2,000,0 は,interest 変数に適用される。
グラフのカスタマイズの方法についてもっと詳細を知りたければ,オンラインヘルプを参照されたし。
9.6
35
ルックアップ関数(表関数)の使い方
ルックアップ関数を使うと,2 つの変数の間の任意の関数関係を表現することができる。
- それには,2 つの変数の値の組をテーブルで定義してやればよい。
- Vensim は,そのテーブルをもとに未定義の値についても線形補間することで独立変数に
対応する従属変数の値を決定する。
- 例として,これまで使ってきた預金口座モデルを次のように修正することにしよう。
- 残高が 5,000 ドル未満なら,利子率は 5%
- 残高が 5,000 ドル以上なら,利子率は 7%
36
37
38
そのため,先に作成した預金口座のストック・フロー・ダイアグラムを下図のように修正する。
→
「変数(補助変数/定数)」ツール
を選択する。
→
定数"INTEREST RATE"をクリックする
→
変数名を"INTEREST LOOKUP"に変更して「Enter」を押す。
"INTEREST LOOKUP"変数のためのルックアップ関数方程式の設定:
→
「方程式」ツール
を選択する。
→
"INTEREST LOOKUP"変数をクリックして方程式エディタを開く。
→
タイプ欄が「定数」になっているのを,「表関数」(Lookup)に変更する。
→
「グラフ入力」ボタンをクリックする。
→
「Graph Lookup」定義ダイアログが表示される。
20
Vensim PLE クイックリファレンスとチュートリアル
→
次のいずれかの方法でルックアップ関数を定義することができる。
- グラフ領域の中をクリックして折れ線グラフで関数を定義する。
- 左の「インプット」,「アウトプット」の欄に数値ペアを入力する。
→
ここでは,「インプット」,「アウトプット」の欄を使うことにする。
→
1 行目に,
0,
0 を入力する。
→
2 行目に, 5000, 250 を入力する。
→
3 行目に,20000, 1300 を入力する。
→
「OK」をクリックする。
→
方程式エディタ画面の「OK」をクリックする。
ここで行ったことは次のような意味である。
- 入力は Savings,出力は interest である。
- Savings が 0 のとき interest は 0 とする。
- Savings が 5000 のとき interest は 250 とする。
- Savings が 20000 のとき interest は 1300 とする。
39
interest 変数の方程式の修正:
→
「方程式」ツール
を選択する。
→
interest 変数をクリックして方程式エディタを開く。
→
=の右辺の既存の式を消して,新たに次の式を入力する。
INTEREST LOOKUP(Savings)
これにより,どんな入力 Sagings の数値に対しても"INTEREST LOOKUP"関数が線形補間をして
interest 変数のための値を返してくれる。
40
→
「シミュレーションの実行」ボタン
→
データセットに上書きしてよいかと聞いてくるので,「いいえ」と回答して,
をクリックする。
データセット名を"Current1"に変える。
→
シミュレーションが実行される。
→
Savings 変数をクリックして,「直接原因グラフ」ツール
→
下図のように Savings 変数のグラフと interest 変数のグラフとが表示される。
→
数値をチェックするため,Savings 変数と interest 変数とを選択して,
21
をクリックする。
Vensim PLE クイックリファレンスとチュートリアル
「表(縦表示)」ツール
をクリックする。
→
100 年目の Savings 変数と interest 変数の値は,17057, 1094 になっているはずである。
→
このグラフと,最初にシミュレーションしたときのグラフとを比べると,今回の Savings の残高
は最初のときよりいくらか大きい。しかしその差はそれほどドラマチックなものではない。
その理由は,高い利子率が適用されるのは残高が 5000 ドルに達したときであり,そうなるのは
78 年を超えてからだからである。
41
ルックアップ関数に関するより詳細な情報はオンラインヘルプを参照されたし。
一方,同様なことは IF-THEN-ELSE 関数を使って interest 変数を計算することによってもできる。
IF-THEN-ELSE 関数の詳細な情報はオンラインヘルプを参照されたし。
42
Vensim の感度分析の機能は,ルックアップ関数の形状をちょっと変えてシミュレーションしてみると
いうことにも使うことができる。
9.7
43
Time を変数として使う方法
Vensim には時間を明示的に取り扱うことのできる関数がいくつかある。それを利用するにはモデルの
中に Time を変数として取り込んでおかねばならない。
例えば,あるものに対する需要が 100 の大きさの範囲内で 12 カ月周期で季節変動をともなって生ず
る様子を描写するため sin 関数を使いたいとしよう。Vensim の方程式は次のようになる。
Variable Demand = 100 * sin(2 * 3.14159 * Time / 12)
ここで,Time の単位は月であるとする。
44
45
新しいモデルを作成するため「新規モデル作成」ボタン
→
「Model Setting」画面が出る。
→
「時間ステップ」を 0.25 にする。
→
他のパラメータはデフォルトのままとする。
→
「OK」をクリックする。
「変数(補助変数/定数)」ツール
をクリックする。
を選択する。
→
スケッチ画面の適当な個所をクリックし,「Variable Demand」という変数を作成する。
→
ここで「保存」ボタン
→
次に別の個所をクリックし,「Time」という変数を作成してみる。
をクリックして「TimeTest」などの名称でモデルを保存しておく。
すると「The variable Time already exists」というエラーメッセージが出る。
Time 変数がすでにあるという意味である。
→
46
とりあえず Esc キーを押して「Time」という変数の入力ボックスを消去する。
「ドキュメント(全て)」ツールを
クリックして方程式の一覧を見ても Time 変数は出てこない。
実は,Time 変数は Vensim の組み込み変数として常に存在している変数なのである。
47
Time 変数が組み込み変数としてすでにあるので,それをモデル内で使うときは「代行変数(シャドウ
変数)」ツールを用いる。
→
「代行変数(シャドウ変数)」ツール
をクリックする。
→
スケッチ画面の適当な個所をクリックする。
→
変数リストが表示される。"Time"を選択して「OK」をクリックする。
22
Vensim PLE クイックリファレンスとチュートリアル
→
「矢印」ツールを選択して,矢印を引く。下図のようなダイアグラムができる。
代行変数(シャドウ変数)は山かっこ<>つきで表示される。
48
→
「方程式」ツール
により,Variable Demand 変数の方程式を完成させる。
ステップ 43 の式を参照のこと。
49
「シミュレーション実行」ボタン
→
ランが終わったら Variable Demand 変数を選択する。ワークベンチ変数になる。
→
「直接原因グラフ」ツール
9.8
50
をクリックしてランする。
をクリックする。次のグラフが表示される。
マルチプルビューの使い方
複雑なモデルの場合,全体をいくつかのパーツに分けてマルチプルビューで表示することができる。
別々のビューに表示されるパーツは,シャドウ変数を用いて互いに連結される。
先に作った預金残高モデルを使って,どのようにマルチプルビューが作成されるか見てみよう。
51
新たなモデルとして,もう一度 12 ページの①②③ステップまでを行ってモデルを作成する。
→
ここで,ステイタスバーの左の「View 1」をクリックする。
→
リストが現れるので「** New **」を選択する。
→
空白ページ(ビュー)が表示される。デフォルトで「View 2」という名前が付いている。
→
ビューを選択する方法として3つある。
- ビューバーをクリックしてリストからビューを選択する。
- ビューバーの左右にある↑↓をクリックして切り替える。
- PageUP キー,PageDown キーを使って切り替える。
→
ビュー名を変更するには,「表示」メニュー→「名前変更」→名前を入力,とすればよい。
23
Vensim PLE クイックリファレンスとチュートリアル
52
→
「View 2」で,「変数(補助変数/定数)」ツール
を使って,「INTEREST RATE」変数を
作成する。
53
→
54
「View 2」にある INTEREST RATE 変数を「View 1」のパーツと連結するには,INTEREST RATE 変数が
「View 1」へ戻る。
「View 1」に現れていなければならない。それには,INTEREST RATE 変数をシャドウ変数として「View
1」に生成してやればよい。
→
「View 1」を表示する。
「代行変数(シャドウ変数)」ツール
を選択する。スケッチ画面の
余白をクリックする。次のダイアログが出る。「INTEREST RATE」を選択して「OK」をクリック
する。
24
Vensim PLE クイックリファレンスとチュートリアル
→
55
シャドウ変数<INTEREST RATE>が表示される。
「矢印」ツールを使ってダイアグラムを完成させる。
Savings
interest
<INTEREST RATE>
56
57
→
「方程式」ツールを選択して,各変数の方程式を入力する。
→
Savings:
初期値は 100
→
interest:
Savings * INTEREST RATE
→
INTEREST RATE:
→
シミュレーションを実行する。
定数として 0.05
Vensim PLE に付属しているサンプルモデルを見ると,ビューの役割がよくわかるだろう。サンプルモ
デルは Vensim がインストールされたフォルダの中のサブフォルダにあるはずである。例えば,そこ
から WRLD3-91 モデルを開いてみるとよい。
ステイタスバーの左のビューバーの名前は最初は「Title Page」となっている。これをクリックする
と他の多くのビューのリストが表示される。
これは有名なシステム・ダイナミックス世界モデルである。
ビューバーにはわかりやすいようにモデルのパーツを意味する名前をつけておくとよい。
これを見ると,ビューとシャドウ変数の役割がよくわかるであろう。モデル全体をいくつかのパーツ
に分けて,それらを相互に連結する働きをしている。
他の付属モデルでもマルチプルビューの例を見ることができるだろう。
( "Vensim® PLE Quick Reference and Tutorial"
25
終わり )
Vensim PLE クイックリファレンスとチュートリアル
10. Vensim ソフトウェアのマニュアル2
(1)
Vensim® PLE Quick Reference and Tutorial
(VensimPLE-QuickRef-Tutor.pdf)
簡単な因果連鎖図や SD モデルを題材にしてひととおりの Vensim PLE の操作説明をしたもの。
(2)
Vensim® User’s Guide Version 5
(VensimUsersGuide.pdf)
Vensim の詳細な操作説明。ユーザインタフェース,事例による体験,因果連鎖図の描き方,ストッ
ク・フロー・ダイアグラムの描き方,シミュレーション・モデルの構築,関数とシミュレーション・
エラー,ルックアップ関数,マルチプルビュー,アウトプットのカスタマイズ,Vensim に不動産よる
ゲーム,インプット・アウトプット・コントロール,SyntheSim による統合シミュレーション,Reality
Check,感度分析とモンテカルロ,モデルにおけるデータ利用,添字の利用,最適化への応用
(3)
Vensim® Modeling Guide
(VensimModelingGuide.pdf)
モデルの事例を使ってシステム・ダイナミックス・モデルの作り方を説明したもの。システム・ダイ
ナミックスの概要,労働力と在庫と変動,プロジェクト・ダイナミックス,フィールドの成長,キャ
パシティとマーケットの成長,競争的ダイナミクス,フィナンシャル・モデルとリスク,溶鉱炉と振
子と変動,離散的関数
(4)
Vensim® Reference Manual
(VensimReferenceManual.pdf)
リファレンス・マニュアル。Vensim シリーズのマニュアルについて,Vensim シリーズの機能概要,
Vensim モデリング言語,モデルの設定と単位のチェック,Vensim で使用できる関数とキーワード,
スケッチ・エディタ,方程式エディタ,テキスト・エディタ,モデルのシミュレーション,データの
準備・使用・エクスポート,高度なシミュレーション方法,SyntheSim による統合シミュレーション,
コントロール・パネルと添字制御,ツールセットとツールと因果連鎖のトレース,分析ツール,カス
タム・グラフと表とレポート,メニューと共通ダイアログ,オプション,用語解説,関連文献,DYNAMO
や Stella からのモデルの変換,ファイル・フォーマット,割り当て問題
(5)
Vensim® DSS Reference Supplement
(VensimDSSReferenceSupplement.pdf)
より高度なシミュレーションモデルの作成が可能になる Vensim DSS (Decision Support System)につい
て解説したもの。別名を Vensim Applications (Venapp)という。概要,Venapp 入門,Venapp エディタ,
Venapp コントロール,コマンドの解説,Venapp の事例,コマンド・スクリプト,外部関数,動的デ
ータ交換,シミュレーション・モデルのコンパイル,Vensim DLL 概観,DLL 関数詳細,製作物の配布,
ODBC を介したデータベースとの接続
(6)
System Dynamics Methods: A Quick Introduction
(VensimSDintro.pdf)
システム・ダイナミックスの考え方を解説したもの。システム思考と因果連鎖図,ストックとフロー
のモデルによるアプローチ,ビジネス・プロセスのシミュレーション,基本的なフィードバック構造,
モデルの開発過程,遅れと平滑化と平均化,意思決定過程の表現,非線形性,初期条件
2
各マニュアルをもとに高辻が整理したもの。ファイル名は高辻が整理の過程で付けたもの。
26
Vensim PLE クイックリファレンスとチュートリアル
11. Vensim ソフトウェアの機能概要3
(1)
Vensim PLE
システム・ダイナミックス・モデルを簡単に学べるようにした個人学習用バージョン(PLE: personal
learning edition)。他の Vensim ソフトウェアと類似だが一部の機能とオプションはない。教育利用お
よび個人利用の場合は無料である。
(2)
Vensim PLE PLUS
PLE と同じインタフェースを持つが,マルチプルビュー,データ利用,感度分析,SyntheSim モー
ドのときのフィードバックリンクのブレイクなどで機能が拡張されている。シンプルなモデル構築を
したいが PLE ではもの足りないという学生や実務者に向いている。
(3)
Vensim Standard
(4)
Vensim Professional
標準ソフト。
大規模でこみいったモデルを構築するためのもの。添字付きの変数を使用できる。ただし,外部関
数,コンパイル,Venapp,Vensim DLL の機能は扱えない。
(5)
Vensim DSS
すべての機能が利用できる。外部関数,コンパイル,Venapp,コマンド・スクリプト,Vensim DLL,
他の言語との接合などの機能が扱える。
表 11
Vensim ソフトウェアと"Vensim® User’s Guide Version 5"の各章の該当箇所
各章の内容
Vensim ソフトウェア Vensim
PLE
Vensim PLE
PLUS
Vensim
Standard
Vensim
Professional
Vensim
DSS
1. 概要
○
○
○
○
○
2. ユーザインタフェース
○
○
○
○
○
3. 事例による体験
○
○
○
○
○
4. 因果連鎖図の描き方
○
○
○
○
○
5. ストック・フロー・ダイアグラムの描き方
○
○
○
○
○
6. シミュレーション・モデルの構築
○
○
○
○
○
7. 関数とシミュレーション・エラー
○
○
○
○
○
8. ルックアップ関数
○
○
○
○
○
9. マルチプルビュー
○
○
○
○
○
10. アウトプットのカスタマイズ
○
○
○
○
○
○
○
○
○
11. Vensim に不動産よるゲーム
12. インプット・アウトプット・コントロール
○
○
○
○
○
13. SyntheSim による統合シミュレーション
○
○
○
○
○
14. Reality Check
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
15. 感度分析とモンテカルロ
16. モデルにおけるデータ利用
○
17. 添字の利用
18. 最適化への応用
○
○
19. モデルの配布
○
○
○
○
○
20. リファレンス・モード
○
○
○
○
○
(注) ○印は該当することを意味する。
3
"Vensim® Reference Manual" pp.11-12,"Vensim® User’s Guide Version 5" pp.2 に基づき高辻が整理したもの。
27
Vensim PLE クイックリファレンスとチュートリアル
12. 関数一覧4
(注)
+ のついた関数は PLE で使用不可。
‡のついた関数は PLE,PLE PLUS で使用不可。
† のついた関数は Professional,DSS でのみ使用可能。
A FUNCTION OF(#,A,B,C,,,)
ABS(A)
Shows "generic" relationships -automatically generated by Sketch tool.
Returns the absolute value of A.
ACTIVE INITIAL(A,N)
Defines an Auxiliary with distinct active and initial values.
ALLOCATE AVAILABLE(r,pp,a)†
Allocates a scarce resource based on the request r, the amount available
a and a preference profile pp.
ALLOCATE BY PRIORITY(req,prio,siz,wid,sup)†
Allocates a scarce resource based on the request,
priority and supply over size elements with width determining sharing.
ALLOC P(req,prio,wid,mp)†
:AND:
Like ALLOCATE BY PRIORITY but using mp from MARKETP.
Logical AND (Chapter 2).
ARCCOS(X)‡ Arc-cosine of X in radians.
ARCSIN(X)‡Arc-sine of X in radians
ARCTAN(x)‡ Arc-tangent of X in radians.
:AT LEAST ONCE:
COS(X)
Relation must be true at least once for a Reality Check.
Cosine of X.
COSH(X)‡ Hyperbolic cosine of X.
:CROSSING:
Lines must cross for Reality Check Consequence.
CUMULATE(A)‡ Cumulates values for the data series A.
CUMULATEF(A)‡ Cumulates data series A and stores only the final value as the result.
DELAY BATCH(X,S,T,IS,IT,IB)‡ Holds the input X till S cumulates then delays T. First batch IS output at IT
with IB already cumulated for the next batch.
DELAY CONVEYOR(X,T,L,IP,I,IT)‡ Delays the input X on a conveyor for time T with leakage L. IP is the time
profile of the initial material I which will has an initial convey time IT.
DELAY FIXED(X,T,I)
Delays the input X for a fixed time T starting with I.
DELAY INFORMATION(X,T,I)‡ Delays the input X for a variable time T starting with I discarding inputs if T
decreases and holding inputs if T increases.
DELAY MATERIAL(X,T,I,M)‡
Delays the input X for a variable time T starting with I and conserving X
except that M is used if no delayed inputs are available.
DELAY N(X,T,I,N)
N'th order exponential delay of the input X starting at I and conserving X.
DELAY PROFILE(P,X,T,I,G)‡
(a Lookup)
DELAY1(X,T)
DELAY1I(X,T,I)
DELAY3(X,T)
An arbitrary delay of X with average delay time T distributed over a profile P
with initial value I initially growing at rate G.
First order exponential delay of X for time T conserving X.
Same as DELAY1 but starting at I.
A third order exponential delay of X for time T conserving X.
DELAY3I(X,T,I)
Same as DELAY3 but starting at I.
DELAYP(X,T:P)
Same as DELAY3 but also returning P the amount in the pipeline.
DEMAND AT PRICE(q,pp,pr)†
The quantity demanded given a satiation demand q, preference profile pp
and price pr.
4
"Vensim® Reference Manual" pp.61-68
28
Vensim PLE クイックリファレンスとチュートリアル
DEPRECIATE BY SCHEDULE(P,S,I,T,FS)†
Depreciate a payment stream P over time T according the to
schedule S with initial values I and the fiscal period starting at FS.
DEPRECIATE STRAIGHTLINE(P,T,F,I)†
Depreciate a payment stream P over time T with Fiscal Period F and
having initial output I.
ELMCOUNT(sub)†
Returns the number of elements in the Subscript Range sub.
:END OF MACRO†:
EXP(X)
Marks the end of a macro definition (Chapter 2).
Returns e(2.718...)
FIND ZERO(...)†
Used to find a zero value for a vector.
FORECAST(I,A,H)
GAME(X)
to the X power.
Forecast for I over the time horizon H using an averaging time A.
X except during gaming mode when the user input is used.
GAMMA LN(X)‡
Returns the natural log of GAMMA function on X (log of (X-1)
GET 123 CONSTANTS('f','t','c')
factorial for integers).
Constants from tab 't' of the 123 file 'f' starting at cell 'c'.
GET 123 DATA('f','t','r','c')
Data from tab 't' of the 123 file 'f' starting at cell 'c' time in row or column 'r'.
GET DATA AT TIME(D,T)‡
The value for the data variable D at time T or :NA: if not available.
GET DATA BETWEEN TIMES(D,T,M)‡
The value for the data variable D at T using interpolation rule M :NA:
if out of range.
GET DATA FIRST TIME(D)‡
The first Time at which the data variable D has a value.
GET DATA LAST TIME(D)‡
The last Time at which the data variable D has a value.
GET DATA TOTAL POINTS(D)‡
The total number of values for the data variable D.
GET XLS CONSTANTS'f','t','c')
Constants from tab 't' of the Excel file 'f' starting at cell 'c'.
GET XLS DATA('f','t','r','c')
Data from tab 't' of the Excel file 'f' starting at cell 'c' time in row or column 'r'
(if 'r' is a number time is read across, if a letter time is read down).
:HOLD BACKWARD:
Specifies that data should be used by holding the last value (Chapter 2).
IF THEN ELSE(cond,X,Y)
Returns X if condition is non-zero, otherwise Y.
:IGNORE:
Separate causes not yet used (Chapter 8). Also used in Reality Check.
:IMPLIES:
The implication portion of a Reality Check.
INITIAL(A)
Returns the value of A at initialization time and holds it constant.
INTEG(R,N)
Performs numerical integration of R starting at N (defines a Level).
INTEGER(X)
Returns the integer part of X.
:INTERPOLATE:
Specifies that data should be interpolated between points (Chapter 2).
INTERNAL RATE OF RETURN(s,f,I,t)‡
Computes the internal rate of return of stream s with fiscal period
f and initial investment/payment I made at time t.
INVERT MATRIX(M,n)†
:IS:
LN(X)
Inverts the Matrix M of dimension n.
Used for assignment of string constants (Chapter 2).
Natural logarithm of X.
LOG(X,Y)‡
Base Y logarithm of X.
:LOOK FORWARD:
For data look forward to the next value (Chapter 2).
LOOKUP AREA(L,X1,X2)‡
Area under the lookup L between X1 and X2.
LOOKUP BACKWARD(L,X)‡
The y value of L from to the largest x value smaller than or equal to X.
LOOKUP EXTRAPOLATE(L,X)‡
LOOKUP FORWARD(L,X)‡
LOOKUP INVERT(L,Y)‡
LOOKUP SLOPE(L,X,M)‡
Returns a lookup value determined by extrapolating the extreme entries.
The y value of L from to the first x value greater than or equal to X.
The x value that would return Y when used in the Lookup L.
The slope of the lookup L at X interpolating with mode M out of range.
29
Vensim PLE クイックリファレンスとチュートリアル
:MACRO:† Begins a macro definition (Chapter 2).
MARKETP(req,prio,siz,wid,sup)†
MAX(A,B)
:NOT:
Displays the Message 'msg' with display type d.
The smaller of A and B.
MODULO(X,B)
:NA:
for use with the ALLOC P function.
The larger of A and B.
MESSAGE('msg',d)‡
MIN(A,B)
Returns the market priority (mp)
The remainder resulting from dividing X by B.
Special symbol denoting the missing value (Chapter 2).
Logical NOT (Chapter 2).
NPV(S,D,I,F)
Net Present Value of S with discount rate D starting at I multiplied by F.
NPVE(S,D,I,F)
End of period net Present Value of S with discount rate D starting at I multiplied by F.
NET PRESENT VALUE(S,D,F,FS,FO)‡
Compute the net present value of S using discount factor D on fiscal
period F starting at
FS and discount FO into the period.
:OR:
Logical OR (Chapter 2).
POWER(A,B)
Raises A to the B power (same as A^B).
PROD( X[r!])†
PULSE(S,D)
The product of all instances of X in the Subscript Range r.
A pulse of height 1.0, starting at time S and lasting D time units.
PULSE TRAIN(S,D,R,E)
A repeated pulse of height 1.0, starting at time S, lasting B time units and
repeating every R time unit until time E.
QUANTUM(A,B)
Largest number <= A that is an integer multiple of B.
QUEUE AGE AVERAGE(Q,X)‡
Average age of oldest X elements in the queue Q.
QUEUE AGE IN RANGE(Q,M,X)‡
QUEUE AGE OLDEST(Q)‡
Number of elements in a queue between ages M and X inclusive.
Age of the oldest element of the queue Q.
QUEUE ATTRIB AVERAGE(Q,X)‡
Average attribute value of the oldest X elements in the queue Q.
QUEUE ATTRIB IN RANGE(Q,M,X)‡
The number of elements of Q with attributes between M and X
inclusive.
QUEUE ATTRIB MAX(Q)‡
Returns the maximum value of the attribute in the queue Q.
QUEUE ATTRIB MIN(Q)‡
Returns the minimum value of the attribute in the queue Q.
QUEUE ATTRIB QUANTITY(Q,X)‡
QUEUE FIFO(I,O,P,N,T)‡
Number of elements in queue Q required to have a total attribute of X.
Performs numerical integration of input I and output O tracking age with initial
age distribution profile P (a Lookup)
QUEUE FIFO ATTRIB(I,O,A,R,P,Q,N,M,T)‡
of quantity N over time T. The attrib
variation adds in an incoming attribute A, a rate R at which
existing attributes change, an initial distribution multiplier Q of the initial attribute M.
RAMP(S,T1,T2)
0 till T1 then a ramp with slope S until T2 and then constant.
RANDOM ... Return random variable. Almost all RANDOM functions have the common arguments m
-minimum, x-maximum, h-shift relative to the referenced distribution, r-stretch relative to
reference, s-seed. Additional arguments are:
BETA alpha=A and beta-B.
BINOMIAL on N trials of probability P (always an integer).
EXPONENTIAL starting at 0 with mean 1.
GAMMA of order O.
LOOKUP using the supplied lookup function as a probability density function.
NEGATIVE BINOMIAL for N successes with probability P (integer >= N).
30
Vensim PLE クイックリファレンスとチュートリアル
NORMAL with mean 0 and variance 1.
POISSON with mean M (always returns an integer).
TRIANGULAR between S and T with peak at P.
WEIBULL with shape S starting at 0 with mean 1.
The obsolete function RANDOM 0 1 takes no arguments and returns a number uniformly distributed
between 0 and 1.
RANDOM BETA(m,x,A,B,h,r,s)‡
RANDOM BINOMIAL(m,x,P,N,h,r,s)‡
RANDOM EXPONENTIAL(m,x,h,r,s)‡
RANDOM GAMMA(m,x,O,h,r,s)‡
RANDOM LOOKUP(l,m,x,h,r,s)‡
RANDOM NEGATIVE‡ BINOMIAL(...)
RANDOM NORMAL(m,x,h,r,s)
RANDOM POISSON(m,x,M,h,r,s)‡
RANDOM TRIANGULAR(m,x,S,P,T,s)‡
RANDOM UNIFORM(m,x,s)
RANDOM WEIBULL(m,x,S,h,r,s)‡
:RAW:
Marks data as raw so :NA: is reported for missing values (Chapter 2).
RC COMPARE('r',var,f[,s[,d]])
Set output to f times var's value in run 'r' with optional start time and
duration
RC COMPARE CHECK('r',var,g,f[,s[,d]])
RC DECAY(e,t[,s[,d]])
Set output to e decaying over t with optional start time and duration.
RC DECAY CHECK(g,e,t[,s[,d]])
RC GROW(e,g[,s[,d]])
After grace period g compare to e growing a rate g.
Set output to ramp to f times e over t with optional start time and duration.
RC RAMP CHECK(g,e,f[,st])
RC STEP(e,f[,st])
After grace period g compare to a ramp to e times f over ramp time t.
Set output to f times e with optional start time and duration.
RC STEP CHECK(g,e,f[,st])
REINITIAL(A)
After grace period g compare to e decaying over time t.
Set output to e growing at rate g with optional start time and duration.
RC GROW CHECK(g,e,t[,s[,d]])
RC RAMP(e,f[,st])
After grace period g compare to f times var in 'r'.
After grace period g compare to e times f.
Holds first value of A but, unlike INITIAL, recomputes on resumed run.
SAMPLE IF TRUE(B,X,N)‡
SHIFT IF TRUE(V,B,N,A,I)†
Returns X if B is true otherwise holding the value. Starts with N.
Shifts N elements of V if B is true accumulating if A is non-zero. The first
element of V is replaced by I.
SIN(X)
Returns the sine of X measured in radians.
SINH(X)
Returns the hyperbolic sine of X measured in radians.
SINTEG(R,I,m,x,Q,S,T)‡
Performs numerical integration of R starting at I but stays bigger than m,
smaller than x, is quantized by Q and is S when within T of S.
SMOOTH(X,T)
Returns a first order exponential smooth of X over time T.
SMOOTH N(X,T,I,N)
SMOOTH3(X,T)
SMOOTH3I(X,T,I)
SMOOTHI(X,T,I)
SQRT(X)
Returns a N'th order exponential smooth of X over time T starting at I.
Returns a third order exponential smooth of X over time T.
Returns a third order exponential smooth of X over time T starting at I.
Returns a first order exponential delay of X over time T starting at I.
Returns the square root of X.
31
Vensim PLE クイックリファレンスとチュートリアル
STEP(H,T)
Returns 0 till time T and then H.
SUM( X[r!] )†
Returns the sum of instances of X in the Subscript Range r.
SUPPLY AT PRICE(q,pp,pr)†
TABBED ARRAY( a b x y)†
TAN(X)‡
The quantity supplied given a capacity q, preference profile pp and price pr.
Used to input tab delimited numbers as arrays of constant values.
Returns the tangent of X (radians).
TANH(X)‡
Returns the hyperbolic tangent of X.
:TEST INPUT:
Defines a test input equation for use with Reality Check.
:THE CONDITION:
Precedes the predicate condition of a Reality Check.
TIME BASE(start,slope)
Defines a time base for output customization.
TIME SHIFT(data,shift)‡
Shifts data in time.
TIME TRANSITION(T1,...)‡
TREND(I,H,N)
Obsolete.
Returns the fractional change rate of I over horizon H starting with N.
VECTOR ELM MAP(vec,offset)‡
VECTOR RANK(vec,dir)‡
Extracts elements of a vector without directly using their subscripts.
Returns the rank values for a vector in increasing or decreasing order.
VECTOR REORDER(vec,svec)‡
VECTOR SORT ORDER(vec,dir)‡
Reorders the vector according the specified sort order.
Returns the sort order for a vector in increasing or decreasing order.
VMAX(X[r!])†
Takes the maximum of X over the subscript range r.
VMIN(X[r!])†
Takes the minimum of X over the subscript range r.
WITH LOOKUP(x,L#)
X IF MISSING(expr,X)†
XIDZ(A,B,X)
ZIDZ(A,B)
Returns the y value of the xy pairs L# corresponding to x.
Replaces missing data with X specified value.
Returns X if dividing by zero (B =0)
Zero (0.0)
if dividing by zero (B=0)
otherwise returns A divided by B.
otherwise returns A divided by B.
32
Fly UP