Main Content

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

Simscape HDL ワークフロー アドバイザーのタスク

Simscape HDL ワークフロー アドバイザーを使用して、HDL 実装モデルを生成できます。次に、実装モデルの HDL コードを生成し、コードを FPGA プラットフォームに展開できます。アドバイザーを開くには、関数 sschdladvisor を実行します。以下に例を示します。

sschdladvisor('sschdlexHalfWaveRectifierExample')

Simscape HDL ワークフロー アドバイザーで、各 Simscape HDL ワークフロー アドバイザーのフォルダーまたはタスクの概要については、フォルダーまたはタスクを右クリックして、[これはなに?] を選択します。

Simscape HDL ワークフロー アドバイザーのフォルダー

Simscape HDL ワークフロー アドバイザーは、Simscape™ モデルを HDL 実装モデルに変換するために使用できるさまざまなタスクで構成されています。このモデル内で HDL サブシステム用のコードを生成することができます。Simscape HDL ワークフロー アドバイザーは、次のタスクを実行するフォルダーで構成されています。

  • [コード生成互換性] フォルダーは、モデルが線形スイッチド システムであり、適切なソルバー構成設定を使用しているどうかをチェックするタスクで構成されています。

  • [状態空間の変換] フォルダーは、実装モデルを生成するために状態空間パラメーターをモデルから派生させるタスクで構成されています。

  • [実装モデルの生成] フォルダーは、状態空間パラメーターから HDL 実装モデルを生成するタスクで構成されています。

各フォルダーまたはタスクの詳細については、そのフォルダーまたはタスクを右クリックして、[これはなに?] を選択します。

[コード生成互換性] フォルダー

[コード生成互換性] フォルダーのタスクでは、次の項目を確認します。

  • ソルバー構成設定を正しく指定し、設定は Simscape モデルへの各ネットワーク内の Solver Configuration ブロックで一貫性がある。

  • 線形スイッチド システム ブロックがモデルで使用される。

[ソルバーのコンフィギュレーションのチェック] タスク

[ソルバーのコンフィギュレーションのチェック] タスクでは、正しい設定を指定しているかどうか、および設定が Simscape モデルの各ネットワーク内にある Solver Configuration (Simscape) ブロック全体で一貫しているかどうかを確認します。

アドバイザーは、すべての Solver Configuration ブロックに対して以下の設定を指定しているかどうかを確認します。

  • [ローカル ソルバーを使用] が選択されている。

  • [ソルバー タイプ][後退オイラー] に設定されている。

  • 離散サンプル時間として Ts が指定されている。

  • [固定コストでの実行時整合性の反復を使用] がオンまたはオフになっている。

  • [固定コストでの実行時整合性の反復を使用] がオンになっている場合、[非線形の反復] の値が同じ。

これらの設定を指定しなかった場合、タスクはモデル内で Solver Configuration ブロックへのリンクと変更する設定を提供します。

[線形スイッチド システムのチェック] タスク

[線形スイッチド システムのチェック] タスクは、Simscape モデルで線形スイッチド システム ブロックを使用しているかどうかをチェックします。

このタスクが成功するためには、使用するモデルに線形ブロックまたは線形スイッチド システム ブロックが含まれていなければなりません。非線形ブロックと時変ブロック (Variable Inductor ブロックおよび Variable Capacitor ブロックなど) はサポートされません。

線形ブロックは、線形関係によって定義されるブロックです。たとえば、抵抗器は方程式 V = IR で定義されるため、線形ブロックです。同様に、インダクターは V = d/dt I L で定義されるため、線形です。線形スイッチド システム ブロックは、ダイオードまたはスイッチなどのブロックです。これらのブロックは、V = IR などの線形関係によって定義されます。ここで R は、ダイオードまたはスイッチの状態によって 2 つ以上の値を切り替えることができます。

このタスクは、モデルで simscape.findNonlinearBlocks (Simscape) を実行して、非線形ブロックの有無をチェックします。以下に例を示します。

sschdladvisor('sschdlexHalfWaveRectifierExample')
モデルに非線形ブロックが含まれる場合、このタスクを実行すると失敗します。[結果] ログには、モデルの非線形ブロックに提供されたリンクが表示されます。ワークフローを続行するには、非線形ブロックを線形スイッチド システム ブロックに置き換えて、タスクを再実行します。

