示例模型
打开示例模型 rtwdemo_ratetrans。这种多速率、多任务模型包含几个在不同模式下运行的 Rate Transition 模块。
open_system('rtwdemo_ratetrans');
set_param('rtwdemo_ratetrans','SystemTargetFile','ert.tlc');
set_param('rtwdemo_ratetrans','GenerateComments', 'Off');
将 Rate Transition 模块的代码分离出来
在 Configuration Parameters 对话框中,Rate Transition block code 参数设置为 Function。为模型生成代码。代码位于文件 rtwdemo_ratetrans.c 和 rtwdemo_ratetrans.h 中。
currentDir = pwd;
[~,cgDir] = rtwdemodir();
rtwbuild('rtwdemo_ratetrans');
### Starting build procedure for: rtwdemo_ratetrans
### Successful completion of build procedure for: rtwdemo_ratetrans
Build Summary
Top model targets built:
Model Action Rebuild Reason
==================================================================================================
rtwdemo_ratetrans Code generated and compiled Code generation information file does not exist.
1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 18.871s
hfile=fullfile(cgDir, 'rtwdemo_ratetrans_ert_rtw','rtwdemo_ratetrans.h');
rtwdemodbtype(hfile,'typedef struct {','} DW;', 1, 1);
typedef struct {
real_T OutportBufferForOut3[20];
real_T Integrator1_DSTATE[20];
real_T Integrator2_DSTATE[20];
real_T Integrator3_DSTATE[20];
real_T Integrator1_PREV_U[20];
real_T Integrator2_PREV_U[20];
real_T Integrator3_PREV_U[20];
uint32_T Algorithm_PREV_T;
struct {
uint_T Algorithm_RESET_ELAPS_T:1;
} bitsForTID1;
uint8_T Integrator1_SYSTEM_ENABLE;
uint8_T Integrator2_SYSTEM_ENABLE;
uint8_T Integrator3_SYSTEM_ENABLE;
} DW;
对于 Rate Transition 模块,状态数据不在全局状态结构体 DW_rtwdemo_ratetrans_T 中。这