mdlDerivatives

Вычислите производные S-функции C MEX

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_DERIVATIVES
void mdlDerivatives(SimStruct *S)

Аргументы

S

SimStruct, представляющий блок S-Function.

Описание

Simulink® engine вызывает этот необязательный метод на каждом временном шаге, чтобы вычислить производные непрерывных состояний S-функции. Этот метод должен хранить производные в векторе производных S-функции. В функции MEX S на C используйте ssGetdX чтобы получить указатель на производный вектор.

Каждый раз, когда mdlDerivatives вызывается подпрограмма, она должна явно задать значения всех производных. Вектор производной не поддерживает значения от последнего вызова к этой стандартной программе. Память, выделенная производному вектору, изменяется во время выполнения.

Примечание

Если у вас есть Simulink Coder™, при генерации кода для неинлинфицированной S-функции C MEX, которая содержит этот метод, убедитесь, что метод не упакован в #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 
The define оператор делает mdlDerivatives метод, доступный только для MATLAB® Файл MEX. Если S-функция не встроена, продукт Simulink Coder не может использовать этот метод, что приводит к ошибкам ссылки или времени выполнения.

Пример

Пример S-функции на C MEX см. в csfunc.c.

См. также

ssGetdx, Derivatives

Представлено до R2006a