モデルのシミュレーションと解析を始める

Wolfram言語にはシステムモデリング機能が含まれているため,多様な領域における実世界の現象のシミュレーションと解析が実行できる.
完全な製品としてのWolfram SystemModelerにも,モデルの生成,探究,シミュレーション,解析のための,専用のグラフィカルユーザインターフェースが含まれている.
このチュートリアルでは,Wolfram言語に含まれている機能を紹介する.
モデルの探究
SystemModelerにはさまざまな複雑性を持つ多様な分野の例題が含まれている.これらの例題はすべてSystemModelExamplesコマンドを使って調べたりシミュレーションを実行したりすることができる.以下のセルを評価すると,インタラクティブな例題ブラウザが生成される.
すべての例題モデルをリストすることもできる.
例題およびモデルに関する他のソースとして以下がある.
モデルの表現
Wolfram言語のシステムモデルはSystemModelで表すことができる.モデルは,上記のSystemModelExamples等の関数から利用することも,その名前を文字列として参照することで利用することもできる.
結果のオブジェクトはコピーアンドペーストしたり,他の関数の入力に使ったり,特性をクエリしたりすることができる.
シミュレーション
SystemModelSimulateはModel Centerで作成されたモデルのシミュレーションを実行し,SystemModelSimulationDataオブジェクトを返す.そのシミュレーションからの結果を可視化するためには,SystemModelPlot使う.
SystemModelSimulate[model]
model のシミュレーションを実行する
SystemModelSimulationData[]
シミュレーションの結果を含むオブジェクト
SystemModelPlot[sd,"MyPlot"]
SystemModelSimulationData sd の保存されたプロット"MyPlot"を表示する
SystemModelPlot[sd,{"v1",}]
プロット変数 vi
基本的なシステムモデルシミュレーション関数

基本的なシミュレーションとプロット

モデルのシミュレーションを実行するためには,モデルを引数として,コマンドSystemModelSimulateを使う.
SystemModelSimulateの出力はSystemModelSimulationDataオブジェクトである.このオブジェクトは,シミュレーションの変数をプロットするためにSystemModelPlotで使うことができる.多くの例題モデルでは,モデルの作成者によって定義されたプロットが保存されている.これらはシミュレーションの結果の"PlotNames"特性を使ってリストすることができる.
このようなプロットはSystemModelPlotで簡単に表示することができる.

シミュレーションデータ

シミュレーションの結果のオブジェクトにも,多数の特性がある.
シミュレーションの中の変数の名前を見てみる.
SystemModelPlotを使って,2つの変数をプロットする.
時間2における変数"syse.sys.resistor.i""syse.sys.resistor.v"の値を取り出す.

パラメータの変化

オプション"ParameterValues"を使って2つのパラメータを変化させて再びシミュレーションを実行し,それぞれのシミュレーションの結果の変数を比較する.

パラメータスイープ

1つの変数の多数の値に対する複数のシミュレーションは自動的に並列で実行される.さまざまな跳ね返り特性"e"で跳ねるボールのシミュレーションを行う.
時間の経過に伴うボールの高さをプロットする.

カスタムプロット

シミュレーションの結果をデータとして取り込むことにより,多くの方法で結果を可視化し解析することができる.例えば,Chua回路の結果をParametricPlotでプロットする.
変数"C1.v"および"C2.v"を選ぶ.
ParametricPlot3Dでローレンツアトラクタ(Lorenz attractor)でを使うことで美しいシミュレーションの結果が生成される.
モデルデータ
Wolfram言語からモデルのシミュレーションを実行するだけではなく,より直接的にモデルを操作することもできる.モデルについての情報を取り出すためにはSystemModelを,平衡点を得るためにはFindSystemModelEquilibriumを,線形の状態空間表現を得るためにはSystemModelLinearizeを使う.
SystemModel[model,]
model についての情報を取り出す
FindSystemModelEquilibrium[model]
model の平衡点を見付ける
SystemModelLinearize[model]
model の線形状態空間表現を得る
システムモデリング関数

モデルの方程式

SystemModelを使ってモデルに関する情報を取り出す.まず,モデル情報の概要を得る.
時間変数 t に依存するシステム方程式を得る.
すべての導関数が0になる点,つまり平衡点を見付ける.
モデルについての情報を得るために使うことのできるSystemModelの特性が多数ある,

平衡点と線形表現

FindSystemModelEquilibriumを使って,攪拌層のモデルの平衡点を見付ける.
関数SystemModelLinearizeは,平衡点におけるモデルの線形状態空間表現を与える.結果はWolfram言語のStateSpaceModelである.
Wolfram言語の制御機能を使うと,この表現をさらに操作することができる.極配置を使って制御器を設計し,単位刻み入力に対する出力応答を表示する.