主要内容

mdlprocessparameters.

处理C MEX S函数的参数

必需的

语言

C,C ++

句法

#define mdl_process_parameters void mdlprocessparameters(Simstruct * s)

争论

S.

Simstruct代表S函数块。

描述

这是Simulink的可选例程金宝app®发动机呼叫之后mdlcheckparameters.更改并验证参数。当处理更改的参数时,在仿真环路的顶部完成处理。此功能仅对模拟有效。C MEX S函数必须括起来#if定义(matlab_mex_file)陈述。

此例程的目的是处理新改变的参数。一个例子是缓存工作向量中的参数更改。当它与之使用时,发动机不会调用此例程金宝appSimulink Coder™产品。因此,如果您在设计用于使用的S函数中使用此例程金宝appSimulink编码器产品,您必须编写S-Function,以便它不依赖此例程。为此,您必须使用目标语言编译器内联输入您的S函数。有关内联函数的信息,请参阅内联的S函数(金宝appSimulink编码器)

例子

此示例处理字符向量参数mdlcheckparameters.已验证是表单'+++'(可能有任何数量的地方'+'或者' - '人物)。

#define mdl_process_parameters / *更改为#undef以删除函数* / #f定义(mdl_process_parameters)&&定义(matlab_mex_file)静态void mdlprocessparameters(simstruct * s){int_t i;char_t * plusminusstr;int_t ninputports = ssgetnuminputports;int_t * iwork = ssgetiwork(s);if((plusminusstr =(char_t *)malloc(ninputports + 1))== null){ssseterrorstatus(s,mdlstart中的“内存分配错误”);返回;}如果(mxgetstring(signs_param(s),plusminusstr,ninputports + 1)!= 0){free(plusminusstr);ssseterrorstatus(mdlstart中的“mxgetstring错误”);返回;for(i = 0; i 
             

mdlprocessparameters.被称为mdlstart.在仿真循环开始之前加载符号字符向量。

#define mdl_start #f定义(mdl_start)静态void mdlstart(simstruct * s){mdlprocessparameters;#endif / * mdl_start * /

版本历史记录

在R2006A之前介绍