WSMLink`
WSMLink`

WSMSimulationData

WSMSimulationDataは,バージョン11.3で試験的に導入されたSystemModelSimulationDataに置き換えられた.

WSMSimulationData[]

Modelicaのシミュレーションデータを表す.

詳細とオプション

  • WSMSimulationDataは一般にWSMSimulateあるいはWSMSimulateSensitivity等の関数によって生成される.
  • 標準出力形式では,シミュレーションの区間とWSMSimulationDataオブジェクト中の変数の数のみが,明示的に出力される.
  • WSMSimulationData[]["Properties"]は使用可能なプロパティのリストを与える.
  • シミュレーションデータのプロパティはWSMSimulationData[]["property"]で得ることができる.
  • 動的グラフィックスを使ったシミュレーションでは,sim["Diagram",t]は時間 t におけるGraphicsを返す.
  • コンポーネント"c1.c2..."についての動的グラフィックスは,sim["Diagram",{"c1","c2",},t]で表示される.
  • シミュレーションを行ったモデルのプロパティ: »
  • "VariableNames"モデル中の従属変数
    "ParameterNames"モデル中のパラメータ変数
    "StateVariables"モデル中の連続状態変数
    "ModelName"完全修飾モデル名
    "Descriptions"変数とパラメータの説明
    "PlotNames"モデル中のプロット名
  • 変数とパラメータのリストについては,WSMSimulationData[][{property,patt}]は,Modelica形式が文字列パターン patt にマッチする property の要素を返す.
  • シミュレーションに特有のプロパティ: »
  • "SimulationInterval"シミュレーション区間{tmin,tmax}
    "SimulationLength"シミュレーションの長さ tmax-tmin
    "NumberOfEvents"シミュレーション中のイベント数
    "Events"イベントが発生する時間点
    "Samples"変数がサンプルとして取られた時点
  • 変数とプロパティの値に関連するプロパティ: »
  • {"v1","v2",}v1, v2, についてのシミュレーション
    {"p1","p2",}p1, p2, についてのパラメータ値
    "RawData",{"v1","v2"}v1, v2, についての時間と値のペア
  • 変数"vi"についてのシミュレーションの結果は,任意の時間 t に評価できる関数として返される. »
  • WSMSimulationDataオブジェクト sim からのシミュレーションの結果は,点 tsim[{"v1","v2",},t]によって評価することができる.
  • sim["RawData",{"v1",}]の事象は同じ時点における時間と値のペアを複製することで示される.
  • 変数"vi"とパラメータ"pi"は,文字列またはDotNameを使って与えることができる.
  • シミュレーション結果とパラメータ値の完全リスト: »
  • "VariableValues"シミュレーション{DotName["v1"]->f1,}
    "ParameterValues"パラメータ{DotName["p1"]->c1,}
  • sim からのシミュレーションの結果のリストは,sim["VariableValues",t]によって点 t で評価することができる.
  • 変数はパラメータ vi[t,pj]に依存する.パラメータ pj に対する変数の感度は偏微分 pjvi[t,pj]である.感度はWSMSimulateSensitivityを使って計算することができる. »
  • 感度にはWSMSensitivityName[vi,pi]でアクセスすることができる.ただし,vipiDotNameを使って与えられる.
  • 感度に関連するプロパティ:
  • "SensitivityNames"変数パラメータの感度
    "SensitivityValues"感度{WSMSensitivityName[vi,pi]->gi,j,}
  • オプションTargetUnitsは,シミュレーション結果の単位を制御する:
  • None単位なし(デフォルト)
    "Unit"モデルで定義された単位
    "DisplayUnit"モデルで定義された単位を表示

例題

すべて開くすべて閉じる

  (2)

Wolfram SystemModeler Linkをロードする:

モデルのシミュレーションを行う:

モデル中の全変数の名前を得る:

変数の軌跡を得る:

全変数の軌跡を得る:

シミュレーション区間を示す:

スコープ  (19)

モデルのプロパティ  (7)

シミュレーションのデータオブジェクトで使用可能なすべてのプロパティのリストを得る:

