ModelOperatingPointModelOperatingPoint Спецификация податливости для C MEX S-функцийКак и в MATLAB® S-функция, ваш код S-функции C MEX должен информировать Simulink® податливости S-функции ModelOperatingPoint функция. Вы можете выполнить эту задачу с помощью S-функции API, ssSetOperatingPointCompliance.
В большинстве случаев установка податливости по умолчанию достаточна для сохранения и восстановления необходимых данных о состоянии. Чтобы задать податливость по умолчанию, добавьте эту линию:
ssSetOperatingPointCompliance(S, USE_DEFAULT_OPERATING_POINT).Опции следующие:
| Настройка | Результат |
|---|---|
OPERATING_POINT_COMPLIANCE_UNKNOWN | Это настройка по умолчанию для всех S-функций. Для S-функций, которые не используют PWorksSimulink сохраняет и восстанавливает рабочую точку симуляции по умолчанию (см USE_DEFAULT_OPERATING_POINT) и выдает предупреждение, чтобы сообщить пользователю об этом предположении. С другой стороны, Simulink сообщает об ошибке во время сохранения и восстановления, если он встречается с S-функцией, которая использует PWorks. |
USE_DEFAULT_OPERATING_POINT | Эта настройка предписывает Simulink обрабатывать S-функцию как встроенный блок при сохранении и восстановлении ModelOperatingPoint объект. Эта настройка сохраняет непрерывные состояния, нецарапанные Dworks и информацию о сигнале пересечения нуля |
USE_EMPTY_OPERATING_POINT | Эта настройка информирует Simulink, что S-функция не имеет никакого состояния симуляции. С помощью этого параметра никакая информация о состоянии для этого блока не сохраняется. Эта настройка в основном полезна для блоков «sink» (то есть блоков без выходных портов), которые используют Примечание Эта настройка не разрешена, если S-функция регистрирует любые дискретные или непрерывные состояния или сигналы пересечения нуля.
|
DISALLOW_OPERATING_POINT | Эта настройка информирует Simulink, что S-функция не позволяет сохранять или восстанавливать свою рабочую точку. Simulink сообщает об ошибке, если вы пытаетесь сохранить или восстановить ModelOperatingPoint объект модели, которая содержит эту S-функцию. Можно использовать эту настройку, если S-функция взаимодействует с сторонней библиотекой, и сериализация состояния невозможна. |
USE_CUSTOM_OPERATING_POINT | Эта настройка информирует Simulink, что S-функция имеет mdlGetOperatingPoint и mdlSetOperatingPoint методы. |
Для S-функций, которые используют PWork векторы или статические переменные, чтобы хранить данные, которые Simulink обновляет во время симуляции, S-функция должна использовать пользовательский mdlGetOperatingPoint и mdlSetOperatingPoint методы. Следующие операторы демонстрируют правильный формат.
mxArray* mdlGetOperatingPoint(SimStruct* S) void mdlSetOperatingPoint(SimStruct* S, const mxArray* inSS)
Пример реализации этих методов см. в Custom Code и Hand Coded Blocks с использованием S-функции API.
GetOperatingPoint | mdlGetOpeartingPoint | mdlSetOperatingPoint | SetOperatingPoint | ssSetOperatingPointCompliance | ssSetOperatingPointVisibility