変数スケーリング アナライザーを使用したノミナル値の選択
Simscape™ では、ノミナル値の選択に役立つノミナル値解析を実行できます。ノミナル値により、予想されるモデル変数の大きさを指定し、シミュレーション条件を改善できます。適切なノミナル値を選択することで、収束を可能にするために条件を改善したり、速度を向上させることができます。詳細については、ノミナル値によるシステムのスケーリングを参照してください。
変数スケーリング解析を実行するタイミング
変数スケーリングに起因する速度の問題がソルバーで発生することがあります。たとえば、ある状態が Simulink® の [ソルバー] ペインにある [絶対許容誤差] パラメーターに対して小さすぎる場合、ソルバーはシミュレーションの一部または全体にわたってその状態を無視する可能性があります。Simscape 変数スケーリング アナライザー アプリは、以下の状態を特定します。
シミュレーションの期間全体にわたって [絶対許容誤差] パラメーターより小さいままである。
[絶対許容誤差] の付近に集まるが、その値を下回らない。
他の変数より数桁が大きい。
ソルバー プロファイラー ツールも [絶対許容誤差未満の状態] タブでこれらの問題の一部を特定します。これらすべてのケースで、ソルバーのパフォーマンス上の問題が発生することがあります。
ヒント
モデルは、すべての状態がほぼ O(1) のときに最良のパフォーマンスを示します。
次の図の単純な三相回路モデルについて考えます。
既定のノミナル値を使用してモデルを実行すると、次の警告が表示されます。
初期条件の最初の求解が収束しませんでした。高い優先順位をすべて低く緩和して再試行します。
この場合、ソルバーは [優先順位] が [高]
に設定されている 1 つの変数を無視します。これにより、次の図の結果が得られます。
1 次電流 [A] のサブブロットと磁束 [pu] のサブプロットは予想した三相の挙動を示していますが、2 次電流 [A] のサブプロットは示していません。ソルバーは 2 次電流を適切に初期化できませんでした。ソルバー プロファイラーでシミュレーションを実行すると、ソルバーの例外とゼロクロッシングが集中していることがレポートされますが、絶対許容誤差を下回る状態は示されません。[絶対許容誤差を自動的にスケール] が [オフ]
になっている点に着目してください。
Simscape 変数スケーリング アナライザーを開く
Simscape 変数スケーリング アナライザーを開くには、MATLAB® コマンド ウィンドウで次のコマンドを入力します。
simscapeVariableScalingAnalyzer
オプションで、解析するモデルをコマンドの引数として指定できます。
あるいは、アプリのインターフェイスを使用して、付加するモデルを選択できます。
モデルの解析
アプリで単純な回路モデルを実行すると、以下の図に示す結果が生成されます。
アプリは、潜在的な問題のある状態を強調表示し、検出した問題のタイプに基づいて推奨事項を提供します。単位 Wb
を共有する一連の状態が強調表示されています。ソルバーはこの単位にノミナル値 1 を割り当てています。しかし、[LogMaxAbsData] 列は、この単位をもつ状態の対数が -2.4 付近に集まることを示しています。これは、[絶対許容誤差] パラメーターの対数 -3 に近接しています。強調表示された状態を選択して [状態のプロット] をクリックすると、データの視覚的表現を表示できます。
目的の三相挙動では、重なり合う 3 つの変数が各相にあることに注意してください。状態が絶対許容誤差の付近にあることは、磁束の不適切なスケーリングを示唆しています。
ノミナル値の選択と再スケーリング
問題のある状態を作り出したブロックにプロパティ インスペクターを使用して、ノミナル値をローカルに再スケーリングできます。または、モデル ウィンドウのノミナル値を使用して、ノミナル値をグローバルに再スケーリングできます。
ノミナル値のローカルな再スケーリング
問題のある状態は単位 Wb
に関連しますが、この単位はモデル内の特定のブロックと明示的に結び付けられていません。以下の図は、Two-Winding Transformer (Three-Phase) ブロックの [プロパティ インスペクター] ウィンドウを示しています。[ノミナル値] セクションで各変数名の横にあるチェック ボックスをオンにすると、生成される各値についてブロックの既定のローカル設定を確認できます。
これらの値を調整しても、このモデルのパフォーマンスは改善しません。ローカルな再スケーリングでは不十分である場合は、ノミナル値のグローバルな再スケーリングを検討してください。
ノミナル値のグローバルな再スケーリング
Simscape 変数スケーリング アナライザー アプリの [ノミナル値] をクリックすることにより、モデルのノミナル値ウィンドウを起動できます。
ノミナル値と単位のペアを追加するには、[ノミナル値と単位のペアを追加] をクリックします。この例では、ノミナル値を 1e-3
に再スケーリングすると、状態値の集まっている領域にノミナル値が近づきます。詳細については、ノミナル値によるシステムのスケーリングを参照してください。
結果の確認
新しい値と単位のペアを指定した後、アナライザーからモデルを再実行すると、以下の結果が生成されます。
前回の状態は強調表示されなくなりましたが、1 つの新たな状態が前回とは異なる挙動を示しています。要件に応じて、この状態の再スケーリングが必要な可能性があります。しかし、このモデルの Scope ブロックには、適切に初期化された 2 次電流が表示されています。