Моделируйте факторы и ограничения SLICER

Когда вы работаете со слайсером модели, примите во внимание следующее поведение и ограничения:

Компиляция модели

Когда вы открываете Model Slice Manager, модель компилируется. Чтобы избежать ошибки компиляции, прежде чем открывать Model Slice Manager, убедитесь, что модель является компилируемой.

Подсветка модели и редактирование моделей

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

Автономная генерация нарезанной модели

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

  • Прямое распространение (включая двунаправленные) зависимостей

  • Ограничения

  • Точки исключения

Для генерации нарезанной модели требуется рабочая папка с возможностью записи в MATLAB®.

Факторы о нарезанной модели

Когда вы генерируете нарезанную модель из подсветки модели, упрощение вашей модели может изменить поведение симуляции или предотвратить компиляцию нарезанной модели. Для примера:

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

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

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

  • Если в исходной модели используется сигнал шины, убедитесь, что срезанные сигналы модели инициализированы правильно. Прежде чем вы создадите нарезанную модель, рассмотрите включение явной копии сигнала шины в исходную модель. Например, можно включать блок Signal Conversion с Output опцией, установленной на Signal Copy.

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

Факторы об атрибутах портов

Можно использовать блоки, которые Slicer модели удаляет во время упрощения модели, чтобы определить скомпилированные атрибуты, такие как унаследованные шаги расчета, размерности сигнала и типы данных. Model Slicer может изменять атрибуты разрезанного порта модели во время упрощения модели, чтобы разрешить недоопределенные атрибуты порта модели. Если Model Slicer не может разрешить эти несоответствия, можно разрешить некоторые несоответствия атрибута порта модели путем:

  • Явное определение атрибутов в исходной модели вместо опоры на правила распространения.

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

  • Не встраивайте блоки модели, которые отвечают за атрибуты порта модели, в нарезанную модель. Для получения дополнительной информации об элементах модели, которые можно встраивать в нарезанную модель, смотрите Inline Content Options.

Из-за того, как Simulink обрабатывает модели-ссылки, вы не можете одновременно скомпилировать две модели, которые обе содержат модель-ссылку к одной и той же модели. Когда вы генерируете нарезанную модель, Slicer модели входит в режим Slicer Locked (for attribute checking), если эти условия верны:

  • Родительская модель содержит ссылочную модель.

  • Подсвеченный фрагмент родительской модели содержит ссылочную модель.

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

    • Вы принимаете решение не строить блоки модели в Inline content options панели Model Slicer options.

    • Срез модели не может входить в ссылочную модель. Для получения дополнительной информации об элементах модели, которые не могут быть встроены в Model Slicer, смотрите Inline Content Options.

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

Факторы о временном окне симуляции

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

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

  • Время остановки для временного окна симуляции не может быть больше общего времени симуляции.

Упрощения нарезанной модели на основе симуляции

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

Эта таблица описывает блоки, которые Slicer модели может заменить во время упрощения модели.

Блок в исходной моделиУпрощение

Выключатель

Мультипортовый переключатель

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

Включенная подсистема или модель

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

Если подсистема никогда не включена, замените подсистему на постоянное значение, заданное начальным условием.

Триггируемая подсистема или модель

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

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

Enabled и Triggered подсистема или модель

Если подсистема выполняется всегда, преобразуйте в стандартную подсистему или модель

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

Слияние

Если активен только один входной порт, слияние заменяется сигналом, соединяющим активный вход с выходным блоком.

Если

Если действие

Если активна только одна подсистема действий, преобразуйте в стандартную подсистему или модель и удалите блок If.

Корпус переключателя

Действие случая Switch

Если активна только одна подсистема действий, преобразуйте ее в стандартную подсистему или модель и удалите блок Switch Case.

Логический оператор

Замените на константу, когда блок всегда выводит true или всегда выводит false.

Замените входной сигнал на константу, если входной сигнал всегда равен true или всегда равен false.

Начальные точки не поддерживаются

Model Slicer не поддерживает эти элементы модели как начальные точки:

  • Виртуальные блоки, кроме подсистемных Inport и Outport блоков

  • Выходные сигналы от виртуальных блоков, которые не являются подсистемами

Ограничения поддержки Slicer для функций программного обеспечения Simulink

Model Slicer не поддерживает следующие функции:

  • Массивы шин

  • Анализ Simulink Test™ тестовых обвязок

  • Модели, которые содержат Simscape™ блоков физического моделирования

  • Модели, которые содержат алгебраические циклы

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

  • Срезание компонентов подсистем и ссылочных моделей, которые имеют несколько скоростей.

  • Основанная на компонентах генерация срезов Function call инициировала подсистемы и блоки модели.

Модели Ограничения Поддержки Слайсера для Симуляции Шагового

