Соответствие S-функции с ModelOperatingPoint

Спецификация соответствия ModelOperatingPoint для S-функций MEX C

Как с S-функцией MATLAB®, ваш код S-функции MEX C должен сообщить Simulink® соответствия S-функции с функцией ModelOperatingPoint. Можно выполнить эту задачу при помощи API S-функции, ssSetOperatingPointCompliance.

В большинстве случаев определение соответствия, чтобы быть значением по умолчанию достаточно, чтобы сохранить и восстановить необходимые данные состояния. Чтобы задать соответствие по умолчанию, добавьте эту строку:

ssSetOperatingPointCompliance(S, USE_DEFAULT_OPERATING_POINT).

Опции следующие:

УстановкаРезультат
OPERATING_POINT_COMPLIANCE_UNKNOWNЭто - настройка по умолчанию для всех S-функций. Для S-функций, которые не используют PWorks, Simulink сохраняет и восстанавливает рабочую точку симуляции по умолчанию (см. USE_DEFAULT_OPERATING_POINT), и выдает предупреждение, чтобы сообщить пользователю этого предположения. С другой стороны, Simulink сообщает об ошибке во время сохранения и восстановления, если это сталкивается с S-функцией, которая использует PWorks.
USE_DEFAULT_OPERATING_POINTЭта установка дает Simulink команду обрабатывать S-функцию как встроенный блок при сохранении и восстановлении объекта ModelOperatingPoint. Эта установка сохраняет непрерывные состояния, нецарапина Dworks и нуль, пересекающий информацию сигнала
USE_EMPTY_OPERATING_POINT

Эта установка сообщает Simulink, что S-функция не имеет никакого состояния симуляции. С этой установкой никакая информация состояния не сохранена для этого блока. Эта установка, в основном, полезна для блоков "приемника" (т.е. блокируется без выходных портов), которые используют PWorks или DWorks, чтобы сохранить указатели на файлы или окна рисунка.

Примечание

Эта установка не позволена, если S-функция указывает какие-либо дискретные или непрерывные состояния или нулевые сигналы пересечения.

DISALLOW_OPERATING_POINTЭта установка сообщает Simulink, что S-функция не позволяет сохранение или восстановление его рабочей точки. Simulink сообщает об ошибке, при попытке сохранить или восстановить объект ModelOperatingPoint модели, которая содержит эту S-функцию. Можно использовать эту установку, если S-функция связывается со сторонней библиотекой, и сериализация состояния не возможна.
USE_CUSTOM_OPERATING_POINTЭта установка сообщает Simulink, что S-функция имеет методы mdlSetOperatingPoint и mdlGetOperatingPoint.

Для S-функций, которые используют векторы PWork или статические переменные, чтобы содержать данные, которые Simulink обновляет во время симуляции, S-функция должна использовать пользовательский mdlGetOpeartingPoint и методы mdlSetOperatingPoint. Следующие операторы демонстрируют соответствующий формат.

mxArray* mdlGetOperatingPoint(SimStruct* S)
void mdlSetOperatingPoint(SimStruct* S, const mxArray* inSS)

Для примера того, как реализовать эти методы, см. Пользовательский код и Ручные Закодированные Блоки с помощью API S-функции.

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

| | | | |

Похожие темы