Инициализация переменной уровня блока

Инициализация основных переменных для симуляции модели

В начале симуляции (t = 0) решатель вычисляет начальные условия, чтобы определить начальную точку симуляции, как описано в Initial Conditions Computation. Поиск решения означает нахождение начальных значений для всех системных переменных. Можно повлиять на начальные условия, расчет по block-level variable initialization, то есть путем определения приоритета и целевых начальных значений для определенных переменных на вкладке Variables диалоговых окон аналогичного блока.

Значения, которые вы задаете во время инициализации переменной уровня блоков, являются не фактическими значениями соответствующих переменных, а их целевыми значениями в начале симуляции (t = 0). В зависимости от результатов решения, некоторые из этих целей могут быть или не могут быть удовлетворены.

Решатель пытается найти решение, которое:

  • В точности удовлетворяет всем уравнениям модели

  • В точности удовлетворяет всем приоритетным целям

  • Максимально близко аппроксимирует низкоприоритетные цели (в результате некоторые из низкоприоритетных целей могут быть точно удовлетворены, другие аппроксимированы)

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

Если вы установили флажок Start simulation from steady state в Solver диалогового окна блока, решатель пытается найти устойчивое состояние (когда системные переменные больше не изменяются со временем). Если установившееся решение успешно, то найденное состояние является некоторым установившимся состоянием (в пределах допуска), но не обязательно состоянием, ожидаемым от заданных начальных условий. Другими словами, если симуляция начинается с устойчивого состояния, даже высокоприоритетные переменные цели могут больше не удовлетворяться в начале симуляции. Однако, если модель имеет более одного устойчивого состояния, заданные вами переменные цели могут повлиять на то, какое установившееся решение выбрано решателем.

После того, как вы инициализируете основные переменные и перед симуляцией модели, можно открыть Средство Просмотра, чтобы увидеть, какая из переменных целей была удовлетворена. Variable Viewer отображает фактические начальные значения переменных, полученных в результате решения, наряду с переменными целевыми значениями, приоритетом и другой информацией о переменной. Для получения дополнительной информации см. раздел «Средство просмотра переменных».

Приоритет инициализации переменной

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

  • Нет - Если переменная имеет приоритет нет, алгоритм инициализации начинается с начального значения для этой переменной, но не запоминает это значение, поскольку находит решение для системы уравнений. Решатель не пытается удовлетворить какое-либо конкретное начальное значение для переменной без приоритета.

  • Низкий - Если переменная имеет низкий приоритет, начальное значение становится целью для алгоритма, и алгоритм пытается оставаться рядом с целью. Решатель пытается максимально приблизить целевое значение этой переменной при поиске решения. В зависимости от результатов решения для высокоприоритетных переменных, некоторые из низкоприоритетных целей могут быть точно достигнуты, другие аппроксимированы.

  • Высокий - Если переменная имеет высокий приоритет, начальное значение становится целью для алгоритма, и алгоритм пытается точно достичь цели. Решатель пытается найти решение, где фактические начальные значения всех высокоприоритетных переменных в точности удовлетворяют их целевым значениям.

Приоритет инициализации по умолчанию, начальное значение и модуль для каждой из основных переменных получены из базового файла Simscape™ компонента. Для каждого отдельного блока в модели можно переопределить эти настройки по умолчанию, откроя вкладку Variables диалогового окна блока, установив флажок Override рядом с именем переменной и задав свои собственные значения для этой переменной.

Когда вы задаете слишком много высокоприоритетных целей для системных переменных, можно переопределить вашу модель. В этом случае решатель может не найти решение, которое точно удовлетворяет всем высокоприоритетным целям или даже не найти решение вообще. Пример того, как можно справиться с сверхспецификацией при помощи Средство Просмотра и изменении приоритета переменной и целевых объектов, см. в разделе Инициализация переменных для системы Mass-Spring-Damper.

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

Предлагаемый рабочий процесс

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

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

  3. Если инициализация не удаётся, или вы не удовлетворены результатами, итерация путем изменения целевых значений основной переменной и приоритета, затем обновления средства просмотра.

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

Похожие темы