このタスクが成功すると、以下が表示されます。

  • モデルが線形スイッチド システムであることを示すメッセージ。

  • モデルに存在する Simscape ネットワーク数。

  • これらの変数に関連する Simscape モデル内のブロックへのリンクをもつ各 Simscape ネットワークの代数変数と微分変数の数。

    微分変数は、ターゲット FPGA デバイスで乗算器リソースの 2 次の量を消費します。代数変数は、乗算器リソースの線形の量を消費します。この情報を使用して、FPGA デバイスで Simscape の設計が消費する乗算器リソースの数を特定できます。

  • モデル内の Simulink-PS Converter (Simscape) ブロックと PS-Simulink Converter (Simscape) ブロックへのリンクをもつメッセージ (これらのブロックに既定の名前を使用する場合)。

    実装モデルの HDL Subsystem の入力端子と出力端子は、Simulink-PS Converter ブロックと PS-Simulink Converter ブロックに対して指定した名前を使用します。このメッセージを回避するには、これらのブロックにわかりやすい名前を付けます。

[状態空間の変換] フォルダー

HDL 実装モデルを生成する前に、このフォルダー内のタスクを実行して、状態空間パラメーターをモデルから派生させます。このモデルのタスクは以下のとおりです。

  • Simscape モデルをシミュレートして、微分代数方程式を抽出する。

  • 微分代数方程式を離散化し、モデルを線形モードの形式で表す抽象状態空間表現を生成する。

方程式の抽出

[方程式の抽出] タスクは Simscape モデルをシミュレートして、微分代数方程式を抽出します。このタスクは、元の Simscape モデルから [シミュレーション終了時間] の値を派生させます。

このタスクが成功すると、モデルに存在する各 Simscape ネットワークの状態、入力、出力、モード、微分変数の数が表示されます。モデルが純粋に線形であり、非線形要素が含まれていない場合、このタスクにはメッセージも表示されます。

モードの数は、Simscape モデル内に存在するスイッチの数で制限されます。可能なモードの最大数は 2^(number of switches) です。アドバイザーが生成するすべてのモードはスイッチ ロジックを使用して入力パラメータに従って実行されます。有効なモード数は、Simscape モデルの設計に応じて選択されます。

方程式の離散化

このタスクは微分代数方程式を離散化し、抽象離散状態空間表現を生成します。このタスクは、モデルを線形モデル形式で表します。各モードは状態空間行列のセットで表されます。このタスクは、元の Simscape モデルから [離散サンプル時間] の値を派生させます。

このタスクが成功すると、[離散サンプル時間] とモデル内にある各 Simscape ネットワークのパラメーターとモードの数が表示されます。

[実装モデルの生成] フォルダー

[実装モデルの生成] フォルダー内のタスクは、離散状態空間表現から HDL 実装モデルを生成します。実装モデルは、HDL コード生成と互換性のある Simulink® ブロックを使用することによって Simscape アルゴリズムを表します。このフォルダー内の [実装モデルを生成] タスクが成功すると、実装モデルへのリンクが提供されます。

[実装モデルを生成] タスク

離散状態空間表現から HDL 実装モデルを生成するには、このタスクを実行します。HDL 実装モデルには、[状態空間パラメーターを取得] タスクを実行することで派生された状態空間パラメーターを使用して状態空間方程式をモデル化する HDL Subsystem が含まれています。HDL Subsystem ブロックは、HDL コードを生成できる DUT を表します。

このタスクの実行前に、以下を行うことができます。

  • [ソルバーの反復回数] 設定のカスタム値を指定できます。詳細については、ソルバーの反復回数の使用を参照してください。

  • [浮動小数点精度] 設定を使用して、生成された実装モデルの HDL Subsystem が、single または double のどちらの行列タイプで保存するか、single または double のどちらのデータ型で結果を計算するかを指定します。詳細については、浮動小数点精度と数値精度を参照してください。

  • [実装モデルの検証ロジックの生成] を使用して、生成された HDL 実装モデルが機能的に元の Simscape モデルと等価であるかどうかを検証するロジックを生成できます。モデル内にある各 Simscape ネットワークに対してロジックが生成されます。[検証ロジックの許容誤差] を使用することで、数値的な正確性の許容誤差を指定できます。[検証ロジックの許容誤差] は絶対値です。たとえば、1e-12 の許容誤差値を指定できます。

タスクが成功すると、実装モデルへのリンクが表示されます。

関連するトピック