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

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

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

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

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

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

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

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

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

  1. Откройте диалоговое окно Configuration Parameters. На вкладке Modeling и от раздела Setup, выберите Model Settings .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Simulink не обеспечивает правильную проверку на непротиворечивость

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

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

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

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

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

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

Единичный блок преобразования является блоком, который не изменяет значение его входного сигнала. Примеры идентифицируют, преобразовывают блоки, блок 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. Поскольку Outport блокируется в подсистемах 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 Outport, установленных параметр Source of initial output value на Input signal. Эта установка явным образом наследовала начальное значение, которое в этом случае равняется 2.

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

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

Порядок выполнения, влияющий на блок слияния Выход

Порядок выполнения условных подсистем, которые используют классическую инициализацию режима, когда соединено с блоком 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. Для блоков Outport во Включают A и Включают B, устанавливают параметр Output when disabled на held. Упрощенный режим не поддерживает reset для выходных портов условных подсистем, управляющих блоками Слияния.

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

Настраиваемые параметры

Много параметров блоков являются настраиваемыми. Настраиваемый параметр является параметром, значение которого может быть изменено, не перекомпилировав модель (см. Компиляцию Модели для получения дополнительной информации о компиляции модели). Например, параметр усиления блока Gain является настраиваемым. Можно изменить усиление блока, в то время как симуляция запускается. Если параметр не является настраиваемым, и симуляция запускается, управление диалоговым окном, которое устанавливает параметр, отключено.

Когда вы изменяете значение настраиваемого параметра, изменение вступает в силу в начале следующего временного шага.

Состояние

Обычно текущие значения некоторой системы, и следовательно модель, выходные параметры являются функциями предыдущих значений временных переменных. Такие переменные называются состояниями. Вычисление выходных параметров модели из блок-схемы следовательно влечет за собой сохранение значения состояний на шаге текущего времени для использования в вычислении выходных параметров на последующем временном шаге. Эта задача выполняется в процессе моделирования для моделей, которые задают состояния.

Два типа состояний могут произойти в модели Simulink: дискретные и непрерывные состояния. Непрерывные изменения состояния постоянно. Примерами непрерывных состояний является положение и скорость автомобиля. Дискретное состояние является приближением непрерывного состояния, где состояние обновляется (повторно вычисленное) конечное использование (периодический или апериодический) интервалы. Примером дискретного состояния было бы положение автомобиля, показанного на цифровом одометре, где это обновляется каждую секунду в противоположность постоянно. В пределе, как нуль подходов временного интервала дискретного состояния, дискретное состояние становится эквивалентным непрерывному состоянию.

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

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

Блоки, которые задают непрерывные состояния, включают следующие стандартные блоки Simulink:

Общее количество состояний модели является суммой всех состояний, заданных всеми ее блоками. Определение количества состояний в схеме требует, чтобы парсинг схемы определил типы блоков, которые это содержит и затем агрегация количества состояний, заданных каждым экземпляром типа блока, который задает состояния. Эта задача выполняется во время фазы Compilation симуляции.

Simulink не обеспечивает правильную проверку на непротиворечивость

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

Simulink или выдает ложное предупреждение или никакое предупреждение, когда все следующие условия верны:

  • Опция Underspecified initialization detection установлена в Classic.

  • Модель содержит блок Model.

  • В подмодели, на которую ссылается вышеупомянутый блок Model, существует корневой Выходной порт, который управляется непосредственно (или косвенно через виртуальные блоки) условно выполняемой подсистемой. Для остальной части этого отчета об ошибках мы обратимся к блоку Outport, соответствующему условно выполняемой подсистеме выход как исходный блок Outport.

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

Без ссылки модели, т.е. если и источник и целевые блоки Выходного порта должны были быть в той же модели, Simulink выдаст ошибку, если настройки Initial выход и Выход, когда отключено (если применимо) для обоих блоков Выходного порта будут отличаться. Однако в случае ссылки модели, описанной выше, Simulink или выдает ложь, предупреждающую, когда два блока Выходного порта на самом деле имеют те же настройки, или не выдает предупреждения или ошибки вообще, когда они отличаются.