S-Function をインライン化する方法

3 ビュー (過去 30 日間)
晃平
晃平 2024 年 4 月 11 日
コメント済み: 晃平 2024 年 6 月 10 日
S-Function をインライン化する方法は以下2点以外にありますでしょうか。
① S-Function ブロック用の「.tlc」ファイルを作成。 (完全にインライン化された S-Function )
②「.tlc」ファイル (ラッパーインライン S-Function) を生成する S-Function Builder を使用して S-Function をビルド。
また、作成したS-functionはアクセラレータで実行できるのでしょうか。
よろしくお願いいたします。

採用された回答

covao
covao 2024 年 6 月 8 日
S-Functionインライン化の仕組みは複雑なため、整理します。
S-Functionには、以下の2つ実行方法があります。
  1. Simulinkモデルとしての直接実行
  2. Simulink Coderによるコード生成とビルドによる実行
このコード生成は以下のような目的で用いられます
  • アルゴリズムのコードを直接埋め込み、最適化された効率的なコード生成を行い、実行速度速くする
  • 組み込みシステムなどターゲットCPU向けのコード生成
S-Functionでは、テンプレートであるtlcファイルを用いてコード生成を行います。
以下に詳しい情報があります。
最適化を必要としなければ、アルゴリズム本体の関数コードはインライン化せず、ラッパーS-functionとして、S-functionとは別のソースコードファイル(*.c,*.h)などで関数を定義することもできます。
ラッパーS-functionを含めたコード生成可能なS-functionを作る方法について、以下に情報があります。
C MEX S-Functionのインライン化については、下記に情報があります
完全インライン化 S-Functionは、組み込みブロックとは区別のできない方法で、アルゴリズム (ブロック) を生成コードに組み込みむことで、最適化されたより効率的なコードを生成します。
以下に情報があります。
Simulinkのアクセラレータには、アクセラレータとラピッドアクセラレータの2つのモードがあり、アクセラレータは、通常のSimulinkとほぼ同様に実行できるものと考えられます。
ラピッドアクセラレータは、tlcファイルによるコード生成とビルドが行われるため、より制約が厳しくなります。
詳細は以下に情報があります。
  1 件のコメント
晃平
晃平 2024 年 6 月 10 日
ご丁寧にありがとうございました。
ためになりました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeビッグ データの処理 についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!