exponenta event banner

Эталонные требования и ограничения модели

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

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

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

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

  • Модель содержит блоки «В файл».

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

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

    • Экспортированные графические функции Stateflow

    • Машинно-зависимые данные

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

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

    • Simulink ® заставляет быть функцией

    • Вызывается по широкому сигналу

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

Маски модели

В ссылочной модели можно использовать маскированные блоки. Также можно маскировать ссылочную модель (см. раздел Создание и привязка маскированной модели).

Для успешного использования масок необходимо учитывать следующие требования и ограничения:

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

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

    • Рабочее пространство, определяемое ссылочной моделью

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

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

S-функции в ссылочных моделях

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

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

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

Поддерживается - может быть встроен в файл TLC
Построитель S-функцийПоддержанныйПоддержанный
Устаревший инструмент кодаПоддержанныйПоддержанный

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

Рассмотрение S-функцииТребования и ограничения
Пример наследования времени

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

Ссылочные модели режима ускорителя

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

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

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

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

    1. Создайте копии ссылочной модели.

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

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

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

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

Ссылочные модели нормального режима

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

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

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

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

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

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

ЭлементТребования и ограничения
Перейти к блокам и из блоков

Блоки Перейти к (Goto) и Из (From) не могут пересекать границы привязки модели.

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

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

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

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

InitFcn отзыв

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

Печать ссылочных моделей

Печать ссылочной модели из верхней модели невозможна.

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

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

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

  • Принять индексы (например, блок «Назначение»)

  • Создание индексов (например, блока для итератора)

Примером блока, принимающего индексы, является блок назначения. Примером блока, создающего индексы, является блок для итератора.

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

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

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

Асинхронные скорости

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

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

  • Блок ввода корневого уровня выдает сигнал функционального вызова. См. Спецификация асинхронных задач (Simulink Coder).

Ввод или вывод определяемого пользователем типа данных

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

Автобусы

При использовании виртуальной шины в качестве входа или выхода для ссылочной модели шина не может содержать сигнальный элемент переменного размера. См. раздел Использование шин в интерфейсах модели.

Сигнальные объекты

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

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

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

Непрерывное время выборки не может быть распространено на блок модели, который не зависит от времени выборки.

Время выборки и решатели

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

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

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

Настраиваемость параметров

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

Требования и ограничения по созданию кода

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

Связанные темы