Main Content

Simscape でのシミュレーションの仕組み

Simscape でのシミュレーションのフェーズ

この概要は、モデルの作成やエラーの理解に役立ちます。詳細は、Simscape モデルによる物理システムの表現を参照してください。

Simscape™ ソフトウェアでは、複数の方法を用いて Simulink® 環境で物理システムのシミュレーションや解析を行うことができます。物理モデルのシミュレーションの実行方法は、任意の Simulink モデルのシミュレーションと同様です。すなわち、各種のシミュレーション オプションを設定し、シミュレーションを開始し、シミュレーションの結果を表示します。ここでは、Simscape モデルに特有のシミュレーションの諸特徴について説明します。個々の Simscape アドオン製品でのシミュレーションと解析の詳細は、各アドオン製品のドキュメンテーションを参照してください。

次のフロー チャートは、Simscape シミュレーションの順序を示しています。

このフロー チャートは以下の主要なフェーズで構成されています。

モデルの検証

Simscape ソルバーは最初にモデル コンフィギュレーションを検証し、ブロック ダイアログ ボックスで入力されたデータを確認します。

  • ブロック線図内のすべての Simscape ブロックは、接続して 1 つ以上の物理ネットワークを形成しなければなりません。

  • ブロック線図内のトポロジ的に区別可能なそれぞれの物理ネットワークには、Solver Configuration ブロックが 1 つずつ必要です。

  • モデルに流体要素 (二相流体、気体、湿り空気、等温流体、熱流体など) が含まれている場合は、ブロック線図内のトポロジ的に区別可能な回路ごとに、その回路に接続するすべてのブロックの流体特性を定義するブロックを含めることができます。流体ブロックがループに接続されていない場合、このループ内のブロックは既定の流体を使用します。ただし、ループ内に複数の流体ブロックがあるとエラーが発生します。

  • Simulink-PS Converter ブロックで指定する信号単位は、接続されている Simscape ブロックが要求する入力タイプと一致していなければなりません。たとえば、Ideal Angular Velocity Source ブロックの入力信号を指定するときには、角速度の単位 (rad/srpm など) を Simulink-PS Converter ブロックに指定するか、単位なしのままにします。同様に、PS-Simulink Converter ブロックに指定する単位は、Simscape ブロックの出力端子から送出される物理量信号のタイプと一致していなければなりません。

ネットワークの構築

モデルの検証後、Simscape ソルバーは次の原則に基づいて物理ネットワークを構築します。

  • 直接に接続される 2 つの保存端子は、すべてのアクロス変数 (電圧や角速度など) に対して同じ値をもちます。

  • 物理接続ライン経由で伝送される任意のスルー変数 (電流やトルクなど) は、分岐で接続されている複数のコンポーネント間で分割されます。各スルー変数について、分岐点に流入する値の合計は、分岐点から流出する値の合計と等しくなります。

方程式の構築

Simscape ソルバーは、ネットワーク コンフィギュレーション、ブロック ダイアログ ボックスのパラメーター値、流体特性により定義されたグローバル パラメーター (定義されている場合) に基づいて、モデルの方程式系を構築します。

これらの方程式には、次のタイプのシステム変数が含まれます。

  • "動的" — これらの変数の時間微分は方程式で使用されます。動的変数、つまり微分変数はシステムにダイナミクスを追加し、数値積分を使用して値を計算するためにソルバーを必要とします。動的変数は、シミュレーションの独立状態と依存状態のいずれかを生成できます。

  • "代数" — これらの変数の時間微分は方程式で使用されません。これらの変数は代数方程式に使用されますが、ダイナミクスは追加しません。これは多くの場合、質量やエネルギーの保存などの保存法則により物理システムで起こるためです。代数変数の状態は、つねに動的変数、他の代数変数または入力に依存しています。

ソルバーは次に解析を実行し、方程式系を解くために不要な変数を除外します。変数の除外後、残った変数 (代数、動的依存および動的独立) がモデルの Simulink 状態ベクトルにマッピングされます。

モデル変数の表示方法と解析方法の詳細については、Statistics Viewerを参照してください。

初期条件の計算

Simscape ソルバーは初期条件をシミュレーション開始時 (t = 0) に 1 回だけ計算します。既定では、Solver Configuration ブロックの [定常状態からシミュレーションを開始] チェック ボックスはオフになっています。モデルでこのチェック ボックスをオンにしている場合は、初期定常状態の検出を参照してください。

ソルバーは、すべてのシステム変数について、モデルのすべての方程式を厳密に満たす初期値を見つけることにより、初期条件を計算します。"ブロックレベルでの変数の初期化" により、初期条件の計算に影響を与えることができます。具体的には、ブロック ダイアログ ボックスの [初期ターゲット] セクションで、優先順位とターゲットの初期値を指定します。保存した操作点からモデル全体の変数を初期化することもできます。

