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

Discrete-Time Integrator

Дискретное интегрирование или накопление сигнала.

discrete time integrator

Описание

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

Выходные уравнения

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

Для заданного шага со временем моделирования выходные данные обновляются в зависимости от выбранного метода следующим образом:

  • Прямой метод Эйлера:

  • Обратный метод Эйлера:

  • Метод трапеций:

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

Методы интегрирования и накопления

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

Прямой метод Эйлера

Прямой метод Эйлера (используется по умолчанию), также известный как прямая прямоугольная или левая аппроксимация.

Блок аппроксимирует как . Выражения для выхода блока на шаге :

Блок использует эти шаги для вычисления выходного сигнала:

Шаг 0:

(при необходимости ограничено)

Шаг 1:

Шаг n:

(при необходимости ограничено)

Обратный метод Эйлера

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

Блок аппроксимирует как . Выражения для выхода блока на шаге :

Блок использует эти шаги для вычисления выходного сигнала:

Шаг 0:

(при необходимости ограничено)

Шаг 1:

Шаг n:

Метод трапеций

Для этого метода блок аппроксимирует как .

Выражения для вычисления выходного сигнала:

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

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

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

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

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

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

discrete time integrator 1

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

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

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

    discrete time integrator rising reset

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

    discrete time integrator falling reset

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

    discrete time integrator either reset

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

    discrete time integrator level reset

  • sampled level — сбрасывает выходной сигнал в исходное состояние, когда сигнал сброса отличен от нуля. Например, на этом рисунке показано влияние триггера сброса sampled level на интегрирование обратным методом Эйлера.

    discrete time integrator sampled level reset

Опция sampled level требует меньше вычислений, что делает ее более эффективной, чем опция level.

Порты

Вход

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

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

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

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

Начальное состояние блока, заданное внешним сигналом.

Зависимости

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

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

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

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

Зависимости

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

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

Выход

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

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

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

Параметры

Gain value — коэффициент усиления интегратора
1.0 (по умолчанию) | скаляр | вектор | матрица

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

  • Указание значения, отличного от 1.0 (значение по умолчанию), семантически эквивалентно подключению блока Gain ко входу интегратора.

  • Допустимые значения:

    • [1.1 2.2 3.3 4.4]

    • [1.1 2.2; 3.3 4.4]

Подсказка

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

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

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

gainval

Значения

скаляр | вектор

По умолчанию

1.0

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

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

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

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

Зависимости

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

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

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

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

InitialConditionSource

Значения

internal | external

По умолчанию

internal

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

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

Зависимости

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

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

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

InitialCondition

Значения

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

По умолчанию

0.0

Integrator method — метод интегрирования
Integration: Forward Euler (по умолчанию) | Integration: Backward Euler | Integration: Trapezoidal | Accumulation: Forward Euler | Accumulation: Backward Euler | Accumulation: Trapezoidal

Метод интегрирования или накопления.

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

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

IntegratorMethod

Значения

Integration: Forward Euler | Integration: Backward Euler | Integration: Trapezoidal | Accumulation: Forward Euler | Accumulation: Backward Euler | Accumulation: Trapezoidal

По умолчанию

Integration: Forward Euler

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

Ограничивает выходной сигнал значениями параметров Lower saturation limit и Upper saturation limit.

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

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

Зависимости

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

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

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

LimitOutput

Значения

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

По умолчанию

выключено

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

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

Зависимости

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

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

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

LowerSaturationLimit

Значения

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

По умолчанию

−inf

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

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

Зависимости

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

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

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

UpperSaturationLimit

Значения

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

По умолчанию

inf

Sample time (−1 for inherited) — интервал между шагами расчета
−1.0 (по умолчанию) | скаляр

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

Подсказка

  • Не указывайте шаг расчета, равный 0. Это значение задает непрерывный шаг расчета, которое блок Discrete-Time Integrator не поддерживает.

  • Не указывайте шаг расчета inf или NaN, поскольку эти значения не являются дискретными.

  • Если вы указываете −1 для наследования шага расчета из вышестоящего блока, убедитесь, что вышестоящий блок использует дискретный шаг расчета. Например, блок Discrete-Time Integrator не может наследовать шаг расчета, равный 0.

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

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

SampleTime

Значения

скаляр | вектор

По умолчанию

−1.0

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

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

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

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

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

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

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

Дополнительные сведения см. в разделах Сброс состояния и Типы триггеров сброса.

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

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

ExternalReset

Значения

none | rising | falling | either | level | sampled level

По умолчанию

none

Дополнительные возможности

Генерация Си кода: Да