大規模なネットワークを含む Simscape モデルを複数の小さいネットワークに分割
この例では、1 つの大規模な Simscape™ ネットワークを含むソーラー パワー インバーター モデルを複数のネットワークに分割する方法を説明します。ネットワークを分割した後に、Simscape HDL ワークフロー アドバイザーを実行して HDL 実装モデルを生成できます。モデルのアドバイザーを実行する方法については、複数のネットワークを含む Simscape モデルの HDL コードの生成を参照してください。
Simscape ネットワークを分割する理由
Simscape モデルに多くのスイッチング要素が含まれている場合、状態空間表現に多数のモードを含めることができます。Simscape HDL ワークフロー アドバイザーは、Simscape モデルをシミュレートして、関連のあるモードの数を計算します。特定の Simscape モデルは、関連のある多くのモードをもつことができます。このような大規模な設計で生成された HDL 実装モデルは、大量のリソースを消費する可能性があります。また生成された HDL 実装モデルはターゲット FPGA デバイスで合成できない場合もあります。モードの数を減らすには、モデル内の Simscape ネットワークを複数のネットワークに分割してから、Simscape HDL ワークフロー アドバイザーを実行します。
1 つのネットワークを使用するソーラー パワー インバーター モデルを開く
ソーラー パワー インバーターのモデル例を開くには、以下を実行します。
open_system('sschdlexSolarInverterSingleNetworkExample') set_param('sschdlexSolarInverterSingleNetworkExample', 'SimulationCommand', 'Update')
このモデルは、インバーター コントローラー、昇圧コントローラー、昇圧コンバーターとフル ブリッジ インバーター、およびソーラー パネルの 4 つの部分で構成されています。ソーラー パネルは、Simulink® でルックアップ テーブルを使用してモデル化されます。昇圧コントローラーとインバーター コントローラーは、昇圧コンバーターとフル ブリッジ インバーダー (H ブリッジ) に制御信号を提供します。
昇圧コンバーターとフル ブリッジ インバーターを確認するには、Network サブシステムを開きます。
open_system('sschdlexSolarInverterSingleNetworkExample/Network')
Simscape HDL ワークフロー アドバイザーの実行
1. モデルの Simscape HDL ワークフロー アドバイザーを開くには、次を入力します。
sschdladvisor('sschdlexSolarInverterSingleNetworkExample')
2.[離散方程式の抽出] タスクまでのワークフローを実行します。状態空間表現は、86
個のモードを使用していることがわかります。このモード数は非常に多い数です。
このようにモードの数が多いと、大量のハードウェア リソースが消費され、HDL 実装モデル内の DUT サブシステムがターゲット FPGA デバイスで合成できない場合もあります。
HDL 実装モデルの生成とリソース消費量の表示
リソースの消費量を確認するには、次のようにします。
1. [実装モデルを生成] タスクを実行します。タスクが成功すると、HDL 実装モデル gmStateSpaceHDL_sschdlexSolarInverterSingle
へのリンクが表示されます。リンクをクリックして、HDL 実装モデルを開きます。
モデルには、Simscape ネットワークの状態空間方程式をモデル化する HDL Subsystem ブロックが含まれます。生成された HDL 実装モデル gmStateSpaceHDL_sschdlexSolarInverterSingle
を開きます。
open_system('gmStateSpaceHDL_sschdlexSolarInverterSingle/Network')
2.リソース利用レポートの生成を有効にします。
hdlset_param('gmStateSpaceHDL_sschdlexSolarInverterSingle', 'ResourceReport', 'on')
3.HDL Subsystem ブロックのコードを生成します。
makehdl('gmStateSpaceHDL_sschdlexSolarInverterSingle/Network/HDL Subsystem')
4.HDL コードを生成するときに、コード生成レポートを開きます。リソース利用レポートには、ターゲット FPGA デバイスで使用される場合がある多数の乗算器、加算器、およびレジスタが示されます。
ソーラー インバーター ネットワークを複数の Simscape ネットワークに分割
モードの数を削減するには、Network サブシステム内の Simscape ネットワークを 2 つの Simscape ネットワークに分割します。ネットワークを複数のネットワークに分割するには、Network Coupler (Current-Voltage) (Simscape)ブロックを使用できます。Network Coupler (Current-Voltage) ブロックは、Simscape™ ネットワークを電気的接続で 2 つの結合ネットワークに分割するための開始点として利用できます。
1. ネットワークを複数のネットワークに分割するための境界を特定します。複数のネットワークを含み、状態空間表現で多数のモードを効率的に削減する Simscape モデルを作成するには、同一またはほぼ同一の分割を作成する境界を選択します。つまり、境界のいずれかの側にあるスイッチング要素の数が同じまたはほぼ同一になります。
ソーラー パワー インバーターの場合は、ネットワークを分割する境界として、フル ブリッジ インバーターと昇圧コンバーター間の DC リンク コンデンサを選択できます。
境界を選択したら、ネットワークを 2 つの Simscape ネットワークに分割するために Network Coupler (Current-Voltage) を接続します。
2.ネットワークを分割した後に、変更された Simscape HDL モデルを Simscape HDL ワークフロー アドバイザーと互換するように準備します。Simscape HDL ワークフロー アドバイザーは Solver Configuration ブロックを使用して Simscape モデル内の固有の各ネットワークを特定するため、ネットワークの区画ごとに Solver Configuration ブロックを使用します。
複数のネットワークを使用するソーラー パワー インバーター モデルを開く
単一ネットワーク モデルが複数のネットワークに分割されました。複数のネットワークを含むモデルを開くには、次のように入力します。
open_system('sschdlexSolarInverterPartitionedNetworkExample')
Simscape HDL ワークフロー アドバイザーを実行し、このモデルの HDL コードを生成する方法については、複数のネットワークを含む Simscape モデルの HDL コードの生成を参照してください。