daessc
ソルバーを使用するシミュレーションのベストプラクティス
可変ステップ Simulink® ソルバーである daessc
では、物理システムのモデル化により生じる微分代数方程式をシミュレートするために専用に設計されたアルゴリズムが提供されます。
daessc
ソルバーは Simscape™ ライセンスでのみ利用可能です。
daessc
ソルバーの使用
新しいモデルでは、モデルに Simscape ブロックと DAE が含まれている場合、VariableStepAuto
ソルバーは既定で daessc
になります。また、daessc
ソルバーを明示的に選択することもできます。
モデル ウィンドウで [モデル化] タブを開き [モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスが開き、[ソルバー] ペインが表示されます。
[ソルバーの選択] で [タイプ] を
[可変ステップ]
に設定し、次に [ソルバー] ドロップダウン リストで[daessc (DAE solver for Simscape)]
を選択します。[ソルバーの詳細] を展開して、[Daessc モード] を次のいずれかのオプションに設定し、ソルバーのパフォーマンスを微調整します。
自動
— 最適なdaessc
ソルバー モードを自動的に選択します。これは既定の設定です。高速
— 計算コストの点で最も効率的なモードですが、ロバスト性は低下します。平衡化
— 計算コストとロバスト性のバランスを取ります。ロバスト
— ロバスト性は高くなりますが、コストも高くなります。クイック デバッグ
— 積分ステップごとにソルバーのヤコビアンを更新するため、[ロバスト]
よりさらにコストが高くなります。対話型のモデル開発で、方程式の問題をすばやく見つける場合にのみ推奨されます。フル デバッグ
— 積分ステップおよびニュートン反復ごとにソルバーのヤコビアンを更新します。このモードは計算コストが最も高くなります。対話型のモデル開発で、方程式を完全に調べて潜在的な問題を見つける場合にのみ推奨されます。
daessc
ソルバーは、モデルにおける Simscape の状態について以下の許容誤差設定を使用します。
AutoScaleAbsTol
をoff
に設定[絶対許容誤差] に
auto
が指定されている場合は、AbsTol
をRelTol
と同じ値に設定
これらの変更は [コンフィギュレーション パラメーター] ダイアログ ボックスには反映されず、モデルの他の (非物理的な) 状態にも影響しません。つまり、モデルに Simulink コントローラーと Simscape プラントがある場合、daessc
ソルバーでこのモデルをシミュレートすると、コントローラーは [コンフィギュレーション パラメーター] ダイアログ ボックスで指定された許容誤差を使用しますが、プラントは AutoScaleAbsTol
= off
および AbsTol
= RelTol
を使用します。
daessc
ソルバーはモデルが適切にスケーリングされているものと仮定します。詳細については、ノミナル値によるシステムのスケーリングとノミナル値によるスケーリングを使用したパフォーマンスの改善を参照してください。
daessc
ソルバーは Rsim
をサポートしません。このソルバーは他のリアルタイム シミュレーション ターゲットでも使用できます。
daessc
を使用する場合の推奨設定とベスト プラクティスの詳細については、モデルのトラブルシューティングを参照してください。
モデルのトラブルシューティング
daessc
ソルバーを利用する場合、モデルが適切にスケーリングされていることと、ソルバーに対し指定されている許容誤差が工学的に適切であることを確認してください。以下の設定が推奨されます。
相対許容誤差 —
1e-3
絶対許容誤差 —
1e-3
絶対許容誤差を自動的にスケール — オフ
ssc_new
と Simscape テンプレートはこれらの設定を使用します。他の方法を使用してモデルを作成する場合は、3 項目すべてを次のコマンドで設定できます。
set_param(bdroot,'AbsTol','1e-3','RelTol','1e-3','AutoScaleAbsTol','off')
モデルのスケーリングを向上させるには、次を行います。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [Simscape] ペインで、[ノミナル値を使用して正規化] チェック ボックスがオンになっていることを確認します。
ソルバー プロファイラーを使用してモデルをシミュレートし、[絶対許容誤差未満の状態] タブをチェックします。
このタブにリストされている各変数について、その変数がシミュレーションで重要であるかどうかを判定します。重要である場合は、この変数を含むブロックでプロパティ インスペクターを開き、変数のノミナル値を指定します。
また、必要であれば、[コンフィギュレーション パラメーター] ダイアログ ボックスの [Simscape] ペインの [ノミナル値を指定] ボタンを使用して、モデルの値と単位のペアを追加または編集することもできます。
詳細については、ノミナル値によるスケーリングを使用したパフォーマンスの改善を参照してください。
daessc
ソルバーを使用するためのモデルのアップグレード
R2021a より前に作成された DAE をもつ Simscape モデルの場合、既定の VariableStepAuto
ソルバーは ode23t
です。このような既存のモデルを現在のソフトウェア バージョンで開いても、このソルバーの選択が自動的に変更されることはありません。アップグレード アドバイザーの [Simscape DAE の '自動' ソルバーで使用される積分手法をチェック] チェックを使用して、ode23t
をまだ可変ステップ自動ソルバーとして使用しているモデルを特定し、物理モデリング専用に設計されている daessc
を使用するようそれらを更新します。
モデルを更新する前に、モデルが適切にスケーリングされており、モデルのトラブルシューティングで説明されている他のベスト プラクティスに従っていることを確認してください。
大部分の Simscape モデルで daessc
ソルバーのロバスト性は高くなりますが、一部のモデルではこの変更のため悪影響が生じることがあります。モデルの更新後にシミュレートして、結果とパフォーマンスを検証してください。以前のシミュレーション動作を復元する場合は、[ソルバー] モデル コンフィギュレーション パラメーターを [自動 (ソルバーの自動選択)]
から [ode23t (mod.stiff/Trapezoidal)]
に変更します。