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