モデルのシミュレーションと解析を行う
Wolfram SystemModelerの機能はWolfram言語に含まれているため,多くの領域における実社会の現象のシミュレーションや解析が可能である.
完全なWolfram SystemModelerには,モデルの作成,探究,シミュレーション,解析のためのグラフィカルユーザインターフェースも含まれている.
このチュートリアルでは,Wolfram言語に含まれている機能を紹介する.
Wolfram SystemModeler Linkを使うために,パッケージをロードする.
例題を使う
SystemModelerには多数の領域のさまざま例題がバンドルされている.バンドルされている例題はすべて,WSMExamplesコマンドを使って調べたりシミュレーションを行ったりすることができる.次のセルを評価すると,インタラクティブな例題ブラウザが生成される.
シミュレーション
WSMSimulateはModel Centerで作成されたモデルのシミュレーションを実行し,WSMSimulationDataオブジェクトを返す.そのシミュレーションからの結果を可視化するためには,WSMPlotを使う.
WSMSimulate["mmodel"] | モデル"mmodel"のシミュレーションを実行する |
WSMSimulationData[…] | シミュレーションの結果を含むオブジェクト |
WSMPlot[sd,"MyPlot"] | WSMSimulationData sd から,保存されたプロット"MyPlot"を表示する |
WSMPlot[sd,{"v1",…}] | プロットの変数 vi |
基本的なシミュレーションとプロット
モデルのシミュレーションを実行するためには,モデルの名前を引数として,コマンドWSMSimulateを使う.
WSMSimulateの出力はWSMSimulationDataオブジェクトである.このオブジェクトは,シミュレーションの変数をプロットするためにWSMPlotで使うことができる.例題モデルの多くには,モデルの生成子によって定義された保存されたプロットがある.これらのプロットはシミュレーションの結果の"PlotNames"特性を使ってリストすることができる.
このようなプロットはWSMPlotで簡単に見ることができる.
シミュレーションデータ
シミュレーションの結果のオブジェクトにも,多数の特性がある.
WSMPlotを使って2つの変数をプロットする.
モデルとシミュレーション内の変数名は,上記のようなフォーマットされたDotName,あるいは文字列を使って参照することができる.両者は同等のものである.
時間2における変数"signalVoltage1.i"と"EMF1.i"の値を取り出す.
パラメータの変化
オプションWSMParameterValuesを使って2つのパラメータを変化させて再びシミュレーションを実行し,それぞれのシミュレーションの結果の変数を比較する.
パラメータスイープ
1つの変数の多数の値に対する複数のシミュレーションは自動的に並列で実行される.さまざまな跳ね返り特性"e"で跳ねるボールのシミュレーションを行う.
カスタムプロット
シミュレーションの結果をデータとして取り込むことにより,例えば,Chua回路の結果をParametricPlotでプロットする等,多くの方法で結果を可視化し解析することができる.
ParametricPlot3Dでローレンツアトラクタ(Lorenz attractor)でを使うことで美しいシミュレーションの結果が生成される.
モデルデータ
Wolfram言語からモデルのシミュレーションを実行するだけではなく,より直接的にモデルを操作することもできる.モデルについての情報を取り出すためにはWSMModelDataを,平衡点にはWSMFindEquilibriumを,線形の状態空間表現にはWSMLinearizeを使う.
WSMModelData["mmodel",…] | "mmodel"についての情報を取り出す |
WSMFindEquilibrium["mmodel"] | "mmodel"の平衡点を見付ける |
WSMLinearize["mmodel"] | "mmodel"の線形状態空間表現を得る |
モデルの方程式
WSMModelDataを使ってモデルに関する情報を取り出す.まず,モデル情報の概要を得る.
すべての導関数が0になる点を見付ける.これが平衡点と呼ばれる.
モデルについての情報を取得するために使えるWSMModelDataの特性が多数ある.
平衡点と線形表現
WSMFindEquilibriumを使って,攪拌層のモデルの平衡点を見付ける.
関数WSMLinearizeは,平衡点におけるモデルの線形状態空間表現を与える.結果はWolfram言語のStateSpaceModelである.
Wolfram言語の制御機能を使うと,この表現をさらに操作することができる.極配置を使って制御器を設計し,単位刻みに対する出力応答を表示する.