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