exponenta event banner

mdlDerivatives

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

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_DERIVATIVES
void mdlDerivatives(SimStruct *S)

Аргументы

S

SimStruct представляет S-функциональный блок.

Описание

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

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

Примечание

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

Пример

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

См. также

ssGetdx, Derivatives

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