mdlDerivatives

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

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_DERIVATIVES
void mdlDerivatives(SimStruct *S)

Аргументы

S

SimStruct, представляющий Блок s-function.

Описание

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

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

Примечание

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

Пример

Для примера S-функции MEX C смотрите csfunc.c c.

Смотрите также

ssGetdx, Derivatives

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

Была ли эта тема полезной?