WOLFRAM

バージョン11.3では,WSMLinkパッケージの機能のほとんどが,Wolframシステムに実験的に導入された機能で代替されるようになっている. »

モデルのシミュレーションと解析を行う

例題を使うモデルデータ
シミュレーション

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

SystemModelerの基本的なシミュレーション関数

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

モデルのシミュレーションを実行するためには,モデルの名前を引数として,コマンドWSMSimulateを使う.

WSMSimulateの出力はWSMSimulationDataオブジェクトである.このオブジェクトは,シミュレーションの変数をプロットするためにWSMPlotで使うことができる.例題モデルの多くには,モデルの生成子によって定義された保存されたプロットがある.これらのプロットはシミュレーションの結果の"PlotNames"特性を使ってリストすることができる.

このようなプロットはWSMPlotで簡単に見ることができる.

シミュレーションデータ

シミュレーションの結果のオブジェクトにも,多数の特性がある.

シミュレーションの中の変数の名前を見てみる.

WSMPlotを使って2つの変数をプロットする.

モデルとシミュレーション内の変数名は,上記のようなフォーマットされたDotName,あるいは文字列を使って参照することができる.両者は同等のものである.

時間2における変数"signalVoltage1.i""EMF1.i"の値を取り出す.

パラメータの変化

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

パラメータスイープ

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

時間の経過に伴うボールの高さをプロットする.

カスタムプロット

シミュレーションの結果をデータとして取り込むことにより,例えば,Chua回路の結果をParametricPlotでプロットする等,多くの方法で結果を可視化し解析することができる.

変数"C1.v""C2.v"を選ぶ.

ParametricPlot3Dでローレンツアトラクタ(Lorenz attractor)でを使うことで美しいシミュレーションの結果が生成される.

モデルデータ

Wolfram言語からモデルのシミュレーションを実行するだけではなく,より直接的にモデルを操作することもできる.モデルについての情報を取り出すためにはWSMModelDataを,平衡点にはWSMFindEquilibriumを,線形の状態空間表現にはWSMLinearizeを使う.

WSMModelData["mmodel",]"mmodel"についての情報を取り出す
WSMFindEquilibrium["mmodel"]"mmodel"の平衡点を見付ける
WSMLinearize["mmodel"]"mmodel"の線形状態空間表現を得る

SystemModelerのモデル関数

モデルの方程式

WSMModelDataを使ってモデルに関する情報を取り出す.まず,モデル情報の概要を得る.

時間変数 t に依存するシステム方程式を得る.

すべての導関数が0になる点を見付ける.これが平衡点と呼ばれる.

モデルについての情報を取得するために使えるWSMModelDataの特性が多数ある.

平衡点と線形表現

WSMFindEquilibriumを使って,攪拌層のモデルの平衡点を見付ける.

関数WSMLinearizeは,平衡点におけるモデルの線形状態空間表現を与える.結果はWolfram言語のStateSpaceModelである.

Wolfram言語の制御機能を使うと,この表現をさらに操作することができる.極配置を使って制御器を設計し,単位刻みに対する出力応答を表示する.