Модель-ссылка требования и ограничения

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

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

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

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

  • Модель содержит 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
Level-1 S-функцию MATLABНе поддерживаетсяНе поддерживается
Level-2 S-функцию MATLABПоддержанныйПоддерживается - требуется файл TLC
Рукописная функция MEX S на C

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

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

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

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

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

Ссылка на режим Accelerator Моделей

Для моделей, на которые ссылаются в режиме Accelerator, которые содержат S-функцию, которая требует инкрустации с использованием файла Target Language Compiler, 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-Functions in Режим normal mode Models.

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

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

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

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

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

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

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

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

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

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

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

InitFcn коллбэк

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автобусы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Похожие темы