モデルのシミュレーションを行う:

モデル中の全変数の名前を得る:

モデル中の全パラメータの名前を得る:

モデルのシミュレーションを行う:

モデルに保存されたプロットの名前を得る:

保存されたプロットを表示する:

モデルのシミュレーションを行う:

パターンにマッチする変数名を得る:

パターンにマッチするパラメータ名を得る:

シミュレーションから状態変数を得る:

状態変数の感度をパラメータに対してプロットする:

シミュレーションを行ったモデルの完全名を示す:

変数をプロットし,ラベルとして短縮モデル名を使う:

シミュレーション中の変数とパラメータの説明を得る:

シミュレーションのプロパティ  (4)

シミュレーションの時間間隔を示す:

シミュレーションの区間プロパティを使ってプロット区間を指定する:

2秒から7秒まででシミュレーションの長さを示す:

イベントを含むモデルのシミュレーションを行う:

シミュレーション中のイベント数を見ることで複雑さを調べる:

全イベントの時間点を得る:

補間されていない値を取り出すために変数がサンプルとして取られた時点を使う:

サンプル点を取り出す:

これらのサンプル点における変数を取り出す:

変数とパラメータ  (6)

変数とパラメータを取り出す:

2変数の関数を得る:

2つのパラメータの値:

シミュレーション結果を単位付きで取り出す:

モデルからの基本単位を使う:

モデルで定義された表示単位を使う:

シミュレーションから生のデータを取り出す:

損失動力変数についての時間と値のペアを取り出す:

この変数が最大になる点を求める:

変数の完全な軌跡上で最大の点を示す:

配列のあるモデルのシミュレーションを行う:

2×2行列v.xをベクトル値関数として回復する:

ベクトルの要素をプロットする:

ベクトルv[1].xの2つの要素を回復する:

データを得るために変数とパラメータの規則を使う:

2変数のシミュレーションの軌跡を取り出す:

モデル中の全パラメータの置換規則を得る:

感度でシミュレーションを行う:

シミュレーションと感度値を得る:

パラメータの名目値を求める:

についての変動 をプロットする:

動的ダイアグラム  (2)

時点2における動的モデルのダイアグラムを示す:

シミュレーション全体に渡るダイアグラムのアニメーションを示す:

いくつかのオプションを制御してダイアグラムを示す:

時点2におけるコンポーネントについての動的モデルのダイアグラムを表示する:

コンポーネントのシミュレーション中の,コンポーネントダイアグラムのアニメーションを表示する:

アプリケーション  (9)

バウンドするボールのシミュレーション中のイベントを示す:

高さのプロット中でイベントを示す:

WSMSimulationDataからInterpolatingFunctionの逆関数を計算する:

モデルのシミュレーションを行う:

InterpolatingFunctionを1つ取り出し,その区間を計算する:

結果をプロットする:

シミュレーション中の最大値を求める:

モデルのシミュレーションを行う:

最高点を検出する:

結果を示す:

複数の変数を分析する:

複数のシミュレーションを使う:

シミュレーションデータの計測基準の数を計算する:

関数をプロットする:

1-ノルム TemplateBox[{f, 1}, Norm2]=int_0^3TemplateBox[{{f, (, t, )}}, Abs]dt を計算する:

2-ノルム TemplateBox[{f, 2}, Norm2]=int_0^3TemplateBox[{{f, (, t, )}}, Abs]^2dt を計算する:

RMS-ノルム TemplateBox[{f}, Norm]_(RMS)=sqrt(1/3 int_0^3TemplateBox[{{f, (, t, )}}, Abs]^2dt) を計算する:

異なる高さから落とされたバウンドするボールのシミュレーションを行う:

ボールとその高さのプロットをアニメーションにする:

ParametricPlot3Dで可視化する:

LowpassFilterで,シミュレーションデータにフィルタをかける:

変数の生のデータを抽出する:

TimeSeriesを作り,ローパスフィルタがかかった信号とともにプロットする:

特性と関係  (1)

SystemModelerでWSMSimulationDataを作り,Wolfram言語にインポートすることができる: