Main Content

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

Simscape ハードウェアインザループ ワークフロー入門

ハードウェアインザループ (HIL) シミュレーションをより小さいタイム ステップと高い精度で実行するために、Simscape™ プラント モデルを Speedgoat I/O モジュール搭載の FPGA に展開します。

  • Simscape HDL ワークフロー アドバイザーを使用して、HDL 実装モデルを生成します。実装モデルは、Simscape コンポーネントを HDL 互換の Simulink® ブロックに置き換える Simulink モデルです。

  • 実装モデルの HDL コードを生成し、HDL ワークフロー アドバイザーを使用して、生成されたコードを、Speedgoat FPGA I/O モジュール搭載の汎用の FPGA、SoC または FPGA に展開します。

この機能を使用することにより、従来は Simulink ブロックを使用してのモデル化に長時間かかっていた複雑な物理システムを Simscape でモデル化し、展開できます。

HDL コード生成用の Simscape モデル例

HDL コード生成の場合、独自の Simscape アルゴリズムを設計することも、Simscape で作成されたモデル例のリストから選択することもできます。モデル例は次のとおりです。

  • 昇圧コンバーター

  • ブリッジ整流器

  • 降圧コンバーター

  • 半波整流器

  • 三相整流器

  • 理想的な 2 レベルのコンバーター

  • 2 レベル コンバーター IGBT

  • ソーラー パワー インバーター モデル

  • Swiss 整流器

  • Vienna 整流器

すべての例には、接頭辞 sschdlex と接尾辞 Example が付いています。たとえば、昇圧コンバーター モデルを開くには、MATLAB® コマンド プロンプトで、次のように入力します。

load_system('sschdlexBoostConverterExample')
open_system('sschdlexBoostConverterExample/Simscape_system')

HDL 互換性のある Simscape のモデル化のガイドライン

Simscape HDL ワークフロー アドバイザーと互換性をもつように、Simscape アルゴリズムを設計する際には以下に示すガイドラインに従います。Simscape ブロックを使用するサブシステムを、対応する状態空間アルゴリズムに置き換えるには、Simscape サブシステム置換のモデリング ガイドラインで説明している追加のガイドラインに従います。

線形ブロックおよび線形スイッチド システム ブロックの使用

線形ブロックおよび線形スイッチド システム ブロックを使用して、Simscape モデルを作成します。線形ブロックは、抵抗器など、線形関係によって定義されるブロックです。線形スイッチド システム ブロックにはダイオードやスイッチなどのブロックがあります。これらのブロックは V = IR のような線形関係でも定義され、R はダイオードまたはスイッチの状態に応じて 2 つ以上の値の間で切り替わります。

非線形ブロックはサポートされません。Simscape モデルに非線形ブロックが含まれていないことを確認するには、関数 simscape.findNonlinearBlocks (Simscape) を使用します。この関数の引数として Simscape モデルへのパスを指定します。

simscape.findNonlinearBlocks('current_model')

あるいは、モデルに非線形ブロックが含まれていないことを確認するために、Simscape HDL ワークフロー アドバイザーの[線形スイッチド システムのチェック] タスクを実行します。

離散サンプル時間をもつ後退オイラー法ソルバーの指定

Solver Configuration (Simscape) ブロックを使用して HDL コード生成用にソルバー オプションを設定します。

このブロックの [ブロック パラメーター] ダイアログ ボックスで、以下を行います。

  • [ローカル ソルバーを使用] を選択します。

  • Backward Euler[ソルバー タイプ] として使用します。

  • 離散サンプル時間 Ts を指定します。

ソルバー設定が正しく指定されていることを確認するには、Simscape HDL ワークフロー アドバイザーの[ソルバーのコンフィギュレーションのチェック] タスクを実行します。

関数 hdlsetup の実行

モデルを作成後、関数 hdlsetup を実行して、HDL コード生成用にモデルを構成します。hdlsetup は固定ステップ ソルバーの使用などのソルバー設定を構成し、シミュレーションの開始時間と停止時間を指定するなどします。current_model 用にコマンドを実行するには、次のようにします。

hdlsetup('current_model')

Simscape モデルからの HDL コード生成の制限

HDL Coder™ は、以下を含む Simscape ネットワークからのコード生成をサポートしません。

  • イベント

  • モード チャート

  • 遅延

  • 実行時パラメーター

  • 周期的ソース

  • Simscape Multibody™ ブロック

  • SimscapeElectrical™ Specialized Power Systems ブロック

  • 非線形および時変 Simscape ブロック。時変ブロックには、Variable Inductor や Variable Capacitor などのブロックが含まれます。

  • 非スカラーの状態またはネットワークへの入力。非スカラー状態によるエラーに対しては、非スカラー入力をスカラー入力に分割し、コロン演算子の 2 番目のオペランドを 1 減らします。以下に例を示します。

    % Suppose this code generates an error
    tmp1 = u(1:4); 
    
    % Fix the error by reducing second operand by 1
    tmp1 = u(1:3);

参考

|

関連するトピック