mdlSetWorkWidths

Задайте размеры векторов работы и создайте параметры периода выполнения, требуемые этой S-функцией MEX C

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_SET_WORK_WIDTHS
void mdlSetWorkWidths(SimStruct *S)

Аргументы

S

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

Описание

Механизм Simulink® вызывает этот дополнительный метод, чтобы позволить этой S-функции установить размеры состояния и работать векторы, что это должно хранить глобальные данные и создать параметры периода выполнения (см., Создают и Параметры периода выполнения S-функции Обновления). Механизм вызывает этот метод после того, как это определило ширину входного порта, ширину выходного порта и частоты дискретизации S-функции. Это позволяет S-функции измерять состояние и работать векторы на основе номера и размеров вводов и выводов и/или количества частот дискретизации. Этот метод задает состояние, и работайте векторные размеры через макросы ssGetNumContStates, ssSetNumDiscStates, ssSetNumRWork, ssSetNumIWork, ssSetNumPWork, ssSetNumModes и ssSetNumNonsampledZCs.

S-функция C-MEX должна реализовать этот метод, только если это не знает размеров всех векторов работы, которых требуется, когда механизм вызывает метод mdlInitializeSizes функции. Если эта S-функция реализует mdlSetWorkWidths, она должна инициализировать размеры любого, работают векторы, в которых она нуждается к DYNAMICALLY_SIZED в mdlInitializeSizes, даже для тех, точный размер которых она знает в той точке. S-функция должна затем задать фактический размер в mdlSetWorkWidths. Этот метод только допустим для моделирования и должен быть заключен в оператор #if defined(MATLAB_MEX_FILE).

Пример

Для полного примера S-функции MEX C с помощью векторов DWork смотрите файл sfun_rtwdwork.c, используемый в модели Simulink sfcndemo_sfun_rtwdwork.

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

mdlInitializeSizes, PostPropagationSetup

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

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