Моделируйте иерархии модели

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

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

Моделируйте топ-модель

Топ-модель в иерархии модели выполняет тот же способ, которым выполняются модели без моделей - ссылок. Топ-модель поддерживает все режимы симуляции Simulink®. Чтобы ускорить выполнение топ-модели в иерархии модели, можно использовать акселератор Simulink или быстрый режим Accelerator. Для получения информации о режиме Accelerator смотрите Ускорение. Для получения информации о быстром режиме Accelerator смотрите, Ускоряют, Совершенствовали, и Тестовая Гибридная Динамическая система на Хосте - компьютере при помощи Системного Конечного файла RSim (Simulink Coder).

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

Симуляция модели, на которую ссылаются,

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

  • Нормальный

  • Акселератор

  • Программное обеспечение в цикле (SIL)

  • Процессор в цикле (PIL)

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

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

Задайте режим симуляции для моделей, на которые ссылаются,

Блок Model для каждого экземпляра модели, на которую ссылаются, управляет режимом симуляции экземпляра. Установить или изменить режим симуляции для модели, на которую ссылаются:

  1. Доступ к диалоговому окну параметров блоков для блока Model.

  2. Установите параметр режима Simulation.

  3. Нажмите OK или Apply.

Сравнение режимов симуляции для моделей, на которые ссылаются,

Можно использовать быстрый режим Accelerator для топ-модели в иерархии модели, но не для блоков Model. Можно установить модели, на которые ссылаются, на быстрый режим Accelerator, но режим симуляции топ-модели, блока родительской модели, или сослался на образцовые переопределения блока Model режим симуляции модели, на который ссылаются.

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

Совет

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

Для получения дополнительной информации о выполнении Режима Accelerator модели, на которую ссылаются, смотрите Цели Симуляции Модели - ссылки.

Режим симуляцииОписаниеКогда использовать
НормальныйВыполняет модель, на которую ссылаются, путем интерпретации.

По сравнению с другими режимами симуляции, режимом normal mode:

  • Выполняется медленнее.

  • Не требует никакой задержки генерации кода или компиляции.

  • Работы с большим количеством Simulink и инструментов Stateflow®, поддерживая инструменты, такие как:

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

    • Анализ покрытия модели.

    • Stateflow, отлаживающий и анимация.

  • Обеспечивает более точный анализ линеаризации.

  • Поддержки больше S-функций, чем режим Accelerator.

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

Акселератор

Выполняет модель, на которую ссылаются, путем создания файла MEX (цель симуляции) для модели, на которую ссылаются, затем выполнения файла MEX.

Для получения дополнительной информации смотрите Цели Симуляции Модели - ссылки.

  • Выполняется быстрее, чем режим normal mode.

  • Занимает время для компиляции кода и генерации кода.

  • Не полностью поддерживает некоторые инструменты Simulink, такие как Покрытие модели и Отладчик Simulink.

  • Блоки Осциллографа поддержек, но требует использования менеджера Signal & Scope и добавления тестовых точек к сигналам. Добавление или удаление тестовой точки требуют восстановления цели SIM для модели.

СИЛ

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

Программное обеспечение Requires Embedded Coder®. Для получения дополнительной информации см. SIL и Ограничения PIL (Embedded Coder) и Числовая Эквивалентность, Тестирующая (Embedded Coder).

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

  • Поддерживает повторное использование тестовых обвязок для исходной модели со сгенерированным исходным кодом.

Режим SIL обеспечивает удобную альтернативу PIL симуляции, когда целевой компьютер не доступен.

PIL

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

Программное обеспечение Requires Embedded Coder. Для получения дополнительной информации см. SIL и Ограничения PIL (Embedded Coder) и Числовая Эквивалентность, Тестирующая (Embedded Coder).

  • Проверяет объектный код развертывания на целевых процессорах, не изменяя исходную модель.

  • Поддерживает повторное использование тестовых обвязок для исходной модели со сгенерированным исходным кодом.

Примечание

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

Требования установки параметра конфигурации и поведение могут отличаться в зависимости от режима симуляции. Для получения дополнительной информации смотрите Ускоренную Симуляцию, и Генерация кода Изменяет Настройки и Диагностику, Которые Проигнорированы в Режиме Accelerator.

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

  • Array bounds exceeded (ArrayBoundsChecking)

  • Inf or NaN block output (SignalInfNanChecking)

  • Simulation range checking (SignalRangeChecking)

  • Division by singular matrix (CheckMatrixSingularityMsg)

  • Wrap on overflow (IntegerOverflowMsg)

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

  • Detect read before write (ReadBeforeWriteMsg)

  • Detect write after read (WriteAfterReadMsg)

  • Detect write after write (WriteAfterWriteMsg)

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

  1. В Редакторе Simulink выберите Analysis> Model Advisor.

  2. Выберите By Task.

  3. Осуществите проверку Check diagnostic settings ignored during accelerated model reference simulation.

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

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

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

