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
。
另请参阅
版本历史记录
在 R2006a 之前推出