メインコンテンツ

Solver Configuration

R2026b

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

  • Solver Configuration block

ライブラリ:
Simscape / Utilities

説明

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

例

端子

保存

すべて展開する

接続端子に関連付けられた型指定されていない保存端子。この端子を、任意のタイプの保存端子間の接続ラインに接続します。

パラメーター

すべて展開する

方程式を時間領域、または周波数-時間を組み合わせた領域で定式化するためのオプション。

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

非線形の高指数微分代数方程式 (DAE) に使用する指数減少法。次のオプションから選択します。

  • 微分置換 — ソルバーは DAE の一部を解析的に微分し、その結果を元のシステムに追加します。追加の各方程式で微分について、ソルバーは微分を"ダミー微分"と呼ばれる新しい代数変数に置き換えます。詳細については、https://epubs.siam.org/doi/abs/10.1137/0914043?journalCode=sjoce3 を参照してください。

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

  • なし — モデルに非線形の高指数 DAE が含まれていない場合は、このオプションを使用して非線形の指数減少を省略し、解析のオーバーヘッドをなくします。

定常状態からシミュレーションを開始するためのオプション。このパラメーターをオフにすると、初期条件の計算で得られた初期状態からシミュレーションが開始されます。

このパラメーターを選択すると、システムへの入力が十分に長い時間一定である場合に得られる定常状態を、ソルバーが検出しようとします。詳細については、初期条件の計算を参照してください。その後、シミュレーションはこの定常状態から開始されます。

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

メモ

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

初期条件の決定および過渡初期化の計算に使用する、状態ベースの許容誤差方法。次のオプションから選択します。

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

  • ローカル許容誤差の設定 — モデルの許容誤差設定をローカルの値に置き換えます。

ソルバーが初期条件および過渡初期化条件の計算に使用するローカルの絶対許容誤差。

依存関係

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

ソルバーが初期条件および過渡初期化条件の計算に使用するローカルの相対許容誤差。

依存関係

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

状態ベースの絶対許容誤差と相対許容誤差のスケーリング係数。状態ベースの絶対許容誤差と相対許容誤差のスケーリング係数。ブロックは、モデルまたはローカルの許容誤差に対して指定した設定に加えて、この値を適用します。この値を小さくすると精度は向上しますが、シミュレーション性能が低下したり、値が小さすぎる場合にはシミュレーションが失敗したりすることがあります。この値を大きくすると、精度と引き換えに性能を向上できる場合があります。

サンプルベースのローカル ソルバーを使用するためのオプション。サンプルベースのシミュレーションでは、Simulink® は物理ネットワークのすべての連続状態を離散状態として扱います。ソルバーは状態をタイム ステップごとに 1 回更新します。リアルタイム シミュレーションおよびハードウェアインザループ シミュレーションでは、このオプションを使用します。このパラメーターを選択すると、ローカル ソルバーの設定は、このブロックに接続された Simscape 物理ネットワークにのみ適用されます。モデルの残りの部分では Simulink ソルバーを使用します。

メモ

このパラメーターを有効にした場合、Simulink または Simulink Control Design™ 線形化ツールの使用を最小限に抑えると、性能が向上する可能性があります。

ローカル シミュレーションに使用するソルバーのタイプ。次のオプションから選択します。

  • 後退オイラー — このソルバーは振動を減衰させますが、特にタイム ステップを大きくした場合に安定性が高くなります。

  • 台形則 — このソルバーは [後退オイラー] 設定よりも振動を適切に捉えますが、安定性は低くなります。

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

どの設定を選択した場合でも、ソルバーは次の場合に後退オイラー法を使用します。

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

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

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] を選択します。

ローカル ソルバーのサンプル時間 (秒)。ソルバーは状態をタイム ステップごとに 1 回更新します。このパラメーターの値と [非線形の反復] パラメーターの値とのバランスを取ります。詳細については、ステップ サイズと反復回数の選択を参照してください。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] を選択します。

分割ローカル ソルバーの使用時に速度とロバスト性のどちらを優先するかを指定するオプション:

  • 安定型シミュレーション (安定性を最大化) — 方程式のグループに対して陰的なソルバーを最大限使用することで、シミュレーションのロバスト性を向上させます。

  • バランス型シミュレーション (非線形性と安定性のバランスを調整) — 方程式のグループに対する陰的なソルバーの使用を増やすことで、速度とロバスト性のバランスを取ります。

  • 高速シミュレーション (非線形性を最小化) — 方程式のグループに対して陽的なソルバーを最大限使用することで、シミュレーション性能を向上させます。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] を選択し、[ソルバー タイプ] を [分割] に設定します。

分割データの保存に使用する方法。分割ソルバーを使用する場合、小さい線形スイッチド システム方程式を連続して解くことになります。逆行列を保存するか、シミュレーション性能を向上させるかを選択できます。その後、後続のタイム ステップでソルバーが同じ構成を検出すると、分割ソルバーは逆行列を再計算する代わりに、保存されている逆行列を使用します。次のオプションから選択します。

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

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

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] を選択し、[ソルバー タイプ] を [分割] に設定します。

網羅的な分割ストレージでのメモリ割り当て (kB)。この割り当てを超えると、ソルバーはエラーを生成します。使用可能なメモリ リソースと統計ビューアーの [合計メモリ推定] のデータに基づいて、この値を調整します。詳細については、分割ソルバーの統計を参照してください。

