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

ライブラリ:
Simscape /
Utilities
説明
接続された Simscape™ ブロック線図で表される各物理ネットワークに、シミュレーション用のソルバー設定の情報が必要です。Solver Configuration ブロックは、シミュレーションを開始するためにモデルで必要になるソルバーのパラメーターを指定します。
トポロジ的に区別可能な Simscape ブロック線図ごとに、Solver Configuration ブロックが 1 つだけ接続されている必要があります。
例
永久磁石 DC モーター
このモデルは Faulhaber Series 0615 DC マイクロモーターに基づいています。パラメーターの値は、このモーターの 1.5 V バリアントに一致するように設定されています。このモデルでは、メーカーの見積もりによる無負荷速度、無負荷電流および停動トルクを検証するためにこれらのパラメーターを使用します。
分割ソルバーをもつ非線形電気機械回路
この例では、ランプ入力で制御される DC モーターをモデル化します。結果の連立方程式には、線形スイッチド システム要素と非線形要素があり、それぞれ Diode ブロックと Rotational Friction ブロックで発生しています。しかし、分割ソルバーはこの系を、非線形関数により接続された、線形時不変方程式および線形スイッチド システム方程式の複数の小さなセットに変換することができます。これは計算コストの削減に役立ち、翻ってシミュレーションの高速化につながります。
端子
保存
保存接続端子。この端子にタイプはありません。任意のタイプの保存端子間の接続ラインに分岐点を作成することで、物理ネットワーク回路の任意の場所に接続できます。このブロックは、接続タイプに関係なく、物理ネットワーク全体にソルバー設定を提供します。
パラメーター
正弦波変数をソルバーでどのように扱うかを指定します。
単一の定格周波数をもつシステムのシミュレーションを高速化するには、[周波数と時間] の値を使用します。詳細については、周波数と時間シミュレーション モードを参照してください。
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 で導入静的に不確定なシステムを解くために実行時の正則化を適用する Solver Configuration ブロックの [不定方程式の求解] チェック ボックスは、[実行中の不定方程式の求解] に名前が変更され、ダイアログ ボックスの別のセクションに移動されました。以前は、これを有効にするには、[固定コストでの実行時整合性の反復を使用] チェック ボックスをオンにする必要がありました。現在は、[実行中の不定方程式の求解] チェック ボックスを有効にするには、[ローカル ソルバーを使用] チェック ボックスをオンにし、[ソルバー タイプ] を [後退オイラー] または [台形則] のいずれかに設定する必要があります。理想的な並列クラッチや並列スイッチなどの可逆的な並列フロー パスがモデルにない場合、それらのタイプのローカル ソルバーを使用するときに、シミュレーションが固定コストであるかどうかに関係なく、いつでも [実行中の不定方程式の求解] チェック ボックスをオフにしてシミュレーションを高速化できるようになりました。
グローバル ソルバーに対して実行時の正則化をオフにすることはできなくなりました。
新しい [Multibody] セクションには、接続された Simscape Multibody ネットワークを解く際の固有の設定とパラメーターが含まれています。[ローカル ソルバーを使用] チェック ボックスを使用すると、Simscape Multibody ネットワークを離散状態をもつものとして表現することで計算コストを削減できます。このセクションの [ソルバー タイプ] パラメーターと [サンプル時間] パラメーターは、Multibody のローカル サーバーにのみ適用されます。
ブロックでの初期条件の計算や過渡的な初期化には、状態ベースの整合性の絶対許容誤差と相対許容誤差にスケーリング係数を乗算した値が使用されます。[整合性の許容誤差] パラメーターで、モデルの許容誤差かローカルの許容誤差設定のいずれかを選択できます。それらの値のスケーリング係数が新しい [許容誤差係数] パラメーターによって提供されます。この状態ベースの手法は、特にノミナル値によるモデルのスケーリングと組み合わせて使用すると、ロバスト性と効率性が向上します。
以前のリリースでは、[整合性の許容誤差] パラメーターは数値であり、ブロックでのモデルの初期化に方程式の残差の許容誤差に基づく非線形ソルバーが使用されていました。
[整合性の許容誤差] パラメーターが数値である既存のモデルを開くと、そのモデルでは以前のリリースで使用されていたのと同じ残差ベースの計算方法が引き続き使用されます。シミュレーション結果は変わりません。
状態ベースの手法を使用するように既存のモデルをアップグレードするには、アップグレード アドバイザーの [Simscape で状態ベースの整合性許容誤差が使用されていることの確認] チェックを使用します。
モデルで後退オイラー法のローカル ソルバーを使用している場合、ニュートン反復の計算に時間がかかり、固定コスト シミュレーションで問題が生じることがあります。新しい [関数評価の最大スレッド数] パラメーターを使用し、新しい [不定方程式の求解] チェック ボックスをオフにすると、マルチスレッド関数評価を使用してマルチコア マシンでのシミュレーションを高速化できます。
以前のリリースでは、ソルバーでシングルスレッド関数評価が使用され、実行時の正則化が常に適用されていました。[関数評価の最大スレッド数] パラメーターと [不定方程式の求解] チェック ボックスの既定値は、以前のリリースで使用されていたアルゴリズムと等価です。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)


