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

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

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

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

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

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

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

  • Аппроксимирует низкоприоритетные цели максимально тесно (в результате, некоторым низкоприоритетным целям можно удовлетворить точно, другие аппроксимированы),

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

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

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

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

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

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

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

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

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

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

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

Предложенный рабочий процесс

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

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

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

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

Похожие темы