リアルタイム シミュレーションのソルバー
モデルをリアルタイム ターゲット マシンで実行するには、モデルを固定ステップ、固定コストのシミュレーション用に構成します。指定する固定ステップ ソルバーのタイプ、ステップ サイズ、反復回数が、リアルタイム シミュレーションの速度と精度に影響します。
モデル内の異なる Simscape™ 物理ネットワークには、それぞれ独自の Simscape Solver Configuration ブロックがあります。物理ネットワークごとに、異なるソルバーの選択を設定できます。物理ネットワークのローカル ソルバー オプションをオンにしていない場合、指定した Simulink® グローバル ソルバーがネットワークで使用されます。
固定ステップ ソルバーのタイプを選択する際に、モデルのネットワークごとに検討すべき主な要素は次のとおりです。
ネットワークが離散状態、連続状態のどちらであるか
ソルバーの計算コスト
ネットワークの数値的剛性
次の表は、Simulink ライブラリと Simscape ライブラリにある固定ステップ ソルバーのタイプをまとめています。
領域 | タイプ | 数値法 | ソルバー |
---|---|---|---|
Simulink グローバル ソルバー | 連続 | 陽的 | ode1 (オイラー法) |
ode2 (Heun 法) | |||
ode3 (Bogacki-Shampine) | |||
ode4 (4 次のルンゲ・クッタ法、RK4) | |||
ode5 (Dormand-Prince、RK5) | |||
ode8 (Dormand-Prince、RK8) | |||
陰的 | ode14x (外挿) | ||
ode1be (後退オイラー法) | |||
離散 | 該当なし | 離散 (連続状態なし) | |
Simscape ローカル ネットワーク | 連続 | 陰的 | 後退オイラー法 |
台形則 | |||
分割 |
離散ソルバーまたは連続ソルバーの選択
デジタル コントローラーの設計などのために離散モデル上でリアルタイム シミュレーションを実行するには、Simulink グローバル離散ソルバーを指定します。コントローラーを含むネットワークになんらかの連続状態が存在する場合は、ネットワークを離散化します。油圧アクチュエータのコントローラーを離散化する方法を示す例は、HIL テスト用に構成された油圧アクチュエータを参照してください。
メモ
グローバル Simulink ソルバーは、ローカル ソルバーを使用する物理ネットワークが離散状態をもつものとして認識します。
アナログ コントローラーのモデル化のように、コントローラー モデルに連続状態が含まれている場合は、Simulink グローバル連続ソルバーを使用します。
連続ソルバーの計算コスト
計算コストは、プロセッサが実行するタイム ステップごとの計算の数です。リアルタイム シミュレーションの準備状態は、計算コストに反比例します。モデルの計算コストが低くなるほど、モデルのリアルタイム シミュレーションがオーバーランを発生させずに実行され、十分に正確な結果が生成される可能性が高くなります。
次の図は、ほとんどのグローバルおよびローカル連続固定ステップ ソルバーの正規化された計算コストを示します。データは、異なるソルバー タイプを使用した一連の固定ステップ、固定コスト シミュレーションから得られたものです。モデルは非線形で、物理ネットワークを 1 つ含みます。ソルバー タイプが異なっても、シミュレーションでは同じステップ サイズを使用し、ソルバーの合計反復回数の設定も類似しています。同じステップ サイズと反復回数を使用するのは、これらもシミュレーションの計算コストに影響するからです。
同じ精度では、一般的に陽的グローバル ソルバーの方が陰的グローバル ソルバーより計算コストが低くなります。ローカル (Simscape のみ) ソルバーはグローバル ソルバーより低コストです。
数値的剛性がソルバーの選択に与える影響
モデルのシミュレーションをリアルタイムで実行する際に、陽的固定ステップ ソルバーと陰的固定ステップ ソルバーのどちらを使うかを決定する際には、次の 2 つの要素を検討します。
システムの数値的剛性
ソルバーの計算コスト
システムがスティッフかスティッフでないかを判断するには、異なる固定ステップ ソルバー構成でシミュレーションを実行し、それぞれの結果を参照結果と比較します。ステップ サイズが大きすぎると、スティッフなシステムでは振動が発生することがあります。このようなシステムには、すばやく変化したり低速に変化したりするダイナミクスが含まれているからです。詳細は、システムのスティッフとシステムの剛性の判別を参照してください。
陽的ソルバーは陰的ソルバーより高速ですが、振動が減衰する傾向があるため、数値的にスティッフなシステムでは解の精度が低くなります。陰的ソルバーは陽的ソルバーよりロバストであるため、スティッフなシステムで発生する振動をより良好にキャプチャできます。ただし、陰的ソルバーでは速度は低くなりますが高精度を実現できます。
コントローラー モデルが連続的で、数値的にスティッフな場合、陰的ソルバー ode14x を使用します。ode14x ではリアルタイム シミュレーションに十分な速さでモデルのシミュレーションを実行できない場合、精度を犠牲にして次を実行できます。
ステップ サイズを大きくするか、反復回数を減らすことで、シミュレーション速度を上げる。
ode1be 後退オイラー法ソルバーを使用する。
モデルの剛性を軽減し、ode14x の代わりに陽的ソルバーを指定する。
スティッフ性が低い、または数値的にスティッフでない連続コントローラー モデルに最適な陽的ソルバーを決定するには、それぞれの陽的連続ソルバーを使用して、制限付きシミュレーションを実行します。各ソルバーで、同じステップ サイズと、ほぼ同数のソルバー反復を使用するように設定します。シミュレーション結果を比較して、精度と速度の最適な組み合わせを実現するソルバーを選択します。
精度を犠牲にして、陽的ソルバーで得られる結果の精度を上げるには、ステップ サイズを小さくするか、反復回数を増やします。モデルを固定ステップ、固定コスト シミュレーション用に構成し、制限付きシミュレーションの結果を評価する方法の詳細は、ステップ サイズと反復回数の選択を参照してください。
Simscape ローカル固定ステップ ソルバーの使用
通常、モデル内で独立した物理ネットワークごとに Simscape ローカル ソルバーを使用することで、計算コストをさらに最小化できます。精度が同レベルの場合、ローカル ソルバーは Simulink グローバル ソルバーより計算コストが低くなります。
Simscape では、モデル内の独立した物理システム (サブシステム) それぞれに、異なるソルバー構成を指定できます。スティッフなローカル ネットワークでは陰的固定ステップ ソルバーを使用し、スティッフでないローカル ネットワークでは陽的固定ステップ ソルバーを使用することができます。ネットワークごとにソルバーを最適化することで、タイム ステップごとに実行される計算の合計数が最小化され、オーバーランを発生させずにモデルをリアルタイムで実行できる可能性が高くなります。
リアルタイム シミュレーション用の 3 つの Simscape 固定ステップ ソルバーから選択します。
後退オイラー法
台形則
分割
後退オイラー法のソルバーは、台形則のソルバーよりロバストなため、より安定しています。これは振動を減衰する傾向があります。台形則のソルバーは、後退オイラー法のソルバーより正確ですが、安定性は劣ります。これは、電気システムで一般的な正弦波 AC 波形のような振動をキャプチャする傾向があります。分割ソルバーは、台形則のソルバーよりロバストでもありますが、一部のモデルをシミュレートできません。詳細については、分割ソルバーを使用したシミュレーションの高速化を参照してください。選択したローカル ソルバーにかかわらず、次のような数値的安定性が脅かされる場合は常に、シミュレーションで後退オイラー法が使用されます。
シミュレーションの開始時。
瞬間的な変化 (当該のブロックでの内部離散変化) の発生後。