このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。
の例,出力出力ローカル変数として指定する方法をます。。。コードコードジェネレータージェネレータージェネレーターははこれらローカルローカル変数をを生成生成さされれたたコードコードででで再再可能性性性性性性性性性がががが量を。ローカル変数,,,,,消费消费量を节约し,データコピーコピーをを减らし,,実行実行速度
企业ブロック,外港ブロック,获得ブロックおよび转变ブロック使用て以下のを作成ます。例では,モデルモデルはははlocal_variable_ex
です。
G2
增益ブロックブロックダイアログを开き开き。。2
の値入力します。
G1
に対して,3
の値入力します。
转变に対して[ブロックパラメーター]ダイアログダイアログ开き开き。[1番目入力がする]パラメーターで,[u2> =しきい値]
を选択し。
[モデルパラメーター]ダイアログダイアログを开き。[ソルバー]ペインを选択ます。[タイプ]パラメーターに対し,[固定]
を选択し。
[コンフィギュレーション],[信号ストレージ再]チェックボックスオフにし。。
[コード],[レポート]ペインを选択,[コード生成を]を选択し。
[コード]ペインを选択ます。[コード生成]を选択てから,ででCtrl+bをますコード生成が完了する,,,,,コードコードレポートレポート开きます。
コード生成レポートでlocal_variable_ex.c
セクションをモデルのステップ关数をし。。ブロックブロックブロック出力,グローバルグローバルlocal_variable_ex_b.g2
とlocal_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' */
[コンフィギュレーション],[信号ストレージ再]パラメーターを选択ます。[信号ストレージ再]は以下最适パラメーターをにします。
ローカルなの出力をするする
ローカルブロック出力再利用
余分な変数の(式の)
[信号ストレージ再]と[余分な変数削除(式畳み込み)]をオフにます。
コードをしステップ关数を表示ます。最适化パラメーター[ローカルなのを有效]を选択ため,のステップ关数ににはははつのローカル変数があります。変数変数RTB_G2
とRTB_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;
[コンフィギュレーション],[ローカルブロックの利用]パラメーターを选択ます。
コードを生成ます。local_variable_ex.c
セクションでの关数を表示します。ジェネレータージェネレーターがががががが回回使用するする変数RTB_G2
1つありつあり。。
/ *模型步骤函数 */ 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
と关连データ生成コードに含まていません。