ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

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

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

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

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

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

  1. モデルの検証

  2. ネットワークの構築

  3. 方程式の構築

  4. 初期条件の計算

  5. 過渡的な初期化

  6. 過渡的な解決

モデルの検証

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

  • ブロック線図内のすべての Simscape ブロックは、接続して 1 つまたは複数の物理ネットワークを形成しなければなりません。保存端子を接続しないで残すことはできません。

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

  • モデルに油圧要素がある場合、ブロック線図内のトポロジ的に区別可能な各油圧回路は Custom Hydraulic Fluid ブロック (または Simscape Fluids™ ブロック ライブラリで使用できる Hydraulic Fluid ブロック) に接続されていなければなりません。これらのブロックは、油圧回路に接続しているすべてのブロックに対しグローバル パラメーターとして機能する流体特性を定義します。作動油ブロックがループに付加されていない場合、このループの油圧ブロックは既定の流体を使用します。ただし、ループ内に複数の作動油ブロックがあるとエラーが発生します。

    同様に、モデルに空気圧要素がある場合、空気ネットワークの既定の気体特性は、乾燥した空気で、101325 Pa および摂氏 20℃の大気条件に対応したものとなります。Gas Properties ブロックを空気圧回路に付加すると、この回路に接続されているすべてのブロックの気体特性と大気条件を変更できるようになります。ただし、空気圧回路に複数の Gas Properties ブロックがあるとエラーが発生します。

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

ネットワークの構築

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

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

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

方程式の構築

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

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

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

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

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

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

初期条件の計算

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

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

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

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

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

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

初期定常状態の検出

[Start simulation from steady state] チェック ボックスがオンになっている場合、ソルバーは、前述の初期条件計算により得られた初期状態から開始して、システムへの入力が十分な時間にわたり一定に保たれている場合に生ずる定常状態の検出を試みます。定常状態の解決が成功した場合、検出される状態は何らかの (許容誤差範囲内の) 定常状態ですが、所定の初期条件で想定されている状態であるとは限りません。定常状態とは、時間が経過してもシステム変数が変動しない状態を指します。その後、シミュレーションはこの定常状態から開始されます。

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

過渡的な初期化

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

過渡的な解決

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

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

この情報は役に立ちましたか?