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

Integrator

Интегрирование входного сигнала.

integrator

Описание

Блок Integrator вычисляет значение интеграла своего входного сигнала по времени.

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

где:

  • — входной сигнал.

  • — выходной сигнал.

  • — состояние.

  • — начальное состояние .

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

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

Для создания полностью дискретной системы рекомендуется использовать блок Discrete-Time Integrator.

Определение начальных состояний

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

  • Чтобы определить начальные состояния в качестве параметра блока, укажите Initial condition source как internal и введите значение в поле Initial condition.

  • Чтобы получить начальные состояния из внешнего источника, укажите Initial condition source как external. Дополнительный входной порт появляется под портом ввода.

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

Ограничение интегратора

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

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

  • Когда интеграл меньше или равен Lower saturation limit, выходной сигнал удерживается на Lower saturation limit.

  • Когда интеграл находится между Lower saturation limit и Upper saturation limit, на выходе получается интеграл.

  • Когда интеграл больше или равен Upper saturation limit, выходной сигнал удерживается на Upper saturation limit.

Чтобы сгенерировать сигнал, указывающий, когда состояние ограничено, установите флажок Show saturation port. Порт насыщения появляется под портом вывода блока.

Сигнал имеет одно из трех значений:

  • 1 указывает на то, что применяется верхний предел.

  • 0 указывает на то, что интеграл не ограничен.

  • -1 указывает на то, что применяется нижний предел.

При установке этого флажка блок имеет три пересечения нуля:

  • Для определения, когда он входит в верхний предел насыщенности.

  • Для определения, когда он входит в нижний предел насыщенности.

  • Для определения, когда он выходит из насыщенности.

Сброс циклических состояний

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

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

Одним из подходов к преодолению этого недостатка является сброс углового состояния до 0, когда оно достигает 2π (или до –π, когда оно достигает π, для числовой симметрии) с помощью дополнительных алгоритмов в модели. Такой подход повышает точность вычислений синуса и косинуса. Но следует иметь в виду, что это приводит к сбросу решателя, что замедляет моделирование для решателя с переменным шагом, особенно в больших моделях.

Чтобы исключить сброс решателя в момент сброса значения выходного сигнала, блок Integrator содержит встроенный механизм сброса состояния, которые вы можете включить, установив флажок Wrap state в диалоговом окне параметров блока.

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

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

востальныхслучаях

где:

  • — нижний предел значения состояния.

  • — верхний предел значения состояния.

  • — результат (состояние).

Сброс циклических состояний имеет следующие преимущества:

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

  • Сокращает количество сбросов решателя во время моделирования, что сокращает время моделирования.

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

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

Сброс состояния

Блок сбрасывает свое состояние до начального состояния по внешнему сигналу. Тип триггера сброса определяется параметром External reset. При выборе значения, отличного от none, у блока появляется порт сброса, рядом с которым обозначен тип триггера сброса.

Типы триггеров сброса

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

  • rising — сбрасывает состояние, когда сигнал сброса проходит фронт, т.е. повышается с отрицательного или нулевого значения до положительного.

  • falling — сбрасывает состояние, когда сигнал сброса проходит срез, т.е. падает с положительного значения до нуля или отрицательного значения.

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

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

  • level hold — сбрасывает выходной сигнал в исходное состояние, когда сигнал сброса отличен от нуля.

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

Порты

Вход

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

Сигнал, который необходимо интегрировать.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

External Reset — сброс состояния к начальному
скаляр | вектор | матрица

Сброс состояния блока до заданного начального по внешнему сигналу. См. раздел Сброс состояния.

Зависимости

Чтобы использовать этот порт, установите флажок External Reset.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

x0 — начальное состояние
скаляр | вектор | матрица

Начальное состояние блока, заданное внешним сигналом. См. раздел Определение начальных состояний.

Зависимости

Чтобы использовать этот порт, установите для параметра Initial Conditions значение external.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Выход

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

Результат интегрирования.

Типы данных: Float64

Port_2 — признак ограничения выходного сигнала
−1 | 0 | 1

