ガイド

電気システムの高速シミュレーションの概要

Simscape Electrical™ モデルを使用する際は、シミュレーションが最適なパフォーマンスで実行されているかどうかを検討することが重要です。シミュレーションの目的に応じて、モデルの診断、ボトルネックの特定、シミュレーション性能の向上のために、さまざまな手法やベストプラクティスを活用することができます。

本ガイドでは、シミュレーションの精度を保ちながら要件を満たす一方で、最適なパフォーマンスを実現する最適化手法のベストプラクティスを、手順を追って解説します。

Simscape モデルのソルバー設定や解析ツールの選択を、エンジニア向けに分かりやすく示した詳細なフローチャート。

シミュレーション性能の向上のためのワークフロー。

セクション

準備: シミュレーション時間と信号サンプル時間の診断

記録されたシミュレーションのメタデータは、後続のステップでシミュレーション時間の解析と比較に使用できます。この情報は、Simulink.SimulationOutput オブジェクト内の SimulationMetaData オブジェクトで確認できます。

ブロックのサンプリング時間も、ソルバーのパフォーマンス解析に使用できる情報の 1 つです。ソルバーやブロックの設定によっては、モデル内に異なる離散サンプル時間と連続サンプル時間が混在する場合があります。これが予想外の挙動につながることもあります。サンプル時間の表示をオンにするには、Simulink® のツールストリップで [デバッグ] タブを開き、[情報のオーバーレイ]、[サンプル時間]、[色] を選択します。これによりモデルが更新され、すべての信号のサンプル時間が色分けされて表示されます。

[デバッグ] タブをアクティブにした Simulink モデルウィンドウのスクリーンショット。[情報のオーバーレイ] メニューが開かれ、検索ボックスが表示されています。

Simulink の [デバッグ] タブ内の [情報のオーバーレイ] メニュー。

Simulink プロファイラーは、モデルの実行時間に関する詳細なインサイトを提供します。全体のシミュレーション時間を記録し、各ブロックの実行時間を特定することで、モデル内のどの部分に時間がかかっているかを把握できます。

Simulink プロファイラーを使用したブロックまたはサブシステム単位での実行時解析

このビデオでは、Simulink プロファイラーを使用して、ブロックごとに必要なシミュレーション時間を特定する方法を説明します。

ソルバー プロファイラーのレポートには、モデル内の各ブロックごとに実行頻度と所要時間が表示されます。これにより、モデル内で計算負荷の高い部分を特定することができます。Simscape™ ネットワークの実行時間は、Solver Configuration ブロックの下にまとめて表示されます。モデルに Scope ブロックが多く含まれている場合は、シミュレーション データ インスペクターを使用するという方法もあります。

次に、シミュレーションの目的と、それがパフォーマンスや設定にどのように影響するかを解説します。

セクション

適切なシミュレーション手法の選択

モデルのパフォーマンスは、その利用目的によって異なります。目的に応じて、適切な手法や設定を選ぶ必要があります。このセクションでは、デスクトップ シミュレーションとハードウェアインザループ シミュレーションという 2 種類のシミュレーションを取り上げます。

デスクトップ シミュレーション

シンプルな閉ループのブロック線図が表示されたコンピューターモニターのグラフィック。

デスクトップ シミュレーションの概念図。

デスクトップ シミュレーションでは、開発された制御アルゴリズムを、物理プラントモデルを用いた閉ループシミュレーションでテストするのが一般的です。通常、プラントモデルは Simscape ネットワークで表現され、アルゴリズムは Simulink でモデル化されます。この場合、プラントモデルには可変ステップソルバーを使用します。つまり、モデルの動作に支障がない範囲でシミュレーションのタイムステップを大きく取ることができます。制御アルゴリズムもプラントモデルと並行して動作し、必要に応じて可変ステップまたは固定ステップで実行することができます。

この手法がユースケースに適している場合は、以下のデスクトップ シミュレーションの考慮事項セクションをご覧ください。

ハードウェアインザループ シミュレーション

ハードウェアインザループ (HIL) シミュレーションは、コントローラーのハードウェア上で実行される制御アルゴリズムをリアルタイムでテストする際に使用するリアルタイム シミュレーションです。HIL シミュレーションでは、プラントモデルを表現するためにリアル タイムコンピュータが用いられます。そのため、Simscape ネットワークは、固定ステップソルバーを使用できるよう構成してから、リアルタイム ハードウェアに展開する必要があります。

この手法がユースケースに適している場合は、以下のハードウェアインザループ シミュレーションの考慮事項セクションをご覧ください。

セクション

デスクトップ シミュレーションの考慮事項

Simscape 物理ネットワーク (可変ステップソルバー プラント) のソルバーに関する考慮事項

制御アルゴリズムを設計し、Simscape の電気系ネットワークに対してテストを行う場合は、可変ステップソルバーで実行される物理モデルから始めることを推奨します。そうすることで、ソルバーはモデルの動作に応じてタイムステップを小さくしたり、可能な場合は大きくすることができます。このように、事前定義された固定タイムステップに縛られないことで、全体的なパフォーマンスの向上が期待できます。

Simscape ネットワークで可変ステップソルバーを使用するには、Solver Configuration ブロックの [ローカル ソルバーを使用] オプションを無効にします。これによって、[モデル設定] で選択したグローバルソルバーが利用できるようになります。通常、Simscape ネットワークには daesscodes23tode15s などの陰的ソルバーが推奨されます。

このトピックについてさらに詳しく

固定ステップ サンプル時間でのアルゴリズム構成

サンプル時間の色分けは、特定のブロックがどのソルバーのタイムステップで実行されているかを示します。アルゴリズムを設計する際には、通常、制御ループに対して特定のサンプル時間の要件があります。可変ステップソルバーの利点を活かすため、プラントモデルは可変ステップで、アルゴリズムは固定ステップで実行することができます。そのためには、[モデル設定] でグローバルソルバーを可変ステップに設定し、モデル内のブロックを特定 (固定ステップ) のサンプルレートでのみ実行されるように構成します。

ブロックでサンプル時間が明示的に定義されていないと、上位や入力元のサンプル時間が継承されてしまうことが多く、意図しない動作につながる可能性があります。これを未然に防ぐには、該当するブロックに固定ステップのサンプルレートを指定しておきます。適用できる場合は、サンプル時間の設定を利用して正しい実行タイミングを確保してください。サンプル時間の指定を参照してください。

適切なモデル忠実度の選択

適切なモデル忠実度の選択は、最適なシミュレーション性能を実現する上で重要なステップになります。Simscape Electrical のテクノロジーと各種コンポーネントを活用することで、実際のタスクに応じて、さまざまなモデリングやパラメーター設定のオプションを選択することができます。

たとえば、電力損失の解析には詳細なスイッチングモデルが必要になる場合があり、一方で高調波解析には理想スイッチングが用いられることがあります。制御設計では、平均化モデルで十分な場合が多くあります。

このトピックについてさらに詳しく

さまざまな忠実度でのコンポーネントのモデリング例については、以下を参照してください。 

PWM のモデリング手法

パワー エレクトロニクス モデルには、一般的に PWM 信号が含まれています。この信号は最適化でき、インバーターモデルの忠実度と組み合わせて検討されることもあります。

モデルに PWM 信号が含まれている場合、こうした観点からパフォーマンスの向上が期待できます。

ソルバー プロファイラーを活用した診断

可変ステップソルバーでモデルをシミュレーションする際に、ソルバー プロファイラーを使用すると、短いタイムステップや、ソルバー例外、ゼロクロッシングといったシミュレーション イベントによってシミュレーション性能が低下するタイミングを特定できます。モデル内に Simscape ネットワークがある場合、ソルバー プロファイラーを用いて、さまざまな物理量がシミュレーション性能の低下にどのように影響しているかを調査することができます。

可変ステップソルバーの性能解析

このビデオでは、可変ステップソルバーを使用するモデルのパフォーマンスのボトルネックを特定する際に、ソルバー プロファイラーがどのように役立つかを説明します。

その他の診断ツール

変数ビューアーによるモデル初期化の検証

Simscape 物理ネットワークのシミュレーションを実行する際、ソルバーはシミュレーション開始時 \(t=0\) に初期条件を計算します。Simscape ネットワークの初期条件は通常、ブロックレベルで設定されますが、以前に記録したデータから取得することも可能です。詳細については変数の初期化を参照してください。

ソルバーはこれらの設定を用いて適切な初期条件を決定しますが、このプロセスには時間がかかり、警告やエラーが発生することもあります。変数ビューアーは、Simscape ネットワークの初期条件の計算結果を確認して検証する際に利用することができます。これにより、初期化に時間がかかったり、収束しない場合でも、潜在的な根本原因を判断する際に役立つ情報が得られます。

変数ビューアーを使用したモデル初期化の解析

このビデオでは、変数ビューアーを使用して、Simscape を使用するモデルの初期化結果をチェックする方法を説明します。

Simscape 変数の規模解析によるスケーリング値の定義

Simscape 変数のノミナル値を定義することで、変数の想定値を指定できます。詳細については、ノミナル値によるシステムのスケーリングを参照してください。シミュレーションの実行中、ソルバーはこれらのスケーリングされた単位なしの値を用いて計算を行います。すべての変数に対して適切なスケーリング値を設定することで、シミュレーションのロバスト性とパフォーマンスの両方が向上します。より良いパフォーマンスのために、変数の大きさは同程度のスケール内に収まるようにしてください。

変数スケーリング アナライザー

このビデオでは、変数スケーリング アナライザーを使用して Simscape 変数をスケーリングし、シミュレーションのロバスト性とパフォーマンスを向上させる方法を説明します。

最適なモデル設定のための自動チェックの活用

以下のツールは、主に Simulink ブロックで構成されたモデル向けに設計されており、限定的に Simscape ネットワークを含むモデルに特化した診断も提供しています。

モデルアドバイザーは、モデルやサブシステムの構成またはモデリング特性に対して、特定のモデリング標準を満たしているか、不正確または非効率なシミュレーションを回避できるかをチェックすることができます。モデルアドバイザーには、特定のタスク (パフォーマンスや精度など) に対応する組み込みチェック機能が備わっています。

モデルアドバイザーはチェックを実行し、実行可能な推奨事項を含む詳細なレポートを提供します。さらに、その修正を自動的に適用することもできます。

パフォーマンス アドバイザーは、モデルアドバイザーのフレームワーク内に組み込まれており、シミュレーションの遅延を引き起こす可能性のある設定を特定するために用いる一連のチェック項目があらかじめ定義されています。

最適なモデル設定のためのパフォーマンス チェック

このビデオでは、モデルアドバイザーを使用していくつかのパフォーマンスチェックを行い、特定のモデルに最適でない設定やブロックが含まれていないか確認する方法を説明します。

変数統計ビューアーによるモデルの複雑性評価

統計ビューアーは、指定したモデルとソルバー設定に対する Simscape モデルの統計結果を集約できます。統計結果を詳しく調べることで、シミュレーションを実行する前でも、Simscape ブロックを含むモデルの複雑性を評価することができます。

モデル統計結果の調査

このビデオでは、統計ビューアーを使用すると、指定したモデルとそのソルバー構成に対する Simscape モデルの統計結果がどのように集約されるかを説明します。

モデル最適化後の追加提案

シミュレーション モードと高速リスタート

シミュレーション モードは、特に高速リスタートと組み合わせた場合に、シミュレーション速度に影響する可能性があります。既定ではモデルはノーマルモードで動作しますが、アクセラレータモードやラピッド アクセラレータ モードも利用できます。

これらのモードではパフォーマンスが向上するものの、モデルの柔軟性や双方向性、診断の粒度といった面でトレードオフが生じることがあります。シミュレーション モードの選択を参照してください。Simscape モデルを使用する場合、アクセラレータモードやラピッド アクセラレータ モードによるパフォーマンスの向上率は、純粋な Simulink モデルに比べてそれほど大きくありません。

