主要内容

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

生成されたコードにおける信号および状態の初期化の制御

シミュレーションとコード生成用にカスタム値で信号と離散状態を初期化するために,信号オブジェクトとブロックパラメーターを使用できます。。シミュレーションとコード生成の両方のために信号を初期化することにより,モデルベースデザインの段階から段階への遷移を改善することができます。

モデル内で信号と離散状態の初期値を指定する方法に関する基本的な情報については,【中文译文

生成されたコードにおける信号および状態の初期化

  • RSim実行可能プログラムは[コンフィギュレーションパラメーター]ダイアログボックスの[デタのンポト/エクスポト]。GRT (t)→→→→→→→→→→→→→→→→→→

  • ブロック出力信号またはルートレベル入力/出力信号用の初期値は外部(呼び出し)プログラムにより上書きされる可能性があります。

  • 値が外部アプリケーションで使用されるか表示される場合は,初期値を永続的な信号

コードを生成すると,初期化ステートメントはモデルの初期化コード内の模型. cまたは模型. cpp这是一个很好的例子。

たとえば,モデルrtwdemo_sigobj_iv> > > > > > > >

ベースワークスペース内で信号オブジェクトを作成して初期化すると,以下に示すように,コードジェネレーターは,信号用の初期化コードを関数rtwdemo_sigobj_iv_initialize【翻译rtwdemo_sigobj_iv.c? ? ? ?