Указывает, когда выходной сигнал ограничен. Выход равен 1, когда интеграл ограничен на уровне Upper saturation limit. Когда выходной сигнал ограничен на уровне Lower saturation limit, выход равен −1. Когда интеграл находится между этими пределами, выход равен 0. См. раздел Ограничение интеграла.

Типы данных: Float64

Параметры

External reset — сброс состояния к начальному
none (по умолчанию) | rising | falling | either | level | level hold

Укажите тип триггера, который будет использоваться для внешнего сигнала сброса.

  • rising — сбрасывает состояние, когда сигнал сброса проходит фронт.

  • falling — сбрасывает состояние, когда сигнал сброса проходит срез.

  • either — сбрасывает состояние, когда сигнал сброса повышается или понижается (проходит фронт или срез).

  • level — сбрасывает и удерживает выход в исходном состоянии, когда сигнал сброса отличен от нуля на текущем временном шаге или изменяется от ненулевого значения на предыдущем временном шаге до нуля на текущем временном шаге.

  • level hold — сбрасывает выходной сигнал в исходное состояние, когда сигнал сброса отличен от нуля на текущем временном шаге.

Программное использование

Параметр блока

ExternalReset

Значения

none | rising | falling | either | level | level hold

По умолчанию

none

Initial condition source — выбор источника начального состояния
Internal (по умолчанию) | external

Выберите источник начального состояния:

  • internal — получение начальных состояний из параметра Initial condition.

  • external — получение начальных состояний из внешнего источника через входной порт x0.

Зависимости

Значение internal включает использование параметра Initial condition в симуляции.

Значение external отключает использование параметра Initial condition и включает входной порт x0.

Программное использование

Параметр блока

InitialConditionSource

Значения

internal | external

По умолчанию

internal

Initial condition — начальное состояние
0.0 (по умолчанию) | скаляр | вектор | матрица

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

Зависимости

Чтобы использовать этот параметр, установите для параметра Initial condition source значение internal.

Программное использование

Параметр блока

InitialCondition

По умолчанию

0

Limit output — ограничение выходных значений блока указанным диапазоном
выключено (по умолчанию) | включено

Ограничьте выходные данные блока значением между параметрами Lower saturation limit и Upper saturation limit.

  • Установка этого флажка ограничивает вывод блока значением между параметрами Lower saturation limit и Upper saturation limit.

  • Снятие этого флажка не ограничивает выходные значения блока.

Зависимости

Выбор этого параметра включает параметры Lower saturation limit и Upper saturation limit.

Программное использование

Параметр блока

LimitOutput

Значения

выключено | включено

По умолчанию

выключено

Upper saturation limit — верхний предел для интеграла
inf (по умолчанию) | скаляр | вектор | матрица

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

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output.

Программное использование

Параметр блока

UpperSaturationLimit

Значения

скаляр | вектор | матрица

По умолчанию

inf

Lower saturation limit — нижний предел для интеграла
−inf (по умолчанию) | скаляр | вектор | матрица

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

Зависимости

Чтобы использовать этот параметр, установите флажок Limit output.

Программное использование

Параметр блока

LowerSaturationLimit

Значения

скаляр | вектор | матрица

По умолчанию

−inf

Wrap state — сброс циклических состояний
выключено (по умолчанию) | включено

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

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

Зависимости

Выбор этого параметра позволяет задать параметры Wrapped state upper value и Wrapped state lower value.

Программное использование

Параметр блока

WrapState

Значения

выключено | включено

По умолчанию

выключено

Wrapped state upper value — верхний предел для сброса циклических состояний
pi (по умолчанию) | скаляр | вектор

Верхний предел выходного сигнала блока (для сброса циклических состояний).

Зависимости

Этот параметр используется при включении Wrap state.

Программное использование

Параметр блока

WrappedStateUpperValue

Значения

2*pi

По умолчанию

pi

Wrapped state lower value — нижний предел для сброса циклических состояний
−pi (по умолчанию) | скаляр | вектор

Нижний предел выходного сигнала блока (для сброса циклических состояний).

Зависимости

Этот параметр используется при включении Wrap state.

Программное использование

Параметр блока

WrappedStateLowerValue

Значения

0

По умолчанию

−pi