主要内容

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

インライン不変信号

[最適化]ペインの[インライン不変信号)を選択して,生成コードを最適化できます。生成コードはシンボリック名ではなく不変信号の数値を使用します。

不変信号はブロックの出力信号のなかで,金宝app仿真软件®シミュレーション中に変化しない信号のことです。たとえば,信号S3は不変信号です。"不変信号"は”不変定数”と同じではないことに注意してください。2個の定数(1と2)およびゲイン値3が不変定数です。不変定数をインライン化するには,(既定のパラメーター動作)[インライン]に設定します。

インライン不変信号を使用した生成コードの最適化

この例では,インライン不変信号を使用して生成コードを最適化する方法を示します。この最適化により不変信号のシンボリック名が定数値に変換されます。

InlineInvariantSignalsの最適化により,以下が実現されます。

  • 罗とRAMの消費を低減する。

  • 実行速度が向上する。

モデル例

モデルrtwdemo_inline_invariant_signalsを考えます。

模型=“rtwdemo_inline_invariant_signals”;open_system(模型);

コード生成

ビルドと検査プロセス用に一時フォルダー(システムの一時フォルダー内)を作成します。

currentDir = pwd;[~, cgDir] = rtwdemodir ();

金宝app仿真软件编码器を使用してモデルをビルドします。

slbuild(模型)
###成功完成rtwdemo_inline_invariant_signals的构建过程模型重建行动的原因  ================================================================================================================= rtwdemo_inline_invariant_signals代码生成和编译代码生成信息文件不存在。建立1个模型(0个已经更新的模型)建立时间:0h 0m 14.967s

最適化を行わない生成コードを表示します。以下のコード行はrtwdemo_inline_invariant_signals.cにあります。

用= fullfile (cgDir,“rtwdemo_inline_invariant_signals_grt_rtw”“rtwdemo_inline_invariant_signals.c”);rtwdemodbtype(用'/*输出和更新的原子系统'/ *模型输出的1 0);
/*输出和更新为atomic system: '/InlinedConstFcn' */ void rtwdemo_inlinedconstfcn (int32_T rtu_In1, B_InlinedConstFcn_rtwdemo_inl_T *localB, const constb_inlinedconstfcn_rtwdemo_inl_t *localC) {/* Product: '/Product' */ localB->Product = rtu_In1 *localC ->Sum_p;}

最適化の有効化

  1. [コンフィギュレーションパラメーター]ダイアログボックスを開きます。

  2. [最適化]ペインで,[インライン不変信号)を選択します。

代わりに,コマンドラインAPIを使用して最適化を有効にできます。

set_param(模型,“InlineInvariantSignals”“上”);

最適化を使用したコードの生成

生成コードは追加の構造体(rtwdemo_inline_invariant_ConstB)を作成するのではなく,畳み込まれた定数の数値を使用します。

金宝app仿真软件编码器を使用してモデルをビルドします。

slbuild(模型)
###成功完成rtwdemo_inline_invariant_signals的构建过程模型重建行动的原因  ================================================================================================ rtwdemo_inline_invariant_signals代码生成和编译生成的代码是过时了。建立1个模型中的1个(0个已经更新的模型)建立时间:0h 0m 10.858秒

最適化を行った生成コードを表示します。以下のコード行はrtwdemo_minmax.cにあります。

rtwdemodbtype(用'/*输出和更新的原子系统'/ *模型输出的1 0);
/* Output and update for atomic system: '/InlinedConstFcn' */ void rtwdemo_inline__InlinedConstFcn(int32_T rtu_In1, B_InlinedConstFcn_rtwdemo_inl_T *localB) {/* Product: '/Product' */ localB->Product = rtu_In1 << 5;}

モデルおよびコード生成レポートを閉じます。

bdclose rtwdemoclean(模型);cd (currentDir)

参考

関連するトピック