Податливость S-функций ModelOperatingPoint

ModelOperatingPoint Спецификация податливости для 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» (то есть блоков без выходных портов), которые используют PWorks или DWorks для хранения указателей в файлах или окнах рисунка.

Примечание

Эта настройка не разрешена, если 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.

См. также

| | | | |

Похожие темы