При использовании Model Slicer с Simulation Stepper подсветка среза после шага назад может не ограничиваться одним шагом. На подсветку может повлиять Simulation Stepping Options > интервал между сохраненными обратными шагами. Для получения дополнительной информации смотрите Интервал между сохраненными обратными шагами.

Модели ограничений поддержки Slicer для блоков Simulink

В таблице перечислены ограничения поддержки Model Slicer для блоков Simulink.

БлокОграничение

For Each Subsystem блок

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

Function Caller блок

Model Slicer не поддерживает блоки Function Caller.

MATLAB Function блок

Model Slicer принимает, что любой выход зависит от всех входов в восходящем направлении, и любой вход влияет на все выходы в нисходящем направлении.

Merge блок

Если вы генерируете срез при помощи временного окна симуляции, Merge блоки удаляются в автономной модели, если выполняется только один путь.

Model блок

Model Slicer не разрешает зависимости данных, сгенерированные памятью хранилища глобальных данных в блоках Model с Simulation mode установленным значением Accelerator.

Model Slicer не поддерживает блоки Inport корневого уровня вызова функции. Для получения дополнительной информации смотрите Экспорт функций Моделей.

Model Slicer не анализирует содержимое в ссылке на эталонные защищенные модели от третьих сторон. Когда вы срезаете модель, которая содержит защищенную модель-ссылку, Slicer модели включает всю модель-ссылку в нарезанную модель.

Resettable Subsystem блок

Model Slicer не поддерживает блоки Resettable Subsystem.

S-function блок

Model Slicer принимает, что любой выход зависит от всех входов в восходящем направлении, и любой вход влияет на все выходы в нисходящем направлении.

Model Slicer не определяет зависимости, которые являются результатом доступа S-function блока к информации модели, зависящей от временного окна симуляции.

State Reader блок

Model Slicer не поддерживает блоки State Reader.

State Writer блок

Model Slicer не поддерживает блоки State Writer.

Observer блокModel Slicer не поддерживает блоки Observer.

Модели ограничений поддержки среза для Stateflow

  • Когда вы подсвечиваете модели, содержащие Stateflow® таблица переходов графика или состояния, Model Slicer принимает, что любой выход из блока Chart или State Transition Table блока зависит от всех входов в блок Chart или State Transition Table блок.

  • Когда вы срезаете модель с диаграммой Stateflow или таблицей переходов состояний, Model Slicer не упрощает график или таблицу. График или таблица полностью включаются в нарезанную модель.

  • Если вы не задаете Временное окно симуляции, когда подсвечиваете функциональные зависимости в диаграмме Stateflow или таблице переходов состояний, то Model Slicer принимает, что все элементы графика или таблицы активны. Model Slicer подсвечивает все содержимое таких графиков и таблиц.

  • Когда вы подсвечиваете функциональные зависимости в диаграмме Stateflow или таблице переходов состояний для определенного временного окна симуляции, Model Slicer не подсвечивает только состояния и переходы, которые влияют на выбранную начальную точку. Вместо этого в Model Slicer подсвечиваются элементы, которые активны в заданном временном окне.

  • Model Slicer не определяет зависимости между графическими функциями Stateflow и вызовами функций в других диаграммах Stateflow.

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

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

  • Model Slicer не поддерживает:

    • Блоки MATLAB function

    • Функции Simulink

    • Truth Table блоки

    • Машинно-родительские данные или события в Stateflow.

    .

Основанные на действии факторы о сокращении времени для Stateflow

Как измерено Подсостояние 'Executed Decision Coverage', активность состояния относится к ним во время действий/выхода:

  • Вход в состояние не является действием.

  • Активный временной интервал для состояния или перехода включает момент, в который выбранное состояние выходит, и последующее состояние введено.

  • Косвенные выходы из состояния или перехода не представляют собой деятельность. Для примера, если состояние C выходом, потому что его родительское состояние P выходом, состояние C не считается активным.

Для получения дополнительной информации о Decision Coverage для диаграмм Stateflow, смотрите Decision Coverage для Диаграммы Stateflow (Simulink Coverage).

Когда вы подсвечиваете активные временные интервалы при помощи основанного на действии сокращения времени, можно выбирать состояния и переходы только как ограничения действия. Вы не можете выбрать эти объекты Stateflow как ограничения:

  • Параллельные состояния

  • Переходы без условий, таких как немеченые переходы, которые не получают Decision Coverage

  • Состояния или переходы в связанных с библиотекой графиках

  • Состояния XOR без братьев и сестер. Для примера, если P состояний имеет только один дочерний C состояния, вы не можете выбрать C состояния как ограничения деятельности, потому что P состояния не получает Decision Coverage для выполненного подсостояния

См. также

|