exponenta event banner

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

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

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

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

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

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

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

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

Для установки классического режима инициализации:

  1. Откройте диалоговое окно «Параметры конфигурации». На вкладке Моделирование (Modeling) и в разделе Настройка (Setup) выберите Параметры модели (Model Settings).

  2. В поле поиска введите Обнаружение неполной инициализации.

  3. В раскрывающемся списке выберите Classic.

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

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

  • Преобразование идентификаторов может изменить поведение модели.

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

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

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

  • Несогласованный выход с дискретно-временным интегратором или S-функциональным блоком

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

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

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

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

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

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

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

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

Преобразование идентификаторов может изменить поведение модели

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

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

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

Блок преобразования идентичности - это блок, который не изменяет значение своего входного сигнала. Примерами идентифицирующих блоков преобразования являются блок преобразования сигнала или блок усиления со значением 1.

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

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

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

  1. Установить для обнаружения недостаточно указанной инициализации значение Simplified.

  2. Для блоков Outport в подсистемах A и B установите для параметра Source of initial output value значение Input signal.

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

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

Несогласованный выход с дискретно-временным интегратором или S-функциональным блоком

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

В ex_discrete_time_cl подсистема enabled включает в себя два блока Constant и выходы в блок дискретно-временного интегратора. Подсистема enabled выводит два блока Display.

При моделировании модели два экранных блока показывают разные значения.

Блок Constant1, подключенный к блоку интегратора дискретного времени, выполняется, даже если условная подсистема отключена. Верхний блок отображения показывает значение 2, которое является значением Constant1 блока. Блок Constant2 не выполняется, поэтому нижний блок Display показывает значение 0.

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

  1. Установить для обнаружения недостаточно указанной инициализации значение Simplified.

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

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

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

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

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

ex_basic_merge_sorted_order_1_cl модель имеет две идентичные разрешенные подсистемы (Enable A и Enable B), которые подключаются к блоку слияния. При моделировании модели красные числа показывают сортированный порядок выполнения блоков.

При моделировании модели блок Область (Scope) выглядит следующим образом.

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

  1. Откройте диалоговое окно «Свойства» для подсистемы Enable A и задайте для параметра Priority значение 2.

  2. Установите приоритет подсистемы Enable B в значение 1.

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

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

Обновление моделей для использования упрощенного режима инициализации (см. ex_basic_merge_sorted_order_1_simpl и ex_basic_merge_sorted_order_2_simpl):

  1. Установить для обнаружения недостаточно указанной инициализации значение Simplified.

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

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

ex_merge_sorted_1_cl модель имеет две подсистемы (Enable A и Enable B), которые подключаются к блоку слияния. При моделировании модели красные числа показывают сортированный порядок выполнения блоков.

При моделировании модели блок Область (Scope) выглядит следующим образом.

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

  1. Откройте диалоговое окно «Свойства» для подсистемы Enable A и задайте для параметра Priority значение 2.

  2. Установите приоритет подсистемы Enable B в значение 1.

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

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

Обновление моделей для использования упрощенного режима инициализации (см. ex_merge_sorted_1_simpl и ex_merge_sorted_2_simpl):

  1. Установить для обнаружения недостаточно указанной инициализации значение Simplified.

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

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

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

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

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

Государство

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

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

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

Ниже приведено графическое представление блока, имеющего состояния:

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

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

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

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

Simulink выдает ложное предупреждение или не выдает предупреждение при выполнении всех следующих условий:

  • Параметр Обнаружение недозаданной инициализации имеет значение Classic.

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

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

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

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