Типы векторов DWork

Все векторы DWork являются памятью S-функции, которой управляет механизм Simulink®. Программное обеспечение Simulink поддерживает четыре типа векторов DWork:

  • Векторы генерала Дуорка содержат информацию любого типа данных.

  • Векторы DState содержат информацию о дискретном состоянии. Информация, хранившая в векторе DState, появляется как состояние в линеаризовавшей модели и доступна во время журналирования состояния.

  • Поцарапайте векторы содержат значения, которые не должны сохраняться от одного временного шага до следующего.

  • Векторы режима содержат информацию режима, обычно хранившуюся как Булевы или целочисленные данные.

S-функции указывают тип вектора DWork с помощью макроса ssSetDWorkUsageType. Этот макрос принимает один из четырех типов использования, описанных в следующей таблице.

DWorkТип использованияФункциональность
Общий SS_DWORK_USED_AS_DWORKСохраните экземпляр определенные персистентные данные. Векторы генерала Дуорка могут также использоваться, чтобы сохранить дискретное состояние и данные о режиме, однако механизм Simulink не обработает эту информацию особенно. Вы можете принять решение использовать вектор генерала Дуорка, чтобы хранить информацию состояния, если вы хотите избежать регистрации данных.
DStateSS_DWORK_USED_AS_DSTATEХраните информацию дискретного состояния. Используя вектор DState вместо ssSetNumDiscStates, чтобы сохранить дискретные состояния обеспечивает больше гибкости для именования и данных, вводящих состояния. Механизм отмечает блоки дискретными состояниями как особенные во время распространения шага расчета. Кроме того, механизм делает данные сохраненными в векторе DState доступный во время регистрации данных.
РежимSS_DWORK_USED_AS_MODEУкажите к механизму Simulink, что S-функция содержит режимы. Механизм обрабатывает блоки с режимами особенно при решении алгебраических циклов. Кроме того, механизм обновляет S-функцию с режимами только на главных временных шагах. Векторы режима DWork более эффективны, чем стандартный режим работает векторы (см. Элементарные Векторы работы), потому что они могут хранить информацию режима как булевы данные. Кроме того, в то время как S-функция имеет только один режим, работают векторы, это может иметь несколько векторов DWork, сконфигурированных, чтобы сохранить режимы.
ЦарапинаSS_DWORK_USED_AS_SCRATCHСохраните память, которая не является персистентной, например, большая переменная, которую вы не хотите отмечать на стеке. Поцарапайте векторы ограничены по объему к конкретному методу S-функции (например, mdlOutputs) и существуют через один временной шаг. Поцарапайте память может быть совместно использована через Блоки s-function. Механизм Simulink пытается минимизировать объем памяти, используемый переменными царапины, и повторные использования царапают память, когда это возможно.