Режим симуляции родительской моделиРежимы симуляции модели, на которые ссылаются,
Нормальный
  • Модели, на которые ссылаются, могут использовать нормальный, акселератор, SIL или режим PIL.

  • Если каждая модель, которая превосходит модель, на которую ссылаются, в иерархии модели также, выполняется в режиме normal mode, который модель, на которую ссылаются, может выполнить в режиме normal mode.

Акселератор
  • Все зависимые модели должны также выполниться в режиме Accelerator.

  • Когда модель режима normal mode зависима от модели режима Accelerator, Simulink возвращает предупреждение и временно заменяет спецификацию режима normal mode.

  • Когда модель SIL-режима или PIL-режима зависима от модели режима Accelerator, которая не является топ-моделью, ошибка происходит.

СИЛ
  • Если их режимы симуляции нормальны, акселератор или SIL, все зависимые модели также выполняются в режиме SIL. В противном случае ошибка происходит. Смотрите Поведение Переопределения Режима Симуляции в Иерархии Модели - ссылки (Embedded Coder).

  • Блоки Многоуровневой модели, запускающиеся наверху иерархии модели, могут выполниться в режиме SIL. Однако, если профилирование покрытия кода или выполнения кода включено, только один блок Model может выполниться за один раз в режиме SIL.

PIL
  • Если их режимы симуляции нормальны, акселератор или PIL, все зависимые модели также выполняются в режиме PIL. В противном случае ошибка происходит. Смотрите Поведение Переопределения Режима Симуляции в Иерархии Модели - ссылки (Embedded Coder).

  • Блоки Многоуровневой модели, запускающиеся наверху иерархии модели, могут выполниться в режиме PIL. Однако, если профилирование покрытия кода или выполнения кода включено, только один блок Model может выполниться за один раз в режиме PIL.

Моделируйте условные модели, на которые ссылаются,

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

Инициированные, Enabled, и инициированные и Enabled модели

Инициированные, активированные, и инициированные и включенные модели требуют, чтобы внешний вход управлял Триггером или Включил блоки. В панели Signal Attributes диалогового окна блока Trigger или Enable задайте значения для типа данных сигнала, размерности и шага расчета.

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

  • Используйте последний ввод данных для триггера или включите вход. Для инициированной и активированной модели используйте последний ввод данных для триггерного входа.

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

Вы можете данные логов, чтобы определить, какой сигнал заставил модель запускаться. Для блока Trigger или Enable, в панели Main диалогового окна Block Parameters, выбирают Show output port.

Модели вызова функции

Когда вы моделируете модель вызова функции, она моделирует как будто вызов функции на самом быстром уровне для системных дисков блок вызова функции. Можно также сконфигурировать модель, чтобы вычислить вывод в конкретные моменты времени с помощью решателя переменного шага (см. Выборки, чтобы Экспортировать для Решателей Переменного Шага).

Регистрируйте сигналы в моделях, на которые ссылаются,

В модели, на которую ссылаются можно регистрировать любой сигнал, сконфигурированный для журналирования сигнала. Используйте Селектор Журналирования Сигнала, чтобы выбрать подмножество или все сигналы, сконфигурированные для сигнала, входящего в систему иерархия модели. Для получения дополнительной информации см. Модели с Образцовой Ссылкой: Переопределение Журналирования Сигнала Настроек.

Можно использовать Инспектора Данных моделирования, чтобы просмотреть и анализировать зарегистрированные модели сигналов, на которые ссылаются. Можно просмотреть сигналы на нескольких графиках, изменении масштаба, и использовать Data Cursor, чтобы понять и оценить данные. Кроме того, можно сравнить данные сигнала от нескольких симуляций. Для примера просмотра сигналов с моделями, на которые ссылаются смотрите Сигналы Просмотра в Экземплярах Модели - ссылки.

Установите диагностику и отладьте иерархии модели

Можно включить или подавить предупреждающие сообщения о несоответствиях между блоком Model и его моделью, на которую ссылаются, путем установки диагностики на Diagnostics Pane: Model Referencing.

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

Индексируйте информационное распространение

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

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

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

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

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

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

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

Похожие темы