メインコンテンツ

Solver Configuration

物理ネットワーク環境とソルバー構成

  • Solver Configuration block

ライブラリ:
Simscape / Utilities

説明

接続された Simscape™ ブロック線図で表される各物理ネットワークに、シミュレーション用のソルバー設定の情報が必要です。Solver Configuration ブロックは、シミュレーションを開始するためにモデルで必要になるソルバーのパラメーターを指定します。

トポロジ的に区別可能な Simscape ブロック線図ごとに、Solver Configuration ブロックが 1 つだけ接続されている必要があります。

端子

保存

すべて展開する

保存接続端子。この端子にタイプはありません。任意のタイプの保存端子間の接続ラインに分岐点を作成することで、物理ネットワーク回路の任意の場所に接続できます。このブロックは、接続タイプに関係なく、物理ネットワーク全体にソルバー設定を提供します。

パラメーター

すべて展開する

正弦波変数をソルバーでどのように扱うかを指定します。

単一の定格周波数をもつシステムのシミュレーションを高速化するには、[周波数と時間] の値を使用します。詳細については、周波数と時間シミュレーション モードを参照してください。

Solver Configuration ブロックに接続されたネットワークに最も適した非線形の指数減少法を選択します。

  • 微分置換 — この手法では、DAE の各部分が解析的に微分され、元のシステムに付加されます。追加の各方程式で微分が選択され、"ダミー微分" と呼ばれる新しい代数変数に置き換えられます。詳細については、https://epubs.siam.org/doi/abs/10.1137/0914043?journalCode=sjoce3を参照してください。この手法から始めることをお勧めします。

  • 投影 — このオプションは、動的状態選択に問題があるために [微分置換] 方式が失敗する場合に使用します。

  • なし — このオプションは、モデルに非線形の高指数 DAE がない場合に使用します。非線形の指数減少が完全にバイパスされ、解析のオーバーヘッドが排除されます。

既定では、このチェック ボックスはオフになり、初期条件の計算から得られる初期状態からシミュレーションが開始されます。

このチェック ボックスをオンにすると、ソルバーはシステムへの入力が十分な時間にわたって一定に保たれていた場合に得られる定常状態の検出を試みます。詳細については、初期条件の計算を参照してください。その後、シミュレーションはこの定常状態から開始されます。

周波数と時間方程式の定式化と互換性のあるモデルの場合、このチェック ボックスをオンにすると、ソルバーは正弦波定常状態初期化の実行を試みます。つまり、初期化は周波数と時間方程式を使用して実行され、その後シミュレーションは実際の方程式の定式化や他の Solver Configuration ブロックで選択されたオプションを使用して進められます。詳細については、周波数と時間シミュレーション モードを参照してください。

メモ

[定常状態からシミュレーションを開始] オプションは、[コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] ペインにある [初期状態] オプションを使用するとオーバーライドされます。

