Effacer les filtres
Effacer les filtres

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

3 vues (au cours des 30 derniers jours)
晃平
晃平 le 11 Avr 2024
Commenté : 晃平 le 10 Juin 2024
S-Function をインライン化する方法は以下2点以外にありますでしょうか。
① S-Function ブロック用の「.tlc」ファイルを作成。 (完全にインライン化された S-Function )
②「.tlc」ファイル (ラッパーインライン S-Function) を生成する S-Function Builder を使用して S-Function をビルド。
また、作成したS-functionはアクセラレータで実行できるのでしょうか。
よろしくお願いいたします。

Réponse acceptée

covao
covao le 8 Juin 2024
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 commentaire
晃平
晃平 le 10 Juin 2024
ご丁寧にありがとうございました。
ためになりました。

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!