依存関係

このパラメーターを有効にするには、以下を行います。

  • [ローカル ソルバーを使用] パラメーターを選択します。

  • [ソルバー タイプ] を [分割] に設定します。

  • [分割ストレージ法] を [網羅] に設定します。

実行時の正則化を使用して静的に不定なシステムを解くためのオプション。ロックする並列クラッチや、並列に接続された電流センサーなど、特定のモデル構成では解が無限に存在するため、静的に不定になります。このパラメーターを選択すると、正則化が有効になります。正則化は、不定なスルー変数をもつモデルを解決可能なシステムにする変換です。このパラメーターは既定で有効になっています。

モデルに損失のない並列フロー パスをもつ構成が含まれていない場合は、[実行中の不定方程式の求解] パラメーターをオフにすることで、シミュレーションを高速化できます。

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] パラメーターを選択し、[ソルバー タイプ] を [後退オイラー] または [台形則] のいずれかに設定します。

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

この設定をオフにすると、ソルバーは収束するまで必要な回数だけ反復を実行し、過渡的な初期化時に収束できなかった場合はエラーを生成します。この設定を使用すると、ソルバーは常にインパルスを計算します。

詳細については、物理シミュレーションに使用するソルバーの最適な選択を参照してください。

過渡的な初期化中および積分ステップ中にソルバーが使用するニュートン反復の回数。収束するかどうかにかかわらず、ソルバーは指定された回数のニュートン反復を完了します。simscape.getLocalSolverFixedCostInfo 関数を使用して、ステップごとに必要な反復回数を確認できます。このパラメーターの値と [サンプル時間] パラメーターの値とのバランスを取ります。詳細については、ステップ サイズと反復回数の選択を参照してください。

依存関係

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

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

依存関係

このパラメーターを有効にするには、[固定コストでの実行時整合性の反復を使用] を選択し、[ローカル ソルバーを使用] をオフにします。

グローバルとローカルの固定コスト ソルバーの両方について、過渡的な初期化中にインパルスを計算するためのオプション。インパルスを計算することで、スイッチング イベント、接触イベント、および拘束の変化を含むモデルのシミュレーション速度を大幅に向上させることができます。ただし、インパルスを計算すると、インパルス反復の回数に比例して過渡的な初期化のコストが増大します。[固定コストでの実行時整合性の反復を使用] をオフにすると、ソルバーは常にインパルスを計算します。

[インパルスの計算] を選択した場合、[インパルスの反復回数] で実行するインパルス反復の回数を指定します。指定された回数の反復でインパルスの計算が収束しない場合、ソルバーは次のステップに進みます。

[インパルスの計算] をオフにすると、ソルバーはインパルス反復を実行しません。

依存関係

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

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

依存関係

このパラメーターを有効にするには、[インパルスの計算] パラメーターを選択します。

リアルタイム シミュレーション中のマルチスレッド関数評価に使用するスレッドの最大数。後退オイラー法ソルバーおよび台形則ソルバーでは、マルチスレッドを使用できます。ブロックが実際に使用するスレッド数は、パラメーター値を超えない最も近い 2 のべき乗になります。たとえば、このパラメーターを 5 に設定すると、ソルバーは 4 つのスレッドを使用します。既定値 1 は、シングルスレッドの関数評価に対応します。

マルチスレッド関数評価では、周波数と時間シミュレーション、遅延、スケーラブルなコンパイル、アクセラレータ モード、またはラピッド アクセラレータ モードはサポートされません。マルチスレッド関数評価を使用する場合、コード生成には Simulink Real-Time™ のみを使用できます。

依存関係

このパラメーターを有効にするには、以下を行います。

  • [ローカル ソルバーを使用] を選択します。

  • [実行中の不定方程式の求解] をオフにします。

  • [ソルバー タイプ] を [後退オイラー] または [台形則] に設定します。

  • [固定コストでの実行時整合性の反復を使用] を選択します。

ソルバーが行列代数を処理するために使用する方法。次のオプションから選択します。

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

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

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

マルチスレッド線形代数に使用するスレッドの数。2n として指定します。ここで、n はこのパラメーターの値です。既定値 0 は、シングルスレッド線形代数に対応します。

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

依存関係

このパラメーターを有効にするには、[ローカル ソルバーを使用] パラメーターを選択し、[線形代数] パラメーターを [スパース] に設定します。

ブロックが遅延処理に使用する最大メモリ割り当て (kB)。Delays ライブラリのブロックまたは Simscape の delay 言語構成を使用するカスタム ブロックを含むモデルをシミュレーションする場合、ブロックはこの割り当てに従います。この割り当てにより、過剰なメモリ スワッピングを防止できます。シミュレーションがこの割り当てを超えると、ソルバーはエラーを生成します。

Simscape ブロックの 1 次元接続と、Simscape Multibody™ などの他の製品やその他のアドオン製品の 3 次元接続との間の接続にフィルターを適用するためのオプション。モデルに 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 モデルの計算コストを削減できます。このパラメーターを選択すると、Simscape Multibody ネットワークは離散状態をもつものとしてグローバル Simulink ソルバーに認識されます。ローカル ソルバーは状態をタイム ステップごとに 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 で導入

すべて展開する