主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

生成さたにおけるブロック出力の化と再利用

の例,出力出力ローカル変数として指定する方法をます。。。コードコードジェネレータージェネレータージェネレーターははこれらローカルローカル変数をを生成生成さされれたたコードコードででで再再可能性性性性性性性性性がががが量を。ローカル変数,,,,,消费消费量を节约し,データコピーコピーをを减らし,,実行実行速度

モデル例

  1. 企业ブロック,外港ブロック,获得ブロックおよび转变ブロック使用て以下のを作成ます。例では,モデルモデルはははlocal_variable_exです。

  2. G2增益ブロックブロックダイアログを开き开き。。2の値入力します。

  3. G1に対して,3の値入力します。

  4. 转变に対して[ブロックパラメーター]ダイアログダイアログ开き开き。[1番目入力がする]パラメーターで,[u2> =しきい値]を选択し。

最适を使用ないコードの生成

  1. [モデルパラメーター]ダイアログダイアログを开き。[ソルバー]ペインを选択ます。[タイプ]パラメーターに対し,[固定]を选択し。

  2. [コンフィギュレーション][信号ストレージ再]チェックボックスオフにし。。

  3. [コード],[レポート]ペインを选択,[コード生成を]を选択し。

  4. [コード]ペインを选択ます。[コード生成]を选択てから,ででCtrl+bをますコード生成が完了する,,,,,コードコードレポートレポート开きます。

  5. コード生成レポートでlocal_variable_ex.cセクションをモデルのステップ关数をし。。ブロックブロックブロック出力,グローバルグローバルlocal_variable_ex_b.g2local_variable_ex_b.g1です。

/ *模型步骤函数 */void local_variable_ex_step(void){/ * switch:'/switch'companates: * inport:'/in1' */if(local_variable_ex_u.in1> = 0.0){/ *增益:'/ g2' */ local_variable_ex_b.g2 = 2.0 * local_variable_ex_u.in1;/ * outport:'/out1' */local_variable_ex_y.out1 = local_variable_ex_b.g2; g2;} else {/ * gain:'/g1' */local_variable_ex_b.g1 = 3.0 * local_variable_ex_u.in1;/ * outport:'/out1' */local_variable_ex_y.out1 = local_variable_ex_b.g1;}/ *交换机的结尾:'/switch' */

ローカルブロックの有效とコードの生成

  1. [コンフィギュレーション][信号ストレージ再]パラメーターを选択ます。[信号ストレージ再]は以下最适パラメーターをにします。

    • ローカルなの出力をするする

    • ローカルブロック出力再利用

    • 余分な変数の(式の)

  2. [信号ストレージ再][余分な変数削除(式畳み込み)]をオフにます。

  3. コードをしステップ关数を表示ます。最适化パラメーター[ローカルなのを有效]を选択ため,のステップ关数ににはははつのローカル変数があります。変数変数RTB_G2RTB_G1获得ブロックのを保持ます。ローカル変数rtb_switch转变ブロックのを保持し。。

/ *模型步骤函数 */ void local_variable_ex_step(void){real_t rtb_switch;real_t rtb_g2;real_t rtb_g1;/ * switch:'/switch'并入: * inport:'/in1' */if(local_variable_ex_u.in1> = 0.0){/ * gain:'/g2' */rtb_g2 =/rtb_g2 =2.0 * local_variable_ex_u.in1;rtb_switch = rtb_g2;} else {/ * gain:'/g1' */rtb_g1 = 3.0 * local_variable_ex_u.in1;rtb_switch = rtb_g1;}/ *交换机的结尾:'/switch' *// * outport:'/out1' */local_variable_ex_y.out1 = rtb_switch;

ローカルブロックの再とコードの生成

  1. [コンフィギュレーション][ローカルブロックの利用]パラメーターを选択ます。

  2. コードを生成ます。local_variable_ex.cセクションでの关数を表示します。ジェネレータージェネレーターがががががが回回使用するする変数RTB_G21つありつあり。。

/ *模型步骤函数 */ void local_variable_ex_step(void){real_t rtb_g2;/ * switch:'/switch'并入: * inport:'/in1' */if(local_variable_ex_u.in1> = 0.0){/ * gain:'/g2' */rtb_g2 =/rtb_g2 =2.0 * local_variable_ex_u.in1;} else {/ * gain:'/g1' */rtb_g2 = 3.0 * local_variable_ex_u.in1;}/ *交换机的结尾:'/switch' *// * outport:'/out1' */local_variable_ex_y.out1 = rtb_g2;

余分な一时変数rtb_switchと关连データ生成コードに含まていません。

参考

关连するトピック