Документация Engee

Интегратор второго порядка

Интегратор второго порядка.

Тип: SecondOrderIntegrator

Путь в библиотеке:

/Basic/Continuous/Integrator, Second-Order

Описание

Блок Интегратор второго порядка выполняет интегрирование второго порядка. Поведение блока описывается следующими уравнениями:

где — входной сигнал. Таким образом, блок представляет динамическую систему с двумя непрерывными состояниями: и .

Эти два состояния имеют математическую связь, является производной от . Чтобы выполнить это соотношение во время моделирования, Engee накладывает различные ограничения на параметры и поведение блока.

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

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

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

Ограничение состояний

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

Ограничение только x

Можно ограничить состояние , установив фдлажок Ограничение состояния x и введя ограничения в соответствующие параметры.

Блок определяет значения состояний следующим образом:

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

  • Когда находится между нижним и верхним пределами, оба состояния соответствуют заданному ОДУ второго порядка.

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

Вы можете повторно инициализировать новым значением в то время, когда достигает предела.

Ограничение только dx/dt

Можно ограничить состояние , установив флажок Ограничение состояния dx/dt и введя ограничения в соответствующие параметры.

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

  • Когда меньше или равно нижнему пределу, значение удерживается на нижнем пределе.

  • Когда находится между нижним и верхним пределами, оба состояния соответствуют заданному ОДУ второго порядка.

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

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

,

,

где

  • — предел (верхний или нижний);

  • — время, когда достигает этого предела;

— значение состояния в момент .

Ограничение обоих состояний

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

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

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

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

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

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

  • Всякий раз, когда достигает своих пределов, результирующее поведение такое же, как описано в разделе Ограничение только x.

  • Всякий раз, когда достигает одного из своих пределов, результирующее поведение включает вычисление с использованием ОДУ первого порядка, когда удерживается на одном из своих пределов. В таких случаях, когда достигает одного из своих пределов, он удерживается на этом пределе, а устанавливается равным нулю.

  • Всякий раз, когда оба достигают своих соответствующих пределов одновременно, поведение состояния переопределяет поведение для поддержания согласованности состояний.

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

Порты

Вход

# u — входной сигнал
скаляр | вектор | матрица

Details

Входной сигнал u интегратора в виде скаляра, вектора или матрицы.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Поддержка комплексных чисел

Нет

Выход

# x — выходной сигнал
скаляр | вектор | матрица

Details

Выходной сигнал состояния x в виде скаляра, вектора или матрицы.

Типы данных

Float64

Поддержка комплексных чисел

Нет

# dx — выходной сигнал
скаляр | вектор | матрица

Details

Выходной сигнал состояния dx в виде скаляра, вектора или матрицы.

Типы данных

Float64

Поддержка комплексных чисел

Нет

Параметры

Параметры

# Начальное значение x — начальное значение состояния x
Скаляр / массив вещественных чисел

Details

Начальное значение состояния x блока.

Значение по умолчанию

0.0

Имя для программного использования

ICX

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

Нет

Вычисляемый

Да

# Ограничение состояния x — предельные значения состояния x
Логический тип

Details

Ограничьте выходные данные блока значением между параметрами Lower limit x и Upper limit x. По умолчанию этот флажок снят.

Значение по умолчанию

false (выключено)

Имя для программного использования

LimitX

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

Нет

Вычисляемый

Нет

# Upper limit x — верхний предел значения состояния x
Скаляр / массив вещественных чисел

Details

Укажите верхний предел состояния x.

Верхний предел для состояния x должен быть строго больше нижнего предела.

Зависимости

Чтобы использовать этот параметр, установите флажок Ограничение состояния x.

Значение по умолчанию

Inf

Имя для программного использования

UpperLimitX

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

Нет

Вычисляемый

Да

# Lower limit x — нижний предел значения состояния x
Скаляр / массив вещественных чисел

Details

Укажите нижний предел состояния x.

Нижний предел для состояния x должен быть строго меньше верхнего предела.

Зависимости

Чтобы использовать этот параметр, установите флажок Ограничение состояния x.

Значение по умолчанию

-Inf

Имя для программного использования

LowerLimitX

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

Нет

Вычисляемый

Да

# Сброс циклического состояния x — включение переноса x
Логический тип

Details

Включите перенос состояний x между значениями параметров Wrapped upper value x и Wrapped Lower value x. Включение состояний переноса устраняет необходимость в обнаружении пересечения нуля, уменьшает количество сбросов решателя, повышает производительность и точность решателя, а также увеличивает время моделирования при моделировании траекторий вращательных и циклических состояний.

Если вы укажете Wrapped upper value x как inf и Wrapped Lower value x как −inf, перенос не произойдет.

Значение по умолчанию

false (выключено)

Имя для программного использования

WrapX

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

Нет

Вычисляемый

Нет

# Wrapped upper value x — верхнее значение для переноса x
Скаляр / массив вещественных чисел

Details

Укажите верхнее значение для переноса x. Верхнее значение для переноса x должно быть больше нижнего значения.

Зависимости

Чтобы использовать этот параметр, установите флажок Сброс циклического состояния x.

Значение по умолчанию

pi

Имя для программного использования

WrappedUpperValueX

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

Нет

Вычисляемый

Да

# Wrapped lower value x — нижнее значение для переноса x
Скаляр / массив вещественных чисел

Details

Укажите нижнее значение для переноса x. Нижнее значение для переноса x должно быть меньше верхнего значения.

Зависимости

Чтобы использовать этот параметр, установите флажок Сброс циклического состояния x.

Значение по умолчанию

-pi

Имя для программного использования

WrappedLowerValueX

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

Нет

Вычисляемый

Да

Параметры

# Начальное значение dx/dt — начальное значение состояния dx/dt
Скаляр / массив вещественных чисел

Details

Начальное значение состояния dx/dt.

Значение по умолчанию

0.0

Имя для программного использования

ICDXDT

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

Нет

Вычисляемый

Да

# Ограничение состояния dx/dt — предельные значения состояния dx/dt
Логический тип

Details

Ограничьте выходные данные блока значением между параметрами Lower limit dx/dt и Upper limit dx/dt. По умолчанию этот флажок снят.

Если установлены предельные значения состояния x, то интервал, определенный параметрами Lower limit dx/dt и Upper limit dx/dt должен содержать ноль.

Значение по умолчанию

false (выключено)

Имя для программного использования

LimitDXDT

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

Нет

Вычисляемый

Нет

# Upper limit dx/dt — верхний предел значения состояния dx/dt
Скаляр / массив вещественных чисел

Details

Укажите верхний предел состояния dx/dt.

Зависимости

Если вы ограничиваете x, то этот параметр должен иметь строго положительное значение.

Чтобы использовать этот параметр, установите флажок Ограничение состояния dx/dt.

Значение по умолчанию

Inf

Имя для программного использования

UpperLimitDXDT

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

Нет

Вычисляемый

Да

# Lower limit dx/dt — нижний предел состояния dx/dt
Скаляр / массив вещественных чисел

Details

Укажите нижний предел состояния dx/dt.

Зависимости

Если вы ограничиваете x, то этот параметр должен иметь строго отрицательное значение.

Чтобы использовать этот параметр, установите флажок Ограничение состояния dx/dt.

Значение по умолчанию

-Inf

Имя для программного использования

LowerLimitDXDT

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

Нет

Вычисляемый

Да