モデルの構造を変更せずに繰り返し実行する場合 (例:パラメータースイープ中など) は、高速リスタート機能でコンパイル工程をスキップすることで時間を節約できます。詳細については、MATLAB ヘルプセンターの高速リスタートのご利用の前にを参照してください。シミュレーションの実行間に Simscape のパラメーターを変更できるようにするには、Simscape 実行時パラメーターとして設定してください。

シミュレーション モードと高速リスタートの活用

このビデオでは、さまざまなシミュレーション モードが、電気システムモデルの実行速度に与える影響について説明します。ここでのモードは、通常モード、アクセラレータモード、ラピッド アクセラレータ モードです。

並列計算

複数の独立したシミュレーションを実行する際、これらのシミュレーションを複数のコアやクラスターに分散させることで時間を節約できます。ユースケースには、パラメータースイープ、モンテカルロ解析、最適化問題の並列計算、Simulink Test™ を使用したモデルのテストなどがあります。

複数のコアまたは 1 つのクラスター上でのモデル実行

通常モードまたはアクセラレータモードで並列計算を使用して電気シミュレーションを高速化する方法を説明します。

セクション

ハードウェアインザループ シミュレーションの考慮事項

Simscape ネットワークのシミュレーションを固定ステップのハードウェアインザループで実行する場合でも、可変ステップソルバーを用いてモデルのデバッグ、検証、改善を行うことをお勧めします。その場合は、デスクトップ シミュレーションの考慮事項から手順を進めることもできます。固定ステップソルバーによるシミュレーションでは、可変ステップのシミュレーションでしか明らかにできない潜在的な問題が見逃されてしまうこともあります。

効率的なシミュレーションを実現するソルバー選択

物理システムのシミュレーションを行う際のソルバーとモデルの考慮事項について詳しく説明します。

固定ステップソルバーに切り替える際は、Simscape ローカルソルバーまたは Simulink グローバル固定ステップソルバーのいずれかを使用できます。パフォーマンスを向上させるためには、一般的に Simscape ローカルソルバーを選択することが推奨されています。ローカルソルバーとその設定の詳細については、ドキュメンテーションの固定タイムステップによるシミュレーション — ローカルおよびグローバル固定ステップソルバーを参照してください。

ハードウェア展開用に固定ステップソルバーで Simscape モデルを構成する際には重要なステップがあります。タイムステップ設定で適切なソルバーを繰り返し検討し、許容可能な精度を維持しながらリアルタイムで実行できるシミュレーションを実現することです。このワークフローの概要と説明については、リアルタイム シミュレーションをご覧ください。

Simscape から HDL へ

リアルタイム シミュレーションで利用できるよう、Simscape モデルは C コードに変換されます。より高速なサンプルレートを実現するために、FPGA 技術と HDL コードを活用することができます。このワークフローの利点を Simscape の電気系ネットワークモデルに活かすには、物理モデルを Simulink の状態空間表現に変換する必要があります。こうした主要な目標を達成するために、Simscape HDL ワークフロー アドバイザーが用意されています。

電気プラントモデルの HDL コードへの変換

この例では、線形化スイッチ近似手法を使用して、HDL コード生成と合成のために、Simscape モーターモデルを HDL 実装モデルに変換する方法を説明します。

セクション

まとめ

本ガイドでは、デスクトップでのアルゴリズム開発からハードウェアインザループ テスト、FPGA 実装に至るまで、幅広い用途における Simscape Electrical シミュレーションのパフォーマンスを最適化する手法を紹介しました。診断分析から始まり、目的別の最適化手法を経て、高度な手法によるパフォーマンス向上に至るまでのワークフローに沿って進めることで、エンジニアは精度や信頼性を維持しながら、シミュレーション速度を大幅に向上させることができます。

本ガイドの内容と、MATLAB と Simulink に用意されている診断ツールを活用することで、計算負荷の高い電気シミュレーションも、効率、精度、信頼性に優れたモデリング ワークフローへと進化させることができます。