S-функции в режиме normal mode модели, на которые ссылаются,

Примечание

Для получения дополнительной информации смотрите Требования Модели - ссылки и Ограничения.

Когда S-функция C появляется в модели, на которую ссылаются, которая выполняется в Режиме normal mode, успешное выполнение невозможно, если все следующее верно:

  • S-функция имеет обоих mdlProcessParameters функционируйте и mdlStart функция.

  • 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);

Для получения информации о моделях, на которые ссылаются смотрите Основы Модели - ссылки.

Поддержка использования нескольких экземпляров моделей, на которые ссылаются, которые находятся в режиме normal mode

Вы, возможно, должны изменить S-функции, которые используются моделью так, чтобы S-функции работали с несколькими экземплярами моделей, на которые ссылаются, в Режиме normal mode. S-функции должны указать явным образом, что они поддерживают несколько exec экземпляры.

  • Для S-функций C используйте ssSupportsMultipleExecInstances(s, true).

  • Для MATLAB® S-функции файла, используйте blockSupportMultipleExecInstances = true.

Ограничения для использования S-функций с несколькими экземплярами моделей, на которые ссылаются, в Режиме normal mode совпадают с ограничениями, которые применяются к использованию S-функций с блоком For Each Subsystem.

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

| | |

Похожие темы