Вычисление производных 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.