Задайте поведение S-функции Simulink при сохранении и восстановлении рабочей точки модели, содержащей S-функцию
void ssSetOperatingPointCompliance(S, setting)
S
SimStruct, представляющий блок s-function.
setting
Задайте, как обработать состояние симуляции S-функции при сохранении и восстановлении состояния симуляции модели. Допустимые значения:
OPERATING_POINT_COMPLIANCE_UNKNOWN
(значение по умолчанию)
USE_DEFAULT_OPERATING_POINT
USE_EMPTY_OPERATING_POINT
DISALLOW_OPERATING_POINT
USE_CUSTOM_OPERATING_POINT
ssSetOperatingPointCompliance
позволяет вам задать, как Simulink® должна обрабатывать S-функцию во время сохранения и восстановления моментального снимка симуляции модели (ModelOperatingPoint
).
Если S-функция не задает свои OperatingPointCompliance
, затем Simulink принимает OPERATING_POINT_COMPLIANCE_UNKNOWN
настройка. Эта настройка предписывает Simulink выдать предупреждение и затем переключиться на USE_DEFAULT_OPERATING_POINT
вместо OPERATING_POINT_COMPLIANCE_UNKNOWN
.
Если для опции задано значение OP_COMPLIANCE_DEFAULT
и если S-функция не использует PWorks
, затем Simulink обрабатывает S-функцию как встроенный блок. Simulink сохраняет и восстанавливает те же данные, что и рабочая точка (для примера непрерывных состояний, нецарапанных векторов DWork и информации о сигнале пересечения нуля), как это было бы для встроенного блока. Если S-функция имеет Pworks, не установка податливости приводит к ошибке при сохранении рабочей точки. Используйте пользовательскую податливость, USE_CUSTOM_OPERATING_POINT
, для сохранения данных в Pworks.
C, C++
Используйте ssSetOperatingPointCompliance
функция для задания податливости состояния симуляции S-функции в mdlInitializeSizes
способ. Спецификация основана на значении параметров первого вектора символов.
static void mdlInitializeSizes(SimStruct* S) { ssSetNumSFcnParams(S, 2); /* two parameters */ if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) return; ssSetSFcnParamTunable(S, 0, false); ssSetSFcnParamTunable(S, 1, false); { boolean_T visibility = 0U; ssSimStateCompliance setting = GetSimSnapParameterSetting(S, &visibility); if (ssGetErrorStatus(S)) return; ssSetOperatingPointCompliance(S, setting); ssSetOperatingPointVisibility(S, visibility); }
Пользовательский код и кодированные вручную блоки с использованием S-функции API| ssSetOperatingPointVisibility