/*模型初始化函数*/ void rtwdemo_sigobj_iv_initialize(void){…/*导出全局信号*/ S3 = -3.0;S2 = -2.0;……/*导出全局状态*/ X1 = 0.0;X2 = 0.0;/*外部输入*/ S1 = -4.5;……

已启用子系统(Enabled Subsystem)、单位延迟(Unit DelayX1【中文译文S2

无效MdlStart(无效){…/* initializconditions for UnitDelay: '/Unit Delay' */ X1 = aa1;/* Start for enable system: '/Enabled Subsystem (state X1 inside)' */ /*虚拟输出代码*/ /* (virtual)输出块:'/Out1' */ S2 = aa2;}

启用子系统の場合は,サブシステムの外港ブロックのパラメーター[][]に設定されていると,初期値もリセット値> > > > >以下のrtwdemo_sigobj_iv.cからのコードは,モデル出力関数rtwdemo_sigobj_iv_output★★★★★S3

/*模型输出函数*/静态void rtwdemo_sigobj_iv_output(void){…/* Disable for enable system: '/Enabled Subsystem (state X1 inside)' */ /* (Virtual) Outport Block: '/Out1' */ S2 = aa2;

(英译汉)1 .中文

信号と状態の初期条件は,調整可能なグローバル変数を作成することにより,生成されたコードで表すことができます。。

[], []可调

[中文]可调または内联のどちらに設定するかに関係なく,調整可能なパラメーターを使用して信号オブジェクトのInitialValueプロパティまたはブロックの[初期条件]。調整可能なパラメーターに関する基本的な情報については,生成されたコードにおける調整可能なキャリブレーションパラメーターの作成

这是我的梦想

翻译:rtwdemo_sigobj_iv。信号S2はベースワークスペースで金宝app仿真软件。信号

金宝app仿真软件。信号オブジェクトS2[初期値]プロパティがaa2に設定されています。オブジェクトは変数aa2你怎么看S2这是一个很好的例子。[]プロパティがExportedGlobalに設定されています。金宝app仿真软件。信号オブジェクトを使用して信号を初期化するには,信号オブジェクトで汽车以外のストレージクラスを使用するか,コードマッピングエディターで対応するデータカテゴリが默认的整整整整,整整整整,整整齐齐模型的默认> > > > > > > > > >

[コンフィギュレーションパラメーター]ダイアログボックスの[最適化]ペ电子邮箱ンで,[設定]。変数aa2はストレージクラスExportedGlobal

启用的子系统。出口:[]重置に設定します。サブシステムがディセーブルになると,出力信号S2【中文】aa2

单位延时。[状態属性]* *;[状態名]ボックスをX1に設定します。

启用“”。パラメタ[刷刷刷]重置に設定します。,X1

金宝app仿真软件。信号オブジェクトX1[初期値]プロパティがaa1に設定されています。

金宝app仿真软件。参数オブジェクトaa1[]プロパティがExportedGlobalに設定されています。aa1などの調整可能なパラメーターおよびX1……金宝app仿真软件。信号

コードの生成と検査

###启动rtwdemo_sigobj_iv的构建过程###成功完成rtwdemo_sigobj_iv的构建过程构建总结构建的顶级模型目标:模型动作重建原因================================================================================================== rtwdemo_sigobj_iv生成和编译的代码生成信息文件不存在。构建1个模型中的1个(0个已经更新的模型)构建持续时间:0h 0m 30.364s

コード生成レポートで,ファイルrtwdemo_sigobj_iv.cを表示します。コードはグローバル変数を使用してブロック状態X1中文:S2? ? ? ?

/*导出块状态*/ real_T X1;/* '/单位延迟' */ /*导出块信号*/ real_T S1;/* '/In1' */ real_T S3;/* '<根>/信号转换' */ real_T S2;/* '/单位延迟' */

コードはグローバル変数を使用して調整可能なパラメーターaa1? ? ? ?

/*导出块参数*/ real_T aa1 = -2.5;/*变量:aa1

モデル初期化関数は調整可能なパラメーターaa1【中文译文X1你怎么看?また,この関数は調整可能なパラメーターaa2你怎么看S2(对)。

/* SystemInitialize for Enabled SubSystem: '/Enabled SubSystem (state X1 inside)' */ /* initializconditions for UnitDelay: '/Unit Delay' */ X1 = aa1;/* SystemInitialize for UnitDelay: '/Unit Delay'合并:* Outport: '/Out1' */ S2 = 0.0;

モデルのステップ関数では,使子系统がディセーブル状態からイネーブル状態に遷移すると,单位延迟ブロック状態X1

if (rtb_PulseGenerator > 0) {if (!rtwdemo_sigobj_iv_DW.EnabledSubsystemstateX1inside_M) {/* initializconditions for UnitDelay: '/Unit Delay' */ X1 = aa1;rtwdemo_sigobj_iv_DW。EnabledSubsystemstateX1inside_M = true;} /* UnitDelay: '/Unit Delay' */ S2 = X1;/*更新UnitDelay: '/Unit Delay'合并:* Inport: '/In1' */ X1 = S1;} else if (rtwdemo_sigobj_iv_DW.EnabledSubsystemstateX1inside_M){/*禁用UnitDelay: '/Unit Delay'合并:* Outport: '/Out1' */ S2 = 0.0;rtwdemo_sigobj_iv_DW。EnabledSubsystemstateX1inside_M = false;} /*子系统输出结束:'/Enabled SubSystem (state X1 inside)' */ /* DataStoreWrite: '/Data StoreWrite ' */ X2 = S2;/* SignalConversion: '<根>/信号转换'合并:* DataStoreRead: '<根>/数据存储读取' */ S3 = X2; } /* Model initialize function */ void rtwdemo_sigobj_iv_initialize(void) { /* Registration code */ /* initialize error status */ rtmSetErrorStatus(rtwdemo_sigobj_iv_M, (NULL)); /* block I/O */ /* exported global signals */ S3 = -3.0; /* states (dwork) */ (void) memset((void *)&rtwdemo_sigobj_iv_DW, 0, sizeof(DW_rtwdemo_sigobj_iv_T)); /* exported global states */ X1 = 0.0; X2 = 0.0; /* external inputs */ S1 = -4.5; /* Start for DiscretePulseGenerator: '/Pulse Generator' */ rtwdemo_sigobj_iv_DW.clockTickCounter = -2; /* Start for DataStoreMemory: '/Data Store Memory' */ X2 = -3.5; /* SystemInitialize for Enabled SubSystem: '/Enabled Subsystem (state X1 inside)' */ /* InitializeConditions for UnitDelay: '/Unit Delay' */ X1 = aa1; /* SystemInitialize for UnitDelay: '/Unit Delay' incorporates: * Outport: '/Out1' */ S2 = 0.0; /* End of SystemInitialize for SubSystem: '/Enabled Subsystem (state X1 inside)' */ } /* Model terminate function */ void rtwdemo_sigobj_iv_terminate(void) { /* (no terminate code required) */ }

启用子系统がコード実行中にディセーブルになると,アルゴリズムは調整可能な初期条件aa2你怎么看S2这是一个很好的例子。

} else {} else if (rtwdemo_sigobj_iv_DW.EnabledSubsystemstateX1inside_M){/*禁用UnitDelay: '/Unit Delay'合并:* Outport: '/Out1' */ S2 = 0.0;rtwdemo_sigobj_iv_DW。EnabledSubsystemstateX1inside_M = false;}

中文:我是说,我是说,我是说,我是说,我是说,我是说

MATLAB®構造体を使用してバス内の信号要素の初期値を指定する場合,生成コードに調整可能なグローバル構造体を作成できます。

[], []を[可调]に設定すると,初期条件はグローバルパラメーター構造体の調整可能なサブ構造体として表示されます。

[中文]可调または内联★★★★★★★★★★★★★★★★★★★★金宝app仿真软件。参数。パラメーターオブジェクトに汽车整整齐齐,整整齐齐,整整齐齐,整整齐齐,整整齐齐。

構造体とバス信号の間のデータ型の不一致を避けて効率的なコードを生成するためには,次のいずれかを使用します。

  • 構造体フィールドの値を指定する型付き式。。

  • 構造体のフィールドおよび信号の要素のデータ型を制御する金宝app仿真软件。公共汽车オブジェクト。

構造体を使用したバス信号の初期化についての基本的な情報およびフィールドのデータ型の制御方法の決定については,バス要素の初期条件の指定

刘强东:刘强东:刘强东

この例では,調整可能な構造体パラメーターを使用してバーチャルバス信号を初期化する方法について説明します。

翻译:rtwdemo_tunable_init_struct

[モデル化]タブで[]

[入力端子/出力端子]タブの(数据类型)

巴士创造者。。

[コンフィギュレーションパラメーター]ダイアログボックスで[最適化]。コンフィギュレーションパラメーター[中文]可调に設定されています。既定では,初期条件を含むブロックのパラメーターは,生成コード内でグローバルパラメーター構造体の調整可能なフィールドとして現れます。

モデルデータエディターの[状態]这是一个很好的例子。

单位延时,(初始值)を3つの信号要素それぞれの初期条件を指定する構造体に設定します。効率的なコードを生成するために,構造体のフィールドのデータ型を対応する信号要素のデータ型と一致させます。たとえば,[初期値]に式结构(thermocpl, 15.23,“magFlow”,uint32(79),“posSwitch”,假)を設定します。

set_param (rtwdemo_tunable_init_struct /单元的延迟“InitialCondition”的结构体(“thermocpl”,15.23,“magFlow”,uint32(79),“posSwitch”,假)”

# # #开始构建过程:rtwdemo_tunable_init_struct # # #成功完成构建过程:rtwdemo_tunable_init_struct模型建立目标:总结构建模型重建行动的理由  ============================================================================================================ rtwdemo_tunable_init_struct代码生成和编译代码生成信息文件不存在。构建1个模型中的1个(0个已经更新的模型)构建时间:0小时0分钟13.51秒

コード生成レポートで,ファイルrtwdemo_tunable_init_struct_types.hを表示します。コードでは,结构体

#定义DEFINED_TYPEDEF_FOR_struct_mqGi1jsItE0G7cf1bNqMu_ typedef struct {real_T thermocpl;uint32_T magFlow;boolean_T posSwitch;} struct_mqGi1jsItE0G7cf1bNqMu;

ファereplicationルrtwdemo_tunable_init_struct.hを表示します。グローバルパラメーター構造体の结构体单位延时[初期条件]パラメーターを表すサブ構造体UnitDelay_InitialCondition

struct P_rtwdemo_tunable_init_struct_T_ {struct_mqGi1jsItE0G7cf1bNqMu UnitDelay_InitialCondition;

ファereplicationルrtwdemo_tunable_init_struct_data.cを表示します。。翻译成UnitDelay_InitialCondition? ? ? ?

/*块参数(默认存储)*/ P_rtwdemo_tunable_init_struct_T rtwdemo_tunable_init_struct_P ={/*掩码参数:UnitDelay_InitialCondition *引用:* '<根>/单位延迟' * '<根>/单位延迟' * '<根>/单位延迟' */ {15.23,79U, 0},

ファereplicationルrtwdemo_tunable_init_struct.cを表示します。。

/*从:'/Unit Delay'生成的UnitDelay的initializ条件*/ rtwdemo_tunable_init_struct_DW. dw。UnitDelay_1_DSTATE = rtwdemo_tunable_init_struct_P.UnitDelay_InitialCondition.thermocpl;/*从:'/Unit Delay'生成的UnitDelay的initializ条件*/ rtwdemo_tunable_init_struct_DW. dw。UnitDelay_2_DSTATE = rtwdemo_tunable_init_struct_P.UnitDelay_InitialCondition.magFlow;/*从:'/Unit Delay'生成的UnitDelay的initializ条件*/ rtwdemo_tunable_init_struct_DW. dw。UnitDelay_3_DSTATE = rtwdemo_tunable_init_struct_P.UnitDelay_InitialCondition.posSwitch;

バスオブジェクトを使用したデータ型の指定

バスオブジェクトを作成する場合は,それを使用してバス信号と調整可能な初期条件構造体のデータ型を指定できます。コード生成の前に,金宝app仿真软件。参数。バスオブジェクトの作成およびモデル内での使用に関する基本的な情報については,金宝app仿真软件。公共汽车オブジェクトデータ型でのバス プロパティの指定

翻译:rtwdemo_init_struct_busobj

金宝app仿真软件。公共汽车オブジェクトComponentDataをダブルクリックします。オブジェクトは3 つの信号要素thermocplmagFlowおよびposSwitchを定義します。。

() () () ([モデル化]タブで[])。[入力端子/出力端子],输入DataIn{}}[]) ?总线:ComponentData

コマンドプロンプトで構造体パラメーターinitStructを作成します。。可読性を高めるために,フィールドposSwitch

initStruct = struct(“thermocpl”, 15.23,“magFlow”, 79,“posSwitch”,错误的);
initStruct = 金宝appSimulink.Parameter(initStruct);

モデルデータエディターで,[]哇!哇!

单位延时,单位延时,单位延时,单位延时モデルデータエディターによって,ブロックの(初始条件)

モデルデータエディターで,パラメーター値([値]?initStructに設定します。

[中文]。データテーブルにパラメーターオブジェクトinitStruct★★★★★★★

[]【翻译】initStruct【中文译文总线:ComponentDataに設定します。

initStruct。数据类型=“巴士:ComponentData”

[font =宋体]ドロップダウンリストを代码に設定します。

[]列を使用して,ストレージクラスExportedGlobalinitStruct? ? ?

initStruct。StorageClass =“ExportedGlobal”

# # #开始构建过程:rtwdemo_init_struct_busobj # # #成功完成构建过程:rtwdemo_init_struct_busobj模型建立目标:总结构建模型重建行动的理由  =========================================================================================================== rtwdemo_init_struct_busobj代码生成和编译代码生成信息文件不存在。构建1个模型中的1个(0个已经更新的模型)构建持续时间:0h 0m 12.438s

コード生成レポートで,ファイルrtwdemo_init_struct_busobj_types.hを表示します。コードは,バスオブジェクトでデータ型を使用するフィールドをもつ構造体型ComponentDataを作成します。

#定义DEFINED_TYPEDEF_FOR_ComponentData_ typedef struct {real_T thermocpl;uint32_T magFlow;boolean_T posSwitch;} ComponentData;

ファereplicationルrtwdemo_init_struct_busobj.cを表示します。コードではグローバル変数を作成して調整可能なパラメーターオブジェクトinitStruct? ? ? ?

/*导出块参数*/ ComponentData initStruct = {15.23, 79U, 0};/*变量:initStruct

/*从:' /Unit Delay'生成的UnitDelay的initializconditions */ rtwdemo_init_struct_busobj_DW. dw . dw . init_init_struct_busobj_dw . dw。UnitDelay_1_DSTATE = initStruct.thermocpl;/*从:' /Unit Delay'生成的UnitDelay的initializconditions */ rtwdemo_init_struct_busobj_DW. dw . dw . init_init_struct_busobj_dw . dw。UnitDelay_2_DSTATE = initStruct.magFlow;/*从:' /Unit Delay'生成的UnitDelay的initializconditions */ rtwdemo_init_struct_busobj_DW. dw . dw . init_init_struct_busobj_dw . dw。UnitDelay_3_DSTATE = initStruct.posSwitch;

。。シミュレーションおよびコード生成の前に,パラメーターオブジェクトinitStruct

参考

|

関連するトピック