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

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

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

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

  • Модель содержит К блокам Файла.

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

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

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

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

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

  • Модель, на которую ссылаются, выполняется в режиме Accelerator и содержит:

    • Подсистема, которая отмечена как функция

    • S-функция, которая или не встраивается или встраивается, но не устанавливает опцию SS_OPTION_WORKS_WITH_CODE_REUSE

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

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

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

Если модель, на которую ссылаются, имеет какое-либо из этих свойств, только один экземпляр модели может появиться в иерархии модели. Модели нужно было установить Total number of instances allowed per top model на One.

Образцовые маски

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

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

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

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

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

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

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

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

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

Тип S-функцииПоддержка моделей - ссылок
Уровень 1 S-функция MATLABНе поддерживаемый
Уровень 2 S-функция MATLAB
  • Поддерживает нормальный и режим Accelerator

  • Режим Accelerator требует файла TLC

Рукописная S-функция MEX C
  • Поддерживает нормальный и режим Accelerator

  • Может быть встроен с файлом TLC

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

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

Шаг расчета S-функции

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

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

Для модели, на которую ссылаются, которая выполняется в режиме Accelerator, устанавливает Total number of instances allowed per top model на One, если модель содержит S-функцию, которая является также:

  • Встроенный, но не установил флаг SS_OPTION_WORKS_WITH_CODE_REUSE

  • Не встроенный

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Коллбэк InitFcn

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

Блок MATLAB function

Блок MATLAB function в модели, на которую ссылаются, которая выполняется в режиме Accelerator, не может вызвать функции MATLAB, которые объявляются внешние для генерации кода.

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

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

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

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

  • Блок Inport корневого уровня выводит сигнал вызова функции. Смотрите Асинхронную Спецификацию Задачи.

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

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

Шины

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

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

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

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

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

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

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

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

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

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

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

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

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

Можно моделировать модель, которая имеет несколько экземпляров модели, на которую ссылаются, которые находятся в режиме normal mode. Все экземпляры модели, на которую ссылаются, являются частью симуляции. Однако Simulink отображает только один из экземпляров в окне модели. Установка видимости режима normal mode определяет, какой экземпляр Simulink отображает. Видимость режима normal mode включает отображение блоков Осциллографа и значений порта данных.

Чтобы управлять, какой экземпляр модели, на которую ссылаются, в режиме normal mode имеет видимость и гарантировать соответствующую симуляцию модели, смотрите, Конфигурируют Модели с Несколькими Образцовыми Экземплярами, на которые Ссылаются.

Сохраните перед использованием режима Accelerator

Когда вы создаете модель, вы не можете использовать ту модель в качестве режима Accelerator модель, на которую ссылаются, пока вы не сохранили модель на диск. Можно работать вокруг этого ограничения путем установки модели на режим normal mode. Смотрите Моделируют Иерархии модели.

Диагностические параметры конфигурации в режиме Accelerator

Для моделей, на которые ссылаются в режиме Accelerator, Simulink игнорирует определенную диагностику во время выполнения, которую вы устанавливаете на значение кроме none или Disable all. Для получения дополнительной информации смотрите Диагностические Параметры конфигурации, Проигнорированные в Режиме Accelerator.

Блоки с проверками на этапе выполнения в режиме Accelerator

Некоторые блоки включают проверки на этапе выполнения, которые отключены, когда вы включаете блок в модель, на которую ссылаются, в режиме Accelerator. Примеры этих блоков включают Присвоение, Селектор и блоки MATLAB function.

Команда sim в режиме Accelerator

Когда команда sim выполняет модель, на которую ссылаются, в режиме Accelerator, исходная рабочая область всегда является базовым рабочим пространством MATLAB.

Регистрация данных и визуализация в режиме Accelerator

Эти методы журналирования имеют ограничения, когда задано для моделей, на которые ссылаются, выполняющихся в режиме Accelerator.

  • К блокам Рабочей области — регистрируются Данные, только если вы используете формат Timeseries.

  • Определите объем, Пустив в ход Осциллограф и блоки Средства просмотра Осциллографа — Никакие данные не отображены.

  • Отображение во время выполнения — значения Данных моделирования, такие как значения порта, не отображаются.

Линеаризация дискретных состояний в режиме Accelerator

В режиме Accelerator дискретные состояния моделей - ссылок не подвергнуты линеаризации. Эти дискретные состояния не встревожены во время линеаризации и, поэтому, не действительно свободны в процессе обрезки.

Обрезка в режиме Accelerator

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

Режим external mode в режиме Accelerator

Режим Accelerator не поддерживает опцию External mode. Если вы включаете опцию External mode, режим Accelerator игнорирует ее.

Устройство просмотра Сима в быстром режиме Accelerator

В быстром режиме Accelerator Simulink не обновляет блок Model с sim устройством просмотра.

Режим SIL и PIL

Смотрите поведение переопределения режима симуляции в иерархии модели - ссылки (Embedded Coder).

Пользовательский код С для симуляции модели, на которую ссылаются (SIM) предназначается для сборки для режима Accelerator

Чтобы использовать пользовательский код С в режиме Accelerator, включите параметр конфигурации Include custom code for referenced models.

Внимание

Используя пользовательский код С для моделей, на которые ссылаются, в режиме Accelerator может привести к различным результатам чем тогда, когда вы моделируете модель, не используя пользовательский код. Если пользовательский код включает объявления структур для шин или перечислений, целевые сбои генерации SIM, если сборка приводит к двойным объявлениям тех структур. Кроме того, если пользовательский код использует структуру, представляющую шину или перечисление, можно получить неожиданные результаты симуляции.

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

ИнструментТребования и ограничения
Точки останова Отладчика Simulink

Работая с Отладчиком Simulink в родительской модели, можно установить точки останова на контурах блока Model. Установка точек останова позволяет вам смотреть на значения ввода и вывода блока Model. Можно установить точку останова в модели, на которую ссылаются, в режиме normal mode. Однако вы не можете установить точку останова в модели, на которую ссылаются, в режиме Accelerator. Смотрите Отладчик Simulink для получения дополнительной информации.

Профилировщик Simulink

В режиме normal mode, включая Профилировщику Simulink на родительской модели не позволяет профилировать для моделей, на которые ссылаются. Позвольте профилировать отдельно для каждой модели, на которую ссылаются. Смотрите Как Данные о производительности Получений Профилировщика.

Инструменты Simulink, что доступ внутренние данные или настройки модели

Инструменты Simulink, которые требуют доступа к внутренним данным или настройке модели, не имеют никакого эффекта на модели, на которые ссылаются, выполняющиеся в режиме Accelerator. Проигнорированы сделанные спецификации и меры, принятые такими инструментами. Примеры инструментов, которые требуют, чтобы доступ смоделировал внутренние данные или настройку, включают:

  • Покрытие модели

  • Simulink Report Generator™

  • Отладчик Simulink

  • Профилировщик Simulink

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

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

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

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте