主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ソルバーの比較

動的システムのシミュレーションは,モデル情報から指定された時間の間,連続タイムステップで状態量を計算して行われます。システムの状態量をモデルから計算するプロセスは,モデルの解を求めることとして知られています。モデルを解く方法はどのシステムについても1つではありません。したがって,金宝app仿真软件®は”ソルバー”という一連のプログラムを提供しており,そのそれぞれが,モデルを解くための特定のアプローチを表します。[コンフィギュレーションパラメーター]ダイアログボックスを使って,モデルに最適なソルバーを選択することができます。

固定ステップソルバーと可変ステップソルバー

ステップサイズの計算方法,つまり,固定ステップか可変ステップかに基づいて,仿金宝app真软件が提供するソルバーを選択できます。

固定ステップソルバーでは,シミュレーションの開始から終了まで一定の時間間隔でモデルを解きます。時間間隔のサイズは,ステップサイズとも呼ばれ,ステップのサイズは指定することもソルバーに選択させることもできます。一般に,ステップサイズを小さくするとシステムのシミュレーションに要する時間が長くなりますが,結果の精度は向上します。

“可変ステップソルバー”では,シミュレーション中にステップサイズが変化します。可変ステップソルバーでは,モデルの状態量が急激に変動しているときは精度を上げるためにステップサイズが小さくなり,モデルの状態の変動が緩慢なときは不必要なタイムステップを取ることを回避するためにステップサイズが大きくなります。ステップサイズの計算は,各ステップで計算のオーバーヘッドを加えますが,ステップの総数は減らすことが可能なため,急激に変化あるいは区分的に連続状態をもつモデルの指定したレベルの精度を保持するために必要なシミュレーション時間が増加します。

固定ステップソルバーと可変ステップソルバーでは,次のシミュレーション時間を,現在のシミュレーション時間とステップサイズの和として計算します。[ソルバー]コンフィギュレーションペインの[タイプ]コントロールによって,ソルバーのタイプを選択できます。固定ステップソルバーでは,ステップサイズはシミュレーションを通して一定です。可変ステップソルバーでは,モデルのダイナミクスに応じ,ステップサイズをステップごとに変えられます。特に,可変ステップソルバーでは,指定された許容誤差内に収まるようにステップサイズの増減を行います。

これらのタイプの選択は,モデルの配布方法とモデルのダイナミクスに依存します。モデルからコードを生成し,実時間コンピューターシステムでコードを実行する場合は,モデルをシミュレートするために固定ステップソルバーを選択してください。可変ステップサイズをリアルタイムクロックにマッピングすることはできません。

モデルを生成コードとして展開するつもりがない場合は,可変ステップソルバーと固定ステップソルバー間での選択は,モデルのダイナミクスに依存します。可変ステップソルバーは,モデルのシミュレーション時間を著しく短縮する場合があります。可変ステップソルバーが一定レベルの精度においてこのように時間を短縮できるのは,必要に応じてステップサイズを動的に調整できるためです。この方法では,要求ステップ数が減ります。固定ステップソルバーはシミュレーション全体を通して,精度の要件を満たす1つのステップサイズを使用しなければなりません。シミュレーション全体でこれらの要件を満たすために,固定ステップソルバーは通常,ステップを小さくすることが求められます。

ex_multirateのモデル例は,可変ステップソルバーがマルチレート離散モデルについて,どのようにシミュレーション時間を短縮するかを示します。

モデルは2つの異なるレート,0.5秒ごとと0.75秒ごとに出力を生成します。両方の出力を取り込むには,固定ステップソルバーはタイムステップが(モデルの“基本サンプル時間”である)0.25秒でなければなりません。

[0.0 0.25 0.5 0.75 1.0 1.25 1.5…]

これに対し,可変ステップソルバーがステップを必要とするのは,モデルが出力を生成するときだけです。

[0.0 0.5 0.75 1.0 1.5…]

このスキームにより,モデルのシミュレーションに要するタイムステップ数が大幅に削減されます。

連続ソルバーと離散ソルバー

金宝app仿真软件では,連続ソルバーと離散ソルバーの両方が用意してあります。

ソルバータイプを選択する場合は,特定のソルバーも選択できます。どちらのソルバーのセットにも,離散と連続が含まれています。離散ソルバーと連続ソルバーは,モデルブロックに基づいて離散状態の値を計算します。離散状態を定義するブロックが,各タイムステップでそれらの状態の値を計算します。ただし,離散ソルバーとは異なり,連続ソルバーでは数値積分を使用して,ブロックが定義した連続状態を計算します。ソルバーを選択する場合は,離散ソルバーと連続ソルバーのどちらを使用するか最初に決めます。

モデルに連続状態がない場合,金宝app仿真软件は固定ステップ離散ソルバーまたは可変ステップ離散ソルバーに切り替わります。モデルに連続状態のみまたは連続状態と離散状態の組み合わせがある場合は,対象モデルのダイナミクスの基準に照らして残ったソルバーの選択肢から連続ソルバーを選択します。そうでない場合,エラーが発生します。

