主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

mdlDerivatives

计算 C MEX S-Function 的导数

必需

语言

C、C++

语法

#define MDL_DERIVATIVES
void mdlDerivatives(SimStruct *S)

参量

S

表示 S-Function 模块的 SimStruct。

描述

Simulink® 引擎在每个时间步调用此可选方法来计算 S-Function 连续状态的导数。此方法应将导数存储在 S-Function 的状态导数向量中。在 C MEX S-Function 中,使用 ssGetdX 获取指向导数向量的指针。

每次调用 mdlDerivatives 例程时,它必须显式设置所有导数的值。导数向量不保持来自对此例程的最后一次调用的值。分配给导数向量的内存在执行期间会发生变化。

注意

如果您有 Simulink Coder™,则在为包含此方法的非内联 C MEX S-Function 生成代码时,请确保该方法未包装在 #if defined(MATLAB_MEX_FILE) 语句中。例如:

#define MDL_DERIVATIVES 
#if defined(MDL_DERIVATIVES) && defined(MATLAB_MEX_FILE) 
static void mdlDerivatives(SimStruct *S) 
{ 
   /* Add mdlDerivatives code here *
} 
#endif 
define 语句使 mdlDerivatives 方法仅适用于 MATLAB® MEX 文件。如果 S-Function 未内联,则 Simulink Coder 产品无法使用此方法,从而导致链接或运行时错误。

示例

有关 C MEX S-Function 示例,请参阅 csfunc.c

另请参阅

ssGetdx, Derivatives

版本历史记录

在 R2006a 之前推出