Main Content

分割ソルバーの仕組みについて

分割ソルバーの仕組みについて、分割ソルバーをもつ非線形電気機械回路の例で説明します。ソルバーはモデルの分割を作成し、それぞれの分割に最適なソルバーを選択します。統計ビューアー ツールを使用して、モデルが分割ソルバーでどのように分割されるかを解析できます。このツールにより、ソルバーのタイプや方程式のタイプなど、各分割の詳細が提供されます。

  1. モデル例を開きます。

    openExample('simscape/NonlinearElectromechanicalCircuitWithPartitioningSolverExample')

    Block diagram of the model

  2. モデル統計を表示するために、モデル ウィンドウの [デバッグ] タブで、[Simscape][統計ビューアー] をクリックします。[モデルの更新] ボタンをクリックしてビューアーにデータを取り込みます。

  3. [1 次元物理システム] にある [分割] を選択します。ソルバーによってシステムが 3 つに分割されています。1 つの分割では前進オイラー法を使用し、他の 2 つでは後退オイラー法を使用しています。

    Statistics Viewer showing the Partitioning details

  4. 分割に関する追加の詳細を確認するには、その分割の行を選択します。[変数] タブには、分割内の各変数の変数パスとラベルが表示されます。[方程式] タブには、分割のブロックとコンポーネントが表示されます。

    Statistics Viewer showing the variable name for the first partition

  5. 分割内のブロックに移動するには、そのブロックの行を [変数] タブまたは [方程式] タブで選択し、[ブロックを強調表示] ボタンをクリックします。使用可能な場合は、特定の方程式を生成するソース コードに移動することもできます。

    [変数] タブで Inertia.w を選択し、[ソース コード] をクリックします。

    Statistics Viewer showing the equation link for the first partition

    t == inertia * w.der;
    

    同様に、他の分割の方程式も表示できます。

分割ソルバーはこれらの方程式をすべて組み合わせて、モデルのシミュレートに必要な方程式系を生成します。

System of equations

ここで、Sensor.phi は変数 Sensing.Ideal Rotational Motion Sensor.phi の略です。m0Diode ブロックの方程式に由来する boolean で、そこでは Diode.v[順電圧] パラメーターと比較されます。

    if v > Vf
      i == (v - Vf*(1-Ron*Goff))/Ron;
    else
      i == v*Goff;
    end

この方程式系を統計ビューアー ツールのデータと比較すると、この系の最初の行が Partition 3 にあることがわかります。これは、Partition 3 が Inertia.t 状態変数を所有しているためです。同様に、2 番目と 3 番目の行は Partition 2 にあり、4 番目の行は Partition 1 にあります。

分割の方程式のタイプは、所有されている状態が関わる項によってのみ決まり、接続関数の影響は受けません。たとえば、Partition 3 では、接続関数の項に非線形性があるにもかかわらず [方程式のタイプ][線形時不変] と表示されます。これは、所有されている状態については線形時不変であるためです。

シミュレーション中に、分割ソルバーは統計ビューアー ツールのリストと同じ順序で分割を解決します。ソルバーは、各分割の解決後に取得された、更新された状態の値を使用して上流の分割の状態更新を実行します。

関連するトピック