"連続ソルバー“は数値積分を使って前のタイムステップにおける状態と状態導関数から現在のタイムステップにおけるモデルの状態量を計算します。連続ソルバーは,個々のブロックに基づいて各タイムステップにおけるモデルの離散状態量の値を計算します。

離散ソルバーは主に,純粋な離散モデルを解くためのものです。モデルについて次のシミュレーションタイムステップを計算し,それ以外のことは行いません。これらの計算では,モデルの各ブロックに基づいて個々の離散状態量を更新します。連続状態は計算されません。

ソルバーライブラリには,固定ステップ離散ソルバーと可変ステップ離散ソルバーの2つの離散ソルバーが含まれます。固定ステップソルバーは既定の場合,モデルの最速ブロックにおける状態量の変化の速度に合わせてステップサイズとシミュレーション速度を選択します。可変ステップ離散ソルバーは,モデルにおける実際の離散状態量の変化速度に合わせてシミュレーションのステップサイズを調整します。この調整により不必要なステップを取ることが回避されるため,マルチレートモデルのシミュレーション時間が短縮されます。詳細については,システム内のサンプル時間を参照してください。

メモ

離散ソルバーは連続状態を処理できないため,連続状態と離散状態の両方を含むモデルの解を求める場合は連続ソルバーを使用しなければなりません。一方,状態のないモデルや離散状態のみの場合に連続ソルバーを選択しても,金宝app仿真软件ソフトウェアでは離散ソルバーが使用されます。

陽的な連続ソルバーと陰的な連続ソルバー

方程式

x ˙ f x

によって陽的なシステムを表現します。

xの任意の値に対して,f (x)にxを代入して式を評価し, x ˙ を計算できます。

次の形式の方程式

F x ˙ x 0

は,陰的と見なされます。 x の任意の値に対し, x ˙ を計算するためには,この方程式を解かなければなりません。

陰的な線形システムは,次の方程式で表すことができます。

x x ˙ f x

M (x)は質量行列と呼ばれ, f x は強制関数です。モデルで物理モデリングブロックを使用する場合,システムは陰的な線形システムになります。

これらすべてのシステムは,陰的な連続ソルバーによっても陽的な連続ソルバーによっても解けますが,陰的ソルバーは特に,スティッフな問題を解くために設計されています。陽的なソルバーはノンスティッフな問題を解きます。常微分方程式の問題は,目的の解がゆっくり変化する場合はスティッフと言われますが,急速に変動するより近い解もあります。そうなると数値的手法は,システムを解くために小さなタイムステップをとらなければなりません。スティッフは効率性の問題です。システムのスティッフ性が高いほど,陽的なソルバーでは計算の実行時間が長くなります。スティッフなシステムは,ゆっくり変化する連続ダイナミクスと素早く変化する連続ダイナミクスの両方をもっています。

陽的ソルバーと比較すると,陰的ソルバーは振動動作に対してより高い安定性をもたらします。ただし,陰的ソルバーは計算量も多くなります。陰的ソルバーはヤコビ行列を生成し,ニュートン法のような方法を使用して,タイムステップごとに一連の代数方程式を解きます。この余分なコストを削減するために,陰的ソルバーにはそのシミュレーション性能を向上させるための[ソルバーのヤコビメソッド]パラメーターが用意されています。詳細については,陰的なソルバーに対するヤコビメソッドの選択を参照してください。陰的な線形システムを解くには,陰的なソルバーの方が陽的なソルバーよりも効率的です。

1ステップ連続ソルバーとマルチステップ連続ソルバー

金宝app仿真软件ソルバーライブラリには,1ステップソルバーとマルチステップソルバーの両方が含まれています。1ステップソルバーは,直前の時点における解,およびtnとtn - 1の間の複数の点における微分値を使用して,を推定します。これらの点は,マイナーステップです。

マルチステップソルバーは,以前の複数のタイムステップにおける結果を使用して,現在の解を計算します。金宝app仿真软件には1つの陽的マルチステップソルバーode113と1つの陰的マルチステップソルバーode15sがあります。どちらも可変ステップソルバーです。

単一次数連続ソルバーと可変次数連続ソルバー

この区別は,ソルバーが方程式系を解くために使用する次数に基づきます。2つの可変次数ソルバーode15sode113はソルバーライブラリに含まれています。これらのソルバーは,複数の次数を使用して方程式系を解きます。具体的には,陰的な可変ステップのode15sソルバーは1次~ 5次方程式を使用し,陽的な可変ステップのode113ソルバーは1次~ 13次方程式を使用します。ode15sに対しては,適用される最高次数を[最大次数]パラメーターを使用して制限できます。詳細については,最大次数を参照してください。

参考

||