このパラメーターは、初期条件の計算や過渡的な初期化に使用される非線形ソルバーに影響します。状態ベースの許容誤差のソースを選択します。

  • モデルの AbsTol および RelTol — [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインにある [絶対許容誤差] パラメーターと [相対許容誤差] パラメーターで指定される、モデルの許容誤差設定を使用します。

  • ローカル許容誤差の設定 — モデルの許容誤差設定をローカルの値に置き換えます。このオプションを選択すると、Solver Configuration ブロックのダイアログ ボックスに [絶対許容誤差] パラメーターと [相対許容誤差] パラメーターが表示されます。

モデルの許容誤差を使用するかローカルの許容誤差設定を使用するかに関係なく、それらの値のスケーリング係数は [許容誤差係数] パラメーターによって提供されます。この結果の値により、シミュレーションの開始時や各離散イベント (たとえば、バルブ開放や急停止などによる不連続点の発生など) の後に代数制約がどの程度正確に満たされるかが決まります。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインにある [絶対許容誤差] パラメーターを使用する代わりに、初期条件の計算や過渡的な初期化に使用するローカルの値を指定します。

依存関係

このパラメーターを有効にするには、[整合性の許容誤差][ローカル許容誤差の設定] に設定します。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインにある [相対許容誤差] パラメーターを使用する代わりに、初期条件の計算や過渡的な初期化に使用するローカルの値を指定します。

依存関係

このパラメーターを有効にするには、[整合性の許容誤差][ローカル許容誤差の設定] に設定します。

このパラメーターは、状態ベースの絶対許容誤差と相対許容誤差のスケーリング係数を提供します。モデルの許容誤差を使用するかローカルの許容誤差設定を使用するかは関係ありません。より信頼性の高い時間シミュレーションを得るには、パラメーターの値を小さく (つまり許容誤差を厳しく) します。初期条件の求解に失敗する場合や計算時間を短くする場合は、パラメーターの値を大きく (つまり許容誤差を緩く) します。

[サンプル時間] パラメーターで指定したサンプル時間を使用して、サンプルベースのローカル ソルバーを使用できます。サンプルベースのシミュレーションでは、それ以外では連続になる物理ネットワークのすべての状態が Simulink® で離散状態として表現されるようになります。ソルバーは状態をタイム ステップごとに 1 回更新します。このオプションは、生成コードのシミュレーションやハードウェアインザループ (HIL) シミュレーションに特に便利です。

メモ

ローカル ソルバーを使用する場合、Simulink や Simulink Control Design™ の線形化ツールを併用することは推奨されません。

状態の更新に使用するソルバー タイプを選択します。

  • 後退オイラー — 振動が減衰する傾向がありますが、安定性は (特にタイム ステップを大きくした場合に) 向上します。

  • 台形則[後退オイラー] よりうまく振動を取得しますが、安定性は低くなります。

  • 分割 — Simscape ネットワークに対応する連立方程式全体をより小さい連立方程式のカスケードに分割することにより、リアルタイム シミュレーションの速度を上げることができます。すべてのネットワークを分割できるわけではありません。ただし、システムが分割可能な場合は、このソルバーによってリアルタイム シミュレーションの速度が大幅に上がります。詳細については、分割ソルバーの仕組みについて分割ソルバーを使用したシミュレーションの高速化を参照してください。

いずれのローカル ソルバーを選択した場合でも、次の時点では強制的に後退オイラー法が適用されます。

  • シミュレーションの開始時。

  • 瞬間的な変化 (当該のブロックでの内部離散変化) が発生した直後。このような変化として、クラッチのロックとロック解除、バルブ アクチュエータの開放と閉鎖、PS Asynchronous Sample & Hold ブロックの切り替えなどが挙げられます。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにします。

ローカル ソルバーのサンプル時間 (秒) を指定します。ソルバーは状態をタイム ステップごとに 1 回更新します。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにします。

分割ローカル ソルバーの使用時に速度とロバスト性のどちらを優先するかを選択します。

  • 高速シミュレーション — ほとんどの微分方程式を前進オイラー法を使用して解くことで、シミュレーションのパフォーマンスが向上します。

  • ロバスト シミュレーション — より多くの方程式を後退オイラー法を使用して解くことで、シミュレーションのロバスト性が向上します。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにし、[ソルバー タイプ][分割] に設定します。

分割ソルバーを使用する場合、小さい線形スイッチド システム方程式を連続して解くことになります。シミュレーションのパフォーマンスを高めるために、逆行列を格納するように選択することができます。その後に後続のタイム ステップで同じ構成が検出されると、再計算する代わりに、格納された逆行列が分割ソルバーで使用されます。分割データの格納に使用する手法を選択します。

  • 必要に応じて — シミュレーション中に必要に応じて逆行列を計算します。この手法では、必要なメモリはそれほど多くありませんが、パフォーマンスのスパイクが発生することがあります。

  • 網羅 — シミュレーション前に逆行列を計算して格納します。この手法では、シミュレーションのパフォーマンスが向上しますが、より多くのメモリが必要になります。[分割メモリ割り当て [kB]] パラメーターを使用して、データの格納に使用できる最大メモリ割り当てを指定します。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにし、[ソルバー タイプ][分割] に設定します。

キャッシュされた分割データの格納に使用できる最大メモリ割り当て (kB) を指定します。この割り当てを超えると、シミュレーションでエラーが発生します。使用可能なメモリ リソースと統計ビューアーの [合計メモリ推定] のデータに基づいて既定値を調整できます。詳細については、分割ソルバーの統計を参照してください。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにします。[ソルバー タイプ][分割] に設定し、[分割ストレージ法][網羅] に設定します。

モデル構成によっては、並列クラッチのロックや並列に接続された電流センサーなど、解が無数に存在することで静的に不確定になるものがあります。正則化は、不確定なスルー変数をもつモデルを解決可能なシステムにする変換です。既定では、静的に不確定なシステムがソルバーで見つかると、実行時の正則化を適用して解決されます。

モデルに可逆的な並列フロー パスをもつ構成がない場合は、[実行中の不定方程式の求解] チェック ボックスをオフにしてシミュレーションを高速化できます。

依存関係

このチェック ボックスを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにし、[ソルバー タイプ][後退オイラー] または [台形則] のいずれかに設定します。

過渡的な初期化やソルバー フェーズを固定コストで計算するかどうか。このパラメーターを選択すると、過渡的な初期化やソルバーの計算のための非線形反復とモード反復の回数を指定できます。反復を指定された回数まで実行してもシステムが収束しない場合、ソルバーは失敗を無視して次のステップに進みます。

このチェック ボックスをオフにすると、よりロバストで時間がかかるアルゴリズムが使用されます。収束に達するために必要な回数だけ反復が実行され、過渡的な初期化時に収束に達しないとエラーが発生します。

詳細については、固定コスト シミュレーションを参照してください。

過渡的な初期化時に実行するニュートン反復の回数を指定します。固定ステップの固定コスト シミュレーションとして実行する各ステップで必要な反復回数は、simscape.getLocalSolverFixedCostInfo 関数を使用して調べることができます。

依存関係

このパラメーターを有効にするには、[固定コストでの実行時整合性の反復を使用] チェック ボックスをオンにします。

過渡的な初期化時に実行するモード反復の回数を指定します。

依存関係

このパラメーターを有効にするには、[固定コストでの実行時整合性の反復を使用] チェック ボックスをオンにし、[ローカル ソルバーを使用] チェック ボックスをオフにします。ローカル ソルバーの使用時はステップごとに大規模なモード更新が 1 回だけ実行されるため、このパラメーターは [ローカル ソルバーを使用] チェック ボックスがオンになっている場合は使用できません。

グローバル ソルバーとローカル ソルバーの両方について、過渡的な初期化時のインパルス検出の計算コストを管理できます。

状態の再初期化とインパルスの処理のイベントベースの手法により、衝突や跳ねるボールなどの物理的な現象をモデル化し、そのようなモデルのシミュレーション速度を大幅に高速化できます。ただし、インパルス検出により、過渡的な初期化のコストが増えることがあります。このコストは、収束に達するまでに実行されるインパルス反復の回数に比例します。

[インパルスの計算] チェック ボックスをオンにすると、過渡的な初期化時に実行するインパルス反復の回数を指定できます。その回数に達してもシステムが収束しない場合、システムは失敗を無視して次のステップに進みます。

このチェック ボックスをオフにすると、収束に達するために必要な回数だけインパルスが計算されます。

依存関係

このチェック ボックスを有効にするには、[固定コストでの実行時整合性の反復を使用] チェック ボックスをオンにします。

過渡的な初期化時に実行するインパルス反復の回数を指定します。その回数に達してもシステムが収束しない場合、システムは失敗を無視して次のステップに進みます。

依存関係

このパラメーターを有効にするには、[インパルスの計算] チェック ボックスをオンにします。

リアルタイム シミュレーションに後退オイラー法ソルバーを使用する場合の関数評価の最大スレッド数を指定します。実際に使用されるスレッド数は、パラメーターの値を超えない最も近い 2 のべき乗になります。たとえば、パラメーターの値として 5 を指定すると、ソルバーで 4 つのスレッドが使用されます。既定の 1 は、シングルスレッド関数評価に対応します。

マルチスレッド関数評価を使用するには、[実行中の不定方程式の求解] チェック ボックスをオフにする必要があります。[実行中の不定方程式の求解] チェック ボックスをオンにすると、ソルバーで警告が表示され、シングルスレッド関数評価に切り替えられます。

その他のサポートされないシミュレーション モードには、周波数と時間シミュレーション、遅延、スケーラブルなコンパイル、アクセラレータ モード、ラピッド アクセラレータ モードがあります。Simulink Real-Time™ を使用したコードの生成は可能ですが、それ以外のタイプのコード生成はサポートされていません。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにし、[ローカル ソルバー] パラメーターを [後退オイラー] に設定し、[固定コストでの実行時整合性の反復を使用] チェック ボックスをオンにします。

行列をソルバーでどのように扱うかを指定します。

  • 自動 — 行列を扱うための適切なオプション (スパースまたは非スパース) がソルバーで自動的に選択されます。

  • スパース — 行列がソルバーでスパースとして扱われます。

  • 非スパース — 行列がソルバーで非スパースとして扱われます。

2 の指数の整数を提供して、マルチスレッドの線形代数のスレッド数を指定します。スレッド数は、2 をパラメーターの値でべき乗した値と等しくなります。既定の 0 は、シングルスレッドの線形代数に対応します。

小規模なモデルでは、0 より大きい数を使用したマルチスレッド アルゴリズムがシングルスレッドよりも遅くなることがあります。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにし、[線形代数][スパース] に設定します。グローバル ソルバーの場合、Simscape の線形代数アルゴリズムを使用せずに Simulink で方程式が解かれます。

Delays ライブラリのブロックまたは Simscape の delay 言語構成を使用したカスタム ブロックを含むモデルをシミュレーションするときに遅延の処理に使用できる最大メモリ割り当て (kB) を指定します。このパラメーターの目的は、過度のメモリ スワッピングを防ぐことです。この割り当てを超えると、シミュレーションでエラーが発生します。この値は、使用可能なメモリ リソースに基づいて調整できます。

このオプションは、Simscape Multibody ライブラリのブロックを Simscape ブロックまたは他のアドオン製品のブロックに接続するモデルにのみ適用されます。モデルに 1 次元/3 次元接続があるかどうかは、統計ビューアーを使用して確認します。詳細については、1 次元/3 次元インターフェイス統計を参照してください。

Simscape Multibody ブロックが Simscape ネットワークに直接接続されている場合、ネットワークを解くために追加の微分が必要になることがあります。このチェック ボックスをオンにすると、この追加の微分を取得するために、Simulink-PS Converter ブロックに入る信号にソルバーで自動的に入力フィルター処理が適用されます。遅延の時定数は [フィルター処理時定数] パラメーターによって提供されます。

メモ

このチェック ボックスは、既定ではオンになっています。オフにすると、1 次元/3 次元接続に追加の微分が必要な場合に、ソルバーでエラー メッセージが発行されます。

このパラメーターは、1 次元/3 次元接続に対する自動の入力フィルター処理のフィルター処理時定数 (秒) を指定します。パラメーターの値は、この Solver Configuration ブロックを含むネットワークに属するすべての接続にグローバルに適用されます。

依存関係

このパラメーターを有効にするには、[必要な場合に 1-D/3-D 接続でフィルター処理を適用する] チェック ボックスをオンにします。

Multibody

接続された Simscape Multibody ネットワークにサンプルベースのローカル ソルバーを使用できます。ローカル ソルバーを使用すると、単純な Simscape Multibody ネットワークをもつ複合的な Simulink モデルの計算コストを削減できます。グローバル Simulink ソルバーは、ローカル ソルバーを使用する Simscape Multibody ネットワークを離散状態をもつものとして認識します。ローカル ソルバーは状態をタイム ステップごとに 1 回更新されます。

メモ

この設定は、ブロックのダイアログ ボックスの主要部分にある、ブロックに接続された Simscape ネットワークに適用される [ローカル ソルバーを使用] 設定からは独立しています。

Simscape Multibody ネットワークの状態の更新に使用するソルバー タイプを選択します。

  • 陽的な 1 次式ode1 と同じ数式を使用する陽的固定ステップ ソルバー。

  • 陽的な 2 次式ode2 と同じ数式を使用する陽的固定ステップ ソルバー。

  • 陽的な 3 次式ode3 と同じ数式を使用する陽的固定ステップ ソルバー。

  • 陽的な 4 次式ode4 と同じ数式を使用する陽的固定ステップ ソルバー。

  • 陽的な 5 次式ode5 と同じ数式を使用する陽的固定ステップ ソルバー。

  • 陽的な 8 次式ode8 と同じ数式を使用する陽的固定ステップ ソルバー。

依存関係

このパラメーターを有効にするには、[Multibody] セクションで [ローカル ソルバーを使用] チェック ボックスをオンにします。

Multibody のローカル ソルバーのサンプル時間 (秒) を指定します。ソルバーは、接続された Simscape Multibody ネットワークの状態をタイム ステップごとに 1 回更新します。

依存関係

このパラメーターを有効にするには、[Multibody] セクションで [ローカル ソルバーを使用] チェック ボックスをオンにします。

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2007a で導入

すべて展開する