Требования модели - ссылки и ограничения

Прежде, чем сослаться на модели, рассмотрите требования модели - ссылки и ограничения. Путем понимания требований и ограничений заранее, вы лучше подготовлены к образцам модели успешно.

Повторное использование модели

Можно сослаться на модель несколько раз в иерархии модели, если модель, на которую ссылаются, не имеет ни одного из этих свойств:

  • Модели - ссылки другая модель, которая установлена в один экземпляр.

  • Модель содержит блоки To File.

  • Модель содержит внутренний сигнал или состояние с классом памяти, который не поддержан для моделей мультиэкземпляра. Внутренним сигналам и состояниям нужно было установить класс памяти на Auto или Model default и класс памяти по умолчанию для внутренних данных должен быть классом памяти мультиэкземпляра.

  • Модель использует любое из этих построений Stateflow®:

    • Графические функции Stateflow

    • Порожденные машиной данные

  • Модель, на которую ссылаются, выполняется в режиме Accelerator и содержит S-функцию, которая или не встраивается или встраивается, но не устанавливает опцию SS_OPTION_WORKS_WITH_CODE_REUSE.

  • Модель содержит подсистему вызова функций что:

    • Simulink® обеспечивает, чтобы быть функцией

    • Вызван широким сигналом

Если модель, на которую ссылаются, имеет какое-либо из этих свойств, только один экземпляр модели может появиться в иерархии модели. Модели нужно было позволить Общее количество экземпляров на набор топ-модели к One.

Маски модели

Можно использовать маскированные блоки в модели, на которую ссылаются. Кроме того, можно замаскировать модель, на которую ссылаются (см., Создают и Ссылаются на Модель Маскированную).

Чтобы успешно использовать маски, рассмотрите эти требования и ограничения:

  • Если маска задает имя модели, на которую ссылаются, маска должна обеспечить имя модели, на которую ссылаются, непосредственно. Вы не можете использовать переменную рабочей области, чтобы обеспечить имя.

  • Рабочая область маски блока Model не доступна для модели, на которую ссылаются. Любая переменная, которую использование модели, на которое ссылаются, должно разрешить к любой из этих рабочих областей:

    • Рабочая область, которую, задает модель, на которую ссылаются

    • Базовое рабочее пространство MATLAB®

  • Коллбэки маски не могут добавить блоки Model, изменить имя блока Model или изменить режим симуляции блока Model.

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

Различные типы S-функций обеспечивают разные уровни поддержки моделей - ссылок.

Тип S-функцииМодели, ссылаемые в режиме normal modeМодели, ссылаемые в режиме Accelerator
Уровень 1 S-функция MATLABНе поддерживаемыйНе поддерживаемый
Уровень 2 S-функция MATLABПоддерживаемыйПоддерживаемый — требует файла TLC
Рукописная S-функция MEX C

Поддерживаемый — может быть встроен с файлом TLC

Поддерживаемый — может быть встроен с файлом TLC
Разработчик S-функцииПоддерживаемыйПоддерживаемый
Legacy Code ToolПоддерживаемыйПоддерживаемый

Для получения информации о различных типах S-функций смотрите S-функции Реализации.

Для получения информации о том, как использовать S-функции в моделях, смотрите S-функции Использования в Моделях.

Когда вы используете S-функции в моделях, на которые ссылаются, рассматриваете эти требования и ограничения.

Фактор S-функцииТребования и ограничения
Наследование шага расчета

Если S-функция зависит от наследованного шага расчета, S-функция должна явным образом объявить зависимость от наследованного шага расчета. Чтобы управлять наследованием шага расчета, используйте ssSetModelReferenceSampleTimeInheritanceRule по-другому на основе того, разрешает ли S-функция или устраняет наследование. Для получения дополнительной информации смотрите S-функции Что Правила Наследования Настройки времени выборки (Simulink Coder).

Режим Accelerator модели, на которые ссылаются,

Поскольку режим Accelerator сослался на модели, которые содержат S-функцию, которая требует встраивания с помощью файла Компилятора Выходного языка, S-функция должна использовать ssSetOptions макрос, чтобы установить SS_OPTION_USE_TLC_WITH_ACCELERATOR опция в ее mdlInitializeSizes метод. Цель симуляции не встраивает S-функцию, если S-функция не устанавливает эту опцию.

Модель, на которую ссылаются, не может использовать невстроенные S-функции в этих случаях:

  • Модель использует решатель переменного шага.

  • На модель ссылаются несколько раз в иерархии модели. Чтобы работать вокруг этого ограничения, используйте режим normal mode или:

    1. Сделайте копии модели, на которую ссылаются.

    2. Присвойте различные имена к копиям.

    3. Сошлитесь на различную копию в каждом местоположении, которому нужна модель.

  • S-функция использует параметры вектора символов.

Модель, на которую ссылаются, в режиме Accelerator не может использовать S-функции, сгенерированные программным обеспечением Simulink Coder™.

Режим normal mode модели, на которые ссылаются,

При определенных обстоятельствах, когда S-функция C появляется в модели, на которую ссылаются, которая выполняется в режиме normal mode, успешное выполнение невозможно. Для получения дополнительной информации смотрите S-функции в Режиме normal mode Модели, на которые Ссылаются.

