WSMLink`
WSMLink`

WSMSimulateSensitivity

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

WSMSimulateSensitivity["mmodel",{p1,p2,}]

試行設定に基づいて,"mmodel"とパラメータ piに対する感度のシミュレーションを行う.

WSMSimulateSensitivity["mmodel",tmax,{p1,p2,}]

0から tmaxまでシミュレーションを行う.

WSMSimulateSensitivity["mmodel",{tmin,tmax},{p1,p2,}]

tminから tmaxまでシミュレーションを行う.

WSMSimulateSensitivity["mmodel",vars,{tmin,tmax},{p1,p2,}]

変数 vars についてのシミュレーションデータのみを保存する.

詳細とオプション

  • WSMSimulateSensitivityWSMSimulationDataオブジェクトを返す.
  • "mmodel"は完全修飾Modelica名を参照する.
  • WSMSimulateSensitivityは,であるすべての状態 についての微分係数, , についてと同様,すべての変数 について,解 を生成する.
  • 感度は,sd["SensitivityNames"]を使ってWSMSimulationDataオブジェクト sd 中にリストすることができる.
  • WSMNames["*.mmodel"]が一意的なマッチを与えるところでは,最短の一意的なモデル名 mmodel を使うことができる.
  • 保存されたシミュレーション変数 vars は次の値を持つことができる.
  • Automatic何を保存するか自動的に選択する
    {v1,v2,}変数 viのみを保存する
    All全変数を保存する
  • 使用可能なオプション:
  • InterpolationOrderAutomaticイベント間の出力の連続次数
    WSMInitialValuesAutomatic初期値を無効にする
    WSMInputFunctionsAutomatic入力値を無効にする
    WSMParameterValuesAutomaticパラメータ値を無効にする
    WSMProgressMonitorAutomatic進捗表示を制御する
  • 通常,オプション設定をAutomaticにすると,設定値が"mmodel"あるいはその試行設定から取られるようになる.
  • WSMParameterValuesあるいはWSMInitialValues{pi->{c1,c2,},}に設定すると, picjの値を取って,シミュレーションが並列で行われる.
  • WSMInitialValuesはModelicaモデルの start プロパティに相当する.
  • WSMInputFunctions->{"var1"->fun1,}funi[t]を,時間 t における vari の入力値として使う.
  • 使用するCVODESソルバはMethod->{"opt1"->val1}で制御することができる.
  • CVODESはメソッドの使用可能なサブオプション:
  • "InterpolationPoints"Automatic再帰点の数
    "Tolerance"106適応的刻み幅の許容度

例題

すべて開くすべて閉じる

  (4)

Wolfram SystemModeler Linkをロードする:

モデルのエクスペリメント設定で,一定の時間間隔でのパラメータ感度を調べる:

パラメータの相対的変動に対する信号の感度を示す:

aが10%変化する際のyzの限界をプロットする:

モデルの図表示を入力として使う:

上記の出力をコピーペーストする:

スコープ  (10)

シミュレーション時間  (3)

モデルからの設定を使ってシミュレーションを行う:

時間0から5までシミュレーションを行う:

明示的な時間間隔でシミュレーションを行う:

感度結果  (6)

1つのパラメータの感度を調べる:

パラメータaに対する感度のシミュレーションを行う:

感度の名前を得る:

aの変化に対するyの感度を得る:

1つのパラメータからの感度を調べる:

感度の1つをプロットする:

信号のパラメータに対する感度を示す:

aに対する感度のシミュレーションを行う:

感度の名前を得る:

aにおける変化に対するyの感度を,yについての名目軌跡とともに得る:

もとのパラメータaとパラメータa0.05大きくしたものでyをプロットする:

パラメータの相対的な変化に対する信号の感度を示す:

感度の名前を得る:

aにおける変化に対するyおよびzの感度を,名目軌跡と値とともに得る:

aを感度の10%変化させた場合の,yおよびzに対する境界をプロットする:

パラメータにおける絶対的な変化に対する信号の感度を示す:

aについての感度でシミュレーションを行う:

aの変化に対するyの感度を,yの軌跡とともに得る:

パラメータaが絶対値0.1で変化する際のyにおける変化を計算する:

パラメータa±0.1変化する際のyの変動をプロットする:

結果の保存  (1)

選択した変数のみを保存する:

指定された変数とパラメータのみが保存された:

一般化と拡張  (1)

デバッグメッセージはメッセージグループの"WSMLinkDebug"に集められる:

初期化のデバッグメッセージをオンにする:

WSMLinkに関するすべてのデバッグメッセージをオフにする:

オプション  (5)

InterpolationOrder  (1)

補間次数1と3.補間点3つでシミュレーションを行う:

感度変数を示す:

WSMInitialValues  (1)

シミュレーションの初期値を変える:

プロット内の変化を比較する:

WSMInputFunctions  (1)

変数の入力関数を与え,出力の感度を調べる:

ゲインを適用した後で,入力を積分するモデルのシミュレーションを行う:

ゲインパラメータに対する出力の感度をプロットする:

WSMParameterValues  (1)

シミュレーションのパラメータ値を変える:

プロット中で2つを比較する:

WSMProgressMonitor  (1)

WSMProgressMonitorで進捗ダイアログをオフにする:

アプリケーション  (5)

モデルの感度を調べる:

パラメータの値を得る:

パラメータを変化させたときの偏差のピークを求める:

5%感度境界と偏差がピークとなる時間を示す:

どの変数がパラメータに最も敏感かを求める:

周波数パラメータに対する感度でシミュレーションを行う:

10%感度境界は"integrator3.y"がパラメータに最も敏感であることを示している:

回転する輪のシミュレーションを行う:

輪の位置と輪の異なるパラメータに対する感度を選ぶ:

輪の半径と質量を4%変化させた場合の輪の経路をそれぞれ示す:

測定データを比較することで,モデルのパラメータをキャリブレートする:

シミュレーションのキャッシングを設定する:

WSMSimulateSensitivityを使って勾配を得る:

パラメータを測定データにフィットする:

勾配を使わないと時間がかかる:

フィットされたパラメータでシミュレーションを行う:

テストデータとキャリブレートされたモデルを一緒に示す:

解をその感度境界とともに示す:

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

5%感度境界を示す:

5%の最大変化でシミュレーションを行う:

軌跡を得る:

軌跡のほとんどが近似された感度境界に含まれていることを示す:

特性と関係  (4)

感度のシミュレーションを対応する微分方程式の感度と比較する:

相対的なパラメータの変化についての境界をプロットする:

aの変化に対するyの感度を, yaの値とともに得る:

aを感度の10%変化させたときのyの境界をプロットする:

代りにWSMPlotを使う:

感度はパラメータ内の小さい変化に対して有効である:

パラメータに対する感度を得る:

パラメータを変化させてシミュレーションを行う:

プロット内で比較すると,10%の変動で軌跡が計算限界の外に出ることが分かる:

WSMParametricSimulateをさまざまな値について評価可能な関数に使う:

周波数パラメータのさまざまな値について解を計算する:

解を時間とともにプロットする:

おもしろい例題  (1)

RabinovichFabrikant方程式における 軸と 軸についての感度境界を示す:

感度限界を三次元で示す: