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絶対許容誤差を自動的にスケール — オフ
sscnew と 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)] に変更します。