Классический режим инициализации

Когда использовать классическую инициализацию

Режим Initialization управляет, как Simulink® обрабатывает значения инициализации для условно выполняемых подсистем.

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

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

  • Поведение и требования упрощенного режима не удовлетворяют вашим целям моделирования.

  • Работа, вовлеченная в преобразование в упрощенный режим, больше, чем преимущества упрощенного режима. Смотрите Преобразовывают от Классики до Упрощенного Режима Инициализации.

Установите режим инициализации на классику

Установить классический режим инициализации:

  1. Откройте диалоговое окно Configuration Parameters.

  2. В поле поиска введите Underspecified initialization detection.

  3. Из выпадающего списка выберите Classic.

Классические проблемы инициализации

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

  • Единичное преобразование может изменить поведение модели.

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

    • Модель использует классический режим инициализации.

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

  • Противоречивый Вывод с интегратором дискретного времени или блоком s-function

    Условные подсистемы, которые используют классический режим инициализации и чьи выходные подключения к блоку Discrete-Time Integrator или Блоку s-function могут произвести противоречивый вывод.

  • Отсортированный порядок, влияющий на блок слияния Вывод

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

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

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

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

Единичное преобразование может изменить поведение модели

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

  • Модель использует классический режим инициализации.

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

Единичный блок преобразования является блоком, который не изменяет значение его входного сигнала. Примеры идентифицируют, преобразовывают блоки, блок Signal Conversion или блок Gain со значением 1.

В модели ex_identity_transform_cl подсистемы A и B идентичны, но B выходные параметры к блоку Gain, который в свою очередь выходные параметры к блоку Outport.

Когда вы моделируете модель, начальным значением для A (главный сигнал в блоке Scope) является 2, но начальным значением B является 0, даже при том, что подсистемы идентичны.

Если вы обновляете модель, чтобы использовать упрощенный режим инициализации (см. ex_identity_transform_simpl), модель выглядит одинаково. Шаги, требуемые преобразовывать ex_identity_transform_cl в ex_identity_transform_simpl:

  1. Установите Underspecified initialization detection на Simplified.

  2. Поскольку Выходной порт блокируется в подсистемах A и B, установленный параметр Source of initial output value на Input signal.

    Можно также получить то же поведение путем установки параметра Source of initial output value на Dialog и параметра Initial output к 3.

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

Противоречивый Вывод с интегратором дискретного времени или блоком s-function

Условные подсистемы, которые используют классический режим инициализации и чьи выходные подключения к блоку Discrete-Time Integrator или Блоку s-function могут произвести противоречивый вывод.

В модели ex_discrete_time_cl активированная подсистема включает два блока Константа и выходные параметры к блоку Discrete-Time Integrator. Активированная подсистема выходные параметры к двум блокам Отображения.

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

Блок Constant1, который соединяется с блоком Discrete-Time Integrator, выполняется, даже при том, что условная подсистема отключена. Главный блок Display показывает значение 2, который является значением блока Constant1. Блок Constant2 не выполняется, таким образом, нижний блок Display показывает значение 0.

Если вы обновляете модель, чтобы использовать упрощенный режим инициализации (см. ex_discrete_time_simpl), модель выглядит одинаково. Обновленная модель исправляет противоречивую выходную проблему при помощи упрощенного режима. Шаги, требуемые преобразовывать ex_discrete_time_cl в ex_discrete_time_simpl:

  1. Установите Underspecified initialization detection на Simplified.

  2. Для блоков Out1 и Out2 Выходного порта, установленных параметр Source of initial output value на Input signal. Эта установка явным образом наследовала начальное значение, которое в этом случае равняется 2.

    Можно также получить то же поведение путем установки параметра Source of initial output value на Dialog и параметра Initial output к 2.

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

Отсортированный порядок, влияющий на блок слияния Вывод

Отсортированный порядок условных подсистем, которые используют классическую инициализацию режима, когда соединено с блоком Merge, может влиять на вывод того блока Merge. Изменение в порядке выполнения блока может привести к неожиданным результатам. Поведение зависит от того, как вы устанавливаете параметр Output When Disabled.

Модель ex_basic_merge_sorted_order_1_cl имеет две идентичных активированных подсистемы (Включите A и Включите B), что подключение к блоку Merge. Когда вы моделируете модель, красные числа показывают отсортированный порядок выполнения блоков.

Когда вы моделируете модель, блок Scope похож на следующее:

Модель ex_basic_merge_sorted_order_2_cl совпадает с ex_merge_sorted_1_cl, за исключением того, что порядок выполнения блока является реверсом порядка выполнения по умолчанию. Изменить порядок выполнения:

  1. Откройте диалоговое окно Properties для Разрешения подсистемы и установите параметр Priority на 2.

  2. Установите Priority Разрешения B подсистема к 1.

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

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

Чтобы обновить модели, чтобы использовать упрощенный режим инициализации (см. ex_basic_merge_sorted_order_1_simpl и ex_basic_merge_sorted_order_2_simpl):

  1. Установите Underspecified initialization detection на Simplified.

Параметр Initial Output блока Merge является пустой матрицей, [], по умолчанию. Следовательно, начальное выходное значение установлено в начальное значение по умолчанию для этого типа данных, который является 0. Для получения информации о начальном значении по умолчанию смотрите Значения сигналов Инициализации. Когда вы моделируете каждую упрощенную модель режима, обе модели приводят к тем же результатам.

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

Модель ex_merge_sorted_1_cl имеет две активированных подсистемы (Включите A и Включите B), что подключение к блоку Merge. Когда вы моделируете модель, красные числа показывают отсортированный порядок выполнения блоков.

Когда вы моделируете модель, блок Scope похож на следующее:

Модель ex_merge_sorted_2_cl совпадает с ex_merge_sorted_1_cl, за исключением того, что порядок выполнения блока является реверсом порядка выполнения по умолчанию. Изменить порядок выполнения:

  1. Откройте диалоговое окно Properties для Разрешения подсистемы и установите параметр Priority на 2.

  2. Установите Priority Разрешения B подсистема к 1.

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

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

Чтобы обновить модели, чтобы использовать упрощенный режим инициализации (см. ex_merge_sorted_1_simpl и ex_merge_sorted_2_simpl):

  1. Установите Underspecified initialization detection на Simplified.

  2. Для блоков Выходного порта во Включают A и Включают B, устанавливают параметр Output when disabled на held. Упрощенный режим не поддерживает reset для выходных портов условных подсистем, управляющих блоками Слияния.

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

Похожие темы