В общем случае переход уровня существует между двумя блоками, если их шаги расчета отличаются, то есть, если любой из их компонентов вектора шага расчета отличается. Исключения:
Блоки, которые выводят постоянное значение, никогда не имеют переход уровня ни с каким другим уровнем.
(Черное) время непрерывной выборки и самый быстрый дискретный уровень (красный) никогда, не имеет переход уровня, если вы используете решатель фиксированного шага.
Переменный шаг расчета и зафиксированный на мелком шаге не имеет перехода уровня.
Можно разрешить переходы уровня вручную путем вставки блоков перехода уровня и при помощи двух диагностических инструментов. Для однозадачного режима выполнения диагностика Single task rate transition позволяет вам устанавливать уровень Simulink® сообщения перехода уровня. Диагностика Multitask rate transition выполняет ту же функцию для многозадачного режима выполнения. Эти режимы выполнения непосредственно относятся к типу решателя в использовании: решатели переменного шага всегда являются однозадачностью; решатели фиксированного шага могут быть явным образом установлены как однозадачность или многозадачность.
Simulink может обнаружить переходы уровня, которым не соответствуют, в многозадачной модели во время схемы обновления и автоматически вставить блоки Rate Transition, чтобы обработать их. Чтобы включить это, в панели Solver параметров конфигурации модели, выбирают Automatically handle rate transition for data transfer. Настройка по умолчанию для этой опции выключена. Когда вы выбираете эту опцию:
Simulink обрабатывает переходы между периодическими шагами расчета и асинхронными задачами.
Simulink вставляет скрытые блоки Перехода Уровня в блок-схему.
Автоматически вставленные блоки Rate Transition действуют в защищенном режиме для периодических задач и асинхронных задач. Вы не можете изменить это поведение. Для периодических задач автоматически вставленные блоки Перехода Уровня действуют с уровнем детерминизма, заданного параметром Deterministic data transfer в панели Solver. Настройкой по умолчанию является Whenever possible
, который включает детерминизм для передач данных между периодическими шагами расчета, которые связаны целым числом несколько. Для получения дополнительной информации смотрите Детерминированную передачу данных. Чтобы использовать другие режимы, необходимо вставить блоки Rate Transition и установить их режимы вручную.
Когда вы выбираете опцию Automatically handle rate transition for data transfer, Simulink вставляет блоки Перехода Уровня в пути, которые не соответствовали уровням перехода. Эти блоки скрыты по умолчанию. Чтобы визуализировать вставленные блоки, обновите схему. Метки значка появляются в модели и указывают, где Simulink вставил блоки Перехода Уровня во время фазы компиляции. Например, в этой модели, три блока Перехода Уровня были вставлены между двумя блоками Sine wave и Мультиплексором и Интегратором, когда модель скомпилировала. ZOH и метки значка DbBuf указывают на эти блоки.
Можно показать или скрыть метки значка. На вкладке Debug выберите Information Overlays> Automatic Rate Transitions.
Чтобы сконфигурировать скрытые блоки Перехода Уровня, щелкните правой кнопкой мыши по значку, помечают и нажимают на Insert rate transition block, чтобы сделать блок видимым.
Когда вы делаете скрытые блоки Перехода Уровня видимыми:
Вы видите тип вставленного блока Rate Transition, а также местоположение в модель.
Можно установить Initial Conditions этих блоков.
Можно изменить параметры блоков шага расчета и передача данных.
Подтвердите изменения в своей модели путем обновления схемы.
Отображение вставленных блоков Перехода Уровня не совместимо с моделями экспорта функций.
Чтобы узнать больше о типах блоков Перехода Уровня, смотрите Rate Transition.
Примечание
Предположим, что вы автоматически вставляете блоки перехода уровня и существует виртуальный блок, задающий шаг расчета в восходящем направлении блока, который вы вставляете. Вы не можете кликнуть по значку вставленного блока, чтобы сконфигурировать блок и сделать его видимым, потому что шаг расчета на виртуальном блоке вызывает переход уровня также. В этом случае вручную вставьте блок перехода уровня перед виртуальным блоком. Чтобы узнать больше о виртуальных блоках, смотрите Невиртуальные и Виртуальные Блоки.