Примечание
Для получения дополнительной информации смотрите Модель-ссылку Требования и ограничения.
Когда S-функция C появляется в ссылочной модели, который выполняется в Режим normal mode, успешное выполнение невозможно, если все из следующих значений true:
S-функция имеет оба mdlProcessParameters
функцию и mdlStart
функция.
The mdlProcessParameters
функция зависит от mdlStart
функция.
Ссылочная модель вызывает mdlProcessParameters
перед вызовом mdlStart
.
Выполнение не удается из-за mdlProcessParameters
имеет требования к зависимостям, которые mdlStart
не удовлетворен. Автоматический анализ не может защитить от всех возможных причин такого отказа: необходимо проверить код вручную и проверить, что mdlProcessParameters
никоим образом не зависит от mdlStart
быть вызванным первым. Примеры такой зависимости включают:
Выделение памяти в mdlStart
и использование этой памяти в mdlProcessParameters
. Часто это делается с помощью ssSetUserData
и ssGetUserData
.
Инициализация любой DWork или любой глобальной памяти в mdlStart
и чтение значений в mdlProcessParameters
.
Чтобы напомнить вам, чтобы проверить на любые такие проблемы зависимостей, по умолчанию появляется сообщение об ошибке для любой S-функции, которая используется в модели, на которую ссылается Режим normal mode и содержит оба mdlProcessParameters
функцию и mdlStart
функция. Сообщение об ошибке не означает, что существуют какие-либо проблемы с зависимостями, а только то, что они могут существовать.
Если вы получаете такое сообщение об ошибке, проверяйте на наличие любых проблемных зависимостей в S-функции и перекодируйте по мере необходимости, чтобы устранить их. Когда таких зависимостей не существует, можно безопасно подавить сообщение об ошибке и использовать S-функцию в модели-ссылке Normal mode. Чтобы подтвердить, что S-функция совместима, и, следовательно, сообщение ненужно, включите следующий оператора в mdlInitializeSizes
:
ssSetModelReferenceNormalModeSupport (S, MDL_START_AND_MDL_PROCESS_PARAMS_OK);
Для получения информации о ссылочных моделях см. «Модели-ссылки».
Вам может потребоваться изменить S-функции, которые используются моделью, чтобы S-функции работали с несколькими образцами ссылочных моделей в режиме normal mode. S-функции должны явно указывать, что они поддерживают несколько exec
образцы.
Для функций C S используйте ssSupportsMultipleExecInstances(s, true)
.
Для MATLAB® файл S-функций, использование blockSupportMultipleExecInstances = true
.
Ограничения для использования S-функций с несколькими образцами ссылочных моделей в режиме normal mode совпадают с ограничениями, которые применяются к использованию S-функций с For Each Subsystem блоком.
Level-2 MATLAB S-Function | MATLAB Function | S-Function | S-Function Builder