シミュレーション論/工学

3. 連続系シミュレーション
3.1 連続系シミュレーションの歴史 ・昔はアナコン
・精緻なシミュレーション: CSMP/DDS
・社会経済のシミュレーション: DYNAMO
3.2 連続系シミュレーション言語
・数値積分法: Euler, 修正Euler,Runge-Kutta,
Runge-Kutta-Gill,Predictor-Corrector
・CSMP/DDS: 多種の積分法を用意
・DYNAMO: Euler法(シンプル)。応用: SD,ID,WD
3.3 WS上での連続系シミュレーション言語
031221
061021
1
連続系シミュレーション言語の系譜
Euler型積分
方式採用
Interpreter方式
DDS (日立)
031103
・Pre-compiler方式
↓
FORTRAN
・非手続き言語
2
CSMP/DDS 連続系シミュレーション言語
Continuous System Modeling Program
1967 IBM 開発
Digital Dynamic Simulator
1964-1969 日立開発
1.特徴
(1)連続系の構成要素を表現する基本的な関数ブロックを備え,
これらを組合わせて,高度に複雑なモデルを簡単に表すこと
ができる。複雑な非線形問題さえも容易に扱える。
(2)多種類の関数ブロック
・ラプラス演算を実現する関数ブロック(積分器,微分器)
・ステップ,パルスなどの信号発生器
・任意関数の関数発生器 ・スイッチ関係 ・論理演算器
・陰関数,ヒステリシスなどの特殊関数
(3)問題向き言語(POL: Problem Oriented Language)
コンピュータの言語の熟知不要。ブロック線図や微分方程式
を仲介にしてモデル化。FORTRANに類似の言語形式をもち,
FORTRAN文を挿入できるなど柔軟性の高い言語である。
031103
3
CSMPの構成
2. 言語処理方式
(1) プリコンパイラ (Pre-compiler) 方式
入力データ→FORTRANソースプログラムに変換。
FORTRANコンパイラでオブジェクトプログラムを作成。
FORTRAN関数やCSMP関数を結合後,実行。
(2) 非手続言語 (nonprocedural language)
1つ1つのステートメントを順序立てて書く煩雑さはない。
任意の順序で書く。素人には理解しやすい。
031103
4
CSMPの言語体系
3. 言語体系
言語としては,ストラクチャ文,データ文,コントロール文から
なる。CSMP文は,定数,変数,演算子,関数およびレーベ
ルを基本要素としている。
061021
5
連続系シミュレーション言語記述例
振動系の
シミュレーション
DDS(CSMP)に
よる記述
031029
6
・運動方程式を標準型連立方程式に
031103
7
・ブロック図を使う方法
031103
8
ブロック図 → 構造文
031103
9
初期値,変数,出力制御変数
031103
10
コーディング例
PARAMETER
031103
(K = 0.1)
M = 0.5, (K = 0.1), R = 0.2
11
パラメータの変更例 (K = 0.1,
PARAMETER
0.3, 0.5)
M = 0.5, (K = 0.1, 0.3, 0.5), R = 0.2
パラメータ変更
パラメータ変更繰り返し
計算結果 on Line Printer
031103
12
計算結果 on Line Printer
K = 0.1
DOUT
K = 0.3
K = 0.5
031103
時間
13
数値積分
031103
14
数値積分法 Euler法
031029
15
修正Euler法
031029
16
Runge-Kutta 法
031029
17
Runge-Kutta-Gill 法
中間結果を保存
しなくて済む
031029
18
Predictor-Corrector 法
031029
19
System Dynamics ・・・ DYNAMO
System Dynamics(SD) ・・・ DYNAMO (言語)
・Industrial Dynamics(ID)
・Urban Dynamics(UD)
・World Dynamics(WD)
MITの J.W. Forrester 教授が開発
歴史: 1958 SIMPLE → 1961 DYNAMO II User’s manual
構成
変量間関係のモデル ・・・ 差分方程式
時間管理
・・・ 単位時間方式
レベル,レートおよびフローの概念の利用
031127
20
DYNAMO
031127
ダイナモ方程式
21
水タンクシステムの例
031103
22
SDで用いられるシンボル
031127
23
System Dynamicsの特徴
1. 正または負の情報フィードバックループが前
提。ループの情報流の流れ,増幅,ゆがみが
表現できる。
2. 方策→結果がダイナミックな視点から試行錯
誤的に得られる。数学的最適解を求めるもの
ではない。
3. 要素間の因果関係は任意に定めてもよい。
4. モデル式は簡単。非線形はテーブル関数で扱
える。
5. 何をレベルやレートと考えるか,それらの因果
関係はどうなっているか,というシステムの構
031127
24
造把握を重点に置いている。
貝と海草のモデル
貝: limpet
海草: seaweed
①
②
031103
③
④
25
①
貝と海草のモデル方程式(1)
031103
26
貝と海草のモデル方程式(2)
④
②
③
031103
27
貝と海草モデルのフローダイヤグラム
①
②
③
④
031103
28
貝と海草の生育数
031103
29
World Dynamics (original)
031125
30
世界モデルのフローダイヤグラム
031103
31
Quality of life
031103
32
WDの結果
1970ころ
警告:
何もしないと,生
活の質が低下
今後の政策に示
唆:
適正な施策の下
で,生活の質が
維持できる
031103
33
ソーシャルシステムの特徴(1)
ソーシャルシステムとは,人間を含んだシステム。
最小単位は人間。 人間 < 集団 < 組織
1.
2.
3.
4.
5.
6.
7.
システムの境界をもつ。
因果ループに基づく。
フィードバックループは多重性をもつ。
複雑な相互関係がある。
非線形である。
直感的にわかりにくい性質をもつ。
原因と結果,原因と現象が時間的,空間的
に離れている。
031127
34
ソーシャルシステムの特徴(2)
8. 原因を除去しなければ,施策の効果は永続
的でない。
9. ソーシャルシステムでの諸現象は1回生起現
象である。
10.ソーシャルシステムのシミュレーションは,ス
テップバイステップのシミュレーションしかな
い。
11.人間の能力は,システムの観察に優れてい
る。しかし,幾つかのファクタが相互作用しな
がらダイナミックに変化していく様子を追跡す
るのは劣っている。
031127
35
WS上での連続系シミュレーション言語
MATLAB
制御系設計
システム同定
信号処理
線形代数
ACSL
非線形シミュレーション
PROTOBLOCK
ブロック線図による
モデリング
図 3.6 制御系のモデリング,設計,シミュレーション
のためのパッケージ構成
030910 oldppt
36
WS上での連続系シミュレーション言語
MATRIXx: リアルタイムの制御系,信号処理系を
設計するときに用いられる CAE (computer
aided engineering) ツールである。
AutoCode: MATRIXxで設計された制御方式をコ
ントローラのソフトウェアに変換するCASE
(computer aided software engineering) ツール
である。 MATRIXxで設計されたブロックダイヤ
グラムをもとに C, FORTRAN, Adaの各ソース
コードを自動生成する。
031127
37
第3章 Key words
連続系シミュレーション言語
・精緻なシミュレーション: アナコン→CSMP/DDS
多種の積分法: Euler, 修正Euler,Runge-Kutta,
Runge-Kutta-Gill,Predictor-Corrector
計算物理,微分方程式の求解,振動方程式
・社会経済のシミュレーション: DYNAMO言語。
Euler法(シンプルな積分法)採用。
SD,ID,UD,WD(地球レベル,QoL)
・利用環境:大型計算機 → WS → パソコン
Interpreter, compiler
031221
38