変数の初期化の際に指定する値は、各変数の実際の値ではなく、シミュレーション開始時 (t = 0) のターゲット値です。求解の結果によっては、これらのターゲットのいくつかが満たされることも、満たされないこともあります。ソルバーは、優先順位の高いターゲットを満たしてから、優先順位の低いターゲットを満たそうとします。

  • はじめに、ソルバーは優先順位の高い変数のターゲットをすべて厳密に満たす解を見つけようとし、優先順位の低いターゲットができるだけ近い値になるように近似されます。この段階で解が見つかった場合、この解は優先順位の高いターゲットをすべて満たします。優先順位の低いターゲットの一部も厳密に一致することがあり、その他のターゲットは近似されます。

  • 優先順位の高いターゲットをすべて厳密に満たす解を見つけられない場合、ソルバーは警告を送出して第 2 段階に入ります。ここでは、High の優先順位が Low に緩和されます。つまり、ソルバーは、優先順位の高いターゲットと優先順位の低いターゲットの両方をそれぞれできるだけ近い値に近似して解を見つけようとします。

変数を初期化した後、モデルをシミュレートする前に変数ビューアーを開いて、どの変数のターゲットが満たされているか確認することができます。ブロックレベルでの変数の初期化についての詳細は、変数の初期化を参照してください。

初期定常状態の検出

Solver Configuration ブロックで [定常状態からシミュレーションを開始] チェック ボックスをオンにすると、以下のようになります。

  • 周波数と時間方程式の定式化と互換性のあるモデルの場合、ソルバーは正弦波定常状態初期化の実行を試みます。つまり、初期化は周波数と時間方程式を使用して実行され、その後シミュレーションは実際の方程式の定式化や他の Solver Configuration ブロックで選択されたオプションを使用して進められます。詳細については、周波数と時間シミュレーション モードを参照してください。

  • モデルに周波数と時間との互換性がない場合、ソルバーは、前の節で説明した初期条件計算により得られた初期状態から開始して、システムへの入力が十分な時間にわたり一定に保たれている場合に生ずる定常状態の検出を試みます。定常状態とは、時間が経過してもシステム変数が変動しない状態を指します。

定常状態の解決が成功した場合、検出される状態は何らかの (許容誤差範囲内の) 定常状態ですが、所定の初期条件で想定されている状態であるとは限りません。その後、シミュレーションはこの定常状態から開始されます。

1 つのモデルに複数の定常状態が存在することがあります。この場合、ソルバーは、ブロックレベルでの変数の初期化時に指定された変数のターゲット、およびモデル内に存在するモード チャートとイベント変数に一致する定常状態の解を選択します。詳細については、変数の初期化離散イベントおよびモード チャートを参照してください。

過渡的な初期化

Simscape ソルバーは、初期条件の計算後、またはその後のイベント (たとえば、バルブ開放や急停止などによる不連続点の発生など) の後に、過渡的な初期化を実行します。過渡的な初期化により、すべての動的変数が固定され、代数変数と動的変数の微分が解決されます。過渡的な初期化の目的は、次のフェーズである過渡的な解決のための一貫した初期条件を得ることです。

過渡的な解決

最後に、Simscape ソルバーは方程式系の過渡的な解決を実行します。過渡的な解決では、連続微分方程式は時間によって積分され、すべての変数が時間の関数として計算されます。

ソルバーは過渡的な解決の結果に従いシミュレーションを継続します。この処理はソルバーがゼロクロッシングや不連続点などのイベントを検出するまで継続されます。イベントは物理ネットワーク内で発生する場合もあれば、Simulink モデル内の別の場所で発生する場合もあります。ソルバーがイベントを検出すると、ソルバーは過渡的な初期化のフェーズに戻り、過渡的な解決を再度実行します。このサイクルは、シミュレーションの終わりまで続行されます。

ステータス メッセージ

モデルのシミュレーションを実行するときは、シミュレーションの最初の段階でモデル コンパイラを呼び出します。モデル コンパイラはコンパイルと呼ばれるプロセスでモデルを実行可能形式に変換します。大規模な Simscape モデルのコンパイルと初期化には数分かかることがあります。モデル ウィンドウの左下隅のシミュレーション ステータス バーに、物理ネットワークのコンパイルと初期化のさまざまな段階に対応する次のような一連のメッセージが表示されます。

  • コンパイル: Simscape 物理ネットワークの方程式系の作成中

  • コンパイル: Simscape 物理ネットワークの方程式系の解析中

  • コンパイル: Simscape 物理ネットワークのシミュレーションの設定中

  • 実行中: Simscape 物理ネットワークの方程式系の初期化中

各段階の開始時と完了時に新しいメッセージが表示されます。そのため、各段階について、計算の実行中は「<stage>:Started」というメッセージがステータス バーに表示されます。その後、一時的に「<stage>:Completed」というメッセージが表示され、プロセスが次の段階に進みます。

これらのメッセージは、コンパイルと初期化の進行状況を監視するのに役立ちます。

参考