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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Обратные вызовы маски не могут добавить Блоки модели, изменить название Блока модели или изменить режим моделирования Блока модели.

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, определенном Общем номере экземпляров, позволенных на топ-модель 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 и От блоков не может пересечь контуры модели - ссылки.

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

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

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

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

Обратный вызов InitFcn

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

Блок MATLAB function

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

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

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

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

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

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

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

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

Шины

Модель, на которую ссылаются, не может непосредственно получить доступ к сигналам в шине мультиуровня. Чтобы преодолеть это ограничение, смотрите Шины Мультиуровня Подключения к Моделям, на которые Ссылаются.

При использовании виртуальный сигнал шины в качестве входного параметра или вывода для модели, на которую ссылаются, шина не может содержать элемент сигнала переменного размера. Смотрите, что Модель Ссылается на Ограничения для Виртуальных Шин.

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

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

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

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

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

Частоты дискретизации и решатели

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

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

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

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

Когда вы моделируете модель, которая ссылается на другие модели при некоторых обстоятельствах, вы теряете некоторую приспособляемость блочных параметров (например, параметра Усиления блока 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 не обновляет Блок модели с sim устройством просмотра.

Режим SIL и PIL

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

  • Отчет Simulink Generator™

  • Отладчик Simulink

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

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

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

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

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

Похожие темы

Была ли эта тема полезной?