Чтобы задать, может ли S-функция использоваться в режиме normal mode модель, на которую ссылаются, используйте ssSetModelReferenceNormalModeSupport Функция SimStruct.

Для S-функции, чтобы работать с несколькими экземплярами моделей, на которые ссылаются, в режиме normal mode, S-функция должна указать явным образом, что это поддерживает несколько exec экземпляры. Для получения дополнительной информации смотрите Поддержку Использования Нескольких Экземпляров Моделей, на которые Ссылаются, Которые Находятся в Режиме normal mode.

Защищенные модели

Защищенная модель не может использовать невстроенные S-функции прямо или косвенно.

Требования архитектуры модели и ограничения

ЭлементТребования и ограничения
Goto и блоки From

Goto и блоки From не могут пересечь контуры модели - ссылки.

Подсистемы итератора

Если модель, на которую ссылаются, содержит блоки Assignment, можно поместить блок Model в подсистему итератора, только если блоки Assignment находятся также в подсистеме итератора.

Конфигурируемые подсистемы

В конфигурируемой подсистеме с блоком Model, во время обновления модели, не изменяют подсистему, которую выбирает конфигурируемая подсистема.

InitFcn 'callback'

InitFcn коллбэк в топ-модели не может изменить параметры, используемые моделями, на которые ссылаются.

Печать моделей, на которые ссылаются,

Вы не можете распечатать модель, на которую ссылаются, от топ-модели.

Требования сигнала и ограничения

СигналТребования и ограничения
Распространение информации об индексации на основе 1 или на основе 0

В двух случаях Simulink не распространяет информацию об индексации на основе 1 или на основе 0 к портам корневого уровня модели, на которые ссылаются, соединенным с блоками что:

  • Примите индексы (такие как блок Assignment)

  • Произведите индексы (такие как блок For Iterator)

Примером блока, который принимает индексы, является блок Assignment. Примером блока, который производит индексы, является блок For Iterator.

Эти два случая приводят к отсутствию распространения, которое может заставить Simulink не удаваться обнаружить несовместимые связи индекса. Эти два случая:

  • Если входной порт корневого уровня модели, на которую ссылаются, соединяется с входными параметрами индекса в модели, которые имеют различные настройки индексации на основе 1 или на основе 0, Simulink не устанавливает свойство индексации на основе 1 или на основе 0 блока Inport корневого уровня.

  • Если выходной порт корневого уровня модели, на которую ссылаются, соединяется, чтобы индексировать выходные параметры в модели, которые имеют различные настройки индексации на основе 1 или на основе 0, Simulink не устанавливает свойство индексации на основе 1 или на основе 0 блока Outport корневого уровня.

Асинхронные уровни

Модели, на которые ссылаются, могут только использовать асинхронные уровни, если модель удовлетворяет обоим из этих условий:

  • Внешний источник управляет асинхронным уровнем через блок Inport корневого уровня.

  • Блок Inport корневого уровня выводит сигнал вызова функции. Смотрите Asynchronous Task Specification.

Пользовательский ввод или вывод типа данных

Модель, на которую ссылаются, может ввод или вывод только пользовательские типы данных, которые являются фиксированной точкой или тем Simulink.DataType или Simulink.Bus объекты задают.

Шины

Если вы используете виртуальную шину в качестве входа или выхода для модели, на которую ссылаются, шина не может содержать элемент сигнала переменного размера. Смотрите Требования Модели - ссылки для Невиртуальных Шин.

Объекты сигнала

Сигнал, который соединяется с блоком Model, является функционально тем же сигналом внутри и снаружи блока. Поэтому тот сигнал подвергается ограничению, что данный сигнал может иметь самое большее один связанный объект сигнала. Смотрите Simulink.Signal для получения дополнительной информации.

Требования симуляции и ограничения

Свойство симуляцииТребования и ограничения
Распространение времени непрерывной выборки

Время непрерывной выборки не может быть распространено с блоком Model, который является независимым шагом расчета.

Шаги расчета и решатели

Решатель топ-модели управляет всеми временами непрерывной выборки в иерархии модели. Например, для решателя фиксированного шага, всех непрерывных уровней в моделях, на которые ссылаются, запущенных в размере фиксированного шага топ-модели. Для получения информации о том, как шаги расчета влияют на решатели, видят Типы Шага расчета.

Инициализация состояния

Чтобы инициализировать состояния модели, которая ссылается на другие модели с состояниями, задайте начальные состояния в структуре или структуре с форматом времени. Для получения дополнительной информации смотрите информацию состояния для Моделей, на которые Ссылаются.

Приспособляемость параметра

Когда вы симулируете модель, которая ссылается на другие модели при некоторых обстоятельствах, вы теряете некоторую приспособляемость параметров блоков (например, параметр Gain блока Gain). Для получения дополнительной информации смотрите Факторы Приспособляемости и Ограничения для Других Целей Моделирования.

Требования генерации кода и ограничения

Путем понимания требований генерации кода и ограничений заранее, вы лучше готовы правильно настроить иерархию модели для генерации кода. См., что Модель Генерации кода Ссылается на Ограничения (Simulink Coder).

Похожие темы