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

Derivative

Производная входного сигнала по времени.

Derivative block

Описание

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

,

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

Этот блок принимает один входной сигнал и выдает один выходной. Начальное значение выходного сигнала равно нулю.

Точное соотношение между входом и выходом блока:

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

Выходной сигнал блока Derivative может быть чувствителен к динамике всей модели. Точность выходного сигнала зависит от размера шага расчета модели. Меньшие шаги позволяют получить более плавную и точную кривую на выходе блока. Однако, в отличие от блоков, которые имеют непрерывные состояния, Solver не выполняет меньших шагов, когда входные данные в этот блок быстро меняются. В зависимости от динамики управляющего сигнала и модели выходной сигнал блока может содержать неожиданные колебания. Эти колебания в первую очередь обусловлены ошибкой выходного сигнала и размером шага решателя.

Из-за этих особенностей структурируйте свои модели так, чтобы использовать интеграторы (например, блоки Integrator) вместо блоков Derivative. Блоки Integrator имеют состояния, которые позволяют Solver регулировать размер шага и повышать точность моделирования.

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

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

Взятие z-преобразования этого уравнения приводит к:

Блок Discrete Derivative моделирует это поведение. Используйте этот блок вместо блока Derivative для аппроксимации производной дискретного сигнала по времени.

Порты

Вход

Port_1 — входной сигнал
real scalar or vector

Сигнал, подлежащий дифференцированию; скаляр или вектор.

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

Выход

Port_1 — производная входного сигнала по времени
real scalar or vector

Производная входного сигнала по времени; скаляр или вектор. Входной сигнал дифференцируется по времени как:

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

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