主要内容

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

完全インライン化功能の記述

完全インライン化功能では,アルゴリズム(ブロック)は生成コードにビルドされて組み込みブロックと見分けがつかなくなります。通常,完全インライン化功能では2回のアルゴリズム実装が必要です。1回は仿真金宝app软件モデル(C / c++墨西哥人s函数)に対して,もう1回はコード生成(TLCファイル)に対して行います。

ラッパーs函数およびTLCファイルの記述の例を使用する場合,wrapsfcn.tlcで明示的なコード(つまり,2.0 * u)を指定することによって関数my_algへの呼び出しを完全に削除できます。これによって性能は向上しますが,大量のC / c++コードで実行すると,タスクが長時間になる可能性があります。また,C / c++函数そのものと対応するTLCファイルの2か所でアルゴリズムを保持しなければなりません。パフォーマンスの向上がその欠点を補って余りあるかどうか検討します。この例で使用するアルゴリズムをインライン化するには,wrapsfcn.tlcファイルの输出セクションで次を記述する代わりに

% < y > = my_alg (% u > <);

次を使用します。

% = 2.0 * %;

このコードは,mdlOutputsで生成されるコードです。

void mdlOutputs(int_T tid) {/* Sin Block: /Sin */ rtB. txt;rtP.Sin.振幅* Sin (rtP.Sin. Sin。频率* ssGetT(rtS) + rtP.Sin.Phase);/* S-Function Block: /S-Function */ rtB. txt;S_Function = 2.0 * rtB.Sin;/*显式嵌入算法*//* Outport Block: /Out */ rtY. txt;= rtB.S_Function;}

目标语言编译器はmy_algの呼び出しをアルゴリズムそのものと置き換えます。

マルチ端子功能

より詳細なマルチ端子功能の例は,sfun_multiport.csfun_multiport.tlcです。このs函数では,複数の端子を含んでいるs函数について完全にインライン化されたTLCファイルを作成する方法を説明します。

インライン化功能の記述に関するガイドライン

  • ブロックプロパティRTWdataを使用するとします(s函数RTWdataを参照)。このプロパティは,ブロックとの関連付けが可能な文字ベクトルの構造体です。コードジェネレーターは,模型.rtwファイルのモデルでこの構造体を保存し,.rtwファイルを読みやすくします。たとえば,MATLABコマンドウィンドウで次のコマンドを入力するとします。

    mydata。field1 =“field1信息”;mydata。field2 =“field2信息”;set_param (sfun_block“RTWdata”, mydata);

    コードジェネレーターがブロックに対して生成する.rtwファイルには,構造体mydataに指定したコメントが含まれます。

  • 関数mdlRTWを使用して,以下の目的で生成コードでC墨西哥人s函数をインライン化することを検討します。

    • 生成コード内の調整可能なパラメーターの名前を変更する。

    • 調整不可能なパラメーターをTLCファイルに導入する。

関連するトピック